diff --git a/.editorconfig b/.editorconfig index 46ae2703a..bdd599d30 100644 --- a/.editorconfig +++ b/.editorconfig @@ -90,7 +90,7 @@ ij_xml_attribute_wrap = normal ij_xml_block_comment_at_first_column = true ij_xml_keep_blank_lines = 2 ij_xml_keep_indents_on_empty_lines = false -ij_xml_keep_line_breaks = false +ij_xml_keep_line_breaks = true ij_xml_keep_line_breaks_in_text = true ij_xml_keep_whitespaces = false ij_xml_keep_whitespaces_around_cdata = preserve @@ -110,6 +110,7 @@ ij_shell_keep_column_alignment_padding = false ij_shell_minify_program = false ij_shell_redirect_followed_by_space = false ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true [{*.cjs,*.js}] indent_style = tab @@ -514,7 +515,7 @@ ij_json_wrap_long_lines = false indent_style = tab ij_smart_tabs = true ij_visual_guides = none -ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 +ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 ij_html_align_attributes = true ij_html_align_text = false ij_html_attribute_wrap = normal @@ -541,7 +542,21 @@ ij_html_space_inside_empty_tag = false ij_html_text_wrap = normal ij_html_uniform_ident = false -[{*.yaml, *.yml}] +[{*.markdown,*.md}] +ij_visual_guides = none +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 + +[{*.yaml,*.yml}] indent_size = 2 ij_visual_guides = none ij_yaml_align_values_properties = do_not_align diff --git a/application/applicationextension.inc.php b/application/applicationextension.inc.php index 7e3d89fec..fb701ba2f 100644 --- a/application/applicationextension.inc.php +++ b/application/applicationextension.inc.php @@ -73,15 +73,14 @@ abstract class AbstractLoginFSMExtension implements iLoginFSMExtension /** * @inheritDoc */ - public abstract function ListSupportedLoginModes(); + abstract public function ListSupportedLoginModes(); /** * @inheritDoc */ public function LoginAction($sLoginState, &$iErrorCode) { - switch ($sLoginState) - { + switch ($sLoginState) { case LoginWebPage::LOGIN_STATE_START: return $this->OnStart($iErrorCode); diff --git a/application/exceptions/mysql/MySQLException.php b/application/exceptions/mysql/MySQLException.php index d56938041..bddd802f0 100644 --- a/application/exceptions/mysql/MySQLException.php +++ b/application/exceptions/mysql/MySQLException.php @@ -30,5 +30,10 @@ class MySQLException extends CoreException $aContext['mysql_error'] = CMDBSource::GetError(); } parent::__construct($sIssue, $aContext); + //if is connection error, don't log the default message with password in + if (mysqli_connect_errno()) { + error_log($this->message); + error_reporting(0); + } } } \ No newline at end of file diff --git a/application/startup.inc.php b/application/startup.inc.php index 406d31070..a1451fe59 100644 --- a/application/startup.inc.php +++ b/application/startup.inc.php @@ -45,7 +45,7 @@ register_shutdown_function(function() $sMessage = substr($sMessage, 0, $iStackTracePos); } } - IssueLog::error($sMessage); + IssueLog::error($sMessage, null, $err); if (strpos($err['message'], 'Allowed memory size of') !== false) { $sLimit = ini_get('memory_limit'); diff --git a/application/utils.inc.php b/application/utils.inc.php index 9187fa2d1..2852c8d20 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -658,48 +658,91 @@ class utils public static function ReadFromFile($sFileName) { - if (!file_exists($sFileName)) return false; + if (!file_exists($sFileName)) { + return false; + } + return file_get_contents($sFileName); } /** * Helper function to convert a value expressed in a 'user friendly format' * as in php.ini, e.g. 256k, 2M, 1G etc. Into a number of bytes + * * @param mixed $value The value as read from php.ini + * * @return number */ - public static function ConvertToBytes( $value ) + public static function ConvertToBytes($value) { $iReturn = $value; - if ( !is_numeric( $value ) ) - { - $iLength = strlen( $value ); - $iReturn = substr( $value, 0, $iLength - 1 ); - $sUnit = strtoupper( substr( $value, $iLength - 1 ) ); - switch ( $sUnit ) - { - case 'G': - $iReturn *= 1024; - case 'M': - $iReturn *= 1024; - case 'K': - $iReturn *= 1024; - } - } - return $iReturn; - } - - /** - * Checks if the memory limit is at least what is required - * - * @param int $memoryLimit set limit in bytes - * @param int $requiredLimit required limit in bytes - * @return bool - */ - public static function IsMemoryLimitOk($memoryLimit, $requiredLimit) - { - return ($memoryLimit >= $requiredLimit) || ($memoryLimit == -1); - } + if (!is_numeric($value)) { + $iLength = strlen($value); + $iReturn = substr($value, 0, $iLength - 1); + $sUnit = strtoupper(substr($value, $iLength - 1)); + switch ($sUnit) { + case 'G': + $iReturn *= 1024; + case 'M': + $iReturn *= 1024; + case 'K': + $iReturn *= 1024; + } + } + + return $iReturn; + } + + /** + * Checks if the memory limit is at least what is required + * + * @param int $iMemoryLimit set limit in bytes, use {@link utils::ConvertToBytes()} to convert current php.ini value + * @param int $iRequiredLimit required limit in bytes + * + * @return bool + */ + public static function IsMemoryLimitOk($iMemoryLimit, $iRequiredLimit) + { + if ($iMemoryLimit === -1) { + // -1 means : no limit (see https://www.php.net/manual/fr/ini.core.php#ini.memory-limit) + return true; + } + + return ($iMemoryLimit >= $iRequiredLimit); + } + + /** + * Set memory_limit to required value + * + * @param string $sRequiredLimit required limit, for example '512M' + * + * @return bool|null null if nothing was done, true if modifying memory_limit was successful, false otherwise + * + * @uses utils::ConvertToBytes() + * @uses \ini_get('memory_limit') + * @uses \ini_set() + * @uses utils::ConvertToBytes() + * + * @since 2.7.5 N°3806 + */ + public static function SetMinMemoryLimit($sRequiredLimit) + { + $iRequiredLimit = static::ConvertToBytes($sRequiredLimit); + $sMemoryLimit = trim(ini_get('memory_limit')); + if (empty($sMemoryLimit)) { + // On some PHP installations, memory_limit does not exist as a PHP setting! + // (encountered on a 5.2.0 under Windows) + // In that case, ini_set will not work + return false; + } + $iMemoryLimit = static::ConvertToBytes($sMemoryLimit); + + if (static::IsMemoryLimitOk($iMemoryLimit, $iRequiredLimit)) { + return null; + } + + return ini_set('memory_limit', $iRequiredLimit); + } /** * Format a value into a more friendly format (KB, MB, GB, TB) instead a juste a Bytes amount. @@ -828,7 +871,7 @@ class utils * @throws \ConfigException * @throws \CoreException * - * @since 2.7.0 N°2478 always call {@link MetaModel::GetConfig} first, cache is only set when loading from disk + * @since 2.7.0 N°2478 this method will now always call {@link MetaModel::GetConfig} first, and cache in this class is only set when loading from disk */ public static function GetConfig() { diff --git a/composer.json b/composer.json index d14bda1e4..b388d7855 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "ext-soap": "*", "combodo/tcpdf": "6.3.5", "nikic/php-parser": "^3.1", - "pear/archive_tar": "1.4.12", + "pear/archive_tar": "1.4.13", "pelago/emogrifier": "2.1.0", "scssphp/scssphp": "1.0.6", "swiftmailer/swiftmailer": "5.4.12", diff --git a/composer.lock b/composer.lock index fc646a8b2..143cf807f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "41f340dfd95264c89c2c1c03038316ed", + "content-hash": "62e394b1ef30b4e716e3e3e519de11dd", "packages": [ { "name": "combodo/tcpdf", @@ -168,11 +168,11 @@ }, { "name": "pear/archive_tar", - "version": "1.4.12", + "version": "1.4.13", "source": { "type": "git", "url": "https://github.com/pear/Archive_Tar.git", - "reference": "19bb8e95490d3e3ad92fcac95500ca80bdcc7495" + "reference": "2b87b41178cc6d4ad3cba678a46a1cae49786011" }, "dist": { "type": "zip", @@ -2615,7 +2615,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "5.6.0" + "php": "7.2.0" }, - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.0.0" } diff --git a/core/cmdbsource.class.inc.php b/core/cmdbsource.class.inc.php index c2de83106..81f35d83e 100644 --- a/core/cmdbsource.class.inc.php +++ b/core/cmdbsource.class.inc.php @@ -182,7 +182,7 @@ class CMDBSource } catch(mysqli_sql_exception $e) { - throw new MySQLException('Could not connect to the DB server', array('host' => $sServer, 'user' => $sUser), $e); + throw new MySQLException('Could not connect to the DB server', array('host' => $sServer, 'user' => $sUser),$e); } if ($bTlsEnabled diff --git a/core/dbobject.class.php b/core/dbobject.class.php index a730032d1..87affbde8 100644 --- a/core/dbobject.class.php +++ b/core/dbobject.class.php @@ -3150,8 +3150,13 @@ abstract class DBObject implements iDisplay array(), $aParams); while ($oTrigger = $oSet->Fetch()) { - /** @var \Trigger $oTrigger */ - $oTrigger->DoActivate($aTriggerArgs); + /** @var \TriggerOnObjectMention $oTrigger */ + try { + $oTrigger->DoActivate($aTriggerArgs); + } + catch (Exception $e) { + utils::EnrichRaisedException($oTrigger, $e); + } } } } @@ -3326,7 +3331,7 @@ abstract class DBObject implements iDisplay $oSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT TriggerOnObjectUpdate AS t WHERE t.target_class IN (:class_list)"), array(), $aParams); while ($oTrigger = $oSet->Fetch()) { - /** @var \Trigger $oTrigger */ + /** @var \TriggerOnObjectUpdate $oTrigger */ try { $oTrigger->DoActivate($this->ToArgs('this')); } @@ -3698,16 +3703,22 @@ abstract class DBObject implements iDisplay /** * Apply a stimulus (workflow) - * - * @api - * - * @param string $sStimulusCode - * @param bool $bDoNotWrite - * + * + * @api + * + * @param string $sStimulusCode + * @param bool $bDoNotWrite if true we won't save the object ! + * * @return bool - * + * * @throws CoreException * @throws CoreUnexpectedValue + * + * @uses \AttributeStopWatch::Start + * @uses \AttributeStopWatch::Stop + * @uses \DBObject::DBWrite + * @uses \TriggerOnStateLeave::DoActivate + * @uses \TriggerOnStateEnter::DoActivate */ public function ApplyStimulus($sStimulusCode, $bDoNotWrite = false) { @@ -3822,17 +3833,14 @@ abstract class DBObject implements iDisplay if (in_array($sNewState, $oAttDef->GetStates())) { $oSW->Start($this, $oAttDef); - } - else - { + } else { $oSW->Stop($this, $oAttDef); } $this->Set($sAttCode, $oSW); } } - if (!$bDoNotWrite) - { + if (!$bDoNotWrite) { $this->DBWrite(); } @@ -3840,30 +3848,26 @@ abstract class DBObject implements iDisplay $aParams = array( 'class_list' => MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL), 'previous_state' => $sPreviousState, - 'new_state' => $sNewState); + 'new_state' => $sNewState, + ); $oSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT TriggerOnStateLeave AS t WHERE t.target_class IN (:class_list) AND t.state=:previous_state"), array(), $aParams); - while ($oTrigger = $oSet->Fetch()) - { - /** @var \Trigger $oTrigger */ - try - { + while ($oTrigger = $oSet->Fetch()) { + /** @var \TriggerOnStateLeave $oTrigger */ + try { $oTrigger->DoActivate($this->ToArgs('this')); } - catch(Exception $e) - { + catch (Exception $e) { utils::EnrichRaisedException($oTrigger, $e); } } $oSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT TriggerOnStateEnter AS t WHERE t.target_class IN (:class_list) AND t.state=:new_state"), array(), $aParams); - while ($oTrigger = $oSet->Fetch()) - { - /** @var \Trigger $oTrigger */ - try{ + while ($oTrigger = $oSet->Fetch()) { + /** @var \TriggerOnStateEnter $oTrigger */ + try { $oTrigger->DoActivate($this->ToArgs('this')); } - catch(Exception $e) - { + catch (Exception $e) { utils::EnrichRaisedException($oTrigger, $e); } } diff --git a/core/dbsearch.class.php b/core/dbsearch.class.php index 78d6e8b36..25afb3f72 100644 --- a/core/dbsearch.class.php +++ b/core/dbsearch.class.php @@ -1039,10 +1039,8 @@ abstract class DBSearch } /** - * Generate a SQL query from the current search - * - * @internal - * + * Generate a SQL query from the current search + * * @param array $aOrderBy Array of '[.]attcode' => bAscending * @param array $aArgs * @param null $aAttToLoad @@ -1050,12 +1048,16 @@ abstract class DBSearch * @param int $iLimitCount * @param int $iLimitStart * @param bool $bGetCount + * @param bool $bBeautifulSQL + * * @return string - * @throws CoreException - * @throws Exception - * @throws MissingQueryArgument + * @throws \ConfigException + * @throws \CoreException + * @throws \MissingQueryArgument + * @internal + * */ - public function MakeSelectQuery($aOrderBy = array(), $aArgs = array(), $aAttToLoad = null, $aExtendedDataSpec = null, $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false) + public function MakeSelectQuery($aOrderBy = array(), $aArgs = array(), $aAttToLoad = null, $aExtendedDataSpec = null, $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulSQL = true) { // Check the order by specification, and prefix with the class alias // and make sure that the ordering columns are going to be selected @@ -1120,8 +1122,7 @@ abstract class DBSearch } try { - // $bBeautifulSQL = self::$m_bTraceQueries || self::$m_bDebugQuery || self::$m_bIndentQueries; - $sRes = $oSQLQuery->RenderSelect($aOrderSpec, $aScalarArgs, $iLimitCount, $iLimitStart, $bGetCount, true); + $sRes = $oSQLQuery->RenderSelect($aOrderSpec, $aScalarArgs, $iLimitCount, $iLimitStart, $bGetCount, $bBeautifulSQL); if ($sClassAlias == '_itop_') { IssueLog::Info('SQL Query (_itop_): '.$sRes); diff --git a/core/log.class.inc.php b/core/log.class.inc.php index e4eb09880..d100b5d6e 100644 --- a/core/log.class.inc.php +++ b/core/log.class.inc.php @@ -399,10 +399,10 @@ class MonthlyRotatingLogFileNameBuilder extends RotatingLogFileNameBuilder */ protected function GetFileSuffix($oDate) { - $sWeekYear = $oDate->format('o'); - $sWeekNumber = $oDate->format('m'); + $sMonthYear = $oDate->format('o'); + $sMonthNumber = $oDate->format('m'); - return $sWeekYear.'-month'.$sWeekNumber; + return $sMonthYear.'-month'.$sMonthNumber; } /** diff --git a/core/metamodel.class.php b/core/metamodel.class.php index 03f31482a..a45eab6c8 100644 --- a/core/metamodel.class.php +++ b/core/metamodel.class.php @@ -5523,7 +5523,7 @@ abstract class MetaModel $aSugFix[$sClass]['id'][] = "ALTER TABLE `$sTable` ADD $sKeyFieldDefinition"; if (!$bTableToCreate) { - $aAlterTableItems[$sTable][$sKeyField] = "ADD $sKeyFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sKeyField] = "ADD $sKeyFieldDefinition"; } } else @@ -5536,7 +5536,7 @@ abstract class MetaModel $aSugFix[$sClass]['id'][] = "ALTER TABLE `$sTable`, DROP PRIMARY KEY, ADD PRIMARY key(`$sKeyField`)"; if (!$bTableToCreate) { - $aAlterTableItems[$sTable][$sKeyField] = "CHANGE `$sKeyField` $sKeyFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sKeyField] = "CHANGE `$sKeyField` $sKeyFieldDefinition"; } } if (self::IsAutoIncrementKey($sClass) && !CMDBSource::IsAutoIncrement($sTable, $sKeyField)) @@ -5545,7 +5545,7 @@ abstract class MetaModel $aSugFix[$sClass]['id'][] = "ALTER TABLE `$sTable` CHANGE `$sKeyField` $sKeyFieldDefinition"; if (!$bTableToCreate) { - $aAlterTableItems[$sTable][$sKeyField] = "CHANGE `$sKeyField` $sKeyFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sKeyField] = "CHANGE `$sKeyField` $sKeyFieldDefinition"; } } } @@ -5608,7 +5608,7 @@ abstract class MetaModel } else { - $aAlterTableItems[$sTable][$sField] = "ADD $sFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sField] = "ADD $sFieldDefinition"; $aAdditionalRequests = self::GetAdditionalRequestAfterAlter($sClass, $sTable, $sField); if (!empty($aAdditionalRequests)) { @@ -5652,7 +5652,7 @@ abstract class MetaModel } else { - $aAlterTableItems[$sTable][] = "ADD $sIndexType `$sIndexName` ($sColumns)"; + $aAlterTableItems[$sTable]['index'][] = "ADD $sIndexType `$sIndexName` ($sColumns)"; } } @@ -5693,7 +5693,7 @@ abstract class MetaModel if (CMDBSource::HasIndex($sTable, $sField)) { $aSugFix[$sClass][$sAttCode][] = "ALTER TABLE `$sTable` DROP INDEX `$sIndexName`"; - $aAlterTableItems[$sTable][] = "DROP INDEX `$sIndexName`"; + $aAlterTableItems[$sTable]['index'][] = "DROP INDEX `$sIndexName`"; } $sSugFixAfterChange = "ALTER TABLE `$sTable` ADD $sIndexType `$sIndexName` ($sColumns)"; $sAlterTableItemsAfterChange = "ADD $sIndexType `$sIndexName` ($sColumns)"; @@ -5707,7 +5707,7 @@ abstract class MetaModel { $aErrors[$sClass][$sAttCode][] = "field '$sField' in table '$sTable' has a wrong type: found $sActualFieldSpec while expecting $sDBFieldSpec"; $aSugFix[$sClass][$sAttCode][] = "ALTER TABLE `$sTable` CHANGE `$sField` $sFieldDefinition"; - $aAlterTableItems[$sTable][$sField] = "CHANGE `$sField` $sFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sField] = "CHANGE `$sField` $sFieldDefinition"; } // Create indexes (external keys only... so far) @@ -5722,7 +5722,7 @@ abstract class MetaModel } else { - $aAlterTableItems[$sTable][] = $sAlterTableItemsAfterChange; + $aAlterTableItems[$sTable]['index'][] = $sAlterTableItemsAfterChange; } } } @@ -5782,9 +5782,12 @@ abstract class MetaModel { $aAlterTableItems[$sTable] = array(); } - array_unshift($aAlterTableItems[$sTable], "DROP INDEX `$sIndexId`"); + if (isset($aAlterTableItems[$sTable]['index'])) + { + array_unshift($aAlterTableItems[$sTable]['index'], "DROP INDEX `$sIndexId`"); + } } - $aAlterTableItems[$sTable][] = "ADD INDEX `$sIndexId` ($sColumns)"; + $aAlterTableItems[$sTable]['index'][] = "ADD INDEX `$sIndexId` ($sColumns)"; } } } @@ -5802,7 +5805,7 @@ abstract class MetaModel // without specifying the value of this unknown column $sFieldDefinition = "`$sField` ".CMDBSource::GetFieldType($sTable, $sField).' NULL'; $aSugFix[$sClass][$sAttCode][] = "ALTER TABLE `$sTable` CHANGE `$sField` $sFieldDefinition"; - $aAlterTableItems[$sTable][$sField] = "CHANGE `$sField` $sFieldDefinition"; + $aAlterTableItems[$sTable]['field'][$sField] = "CHANGE `$sField` $sFieldDefinition"; } $aSugFix[$sClass][$sAttCode][] = "-- Recommended action: ALTER TABLE `$sTable` DROP `$sField`"; } @@ -5821,7 +5824,10 @@ abstract class MetaModel { $aAlterTableItems[$sTable] = array(); } - array_unshift($aAlterTableItems[$sTable], "DROP INDEX `$sIndexId`"); + if (isset($aAlterTableItems[$sTable]['index'])) + { + array_unshift($aAlterTableItems[$sTable]['index'], "DROP INDEX `$sIndexId`"); + } } } @@ -5853,8 +5859,16 @@ abstract class MetaModel } foreach ($aAlterTableItems as $sTable => $aChangeList) { - $sChangeList = implode(', ', $aChangeList); - $aCondensedQueries[] = "ALTER TABLE `$sTable` $sChangeList"; + if (isset($aAlterTableItems[$sTable]['field'])) + { + $sChangeList = implode(', ', $aChangeList['field']); + $aCondensedQueries[] = "ALTER TABLE `$sTable` $sChangeList"; + } + if (isset($aAlterTableItems[$sTable]['index'])) + { + $sChangeList = implode(', ', $aChangeList['index']); + $aCondensedQueries[] = "ALTER TABLE `$sTable` $sChangeList"; + } // Add request right after the ALTER TABLE if (isset($aPostTableAlteration[$sTable])) { diff --git a/core/oql/oql-parser.php b/core/oql/oql-parser.php index c67ffff7a..83fe29aa6 100644 --- a/core/oql/oql-parser.php +++ b/core/oql/oql-parser.php @@ -597,7 +597,7 @@ static public $yy_action = array( ** defined, then do no error processing. */ const YYNOCODE = 119; - const YYSTACKDEPTH = 100; + const YYSTACKDEPTH = 1000; const YYNSTATE = 175; const YYNRULE = 125; const YYERRORSYMBOL = 76; @@ -1175,6 +1175,10 @@ static public $yy_action = array( } /* Here code is inserted which will execute if the parser ** stack ever overflows */ +#line 30 "..\oql-parser.y" + +throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); +#line 1186 "..\oql-parser.php" return; } $yytos = new OQLParser_yyStackEntry; @@ -1474,116 +1478,116 @@ static public $yy_action = array( ** function yy_r0($yymsp){ ... } // User supplied code ** #line */ -#line 29 "..\oql-parser.y" +#line 37 "..\oql-parser.y" function yy_r0(){ $this->my_result = $this->yystack[$this->yyidx + 0]->minor; } -#line 1483 "..\oql-parser.php" -#line 33 "..\oql-parser.y" +#line 1488 "..\oql-parser.php" +#line 41 "..\oql-parser.y" function yy_r3(){ $this->_retvalue = new OqlUnionQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1488 "..\oql-parser.php" -#line 40 "..\oql-parser.y" +#line 1493 "..\oql-parser.php" +#line 48 "..\oql-parser.y" function yy_r5(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, array($this->yystack[$this->yyidx + -2]->minor)); } -#line 1493 "..\oql-parser.php" -#line 43 "..\oql-parser.y" +#line 1498 "..\oql-parser.php" +#line 51 "..\oql-parser.y" function yy_r6(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, array($this->yystack[$this->yyidx + -2]->minor)); } -#line 1498 "..\oql-parser.php" -#line 47 "..\oql-parser.y" +#line 1503 "..\oql-parser.php" +#line 55 "..\oql-parser.y" function yy_r7(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -4]->minor); } -#line 1503 "..\oql-parser.php" -#line 50 "..\oql-parser.y" +#line 1508 "..\oql-parser.php" +#line 58 "..\oql-parser.y" function yy_r8(){ $this->_retvalue = new OqlObjectQuery($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -6]->minor); } -#line 1508 "..\oql-parser.php" -#line 55 "..\oql-parser.y" +#line 1513 "..\oql-parser.php" +#line 63 "..\oql-parser.y" function yy_r9(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 1513 "..\oql-parser.php" -#line 58 "..\oql-parser.y" +#line 1518 "..\oql-parser.php" +#line 66 "..\oql-parser.y" function yy_r10(){ array_push($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 1519 "..\oql-parser.php" -#line 63 "..\oql-parser.y" +#line 1524 "..\oql-parser.php" +#line 71 "..\oql-parser.y" function yy_r11(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1522 "..\oql-parser.php" -#line 64 "..\oql-parser.y" +#line 1527 "..\oql-parser.php" +#line 72 "..\oql-parser.y" function yy_r12(){ $this->_retvalue = null; } -#line 1525 "..\oql-parser.php" -#line 66 "..\oql-parser.y" +#line 1530 "..\oql-parser.php" +#line 74 "..\oql-parser.y" function yy_r13(){ // insert the join statement on top of the existing list array_unshift($this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); // and return the updated array $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1533 "..\oql-parser.php" -#line 72 "..\oql-parser.y" +#line 1538 "..\oql-parser.php" +#line 80 "..\oql-parser.y" function yy_r14(){ $this->_retvalue = Array($this->yystack[$this->yyidx + 0]->minor); } -#line 1538 "..\oql-parser.php" -#line 78 "..\oql-parser.y" +#line 1543 "..\oql-parser.php" +#line 86 "..\oql-parser.y" function yy_r16(){ // create an array with one single item $this->_retvalue = new OqlJoinSpec($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1544 "..\oql-parser.php" -#line 83 "..\oql-parser.y" +#line 1549 "..\oql-parser.php" +#line 91 "..\oql-parser.y" function yy_r17(){ // create an array with one single item $this->_retvalue = new OqlJoinSpec($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1550 "..\oql-parser.php" -#line 88 "..\oql-parser.y" - function yy_r18(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, '=', $this->yystack[$this->yyidx + 0]->minor); } -#line 1553 "..\oql-parser.php" -#line 89 "..\oql-parser.y" - function yy_r19(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW', $this->yystack[$this->yyidx + 0]->minor); } -#line 1556 "..\oql-parser.php" -#line 90 "..\oql-parser.y" - function yy_r20(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1559 "..\oql-parser.php" -#line 91 "..\oql-parser.y" - function yy_r21(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW', $this->yystack[$this->yyidx + 0]->minor); } -#line 1562 "..\oql-parser.php" -#line 92 "..\oql-parser.y" - function yy_r22(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1565 "..\oql-parser.php" -#line 93 "..\oql-parser.y" - function yy_r23(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE', $this->yystack[$this->yyidx + 0]->minor); } -#line 1568 "..\oql-parser.php" -#line 94 "..\oql-parser.y" - function yy_r24(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1571 "..\oql-parser.php" -#line 95 "..\oql-parser.y" - function yy_r25(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE', $this->yystack[$this->yyidx + 0]->minor); } -#line 1574 "..\oql-parser.php" +#line 1555 "..\oql-parser.php" #line 96 "..\oql-parser.y" - function yy_r26(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } -#line 1577 "..\oql-parser.php" + function yy_r18(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, '=', $this->yystack[$this->yyidx + 0]->minor); } +#line 1558 "..\oql-parser.php" +#line 97 "..\oql-parser.y" + function yy_r19(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW', $this->yystack[$this->yyidx + 0]->minor); } +#line 1561 "..\oql-parser.php" #line 98 "..\oql-parser.y" - function yy_r27(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 1580 "..\oql-parser.php" + function yy_r20(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1564 "..\oql-parser.php" +#line 99 "..\oql-parser.y" + function yy_r21(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW', $this->yystack[$this->yyidx + 0]->minor); } +#line 1567 "..\oql-parser.php" +#line 100 "..\oql-parser.y" + function yy_r22(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_BELOW_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1570 "..\oql-parser.php" +#line 101 "..\oql-parser.y" + function yy_r23(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE', $this->yystack[$this->yyidx + 0]->minor); } +#line 1573 "..\oql-parser.php" +#line 102 "..\oql-parser.y" + function yy_r24(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1576 "..\oql-parser.php" #line 103 "..\oql-parser.y" - function yy_r31(){ $this->_retvalue = new FunctionOqlExpression($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 1583 "..\oql-parser.php" + function yy_r25(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE', $this->yystack[$this->yyidx + 0]->minor); } +#line 1579 "..\oql-parser.php" #line 104 "..\oql-parser.y" - function yy_r32(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 1586 "..\oql-parser.php" -#line 105 "..\oql-parser.y" - function yy_r33(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1589 "..\oql-parser.php" + function yy_r26(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, 'NOT_ABOVE_STRICT', $this->yystack[$this->yyidx + 0]->minor); } +#line 1582 "..\oql-parser.php" +#line 106 "..\oql-parser.y" + function yy_r27(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } +#line 1585 "..\oql-parser.php" #line 111 "..\oql-parser.y" + function yy_r31(){ $this->_retvalue = new FunctionOqlExpression($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } +#line 1588 "..\oql-parser.php" +#line 112 "..\oql-parser.y" + function yy_r32(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } +#line 1591 "..\oql-parser.php" +#line 113 "..\oql-parser.y" + function yy_r33(){ $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } +#line 1594 "..\oql-parser.php" +#line 119 "..\oql-parser.y" function yy_r37(){ if ($this->yystack[$this->yyidx + -1]->minor == 'MATCHES') { @@ -1594,44 +1598,44 @@ static public $yy_action = array( $this->_retvalue = new BinaryOqlExpression($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } } -#line 1601 "..\oql-parser.php" -#line 128 "..\oql-parser.y" +#line 1606 "..\oql-parser.php" +#line 136 "..\oql-parser.y" function yy_r42(){ $this->_retvalue = new ListOqlExpression($this->yystack[$this->yyidx + -1]->minor); } -#line 1606 "..\oql-parser.php" -#line 131 "..\oql-parser.y" +#line 1611 "..\oql-parser.php" +#line 139 "..\oql-parser.y" function yy_r43(){ $this->_retvalue = new NestedQueryOqlExpression($this->yystack[$this->yyidx + -1]->minor); } -#line 1611 "..\oql-parser.php" -#line 146 "..\oql-parser.y" +#line 1616 "..\oql-parser.php" +#line 154 "..\oql-parser.y" function yy_r47(){ $this->_retvalue = array(); } -#line 1616 "..\oql-parser.php" -#line 157 "..\oql-parser.y" +#line 1621 "..\oql-parser.php" +#line 165 "..\oql-parser.y" function yy_r51(){ $this->_retvalue = new IntervalOqlExpression($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 1619 "..\oql-parser.php" -#line 170 "..\oql-parser.y" +#line 1624 "..\oql-parser.php" +#line 178 "..\oql-parser.y" function yy_r61(){ $this->_retvalue = new ScalarOqlExpression($this->yystack[$this->yyidx + 0]->minor); } -#line 1622 "..\oql-parser.php" -#line 172 "..\oql-parser.y" +#line 1627 "..\oql-parser.php" +#line 180 "..\oql-parser.y" function yy_r63(){ $this->_retvalue = new ScalarOqlExpression(null); } -#line 1625 "..\oql-parser.php" -#line 174 "..\oql-parser.y" +#line 1630 "..\oql-parser.php" +#line 182 "..\oql-parser.y" function yy_r64(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor); } -#line 1628 "..\oql-parser.php" -#line 175 "..\oql-parser.y" +#line 1633 "..\oql-parser.php" +#line 183 "..\oql-parser.y" function yy_r65(){ $this->_retvalue = new FieldOqlExpression($this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -2]->minor); } -#line 1631 "..\oql-parser.php" -#line 176 "..\oql-parser.y" +#line 1636 "..\oql-parser.php" +#line 184 "..\oql-parser.y" function yy_r66(){ $this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } -#line 1634 "..\oql-parser.php" -#line 179 "..\oql-parser.y" +#line 1639 "..\oql-parser.php" +#line 187 "..\oql-parser.y" function yy_r67(){ $this->_retvalue = new VariableOqlExpression(substr($this->yystack[$this->yyidx + 0]->minor, 1)); } -#line 1637 "..\oql-parser.php" -#line 181 "..\oql-parser.y" +#line 1642 "..\oql-parser.php" +#line 189 "..\oql-parser.y" function yy_r68(){ if ($this->yystack[$this->yyidx + 0]->minor[0] == '`') { @@ -1643,22 +1647,22 @@ static public $yy_action = array( } $this->_retvalue = new OqlName($name, $this->m_iColPrev); } -#line 1650 "..\oql-parser.php" -#line 192 "..\oql-parser.y" +#line 1655 "..\oql-parser.php" +#line 200 "..\oql-parser.y" function yy_r69(){$this->_retvalue=(int)$this->yystack[$this->yyidx + 0]->minor; } -#line 1653 "..\oql-parser.php" -#line 193 "..\oql-parser.y" +#line 1658 "..\oql-parser.php" +#line 201 "..\oql-parser.y" function yy_r70(){$this->_retvalue=(int)-$this->yystack[$this->yyidx + 0]->minor; } -#line 1656 "..\oql-parser.php" -#line 194 "..\oql-parser.y" +#line 1661 "..\oql-parser.php" +#line 202 "..\oql-parser.y" function yy_r71(){$this->_retvalue=new OqlHexValue($this->yystack[$this->yyidx + 0]->minor); } -#line 1659 "..\oql-parser.php" -#line 195 "..\oql-parser.y" +#line 1664 "..\oql-parser.php" +#line 203 "..\oql-parser.y" function yy_r72(){$this->_retvalue=stripslashes(substr($this->yystack[$this->yyidx + 0]->minor, 1, strlen($this->yystack[$this->yyidx + 0]->minor) - 2)); } -#line 1662 "..\oql-parser.php" -#line 198 "..\oql-parser.y" +#line 1667 "..\oql-parser.php" +#line 206 "..\oql-parser.y" function yy_r73(){$this->_retvalue=$this->yystack[$this->yyidx + 0]->minor; } -#line 1665 "..\oql-parser.php" +#line 1670 "..\oql-parser.php" /** * placeholder for the left hand side in a reduce operation. @@ -1759,6 +1763,10 @@ static public $yy_action = array( } /* Here code is inserted which will be executed whenever the ** parser fails */ +#line 33 "..\oql-parser.y" + +throw new OQLParserParseFailureException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); +#line 1775 "..\oql-parser.php" } /** @@ -1772,8 +1780,8 @@ static public $yy_action = array( { #line 25 "..\oql-parser.y" -throw new OQLParserException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol, $this->tokenName($yymajor), $TOKEN); -#line 1781 "..\oql-parser.php" +throw new OQLParserSyntaxErrorException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol, $this->tokenName($yymajor), $TOKEN); +#line 1791 "..\oql-parser.php" } /** @@ -1940,19 +1948,47 @@ throw new OQLParserException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCo } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); } } -#line 263 "..\oql-parser.y" +#line 271 "..\oql-parser.y" class OQLParserException extends OQLException +{ + public function __construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue) + { + parent::__construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue); + } +} + +class OQLParserSyntaxErrorException extends OQLParserException { public function __construct($sInput, $iLine, $iCol, $sTokenName, $sTokenValue) { $sIssue = "Unexpected token $sTokenName"; - + parent::__construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue); } } +class OQLParserStackOverFlowException extends OQLParserException +{ + public function __construct($sInput, $iLine, $iCol) + { + $sIssue = "Stack overflow"; + + parent::__construct($sIssue, $sInput, $iLine, $iCol, ''); + } +} + +class OQLParserParseFailureException extends OQLParserException +{ + public function __construct($sInput, $iLine, $iCol) + { + $sIssue = "Unexpected token $sTokenName"; + + parent::__construct($sIssue, $sInput, $iLine, $iCol, ''); + } +} + class OQLParser extends OQLParserRaw { // dirty, but working for us (no other mean to get the final result :-( @@ -2005,4 +2041,4 @@ class OQLParser extends OQLParserRaw } } -#line 2014 "..\oql-parser.php" +#line 2052 "..\oql-parser.php" diff --git a/core/oql/oql-parser.y b/core/oql/oql-parser.y index 4e95868fd..33cd9b1aa 100644 --- a/core/oql/oql-parser.y +++ b/core/oql/oql-parser.y @@ -23,7 +23,15 @@ later : solve the 2 remaining shift-reduce conflicts (JOIN) %name OQLParser_ %declare_class {class OQLParserRaw} %syntax_error { -throw new OQLParserException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol, $this->tokenName($yymajor), $TOKEN); +throw new OQLParserSyntaxErrorException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol, $this->tokenName($yymajor), $TOKEN); +} +/* Bug N°4052 Parser stack size too small for huge OQL requests */ +%stack_size 1000 +%stack_overflow { +throw new OQLParserStackOverFlowException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); +} +%parse_failure { +throw new OQLParserParseFailureException($this->m_sSourceQuery, $this->m_iLine, $this->m_iCol); } result ::= union(X). { $this->my_result = X; } @@ -263,15 +271,43 @@ func_name(A) ::= F_INET_NTOA(X). { A=X; } %code { class OQLParserException extends OQLException +{ + public function __construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue) + { + parent::__construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue); + } +} + +class OQLParserSyntaxErrorException extends OQLParserException { public function __construct($sInput, $iLine, $iCol, $sTokenName, $sTokenValue) { $sIssue = "Unexpected token $sTokenName"; - + parent::__construct($sIssue, $sInput, $iLine, $iCol, $sTokenValue); } } +class OQLParserStackOverFlowException extends OQLParserException +{ + public function __construct($sInput, $iLine, $iCol) + { + $sIssue = "Stack overflow"; + + parent::__construct($sIssue, $sInput, $iLine, $iCol, ''); + } +} + +class OQLParserParseFailureException extends OQLParserException +{ + public function __construct($sInput, $iLine, $iCol) + { + $sIssue = "Unexpected token $sTokenName"; + + parent::__construct($sIssue, $sInput, $iLine, $iCol, ''); + } +} + class OQLParser extends OQLParserRaw { // dirty, but working for us (no other mean to get the final result :-( diff --git a/core/oql/version.txt b/core/oql/version.txt index 26a3e601d..78c1e5e2b 100644 --- a/core/oql/version.txt +++ b/core/oql/version.txt @@ -1 +1 @@ -2020-09-29 \ No newline at end of file +2021-06-03 \ No newline at end of file diff --git a/core/oqlclasstreeoptimizer.class.inc.php b/core/oqlclasstreeoptimizer.class.inc.php index c48e8120f..6bf389b32 100644 --- a/core/oqlclasstreeoptimizer.class.inc.php +++ b/core/oqlclasstreeoptimizer.class.inc.php @@ -55,7 +55,7 @@ class OQLClassTreeOptimizer $sJoinedClass = $oJoin->GetOOQLClassNode()->GetNodeClass(); $sExtKeyAttCode = $oJoin->GetLeftField(); $oExtKeyAttDef = MetaModel::GetAttributeDef($oCurrentClassNode->GetNodeClass(), $sExtKeyAttCode); - if ($sJoinedClass == $oExtKeyAttDef->GetTargetClass()) { + if (($oExtKeyAttDef instanceof AttributeExternalKey) && ($sJoinedClass == $oExtKeyAttDef->GetTargetClass())) { // The join is not used, remove from tree $oCurrentClassNode->RemoveJoin($sLeftKey, $index); } diff --git a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php index e1c288616..f17ec15dd 100644 --- a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php +++ b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php @@ -223,13 +223,11 @@ class DatabaseAnalyzer { $oFixSearch->AddCondition($sAttCode, $sValue, '='); } - $aFixit[] = $oFixSearch->MakeSelectQuery().';'; + $aFixit[] = $oFixSearch->MakeSelectQuery([], [], null, null, 0, 0, false, false).';'; $aFixit[] = ""; } $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = $aFixit; } - - return; } private function GetUniquenessRuleMessage($sUniquenessRuleId) @@ -327,13 +325,8 @@ class DatabaseAnalyzer { $sField = MetaModel::DBGetClassField($sClass); $sRootField = MetaModel::DBGetClassField($sRootClass); - $sSelWrongRecs = <<ExecQuery($sSelWrongRecs, $sFixItRequest, Dict::Format('DBAnalyzer-Integrity-FinalClass', $sField, $sTable, $sRootTable), $sClass, $aErrorsAndFixes); } @@ -361,75 +354,79 @@ SQL; // Note: a class/table may have an external key on itself $sSelect = "SELECT DISTINCT `$sTable`.`$sKeyField` AS id, `$sTable`.`$sExtKeyField` AS value"; - $sFilter = "FROM `$sTable` LEFT JOIN `$sRemoteTable` AS `{$sRemoteTable}_1` ON `$sTable`.`$sExtKeyField` = `{$sRemoteTable}_1`.`$sRemoteKey`"; + $sFrom = "FROM `$sTable`"; + $sJoin = "LEFT JOIN `$sRemoteTable` AS `{$sRemoteTable}_1` ON `$sTable`.`$sExtKeyField` = `{$sRemoteTable}_1`.`$sRemoteKey`"; - $sFilter = $sFilter." WHERE `{$sRemoteTable}_1`.`$sRemoteKey` IS NULL"; + $sFilter = "WHERE `{$sRemoteTable}_1`.`$sRemoteKey` IS NULL"; // Exclude the records pointing to 0/null from the errors (separate test below) $sFilter .= " AND `$sTable`.`$sExtKeyField` IS NOT NULL"; $sFilter .= " AND `$sTable`.`$sExtKeyField` != 0"; - $sSelWrongRecs = "$sSelect $sFilter"; + $sSelWrongRecs = "$sSelect $sFrom $sJoin $sFilter"; $sErrorDesc = Dict::Format('DBAnalyzer-Integrity-InvalidExtKey', $sAttCode, $sTable, $sExtKeyField); $this->ExecQuery($sSelWrongRecs, '', $sErrorDesc, $sClass, $aErrorsAndFixes); + $aFixIt = []; // Fix it request needs the values of the enum to generate the requests if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])) { - $aFixIt = array(); - $aFixIt[] = "-- Remove inconsistant entries:"; - $iOffset = 0; - $iStep = 100; - do - { - $aIds = array_slice(array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']), $iOffset, $iStep); - $sIds = implode(', ', $aIds); - $sDelete = "DELETE `$sTable` FROM `$sTable` WHERE `$sTable`.`$sExtKeyField` IN ($sIds)"; - $aFixIt[] = $sDelete; - $aErrorsAndFixes[$sClass][$sErrorDesc]['cleanup'][] = $sDelete; - $iOffset += $iStep; - } - while (count($aIds) == $iStep); - $aFixIt[] = ""; - $aFixIt[] = "-- Or fix inconsistant values: Replace XXX with the appropriate value"; - foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) - { - $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sExtKeyField` = XXX WHERE `$sTable`.`$sExtKeyField` = '$sKey'"; - } - $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = $aFixIt; - } - - if (!$oAttDef->IsNullAllowed()) - { - $sSelect = "SELECT DISTINCT `$sTable`.`$sKeyField` AS id"; - $sDelete = "DELETE `$sTable`"; - $sFilter = "FROM `$sTable` WHERE `$sTable`.`$sExtKeyField` IS NULL OR `$sTable`.`$sExtKeyField` = 0"; - $sSelWrongRecs = "$sSelect $sFilter"; - $sFixItRequest = "$sDelete $sFilter"; - $sErrorDesc = Dict::Format('DBAnalyzer-Integrity-MissingExtKey', $sAttCode, $sTable, $sExtKeyField); - $this->ExecQuery($sSelWrongRecs, $sFixItRequest, $sErrorDesc, $sClass, $aErrorsAndFixes); - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['count']) && ($aErrorsAndFixes[$sClass][$sErrorDesc]['count'] > 0)) - { - $aFixIt = $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit']; - $aFixIt[] = "-- Alternate fix"; - $aFixIt[] = "-- Replace XXX with the appropriate value"; - $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sExtKeyField` = XXX WHERE `$sTable`.`$sExtKeyField` IS NULL OR `$sTable`.`$sExtKeyField` = 0"; - $aAdditionalFixIt = $this->GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField); + if ($oAttDef->IsNullAllowed()) { + $aFixIt[] = "-- Fix inconsistant values: remove the external key"; + foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) { + $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sExtKeyField` = 0 WHERE `$sTable`.`$sExtKeyField` = '$sKey'"; + } + } else { + $aAdditionalFixIt = $this->GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter, $sJoin); foreach ($aAdditionalFixIt as $sFixIt) { $aFixIt[] = $sFixIt; } + + $aFixIt[] = "-- Alternate fix: remove inconsistant entries:"; + $sIds = implode(', ', array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])); + $aFixIt[] = "DELETE `$sTable` FROM `$sTable` WHERE `$sTable`.`$sExtKeyField` IN ($sIds)"; + + $aFixIt[] = "-- Alternate fix: update inconsistant values: Replace XXX with the appropriate value"; + foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) { + $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sExtKeyField` = XXX WHERE `$sTable`.`$sExtKeyField` = '$sKey'"; + } + } + $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = $aFixIt; + } + + if (!$oAttDef->IsNullAllowed()) { + $sSelect = "SELECT DISTINCT `$sTable`.`$sKeyField` AS id"; + $sDelete = "DELETE `$sTable`"; + $sFrom = "FROM `$sTable`"; + $sFilter = "WHERE `$sTable`.`$sExtKeyField` IS NULL OR `$sTable`.`$sExtKeyField` = 0"; + $sSelWrongRecs = "$sSelect $sFrom $sFilter"; + $sFixItRequest = "$sDelete $sFrom $sFilter"; + $sErrorDesc = Dict::Format('DBAnalyzer-Integrity-MissingExtKey', $sAttCode, $sTable, $sExtKeyField); + $this->ExecQuery($sSelWrongRecs, '', $sErrorDesc, $sClass, $aErrorsAndFixes); + $aFixIt = []; + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['count']) && ($aErrorsAndFixes[$sClass][$sErrorDesc]['count'] > 0)) + { + $aAdditionalFixIt = $this->GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter); + foreach ($aAdditionalFixIt as $sFixIt) + { + $aFixIt[] = $sFixIt; + } + $aFixIt[] = "-- Alternate fix: remove inconsistant entries:"; + $aFixIt[] = $sFixItRequest; + $aFixIt[] = "-- Alternate fix: replace XXX with the appropriate value"; + $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sExtKeyField` = XXX WHERE `$sTable`.`$sExtKeyField` IS NULL OR `$sTable`.`$sExtKeyField` = 0"; $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = $aFixIt; } } } - private function GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField) + private function GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter, $sJoin = '') { $aFixIt = array(); if ($sTable == 'ticket' && $sExtKeyField == 'org_id') { $aFixIt[] = "-- Alternate fix: set the ticket org to the caller org"; - $aFixIt[] = "UPDATE ticket AS t JOIN contact AS c ON t.caller_id=c.id SET t.org_id=c.org_id WHERE t.org_id IS NULL OR t.org_id = 0"; + $aFixIt[] = "UPDATE ticket JOIN contact AS c ON ticket.caller_id=c.id $sJoin SET ticket.org_id=c.org_id $sFilter"; } return $aFixIt; } @@ -452,7 +449,8 @@ SQL; $aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode); if (!is_null($aAllowedValues) && count($aAllowedValues) > 0) { - $sExpectedValues = implode(",", CMDBSource::Quote(array_keys($aAllowedValues), true)); + $aAllowedValues = array_keys($aAllowedValues); + $sExpectedValues = implode(",", CMDBSource::Quote($aAllowedValues, true)); $aCols = $oAttDef->GetSQLExpressions(); // Workaround a PHP bug: sometimes issuing a Notice if invoking current(somefunc()) $sMyAttributeField = current($aCols); // get the first column for the moment @@ -469,15 +467,18 @@ SQL; if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'])) { $aFixIt = $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit']; - $aFixIt[] = "-- Alternative: Replace 'XXX' with the appropriate value"; + $aFixIt[] = "-- Alternative: Replace enums with the appropriate value"; } else { - $aFixIt = array("-- Replace 'XXX' with the appropriate value"); + $aFixIt = ["-- Replace enums with the appropriate value"]; } foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) { - $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sMyAttributeField` = 'XXX' WHERE `$sTable`.`$sMyAttributeField` = '$sKey'"; + foreach ($aAllowedValues as $sAllowedValue) { + $aFixIt[] = "-- Replace $sKey by $sAllowedValue"; + $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sMyAttributeField` = '$sAllowedValue' WHERE `$sTable`.`$sMyAttributeField` = '$sKey'"; + } } $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = $aFixIt; } diff --git a/datamodels/2.x/combodo-db-tools/dbtools.php b/datamodels/2.x/combodo-db-tools/dbtools.php index ad5e0c87a..65da705f7 100644 --- a/datamodels/2.x/combodo-db-tools/dbtools.php +++ b/datamodels/2.x/combodo-db-tools/dbtools.php @@ -23,6 +23,7 @@ use Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSec use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory; +use Combodo\iTop\Application\UI\Base\Component\Html\HtmlFactory; use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory; use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory; @@ -43,14 +44,15 @@ const MAX_RESULTS = 10; * @param ApplicationContext $oAppContext * * @return \iTopWebPage - * @throws CoreException - * @throws DictExceptionMissingString - * @throws MySQLException + * @throws \CoreException + * @throws \DictExceptionMissingString + * @throws \MySQLException */ function DisplayDBInconsistencies(iTopWebPage &$oP, ApplicationContext &$oAppContext) { $iShowId = intval(utils::ReadParam('show_id', '0')); $sClassSelection = utils::ReadParam('class_selection', ''); + $bVerbose = utils::ReadParam('verbose', 0); if (!empty($sClassSelection)) { $aClassSelection = explode(",", $sClassSelection); } else { @@ -118,7 +120,7 @@ function DisplayDBInconsistencies(iTopWebPage &$oP, ApplicationContext &$oAppCon $oForm->AddSubBlock($oAppContext->GetForFormBlock()); - if (!empty($sErrorLabelSelection) || !empty($sClassSelection)) { + if (!empty($sClassSelection)) { $oForm = FormUIBlockFactory::MakeStandard(); $oP->AddUiBlock($oForm); $oInput = InputUIBlockFactory::MakeForHidden('show_id', '0'); @@ -138,10 +140,9 @@ function DisplayDBInconsistencies(iTopWebPage &$oP, ApplicationContext &$oAppCon if (!empty($aResults)) { if ($iShowId == 3) { // Report - DisplayInconsistenciesReport($aResults); + DisplayInconsistenciesReport($aResults, $bVerbose); } - if ($iShowId == 0) { // Error List $oPanel = PanelUIBlockFactory::MakeForWarning(Dict::S('DBTools:ErrorsFound')); @@ -152,23 +153,23 @@ function DisplayDBInconsistencies(iTopWebPage &$oP, ApplicationContext &$oAppCon // Detail List $oFieldSet = FieldSetUIBlockFactory::MakeStandard(Dict::S('DBTools:ErrorsFound')); $oP->AddUiBlock($oFieldSet); - $oFieldSet->AddSubBlock(DisplayErrorDetails($aResults)); + $oFieldSet->AddSubBlock(DisplayErrorDetails($aResults, $bVerbose)); } } - return $oP; } /** * @param $aResults + * @param bool $bVerbose * * @return mixed - * @throws CoreException - * @throws DictExceptionMissingString + * @throws \CoreException + * @throws \DictExceptionMissingString */ -function DisplayInconsistenciesReport($aResults) +function DisplayInconsistenciesReport($aResults, $bVerbose = false) { - $sReportFile = DBAnalyzerUtils::GenerateReport($aResults); + $sReportFile = DBAnalyzerUtils::GenerateReport($aResults, $bVerbose); $sZipReport = "{$sReportFile}.zip"; $oArchive = new ZipArchive(); @@ -217,13 +218,15 @@ function DisplayErrorList($aResults) return DataTableUIBlockFactory::MakeForForm('', $aColumns, $aRows); } -function DisplayErrorDetails($aResults) +function DisplayErrorDetails($aResults, $bVerbose) { $oBlock = UIContentBlockUIBlockFactory::MakeStandard(); + $oBlock->AddSubBlock(HtmlFactory::MakeParagraph(Dict::S('DBTools:Disclaimer'))); + $oBlock->AddSubBlock(HtmlFactory::MakeParagraph(Dict::S('DBTools:Indication'))); + foreach ($aResults as $sClass => $aErrorList) { foreach ($aErrorList as $sErrorLabel => $aError) { - $sErrorTitle = Dict::Format('DBTools:DetailedErrorTitle', MetaModel::GetName($sClass).' ('.$sClass.')', $aError['count'], $sErrorLabel); $oCollapsible = CollapsibleSectionUIBlockFactory::MakeStandard($sErrorTitle); $oBlock->AddSubBlock($oCollapsible); @@ -231,7 +234,7 @@ function DisplayErrorDetails($aResults) $oFieldSet = FieldSetUIBlockFactory::MakeStandard(Dict::S('DBTools:SQLquery')); $oCollapsible->AddSubBlock($oFieldSet); - $oCode = UIContentBlockUIBlockFactory::MakeForCode($aError['query']); + $oCode = UIContentBlockUIBlockFactory::MakeForPreformatted($aError['query']); $oFieldSet->AddSubBlock($oCode); if (isset($aError['fixit'])) { @@ -240,30 +243,32 @@ function DisplayErrorDetails($aResults) $aQueries = $aError['fixit']; foreach ($aQueries as $sFixQuery) { - $oCode = UIContentBlockUIBlockFactory::MakeForCode($sFixQuery); + $oCode = UIContentBlockUIBlockFactory::MakeForPreformatted($sFixQuery); $oFieldSet->AddSubBlock($oCode); } } - $oFieldSet = FieldSetUIBlockFactory::MakeStandard(Dict::S('DBTools:SQLresult')); - $oCollapsible->AddSubBlock($oFieldSet); + if ($bVerbose) { + $oFieldSet = FieldSetUIBlockFactory::MakeStandard(Dict::S('DBTools:SQLresult')); + $oCollapsible->AddSubBlock($oFieldSet); - $sQueryResult = ''; - $iCount = count($aError['res']); - $iMaxCount = MAX_RESULTS; - foreach ($aError['res'] as $aRes) { - $iMaxCount--; - if ($iMaxCount < 0) { - $sQueryResult .= 'Displayed '.MAX_RESULTS."/$iCount results.
"; - break; + $sQueryResult = ''; + $iCount = count($aError['res']); + $iMaxCount = MAX_RESULTS; + foreach ($aError['res'] as $aRes) { + $iMaxCount--; + if ($iMaxCount < 0) { + $sQueryResult .= 'Displayed '.MAX_RESULTS."/$iCount results.
"; + break; + } + foreach ($aRes as $sKey => $sValue) { + $sQueryResult .= "'$sKey'='$sValue' "; + } + $sQueryResult .= '
'; } - foreach ($aRes as $sKey => $sValue) { - $sQueryResult .= "'$sKey'='$sValue' "; - } - $sQueryResult .= '
'; + $oCode = UIContentBlockUIBlockFactory::MakeForPreformatted($sQueryResult); + $oFieldSet->AddSubBlock($oCode); } - $oCode = UIContentBlockUIBlockFactory::MakeForCode($sQueryResult); - $oFieldSet->AddSubBlock($oCode); } } diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php index fd1a72c62..822960128 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php @@ -28,6 +28,8 @@ Dict::Add('EN US', 'English', 'English', array( 'DBTools:Class' => 'Class', 'DBTools:Title' => 'Database integrity check', 'DBTools:ErrorsFound' => 'Errors Found', + 'DBTools:Indication' => 'Important: after fixing errors in the database you\'ll have to run the analysis again as new inconsistencies will be generated', + 'DBTools:Disclaimer' => 'DISCLAIMER: BACKUP YOUR DATABASE BEFORE RUNNING THE FIXES', 'DBTools:Error' => 'Error', 'DBTools:Count' => 'Count', 'DBTools:SQLquery' => 'SQL query', diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php index dbce09b84..fca5f9058 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php @@ -23,6 +23,8 @@ Dict::Add('FR FR', 'French', 'Français', array( 'DBTools:Class' => 'Classe', 'DBTools:Title' => 'Contrôle de l\'intégrité de la base de données', 'DBTools:ErrorsFound' => 'Erreurs trouvées', + 'DBTools:Indication' => 'Important : après correction il est nécessaire de relancer l\'analyse car d\'autres inconsistances peuvent être générées par les modifications', + 'DBTools:Disclaimer' => 'ATTENTION : EFFECTUEZ UNE SAUVEGARDE DE LA BASE AVANT D\'APPLIQUER LES CORRECTIONS', 'DBTools:Error' => 'Erreur', 'DBTools:Count' => 'Nombre', 'DBTools:SQLquery' => 'Requête SQL', @@ -43,7 +45,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'DBTools:Inconsistencies' => 'Incohérences de base de données', 'DBTools:DetailedErrorTitle' => '%2$s erreur(s) dans la classe %1$s : %3$s', - 'DBAnalyzer-Integrity-OrphanRecord' => 'Enregistrement orphelin dans `%1$s`, il devrait avoir son équivalent dans la tableit `%2$s`', + 'DBAnalyzer-Integrity-OrphanRecord' => 'Enregistrement orphelin dans `%1$s`, il devrait avoir son équivalent dans la table `%2$s`', 'DBAnalyzer-Integrity-InvalidExtKey' => 'Clef externe invalide %1$s (colonne: `%2$s.%3$s`)', 'DBAnalyzer-Integrity-MissingExtKey' => 'Clef externe manquante %1$s (colonne: `%2$s.%3$s`)', 'DBAnalyzer-Integrity-InvalidValue' => 'Valeur invalide pour %1$s (colonne: `%2$s.%3$s`)', diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php index 10b336850..2af3c2611 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php @@ -74,11 +74,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'DBTools:LostAttachments:Button:Restore:Confirm' => '该操作无法回退, 请确认是否继续还原.', 'DBTools:LostAttachments:Button:Busy' => '请稍后...', - 'DBTools:LostAttachments:Step:Analyze' => 'First, search for lost/misplaced attachments by analyzing the database.~~', + 'DBTools:LostAttachments:Step:Analyze' => '首先, 通过分析数据库来搜索丢失或误挪动的附件.', 'DBTools:LostAttachments:Step:AnalyzeResults' => '分析结果:', - 'DBTools:LostAttachments:Step:AnalyzeResults:None' => 'Great! Every thing seems to be at the right place.~~', - 'DBTools:LostAttachments:Step:AnalyzeResults:Some' => 'Some attachments (%1$d) seem to be misplaced. Take a look at the following list and check the ones you would like to move.~~', + 'DBTools:LostAttachments:Step:AnalyzeResults:None' => '非常好! 所有附件都是正常的.', + 'DBTools:LostAttachments:Step:AnalyzeResults:Some' => '某些附件 (%1$d) 看起来放错了位置. 请检查下面的列表并选择要挪动的文件.', 'DBTools:LostAttachments:Step:AnalyzeResults:Item:Filename' => '文件名', 'DBTools:LostAttachments:Step:AnalyzeResults:Item:CurrentLocation' => '当前位置', 'DBTools:LostAttachments:Step:AnalyzeResults:Item:TargetLocation' => '移动到...', diff --git a/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php b/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php index 6ca882458..dde41d453 100644 --- a/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php +++ b/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php @@ -8,6 +8,7 @@ namespace Combodo\iTop\DBTools\Service; use CoreException; +use Dict; use DictExceptionMissingString; use MetaModel; @@ -20,29 +21,31 @@ class DBAnalyzerUtils * @throws CoreException * @throws DictExceptionMissingString */ - public static function GenerateReport($aResults) + public static function GenerateReport($aResults, $bVerbose = false) { $sDBToolsFolder = str_replace("\\", '/', APPROOT.'log/'); $sReportFile = 'dbtools-report'; $fReport = fopen($sDBToolsFolder.$sReportFile.'.log', 'w'); - fwrite($fReport, 'Database Maintenance tools: '.date('Y-m-d H:i:s')."\r\n"); + fwrite($fReport, '-- Database Maintenance tools: '.date('Y-m-d H:i:s')."\r\n"); + fwrite($fReport, "-- ".Dict::S('DBTools:Disclaimer')."\r\n"); + fwrite($fReport, "-- ".Dict::S('DBTools:Indication')."\r\n"); foreach ($aResults as $sClass => $aErrorList) { fwrite($fReport, ''); foreach ($aErrorList as $sErrorLabel => $aError) { - fwrite($fReport, "\r\n----------\r\n"); - fwrite($fReport, 'Class: '.MetaModel::GetName($sClass).' ('.$sClass.")\r\n"); + fwrite($fReport, "\r\n-- \r\n"); + fwrite($fReport, '-- Class: '.MetaModel::GetName($sClass).' ('.$sClass.")\r\n"); $iCount = $aError['count']; - fwrite($fReport, 'Count: '.$iCount."\r\n"); - fwrite($fReport, 'Error: '.$sErrorLabel."\r\n"); + fwrite($fReport, '-- Count: '.$iCount."\r\n"); + fwrite($fReport, '-- Error: '.$sErrorLabel."\r\n"); $sQuery = $aError['query']; - fwrite($fReport, 'Query: '.$sQuery."\r\n"); + fwrite($fReport, '-- Query: '.$sQuery."\r\n"); if (isset($aError['fixit'])) { - fwrite($fReport, "\r\nFix it (indication):\r\n\r\n"); + fwrite($fReport, "\r\n-- Fix it (indication):\r\n\r\n"); $aFixitQueries = $aError['fixit']; foreach ($aFixitQueries as $sFixitQuery) { @@ -51,31 +54,26 @@ class DBAnalyzerUtils fwrite($fReport, "\r\n"); } - $sQueryResult = ''; - $aIdList = array(); - foreach ($aError['res'] as $aRes) - { - foreach ($aRes as $sKey => $sValue) - { - $sQueryResult .= "'$sKey'='$sValue' "; - if ($sKey == 'id') - { - $aIdList[] = $sValue; + if ($bVerbose) { + $sQueryResult = ''; + $aIdList = []; + foreach ($aError['res'] as $aRes) { + $sQueryResult .= " - "; + foreach ($aRes as $sKey => $sValue) { + $sQueryResult .= "'$sKey'='$sValue' "; + if ($sKey == 'id') { + $aIdList[] = $sValue; + } } } - $sQueryResult .= "\r\n"; - + fwrite($fReport, "-- Result: ".$sQueryResult); + $sIdList = '('.implode(',', $aIdList).')'; + fwrite($fReport, "\r\n-- Ids: ".$sIdList."\r\n"); } - fwrite($fReport, "Result: \r\n".$sQueryResult); - $sIdList = '('.implode(',', $aIdList).')'; - fwrite($fReport, 'Ids: '.$sIdList."\r\n"); } } fclose($fReport); - - $sReportFile = $sDBToolsFolder.$sReportFile; - - return $sReportFile; + return $sDBToolsFolder.$sReportFile; } } diff --git a/datamodels/2.x/itop-attachments/dictionaries/zh_cn.dict.itop-attachments.php b/datamodels/2.x/itop-attachments/dictionaries/zh_cn.dict.itop-attachments.php index 7b323f024..c18976e3b 100644 --- a/datamodels/2.x/itop-attachments/dictionaries/zh_cn.dict.itop-attachments.php +++ b/datamodels/2.x/itop-attachments/dictionaries/zh_cn.dict.itop-attachments.php @@ -48,7 +48,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Attachment+' => '', 'Class:Attachment/Attribute:expire' => '过期', 'Class:Attachment/Attribute:expire+' => '~~', - 'Class:Attachment/Attribute:temp_id' => '临时 id', + 'Class:Attachment/Attribute:temp_id' => '临时id', 'Class:Attachment/Attribute:temp_id+' => '~~', 'Class:Attachment/Attribute:item_class' => 'Item class~~', 'Class:Attachment/Attribute:item_class+' => '~~', diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php index c181d6198..09c552bf2 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php @@ -86,8 +86,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Change/Attribute:category/Value:hardware+' => '硬件', 'Class:Change/Attribute:category/Value:network' => '网络', 'Class:Change/Attribute:category/Value:network+' => '网络', - 'Class:Change/Attribute:category/Value:other' => '其他', - 'Class:Change/Attribute:category/Value:other+' => '其他', + 'Class:Change/Attribute:category/Value:other' => '其它', + 'Class:Change/Attribute:category/Value:other+' => '其它', 'Class:Change/Attribute:category/Value:software' => '软件', 'Class:Change/Attribute:category/Value:software+' => '软件', 'Class:Change/Attribute:category/Value:system' => '系统', diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php index d027201a2..e5a92ad74 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php @@ -150,8 +150,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:PhysicalDevice/Attribute:status/Value:obsolete+' => '废弃', 'Class:PhysicalDevice/Attribute:status/Value:production' => '生产', 'Class:PhysicalDevice/Attribute:status/Value:production+' => '生产', - 'Class:PhysicalDevice/Attribute:status/Value:stock' => '闲置', - 'Class:PhysicalDevice/Attribute:status/Value:stock+' => '闲置', + 'Class:PhysicalDevice/Attribute:status/Value:stock' => '库存', + 'Class:PhysicalDevice/Attribute:status/Value:stock+' => '库存', 'Class:PhysicalDevice/Attribute:brand_id' => '品牌', 'Class:PhysicalDevice/Attribute:brand_id+' => '', 'Class:PhysicalDevice/Attribute:brand_name' => '品牌名称', @@ -653,8 +653,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:VirtualDevice/Attribute:status/Value:obsolete+' => '废弃', 'Class:VirtualDevice/Attribute:status/Value:production' => '生产', 'Class:VirtualDevice/Attribute:status/Value:production+' => '生产', - 'Class:VirtualDevice/Attribute:status/Value:stock' => '闲置', - 'Class:VirtualDevice/Attribute:status/Value:stock+' => '闲置', + 'Class:VirtualDevice/Attribute:status/Value:stock' => '库存', + 'Class:VirtualDevice/Attribute:status/Value:stock+' => '库存', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => '逻辑卷', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '该设备使用的所有逻辑卷', )); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php index 4c4fa4ce4..7829df341 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php @@ -144,9 +144,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:Incident/Attribute:cumulatedpending' => 'Pendências acumuladas', 'Class:Incident/Attribute:cumulatedpending+' => '', 'Class:Incident/Attribute:tto' => 'TTO', - 'Class:Incident/Attribute:tto+' => '', + 'Class:Incident/Attribute:tto+' => 'Tempo de atribuição', 'Class:Incident/Attribute:ttr' => 'TTR', - 'Class:Incident/Attribute:ttr+' => '', + 'Class:Incident/Attribute:ttr+' => 'Tempo de resolução', 'Class:Incident/Attribute:tto_escalation_deadline' => 'Prazo determinado TTO', 'Class:Incident/Attribute:tto_escalation_deadline+' => '', 'Class:Incident/Attribute:sla_tto_passed' => 'SLA TTO passou', diff --git a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig index 5c1dfbf83..c47642e7f 100644 --- a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig @@ -493,6 +493,10 @@ { ShowErrorDialog('{{ 'UI:ObjectDoesNotExist'|dict_s|escape('js') }}', '{{ 'Error:HTTP:404'|dict_s|escape('js') }}'); } + else if(oXHR.status === 0 && oXHR.readyState === 0) + { + //DO NOTHING the ajax call has been aborted + } else if(oXHR.responseText !== undefined && IsJSONString(oXHR.responseText) === true) { var oData = JSON.parse(oXHR.responseText); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pt_br.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pt_br.dict.itop-request-mgmt-itil.php index 6ef86a027..5f3d7b57c 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pt_br.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pt_br.dict.itop-request-mgmt-itil.php @@ -147,9 +147,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:UserRequest/Attribute:cumulatedpending' => 'Pendências acumuladas', 'Class:UserRequest/Attribute:cumulatedpending+' => '', 'Class:UserRequest/Attribute:tto' => 'TTO', - 'Class:UserRequest/Attribute:tto+' => '', + 'Class:UserRequest/Attribute:tto+' => 'Tempo de atribuição', 'Class:UserRequest/Attribute:ttr' => 'TTR', - 'Class:UserRequest/Attribute:ttr+' => '', + 'Class:UserRequest/Attribute:ttr+' => 'Tempo de resolução', 'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Prazo determinado TTO', 'Class:UserRequest/Attribute:tto_escalation_deadline+' => '', 'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO passou', diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php index 4d8da800f..384719309 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php @@ -171,8 +171,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:UserRequest/Attribute:resolution_code/Value:bug fixed+' => 'bug修复', 'Class:UserRequest/Attribute:resolution_code/Value:hardware repair' => '硬件维修', 'Class:UserRequest/Attribute:resolution_code/Value:hardware repair+' => '硬件维修', - 'Class:UserRequest/Attribute:resolution_code/Value:other' => '其他', - 'Class:UserRequest/Attribute:resolution_code/Value:other+' => '其他', + 'Class:UserRequest/Attribute:resolution_code/Value:other' => '其它', + 'Class:UserRequest/Attribute:resolution_code/Value:other+' => '其它', 'Class:UserRequest/Attribute:resolution_code/Value:software patch' => '软件补丁', 'Class:UserRequest/Attribute:resolution_code/Value:software patch+' => '软件补丁', 'Class:UserRequest/Attribute:resolution_code/Value:system update' => '系统更新', @@ -197,7 +197,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:UserRequest/Attribute:parent_change_id+' => '', 'Class:UserRequest/Attribute:parent_change_ref' => '变更编号', 'Class:UserRequest/Attribute:parent_change_ref+' => '', - 'Class:UserRequest/Attribute:parent_incident_ref' => 'Parent incident ref~~', + 'Class:UserRequest/Attribute:parent_incident_ref' => '父级事件编号', 'Class:UserRequest/Attribute:parent_incident_ref+' => '~~', 'Class:UserRequest/Attribute:related_request_list' => '子需求', 'Class:UserRequest/Attribute:related_request_list+' => '该父级需求相关的所有子需求', diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php index f11eb1cf5..d88fe1bc1 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php @@ -153,9 +153,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:UserRequest/Attribute:cumulatedpending' => 'Pendências acumuladas', 'Class:UserRequest/Attribute:cumulatedpending+' => '', 'Class:UserRequest/Attribute:tto' => 'TTO', - 'Class:UserRequest/Attribute:tto+' => '', + 'Class:UserRequest/Attribute:tto+' => 'Tempo de atribuição', 'Class:UserRequest/Attribute:ttr' => 'TTR', - 'Class:UserRequest/Attribute:ttr+' => '', + 'Class:UserRequest/Attribute:ttr+' => 'Tempo de resolução', 'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Prazo determinado TTO', 'Class:UserRequest/Attribute:tto_escalation_deadline+' => '', 'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO passou', diff --git a/dictionaries/zh_cn.dictionary.itop.core.php b/dictionaries/zh_cn.dictionary.itop.core.php index 9c3feb69e..4cd7acb4f 100644 --- a/dictionaries/zh_cn.dictionary.itop.core.php +++ b/dictionaries/zh_cn.dictionary.itop.core.php @@ -205,7 +205,7 @@ Operators:
'Core:AttributeTag' => '标签', 'Core:AttributeTag+' => '标签', - 'Core:Context=REST/JSON' => 'REST~~', + 'Core:Context=REST/JSON' => 'REST', 'Core:Context=Synchro' => 'Synchro~~', 'Core:Context=Setup' => '安装向导', 'Core:Context=GUI:Console' => 'Console~~', @@ -550,7 +550,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Trigger' => '触发器', 'Class:Trigger+' => 'Custom event handler', 'Class:Trigger/Attribute:description' => '描述', - 'Class:Trigger/Attribute:description+' => '一行描述', + 'Class:Trigger/Attribute:description+' => '简短描述', 'Class:Trigger/Attribute:action_list' => '触发的行为', 'Class:Trigger/Attribute:action_list+' => 'Actions performed when the trigger is activated', 'Class:Trigger/Attribute:finalclass' => '触发器子类别', @@ -767,7 +767,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SynchroDataSource/Error:DeletePolicyUpdateMustBeSpecified' => 'Obsolete objects are to be updated, but no update is specified.', 'Class:SynchroDataSource/Error:DataTableAlreadyExists' => 'The table %1$s already exists in the database. Please use another name for the synchro data table.', 'Core:SynchroReplica:PublicData' => '公共数据', - 'Core:SynchroReplica:PrivateDetails' => 'Private Details', + 'Core:SynchroReplica:PrivateDetails' => '专属详情', 'Core:SynchroReplica:BackToDataSource' => '返回同步数据源: %1$s', 'Core:SynchroReplica:ListOfReplicas' => 'List of Replica', 'Core:SynchroAttExtKey:ReconciliationById' => 'id (Primary Key)', @@ -941,11 +941,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Core:BulkExport:OptionLinkSets' => '包含外链的对象', 'Core:BulkExport:OptionFormattedText' => '保持文本格式', 'Core:BulkExport:ScopeDefinition' => '定义要导出的对象', - 'Core:BulkExportLabelOQLExpression' => 'OQL Query:', + 'Core:BulkExportLabelOQLExpression' => 'OQL 查询:', 'Core:BulkExportLabelPhrasebookEntry' => 'Query Phrasebook Entry:', - 'Core:BulkExportMessageEmptyOQL' => 'Please enter a valid OQL query.', + 'Core:BulkExportMessageEmptyOQL' => '请输入有效的OQL 查询.', 'Core:BulkExportMessageEmptyPhrasebookEntry' => 'Please select a valid phrasebook entry.', - 'Core:BulkExportQueryPlaceholder' => 'Type an OQL query here...', + 'Core:BulkExportQueryPlaceholder' => '请在这里输入OQL 查询...', 'Core:BulkExportCanRunNonInteractive' => '点击这里运行非交互式导出.', 'Core:BulkExportLegacyExport' => '点击这里进入旧版导出.', 'Core:BulkExport:XLSXOptions' => 'Excel 选项', @@ -982,7 +982,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:TagSetFieldData+' => '~~', 'Class:TagSetFieldData/Attribute:code' => '代码', - 'Class:TagSetFieldData/Attribute:code+' => 'Internal code. Must contain at least 3 alphanumeric characters~~', + 'Class:TagSetFieldData/Attribute:code+' => '内部代码. 必须至少包含3个数字或字母', 'Class:TagSetFieldData/Attribute:label' => '标签', 'Class:TagSetFieldData/Attribute:label+' => '显示的标签', 'Class:TagSetFieldData/Attribute:description' => '描述', diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php index fca0330dd..c8872d92f 100644 --- a/dictionaries/zh_cn.dictionary.itop.ui.php +++ b/dictionaries/zh_cn.dictionary.itop.ui.php @@ -797,7 +797,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Title:BulkDeletionOf_Count_ObjectsOf_Class' => '批量删除 %1$d 个 %2$s 类的对象', 'UI:Delete:NotAllowedToDelete' => '您无权删除该对象', 'UI:Delete:NotAllowedToUpdate_Fields' => '您无权更新以下栏目: %1$s', - 'UI:Error:ActionNotAllowed' => 'You are not allowed to do this action~~', + 'UI:Error:ActionNotAllowed' => '您无权进行操作', 'UI:Error:NotEnoughRightsToDelete' => '无法删除该对象, 因为当前用户没有足够的权限', 'UI:Error:CannotDeleteBecause' => '无法删除该对象,因为: %1$s', 'UI:Error:CannotDeleteBecauseOfDepencies' => '无法删除该对象, 因为必须事先完成一些手动操作', @@ -909,7 +909,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:AdminTools' => '管理工具', // Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:AdminTools+' => '管理工具', // Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:AdminTools?' => '具有管理员角色的用户才能使用的工具', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:SystemTools' => 'System~~', + 'Menu:SystemTools' => '系统', 'UI:ChangeManagementMenu' => '变更管理', 'UI:ChangeManagementMenu+' => '变更管理', @@ -1050,7 +1050,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:RelationGroups' => '组', 'UI:OperationCancelled' => '操作已取消', 'UI:ElementsDisplayed' => '过滤', - 'UI:RelationGroupNumber_N' => 'Group #%1$d', + 'UI:RelationGroupNumber_N' => '分组 #%1$d', 'UI:Relation:ExportAsPDF' => '导出PDF...', 'UI:RelationOption:GroupingThreshold' => '分组阈值', 'UI:Relation:AdditionalContextInfo' => '其他信息', @@ -1122,7 +1122,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:ModifiedObject' => '对象已修改', 'UI:BulkModifyStatus' => '操作', 'UI:BulkModifyStatus+' => '操作状态', - 'UI:BulkModifyErrors' => 'Errors (if any)', + 'UI:BulkModifyErrors' => '报错 (如果有)', 'UI:BulkModifyErrors+' => '阻止修改时报错', 'UI:BulkModifyStatusOk' => 'Ok', 'UI:BulkModifyStatusError' => '错误', @@ -1174,8 +1174,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:PrintResolution:A4Landscape' => 'A4 横向', 'UI:PrintResolution:LetterPortrait' => '纵向信纸', 'UI:PrintResolution:LetterLandscape' => '横向信纸', - 'UI:Toggle:SwitchToStandardDashboard' => 'Switch to standard dashboard~~', - 'UI:Toggle:SwitchToCustomDashboard' => 'Switch to custom dashboard~~', + 'UI:Toggle:StandardDashboard' => '标准', + 'UI:Toggle:CustomDashboard' => '自定义', 'UI:ConfigureThisList' => '配置这个列表...', 'UI:ListConfigurationTitle' => '列表配置', @@ -1512,7 +1512,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Search:Criteria:Title:Enum:In:Many' => '%1$s: %2$s 和 %3$s others', 'UI:Search:Criteria:Title:Enum:In:All' => '%1$s: 任何', // - TagSet widget - 'UI:Search:Criteria:Title:TagSet:Matches' => '%1$s: %2$s~~', + 'UI:Search:Criteria:Title:TagSet:Matches' => '%1$s: %2$s', // - External key widget 'UI:Search:Criteria:Title:ExternalKey:Empty' => '%1$s 已定义', 'UI:Search:Criteria:Title:ExternalKey:NotEmpty' => '%1$s 未被定义', diff --git a/lib/bin/php-parse b/lib/bin/php-parse new file mode 100644 index 000000000..e2e4c58a1 --- /dev/null +++ b/lib/bin/php-parse @@ -0,0 +1,24 @@ +#!/usr/bin/env php + var_export($binPath, true), + '__DIR__' => var_export(dirname($binPath), true), + )); + + eval($contents); + exit(0); +} +include $binPath; diff --git a/lib/composer/ClassLoader.php b/lib/composer/ClassLoader.php index 1a58957d2..247294d66 100644 --- a/lib/composer/ClassLoader.php +++ b/lib/composer/ClassLoader.php @@ -42,6 +42,8 @@ namespace Composer\Autoload; */ class ClassLoader { + private $vendorDir; + // PSR-4 private $prefixLengthsPsr4 = array(); private $prefixDirsPsr4 = array(); @@ -57,6 +59,13 @@ class ClassLoader private $missingClasses = array(); private $apcuPrefix; + private static $registeredLoaders = array(); + + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + } + public function getPrefixes() { if (!empty($this->prefixesPsr0)) { @@ -300,6 +309,17 @@ class ClassLoader public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } } /** @@ -308,6 +328,10 @@ class ClassLoader public function unregister() { spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } } /** @@ -367,6 +391,16 @@ class ClassLoader return $file; } + /** + * Returns the currently registered loaders indexed by their corresponding vendor directories. + * + * @return self[] + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + private function findFileWithExtension($class, $ext) { // PSR-4 lookup diff --git a/lib/composer/InstalledVersions.php b/lib/composer/InstalledVersions.php index f316191b3..a2f389016 100644 --- a/lib/composer/InstalledVersions.php +++ b/lib/composer/InstalledVersions.php @@ -12,6 +12,7 @@ namespace Composer; +use Composer\Autoload\ClassLoader; use Composer\Semver\VersionParser; @@ -19,6 +20,8 @@ use Composer\Semver\VersionParser; + + class InstalledVersions { private static $installed = array ( @@ -29,7 +32,7 @@ private static $installed = array ( 'aliases' => array ( ), - 'reference' => 'c11fd4f0abc87e0246ee43c6d73296e19d385f6c', + 'reference' => '51e24a4e3527c8416bc14fe28284ff67152a36c9', 'name' => '__root__', ), 'versions' => @@ -41,7 +44,7 @@ private static $installed = array ( 'aliases' => array ( ), - 'reference' => 'c11fd4f0abc87e0246ee43c6d73296e19d385f6c', + 'reference' => '51e24a4e3527c8416bc14fe28284ff67152a36c9', ), 'combodo/tcpdf' => array ( @@ -54,12 +57,12 @@ private static $installed = array ( ), 'nikic/php-parser' => array ( - 'pretty_version' => 'v4.10.4', - 'version' => '4.10.4.0', + 'pretty_version' => 'v3.1.5', + 'version' => '3.1.5.0', 'aliases' => array ( ), - 'reference' => 'c6d052fc58cb876152f89f532b95a8d7907e7f0e', + 'reference' => 'bb87e28e7d7b8d9a7fda231d37457c9210faf6ce', ), 'paragonie/random_compat' => array ( @@ -72,12 +75,12 @@ private static $installed = array ( ), 'pear/archive_tar' => array ( - 'pretty_version' => '1.4.10', - 'version' => '1.4.10.0', + 'pretty_version' => '1.4.13', + 'version' => '1.4.13.0', 'aliases' => array ( ), - 'reference' => 'bbb4f10f71a1da2715ec6d9a683f4f23c507a49b', + 'reference' => '19bb8e95490d3e3ad92fcac95500ca80bdcc7495', ), 'pear/console_getopt' => array ( @@ -99,12 +102,12 @@ private static $installed = array ( ), 'pear/pear_exception' => array ( - 'pretty_version' => 'v1.0.1', - 'version' => '1.0.1.0', + 'pretty_version' => 'v1.0.2', + 'version' => '1.0.2.0', 'aliases' => array ( ), - 'reference' => 'dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7', + 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', ), 'pelago/emogrifier' => array ( @@ -465,6 +468,8 @@ private static $installed = array ( ), ), ); +private static $canGetVendors; +private static $installedByVendor = array(); @@ -474,7 +479,16 @@ private static $installed = array ( public static function getInstalledPackages() { -return array_keys(self::$installed['versions']); +$packages = array(); +foreach (self::getInstalled() as $installed) { +$packages[] = array_keys($installed['versions']); +} + +if (1 === \count($packages)) { +return $packages[0]; +} + +return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); } @@ -487,7 +501,13 @@ return array_keys(self::$installed['versions']); public static function isInstalled($packageName) { -return isset(self::$installed['versions'][$packageName]); +foreach (self::getInstalled() as $installed) { +if (isset($installed['versions'][$packageName])) { +return true; +} +} + +return false; } @@ -522,42 +542,50 @@ return $provided->matches($constraint); public static function getVersionRanges($packageName) { -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +foreach (self::getInstalled() as $installed) { +if (!isset($installed['versions'][$packageName])) { +continue; } $ranges = array(); -if (isset(self::$installed['versions'][$packageName]['pretty_version'])) { -$ranges[] = self::$installed['versions'][$packageName]['pretty_version']; +if (isset($installed['versions'][$packageName]['pretty_version'])) { +$ranges[] = $installed['versions'][$packageName]['pretty_version']; } -if (array_key_exists('aliases', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']); +if (array_key_exists('aliases', $installed['versions'][$packageName])) { +$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); } -if (array_key_exists('replaced', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']); +if (array_key_exists('replaced', $installed['versions'][$packageName])) { +$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); } -if (array_key_exists('provided', self::$installed['versions'][$packageName])) { -$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']); +if (array_key_exists('provided', $installed['versions'][$packageName])) { +$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); } return implode(' || ', $ranges); } +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +} + public static function getVersion($packageName) { -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +foreach (self::getInstalled() as $installed) { +if (!isset($installed['versions'][$packageName])) { +continue; } -if (!isset(self::$installed['versions'][$packageName]['version'])) { +if (!isset($installed['versions'][$packageName]['version'])) { return null; } -return self::$installed['versions'][$packageName]['version']; +return $installed['versions'][$packageName]['version']; +} + +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } @@ -566,15 +594,19 @@ return self::$installed['versions'][$packageName]['version']; public static function getPrettyVersion($packageName) { -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +foreach (self::getInstalled() as $installed) { +if (!isset($installed['versions'][$packageName])) { +continue; } -if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) { +if (!isset($installed['versions'][$packageName]['pretty_version'])) { return null; } -return self::$installed['versions'][$packageName]['pretty_version']; +return $installed['versions'][$packageName]['pretty_version']; +} + +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } @@ -583,15 +615,19 @@ return self::$installed['versions'][$packageName]['pretty_version']; public static function getReference($packageName) { -if (!isset(self::$installed['versions'][$packageName])) { -throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); +foreach (self::getInstalled() as $installed) { +if (!isset($installed['versions'][$packageName])) { +continue; } -if (!isset(self::$installed['versions'][$packageName]['reference'])) { +if (!isset($installed['versions'][$packageName]['reference'])) { return null; } -return self::$installed['versions'][$packageName]['reference']; +return $installed['versions'][$packageName]['reference']; +} + +throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } @@ -600,7 +636,9 @@ return self::$installed['versions'][$packageName]['reference']; public static function getRootPackage() { -return self::$installed['root']; +$installed = self::getInstalled(); + +return $installed[0]['root']; } @@ -635,5 +673,33 @@ return self::$installed; public static function reload($data) { self::$installed = $data; +self::$installedByVendor = array(); +} + + + + + +private static function getInstalled() +{ +if (null === self::$canGetVendors) { +self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); +} + +$installed = array(); + +if (self::$canGetVendors) { +foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { +if (isset(self::$installedByVendor[$vendorDir])) { +$installed[] = self::$installedByVendor[$vendorDir]; +} elseif (is_file($vendorDir.'/composer/installed.php')) { +$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; +} +} +} + +$installed[] = self::$installed; + +return $installed; } } diff --git a/lib/composer/autoload_classmap.php b/lib/composer/autoload_classmap.php index 9f24ac3c2..03d682840 100644 --- a/lib/composer/autoload_classmap.php +++ b/lib/composer/autoload_classmap.php @@ -535,7 +535,10 @@ return array( 'OQLMenuNode' => $baseDir . '/application/menunode.class.inc.php', 'OQLParser' => $baseDir . '/core/oql/oql-parser.php', 'OQLParserException' => $baseDir . '/core/oql/oql-parser.php', + 'OQLParserParseFailureException' => $baseDir . '/core/oql/oql-parser.php', 'OQLParserRaw' => $baseDir . '/core/oql/oql-parser.php', + 'OQLParserStackOverFlowException' => $baseDir . '/core/oql/oql-parser.php', + 'OQLParserSyntaxErrorException' => $baseDir . '/core/oql/oql-parser.php', 'OQLParser_yyStackEntry' => $baseDir . '/core/oql/oql-parser.php', 'OQLParser_yyToken' => $baseDir . '/core/oql/oql-parser.php', 'OS_Guess' => $vendorDir . '/pear/pear-core-minimal/src/OS/Guess.php', @@ -832,9 +835,6 @@ return array( 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php', 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', 'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', 'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', @@ -924,11 +924,8 @@ return array( 'Symfony\\Bridge\\Twig\\Command\\DebugCommand' => $vendorDir . '/symfony/twig-bridge/Command/DebugCommand.php', 'Symfony\\Bridge\\Twig\\Command\\LintCommand' => $vendorDir . '/symfony/twig-bridge/Command/LintCommand.php', 'Symfony\\Bridge\\Twig\\DataCollector\\TwigDataCollector' => $vendorDir . '/symfony/twig-bridge/DataCollector/TwigDataCollector.php', - 'Symfony\\Bridge\\Twig\\ErrorRenderer\\TwigErrorRenderer' => $vendorDir . '/symfony/twig-bridge/ErrorRenderer/TwigErrorRenderer.php', 'Symfony\\Bridge\\Twig\\Extension\\AssetExtension' => $vendorDir . '/symfony/twig-bridge/Extension/AssetExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\CodeExtension' => $vendorDir . '/symfony/twig-bridge/Extension/CodeExtension.php', - 'Symfony\\Bridge\\Twig\\Extension\\CsrfExtension' => $vendorDir . '/symfony/twig-bridge/Extension/CsrfExtension.php', - 'Symfony\\Bridge\\Twig\\Extension\\CsrfRuntime' => $vendorDir . '/symfony/twig-bridge/Extension/CsrfRuntime.php', 'Symfony\\Bridge\\Twig\\Extension\\DumpExtension' => $vendorDir . '/symfony/twig-bridge/Extension/DumpExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\ExpressionExtension' => $vendorDir . '/symfony/twig-bridge/Extension/ExpressionExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\FormExtension' => $vendorDir . '/symfony/twig-bridge/Extension/FormExtension.php', @@ -949,10 +946,6 @@ return array( 'Symfony\\Bridge\\Twig\\Form\\TwigRendererEngine' => $vendorDir . '/symfony/twig-bridge/Form/TwigRendererEngine.php', 'Symfony\\Bridge\\Twig\\Form\\TwigRendererEngineInterface' => $vendorDir . '/symfony/twig-bridge/Form/TwigRendererEngineInterface.php', 'Symfony\\Bridge\\Twig\\Form\\TwigRendererInterface' => $vendorDir . '/symfony/twig-bridge/Form/TwigRendererInterface.php', - 'Symfony\\Bridge\\Twig\\Mime\\BodyRenderer' => $vendorDir . '/symfony/twig-bridge/Mime/BodyRenderer.php', - 'Symfony\\Bridge\\Twig\\Mime\\NotificationEmail' => $vendorDir . '/symfony/twig-bridge/Mime/NotificationEmail.php', - 'Symfony\\Bridge\\Twig\\Mime\\TemplatedEmail' => $vendorDir . '/symfony/twig-bridge/Mime/TemplatedEmail.php', - 'Symfony\\Bridge\\Twig\\Mime\\WrappedTemplatedEmail' => $vendorDir . '/symfony/twig-bridge/Mime/WrappedTemplatedEmail.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\Scope' => $vendorDir . '/symfony/twig-bridge/NodeVisitor/Scope.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\TranslationDefaultDomainNodeVisitor' => $vendorDir . '/symfony/twig-bridge/NodeVisitor/TranslationDefaultDomainNodeVisitor.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\TranslationNodeVisitor' => $vendorDir . '/symfony/twig-bridge/NodeVisitor/TranslationNodeVisitor.php', @@ -1042,7 +1035,6 @@ return array( 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\PropertyInfoPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/PropertyInfoPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\RoutingResolverPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/RoutingResolverPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\SerializerPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/SerializerPass.php', - 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\SessionPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/SessionPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TemplatingPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/TemplatingPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TranslationDumperPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/TranslationDumperPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TranslationExtractorPass' => $vendorDir . '/symfony/framework-bundle/DependencyInjection/Compiler/TranslationExtractorPass.php', @@ -1081,9 +1073,6 @@ return array( 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser' => $vendorDir . '/symfony/framework-bundle/Templating/TemplateNameParser.php', 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference' => $vendorDir . '/symfony/framework-bundle/Templating/TemplateReference.php', 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TimedPhpEngine' => $vendorDir . '/symfony/framework-bundle/Templating/TimedPhpEngine.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\ForwardCompatTestTrait' => $vendorDir . '/symfony/framework-bundle/Test/ForwardCompatTestTrait.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelTestCase' => $vendorDir . '/symfony/framework-bundle/Test/KernelTestCase.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\WebTestCase' => $vendorDir . '/symfony/framework-bundle/Test/WebTestCase.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpExtractor' => $vendorDir . '/symfony/framework-bundle/Translation/PhpExtractor.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpStringTokenParser' => $vendorDir . '/symfony/framework-bundle/Translation/PhpStringTokenParser.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\TranslationLoader' => $vendorDir . '/symfony/framework-bundle/Translation/TranslationLoader.php', @@ -1120,23 +1109,19 @@ return array( 'Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension' => $vendorDir . '/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php', 'Symfony\\Bundle\\WebProfilerBundle\\WebProfilerBundle' => $vendorDir . '/symfony/web-profiler-bundle/WebProfilerBundle.php', 'Symfony\\Component\\Cache\\Adapter\\AbstractAdapter' => $vendorDir . '/symfony/cache/Adapter/AbstractAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\AbstractTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/AbstractTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\AdapterInterface' => $vendorDir . '/symfony/cache/Adapter/AdapterInterface.php', 'Symfony\\Component\\Cache\\Adapter\\ApcuAdapter' => $vendorDir . '/symfony/cache/Adapter/ApcuAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ArrayAdapter' => $vendorDir . '/symfony/cache/Adapter/ArrayAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => $vendorDir . '/symfony/cache/Adapter/ChainAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => $vendorDir . '/symfony/cache/Adapter/DoctrineAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\MemcachedAdapter' => $vendorDir . '/symfony/cache/Adapter/MemcachedAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\NullAdapter' => $vendorDir . '/symfony/cache/Adapter/NullAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PdoAdapter' => $vendorDir . '/symfony/cache/Adapter/PdoAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PhpArrayAdapter' => $vendorDir . '/symfony/cache/Adapter/PhpArrayAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PhpFilesAdapter' => $vendorDir . '/symfony/cache/Adapter/PhpFilesAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ProxyAdapter' => $vendorDir . '/symfony/cache/Adapter/ProxyAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\Psr16Adapter' => $vendorDir . '/symfony/cache/Adapter/Psr16Adapter.php', 'Symfony\\Component\\Cache\\Adapter\\RedisAdapter' => $vendorDir . '/symfony/cache/Adapter/RedisAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\RedisTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/RedisTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\SimpleCacheAdapter' => $vendorDir . '/symfony/cache/Adapter/SimpleCacheAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/TagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapterInterface' => $vendorDir . '/symfony/cache/Adapter/TagAwareAdapterInterface.php', @@ -1144,21 +1129,10 @@ return array( 'Symfony\\Component\\Cache\\Adapter\\TraceableTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/TraceableTagAwareAdapter.php', 'Symfony\\Component\\Cache\\CacheItem' => $vendorDir . '/symfony/cache/CacheItem.php', 'Symfony\\Component\\Cache\\DataCollector\\CacheDataCollector' => $vendorDir . '/symfony/cache/DataCollector/CacheDataCollector.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CacheCollectorPass' => $vendorDir . '/symfony/cache/DependencyInjection/CacheCollectorPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php', 'Symfony\\Component\\Cache\\DoctrineProvider' => $vendorDir . '/symfony/cache/DoctrineProvider.php', 'Symfony\\Component\\Cache\\Exception\\CacheException' => $vendorDir . '/symfony/cache/Exception/CacheException.php', 'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/cache/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Cache\\Exception\\LogicException' => $vendorDir . '/symfony/cache/Exception/LogicException.php', - 'Symfony\\Component\\Cache\\LockRegistry' => $vendorDir . '/symfony/cache/LockRegistry.php', - 'Symfony\\Component\\Cache\\Marshaller\\DefaultMarshaller' => $vendorDir . '/symfony/cache/Marshaller/DefaultMarshaller.php', - 'Symfony\\Component\\Cache\\Marshaller\\DeflateMarshaller' => $vendorDir . '/symfony/cache/Marshaller/DeflateMarshaller.php', - 'Symfony\\Component\\Cache\\Marshaller\\MarshallerInterface' => $vendorDir . '/symfony/cache/Marshaller/MarshallerInterface.php', - 'Symfony\\Component\\Cache\\Marshaller\\TagAwareMarshaller' => $vendorDir . '/symfony/cache/Marshaller/TagAwareMarshaller.php', 'Symfony\\Component\\Cache\\PruneableInterface' => $vendorDir . '/symfony/cache/PruneableInterface.php', - 'Symfony\\Component\\Cache\\Psr16Cache' => $vendorDir . '/symfony/cache/Psr16Cache.php', 'Symfony\\Component\\Cache\\ResettableInterface' => $vendorDir . '/symfony/cache/ResettableInterface.php', 'Symfony\\Component\\Cache\\Simple\\AbstractCache' => $vendorDir . '/symfony/cache/Simple/AbstractCache.php', 'Symfony\\Component\\Cache\\Simple\\ApcuCache' => $vendorDir . '/symfony/cache/Simple/ApcuCache.php', @@ -1174,11 +1148,9 @@ return array( 'Symfony\\Component\\Cache\\Simple\\Psr6Cache' => $vendorDir . '/symfony/cache/Simple/Psr6Cache.php', 'Symfony\\Component\\Cache\\Simple\\RedisCache' => $vendorDir . '/symfony/cache/Simple/RedisCache.php', 'Symfony\\Component\\Cache\\Simple\\TraceableCache' => $vendorDir . '/symfony/cache/Simple/TraceableCache.php', - 'Symfony\\Component\\Cache\\Traits\\AbstractAdapterTrait' => $vendorDir . '/symfony/cache/Traits/AbstractAdapterTrait.php', 'Symfony\\Component\\Cache\\Traits\\AbstractTrait' => $vendorDir . '/symfony/cache/Traits/AbstractTrait.php', 'Symfony\\Component\\Cache\\Traits\\ApcuTrait' => $vendorDir . '/symfony/cache/Traits/ApcuTrait.php', 'Symfony\\Component\\Cache\\Traits\\ArrayTrait' => $vendorDir . '/symfony/cache/Traits/ArrayTrait.php', - 'Symfony\\Component\\Cache\\Traits\\ContractsTrait' => $vendorDir . '/symfony/cache/Traits/ContractsTrait.php', 'Symfony\\Component\\Cache\\Traits\\DoctrineTrait' => $vendorDir . '/symfony/cache/Traits/DoctrineTrait.php', 'Symfony\\Component\\Cache\\Traits\\FilesystemCommonTrait' => $vendorDir . '/symfony/cache/Traits/FilesystemCommonTrait.php', 'Symfony\\Component\\Cache\\Traits\\FilesystemTrait' => $vendorDir . '/symfony/cache/Traits/FilesystemTrait.php', @@ -1187,7 +1159,6 @@ return array( 'Symfony\\Component\\Cache\\Traits\\PhpArrayTrait' => $vendorDir . '/symfony/cache/Traits/PhpArrayTrait.php', 'Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => $vendorDir . '/symfony/cache/Traits/PhpFilesTrait.php', 'Symfony\\Component\\Cache\\Traits\\ProxyTrait' => $vendorDir . '/symfony/cache/Traits/ProxyTrait.php', - 'Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterProxy.php', 'Symfony\\Component\\Cache\\Traits\\RedisProxy' => $vendorDir . '/symfony/cache/Traits/RedisProxy.php', 'Symfony\\Component\\Cache\\Traits\\RedisTrait' => $vendorDir . '/symfony/cache/Traits/RedisTrait.php', 'Symfony\\Component\\ClassLoader\\ApcClassLoader' => $vendorDir . '/symfony/class-loader/ApcClassLoader.php', @@ -1207,7 +1178,6 @@ return array( 'Symfony\\Component\\Config\\Definition\\BooleanNode' => $vendorDir . '/symfony/config/Definition/BooleanNode.php', 'Symfony\\Component\\Config\\Definition\\Builder\\ArrayNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/ArrayNodeDefinition.php', 'Symfony\\Component\\Config\\Definition\\Builder\\BooleanNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/BooleanNodeDefinition.php', - 'Symfony\\Component\\Config\\Definition\\Builder\\BuilderAwareInterface' => $vendorDir . '/symfony/config/Definition/Builder/BuilderAwareInterface.php', 'Symfony\\Component\\Config\\Definition\\Builder\\EnumNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/EnumNodeDefinition.php', 'Symfony\\Component\\Config\\Definition\\Builder\\ExprBuilder' => $vendorDir . '/symfony/config/Definition/Builder/ExprBuilder.php', 'Symfony\\Component\\Config\\Definition\\Builder\\FloatNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/FloatNodeDefinition.php', @@ -1233,7 +1203,6 @@ return array( 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidConfigurationException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidConfigurationException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidDefinitionException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidDefinitionException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidTypeException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidTypeException.php', - 'Symfony\\Component\\Config\\Definition\\Exception\\TreeWithoutRootNodeException' => $vendorDir . '/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\UnsetKeyException' => $vendorDir . '/symfony/config/Definition/Exception/UnsetKeyException.php', 'Symfony\\Component\\Config\\Definition\\FloatNode' => $vendorDir . '/symfony/config/Definition/FloatNode.php', 'Symfony\\Component\\Config\\Definition\\IntegerNode' => $vendorDir . '/symfony/config/Definition/IntegerNode.php', @@ -1248,7 +1217,6 @@ return array( 'Symfony\\Component\\Config\\Exception\\FileLoaderImportCircularReferenceException' => $vendorDir . '/symfony/config/Exception/FileLoaderImportCircularReferenceException.php', 'Symfony\\Component\\Config\\Exception\\FileLoaderLoadException' => $vendorDir . '/symfony/config/Exception/FileLoaderLoadException.php', 'Symfony\\Component\\Config\\Exception\\FileLocatorFileNotFoundException' => $vendorDir . '/symfony/config/Exception/FileLocatorFileNotFoundException.php', - 'Symfony\\Component\\Config\\Exception\\LoaderLoadException' => $vendorDir . '/symfony/config/Exception/LoaderLoadException.php', 'Symfony\\Component\\Config\\FileLocator' => $vendorDir . '/symfony/config/FileLocator.php', 'Symfony\\Component\\Config\\FileLocatorInterface' => $vendorDir . '/symfony/config/FileLocatorInterface.php', 'Symfony\\Component\\Config\\Loader\\DelegatingLoader' => $vendorDir . '/symfony/config/Loader/DelegatingLoader.php', @@ -1421,11 +1389,8 @@ return array( 'Symfony\\Component\\DependencyInjection\\Argument\\ArgumentInterface' => $vendorDir . '/symfony/dependency-injection/Argument/ArgumentInterface.php', 'Symfony\\Component\\DependencyInjection\\Argument\\BoundArgument' => $vendorDir . '/symfony/dependency-injection/Argument/BoundArgument.php', 'Symfony\\Component\\DependencyInjection\\Argument\\IteratorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/IteratorArgument.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ReferenceSetArgumentTrait' => $vendorDir . '/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php', 'Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => $vendorDir . '/symfony/dependency-injection/Argument/RewindableGenerator.php', 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceClosureArgument' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceClosureArgument.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocator' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceLocator.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocatorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceLocatorArgument.php', 'Symfony\\Component\\DependencyInjection\\Argument\\TaggedIteratorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/TaggedIteratorArgument.php', 'Symfony\\Component\\DependencyInjection\\ChildDefinition' => $vendorDir . '/symfony/dependency-injection/ChildDefinition.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\AbstractRecursivePass' => $vendorDir . '/symfony/dependency-injection/Compiler/AbstractRecursivePass.php', @@ -1439,7 +1404,6 @@ return array( 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckDefinitionValidityPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckReferenceValidityPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckTypeDeclarationsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\Compiler' => $vendorDir . '/symfony/dependency-injection/Compiler/Compiler.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' => $vendorDir . '/symfony/dependency-injection/Compiler/CompilerPassInterface.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\DecoratorServicePass' => $vendorDir . '/symfony/dependency-injection/Compiler/DecoratorServicePass.php', @@ -1452,7 +1416,6 @@ return array( 'Symfony\\Component\\DependencyInjection\\Compiler\\PassConfig' => $vendorDir . '/symfony/dependency-injection/Compiler/PassConfig.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\PriorityTaggedServiceTrait' => $vendorDir . '/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterEnvVarProcessorsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterReverseContainerPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterServiceSubscribersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RemoveAbstractDefinitionsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RemovePrivateAliasesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php', @@ -1479,7 +1442,6 @@ return array( 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraph' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphEdge' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphNode' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\ValidateEnvPlaceholdersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php', 'Symfony\\Component\\DependencyInjection\\Config\\AutowireServiceResource' => $vendorDir . '/symfony/dependency-injection/Config/AutowireServiceResource.php', 'Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResource' => $vendorDir . '/symfony/dependency-injection/Config/ContainerParametersResource.php', 'Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResourceChecker' => $vendorDir . '/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php', @@ -1494,10 +1456,8 @@ return array( 'Symfony\\Component\\DependencyInjection\\Dumper\\DumperInterface' => $vendorDir . '/symfony/dependency-injection/Dumper/DumperInterface.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\GraphvizDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/GraphvizDumper.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\PhpDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/PhpDumper.php', - 'Symfony\\Component\\DependencyInjection\\Dumper\\Preloader' => $vendorDir . '/symfony/dependency-injection/Dumper/Preloader.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\XmlDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/XmlDumper.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\YamlDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/YamlDumper.php', - 'Symfony\\Component\\DependencyInjection\\EnvVarLoaderInterface' => $vendorDir . '/symfony/dependency-injection/EnvVarLoaderInterface.php', 'Symfony\\Component\\DependencyInjection\\EnvVarProcessor' => $vendorDir . '/symfony/dependency-injection/EnvVarProcessor.php', 'Symfony\\Component\\DependencyInjection\\EnvVarProcessorInterface' => $vendorDir . '/symfony/dependency-injection/EnvVarProcessorInterface.php', 'Symfony\\Component\\DependencyInjection\\Exception\\AutowiringFailedException' => $vendorDir . '/symfony/dependency-injection/Exception/AutowiringFailedException.php', @@ -1506,7 +1466,6 @@ return array( 'Symfony\\Component\\DependencyInjection\\Exception\\EnvParameterException' => $vendorDir . '/symfony/dependency-injection/Exception/EnvParameterException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/dependency-injection/Exception/ExceptionInterface.php', 'Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/dependency-injection/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\DependencyInjection\\Exception\\InvalidParameterTypeException' => $vendorDir . '/symfony/dependency-injection/Exception/InvalidParameterTypeException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => $vendorDir . '/symfony/dependency-injection/Exception/LogicException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\OutOfBoundsException' => $vendorDir . '/symfony/dependency-injection/Exception/OutOfBoundsException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => $vendorDir . '/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php', @@ -1565,15 +1524,12 @@ return array( 'Symfony\\Component\\DependencyInjection\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/XmlFileLoader.php', 'Symfony\\Component\\DependencyInjection\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/YamlFileLoader.php', 'Symfony\\Component\\DependencyInjection\\Parameter' => $vendorDir . '/symfony/dependency-injection/Parameter.php', - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ContainerBag.php', - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php', 'Symfony\\Component\\DependencyInjection\\Reference' => $vendorDir . '/symfony/dependency-injection/Reference.php', 'Symfony\\Component\\DependencyInjection\\ResettableContainerInterface' => $vendorDir . '/symfony/dependency-injection/ResettableContainerInterface.php', - 'Symfony\\Component\\DependencyInjection\\ReverseContainer' => $vendorDir . '/symfony/dependency-injection/ReverseContainer.php', 'Symfony\\Component\\DependencyInjection\\ServiceLocator' => $vendorDir . '/symfony/dependency-injection/ServiceLocator.php', 'Symfony\\Component\\DependencyInjection\\ServiceSubscriberInterface' => $vendorDir . '/symfony/dependency-injection/ServiceSubscriberInterface.php', 'Symfony\\Component\\DependencyInjection\\TaggedContainerInterface' => $vendorDir . '/symfony/dependency-injection/TaggedContainerInterface.php', @@ -1588,7 +1544,6 @@ return array( 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => $vendorDir . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\AddEventAliasesPass' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php', 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', 'Symfony\\Component\\EventDispatcher\\Event' => $vendorDir . '/symfony/event-dispatcher/Event.php', 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/EventDispatcher.php', @@ -1596,23 +1551,18 @@ return array( 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php', 'Symfony\\Component\\EventDispatcher\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php', 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\LegacyEventDispatcherProxy' => $vendorDir . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php', - 'Symfony\\Component\\EventDispatcher\\LegacyEventProxy' => $vendorDir . '/symfony/event-dispatcher/LegacyEventProxy.php', 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', 'Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', 'Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', 'Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', 'Symfony\\Component\\Filesystem\\LockHandler' => $vendorDir . '/symfony/filesystem/LockHandler.php', 'Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', 'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/finder/Exception/ExceptionInterface.php', 'Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', 'Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', @@ -1639,15 +1589,8 @@ return array( 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php', 'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/PartialFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php', 'Symfony\\Component\\HttpFoundation\\File\\File' => $vendorDir . '/symfony/http-foundation/File/File.php', @@ -1661,7 +1604,6 @@ return array( 'Symfony\\Component\\HttpFoundation\\File\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php', 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php', 'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => $vendorDir . '/symfony/http-foundation/HeaderUtils.php', 'Symfony\\Component\\HttpFoundation\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php', 'Symfony\\Component\\HttpFoundation\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php', 'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php', @@ -1683,18 +1625,14 @@ return array( 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionUtils' => $vendorDir . '/symfony/http-foundation/Session/SessionUtils.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\SessionHandlerFactory' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php', @@ -1707,15 +1645,6 @@ return array( 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => $vendorDir . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => $vendorDir . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\RequestAttributeValueSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseCookieValueSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHasCookie' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHasHeader' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHeaderSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsRedirected' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsSuccessful' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseStatusCodeSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php', - 'Symfony\\Component\\HttpFoundation\\UrlHelper' => $vendorDir . '/symfony/http-foundation/UrlHelper.php', 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => $vendorDir . '/symfony/http-kernel/Bundle/Bundle.php', 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => $vendorDir . '/symfony/http-kernel/Bundle/BundleInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => $vendorDir . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', @@ -1734,19 +1663,16 @@ return array( 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\NotTaggedControllerValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => $vendorDir . '/symfony/http-kernel/Controller/ControllerReference.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ErrorController' => $vendorDir . '/symfony/http-kernel/Controller/ErrorController.php', 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', @@ -1775,7 +1701,6 @@ return array( 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterLocaleAwareServicesPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterLocaleAwareServicesPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', @@ -1783,12 +1708,9 @@ return array( 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => $vendorDir . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => $vendorDir . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener' => $vendorDir . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => $vendorDir . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener' => $vendorDir . '/symfony/http-kernel/EventListener/ErrorListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => $vendorDir . '/symfony/http-kernel/EventListener/ExceptionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => $vendorDir . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleAwareListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => $vendorDir . '/symfony/http-kernel/EventListener/ProfilerListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/ResponseListener.php', @@ -1800,9 +1722,6 @@ return array( 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/TestSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => $vendorDir . '/symfony/http-kernel/EventListener/TranslatorListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => $vendorDir . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/ExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterResponseEvent.php', @@ -1812,14 +1731,9 @@ return array( 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => $vendorDir . '/symfony/http-kernel/Event/KernelEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\RequestEvent' => $vendorDir . '/symfony/http-kernel/Event/RequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/ResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\TerminateEvent' => $vendorDir . '/symfony/http-kernel/Event/TerminateEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ViewEvent' => $vendorDir . '/symfony/http-kernel/Event/ViewEvent.php', 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ControllerDoesNotReturnResponseException' => $vendorDir . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php', 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', @@ -1852,9 +1766,7 @@ return array( 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/StoreInterface.php', 'Symfony\\Component\\HttpKernel\\HttpCache\\SubRequestHandler' => $vendorDir . '/symfony/http-kernel/HttpCache/SubRequestHandler.php', 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpClientKernel' => $vendorDir . '/symfony/http-kernel/HttpClientKernel.php', 'Symfony\\Component\\HttpKernel\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelBrowser' => $vendorDir . '/symfony/http-kernel/HttpKernelBrowser.php', 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php', 'Symfony\\Component\\HttpKernel\\Kernel' => $vendorDir . '/symfony/http-kernel/Kernel.php', 'Symfony\\Component\\HttpKernel\\KernelEvents' => $vendorDir . '/symfony/http-kernel/KernelEvents.php', @@ -1878,9 +1790,7 @@ return array( 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => $vendorDir . '/symfony/routing/Exception/NoConfigurationException.php', 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => $vendorDir . '/symfony/routing/Exception/ResourceNotFoundException.php', 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => $vendorDir . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\CompiledUrlGenerator' => $vendorDir . '/symfony/routing/Generator/CompiledUrlGenerator.php', 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => $vendorDir . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\CompiledUrlGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', @@ -1896,18 +1806,13 @@ return array( 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\ContainerLoader' => $vendorDir . '/symfony/routing/Loader/ContainerLoader.php', 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => $vendorDir . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php', 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => $vendorDir . '/symfony/routing/Loader/GlobFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectLoader' => $vendorDir . '/symfony/routing/Loader/ObjectLoader.php', 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => $vendorDir . '/symfony/routing/Loader/ObjectRouteLoader.php', 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\CompiledUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/CompiledUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherTrait' => $vendorDir . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperCollection.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => $vendorDir . '/symfony/routing/Matcher/Dumper/DumperRoute.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', @@ -1943,21 +1848,13 @@ return array( 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => $vendorDir . '/symfony/var-dumper/Caster/DOMCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => $vendorDir . '/symfony/var-dumper/Caster/DateCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => $vendorDir . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DsCaster' => $vendorDir . '/symfony/var-dumper/Caster/DsCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DsPairStub' => $vendorDir . '/symfony/var-dumper/Caster/DsPairStub.php', 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ImagineCaster' => $vendorDir . '/symfony/var-dumper/Caster/ImagineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ImgStub' => $vendorDir . '/symfony/var-dumper/Caster/ImgStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => $vendorDir . '/symfony/var-dumper/Caster/IntlCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => $vendorDir . '/symfony/var-dumper/Caster/MemcachedCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => $vendorDir . '/symfony/var-dumper/Caster/MongoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => $vendorDir . '/symfony/var-dumper/Caster/ProxyManagerCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php', @@ -1965,7 +1862,6 @@ return array( 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => $vendorDir . '/symfony/var-dumper/Caster/StubCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => $vendorDir . '/symfony/var-dumper/Caster/SymfonyCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => $vendorDir . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\UuidCaster' => $vendorDir . '/symfony/var-dumper/Caster/UuidCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlReaderCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlResourceCaster.php', 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => $vendorDir . '/symfony/var-dumper/Cloner/AbstractCloner.php', @@ -1975,24 +1871,11 @@ return array( 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php', 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php', 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php', 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextualizedDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ContextualizedDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php', 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php', 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\Connection' => $vendorDir . '/symfony/var-dumper/Server/Connection.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php', 'Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php', 'Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php', @@ -2063,7 +1946,6 @@ return array( 'Twig\\Error\\RuntimeError' => $vendorDir . '/twig/twig/src/Error/RuntimeError.php', 'Twig\\Error\\SyntaxError' => $vendorDir . '/twig/twig/src/Error/SyntaxError.php', 'Twig\\ExpressionParser' => $vendorDir . '/twig/twig/src/ExpressionParser.php', - 'Twig\\ExtensionSet' => $vendorDir . '/twig/twig/src/ExtensionSet.php', 'Twig\\Extension\\AbstractExtension' => $vendorDir . '/twig/twig/src/Extension/AbstractExtension.php', 'Twig\\Extension\\CoreExtension' => $vendorDir . '/twig/twig/src/Extension/CoreExtension.php', 'Twig\\Extension\\DebugExtension' => $vendorDir . '/twig/twig/src/Extension/DebugExtension.php', @@ -2089,7 +1971,6 @@ return array( 'Twig\\NodeTraverser' => $vendorDir . '/twig/twig/src/NodeTraverser.php', 'Twig\\NodeVisitor\\AbstractNodeVisitor' => $vendorDir . '/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php', 'Twig\\NodeVisitor\\EscaperNodeVisitor' => $vendorDir . '/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php', - 'Twig\\NodeVisitor\\MacroAutoImportNodeVisitor' => $vendorDir . '/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php', 'Twig\\NodeVisitor\\NodeVisitorInterface' => $vendorDir . '/twig/twig/src/NodeVisitor/NodeVisitorInterface.php', 'Twig\\NodeVisitor\\OptimizerNodeVisitor' => $vendorDir . '/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php', 'Twig\\NodeVisitor\\SafeAnalysisNodeVisitor' => $vendorDir . '/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php', @@ -2131,7 +2012,6 @@ return array( 'Twig\\Node\\Expression\\Binary\\OrBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/OrBinary.php', 'Twig\\Node\\Expression\\Binary\\PowerBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/PowerBinary.php', 'Twig\\Node\\Expression\\Binary\\RangeBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/RangeBinary.php', - 'Twig\\Node\\Expression\\Binary\\SpaceshipBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php', 'Twig\\Node\\Expression\\Binary\\StartsWithBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php', 'Twig\\Node\\Expression\\Binary\\SubBinary' => $vendorDir . '/twig/twig/src/Node/Expression/Binary/SubBinary.php', 'Twig\\Node\\Expression\\BlockReferenceExpression' => $vendorDir . '/twig/twig/src/Node/Expression/BlockReferenceExpression.php', @@ -2160,7 +2040,6 @@ return array( 'Twig\\Node\\Expression\\Unary\\NegUnary' => $vendorDir . '/twig/twig/src/Node/Expression/Unary/NegUnary.php', 'Twig\\Node\\Expression\\Unary\\NotUnary' => $vendorDir . '/twig/twig/src/Node/Expression/Unary/NotUnary.php', 'Twig\\Node\\Expression\\Unary\\PosUnary' => $vendorDir . '/twig/twig/src/Node/Expression/Unary/PosUnary.php', - 'Twig\\Node\\Expression\\VariadicExpression' => $vendorDir . '/twig/twig/src/Node/Expression/VariadicExpression.php', 'Twig\\Node\\FlushNode' => $vendorDir . '/twig/twig/src/Node/FlushNode.php', 'Twig\\Node\\ForLoopNode' => $vendorDir . '/twig/twig/src/Node/ForLoopNode.php', 'Twig\\Node\\ForNode' => $vendorDir . '/twig/twig/src/Node/ForNode.php', @@ -2203,8 +2082,6 @@ return array( 'Twig\\Source' => $vendorDir . '/twig/twig/src/Source.php', 'Twig\\Template' => $vendorDir . '/twig/twig/src/Template.php', 'Twig\\TemplateWrapper' => $vendorDir . '/twig/twig/src/TemplateWrapper.php', - 'Twig\\Test\\IntegrationTestCase' => $vendorDir . '/twig/twig/src/Test/IntegrationTestCase.php', - 'Twig\\Test\\NodeTestCase' => $vendorDir . '/twig/twig/src/Test/NodeTestCase.php', 'Twig\\Token' => $vendorDir . '/twig/twig/src/Token.php', 'Twig\\TokenParser\\AbstractTokenParser' => $vendorDir . '/twig/twig/src/TokenParser/AbstractTokenParser.php', 'Twig\\TokenParser\\ApplyTokenParser' => $vendorDir . '/twig/twig/src/TokenParser/ApplyTokenParser.php', @@ -2251,7 +2128,6 @@ return array( 'Twig_ExpressionParser' => $vendorDir . '/twig/twig/lib/Twig/ExpressionParser.php', 'Twig_Extension' => $vendorDir . '/twig/twig/lib/Twig/Extension.php', 'Twig_ExtensionInterface' => $vendorDir . '/twig/twig/lib/Twig/ExtensionInterface.php', - 'Twig_ExtensionSet' => $vendorDir . '/twig/twig/lib/Twig/ExtensionSet.php', 'Twig_Extension_Core' => $vendorDir . '/twig/twig/lib/Twig/Extension/Core.php', 'Twig_Extension_Debug' => $vendorDir . '/twig/twig/lib/Twig/Extension/Debug.php', 'Twig_Extension_Escaper' => $vendorDir . '/twig/twig/lib/Twig/Extension/Escaper.php', @@ -2403,8 +2279,6 @@ return array( 'Twig_Test' => $vendorDir . '/twig/twig/lib/Twig/Test.php', 'Twig_TestCallableInterface' => $vendorDir . '/twig/twig/lib/Twig/TestCallableInterface.php', 'Twig_TestInterface' => $vendorDir . '/twig/twig/lib/Twig/TestInterface.php', - 'Twig_Test_IntegrationTestCase' => $vendorDir . '/twig/twig/lib/Twig/Test/IntegrationTestCase.php', - 'Twig_Test_NodeTestCase' => $vendorDir . '/twig/twig/lib/Twig/Test/NodeTestCase.php', 'Twig_Token' => $vendorDir . '/twig/twig/lib/Twig/Token.php', 'Twig_TokenParser' => $vendorDir . '/twig/twig/lib/Twig/TokenParser.php', 'Twig_TokenParserBroker' => $vendorDir . '/twig/twig/lib/Twig/TokenParserBroker.php', diff --git a/lib/composer/autoload_real.php b/lib/composer/autoload_real.php index 4f1c7e5ca..661cd2543 100644 --- a/lib/composer/autoload_real.php +++ b/lib/composer/autoload_real.php @@ -25,7 +25,7 @@ class ComposerAutoloaderInit0018331147de7601e7552f7da8e3bb8b require __DIR__ . '/platform_check.php'; spl_autoload_register(array('ComposerAutoloaderInit0018331147de7601e7552f7da8e3bb8b', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); spl_autoload_unregister(array('ComposerAutoloaderInit0018331147de7601e7552f7da8e3bb8b', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; diff --git a/lib/composer/autoload_static.php b/lib/composer/autoload_static.php index 796d02a94..4bd7d15c3 100644 --- a/lib/composer/autoload_static.php +++ b/lib/composer/autoload_static.php @@ -765,7 +765,10 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'OQLMenuNode' => __DIR__ . '/../..' . '/application/menunode.class.inc.php', 'OQLParser' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', 'OQLParserException' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', + 'OQLParserParseFailureException' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', 'OQLParserRaw' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', + 'OQLParserStackOverFlowException' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', + 'OQLParserSyntaxErrorException' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', 'OQLParser_yyStackEntry' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', 'OQLParser_yyToken' => __DIR__ . '/../..' . '/core/oql/oql-parser.php', 'OS_Guess' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/OS/Guess.php', @@ -1062,9 +1065,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php', 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', 'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', 'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', @@ -1154,11 +1154,8 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Bridge\\Twig\\Command\\DebugCommand' => __DIR__ . '/..' . '/symfony/twig-bridge/Command/DebugCommand.php', 'Symfony\\Bridge\\Twig\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/twig-bridge/Command/LintCommand.php', 'Symfony\\Bridge\\Twig\\DataCollector\\TwigDataCollector' => __DIR__ . '/..' . '/symfony/twig-bridge/DataCollector/TwigDataCollector.php', - 'Symfony\\Bridge\\Twig\\ErrorRenderer\\TwigErrorRenderer' => __DIR__ . '/..' . '/symfony/twig-bridge/ErrorRenderer/TwigErrorRenderer.php', 'Symfony\\Bridge\\Twig\\Extension\\AssetExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/AssetExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\CodeExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/CodeExtension.php', - 'Symfony\\Bridge\\Twig\\Extension\\CsrfExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/CsrfExtension.php', - 'Symfony\\Bridge\\Twig\\Extension\\CsrfRuntime' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/CsrfRuntime.php', 'Symfony\\Bridge\\Twig\\Extension\\DumpExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/DumpExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\ExpressionExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/ExpressionExtension.php', 'Symfony\\Bridge\\Twig\\Extension\\FormExtension' => __DIR__ . '/..' . '/symfony/twig-bridge/Extension/FormExtension.php', @@ -1179,10 +1176,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Bridge\\Twig\\Form\\TwigRendererEngine' => __DIR__ . '/..' . '/symfony/twig-bridge/Form/TwigRendererEngine.php', 'Symfony\\Bridge\\Twig\\Form\\TwigRendererEngineInterface' => __DIR__ . '/..' . '/symfony/twig-bridge/Form/TwigRendererEngineInterface.php', 'Symfony\\Bridge\\Twig\\Form\\TwigRendererInterface' => __DIR__ . '/..' . '/symfony/twig-bridge/Form/TwigRendererInterface.php', - 'Symfony\\Bridge\\Twig\\Mime\\BodyRenderer' => __DIR__ . '/..' . '/symfony/twig-bridge/Mime/BodyRenderer.php', - 'Symfony\\Bridge\\Twig\\Mime\\NotificationEmail' => __DIR__ . '/..' . '/symfony/twig-bridge/Mime/NotificationEmail.php', - 'Symfony\\Bridge\\Twig\\Mime\\TemplatedEmail' => __DIR__ . '/..' . '/symfony/twig-bridge/Mime/TemplatedEmail.php', - 'Symfony\\Bridge\\Twig\\Mime\\WrappedTemplatedEmail' => __DIR__ . '/..' . '/symfony/twig-bridge/Mime/WrappedTemplatedEmail.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\Scope' => __DIR__ . '/..' . '/symfony/twig-bridge/NodeVisitor/Scope.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\TranslationDefaultDomainNodeVisitor' => __DIR__ . '/..' . '/symfony/twig-bridge/NodeVisitor/TranslationDefaultDomainNodeVisitor.php', 'Symfony\\Bridge\\Twig\\NodeVisitor\\TranslationNodeVisitor' => __DIR__ . '/..' . '/symfony/twig-bridge/NodeVisitor/TranslationNodeVisitor.php', @@ -1272,7 +1265,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\PropertyInfoPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/PropertyInfoPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\RoutingResolverPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/RoutingResolverPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\SerializerPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/SerializerPass.php', - 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\SessionPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/SessionPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TemplatingPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/TemplatingPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TranslationDumperPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/TranslationDumperPass.php', 'Symfony\\Bundle\\FrameworkBundle\\DependencyInjection\\Compiler\\TranslationExtractorPass' => __DIR__ . '/..' . '/symfony/framework-bundle/DependencyInjection/Compiler/TranslationExtractorPass.php', @@ -1311,9 +1303,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TemplateNameParser.php', 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TemplateReference.php', 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TimedPhpEngine' => __DIR__ . '/..' . '/symfony/framework-bundle/Templating/TimedPhpEngine.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\ForwardCompatTestTrait' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/ForwardCompatTestTrait.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\KernelTestCase' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/KernelTestCase.php', - 'Symfony\\Bundle\\FrameworkBundle\\Test\\WebTestCase' => __DIR__ . '/..' . '/symfony/framework-bundle/Test/WebTestCase.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpExtractor' => __DIR__ . '/..' . '/symfony/framework-bundle/Translation/PhpExtractor.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/framework-bundle/Translation/PhpStringTokenParser.php', 'Symfony\\Bundle\\FrameworkBundle\\Translation\\TranslationLoader' => __DIR__ . '/..' . '/symfony/framework-bundle/Translation/TranslationLoader.php', @@ -1350,23 +1339,19 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension' => __DIR__ . '/..' . '/symfony/web-profiler-bundle/Twig/WebProfilerExtension.php', 'Symfony\\Bundle\\WebProfilerBundle\\WebProfilerBundle' => __DIR__ . '/..' . '/symfony/web-profiler-bundle/WebProfilerBundle.php', 'Symfony\\Component\\Cache\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/AbstractAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\AbstractTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/AbstractTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\AdapterInterface' => __DIR__ . '/..' . '/symfony/cache/Adapter/AdapterInterface.php', 'Symfony\\Component\\Cache\\Adapter\\ApcuAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ApcuAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ArrayAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ArrayAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ChainAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/DoctrineAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\MemcachedAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/MemcachedAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/NullAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PdoAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PdoAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PhpArrayAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PhpArrayAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\PhpFilesAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PhpFilesAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\ProxyAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ProxyAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\Psr16Adapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/Psr16Adapter.php', 'Symfony\\Component\\Cache\\Adapter\\RedisAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/RedisAdapter.php', - 'Symfony\\Component\\Cache\\Adapter\\RedisTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/RedisTagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\SimpleCacheAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/SimpleCacheAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/TagAwareAdapter.php', 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapterInterface' => __DIR__ . '/..' . '/symfony/cache/Adapter/TagAwareAdapterInterface.php', @@ -1374,21 +1359,10 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Cache\\Adapter\\TraceableTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/TraceableTagAwareAdapter.php', 'Symfony\\Component\\Cache\\CacheItem' => __DIR__ . '/..' . '/symfony/cache/CacheItem.php', 'Symfony\\Component\\Cache\\DataCollector\\CacheDataCollector' => __DIR__ . '/..' . '/symfony/cache/DataCollector/CacheDataCollector.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CacheCollectorPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CacheCollectorPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPass.php', - 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php', 'Symfony\\Component\\Cache\\DoctrineProvider' => __DIR__ . '/..' . '/symfony/cache/DoctrineProvider.php', 'Symfony\\Component\\Cache\\Exception\\CacheException' => __DIR__ . '/..' . '/symfony/cache/Exception/CacheException.php', 'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/cache/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Cache\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/cache/Exception/LogicException.php', - 'Symfony\\Component\\Cache\\LockRegistry' => __DIR__ . '/..' . '/symfony/cache/LockRegistry.php', - 'Symfony\\Component\\Cache\\Marshaller\\DefaultMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/DefaultMarshaller.php', - 'Symfony\\Component\\Cache\\Marshaller\\DeflateMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/DeflateMarshaller.php', - 'Symfony\\Component\\Cache\\Marshaller\\MarshallerInterface' => __DIR__ . '/..' . '/symfony/cache/Marshaller/MarshallerInterface.php', - 'Symfony\\Component\\Cache\\Marshaller\\TagAwareMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/TagAwareMarshaller.php', 'Symfony\\Component\\Cache\\PruneableInterface' => __DIR__ . '/..' . '/symfony/cache/PruneableInterface.php', - 'Symfony\\Component\\Cache\\Psr16Cache' => __DIR__ . '/..' . '/symfony/cache/Psr16Cache.php', 'Symfony\\Component\\Cache\\ResettableInterface' => __DIR__ . '/..' . '/symfony/cache/ResettableInterface.php', 'Symfony\\Component\\Cache\\Simple\\AbstractCache' => __DIR__ . '/..' . '/symfony/cache/Simple/AbstractCache.php', 'Symfony\\Component\\Cache\\Simple\\ApcuCache' => __DIR__ . '/..' . '/symfony/cache/Simple/ApcuCache.php', @@ -1404,11 +1378,9 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Cache\\Simple\\Psr6Cache' => __DIR__ . '/..' . '/symfony/cache/Simple/Psr6Cache.php', 'Symfony\\Component\\Cache\\Simple\\RedisCache' => __DIR__ . '/..' . '/symfony/cache/Simple/RedisCache.php', 'Symfony\\Component\\Cache\\Simple\\TraceableCache' => __DIR__ . '/..' . '/symfony/cache/Simple/TraceableCache.php', - 'Symfony\\Component\\Cache\\Traits\\AbstractAdapterTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/AbstractAdapterTrait.php', 'Symfony\\Component\\Cache\\Traits\\AbstractTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/AbstractTrait.php', 'Symfony\\Component\\Cache\\Traits\\ApcuTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ApcuTrait.php', 'Symfony\\Component\\Cache\\Traits\\ArrayTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ArrayTrait.php', - 'Symfony\\Component\\Cache\\Traits\\ContractsTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ContractsTrait.php', 'Symfony\\Component\\Cache\\Traits\\DoctrineTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/DoctrineTrait.php', 'Symfony\\Component\\Cache\\Traits\\FilesystemCommonTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/FilesystemCommonTrait.php', 'Symfony\\Component\\Cache\\Traits\\FilesystemTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/FilesystemTrait.php', @@ -1417,7 +1389,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Cache\\Traits\\PhpArrayTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpArrayTrait.php', 'Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpFilesTrait.php', 'Symfony\\Component\\Cache\\Traits\\ProxyTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ProxyTrait.php', - 'Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterProxy.php', 'Symfony\\Component\\Cache\\Traits\\RedisProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisProxy.php', 'Symfony\\Component\\Cache\\Traits\\RedisTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisTrait.php', 'Symfony\\Component\\ClassLoader\\ApcClassLoader' => __DIR__ . '/..' . '/symfony/class-loader/ApcClassLoader.php', @@ -1437,7 +1408,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Config\\Definition\\BooleanNode' => __DIR__ . '/..' . '/symfony/config/Definition/BooleanNode.php', 'Symfony\\Component\\Config\\Definition\\Builder\\ArrayNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ArrayNodeDefinition.php', 'Symfony\\Component\\Config\\Definition\\Builder\\BooleanNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/BooleanNodeDefinition.php', - 'Symfony\\Component\\Config\\Definition\\Builder\\BuilderAwareInterface' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/BuilderAwareInterface.php', 'Symfony\\Component\\Config\\Definition\\Builder\\EnumNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/EnumNodeDefinition.php', 'Symfony\\Component\\Config\\Definition\\Builder\\ExprBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ExprBuilder.php', 'Symfony\\Component\\Config\\Definition\\Builder\\FloatNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/FloatNodeDefinition.php', @@ -1463,7 +1433,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidConfigurationException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidConfigurationException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidDefinitionException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidDefinitionException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\InvalidTypeException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidTypeException.php', - 'Symfony\\Component\\Config\\Definition\\Exception\\TreeWithoutRootNodeException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php', 'Symfony\\Component\\Config\\Definition\\Exception\\UnsetKeyException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/UnsetKeyException.php', 'Symfony\\Component\\Config\\Definition\\FloatNode' => __DIR__ . '/..' . '/symfony/config/Definition/FloatNode.php', 'Symfony\\Component\\Config\\Definition\\IntegerNode' => __DIR__ . '/..' . '/symfony/config/Definition/IntegerNode.php', @@ -1478,7 +1447,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Config\\Exception\\FileLoaderImportCircularReferenceException' => __DIR__ . '/..' . '/symfony/config/Exception/FileLoaderImportCircularReferenceException.php', 'Symfony\\Component\\Config\\Exception\\FileLoaderLoadException' => __DIR__ . '/..' . '/symfony/config/Exception/FileLoaderLoadException.php', 'Symfony\\Component\\Config\\Exception\\FileLocatorFileNotFoundException' => __DIR__ . '/..' . '/symfony/config/Exception/FileLocatorFileNotFoundException.php', - 'Symfony\\Component\\Config\\Exception\\LoaderLoadException' => __DIR__ . '/..' . '/symfony/config/Exception/LoaderLoadException.php', 'Symfony\\Component\\Config\\FileLocator' => __DIR__ . '/..' . '/symfony/config/FileLocator.php', 'Symfony\\Component\\Config\\FileLocatorInterface' => __DIR__ . '/..' . '/symfony/config/FileLocatorInterface.php', 'Symfony\\Component\\Config\\Loader\\DelegatingLoader' => __DIR__ . '/..' . '/symfony/config/Loader/DelegatingLoader.php', @@ -1651,11 +1619,8 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Argument\\ArgumentInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ArgumentInterface.php', 'Symfony\\Component\\DependencyInjection\\Argument\\BoundArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/BoundArgument.php', 'Symfony\\Component\\DependencyInjection\\Argument\\IteratorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/IteratorArgument.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ReferenceSetArgumentTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php', 'Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/RewindableGenerator.php', 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceClosureArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceClosureArgument.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocator' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceLocator.php', - 'Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocatorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceLocatorArgument.php', 'Symfony\\Component\\DependencyInjection\\Argument\\TaggedIteratorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/TaggedIteratorArgument.php', 'Symfony\\Component\\DependencyInjection\\ChildDefinition' => __DIR__ . '/..' . '/symfony/dependency-injection/ChildDefinition.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\AbstractRecursivePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AbstractRecursivePass.php', @@ -1669,7 +1634,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckDefinitionValidityPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckReferenceValidityPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\CheckTypeDeclarationsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\Compiler' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/Compiler.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CompilerPassInterface.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\DecoratorServicePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/DecoratorServicePass.php', @@ -1682,7 +1646,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Compiler\\PassConfig' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/PassConfig.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\PriorityTaggedServiceTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterEnvVarProcessorsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterReverseContainerPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RegisterServiceSubscribersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RemoveAbstractDefinitionsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\RemovePrivateAliasesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php', @@ -1709,7 +1672,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraph' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphEdge' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php', 'Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphNode' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php', - 'Symfony\\Component\\DependencyInjection\\Compiler\\ValidateEnvPlaceholdersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php', 'Symfony\\Component\\DependencyInjection\\Config\\AutowireServiceResource' => __DIR__ . '/..' . '/symfony/dependency-injection/Config/AutowireServiceResource.php', 'Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResource' => __DIR__ . '/..' . '/symfony/dependency-injection/Config/ContainerParametersResource.php', 'Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResourceChecker' => __DIR__ . '/..' . '/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php', @@ -1724,10 +1686,8 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Dumper\\DumperInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/DumperInterface.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\GraphvizDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/GraphvizDumper.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\PhpDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/PhpDumper.php', - 'Symfony\\Component\\DependencyInjection\\Dumper\\Preloader' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/Preloader.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\XmlDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/XmlDumper.php', 'Symfony\\Component\\DependencyInjection\\Dumper\\YamlDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/YamlDumper.php', - 'Symfony\\Component\\DependencyInjection\\EnvVarLoaderInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarLoaderInterface.php', 'Symfony\\Component\\DependencyInjection\\EnvVarProcessor' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarProcessor.php', 'Symfony\\Component\\DependencyInjection\\EnvVarProcessorInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarProcessorInterface.php', 'Symfony\\Component\\DependencyInjection\\Exception\\AutowiringFailedException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/AutowiringFailedException.php', @@ -1736,7 +1696,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Exception\\EnvParameterException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/EnvParameterException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ExceptionInterface.php', 'Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\DependencyInjection\\Exception\\InvalidParameterTypeException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/InvalidParameterTypeException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/LogicException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/OutOfBoundsException.php', 'Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php', @@ -1795,15 +1754,12 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\DependencyInjection\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/XmlFileLoader.php', 'Symfony\\Component\\DependencyInjection\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/YamlFileLoader.php', 'Symfony\\Component\\DependencyInjection\\Parameter' => __DIR__ . '/..' . '/symfony/dependency-injection/Parameter.php', - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ContainerBag.php', - 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ParameterBag.php', 'Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php', 'Symfony\\Component\\DependencyInjection\\Reference' => __DIR__ . '/..' . '/symfony/dependency-injection/Reference.php', 'Symfony\\Component\\DependencyInjection\\ResettableContainerInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ResettableContainerInterface.php', - 'Symfony\\Component\\DependencyInjection\\ReverseContainer' => __DIR__ . '/..' . '/symfony/dependency-injection/ReverseContainer.php', 'Symfony\\Component\\DependencyInjection\\ServiceLocator' => __DIR__ . '/..' . '/symfony/dependency-injection/ServiceLocator.php', 'Symfony\\Component\\DependencyInjection\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ServiceSubscriberInterface.php', 'Symfony\\Component\\DependencyInjection\\TaggedContainerInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/TaggedContainerInterface.php', @@ -1818,7 +1774,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\AddEventAliasesPass' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/AddEventAliasesPass.php', 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', 'Symfony\\Component\\EventDispatcher\\Event' => __DIR__ . '/..' . '/symfony/event-dispatcher/Event.php', 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcher.php', @@ -1826,23 +1781,18 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php', 'Symfony\\Component\\EventDispatcher\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php', 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\LegacyEventDispatcherProxy' => __DIR__ . '/..' . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php', - 'Symfony\\Component\\EventDispatcher\\LegacyEventProxy' => __DIR__ . '/..' . '/symfony/event-dispatcher/LegacyEventProxy.php', 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', 'Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', 'Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', 'Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', 'Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', 'Symfony\\Component\\Filesystem\\LockHandler' => __DIR__ . '/..' . '/symfony/filesystem/LockHandler.php', 'Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', 'Symfony\\Component\\Finder\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/finder/Exception/ExceptionInterface.php', 'Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', 'Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', @@ -1869,15 +1819,8 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php', 'Symfony\\Component\\HttpFoundation\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/PartialFileException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php', 'Symfony\\Component\\HttpFoundation\\File\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php', @@ -1891,7 +1834,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpFoundation\\File\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php', 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php', 'Symfony\\Component\\HttpFoundation\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderUtils.php', 'Symfony\\Component\\HttpFoundation\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php', 'Symfony\\Component\\HttpFoundation\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php', 'Symfony\\Component\\HttpFoundation\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php', @@ -1913,18 +1855,14 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionUtils' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionUtils.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcacheSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\SessionHandlerFactory' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\WriteCheckSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php', @@ -1937,15 +1875,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => __DIR__ . '/..' . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\RequestAttributeValueSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseCookieValueSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHasCookie' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHasHeader' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseHeaderSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsRedirected' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseIsSuccessful' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php', - 'Symfony\\Component\\HttpFoundation\\Test\\Constraint\\ResponseStatusCodeSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php', - 'Symfony\\Component\\HttpFoundation\\UrlHelper' => __DIR__ . '/..' . '/symfony/http-foundation/UrlHelper.php', 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/Bundle.php', 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleInterface.php', 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', @@ -1964,19 +1893,16 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\NotTaggedControllerValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerReference.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ErrorController' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ErrorController.php', 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', @@ -2005,7 +1931,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterLocaleAwareServicesPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterLocaleAwareServicesPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', @@ -2013,12 +1938,9 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ErrorListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ExceptionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleAwareListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ProfilerListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ResponseListener.php', @@ -2030,9 +1952,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TestSessionListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TranslatorListener.php', 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterResponseEvent.php', @@ -2042,14 +1961,9 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/KernelEvent.php', 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\RequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/RequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\TerminateEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/TerminateEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\ViewEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ViewEvent.php', 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ControllerDoesNotReturnResponseException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php', 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', @@ -2082,9 +1996,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/StoreInterface.php', 'Symfony\\Component\\HttpKernel\\HttpCache\\SubRequestHandler' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SubRequestHandler.php', 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpClientKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpClientKernel.php', 'Symfony\\Component\\HttpKernel\\HttpKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelBrowser' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelBrowser.php', 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelInterface.php', 'Symfony\\Component\\HttpKernel\\Kernel' => __DIR__ . '/..' . '/symfony/http-kernel/Kernel.php', 'Symfony\\Component\\HttpKernel\\KernelEvents' => __DIR__ . '/..' . '/symfony/http-kernel/KernelEvents.php', @@ -2108,9 +2020,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => __DIR__ . '/..' . '/symfony/routing/Exception/NoConfigurationException.php', 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/ResourceNotFoundException.php', 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\CompiledUrlGenerator' => __DIR__ . '/..' . '/symfony/routing/Generator/CompiledUrlGenerator.php', 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\CompiledUrlGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', @@ -2126,18 +2036,13 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\ContainerLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ContainerLoader.php', 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DirectoryLoader.php', 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/GlobFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectLoader.php', 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectRouteLoader.php', 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php', 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\CompiledUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/CompiledUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\CompiledUrlMatcherTrait' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperCollection.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\DumperRoute' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/DumperRoute.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', @@ -2173,21 +2078,13 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DOMCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DateCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DsCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DsPairStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsPairStub.php', 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ImagineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ImagineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ImgStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ImgStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/IntlCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MemcachedCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\MongoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MongoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ProxyManagerCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php', @@ -2195,7 +2092,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/StubCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SymfonyCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\UuidCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/UuidCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlReaderCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlResourceCaster.php', 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/AbstractCloner.php', @@ -2205,24 +2101,11 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php', 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php', 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php', 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextualizedDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextualizedDumper.php', 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php', 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php', 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\Connection' => __DIR__ . '/..' . '/symfony/var-dumper/Server/Connection.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php', 'Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php', 'Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php', @@ -2293,7 +2176,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig\\Error\\RuntimeError' => __DIR__ . '/..' . '/twig/twig/src/Error/RuntimeError.php', 'Twig\\Error\\SyntaxError' => __DIR__ . '/..' . '/twig/twig/src/Error/SyntaxError.php', 'Twig\\ExpressionParser' => __DIR__ . '/..' . '/twig/twig/src/ExpressionParser.php', - 'Twig\\ExtensionSet' => __DIR__ . '/..' . '/twig/twig/src/ExtensionSet.php', 'Twig\\Extension\\AbstractExtension' => __DIR__ . '/..' . '/twig/twig/src/Extension/AbstractExtension.php', 'Twig\\Extension\\CoreExtension' => __DIR__ . '/..' . '/twig/twig/src/Extension/CoreExtension.php', 'Twig\\Extension\\DebugExtension' => __DIR__ . '/..' . '/twig/twig/src/Extension/DebugExtension.php', @@ -2319,7 +2201,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig\\NodeTraverser' => __DIR__ . '/..' . '/twig/twig/src/NodeTraverser.php', 'Twig\\NodeVisitor\\AbstractNodeVisitor' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php', 'Twig\\NodeVisitor\\EscaperNodeVisitor' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php', - 'Twig\\NodeVisitor\\MacroAutoImportNodeVisitor' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php', 'Twig\\NodeVisitor\\NodeVisitorInterface' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/NodeVisitorInterface.php', 'Twig\\NodeVisitor\\OptimizerNodeVisitor' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php', 'Twig\\NodeVisitor\\SafeAnalysisNodeVisitor' => __DIR__ . '/..' . '/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php', @@ -2361,7 +2242,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig\\Node\\Expression\\Binary\\OrBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/OrBinary.php', 'Twig\\Node\\Expression\\Binary\\PowerBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/PowerBinary.php', 'Twig\\Node\\Expression\\Binary\\RangeBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/RangeBinary.php', - 'Twig\\Node\\Expression\\Binary\\SpaceshipBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php', 'Twig\\Node\\Expression\\Binary\\StartsWithBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php', 'Twig\\Node\\Expression\\Binary\\SubBinary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Binary/SubBinary.php', 'Twig\\Node\\Expression\\BlockReferenceExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/BlockReferenceExpression.php', @@ -2390,7 +2270,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig\\Node\\Expression\\Unary\\NegUnary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Unary/NegUnary.php', 'Twig\\Node\\Expression\\Unary\\NotUnary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Unary/NotUnary.php', 'Twig\\Node\\Expression\\Unary\\PosUnary' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/Unary/PosUnary.php', - 'Twig\\Node\\Expression\\VariadicExpression' => __DIR__ . '/..' . '/twig/twig/src/Node/Expression/VariadicExpression.php', 'Twig\\Node\\FlushNode' => __DIR__ . '/..' . '/twig/twig/src/Node/FlushNode.php', 'Twig\\Node\\ForLoopNode' => __DIR__ . '/..' . '/twig/twig/src/Node/ForLoopNode.php', 'Twig\\Node\\ForNode' => __DIR__ . '/..' . '/twig/twig/src/Node/ForNode.php', @@ -2433,8 +2312,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig\\Source' => __DIR__ . '/..' . '/twig/twig/src/Source.php', 'Twig\\Template' => __DIR__ . '/..' . '/twig/twig/src/Template.php', 'Twig\\TemplateWrapper' => __DIR__ . '/..' . '/twig/twig/src/TemplateWrapper.php', - 'Twig\\Test\\IntegrationTestCase' => __DIR__ . '/..' . '/twig/twig/src/Test/IntegrationTestCase.php', - 'Twig\\Test\\NodeTestCase' => __DIR__ . '/..' . '/twig/twig/src/Test/NodeTestCase.php', 'Twig\\Token' => __DIR__ . '/..' . '/twig/twig/src/Token.php', 'Twig\\TokenParser\\AbstractTokenParser' => __DIR__ . '/..' . '/twig/twig/src/TokenParser/AbstractTokenParser.php', 'Twig\\TokenParser\\ApplyTokenParser' => __DIR__ . '/..' . '/twig/twig/src/TokenParser/ApplyTokenParser.php', @@ -2481,7 +2358,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig_ExpressionParser' => __DIR__ . '/..' . '/twig/twig/lib/Twig/ExpressionParser.php', 'Twig_Extension' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Extension.php', 'Twig_ExtensionInterface' => __DIR__ . '/..' . '/twig/twig/lib/Twig/ExtensionInterface.php', - 'Twig_ExtensionSet' => __DIR__ . '/..' . '/twig/twig/lib/Twig/ExtensionSet.php', 'Twig_Extension_Core' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Extension/Core.php', 'Twig_Extension_Debug' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Extension/Debug.php', 'Twig_Extension_Escaper' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Extension/Escaper.php', @@ -2633,8 +2509,6 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Twig_Test' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Test.php', 'Twig_TestCallableInterface' => __DIR__ . '/..' . '/twig/twig/lib/Twig/TestCallableInterface.php', 'Twig_TestInterface' => __DIR__ . '/..' . '/twig/twig/lib/Twig/TestInterface.php', - 'Twig_Test_IntegrationTestCase' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Test/IntegrationTestCase.php', - 'Twig_Test_NodeTestCase' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Test/NodeTestCase.php', 'Twig_Token' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Token.php', 'Twig_TokenParser' => __DIR__ . '/..' . '/twig/twig/lib/Twig/TokenParser.php', 'Twig_TokenParserBroker' => __DIR__ . '/..' . '/twig/twig/lib/Twig/TokenParserBroker.php', diff --git a/lib/composer/include_paths.php b/lib/composer/include_paths.php index d4fb96718..507c1ade7 100644 --- a/lib/composer/include_paths.php +++ b/lib/composer/include_paths.php @@ -6,8 +6,8 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - $vendorDir . '/pear/archive_tar', $vendorDir . '/pear/console_getopt', $vendorDir . '/pear/pear-core-minimal/src', $vendorDir . '/pear/pear_exception', + $vendorDir . '/pear/archive_tar', ); diff --git a/lib/composer/installed.json b/lib/composer/installed.json index 508b402a5..187997b38 100644 --- a/lib/composer/installed.json +++ b/lib/composer/installed.json @@ -1,2649 +1,2717 @@ -[ - { - "name": "combodo/tcpdf", - "version": "6.3.5", - "version_normalized": "6.3.5.0", - "source": { - "type": "git", - "url": "https://github.com/combodo-itop-libs/TCPDF.git", - "reference": "aedd4b7b8cf7fcc24e617c405c9d3304150f4b94" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/combodo-itop-libs/TCPDF/zipball/aedd4b7b8cf7fcc24e617c405c9d3304150f4b94", - "reference": "aedd4b7b8cf7fcc24e617c405c9d3304150f4b94", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "replace": { - "tecnickcom/tcpdf": "self.version" - }, - "time": "2020-09-28T12:19:09+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "config", - "include", - "tcpdf.php", - "tcpdf_parser.php", - "tcpdf_import.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-only" - ], - "authors": [ - { - "name": "Nicola Asuni", - "email": "info@tecnick.com", - "role": "lead" +{ + "packages": [ + { + "name": "combodo/tcpdf", + "version": "6.3.5", + "version_normalized": "6.3.5.0", + "source": { + "type": "git", + "url": "https://github.com/combodo-itop-libs/TCPDF.git", + "reference": "aedd4b7b8cf7fcc24e617c405c9d3304150f4b94" }, - { - "name": "Combodo", - "email": "contact@combodo.com" - } - ], - "description": "TCPDF fork adding requirements for iTop: Specific fonts.", - "homepage": "https://github.com/combodo-itop-libs/TCPDF" - }, - { - "name": "nikic/php-parser", - "version": "v3.1.5", - "version_normalized": "3.1.5.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "time": "2018-02-28T20:30:58+00:00", - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ] - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.18", - "version_normalized": "2.0.18.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "time": "2019-01-03T20:59:08+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ] - }, - { - "name": "pear/archive_tar", - "version": "1.4.10", - "version_normalized": "1.4.10.0", - "source": { - "type": "git", - "url": "https://github.com/pear/Archive_Tar.git", - "reference": "bbb4f10f71a1da2715ec6d9a683f4f23c507a49b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/bbb4f10f71a1da2715ec6d9a683f4f23c507a49b", - "reference": "bbb4f10f71a1da2715ec6d9a683f4f23c507a49b", - "shasum": "" - }, - "require": { - "pear/pear-core-minimal": "^1.10.0alpha2", - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "*" - }, - "suggest": { - "ext-bz2": "Bz2 compression support.", - "ext-xz": "Lzma2 compression support.", - "ext-zlib": "Gzip compression support." - }, - "time": "2020-09-15T14:13:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Archive_Tar": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vincent Blavet", - "email": "vincent@phpconcept.net" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/combodo-itop-libs/TCPDF/zipball/aedd4b7b8cf7fcc24e617c405c9d3304150f4b94", + "reference": "aedd4b7b8cf7fcc24e617c405c9d3304150f4b94", + "shasum": "" }, - { - "name": "Greg Beaver", - "email": "greg@chiaraquartet.net" + "require": { + "php": ">=5.3.0" }, - { - "name": "Michiel Rook", - "email": "mrook@php.net" - } - ], - "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", - "homepage": "https://github.com/pear/Archive_Tar", - "keywords": [ - "archive", - "tar" - ] - }, - { - "name": "pear/console_getopt", - "version": "v1.4.3", - "version_normalized": "1.4.3.0", - "source": { - "type": "git", - "url": "https://github.com/pear/Console_Getopt.git", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "shasum": "" - }, - "time": "2019-11-20T18:27:48+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Console": "./" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Andrei Zmievski", - "email": "andrei@php.net", - "role": "Lead" + "replace": { + "tecnickcom/tcpdf": "self.version" }, - { - "name": "Stig Bakken", - "email": "stig@php.net", - "role": "Developer" + "time": "2020-09-28T12:19:09+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "config", + "include", + "tcpdf.php", + "tcpdf_parser.php", + "tcpdf_import.php", + "tcpdf_barcodes_1d.php", + "tcpdf_barcodes_2d.php", + "include/tcpdf_colors.php", + "include/tcpdf_filters.php", + "include/tcpdf_font_data.php", + "include/tcpdf_fonts.php", + "include/tcpdf_images.php", + "include/tcpdf_static.php", + "include/barcodes/datamatrix.php", + "include/barcodes/pdf417.php", + "include/barcodes/qrcode.php" + ] }, - { - "name": "Greg Beaver", - "email": "cellog@php.net", - "role": "Helper" - } - ], - "description": "More info available on: http://pear.php.net/package/Console_Getopt" - }, - { - "name": "pear/pear-core-minimal", - "version": "v1.10.10", - "version_normalized": "1.10.10.0", - "source": { - "type": "git", - "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/625a3c429d9b2c1546438679074cac1b089116a7", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7", - "shasum": "" - }, - "require": { - "pear/console_getopt": "~1.4", - "pear/pear_exception": "~1.0" - }, - "replace": { - "rsky/pear-core-min": "self.version" - }, - "time": "2019-11-19T19:00:24+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "src/" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@php.net", - "role": "Lead" - } - ], - "description": "Minimal set of PEAR core files to be used as composer dependency" - }, - { - "name": "pear/pear_exception", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", - "shasum": "" - }, - "require": { - "php": ">=4.4.0" - }, - "require-dev": { - "phpunit/phpunit": "*" - }, - "time": "2019-12-10T10:24:42+00:00", - "type": "class", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "PEAR/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "." - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Helgi Thormar", - "email": "dufuz@php.net" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net" - } - ], - "description": "The PEAR Exception base class.", - "homepage": "https://github.com/pear/PEAR_Exception", - "keywords": [ - "exception" - ] - }, - { - "name": "pelago/emogrifier", - "version": "v2.1.0", - "version_normalized": "2.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/MyIntervals/emogrifier.git", - "reference": "40c3d4f475d44ffc7265a760d1dd0e81f579f96f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/40c3d4f475d44ffc7265a760d1dd0e81f579f96f", - "reference": "40c3d4f475d44ffc7265a760d1dd0e81f579f96f", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "php": "^5.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0", - "symfony/css-selector": "^3.4.0 || ^4.0.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.2.0", - "phpmd/phpmd": "^2.6.0", - "phpunit/phpunit": "^4.8.0", - "squizlabs/php_codesniffer": "^3.3.2" - }, - "time": "2018-12-08T13:55:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Pelago\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Reeve", - "email": "jreeve@pelagodesign.com" - }, - { - "name": "Cameron Brooks" - }, - { - "name": "Jaime Prado" - }, - { - "name": "Oliver Klee", - "email": "github@oliverklee.de" - }, - { - "name": "Zoli Szabó", - "email": "zoli.szabo+github@gmail.com" - }, - { - "name": "Jake Hotson", - "email": "jake@qzdesign.co.uk" - } - ], - "description": "Converts CSS styles into inline style attributes in your HTML code", - "homepage": "https://www.myintervals.com/emogrifier.php", - "keywords": [ - "css", - "email", - "pre-processing" - ] - }, - { - "name": "psr/cache", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06T20:24:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ] - }, - { - "name": "psr/container", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-02-14T16:28:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ] - }, - { - "name": "psr/log", - "version": "1.1.2", - "version_normalized": "1.1.2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2019-11-01T11:05:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ] - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-10-23T01:57:42+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ] - }, - { - "name": "scssphp/scssphp", - "version": "1.0.6", - "version_normalized": "1.0.6.0", - "source": { - "type": "git", - "url": "https://github.com/scssphp/scssphp.git", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/scssphp/scssphp/zipball/5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3", - "squizlabs/php_codesniffer": "~2.5", - "twbs/bootstrap": "~4.3", - "zurb/foundation": "~6.5" - }, - "time": "2019-12-12T05:00:52+00:00", - "bin": [ - "bin/pscss" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "ScssPhp\\ScssPhp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "homepage": "https://github.com/robocoder" - }, - { - "name": "Cédric Morin", - "email": "cedric@yterium.com", - "homepage": "https://github.com/Cerdic" - } - ], - "description": "scssphp is a compiler for SCSS written in PHP.", - "homepage": "http://scssphp.github.io/scssphp/", - "keywords": [ - "css", - "less", - "sass", - "scss", - "stylesheet" - ] - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.12", - "version_normalized": "5.4.12.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.2" - }, - "time": "2018-07-31T09:26:32+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ] - }, - { - "name": "symfony/cache", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", - "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/cache": "~1.0", - "psr/log": "~1.0", - "psr/simple-cache": "^1.0", - "symfony/polyfill-apcu": "~1.1" - }, - "conflict": { - "symfony/var-dumper": "<3.3" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/cache": "~1.6", - "doctrine/dbal": "~2.4", - "predis/predis": "~1.0" - }, - "time": "2019-12-01T10:45:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Cache component with PSR-6, PSR-16, and tags", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ] - }, - { - "name": "symfony/class-loader", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "e212b06996819a2bce026a63da03b7182d05a690" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690", - "reference": "e212b06996819a2bce026a63da03b7182d05a690", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/polyfill-apcu": "~1.1" - }, - "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" - }, - "time": "2019-08-20T13:31:17+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony ClassLoader Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/config", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" - }, - "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "time": "2019-12-01T10:45:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/console", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ee23b3b659b06c622f2bd2492a229e416eb4586", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "time": "2019-12-01T10:04:45+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/css-selector", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", - "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2019-10-01T11:57:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/debug", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" - }, - "time": "2019-10-24T15:33:53+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/dependency-injection", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2", - "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/container": "^1.0" - }, - "conflict": { - "symfony/config": "<3.3.7", - "symfony/finder": "<3.3", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "time": "2019-12-01T08:33:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/dotenv", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "c7e8e471fea74e868ae797970b383dea89ae548a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/c7e8e471fea74e868ae797970b383dea89ae548a", - "reference": "c7e8e471fea74e868ae797970b383dea89ae548a", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "require-dev": { - "symfony/process": "^3.4.2|^4.0" - }, - "time": "2019-10-18T10:00:34+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Dotenv\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Registers environment variables from a .env file", - "homepage": "https://symfony.com", - "keywords": [ - "dotenv", - "env", - "environment" - ] - }, - { - "name": "symfony/event-dispatcher", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "time": "2019-10-24T15:33:53+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/filesystem", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "time": "2019-11-25T16:36:22+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/finder", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/290ae21279b37bfd287cdcce640d51204e84afdf", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2019-11-17T21:55:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/framework-bundle", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/framework-bundle.git", - "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", - "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", - "shasum": "" - }, - "require": { - "ext-xml": "*", - "php": "^5.5.9|>=7.0.8", - "symfony/cache": "~3.4.31|^4.3.4", - "symfony/class-loader": "~3.2", - "symfony/config": "^3.4.31|^4.3.4", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.24|^4.2.5", - "symfony/event-dispatcher": "~3.4|~4.0", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.13|~4.3", - "symfony/http-kernel": "^3.4.31|^4.3.4", - "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^3.4.5|^4.0.5" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "<3.0", - "phpdocumentor/type-resolver": "<0.2.1", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/asset": "<3.3", - "symfony/console": "<3.4", - "symfony/form": "<3.4", - "symfony/property-info": "<3.3", - "symfony/serializer": "<3.3", - "symfony/stopwatch": "<3.4", - "symfony/translation": "<3.4", - "symfony/validator": "<3.4", - "symfony/workflow": "<3.3" - }, - "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "fig/link-util": "^1.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "~3.3|~4.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/console": "~3.4.31|^4.3.4", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/form": "^3.4.31|^4.3.4", - "symfony/lock": "~3.4|~4.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/property-info": "~3.3|~4.0", - "symfony/security-core": "~3.2|~4.0", - "symfony/security-csrf": "^2.8.31|^3.3.13|~4.0", - "symfony/serializer": "~3.3|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/validator": "~3.4|~4.0", - "symfony/var-dumper": "~3.3|~4.0", - "symfony/web-link": "~3.3|~4.0", - "symfony/workflow": "~3.3|~4.0", - "symfony/yaml": "~3.2|~4.0", - "twig/twig": "~1.34|~2.4" - }, - "suggest": { - "ext-apcu": "For best performance of the system caches", - "symfony/console": "For using the console commands", - "symfony/form": "For using forms", - "symfony/property-info": "For using the property_info service", - "symfony/serializer": "For using the serializer service", - "symfony/validator": "For using validation", - "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", - "symfony/yaml": "For using the debug:config and lint:yaml commands" - }, - "time": "2019-11-23T20:30:33+00:00", - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\FrameworkBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony FrameworkBundle", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/http-foundation", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593", - "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" - }, - "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" - }, - "time": "2019-11-28T12:52:59+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/http-kernel", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c42c8339acb28cfff0fb1786948db4d23d609ff7", - "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "^3.3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php56": "~1.8" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.10|^4.0.10", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" - }, - "time": "2019-12-01T13:50:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/polyfill-apcu", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a8e961c841b9ec52927a87914f8820a1ad8f8116", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Apcu\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ] - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2019-11-27T14:18:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "af23c7bb26a73b850840823662dda371484926c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", - "reference": "af23c7bb26a73b850840823662dda371484926c4", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-only" ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-util", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony utilities for portability of PHP codes", - "homepage": "https://symfony.com", - "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" - ] - }, - { - "name": "symfony/routing", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/b689ccd48e234ea404806d94b07eeb45f9f6f06a", - "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/config": "<3.3.1", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "^3.3.1|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "time": "2019-12-01T08:33:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ] - }, - { - "name": "symfony/stopwatch", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "efe0af281ad336bc3b10375c88b117499f1d8494" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494", - "reference": "efe0af281ad336bc3b10375c88b117499f1d8494", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "time": "2019-11-03T17:17:59+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Stopwatch Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/twig-bridge", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/twig-bridge.git", - "reference": "49b824ddc7f2d250a1f172349cd9a111d63287c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/49b824ddc7f2d250a1f172349cd9a111d63287c0", - "reference": "49b824ddc7f2d250a1f172349cd9a111d63287c0", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "twig/twig": "^1.41|^2.10" - }, - "conflict": { - "symfony/console": "<3.4", - "symfony/form": "<3.4.31|>=4.0,<4.3.4" - }, - "require-dev": { - "fig/link-util": "^1.0", - "symfony/asset": "~2.8|~3.0|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/form": "^3.4.31|^4.3.4", - "symfony/http-foundation": "^3.3.11|~4.0", - "symfony/http-kernel": "~3.2|~4.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "~2.8|~3.0|~4.0", - "symfony/security": "^2.8.31|^3.3.13|~4.0", - "symfony/security-acl": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~2.8.10|~3.1.4|~3.2|~4.0", - "symfony/web-link": "~3.3|~4.0", - "symfony/workflow": "~3.3|~4.0", - "symfony/yaml": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/asset": "For using the AssetExtension", - "symfony/expression-language": "For using the ExpressionExtension", - "symfony/finder": "", - "symfony/form": "For using the FormExtension", - "symfony/http-kernel": "For using the HttpKernelExtension", - "symfony/routing": "For using the RoutingExtension", - "symfony/security": "For using the SecurityExtension", - "symfony/stopwatch": "For using the StopwatchExtension", - "symfony/templating": "For using the TwigEngine", - "symfony/translation": "For using the TranslationExtension", - "symfony/var-dumper": "For using the DumpExtension", - "symfony/web-link": "For using the WebLinkExtension", - "symfony/yaml": "For using the YamlExtension" - }, - "time": "2019-11-30T08:19:08+00:00", - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Twig\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Twig Bridge", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/twig-bundle", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/twig-bundle.git", - "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", - "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/config": "~3.2|~4.0", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "^3.3|~4.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/twig-bridge": "^3.4.3|^4.0.3", - "twig/twig": "~1.41|~2.10" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<3.3.1" - }, - "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "symfony/asset": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4.24|^4.2.5", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/form": "~2.8|~3.0|~4.0", - "symfony/framework-bundle": "^3.3.11|~4.0", - "symfony/routing": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/web-link": "~3.3|~4.0", - "symfony/yaml": "~2.8|~3.0|~4.0" - }, - "time": "2019-10-01T15:13:36+00:00", - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\TwigBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony TwigBundle", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/var-dumper", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "569e261461600810845a8305ca3f64abd3e712c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/569e261461600810845a8305ca3f64abd3e712c0", - "reference": "569e261461600810845a8305ca3f64abd3e712c0", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "require-dev": { - "ext-iconv": "*", - "twig/twig": "~1.34|~2.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "ext-symfony_debug": "" - }, - "time": "2019-10-10T11:03:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions/dump.php" + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + }, + { + "name": "Combodo", + "email": "contact@combodo.com" + } ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "description": "TCPDF fork adding requirements for iTop: Specific fonts.", + "homepage": "https://github.com/combodo-itop-libs/TCPDF", + "install-path": "../combodo/tcpdf" + }, + { + "name": "nikic/php-parser", + "version": "v3.1.5", + "version_normalized": "3.1.5.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "shasum": "" }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ] - }, - { - "name": "symfony/web-profiler-bundle", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "3ae27cf1b2776cd68aa15fdb57089970f78bcf11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/3ae27cf1b2776cd68aa15fdb57089970f78bcf11", - "reference": "3ae27cf1b2776cd68aa15fdb57089970f78bcf11", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/http-kernel": "~3.4.25|^4.2.6", - "symfony/polyfill-php70": "~1.0", - "symfony/routing": "~2.8|~3.0|~4.0", - "symfony/twig-bundle": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0", - "twig/twig": "~1.34|~2.4" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<3.3.1", - "symfony/var-dumper": "<3.3" - }, - "require-dev": { - "symfony/config": "~3.4|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "time": "2019-11-14T15:04:06+00:00", - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Bundle\\WebProfilerBundle\\": "" + "require": { + "ext-tokenizer": "*", + "php": ">=5.5" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony WebProfilerBundle", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/yaml", - "version": "v3.4.36", - "version_normalized": "3.4.36.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "dab657db15207879217fc81df4f875947bf68804" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", - "reference": "dab657db15207879217fc81df4f875947bf68804", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "time": "2019-10-24T15:33:53+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" + "time": "2018-02-28T20:30:58+00:00", + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "installation-source": "dist", + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com" - }, - { - "name": "twig/twig", - "version": "v1.42.4", - "version_normalized": "1.42.4.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "install-path": "../nikic/php-parser" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", - "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", - "shasum": "" - }, - "require": { - "php": ">=5.5.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "^3.4|^4.2", - "symfony/phpunit-bridge": "^4.4@dev|^5.0" - }, - "time": "2019-11-11T16:49:32+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.42-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Twig_": "lib/" + { + "name": "paragonie/random_compat", + "version": "v2.0.18", + "version_normalized": "2.0.18.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" }, - "psr-4": { - "Twig\\": "src/" - } + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "time": "2019-01-03T20:59:08+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "install-path": "../paragonie/random_compat" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + { + "name": "pear/archive_tar", + "version": "1.4.13", + "version_normalized": "1.4.13.0", + "source": { + "type": "git", + "url": "https://github.com/pear/Archive_Tar.git", + "reference": "2b87b41178cc6d4ad3cba678a46a1cae49786011" }, - { - "name": "Twig Team", - "homepage": "https://twig.symfony.com/contributors", - "role": "Contributors" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/19bb8e95490d3e3ad92fcac95500ca80bdcc7495", + "reference": "19bb8e95490d3e3ad92fcac95500ca80bdcc7495", + "shasum": "" }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ] - } -] + "require": { + "pear/pear-core-minimal": "^1.10.0alpha2", + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-bz2": "Bz2 compression support.", + "ext-xz": "Lzma2 compression support.", + "ext-zlib": "Gzip compression support." + }, + "time": "2021-01-18T19:32:54+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Archive_Tar": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Vincent Blavet", + "email": "vincent@phpconcept.net" + }, + { + "name": "Greg Beaver", + "email": "greg@chiaraquartet.net" + }, + { + "name": "Michiel Rook", + "email": "mrook@php.net" + } + ], + "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", + "homepage": "https://github.com/pear/Archive_Tar", + "keywords": [ + "archive", + "tar" + ], + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", + "source": "https://github.com/pear/Archive_Tar" + }, + "funding": [ + { + "url": "https://github.com/mrook", + "type": "github" + }, + { + "url": "https://www.patreon.com/michielrook", + "type": "patreon" + } + ], + "install-path": "../pear/archive_tar" + }, + { + "name": "pear/console_getopt", + "version": "v1.4.3", + "version_normalized": "1.4.3.0", + "source": { + "type": "git", + "url": "https://github.com/pear/Console_Getopt.git", + "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", + "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", + "shasum": "" + }, + "time": "2019-11-20T18:27:48+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Console": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Andrei Zmievski", + "email": "andrei@php.net", + "role": "Lead" + }, + { + "name": "Stig Bakken", + "email": "stig@php.net", + "role": "Developer" + }, + { + "name": "Greg Beaver", + "email": "cellog@php.net", + "role": "Helper" + } + ], + "description": "More info available on: http://pear.php.net/package/Console_Getopt", + "install-path": "../pear/console_getopt" + }, + { + "name": "pear/pear-core-minimal", + "version": "v1.10.10", + "version_normalized": "1.10.10.0", + "source": { + "type": "git", + "url": "https://github.com/pear/pear-core-minimal.git", + "reference": "625a3c429d9b2c1546438679074cac1b089116a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/625a3c429d9b2c1546438679074cac1b089116a7", + "reference": "625a3c429d9b2c1546438679074cac1b089116a7", + "shasum": "" + }, + "require": { + "pear/console_getopt": "~1.4", + "pear/pear_exception": "~1.0" + }, + "replace": { + "rsky/pear-core-min": "self.version" + }, + "time": "2019-11-19T19:00:24+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "src/" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@php.net", + "role": "Lead" + } + ], + "description": "Minimal set of PEAR core files to be used as composer dependency", + "install-path": "../pear/pear-core-minimal" + }, + { + "name": "pear/pear_exception", + "version": "v1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/pear/PEAR_Exception.git", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "<9" + }, + "time": "2021-03-21T15:43:46+00:00", + "type": "class", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "PEAR/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "." + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Helgi Thormar", + "email": "dufuz@php.net" + }, + { + "name": "Greg Beaver", + "email": "cellog@php.net" + } + ], + "description": "The PEAR Exception base class.", + "homepage": "https://github.com/pear/PEAR_Exception", + "keywords": [ + "exception" + ], + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", + "source": "https://github.com/pear/PEAR_Exception" + }, + "install-path": "../pear/pear_exception" + }, + { + "name": "pelago/emogrifier", + "version": "v2.1.0", + "version_normalized": "2.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/MyIntervals/emogrifier.git", + "reference": "40c3d4f475d44ffc7265a760d1dd0e81f579f96f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/40c3d4f475d44ffc7265a760d1dd0e81f579f96f", + "reference": "40c3d4f475d44ffc7265a760d1dd0e81f579f96f", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0", + "symfony/css-selector": "^3.4.0 || ^4.0.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.2.0", + "phpmd/phpmd": "^2.6.0", + "phpunit/phpunit": "^4.8.0", + "squizlabs/php_codesniffer": "^3.3.2" + }, + "time": "2018-12-08T13:55:46+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Pelago\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Reeve", + "email": "jreeve@pelagodesign.com" + }, + { + "name": "Cameron Brooks" + }, + { + "name": "Jaime Prado" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Zoli Szabó", + "email": "zoli.szabo+github@gmail.com" + }, + { + "name": "Jake Hotson", + "email": "jake@qzdesign.co.uk" + } + ], + "description": "Converts CSS styles into inline style attributes in your HTML code", + "homepage": "https://www.myintervals.com/emogrifier.php", + "keywords": [ + "css", + "email", + "pre-processing" + ], + "install-path": "../pelago/emogrifier" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-08-06T20:24:11+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "install-path": "../psr/cache" + }, + { + "name": "psr/container", + "version": "1.0.0", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2017-02-14T16:28:37+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "install-path": "../psr/container" + }, + { + "name": "psr/log", + "version": "1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2019-11-01T11:05:21+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "install-path": "../psr/log" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2017-10-23T01:57:42+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "install-path": "../psr/simple-cache" + }, + { + "name": "scssphp/scssphp", + "version": "1.0.6", + "version_normalized": "1.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/scssphp/scssphp.git", + "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/scssphp/scssphp/zipball/5b3c9d704950d8f9637f5110c36c281ec47dc13c", + "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3", + "squizlabs/php_codesniffer": "~2.5", + "twbs/bootstrap": "~4.3", + "zurb/foundation": "~6.5" + }, + "time": "2019-12-12T05:00:52+00:00", + "bin": [ + "bin/pscss" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "ScssPhp\\ScssPhp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "homepage": "https://github.com/robocoder" + }, + { + "name": "Cédric Morin", + "email": "cedric@yterium.com", + "homepage": "https://github.com/Cerdic" + } + ], + "description": "scssphp is a compiler for SCSS written in PHP.", + "homepage": "http://scssphp.github.io/scssphp/", + "keywords": [ + "css", + "less", + "sass", + "scss", + "stylesheet" + ], + "install-path": "../scssphp/scssphp" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.12", + "version_normalized": "5.4.12.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "181b89f18a90f8925ef805f950d47a7190e9b950" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950", + "reference": "181b89f18a90f8925ef805f950d47a7190e9b950", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.2" + }, + "time": "2018-07-31T09:26:32+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "install-path": "../swiftmailer/swiftmailer" + }, + { + "name": "symfony/cache", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", + "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0", + "symfony/polyfill-apcu": "~1.1" + }, + "conflict": { + "symfony/var-dumper": "<3.3" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.4", + "predis/predis": "~1.0" + }, + "time": "2019-12-01T10:45:41+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "install-path": "../symfony/cache" + }, + { + "name": "symfony/class-loader", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/class-loader.git", + "reference": "e212b06996819a2bce026a63da03b7182d05a690" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690", + "reference": "e212b06996819a2bce026a63da03b7182d05a690", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + }, + "time": "2019-08-20T13:31:17+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\ClassLoader\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ClassLoader Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/class-loader" + }, + { + "name": "symfony/config", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "time": "2019-12-01T10:45:41+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/config" + }, + { + "name": "symfony/console", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/1ee23b3b659b06c622f2bd2492a229e416eb4586", + "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "time": "2019-12-01T10:04:45+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/console" + }, + { + "name": "symfony/css-selector", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", + "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "time": "2019-10-01T11:57:37+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/css-selector" + }, + { + "name": "symfony/debug", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "time": "2019-10-24T15:33:53+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/debug" + }, + { + "name": "symfony/dependency-injection", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "time": "2019-12-01T08:33:36+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/dependency-injection" + }, + { + "name": "symfony/dotenv", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "c7e8e471fea74e868ae797970b383dea89ae548a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/c7e8e471fea74e868ae797970b383dea89ae548a", + "reference": "c7e8e471fea74e868ae797970b383dea89ae548a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0" + }, + "time": "2019-10-18T10:00:34+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "install-path": "../symfony/dotenv" + }, + { + "name": "symfony/event-dispatcher", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "time": "2019-10-24T15:33:53+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/event-dispatcher" + }, + { + "name": "symfony/filesystem", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "time": "2019-11-25T16:36:22+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/filesystem" + }, + { + "name": "symfony/finder", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "290ae21279b37bfd287cdcce640d51204e84afdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/290ae21279b37bfd287cdcce640d51204e84afdf", + "reference": "290ae21279b37bfd287cdcce640d51204e84afdf", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "time": "2019-11-17T21:55:15+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/finder" + }, + { + "name": "symfony/framework-bundle", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", + "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^5.5.9|>=7.0.8", + "symfony/cache": "~3.4.31|^4.3.4", + "symfony/class-loader": "~3.2", + "symfony/config": "^3.4.31|^4.3.4", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.24|^4.2.5", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.4.13|~4.3", + "symfony/http-kernel": "^3.4.31|^4.3.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/routing": "^3.4.5|^4.0.5" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.3", + "symfony/console": "<3.4", + "symfony/form": "<3.4", + "symfony/property-info": "<3.3", + "symfony/serializer": "<3.3", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<3.4", + "symfony/validator": "<3.4", + "symfony/workflow": "<3.3" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.0", + "fig/link-util": "^1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/asset": "~3.3|~4.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/console": "~3.4.31|^4.3.4", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/form": "^3.4.31|^4.3.4", + "symfony/lock": "~3.4|~4.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.3|~4.0", + "symfony/security-core": "~3.2|~4.0", + "symfony/security-csrf": "^2.8.31|^3.3.13|~4.0", + "symfony/serializer": "~3.3|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/validator": "~3.4|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/web-link": "~3.3|~4.0", + "symfony/workflow": "~3.3|~4.0", + "symfony/yaml": "~3.2|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "time": "2019-11-23T20:30:33+00:00", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony FrameworkBundle", + "homepage": "https://symfony.com", + "install-path": "../symfony/framework-bundle" + }, + { + "name": "symfony/http-foundation", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0|~4.0" + }, + "time": "2019-11-28T12:52:59+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/http-foundation" + }, + { + "name": "symfony/http-kernel", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c42c8339acb28cfff0fb1786948db4d23d609ff7", + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0", + "symfony/debug": "^3.3.3|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php56": "~1.8" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.10|^4.0.10", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "time": "2019-12-01T13:50:37+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/http-kernel" + }, + { + "name": "symfony/polyfill-apcu", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-apcu.git", + "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a8e961c841b9ec52927a87914f8820a1ad8f8116", + "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2019-11-27T13:56:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Apcu\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "apcu", + "compatibility", + "polyfill", + "portable", + "shim" + ], + "install-path": "../symfony/polyfill-apcu" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "time": "2019-11-27T13:56:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "install-path": "../symfony/polyfill-ctype" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "time": "2019-11-27T14:18:11+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "install-path": "../symfony/polyfill-mbstring" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "time": "2019-11-27T13:56:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "install-path": "../symfony/polyfill-php56" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "af23c7bb26a73b850840823662dda371484926c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", + "reference": "af23c7bb26a73b850840823662dda371484926c4", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0|~9.99", + "php": ">=5.3.3" + }, + "time": "2019-11-27T13:56:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "install-path": "../symfony/polyfill-php70" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.13.1", + "version_normalized": "1.13.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2019-11-27T13:56:44+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "install-path": "../symfony/polyfill-util" + }, + { + "name": "symfony/routing", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/config": "<3.3.1", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "psr/log": "~1.0", + "symfony/config": "^3.3.1|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "time": "2019-12-01T08:33:36+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "install-path": "../symfony/routing" + }, + { + "name": "symfony/stopwatch", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494", + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "time": "2019-11-03T17:17:59+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/stopwatch" + }, + { + "name": "symfony/twig-bridge", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "49b824ddc7f2d250a1f172349cd9a111d63287c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/49b824ddc7f2d250a1f172349cd9a111d63287c0", + "reference": "49b824ddc7f2d250a1f172349cd9a111d63287c0", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "twig/twig": "^1.41|^2.10" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/form": "<3.4.31|>=4.0,<4.3.4" + }, + "require-dev": { + "fig/link-util": "^1.0", + "symfony/asset": "~2.8|~3.0|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/form": "^3.4.31|^4.3.4", + "symfony/http-foundation": "^3.3.11|~4.0", + "symfony/http-kernel": "~3.2|~4.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/security": "^2.8.31|^3.3.13|~4.0", + "symfony/security-acl": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~2.8.10|~3.1.4|~3.2|~4.0", + "symfony/web-link": "~3.3|~4.0", + "symfony/workflow": "~3.3|~4.0", + "symfony/yaml": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security": "For using the SecurityExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/templating": "For using the TwigEngine", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "time": "2019-11-30T08:19:08+00:00", + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Twig Bridge", + "homepage": "https://symfony.com", + "install-path": "../symfony/twig-bridge" + }, + { + "name": "symfony/twig-bundle", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", + "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/config": "~3.2|~4.0", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3|~4.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/twig-bridge": "^3.4.3|^4.0.3", + "twig/twig": "~1.41|~2.10" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<3.3.1" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.0", + "symfony/asset": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4.24|^4.2.5", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/form": "~2.8|~3.0|~4.0", + "symfony/framework-bundle": "^3.3.11|~4.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/web-link": "~3.3|~4.0", + "symfony/yaml": "~2.8|~3.0|~4.0" + }, + "time": "2019-10-01T15:13:36+00:00", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony TwigBundle", + "homepage": "https://symfony.com", + "install-path": "../symfony/twig-bundle" + }, + { + "name": "symfony/var-dumper", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "569e261461600810845a8305ca3f64abd3e712c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/569e261461600810845a8305ca3f64abd3e712c0", + "reference": "569e261461600810845a8305ca3f64abd3e712c0", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + }, + "require-dev": { + "ext-iconv": "*", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "ext-symfony_debug": "" + }, + "time": "2019-10-10T11:03:19+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "install-path": "../symfony/var-dumper" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "3ae27cf1b2776cd68aa15fdb57089970f78bcf11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/3ae27cf1b2776cd68aa15fdb57089970f78bcf11", + "reference": "3ae27cf1b2776cd68aa15fdb57089970f78bcf11", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/http-kernel": "~3.4.25|^4.2.6", + "symfony/polyfill-php70": "~1.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/twig-bundle": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<3.3.1", + "symfony/var-dumper": "<3.3" + }, + "require-dev": { + "symfony/config": "~3.4|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "time": "2019-11-14T15:04:06+00:00", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebProfilerBundle", + "homepage": "https://symfony.com", + "install-path": "../symfony/web-profiler-bundle" + }, + { + "name": "symfony/yaml", + "version": "v3.4.36", + "version_normalized": "3.4.36.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "dab657db15207879217fc81df4f875947bf68804" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", + "reference": "dab657db15207879217fc81df4f875947bf68804", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "time": "2019-10-24T15:33:53+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "install-path": "../symfony/yaml" + }, + { + "name": "twig/twig", + "version": "v1.42.4", + "version_normalized": "1.42.4.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/debug": "^3.4|^4.2", + "symfony/phpunit-bridge": "^4.4@dev|^5.0" + }, + "time": "2019-11-11T16:49:32+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.42-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "install-path": "../twig/twig" + } + ], + "dev": true, + "dev-package-names": [ + "symfony/stopwatch", + "symfony/var-dumper", + "symfony/web-profiler-bundle" + ] +} diff --git a/lib/composer/installed.php b/lib/composer/installed.php index fd53f37aa..ef3b8babd 100644 --- a/lib/composer/installed.php +++ b/lib/composer/installed.php @@ -6,7 +6,7 @@ 'aliases' => array ( ), - 'reference' => 'c11fd4f0abc87e0246ee43c6d73296e19d385f6c', + 'reference' => '51e24a4e3527c8416bc14fe28284ff67152a36c9', 'name' => '__root__', ), 'versions' => @@ -18,7 +18,7 @@ 'aliases' => array ( ), - 'reference' => 'c11fd4f0abc87e0246ee43c6d73296e19d385f6c', + 'reference' => '51e24a4e3527c8416bc14fe28284ff67152a36c9', ), 'combodo/tcpdf' => array ( @@ -31,12 +31,12 @@ ), 'nikic/php-parser' => array ( - 'pretty_version' => 'v4.10.4', - 'version' => '4.10.4.0', + 'pretty_version' => 'v3.1.5', + 'version' => '3.1.5.0', 'aliases' => array ( ), - 'reference' => 'c6d052fc58cb876152f89f532b95a8d7907e7f0e', + 'reference' => 'bb87e28e7d7b8d9a7fda231d37457c9210faf6ce', ), 'paragonie/random_compat' => array ( @@ -49,12 +49,12 @@ ), 'pear/archive_tar' => array ( - 'pretty_version' => '1.4.10', - 'version' => '1.4.10.0', + 'pretty_version' => '1.4.13', + 'version' => '1.4.13.0', 'aliases' => array ( ), - 'reference' => 'bbb4f10f71a1da2715ec6d9a683f4f23c507a49b', + 'reference' => '19bb8e95490d3e3ad92fcac95500ca80bdcc7495', ), 'pear/console_getopt' => array ( @@ -76,12 +76,12 @@ ), 'pear/pear_exception' => array ( - 'pretty_version' => 'v1.0.1', - 'version' => '1.0.1.0', + 'pretty_version' => 'v1.0.2', + 'version' => '1.0.2.0', 'aliases' => array ( ), - 'reference' => 'dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7', + 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', ), 'pelago/emogrifier' => array ( diff --git a/lib/pear/archive_tar/.github/FUNDING.yml b/lib/pear/archive_tar/.github/FUNDING.yml new file mode 100644 index 000000000..4a0f72b64 --- /dev/null +++ b/lib/pear/archive_tar/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: [mrook] +patreon: michielrook diff --git a/lib/pear/archive_tar/.github/dependabot.yml b/lib/pear/archive_tar/.github/dependabot.yml new file mode 100644 index 000000000..a51bb0bd4 --- /dev/null +++ b/lib/pear/archive_tar/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "composer" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" diff --git a/lib/pear/archive_tar/.github/workflows/build.yml b/lib/pear/archive_tar/.github/workflows/build.yml new file mode 100644 index 000000000..b972caea6 --- /dev/null +++ b/lib/pear/archive_tar/.github/workflows/build.yml @@ -0,0 +1,41 @@ +on: + push: + branches: + - master + pull_request: + +jobs: + test: + runs-on: ${{ matrix.operating-system }} + strategy: + fail-fast: true + matrix: + operating-system: [ ubuntu-latest ] + php: [ '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0' ] + dependencies: [ 'locked' ] + + name: PHP ${{ matrix.php }} on ${{ matrix.operating-system }} with ${{ matrix.dependencies }} dependencies + + steps: + - uses: actions/checkout@v2 + name: Checkout repository + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + + - uses: ramsey/composer-install@v1 + with: + dependency-versions: ${{ matrix.dependencies }} + + - name: Install PEAR + run: | + sudo apt-get install php-pear + + - name: Run tests + run: | + sudo pear install -f package.xml + pear version + pear run-tests -qr tests/ || cat run-tests.log + for i in `find tests/ -name '*.out'`; do echo "$i"; cat "$i"; done diff --git a/lib/pear/archive_tar/Archive/Tar.php b/lib/pear/archive_tar/Archive/Tar.php index 5a52ce818..76771d5b5 100644 --- a/lib/pear/archive_tar/Archive/Tar.php +++ b/lib/pear/archive_tar/Archive/Tar.php @@ -1397,16 +1397,20 @@ class Archive_Tar extends PEAR $v_magic = 'ustar '; $v_version = ' '; + $v_uname = ''; + $v_gname = ''; if (function_exists('posix_getpwuid')) { $userinfo = posix_getpwuid($v_info[4]); $groupinfo = posix_getgrgid($v_info[5]); - $v_uname = $userinfo['name']; - $v_gname = $groupinfo['name']; - } else { - $v_uname = ''; - $v_gname = ''; + if (isset($userinfo['name'])) { + $v_uname = $userinfo['name']; + } + + if (isset($groupinfo['name'])) { + $v_gname = $groupinfo['name']; + } } $v_devmajor = ''; @@ -1730,7 +1734,7 @@ class Archive_Tar extends PEAR // ----- Extract the properties $v_header['filename'] = rtrim($v_data['filename'], "\0"); - if ($this->_maliciousFilename($v_header['filename'])) { + if ($this->_isMaliciousFilename($v_header['filename'])) { $this->_error( 'Malicious .tar detected, file "' . $v_header['filename'] . '" will not install in desired directory tree' @@ -1800,9 +1804,9 @@ class Archive_Tar extends PEAR * * @return bool */ - private function _maliciousFilename($file) + private function _isMaliciousFilename($file) { - if (strpos($file, 'phar://') === 0) { + if (strpos($file, '://') !== false) { return true; } if (strpos($file, '../') !== false || strpos($file, '..\\') !== false) { @@ -1838,7 +1842,7 @@ class Archive_Tar extends PEAR $v_filename = rtrim(substr($v_filename, 0, $v_filesize), "\0"); $v_header['filename'] = $v_filename; - if ($this->_maliciousFilename($v_filename)) { + if ($this->_isMaliciousFilename($v_filename)) { $this->_error( 'Malicious .tar detected, file "' . $v_filename . '" will not install in desired directory tree' @@ -2120,6 +2124,14 @@ class Archive_Tar extends PEAR } } } elseif ($v_header['typeflag'] == "2") { + if (strpos(realpath(dirname($v_header['link'])), realpath($p_path)) !== 0) { + $this->_error( + 'Out-of-path file extraction {' + . $v_header['filename'] . ' --> ' . + $v_header['link'] . '}' + ); + return false; + } if (!$p_symlinks) { $this->_warning('Symbolic links are not allowed. ' . 'Unable to extract {' diff --git a/lib/pear/archive_tar/package.xml b/lib/pear/archive_tar/package.xml index f1f8040b2..5da8ee884 100644 --- a/lib/pear/archive_tar/package.xml +++ b/lib/pear/archive_tar/package.xml @@ -32,10 +32,10 @@ Also Lzma2 compressed archives are supported with xz extension. stig@php.net no - 2020-09-15 - + 2021-01-18 + - 1.4.10 + 1.4.12 1.4.0 @@ -44,8 +44,7 @@ Also Lzma2 compressed archives are supported with xz extension. New BSD License -* Fix block padding when the file buffer length is a multiple of 512 and smaller than Archive_Tar buffer length -* Don't try to copy username/groupname in chroot jail +* Fix Bug #27008: Symlink out-of-path write vulnerability (CVE-2020-36193) [mrook] @@ -75,6 +74,37 @@ Also Lzma2 compressed archives are supported with xz extension. + + + 1.4.11 + 1.4.0 + + + stable + stable + + 2020-11-19 + New BSD License + +* Fix Bug #27002: Filename manipulation vulnerabilities (CVE-2020-28948 / CVE-2020-28949) [mrook] + + + + + 1.4.10 + 1.4.0 + + + stable + stable + + 2020-09-15 + New BSD License + + * Fix block padding when the file buffer length is a multiple of 512 and smaller than Archive_Tar buffer length + * Don't try to copy username/groupname in chroot jail + + 1.4.9 diff --git a/lib/pear/pear_exception/.gitignore b/lib/pear/pear_exception/.gitignore deleted file mode 100644 index 479265b07..000000000 --- a/lib/pear/pear_exception/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -PEAR_Exception*.tgz - -# composer related -composer.lock -composer.phar -vendor diff --git a/lib/pear/pear_exception/.travis.yml b/lib/pear/pear_exception/.travis.yml deleted file mode 100644 index 18875d993..000000000 --- a/lib/pear/pear_exception/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: php -php: - - 5.6 - - 5.5 - - 5.4 -script: - - cd tests && phpunit --coverage-text . diff --git a/lib/pear/pear_exception/PEAR/Exception.php b/lib/pear/pear_exception/PEAR/Exception.php index 5abf4f84a..a8ef6e086 100644 --- a/lib/pear/pear_exception/PEAR/Exception.php +++ b/lib/pear/pear_exception/PEAR/Exception.php @@ -142,7 +142,7 @@ class PEAR_Exception extends Exception $code = null; $this->cause = null; } - parent::__construct($message, $code); + parent::__construct($message, (int) $code); $this->signal(); } diff --git a/lib/pear/pear_exception/composer.json b/lib/pear/pear_exception/composer.json index b923cf718..9ffba9b3d 100644 --- a/lib/pear/pear_exception/composer.json +++ b/lib/pear/pear_exception/composer.json @@ -18,7 +18,7 @@ } ], "require": { - "php": ">=4.4.0" + "php": ">=5.2.0" }, "autoload": { "classmap": ["PEAR/"] @@ -36,6 +36,6 @@ "source": "https://github.com/pear/PEAR_Exception" }, "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "<9" } } diff --git a/lib/pear/pear_exception/package.xml b/lib/pear/pear_exception/package.xml deleted file mode 100644 index 98290c6a8..000000000 --- a/lib/pear/pear_exception/package.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - PEAR_Exception - pear.php.net - The PEAR Exception base class - PEAR_Exception PHP5 error handling mechanism - - - Christian Weiske - cweiske - cweiske@php.net - yes - - - Helgi Thormar - dufuz - dufuz@php.net - no - - - Greg Beaver - cellog - cellog@php.net - no - - - 2015-02-10 - - - 1.0.0 - 1.0.0 - - - stable - stable - - New BSD License - - This package was split out from the PEAR package. - If you use PEAR_Exception in your package and use nothing from the PEAR package - then it's better to depend on just PEAR_Exception. - - - - - - - - - - - - - - - - - - 5.4.0 - - - 1.9.5 - - - - - - - - - - 1.0.0 - 1.0.0 - - - stable - stable - - 2015-02-10 - New BSD License - Release stable version - - - - - 1.0.0beta2 - 1.0.0 - - - beta - stable - - 2014-02-21 - New BSD License - Bump up PEAR dependency. - - - - - 1.0.0beta1 - 1.0.0 - - - beta - stable - - 2012-05-10 - New BSD License - -This packge was split out from the PEAR package. If you use PEAR_Exception in your package -and use nothing from the PEAR package then it's better to depend on just PEAR_Exception. - - - - diff --git a/pages/ajax.render.php b/pages/ajax.render.php index fdc228792..169662352 100644 --- a/pages/ajax.render.php +++ b/pages/ajax.render.php @@ -1950,7 +1950,9 @@ EOF case 'xlsx_run': $sMemoryLimit = MetaModel::GetConfig()->Get('xlsx_exporter_memory_limit'); - ini_set('memory_limit', $sMemoryLimit); + if (utils::SetMinMemoryLimit($sMemoryLimit) === false) { + IssueLog::Warning("XSLX export : cannot set memory_limit to {$sMemoryLimit}"); + } ini_set('max_execution_time', max(300, ini_get('max_execution_time'))); // At least 5 minutes $sToken = utils::ReadParam('token', '', false, 'raw_data'); @@ -1958,8 +1960,7 @@ EOF $oExcelExporter = new ExcelExporter($sToken); $aStatus = $oExcelExporter->Run(); $aResults = array('status' => $aStatus['code'], 'percentage' => $aStatus['percentage'], 'message' => $aStatus['message']); - if ($aStatus['code'] == 'done') - { + if ($aStatus['code'] == 'done') { $aResults['statistics'] = $oExcelExporter->GetStatistics('html'); } $oPage->add(json_encode($aResults)); diff --git a/pages/csvimport.php b/pages/csvimport.php index 81be017ee..8d35a9a8e 100644 --- a/pages/csvimport.php +++ b/pages/csvimport.php @@ -29,17 +29,21 @@ use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory; use Combodo\iTop\Renderer\BlockRenderer; try { - ini_set('memory_limit', '256M'); require_once('../approot.inc.php'); require_once(APPROOT.'/application/application.inc.php'); require_once(APPROOT.'/application/ajaxwebpage.class.inc.php'); require_once(APPROOT.'/application/startup.inc.php'); require_once(APPROOT.'/application/loginwebpage.class.inc.php'); + + if (utils::SetMinMemoryLimit('256M') === false) { + IssueLog::Warning('csvimport : cannot set minimum memory_limit !'); + } + LoginWebPage::DoLogin(); // Check user rights and prompt if needed $iStep = utils::ReadParam('step', 1); - + $oPage = new iTopWebPage(Dict::S('UI:Title:BulkImport')); $oPage->SetBreadCrumbEntry('ui-tool-bulkimport', Dict::S('Menu:CSVImportMenu'), Dict::S('UI:Title:BulkImport+'), '', 'fas fa-file-import', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); diff --git a/pages/run_query.php b/pages/run_query.php index 4690a3ab4..fecbb91d1 100644 --- a/pages/run_query.php +++ b/pages/run_query.php @@ -120,8 +120,6 @@ try { if ($sEncoding == 'crypted') { // Translate $sExpression into a oql expression - $sClearText = base64_decode($sExpression); - echo "FYI: '$sClearText'
\n"; $oFilter = DBObjectSearch::unserialize($sExpression); $sExpression = $oFilter->ToOQL(); } diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index df215496d..c71d7abd9 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -2076,6 +2076,7 @@ JS * Create and store Setup authentication token * * @return string token + * @since 2.6.5 2.7.0 N°3952 */ final public static function CreateSetupToken() { @@ -2087,7 +2088,7 @@ JS } $sUID = hash('sha256', rand()); file_put_contents(APPROOT.'data/setup/authent', $sUID); - + $_SESSION['setup_token'] = $sUID; return $sUID; } @@ -2097,6 +2098,7 @@ JS * @param bool $bRemoveToken * * @throws \SecurityException + * @since 2.6.5 2.7.0 N°3952 */ final public static function CheckSetupToken($bRemoveToken = false) { @@ -2110,6 +2112,38 @@ JS } } + /** + * Check setup transaction and create a new one if necessary + * + * @return bool + * @since 2.6.5 2.7.5 3.0.0 N°3952 + */ + public static function IsSessionSetupTokenValid() + { + if (isset($_SESSION['setup_token'])) { + $sAuth = $_SESSION['setup_token']; + $sTokenFile = APPROOT.'data/setup/authent'; + if (file_exists($sTokenFile) && $sAuth === file_get_contents($sTokenFile)) { + return true; + } + } + + return false; + } + + /** + * @since 2.6.5 2.7.5 3.0.0 N°3952 + */ + public static function EraseSetupToken() + { + $sTokenFile = APPROOT.'data/setup/authent'; + if (is_file($sTokenFile)) { + unlink($sTokenFile); + } + unset($_SESSION['setup_token']); + } + + /** * @param string $sText * diff --git a/setup/wizard.php b/setup/wizard.php index e1c77f4c7..fb00ae166 100644 --- a/setup/wizard.php +++ b/setup/wizard.php @@ -31,6 +31,7 @@ require_once(APPROOT.'/setup/setuppage.class.inc.php'); require_once(APPROOT.'/setup/wizardcontroller.class.inc.php'); require_once(APPROOT.'/setup/wizardsteps.class.inc.php'); +session_start(); clearstatcache(); // Make sure we know what we are doing ! // Set a long (at least 4 minutes) execution time for the setup to avoid timeouts during this phase ini_set('max_execution_time', max(240, ini_get('max_execution_time'))); @@ -39,7 +40,6 @@ ini_set('display_errors', true); ini_set('display_startup_errors', true); date_default_timezone_set('Europe/Paris'); // Just to avoid a warning if the timezone is not set in php.ini -SetupUtils::ExitMaintenanceMode(false); ///////////////////////////////////////////////////////////////////// // Fake functions to protect the first run of the installer @@ -51,9 +51,8 @@ if (!function_exists('json_encode')) return '[]'; } } -if (!function_exists('json_decode')) -{ - function json_decode($json, $assoc=null) +if (!function_exists('json_decode')) { + function json_decode($json, $assoc = null) { return array(); } @@ -61,6 +60,14 @@ if (!function_exists('json_decode')) ///////////////////////////////////////////////////////////////////// //N°3671 setup context: force $bForceTrustProxy to be persisted in next calls utils::GetAbsoluteUrlAppRoot(true); - $oWizard = new WizardController('WizStepWelcome'); -$oWizard->Run(); +//N°3952 +if (SetupUtils::IsSessionSetupTokenValid()) { + // Normal operation + $oWizard->Run(); +} else { + SetupUtils::ExitMaintenanceMode(false); + // Force initializing the setup + $oWizard->Start(); + SetupUtils::CreateSetupToken(); +} diff --git a/setup/wizardcontroller.class.inc.php b/setup/wizardcontroller.class.inc.php index 0124a324e..8038ddfaa 100644 --- a/setup/wizardcontroller.class.inc.php +++ b/setup/wizardcontroller.class.inc.php @@ -105,7 +105,7 @@ class WizardController /** * Starts the wizard by displaying it in its initial state */ - protected function Start() + public function Start() { $sCurrentStepClass = $this->sInitialStepClass; $oStep = new $sCurrentStepClass($this, $this->sInitialState); @@ -121,7 +121,7 @@ class WizardController $sCurrentState = utils::ReadParam('_state', $this->sInitialState); /** @var \WizardStep $oStep */ $oStep = new $sCurrentStepClass($this, $sCurrentState); - if ($oStep->ValidateParams($sCurrentState)) + if ($oStep->ValidateParams()) { $this->PushStep(array('class' => $sCurrentStepClass, 'state' => $sCurrentState)); $aPossibleSteps = $oStep->GetPossibleSteps(); @@ -174,7 +174,7 @@ class WizardController if (!is_writable($sConfigFile)) { SetupUtils::ExitReadOnlyMode(false); // Reset readonly mode in case of problem - + SetupUtils::EraseSetupToken(); $sRelativePath = utils::GetConfigFilePathRelative(); $oP = new SetupPage('Installation Cannot Continue'); $oP->add("

Fatal error

\n"); @@ -182,7 +182,8 @@ class WizardController $oP->p("The wizard cannot modify the configuration file for you. If you want to upgrade ".ITOP_APPLICATION.", make sure that the file '".$sRelativePath."' can be modified by the web server."); $oP->p(''); $oP->output(); - return; + // Prevent token creation + exit; } } } diff --git a/setup/wizardsteps.class.inc.php b/setup/wizardsteps.class.inc.php index dc3e8e150..f6f5d552a 100644 --- a/setup/wizardsteps.class.inc.php +++ b/setup/wizardsteps.class.inc.php @@ -2216,7 +2216,7 @@ CSS $oPage->add('
Database Parameters
    '); $oPage->add('
  • Server Name: '.$aInstallParams['database']['server'].'
  • '); $oPage->add('
  • DB User Name: '.$aInstallParams['database']['user'].'
  • '); - $oPage->add('
  • DB user password: '.$aInstallParams['database']['pwd'].'
  • '); + $oPage->add('
  • DB user password: ***
  • '); if (($sMode == 'install') && ($this->oWizard->GetParameter('create_db') == 'yes')) { $oPage->add('
  • Database Name: '.$aInstallParams['database']['name'].' (will be created)
  • '); @@ -2654,18 +2654,16 @@ class WizStepDone extends WizardStep $aAdditionalModules = array(); foreach(json_decode($this->oWizard->GetParameter('additional_extensions_modules'), true) as $idx => $aModuleInfo) { - if (in_array('_'.$idx, $aParameters[count($aParameters)-1])) - { + if (in_array('_'.$idx, $aParameters[count($aParameters)-1])) { // Extensions "choices" can now have more than one module - foreach($aModuleInfo['modules'] as $sModuleName) - { + foreach ($aModuleInfo['modules'] as $sModuleName) { $aAdditionalModules[] = $sModuleName; } } } $idx = 0; $aReportedModules = array(); - while($idx < count($aAdditionalModules) && (strlen($sImgUrl.'&m='.urlencode(implode(' ', $aReportedModules))) < 2000)) // reasonable limit for the URL: 2000 chars + while ($idx < count($aAdditionalModules) && (strlen($sImgUrl.'&m='.urlencode(implode(' ', $aReportedModules))) < 2000)) // reasonable limit for the URL: 2000 chars { $aReportedModules[] = $aAdditionalModules[$idx]; $idx++; @@ -2675,6 +2673,7 @@ class WizStepDone extends WizardStep $oPage->add(''); $sForm = addslashes($sForm); $oPage->add_ready_script("$('#wiz_form').after('$sForm');"); + SetupUtils::EraseSetupToken(); } public function CanMoveForward() diff --git a/sources/Controller/AjaxRenderController.php b/sources/Controller/AjaxRenderController.php index 2995e329e..15ac4394c 100644 --- a/sources/Controller/AjaxRenderController.php +++ b/sources/Controller/AjaxRenderController.php @@ -242,6 +242,79 @@ class AjaxRenderController $aColumns = utils::ReadParam('columns', array(), false, 'raw_data'); $aClassAliases = utils::ReadParam('class_aliases', array()); + foreach ($aColumns as $sClass => $aAttCodes) { + foreach ($aAttCodes as $sAttCode => $aAttProperties) { + if (!array_key_exists('checked', $aAttProperties)) { + /** + * For data passed in XHR queries with some volume, on some servers data can be cut off because of a php.ini's `max_input_vars` set too low + * + * Normal format is : + * ``` + * array ( + * 'UserRequest' => + * array ( + * '_key_' => + * array ( + * 'label' => 'User Request (Link)', + * 'checked' => 'true', + * 'disabled' => 'true', + * 'alias' => 'UserRequest', + * 'code' => '_key_', + * 'sort' => 'none', + * ), + * // ... + * 'parent_request_id_friendlyname' => + * array ( + * 'label' => 'parent_request_id_friendlyname (Friendly Name)', + * 'checked' => 'false', + * 'disabled' => 'false', + * 'alias' => 'UserRequest', + * 'code' => 'parent_request_id_friendlyname', + * 'sort' => 'none', + * ), + * ) + * ``` + * + * While with a low max_input_vars we can get : + * ``` + * array ( + * 'UserRequest' => + * array ( + * '_key_' => + * array ( + * 'label' => 'User Request (Link)', + * 'checked' => 'true', + * 'disabled' => 'true', + * 'alias' => 'UserRequest', + * 'code' => '_key_', + * 'sort' => 'none', + * ), + * // ... + * 'parent_request_id_friendlyname' => + * array ( + * 'label' => 'parent_request_id_friendlyname (Friendly Name)', + * ), + * ) + * ``` + * + * @link https://www.php.net/manual/fr/info.configuration.php#ini.max-input-vars PHP doc on `max_input_vars` + * @link https://www.itophub.io/wiki/page?id=latest%3Ainstall%3Aphp_and_mysql_configuration#php_mysql_mariadb_settings Combodo's recommended options + */ + $iMaxInputVarsValue = ini_get('max_input_vars'); + IssueLog::Warning( + "ajax.render.php received an invalid array for columns : check max_input_vars value in php.ini !", + null, + array( + 'controller' => '\Combodo\iTop\Controller\AjaxRenderController::Search', + 'max_input_vars' => $iMaxInputVarsValue, + 'class.attcode with invalid format' => "$sClass.$sAttCode", + ) + ); + $aColumns[$sClass][$sAttCode]['checked'] = 'false'; + } + } + } + // Filter the list to removed linked set since we are not able to display them here $sIdName = ""; $aOrderBy = array(); diff --git a/sources/application/UI/Base/Layout/UIContentBlockUIBlockFactory.php b/sources/application/UI/Base/Layout/UIContentBlockUIBlockFactory.php index 115b1f4fa..d484fbf69 100644 --- a/sources/application/UI/Base/Layout/UIContentBlockUIBlockFactory.php +++ b/sources/application/UI/Base/Layout/UIContentBlockUIBlockFactory.php @@ -38,4 +38,10 @@ class UIContentBlockUIBlockFactory extends AbstractUIBlockFactory return $oCode; } + public static function MakeForPreformatted(string $sCode, string $sId = null) + { + $sCode = '
    '.$sCode.'
    '; + + return static::MakeForCode($sCode, $sId); + } } \ No newline at end of file diff --git a/test/ItopTestCase.php b/test/ItopTestCase.php index 12275ebe2..d4cc07121 100644 --- a/test/ItopTestCase.php +++ b/test/ItopTestCase.php @@ -96,6 +96,9 @@ class ItopTestCase extends TestCase return $sId; } + /** + * @since 2.7.4 3.0.0 + */ public function InvokeNonPublicStaticMethod($sObjectClass, $sMethodName, $aArgs) { return $this->InvokeNonPublicMethod($sObjectClass, $sMethodName, null, $aArgs); @@ -110,6 +113,8 @@ class ItopTestCase extends TestCase * @return mixed method result * * @throws \ReflectionException + * + * @since 2.7.4 3.0.0 */ public function InvokeNonPublicMethod($sObjectClass, $sMethodName, $oObject, $aArgs) { diff --git a/test/application/UtilsTest.php b/test/application/UtilsTest.php index bbb3c4af3..c4058d771 100644 --- a/test/application/UtilsTest.php +++ b/test/application/UtilsTest.php @@ -54,11 +54,10 @@ class UtilsTest extends \Combodo\iTop\Test\UnitTest\ItopTestCase public function memoryLimitDataProvider() { return [ - [true, '-1', 1024], - [true, -1, 1024], - [true, 1024, 1024], - [true, 2048, 1024], - [false, 1024, 2048], + 'current -1, required 1024' => [true, -1, 1024], + 'current 1024, required 1024' => [true, 1024, 1024], + 'current 2048, required 1024' => [true, 2048, 1024], + 'current 1024, required 2048' => [false, 1024, 2048], ]; } @@ -552,4 +551,26 @@ class UtilsTest extends \Combodo\iTop\Test\UnitTest\ItopTestCase ], ]; } + + /** + * @param string $sExpressionToConvert + * @param int $iExpectedConvertedValue + * + * @dataProvider ConvertToBytesProvider + */ + public function testConvertToBytes($sExpressionToConvert, $iExpectedConvertedValue) + { + $iCurrentConvertedValue = utils::ConvertToBytes($sExpressionToConvert); + self::assertEquals($iExpectedConvertedValue, $iCurrentConvertedValue, 'Converted value wasn\'t the one expected !'); + } + + public function ConvertToBytesProvider() + { + return [ + '123' => ['123', 123], + '56k' => ['56k', 56 * 1024], + '512M' => ['512M', 512 * 1024 * 1024], + '2G' => ['2G', 2 * 1024 * 1024 * 1024], + ]; + } } diff --git a/test/core/DBSearchTest.php b/test/core/DBSearchTest.php index dcbc5e1d1..fd151a560 100644 --- a/test/core/DBSearchTest.php +++ b/test/core/DBSearchTest.php @@ -620,7 +620,7 @@ class DBSearchTest extends ItopDataTestCase $sExceptionClass = get_class($e); } - static::assertEquals('OQLParserException', $sExceptionClass); + static::assertEquals('OQLParserSyntaxErrorException', $sExceptionClass); } public function testSanity_GroupFunction_In_GroupByPart() @@ -636,7 +636,7 @@ class DBSearchTest extends ItopDataTestCase $sExceptionClass = get_class($e); } - static::assertEquals('OQLParserException', $sExceptionClass); + static::assertEquals('OQLParserSyntaxErrorException', $sExceptionClass); } public function testSanity_UnknownGroupFunction_In_SelectPart() @@ -730,4 +730,19 @@ class DBSearchTest extends ItopDataTestCase /** @var \DBObjectSearch $oNestedSearchInExpression */ self::assertEquals($bAllowAllData, $oNestedSearchInExpression->IsAllDataAllowed(), 'Nested DBSearch AllowData value'); } + + /** + * BUG N°4031 check AttributeObjectKey used in JOIN condition + * @throws \ConfigException + * @throws \CoreException + * @throws \MissingQueryArgument + * @throws \OQLException + */ + public function testAttributeObjectKey() + { + $sQuery = "SELECT II FROM InlineImage AS II JOIN UserRequest AS UR ON II.item_id = UR.id WHERE II.item_class = 'UserRequest'"; + $oSearch = \DBObjectSearch::FromOQL($sQuery); + $oSearch->MakeSelectQuery(); + self::assertTrue(true); + } } diff --git a/test/core/OQLParserTest.php b/test/core/OQLParserTest.php index 91faa660b..afeddc664 100644 --- a/test/core/OQLParserTest.php +++ b/test/core/OQLParserTest.php @@ -12,6 +12,9 @@ namespace Combodo\iTop\Test\UnitTest\Core; use Combodo\iTop\Test\UnitTest\ItopDataTestCase; use DBObjectSearch; +use OQLException; +use OqlInterpreter; +use OQLParserException; /** * @runTestsInSeparateProcesses @@ -60,4 +63,27 @@ class OQLParserTest extends ItopDataTestCase ); } + /** + * Bug N°4052 OQL parser limit for huge request + * @throws \OQLException + */ + public function testOQLParserStackSize() + { + // OQL Parser stack size is 1000 + $sQuery = "SELECT Organization WHERE 1"; + $sQuery .= str_repeat(" UNION SELECT Organization WHERE 1", 497); + //$sExpression = "SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk1`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root3`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s1`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s1`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root4`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s2`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s2`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s3`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s3`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root5`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t5`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `lnk1` ON `lnk1`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk1`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s4`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s4`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root6`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`Root`.`id` = :current_contact->org_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`l2`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root3`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s1`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s1` ON `GARE`.service_id = `s1`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s1`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s1`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root3`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root4`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s2`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s2` ON `GARE`.service_id = `s2`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s2`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s2`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk5`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s3`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s3`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root5`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s3` ON `GARE`.service_id = `s3`.id JOIN lnkOrganizationToService AS `lnk6` ON `lnk6`.service_id = `s3`.id JOIN Team AS `t5` ON `lnk6`.team_id = `t5`.id JOIN Organization AS `Node5` ON `t5`.org_id = `Node5`.id JOIN Organization AS `Root5` ON `Node5`.parent_id BELOW `Root5`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root5`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t5`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`Root5`.`id` = :current_contact->org_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`l2`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id JOIN lnkServiceToTeam AS `lnk2` ON `lnk2`.service_id = `s4`.id JOIN Team AS `t3` ON `lnk2`.team_id = `t3`.id JOIN Organization AS `Node3` ON `t3`.org_id = `Node3`.id JOIN Organization AS `Root3` ON `Node3`.parent_id BELOW `Root3`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root3`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id JOIN lnkServiceToTeam AS `lnk3` ON `lnk3`.service_id = `s4`.id JOIN Team AS `t4` ON `lnk3`.team_id = `t4`.id JOIN Organization AS `Node4` ON `t4`.org_id = `Node4`.id JOIN Organization AS `Root4` ON `Node4`.parent_id BELOW `Root4`.id JOIN lnkOrganizationToPerson AS `lnk5` ON `lnk5`.organization_id = `Root4`.id JOIN lnkPersonToTeam AS `lnk4` ON `lnk4`.team_id = `t4`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk5`.`person_id` = :current_contact_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`Root6`.`id` = :current_contact->org_id)) UNION SELECT `GARE` FROM UserRequest AS `GARE` JOIN Team AS `t` ON `GARE`.team_id = `t`.id JOIN Organization AS `Node` ON `t`.org_id = `Node`.id JOIN Organization AS `Root` ON `Node`.parent_id BELOW `Root`.id JOIN lnkOrganizationToPerson AS `l2` ON `l2`.organization_id = `Root`.id JOIN lnkPersonToTeam AS `l` ON `l`.team_id = `t`.id JOIN Service AS `s4` ON `GARE`.service_id = `s4`.id JOIN lnkOrganizationToService AS `lnk7` ON `lnk7`.service_id = `s4`.id JOIN Team AS `t6` ON `lnk7`.team_id = `t6`.id JOIN Organization AS `Node6` ON `t6`.org_id = `Node6`.id JOIN Organization AS `Root6` ON `Node6`.parent_id BELOW `Root6`.id JOIN lnkOrganizationToPerson AS `lnk9` ON `lnk9`.organization_id = `Root6`.id JOIN lnkPersonToTeam AS `lnk8` ON `lnk8`.team_id = `t6`.id WHERE (((((`l2`.`person_id` = :current_contact_id) AND ((`GARE`.`agent_id` != '') AND (`GARE`.`operational_status` NOT IN ('closed', 'resolved')))) AND (`lnk9`.`person_id` = :current_contact_id)) AND (`GARE`.`finalclass` = 'UserRequest')) AND (`lnk9`.`person_id` = :current_contact_id))"; + try { + $oOql = new OqlInterpreter($sQuery); + $oOql->ParseQuery(); + } + catch (OQLParserException $e) { + self::fail("OQL Parser stack overflow"); + } + catch (OQLException $e) { + self::fail("OQL Parser stack overflow"); + } + self::assertTrue(true); + } + } diff --git a/test/core/OQLTest.php b/test/core/OQLTest.php index 73019113b..02327aaad 100644 --- a/test/core/OQLTest.php +++ b/test/core/OQLTest.php @@ -208,16 +208,16 @@ class OQLTest extends ItopDataTestCase public function BadQueryProvider() { return array( - array('SELECT toto WHERE toto.a = (3++1)', 'OQLParserException'), - array('SELECT toto WHHHERE toto.a = "1"', 'OQLParserException'), - array('SELECT toto WHERE toto.a == "1"', 'OQLParserException'), + array('SELECT toto WHERE toto.a = (3++1)', 'OQLParserSyntaxErrorException'), + array('SELECT toto WHHHERE toto.a = "1"', 'OQLParserSyntaxErrorException'), + array('SELECT toto WHERE toto.a == "1"', 'OQLParserSyntaxErrorException'), array('SELECT toto WHERE toto.a % 1', 'Exception'), - array('SELECT toto WHERE toto.a like \'arg\'', 'OQLParserException'), - array('SELECT toto WHERE toto.a NOT LIKE "That\'s "it""', 'OQLParserException'), - array('SELECT toto WHERE toto.a NOT LIKE \'That\'s it\'', 'OQLParserException'), + array('SELECT toto WHERE toto.a like \'arg\'', 'OQLParserSyntaxErrorException'), + array('SELECT toto WHERE toto.a NOT LIKE "That\'s "it""', 'OQLParserSyntaxErrorException'), + array('SELECT toto WHERE toto.a NOT LIKE \'That\'s it\'', 'OQLParserSyntaxErrorException'), array('SELECT toto WHERE toto.a NOT LIKE "blah \\ truc"', 'Exception'), array('SELECT toto WHERE toto.a NOT LIKE \'blah \\ truc\'', 'Exception'), - array('SELECT A JOIN B ON A.myB = B.id JOIN C ON C.parent_id = B.id WHERE A.col1 BELOW 2 AND B.id = 3', 'OQLParserException'), + array('SELECT A JOIN B ON A.myB = B.id JOIN C ON C.parent_id = B.id WHERE A.col1 BELOW 2 AND B.id = 3', 'OQLParserSyntaxErrorException'), ); }