@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | */ |
31 | 31 | public static function getForeignKeys(CreateStatement $statement): array |
32 | 32 | { |
33 | - if (empty($statement->fields) || (! is_array($statement->fields)) || (! $statement->options->has('TABLE'))) { |
|
33 | + if (empty($statement->fields) || (!is_array($statement->fields)) || (!$statement->options->has('TABLE'))) { |
|
34 | 34 | return []; |
35 | 35 | } |
36 | 36 | |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | |
44 | 44 | $columns = []; |
45 | 45 | foreach ($field->key->columns as $column) { |
46 | - if (! isset($column['name'])) { |
|
46 | + if (!isset($column['name'])) { |
|
47 | 47 | continue; |
48 | 48 | } |
49 | 49 | |
@@ -55,7 +55,7 @@ discard block |
||
55 | 55 | 'index_list' => $columns, |
56 | 56 | ]; |
57 | 57 | |
58 | - if (! empty($field->references)) { |
|
58 | + if (!empty($field->references)) { |
|
59 | 59 | $tmp['ref_db_name'] = $field->references->table->database; |
60 | 60 | $tmp['ref_table_name'] = $field->references->table->table; |
61 | 61 | $tmp['ref_index_list'] = $field->references->columns; |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | */ |
97 | 97 | public static function getFields(CreateStatement $statement): array |
98 | 98 | { |
99 | - if (empty($statement->fields) || (! is_array($statement->fields)) || (! $statement->options->has('TABLE'))) { |
|
99 | + if (empty($statement->fields) || (!is_array($statement->fields)) || (!$statement->options->has('TABLE'))) { |
|
100 | 100 | return []; |
101 | 101 | } |
102 | 102 | |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | 'timestamp_not_null' => false, |
114 | 114 | ]; |
115 | 115 | |
116 | - if (! $field->options) { |
|
116 | + if (!$field->options) { |
|
117 | 117 | continue; |
118 | 118 | } |
119 | 119 | |
@@ -140,7 +140,7 @@ discard block |
||
140 | 140 | |
141 | 141 | $option = $field->options->has('AS'); |
142 | 142 | |
143 | - if (! $option) { |
|
143 | + if (!$option) { |
|
144 | 144 | continue; |
145 | 145 | } |
146 | 146 |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | * @param string $inOut parameter's directional type (IN / OUT or None) |
45 | 45 | * @param DataType $type parameter's type |
46 | 46 | */ |
47 | - public function __construct(string|null $name = null, string|null $inOut = null, DataType|null $type = null) |
|
47 | + public function __construct(string | null $name = null, string | null $inOut = null, DataType | null $type = null) |
|
48 | 48 | { |
49 | 49 | $this->name = $name; |
50 | 50 | $this->inOut = $inOut; |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | public function build(): string |
143 | 143 | { |
144 | 144 | $tmp = ''; |
145 | - if (! empty($this->inOut)) { |
|
145 | + if (!empty($this->inOut)) { |
|
146 | 146 | $tmp .= $this->inOut . ' '; |
147 | 147 | } |
148 | 148 |
@@ -62,7 +62,7 @@ |
||
62 | 62 | * @param string[] $columns the columns referenced |
63 | 63 | * @param OptionsArray $options the options |
64 | 64 | */ |
65 | - public function __construct(Expression|null $table = null, array $columns = [], OptionsArray|null $options = null) |
|
65 | + public function __construct(Expression | null $table = null, array $columns = [], OptionsArray | null $options = null) |
|
66 | 66 | { |
67 | 67 | $this->table = $table; |
68 | 68 | $this->columns = $columns; |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | * Gets the next token. Skips any irrelevant token (whitespaces and |
79 | 79 | * comments). |
80 | 80 | */ |
81 | - public function getNext(): Token|null |
|
81 | + public function getNext(): Token | null |
|
82 | 82 | { |
83 | 83 | for (; $this->idx < $this->count; ++$this->idx) { |
84 | 84 | if ( |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | * Gets the previous token. Skips any irrelevant token (whitespaces and |
97 | 97 | * comments). |
98 | 98 | */ |
99 | - public function getPrevious(): Token|null |
|
99 | + public function getPrevious(): Token | null |
|
100 | 100 | { |
101 | 101 | for (; $this->idx >= 0; --$this->idx) { |
102 | 102 | if ( |
@@ -115,9 +115,9 @@ discard block |
||
115 | 115 | * |
116 | 116 | * @param TokenType|TokenType[] $type the type |
117 | 117 | */ |
118 | - public function getPreviousOfType(TokenType|array $type): Token|null |
|
118 | + public function getPreviousOfType(TokenType | array $type): Token | null |
|
119 | 119 | { |
120 | - if (! is_array($type)) { |
|
120 | + if (!is_array($type)) { |
|
121 | 121 | $type = [$type]; |
122 | 122 | } |
123 | 123 | |
@@ -135,9 +135,9 @@ discard block |
||
135 | 135 | * |
136 | 136 | * @param TokenType|TokenType[] $type the type |
137 | 137 | */ |
138 | - public function getNextOfType(TokenType|array $type): Token|null |
|
138 | + public function getNextOfType(TokenType | array $type): Token | null |
|
139 | 139 | { |
140 | - if (! is_array($type)) { |
|
140 | + if (!is_array($type)) { |
|
141 | 141 | $type = [$type]; |
142 | 142 | } |
143 | 143 | |
@@ -156,7 +156,7 @@ discard block |
||
156 | 156 | * @param TokenType $type the type of the token |
157 | 157 | * @param string $value the value of the token |
158 | 158 | */ |
159 | - public function getNextOfTypeAndValue(TokenType $type, string $value): Token|null |
|
159 | + public function getNextOfTypeAndValue(TokenType $type, string $value): Token | null |
|
160 | 160 | { |
161 | 161 | for (; $this->idx < $this->count; ++$this->idx) { |
162 | 162 | if (($this->tokens[$this->idx]->type === $type) && ($this->tokens[$this->idx]->value === $value)) { |
@@ -173,7 +173,7 @@ discard block |
||
173 | 173 | * @param TokenType $type the type of the token |
174 | 174 | * @param int $flag the flag of the token |
175 | 175 | */ |
176 | - public function getNextOfTypeAndFlag(TokenType $type, int $flag): Token|null |
|
176 | + public function getNextOfTypeAndFlag(TokenType $type, int $flag): Token | null |
|
177 | 177 | { |
178 | 178 | for (; $this->idx < $this->count; ++$this->idx) { |
179 | 179 | if (($this->tokens[$this->idx]->type === $type) && ($this->tokens[$this->idx]->flags === $flag)) { |
@@ -204,7 +204,7 @@ discard block |
||
204 | 204 | * |
205 | 205 | * @param int $offset the offset to be returned |
206 | 206 | */ |
207 | - public function offsetGet(mixed $offset): Token|null |
|
207 | + public function offsetGet(mixed $offset): Token | null |
|
208 | 208 | { |
209 | 209 | return $offset < $this->count ? $this->tokens[$offset] : null; |
210 | 210 | } |
@@ -170,7 +170,7 @@ discard block |
||
170 | 170 | |
171 | 171 | // Reserved, data types, keys, functions, etc. keywords. |
172 | 172 | foreach (static::$labelsFlags as $label => $flags) { |
173 | - if (! str_contains($value, $label)) { |
|
173 | + if (!str_contains($value, $label)) { |
|
174 | 174 | continue; |
175 | 175 | } |
176 | 176 | |
@@ -190,7 +190,7 @@ discard block |
||
190 | 190 | } |
191 | 191 | |
192 | 192 | $value = strtoupper($value); |
193 | - if (! isset($types[$value])) { |
|
193 | + if (!isset($types[$value])) { |
|
194 | 194 | $types[$value] = $type; |
195 | 195 | } else { |
196 | 196 | $types[$value] |= $type; |
@@ -200,11 +200,11 @@ discard block |
||
200 | 200 | $ret = []; |
201 | 201 | foreach ($types as $word => $type) { |
202 | 202 | $len = strlen($word); |
203 | - if (! isset($ret[$type])) { |
|
203 | + if (!isset($ret[$type])) { |
|
204 | 204 | $ret[$type] = []; |
205 | 205 | } |
206 | 206 | |
207 | - if (! isset($ret[$type][$len])) { |
|
207 | + if (!isset($ret[$type][$len])) { |
|
208 | 208 | $ret[$type][$len] = []; |
209 | 209 | } |
210 | 210 |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | // The code below extracts only the relevant information. |
84 | 84 | |
85 | 85 | // Extracting lexer's errors. |
86 | - if (! empty($lexer->errors)) { |
|
86 | + if (!empty($lexer->errors)) { |
|
87 | 87 | /** @var LexerException $err */ |
88 | 88 | foreach ($lexer->errors as $err) { |
89 | 89 | $lexerErrors[] = [ |
@@ -98,7 +98,7 @@ discard block |
||
98 | 98 | } |
99 | 99 | |
100 | 100 | // Extracting parser's errors. |
101 | - if (! empty($parser->errors)) { |
|
101 | + if (!empty($parser->errors)) { |
|
102 | 102 | /** @var ParserException $err */ |
103 | 103 | foreach ($parser->errors as $err) { |
104 | 104 | $parserErrors[] = [ |
@@ -137,11 +137,11 @@ discard block |
||
137 | 137 | string $type, |
138 | 138 | string $input, |
139 | 139 | string $output, |
140 | - string|null $debug = null, |
|
140 | + string | null $debug = null, |
|
141 | 141 | bool $ansi = false, |
142 | 142 | ): void { |
143 | 143 | // Support query types: `lexer` / `parser`. |
144 | - if (! in_array($type, ['lexer', 'parser'])) { |
|
144 | + if (!in_array($type, ['lexer', 'parser'])) { |
|
145 | 145 | throw new Exception('Unknown test type (expected `lexer` or `parser`).'); |
146 | 146 | } |
147 | 147 | |
@@ -186,7 +186,7 @@ discard block |
||
186 | 186 | ); |
187 | 187 | |
188 | 188 | // Remove the project path from .out file, it changes for each dev |
189 | - $projectFolder = dirname(__DIR__, 2);// Jump to root |
|
189 | + $projectFolder = dirname(__DIR__, 2); // Jump to root |
|
190 | 190 | $encoded = str_replace($projectFolder, '<project-root>', $encoded); |
191 | 191 | |
192 | 192 | file_put_contents($output, $encoded); |
@@ -223,11 +223,11 @@ discard block |
||
223 | 223 | if (is_dir($inputFile)) { |
224 | 224 | // Creating required directories to maintain the structure. |
225 | 225 | // Ignoring errors if the folder structure exists already. |
226 | - if (! is_dir($outputFile)) { |
|
226 | + if (!is_dir($outputFile)) { |
|
227 | 227 | mkdir($outputFile); |
228 | 228 | } |
229 | 229 | |
230 | - if (($debug !== null) && (! is_dir($debugFile))) { |
|
230 | + if (($debug !== null) && (!is_dir($debugFile))) { |
|
231 | 231 | mkdir($debugFile); |
232 | 232 | } |
233 | 233 | |
@@ -242,7 +242,7 @@ discard block |
||
242 | 242 | } |
243 | 243 | |
244 | 244 | // Building the test. |
245 | - if (! file_exists($outputFile)) { |
|
245 | + if (!file_exists($outputFile)) { |
|
246 | 246 | echo sprintf("Building test for %s...\n", $inputFile); |
247 | 247 | static::build( |
248 | 248 | str_contains($inputFile, 'lex') ? 'lexer' : 'parser', |
@@ -299,23 +299,23 @@ discard block |
||
299 | 299 | $flags['distinct'] = true; |
300 | 300 | } |
301 | 301 | |
302 | - if (! empty($statement->group) || ! empty($statement->having)) { |
|
302 | + if (!empty($statement->group) || !empty($statement->having)) { |
|
303 | 303 | $flags['is_group'] = true; |
304 | 304 | } |
305 | 305 | |
306 | - if (! empty($statement->into) && ($statement->into->type === 'OUTFILE')) { |
|
306 | + if (!empty($statement->into) && ($statement->into->type === 'OUTFILE')) { |
|
307 | 307 | $flags['is_export'] = true; |
308 | 308 | } |
309 | 309 | |
310 | 310 | $expressions = $statement->expr; |
311 | - if (! empty($statement->join)) { |
|
311 | + if (!empty($statement->join)) { |
|
312 | 312 | foreach ($statement->join as $join) { |
313 | 313 | $expressions[] = $join->expr; |
314 | 314 | } |
315 | 315 | } |
316 | 316 | |
317 | 317 | foreach ($expressions as $expr) { |
318 | - if (! empty($expr->function)) { |
|
318 | + if (!empty($expr->function)) { |
|
319 | 319 | if ($expr->function === 'COUNT') { |
320 | 320 | $flags['is_count'] = true; |
321 | 321 | } elseif (in_array($expr->function, static::$functions)) { |
@@ -330,15 +330,15 @@ discard block |
||
330 | 330 | $flags['is_subquery'] = true; |
331 | 331 | } |
332 | 332 | |
333 | - if (! empty($statement->procedure) && ($statement->procedure->name === 'ANALYSE')) { |
|
333 | + if (!empty($statement->procedure) && ($statement->procedure->name === 'ANALYSE')) { |
|
334 | 334 | $flags['is_analyse'] = true; |
335 | 335 | } |
336 | 336 | |
337 | - if (! empty($statement->group)) { |
|
337 | + if (!empty($statement->group)) { |
|
338 | 338 | $flags['group'] = true; |
339 | 339 | } |
340 | 340 | |
341 | - if (! empty($statement->having)) { |
|
341 | + if (!empty($statement->having)) { |
|
342 | 342 | $flags['having'] = true; |
343 | 343 | } |
344 | 344 | |
@@ -346,7 +346,7 @@ discard block |
||
346 | 346 | $flags['union'] = true; |
347 | 347 | } |
348 | 348 | |
349 | - if (! empty($statement->join)) { |
|
349 | + if (!empty($statement->join)) { |
|
350 | 350 | $flags['join'] = true; |
351 | 351 | } |
352 | 352 | |
@@ -362,7 +362,7 @@ discard block |
||
362 | 362 | * @return array<string, bool|string> |
363 | 363 | * @psalm-return QueryFlagsType |
364 | 364 | */ |
365 | - public static function getFlags(Statement|null $statement, bool $all = false): array |
|
365 | + public static function getFlags(Statement | null $statement, bool $all = false): array |
|
366 | 366 | { |
367 | 367 | $flags = ['querytype' => false]; |
368 | 368 | if ($all) { |
@@ -437,11 +437,11 @@ discard block |
||
437 | 437 | || ($statement instanceof UpdateStatement) |
438 | 438 | || ($statement instanceof DeleteStatement) |
439 | 439 | ) { |
440 | - if (! empty($statement->limit)) { |
|
440 | + if (!empty($statement->limit)) { |
|
441 | 441 | $flags['limit'] = true; |
442 | 442 | } |
443 | 443 | |
444 | - if (! empty($statement->order)) { |
|
444 | + if (!empty($statement->order)) { |
|
445 | 445 | $flags['order'] = true; |
446 | 446 | } |
447 | 447 | } |
@@ -491,7 +491,7 @@ discard block |
||
491 | 491 | // Finding tables' aliases and their associated real names. |
492 | 492 | $tableAliases = []; |
493 | 493 | foreach ($statement->from as $expr) { |
494 | - if (! isset($expr->table, $expr->alias) || ($expr->table === '') || ($expr->alias === '')) { |
|
494 | + if (!isset($expr->table, $expr->alias) || ($expr->table === '') || ($expr->alias === '')) { |
|
495 | 495 | continue; |
496 | 496 | } |
497 | 497 | |
@@ -516,7 +516,7 @@ discard block |
||
516 | 516 | ]; |
517 | 517 | } |
518 | 518 | |
519 | - if (! in_array($arr, $ret['select_tables'])) { |
|
519 | + if (!in_array($arr, $ret['select_tables'])) { |
|
520 | 520 | $ret['select_tables'][] = $arr; |
521 | 521 | } |
522 | 522 | } else { |
@@ -529,7 +529,7 @@ discard block |
||
529 | 529 | // extracted from the FROM clause. |
530 | 530 | if ($ret['select_tables'] === []) { |
531 | 531 | foreach ($statement->from as $expr) { |
532 | - if (! isset($expr->table) || ($expr->table === '')) { |
|
532 | + if (!isset($expr->table) || ($expr->table === '')) { |
|
533 | 533 | continue; |
534 | 534 | } |
535 | 535 | |
@@ -570,7 +570,7 @@ discard block |
||
570 | 570 | } elseif (($statement instanceof AlterStatement) || ($statement instanceof TruncateStatement)) { |
571 | 571 | $expressions = [$statement->table]; |
572 | 572 | } elseif ($statement instanceof DropStatement) { |
573 | - if (! $statement->options->has('TABLE')) { |
|
573 | + if (!$statement->options->has('TABLE')) { |
|
574 | 574 | // No tables are dropped. |
575 | 575 | return []; |
576 | 576 | } |
@@ -615,7 +615,7 @@ discard block |
||
615 | 615 | Statement $statement, |
616 | 616 | TokensList $list, |
617 | 617 | string $clause, |
618 | - int|string $type = 0, |
|
618 | + int | string $type = 0, |
|
619 | 619 | bool $skipFirst = true, |
620 | 620 | ): string { |
621 | 621 | /** |
@@ -747,7 +747,7 @@ discard block |
||
747 | 747 | Statement $statement, |
748 | 748 | TokensList $list, |
749 | 749 | string $old, |
750 | - string|null $new = null, |
|
750 | + string | null $new = null, |
|
751 | 751 | bool $onlyType = false, |
752 | 752 | ): string { |
753 | 753 | // TODO: Update the tokens list and the statement. |
@@ -826,7 +826,7 @@ discard block |
||
826 | 826 | * the remaining part of the query and the last delimiter |
827 | 827 | * @psalm-return array{string|null, string, string|null} |
828 | 828 | */ |
829 | - public static function getFirstStatement(string $query, string|null $delimiter = null): array |
|
829 | + public static function getFirstStatement(string $query, string | null $delimiter = null): array |
|
830 | 830 | { |
831 | 831 | $lexer = new Lexer($query, false, $delimiter); |
832 | 832 | $list = $lexer->list; |
@@ -854,7 +854,7 @@ discard block |
||
854 | 854 | |
855 | 855 | $statement .= $token->token; |
856 | 856 | |
857 | - if (($token->type === TokenType::Delimiter) && ! empty($token->token)) { |
|
857 | + if (($token->type === TokenType::Delimiter) && !empty($token->token)) { |
|
858 | 858 | $delimiter = $token->token; |
859 | 859 | $fullStatement = true; |
860 | 860 | break; |
@@ -863,7 +863,7 @@ discard block |
||
863 | 863 | |
864 | 864 | // No statement was found so we return the entire query as being the |
865 | 865 | // remaining part. |
866 | - if (! $fullStatement) { |
|
866 | + if (!$fullStatement) { |
|
867 | 867 | return [ |
868 | 868 | null, |
869 | 869 | $query, |
@@ -36,7 +36,7 @@ discard block |
||
36 | 36 | { |
37 | 37 | foreach ($longopts as $value) { |
38 | 38 | $value = rtrim($value, ':'); |
39 | - if (! isset($params[$value])) { |
|
39 | + if (!isset($params[$value])) { |
|
40 | 40 | continue; |
41 | 41 | } |
42 | 42 | |
@@ -55,13 +55,13 @@ discard block |
||
55 | 55 | * |
56 | 56 | * @return string[]|false[]|false |
57 | 57 | */ |
58 | - public function getopt(string $opt, array $long): array|false |
|
58 | + public function getopt(string $opt, array $long): array | false |
|
59 | 59 | { |
60 | 60 | return getopt($opt, $long); |
61 | 61 | } |
62 | 62 | |
63 | 63 | /** @return string[]|false[]|false */ |
64 | - public function parseHighlight(): array|false |
|
64 | + public function parseHighlight(): array | false |
|
65 | 65 | { |
66 | 66 | $longopts = [ |
67 | 67 | 'help', |
@@ -75,11 +75,11 @@ discard block |
||
75 | 75 | } |
76 | 76 | |
77 | 77 | $this->mergeLongOpts($params, $longopts); |
78 | - if (! isset($params['f'])) { |
|
78 | + if (!isset($params['f'])) { |
|
79 | 79 | $params['f'] = 'cli'; |
80 | 80 | } |
81 | 81 | |
82 | - if (! in_array($params['f'], ['html', 'cli', 'text'])) { |
|
82 | + if (!in_array($params['f'], ['html', 'cli', 'text'])) { |
|
83 | 83 | echo "ERROR: Invalid value for format!\n"; |
84 | 84 | |
85 | 85 | return false; |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | return 0; |
102 | 102 | } |
103 | 103 | |
104 | - if (! isset($params['q'])) { |
|
104 | + if (!isset($params['q'])) { |
|
105 | 105 | $stdIn = $this->readStdin(); |
106 | 106 | |
107 | 107 | if ($stdIn) { |
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | } |
137 | 137 | |
138 | 138 | /** @return string[]|false[]|false */ |
139 | - public function parseLint(): array|false |
|
139 | + public function parseLint(): array | false |
|
140 | 140 | { |
141 | 141 | $longopts = [ |
142 | 142 | 'help', |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | Context::load($params['c']); |
172 | 172 | } |
173 | 173 | |
174 | - if (! isset($params['q'])) { |
|
174 | + if (!isset($params['q'])) { |
|
175 | 175 | $stdIn = $this->readStdin(); |
176 | 176 | |
177 | 177 | if ($stdIn) { |
@@ -211,7 +211,7 @@ discard block |
||
211 | 211 | } |
212 | 212 | |
213 | 213 | /** @return string[]|false[]|false */ |
214 | - public function parseTokenize(): array|false |
|
214 | + public function parseTokenize(): array | false |
|
215 | 215 | { |
216 | 216 | $longopts = [ |
217 | 217 | 'help', |
@@ -241,7 +241,7 @@ discard block |
||
241 | 241 | return 0; |
242 | 242 | } |
243 | 243 | |
244 | - if (! isset($params['q'])) { |
|
244 | + if (!isset($params['q'])) { |
|
245 | 245 | $stdIn = $this->readStdin(); |
246 | 246 | |
247 | 247 | if ($stdIn) { |
@@ -277,7 +277,7 @@ discard block |
||
277 | 277 | return 1; |
278 | 278 | } |
279 | 279 | |
280 | - public function readStdin(): string|false|null |
|
280 | + public function readStdin(): string | false | null |
|
281 | 281 | { |
282 | 282 | $read = [STDIN]; |
283 | 283 | $write = []; |
@@ -113,12 +113,12 @@ discard block |
||
113 | 113 | * @param bool|null $fieldsKeyword options for OPTIONS keyword |
114 | 114 | */ |
115 | 115 | public function __construct( |
116 | - string|null $type = null, |
|
117 | - string|Expression|null $dest = null, |
|
118 | - array|null $columns = null, |
|
119 | - array|null $values = null, |
|
120 | - OptionsArray|null $fieldsOptions = null, |
|
121 | - bool|null $fieldsKeyword = null, |
|
116 | + string | null $type = null, |
|
117 | + string | Expression | null $dest = null, |
|
118 | + array | null $columns = null, |
|
119 | + array | null $values = null, |
|
120 | + OptionsArray | null $fieldsOptions = null, |
|
121 | + bool | null $fieldsKeyword = null, |
|
122 | 122 | ) { |
123 | 123 | $this->type = $type; |
124 | 124 | $this->dest = $dest; |
@@ -254,7 +254,7 @@ discard block |
||
254 | 254 | public function build(): string |
255 | 255 | { |
256 | 256 | if ($this->dest instanceof Expression) { |
257 | - $columns = ! empty($this->columns) ? '(`' . implode('`, `', $this->columns) . '`)' : ''; |
|
257 | + $columns = !empty($this->columns) ? '(`' . implode('`, `', $this->columns) . '`)' : ''; |
|
258 | 258 | |
259 | 259 | return $this->dest . $columns; |
260 | 260 | } |