From feba79a2e8bea02b62043a4cea797a17e07dc176 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Thu, 9 Mar 2023 16:27:10 +0900 Subject: [PATCH] Install psalm as dev, sync scripts updates --- 4dev/composer/sync-to-composer-all-folder.sh | 0 4dev/sync/sync_template.sh | 7 +- composer.json | 3 +- composer.lock | 760 +- vendor/amphp/amp/LICENSE | 23 + vendor/amphp/amp/composer.json | 74 + vendor/amphp/amp/lib/CallableMaker.php | 80 + vendor/amphp/amp/lib/CancellationToken.php | 49 + .../amphp/amp/lib/CancellationTokenSource.php | 163 + vendor/amphp/amp/lib/CancelledException.php | 17 + .../amp/lib/CombinedCancellationToken.php | 87 + vendor/amphp/amp/lib/Coroutine.php | 160 + vendor/amphp/amp/lib/Deferred.php | 76 + vendor/amphp/amp/lib/Delayed.php | 58 + vendor/amphp/amp/lib/Emitter.php | 84 + vendor/amphp/amp/lib/Failure.php | 52 + vendor/amphp/amp/lib/Internal/Placeholder.php | 187 + .../amp/lib/Internal/PrivateIterator.php | 45 + .../amphp/amp/lib/Internal/PrivatePromise.php | 25 + vendor/amphp/amp/lib/Internal/Producer.php | 212 + .../amp/lib/Internal/ResolutionQueue.php | 90 + vendor/amphp/amp/lib/Internal/functions.php | 117 + vendor/amphp/amp/lib/InvalidYieldError.php | 39 + vendor/amphp/amp/lib/Iterator.php | 34 + vendor/amphp/amp/lib/LazyPromise.php | 44 + vendor/amphp/amp/lib/Loop.php | 456 + vendor/amphp/amp/lib/Loop/Driver.php | 742 + vendor/amphp/amp/lib/Loop/DriverFactory.php | 73 + vendor/amphp/amp/lib/Loop/EvDriver.php | 317 + vendor/amphp/amp/lib/Loop/EventDriver.php | 367 + .../amp/lib/Loop/Internal/TimerQueue.php | 169 + .../amp/lib/Loop/InvalidWatcherError.php | 32 + vendor/amphp/amp/lib/Loop/NativeDriver.php | 445 + vendor/amphp/amp/lib/Loop/TracingDriver.php | 251 + .../lib/Loop/UnsupportedFeatureException.php | 12 + vendor/amphp/amp/lib/Loop/UvDriver.php | 350 + vendor/amphp/amp/lib/Loop/Watcher.php | 57 + vendor/amphp/amp/lib/MultiReasonException.php | 29 + .../amphp/amp/lib/NullCancellationToken.php | 53 + vendor/amphp/amp/lib/Producer.php | 43 + vendor/amphp/amp/lib/Promise.php | 37 + vendor/amphp/amp/lib/Struct.php | 78 + vendor/amphp/amp/lib/Success.php | 60 + .../amp/lib/TimeoutCancellationToken.php | 75 + vendor/amphp/amp/lib/TimeoutException.php | 19 + vendor/amphp/amp/lib/functions.php | 825 + .../byte-stream/.github/workflows/ci.yml | 135 + vendor/amphp/byte-stream/LICENSE | 22 + vendor/amphp/byte-stream/composer.json | 58 + .../lib/Base64/Base64DecodingInputStream.php | 65 + .../lib/Base64/Base64DecodingOutputStream.php | 55 + .../lib/Base64/Base64EncodingInputStream.php | 46 + .../lib/Base64/Base64EncodingOutputStream.php | 39 + .../amphp/byte-stream/lib/ClosedException.php | 7 + .../amphp/byte-stream/lib/InMemoryStream.php | 39 + vendor/amphp/byte-stream/lib/InputStream.php | 38 + .../byte-stream/lib/InputStreamChain.php | 52 + .../amphp/byte-stream/lib/IteratorStream.php | 70 + vendor/amphp/byte-stream/lib/LineReader.php | 71 + vendor/amphp/byte-stream/lib/Message.php | 176 + vendor/amphp/byte-stream/lib/OutputBuffer.php | 55 + vendor/amphp/byte-stream/lib/OutputStream.php | 37 + vendor/amphp/byte-stream/lib/Payload.php | 92 + .../byte-stream/lib/PendingReadError.php | 17 + .../byte-stream/lib/ResourceInputStream.php | 262 + .../byte-stream/lib/ResourceOutputStream.php | 321 + .../amphp/byte-stream/lib/StreamException.php | 7 + .../amphp/byte-stream/lib/ZlibInputStream.php | 112 + .../byte-stream/lib/ZlibOutputStream.php | 119 + vendor/amphp/byte-stream/lib/functions.php | 188 + vendor/amphp/byte-stream/psalm.xml | 53 + vendor/bin/php-parse | 120 + vendor/bin/psalm | 120 + vendor/bin/psalm-language-server | 120 + vendor/bin/psalm-plugin | 120 + vendor/bin/psalm-refactor | 120 + vendor/bin/psalter | 120 + vendor/composer/autoload_classmap.php | 16 + vendor/composer/autoload_files.php | 3 + vendor/composer/autoload_psr4.php | 10 + vendor/composer/autoload_static.php | 78 + vendor/composer/installed.json | 804 +- vendor/composer/installed.php | 117 +- .../package-versions-deprecated/CHANGELOG.md | 120 + .../CONTRIBUTING.md | 39 + .../package-versions-deprecated/LICENSE | 19 + .../package-versions-deprecated/README.md | 7 + .../package-versions-deprecated/SECURITY.md | 5 + .../package-versions-deprecated/composer.json | 48 + .../package-versions-deprecated/composer.lock | 2603 +++ .../src/PackageVersions/FallbackVersions.php | 128 + .../src/PackageVersions/Installer.php | 290 + .../src/PackageVersions/Versions.php | 94 + vendor/dnoegel/php-xdg-base-dir/LICENSE | 19 + vendor/dnoegel/php-xdg-base-dir/README.md | 41 + vendor/dnoegel/php-xdg-base-dir/composer.json | 17 + vendor/dnoegel/php-xdg-base-dir/src/Xdg.php | 132 + .../language-server-protocol/.editorconfig | 17 + .../.github/workflows/build.yml | 67 + .../language-server-protocol/LICENSE | 15 + .../language-server-protocol/README.md | 19 + .../language-server-protocol/composer.json | 44 + .../package-lock.json | 6489 +++++++ .../language-server-protocol/package.json | 15 + .../psalm-baseline.xml | 146 + .../language-server-protocol/psalm.xml | 16 + .../src/CallHierarchyClientCapabilities.php | 22 + .../src/ChangeAnnotation.php | 39 + .../src/ClientCapabilities.php | 97 + .../src/ClientCapabilitiesGeneral.php | 33 + .../src/ClientCapabilitiesWindow.php | 47 + .../src/ClientCapabilitiesWorkspace.php | 99 + ...entCapabilitiesWorkspaceFileOperations.php | 75 + .../src/ClientInfo.php | 29 + .../src/CodeAction.php | 146 + .../src/CodeActionClientCapabilities.php | 95 + ...ntCapabilitiesCodeActionLiteralSupport.php | 20 + ...CodeActionLiteralSupportcodeActionKind.php | 28 + ...ActionClientCapabilitiesResolveSupport.php | 21 + .../src/CodeActionContext.php | 51 + .../src/CodeActionDisabled.php | 21 + .../src/CodeActionKind.php | 87 + .../src/CodeActionTriggerKind.php | 22 + .../src/CodeDescription.php | 23 + .../language-server-protocol/src/CodeLens.php | 46 + .../src/CodeLensClientCapabilities.php | 20 + .../src/CodeLensOptions.php | 21 + .../CodeLensWorkspaceClientCapabilities.php | 25 + .../language-server-protocol/src/Command.php | 42 + .../src/CompletionClientCapabilities.php | 65 + ...letionClientCapabilitiesCompletionItem.php | 140 + ...iesCompletionItemInsertTextModeSupport.php | 24 + ...pabilitiesCompletionItemResolveSupport.php | 24 + ...ntCapabilitiesCompletionItemTagSupport.php | 24 + ...letionClientCapabilitiesCompletionList.php | 30 + .../src/CompletionContext.php | 31 + .../src/CompletionItem.php | 248 + .../src/CompletionItemKind.php | 71 + .../src/CompletionItemLabelDetails.php | 35 + .../src/CompletionItemTag.php | 11 + .../src/CompletionList.php | 39 + .../src/CompletionOptions.php | 33 + .../src/CompletionTriggerKind.php | 16 + .../src/ContentChangeEvent.php | 39 + .../src/DeclarationClientCapabilities.php | 31 + .../src/DefinitionClientCapabilities.php | 29 + .../src/DependencyReference.php | 27 + .../src/Diagnostic.php | 121 + .../src/DiagnosticRelatedInformation.php | 31 + .../src/DiagnosticSeverity.php | 26 + .../src/DiagnosticTag.php | 27 + ...dChangeConfigurationClientCapabilities.php | 20 + ...idChangeWatchedFilesClientCapabilities.php | 21 + .../src/DocumentColorClientCapabilities.php | 20 + .../DocumentFormattingClientCapabilities.php | 20 + .../src/DocumentHighlight.php | 32 + .../DocumentHighlightClientCapabilities.php | 18 + .../src/DocumentHighlightKind.php | 24 + .../src/DocumentLinkClientCapabilities.php | 31 + ...mentOnTypeFormattingClientCapabilities.php | 20 + .../src/DocumentOnTypeFormattingOptions.php | 33 + ...umentRangeFormattingClientCapabilities.php | 20 + .../src/DocumentSymbolClientCapabilities.php | 64 + ...mentSymbolClientCapabilitiesSymbolKind.php | 37 + ...mentSymbolClientCapabilitiesTagSupport.php | 32 + .../src/ErrorCode.php | 17 + .../src/ExecuteCommandClientCapabilities.php | 20 + .../src/ExecuteCommandOptions.php | 23 + .../src/FailureHandlingKind.php | 36 + .../src/FileChangeType.php | 24 + .../src/FileEvent.php | 33 + .../src/FoldingRangeClientCapabilities.php | 42 + .../src/FormattingOptions.php | 33 + .../language-server-protocol/src/Hover.php | 34 + .../src/HoverClientCapabilities.php | 36 + .../src/ImplementationClientCapabilities.php | 32 + .../src/InitializeResult.php | 29 + .../src/InitializeResultServerInfo.php | 26 + .../src/InsertTextFormat.php | 25 + .../src/InsertTextMode.php | 32 + .../LinkedEditingRangeClientCapabilities.php | 23 + .../language-server-protocol/src/Location.php | 27 + .../src/LogMessage.php | 30 + .../language-server-protocol/src/LogTrace.php | 39 + .../src/MarkdownClientCapabilities.php | 47 + .../src/MarkedString.php | 24 + .../src/MarkupContent.php | 52 + .../src/MarkupKind.php | 23 + .../src/MessageActionItem.php | 19 + .../src/MessageType.php | 29 + .../src/MonikerClientCapabilities.php | 23 + .../src/PackageDescriptor.php | 26 + .../src/ParameterInformation.php | 45 + .../language-server-protocol/src/Position.php | 67 + .../src/PrepareSupportDefaultBehavior.php | 12 + .../PublishDiagnosticsClientCapabilities.php | 67 + ...iagnosticsClientCapabilitiesTagSupport.php | 23 + .../language-server-protocol/src/Range.php | 42 + .../src/ReferenceClientCapabilities.php | 18 + .../src/ReferenceContext.php | 19 + .../src/ReferenceInformation.php | 39 + .../RegularExpressionsClientCapabilities.php | 33 + .../src/RenameClientCapabilities.php | 68 + .../src/ResourceOperationKind.php | 24 + .../src/SaveOptions.php | 15 + .../src/SelectionRangeClientCapabilities.php | 22 + .../src/SemanticTokensClientCapabilities.php | 133 + ...manticTokensClientCapabilitiesRequests.php | 31 + ...anticTokensWorkspaceClientCapabilities.php | 24 + .../src/ServerCapabilities.php | 157 + .../src/ShowDocumentClientCapabilities.php | 19 + .../ShowMessageRequestClientCapabilities.php | 20 + ...estClientCapabilitiesMessageActionItem.php | 22 + .../src/SignatureHelp.php | 61 + .../src/SignatureHelpClientCapabilities.php | 43 + ...ClientCapabilitiesSignatureInformation.php | 50 + ...gnatureInformationParameterInformation.php | 24 + .../src/SignatureHelpOptions.php | 24 + .../src/SignatureInformation.php | 66 + .../src/SymbolDescriptor.php | 36 + .../src/SymbolInformation.php | 55 + .../src/SymbolKind.php | 28 + .../src/SymbolLocationInformation.php | 33 + .../src/SymbolTag.php | 16 + .../src/TextDocumentClientCapabilities.php | 265 + .../src/TextDocumentContentChangeEvent.php | 39 + .../src/TextDocumentIdentifier.php | 22 + .../src/TextDocumentItem.php | 50 + .../TextDocumentSyncClientCapabilities.php | 49 + .../src/TextDocumentSyncKind.php | 25 + .../src/TextDocumentSyncOptions.php | 41 + .../language-server-protocol/src/TextEdit.php | 31 + .../src/TokenFormat.php | 8 + .../src/TypeDefinitionClientCapabilities.php | 33 + .../src/VersionedTextDocumentIdentifier.php | 19 + .../src/WorkspaceEdit.php | 78 + .../src/WorkspaceEditClientCapabilities.php | 80 + ...entCapabilitiesChangeAnnotationSupport.php | 21 + .../src/WorkspaceFolder.php | 31 + .../src/WorkspaceSymbolClientCapabilities.php | 55 + ...SymbolClientCapabilitiesResolveSupport.php | 24 + ...paceSymbolClientCapabilitiesSymbolKind.php | 30 + ...paceSymbolClientCapabilitiesTagSupport.php | 30 + vendor/fidry/cpu-core-counter/LICENSE.md | 16 + vendor/fidry/cpu-core-counter/README.md | 114 + .../fidry/cpu-core-counter/bin/diagnose.php | 21 + vendor/fidry/cpu-core-counter/bin/execute.php | 21 + vendor/fidry/cpu-core-counter/composer.json | 48 + .../cpu-core-counter/src/CpuCoreCounter.php | 89 + .../fidry/cpu-core-counter/src/Diagnoser.php | 101 + .../src/Executor/ProcOpenExecutor.php | 56 + .../src/Executor/ProcessExecutor.php | 22 + .../src/Finder/CpuCoreFinder.php | 37 + .../src/Finder/CpuInfoFinder.php | 98 + .../src/Finder/DummyCpuCoreFinder.php | 57 + .../src/Finder/FinderRegistry.php | 77 + .../src/Finder/HwLogicalFinder.php | 33 + .../src/Finder/HwPhysicalFinder.php | 33 + .../src/Finder/LscpuLogicalFinder.php | 52 + .../src/Finder/LscpuPhysicalFinder.php | 66 + .../src/Finder/NProcFinder.php | 56 + .../src/Finder/NProcessorFinder.php | 32 + .../src/Finder/NullCpuCoreFinder.php | 35 + .../src/Finder/OnlyOnOSFamilyFinder.php | 113 + .../src/Finder/ProcOpenBasedFinder.php | 104 + .../src/Finder/SkipOnOSFamilyFinder.php | 113 + .../src/Finder/WmicLogicalFinder.php | 47 + .../src/Finder/WmicPhysicalFinder.php | 47 + .../src/Finder/_NProcessorFinder.php | 32 + .../src/NumberOfCpuCoreNotFound.php | 26 + vendor/nikic/php-parser/LICENSE | 29 + vendor/nikic/php-parser/README.md | 225 + vendor/nikic/php-parser/bin/php-parse | 205 + vendor/nikic/php-parser/composer.json | 41 + vendor/nikic/php-parser/grammar/README.md | 30 + .../nikic/php-parser/grammar/parser.template | 106 + vendor/nikic/php-parser/grammar/php5.y | 1046 + vendor/nikic/php-parser/grammar/php7.y | 1237 ++ vendor/nikic/php-parser/grammar/phpyLang.php | 184 + .../php-parser/grammar/rebuildParsers.php | 81 + .../nikic/php-parser/grammar/tokens.template | 17 + vendor/nikic/php-parser/grammar/tokens.y | 115 + .../php-parser/lib/PhpParser/Builder.php | 13 + .../lib/PhpParser/Builder/ClassConst.php | 132 + .../lib/PhpParser/Builder/Class_.php | 146 + .../lib/PhpParser/Builder/Declaration.php | 43 + .../lib/PhpParser/Builder/EnumCase.php | 85 + .../lib/PhpParser/Builder/Enum_.php | 117 + .../lib/PhpParser/Builder/FunctionLike.php | 73 + .../lib/PhpParser/Builder/Function_.php | 67 + .../lib/PhpParser/Builder/Interface_.php | 93 + .../lib/PhpParser/Builder/Method.php | 146 + .../lib/PhpParser/Builder/Namespace_.php | 45 + .../lib/PhpParser/Builder/Param.php | 122 + .../lib/PhpParser/Builder/Property.php | 161 + .../lib/PhpParser/Builder/TraitUse.php | 64 + .../PhpParser/Builder/TraitUseAdaptation.php | 148 + .../lib/PhpParser/Builder/Trait_.php | 78 + .../php-parser/lib/PhpParser/Builder/Use_.php | 49 + .../lib/PhpParser/BuilderFactory.php | 399 + .../lib/PhpParser/BuilderHelpers.php | 335 + .../php-parser/lib/PhpParser/Comment.php | 239 + .../php-parser/lib/PhpParser/Comment/Doc.php | 7 + .../ConstExprEvaluationException.php | 6 + .../lib/PhpParser/ConstExprEvaluator.php | 229 + .../nikic/php-parser/lib/PhpParser/Error.php | 180 + .../php-parser/lib/PhpParser/ErrorHandler.php | 13 + .../lib/PhpParser/ErrorHandler/Collecting.php | 46 + .../lib/PhpParser/ErrorHandler/Throwing.php | 18 + .../lib/PhpParser/Internal/DiffElem.php | 27 + .../lib/PhpParser/Internal/Differ.php | 164 + .../Internal/PrintableNewAnonClassNode.php | 61 + .../lib/PhpParser/Internal/TokenStream.php | 286 + .../php-parser/lib/PhpParser/JsonDecoder.php | 103 + .../nikic/php-parser/lib/PhpParser/Lexer.php | 560 + .../lib/PhpParser/Lexer/Emulative.php | 251 + .../Lexer/TokenEmulator/AttributeEmulator.php | 56 + .../CoaleseEqualTokenEmulator.php | 47 + .../Lexer/TokenEmulator/EnumTokenEmulator.php | 31 + .../TokenEmulator/ExplicitOctalEmulator.php | 44 + .../FlexibleDocStringEmulator.php | 76 + .../Lexer/TokenEmulator/FnTokenEmulator.php | 23 + .../Lexer/TokenEmulator/KeywordEmulator.php | 62 + .../TokenEmulator/MatchTokenEmulator.php | 23 + .../TokenEmulator/NullsafeTokenEmulator.php | 67 + .../NumericLiteralSeparatorEmulator.php | 105 + .../ReadonlyFunctionTokenEmulator.php | 31 + .../TokenEmulator/ReadonlyTokenEmulator.php | 36 + .../Lexer/TokenEmulator/ReverseEmulator.php | 36 + .../Lexer/TokenEmulator/TokenEmulator.php | 25 + .../php-parser/lib/PhpParser/NameContext.php | 285 + .../nikic/php-parser/lib/PhpParser/Node.php | 151 + .../php-parser/lib/PhpParser/Node/Arg.php | 46 + .../lib/PhpParser/Node/Attribute.php | 34 + .../lib/PhpParser/Node/AttributeGroup.php | 29 + .../lib/PhpParser/Node/ComplexType.php | 14 + .../php-parser/lib/PhpParser/Node/Const_.php | 37 + .../php-parser/lib/PhpParser/Node/Expr.php | 9 + .../lib/PhpParser/Node/Expr/ArrayDimFetch.php | 34 + .../lib/PhpParser/Node/Expr/ArrayItem.php | 41 + .../lib/PhpParser/Node/Expr/Array_.php | 34 + .../lib/PhpParser/Node/Expr/ArrowFunction.php | 79 + .../lib/PhpParser/Node/Expr/Assign.php | 34 + .../lib/PhpParser/Node/Expr/AssignOp.php | 30 + .../Node/Expr/AssignOp/BitwiseAnd.php | 12 + .../Node/Expr/AssignOp/BitwiseOr.php | 12 + .../Node/Expr/AssignOp/BitwiseXor.php | 12 + .../PhpParser/Node/Expr/AssignOp/Coalesce.php | 12 + .../PhpParser/Node/Expr/AssignOp/Concat.php | 12 + .../lib/PhpParser/Node/Expr/AssignOp/Div.php | 12 + .../PhpParser/Node/Expr/AssignOp/Minus.php | 12 + .../lib/PhpParser/Node/Expr/AssignOp/Mod.php | 12 + .../lib/PhpParser/Node/Expr/AssignOp/Mul.php | 12 + .../lib/PhpParser/Node/Expr/AssignOp/Plus.php | 12 + .../lib/PhpParser/Node/Expr/AssignOp/Pow.php | 12 + .../Node/Expr/AssignOp/ShiftLeft.php | 12 + .../Node/Expr/AssignOp/ShiftRight.php | 12 + .../lib/PhpParser/Node/Expr/AssignRef.php | 34 + .../lib/PhpParser/Node/Expr/BinaryOp.php | 40 + .../Node/Expr/BinaryOp/BitwiseAnd.php | 16 + .../Node/Expr/BinaryOp/BitwiseOr.php | 16 + .../Node/Expr/BinaryOp/BitwiseXor.php | 16 + .../Node/Expr/BinaryOp/BooleanAnd.php | 16 + .../Node/Expr/BinaryOp/BooleanOr.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Coalesce.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Concat.php | 16 + .../lib/PhpParser/Node/Expr/BinaryOp/Div.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Equal.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Greater.php | 16 + .../Node/Expr/BinaryOp/GreaterOrEqual.php | 16 + .../Node/Expr/BinaryOp/Identical.php | 16 + .../Node/Expr/BinaryOp/LogicalAnd.php | 16 + .../Node/Expr/BinaryOp/LogicalOr.php | 16 + .../Node/Expr/BinaryOp/LogicalXor.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Minus.php | 16 + .../lib/PhpParser/Node/Expr/BinaryOp/Mod.php | 16 + .../lib/PhpParser/Node/Expr/BinaryOp/Mul.php | 16 + .../PhpParser/Node/Expr/BinaryOp/NotEqual.php | 16 + .../Node/Expr/BinaryOp/NotIdentical.php | 16 + .../lib/PhpParser/Node/Expr/BinaryOp/Plus.php | 16 + .../lib/PhpParser/Node/Expr/BinaryOp/Pow.php | 16 + .../Node/Expr/BinaryOp/ShiftLeft.php | 16 + .../Node/Expr/BinaryOp/ShiftRight.php | 16 + .../PhpParser/Node/Expr/BinaryOp/Smaller.php | 16 + .../Node/Expr/BinaryOp/SmallerOrEqual.php | 16 + .../Node/Expr/BinaryOp/Spaceship.php | 16 + .../lib/PhpParser/Node/Expr/BitwiseNot.php | 30 + .../lib/PhpParser/Node/Expr/BooleanNot.php | 30 + .../lib/PhpParser/Node/Expr/CallLike.php | 39 + .../lib/PhpParser/Node/Expr/Cast.php | 26 + .../lib/PhpParser/Node/Expr/Cast/Array_.php | 12 + .../lib/PhpParser/Node/Expr/Cast/Bool_.php | 12 + .../lib/PhpParser/Node/Expr/Cast/Double.php | 17 + .../lib/PhpParser/Node/Expr/Cast/Int_.php | 12 + .../lib/PhpParser/Node/Expr/Cast/Object_.php | 12 + .../lib/PhpParser/Node/Expr/Cast/String_.php | 12 + .../lib/PhpParser/Node/Expr/Cast/Unset_.php | 12 + .../PhpParser/Node/Expr/ClassConstFetch.php | 36 + .../lib/PhpParser/Node/Expr/Clone_.php | 30 + .../lib/PhpParser/Node/Expr/Closure.php | 79 + .../lib/PhpParser/Node/Expr/ClosureUse.php | 34 + .../lib/PhpParser/Node/Expr/ConstFetch.php | 31 + .../lib/PhpParser/Node/Expr/Empty_.php | 30 + .../lib/PhpParser/Node/Expr/Error.php | 31 + .../lib/PhpParser/Node/Expr/ErrorSuppress.php | 30 + .../lib/PhpParser/Node/Expr/Eval_.php | 30 + .../lib/PhpParser/Node/Expr/Exit_.php | 34 + .../lib/PhpParser/Node/Expr/FuncCall.php | 39 + .../lib/PhpParser/Node/Expr/Include_.php | 39 + .../lib/PhpParser/Node/Expr/Instanceof_.php | 35 + .../lib/PhpParser/Node/Expr/Isset_.php | 30 + .../lib/PhpParser/Node/Expr/List_.php | 30 + .../lib/PhpParser/Node/Expr/Match_.php | 31 + .../lib/PhpParser/Node/Expr/MethodCall.php | 45 + .../lib/PhpParser/Node/Expr/New_.php | 41 + .../Node/Expr/NullsafeMethodCall.php | 45 + .../Node/Expr/NullsafePropertyFetch.php | 35 + .../lib/PhpParser/Node/Expr/PostDec.php | 30 + .../lib/PhpParser/Node/Expr/PostInc.php | 30 + .../lib/PhpParser/Node/Expr/PreDec.php | 30 + .../lib/PhpParser/Node/Expr/PreInc.php | 30 + .../lib/PhpParser/Node/Expr/Print_.php | 30 + .../lib/PhpParser/Node/Expr/PropertyFetch.php | 35 + .../lib/PhpParser/Node/Expr/ShellExec.php | 30 + .../lib/PhpParser/Node/Expr/StaticCall.php | 46 + .../Node/Expr/StaticPropertyFetch.php | 36 + .../lib/PhpParser/Node/Expr/Ternary.php | 38 + .../lib/PhpParser/Node/Expr/Throw_.php | 30 + .../lib/PhpParser/Node/Expr/UnaryMinus.php | 30 + .../lib/PhpParser/Node/Expr/UnaryPlus.php | 30 + .../lib/PhpParser/Node/Expr/Variable.php | 30 + .../lib/PhpParser/Node/Expr/YieldFrom.php | 30 + .../lib/PhpParser/Node/Expr/Yield_.php | 34 + .../lib/PhpParser/Node/FunctionLike.php | 43 + .../lib/PhpParser/Node/Identifier.php | 75 + .../lib/PhpParser/Node/IntersectionType.php | 30 + .../lib/PhpParser/Node/MatchArm.php | 31 + .../php-parser/lib/PhpParser/Node/Name.php | 242 + .../PhpParser/Node/Name/FullyQualified.php | 50 + .../lib/PhpParser/Node/Name/Relative.php | 50 + .../lib/PhpParser/Node/NullableType.php | 28 + .../php-parser/lib/PhpParser/Node/Param.php | 60 + .../php-parser/lib/PhpParser/Node/Scalar.php | 7 + .../lib/PhpParser/Node/Scalar/DNumber.php | 77 + .../lib/PhpParser/Node/Scalar/Encapsed.php | 31 + .../Node/Scalar/EncapsedStringPart.php | 30 + .../lib/PhpParser/Node/Scalar/LNumber.php | 80 + .../lib/PhpParser/Node/Scalar/MagicConst.php | 28 + .../Node/Scalar/MagicConst/Class_.php | 16 + .../PhpParser/Node/Scalar/MagicConst/Dir.php | 16 + .../PhpParser/Node/Scalar/MagicConst/File.php | 16 + .../Node/Scalar/MagicConst/Function_.php | 16 + .../PhpParser/Node/Scalar/MagicConst/Line.php | 16 + .../Node/Scalar/MagicConst/Method.php | 16 + .../Node/Scalar/MagicConst/Namespace_.php | 16 + .../Node/Scalar/MagicConst/Trait_.php | 16 + .../lib/PhpParser/Node/Scalar/String_.php | 157 + .../php-parser/lib/PhpParser/Node/Stmt.php | 9 + .../lib/PhpParser/Node/Stmt/Break_.php | 30 + .../lib/PhpParser/Node/Stmt/Case_.php | 34 + .../lib/PhpParser/Node/Stmt/Catch_.php | 41 + .../lib/PhpParser/Node/Stmt/ClassConst.php | 80 + .../lib/PhpParser/Node/Stmt/ClassLike.php | 109 + .../lib/PhpParser/Node/Stmt/ClassMethod.php | 161 + .../lib/PhpParser/Node/Stmt/Class_.php | 137 + .../lib/PhpParser/Node/Stmt/Const_.php | 30 + .../lib/PhpParser/Node/Stmt/Continue_.php | 30 + .../PhpParser/Node/Stmt/DeclareDeclare.php | 34 + .../lib/PhpParser/Node/Stmt/Declare_.php | 34 + .../lib/PhpParser/Node/Stmt/Do_.php | 34 + .../lib/PhpParser/Node/Stmt/Echo_.php | 30 + .../lib/PhpParser/Node/Stmt/ElseIf_.php | 34 + .../lib/PhpParser/Node/Stmt/Else_.php | 30 + .../lib/PhpParser/Node/Stmt/EnumCase.php | 37 + .../lib/PhpParser/Node/Stmt/Enum_.php | 40 + .../lib/PhpParser/Node/Stmt/Expression.php | 33 + .../lib/PhpParser/Node/Stmt/Finally_.php | 30 + .../lib/PhpParser/Node/Stmt/For_.php | 43 + .../lib/PhpParser/Node/Stmt/Foreach_.php | 47 + .../lib/PhpParser/Node/Stmt/Function_.php | 77 + .../lib/PhpParser/Node/Stmt/Global_.php | 30 + .../lib/PhpParser/Node/Stmt/Goto_.php | 31 + .../lib/PhpParser/Node/Stmt/GroupUse.php | 39 + .../lib/PhpParser/Node/Stmt/HaltCompiler.php | 30 + .../lib/PhpParser/Node/Stmt/If_.php | 43 + .../lib/PhpParser/Node/Stmt/InlineHTML.php | 30 + .../lib/PhpParser/Node/Stmt/Interface_.php | 37 + .../lib/PhpParser/Node/Stmt/Label.php | 31 + .../lib/PhpParser/Node/Stmt/Namespace_.php | 38 + .../lib/PhpParser/Node/Stmt/Nop.php | 17 + .../lib/PhpParser/Node/Stmt/Property.php | 91 + .../PhpParser/Node/Stmt/PropertyProperty.php | 34 + .../lib/PhpParser/Node/Stmt/Return_.php | 30 + .../lib/PhpParser/Node/Stmt/StaticVar.php | 37 + .../lib/PhpParser/Node/Stmt/Static_.php | 30 + .../lib/PhpParser/Node/Stmt/Switch_.php | 34 + .../lib/PhpParser/Node/Stmt/Throw_.php | 30 + .../lib/PhpParser/Node/Stmt/TraitUse.php | 34 + .../Node/Stmt/TraitUseAdaptation.php | 13 + .../Node/Stmt/TraitUseAdaptation/Alias.php | 38 + .../Stmt/TraitUseAdaptation/Precedence.php | 34 + .../lib/PhpParser/Node/Stmt/Trait_.php | 32 + .../lib/PhpParser/Node/Stmt/TryCatch.php | 38 + .../lib/PhpParser/Node/Stmt/Unset_.php | 30 + .../lib/PhpParser/Node/Stmt/UseUse.php | 52 + .../lib/PhpParser/Node/Stmt/Use_.php | 47 + .../lib/PhpParser/Node/Stmt/While_.php | 34 + .../lib/PhpParser/Node/UnionType.php | 28 + .../lib/PhpParser/Node/VarLikeIdentifier.php | 17 + .../PhpParser/Node/VariadicPlaceholder.php | 27 + .../php-parser/lib/PhpParser/NodeAbstract.php | 178 + .../php-parser/lib/PhpParser/NodeDumper.php | 206 + .../php-parser/lib/PhpParser/NodeFinder.php | 81 + .../lib/PhpParser/NodeTraverser.php | 291 + .../lib/PhpParser/NodeTraverserInterface.php | 29 + .../php-parser/lib/PhpParser/NodeVisitor.php | 72 + .../PhpParser/NodeVisitor/CloningVisitor.php | 20 + .../PhpParser/NodeVisitor/FindingVisitor.php | 48 + .../NodeVisitor/FirstFindingVisitor.php | 50 + .../PhpParser/NodeVisitor/NameResolver.php | 257 + .../NodeVisitor/NodeConnectingVisitor.php | 52 + .../NodeVisitor/ParentConnectingVisitor.php | 41 + .../lib/PhpParser/NodeVisitorAbstract.php | 25 + .../nikic/php-parser/lib/PhpParser/Parser.php | 18 + .../lib/PhpParser/Parser/Multiple.php | 55 + .../php-parser/lib/PhpParser/Parser/Php5.php | 2682 +++ .../php-parser/lib/PhpParser/Parser/Php7.php | 2882 +++ .../lib/PhpParser/Parser/Tokens.php | 148 + .../lib/PhpParser/ParserAbstract.php | 1060 + .../lib/PhpParser/ParserFactory.php | 44 + .../lib/PhpParser/PrettyPrinter/Standard.php | 1113 ++ .../lib/PhpParser/PrettyPrinterAbstract.php | 1521 ++ vendor/phpstan/phpstan/phpstan.phar | Bin 21573143 -> 21589615 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- vendor/sebastian/diff/ChangeLog.md | 99 + vendor/sebastian/diff/LICENSE | 29 + vendor/sebastian/diff/README.md | 204 + vendor/sebastian/diff/SECURITY.md | 9 + vendor/sebastian/diff/composer.json | 47 + vendor/sebastian/diff/src/Chunk.php | 70 + vendor/sebastian/diff/src/Diff.php | 57 + vendor/sebastian/diff/src/Differ.php | 243 + .../src/Exception/ConfigurationException.php | 37 + .../diff/src/Exception/Exception.php | 16 + .../Exception/InvalidArgumentException.php | 14 + vendor/sebastian/diff/src/Line.php | 37 + .../LongestCommonSubsequenceCalculator.php | 18 + ...ientLongestCommonSubsequenceCalculator.php | 88 + .../src/Output/AbstractChunkOutputBuilder.php | 52 + .../diff/src/Output/DiffOnlyOutputBuilder.php | 70 + .../src/Output/DiffOutputBuilderInterface.php | 19 + .../Output/StrictUnifiedDiffOutputBuilder.php | 326 + .../src/Output/UnifiedDiffOutputBuilder.php | 258 + vendor/sebastian/diff/src/Parser.php | 108 + ...ientLongestCommonSubsequenceCalculator.php | 70 + .../array-to-xml/.php-cs-fixer.dist.php | 44 + vendor/spatie/array-to-xml/CHANGELOG.md | 198 + vendor/spatie/array-to-xml/LICENSE.md | 21 + vendor/spatie/array-to-xml/README.md | 536 + vendor/spatie/array-to-xml/composer.json | 46 + vendor/spatie/array-to-xml/src/ArrayToXml.php | 275 + vendor/symfony/filesystem/CHANGELOG.md | 82 + .../Exception/ExceptionInterface.php | 21 + .../Exception/FileNotFoundException.php | 34 + .../filesystem/Exception/IOException.php | 36 + .../Exception/IOExceptionInterface.php | 25 + .../Exception/InvalidArgumentException.php | 19 + .../filesystem/Exception/RuntimeException.php | 19 + vendor/symfony/filesystem/Filesystem.php | 737 + vendor/symfony/filesystem/LICENSE | 19 + vendor/symfony/filesystem/Path.php | 819 + vendor/symfony/filesystem/README.md | 13 + vendor/symfony/filesystem/composer.json | 30 + vendor/vimeo/psalm/LICENSE | 21 + vendor/vimeo/psalm/composer.json | 139 + vendor/vimeo/psalm/config.xsd | 742 + vendor/vimeo/psalm/dictionaries/CallMap.php | 15907 ++++++++++++++++ .../psalm/dictionaries/CallMap_71_delta.php | 76 + .../psalm/dictionaries/CallMap_72_delta.php | 255 + .../psalm/dictionaries/CallMap_73_delta.php | 118 + .../psalm/dictionaries/CallMap_74_delta.php | 91 + .../psalm/dictionaries/CallMap_80_delta.php | 2798 +++ .../psalm/dictionaries/CallMap_81_delta.php | 1194 ++ .../psalm/dictionaries/CallMap_82_delta.php | 52 + .../psalm/dictionaries/CallMap_historical.php | 15709 +++++++++++++++ .../dictionaries/InternalTaintSinkMap.php | 63 + .../psalm/dictionaries/ManualPropertyMap.php | 145 + .../vimeo/psalm/dictionaries/PropertyMap.php | 618 + vendor/vimeo/psalm/docs/README.md | 72 + .../docs/annotating_code/adding_assertions.md | 223 + .../docs/annotating_code/assertion_syntax.md | 127 + .../annotating_code/supported_annotations.md | 664 + .../annotating_code/templated_annotations.md | 454 + .../type_syntax/array_types.md | 220 + .../type_syntax/atomic_types.md | 60 + .../type_syntax/callable_types.md | 58 + .../type_syntax/conditional_types.md | 82 + .../type_syntax/intersection_types.md | 36 + .../type_syntax/object_types.md | 45 + .../type_syntax/other_types.md | 6 + .../type_syntax/scalar_types.md | 115 + .../type_syntax/top_bottom_types.md | 17 + .../type_syntax/union_types.md | 16 + .../type_syntax/utility_types.md | 364 + .../type_syntax/value_types.md | 48 + .../docs/annotating_code/typing_in_psalm.md | 173 + .../psalm/docs/contributing/adding_issues.md | 62 + .../docs/contributing/editing_callmaps.md | 81 + .../docs/contributing/how_psalm_works.md | 73 + vendor/vimeo/psalm/docs/contributing/index.md | 40 + .../psalm/docs/contributing/philosophy.md | 70 + .../what_makes_psalm_complicated.md | 82 + .../psalm/docs/manipulating_code/fixing.md | 615 + .../docs/manipulating_code/refactoring.md | 45 + .../running_psalm/checking_non_php_files.md | 43 + .../docs/running_psalm/command_line_usage.md | 47 + .../psalm/docs/running_psalm/configuration.md | 621 + .../running_psalm/dealing_with_code_issues.md | 167 + .../psalm/docs/running_psalm/error_levels.md | 311 + .../psalm/docs/running_psalm/installation.md | 53 + .../vimeo/psalm/docs/running_psalm/issues.md | 300 + .../issues/AbstractInstantiation.md | 10 + .../issues/AbstractMethodCall.md | 17 + .../issues/AmbiguousConstantInheritance.md | 41 + .../issues/ArgumentTypeCoercion.md | 39 + .../running_psalm/issues/AssignmentToVoid.md | 25 + .../docs/running_psalm/issues/CheckType.md | 19 + .../running_psalm/issues/CircularReference.md | 14 + .../running_psalm/issues/ComplexFunction.md | 3 + .../running_psalm/issues/ComplexMethod.md | 3 + .../docs/running_psalm/issues/ConfigIssue.md | 7 + .../issues/ConflictingReferenceConstraint.md | 39 + .../issues/ConstantDeclarationInTrait.md | 15 + .../issues/ConstructorSignatureMismatch.md | 17 + .../issues/ContinueOutsideLoop.md | 14 + .../running_psalm/issues/DeprecatedClass.md | 19 + .../issues/DeprecatedConstant.md | 29 + .../issues/DeprecatedFunction.md | 19 + .../issues/DeprecatedInterface.md | 20 + .../running_psalm/issues/DeprecatedMethod.md | 21 + .../issues/DeprecatedProperty.md | 24 + .../running_psalm/issues/DeprecatedTrait.md | 21 + .../issues/DirectConstructorCall.md | 12 + .../issues/DocblockTypeContradiction.md | 40 + .../running_psalm/issues/DuplicateArrayKey.md | 40 + .../running_psalm/issues/DuplicateClass.md | 32 + .../running_psalm/issues/DuplicateConstant.md | 16 + .../running_psalm/issues/DuplicateEnumCase.md | 27 + .../issues/DuplicateEnumCaseValue.md | 27 + .../running_psalm/issues/DuplicateFunction.md | 11 + .../running_psalm/issues/DuplicateMethod.md | 12 + .../running_psalm/issues/DuplicateParam.md | 13 + .../running_psalm/issues/EmptyArrayAccess.md | 10 + .../issues/ExtensionRequirementViolation.md | 20 + .../issues/FalsableReturnStatement.md | 45 + .../docs/running_psalm/issues/FalseOperand.md | 13 + .../running_psalm/issues/ForbiddenCode.md | 23 + .../running_psalm/issues/IfThisIsMismatch.md | 35 + .../ImplementationRequirementViolation.md | 22 + .../issues/ImplementedParamTypeMismatch.md | 35 + .../issues/ImplementedReturnTypeMismatch.md | 43 + .../issues/ImplicitToStringCast.md | 29 + .../issues/ImpureByReferenceAssignment.md | 30 + .../issues/ImpureFunctionCall.md | 23 + .../running_psalm/issues/ImpureMethodCall.md | 26 + .../issues/ImpurePropertyAssignment.md | 18 + .../issues/ImpurePropertyFetch.md | 16 + .../issues/ImpureStaticProperty.md | 18 + .../issues/ImpureStaticVariable.md | 15 + .../running_psalm/issues/ImpureVariable.md | 18 + .../issues/InaccessibleClassConstant.md | 12 + .../issues/InaccessibleMethod.md | 12 + .../issues/InaccessibleProperty.md | 13 + .../issues/InterfaceInstantiation.md | 10 + .../running_psalm/issues/InternalClass.md | 23 + .../running_psalm/issues/InternalMethod.md | 25 + .../running_psalm/issues/InternalProperty.md | 26 + .../running_psalm/issues/InvalidArgument.md | 40 + .../issues/InvalidArrayAccess.md | 10 + .../issues/InvalidArrayAssignment.md | 10 + .../issues/InvalidArrayOffset.md | 10 + .../running_psalm/issues/InvalidAttribute.md | 16 + .../docs/running_psalm/issues/InvalidCast.md | 11 + .../docs/running_psalm/issues/InvalidCatch.md | 13 + .../docs/running_psalm/issues/InvalidClass.md | 26 + .../issues/InvalidClassConstantType.md | 28 + .../docs/running_psalm/issues/InvalidClone.md | 10 + .../issues/InvalidConstantAssignmentValue.md | 12 + .../running_psalm/issues/InvalidDocblock.md | 10 + .../issues/InvalidDocblockParamName.md | 14 + .../issues/InvalidEnumBackingType.md | 13 + .../issues/InvalidEnumCaseValue.md | 102 + .../running_psalm/issues/InvalidEnumMethod.md | 15 + .../issues/InvalidExtendClass.md | 18 + .../issues/InvalidFalsableReturnType.md | 15 + .../issues/InvalidFunctionCall.md | 10 + .../running_psalm/issues/InvalidGlobal.md | 13 + .../issues/InvalidInterfaceImplementation.md | 15 + .../running_psalm/issues/InvalidIterator.md | 10 + .../issues/InvalidLiteralArgument.md | 11 + .../running_psalm/issues/InvalidMethodCall.md | 10 + .../issues/InvalidNamedArgument.md | 12 + .../issues/InvalidNullableReturnType.md | 15 + .../running_psalm/issues/InvalidOperand.md | 10 + .../issues/InvalidParamDefault.md | 9 + .../running_psalm/issues/InvalidParent.md | 10 + .../issues/InvalidPassByReference.md | 10 + .../issues/InvalidPropertyAssignment.md | 10 + .../issues/InvalidPropertyAssignmentValue.md | 14 + .../issues/InvalidPropertyFetch.md | 10 + .../issues/InvalidReturnStatement.md | 11 + .../running_psalm/issues/InvalidReturnType.md | 15 + .../issues/InvalidScalarArgument.md | 18 + .../docs/running_psalm/issues/InvalidScope.md | 9 + .../issues/InvalidStaticInvocation.md | 18 + .../issues/InvalidStringClass.md | 11 + .../issues/InvalidTemplateParam.md | 15 + .../docs/running_psalm/issues/InvalidThrow.md | 10 + .../running_psalm/issues/InvalidToString.md | 14 + .../InvalidTraversableImplementation.md | 13 + .../running_psalm/issues/InvalidTypeImport.md | 16 + .../issues/LessSpecificClassConstantType.md | 28 + .../LessSpecificImplementedReturnType.md | 20 + .../issues/LessSpecificReturnStatement.md | 14 + .../issues/LessSpecificReturnType.md | 11 + .../running_psalm/issues/LoopInvalidation.md | 11 + .../issues/MethodSignatureMismatch.md | 14 + .../MethodSignatureMustOmitReturnType.md | 11 + .../MethodSignatureMustProvideReturnType.md | 16 + .../issues/MismatchingDocblockParamType.md | 12 + .../issues/MismatchingDocblockPropertyType.md | 11 + .../issues/MismatchingDocblockReturnType.md | 31 + .../issues/MissingClosureParamType.md | 11 + .../issues/MissingClosureReturnType.md | 11 + .../issues/MissingConstructor.md | 22 + .../running_psalm/issues/MissingDependency.md | 14 + .../issues/MissingDocblockType.md | 10 + .../docs/running_psalm/issues/MissingFile.md | 9 + .../issues/MissingImmutableAnnotation.md | 19 + .../running_psalm/issues/MissingParamType.md | 9 + .../issues/MissingPropertyType.md | 17 + .../running_psalm/issues/MissingReturnType.md | 21 + .../issues/MissingTemplateParam.md | 28 + .../issues/MissingThrowsDocblock.md | 17 + .../running_psalm/issues/MixedArgument.md | 10 + .../issues/MixedArgumentTypeCoercion.md | 25 + .../running_psalm/issues/MixedArrayAccess.md | 9 + .../issues/MixedArrayAssignment.md | 9 + .../running_psalm/issues/MixedArrayOffset.md | 9 + .../issues/MixedArrayTypeCoercion.md | 17 + .../running_psalm/issues/MixedAssignment.md | 38 + .../docs/running_psalm/issues/MixedClone.md | 9 + .../running_psalm/issues/MixedFunctionCall.md | 11 + .../issues/MixedInferredReturnType.md | 11 + .../running_psalm/issues/MixedMethodCall.md | 66 + .../docs/running_psalm/issues/MixedOperand.md | 25 + .../issues/MixedPropertyAssignment.md | 12 + .../issues/MixedPropertyFetch.md | 12 + .../issues/MixedPropertyTypeCoercion.md | 16 + .../issues/MixedReturnStatement.md | 11 + .../issues/MixedReturnTypeCoercion.md | 25 + .../issues/MixedStringOffsetAssignment.md | 9 + .../MoreSpecificImplementedParamType.md | 26 + .../issues/MoreSpecificReturnType.md | 14 + .../running_psalm/issues/MutableDependency.md | 20 + .../issues/NamedArgumentNotAllowed.md | 35 + .../running_psalm/issues/NoEnumProperties.md | 12 + .../issues/NoInterfaceProperties.md | 16 + .../docs/running_psalm/issues/NoValue.md | 41 + .../NonInvariantDocblockPropertyType.md | 59 + .../issues/NonInvariantPropertyType.md | 20 + .../running_psalm/issues/NonStaticSelfCall.md | 15 + .../docs/running_psalm/issues/NullArgument.md | 10 + .../running_psalm/issues/NullArrayAccess.md | 10 + .../running_psalm/issues/NullArrayOffset.md | 10 + .../running_psalm/issues/NullFunctionCall.md | 10 + .../docs/running_psalm/issues/NullIterator.md | 9 + .../docs/running_psalm/issues/NullOperand.md | 9 + .../issues/NullPropertyAssignment.md | 10 + .../running_psalm/issues/NullPropertyFetch.md | 10 + .../running_psalm/issues/NullReference.md | 10 + .../issues/NullableReturnStatement.md | 15 + .../issues/OverriddenFinalConstant.md | 19 + .../issues/OverriddenInterfaceConstant.md | 17 + .../issues/OverriddenMethodAccess.md | 14 + .../issues/OverriddenPropertyAccess.md | 16 + .../issues/ParadoxicalCondition.md | 11 + .../running_psalm/issues/ParamNameMismatch.md | 95 + .../running_psalm/issues/ParentNotFound.md | 13 + .../docs/running_psalm/issues/ParseError.md | 13 + .../docs/running_psalm/issues/PluginIssue.md | 3 + .../issues/PossibleRawObjectIteration.md | 23 + .../issues/PossiblyFalseArgument.md | 12 + .../issues/PossiblyFalseIterator.md | 10 + .../issues/PossiblyFalseOperand.md | 39 + .../PossiblyFalsePropertyAssignmentValue.md | 17 + .../issues/PossiblyFalseReference.md | 18 + .../issues/PossiblyInvalidArgument.md | 14 + .../issues/PossiblyInvalidArrayAccess.md | 10 + .../issues/PossiblyInvalidArrayAssignment.md | 10 + .../issues/PossiblyInvalidArrayOffset.md | 10 + .../issues/PossiblyInvalidCast.md | 15 + .../issues/PossiblyInvalidClone.md | 16 + .../issues/PossiblyInvalidDocblockTag.md | 11 + .../issues/PossiblyInvalidFunctionCall.md | 10 + .../issues/PossiblyInvalidIterator.md | 10 + .../issues/PossiblyInvalidMethodCall.md | 18 + .../issues/PossiblyInvalidOperand.md | 12 + .../PossiblyInvalidPropertyAssignment.md | 20 + .../PossiblyInvalidPropertyAssignmentValue.md | 20 + .../issues/PossiblyInvalidPropertyFetch.md | 20 + .../issues/PossiblyNullArgument.md | 55 + .../issues/PossiblyNullArrayAccess.md | 11 + .../issues/PossiblyNullArrayAssignment.md | 10 + .../issues/PossiblyNullArrayOffset.md | 11 + .../issues/PossiblyNullFunctionCall.md | 11 + .../issues/PossiblyNullIterator.md | 11 + .../issues/PossiblyNullOperand.md | 11 + .../issues/PossiblyNullPropertyAssignment.md | 15 + .../PossiblyNullPropertyAssignmentValue.md | 17 + .../issues/PossiblyNullPropertyFetch.md | 15 + .../issues/PossiblyNullReference.md | 14 + .../issues/PossiblyUndefinedArrayOffset.md | 41 + .../issues/PossiblyUndefinedGlobalVariable.md | 12 + .../issues/PossiblyUndefinedIntArrayOffset.md | 14 + .../issues/PossiblyUndefinedMethod.md | 15 + .../PossiblyUndefinedStringArrayOffset.md | 14 + .../issues/PossiblyUndefinedVariable.md | 14 + .../issues/PossiblyUnusedMethod.md | 17 + .../issues/PossiblyUnusedParam.md | 27 + .../issues/PossiblyUnusedProperty.md | 22 + .../issues/PossiblyUnusedReturnValue.md | 14 + .../issues/PropertyNotSetInConstructor.md | 24 + .../issues/PropertyTypeCoercion.md | 19 + .../issues/RawObjectIteration.md | 19 + .../running_psalm/issues/RedundantCast.md | 10 + .../issues/RedundantCastGivenDocblockType.md | 13 + .../issues/RedundantCondition.md | 13 + .../RedundantConditionGivenDocblockType.md | 18 + .../issues/RedundantFunctionCall.md | 12 + .../RedundantFunctionCallGivenDocblockType.md | 21 + .../issues/RedundantIdentityWithTrue.md | 19 + .../RedundantPropertyInitializationCheck.md | 26 + .../issues/ReferenceConstraintViolation.md | 11 + .../ReferenceReusedFromConfusingScope.md | 39 + .../docs/running_psalm/issues/ReservedWord.md | 9 + .../docs/running_psalm/issues/RiskyCast.md | 17 + .../running_psalm/issues/StringIncrement.md | 10 + .../running_psalm/issues/TaintedCallable.md | 19 + .../running_psalm/issues/TaintedCookie.md | 34 + .../running_psalm/issues/TaintedCustom.md | 3 + .../docs/running_psalm/issues/TaintedEval.md | 17 + .../docs/running_psalm/issues/TaintedFile.md | 43 + .../running_psalm/issues/TaintedHeader.md | 36 + .../docs/running_psalm/issues/TaintedHtml.md | 42 + .../running_psalm/issues/TaintedInclude.md | 17 + .../docs/running_psalm/issues/TaintedInput.md | 3 + .../docs/running_psalm/issues/TaintedLdap.md | 32 + .../docs/running_psalm/issues/TaintedSSRF.md | 36 + .../docs/running_psalm/issues/TaintedShell.md | 15 + .../docs/running_psalm/issues/TaintedSql.md | 18 + .../issues/TaintedSystemSecret.md | 16 + .../issues/TaintedTextWithQuotes.md | 42 + .../issues/TaintedUnserialize.md | 19 + .../running_psalm/issues/TaintedUserSecret.md | 20 + .../running_psalm/issues/TooFewArguments.md | 10 + .../running_psalm/issues/TooManyArguments.md | 10 + .../issues/TooManyTemplateParams.md | 18 + .../psalm/docs/running_psalm/issues/Trace.md | 14 + .../issues/TraitMethodSignatureMismatch.md | 17 + .../issues/TypeDoesNotContainNull.md | 10 + .../issues/TypeDoesNotContainType.md | 10 + .../issues/UncaughtThrowInGlobalScope.md | 15 + .../issues/UndefinedAttributeClass.md | 11 + .../running_psalm/issues/UndefinedClass.md | 9 + .../running_psalm/issues/UndefinedConstant.md | 9 + .../issues/UndefinedDocblockClass.md | 12 + .../running_psalm/issues/UndefinedFunction.md | 9 + .../issues/UndefinedGlobalVariable.md | 9 + .../issues/UndefinedInterface.md | 11 + .../issues/UndefinedInterfaceMethod.md | 13 + .../issues/UndefinedMagicMethod.md | 17 + .../UndefinedMagicPropertyAssignment.md | 17 + .../issues/UndefinedMagicPropertyFetch.md | 18 + .../running_psalm/issues/UndefinedMethod.md | 10 + .../issues/UndefinedPropertyAssignment.md | 11 + .../issues/UndefinedPropertyFetch.md | 11 + .../issues/UndefinedThisPropertyAssignment.md | 13 + .../issues/UndefinedThisPropertyFetch.md | 13 + .../running_psalm/issues/UndefinedTrace.md | 14 + .../running_psalm/issues/UndefinedTrait.md | 11 + .../running_psalm/issues/UndefinedVariable.md | 11 + .../running_psalm/issues/UnevaluatedCode.md | 12 + .../issues/UnhandledMatchCondition.md | 19 + .../issues/UnimplementedAbstractMethod.md | 12 + .../issues/UnimplementedInterfaceMethod.md | 12 + .../issues/UninitializedProperty.md | 17 + .../issues/UnnecessaryVarAnnotation.md | 14 + .../issues/UnrecognizedExpression.md | 3 + .../issues/UnrecognizedStatement.md | 3 + .../issues/UnresolvableConstant.md | 22 + .../issues/UnresolvableInclude.md | 11 + .../issues/UnsafeGenericInstantiation.md | 157 + .../issues/UnsafeInstantiation.md | 80 + .../issues/UnsupportedReferenceUsage.md | 34 + .../issues/UnusedBaselineEntry.md | 22 + .../docs/running_psalm/issues/UnusedClass.md | 14 + .../issues/UnusedClosureParam.md | 26 + .../running_psalm/issues/UnusedConstructor.md | 14 + .../issues/UnusedDocblockParam.md | 14 + .../issues/UnusedForeachValue.md | 26 + .../issues/UnusedFunctionCall.md | 11 + .../docs/running_psalm/issues/UnusedMethod.md | 20 + .../running_psalm/issues/UnusedMethodCall.md | 22 + .../docs/running_psalm/issues/UnusedParam.md | 19 + .../running_psalm/issues/UnusedProperty.md | 28 + .../issues/UnusedPsalmSuppress.md | 10 + .../running_psalm/issues/UnusedReturnValue.md | 18 + .../running_psalm/issues/UnusedVariable.md | 21 + .../docs/running_psalm/language_server.md | 110 + .../plugins/authoring_plugins.md | 154 + .../plugins/plugins_type_system.md | 283 + .../running_psalm/plugins/using_plugins.md | 31 + .../docs/security_analysis/annotations.md | 21 + .../avoiding_false_negatives.md | 25 + .../avoiding_false_positives.md | 214 + .../security_analysis/custom_taint_sinks.md | 20 + .../security_analysis/custom_taint_sources.md | 73 + .../psalm/docs/security_analysis/index.md | 116 + vendor/vimeo/psalm/psalm | 9 + vendor/vimeo/psalm/psalm-language-server | 9 + vendor/vimeo/psalm/psalm-plugin | 9 + vendor/vimeo/psalm/psalm-refactor | 9 + vendor/vimeo/psalm/psalter | 9 + vendor/vimeo/psalm/src/Psalm/Aliases.php | 76 + vendor/vimeo/psalm/src/Psalm/CodeLocation.php | 407 + .../CodeLocation/DocblockTypeLocation.php | 33 + .../Psalm/CodeLocation/ParseErrorLocation.php | 36 + .../psalm/src/Psalm/CodeLocation/Raw.php | 34 + vendor/vimeo/psalm/src/Psalm/Codebase.php | 1989 ++ vendor/vimeo/psalm/src/Psalm/Config.php | 2662 +++ .../vimeo/psalm/src/Psalm/Config/Creator.php | 309 + .../src/Psalm/Config/ErrorLevelFileFilter.php | 66 + .../psalm/src/Psalm/Config/FileFilter.php | 591 + .../psalm/src/Psalm/Config/IssueHandler.php | 180 + .../src/Psalm/Config/ProjectFileFilter.php | 93 + .../Psalm/Config/TaintAnalysisFileFilter.php | 8 + vendor/vimeo/psalm/src/Psalm/Context.php | 940 + vendor/vimeo/psalm/src/Psalm/DocComment.php | 102 + .../vimeo/psalm/src/Psalm/ErrorBaseline.php | 307 + .../Exception/CircularReferenceException.php | 9 + .../src/Psalm/Exception/CodeException.php | 9 + .../ComplicatedExpressionException.php | 9 + .../Exception/ConfigCreationException.php | 9 + .../src/Psalm/Exception/ConfigException.php | 9 + .../Exception/ConfigNotFoundException.php | 7 + .../Exception/DocblockParseException.php | 9 + .../Psalm/Exception/FileIncludeException.php | 9 + .../Exception/IncorrectDocblockException.php | 7 + .../InvalidClasslikeOverrideException.php | 9 + .../InvalidMethodOverrideException.php | 9 + .../src/Psalm/Exception/RefactorException.php | 9 + .../Exception/ScopeAnalysisException.php | 9 + .../Exception/TypeParseTreeException.php | 9 + .../Exception/UnanalyzedFileException.php | 9 + .../UnpopulatedClasslikeException.php | 16 + .../Exception/UnpreparedAnalysisException.php | 9 + .../UnresolvableConstantException.php | 24 + .../UnsupportedIssueToFixException.php | 10 + .../src/Psalm/FileBasedPluginAdapter.php | 68 + .../psalm/src/Psalm/FileManipulation.php | 83 + vendor/vimeo/psalm/src/Psalm/FileSource.php | 31 + .../psalm/src/Psalm/Internal/Algebra.php | 672 + .../Internal/Algebra/FormulaGenerator.php | 462 + .../Internal/Analyzer/AlgebraAnalyzer.php | 140 + .../Internal/Analyzer/AttributesAnalyzer.php | 396 + .../src/Psalm/Internal/Analyzer/CanAlias.php | 168 + .../Psalm/Internal/Analyzer/ClassAnalyzer.php | 2496 +++ .../Internal/Analyzer/ClassLikeAnalyzer.php | 820 + .../Analyzer/ClassLikeNameOptions.php | 37 + .../Internal/Analyzer/ClosureAnalyzer.php | 345 + .../Internal/Analyzer/CommentAnalyzer.php | 516 + .../Internal/Analyzer/DataFlowNodeData.php | 62 + .../Psalm/Internal/Analyzer/FileAnalyzer.php | 677 + .../Internal/Analyzer/FunctionAnalyzer.php | 124 + .../FunctionLike/ReturnTypeAnalyzer.php | 1078 ++ .../FunctionLike/ReturnTypeCollector.php | 324 + .../Analyzer/FunctionLikeAnalyzer.php | 2079 ++ .../Internal/Analyzer/InterfaceAnalyzer.php | 198 + .../src/Psalm/Internal/Analyzer/IssueData.php | 143 + .../Internal/Analyzer/MethodAnalyzer.php | 345 + .../Internal/Analyzer/MethodComparator.php | 1099 ++ .../Internal/Analyzer/NamespaceAnalyzer.php | 268 + .../Internal/Analyzer/ProjectAnalyzer.php | 1470 ++ .../Psalm/Internal/Analyzer/ScopeAnalyzer.php | 446 + .../Internal/Analyzer/SourceAnalyzer.php | 197 + .../Analyzer/Statements/Block/DoAnalyzer.php | 205 + .../Analyzer/Statements/Block/ForAnalyzer.php | 185 + .../Statements/Block/ForeachAnalyzer.php | 1149 ++ .../Block/IfConditionalAnalyzer.php | 372 + .../Statements/Block/IfElse/ElseAnalyzer.php | 237 + .../Block/IfElse/ElseIfAnalyzer.php | 430 + .../Statements/Block/IfElse/IfAnalyzer.php | 516 + .../Statements/Block/IfElseAnalyzer.php | 450 + .../Statements/Block/LoopAnalyzer.php | 670 + .../Statements/Block/SwitchAnalyzer.php | 228 + .../Statements/Block/SwitchCaseAnalyzer.php | 740 + .../Analyzer/Statements/Block/TryAnalyzer.php | 486 + .../Statements/Block/WhileAnalyzer.php | 131 + .../Analyzer/Statements/BreakAnalyzer.php | 92 + .../Analyzer/Statements/ContinueAnalyzer.php | 98 + .../Analyzer/Statements/EchoAnalyzer.php | 127 + .../Statements/Expression/ArrayAnalyzer.php | 643 + .../Expression/ArrayCreationInfo.php | 51 + .../Statements/Expression/AssertionFinder.php | 4181 ++++ .../Assignment/ArrayAssignmentAnalyzer.php | 1153 ++ .../Assignment/AssignedProperty.php | 27 + .../InstancePropertyAssignmentAnalyzer.php | 1582 ++ .../StaticPropertyAssignmentAnalyzer.php | 350 + .../Expression/AssignmentAnalyzer.php | 1828 ++ .../Expression/BinaryOp/AndAnalyzer.php | 225 + .../BinaryOp/ArithmeticOpAnalyzer.php | 1418 ++ .../Expression/BinaryOp/CoalesceAnalyzer.php | 96 + .../Expression/BinaryOp/ConcatAnalyzer.php | 450 + .../BinaryOp/NonComparisonOpAnalyzer.php | 134 + .../Expression/BinaryOp/OrAnalyzer.php | 404 + .../Expression/BinaryOpAnalyzer.php | 531 + .../Expression/BitwiseNotAnalyzer.php | 129 + .../Expression/BooleanNotAnalyzer.php | 57 + .../Expression/Call/ArgumentAnalyzer.php | 1617 ++ .../Expression/Call/ArgumentMapPopulator.php | 145 + .../Expression/Call/ArgumentsAnalyzer.php | 1805 ++ .../Call/ArrayFunctionArgumentsAnalyzer.php | 965 + .../Call/ClassTemplateParamCollector.php | 303 + .../Expression/Call/FunctionCallAnalyzer.php | 1150 ++ .../Expression/Call/FunctionCallInfo.php | 63 + .../Call/FunctionCallReturnTypeFetcher.php | 811 + .../Call/Method/AtomicCallContext.php | 24 + .../Method/AtomicMethodCallAnalysisResult.php | 65 + .../Call/Method/AtomicMethodCallAnalyzer.php | 894 + .../ExistingAtomicMethodCallAnalyzer.php | 669 + .../Method/MethodCallProhibitionAnalyzer.php | 70 + .../Call/Method/MethodCallPurityAnalyzer.php | 176 + .../Method/MethodCallReturnTypeFetcher.php | 631 + .../Call/Method/MethodVisibilityAnalyzer.php | 198 + .../Call/Method/MissingMethodCallHandler.php | 450 + .../Expression/Call/MethodCallAnalyzer.php | 446 + .../Call/NamedFunctionCallHandler.php | 663 + .../Expression/Call/NewAnalyzer.php | 907 + .../Expression/Call/StaticCallAnalyzer.php | 374 + .../StaticMethod/AtomicStaticCallAnalyzer.php | 1158 ++ .../ExistingAtomicStaticCallAnalyzer.php | 635 + .../Statements/Expression/CallAnalyzer.php | 1117 ++ .../Statements/Expression/CastAnalyzer.php | 948 + .../Expression/ClassConstAnalyzer.php | 914 + .../Statements/Expression/CloneAnalyzer.php | 160 + .../Statements/Expression/EmptyAnalyzer.php | 55 + .../Expression/EncapsulatedStringAnalyzer.php | 156 + .../Statements/Expression/EvalAnalyzer.php | 85 + .../Statements/Expression/ExitAnalyzer.php | 148 + .../Expression/ExpressionIdentifier.php | 227 + .../Expression/Fetch/ArrayFetchAnalyzer.php | 2022 ++ .../Fetch/AtomicPropertyFetchAnalyzer.php | 1274 ++ .../Expression/Fetch/ConstFetchAnalyzer.php | 310 + .../Fetch/InstancePropertyFetchAnalyzer.php | 484 + .../Fetch/StaticPropertyFetchAnalyzer.php | 504 + .../Fetch/VariableFetchAnalyzer.php | 811 + .../Expression/IncDecExpressionAnalyzer.php | 141 + .../Statements/Expression/IncludeAnalyzer.php | 446 + .../Expression/InstanceofAnalyzer.php | 98 + .../Statements/Expression/IssetAnalyzer.php | 52 + .../Expression/MagicConstAnalyzer.php | 108 + .../Statements/Expression/MatchAnalyzer.php | 354 + .../Expression/NullsafeAnalyzer.php | 98 + .../Statements/Expression/PrintAnalyzer.php | 112 + .../Expression/SimpleTypeInferer.php | 820 + .../Statements/Expression/TernaryAnalyzer.php | 337 + .../Expression/UnaryPlusMinusAnalyzer.php | 136 + .../Statements/Expression/YieldAnalyzer.php | 263 + .../Expression/YieldFromAnalyzer.php | 85 + .../Statements/ExpressionAnalyzer.php | 557 + .../Analyzer/Statements/GlobalAnalyzer.php | 123 + .../Analyzer/Statements/ReturnAnalyzer.php | 664 + .../Analyzer/Statements/StaticAnalyzer.php | 105 + .../Analyzer/Statements/ThrowAnalyzer.php | 94 + .../Analyzer/Statements/UnsetAnalyzer.php | 168 + .../Statements/UnusedAssignmentRemover.php | 359 + .../Internal/Analyzer/StatementsAnalyzer.php | 1170 ++ .../Psalm/Internal/Analyzer/TraitAnalyzer.php | 84 + .../Psalm/Internal/Analyzer/TypeAnalyzer.php | 61 + .../vimeo/psalm/src/Psalm/Internal/Clause.php | 275 + .../src/Psalm/Internal/Cli/LanguageServer.php | 333 + .../psalm/src/Psalm/Internal/Cli/Plugin.php | 49 + .../psalm/src/Psalm/Internal/Cli/Psalm.php | 1399 ++ .../psalm/src/Psalm/Internal/Cli/Psalter.php | 606 + .../psalm/src/Psalm/Internal/Cli/Refactor.php | 339 + .../psalm/src/Psalm/Internal/CliUtils.php | 565 + .../src/Psalm/Internal/Codebase/Analyzer.php | 1633 ++ .../ClassConstantByWildcardResolver.php | 58 + .../Psalm/Internal/Codebase/ClassLikes.php | 2365 +++ .../Codebase/ConstantTypeResolver.php | 383 + .../Psalm/Internal/Codebase/DataFlowGraph.php | 162 + .../src/Psalm/Internal/Codebase/Functions.php | 626 + .../Codebase/InternalCallMapHandler.php | 427 + .../src/Psalm/Internal/Codebase/Methods.php | 1142 ++ .../src/Psalm/Internal/Codebase/Populator.php | 1090 ++ .../Psalm/Internal/Codebase/Properties.php | 336 + .../Psalm/Internal/Codebase/PropertyMap.php | 41 + .../Codebase/ReferenceMapGenerator.php | 64 + .../Psalm/Internal/Codebase/Reflection.php | 544 + .../src/Psalm/Internal/Codebase/Scanner.php | 787 + .../Internal/Codebase/TaintFlowGraph.php | 532 + .../Internal/Codebase/VariableUseGraph.php | 225 + .../psalm/src/Psalm/Internal/Composer.php | 43 + .../Psalm/Internal/DataFlow/DataFlowNode.php | 133 + .../src/Psalm/Internal/DataFlow/Path.php | 40 + .../src/Psalm/Internal/DataFlow/TaintSink.php | 10 + .../Psalm/Internal/DataFlow/TaintSource.php | 10 + .../src/Psalm/Internal/Diff/AstDiffer.php | 127 + .../Internal/Diff/ClassStatementsDiffer.php | 250 + .../src/Psalm/Internal/Diff/DiffElem.php | 40 + .../src/Psalm/Internal/Diff/FileDiffer.php | 313 + .../Internal/Diff/FileStatementsDiffer.php | 170 + .../Diff/NamespaceStatementsDiffer.php | 142 + .../psalm/src/Psalm/Internal/ErrorHandler.php | 101 + .../src/Psalm/Internal/EventDispatcher.php | 437 + .../BuildInfoCollector.php | 317 + .../ExecutionEnvironment/GitInfoCollector.php | 140 + .../SystemCommandExecutor.php | 39 + .../ClassDocblockManipulator.php | 135 + .../FileManipulation/CodeMigration.php | 38 + .../FileManipulationBuffer.php | 244 + .../FunctionDocblockManipulator.php | 566 + .../PropertyDocblockManipulator.php | 267 + .../src/Psalm/Internal/Fork/ForkMessage.php | 7 + .../Internal/Fork/ForkProcessDoneMessage.php | 24 + .../Internal/Fork/ForkProcessErrorMessage.php | 21 + .../Internal/Fork/ForkTaskDoneMessage.php | 25 + .../psalm/src/Psalm/Internal/Fork/Pool.php | 488 + .../Psalm/Internal/Fork/PsalmRestarter.php | 161 + .../src/Psalm/Internal/IncludeCollector.php | 56 + .../psalm/src/Psalm/Internal/Json/Json.php | 46 + .../LanguageServer/Client/TextDocument.php | 75 + .../Internal/LanguageServer/ClientHandler.php | 101 + .../LanguageServer/EmitterInterface.php | 72 + .../Internal/LanguageServer/EmitterTrait.php | 158 + .../Internal/LanguageServer/IdGenerator.php | 23 + .../LanguageServer/LanguageClient.php | 60 + .../LanguageServer/LanguageServer.php | 561 + .../Psalm/Internal/LanguageServer/Message.php | 69 + .../LanguageServer/ProtocolReader.php | 15 + .../LanguageServer/ProtocolStreamReader.php | 144 + .../LanguageServer/ProtocolStreamWriter.php | 32 + .../LanguageServer/ProtocolWriter.php | 17 + .../LanguageServer/Server/TextDocument.php | 410 + .../LanguageServer/Server/Workspace.php | 71 + .../src/Psalm/Internal/MethodIdentifier.php | 74 + .../Internal/PhpTraverser/CustomTraverser.php | 172 + .../PhpVisitor/AssignmentMapVisitor.php | 114 + .../PhpVisitor/CheckTrivialExprVisitor.php | 80 + .../Internal/PhpVisitor/CloningVisitor.php | 34 + .../PhpVisitor/ConditionCloningVisitor.php | 42 + .../PhpVisitor/NodeCleanerVisitor.php | 28 + .../PhpVisitor/NodeCounterVisitor.php | 20 + .../PhpVisitor/OffsetShifterVisitor.php | 70 + .../PhpVisitor/ParamReplacementVisitor.php | 118 + .../PhpVisitor/PartialParserVisitor.php | 404 + .../Reflector/AttributeResolver.php | 83 + .../Reflector/ClassLikeDocblockParser.php | 569 + .../Reflector/ClassLikeNodeScanner.php | 1906 ++ .../Reflector/ExpressionResolver.php | 485 + .../Reflector/ExpressionScanner.php | 335 + .../Reflector/FunctionLikeDocblockParser.php | 753 + .../Reflector/FunctionLikeDocblockScanner.php | 1517 ++ .../Reflector/FunctionLikeNodeScanner.php | 1148 ++ .../PhpVisitor/Reflector/TypeHintResolver.php | 178 + .../Internal/PhpVisitor/ReflectorVisitor.php | 629 + .../PhpVisitor/ShortClosureVisitor.php | 35 + .../PhpVisitor/SimpleNameResolver.php | 251 + .../Psalm/Internal/PhpVisitor/TraitFinder.php | 86 + .../PhpVisitor/TypeMappingVisitor.php | 44 + .../PhpVisitor/YieldTypeCollector.php | 79 + .../PluginManager/Command/DisableCommand.php | 85 + .../PluginManager/Command/EnableCommand.php | 85 + .../PluginManager/Command/ShowCommand.php | 95 + .../Internal/PluginManager/ComposerLock.php | 115 + .../Internal/PluginManager/ConfigFile.php | 151 + .../Internal/PluginManager/PluginList.php | 121 + .../PluginManager/PluginListFactory.php | 79 + .../AddRemoveTaints/HtmlFunctionTainter.php | 118 + .../ClassLikeStorageCacheProvider.php | 191 + .../Provider/ClassLikeStorageProvider.php | 137 + .../DynamicFunctionStorageProvider.php | 101 + .../Internal/Provider/FakeFileProvider.php | 78 + .../Psalm/Internal/Provider/FileProvider.php | 171 + .../Provider/FileReferenceCacheProvider.php | 1033 + .../Provider/FileReferenceProvider.php | 1279 ++ .../Provider/FileStorageCacheProvider.php | 193 + .../Internal/Provider/FileStorageProvider.php | 128 + .../Provider/FunctionExistenceProvider.php | 77 + .../Provider/FunctionParamsProvider.php | 87 + .../Provider/FunctionReturnTypeProvider.php | 163 + .../Provider/MethodExistenceProvider.php | 78 + .../Provider/MethodParamsProvider.php | 96 + .../Provider/MethodReturnTypeProvider.php | 111 + .../Provider/MethodVisibilityProvider.php | 85 + .../Internal/Provider/NodeDataProvider.php | 136 + .../Internal/Provider/ParserCacheProvider.php | 388 + .../Provider/ProjectCacheProvider.php | 137 + .../Provider/PropertyExistenceProvider.php | 87 + .../Provider/PropertyTypeProvider.php | 92 + .../DomDocumentPropertyTypeProvider.php | 38 + .../Provider/PropertyVisibilityProvider.php | 83 + .../src/Psalm/Internal/Provider/Providers.php | 90 + .../ArrayChunkReturnTypeProvider.php | 54 + .../ArrayColumnReturnTypeProvider.php | 255 + .../ArrayCombineReturnTypeProvider.php | 132 + .../ArrayFillKeysReturnTypeProvider.php | 90 + .../ArrayFillReturnTypeProvider.php | 139 + .../ArrayFilterReturnTypeProvider.php | 325 + .../ArrayMapReturnTypeProvider.php | 534 + .../ArrayMergeReturnTypeProvider.php | 313 + .../ArrayPadReturnTypeProvider.php | 69 + ...rayPointerAdjustmentReturnTypeProvider.php | 126 + .../ArrayPopReturnTypeProvider.php | 96 + .../ArrayRandReturnTypeProvider.php | 76 + .../ArrayReduceReturnTypeProvider.php | 304 + .../ArrayReverseReturnTypeProvider.php | 83 + .../ArraySliceReturnTypeProvider.php | 93 + .../ArraySpliceReturnTypeProvider.php | 65 + .../ArrayUniqueReturnTypeProvider.php | 60 + .../BasenameReturnTypeProvider.php | 54 + .../ClosureFromCallableReturnTypeProvider.php | 73 + .../DateTimeModifyReturnTypeProvider.php | 64 + .../DirnameReturnTypeProvider.php | 72 + .../ReturnTypeProvider/DomNodeAppendChild.php | 45 + .../FilterVarReturnTypeProvider.php | 173 + .../FirstArgStringReturnTypeProvider.php | 48 + .../GetClassMethodsReturnTypeProvider.php | 44 + .../GetObjectVarsReturnTypeProvider.php | 179 + .../HexdecReturnTypeProvider.php | 33 + .../ImagickPixelColorReturnTypeProvider.php | 91 + .../InArrayReturnTypeProvider.php | 83 + .../IteratorToArrayReturnTypeProvider.php | 129 + .../MbInternalEncodingReturnTypeProvider.php | 116 + .../MinMaxReturnTypeProvider.php | 159 + .../MktimeReturnTypeProvider.php | 50 + .../ParseUrlReturnTypeProvider.php | 161 + .../PdoStatementReturnTypeProvider.php | 116 + .../PdoStatementSetFetchMode.php | 118 + .../RandReturnTypeProvider.php | 68 + .../RoundReturnTypeProvider.php | 78 + .../SimpleXmlElementAsXml.php | 34 + .../StrReplaceReturnTypeProvider.php | 87 + .../StrTrReturnTypeProvider.php | 75 + .../TriggerErrorReturnTypeProvider.php | 78 + .../VersionCompareReturnTypeProvider.php | 85 + .../Internal/Provider/StatementsProvider.php | 505 + .../Provider/StatementsVolatileCache.php | 100 + .../Psalm/Internal/ReferenceConstraint.php | 37 + .../src/Psalm/Internal/RuntimeCaches.php | 47 + .../Scanner/ClassLikeDocblockComment.php | 106 + .../Psalm/Internal/Scanner/DocblockParser.php | 304 + .../Psalm/Internal/Scanner/FileScanner.php | 113 + .../Scanner/FunctionDocblockComment.php | 177 + .../Psalm/Internal/Scanner/ParsedDocblock.php | 92 + .../Internal/Scanner/PhpStormMetaScanner.php | 415 + .../UnresolvedConstant/ArrayOffsetFetch.php | 22 + .../UnresolvedConstant/ArraySpread.php | 19 + .../Scanner/UnresolvedConstant/ArrayValue.php | 21 + .../UnresolvedConstant/ClassConstant.php | 22 + .../Scanner/UnresolvedConstant/Constant.php | 22 + .../UnresolvedConstant/KeyValuePair.php | 22 + .../UnresolvedConstant/ScalarValue.php | 21 + .../UnresolvedAdditionOp.php | 11 + .../UnresolvedConstant/UnresolvedBinaryOp.php | 25 + .../UnresolvedBitwiseAnd.php | 11 + .../UnresolvedBitwiseOr.php | 11 + .../UnresolvedBitwiseXor.php | 11 + .../UnresolvedConstant/UnresolvedConcatOp.php | 14 + .../UnresolvedDivisionOp.php | 14 + .../UnresolvedMultiplicationOp.php | 14 + .../UnresolvedSubtractionOp.php | 14 + .../UnresolvedConstant/UnresolvedTernary.php | 31 + .../Scanner/UnresolvedConstantComponent.php | 14 + .../Internal/Scanner/VarDocblockComment.php | 60 + .../src/Psalm/Internal/Scope/CaseScope.php | 29 + .../src/Psalm/Internal/Scope/FinallyScope.php | 24 + .../Internal/Scope/IfConditionalScope.php | 48 + .../src/Psalm/Internal/Scope/IfScope.php | 90 + .../src/Psalm/Internal/Scope/LoopScope.php | 65 + .../src/Psalm/Internal/Scope/SwitchScope.php | 50 + .../Generator/ClassLikeStubGenerator.php | 313 + .../Stubs/Generator/StubsGenerator.php | 419 + .../src/Psalm/Internal/Type/ArrayType.php | 57 + .../Internal/Type/AssertionReconciler.php | 1633 ++ .../Type/Comparator/ArrayTypeComparator.php | 201 + .../Type/Comparator/AtomicTypeComparator.php | 840 + .../Comparator/CallableTypeComparator.php | 549 + .../Comparator/ClassLikeStringComparator.php | 92 + .../Type/Comparator/GenericTypeComparator.php | 196 + .../Comparator/IntegerRangeComparator.php | 175 + .../Type/Comparator/KeyedArrayComparator.php | 211 + .../Type/Comparator/ObjectComparator.php | 366 + .../Type/Comparator/ScalarTypeComparator.php | 553 + .../Type/Comparator/TypeComparisonResult.php | 44 + .../Type/Comparator/UnionTypeComparator.php | 531 + .../Type/NegatedAssertionReconciler.php | 480 + .../src/Psalm/Internal/Type/ParseTree.php | 37 + .../Type/ParseTree/CallableParamTree.php | 15 + .../Internal/Type/ParseTree/CallableTree.php | 21 + .../ParseTree/CallableWithReturnTypeTree.php | 12 + .../Type/ParseTree/ConditionalTree.php | 19 + .../Type/ParseTree/EncapsulationTree.php | 13 + .../Internal/Type/ParseTree/FieldEllipsis.php | 12 + .../Internal/Type/ParseTree/GenericTree.php | 21 + .../Type/ParseTree/IndexedAccessTree.php | 19 + .../Type/ParseTree/IntersectionTree.php | 12 + .../Type/ParseTree/KeyedArrayPropertyTree.php | 19 + .../Type/ParseTree/KeyedArrayTree.php | 21 + .../Type/ParseTree/MethodParamTree.php | 31 + .../Internal/Type/ParseTree/MethodTree.php | 19 + .../ParseTree/MethodWithReturnTypeTree.php | 12 + .../Internal/Type/ParseTree/NullableTree.php | 12 + .../Psalm/Internal/Type/ParseTree/Root.php | 12 + .../Type/ParseTree/TemplateAsTree.php | 22 + .../Type/ParseTree/TemplateIsTree.php | 19 + .../Internal/Type/ParseTree/UnionTree.php | 12 + .../Psalm/Internal/Type/ParseTree/Value.php | 33 + .../Psalm/Internal/Type/ParseTreeCreator.php | 860 + .../Type/SimpleAssertionReconciler.php | 2912 +++ .../Type/SimpleNegatedAssertionReconciler.php | 2037 ++ .../src/Psalm/Internal/Type/TemplateBound.php | 46 + .../Type/TemplateInferredTypeReplacer.php | 558 + .../Psalm/Internal/Type/TemplateResult.php | 66 + .../Type/TemplateStandinTypeReplacer.php | 1329 ++ .../src/Psalm/Internal/Type/TypeAlias.php | 7 + .../Type/TypeAlias/ClassTypeAlias.php | 25 + .../Type/TypeAlias/InlineTypeAlias.php | 28 + .../Type/TypeAlias/LinkableTypeAlias.php | 39 + .../Psalm/Internal/Type/TypeCombination.php | 128 + .../src/Psalm/Internal/Type/TypeCombiner.php | 1599 ++ .../src/Psalm/Internal/Type/TypeExpander.php | 1156 ++ .../src/Psalm/Internal/Type/TypeParser.php | 1531 ++ .../src/Psalm/Internal/Type/TypeTokenizer.php | 515 + .../CanContainObjectTypeVisitor.php | 42 + .../TypeVisitor/ClasslikeReplacer.php | 58 + .../TypeVisitor/ContainsClassLikeVisitor.php | 70 + .../TypeVisitor/ContainsLiteralVisitor.php | 45 + .../TypeVisitor/ContainsStaticVisitor.php | 29 + .../TypeVisitor/FromDocblockSetter.php | 49 + .../TypeVisitor/TemplateTypeCollector.php | 53 + .../Internal/TypeVisitor/TypeChecker.php | 400 + .../Internal/TypeVisitor/TypeLocalizer.php | 99 + .../Internal/TypeVisitor/TypeScanner.php | 95 + .../psalm/src/Psalm/Internal/VersionUtils.php | 99 + .../src/Psalm/Issue/AbstractInstantiation.php | 9 + .../src/Psalm/Issue/AbstractMethodCall.php | 9 + .../Issue/AmbiguousConstantInheritance.php | 9 + .../psalm/src/Psalm/Issue/ArgumentIssue.php | 24 + .../src/Psalm/Issue/ArgumentTypeCoercion.php | 9 + .../src/Psalm/Issue/AssignmentToVoid.php | 9 + .../vimeo/psalm/src/Psalm/Issue/CheckType.php | 9 + .../src/Psalm/Issue/CircularReference.php | 9 + .../src/Psalm/Issue/ClassConstantIssue.php | 22 + .../psalm/src/Psalm/Issue/ClassIssue.php | 22 + .../vimeo/psalm/src/Psalm/Issue/CodeIssue.php | 109 + .../psalm/src/Psalm/Issue/ComplexFunction.php | 9 + .../psalm/src/Psalm/Issue/ComplexMethod.php | 9 + .../psalm/src/Psalm/Issue/ConfigIssue.php | 9 + .../Issue/ConflictingReferenceConstraint.php | 9 + .../Issue/ConstantDeclarationInTrait.php | 11 + .../Issue/ConstructorSignatureMismatch.php | 9 + .../src/Psalm/Issue/ContinueOutsideLoop.php | 9 + .../psalm/src/Psalm/Issue/DeprecatedClass.php | 9 + .../src/Psalm/Issue/DeprecatedConstant.php | 9 + .../src/Psalm/Issue/DeprecatedFunction.php | 9 + .../src/Psalm/Issue/DeprecatedInterface.php | 9 + .../src/Psalm/Issue/DeprecatedMethod.php | 9 + .../src/Psalm/Issue/DeprecatedProperty.php | 9 + .../psalm/src/Psalm/Issue/DeprecatedTrait.php | 9 + .../src/Psalm/Issue/DirectConstructorCall.php | 9 + .../Psalm/Issue/DocblockTypeContradiction.php | 17 + .../src/Psalm/Issue/DuplicateArrayKey.php | 9 + .../psalm/src/Psalm/Issue/DuplicateClass.php | 9 + .../src/Psalm/Issue/DuplicateConstant.php | 9 + .../src/Psalm/Issue/DuplicateEnumCase.php | 9 + .../Psalm/Issue/DuplicateEnumCaseValue.php | 9 + .../src/Psalm/Issue/DuplicateFunction.php | 9 + .../psalm/src/Psalm/Issue/DuplicateMethod.php | 9 + .../psalm/src/Psalm/Issue/DuplicateParam.php | 9 + .../src/Psalm/Issue/EmptyArrayAccess.php | 9 + .../Issue/ExtensionRequirementViolation.php | 9 + .../Psalm/Issue/FalsableReturnStatement.php | 9 + .../psalm/src/Psalm/Issue/FalseOperand.php | 9 + .../psalm/src/Psalm/Issue/ForbiddenCode.php | 9 + .../psalm/src/Psalm/Issue/FunctionIssue.php | 24 + .../src/Psalm/Issue/IfThisIsMismatch.php | 9 + .../ImplementationRequirementViolation.php | 9 + .../Issue/ImplementedParamTypeMismatch.php | 9 + .../Issue/ImplementedReturnTypeMismatch.php | 9 + .../src/Psalm/Issue/ImplicitToStringCast.php | 9 + .../Issue/ImpureByReferenceAssignment.php | 9 + .../src/Psalm/Issue/ImpureFunctionCall.php | 9 + .../src/Psalm/Issue/ImpureMethodCall.php | 9 + .../Psalm/Issue/ImpurePropertyAssignment.php | 9 + .../src/Psalm/Issue/ImpurePropertyFetch.php | 9 + .../src/Psalm/Issue/ImpureStaticProperty.php | 9 + .../src/Psalm/Issue/ImpureStaticVariable.php | 9 + .../psalm/src/Psalm/Issue/ImpureVariable.php | 9 + .../Psalm/Issue/InaccessibleClassConstant.php | 9 + .../src/Psalm/Issue/InaccessibleMethod.php | 9 + .../src/Psalm/Issue/InaccessibleProperty.php | 9 + .../Psalm/Issue/InterfaceInstantiation.php | 9 + .../psalm/src/Psalm/Issue/InternalClass.php | 32 + .../psalm/src/Psalm/Issue/InternalMethod.php | 9 + .../src/Psalm/Issue/InternalProperty.php | 9 + .../psalm/src/Psalm/Issue/InvalidArgument.php | 9 + .../src/Psalm/Issue/InvalidArrayAccess.php | 9 + .../Psalm/Issue/InvalidArrayAssignment.php | 9 + .../src/Psalm/Issue/InvalidArrayOffset.php | 9 + .../src/Psalm/Issue/InvalidAttribute.php | 9 + .../psalm/src/Psalm/Issue/InvalidCast.php | 9 + .../psalm/src/Psalm/Issue/InvalidCatch.php | 9 + .../psalm/src/Psalm/Issue/InvalidClass.php | 9 + .../Psalm/Issue/InvalidClassConstantType.php | 9 + .../psalm/src/Psalm/Issue/InvalidClone.php | 9 + .../Issue/InvalidConstantAssignmentValue.php | 9 + .../psalm/src/Psalm/Issue/InvalidDocblock.php | 9 + .../Psalm/Issue/InvalidDocblockParamName.php | 9 + .../Psalm/Issue/InvalidEnumBackingType.php | 9 + .../src/Psalm/Issue/InvalidEnumCaseValue.php | 9 + .../src/Psalm/Issue/InvalidEnumMethod.php | 9 + .../src/Psalm/Issue/InvalidExtendClass.php | 9 + .../Psalm/Issue/InvalidFalsableReturnType.php | 9 + .../src/Psalm/Issue/InvalidFunctionCall.php | 9 + .../psalm/src/Psalm/Issue/InvalidGlobal.php | 9 + .../Issue/InvalidInterfaceImplementation.php | 9 + .../psalm/src/Psalm/Issue/InvalidIterator.php | 9 + .../Psalm/Issue/InvalidLiteralArgument.php | 9 + .../src/Psalm/Issue/InvalidMethodCall.php | 9 + .../src/Psalm/Issue/InvalidNamedArgument.php | 9 + .../Psalm/Issue/InvalidNullableReturnType.php | 9 + .../psalm/src/Psalm/Issue/InvalidOperand.php | 9 + .../src/Psalm/Issue/InvalidParamDefault.php | 9 + .../psalm/src/Psalm/Issue/InvalidParent.php | 9 + .../Psalm/Issue/InvalidPassByReference.php | 9 + .../Psalm/Issue/InvalidPropertyAssignment.php | 9 + .../Issue/InvalidPropertyAssignmentValue.php | 9 + .../src/Psalm/Issue/InvalidPropertyFetch.php | 9 + .../Psalm/Issue/InvalidReturnStatement.php | 9 + .../src/Psalm/Issue/InvalidReturnType.php | 9 + .../src/Psalm/Issue/InvalidScalarArgument.php | 9 + .../psalm/src/Psalm/Issue/InvalidScope.php | 9 + .../Psalm/Issue/InvalidStaticInvocation.php | 9 + .../src/Psalm/Issue/InvalidStringClass.php | 9 + .../src/Psalm/Issue/InvalidTemplateParam.php | 9 + .../psalm/src/Psalm/Issue/InvalidThrow.php | 9 + .../psalm/src/Psalm/Issue/InvalidToString.php | 9 + .../InvalidTraversableImplementation.php | 9 + .../src/Psalm/Issue/InvalidTypeImport.php | 9 + .../Issue/LessSpecificClassConstantType.php | 9 + .../LessSpecificImplementedReturnType.php | 9 + .../Issue/LessSpecificReturnStatement.php | 9 + .../Psalm/Issue/LessSpecificReturnType.php | 9 + .../src/Psalm/Issue/LoopInvalidation.php | 9 + .../psalm/src/Psalm/Issue/MethodIssue.php | 24 + .../Psalm/Issue/MethodSignatureMismatch.php | 9 + .../MethodSignatureMustOmitReturnType.php | 9 + .../MethodSignatureMustProvideReturnType.php | 9 + .../Issue/MismatchingDocblockParamType.php | 9 + .../Issue/MismatchingDocblockPropertyType.php | 9 + .../Issue/MismatchingDocblockReturnType.php | 9 + .../Psalm/Issue/MissingClosureParamType.php | 9 + .../Psalm/Issue/MissingClosureReturnType.php | 9 + .../src/Psalm/Issue/MissingConstructor.php | 17 + .../src/Psalm/Issue/MissingDependency.php | 8 + .../src/Psalm/Issue/MissingDocblockType.php | 9 + .../psalm/src/Psalm/Issue/MissingFile.php | 8 + .../Issue/MissingImmutableAnnotation.php | 8 + .../src/Psalm/Issue/MissingParamType.php | 9 + .../src/Psalm/Issue/MissingPropertyType.php | 9 + .../src/Psalm/Issue/MissingReturnType.php | 9 + .../src/Psalm/Issue/MissingTemplateParam.php | 8 + .../src/Psalm/Issue/MissingThrowsDocblock.php | 8 + .../psalm/src/Psalm/Issue/MixedArgument.php | 27 + .../Psalm/Issue/MixedArgumentTypeCoercion.php | 27 + .../src/Psalm/Issue/MixedArrayAccess.php | 11 + .../src/Psalm/Issue/MixedArrayAssignment.php | 11 + .../src/Psalm/Issue/MixedArrayOffset.php | 11 + .../Psalm/Issue/MixedArrayTypeCoercion.php | 11 + .../psalm/src/Psalm/Issue/MixedAssignment.php | 11 + .../psalm/src/Psalm/Issue/MixedClone.php | 11 + .../src/Psalm/Issue/MixedFunctionCall.php | 11 + .../Psalm/Issue/MixedInferredReturnType.php | 11 + .../psalm/src/Psalm/Issue/MixedIssue.php | 12 + .../psalm/src/Psalm/Issue/MixedIssueTrait.php | 37 + .../psalm/src/Psalm/Issue/MixedMethodCall.php | 11 + .../psalm/src/Psalm/Issue/MixedOperand.php | 11 + .../Psalm/Issue/MixedPropertyAssignment.php | 11 + .../src/Psalm/Issue/MixedPropertyFetch.php | 11 + .../Psalm/Issue/MixedPropertyTypeCoercion.php | 23 + .../src/Psalm/Issue/MixedReturnStatement.php | 11 + .../Psalm/Issue/MixedReturnTypeCoercion.php | 11 + .../Issue/MixedStringOffsetAssignment.php | 11 + .../MoreSpecificImplementedParamType.php | 9 + .../Psalm/Issue/MoreSpecificReturnType.php | 9 + .../src/Psalm/Issue/MutableDependency.php | 9 + .../Psalm/Issue/NamedArgumentNotAllowed.php | 9 + .../src/Psalm/Issue/NoEnumProperties.php | 9 + .../src/Psalm/Issue/NoInterfaceProperties.php | 9 + .../vimeo/psalm/src/Psalm/Issue/NoValue.php | 9 + .../NonInvariantDocblockPropertyType.php | 11 + .../Psalm/Issue/NonInvariantPropertyType.php | 11 + .../src/Psalm/Issue/NonStaticSelfCall.php | 9 + .../psalm/src/Psalm/Issue/NullArgument.php | 9 + .../psalm/src/Psalm/Issue/NullArrayAccess.php | 13 + .../psalm/src/Psalm/Issue/NullArrayOffset.php | 9 + .../src/Psalm/Issue/NullFunctionCall.php | 9 + .../psalm/src/Psalm/Issue/NullIterator.php | 9 + .../psalm/src/Psalm/Issue/NullOperand.php | 9 + .../Psalm/Issue/NullPropertyAssignment.php | 13 + .../src/Psalm/Issue/NullPropertyFetch.php | 13 + .../psalm/src/Psalm/Issue/NullReference.php | 9 + .../Psalm/Issue/NullableReturnStatement.php | 9 + .../Psalm/Issue/OverriddenFinalConstant.php | 9 + .../Issue/OverriddenInterfaceConstant.php | 9 + .../Psalm/Issue/OverriddenMethodAccess.php | 9 + .../Psalm/Issue/OverriddenPropertyAccess.php | 9 + .../src/Psalm/Issue/ParadoxicalCondition.php | 9 + .../src/Psalm/Issue/ParamNameMismatch.php | 9 + .../psalm/src/Psalm/Issue/ParentNotFound.php | 9 + .../psalm/src/Psalm/Issue/ParseError.php | 9 + .../psalm/src/Psalm/Issue/PluginIssue.php | 7 + .../Issue/PossibleRawObjectIteration.php | 9 + .../src/Psalm/Issue/PossiblyFalseArgument.php | 9 + .../src/Psalm/Issue/PossiblyFalseIterator.php | 9 + .../src/Psalm/Issue/PossiblyFalseOperand.php | 9 + .../PossiblyFalsePropertyAssignmentValue.php | 9 + .../Psalm/Issue/PossiblyFalseReference.php | 9 + .../Psalm/Issue/PossiblyInvalidArgument.php | 9 + .../Issue/PossiblyInvalidArrayAccess.php | 9 + .../Issue/PossiblyInvalidArrayAssignment.php | 9 + .../Issue/PossiblyInvalidArrayOffset.php | 9 + .../src/Psalm/Issue/PossiblyInvalidCast.php | 9 + .../src/Psalm/Issue/PossiblyInvalidClone.php | 9 + .../Issue/PossiblyInvalidDocblockTag.php | 9 + .../Issue/PossiblyInvalidFunctionCall.php | 9 + .../Psalm/Issue/PossiblyInvalidIterator.php | 9 + .../Psalm/Issue/PossiblyInvalidMethodCall.php | 9 + .../Psalm/Issue/PossiblyInvalidOperand.php | 9 + .../PossiblyInvalidPropertyAssignment.php | 9 + ...PossiblyInvalidPropertyAssignmentValue.php | 9 + .../Issue/PossiblyInvalidPropertyFetch.php | 9 + .../src/Psalm/Issue/PossiblyNullArgument.php | 9 + .../Psalm/Issue/PossiblyNullArrayAccess.php | 13 + .../Issue/PossiblyNullArrayAssignment.php | 9 + .../Psalm/Issue/PossiblyNullArrayOffset.php | 9 + .../Psalm/Issue/PossiblyNullFunctionCall.php | 9 + .../src/Psalm/Issue/PossiblyNullIterator.php | 9 + .../src/Psalm/Issue/PossiblyNullOperand.php | 9 + .../Issue/PossiblyNullPropertyAssignment.php | 13 + .../PossiblyNullPropertyAssignmentValue.php | 9 + .../Psalm/Issue/PossiblyNullPropertyFetch.php | 13 + .../src/Psalm/Issue/PossiblyNullReference.php | 9 + .../Issue/PossiblyUndefinedArrayOffset.php | 9 + .../Issue/PossiblyUndefinedGlobalVariable.php | 9 + .../Issue/PossiblyUndefinedIntArrayOffset.php | 9 + .../Psalm/Issue/PossiblyUndefinedMethod.php | 9 + .../PossiblyUndefinedStringArrayOffset.php | 9 + .../Psalm/Issue/PossiblyUndefinedVariable.php | 9 + .../src/Psalm/Issue/PossiblyUnusedMethod.php | 22 + .../src/Psalm/Issue/PossiblyUnusedParam.php | 9 + .../Psalm/Issue/PossiblyUnusedProperty.php | 20 + .../Psalm/Issue/PossiblyUnusedReturnValue.php | 9 + .../psalm/src/Psalm/Issue/PropertyIssue.php | 22 + .../Issue/PropertyNotSetInConstructor.php | 20 + .../src/Psalm/Issue/PropertyTypeCoercion.php | 9 + .../src/Psalm/Issue/PsalmInternalError.php | 9 + .../src/Psalm/Issue/RawObjectIteration.php | 9 + .../psalm/src/Psalm/Issue/RedundantCast.php | 9 + .../Issue/RedundantCastGivenDocblockType.php | 9 + .../src/Psalm/Issue/RedundantCondition.php | 17 + .../RedundantConditionGivenDocblockType.php | 18 + .../src/Psalm/Issue/RedundantFunctionCall.php | 9 + ...RedundantFunctionCallGivenDocblockType.php | 9 + .../Psalm/Issue/RedundantIdentityWithTrue.php | 9 + .../RedundantPropertyInitializationCheck.php | 9 + .../Issue/ReferenceConstraintViolation.php | 9 + .../ReferenceReusedFromConfusingScope.php | 9 + .../psalm/src/Psalm/Issue/ReservedWord.php | 9 + .../vimeo/psalm/src/Psalm/Issue/RiskyCast.php | 9 + .../psalm/src/Psalm/Issue/StringIncrement.php | 9 + .../psalm/src/Psalm/Issue/TaintedCallable.php | 8 + .../psalm/src/Psalm/Issue/TaintedCookie.php | 8 + .../psalm/src/Psalm/Issue/TaintedCustom.php | 8 + .../psalm/src/Psalm/Issue/TaintedEval.php | 8 + .../psalm/src/Psalm/Issue/TaintedFile.php | 8 + .../psalm/src/Psalm/Issue/TaintedHeader.php | 8 + .../psalm/src/Psalm/Issue/TaintedHtml.php | 8 + .../psalm/src/Psalm/Issue/TaintedInclude.php | 8 + .../psalm/src/Psalm/Issue/TaintedInput.php | 85 + .../psalm/src/Psalm/Issue/TaintedLdap.php | 8 + .../psalm/src/Psalm/Issue/TaintedSSRF.php | 8 + .../psalm/src/Psalm/Issue/TaintedShell.php | 8 + .../psalm/src/Psalm/Issue/TaintedSql.php | 8 + .../src/Psalm/Issue/TaintedSystemSecret.php | 8 + .../src/Psalm/Issue/TaintedTextWithQuotes.php | 8 + .../src/Psalm/Issue/TaintedUnserialize.php | 8 + .../src/Psalm/Issue/TaintedUserSecret.php | 8 + .../psalm/src/Psalm/Issue/TooFewArguments.php | 9 + .../src/Psalm/Issue/TooManyArguments.php | 9 + .../src/Psalm/Issue/TooManyTemplateParams.php | 9 + vendor/vimeo/psalm/src/Psalm/Issue/Trace.php | 9 + .../Issue/TraitMethodSignatureMismatch.php | 9 + .../Psalm/Issue/TypeDoesNotContainNull.php | 17 + .../Psalm/Issue/TypeDoesNotContainType.php | 17 + .../Issue/UncaughtThrowInGlobalScope.php | 9 + .../Psalm/Issue/UndefinedAttributeClass.php | 9 + .../psalm/src/Psalm/Issue/UndefinedClass.php | 9 + .../src/Psalm/Issue/UndefinedConstant.php | 9 + .../Psalm/Issue/UndefinedDocblockClass.php | 9 + .../src/Psalm/Issue/UndefinedFunction.php | 9 + .../Psalm/Issue/UndefinedGlobalVariable.php | 9 + .../src/Psalm/Issue/UndefinedInterface.php | 9 + .../Psalm/Issue/UndefinedInterfaceMethod.php | 9 + .../src/Psalm/Issue/UndefinedMagicMethod.php | 9 + .../UndefinedMagicPropertyAssignment.php | 9 + .../Issue/UndefinedMagicPropertyFetch.php | 9 + .../psalm/src/Psalm/Issue/UndefinedMethod.php | 9 + .../Issue/UndefinedPropertyAssignment.php | 9 + .../Psalm/Issue/UndefinedPropertyFetch.php | 9 + .../Issue/UndefinedThisPropertyAssignment.php | 9 + .../Issue/UndefinedThisPropertyFetch.php | 9 + .../psalm/src/Psalm/Issue/UndefinedTrace.php | 9 + .../psalm/src/Psalm/Issue/UndefinedTrait.php | 9 + .../src/Psalm/Issue/UndefinedVariable.php | 9 + .../psalm/src/Psalm/Issue/UnevaluatedCode.php | 9 + .../Psalm/Issue/UnhandledMatchCondition.php | 9 + .../Issue/UnimplementedAbstractMethod.php | 9 + .../Issue/UnimplementedInterfaceMethod.php | 9 + .../src/Psalm/Issue/UninitializedProperty.php | 9 + .../Psalm/Issue/UnnecessaryVarAnnotation.php | 9 + .../Psalm/Issue/UnrecognizedExpression.php | 9 + .../src/Psalm/Issue/UnrecognizedStatement.php | 9 + .../src/Psalm/Issue/UnresolvableConstant.php | 9 + .../src/Psalm/Issue/UnresolvableInclude.php | 9 + .../Issue/UnsafeGenericInstantiation.php | 9 + .../src/Psalm/Issue/UnsafeInstantiation.php | 9 + .../Psalm/Issue/UnsupportedReferenceUsage.php | 9 + .../src/Psalm/Issue/UnusedBaselineEntry.php | 11 + .../psalm/src/Psalm/Issue/UnusedClass.php | 9 + .../src/Psalm/Issue/UnusedClosureParam.php | 9 + .../src/Psalm/Issue/UnusedConstructor.php | 9 + .../src/Psalm/Issue/UnusedDocblockParam.php | 9 + .../src/Psalm/Issue/UnusedForeachValue.php | 9 + .../src/Psalm/Issue/UnusedFunctionCall.php | 9 + .../psalm/src/Psalm/Issue/UnusedMethod.php | 22 + .../src/Psalm/Issue/UnusedMethodCall.php | 9 + .../psalm/src/Psalm/Issue/UnusedParam.php | 9 + .../psalm/src/Psalm/Issue/UnusedProperty.php | 20 + .../src/Psalm/Issue/UnusedPsalmSuppress.php | 9 + .../src/Psalm/Issue/UnusedReturnValue.php | 9 + .../psalm/src/Psalm/Issue/UnusedVariable.php | 9 + .../psalm/src/Psalm/Issue/VariableIssue.php | 24 + vendor/vimeo/psalm/src/Psalm/IssueBuffer.php | 1058 + .../Node/Expr/AssignOp/VirtualBitwiseAnd.php | 13 + .../Node/Expr/AssignOp/VirtualBitwiseOr.php | 13 + .../Node/Expr/AssignOp/VirtualBitwiseXor.php | 13 + .../Node/Expr/AssignOp/VirtualCoalesce.php | 13 + .../Node/Expr/AssignOp/VirtualConcat.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualDiv.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualMinus.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualMod.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualMul.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualPlus.php | 13 + .../Psalm/Node/Expr/AssignOp/VirtualPow.php | 13 + .../Node/Expr/AssignOp/VirtualShiftLeft.php | 13 + .../Node/Expr/AssignOp/VirtualShiftRight.php | 13 + .../Node/Expr/BinaryOp/VirtualBitwiseAnd.php | 13 + .../Node/Expr/BinaryOp/VirtualBitwiseOr.php | 13 + .../Node/Expr/BinaryOp/VirtualBitwiseXor.php | 13 + .../Node/Expr/BinaryOp/VirtualBooleanAnd.php | 13 + .../Node/Expr/BinaryOp/VirtualBooleanOr.php | 13 + .../Node/Expr/BinaryOp/VirtualCoalesce.php | 13 + .../Node/Expr/BinaryOp/VirtualConcat.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualDiv.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualEqual.php | 13 + .../Node/Expr/BinaryOp/VirtualGreater.php | 13 + .../Expr/BinaryOp/VirtualGreaterOrEqual.php | 13 + .../Node/Expr/BinaryOp/VirtualIdentical.php | 13 + .../Node/Expr/BinaryOp/VirtualLogicalAnd.php | 13 + .../Node/Expr/BinaryOp/VirtualLogicalOr.php | 13 + .../Node/Expr/BinaryOp/VirtualLogicalXor.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualMinus.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualMod.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualMul.php | 13 + .../Node/Expr/BinaryOp/VirtualNotEqual.php | 13 + .../Expr/BinaryOp/VirtualNotIdentical.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualPlus.php | 13 + .../Psalm/Node/Expr/BinaryOp/VirtualPow.php | 13 + .../Node/Expr/BinaryOp/VirtualShiftLeft.php | 13 + .../Node/Expr/BinaryOp/VirtualShiftRight.php | 13 + .../Node/Expr/BinaryOp/VirtualSmaller.php | 13 + .../Expr/BinaryOp/VirtualSmallerOrEqual.php | 13 + .../Node/Expr/BinaryOp/VirtualSpaceship.php | 13 + .../src/Psalm/Node/Expr/Cast/VirtualArray.php | 13 + .../src/Psalm/Node/Expr/Cast/VirtualBool.php | 13 + .../Psalm/Node/Expr/Cast/VirtualDouble.php | 13 + .../src/Psalm/Node/Expr/Cast/VirtualInt.php | 13 + .../Psalm/Node/Expr/Cast/VirtualObject.php | 13 + .../Psalm/Node/Expr/Cast/VirtualString.php | 13 + .../src/Psalm/Node/Expr/Cast/VirtualUnset.php | 13 + .../src/Psalm/Node/Expr/VirtualArray.php | 13 + .../Psalm/Node/Expr/VirtualArrayDimFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualArrayItem.php | 13 + .../Psalm/Node/Expr/VirtualArrowFunction.php | 13 + .../src/Psalm/Node/Expr/VirtualAssign.php | 13 + .../src/Psalm/Node/Expr/VirtualAssignRef.php | 13 + .../src/Psalm/Node/Expr/VirtualBitwiseNot.php | 13 + .../src/Psalm/Node/Expr/VirtualBooleanNot.php | 13 + .../Node/Expr/VirtualClassConstFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualClone.php | 13 + .../src/Psalm/Node/Expr/VirtualClosure.php | 13 + .../src/Psalm/Node/Expr/VirtualClosureUse.php | 13 + .../src/Psalm/Node/Expr/VirtualConstFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualEmpty.php | 13 + .../src/Psalm/Node/Expr/VirtualError.php | 19 + .../Psalm/Node/Expr/VirtualErrorSuppress.php | 13 + .../psalm/src/Psalm/Node/Expr/VirtualEval.php | 13 + .../psalm/src/Psalm/Node/Expr/VirtualExit.php | 13 + .../src/Psalm/Node/Expr/VirtualFuncCall.php | 13 + .../src/Psalm/Node/Expr/VirtualInclude.php | 13 + .../src/Psalm/Node/Expr/VirtualInstanceof.php | 13 + .../src/Psalm/Node/Expr/VirtualIsset.php | 13 + .../psalm/src/Psalm/Node/Expr/VirtualList.php | 13 + .../src/Psalm/Node/Expr/VirtualMatch.php | 13 + .../src/Psalm/Node/Expr/VirtualMethodCall.php | 13 + .../psalm/src/Psalm/Node/Expr/VirtualNew.php | 13 + .../Node/Expr/VirtualNullsafeMethodCall.php | 13 + .../Expr/VirtualNullsafePropertyFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualPostDec.php | 13 + .../src/Psalm/Node/Expr/VirtualPostInc.php | 13 + .../src/Psalm/Node/Expr/VirtualPreDec.php | 13 + .../src/Psalm/Node/Expr/VirtualPreInc.php | 13 + .../src/Psalm/Node/Expr/VirtualPrint.php | 13 + .../Psalm/Node/Expr/VirtualPropertyFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualShellExec.php | 13 + .../src/Psalm/Node/Expr/VirtualStaticCall.php | 13 + .../Node/Expr/VirtualStaticPropertyFetch.php | 13 + .../src/Psalm/Node/Expr/VirtualTernary.php | 13 + .../src/Psalm/Node/Expr/VirtualThrow.php | 13 + .../src/Psalm/Node/Expr/VirtualUnaryMinus.php | 13 + .../src/Psalm/Node/Expr/VirtualUnaryPlus.php | 13 + .../src/Psalm/Node/Expr/VirtualVariable.php | 13 + .../src/Psalm/Node/Expr/VirtualYield.php | 13 + .../src/Psalm/Node/Expr/VirtualYieldFrom.php | 13 + .../Psalm/Node/Name/VirtualFullyQualified.php | 13 + .../src/Psalm/Node/Name/VirtualRelative.php | 13 + .../Node/Scalar/MagicConst/VirtualClass.php | 13 + .../Node/Scalar/MagicConst/VirtualDir.php | 13 + .../Node/Scalar/MagicConst/VirtualFile.php | 13 + .../Scalar/MagicConst/VirtualFunction.php | 13 + .../Node/Scalar/MagicConst/VirtualLine.php | 13 + .../Node/Scalar/MagicConst/VirtualMethod.php | 13 + .../Scalar/MagicConst/VirtualNamespace.php | 13 + .../Node/Scalar/MagicConst/VirtualTrait.php | 13 + .../src/Psalm/Node/Scalar/VirtualDNumber.php | 13 + .../src/Psalm/Node/Scalar/VirtualEncapsed.php | 13 + .../Node/Scalar/VirtualEncapsedStringPart.php | 13 + .../src/Psalm/Node/Scalar/VirtualLNumber.php | 13 + .../src/Psalm/Node/Scalar/VirtualString.php | 13 + .../Stmt/TraitUseAdaptation/VirtualAlias.php | 13 + .../TraitUseAdaptation/VirtualPrecedence.php | 13 + .../src/Psalm/Node/Stmt/VirtualBreak.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualCase.php | 13 + .../src/Psalm/Node/Stmt/VirtualCatch.php | 13 + .../src/Psalm/Node/Stmt/VirtualClass.php | 13 + .../src/Psalm/Node/Stmt/VirtualClassConst.php | 13 + .../Psalm/Node/Stmt/VirtualClassMethod.php | 13 + .../src/Psalm/Node/Stmt/VirtualConst.php | 13 + .../src/Psalm/Node/Stmt/VirtualContinue.php | 13 + .../src/Psalm/Node/Stmt/VirtualDeclare.php | 13 + .../Psalm/Node/Stmt/VirtualDeclareDeclare.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualDo.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualEcho.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualElse.php | 13 + .../src/Psalm/Node/Stmt/VirtualElseIf.php | 13 + .../src/Psalm/Node/Stmt/VirtualExpression.php | 16 + .../src/Psalm/Node/Stmt/VirtualFinally.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualFor.php | 13 + .../src/Psalm/Node/Stmt/VirtualForeach.php | 13 + .../src/Psalm/Node/Stmt/VirtualFunction.php | 13 + .../src/Psalm/Node/Stmt/VirtualGlobal.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualGoto.php | 13 + .../src/Psalm/Node/Stmt/VirtualGroupUse.php | 13 + .../Psalm/Node/Stmt/VirtualHaltCompiler.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualIf.php | 13 + .../src/Psalm/Node/Stmt/VirtualInlineHTML.php | 13 + .../src/Psalm/Node/Stmt/VirtualInterface.php | 13 + .../src/Psalm/Node/Stmt/VirtualLabel.php | 13 + .../src/Psalm/Node/Stmt/VirtualNamespace.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualNop.php | 14 + .../src/Psalm/Node/Stmt/VirtualProperty.php | 13 + .../Node/Stmt/VirtualPropertyProperty.php | 13 + .../src/Psalm/Node/Stmt/VirtualReturn.php | 13 + .../src/Psalm/Node/Stmt/VirtualStatic.php | 13 + .../src/Psalm/Node/Stmt/VirtualStaticVar.php | 13 + .../src/Psalm/Node/Stmt/VirtualSwitch.php | 13 + .../src/Psalm/Node/Stmt/VirtualThrow.php | 13 + .../src/Psalm/Node/Stmt/VirtualTrait.php | 13 + .../src/Psalm/Node/Stmt/VirtualTraitUse.php | 13 + .../src/Psalm/Node/Stmt/VirtualTryCatch.php | 13 + .../src/Psalm/Node/Stmt/VirtualUnset.php | 13 + .../psalm/src/Psalm/Node/Stmt/VirtualUse.php | 13 + .../src/Psalm/Node/Stmt/VirtualUseUse.php | 13 + .../src/Psalm/Node/Stmt/VirtualWhile.php | 13 + .../vimeo/psalm/src/Psalm/Node/VirtualArg.php | 12 + .../psalm/src/Psalm/Node/VirtualAttribute.php | 12 + .../src/Psalm/Node/VirtualAttributeGroup.php | 12 + .../psalm/src/Psalm/Node/VirtualConst.php | 12 + .../src/Psalm/Node/VirtualIdentifier.php | 15 + .../psalm/src/Psalm/Node/VirtualMatchArm.php | 12 + .../psalm/src/Psalm/Node/VirtualName.php | 12 + .../psalm/src/Psalm/Node/VirtualNode.php | 11 + .../src/Psalm/Node/VirtualNullableType.php | 12 + .../psalm/src/Psalm/Node/VirtualParam.php | 12 + .../psalm/src/Psalm/Node/VirtualUnionType.php | 12 + .../Psalm/Node/VirtualVarLikeIdentifier.php | 19 + .../psalm/src/Psalm/NodeTypeProvider.php | 19 + .../psalm/src/Psalm/Plugin/ArgTypeInferer.php | 45 + .../Psalm/Plugin/DynamicFunctionStorage.php | 76 + .../Psalm/Plugin/DynamicTemplateProvider.php | 30 + .../EventHandler/AddTaintsInterface.php | 15 + .../EventHandler/AfterAnalysisInterface.php | 13 + .../AfterClassLikeAnalysisInterface.php | 16 + .../AfterClassLikeExistenceCheckInterface.php | 10 + .../AfterClassLikeVisitInterface.php | 14 + .../AfterCodebasePopulatedInterface.php | 16 + ...fterEveryFunctionCallAnalysisInterface.php | 10 + .../AfterExpressionAnalysisInterface.php | 15 + .../AfterFileAnalysisInterface.php | 13 + .../AfterFunctionCallAnalysisInterface.php | 10 + .../AfterFunctionLikeAnalysisInterface.php | 15 + .../AfterMethodCallAnalysisInterface.php | 10 + .../AfterStatementAnalysisInterface.php | 15 + .../EventHandler/BeforeAddIssueInterface.php | 24 + .../BeforeFileAnalysisInterface.php | 13 + .../BeforeStatementAnalysisInterface.php | 19 + ...ynamicFunctionStorageProviderInterface.php | 18 + .../Event/AddRemoveTaintsEvent.php | 53 + .../EventHandler/Event/AfterAnalysisEvent.php | 59 + .../Event/AfterClassLikeAnalysisEvent.php | 77 + .../AfterClassLikeExistenceCheckEvent.php | 74 + .../Event/AfterClassLikeVisitEvent.php | 75 + .../Event/AfterCodebasePopulatedEvent.php | 25 + .../AfterEveryFunctionCallAnalysisEvent.php | 57 + .../Event/AfterExpressionAnalysisEvent.php | 77 + .../Event/AfterFileAnalysisEvent.php | 69 + .../Event/AfterFunctionCallAnalysisEvent.php | 99 + .../Event/AfterFunctionLikeAnalysisEvent.php | 95 + .../Event/AfterMethodCallAnalysisEvent.php | 122 + .../Event/AfterStatementAnalysisEvent.php | 77 + .../Event/BeforeAddIssueEvent.php | 38 + .../Event/BeforeFileAnalysisEvent.php | 53 + .../Event/BeforeStatementAnalysisEvent.php | 84 + .../DynamicFunctionStorageProviderEvent.php | 88 + .../Event/FunctionExistenceProviderEvent.php | 36 + .../Event/FunctionParamsProviderEvent.php | 66 + .../Event/FunctionReturnTypeProviderEvent.php | 79 + .../Event/MethodExistenceProviderEvent.php | 53 + .../Event/MethodParamsProviderEvent.php | 74 + .../Event/MethodReturnTypeProviderEvent.php | 130 + .../Event/MethodVisibilityProviderEvent.php | 56 + .../Event/PropertyExistenceProviderEvent.php | 70 + .../Event/PropertyTypeProviderEvent.php | 55 + .../Event/PropertyVisibilityProviderEvent.php | 64 + .../Event/StringInterpreterEvent.php | 33 + .../FunctionExistenceProviderInterface.php | 20 + .../FunctionParamsProviderInterface.php | 19 + .../FunctionReturnTypeProviderInterface.php | 21 + .../MethodExistenceProviderInterface.php | 20 + .../MethodParamsProviderInterface.php | 19 + .../MethodReturnTypeProviderInterface.php | 21 + .../MethodVisibilityProviderInterface.php | 15 + .../PropertyExistenceProviderInterface.php | 20 + .../PropertyTypeProviderInterface.php | 16 + .../PropertyVisibilityProviderInterface.php | 15 + .../EventHandler/RemoveTaintsInterface.php | 15 + .../StringInterpreterInterface.php | 14 + .../Psalm/Plugin/FileExtensionsInterface.php | 21 + .../Plugin/PluginEntryPointInterface.php | 10 + .../Plugin/PluginFileExtensionsInterface.php | 13 + .../src/Psalm/Plugin/PluginInterface.php | 7 + .../Psalm/Plugin/RegistrationInterface.php | 13 + .../vimeo/psalm/src/Psalm/Plugin/Shepherd.php | 236 + .../src/Psalm/PluginFileExtensionsSocket.php | 134 + .../src/Psalm/PluginRegistrationSocket.php | 94 + .../src/Psalm/Progress/DebugProgress.php | 40 + .../src/Psalm/Progress/DefaultProgress.php | 104 + .../psalm/src/Psalm/Progress/LongProgress.php | 110 + .../psalm/src/Psalm/Progress/Progress.php | 75 + .../psalm/src/Psalm/Progress/VoidProgress.php | 10 + vendor/vimeo/psalm/src/Psalm/Report.php | 100 + .../Report/ByIssueLevelAndTypeReport.php | 190 + .../src/Psalm/Report/CheckstyleReport.php | 39 + .../src/Psalm/Report/CodeClimateReport.php | 97 + .../psalm/src/Psalm/Report/CompactReport.php | 84 + .../psalm/src/Psalm/Report/ConsoleReport.php | 148 + .../psalm/src/Psalm/Report/CountReport.php | 39 + .../psalm/src/Psalm/Report/EmacsReport.php | 30 + .../src/Psalm/Report/GithubActionsReport.php | 72 + .../psalm/src/Psalm/Report/JsonReport.php | 29 + .../src/Psalm/Report/JsonSummaryReport.php | 32 + .../psalm/src/Psalm/Report/JunitReport.php | 174 + .../psalm/src/Psalm/Report/PhpStormReport.php | 99 + .../psalm/src/Psalm/Report/PylintReport.php | 49 + .../psalm/src/Psalm/Report/ReportOptions.php | 46 + .../psalm/src/Psalm/Report/SarifReport.php | 135 + .../src/Psalm/Report/SonarqubeReport.php | 47 + .../psalm/src/Psalm/Report/TextReport.php | 29 + .../psalm/src/Psalm/Report/XmlReport.php | 58 + .../Psalm/SourceControl/Git/CommitInfo.php | 201 + .../src/Psalm/SourceControl/Git/GitInfo.php | 109 + .../Psalm/SourceControl/Git/RemoteInfo.php | 77 + .../Psalm/SourceControl/SourceControlInfo.php | 8 + .../psalm/src/Psalm/StatementsSource.php | 64 + .../psalm/src/Psalm/Storage/Assertion.php | 42 + .../psalm/src/Psalm/Storage/Assertion/Any.php | 26 + .../Assertion/ArrayKeyDoesNotExist.php | 31 + .../Storage/Assertion/ArrayKeyExists.php | 26 + .../Assertion/DoesNotHaveAtLeastCount.php | 40 + .../Assertion/DoesNotHaveExactCount.php | 40 + .../Storage/Assertion/DoesNotHaveMethod.php | 38 + .../src/Psalm/Storage/Assertion/Empty_.php | 31 + .../src/Psalm/Storage/Assertion/Falsy.php | 31 + .../Psalm/Storage/Assertion/HasArrayKey.php | 34 + .../Storage/Assertion/HasAtLeastCount.php | 35 + .../Psalm/Storage/Assertion/HasExactCount.php | 40 + .../Assertion/HasIntOrStringArrayAccess.php | 27 + .../src/Psalm/Storage/Assertion/HasMethod.php | 33 + .../Assertion/HasStringArrayAccess.php | 27 + .../src/Psalm/Storage/Assertion/InArray.php | 34 + .../src/Psalm/Storage/Assertion/IsAClass.php | 45 + .../Psalm/Storage/Assertion/IsClassEqual.php | 38 + .../Storage/Assertion/IsClassNotEqual.php | 38 + .../Psalm/Storage/Assertion/IsCountable.php | 26 + .../Psalm/Storage/Assertion/IsEqualIsset.php | 31 + .../Psalm/Storage/Assertion/IsGreaterThan.php | 38 + .../Assertion/IsGreaterThanOrEqualTo.php | 43 + .../Psalm/Storage/Assertion/IsIdentical.php | 52 + .../src/Psalm/Storage/Assertion/IsIsset.php | 26 + .../Psalm/Storage/Assertion/IsLessThan.php | 38 + .../Storage/Assertion/IsLessThanOrEqualTo.php | 43 + .../Storage/Assertion/IsLooselyEqual.php | 52 + .../Psalm/Storage/Assertion/IsNotAClass.php | 50 + .../Storage/Assertion/IsNotCountable.php | 38 + .../Storage/Assertion/IsNotIdentical.php | 57 + .../Psalm/Storage/Assertion/IsNotIsset.php | 31 + .../Storage/Assertion/IsNotLooselyEqual.php | 57 + .../src/Psalm/Storage/Assertion/IsNotType.php | 52 + .../src/Psalm/Storage/Assertion/IsType.php | 47 + .../Storage/Assertion/NestedAssertions.php | 39 + .../src/Psalm/Storage/Assertion/NonEmpty.php | 26 + .../Storage/Assertion/NonEmptyCountable.php | 38 + .../Psalm/Storage/Assertion/NotInArray.php | 42 + .../Storage/Assertion/NotNestedAssertions.php | 44 + .../Assertion/NotNonEmptyCountable.php | 31 + .../src/Psalm/Storage/Assertion/Truthy.php | 26 + .../psalm/src/Psalm/Storage/AttributeArg.php | 44 + .../src/Psalm/Storage/AttributeStorage.php | 49 + .../Psalm/Storage/ClassConstantStorage.php | 91 + .../src/Psalm/Storage/ClassLikeStorage.php | 501 + .../src/Psalm/Storage/CustomMetadataTrait.php | 12 + .../src/Psalm/Storage/EnumCaseStorage.php | 32 + .../psalm/src/Psalm/Storage/FileStorage.php | 103 + .../Psalm/Storage/FunctionLikeParameter.php | 226 + .../src/Psalm/Storage/FunctionLikeStorage.php | 318 + .../src/Psalm/Storage/FunctionStorage.php | 15 + .../Psalm/Storage/HasAttributesInterface.php | 16 + .../Storage/ImmutableNonCloneableTrait.php | 13 + .../psalm/src/Psalm/Storage/MethodStorage.php | 107 + .../psalm/src/Psalm/Storage/Possibilities.php | 70 + .../src/Psalm/Storage/PropertyStorage.php | 135 + vendor/vimeo/psalm/src/Psalm/Type.php | 973 + vendor/vimeo/psalm/src/Psalm/Type/Atomic.php | 917 + .../src/Psalm/Type/Atomic/CallableTrait.php | 329 + .../src/Psalm/Type/Atomic/DependentType.php | 18 + .../src/Psalm/Type/Atomic/GenericTrait.php | 262 + .../Type/Atomic/HasIntersectionTrait.php | 164 + .../psalm/src/Psalm/Type/Atomic/Scalar.php | 16 + .../Type/Atomic/TAnonymousClassInstance.php | 52 + .../psalm/src/Psalm/Type/Atomic/TArray.php | 165 + .../psalm/src/Psalm/Type/Atomic/TArrayKey.php | 45 + .../psalm/src/Psalm/Type/Atomic/TBool.php | 28 + .../psalm/src/Psalm/Type/Atomic/TCallable.php | 99 + .../src/Psalm/Type/Atomic/TCallableArray.php | 16 + .../Psalm/Type/Atomic/TCallableKeyedArray.php | 14 + .../src/Psalm/Type/Atomic/TCallableList.php | 46 + .../src/Psalm/Type/Atomic/TCallableObject.php | 38 + .../src/Psalm/Type/Atomic/TCallableString.php | 32 + .../src/Psalm/Type/Atomic/TClassConstant.php | 77 + .../src/Psalm/Type/Atomic/TClassString.php | 216 + .../src/Psalm/Type/Atomic/TClassStringMap.php | 242 + .../src/Psalm/Type/Atomic/TClosedResource.php | 35 + .../psalm/src/Psalm/Type/Atomic/TClosure.php | 132 + .../src/Psalm/Type/Atomic/TConditional.php | 171 + .../Psalm/Type/Atomic/TDependentGetClass.php | 64 + .../Type/Atomic/TDependentGetDebugType.php | 46 + .../Psalm/Type/Atomic/TDependentGetType.php | 31 + .../Psalm/Type/Atomic/TDependentListKey.php | 52 + .../src/Psalm/Type/Atomic/TEmptyMixed.php | 17 + .../src/Psalm/Type/Atomic/TEmptyNumeric.php | 16 + .../src/Psalm/Type/Atomic/TEmptyScalar.php | 16 + .../psalm/src/Psalm/Type/Atomic/TEnumCase.php | 59 + .../psalm/src/Psalm/Type/Atomic/TFalse.php | 24 + .../psalm/src/Psalm/Type/Atomic/TFloat.php | 28 + .../src/Psalm/Type/Atomic/TGenericObject.php | 205 + .../psalm/src/Psalm/Type/Atomic/TInt.php | 28 + .../psalm/src/Psalm/Type/Atomic/TIntMask.php | 73 + .../src/Psalm/Type/Atomic/TIntMaskOf.php | 60 + .../psalm/src/Psalm/Type/Atomic/TIntRange.php | 163 + .../psalm/src/Psalm/Type/Atomic/TIterable.php | 197 + .../psalm/src/Psalm/Type/Atomic/TKeyOf.php | 111 + .../src/Psalm/Type/Atomic/TKeyedArray.php | 671 + .../psalm/src/Psalm/Type/Atomic/TList.php | 229 + .../Psalm/Type/Atomic/TLiteralClassString.php | 106 + .../src/Psalm/Type/Atomic/TLiteralFloat.php | 46 + .../src/Psalm/Type/Atomic/TLiteralInt.php | 51 + .../src/Psalm/Type/Atomic/TLiteralString.php | 74 + .../Psalm/Type/Atomic/TLowercaseString.php | 19 + .../psalm/src/Psalm/Type/Atomic/TMixed.php | 49 + .../src/Psalm/Type/Atomic/TNamedObject.php | 275 + .../psalm/src/Psalm/Type/Atomic/TNever.php | 36 + .../src/Psalm/Type/Atomic/TNonEmptyArray.php | 62 + .../src/Psalm/Type/Atomic/TNonEmptyList.php | 95 + .../Type/Atomic/TNonEmptyLowercaseString.php | 28 + .../src/Psalm/Type/Atomic/TNonEmptyMixed.php | 17 + .../TNonEmptyNonspecificLiteralString.php | 21 + .../src/Psalm/Type/Atomic/TNonEmptyScalar.php | 16 + .../src/Psalm/Type/Atomic/TNonEmptyString.php | 20 + .../src/Psalm/Type/Atomic/TNonFalsyString.php | 20 + .../Type/Atomic/TNonspecificLiteralInt.php | 27 + .../Type/Atomic/TNonspecificLiteralString.php | 31 + .../psalm/src/Psalm/Type/Atomic/TNull.php | 35 + .../psalm/src/Psalm/Type/Atomic/TNumeric.php | 33 + .../src/Psalm/Type/Atomic/TNumericString.php | 35 + .../psalm/src/Psalm/Type/Atomic/TObject.php | 35 + .../Type/Atomic/TObjectWithProperties.php | 315 + .../src/Psalm/Type/Atomic/TPropertiesOf.php | 116 + .../psalm/src/Psalm/Type/Atomic/TResource.php | 35 + .../psalm/src/Psalm/Type/Atomic/TScalar.php | 39 + .../src/Psalm/Type/Atomic/TSingleLetter.php | 12 + .../psalm/src/Psalm/Type/Atomic/TString.php | 28 + .../Type/Atomic/TTemplateIndexedAccess.php | 60 + .../src/Psalm/Type/Atomic/TTemplateKeyOf.php | 109 + .../src/Psalm/Type/Atomic/TTemplateParam.php | 164 + .../Psalm/Type/Atomic/TTemplateParamClass.php | 63 + .../Type/Atomic/TTemplatePropertiesOf.php | 109 + .../Psalm/Type/Atomic/TTemplateValueOf.php | 109 + .../src/Psalm/Type/Atomic/TTraitString.php | 45 + .../psalm/src/Psalm/Type/Atomic/TTrue.php | 24 + .../src/Psalm/Type/Atomic/TTypeAlias.php | 91 + .../psalm/src/Psalm/Type/Atomic/TValueOf.php | 135 + .../psalm/src/Psalm/Type/Atomic/TVoid.php | 35 + .../src/Psalm/Type/MutableTypeVisitor.php | 54 + .../psalm/src/Psalm/Type/MutableUnion.php | 514 + .../vimeo/psalm/src/Psalm/Type/Reconciler.php | 1221 ++ .../vimeo/psalm/src/Psalm/Type/TaintKind.php | 25 + .../psalm/src/Psalm/Type/TaintKindGroup.php | 25 + .../vimeo/psalm/src/Psalm/Type/TypeNode.php | 16 + .../psalm/src/Psalm/Type/TypeVisitor.php | 43 + vendor/vimeo/psalm/src/Psalm/Type/Union.php | 384 + .../vimeo/psalm/src/Psalm/Type/UnionTrait.php | 1529 ++ .../psalm/stubs/CoreGenericClasses.phpstub | 544 + .../psalm/stubs/CoreGenericFunctions.phpstub | 1660 ++ .../psalm/stubs/CoreGenericIterators.phpstub | 1086 ++ .../psalm/stubs/CoreImmutableClasses.phpstub | 334 + vendor/vimeo/psalm/stubs/Php80.phpstub | 262 + vendor/vimeo/psalm/stubs/Php81.phpstub | 119 + vendor/vimeo/psalm/stubs/Php82.phpstub | 36 + vendor/vimeo/psalm/stubs/Reflection.phpstub | 672 + vendor/vimeo/psalm/stubs/SPL.phpstub | 971 + .../vimeo/psalm/stubs/extensions/apcu.phpstub | 92 + .../psalm/stubs/extensions/decimal.phpstub | 492 + .../vimeo/psalm/stubs/extensions/dom.phpstub | 985 + .../vimeo/psalm/stubs/extensions/ds.phpstub | 1434 ++ .../vimeo/psalm/stubs/extensions/ffi.phpstub | 451 + .../vimeo/psalm/stubs/extensions/geos.phpstub | 25 + .../vimeo/psalm/stubs/extensions/gmp.phpstub | 11 + .../psalm/stubs/extensions/mongodb.phpstub | 59 + .../psalm/stubs/extensions/mysqli.phpstub | 33 + .../vimeo/psalm/stubs/extensions/pdo.phpstub | 158 + .../psalm/stubs/extensions/random.phpstub | 112 + .../psalm/stubs/extensions/redis.phpstub | 556 + .../psalm/stubs/extensions/simplexml.phpstub | 118 + .../vimeo/psalm/stubs/extensions/soap.phpstub | 311 + .../psalm/stubs/extensions/xdebug.phpstub | 43 + vendor/vimeo/psalm/stubs/phpparser.phpstub | 22 + 2099 files changed, 283333 insertions(+), 32 deletions(-) mode change 100644 => 100755 4dev/composer/sync-to-composer-all-folder.sh create mode 100644 vendor/amphp/amp/LICENSE create mode 100644 vendor/amphp/amp/composer.json create mode 100644 vendor/amphp/amp/lib/CallableMaker.php create mode 100644 vendor/amphp/amp/lib/CancellationToken.php create mode 100644 vendor/amphp/amp/lib/CancellationTokenSource.php create mode 100644 vendor/amphp/amp/lib/CancelledException.php create mode 100644 vendor/amphp/amp/lib/CombinedCancellationToken.php create mode 100644 vendor/amphp/amp/lib/Coroutine.php create mode 100644 vendor/amphp/amp/lib/Deferred.php create mode 100644 vendor/amphp/amp/lib/Delayed.php create mode 100644 vendor/amphp/amp/lib/Emitter.php create mode 100644 vendor/amphp/amp/lib/Failure.php create mode 100644 vendor/amphp/amp/lib/Internal/Placeholder.php create mode 100644 vendor/amphp/amp/lib/Internal/PrivateIterator.php create mode 100644 vendor/amphp/amp/lib/Internal/PrivatePromise.php create mode 100644 vendor/amphp/amp/lib/Internal/Producer.php create mode 100644 vendor/amphp/amp/lib/Internal/ResolutionQueue.php create mode 100644 vendor/amphp/amp/lib/Internal/functions.php create mode 100644 vendor/amphp/amp/lib/InvalidYieldError.php create mode 100644 vendor/amphp/amp/lib/Iterator.php create mode 100644 vendor/amphp/amp/lib/LazyPromise.php create mode 100644 vendor/amphp/amp/lib/Loop.php create mode 100644 vendor/amphp/amp/lib/Loop/Driver.php create mode 100644 vendor/amphp/amp/lib/Loop/DriverFactory.php create mode 100644 vendor/amphp/amp/lib/Loop/EvDriver.php create mode 100644 vendor/amphp/amp/lib/Loop/EventDriver.php create mode 100644 vendor/amphp/amp/lib/Loop/Internal/TimerQueue.php create mode 100644 vendor/amphp/amp/lib/Loop/InvalidWatcherError.php create mode 100644 vendor/amphp/amp/lib/Loop/NativeDriver.php create mode 100644 vendor/amphp/amp/lib/Loop/TracingDriver.php create mode 100644 vendor/amphp/amp/lib/Loop/UnsupportedFeatureException.php create mode 100644 vendor/amphp/amp/lib/Loop/UvDriver.php create mode 100644 vendor/amphp/amp/lib/Loop/Watcher.php create mode 100644 vendor/amphp/amp/lib/MultiReasonException.php create mode 100644 vendor/amphp/amp/lib/NullCancellationToken.php create mode 100644 vendor/amphp/amp/lib/Producer.php create mode 100644 vendor/amphp/amp/lib/Promise.php create mode 100644 vendor/amphp/amp/lib/Struct.php create mode 100644 vendor/amphp/amp/lib/Success.php create mode 100644 vendor/amphp/amp/lib/TimeoutCancellationToken.php create mode 100644 vendor/amphp/amp/lib/TimeoutException.php create mode 100644 vendor/amphp/amp/lib/functions.php create mode 100644 vendor/amphp/byte-stream/.github/workflows/ci.yml create mode 100644 vendor/amphp/byte-stream/LICENSE create mode 100644 vendor/amphp/byte-stream/composer.json create mode 100644 vendor/amphp/byte-stream/lib/Base64/Base64DecodingInputStream.php create mode 100644 vendor/amphp/byte-stream/lib/Base64/Base64DecodingOutputStream.php create mode 100644 vendor/amphp/byte-stream/lib/Base64/Base64EncodingInputStream.php create mode 100644 vendor/amphp/byte-stream/lib/Base64/Base64EncodingOutputStream.php create mode 100644 vendor/amphp/byte-stream/lib/ClosedException.php create mode 100644 vendor/amphp/byte-stream/lib/InMemoryStream.php create mode 100644 vendor/amphp/byte-stream/lib/InputStream.php create mode 100644 vendor/amphp/byte-stream/lib/InputStreamChain.php create mode 100644 vendor/amphp/byte-stream/lib/IteratorStream.php create mode 100644 vendor/amphp/byte-stream/lib/LineReader.php create mode 100644 vendor/amphp/byte-stream/lib/Message.php create mode 100644 vendor/amphp/byte-stream/lib/OutputBuffer.php create mode 100644 vendor/amphp/byte-stream/lib/OutputStream.php create mode 100644 vendor/amphp/byte-stream/lib/Payload.php create mode 100644 vendor/amphp/byte-stream/lib/PendingReadError.php create mode 100644 vendor/amphp/byte-stream/lib/ResourceInputStream.php create mode 100644 vendor/amphp/byte-stream/lib/ResourceOutputStream.php create mode 100644 vendor/amphp/byte-stream/lib/StreamException.php create mode 100644 vendor/amphp/byte-stream/lib/ZlibInputStream.php create mode 100644 vendor/amphp/byte-stream/lib/ZlibOutputStream.php create mode 100644 vendor/amphp/byte-stream/lib/functions.php create mode 100644 vendor/amphp/byte-stream/psalm.xml create mode 100755 vendor/bin/php-parse create mode 100755 vendor/bin/psalm create mode 100755 vendor/bin/psalm-language-server create mode 100755 vendor/bin/psalm-plugin create mode 100755 vendor/bin/psalm-refactor create mode 100755 vendor/bin/psalter create mode 100644 vendor/composer/package-versions-deprecated/CHANGELOG.md create mode 100644 vendor/composer/package-versions-deprecated/CONTRIBUTING.md create mode 100644 vendor/composer/package-versions-deprecated/LICENSE create mode 100644 vendor/composer/package-versions-deprecated/README.md create mode 100644 vendor/composer/package-versions-deprecated/SECURITY.md create mode 100644 vendor/composer/package-versions-deprecated/composer.json create mode 100644 vendor/composer/package-versions-deprecated/composer.lock create mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php create mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php create mode 100644 vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php create mode 100644 vendor/dnoegel/php-xdg-base-dir/LICENSE create mode 100644 vendor/dnoegel/php-xdg-base-dir/README.md create mode 100644 vendor/dnoegel/php-xdg-base-dir/composer.json create mode 100644 vendor/dnoegel/php-xdg-base-dir/src/Xdg.php create mode 100644 vendor/felixfbecker/language-server-protocol/.editorconfig create mode 100644 vendor/felixfbecker/language-server-protocol/.github/workflows/build.yml create mode 100644 vendor/felixfbecker/language-server-protocol/LICENSE create mode 100644 vendor/felixfbecker/language-server-protocol/README.md create mode 100644 vendor/felixfbecker/language-server-protocol/composer.json create mode 100644 vendor/felixfbecker/language-server-protocol/package-lock.json create mode 100644 vendor/felixfbecker/language-server-protocol/package.json create mode 100644 vendor/felixfbecker/language-server-protocol/psalm-baseline.xml create mode 100644 vendor/felixfbecker/language-server-protocol/psalm.xml create mode 100644 vendor/felixfbecker/language-server-protocol/src/CallHierarchyClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ChangeAnnotation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesGeneral.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWindow.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWorkspace.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWorkspaceFileOperations.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ClientInfo.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeAction.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupportcodeActionKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesResolveSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionContext.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionDisabled.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeActionTriggerKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeDescription.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeLens.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeLensClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeLensOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CodeLensWorkspaceClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Command.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItem.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemInsertTextModeSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemResolveSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemTagSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionList.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionContext.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionItem.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionItemKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionItemLabelDetails.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionItemTag.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionList.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/CompletionTriggerKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ContentChangeEvent.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DeclarationClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DefinitionClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DependencyReference.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Diagnostic.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DiagnosticRelatedInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DiagnosticSeverity.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DiagnosticTag.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DidChangeConfigurationClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DidChangeWatchedFilesClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentColorClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentFormattingClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentHighlight.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentHighlightClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentHighlightKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentLinkClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentRangeFormattingClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesSymbolKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesTagSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ErrorCode.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ExecuteCommandClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ExecuteCommandOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/FailureHandlingKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/FileChangeType.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/FileEvent.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/FoldingRangeClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/FormattingOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Hover.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/HoverClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ImplementationClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/InitializeResult.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/InitializeResultServerInfo.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/InsertTextFormat.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/InsertTextMode.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/LinkedEditingRangeClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Location.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/LogMessage.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/LogTrace.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MarkdownClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MarkedString.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MarkupContent.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MarkupKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MessageActionItem.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MessageType.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/MonikerClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/PackageDescriptor.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ParameterInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Position.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/PrepareSupportDefaultBehavior.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/PublishDiagnosticsClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/PublishDiagnosticsClientCapabilitiesTagSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/Range.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ReferenceClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ReferenceContext.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ReferenceInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/RegularExpressionsClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/RenameClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ResourceOperationKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SaveOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SelectionRangeClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilitiesRequests.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SemanticTokensWorkspaceClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ServerCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ShowDocumentClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilitiesMessageActionItem.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureHelp.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformationParameterInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureHelpOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SignatureInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SymbolDescriptor.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SymbolInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SymbolKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SymbolLocationInformation.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/SymbolTag.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentContentChangeEvent.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentIdentifier.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentItem.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncOptions.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TextEdit.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TokenFormat.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/TypeDefinitionClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/VersionedTextDocumentIdentifier.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceEdit.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilitiesChangeAnnotationSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceFolder.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilities.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesResolveSupport.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesSymbolKind.php create mode 100644 vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesTagSupport.php create mode 100644 vendor/fidry/cpu-core-counter/LICENSE.md create mode 100644 vendor/fidry/cpu-core-counter/README.md create mode 100755 vendor/fidry/cpu-core-counter/bin/diagnose.php create mode 100755 vendor/fidry/cpu-core-counter/bin/execute.php create mode 100644 vendor/fidry/cpu-core-counter/composer.json create mode 100644 vendor/fidry/cpu-core-counter/src/CpuCoreCounter.php create mode 100644 vendor/fidry/cpu-core-counter/src/Diagnoser.php create mode 100644 vendor/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php create mode 100644 vendor/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php create mode 100644 vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php create mode 100644 vendor/nikic/php-parser/LICENSE create mode 100644 vendor/nikic/php-parser/README.md create mode 100755 vendor/nikic/php-parser/bin/php-parse create mode 100644 vendor/nikic/php-parser/composer.json create mode 100644 vendor/nikic/php-parser/grammar/README.md create mode 100644 vendor/nikic/php-parser/grammar/parser.template create mode 100644 vendor/nikic/php-parser/grammar/php5.y create mode 100644 vendor/nikic/php-parser/grammar/php7.y create mode 100644 vendor/nikic/php-parser/grammar/phpyLang.php create mode 100644 vendor/nikic/php-parser/grammar/rebuildParsers.php create mode 100644 vendor/nikic/php-parser/grammar/tokens.template create mode 100644 vendor/nikic/php-parser/grammar/tokens.y create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Error.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NameContext.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Param.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php create mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php create mode 100644 vendor/sebastian/diff/ChangeLog.md create mode 100644 vendor/sebastian/diff/LICENSE create mode 100644 vendor/sebastian/diff/README.md create mode 100644 vendor/sebastian/diff/SECURITY.md create mode 100644 vendor/sebastian/diff/composer.json create mode 100644 vendor/sebastian/diff/src/Chunk.php create mode 100644 vendor/sebastian/diff/src/Diff.php create mode 100644 vendor/sebastian/diff/src/Differ.php create mode 100644 vendor/sebastian/diff/src/Exception/ConfigurationException.php create mode 100644 vendor/sebastian/diff/src/Exception/Exception.php create mode 100644 vendor/sebastian/diff/src/Exception/InvalidArgumentException.php create mode 100644 vendor/sebastian/diff/src/Line.php create mode 100644 vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php create mode 100644 vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php create mode 100644 vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php create mode 100644 vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Parser.php create mode 100644 vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php create mode 100644 vendor/spatie/array-to-xml/.php-cs-fixer.dist.php create mode 100755 vendor/spatie/array-to-xml/CHANGELOG.md create mode 100755 vendor/spatie/array-to-xml/LICENSE.md create mode 100755 vendor/spatie/array-to-xml/README.md create mode 100755 vendor/spatie/array-to-xml/composer.json create mode 100644 vendor/spatie/array-to-xml/src/ArrayToXml.php create mode 100644 vendor/symfony/filesystem/CHANGELOG.md create mode 100644 vendor/symfony/filesystem/Exception/ExceptionInterface.php create mode 100644 vendor/symfony/filesystem/Exception/FileNotFoundException.php create mode 100644 vendor/symfony/filesystem/Exception/IOException.php create mode 100644 vendor/symfony/filesystem/Exception/IOExceptionInterface.php create mode 100644 vendor/symfony/filesystem/Exception/InvalidArgumentException.php create mode 100644 vendor/symfony/filesystem/Exception/RuntimeException.php create mode 100644 vendor/symfony/filesystem/Filesystem.php create mode 100644 vendor/symfony/filesystem/LICENSE create mode 100644 vendor/symfony/filesystem/Path.php create mode 100644 vendor/symfony/filesystem/README.md create mode 100644 vendor/symfony/filesystem/composer.json create mode 100644 vendor/vimeo/psalm/LICENSE create mode 100644 vendor/vimeo/psalm/composer.json create mode 100644 vendor/vimeo/psalm/config.xsd create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_71_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_72_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_73_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_74_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_80_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_81_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_82_delta.php create mode 100644 vendor/vimeo/psalm/dictionaries/CallMap_historical.php create mode 100644 vendor/vimeo/psalm/dictionaries/InternalTaintSinkMap.php create mode 100644 vendor/vimeo/psalm/dictionaries/ManualPropertyMap.php create mode 100644 vendor/vimeo/psalm/dictionaries/PropertyMap.php create mode 100644 vendor/vimeo/psalm/docs/README.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/adding_assertions.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/assertion_syntax.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/supported_annotations.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/templated_annotations.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/array_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/atomic_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/callable_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/conditional_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/intersection_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/object_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/other_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/scalar_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/top_bottom_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/union_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/utility_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/type_syntax/value_types.md create mode 100644 vendor/vimeo/psalm/docs/annotating_code/typing_in_psalm.md create mode 100644 vendor/vimeo/psalm/docs/contributing/adding_issues.md create mode 100644 vendor/vimeo/psalm/docs/contributing/editing_callmaps.md create mode 100644 vendor/vimeo/psalm/docs/contributing/how_psalm_works.md create mode 100644 vendor/vimeo/psalm/docs/contributing/index.md create mode 100644 vendor/vimeo/psalm/docs/contributing/philosophy.md create mode 100644 vendor/vimeo/psalm/docs/contributing/what_makes_psalm_complicated.md create mode 100644 vendor/vimeo/psalm/docs/manipulating_code/fixing.md create mode 100644 vendor/vimeo/psalm/docs/manipulating_code/refactoring.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/checking_non_php_files.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/command_line_usage.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/configuration.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/dealing_with_code_issues.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/error_levels.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/installation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/AbstractInstantiation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/AbstractMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/AmbiguousConstantInheritance.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ArgumentTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/AssignmentToVoid.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/CheckType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/CircularReference.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ComplexFunction.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ComplexMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ConfigIssue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ConflictingReferenceConstraint.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ConstantDeclarationInTrait.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ConstructorSignatureMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ContinueOutsideLoop.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedFunction.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedInterface.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DeprecatedTrait.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DirectConstructorCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DocblockTypeContradiction.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateArrayKey.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateEnumCase.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateEnumCaseValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateFunction.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/DuplicateParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/EmptyArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ExtensionRequirementViolation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/FalsableReturnStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/FalseOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ForbiddenCode.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/IfThisIsMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImplementationRequirementViolation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImplementedParamTypeMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImplementedReturnTypeMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImplicitToStringCast.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureByReferenceAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpurePropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpurePropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureStaticProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureStaticVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ImpureVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InaccessibleClassConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InaccessibleMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InaccessibleProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InterfaceInstantiation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InternalClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InternalMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InternalProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidArrayAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidAttribute.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidCast.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidCatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidClassConstantType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidClone.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidConstantAssignmentValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidDocblock.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidDocblockParamName.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidEnumBackingType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidEnumCaseValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidEnumMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidExtendClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidFalsableReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidGlobal.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidInterfaceImplementation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidIterator.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidLiteralArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidNamedArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidNullableReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidParamDefault.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidParent.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidPassByReference.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidPropertyAssignmentValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidReturnStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidScalarArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidScope.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidStaticInvocation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidStringClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidTemplateParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidThrow.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidToString.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidTraversableImplementation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/InvalidTypeImport.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/LessSpecificClassConstantType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/LessSpecificImplementedReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/LessSpecificReturnStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/LessSpecificReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/LoopInvalidation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MethodSignatureMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MethodSignatureMustOmitReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MethodSignatureMustProvideReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MismatchingDocblockParamType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MismatchingDocblockPropertyType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MismatchingDocblockReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingClosureParamType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingClosureReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingConstructor.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingDependency.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingDocblockType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingFile.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingImmutableAnnotation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingParamType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingPropertyType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingTemplateParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MissingThrowsDocblock.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArgumentTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArrayAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedArrayTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedClone.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedInferredReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedPropertyTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedReturnStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedReturnTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MixedStringOffsetAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MoreSpecificImplementedParamType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MoreSpecificReturnType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/MutableDependency.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NamedArgumentNotAllowed.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NoEnumProperties.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NoInterfaceProperties.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NoValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NonInvariantDocblockPropertyType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NonInvariantPropertyType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NonStaticSelfCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullIterator.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullReference.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/NullableReturnStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/OverriddenFinalConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/OverriddenInterfaceConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/OverriddenMethodAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/OverriddenPropertyAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ParadoxicalCondition.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ParamNameMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ParentNotFound.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ParseError.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PluginIssue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossibleRawObjectIteration.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyFalseArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyFalseIterator.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyFalseOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyFalsePropertyAssignmentValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyFalseReference.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidArrayAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidCast.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidClone.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidDocblockTag.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidIterator.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidPropertyAssignmentValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyInvalidPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullArgument.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullArrayAccess.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullArrayAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullIterator.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullOperand.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullPropertyAssignmentValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyNullReference.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedGlobalVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedIntArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedStringArrayOffset.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUndefinedVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUnusedMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUnusedParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUnusedProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PossiblyUnusedReturnValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PropertyNotSetInConstructor.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/PropertyTypeCoercion.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RawObjectIteration.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantCast.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantCastGivenDocblockType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantCondition.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantConditionGivenDocblockType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantFunctionCallGivenDocblockType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantIdentityWithTrue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RedundantPropertyInitializationCheck.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ReferenceConstraintViolation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ReferenceReusedFromConfusingScope.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/ReservedWord.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/RiskyCast.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/StringIncrement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedCallable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedCookie.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedCustom.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedEval.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedFile.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedHeader.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedHtml.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedInclude.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedInput.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedLdap.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedSSRF.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedShell.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedSql.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedSystemSecret.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedTextWithQuotes.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedUnserialize.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TaintedUserSecret.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TooFewArguments.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TooManyArguments.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TooManyTemplateParams.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/Trace.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TraitMethodSignatureMismatch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TypeDoesNotContainNull.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/TypeDoesNotContainType.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UncaughtThrowInGlobalScope.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedAttributeClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedDocblockClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedFunction.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedGlobalVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedInterface.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedInterfaceMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedMagicMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedMagicPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedMagicPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedThisPropertyAssignment.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedThisPropertyFetch.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedTrace.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedTrait.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UndefinedVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnevaluatedCode.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnhandledMatchCondition.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnimplementedAbstractMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnimplementedInterfaceMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UninitializedProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnnecessaryVarAnnotation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnrecognizedExpression.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnrecognizedStatement.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnresolvableConstant.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnresolvableInclude.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnsafeGenericInstantiation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnsafeInstantiation.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnsupportedReferenceUsage.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedBaselineEntry.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedClass.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedClosureParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedConstructor.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedDocblockParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedForeachValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedFunctionCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedMethod.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedMethodCall.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedParam.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedProperty.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedPsalmSuppress.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedReturnValue.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/issues/UnusedVariable.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/language_server.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/plugins/authoring_plugins.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/plugins/plugins_type_system.md create mode 100644 vendor/vimeo/psalm/docs/running_psalm/plugins/using_plugins.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/annotations.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/avoiding_false_negatives.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/avoiding_false_positives.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/custom_taint_sinks.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/custom_taint_sources.md create mode 100644 vendor/vimeo/psalm/docs/security_analysis/index.md create mode 100755 vendor/vimeo/psalm/psalm create mode 100755 vendor/vimeo/psalm/psalm-language-server create mode 100755 vendor/vimeo/psalm/psalm-plugin create mode 100755 vendor/vimeo/psalm/psalm-refactor create mode 100755 vendor/vimeo/psalm/psalter create mode 100644 vendor/vimeo/psalm/src/Psalm/Aliases.php create mode 100644 vendor/vimeo/psalm/src/Psalm/CodeLocation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/CodeLocation/DocblockTypeLocation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/CodeLocation/ParseErrorLocation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/CodeLocation/Raw.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Codebase.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/Creator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/ErrorLevelFileFilter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/FileFilter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/IssueHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/ProjectFileFilter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Config/TaintAnalysisFileFilter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Context.php create mode 100644 vendor/vimeo/psalm/src/Psalm/DocComment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/ErrorBaseline.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/CircularReferenceException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/CodeException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/ComplicatedExpressionException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/ConfigCreationException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/ConfigException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/ConfigNotFoundException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/DocblockParseException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/FileIncludeException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/IncorrectDocblockException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/InvalidClasslikeOverrideException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/InvalidMethodOverrideException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/RefactorException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/ScopeAnalysisException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/TypeParseTreeException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/UnanalyzedFileException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/UnpopulatedClasslikeException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/UnpreparedAnalysisException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/UnresolvableConstantException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Exception/UnsupportedIssueToFixException.php create mode 100644 vendor/vimeo/psalm/src/Psalm/FileBasedPluginAdapter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/FileManipulation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/FileSource.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Algebra.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Algebra/FormulaGenerator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/AlgebraAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/AttributesAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/CanAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClassAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClassLikeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClassLikeNameOptions.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClosureAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/CommentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/DataFlowNodeData.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FileAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FunctionAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FunctionLike/ReturnTypeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FunctionLike/ReturnTypeCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FunctionLikeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/InterfaceAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/IssueData.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/MethodAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/MethodComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/NamespaceAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ScopeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/SourceAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/DoAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/ForAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/ForeachAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfConditionalAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElse/ElseAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElse/ElseIfAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElse/IfAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElseAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/LoopAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/SwitchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/SwitchCaseAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/TryAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/WhileAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/BreakAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ContinueAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/EchoAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/ArrayAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/ArrayCreationInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/AssertionFinder.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/ArrayAssignmentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/AssignedProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/InstancePropertyAssignmentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/StaticPropertyAssignmentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/AndAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/ArithmeticOpAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/CoalesceAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/ConcatAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/NonComparisonOpAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOp/OrAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BinaryOpAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BitwiseNotAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/BooleanNotAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArgumentAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArgumentMapPopulator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArgumentsAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArrayFunctionArgumentsAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ClassTemplateParamCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallReturnTypeFetcher.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/AtomicCallContext.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/AtomicMethodCallAnalysisResult.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/AtomicMethodCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/ExistingAtomicMethodCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/MethodCallProhibitionAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/MethodCallPurityAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/MethodCallReturnTypeFetcher.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/MethodVisibilityAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/Method/MissingMethodCallHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/MethodCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/NamedFunctionCallHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/NewAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/StaticCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/StaticMethod/AtomicStaticCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/StaticMethod/ExistingAtomicStaticCallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/CallAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/CastAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/ClassConstAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/CloneAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/EmptyAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/EncapsulatedStringAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/EvalAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/ExitAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/ExpressionIdentifier.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/ArrayFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/AtomicPropertyFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/ConstFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/InstancePropertyFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/StaticPropertyFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Fetch/VariableFetchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/IncDecExpressionAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/IncludeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/InstanceofAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/IssetAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/MagicConstAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/MatchAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/NullsafeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/PrintAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/SimpleTypeInferer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/TernaryAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/UnaryPlusMinusAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/YieldAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/YieldFromAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ExpressionAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/GlobalAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ReturnAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/StaticAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ThrowAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/UnsetAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/UnusedAssignmentRemover.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/StatementsAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/TraitAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/TypeAnalyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Clause.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Cli/LanguageServer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Cli/Plugin.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Cli/Psalm.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Cli/Psalter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Cli/Refactor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/CliUtils.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Analyzer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/ClassConstantByWildcardResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/ClassLikes.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/ConstantTypeResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/DataFlowGraph.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Functions.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/InternalCallMapHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Methods.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Populator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Properties.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/PropertyMap.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/ReferenceMapGenerator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Reflection.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Scanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/TaintFlowGraph.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Codebase/VariableUseGraph.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Composer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/DataFlow/DataFlowNode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/DataFlow/Path.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/DataFlow/TaintSink.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/DataFlow/TaintSource.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/AstDiffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/ClassStatementsDiffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/DiffElem.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/FileDiffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/FileStatementsDiffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Diff/NamespaceStatementsDiffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/ErrorHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/EventDispatcher.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/ExecutionEnvironment/BuildInfoCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/ExecutionEnvironment/GitInfoCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/ExecutionEnvironment/SystemCommandExecutor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/FileManipulation/ClassDocblockManipulator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/FileManipulation/CodeMigration.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/FileManipulation/FileManipulationBuffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/FileManipulation/FunctionDocblockManipulator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/FileManipulation/PropertyDocblockManipulator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/ForkMessage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/ForkProcessDoneMessage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/ForkProcessErrorMessage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/ForkTaskDoneMessage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/Pool.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Fork/PsalmRestarter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/IncludeCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Json/Json.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/Client/TextDocument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/ClientHandler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/EmitterInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/EmitterTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/IdGenerator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/LanguageClient.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/LanguageServer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/Message.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/ProtocolReader.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/ProtocolStreamReader.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/ProtocolStreamWriter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/ProtocolWriter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/Server/TextDocument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/LanguageServer/Server/Workspace.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/MethodIdentifier.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpTraverser/CustomTraverser.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/AssignmentMapVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/CheckTrivialExprVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/CloningVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/ConditionCloningVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/NodeCleanerVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/NodeCounterVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/OffsetShifterVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/ParamReplacementVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/PartialParserVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/AttributeResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/ClassLikeDocblockParser.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/ClassLikeNodeScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/ExpressionResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/ExpressionScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/FunctionLikeDocblockParser.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/FunctionLikeDocblockScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/FunctionLikeNodeScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/Reflector/TypeHintResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/ReflectorVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/ShortClosureVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/SimpleNameResolver.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/TraitFinder.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/TypeMappingVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PhpVisitor/YieldTypeCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/Command/DisableCommand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/Command/EnableCommand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/Command/ShowCommand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/ComposerLock.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/ConfigFile.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/PluginList.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/PluginManager/PluginListFactory.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/AddRemoveTaints/HtmlFunctionTainter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ClassLikeStorageCacheProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ClassLikeStorageProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/DynamicFunctionStorageProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FakeFileProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FileProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FileReferenceCacheProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FileReferenceProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FileStorageCacheProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FileStorageProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FunctionExistenceProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FunctionParamsProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/FunctionReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/MethodExistenceProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/MethodParamsProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/MethodReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/MethodVisibilityProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/NodeDataProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ParserCacheProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ProjectCacheProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/PropertyExistenceProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/PropertyTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/PropertyTypeProvider/DomDocumentPropertyTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/PropertyVisibilityProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/Providers.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayChunkReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayColumnReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayCombineReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayFillKeysReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayFillReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayFilterReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayMapReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayMergeReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayPadReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayPointerAdjustmentReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayPopReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayRandReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayReduceReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayReverseReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArraySliceReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArraySpliceReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ArrayUniqueReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/BasenameReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ClosureFromCallableReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/DateTimeModifyReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/DirnameReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/DomNodeAppendChild.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/FilterVarReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/FirstArgStringReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/GetClassMethodsReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/GetObjectVarsReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/HexdecReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ImagickPixelColorReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/InArrayReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/IteratorToArrayReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/MbInternalEncodingReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/MinMaxReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/MktimeReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/ParseUrlReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/PdoStatementReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/PdoStatementSetFetchMode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/RandReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/RoundReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/SimpleXmlElementAsXml.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/StrReplaceReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/StrTrReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/TriggerErrorReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/ReturnTypeProvider/VersionCompareReturnTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/StatementsProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Provider/StatementsVolatileCache.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/ReferenceConstraint.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/RuntimeCaches.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/ClassLikeDocblockComment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/DocblockParser.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/FileScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/FunctionDocblockComment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/ParsedDocblock.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/PhpStormMetaScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/ArrayOffsetFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/ArraySpread.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/ArrayValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/ClassConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/Constant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/KeyValuePair.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/ScalarValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedAdditionOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedBinaryOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedBitwiseAnd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedBitwiseOr.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedBitwiseXor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedConcatOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedDivisionOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedMultiplicationOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedSubtractionOp.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstant/UnresolvedTernary.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/UnresolvedConstantComponent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scanner/VarDocblockComment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/CaseScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/FinallyScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/IfConditionalScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/IfScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/LoopScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Scope/SwitchScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Stubs/Generator/ClassLikeStubGenerator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Stubs/Generator/StubsGenerator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ArrayType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/AssertionReconciler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/ArrayTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/AtomicTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/CallableTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/ClassLikeStringComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/GenericTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/IntegerRangeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/KeyedArrayComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/ObjectComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/ScalarTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/TypeComparisonResult.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/Comparator/UnionTypeComparator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/NegatedAssertionReconciler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/CallableParamTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/CallableTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/CallableWithReturnTypeTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/ConditionalTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/EncapsulationTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/FieldEllipsis.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/GenericTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/IndexedAccessTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/IntersectionTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/KeyedArrayPropertyTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/KeyedArrayTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/MethodParamTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/MethodTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/MethodWithReturnTypeTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/NullableTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/Root.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/TemplateAsTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/TemplateIsTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/UnionTree.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTree/Value.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/ParseTreeCreator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/SimpleAssertionReconciler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/SimpleNegatedAssertionReconciler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TemplateBound.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TemplateInferredTypeReplacer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TemplateResult.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TemplateStandinTypeReplacer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeAlias/ClassTypeAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeAlias/InlineTypeAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeAlias/LinkableTypeAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeCombination.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeCombiner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeExpander.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeParser.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/Type/TypeTokenizer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/CanContainObjectTypeVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/ClasslikeReplacer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/ContainsClassLikeVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/ContainsLiteralVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/ContainsStaticVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/FromDocblockSetter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/TemplateTypeCollector.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/TypeChecker.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/TypeLocalizer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/TypeVisitor/TypeScanner.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Internal/VersionUtils.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/AbstractInstantiation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/AbstractMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/AmbiguousConstantInheritance.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ArgumentIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ArgumentTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/AssignmentToVoid.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/CheckType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/CircularReference.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ClassConstantIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ClassIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/CodeIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ComplexFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ComplexMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ConfigIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ConflictingReferenceConstraint.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ConstantDeclarationInTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ConstructorSignatureMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ContinueOutsideLoop.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DeprecatedTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DirectConstructorCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DocblockTypeContradiction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateArrayKey.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateEnumCase.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateEnumCaseValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/DuplicateParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/EmptyArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ExtensionRequirementViolation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/FalsableReturnStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/FalseOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ForbiddenCode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/FunctionIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/IfThisIsMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImplementationRequirementViolation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImplementedParamTypeMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImplementedReturnTypeMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImplicitToStringCast.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureByReferenceAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpurePropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpurePropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureStaticProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureStaticVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ImpureVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InaccessibleClassConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InaccessibleMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InaccessibleProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InterfaceInstantiation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InternalClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InternalMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InternalProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidArrayAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidAttribute.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidCast.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidCatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidClassConstantType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidClone.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidConstantAssignmentValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidDocblock.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidDocblockParamName.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidEnumBackingType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidEnumCaseValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidEnumMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidExtendClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidFalsableReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidGlobal.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidInterfaceImplementation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidIterator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidLiteralArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidNamedArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidNullableReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidParamDefault.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidParent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidPassByReference.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidPropertyAssignmentValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidReturnStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidScalarArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidStaticInvocation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidStringClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidTemplateParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidThrow.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidToString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidTraversableImplementation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/InvalidTypeImport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/LessSpecificClassConstantType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/LessSpecificImplementedReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/LessSpecificReturnStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/LessSpecificReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/LoopInvalidation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MethodIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MethodSignatureMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MethodSignatureMustOmitReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MethodSignatureMustProvideReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MismatchingDocblockParamType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MismatchingDocblockPropertyType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MismatchingDocblockReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingClosureParamType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingClosureReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingConstructor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingDependency.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingDocblockType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingFile.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingImmutableAnnotation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingParamType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingPropertyType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingTemplateParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MissingThrowsDocblock.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArgumentTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArrayAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedArrayTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedClone.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedInferredReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedIssueTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedPropertyTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedReturnStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedReturnTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MixedStringOffsetAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MoreSpecificImplementedParamType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MoreSpecificReturnType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/MutableDependency.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NamedArgumentNotAllowed.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NoEnumProperties.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NoInterfaceProperties.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NoValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NonInvariantDocblockPropertyType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NonInvariantPropertyType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NonStaticSelfCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullIterator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullReference.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/NullableReturnStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/OverriddenFinalConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/OverriddenInterfaceConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/OverriddenMethodAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/OverriddenPropertyAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ParadoxicalCondition.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ParamNameMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ParentNotFound.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ParseError.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PluginIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossibleRawObjectIteration.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyFalseArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyFalseIterator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyFalseOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyFalsePropertyAssignmentValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyFalseReference.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidArrayAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidCast.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidClone.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidDocblockTag.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidIterator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidPropertyAssignmentValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyInvalidPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullArgument.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullArrayAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullIterator.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullOperand.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullPropertyAssignmentValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyNullReference.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedGlobalVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedIntArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedStringArrayOffset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUndefinedVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUnusedMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUnusedParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUnusedProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PossiblyUnusedReturnValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PropertyIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PropertyNotSetInConstructor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PropertyTypeCoercion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/PsalmInternalError.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RawObjectIteration.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantCast.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantCastGivenDocblockType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantCondition.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantConditionGivenDocblockType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantFunctionCallGivenDocblockType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantIdentityWithTrue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RedundantPropertyInitializationCheck.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ReferenceConstraintViolation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ReferenceReusedFromConfusingScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/ReservedWord.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/RiskyCast.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/StringIncrement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedCallable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedCookie.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedCustom.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedEval.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedFile.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedHeader.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedHtml.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedInclude.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedInput.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedLdap.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedSSRF.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedShell.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedSql.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedSystemSecret.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedTextWithQuotes.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedUnserialize.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TaintedUserSecret.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TooFewArguments.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TooManyArguments.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TooManyTemplateParams.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/Trace.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TraitMethodSignatureMismatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TypeDoesNotContainNull.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/TypeDoesNotContainType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UncaughtThrowInGlobalScope.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedAttributeClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedDocblockClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedGlobalVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedInterfaceMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedMagicMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedMagicPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedMagicPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedThisPropertyAssignment.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedThisPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedTrace.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UndefinedVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnevaluatedCode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnhandledMatchCondition.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnimplementedAbstractMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnimplementedInterfaceMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UninitializedProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnnecessaryVarAnnotation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnrecognizedExpression.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnrecognizedStatement.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnresolvableConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnresolvableInclude.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnsafeGenericInstantiation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnsafeInstantiation.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnsupportedReferenceUsage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedBaselineEntry.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedClosureParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedConstructor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedDocblockParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedForeachValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedFunctionCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedPsalmSuppress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedReturnValue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/UnusedVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Issue/VariableIssue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/IssueBuffer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualBitwiseAnd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualBitwiseOr.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualBitwiseXor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualCoalesce.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualConcat.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualDiv.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualMinus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualMod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualMul.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualPlus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualPow.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualShiftLeft.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/AssignOp/VirtualShiftRight.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualBitwiseAnd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualBitwiseOr.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualBitwiseXor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualBooleanAnd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualBooleanOr.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualCoalesce.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualConcat.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualDiv.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualGreater.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualGreaterOrEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualIdentical.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualLogicalAnd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualLogicalOr.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualLogicalXor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualMinus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualMod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualMul.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualNotEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualNotIdentical.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualPlus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualPow.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualShiftLeft.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualShiftRight.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualSmaller.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualSmallerOrEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/BinaryOp/VirtualSpaceship.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualBool.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualDouble.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualInt.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualObject.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/Cast/VirtualUnset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualArrayDimFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualArrayItem.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualArrowFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualAssign.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualAssignRef.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualBitwiseNot.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualBooleanNot.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualClassConstFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualClone.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualClosure.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualClosureUse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualConstFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualEmpty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualError.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualErrorSuppress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualEval.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualExit.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualFuncCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualInclude.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualInstanceof.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualIsset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualList.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualMatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualNew.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualNullsafeMethodCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualNullsafePropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPostDec.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPostInc.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPreDec.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPreInc.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPrint.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualShellExec.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualStaticCall.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualStaticPropertyFetch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualTernary.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualThrow.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualUnaryMinus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualUnaryPlus.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualVariable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualYield.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Expr/VirtualYieldFrom.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Name/VirtualFullyQualified.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Name/VirtualRelative.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualDir.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualFile.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualLine.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualNamespace.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/MagicConst/VirtualTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/VirtualDNumber.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/VirtualEncapsed.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/VirtualEncapsedStringPart.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/VirtualLNumber.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Scalar/VirtualString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/TraitUseAdaptation/VirtualAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/TraitUseAdaptation/VirtualPrecedence.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualBreak.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualCase.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualCatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualClassConst.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualClassMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualConst.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualContinue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualDeclare.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualDeclareDeclare.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualDo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualEcho.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualElse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualElseIf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualExpression.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualFinally.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualFor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualForeach.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualFunction.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualGlobal.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualGoto.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualGroupUse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualHaltCompiler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualIf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualInlineHTML.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualLabel.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualNamespace.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualNop.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualPropertyProperty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualReturn.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualStatic.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualStaticVar.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualSwitch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualThrow.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualTraitUse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualTryCatch.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualUnset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualUse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualUseUse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/Stmt/VirtualWhile.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualArg.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualAttribute.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualAttributeGroup.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualConst.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualIdentifier.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualMatchArm.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualName.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualNode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualNullableType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualUnionType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Node/VirtualVarLikeIdentifier.php create mode 100644 vendor/vimeo/psalm/src/Psalm/NodeTypeProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/ArgTypeInferer.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/DynamicFunctionStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/DynamicTemplateProvider.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AddTaintsInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterClassLikeAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterClassLikeExistenceCheckInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterClassLikeVisitInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterCodebasePopulatedInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterEveryFunctionCallAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterExpressionAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterFileAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterFunctionCallAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterFunctionLikeAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterMethodCallAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/AfterStatementAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/BeforeAddIssueInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/BeforeFileAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/BeforeStatementAnalysisInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/DynamicFunctionStorageProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AddRemoveTaintsEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterClassLikeAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterClassLikeExistenceCheckEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterClassLikeVisitEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterCodebasePopulatedEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterEveryFunctionCallAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterExpressionAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterFileAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterFunctionCallAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterFunctionLikeAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterMethodCallAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/AfterStatementAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/BeforeAddIssueEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/BeforeFileAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/BeforeStatementAnalysisEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/DynamicFunctionStorageProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/FunctionExistenceProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/FunctionParamsProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/FunctionReturnTypeProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/MethodExistenceProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/MethodParamsProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/MethodReturnTypeProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/MethodVisibilityProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/PropertyExistenceProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/PropertyTypeProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/PropertyVisibilityProviderEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/Event/StringInterpreterEvent.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/FunctionExistenceProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/FunctionParamsProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/FunctionReturnTypeProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/MethodExistenceProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/MethodParamsProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/MethodReturnTypeProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/MethodVisibilityProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/PropertyExistenceProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/PropertyTypeProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/PropertyVisibilityProviderInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/RemoveTaintsInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/EventHandler/StringInterpreterInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/FileExtensionsInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/PluginEntryPointInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/PluginFileExtensionsInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/PluginInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/RegistrationInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Plugin/Shepherd.php create mode 100644 vendor/vimeo/psalm/src/Psalm/PluginFileExtensionsSocket.php create mode 100644 vendor/vimeo/psalm/src/Psalm/PluginRegistrationSocket.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Progress/DebugProgress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Progress/DefaultProgress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Progress/LongProgress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Progress/Progress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Progress/VoidProgress.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/ByIssueLevelAndTypeReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/CheckstyleReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/CodeClimateReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/CompactReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/ConsoleReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/CountReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/EmacsReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/GithubActionsReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/JsonReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/JsonSummaryReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/JunitReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/PhpStormReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/PylintReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/ReportOptions.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/SarifReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/SonarqubeReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/TextReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Report/XmlReport.php create mode 100644 vendor/vimeo/psalm/src/Psalm/SourceControl/Git/CommitInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/SourceControl/Git/GitInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/SourceControl/Git/RemoteInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/SourceControl/SourceControlInfo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/StatementsSource.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/Any.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/ArrayKeyDoesNotExist.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/ArrayKeyExists.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/DoesNotHaveAtLeastCount.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/DoesNotHaveExactCount.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/DoesNotHaveMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/Empty_.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/Falsy.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasArrayKey.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasAtLeastCount.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasExactCount.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasIntOrStringArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasMethod.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/HasStringArrayAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/InArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsAClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsClassEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsClassNotEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsCountable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsEqualIsset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsGreaterThan.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsGreaterThanOrEqualTo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsIdentical.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsIsset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsLessThan.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsLessThanOrEqualTo.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsLooselyEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotAClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotCountable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotIdentical.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotIsset.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotLooselyEqual.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsNotType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/IsType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NestedAssertions.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NonEmpty.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NonEmptyCountable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NotInArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NotNestedAssertions.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/NotNonEmptyCountable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Assertion/Truthy.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/AttributeArg.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/AttributeStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/ClassConstantStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/ClassLikeStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/CustomMetadataTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/EnumCaseStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/FileStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/FunctionLikeParameter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/FunctionLikeStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/FunctionStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/HasAttributesInterface.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/ImmutableNonCloneableTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/MethodStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/Possibilities.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Storage/PropertyStorage.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/CallableTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/DependentType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/GenericTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/HasIntersectionTrait.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/Scalar.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TAnonymousClassInstance.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TArrayKey.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TBool.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallableArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallableKeyedArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallableList.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallableObject.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TCallableString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TClassConstant.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TClassString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TClassStringMap.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TClosedResource.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TClosure.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TConditional.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TDependentGetClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TDependentGetDebugType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TDependentGetType.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TDependentListKey.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TEmptyMixed.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TEmptyNumeric.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TEmptyScalar.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TEnumCase.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TFalse.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TFloat.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TGenericObject.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TInt.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TIntMask.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TIntMaskOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TIntRange.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TIterable.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TKeyOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TKeyedArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TList.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TLiteralClassString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TLiteralFloat.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TLiteralInt.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TLiteralString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TLowercaseString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TMixed.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNamedObject.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNever.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyArray.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyList.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyLowercaseString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyMixed.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyNonspecificLiteralString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyScalar.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonEmptyString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonFalsyString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonspecificLiteralInt.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNonspecificLiteralString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNull.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNumeric.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TNumericString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TObject.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TObjectWithProperties.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TPropertiesOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TResource.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TScalar.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TSingleLetter.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplateIndexedAccess.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplateKeyOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplateParam.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplateParamClass.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplatePropertiesOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTemplateValueOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTraitString.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTrue.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TTypeAlias.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TValueOf.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Atomic/TVoid.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/MutableTypeVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/MutableUnion.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Reconciler.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/TaintKind.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/TaintKindGroup.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/TypeNode.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/TypeVisitor.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/Union.php create mode 100644 vendor/vimeo/psalm/src/Psalm/Type/UnionTrait.php create mode 100644 vendor/vimeo/psalm/stubs/CoreGenericClasses.phpstub create mode 100644 vendor/vimeo/psalm/stubs/CoreGenericFunctions.phpstub create mode 100644 vendor/vimeo/psalm/stubs/CoreGenericIterators.phpstub create mode 100644 vendor/vimeo/psalm/stubs/CoreImmutableClasses.phpstub create mode 100644 vendor/vimeo/psalm/stubs/Php80.phpstub create mode 100644 vendor/vimeo/psalm/stubs/Php81.phpstub create mode 100644 vendor/vimeo/psalm/stubs/Php82.phpstub create mode 100644 vendor/vimeo/psalm/stubs/Reflection.phpstub create mode 100644 vendor/vimeo/psalm/stubs/SPL.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/apcu.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/decimal.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/dom.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/ds.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/ffi.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/geos.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/gmp.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/mongodb.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/mysqli.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/pdo.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/random.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/redis.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/simplexml.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/soap.phpstub create mode 100644 vendor/vimeo/psalm/stubs/extensions/xdebug.phpstub create mode 100644 vendor/vimeo/psalm/stubs/phpparser.phpstub diff --git a/4dev/composer/sync-to-composer-all-folder.sh b/4dev/composer/sync-to-composer-all-folder.sh old mode 100644 new mode 100755 diff --git a/4dev/sync/sync_template.sh b/4dev/sync/sync_template.sh index 1d8b4de1..589f563f 100755 --- a/4dev/sync/sync_template.sh +++ b/4dev/sync/sync_template.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # create path path=$(pwd)"/"$0; @@ -10,6 +10,11 @@ TARGET_HOST_WEB="@"; TMP_DIR=$LOCAL_BASE_DIR"/4dev/tmp/"; tmpf_web=$TMP_DIR"sync.exclude.tmp"; +if [ ! -d "$LOCAL_BASE_DIR" ]; then + echo "Folder: $LOCAL_BASE_DIR not found"; + exit; +fi; + # if vendor be sure group folder is +x chmod -R ug+rX ${LOCAL_DIR}/vender/ diff --git a/composer.json b/composer.json index 57141339..082fc3e1 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,8 @@ "require-dev": { "phpstan/phpstan": "^1.10", "phan/phan": "^5.4", - "phpstan/extension-installer": "^1.2" + "phpstan/extension-installer": "^1.2", + "vimeo/psalm": "^5.7" }, "config": { "allow-plugins": { diff --git a/composer.lock b/composer.lock index 24cc6b0a..0ba146ed 100644 --- a/composer.lock +++ b/composer.lock @@ -4,9 +4,248 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d84c6906d304080e843d28d1b447cf8c", + "content-hash": "0394d224d0f07a238818542e4602ba86", "packages": [], "packages-dev": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-02-20T17:52:18+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" + }, { "name": "composer/pcre", "version": "3.1.0", @@ -225,6 +464,43 @@ ], "time": "2022-02-25T21:32:43+00:00" }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, { "name": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", @@ -270,6 +546,123 @@ }, "time": "2021-06-11T22:34:44+00:00" }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.2", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + }, + "time": "2022-03-02T22:36:06+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2022-12-24T12:35:10+00:00" + }, { "name": "microsoft/tolerant-php-parser", "version": "v0.1.2", @@ -366,6 +759,62 @@ }, "time": "2022-12-08T20:46:14+00:00" }, + { + "name": "nikic/php-parser", + "version": "v4.15.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "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" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + }, + "time": "2023-03-05T19:49:14+00:00" + }, { "name": "phan/phan", "version": "5.4.2", @@ -656,16 +1105,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.3", + "version": "1.10.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "5419375b5891add97dc74be71e6c1c34baaddf64" + "reference": "1fb6f494d82455151ecf15c5c191923f5d84324e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/5419375b5891add97dc74be71e6c1c34baaddf64", - "reference": "5419375b5891add97dc74be71e6c1c34baaddf64", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1fb6f494d82455151ecf15c5c191923f5d84324e", + "reference": "1fb6f494d82455151ecf15c5c191923f5d84324e", "shasum": "" }, "require": { @@ -695,7 +1144,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.10.3" + "source": "https://github.com/phpstan/phpstan/tree/1.10.5" }, "funding": [ { @@ -711,7 +1160,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T14:47:13+00:00" + "time": "2023-03-07T16:48:45+00:00" }, { "name": "psr/container", @@ -882,6 +1331,135 @@ }, "time": "2021-11-04T06:51:17+00:00" }, + { + "name": "sebastian/diff", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "70dd1b20bc198da394ad542e988381b44e64e39f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/70dd1b20bc198da394ad542e988381b44e64e39f", + "reference": "70dd1b20bc198da394ad542e988381b44e64e39f", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:00:31+00:00" + }, + { + "name": "spatie/array-to-xml", + "version": "3.1.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-24T13:43:51+00:00" + }, { "name": "symfony/console", "version": "v6.2.7", @@ -1045,6 +1623,69 @@ ], "time": "2023-03-01T10:25:55+00:00" }, + { + "name": "symfony/filesystem", + "version": "v6.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "82b6c62b959f642d000456f08c6d219d749215b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/82b6c62b959f642d000456f08c6d219d749215b3", + "reference": "82b6c62b959f642d000456f08c6d219d749215b3", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "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": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-14T08:44:56+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.27.0", @@ -1691,6 +2332,111 @@ }, "time": "2022-08-31T12:59:22+00:00" }, + { + "name": "vimeo/psalm", + "version": "5.7.7", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/e028ba46ba0d7f9a78bc3201c251e137383e145f", + "reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.10.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "sebastian/diff": "^4.0 || ^5.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0" + }, + "suggest": { + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php", + "static analysis" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/5.7.7" + }, + "time": "2023-02-25T01:05:07+00:00" + }, { "name": "webmozart/assert", "version": "1.11.0", diff --git a/vendor/amphp/amp/LICENSE b/vendor/amphp/amp/LICENSE new file mode 100644 index 00000000..2b431ba0 --- /dev/null +++ b/vendor/amphp/amp/LICENSE @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2015-2019 amphp +Copyright (c) 2016 PHP Asynchronous Interoperability Group + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/amphp/amp/composer.json b/vendor/amphp/amp/composer.json new file mode 100644 index 00000000..c50a2bdc --- /dev/null +++ b/vendor/amphp/amp/composer.json @@ -0,0 +1,74 @@ +{ + "name": "amphp/amp", + "homepage": "https://amphp.org/amp", + "description": "A non-blocking concurrency framework for PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "promise", + "awaitable", + "future", + "non-blocking", + "event", + "event-loop" + ], + "license": "MIT", + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "require": { + "php": ">=7.1" + }, + "require-dev": { + "ext-json": "*", + "amphp/phpunit-util": "^1", + "amphp/php-cs-fixer-config": "dev-master", + "react/promise": "^2", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "jetbrains/phpstorm-stubs": "^2019.3" + }, + "autoload": { + "psr-4": { + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] + }, + "autoload-dev": { + "psr-4": { + "Amp\\Test\\": "test" + } + }, + "support": { + "issues": "https://github.com/amphp/amp/issues", + "irc": "irc://irc.freenode.org/amphp" + }, + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "scripts": { + "test": "@php -dzend.assertions=1 -dassert.exception=1 ./vendor/bin/phpunit", + "code-style": "@php ./vendor/bin/php-cs-fixer fix" + } +} diff --git a/vendor/amphp/amp/lib/CallableMaker.php b/vendor/amphp/amp/lib/CallableMaker.php new file mode 100644 index 00000000..8fa8cff7 --- /dev/null +++ b/vendor/amphp/amp/lib/CallableMaker.php @@ -0,0 +1,80 @@ +getMethod($method); + } + + return self::$__reflectionMethods[$method]->getClosure($this); + } + + /** + * Creates a callable from a protected or private static method that may be invoked by methods requiring a + * publicly invokable callback. + * + * @param string $method Static method name. + * + * @return callable + * + * @psalm-suppress MixedInferredReturnType + */ + private static function callableFromStaticMethod(string $method): callable + { + if (!isset(self::$__reflectionMethods[$method])) { + if (self::$__reflectionClass === null) { + self::$__reflectionClass = new \ReflectionClass(self::class); + } + self::$__reflectionMethods[$method] = self::$__reflectionClass->getMethod($method); + } + + return self::$__reflectionMethods[$method]->getClosure(); + } + } +} else { + /** @psalm-suppress DuplicateClass */ + trait CallableMaker + { + /** + * @deprecated Use \Closure::fromCallable() instead of this method in PHP 7.1. + */ + private function callableFromInstanceMethod(string $method): callable + { + return \Closure::fromCallable([$this, $method]); + } + + /** + * @deprecated Use \Closure::fromCallable() instead of this method in PHP 7.1. + */ + private static function callableFromStaticMethod(string $method): callable + { + return \Closure::fromCallable([self::class, $method]); + } + } +} // @codeCoverageIgnoreEnd diff --git a/vendor/amphp/amp/lib/CancellationToken.php b/vendor/amphp/amp/lib/CancellationToken.php new file mode 100644 index 00000000..b802994d --- /dev/null +++ b/vendor/amphp/amp/lib/CancellationToken.php @@ -0,0 +1,49 @@ +getToken(); + * + * $response = yield $httpClient->request("https://example.com/stream", $token); + * $responseBody = $response->getBody(); + * + * while (($chunk = yield $response->read()) !== null) { + * // consume $chunk + * + * if ($noLongerInterested) { + * $cancellationTokenSource->cancel(); + * break; + * } + * } + * ``` + * + * @see CancellationToken + * @see CancelledException + */ +final class CancellationTokenSource +{ + /** @var CancellationToken */ + private $token; + + /** @var callable|null */ + private $onCancel; + + public function __construct() + { + $onCancel = null; + + $this->token = new class($onCancel) implements CancellationToken { + /** @var string */ + private $nextId = "a"; + + /** @var callable[] */ + private $callbacks = []; + + /** @var \Throwable|null */ + private $exception; + + /** + * @param mixed $onCancel + * @param-out callable $onCancel + */ + public function __construct(&$onCancel) + { + /** @psalm-suppress MissingClosureReturnType We still support PHP 7.0 */ + $onCancel = function (\Throwable $exception) { + $this->exception = $exception; + + $callbacks = $this->callbacks; + $this->callbacks = []; + + foreach ($callbacks as $callback) { + $this->invokeCallback($callback); + } + }; + } + + /** + * @param callable $callback + * + * @return void + */ + private function invokeCallback(callable $callback) + { + // No type declaration to prevent exception outside the try! + try { + /** @var mixed $result */ + $result = $callback($this->exception); + + if ($result instanceof \Generator) { + /** @psalm-var \Generator $result */ + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + } + + public function subscribe(callable $callback): string + { + $id = $this->nextId++; + + if ($this->exception) { + $this->invokeCallback($callback); + } else { + $this->callbacks[$id] = $callback; + } + + return $id; + } + + public function unsubscribe(string $id) + { + unset($this->callbacks[$id]); + } + + public function isRequested(): bool + { + return isset($this->exception); + } + + public function throwIfRequested() + { + if (isset($this->exception)) { + throw $this->exception; + } + } + }; + + $this->onCancel = $onCancel; + } + + public function getToken(): CancellationToken + { + return $this->token; + } + + /** + * @param \Throwable|null $previous Exception to be used as the previous exception to CancelledException. + * + * @return void + */ + public function cancel(\Throwable $previous = null) + { + if ($this->onCancel === null) { + return; + } + + $onCancel = $this->onCancel; + $this->onCancel = null; + $onCancel(new CancelledException($previous)); + } +} diff --git a/vendor/amphp/amp/lib/CancelledException.php b/vendor/amphp/amp/lib/CancelledException.php new file mode 100644 index 00000000..25f8c400 --- /dev/null +++ b/vendor/amphp/amp/lib/CancelledException.php @@ -0,0 +1,17 @@ +exception; + $thatCallbacks = &$this->callbacks; + + foreach ($tokens as $token) { + $id = $token->subscribe(static function (CancelledException $exception) use (&$thatException, &$thatCallbacks) { + $thatException = $exception; + + $callbacks = $thatCallbacks; + $thatCallbacks = []; + + foreach ($callbacks as $callback) { + asyncCall($callback, $thatException); + } + }); + + $this->tokens[] = [$token, $id]; + } + } + + public function __destruct() + { + foreach ($this->tokens as list($token, $id)) { + /** @var CancellationToken $token */ + $token->unsubscribe($id); + } + } + + /** @inheritdoc */ + public function subscribe(callable $callback): string + { + $id = $this->nextId++; + + if ($this->exception) { + asyncCall($callback, $this->exception); + } else { + $this->callbacks[$id] = $callback; + } + + return $id; + } + + /** @inheritdoc */ + public function unsubscribe(string $id) + { + unset($this->callbacks[$id]); + } + + /** @inheritdoc */ + public function isRequested(): bool + { + foreach ($this->tokens as list($token)) { + if ($token->isRequested()) { + return true; + } + } + + return false; + } + + /** @inheritdoc */ + public function throwIfRequested() + { + foreach ($this->tokens as list($token)) { + $token->throwIfRequested(); + } + } +} diff --git a/vendor/amphp/amp/lib/Coroutine.php b/vendor/amphp/amp/lib/Coroutine.php new file mode 100644 index 00000000..5a3b4aa8 --- /dev/null +++ b/vendor/amphp/amp/lib/Coroutine.php @@ -0,0 +1,160 @@ + + */ +final class Coroutine implements Promise +{ + use Internal\Placeholder; + + /** + * Attempts to transform the non-promise yielded from the generator into a promise, otherwise returns an instance + * `Amp\Failure` failed with an instance of `Amp\InvalidYieldError`. + * + * @param mixed $yielded Non-promise yielded from generator. + * @param \Generator $generator No type for performance, we already know the type. + * + * @return Promise + */ + private static function transform($yielded, $generator): Promise + { + $exception = null; // initialize here, see https://github.com/vimeo/psalm/issues/2951 + + try { + if (\is_array($yielded)) { + return Promise\all($yielded); + } + + if ($yielded instanceof ReactPromise) { + return Promise\adapt($yielded); + } + + // No match, continue to returning Failure below. + } catch (\Throwable $exception) { + // Conversion to promise failed, fall-through to returning Failure below. + } + + return new Failure(new InvalidYieldError( + $generator, + \sprintf( + "Unexpected yield; Expected an instance of %s or %s or an array of such instances", + Promise::class, + ReactPromise::class + ), + $exception + )); + } + + /** + * @param \Generator $generator + * @psalm-param \Generator,mixed,Promise|ReactPromise|TReturn> $generator + */ + public function __construct(\Generator $generator) + { + try { + $yielded = $generator->current(); + + if (!$yielded instanceof Promise) { + if (!$generator->valid()) { + $this->resolve($generator->getReturn()); + return; + } + + $yielded = self::transform($yielded, $generator); + } + } catch (\Throwable $exception) { + $this->fail($exception); + return; + } + + /** + * @param \Throwable|null $e Exception to be thrown into the generator. + * @param mixed $v Value to be sent into the generator. + * + * @return void + * + * @psalm-suppress MissingClosureParamType + * @psalm-suppress MissingClosureReturnType + */ + $onResolve = function (\Throwable $e = null, $v) use ($generator, &$onResolve) { + /** @var bool $immediate Used to control iterative coroutine continuation. */ + static $immediate = true; + + /** @var \Throwable|null $exception Promise failure reason when executing next coroutine step, null at all other times. */ + static $exception; + + /** @var mixed $value Promise success value when executing next coroutine step, null at all other times. */ + static $value; + + $exception = $e; + /** @psalm-suppress MixedAssignment */ + $value = $v; + + if (!$immediate) { + $immediate = true; + return; + } + + try { + try { + do { + if ($exception) { + // Throw exception at current execution point. + $yielded = $generator->throw($exception); + } else { + // Send the new value and execute to next yield statement. + $yielded = $generator->send($value); + } + + if (!$yielded instanceof Promise) { + if (!$generator->valid()) { + $this->resolve($generator->getReturn()); + $onResolve = null; + return; + } + + $yielded = self::transform($yielded, $generator); + } + + $immediate = false; + $yielded->onResolve($onResolve); + } while ($immediate); + + $immediate = true; + } catch (\Throwable $exception) { + $this->fail($exception); + $onResolve = null; + } finally { + $exception = null; + $value = null; + } + } catch (\Throwable $e) { + Loop::defer(static function () use ($e) { + throw $e; + }); + } + }; + + try { + $yielded->onResolve($onResolve); + + unset($generator, $yielded, $onResolve); + } catch (\Throwable $e) { + Loop::defer(static function () use ($e) { + throw $e; + }); + } + } +} diff --git a/vendor/amphp/amp/lib/Deferred.php b/vendor/amphp/amp/lib/Deferred.php new file mode 100644 index 00000000..cec1c5a4 --- /dev/null +++ b/vendor/amphp/amp/lib/Deferred.php @@ -0,0 +1,76 @@ + Has public resolve and fail methods. */ + private $resolver; + + /** @var Promise Hides placeholder methods */ + private $promise; + + public function __construct() + { + $this->resolver = new class implements Promise { + use Internal\Placeholder { + resolve as public; + fail as public; + isResolved as public; + } + }; + + $this->promise = new Internal\PrivatePromise($this->resolver); + } + + /** + * @return Promise + */ + public function promise(): Promise + { + return $this->promise; + } + + /** + * Fulfill the promise with the given value. + * + * @param mixed $value + * + * @psalm-param TValue|Promise $value + * + * @return void + */ + public function resolve($value = null) + { + /** @psalm-suppress UndefinedInterfaceMethod */ + $this->resolver->resolve($value); + } + + /** + * Fails the promise the the given reason. + * + * @param \Throwable $reason + * + * @return void + */ + public function fail(\Throwable $reason) + { + /** @psalm-suppress UndefinedInterfaceMethod */ + $this->resolver->fail($reason); + } + + /** + * @return bool True if the promise has been resolved. + */ + public function isResolved(): bool + { + return $this->resolver->isResolved(); + } +} diff --git a/vendor/amphp/amp/lib/Delayed.php b/vendor/amphp/amp/lib/Delayed.php new file mode 100644 index 00000000..ec9b4202 --- /dev/null +++ b/vendor/amphp/amp/lib/Delayed.php @@ -0,0 +1,58 @@ + + */ +final class Delayed implements Promise +{ + use Internal\Placeholder; + + /** @var string|null Event loop watcher identifier. */ + private $watcher; + + /** + * @param int $time Milliseconds before succeeding the promise. + * @param TReturn $value Succeed the promise with this value. + */ + public function __construct(int $time, $value = null) + { + $this->watcher = Loop::delay($time, function () use ($value) { + $this->watcher = null; + $this->resolve($value); + }); + } + + /** + * References the internal watcher in the event loop, keeping the loop running while this promise is pending. + * + * @return self + */ + public function reference(): self + { + if ($this->watcher !== null) { + Loop::reference($this->watcher); + } + + return $this; + } + + /** + * Unreferences the internal watcher in the event loop, allowing the loop to stop while this promise is pending if + * no other events are pending in the loop. + * + * @return self + */ + public function unreference(): self + { + if ($this->watcher !== null) { + Loop::unreference($this->watcher); + } + + return $this; + } +} diff --git a/vendor/amphp/amp/lib/Emitter.php b/vendor/amphp/amp/lib/Emitter.php new file mode 100644 index 00000000..cd6b7e54 --- /dev/null +++ b/vendor/amphp/amp/lib/Emitter.php @@ -0,0 +1,84 @@ + Has public emit, complete, and fail methods. */ + private $emitter; + + /** @var Iterator Hides producer methods. */ + private $iterator; + + public function __construct() + { + $this->emitter = new class implements Iterator { + use Internal\Producer { + emit as public; + complete as public; + fail as public; + } + }; + + $this->iterator = new Internal\PrivateIterator($this->emitter); + } + + /** + * @return Iterator + * @psalm-return Iterator + */ + public function iterate(): Iterator + { + return $this->iterator; + } + + /** + * Emits a value to the iterator. + * + * @param mixed $value + * + * @psalm-param TValue $value + * + * @return Promise + * @psalm-return Promise + * @psalm-suppress MixedInferredReturnType + * @psalm-suppress MixedReturnStatement + */ + public function emit($value): Promise + { + /** @psalm-suppress UndefinedInterfaceMethod */ + return $this->emitter->emit($value); + } + + /** + * Completes the iterator. + * + * @return void + */ + public function complete() + { + /** @psalm-suppress UndefinedInterfaceMethod */ + $this->emitter->complete(); + } + + /** + * Fails the iterator with the given reason. + * + * @param \Throwable $reason + * + * @return void + */ + public function fail(\Throwable $reason) + { + /** @psalm-suppress UndefinedInterfaceMethod */ + $this->emitter->fail($reason); + } +} diff --git a/vendor/amphp/amp/lib/Failure.php b/vendor/amphp/amp/lib/Failure.php new file mode 100644 index 00000000..4c1ea62d --- /dev/null +++ b/vendor/amphp/amp/lib/Failure.php @@ -0,0 +1,52 @@ + + */ +final class Failure implements Promise +{ + /** @var \Throwable $exception */ + private $exception; + + /** + * @param \Throwable $exception Rejection reason. + */ + public function __construct(\Throwable $exception) + { + $this->exception = $exception; + } + + /** + * {@inheritdoc} + */ + public function onResolve(callable $onResolved) + { + try { + /** @var mixed $result */ + $result = $onResolved($this->exception, null); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + Promise\rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + } +} diff --git a/vendor/amphp/amp/lib/Internal/Placeholder.php b/vendor/amphp/amp/lib/Internal/Placeholder.php new file mode 100644 index 00000000..dccf6067 --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/Placeholder.php @@ -0,0 +1,187 @@ +, mixed, + * mixed>|null)|callable(\Throwable|null, mixed): void */ + private $onResolved; + + /** @var null|array */ + private $resolutionTrace; + + /** + * @inheritdoc + */ + public function onResolve(callable $onResolved) + { + if ($this->resolved) { + if ($this->result instanceof Promise) { + $this->result->onResolve($onResolved); + return; + } + + try { + /** @var mixed $result */ + $result = $onResolved(null, $this->result); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + Promise\rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + return; + } + + if (null === $this->onResolved) { + $this->onResolved = $onResolved; + return; + } + + if (!$this->onResolved instanceof ResolutionQueue) { + /** @psalm-suppress InternalClass */ + $this->onResolved = new ResolutionQueue($this->onResolved); + } + + /** @psalm-suppress InternalMethod */ + $this->onResolved->push($onResolved); + } + + public function __destruct() + { + try { + $this->result = null; + } catch (\Throwable $e) { + Loop::defer(static function () use ($e) { + throw $e; + }); + } + } + + /** + * @param mixed $value + * + * @return void + * + * @throws \Error Thrown if the promise has already been resolved. + */ + private function resolve($value = null) + { + if ($this->resolved) { + $message = "Promise has already been resolved"; + + if (isset($this->resolutionTrace)) { + $trace = formatStacktrace($this->resolutionTrace); + $message .= ". Previous resolution trace:\n\n{$trace}\n\n"; + } else { + // @codeCoverageIgnoreStart + $message .= ", define environment variable AMP_DEBUG or const AMP_DEBUG = true and enable assertions " + . "for a stacktrace of the previous resolution."; + // @codeCoverageIgnoreEnd + } + + throw new \Error($message); + } + + \assert((function () { + $env = \getenv("AMP_DEBUG") ?: "0"; + if (($env !== "0" && $env !== "false") || (\defined("AMP_DEBUG") && \AMP_DEBUG)) { + $trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS); + \array_shift($trace); // remove current closure + $this->resolutionTrace = $trace; + } + + return true; + })()); + + if ($value instanceof ReactPromise) { + $value = Promise\adapt($value); + } + + $this->resolved = true; + $this->result = $value; + + if ($this->onResolved === null) { + return; + } + + $onResolved = $this->onResolved; + $this->onResolved = null; + + if ($this->result instanceof Promise) { + $this->result->onResolve($onResolved); + return; + } + + try { + /** @var mixed $result */ + $result = $onResolved(null, $this->result); + $onResolved = null; // allow garbage collection of $onResolved, to catch any exceptions from destructors + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + Promise\rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + } + + /** + * @param \Throwable $reason Failure reason. + * + * @return void + */ + private function fail(\Throwable $reason) + { + $this->resolve(new Failure($reason)); + } + + /** + * @return bool True if the placeholder has been resolved. + */ + private function isResolved(): bool + { + return $this->resolved; + } +} diff --git a/vendor/amphp/amp/lib/Internal/PrivateIterator.php b/vendor/amphp/amp/lib/Internal/PrivateIterator.php new file mode 100644 index 00000000..7a14b243 --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/PrivateIterator.php @@ -0,0 +1,45 @@ + + */ +final class PrivateIterator implements Iterator +{ + /** @var Iterator */ + private $iterator; + + /** + * @param Iterator $iterator + * + * @psalm-param Iterator $iterator + */ + public function __construct(Iterator $iterator) + { + $this->iterator = $iterator; + } + + /** + * @return Promise + */ + public function advance(): Promise + { + return $this->iterator->advance(); + } + + /** + * @psalm-return TValue + */ + public function getCurrent() + { + return $this->iterator->getCurrent(); + } +} diff --git a/vendor/amphp/amp/lib/Internal/PrivatePromise.php b/vendor/amphp/amp/lib/Internal/PrivatePromise.php new file mode 100644 index 00000000..3bd568a8 --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/PrivatePromise.php @@ -0,0 +1,25 @@ +promise = $promise; + } + + public function onResolve(callable $onResolved) + { + $this->promise->onResolve($onResolved); + } +} diff --git a/vendor/amphp/amp/lib/Internal/Producer.php b/vendor/amphp/amp/lib/Internal/Producer.php new file mode 100644 index 00000000..c955755a --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/Producer.php @@ -0,0 +1,212 @@ + + */ + public function advance(): Promise + { + if ($this->waiting !== null) { + throw new \Error("The prior promise returned must resolve before invoking this method again"); + } + + unset($this->values[$this->consumePosition]); + + $position = ++$this->consumePosition; + + if (\array_key_exists($position, $this->values)) { + \assert(isset($this->backPressure[$position])); + $deferred = $this->backPressure[$position]; + unset($this->backPressure[$position]); + $deferred->resolve(); + + return new Success(true); + } + + if ($this->complete) { + return $this->complete; + } + + $this->waiting = new Deferred; + + return $this->waiting->promise(); + } + + /** + * {@inheritdoc} + * + * @return TValue + */ + public function getCurrent() + { + if (empty($this->values) && $this->complete) { + throw new \Error("The iterator has completed"); + } + + if (!\array_key_exists($this->consumePosition, $this->values)) { + throw new \Error("Promise returned from advance() must resolve before calling this method"); + } + + return $this->values[$this->consumePosition]; + } + + /** + * Emits a value from the iterator. The returned promise is resolved once the emitted value has been consumed. + * + * @param mixed $value + * + * @return Promise + * @psalm-return Promise + * + * @throws \Error If the iterator has completed. + */ + private function emit($value): Promise + { + if ($this->complete) { + throw new \Error("Iterators cannot emit values after calling complete"); + } + + if ($value instanceof ReactPromise) { + $value = Promise\adapt($value); + } + + if ($value instanceof Promise) { + $deferred = new Deferred; + $value->onResolve(function ($e, $v) use ($deferred) { + if ($this->complete) { + $deferred->fail( + new \Error("The iterator was completed before the promise result could be emitted") + ); + return; + } + + if ($e) { + $this->fail($e); + $deferred->fail($e); + return; + } + + $deferred->resolve($this->emit($v)); + }); + + return $deferred->promise(); + } + + $position = ++$this->emitPosition; + + $this->values[$position] = $value; + + if ($this->waiting !== null) { + $waiting = $this->waiting; + $this->waiting = null; + $waiting->resolve(true); + return new Success; // Consumer was already waiting for a new value, so back-pressure is unnecessary. + } + + $this->backPressure[$position] = $pressure = new Deferred; + + return $pressure->promise(); + } + + /** + * Completes the iterator. + * + * @return void + * + * @throws \Error If the iterator has already been completed. + */ + private function complete() + { + if ($this->complete) { + $message = "Iterator has already been completed"; + + if (isset($this->resolutionTrace)) { + $trace = formatStacktrace($this->resolutionTrace); + $message .= ". Previous completion trace:\n\n{$trace}\n\n"; + } else { + // @codeCoverageIgnoreStart + $message .= ", define environment variable AMP_DEBUG or const AMP_DEBUG = true and enable assertions " + . "for a stacktrace of the previous resolution."; + // @codeCoverageIgnoreEnd + } + + throw new \Error($message); + } + + \assert((function () { + $env = \getenv("AMP_DEBUG") ?: "0"; + if (($env !== "0" && $env !== "false") || (\defined("AMP_DEBUG") && \AMP_DEBUG)) { + $trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS); + \array_shift($trace); // remove current closure + $this->resolutionTrace = $trace; + } + + return true; + })()); + + $this->complete = new Success(false); + + if ($this->waiting !== null) { + $waiting = $this->waiting; + $this->waiting = null; + $waiting->resolve($this->complete); + } + } + + /** + * @param \Throwable $exception + * + * @return void + */ + private function fail(\Throwable $exception) + { + $this->complete = new Failure($exception); + + if ($this->waiting !== null) { + $waiting = $this->waiting; + $this->waiting = null; + $waiting->resolve($this->complete); + } + } +} diff --git a/vendor/amphp/amp/lib/Internal/ResolutionQueue.php b/vendor/amphp/amp/lib/Internal/ResolutionQueue.php new file mode 100644 index 00000000..353a8b93 --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/ResolutionQueue.php @@ -0,0 +1,90 @@ +, mixed, + * mixed>|null) | callable(\Throwable|null, mixed): void> */ + private $queue = []; + + /** + * @param callable|null $callback Initial callback to add to queue. + * + * @psalm-param null|callable(\Throwable|null, mixed): (Promise|\React\Promise\PromiseInterface|\Generator, mixed, + * mixed>|null) | callable(\Throwable|null, mixed): void $callback + */ + public function __construct(callable $callback = null) + { + if ($callback !== null) { + $this->push($callback); + } + } + + /** + * Unrolls instances of self to avoid blowing up the call stack on resolution. + * + * @param callable $callback + * + * @psalm-param callable(\Throwable|null, mixed): (Promise|\React\Promise\PromiseInterface|\Generator, mixed, + * mixed>|null) | callable(\Throwable|null, mixed): void $callback + * + * @return void + */ + public function push(callable $callback) + { + if ($callback instanceof self) { + $this->queue = \array_merge($this->queue, $callback->queue); + return; + } + + $this->queue[] = $callback; + } + + /** + * Calls each callback in the queue, passing the provided values to the function. + * + * @param \Throwable|null $exception + * @param mixed $value + * + * @return void + */ + public function __invoke($exception, $value) + { + foreach ($this->queue as $callback) { + try { + $result = $callback($exception, $value); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + Promise\rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + } + } +} diff --git a/vendor/amphp/amp/lib/Internal/functions.php b/vendor/amphp/amp/lib/Internal/functions.php new file mode 100644 index 00000000..eee9af20 --- /dev/null +++ b/vendor/amphp/amp/lib/Internal/functions.php @@ -0,0 +1,117 @@ + $trace Output of + * `debug_backtrace()`. + * + * @return string Formatted stacktrace. + * + * @codeCoverageIgnore + * @internal + */ +function formatStacktrace(array $trace): string +{ + return \implode("\n", \array_map(static function ($e, $i) { + $line = "#{$i} "; + + if (isset($e["file"])) { + $line .= "{$e['file']}:{$e['line']} "; + } + + if (isset($e["type"])) { + $line .= $e["class"] . $e["type"]; + } + + return $line . $e["function"] . "()"; + }, $trace, \array_keys($trace))); +} + +/** + * Creates a `TypeError` with a standardized error message. + * + * @param string[] $expected Expected types. + * @param mixed $given Given value. + * + * @return \TypeError + * + * @internal + */ +function createTypeError(array $expected, $given): \TypeError +{ + $givenType = \is_object($given) ? \sprintf("instance of %s", \get_class($given)) : \gettype($given); + + if (\count($expected) === 1) { + $expectedType = "Expected the following type: " . \array_pop($expected); + } else { + $expectedType = "Expected one of the following types: " . \implode(", ", $expected); + } + + return new \TypeError("{$expectedType}; {$givenType} given"); +} + +/** + * Returns the current time relative to an arbitrary point in time. + * + * @return int Time in milliseconds. + */ +function getCurrentTime(): int +{ + /** @var int|null $startTime */ + static $startTime; + /** @var int|null $nextWarning */ + static $nextWarning; + + if (\PHP_INT_SIZE === 4) { + // @codeCoverageIgnoreStart + if ($startTime === null) { + $startTime = \PHP_VERSION_ID >= 70300 ? \hrtime(false)[0] : \time(); + $nextWarning = \PHP_INT_MAX - 86400 * 7; + } + + if (\PHP_VERSION_ID >= 70300) { + list($seconds, $nanoseconds) = \hrtime(false); + $seconds -= $startTime; + + if ($seconds >= $nextWarning) { + $timeToOverflow = (\PHP_INT_MAX - $seconds * 1000) / 1000; + \trigger_error( + "getCurrentTime() will overflow in $timeToOverflow seconds, please restart the process before that. " . + "You're using a 32 bit version of PHP, so time will overflow about every 24 days. Regular restarts are required.", + \E_USER_WARNING + ); + + /** @psalm-suppress PossiblyNullOperand */ + $nextWarning += 600; // every 10 minutes + } + + return (int) ($seconds * 1000 + $nanoseconds / 1000000); + } + + $seconds = \microtime(true) - $startTime; + if ($seconds >= $nextWarning) { + $timeToOverflow = (\PHP_INT_MAX - $seconds * 1000) / 1000; + \trigger_error( + "getCurrentTime() will overflow in $timeToOverflow seconds, please restart the process before that. " . + "You're using a 32 bit version of PHP, so time will overflow about every 24 days. Regular restarts are required.", + \E_USER_WARNING + ); + + /** @psalm-suppress PossiblyNullOperand */ + $nextWarning += 600; // every 10 minutes + } + + return (int) ($seconds * 1000); + // @codeCoverageIgnoreEnd + } + + if (\PHP_VERSION_ID >= 70300) { + list($seconds, $nanoseconds) = \hrtime(false); + return (int) ($seconds * 1000 + $nanoseconds / 1000000); + } + + return (int) (\microtime(true) * 1000); +} diff --git a/vendor/amphp/amp/lib/InvalidYieldError.php b/vendor/amphp/amp/lib/InvalidYieldError.php new file mode 100644 index 00000000..8785708e --- /dev/null +++ b/vendor/amphp/amp/lib/InvalidYieldError.php @@ -0,0 +1,39 @@ +current(); + $prefix .= \sprintf( + "; %s yielded at key %s", + \is_object($yielded) ? \get_class($yielded) : \gettype($yielded), + \var_export($generator->key(), true) + ); + + if (!$generator->valid()) { + parent::__construct($prefix, 0, $previous); + return; + } + + $reflGen = new \ReflectionGenerator($generator); + $exeGen = $reflGen->getExecutingGenerator(); + if ($isSubgenerator = ($exeGen !== $generator)) { + $reflGen = new \ReflectionGenerator($exeGen); + } + + parent::__construct(\sprintf( + "%s on line %s in %s", + $prefix, + $reflGen->getExecutingLine(), + $reflGen->getExecutingFile() + ), 0, $previous); + } +} diff --git a/vendor/amphp/amp/lib/Iterator.php b/vendor/amphp/amp/lib/Iterator.php new file mode 100644 index 00000000..fee9b76b --- /dev/null +++ b/vendor/amphp/amp/lib/Iterator.php @@ -0,0 +1,34 @@ + + * + * @throws \Error If the prior promise returned from this method has not resolved. + * @throws \Throwable The exception used to fail the iterator. + */ + public function advance(): Promise; + + /** + * Gets the last emitted value or throws an exception if the iterator has completed. + * + * @return mixed Value emitted from the iterator. + * @psalm-return TValue + * + * @throws \Error If the iterator has resolved or advance() was not called before calling this method. + * @throws \Throwable The exception used to fail the iterator. + */ + public function getCurrent(); +} diff --git a/vendor/amphp/amp/lib/LazyPromise.php b/vendor/amphp/amp/lib/LazyPromise.php new file mode 100644 index 00000000..96be33f5 --- /dev/null +++ b/vendor/amphp/amp/lib/LazyPromise.php @@ -0,0 +1,44 @@ +promisor = $promisor; + } + + /** + * {@inheritdoc} + */ + public function onResolve(callable $onResolved) + { + if ($this->promise === null) { + \assert($this->promisor !== null); + + $provider = $this->promisor; + $this->promisor = null; + $this->promise = call($provider); + } + + \assert($this->promise !== null); + + $this->promise->onResolve($onResolved); + } +} diff --git a/vendor/amphp/amp/lib/Loop.php b/vendor/amphp/amp/lib/Loop.php new file mode 100644 index 00000000..d89d2101 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop.php @@ -0,0 +1,456 @@ +defer($callback); + } + + self::$driver->run(); + } + + /** + * Stop the event loop. + * + * When an event loop is stopped, it continues with its current tick and exits the loop afterwards. Multiple calls + * to stop MUST be ignored and MUST NOT raise an exception. + * + * @return void + */ + public static function stop() + { + self::$driver->stop(); + } + + /** + * Defer the execution of a callback. + * + * The deferred callable MUST be executed before any other type of watcher in a tick. Order of enabling MUST be + * preserved when executing the callbacks. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param callable(string $watcherId, mixed $data) $callback The callback to defer. The `$watcherId` will be + * invalidated before the callback call. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public static function defer(callable $callback, $data = null): string + { + return self::$driver->defer($callback, $data); + } + + /** + * Delay the execution of a callback. + * + * The delay is a minimum and approximate, accuracy is not guaranteed. Order of calls MUST be determined by which + * timers expire first, but timers with the same expiration time MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $delay The amount of time, in milliseconds, to delay the execution for. + * @param callable(string $watcherId, mixed $data) $callback The callback to delay. The `$watcherId` will be + * invalidated before the callback call. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public static function delay(int $delay, callable $callback, $data = null): string + { + return self::$driver->delay($delay, $callback, $data); + } + + /** + * Repeatedly execute a callback. + * + * The interval between executions is a minimum and approximate, accuracy is not guaranteed. Order of calls MUST be + * determined by which timers expire first, but timers with the same expiration time MAY be executed in any order. + * The first execution is scheduled after the first interval period. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $interval The time interval, in milliseconds, to wait between executions. + * @param callable(string $watcherId, mixed $data) $callback The callback to repeat. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public static function repeat(int $interval, callable $callback, $data = null): string + { + return self::$driver->repeat($interval, $callback, $data); + } + + /** + * Execute a callback when a stream resource becomes readable or is closed for reading. + * + * Warning: Closing resources locally, e.g. with `fclose`, might not invoke the callback. Be sure to `cancel` the + * watcher when closing the resource locally. Drivers MAY choose to notify the user if there are watchers on invalid + * resources, but are not required to, due to the high performance impact. Watchers on closed resources are + * therefore undefined behavior. + * + * Multiple watchers on the same stream MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param resource $stream The stream to monitor. + * @param callable(string $watcherId, resource $stream, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public static function onReadable($stream, callable $callback, $data = null): string + { + return self::$driver->onReadable($stream, $callback, $data); + } + + /** + * Execute a callback when a stream resource becomes writable or is closed for writing. + * + * Warning: Closing resources locally, e.g. with `fclose`, might not invoke the callback. Be sure to `cancel` the + * watcher when closing the resource locally. Drivers MAY choose to notify the user if there are watchers on invalid + * resources, but are not required to, due to the high performance impact. Watchers on closed resources are + * therefore undefined behavior. + * + * Multiple watchers on the same stream MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param resource $stream The stream to monitor. + * @param callable(string $watcherId, resource $stream, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public static function onWritable($stream, callable $callback, $data = null): string + { + return self::$driver->onWritable($stream, $callback, $data); + } + + /** + * Execute a callback when a signal is received. + * + * Warning: Installing the same signal on different instances of this interface is deemed undefined behavior. + * Implementations MAY try to detect this, if possible, but are not required to. This is due to technical + * limitations of the signals being registered globally per process. + * + * Multiple watchers on the same signal MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $signo The signal number to monitor. + * @param callable(string $watcherId, int $signo, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + * + * @throws UnsupportedFeatureException If signal handling is not supported. + */ + public static function onSignal(int $signo, callable $callback, $data = null): string + { + return self::$driver->onSignal($signo, $callback, $data); + } + + /** + * Enable a watcher to be active starting in the next tick. + * + * Watchers MUST immediately be marked as enabled, but only be activated (i.e. callbacks can be called) right before + * the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param string $watcherId The watcher identifier. + * + * @return void + * + * @throws InvalidWatcherError If the watcher identifier is invalid. + */ + public static function enable(string $watcherId) + { + self::$driver->enable($watcherId); + } + + /** + * Disable a watcher immediately. + * + * A watcher MUST be disabled immediately, e.g. if a defer watcher disables a later defer watcher, the second defer + * watcher isn't executed in this tick. + * + * Disabling a watcher MUST NOT invalidate the watcher. Calling this function MUST NOT fail, even if passed an + * invalid watcher. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public static function disable(string $watcherId) + { + if (\PHP_VERSION_ID < 70200 && !isset(self::$driver)) { + // Prior to PHP 7.2, self::$driver may be unset during destruct. + // See https://github.com/amphp/amp/issues/212. + return; + } + + self::$driver->disable($watcherId); + } + + /** + * Cancel a watcher. + * + * This will detatch the event loop from all resources that are associated to the watcher. After this operation the + * watcher is permanently invalid. Calling this function MUST NOT fail, even if passed an invalid watcher. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public static function cancel(string $watcherId) + { + if (\PHP_VERSION_ID < 70200 && !isset(self::$driver)) { + // Prior to PHP 7.2, self::$driver may be unset during destruct. + // See https://github.com/amphp/amp/issues/212. + return; + } + + self::$driver->cancel($watcherId); + } + + /** + * Reference a watcher. + * + * This will keep the event loop alive whilst the watcher is still being monitored. Watchers have this state by + * default. + * + * @param string $watcherId The watcher identifier. + * + * @return void + * + * @throws InvalidWatcherError If the watcher identifier is invalid. + */ + public static function reference(string $watcherId) + { + self::$driver->reference($watcherId); + } + + /** + * Unreference a watcher. + * + * The event loop should exit the run method when only unreferenced watchers are still being monitored. Watchers + * are all referenced by default. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public static function unreference(string $watcherId) + { + if (\PHP_VERSION_ID < 70200 && !isset(self::$driver)) { + // Prior to PHP 7.2, self::$driver may be unset during destruct. + // See https://github.com/amphp/amp/issues/212. + return; + } + + self::$driver->unreference($watcherId); + } + + /** + * Returns the current loop time in millisecond increments. Note this value does not necessarily correlate to + * wall-clock time, rather the value returned is meant to be used in relative comparisons to prior values returned + * by this method (intervals, expiration calculations, etc.) and is only updated once per loop tick. + * + * @return int + */ + public static function now(): int + { + return self::$driver->now(); + } + + /** + * Stores information in the loop bound registry. + * + * Stored information is package private. Packages MUST NOT retrieve the stored state of other packages. Packages + * MUST use their namespace as prefix for keys. They may do so by using `SomeClass::class` as key. + * + * If packages want to expose loop bound state to consumers other than the package, they SHOULD provide a dedicated + * interface for that purpose instead of sharing the storage key. + * + * @param string $key The namespaced storage key. + * @param mixed $value The value to be stored. + * + * @return void + */ + public static function setState(string $key, $value) + { + self::$driver->setState($key, $value); + } + + /** + * Gets information stored bound to the loop. + * + * Stored information is package private. Packages MUST NOT retrieve the stored state of other packages. Packages + * MUST use their namespace as prefix for keys. They may do so by using `SomeClass::class` as key. + * + * If packages want to expose loop bound state to consumers other than the package, they SHOULD provide a dedicated + * interface for that purpose instead of sharing the storage key. + * + * @param string $key The namespaced storage key. + * + * @return mixed The previously stored value or `null` if it doesn't exist. + */ + public static function getState(string $key) + { + return self::$driver->getState($key); + } + + /** + * Set a callback to be executed when an error occurs. + * + * The callback receives the error as the first and only parameter. The return value of the callback gets ignored. + * If it can't handle the error, it MUST throw the error. Errors thrown by the callback or during its invocation + * MUST be thrown into the `run` loop and stop the driver. + * + * Subsequent calls to this method will overwrite the previous handler. + * + * @param callable(\Throwable $error)|null $callback The callback to execute. `null` will clear the + * current handler. + * + * @return callable(\Throwable $error)|null The previous handler, `null` if there was none. + */ + public static function setErrorHandler(callable $callback = null) + { + return self::$driver->setErrorHandler($callback); + } + + /** + * Retrieve an associative array of information about the event loop driver. + * + * The returned array MUST contain the following data describing the driver's currently registered watchers: + * + * [ + * "defer" => ["enabled" => int, "disabled" => int], + * "delay" => ["enabled" => int, "disabled" => int], + * "repeat" => ["enabled" => int, "disabled" => int], + * "on_readable" => ["enabled" => int, "disabled" => int], + * "on_writable" => ["enabled" => int, "disabled" => int], + * "on_signal" => ["enabled" => int, "disabled" => int], + * "enabled_watchers" => ["referenced" => int, "unreferenced" => int], + * "running" => bool + * ]; + * + * Implementations MAY optionally add more information in the array but at minimum the above `key => value` format + * MUST always be provided. + * + * @return array Statistics about the loop in the described format. + */ + public static function getInfo(): array + { + return self::$driver->getInfo(); + } + + /** + * Retrieve the event loop driver that is in scope. + * + * @return Driver + */ + public static function get(): Driver + { + return self::$driver; + } +} + +// Default factory, don't move this to a file loaded by the composer "files" autoload mechanism, otherwise custom +// implementations might have issues setting a default loop, because it's overridden by us then. + +// @codeCoverageIgnoreStart +Loop::set((new DriverFactory)->create()); +// @codeCoverageIgnoreEnd diff --git a/vendor/amphp/amp/lib/Loop/Driver.php b/vendor/amphp/amp/lib/Loop/Driver.php new file mode 100644 index 00000000..448bab62 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/Driver.php @@ -0,0 +1,742 @@ +running = true; + + try { + while ($this->running) { + if ($this->isEmpty()) { + return; + } + $this->tick(); + } + } finally { + $this->stop(); + } + } + + /** + * @return bool True if no enabled and referenced watchers remain in the loop. + */ + private function isEmpty(): bool + { + foreach ($this->watchers as $watcher) { + if ($watcher->enabled && $watcher->referenced) { + return false; + } + } + + return true; + } + + /** + * Executes a single tick of the event loop. + * + * @return void + */ + private function tick() + { + if (empty($this->deferQueue)) { + $this->deferQueue = $this->nextTickQueue; + } else { + $this->deferQueue = \array_merge($this->deferQueue, $this->nextTickQueue); + } + $this->nextTickQueue = []; + + $this->activate($this->enableQueue); + $this->enableQueue = []; + + foreach ($this->deferQueue as $watcher) { + if (!isset($this->deferQueue[$watcher->id])) { + continue; // Watcher disabled by another defer watcher. + } + + unset($this->watchers[$watcher->id], $this->deferQueue[$watcher->id]); + + try { + /** @var mixed $result */ + $result = ($watcher->callback)($watcher->id, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + + /** @psalm-suppress RedundantCondition */ + $this->dispatch(empty($this->nextTickQueue) && empty($this->enableQueue) && $this->running && !$this->isEmpty()); + } + + /** + * Activates (enables) all the given watchers. + * + * @param Watcher[] $watchers + * + * @return void + */ + abstract protected function activate(array $watchers); + + /** + * Dispatches any pending read/write, timer, and signal events. + * + * @param bool $blocking + * + * @return void + */ + abstract protected function dispatch(bool $blocking); + + /** + * Stop the event loop. + * + * When an event loop is stopped, it continues with its current tick and exits the loop afterwards. Multiple calls + * to stop MUST be ignored and MUST NOT raise an exception. + * + * @return void + */ + public function stop() + { + $this->running = false; + } + + /** + * Defer the execution of a callback. + * + * The deferred callable MUST be executed before any other type of watcher in a tick. Order of enabling MUST be + * preserved when executing the callbacks. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param callable (string $watcherId, mixed $data) $callback The callback to defer. The `$watcherId` will be + * invalidated before the callback call. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public function defer(callable $callback, $data = null): string + { + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::DEFER; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->nextTickQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Delay the execution of a callback. + * + * The delay is a minimum and approximate, accuracy is not guaranteed. Order of calls MUST be determined by which + * timers expire first, but timers with the same expiration time MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $delay The amount of time, in milliseconds, to delay the execution for. + * @param callable (string $watcherId, mixed $data) $callback The callback to delay. The `$watcherId` will be + * invalidated before the callback call. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public function delay(int $delay, callable $callback, $data = null): string + { + if ($delay < 0) { + throw new \Error("Delay must be greater than or equal to zero"); + } + + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::DELAY; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->value = $delay; + $watcher->expiration = $this->now() + $delay; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->enableQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Repeatedly execute a callback. + * + * The interval between executions is a minimum and approximate, accuracy is not guaranteed. Order of calls MUST be + * determined by which timers expire first, but timers with the same expiration time MAY be executed in any order. + * The first execution is scheduled after the first interval period. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $interval The time interval, in milliseconds, to wait between executions. + * @param callable (string $watcherId, mixed $data) $callback The callback to repeat. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public function repeat(int $interval, callable $callback, $data = null): string + { + if ($interval < 0) { + throw new \Error("Interval must be greater than or equal to zero"); + } + + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::REPEAT; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->value = $interval; + $watcher->expiration = $this->now() + $interval; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->enableQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Execute a callback when a stream resource becomes readable or is closed for reading. + * + * Warning: Closing resources locally, e.g. with `fclose`, might not invoke the callback. Be sure to `cancel` the + * watcher when closing the resource locally. Drivers MAY choose to notify the user if there are watchers on invalid + * resources, but are not required to, due to the high performance impact. Watchers on closed resources are + * therefore undefined behavior. + * + * Multiple watchers on the same stream MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param resource $stream The stream to monitor. + * @param callable (string $watcherId, resource $stream, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public function onReadable($stream, callable $callback, $data = null): string + { + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::READABLE; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->value = $stream; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->enableQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Execute a callback when a stream resource becomes writable or is closed for writing. + * + * Warning: Closing resources locally, e.g. with `fclose`, might not invoke the callback. Be sure to `cancel` the + * watcher when closing the resource locally. Drivers MAY choose to notify the user if there are watchers on invalid + * resources, but are not required to, due to the high performance impact. Watchers on closed resources are + * therefore undefined behavior. + * + * Multiple watchers on the same stream MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param resource $stream The stream to monitor. + * @param callable (string $watcherId, resource $stream, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the `$data` parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + */ + public function onWritable($stream, callable $callback, $data = null): string + { + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::WRITABLE; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->value = $stream; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->enableQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Execute a callback when a signal is received. + * + * Warning: Installing the same signal on different instances of this interface is deemed undefined behavior. + * Implementations MAY try to detect this, if possible, but are not required to. This is due to technical + * limitations of the signals being registered globally per process. + * + * Multiple watchers on the same signal MAY be executed in any order. + * + * The created watcher MUST immediately be marked as enabled, but only be activated (i.e. callback can be called) + * right before the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param int $signo The signal number to monitor. + * @param callable (string $watcherId, int $signo, mixed $data) $callback The callback to execute. + * @param mixed $data Arbitrary data given to the callback function as the $data parameter. + * + * @return string An unique identifier that can be used to cancel, enable or disable the watcher. + * + * @throws UnsupportedFeatureException If signal handling is not supported. + */ + public function onSignal(int $signo, callable $callback, $data = null): string + { + /** @psalm-var Watcher $watcher */ + $watcher = new Watcher; + $watcher->type = Watcher::SIGNAL; + $watcher->id = $this->nextId++; + $watcher->callback = $callback; + $watcher->value = $signo; + $watcher->data = $data; + + $this->watchers[$watcher->id] = $watcher; + $this->enableQueue[$watcher->id] = $watcher; + + return $watcher->id; + } + + /** + * Enable a watcher to be active starting in the next tick. + * + * Watchers MUST immediately be marked as enabled, but only be activated (i.e. callbacks can be called) right before + * the next tick. Callbacks of watchers MUST NOT be called in the tick they were enabled. + * + * @param string $watcherId The watcher identifier. + * + * @return void + * + * @throws InvalidWatcherError If the watcher identifier is invalid. + */ + public function enable(string $watcherId) + { + if (!isset($this->watchers[$watcherId])) { + throw new InvalidWatcherError($watcherId, "Cannot enable an invalid watcher identifier: '{$watcherId}'"); + } + + $watcher = $this->watchers[$watcherId]; + + if ($watcher->enabled) { + return; // Watcher already enabled. + } + + $watcher->enabled = true; + + switch ($watcher->type) { + case Watcher::DEFER: + $this->nextTickQueue[$watcher->id] = $watcher; + break; + + case Watcher::REPEAT: + case Watcher::DELAY: + \assert(\is_int($watcher->value)); + + $watcher->expiration = $this->now() + $watcher->value; + $this->enableQueue[$watcher->id] = $watcher; + break; + + default: + $this->enableQueue[$watcher->id] = $watcher; + break; + } + } + + /** + * Cancel a watcher. + * + * This will detach the event loop from all resources that are associated to the watcher. After this operation the + * watcher is permanently invalid. Calling this function MUST NOT fail, even if passed an invalid watcher. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public function cancel(string $watcherId) + { + $this->disable($watcherId); + unset($this->watchers[$watcherId]); + } + + /** + * Disable a watcher immediately. + * + * A watcher MUST be disabled immediately, e.g. if a defer watcher disables a later defer watcher, the second defer + * watcher isn't executed in this tick. + * + * Disabling a watcher MUST NOT invalidate the watcher. Calling this function MUST NOT fail, even if passed an + * invalid watcher. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public function disable(string $watcherId) + { + if (!isset($this->watchers[$watcherId])) { + return; + } + + $watcher = $this->watchers[$watcherId]; + + if (!$watcher->enabled) { + return; // Watcher already disabled. + } + + $watcher->enabled = false; + $id = $watcher->id; + + switch ($watcher->type) { + case Watcher::DEFER: + if (isset($this->nextTickQueue[$id])) { + // Watcher was only queued to be enabled. + unset($this->nextTickQueue[$id]); + } else { + unset($this->deferQueue[$id]); + } + break; + + default: + if (isset($this->enableQueue[$id])) { + // Watcher was only queued to be enabled. + unset($this->enableQueue[$id]); + } else { + $this->deactivate($watcher); + } + break; + } + } + + /** + * Deactivates (disables) the given watcher. + * + * @param Watcher $watcher + * + * @return void + */ + abstract protected function deactivate(Watcher $watcher); + + /** + * Reference a watcher. + * + * This will keep the event loop alive whilst the watcher is still being monitored. Watchers have this state by + * default. + * + * @param string $watcherId The watcher identifier. + * + * @return void + * + * @throws InvalidWatcherError If the watcher identifier is invalid. + */ + public function reference(string $watcherId) + { + if (!isset($this->watchers[$watcherId])) { + throw new InvalidWatcherError($watcherId, "Cannot reference an invalid watcher identifier: '{$watcherId}'"); + } + + $this->watchers[$watcherId]->referenced = true; + } + + /** + * Unreference a watcher. + * + * The event loop should exit the run method when only unreferenced watchers are still being monitored. Watchers + * are all referenced by default. + * + * @param string $watcherId The watcher identifier. + * + * @return void + */ + public function unreference(string $watcherId) + { + if (!isset($this->watchers[$watcherId])) { + return; + } + + $this->watchers[$watcherId]->referenced = false; + } + + /** + * Stores information in the loop bound registry. + * + * Stored information is package private. Packages MUST NOT retrieve the stored state of other packages. Packages + * MUST use their namespace as prefix for keys. They may do so by using `SomeClass::class` as key. + * + * If packages want to expose loop bound state to consumers other than the package, they SHOULD provide a dedicated + * interface for that purpose instead of sharing the storage key. + * + * @param string $key The namespaced storage key. + * @param mixed $value The value to be stored. + * + * @return void + */ + final public function setState(string $key, $value) + { + if ($value === null) { + unset($this->registry[$key]); + } else { + $this->registry[$key] = $value; + } + } + + /** + * Gets information stored bound to the loop. + * + * Stored information is package private. Packages MUST NOT retrieve the stored state of other packages. Packages + * MUST use their namespace as prefix for keys. They may do so by using `SomeClass::class` as key. + * + * If packages want to expose loop bound state to consumers other than the package, they SHOULD provide a dedicated + * interface for that purpose instead of sharing the storage key. + * + * @param string $key The namespaced storage key. + * + * @return mixed The previously stored value or `null` if it doesn't exist. + */ + final public function getState(string $key) + { + return isset($this->registry[$key]) ? $this->registry[$key] : null; + } + + /** + * Set a callback to be executed when an error occurs. + * + * The callback receives the error as the first and only parameter. The return value of the callback gets ignored. + * If it can't handle the error, it MUST throw the error. Errors thrown by the callback or during its invocation + * MUST be thrown into the `run` loop and stop the driver. + * + * Subsequent calls to this method will overwrite the previous handler. + * + * @param callable(\Throwable $error):void|null $callback The callback to execute. `null` will clear the + * current handler. + * + * @return callable(\Throwable $error):void|null The previous handler, `null` if there was none. + */ + public function setErrorHandler(callable $callback = null) + { + $previous = $this->errorHandler; + $this->errorHandler = $callback; + return $previous; + } + + /** + * Invokes the error handler with the given exception. + * + * @param \Throwable $exception The exception thrown from a watcher callback. + * + * @return void + * @throws \Throwable If no error handler has been set. + */ + protected function error(\Throwable $exception) + { + if ($this->errorHandler === null) { + throw $exception; + } + + ($this->errorHandler)($exception); + } + + /** + * Returns the current loop time in millisecond increments. Note this value does not necessarily correlate to + * wall-clock time, rather the value returned is meant to be used in relative comparisons to prior values returned + * by this method (intervals, expiration calculations, etc.) and is only updated once per loop tick. + * + * Extending classes should override this function to return a value cached once per loop tick. + * + * @return int + */ + public function now(): int + { + return (int) (\microtime(true) * self::MILLISEC_PER_SEC); + } + + /** + * Get the underlying loop handle. + * + * Example: the `uv_loop` resource for `libuv` or the `EvLoop` object for `libev` or `null` for a native driver. + * + * Note: This function is *not* exposed in the `Loop` class. Users shall access it directly on the respective loop + * instance. + * + * @return null|object|resource The loop handle the event loop operates on. `null` if there is none. + */ + abstract public function getHandle(); + + /** + * Returns the same array of data as getInfo(). + * + * @return array + */ + public function __debugInfo() + { + // @codeCoverageIgnoreStart + return $this->getInfo(); + // @codeCoverageIgnoreEnd + } + + /** + * Retrieve an associative array of information about the event loop driver. + * + * The returned array MUST contain the following data describing the driver's currently registered watchers: + * + * [ + * "defer" => ["enabled" => int, "disabled" => int], + * "delay" => ["enabled" => int, "disabled" => int], + * "repeat" => ["enabled" => int, "disabled" => int], + * "on_readable" => ["enabled" => int, "disabled" => int], + * "on_writable" => ["enabled" => int, "disabled" => int], + * "on_signal" => ["enabled" => int, "disabled" => int], + * "enabled_watchers" => ["referenced" => int, "unreferenced" => int], + * "running" => bool + * ]; + * + * Implementations MAY optionally add more information in the array but at minimum the above `key => value` format + * MUST always be provided. + * + * @return array Statistics about the loop in the described format. + */ + public function getInfo(): array + { + $watchers = [ + "referenced" => 0, + "unreferenced" => 0, + ]; + + $defer = $delay = $repeat = $onReadable = $onWritable = $onSignal = [ + "enabled" => 0, + "disabled" => 0, + ]; + + foreach ($this->watchers as $watcher) { + switch ($watcher->type) { + case Watcher::READABLE: + $array = &$onReadable; + break; + case Watcher::WRITABLE: + $array = &$onWritable; + break; + case Watcher::SIGNAL: + $array = &$onSignal; + break; + case Watcher::DEFER: + $array = &$defer; + break; + case Watcher::DELAY: + $array = &$delay; + break; + case Watcher::REPEAT: + $array = &$repeat; + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + + if ($watcher->enabled) { + ++$array["enabled"]; + + if ($watcher->referenced) { + ++$watchers["referenced"]; + } else { + ++$watchers["unreferenced"]; + } + } else { + ++$array["disabled"]; + } + } + + return [ + "enabled_watchers" => $watchers, + "defer" => $defer, + "delay" => $delay, + "repeat" => $repeat, + "on_readable" => $onReadable, + "on_writable" => $onWritable, + "on_signal" => $onSignal, + "running" => (bool) $this->running, + ]; + } +} diff --git a/vendor/amphp/amp/lib/Loop/DriverFactory.php b/vendor/amphp/amp/lib/Loop/DriverFactory.php new file mode 100644 index 00000000..0ce16524 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/DriverFactory.php @@ -0,0 +1,73 @@ +createDriverFromEnv()) { + return $driver; + } + + if (UvDriver::isSupported()) { + return new UvDriver; + } + + if (EvDriver::isSupported()) { + return new EvDriver; + } + + if (EventDriver::isSupported()) { + return new EventDriver; + } + + return new NativeDriver; + })(); + + if (\getenv("AMP_DEBUG_TRACE_WATCHERS")) { + return new TracingDriver($driver); + } + + return $driver; + } + + /** + * @return Driver|null + */ + private function createDriverFromEnv() + { + $driver = \getenv("AMP_LOOP_DRIVER"); + + if (!$driver) { + return null; + } + + if (!\class_exists($driver)) { + throw new \Error(\sprintf( + "Driver '%s' does not exist.", + $driver + )); + } + + if (!\is_subclass_of($driver, Driver::class)) { + throw new \Error(\sprintf( + "Driver '%s' is not a subclass of '%s'.", + $driver, + Driver::class + )); + } + + return new $driver; + } +} +// @codeCoverageIgnoreEnd diff --git a/vendor/amphp/amp/lib/Loop/EvDriver.php b/vendor/amphp/amp/lib/Loop/EvDriver.php new file mode 100644 index 00000000..401bb3ba --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/EvDriver.php @@ -0,0 +1,317 @@ +handle = new \EvLoop; + $this->nowOffset = getCurrentTime(); + $this->now = \random_int(0, $this->nowOffset); + $this->nowOffset -= $this->now; + + if (self::$activeSignals === null) { + self::$activeSignals = &$this->signals; + } + + /** + * @param \EvIO $event + * + * @return void + */ + $this->ioCallback = function (\EvIO $event) { + /** @var Watcher $watcher */ + $watcher = $event->data; + + try { + $result = ($watcher->callback)($watcher->id, $watcher->value, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + + /** + * @param \EvTimer $event + * + * @return void + */ + $this->timerCallback = function (\EvTimer $event) { + /** @var Watcher $watcher */ + $watcher = $event->data; + + if ($watcher->type & Watcher::DELAY) { + $this->cancel($watcher->id); + } elseif ($watcher->value === 0) { + // Disable and re-enable so it's not executed repeatedly in the same tick + // See https://github.com/amphp/amp/issues/131 + $this->disable($watcher->id); + $this->enable($watcher->id); + } + + try { + $result = ($watcher->callback)($watcher->id, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + + /** + * @param \EvSignal $event + * + * @return void + */ + $this->signalCallback = function (\EvSignal $event) { + /** @var Watcher $watcher */ + $watcher = $event->data; + + try { + $result = ($watcher->callback)($watcher->id, $watcher->value, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + } + + /** + * {@inheritdoc} + */ + public function cancel(string $watcherId) + { + parent::cancel($watcherId); + unset($this->events[$watcherId]); + } + + public function __destruct() + { + foreach ($this->events as $event) { + /** @psalm-suppress all */ + if ($event !== null) { // Events may have been nulled in extension depending on destruct order. + $event->stop(); + } + } + + // We need to clear all references to events manually, see + // https://bitbucket.org/osmanov/pecl-ev/issues/31/segfault-in-ev_timer_stop + $this->events = []; + } + + /** + * {@inheritdoc} + */ + public function run() + { + $active = self::$activeSignals; + + \assert($active !== null); + + foreach ($active as $event) { + $event->stop(); + } + + self::$activeSignals = &$this->signals; + + foreach ($this->signals as $event) { + $event->start(); + } + + try { + parent::run(); + } finally { + foreach ($this->signals as $event) { + $event->stop(); + } + + self::$activeSignals = &$active; + + foreach ($active as $event) { + $event->start(); + } + } + } + + /** + * {@inheritdoc} + */ + public function stop() + { + $this->handle->stop(); + parent::stop(); + } + + /** + * {@inheritdoc} + */ + public function now(): int + { + $this->now = getCurrentTime() - $this->nowOffset; + + return $this->now; + } + + /** + * {@inheritdoc} + */ + public function getHandle(): \EvLoop + { + return $this->handle; + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function dispatch(bool $blocking) + { + $this->handle->run($blocking ? \Ev::RUN_ONCE : \Ev::RUN_ONCE | \Ev::RUN_NOWAIT); + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function activate(array $watchers) + { + $this->handle->nowUpdate(); + $now = $this->now(); + + foreach ($watchers as $watcher) { + if (!isset($this->events[$id = $watcher->id])) { + switch ($watcher->type) { + case Watcher::READABLE: + \assert(\is_resource($watcher->value)); + + $this->events[$id] = $this->handle->io($watcher->value, \Ev::READ, $this->ioCallback, $watcher); + break; + + case Watcher::WRITABLE: + \assert(\is_resource($watcher->value)); + + $this->events[$id] = $this->handle->io( + $watcher->value, + \Ev::WRITE, + $this->ioCallback, + $watcher + ); + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + \assert(\is_int($watcher->value)); + + $interval = $watcher->value / self::MILLISEC_PER_SEC; + $this->events[$id] = $this->handle->timer( + \max(0, ($watcher->expiration - $now) / self::MILLISEC_PER_SEC), + ($watcher->type & Watcher::REPEAT) ? $interval : 0, + $this->timerCallback, + $watcher + ); + break; + + case Watcher::SIGNAL: + \assert(\is_int($watcher->value)); + + $this->events[$id] = $this->handle->signal($watcher->value, $this->signalCallback, $watcher); + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } else { + $this->events[$id]->start(); + } + + if ($watcher->type === Watcher::SIGNAL) { + /** @psalm-suppress PropertyTypeCoercion */ + $this->signals[$id] = $this->events[$id]; + } + } + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function deactivate(Watcher $watcher) + { + if (isset($this->events[$id = $watcher->id])) { + $this->events[$id]->stop(); + + if ($watcher->type === Watcher::SIGNAL) { + unset($this->signals[$id]); + } + } + } +} diff --git a/vendor/amphp/amp/lib/Loop/EventDriver.php b/vendor/amphp/amp/lib/Loop/EventDriver.php new file mode 100644 index 00000000..c4a9b9b5 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/EventDriver.php @@ -0,0 +1,367 @@ +requireFeatures(\EventConfig::FEATURE_FDS); + } + + $this->handle = new \EventBase($config); + $this->nowOffset = getCurrentTime(); + $this->now = \random_int(0, $this->nowOffset); + $this->nowOffset -= $this->now; + + if (self::$activeSignals === null) { + self::$activeSignals = &$this->signals; + } + + /** + * @param $resource + * @param $what + * @param Watcher $watcher + * + * @return void + */ + $this->ioCallback = function ($resource, $what, Watcher $watcher) { + \assert(\is_resource($watcher->value)); + + try { + $result = ($watcher->callback)($watcher->id, $watcher->value, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + + /** + * @param $resource + * @param $what + * @param Watcher $watcher + * + * @return void + */ + $this->timerCallback = function ($resource, $what, Watcher $watcher) { + \assert(\is_int($watcher->value)); + + if ($watcher->type & Watcher::DELAY) { + $this->cancel($watcher->id); + } else { + $this->events[$watcher->id]->add($watcher->value / self::MILLISEC_PER_SEC); + } + + try { + $result = ($watcher->callback)($watcher->id, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + + /** + * @param $signum + * @param $what + * @param Watcher $watcher + * + * @return void + */ + $this->signalCallback = function ($signum, $what, Watcher $watcher) { + try { + $result = ($watcher->callback)($watcher->id, $watcher->value, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + } + + /** + * {@inheritdoc} + */ + public function cancel(string $watcherId) + { + parent::cancel($watcherId); + + if (isset($this->events[$watcherId])) { + $this->events[$watcherId]->free(); + unset($this->events[$watcherId]); + } + } + + public static function isSupported(): bool + { + return \extension_loaded("event"); + } + + /** + * @codeCoverageIgnore + */ + public function __destruct() + { + // Unset here, otherwise $event->del() in the loop may fail with a warning, because __destruct order isn't defined. + // Related https://github.com/amphp/amp/issues/159. + $events = $this->events; + $this->events = []; + + foreach ($events as $event) { + if ($event !== null) { // Events may have been nulled in extension depending on destruct order. + $event->free(); + } + } + + // Manually free the loop handle to fully release loop resources. + // See https://github.com/amphp/amp/issues/177. + if ($this->handle !== null) { + $this->handle->free(); + $this->handle = null; + } + } + + /** + * {@inheritdoc} + */ + public function run() + { + $active = self::$activeSignals; + + \assert($active !== null); + + foreach ($active as $event) { + $event->del(); + } + + self::$activeSignals = &$this->signals; + + foreach ($this->signals as $event) { + /** @psalm-suppress TooFewArguments https://github.com/JetBrains/phpstorm-stubs/pull/763 */ + $event->add(); + } + + try { + parent::run(); + } finally { + foreach ($this->signals as $event) { + $event->del(); + } + + self::$activeSignals = &$active; + + foreach ($active as $event) { + /** @psalm-suppress TooFewArguments https://github.com/JetBrains/phpstorm-stubs/pull/763 */ + $event->add(); + } + } + } + + /** + * {@inheritdoc} + */ + public function stop() + { + $this->handle->stop(); + parent::stop(); + } + + /** + * {@inheritdoc} + */ + public function now(): int + { + $this->now = getCurrentTime() - $this->nowOffset; + + return $this->now; + } + + /** + * {@inheritdoc} + */ + public function getHandle(): \EventBase + { + return $this->handle; + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function dispatch(bool $blocking) + { + $this->handle->loop($blocking ? \EventBase::LOOP_ONCE : \EventBase::LOOP_ONCE | \EventBase::LOOP_NONBLOCK); + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function activate(array $watchers) + { + $now = $this->now(); + + foreach ($watchers as $watcher) { + if (!isset($this->events[$id = $watcher->id])) { + switch ($watcher->type) { + case Watcher::READABLE: + \assert(\is_resource($watcher->value)); + + $this->events[$id] = new \Event( + $this->handle, + $watcher->value, + \Event::READ | \Event::PERSIST, + $this->ioCallback, + $watcher + ); + break; + + case Watcher::WRITABLE: + \assert(\is_resource($watcher->value)); + + $this->events[$id] = new \Event( + $this->handle, + $watcher->value, + \Event::WRITE | \Event::PERSIST, + $this->ioCallback, + $watcher + ); + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + \assert(\is_int($watcher->value)); + + $this->events[$id] = new \Event( + $this->handle, + -1, + \Event::TIMEOUT, + $this->timerCallback, + $watcher + ); + break; + + case Watcher::SIGNAL: + \assert(\is_int($watcher->value)); + + $this->events[$id] = new \Event( + $this->handle, + $watcher->value, + \Event::SIGNAL | \Event::PERSIST, + $this->signalCallback, + $watcher + ); + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } + + switch ($watcher->type) { + case Watcher::DELAY: + case Watcher::REPEAT: + \assert(\is_int($watcher->value)); + + $interval = \max(0, $watcher->expiration - $now); + $this->events[$id]->add($interval > 0 ? $interval / self::MILLISEC_PER_SEC : 0); + break; + + case Watcher::SIGNAL: + $this->signals[$id] = $this->events[$id]; + // no break + + default: + /** @psalm-suppress TooFewArguments https://github.com/JetBrains/phpstorm-stubs/pull/763 */ + $this->events[$id]->add(); + break; + } + } + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function deactivate(Watcher $watcher) + { + if (isset($this->events[$id = $watcher->id])) { + $this->events[$id]->del(); + + if ($watcher->type === Watcher::SIGNAL) { + unset($this->signals[$id]); + } + } + } +} diff --git a/vendor/amphp/amp/lib/Loop/Internal/TimerQueue.php b/vendor/amphp/amp/lib/Loop/Internal/TimerQueue.php new file mode 100644 index 00000000..f2be704c --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/Internal/TimerQueue.php @@ -0,0 +1,169 @@ +data[$node]; + while ($node !== 0 && $entry->expiration < $this->data[$parent = ($node - 1) >> 1]->expiration) { + $this->swap($node, $parent); + $node = $parent; + } + } + + /** + * @param int $node Rebuild the data array from the given node downward. + * + * @return void + */ + private function heapifyDown(int $node) + { + $length = \count($this->data); + while (($child = ($node << 1) + 1) < $length) { + if ($this->data[$child]->expiration < $this->data[$node]->expiration + && ($child + 1 >= $length || $this->data[$child]->expiration < $this->data[$child + 1]->expiration) + ) { + // Left child is less than parent and right child. + $swap = $child; + } elseif ($child + 1 < $length && $this->data[$child + 1]->expiration < $this->data[$node]->expiration) { + // Right child is less than parent and left child. + $swap = $child + 1; + } else { // Left and right child are greater than parent. + break; + } + + $this->swap($node, $swap); + $node = $swap; + } + } + + private function swap(int $left, int $right) + { + $temp = $this->data[$left]; + + $this->data[$left] = $this->data[$right]; + $this->pointers[$this->data[$right]->id] = $left; + + $this->data[$right] = $temp; + $this->pointers[$temp->id] = $right; + } + + /** + * Inserts the watcher into the queue. Time complexity: O(log(n)). + * + * @param Watcher $watcher + * + * @psalm-param Watcher $watcher + * + * @return void + */ + public function insert(Watcher $watcher) + { + \assert($watcher->expiration !== null); + \assert(!isset($this->pointers[$watcher->id])); + + $node = \count($this->data); + $this->data[$node] = $watcher; + $this->pointers[$watcher->id] = $node; + + $this->heapifyUp($node); + } + + /** + * Removes the given watcher from the queue. Time complexity: O(log(n)). + * + * @param Watcher $watcher + * + * @psalm-param Watcher $watcher + * + * @return void + */ + public function remove(Watcher $watcher) + { + $id = $watcher->id; + + if (!isset($this->pointers[$id])) { + return; + } + + $this->removeAndRebuild($this->pointers[$id]); + } + + /** + * Deletes and returns the Watcher on top of the heap if it has expired, otherwise null is returned. + * Time complexity: O(log(n)). + * + * @param int $now Current loop time. + * + * @return Watcher|null Expired watcher at the top of the heap or null if the watcher has not expired. + * + * @psalm-return Watcher|null + */ + public function extract(int $now) + { + if (empty($this->data)) { + return null; + } + + $watcher = $this->data[0]; + + if ($watcher->expiration > $now) { + return null; + } + + $this->removeAndRebuild(0); + + return $watcher; + } + + /** + * Returns the expiration time value at the top of the heap. Time complexity: O(1). + * + * @return int|null Expiration time of the watcher at the top of the heap or null if the heap is empty. + */ + public function peek() + { + return isset($this->data[0]) ? $this->data[0]->expiration : null; + } + + /** + * @param int $node Remove the given node and then rebuild the data array. + * + * @return void + */ + private function removeAndRebuild(int $node) + { + $length = \count($this->data) - 1; + $id = $this->data[$node]->id; + $left = $this->data[$node] = $this->data[$length]; + $this->pointers[$left->id] = $node; + unset($this->data[$length], $this->pointers[$id]); + + if ($node < $length) { // don't need to do anything if we removed the last element + $parent = ($node - 1) >> 1; + if ($parent >= 0 && $this->data[$node]->expiration < $this->data[$parent]->expiration) { + $this->heapifyUp($node); + } else { + $this->heapifyDown($node); + } + } + } +} diff --git a/vendor/amphp/amp/lib/Loop/InvalidWatcherError.php b/vendor/amphp/amp/lib/Loop/InvalidWatcherError.php new file mode 100644 index 00000000..4842ecf5 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/InvalidWatcherError.php @@ -0,0 +1,32 @@ +watcherId = $watcherId; + parent::__construct($message); + } + + /** + * @return string The watcher identifier. + */ + public function getWatcherId() + { + return $this->watcherId; + } +} diff --git a/vendor/amphp/amp/lib/Loop/NativeDriver.php b/vendor/amphp/amp/lib/Loop/NativeDriver.php new file mode 100644 index 00000000..1a1302e3 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/NativeDriver.php @@ -0,0 +1,445 @@ +timerQueue = new Internal\TimerQueue; + $this->signalHandling = \extension_loaded("pcntl"); + $this->nowOffset = getCurrentTime(); + $this->now = \random_int(0, $this->nowOffset); + $this->nowOffset -= $this->now; + $this->streamSelectErrorHandler = function ($errno, $message) { + // Casing changed in PHP 8 from 'unable' to 'Unable' + if (\stripos($message, "stream_select(): unable to select [4]: ") === 0) { // EINTR + $this->streamSelectIgnoreResult = true; + + return; + } + + if (\strpos($message, 'FD_SETSIZE') !== false) { + $message = \str_replace(["\r\n", "\n", "\r"], " ", $message); + $pattern = '(stream_select\(\): You MUST recompile PHP with a larger value of FD_SETSIZE. It is set to (\d+), but you have descriptors numbered at least as high as (\d+)\.)'; + + if (\preg_match($pattern, $message, $match)) { + $helpLink = 'https://amphp.org/amp/event-loop/#implementations'; + + $message = 'You have reached the limits of stream_select(). It has a FD_SETSIZE of ' . $match[1] + . ', but you have file descriptors numbered at least as high as ' . $match[2] . '. ' + . "You can install one of the extensions listed on {$helpLink} to support a higher number of " + . "concurrent file descriptors. If a large number of open file descriptors is unexpected, you " + . "might be leaking file descriptors that aren't closed correctly."; + } + } + + throw new \Exception($message, $errno); + }; + } + + /** + * {@inheritdoc} + * + * @throws \Amp\Loop\UnsupportedFeatureException If the pcntl extension is not available. + */ + public function onSignal(int $signo, callable $callback, $data = null): string + { + if (!$this->signalHandling) { + throw new UnsupportedFeatureException("Signal handling requires the pcntl extension"); + } + + return parent::onSignal($signo, $callback, $data); + } + + /** + * {@inheritdoc} + */ + public function now(): int + { + $this->now = getCurrentTime() - $this->nowOffset; + + return $this->now; + } + + /** + * {@inheritdoc} + */ + public function getHandle() + { + return null; + } + + /** + * @param bool $blocking + * + * @return void + * + * @throws \Throwable + */ + protected function dispatch(bool $blocking) + { + $this->selectStreams( + $this->readStreams, + $this->writeStreams, + $blocking ? $this->getTimeout() : 0 + ); + + $now = $this->now(); + + while ($watcher = $this->timerQueue->extract($now)) { + if ($watcher->type & Watcher::REPEAT) { + $watcher->enabled = false; // Trick base class into adding to enable queue when calling enable() + $this->enable($watcher->id); + } else { + $this->cancel($watcher->id); + } + + try { + // Execute the timer. + $result = ($watcher->callback)($watcher->id, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + + if ($this->signalHandling) { + \pcntl_signal_dispatch(); + } + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function activate(array $watchers) + { + foreach ($watchers as $watcher) { + switch ($watcher->type) { + case Watcher::READABLE: + \assert(\is_resource($watcher->value)); + + $streamId = (int) $watcher->value; + $this->readWatchers[$streamId][$watcher->id] = $watcher; + $this->readStreams[$streamId] = $watcher->value; + break; + + case Watcher::WRITABLE: + \assert(\is_resource($watcher->value)); + + $streamId = (int) $watcher->value; + $this->writeWatchers[$streamId][$watcher->id] = $watcher; + $this->writeStreams[$streamId] = $watcher->value; + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + \assert(\is_int($watcher->value)); + $this->timerQueue->insert($watcher); + break; + + case Watcher::SIGNAL: + \assert(\is_int($watcher->value)); + + if (!isset($this->signalWatchers[$watcher->value])) { + if (!@\pcntl_signal($watcher->value, $this->callableFromInstanceMethod('handleSignal'))) { + $message = "Failed to register signal handler"; + if ($error = \error_get_last()) { + $message .= \sprintf("; Errno: %d; %s", $error["type"], $error["message"]); + } + throw new \Error($message); + } + } + + $this->signalWatchers[$watcher->value][$watcher->id] = $watcher; + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function deactivate(Watcher $watcher) + { + switch ($watcher->type) { + case Watcher::READABLE: + $streamId = (int) $watcher->value; + unset($this->readWatchers[$streamId][$watcher->id]); + if (empty($this->readWatchers[$streamId])) { + unset($this->readWatchers[$streamId], $this->readStreams[$streamId]); + } + break; + + case Watcher::WRITABLE: + $streamId = (int) $watcher->value; + unset($this->writeWatchers[$streamId][$watcher->id]); + if (empty($this->writeWatchers[$streamId])) { + unset($this->writeWatchers[$streamId], $this->writeStreams[$streamId]); + } + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + $this->timerQueue->remove($watcher); + break; + + case Watcher::SIGNAL: + \assert(\is_int($watcher->value)); + + if (isset($this->signalWatchers[$watcher->value])) { + unset($this->signalWatchers[$watcher->value][$watcher->id]); + + if (empty($this->signalWatchers[$watcher->value])) { + unset($this->signalWatchers[$watcher->value]); + @\pcntl_signal($watcher->value, \SIG_DFL); + } + } + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } + + /** + * @param resource[] $read + * @param resource[] $write + * @param int $timeout + * + * @return void + */ + private function selectStreams(array $read, array $write, int $timeout) + { + $timeout /= self::MILLISEC_PER_SEC; + + if (!empty($read) || !empty($write)) { // Use stream_select() if there are any streams in the loop. + if ($timeout >= 0) { + $seconds = (int) $timeout; + $microseconds = (int) (($timeout - $seconds) * self::MICROSEC_PER_SEC); + } else { + $seconds = null; + $microseconds = null; + } + + // Failed connection attempts are indicated via except on Windows + // @link https://github.com/reactphp/event-loop/blob/8bd064ce23c26c4decf186c2a5a818c9a8209eb0/src/StreamSelectLoop.php#L279-L287 + // @link https://docs.microsoft.com/de-de/windows/win32/api/winsock2/nf-winsock2-select + $except = null; + if (\DIRECTORY_SEPARATOR === '\\') { + $except = $write; + } + + \set_error_handler($this->streamSelectErrorHandler); + + try { + $result = \stream_select($read, $write, $except, $seconds, $microseconds); + } finally { + \restore_error_handler(); + } + + if ($this->streamSelectIgnoreResult || $result === 0) { + $this->streamSelectIgnoreResult = false; + return; + } + + if (!$result) { + $this->error(new \Exception('Unknown error during stream_select')); + return; + } + + foreach ($read as $stream) { + $streamId = (int) $stream; + if (!isset($this->readWatchers[$streamId])) { + continue; // All read watchers disabled. + } + + foreach ($this->readWatchers[$streamId] as $watcher) { + if (!isset($this->readWatchers[$streamId][$watcher->id])) { + continue; // Watcher disabled by another IO watcher. + } + + try { + $result = ($watcher->callback)($watcher->id, $stream, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + } + + \assert(\is_array($write)); // See https://github.com/vimeo/psalm/issues/3036 + + if ($except) { + foreach ($except as $key => $socket) { + $write[$key] = $socket; + } + } + + foreach ($write as $stream) { + $streamId = (int) $stream; + if (!isset($this->writeWatchers[$streamId])) { + continue; // All write watchers disabled. + } + + foreach ($this->writeWatchers[$streamId] as $watcher) { + if (!isset($this->writeWatchers[$streamId][$watcher->id])) { + continue; // Watcher disabled by another IO watcher. + } + + try { + $result = ($watcher->callback)($watcher->id, $stream, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + } + + return; + } + + if ($timeout < 0) { // Only signal watchers are enabled, so sleep indefinitely. + \usleep(\PHP_INT_MAX); + return; + } + + if ($timeout > 0) { // Sleep until next timer expires. + \usleep((int) ($timeout * self::MICROSEC_PER_SEC)); + } + } + + /** + * @return int Milliseconds until next timer expires or -1 if there are no pending times. + */ + private function getTimeout(): int + { + $expiration = $this->timerQueue->peek(); + + if ($expiration === null) { + return -1; + } + + $expiration -= getCurrentTime() - $this->nowOffset; + + return $expiration > 0 ? $expiration : 0; + } + + /** + * @param int $signo + * + * @return void + */ + private function handleSignal(int $signo) + { + foreach ($this->signalWatchers[$signo] as $watcher) { + if (!isset($this->signalWatchers[$signo][$watcher->id])) { + continue; + } + + try { + $result = ($watcher->callback)($watcher->id, $signo, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + } +} diff --git a/vendor/amphp/amp/lib/Loop/TracingDriver.php b/vendor/amphp/amp/lib/Loop/TracingDriver.php new file mode 100644 index 00000000..7b787548 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/TracingDriver.php @@ -0,0 +1,251 @@ +driver = $driver; + } + + public function run() + { + $this->driver->run(); + } + + public function stop() + { + $this->driver->stop(); + } + + public function defer(callable $callback, $data = null): string + { + $id = $this->driver->defer(function (...$args) use ($callback) { + $this->cancel($args[0]); + return $callback(...$args); + }, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function delay(int $delay, callable $callback, $data = null): string + { + $id = $this->driver->delay($delay, function (...$args) use ($callback) { + $this->cancel($args[0]); + return $callback(...$args); + }, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function repeat(int $interval, callable $callback, $data = null): string + { + $id = $this->driver->repeat($interval, $callback, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function onReadable($stream, callable $callback, $data = null): string + { + $id = $this->driver->onReadable($stream, $callback, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function onWritable($stream, callable $callback, $data = null): string + { + $id = $this->driver->onWritable($stream, $callback, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function onSignal(int $signo, callable $callback, $data = null): string + { + $id = $this->driver->onSignal($signo, $callback, $data); + + $this->creationTraces[$id] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + $this->enabledWatchers[$id] = true; + + return $id; + } + + public function enable(string $watcherId) + { + try { + $this->driver->enable($watcherId); + $this->enabledWatchers[$watcherId] = true; + } catch (InvalidWatcherError $e) { + throw new InvalidWatcherError( + $watcherId, + $e->getMessage() . "\r\n\r\n" . $this->getTraces($watcherId) + ); + } + } + + public function cancel(string $watcherId) + { + $this->driver->cancel($watcherId); + + if (!isset($this->cancelTraces[$watcherId])) { + $this->cancelTraces[$watcherId] = formatStacktrace(\debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS)); + } + + unset($this->enabledWatchers[$watcherId], $this->unreferencedWatchers[$watcherId]); + } + + public function disable(string $watcherId) + { + $this->driver->disable($watcherId); + unset($this->enabledWatchers[$watcherId]); + } + + public function reference(string $watcherId) + { + try { + $this->driver->reference($watcherId); + unset($this->unreferencedWatchers[$watcherId]); + } catch (InvalidWatcherError $e) { + throw new InvalidWatcherError( + $watcherId, + $e->getMessage() . "\r\n\r\n" . $this->getTraces($watcherId) + ); + } + } + + public function unreference(string $watcherId) + { + $this->driver->unreference($watcherId); + $this->unreferencedWatchers[$watcherId] = true; + } + + public function setErrorHandler(callable $callback = null) + { + return $this->driver->setErrorHandler($callback); + } + + /** @inheritdoc */ + public function getHandle() + { + $this->driver->getHandle(); + } + + public function dump(): string + { + $dump = "Enabled, referenced watchers keeping the loop running: "; + + foreach ($this->enabledWatchers as $watcher => $_) { + if (isset($this->unreferencedWatchers[$watcher])) { + continue; + } + + $dump .= "Watcher ID: " . $watcher . "\r\n"; + $dump .= $this->getCreationTrace($watcher); + $dump .= "\r\n\r\n"; + } + + return \rtrim($dump); + } + + public function getInfo(): array + { + return $this->driver->getInfo(); + } + + public function __debugInfo() + { + return $this->driver->__debugInfo(); + } + + public function now(): int + { + return $this->driver->now(); + } + + protected function error(\Throwable $exception) + { + $this->driver->error($exception); + } + + /** + * @inheritdoc + * + * @return void + */ + protected function activate(array $watchers) + { + // nothing to do in a decorator + } + + /** + * @inheritdoc + * + * @return void + */ + protected function dispatch(bool $blocking) + { + // nothing to do in a decorator + } + + /** + * @inheritdoc + * + * @return void + */ + protected function deactivate(Watcher $watcher) + { + // nothing to do in a decorator + } + + private function getTraces(string $watcherId): string + { + return "Creation Trace:\r\n" . $this->getCreationTrace($watcherId) . "\r\n\r\n" . + "Cancellation Trace:\r\n" . $this->getCancelTrace($watcherId); + } + + private function getCreationTrace(string $watcher): string + { + if (!isset($this->creationTraces[$watcher])) { + return 'No creation trace, yet.'; + } + + return $this->creationTraces[$watcher]; + } + + private function getCancelTrace(string $watcher): string + { + if (!isset($this->cancelTraces[$watcher])) { + return 'No cancellation trace, yet.'; + } + + return $this->cancelTraces[$watcher]; + } +} diff --git a/vendor/amphp/amp/lib/Loop/UnsupportedFeatureException.php b/vendor/amphp/amp/lib/Loop/UnsupportedFeatureException.php new file mode 100644 index 00000000..e767cbe1 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/UnsupportedFeatureException.php @@ -0,0 +1,12 @@ +handle = \uv_loop_new(); + + /** + * @param $event + * @param $status + * @param $events + * @param $resource + * + * @return void + */ + $this->ioCallback = function ($event, $status, $events, $resource) { + $watchers = $this->watchers[(int) $event]; + + switch ($status) { + case 0: // OK + break; + + default: // Invoke the callback on errors, as this matches behavior with other loop back-ends. + // Re-enable watcher as libuv disables the watcher on non-zero status. + $flags = 0; + foreach ($watchers as $watcher) { + $flags |= $watcher->enabled ? $watcher->type : 0; + } + \uv_poll_start($event, $flags, $this->ioCallback); + break; + } + + foreach ($watchers as $watcher) { + // $events is OR'ed with 4 to trigger watcher if no events are indicated (0) or on UV_DISCONNECT (4). + // http://docs.libuv.org/en/v1.x/poll.html + if (!($watcher->enabled && ($watcher->type & $events || ($events | 4) === 4))) { + continue; + } + + try { + $result = ($watcher->callback)($watcher->id, $resource, $watcher->data); + + if ($result === null) { + continue; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + } + }; + + /** + * @param $event + * + * @return void + */ + $this->timerCallback = function ($event) { + $watcher = $this->watchers[(int) $event][0]; + + if ($watcher->type & Watcher::DELAY) { + unset($this->events[$watcher->id], $this->watchers[(int) $event]); // Avoid call to uv_is_active(). + $this->cancel($watcher->id); // Remove reference to watcher in parent. + } elseif ($watcher->value === 0) { + // Disable and re-enable so it's not executed repeatedly in the same tick + // See https://github.com/amphp/amp/issues/131 + $this->disable($watcher->id); + $this->enable($watcher->id); + } + + try { + $result = ($watcher->callback)($watcher->id, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + + /** + * @param $event + * @param $signo + * + * @return void + */ + $this->signalCallback = function ($event, $signo) { + $watcher = $this->watchers[(int) $event][0]; + + try { + $result = ($watcher->callback)($watcher->id, $signo, $watcher->data); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + rethrow($result); + } + } catch (\Throwable $exception) { + $this->error($exception); + } + }; + } + + /** + * {@inheritdoc} + */ + public function cancel(string $watcherId) + { + parent::cancel($watcherId); + + if (!isset($this->events[$watcherId])) { + return; + } + + $event = $this->events[$watcherId]; + $eventId = (int) $event; + + if (isset($this->watchers[$eventId][0])) { // All except IO watchers. + unset($this->watchers[$eventId]); + } elseif (isset($this->watchers[$eventId][$watcherId])) { + $watcher = $this->watchers[$eventId][$watcherId]; + unset($this->watchers[$eventId][$watcherId]); + + if (empty($this->watchers[$eventId])) { + unset($this->watchers[$eventId], $this->streams[(int) $watcher->value]); + } + } + + unset($this->events[$watcherId]); + } + + public static function isSupported(): bool + { + return \extension_loaded("uv"); + } + + /** + * {@inheritdoc} + */ + public function now(): int + { + \uv_update_time($this->handle); + + /** @psalm-suppress TooManyArguments */ + return \uv_now($this->handle); + } + + /** + * {@inheritdoc} + */ + public function getHandle() + { + return $this->handle; + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function dispatch(bool $blocking) + { + /** @psalm-suppress TooManyArguments */ + \uv_run($this->handle, $blocking ? \UV::RUN_ONCE : \UV::RUN_NOWAIT); + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function activate(array $watchers) + { + $now = $this->now(); + + foreach ($watchers as $watcher) { + $id = $watcher->id; + + switch ($watcher->type) { + case Watcher::READABLE: + case Watcher::WRITABLE: + \assert(\is_resource($watcher->value)); + + $streamId = (int) $watcher->value; + + if (isset($this->streams[$streamId])) { + $event = $this->streams[$streamId]; + } elseif (isset($this->events[$id])) { + $event = $this->streams[$streamId] = $this->events[$id]; + } else { + /** @psalm-suppress UndefinedFunction */ + $event = $this->streams[$streamId] = \uv_poll_init_socket($this->handle, $watcher->value); + } + + $eventId = (int) $event; + $this->events[$id] = $event; + $this->watchers[$eventId][$id] = $watcher; + + $flags = 0; + foreach ($this->watchers[$eventId] as $w) { + $flags |= $w->enabled ? $w->type : 0; + } + \uv_poll_start($event, $flags, $this->ioCallback); + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + \assert(\is_int($watcher->value)); + + if (isset($this->events[$id])) { + $event = $this->events[$id]; + } else { + $event = $this->events[$id] = \uv_timer_init($this->handle); + } + + $this->watchers[(int) $event] = [$watcher]; + + \uv_timer_start( + $event, + \max(0, $watcher->expiration - $now), + ($watcher->type & Watcher::REPEAT) ? $watcher->value : 0, + $this->timerCallback + ); + break; + + case Watcher::SIGNAL: + \assert(\is_int($watcher->value)); + + if (isset($this->events[$id])) { + $event = $this->events[$id]; + } else { + /** @psalm-suppress UndefinedFunction */ + $event = $this->events[$id] = \uv_signal_init($this->handle); + } + + $this->watchers[(int) $event] = [$watcher]; + + /** @psalm-suppress UndefinedFunction */ + \uv_signal_start($event, $this->signalCallback, $watcher->value); + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } + } + + /** + * {@inheritdoc} + * + * @return void + */ + protected function deactivate(Watcher $watcher) + { + $id = $watcher->id; + + if (!isset($this->events[$id])) { + return; + } + + $event = $this->events[$id]; + + if (!\uv_is_active($event)) { + return; + } + + switch ($watcher->type) { + case Watcher::READABLE: + case Watcher::WRITABLE: + $flags = 0; + foreach ($this->watchers[(int) $event] as $w) { + $flags |= $w->enabled ? $w->type : 0; + } + + if ($flags) { + \uv_poll_start($event, $flags, $this->ioCallback); + } else { + \uv_poll_stop($event); + } + break; + + case Watcher::DELAY: + case Watcher::REPEAT: + \uv_timer_stop($event); + break; + + case Watcher::SIGNAL: + \uv_signal_stop($event); + break; + + default: + // @codeCoverageIgnoreStart + throw new \Error("Unknown watcher type"); + // @codeCoverageIgnoreEnd + } + } +} diff --git a/vendor/amphp/amp/lib/Loop/Watcher.php b/vendor/amphp/amp/lib/Loop/Watcher.php new file mode 100644 index 00000000..4d16f9b9 --- /dev/null +++ b/vendor/amphp/amp/lib/Loop/Watcher.php @@ -0,0 +1,57 @@ +reasons = $reasons; + } + + /** + * @return \Throwable[] + */ + public function getReasons(): array + { + return $this->reasons; + } +} diff --git a/vendor/amphp/amp/lib/NullCancellationToken.php b/vendor/amphp/amp/lib/NullCancellationToken.php new file mode 100644 index 00000000..66faeba1 --- /dev/null +++ b/vendor/amphp/amp/lib/NullCancellationToken.php @@ -0,0 +1,53 @@ +throwIfRequested(); + * } + * ``` + * + * potentially multiple times, it allows writing + * + * ```php + * $token = $token ?? new NullCancellationToken; + * + * // ... + * + * $token->throwIfRequested(); + * ``` + * + * instead. + */ +final class NullCancellationToken implements CancellationToken +{ + /** @inheritdoc */ + public function subscribe(callable $callback): string + { + return "null-token"; + } + + /** @inheritdoc */ + public function unsubscribe(string $id) + { + // nothing to do + } + + /** @inheritdoc */ + public function isRequested(): bool + { + return false; + } + + /** @inheritdoc */ + public function throwIfRequested() + { + // nothing to do + } +} diff --git a/vendor/amphp/amp/lib/Producer.php b/vendor/amphp/amp/lib/Producer.php new file mode 100644 index 00000000..35b88c91 --- /dev/null +++ b/vendor/amphp/amp/lib/Producer.php @@ -0,0 +1,43 @@ + + */ +final class Producer implements Iterator +{ + /** + * @use Internal\Producer + */ + use CallableMaker, Internal\Producer; + + /** + * @param callable(callable(TValue):Promise):\Generator $producer + * + * @throws \Error Thrown if the callable does not return a Generator. + */ + public function __construct(callable $producer) + { + $result = $producer($this->callableFromInstanceMethod("emit")); + + if (!$result instanceof \Generator) { + throw new \Error("The callable did not return a Generator"); + } + + $coroutine = new Coroutine($result); + $coroutine->onResolve(function ($exception) { + if ($this->complete) { + return; + } + + if ($exception) { + $this->fail($exception); + return; + } + + $this->complete(); + }); + } +} diff --git a/vendor/amphp/amp/lib/Promise.php b/vendor/amphp/amp/lib/Promise.php new file mode 100644 index 00000000..2f7e824e --- /dev/null +++ b/vendor/amphp/amp/lib/Promise.php @@ -0,0 +1,37 @@ +, mixed, + * mixed>|null) | callable(\Throwable|null, mixed): void $onResolved + * + * @return void + */ + public function onResolve(callable $onResolved); +} diff --git a/vendor/amphp/amp/lib/Struct.php b/vendor/amphp/amp/lib/Struct.php new file mode 100644 index 00000000..0cb2563c --- /dev/null +++ b/vendor/amphp/amp/lib/Struct.php @@ -0,0 +1,78 @@ +generateStructPropertyError($property) + ); + } + + /** + * @param string $property + * @param mixed $value + * + * @psalm-return no-return + */ + public function __set(string $property, $value) + { + throw new \Error( + $this->generateStructPropertyError($property) + ); + } + + private function generateStructPropertyError(string $property): string + { + $suggestion = $this->suggestPropertyName($property); + $suggestStr = ($suggestion == "") ? "" : " ... did you mean \"{$suggestion}?\""; + + return \sprintf( + "%s property \"%s\" does not exist%s", + \str_replace("\0", "@", \get_class($this)), // Handle anonymous class names. + $property, + $suggestStr + ); + } + + private function suggestPropertyName(string $badProperty): string + { + $badProperty = \strtolower($badProperty); + $bestMatch = ""; + $bestMatchPercentage = 0; + + /** @psalm-suppress RawObjectIteration */ + foreach ($this as $property => $value) { + // Never suggest properties that begin with an underscore + if ($property[0] === "_") { + continue; + } + \similar_text($badProperty, \strtolower($property), $byRefPercentage); + if ($byRefPercentage > $bestMatchPercentage) { + $bestMatchPercentage = $byRefPercentage; + $bestMatch = $property; + } + } + + return ($bestMatchPercentage >= $this->__propertySuggestThreshold) ? $bestMatch : ""; + } +} diff --git a/vendor/amphp/amp/lib/Success.php b/vendor/amphp/amp/lib/Success.php new file mode 100644 index 00000000..1817c5a2 --- /dev/null +++ b/vendor/amphp/amp/lib/Success.php @@ -0,0 +1,60 @@ + + */ +final class Success implements Promise +{ + /** @var mixed */ + private $value; + + /** + * @param mixed $value Anything other than a Promise object. + * + * @psalm-param TValue $value + * + * @throws \Error If a promise is given as the value. + */ + public function __construct($value = null) + { + if ($value instanceof Promise || $value instanceof ReactPromise) { + throw new \Error("Cannot use a promise as success value"); + } + + $this->value = $value; + } + + /** + * {@inheritdoc} + */ + public function onResolve(callable $onResolved) + { + try { + $result = $onResolved(null, $this->value); + + if ($result === null) { + return; + } + + if ($result instanceof \Generator) { + $result = new Coroutine($result); + } + + if ($result instanceof Promise || $result instanceof ReactPromise) { + Promise\rethrow($result); + } + } catch (\Throwable $exception) { + Loop::defer(static function () use ($exception) { + throw $exception; + }); + } + } +} diff --git a/vendor/amphp/amp/lib/TimeoutCancellationToken.php b/vendor/amphp/amp/lib/TimeoutCancellationToken.php new file mode 100644 index 00000000..4c46ceb0 --- /dev/null +++ b/vendor/amphp/amp/lib/TimeoutCancellationToken.php @@ -0,0 +1,75 @@ +token = $source->getToken(); + + $trace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS); + $this->watcher = Loop::delay($timeout, static function () use ($source, $message, $trace) { + $trace = formatStacktrace($trace); + $source->cancel(new TimeoutException("$message\r\nTimeoutCancellationToken was created here:\r\n$trace")); + }); + + Loop::unreference($this->watcher); + } + + /** + * Cancels the delay watcher. + */ + public function __destruct() + { + Loop::cancel($this->watcher); + } + + /** + * {@inheritdoc} + */ + public function subscribe(callable $callback): string + { + return $this->token->subscribe($callback); + } + + /** + * {@inheritdoc} + */ + public function unsubscribe(string $id) + { + $this->token->unsubscribe($id); + } + + /** + * {@inheritdoc} + */ + public function isRequested(): bool + { + return $this->token->isRequested(); + } + + /** + * {@inheritdoc} + */ + public function throwIfRequested() + { + $this->token->throwIfRequested(); + } +} diff --git a/vendor/amphp/amp/lib/TimeoutException.php b/vendor/amphp/amp/lib/TimeoutException.php new file mode 100644 index 00000000..dc7fba9e --- /dev/null +++ b/vendor/amphp/amp/lib/TimeoutException.php @@ -0,0 +1,19 @@ + + * @template T as TReturn|Promise|\Generator + * + * @formatter:off + * + * @param callable(...mixed): T $callback + * + * @return callable + * @psalm-return (T is Promise ? (callable(mixed...): Promise) : (T is \Generator ? (TGenerator is Promise ? (callable(mixed...): Promise) : (callable(mixed...): Promise)) : (callable(mixed...): Promise))) + * + * @formatter:on + * + * @see asyncCoroutine() + * + * @psalm-suppress InvalidReturnType + */ + function coroutine(callable $callback): callable + { + /** @psalm-suppress InvalidReturnStatement */ + return static function (...$args) use ($callback): Promise { + return call($callback, ...$args); + }; + } + + /** + * Returns a new function that wraps $callback in a promise/coroutine-aware function that automatically runs + * Generators as coroutines. The returned function always returns void when invoked. Errors are forwarded to the + * loop's error handler using `Amp\Promise\rethrow()`. + * + * Use this function to create a coroutine-aware callable for a non-promise-aware callback caller. + * + * @param callable(...mixed): mixed $callback + * + * @return callable + * @psalm-return callable(mixed...): void + * + * @see coroutine() + */ + function asyncCoroutine(callable $callback): callable + { + return static function (...$args) use ($callback) { + Promise\rethrow(call($callback, ...$args)); + }; + } + + /** + * Calls the given function, always returning a promise. If the function returns a Generator, it will be run as a + * coroutine. If the function throws, a failed promise will be returned. + * + * @template TReturn + * @template TPromise + * @template TGeneratorReturn + * @template TGeneratorPromise + * + * @template TGenerator as TGeneratorReturn|Promise + * @template T as TReturn|Promise|\Generator + * + * @formatter:off + * + * @param callable(...mixed): T $callback + * @param mixed ...$args Arguments to pass to the function. + * + * @return Promise + * @psalm-return (T is Promise ? Promise : (T is \Generator ? (TGenerator is Promise ? Promise : Promise) : Promise)) + * + * @formatter:on + */ + function call(callable $callback, ...$args): Promise + { + try { + $result = $callback(...$args); + } catch (\Throwable $exception) { + return new Failure($exception); + } + + if ($result instanceof \Generator) { + return new Coroutine($result); + } + + if ($result instanceof Promise) { + return $result; + } + + if ($result instanceof ReactPromise) { + return Promise\adapt($result); + } + + return new Success($result); + } + + /** + * Calls the given function. If the function returns a Generator, it will be run as a coroutine. If the function + * throws or returns a failing promise, the failure is forwarded to the loop error handler. + * + * @param callable(...mixed): mixed $callback + * @param mixed ...$args Arguments to pass to the function. + * + * @return void + */ + function asyncCall(callable $callback, ...$args) + { + Promise\rethrow(call($callback, ...$args)); + } + + /** + * Sleeps for the specified number of milliseconds. + * + * @param int $milliseconds + * + * @return Delayed + */ + function delay(int $milliseconds): Delayed + { + return new Delayed($milliseconds); + } + + /** + * Returns the current time relative to an arbitrary point in time. + * + * @return int Time in milliseconds. + */ + function getCurrentTime(): int + { + return Internal\getCurrentTime(); + } +} + +namespace Amp\Promise +{ + + use Amp\Deferred; + use Amp\Loop; + use Amp\MultiReasonException; + use Amp\Promise; + use Amp\Success; + use Amp\TimeoutException; + use React\Promise\PromiseInterface as ReactPromise; + use function Amp\call; + use function Amp\Internal\createTypeError; + + /** + * Registers a callback that will forward the failure reason to the event loop's error handler if the promise fails. + * + * Use this function if you neither return the promise nor handle a possible error yourself to prevent errors from + * going entirely unnoticed. + * + * @param Promise|ReactPromise $promise Promise to register the handler on. + * + * @return void + * @throws \TypeError If $promise is not an instance of \Amp\Promise or \React\Promise\PromiseInterface. + * + */ + function rethrow($promise) + { + if (!$promise instanceof Promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } else { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + } + + $promise->onResolve(static function ($exception) { + if ($exception) { + throw $exception; + } + }); + } + + /** + * Runs the event loop until the promise is resolved. Should not be called within a running event loop. + * + * Use this function only in synchronous contexts to wait for an asynchronous operation. Use coroutines and yield to + * await promise resolution in a fully asynchronous application instead. + * + * @template TPromise + * @template T as Promise|ReactPromise + * + * @param Promise|ReactPromise $promise Promise to wait for. + * + * @return mixed Promise success value. + * + * @psalm-param T $promise + * @psalm-return (T is Promise ? TPromise : mixed) + * + * @throws \TypeError If $promise is not an instance of \Amp\Promise or \React\Promise\PromiseInterface. + * @throws \Error If the event loop stopped without the $promise being resolved. + * @throws \Throwable Promise failure reason. + */ + function wait($promise) + { + if (!$promise instanceof Promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } else { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + } + + $resolved = false; + + try { + Loop::run(function () use (&$resolved, &$value, &$exception, $promise) { + $promise->onResolve(function ($e, $v) use (&$resolved, &$value, &$exception) { + Loop::stop(); + $resolved = true; + $exception = $e; + $value = $v; + }); + }); + } catch (\Throwable $throwable) { + throw new \Error("Loop exceptionally stopped without resolving the promise", 0, $throwable); + } + + if (!$resolved) { + throw new \Error("Loop stopped without resolving the promise"); + } + + if ($exception) { + throw $exception; + } + + return $value; + } + + /** + * Creates an artificial timeout for any `Promise`. + * + * If the timeout expires before the promise is resolved, the returned promise fails with an instance of + * `Amp\TimeoutException`. + * + * @template TReturn + * + * @param Promise|ReactPromise $promise Promise to which the timeout is applied. + * @param int $timeout Timeout in milliseconds. + * + * @return Promise + * + * @throws \TypeError If $promise is not an instance of \Amp\Promise or \React\Promise\PromiseInterface. + */ + function timeout($promise, int $timeout): Promise + { + if (!$promise instanceof Promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } else { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + } + + $deferred = new Deferred; + + $watcher = Loop::delay($timeout, static function () use (&$deferred) { + $temp = $deferred; // prevent double resolve + $deferred = null; + $temp->fail(new TimeoutException); + }); + Loop::unreference($watcher); + + $promise->onResolve(function () use (&$deferred, $promise, $watcher) { + if ($deferred !== null) { + Loop::cancel($watcher); + $deferred->resolve($promise); + } + }); + + return $deferred->promise(); + } + + /** + * Creates an artificial timeout for any `Promise`. + * + * If the promise is resolved before the timeout expires, the result is returned + * + * If the timeout expires before the promise is resolved, a default value is returned + * + * @template TReturn + * + * @param Promise|ReactPromise $promise Promise to which the timeout is applied. + * @param int $timeout Timeout in milliseconds. + * @param TReturn $default + * + * @return Promise + * + * @throws \TypeError If $promise is not an instance of \Amp\Promise or \React\Promise\PromiseInterface. + */ + function timeoutWithDefault($promise, int $timeout, $default = null): Promise + { + $promise = timeout($promise, $timeout); + + return call(static function () use ($promise, $default) { + try { + return yield $promise; + } catch (TimeoutException $exception) { + return $default; + } + }); + } + + /** + * Adapts any object with a done(callable $onFulfilled, callable $onRejected) or then(callable $onFulfilled, + * callable $onRejected) method to a promise usable by components depending on placeholders implementing + * \AsyncInterop\Promise. + * + * @param object $promise Object with a done() or then() method. + * + * @return Promise Promise resolved by the $thenable object. + * + * @throws \Error If the provided object does not have a then() method. + */ + function adapt($promise): Promise + { + if (!\is_object($promise)) { + throw new \Error("Object must be provided"); + } + + $deferred = new Deferred; + + if (\method_exists($promise, 'done')) { + $promise->done([$deferred, 'resolve'], [$deferred, 'fail']); + } elseif (\method_exists($promise, 'then')) { + $promise->then([$deferred, 'resolve'], [$deferred, 'fail']); + } else { + throw new \Error("Object must have a 'then' or 'done' method"); + } + + return $deferred->promise(); + } + + /** + * Returns a promise that is resolved when all promises are resolved. The returned promise will not fail. + * Returned promise succeeds with a two-item array delineating successful and failed promise results, + * with keys identical and corresponding to the original given array. + * + * This function is the same as some() with the notable exception that it will never fail even + * if all promises in the array resolve unsuccessfully. + * + * @template TValue + * + * @param Promise[]|ReactPromise[] $promises + * + * @return Promise + * + * @throws \Error If a non-Promise is in the array. + */ + function any(array $promises): Promise + { + return some($promises, 0); + } + + /** + * Returns a promise that succeeds when all promises succeed, and fails if any promise fails. Returned + * promise succeeds with an array of values used to succeed each contained promise, with keys corresponding to + * the array of promises. + * + * @param Promise[]|ReactPromise[] $promises Array of only promises. + * + * @return Promise + * + * @throws \Error If a non-Promise is in the array. + * + * @template TValue + * + * @psalm-param array|ReactPromise> $promises + * @psalm-assert array|ReactPromise> $promises $promises + * @psalm-return Promise> + */ + function all(array $promises): Promise + { + if (empty($promises)) { + return new Success([]); + } + + $deferred = new Deferred; + $result = $deferred->promise(); + + $pending = \count($promises); + $values = []; + + foreach ($promises as $key => $promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } elseif (!$promise instanceof Promise) { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + + $values[$key] = null; // add entry to array to preserve order + $promise->onResolve(function ($exception, $value) use (&$deferred, &$values, &$pending, $key) { + if ($pending === 0) { + return; + } + + if ($exception) { + $pending = 0; + $deferred->fail($exception); + $deferred = null; + return; + } + + $values[$key] = $value; + if (0 === --$pending) { + $deferred->resolve($values); + } + }); + } + + return $result; + } + + /** + * Returns a promise that succeeds when the first promise succeeds, and fails only if all promises fail. + * + * @template TValue + * + * @param Promise[]|ReactPromise[] $promises Array of only promises. + * + * @return Promise + * + * @throws \Error If the array is empty or a non-Promise is in the array. + */ + function first(array $promises): Promise + { + if (empty($promises)) { + throw new \Error("No promises provided"); + } + + $deferred = new Deferred; + $result = $deferred->promise(); + + $pending = \count($promises); + $exceptions = []; + + foreach ($promises as $key => $promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } elseif (!$promise instanceof Promise) { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + + $exceptions[$key] = null; // add entry to array to preserve order + $promise->onResolve(function ($error, $value) use (&$deferred, &$exceptions, &$pending, $key) { + if ($pending === 0) { + return; + } + + if (!$error) { + $pending = 0; + $deferred->resolve($value); + $deferred = null; + return; + } + + $exceptions[$key] = $error; + if (0 === --$pending) { + $deferred->fail(new MultiReasonException($exceptions)); + } + }); + } + + return $result; + } + + /** + * Resolves with a two-item array delineating successful and failed Promise results. + * + * The returned promise will only fail if the given number of required promises fail. + * + * @template TValue + * + * @param Promise[]|ReactPromise[] $promises Array of only promises. + * @param int $required Number of promises that must succeed for the + * returned promise to succeed. + * + * @return Promise + * + * @throws \Error If a non-Promise is in the array. + */ + function some(array $promises, int $required = 1): Promise + { + if ($required < 0) { + throw new \Error("Number of promises required must be non-negative"); + } + + $pending = \count($promises); + + if ($required > $pending) { + throw new \Error("Too few promises provided"); + } + + if (empty($promises)) { + return new Success([[], []]); + } + + $deferred = new Deferred; + $result = $deferred->promise(); + $values = []; + $exceptions = []; + + foreach ($promises as $key => $promise) { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } elseif (!$promise instanceof Promise) { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + + $values[$key] = $exceptions[$key] = null; // add entry to arrays to preserve order + $promise->onResolve(static function ($exception, $value) use ( + &$values, + &$exceptions, + &$pending, + $key, + $required, + $deferred + ) { + if ($exception) { + $exceptions[$key] = $exception; + unset($values[$key]); + } else { + $values[$key] = $value; + unset($exceptions[$key]); + } + + if (0 === --$pending) { + if (\count($values) < $required) { + $deferred->fail(new MultiReasonException($exceptions)); + } else { + $deferred->resolve([$exceptions, $values]); + } + } + }); + } + + return $result; + } + + /** + * Wraps a promise into another promise, altering the exception or result. + * + * @param Promise|ReactPromise $promise + * @param callable $callback + * + * @return Promise + */ + function wrap($promise, callable $callback): Promise + { + if ($promise instanceof ReactPromise) { + $promise = adapt($promise); + } elseif (!$promise instanceof Promise) { + throw createTypeError([Promise::class, ReactPromise::class], $promise); + } + + $deferred = new Deferred(); + + $promise->onResolve(static function (\Throwable $exception = null, $result) use ($deferred, $callback) { + try { + $result = $callback($exception, $result); + } catch (\Throwable $exception) { + $deferred->fail($exception); + + return; + } + + $deferred->resolve($result); + }); + + return $deferred->promise(); + } +} + +namespace Amp\Iterator +{ + + use Amp\Delayed; + use Amp\Emitter; + use Amp\Iterator; + use Amp\Producer; + use Amp\Promise; + use function Amp\call; + use function Amp\coroutine; + use function Amp\Internal\createTypeError; + + /** + * Creates an iterator from the given iterable, emitting the each value. The iterable may contain promises. If any + * promise fails, the iterator will fail with the same reason. + * + * @param array|\Traversable $iterable Elements to emit. + * @param int $delay Delay between element emissions in milliseconds. + * + * @return Iterator + * + * @throws \TypeError If the argument is not an array or instance of \Traversable. + */ + function fromIterable(/* iterable */ + $iterable, + int $delay = 0 + ): Iterator { + if (!$iterable instanceof \Traversable && !\is_array($iterable)) { + throw createTypeError(["array", "Traversable"], $iterable); + } + + if ($delay) { + return new Producer(static function (callable $emit) use ($iterable, $delay) { + foreach ($iterable as $value) { + yield new Delayed($delay); + yield $emit($value); + } + }); + } + + return new Producer(static function (callable $emit) use ($iterable) { + foreach ($iterable as $value) { + yield $emit($value); + } + }); + } + + /** + * @template TValue + * @template TReturn + * + * @param Iterator $iterator + * @param callable (TValue $value): TReturn $onEmit + * + * @return Iterator + */ + function map(Iterator $iterator, callable $onEmit): Iterator + { + return new Producer(static function (callable $emit) use ($iterator, $onEmit) { + while (yield $iterator->advance()) { + yield $emit($onEmit($iterator->getCurrent())); + } + }); + } + + /** + * @template TValue + * + * @param Iterator $iterator + * @param callable(TValue $value):bool $filter + * + * @return Iterator + */ + function filter(Iterator $iterator, callable $filter): Iterator + { + return new Producer(static function (callable $emit) use ($iterator, $filter) { + while (yield $iterator->advance()) { + if ($filter($iterator->getCurrent())) { + yield $emit($iterator->getCurrent()); + } + } + }); + } + + /** + * Creates an iterator that emits values emitted from any iterator in the array of iterators. + * + * @param Iterator[] $iterators + * + * @return Iterator + */ + function merge(array $iterators): Iterator + { + $emitter = new Emitter; + $result = $emitter->iterate(); + + $coroutine = coroutine(static function (Iterator $iterator) use (&$emitter) { + while ((yield $iterator->advance()) && $emitter !== null) { + yield $emitter->emit($iterator->getCurrent()); + } + }); + + $coroutines = []; + foreach ($iterators as $iterator) { + if (!$iterator instanceof Iterator) { + throw createTypeError([Iterator::class], $iterator); + } + + $coroutines[] = $coroutine($iterator); + } + + Promise\all($coroutines)->onResolve(static function ($exception) use (&$emitter) { + if ($exception) { + $emitter->fail($exception); + $emitter = null; + } else { + $emitter->complete(); + } + }); + + return $result; + } + + /** + * Concatenates the given iterators into a single iterator, emitting values from a single iterator at a time. The + * prior iterator must complete before values are emitted from any subsequent iterators. Iterators are concatenated + * in the order given (iteration order of the array). + * + * @param Iterator[] $iterators + * + * @return Iterator + */ + function concat(array $iterators): Iterator + { + foreach ($iterators as $iterator) { + if (!$iterator instanceof Iterator) { + throw createTypeError([Iterator::class], $iterator); + } + } + + $emitter = new Emitter; + $previous = []; + $promise = Promise\all($previous); + + $coroutine = coroutine(static function (Iterator $iterator, callable $emit) { + while (yield $iterator->advance()) { + yield $emit($iterator->getCurrent()); + } + }); + + foreach ($iterators as $iterator) { + $emit = coroutine(static function ($value) use ($emitter, $promise) { + static $pending = true, $failed = false; + + if ($failed) { + return; + } + + if ($pending) { + try { + yield $promise; + $pending = false; + } catch (\Throwable $exception) { + $failed = true; + return; // Prior iterator failed. + } + } + + yield $emitter->emit($value); + }); + $previous[] = $coroutine($iterator, $emit); + $promise = Promise\all($previous); + } + + $promise->onResolve(static function ($exception) use ($emitter) { + if ($exception) { + $emitter->fail($exception); + return; + } + + $emitter->complete(); + }); + + return $emitter->iterate(); + } + + /** + * Discards all remaining items and returns the number of discarded items. + * + * @template TValue + * + * @param Iterator $iterator + * + * @return Promise + * + * @psalm-param Iterator $iterator + * @psalm-return Promise + */ + function discard(Iterator $iterator): Promise + { + return call(static function () use ($iterator): \Generator { + $count = 0; + + while (yield $iterator->advance()) { + $count++; + } + + return $count; + }); + } + + /** + * Collects all items from an iterator into an array. + * + * @template TValue + * + * @param Iterator $iterator + * + * @psalm-param Iterator $iterator + * + * @return Promise + * @psalm-return Promise> + */ + function toArray(Iterator $iterator): Promise + { + return call(static function () use ($iterator) { + /** @psalm-var list $array */ + $array = []; + + while (yield $iterator->advance()) { + $array[] = $iterator->getCurrent(); + } + + return $array; + }); + } +} diff --git a/vendor/amphp/byte-stream/.github/workflows/ci.yml b/vendor/amphp/byte-stream/.github/workflows/ci.yml new file mode 100644 index 00000000..b725757f --- /dev/null +++ b/vendor/amphp/byte-stream/.github/workflows/ci.yml @@ -0,0 +1,135 @@ +name: Continuous Integration + +on: + push: null + pull_request: + branches: + - master + +jobs: + unit_tests: + strategy: + matrix: + include: + - operating-system: 'ubuntu-latest' + php-version: '7.1' + + - operating-system: 'ubuntu-latest' + php-version: '7.2' + + - operating-system: 'ubuntu-latest' + php-version: '7.3' + + - operating-system: 'ubuntu-latest' + php-version: '7.4' + + - operating-system: 'ubuntu-latest' + php-version: '8.0' + composer-flags: '--ignore-platform-req=php' + + - operating-system: 'windows-latest' + php-version: '8.0' + composer-flags: '--ignore-platform-req=php' + + - operating-system: 'macos-latest' + php-version: '8.0' + composer-flags: '--ignore-platform-req=php' + + name: PHP ${{ matrix.php-version }} on ${{ matrix.operating-system }} + + runs-on: ${{ matrix.operating-system }} + + steps: + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + + - name: Use LF line ends + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Get Composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}-${{ matrix.composer-flags }} + restore-keys: | + composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}- + composer-${{ runner.os }}-${{ matrix.php-version }}- + + - name: Install dependencies + uses: nick-invision/retry@v2 + with: + timeout_minutes: 5 + max_attempts: 5 + retry_wait_seconds: 30 + command: | + php_version=$(php -v) + composer update --optimize-autoloader --no-interaction --no-progress ${{ matrix.composer-flags }} + composer info -D + + - name: Run unit tests + run: vendor/bin/phpunit --verbose + + coding_standards: + strategy: + matrix: + include: + - operating-system: 'ubuntu-latest' + php-version: '8.0' + composer-flags: '--ignore-platform-req=php' + + name: Coding standards + runs-on: ${{ matrix.operating-system }} + + steps: + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + + - name: Use LF line ends + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Get Composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}-${{ matrix.composer-flags }} + restore-keys: | + composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}- + composer-${{ runner.os }}-${{ matrix.php-version }}- + + - name: Install dependencies + uses: nick-invision/retry@v2 + with: + timeout_minutes: 5 + max_attempts: 5 + retry_wait_seconds: 30 + command: | + php_version=$(php -v) + composer update --optimize-autoloader --no-interaction --no-progress ${{ matrix.composer-flags }} + composer info -D + + - name: Run style fixer + env: + PHP_CS_FIXER_IGNORE_ENV: 1 + run: vendor/bin/php-cs-fixer --diff --dry-run -v fix diff --git a/vendor/amphp/byte-stream/LICENSE b/vendor/amphp/byte-stream/LICENSE new file mode 100644 index 00000000..7977d674 --- /dev/null +++ b/vendor/amphp/byte-stream/LICENSE @@ -0,0 +1,22 @@ + +The MIT License (MIT) + +Copyright (c) 2016-2021 amphp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/amphp/byte-stream/composer.json b/vendor/amphp/byte-stream/composer.json new file mode 100644 index 00000000..0315674b --- /dev/null +++ b/vendor/amphp/byte-stream/composer.json @@ -0,0 +1,58 @@ +{ + "name": "amphp/byte-stream", + "homepage": "http://amphp.org/byte-stream", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "support": { + "issues": "https://github.com/amphp/byte-stream/issues", + "irc": "irc://irc.freenode.org/amphp" + }, + "keywords": [ + "stream", + "async", + "non-blocking", + "amp", + "amphp", + "io" + ], + "license": "MIT", + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "require": { + "php": ">=7.1", + "amphp/amp": "^2" + }, + "require-dev": { + "amphp/phpunit-util": "^1.4", + "phpunit/phpunit": "^6 || ^7 || ^8", + "friendsofphp/php-cs-fixer": "^2.3", + "amphp/php-cs-fixer-config": "dev-master", + "psalm/phar": "^3.11.4", + "jetbrains/phpstorm-stubs": "^2019.3" + }, + "autoload": { + "psr-4": { + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] + }, + "autoload-dev": { + "psr-4": { + "Amp\\ByteStream\\Test\\": "test" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + } +} diff --git a/vendor/amphp/byte-stream/lib/Base64/Base64DecodingInputStream.php b/vendor/amphp/byte-stream/lib/Base64/Base64DecodingInputStream.php new file mode 100644 index 00000000..294287d2 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/Base64/Base64DecodingInputStream.php @@ -0,0 +1,65 @@ +source = $source; + } + + public function read(): Promise + { + return call(function () { + if ($this->source === null) { + throw new StreamException('Failed to read stream chunk due to invalid base64 data'); + } + + $chunk = yield $this->source->read(); + if ($chunk === null) { + if ($this->buffer === null) { + return null; + } + + $chunk = \base64_decode($this->buffer, true); + if ($chunk === false) { + $this->source = null; + $this->buffer = null; + + throw new StreamException('Failed to read stream chunk due to invalid base64 data'); + } + + $this->buffer = null; + + return $chunk; + } + + $this->buffer .= $chunk; + + $length = \strlen($this->buffer); + $chunk = \base64_decode(\substr($this->buffer, 0, $length - $length % 4), true); + if ($chunk === false) { + $this->source = null; + $this->buffer = null; + + throw new StreamException('Failed to read stream chunk due to invalid base64 data'); + } + + $this->buffer = \substr($this->buffer, $length - $length % 4); + + return $chunk; + }); + } +} diff --git a/vendor/amphp/byte-stream/lib/Base64/Base64DecodingOutputStream.php b/vendor/amphp/byte-stream/lib/Base64/Base64DecodingOutputStream.php new file mode 100644 index 00000000..664d99d7 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/Base64/Base64DecodingOutputStream.php @@ -0,0 +1,55 @@ +destination = $destination; + } + + public function write(string $data): Promise + { + $this->buffer .= $data; + + $length = \strlen($this->buffer); + $chunk = \base64_decode(\substr($this->buffer, 0, $length - $length % 4), true); + if ($chunk === false) { + return new Failure(new StreamException('Invalid base64 near offset ' . $this->offset)); + } + + $this->offset += $length - $length % 4; + $this->buffer = \substr($this->buffer, $length - $length % 4); + + return $this->destination->write($chunk); + } + + public function end(string $finalData = ""): Promise + { + $this->offset += \strlen($this->buffer); + + $chunk = \base64_decode($this->buffer . $finalData, true); + if ($chunk === false) { + return new Failure(new StreamException('Invalid base64 near offset ' . $this->offset)); + } + + $this->buffer = ''; + + return $this->destination->end($chunk); + } +} diff --git a/vendor/amphp/byte-stream/lib/Base64/Base64EncodingInputStream.php b/vendor/amphp/byte-stream/lib/Base64/Base64EncodingInputStream.php new file mode 100644 index 00000000..523af9d2 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/Base64/Base64EncodingInputStream.php @@ -0,0 +1,46 @@ +source = $source; + } + + public function read(): Promise + { + return call(function () { + $chunk = yield $this->source->read(); + if ($chunk === null) { + if ($this->buffer === null) { + return null; + } + + $chunk = \base64_encode($this->buffer); + $this->buffer = null; + + return $chunk; + } + + $this->buffer .= $chunk; + + $length = \strlen($this->buffer); + $chunk = \base64_encode(\substr($this->buffer, 0, $length - $length % 3)); + $this->buffer = \substr($this->buffer, $length - $length % 3); + + return $chunk; + }); + } +} diff --git a/vendor/amphp/byte-stream/lib/Base64/Base64EncodingOutputStream.php b/vendor/amphp/byte-stream/lib/Base64/Base64EncodingOutputStream.php new file mode 100644 index 00000000..e23d6f53 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/Base64/Base64EncodingOutputStream.php @@ -0,0 +1,39 @@ +destination = $destination; + } + + public function write(string $data): Promise + { + $this->buffer .= $data; + + $length = \strlen($this->buffer); + $chunk = \base64_encode(\substr($this->buffer, 0, $length - $length % 3)); + $this->buffer = \substr($this->buffer, $length - $length % 3); + + return $this->destination->write($chunk); + } + + public function end(string $finalData = ""): Promise + { + $chunk = \base64_encode($this->buffer . $finalData); + $this->buffer = ''; + + return $this->destination->end($chunk); + } +} diff --git a/vendor/amphp/byte-stream/lib/ClosedException.php b/vendor/amphp/byte-stream/lib/ClosedException.php new file mode 100644 index 00000000..17957a86 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/ClosedException.php @@ -0,0 +1,7 @@ +contents = $contents; + } + + /** + * Reads data from the stream. + * + * @return Promise Resolves with the full contents or `null` if the stream has closed / already been consumed. + */ + public function read(): Promise + { + if ($this->contents === null) { + return new Success; + } + + $promise = new Success($this->contents); + $this->contents = null; + + return $promise; + } +} diff --git a/vendor/amphp/byte-stream/lib/InputStream.php b/vendor/amphp/byte-stream/lib/InputStream.php new file mode 100644 index 00000000..4c0b9e8f --- /dev/null +++ b/vendor/amphp/byte-stream/lib/InputStream.php @@ -0,0 +1,38 @@ +read()) !== null) { + * $buffer .= $chunk; + * } + * + * return $buffer; + * }); + * } + * ``` + */ +interface InputStream +{ + /** + * Reads data from the stream. + * + * @return Promise Resolves with a string when new data is available or `null` if the stream has closed. + * + * @psalm-return Promise + * + * @throws PendingReadError Thrown if another read operation is still pending. + */ + public function read(): Promise; +} diff --git a/vendor/amphp/byte-stream/lib/InputStreamChain.php b/vendor/amphp/byte-stream/lib/InputStreamChain.php new file mode 100644 index 00000000..d952a852 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/InputStreamChain.php @@ -0,0 +1,52 @@ +streams = $streams; + } + + /** @inheritDoc */ + public function read(): Promise + { + if ($this->reading) { + throw new PendingReadError; + } + + if (!$this->streams) { + return new Success(null); + } + + return call(function () { + $this->reading = true; + + try { + while ($this->streams) { + $chunk = yield $this->streams[0]->read(); + if ($chunk === null) { + \array_shift($this->streams); + continue; + } + + return $chunk; + } + + return null; + } finally { + $this->reading = false; + } + }); + } +} diff --git a/vendor/amphp/byte-stream/lib/IteratorStream.php b/vendor/amphp/byte-stream/lib/IteratorStream.php new file mode 100644 index 00000000..6fbe3912 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/IteratorStream.php @@ -0,0 +1,70 @@ + */ + private $iterator; + /** @var \Throwable|null */ + private $exception; + /** @var bool */ + private $pending = false; + + /** + * @psam-param Iterator $iterator + */ + public function __construct(Iterator $iterator) + { + $this->iterator = $iterator; + } + + /** @inheritdoc */ + public function read(): Promise + { + if ($this->exception) { + return new Failure($this->exception); + } + + if ($this->pending) { + throw new PendingReadError; + } + + $this->pending = true; + /** @var Deferred $deferred */ + $deferred = new Deferred; + + $this->iterator->advance()->onResolve(function ($error, $hasNextElement) use ($deferred) { + $this->pending = false; + + if ($error) { + $this->exception = $error; + $deferred->fail($error); + } elseif ($hasNextElement) { + $chunk = $this->iterator->getCurrent(); + + if (!\is_string($chunk)) { + $this->exception = new StreamException(\sprintf( + "Unexpected iterator value of type '%s', expected string", + \is_object($chunk) ? \get_class($chunk) : \gettype($chunk) + )); + + $deferred->fail($this->exception); + + return; + } + + $deferred->resolve($chunk); + } else { + $deferred->resolve(); + } + }); + + return $deferred->promise(); + } +} diff --git a/vendor/amphp/byte-stream/lib/LineReader.php b/vendor/amphp/byte-stream/lib/LineReader.php new file mode 100644 index 00000000..ed6b0a2a --- /dev/null +++ b/vendor/amphp/byte-stream/lib/LineReader.php @@ -0,0 +1,71 @@ +source = $inputStream; + $this->delimiter = $delimiter === null ? "\n" : $delimiter; + $this->lineMode = $delimiter === null; + } + + /** + * @return Promise + */ + public function readLine(): Promise + { + return call(function () { + if (false !== \strpos($this->buffer, $this->delimiter)) { + list($line, $this->buffer) = \explode($this->delimiter, $this->buffer, 2); + return $this->lineMode ? \rtrim($line, "\r") : $line; + } + + while (null !== $chunk = yield $this->source->read()) { + $this->buffer .= $chunk; + + if (false !== \strpos($this->buffer, $this->delimiter)) { + list($line, $this->buffer) = \explode($this->delimiter, $this->buffer, 2); + return $this->lineMode ? \rtrim($line, "\r") : $line; + } + } + + if ($this->buffer === "") { + return null; + } + + $line = $this->buffer; + $this->buffer = ""; + return $this->lineMode ? \rtrim($line, "\r") : $line; + }); + } + + public function getBuffer(): string + { + return $this->buffer; + } + + /** + * @return void + */ + public function clearBuffer() + { + $this->buffer = ""; + } +} diff --git a/vendor/amphp/byte-stream/lib/Message.php b/vendor/amphp/byte-stream/lib/Message.php new file mode 100644 index 00000000..33046233 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/Message.php @@ -0,0 +1,176 @@ +read()) !== null) { + * // Immediately use $chunk, reducing memory consumption since the entire message is never buffered. + * } + * + * @deprecated Use Amp\ByteStream\Payload instead. + */ +class Message implements InputStream, Promise +{ + /** @var InputStream */ + private $source; + + /** @var string */ + private $buffer = ""; + + /** @var Deferred|null */ + private $pendingRead; + + /** @var Coroutine|null */ + private $coroutine; + + /** @var bool True if onResolve() has been called. */ + private $buffering = false; + + /** @var Deferred|null */ + private $backpressure; + + /** @var bool True if the iterator has completed. */ + private $complete = false; + + /** @var \Throwable|null Used to fail future reads on failure. */ + private $error; + + /** + * @param InputStream $source An iterator that only emits strings. + */ + public function __construct(InputStream $source) + { + $this->source = $source; + } + + private function consume(): \Generator + { + while (($chunk = yield $this->source->read()) !== null) { + $buffer = $this->buffer .= $chunk; + + if ($buffer === "") { + continue; // Do not succeed reads with empty string. + } elseif ($this->pendingRead) { + $deferred = $this->pendingRead; + $this->pendingRead = null; + $this->buffer = ""; + $deferred->resolve($buffer); + $buffer = ""; // Destroy last emitted chunk to free memory. + } elseif (!$this->buffering) { + $buffer = ""; // Destroy last emitted chunk to free memory. + $this->backpressure = new Deferred; + yield $this->backpressure->promise(); + } + } + + $this->complete = true; + + if ($this->pendingRead) { + $deferred = $this->pendingRead; + $this->pendingRead = null; + $deferred->resolve($this->buffer !== "" ? $this->buffer : null); + $this->buffer = ""; + } + + return $this->buffer; + } + + /** @inheritdoc */ + final public function read(): Promise + { + if ($this->pendingRead) { + throw new PendingReadError; + } + + if ($this->coroutine === null) { + $this->coroutine = new Coroutine($this->consume()); + $this->coroutine->onResolve(function ($error) { + if ($error) { + $this->error = $error; + } + + if ($this->pendingRead) { + $deferred = $this->pendingRead; + $this->pendingRead = null; + $deferred->fail($error); + } + }); + } + + if ($this->error) { + return new Failure($this->error); + } + + if ($this->buffer !== "") { + $buffer = $this->buffer; + $this->buffer = ""; + + if ($this->backpressure) { + $backpressure = $this->backpressure; + $this->backpressure = null; + $backpressure->resolve(); + } + + return new Success($buffer); + } + + if ($this->complete) { + return new Success; + } + + $this->pendingRead = new Deferred; + return $this->pendingRead->promise(); + } + + /** @inheritdoc */ + final public function onResolve(callable $onResolved) + { + $this->buffering = true; + + if ($this->coroutine === null) { + $this->coroutine = new Coroutine($this->consume()); + } + + if ($this->backpressure) { + $backpressure = $this->backpressure; + $this->backpressure = null; + $backpressure->resolve(); + } + + $this->coroutine->onResolve($onResolved); + } + + /** + * Exposes the source input stream. + * + * This might be required to resolve a promise with an InputStream, because promises in Amp can't be resolved with + * other promises. + * + * @return InputStream + */ + final public function getInputStream(): InputStream + { + return $this->source; + } +} diff --git a/vendor/amphp/byte-stream/lib/OutputBuffer.php b/vendor/amphp/byte-stream/lib/OutputBuffer.php new file mode 100644 index 00000000..832dc71b --- /dev/null +++ b/vendor/amphp/byte-stream/lib/OutputBuffer.php @@ -0,0 +1,55 @@ +deferred = new Deferred; + } + + public function write(string $data): Promise + { + if ($this->closed) { + throw new ClosedException("The stream has already been closed."); + } + + $this->contents .= $data; + + return new Success(\strlen($data)); + } + + public function end(string $finalData = ""): Promise + { + if ($this->closed) { + throw new ClosedException("The stream has already been closed."); + } + + $this->contents .= $finalData; + $this->closed = true; + + $this->deferred->resolve($this->contents); + $this->contents = ""; + + return new Success(\strlen($finalData)); + } + + public function onResolve(callable $onResolved) + { + $this->deferred->promise()->onResolve($onResolved); + } +} diff --git a/vendor/amphp/byte-stream/lib/OutputStream.php b/vendor/amphp/byte-stream/lib/OutputStream.php new file mode 100644 index 00000000..68f51fc1 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/OutputStream.php @@ -0,0 +1,37 @@ +stream = $stream; + } + + public function __destruct() + { + if (!$this->promise) { + Promise\rethrow(new Coroutine($this->consume())); + } + } + + private function consume(): \Generator + { + try { + if ($this->lastRead && null === yield $this->lastRead) { + return; + } + + while (null !== yield $this->stream->read()) { + // Discard unread bytes from message. + } + } catch (\Throwable $exception) { + // If exception is thrown here the connection closed anyway. + } + } + + /** + * @inheritdoc + * + * @throws \Error If a buffered message was requested by calling buffer(). + */ + final public function read(): Promise + { + if ($this->promise) { + throw new \Error("Cannot stream message data once a buffered message has been requested"); + } + + return $this->lastRead = $this->stream->read(); + } + + /** + * Buffers the entire message and resolves the returned promise then. + * + * @return Promise Resolves with the entire message contents. + */ + final public function buffer(): Promise + { + if ($this->promise) { + return $this->promise; + } + + return $this->promise = call(function () { + $buffer = ''; + if ($this->lastRead && null === yield $this->lastRead) { + return $buffer; + } + + while (null !== $chunk = yield $this->stream->read()) { + $buffer .= $chunk; + } + return $buffer; + }); + } +} diff --git a/vendor/amphp/byte-stream/lib/PendingReadError.php b/vendor/amphp/byte-stream/lib/PendingReadError.php new file mode 100644 index 00000000..66dc1fbd --- /dev/null +++ b/vendor/amphp/byte-stream/lib/PendingReadError.php @@ -0,0 +1,17 @@ +useSingleRead = $useSingleRead; + + if (\strpos($meta["mode"], "r") === false && \strpos($meta["mode"], "+") === false) { + throw new \Error("Expected a readable stream"); + } + + \stream_set_blocking($stream, false); + \stream_set_read_buffer($stream, 0); + + $this->resource = &$stream; + $this->chunkSize = &$chunkSize; + + $deferred = &$this->deferred; + $readable = &$this->readable; + + $this->watcher = Loop::onReadable($this->resource, static function ($watcher) use ( + &$deferred, + &$readable, + &$stream, + &$chunkSize, + $useSingleRead + ) { + if ($useSingleRead) { + $data = @\fread($stream, $chunkSize); + } else { + $data = @\stream_get_contents($stream, $chunkSize); + } + + \assert($data !== false, "Trying to read from a previously fclose()'d resource. Do NOT manually fclose() resources the loop still has a reference to."); + + // Error suppression, because pthreads does crazy things with resources, + // which might be closed during two operations. + // See https://github.com/amphp/byte-stream/issues/32 + if ($data === '' && @\feof($stream)) { + $readable = false; + $stream = null; + $data = null; // Stream closed, resolve read with null. + Loop::cancel($watcher); + } else { + Loop::disable($watcher); + } + + $temp = $deferred; + $deferred = null; + + \assert($temp instanceof Deferred); + $temp->resolve($data); + }); + + $this->immediateCallable = static function ($watcherId, $data) use (&$deferred) { + $temp = $deferred; + $deferred = null; + + \assert($temp instanceof Deferred); + $temp->resolve($data); + }; + + Loop::disable($this->watcher); + } + + /** @inheritdoc */ + public function read(): Promise + { + if ($this->deferred !== null) { + throw new PendingReadError; + } + + if (!$this->readable) { + return new Success; // Resolve with null on closed stream. + } + + \assert($this->resource !== null); + + // Attempt a direct read, because Windows suffers from slow I/O on STDIN otherwise. + if ($this->useSingleRead) { + $data = @\fread($this->resource, $this->chunkSize); + } else { + $data = @\stream_get_contents($this->resource, $this->chunkSize); + } + + \assert($data !== false, "Trying to read from a previously fclose()'d resource. Do NOT manually fclose() resources the loop still has a reference to."); + + if ($data === '') { + // Error suppression, because pthreads does crazy things with resources, + // which might be closed during two operations. + // See https://github.com/amphp/byte-stream/issues/32 + if (@\feof($this->resource)) { + $this->readable = false; + $this->resource = null; + Loop::cancel($this->watcher); + + return new Success; // Stream closed, resolve read with null. + } + + $this->deferred = new Deferred; + Loop::enable($this->watcher); + + return $this->deferred->promise(); + } + + // Prevent an immediate read → write loop from blocking everything + // See e.g. examples/benchmark-throughput.php + $this->deferred = new Deferred; + $this->immediateWatcher = Loop::defer($this->immediateCallable, $data); + + return $this->deferred->promise(); + } + + /** + * Closes the stream forcefully. Multiple `close()` calls are ignored. + * + * @return void + */ + public function close() + { + if (\is_resource($this->resource)) { + // Error suppression, as resource might already be closed + $meta = @\stream_get_meta_data($this->resource); + + if ($meta && \strpos($meta["mode"], "+") !== false) { + @\stream_socket_shutdown($this->resource, \STREAM_SHUT_RD); + } else { + /** @psalm-suppress InvalidPropertyAssignmentValue */ + @\fclose($this->resource); + } + } + + $this->free(); + } + + /** + * Nulls reference to resource, marks stream unreadable, and succeeds any pending read with null. + * + * @return void + */ + private function free() + { + $this->readable = false; + $this->resource = null; + + if ($this->deferred !== null) { + $deferred = $this->deferred; + $this->deferred = null; + $deferred->resolve(); + } + + Loop::cancel($this->watcher); + + if ($this->immediateWatcher !== null) { + Loop::cancel($this->immediateWatcher); + } + } + + /** + * @return resource|null The stream resource or null if the stream has closed. + */ + public function getResource() + { + return $this->resource; + } + + /** + * @return void + */ + public function setChunkSize(int $chunkSize) + { + $this->chunkSize = $chunkSize; + } + + /** + * References the read watcher, so the loop keeps running in case there's an active read. + * + * @return void + * + * @see Loop::reference() + */ + public function reference() + { + if (!$this->resource) { + throw new \Error("Resource has already been freed"); + } + + Loop::reference($this->watcher); + } + + /** + * Unreferences the read watcher, so the loop doesn't keep running even if there are active reads. + * + * @return void + * + * @see Loop::unreference() + */ + public function unreference() + { + if (!$this->resource) { + throw new \Error("Resource has already been freed"); + } + + Loop::unreference($this->watcher); + } + + public function __destruct() + { + if ($this->resource !== null) { + $this->free(); + } + } +} diff --git a/vendor/amphp/byte-stream/lib/ResourceOutputStream.php b/vendor/amphp/byte-stream/lib/ResourceOutputStream.php new file mode 100644 index 00000000..035e480b --- /dev/null +++ b/vendor/amphp/byte-stream/lib/ResourceOutputStream.php @@ -0,0 +1,321 @@ + */ + private $writes; + + /** @var bool */ + private $writable = true; + + /** @var int|null */ + private $chunkSize; + + /** + * @param resource $stream Stream resource. + * @param int|null $chunkSize Chunk size per `fwrite()` operation. + */ + public function __construct($stream, int $chunkSize = null) + { + if (!\is_resource($stream) || \get_resource_type($stream) !== 'stream') { + throw new \Error("Expected a valid stream"); + } + + $meta = \stream_get_meta_data($stream); + + if (\strpos($meta["mode"], "r") !== false && \strpos($meta["mode"], "+") === false) { + throw new \Error("Expected a writable stream"); + } + + \stream_set_blocking($stream, false); + \stream_set_write_buffer($stream, 0); + + $this->resource = $stream; + $this->chunkSize = &$chunkSize; + + $writes = $this->writes = new \SplQueue; + $writable = &$this->writable; + $resource = &$this->resource; + + $this->watcher = Loop::onWritable($stream, static function ($watcher, $stream) use ($writes, &$chunkSize, &$writable, &$resource) { + static $emptyWrites = 0; + + try { + while (!$writes->isEmpty()) { + /** @var Deferred $deferred */ + list($data, $previous, $deferred) = $writes->shift(); + $length = \strlen($data); + + if ($length === 0) { + $deferred->resolve(0); + continue; + } + + if (!\is_resource($stream) || (($metaData = @\stream_get_meta_data($stream)) && $metaData['eof'])) { + throw new ClosedException("The stream was closed by the peer"); + } + + // Error reporting suppressed since fwrite() emits E_WARNING if the pipe is broken or the buffer is full. + // Use conditional, because PHP doesn't like getting null passed + if ($chunkSize) { + $written = @\fwrite($stream, $data, $chunkSize); + } else { + $written = @\fwrite($stream, $data); + } + + \assert( + $written !== false || \PHP_VERSION_ID >= 70400, // PHP 7.4+ returns false on EPIPE. + "Trying to write on a previously fclose()'d resource. Do NOT manually fclose() resources the still referenced in the loop." + ); + + // PHP 7.4.0 and 7.4.1 may return false on EAGAIN. + if ($written === false && \PHP_VERSION_ID >= 70402) { + $message = "Failed to write to stream"; + if ($error = \error_get_last()) { + $message .= \sprintf("; %s", $error["message"]); + } + throw new StreamException($message); + } + + // Broken pipes between processes on macOS/FreeBSD do not detect EOF properly. + if ($written === 0 || $written === false) { + if ($emptyWrites++ > self::MAX_CONSECUTIVE_EMPTY_WRITES) { + $message = "Failed to write to stream after multiple attempts"; + if ($error = \error_get_last()) { + $message .= \sprintf("; %s", $error["message"]); + } + throw new StreamException($message); + } + + $writes->unshift([$data, $previous, $deferred]); + return; + } + + $emptyWrites = 0; + + if ($length > $written) { + $data = \substr($data, $written); + $writes->unshift([$data, $written + $previous, $deferred]); + return; + } + + $deferred->resolve($written + $previous); + } + } catch (\Throwable $exception) { + $resource = null; + $writable = false; + + /** @psalm-suppress PossiblyUndefinedVariable */ + $deferred->fail($exception); + while (!$writes->isEmpty()) { + list(, , $deferred) = $writes->shift(); + $deferred->fail($exception); + } + + Loop::cancel($watcher); + } finally { + if ($writes->isEmpty()) { + Loop::disable($watcher); + } + } + }); + + Loop::disable($this->watcher); + } + + /** + * Writes data to the stream. + * + * @param string $data Bytes to write. + * + * @return Promise Succeeds once the data has been successfully written to the stream. + * + * @throws ClosedException If the stream has already been closed. + */ + public function write(string $data): Promise + { + return $this->send($data, false); + } + + /** + * Closes the stream after all pending writes have been completed. Optionally writes a final data chunk before. + * + * @param string $finalData Bytes to write. + * + * @return Promise Succeeds once the data has been successfully written to the stream. + * + * @throws ClosedException If the stream has already been closed. + */ + public function end(string $finalData = ""): Promise + { + return $this->send($finalData, true); + } + + private function send(string $data, bool $end = false): Promise + { + if (!$this->writable) { + return new Failure(new ClosedException("The stream is not writable")); + } + + $length = \strlen($data); + $written = 0; + + if ($end) { + $this->writable = false; + } + + if ($this->writes->isEmpty()) { + if ($length === 0) { + if ($end) { + $this->close(); + } + return new Success(0); + } + + if (!\is_resource($this->resource) || (($metaData = @\stream_get_meta_data($this->resource)) && $metaData['eof'])) { + return new Failure(new ClosedException("The stream was closed by the peer")); + } + + // Error reporting suppressed since fwrite() emits E_WARNING if the pipe is broken or the buffer is full. + // Use conditional, because PHP doesn't like getting null passed. + if ($this->chunkSize) { + $written = @\fwrite($this->resource, $data, $this->chunkSize); + } else { + $written = @\fwrite($this->resource, $data); + } + + \assert( + $written !== false || \PHP_VERSION_ID >= 70400, // PHP 7.4+ returns false on EPIPE. + "Trying to write on a previously fclose()'d resource. Do NOT manually fclose() resources the still referenced in the loop." + ); + + // PHP 7.4.0 and 7.4.1 may return false on EAGAIN. + if ($written === false && \PHP_VERSION_ID >= 70402) { + $message = "Failed to write to stream"; + if ($error = \error_get_last()) { + $message .= \sprintf("; %s", $error["message"]); + } + return new Failure(new StreamException($message)); + } + + $written = (int) $written; // Cast potential false to 0. + + if ($length === $written) { + if ($end) { + $this->close(); + } + return new Success($written); + } + + $data = \substr($data, $written); + } + + $deferred = new Deferred; + + if ($length - $written > self::LARGE_CHUNK_SIZE) { + $chunks = \str_split($data, self::LARGE_CHUNK_SIZE); + $data = \array_pop($chunks); + foreach ($chunks as $chunk) { + $this->writes->push([$chunk, $written, new Deferred]); + $written += self::LARGE_CHUNK_SIZE; + } + } + + $this->writes->push([$data, $written, $deferred]); + Loop::enable($this->watcher); + $promise = $deferred->promise(); + + if ($end) { + $promise->onResolve([$this, "close"]); + } + + return $promise; + } + + /** + * Closes the stream forcefully. Multiple `close()` calls are ignored. + * + * @return void + */ + public function close() + { + if (\is_resource($this->resource)) { + // Error suppression, as resource might already be closed + $meta = @\stream_get_meta_data($this->resource); + + if ($meta && \strpos($meta["mode"], "+") !== false) { + @\stream_socket_shutdown($this->resource, \STREAM_SHUT_WR); + } else { + /** @psalm-suppress InvalidPropertyAssignmentValue psalm reports this as closed-resource */ + @\fclose($this->resource); + } + } + + $this->free(); + } + + /** + * Nulls reference to resource, marks stream unwritable, and fails any pending write. + * + * @return void + */ + private function free() + { + $this->resource = null; + $this->writable = false; + + if (!$this->writes->isEmpty()) { + $exception = new ClosedException("The socket was closed before writing completed"); + do { + /** @var Deferred $deferred */ + list(, , $deferred) = $this->writes->shift(); + $deferred->fail($exception); + } while (!$this->writes->isEmpty()); + } + + Loop::cancel($this->watcher); + } + + /** + * @return resource|null Stream resource or null if end() has been called or the stream closed. + */ + public function getResource() + { + return $this->resource; + } + + /** + * @return void + */ + public function setChunkSize(int $chunkSize) + { + $this->chunkSize = $chunkSize; + } + + public function __destruct() + { + if ($this->resource !== null) { + $this->free(); + } + } +} diff --git a/vendor/amphp/byte-stream/lib/StreamException.php b/vendor/amphp/byte-stream/lib/StreamException.php new file mode 100644 index 00000000..b86ec7e0 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/StreamException.php @@ -0,0 +1,7 @@ +source = $source; + $this->encoding = $encoding; + $this->options = $options; + $this->resource = @\inflate_init($encoding, $options); + + if ($this->resource === false) { + throw new StreamException("Failed initializing deflate context"); + } + } + + /** @inheritdoc */ + public function read(): Promise + { + return call(function () { + if ($this->resource === null) { + return null; + } + + \assert($this->source !== null); + + $data = yield $this->source->read(); + + // Needs a double guard, as stream might have been closed while reading + /** @psalm-suppress ParadoxicalCondition */ + if ($this->resource === null) { + return null; + } + + if ($data === null) { + $decompressed = @\inflate_add($this->resource, "", \ZLIB_FINISH); + + if ($decompressed === false) { + throw new StreamException("Failed adding data to deflate context"); + } + + $this->close(); + + return $decompressed; + } + + $decompressed = @\inflate_add($this->resource, $data, \ZLIB_SYNC_FLUSH); + + if ($decompressed === false) { + throw new StreamException("Failed adding data to deflate context"); + } + + return $decompressed; + }); + } + + /** + * @internal + * @return void + */ + private function close() + { + $this->resource = null; + $this->source = null; + } + + /** + * Gets the used compression encoding. + * + * @return int Encoding specified on construction time. + */ + public function getEncoding(): int + { + return $this->encoding; + } + /** + * Gets the used compression options. + * + * @return array Options array passed on construction time. + */ + public function getOptions(): array + { + return $this->options; + } +} diff --git a/vendor/amphp/byte-stream/lib/ZlibOutputStream.php b/vendor/amphp/byte-stream/lib/ZlibOutputStream.php new file mode 100644 index 00000000..542df1ce --- /dev/null +++ b/vendor/amphp/byte-stream/lib/ZlibOutputStream.php @@ -0,0 +1,119 @@ +destination = $destination; + $this->encoding = $encoding; + $this->options = $options; + $this->resource = @\deflate_init($encoding, $options); + + if ($this->resource === false) { + throw new StreamException("Failed initializing deflate context"); + } + } + + /** @inheritdoc */ + public function write(string $data): Promise + { + if ($this->resource === null) { + throw new ClosedException("The stream has already been closed"); + } + + \assert($this->destination !== null); + + $compressed = \deflate_add($this->resource, $data, \ZLIB_SYNC_FLUSH); + + if ($compressed === false) { + throw new StreamException("Failed adding data to deflate context"); + } + + $promise = $this->destination->write($compressed); + $promise->onResolve(function ($error) { + if ($error) { + $this->close(); + } + }); + + return $promise; + } + + /** @inheritdoc */ + public function end(string $finalData = ""): Promise + { + if ($this->resource === null) { + throw new ClosedException("The stream has already been closed"); + } + + \assert($this->destination !== null); + + $compressed = \deflate_add($this->resource, $finalData, \ZLIB_FINISH); + + if ($compressed === false) { + throw new StreamException("Failed adding data to deflate context"); + } + + $promise = $this->destination->end($compressed); + $promise->onResolve(function () { + $this->close(); + }); + + return $promise; + } + + /** + * @internal + * @return void + */ + private function close() + { + $this->resource = null; + $this->destination = null; + } + + /** + * Gets the used compression encoding. + * + * @return int Encoding specified on construction time. + */ + public function getEncoding(): int + { + return $this->encoding; + } + + /** + * Gets the used compression options. + * + * @return array Options array passed on construction time. + */ + public function getOptions(): array + { + return $this->options; + } +} diff --git a/vendor/amphp/byte-stream/lib/functions.php b/vendor/amphp/byte-stream/lib/functions.php new file mode 100644 index 00000000..434aef32 --- /dev/null +++ b/vendor/amphp/byte-stream/lib/functions.php @@ -0,0 +1,188 @@ +read()) !== null) { + $written += \strlen($chunk); + $writePromise = $destination->write($chunk); + $chunk = null; // free memory + yield $writePromise; + } + + return $written; + }); +} + +/** + * @param \Amp\ByteStream\InputStream $source + * + * @return \Amp\Promise + */ +function buffer(InputStream $source): Promise +{ + return call(function () use ($source): \Generator { + $buffer = ""; + + while (($chunk = yield $source->read()) !== null) { + $buffer .= $chunk; + $chunk = null; // free memory + } + + return $buffer; + }); +} + +/** + * The php://input input buffer stream for the process associated with the currently active event loop. + * + * @return ResourceInputStream + */ +function getInputBufferStream(): ResourceInputStream +{ + static $key = InputStream::class . '\\input'; + + $stream = Loop::getState($key); + + if (!$stream) { + $stream = new ResourceInputStream(\fopen('php://input', 'rb')); + Loop::setState($key, $stream); + } + + return $stream; +} + +/** + * The php://output output buffer stream for the process associated with the currently active event loop. + * + * @return ResourceOutputStream + */ +function getOutputBufferStream(): ResourceOutputStream +{ + static $key = OutputStream::class . '\\output'; + + $stream = Loop::getState($key); + + if (!$stream) { + $stream = new ResourceOutputStream(\fopen('php://output', 'wb')); + Loop::setState($key, $stream); + } + + return $stream; +} + +/** + * The STDIN stream for the process associated with the currently active event loop. + * + * @return ResourceInputStream + */ +function getStdin(): ResourceInputStream +{ + static $key = InputStream::class . '\\stdin'; + + $stream = Loop::getState($key); + + if (!$stream) { + $stream = new ResourceInputStream(\STDIN); + Loop::setState($key, $stream); + } + + return $stream; +} + +/** + * The STDOUT stream for the process associated with the currently active event loop. + * + * @return ResourceOutputStream + */ +function getStdout(): ResourceOutputStream +{ + static $key = OutputStream::class . '\\stdout'; + + $stream = Loop::getState($key); + + if (!$stream) { + $stream = new ResourceOutputStream(\STDOUT); + Loop::setState($key, $stream); + } + + return $stream; +} + +/** + * The STDERR stream for the process associated with the currently active event loop. + * + * @return ResourceOutputStream + */ +function getStderr(): ResourceOutputStream +{ + static $key = OutputStream::class . '\\stderr'; + + $stream = Loop::getState($key); + + if (!$stream) { + $stream = new ResourceOutputStream(\STDERR); + Loop::setState($key, $stream); + } + + return $stream; +} + +function parseLineDelimitedJson(InputStream $stream, bool $assoc = false, int $depth = 512, int $options = 0): Iterator +{ + return new Producer(static function (callable $emit) use ($stream, $assoc, $depth, $options) { + $reader = new LineReader($stream); + + while (null !== $line = yield $reader->readLine()) { + $line = \trim($line); + + if ($line === '') { + continue; + } + + /** @noinspection PhpComposerExtensionStubsInspection */ + $data = \json_decode($line, $assoc, $depth, $options); + /** @noinspection PhpComposerExtensionStubsInspection */ + $error = \json_last_error(); + + /** @noinspection PhpComposerExtensionStubsInspection */ + if ($error !== \JSON_ERROR_NONE) { + /** @noinspection PhpComposerExtensionStubsInspection */ + throw new StreamException('Failed to parse JSON: ' . \json_last_error_msg(), $error); + } + + yield $emit($data); + } + }); +} diff --git a/vendor/amphp/byte-stream/psalm.xml b/vendor/amphp/byte-stream/psalm.xml new file mode 100644 index 00000000..9684f55d --- /dev/null +++ b/vendor/amphp/byte-stream/psalm.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/bin/php-parse b/vendor/bin/php-parse new file mode 100755 index 00000000..1bd2c838 --- /dev/null +++ b/vendor/bin/php-parse @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse'); + exit(0); + } +} + +include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse'; diff --git a/vendor/bin/psalm b/vendor/bin/psalm new file mode 100755 index 00000000..baac2024 --- /dev/null +++ b/vendor/bin/psalm @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/vimeo/psalm/psalm'); + exit(0); + } +} + +include __DIR__ . '/..'.'/vimeo/psalm/psalm'; diff --git a/vendor/bin/psalm-language-server b/vendor/bin/psalm-language-server new file mode 100755 index 00000000..552f19b2 --- /dev/null +++ b/vendor/bin/psalm-language-server @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/vimeo/psalm/psalm-language-server'); + exit(0); + } +} + +include __DIR__ . '/..'.'/vimeo/psalm/psalm-language-server'; diff --git a/vendor/bin/psalm-plugin b/vendor/bin/psalm-plugin new file mode 100755 index 00000000..a1db9f67 --- /dev/null +++ b/vendor/bin/psalm-plugin @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/vimeo/psalm/psalm-plugin'); + exit(0); + } +} + +include __DIR__ . '/..'.'/vimeo/psalm/psalm-plugin'; diff --git a/vendor/bin/psalm-refactor b/vendor/bin/psalm-refactor new file mode 100755 index 00000000..2376e6cf --- /dev/null +++ b/vendor/bin/psalm-refactor @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/vimeo/psalm/psalm-refactor'); + exit(0); + } +} + +include __DIR__ . '/..'.'/vimeo/psalm/psalm-refactor'; diff --git a/vendor/bin/psalter b/vendor/bin/psalter new file mode 100755 index 00000000..c1ad8e78 --- /dev/null +++ b/vendor/bin/psalter @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/vimeo/psalm/psalter'); + exit(0); + } +} + +include __DIR__ . '/..'.'/vimeo/psalm/psalter'; diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index cae0fc2f..ad98d8eb 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -10,6 +10,22 @@ return array( 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 04f1db93..2ca6bfbd 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -10,8 +10,11 @@ return array( '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'e8aa6e4b5a1db2f56ae794f1505391a8' => $vendorDir . '/amphp/amp/lib/functions.php', + '76cd0796156622033397994f25b0d8fc' => $vendorDir . '/amphp/amp/lib/Internal/functions.php', '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', + '6cd5651c4fef5ed6b63e8d8b8ffbf3cc' => $vendorDir . '/amphp/byte-stream/lib/functions.php', '9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php', '2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php', 'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 27f336ed..30309c4c 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -7,6 +7,7 @@ $baseDir = dirname($vendorDir); return array( 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'), + 'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'), 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), 'VarRepresentation\\' => array($vendorDir . '/tysonandre/var_representation_polyfill/src/VarRepresentation'), 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), @@ -16,15 +17,24 @@ return array( 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), 'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), + 'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'Spatie\\ArrayToXml\\' => array($vendorDir . '/spatie/array-to-xml/src'), 'Sabre\\Event\\' => array($vendorDir . '/sabre/event/lib'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'), 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'Psalm\\' => array($vendorDir . '/vimeo/psalm/src/Psalm'), + 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'Phan\\' => array($vendorDir . '/phan/phan/src/Phan'), + 'PackageVersions\\' => array($vendorDir . '/composer/package-versions-deprecated/src/PackageVersions'), 'PHPStan\\ExtensionInstaller\\' => array($vendorDir . '/phpstan/extension-installer/src'), 'Microsoft\\PhpParser\\' => array($vendorDir . '/microsoft/tolerant-php-parser/src'), + 'LanguageServerProtocol\\' => array($vendorDir . '/felixfbecker/language-server-protocol/src'), + 'Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), 'Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), 'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), 'Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'Amp\\ByteStream\\' => array($vendorDir . '/amphp/byte-stream/lib'), + 'Amp\\' => array($vendorDir . '/amphp/amp/lib'), 'AdvancedJsonRpc\\' => array($vendorDir . '/felixfbecker/advanced-json-rpc/lib'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index c9869549..47a1f79d 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -11,8 +11,11 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'e8aa6e4b5a1db2f56ae794f1505391a8' => __DIR__ . '/..' . '/amphp/amp/lib/functions.php', + '76cd0796156622033397994f25b0d8fc' => __DIR__ . '/..' . '/amphp/amp/lib/Internal/functions.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', + '6cd5651c4fef5ed6b63e8d8b8ffbf3cc' => __DIR__ . '/..' . '/amphp/byte-stream/lib/functions.php', '9b38cf48e83f5d8f60375221cd213eee' => __DIR__ . '/..' . '/phpstan/phpstan/bootstrap.php', '2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php', 'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php', @@ -26,6 +29,10 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 array ( 'phpDocumentor\\Reflection\\' => 25, ), + 'X' => + array ( + 'XdgBaseDir\\' => 11, + ), 'W' => array ( 'Webmozart\\Assert\\' => 17, @@ -43,20 +50,33 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 'Symfony\\Polyfill\\Ctype\\' => 23, 'Symfony\\Contracts\\Service\\' => 26, 'Symfony\\Component\\String\\' => 25, + 'Symfony\\Component\\Filesystem\\' => 29, 'Symfony\\Component\\Console\\' => 26, + 'Spatie\\ArrayToXml\\' => 18, 'Sabre\\Event\\' => 12, ), 'P' => array ( 'Psr\\Log\\' => 8, 'Psr\\Container\\' => 14, + 'Psalm\\' => 6, + 'PhpParser\\' => 10, 'Phan\\' => 5, + 'PackageVersions\\' => 16, 'PHPStan\\ExtensionInstaller\\' => 27, ), 'M' => array ( 'Microsoft\\PhpParser\\' => 20, ), + 'L' => + array ( + 'LanguageServerProtocol\\' => 23, + ), + 'F' => + array ( + 'Fidry\\CpuCoreCounter\\' => 21, + ), 'C' => array ( 'Composer\\XdebugHandler\\' => 23, @@ -65,6 +85,8 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 ), 'A' => array ( + 'Amp\\ByteStream\\' => 15, + 'Amp\\' => 4, 'AdvancedJsonRpc\\' => 16, ), ); @@ -76,6 +98,10 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', 2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', ), + 'XdgBaseDir\\' => + array ( + 0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src', + ), 'Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', @@ -112,10 +138,18 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 array ( 0 => __DIR__ . '/..' . '/symfony/string', ), + 'Symfony\\Component\\Filesystem\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/filesystem', + ), 'Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), + 'Spatie\\ArrayToXml\\' => + array ( + 0 => __DIR__ . '/..' . '/spatie/array-to-xml/src', + ), 'Sabre\\Event\\' => array ( 0 => __DIR__ . '/..' . '/sabre/event/lib', @@ -128,10 +162,22 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), + 'Psalm\\' => + array ( + 0 => __DIR__ . '/..' . '/vimeo/psalm/src/Psalm', + ), + 'PhpParser\\' => + array ( + 0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser', + ), 'Phan\\' => array ( 0 => __DIR__ . '/..' . '/phan/phan/src/Phan', ), + 'PackageVersions\\' => + array ( + 0 => __DIR__ . '/..' . '/composer/package-versions-deprecated/src/PackageVersions', + ), 'PHPStan\\ExtensionInstaller\\' => array ( 0 => __DIR__ . '/..' . '/phpstan/extension-installer/src', @@ -140,6 +186,14 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 array ( 0 => __DIR__ . '/..' . '/microsoft/tolerant-php-parser/src', ), + 'LanguageServerProtocol\\' => + array ( + 0 => __DIR__ . '/..' . '/felixfbecker/language-server-protocol/src', + ), + 'Fidry\\CpuCoreCounter\\' => + array ( + 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', + ), 'Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', @@ -152,6 +206,14 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), + 'Amp\\ByteStream\\' => + array ( + 0 => __DIR__ . '/..' . '/amphp/byte-stream/lib', + ), + 'Amp\\' => + array ( + 0 => __DIR__ . '/..' . '/amphp/amp/lib', + ), 'AdvancedJsonRpc\\' => array ( 0 => __DIR__ . '/..' . '/felixfbecker/advanced-json-rpc/lib', @@ -173,6 +235,22 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 1e5d0879..53e641da 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,5 +1,253 @@ { "packages": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "version_normalized": "2.6.2.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "time": "2022-02-20T17:52:18+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "install-path": "../amphp/amp" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "version_normalized": "1.8.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "time": "2021-03-30T17:13:30+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "install-path": "../amphp/byte-stream" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "version_normalized": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "time": "2022-01-17T14:14:24+00:00", + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "install-path": "./package-versions-deprecated" + }, { "name": "composer/pcre", "version": "3.1.0", @@ -227,6 +475,46 @@ ], "install-path": "./xdebug-handler" }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "version_normalized": "0.1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "time": "2019-12-04T15:06:13+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "install-path": "../dnoegel/php-xdg-base-dir" + }, { "name": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", @@ -275,6 +563,129 @@ }, "install-path": "../felixfbecker/advanced-json-rpc" }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.2", + "version_normalized": "1.5.2.0", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "time": "2022-03-02T22:36:06+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + }, + "install-path": "../felixfbecker/language-server-protocol" + }, + { + "name": "fidry/cpu-core-counter", + "version": "0.5.1", + "version_normalized": "0.5.1.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "time": "2022-12-24T12:35:10+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "install-path": "../fidry/cpu-core-counter" + }, { "name": "microsoft/tolerant-php-parser", "version": "v0.1.2", @@ -377,6 +788,65 @@ }, "install-path": "../netresearch/jsonmapper" }, + { + "name": "nikic/php-parser", + "version": "v4.15.4", + "version_normalized": "4.15.4.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "time": "2023-03-05T19:49:14+00:00", + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-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" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + }, + "install-path": "../nikic/php-parser" + }, { "name": "phan/phan", "version": "5.4.2", @@ -682,17 +1152,17 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.3", - "version_normalized": "1.10.3.0", + "version": "1.10.5", + "version_normalized": "1.10.5.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "5419375b5891add97dc74be71e6c1c34baaddf64" + "reference": "1fb6f494d82455151ecf15c5c191923f5d84324e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/5419375b5891add97dc74be71e6c1c34baaddf64", - "reference": "5419375b5891add97dc74be71e6c1c34baaddf64", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1fb6f494d82455151ecf15c5c191923f5d84324e", + "reference": "1fb6f494d82455151ecf15c5c191923f5d84324e", "shasum": "" }, "require": { @@ -701,7 +1171,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2023-02-25T14:47:13+00:00", + "time": "2023-03-07T16:48:45+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -724,7 +1194,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.10.3" + "source": "https://github.com/phpstan/phpstan/tree/1.10.5" }, "funding": [ { @@ -920,6 +1390,141 @@ }, "install-path": "../sabre/event" }, + { + "name": "sebastian/diff", + "version": "5.0.0", + "version_normalized": "5.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "70dd1b20bc198da394ad542e988381b44e64e39f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/70dd1b20bc198da394ad542e988381b44e64e39f", + "reference": "70dd1b20bc198da394ad542e988381b44e64e39f", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "time": "2023-02-03T07:00:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/diff" + }, + { + "name": "spatie/array-to-xml", + "version": "3.1.5", + "version_normalized": "3.1.5.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "time": "2022-12-24T13:43:51+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "install-path": "../spatie/array-to-xml" + }, { "name": "symfony/console", "version": "v6.2.7", @@ -1089,6 +1694,72 @@ ], "install-path": "../symfony/deprecation-contracts" }, + { + "name": "symfony/filesystem", + "version": "v6.2.7", + "version_normalized": "6.2.7.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "82b6c62b959f642d000456f08c6d219d749215b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/82b6c62b959f642d000456f08c6d219d749215b3", + "reference": "82b6c62b959f642d000456f08c6d219d749215b3", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "time": "2023-02-14T08:44:56+00:00", + "type": "library", + "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": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.2.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/filesystem" + }, { "name": "symfony/polyfill-ctype", "version": "v1.27.0", @@ -1759,6 +2430,114 @@ }, "install-path": "../tysonandre/var_representation_polyfill" }, + { + "name": "vimeo/psalm", + "version": "5.7.7", + "version_normalized": "5.7.7.0", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/e028ba46ba0d7f9a78bc3201c251e137383e145f", + "reference": "e028ba46ba0d7f9a78bc3201c251e137383e145f", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.10.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "sebastian/diff": "^4.0 || ^5.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0" + }, + "suggest": { + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" + }, + "time": "2023-02-25T01:05:07+00:00", + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php", + "static analysis" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/5.7.7" + }, + "install-path": "../vimeo/psalm" + }, { "name": "webmozart/assert", "version": "1.11.0", @@ -1823,12 +2602,19 @@ ], "dev": true, "dev-package-names": [ + "amphp/amp", + "amphp/byte-stream", + "composer/package-versions-deprecated", "composer/pcre", "composer/semver", "composer/xdebug-handler", + "dnoegel/php-xdg-base-dir", "felixfbecker/advanced-json-rpc", + "felixfbecker/language-server-protocol", + "fidry/cpu-core-counter", "microsoft/tolerant-php-parser", "netresearch/jsonmapper", + "nikic/php-parser", "phan/phan", "phpdocumentor/reflection-common", "phpdocumentor/reflection-docblock", @@ -1838,8 +2624,11 @@ "psr/container", "psr/log", "sabre/event", + "sebastian/diff", + "spatie/array-to-xml", "symfony/console", "symfony/deprecation-contracts", + "symfony/filesystem", "symfony/polyfill-ctype", "symfony/polyfill-intl-grapheme", "symfony/polyfill-intl-normalizer", @@ -1848,6 +2637,7 @@ "symfony/service-contracts", "symfony/string", "tysonandre/var_representation_polyfill", + "vimeo/psalm", "webmozart/assert" ] } diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index cd85f2e5..037198cb 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -10,6 +10,33 @@ 'dev' => true, ), 'versions' => array( + 'amphp/amp' => array( + 'pretty_version' => 'v2.6.2', + 'version' => '2.6.2.0', + 'reference' => '9d5100cebffa729aaffecd3ad25dc5aeea4f13bb', + 'type' => 'library', + 'install_path' => __DIR__ . '/../amphp/amp', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'amphp/byte-stream' => array( + 'pretty_version' => 'v1.8.1', + 'version' => '1.8.1.0', + 'reference' => 'acbd8002b3536485c997c4e019206b3f10ca15bd', + 'type' => 'library', + 'install_path' => __DIR__ . '/../amphp/byte-stream', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'composer/package-versions-deprecated' => array( + 'pretty_version' => '1.11.99.5', + 'version' => '1.11.99.5', + 'reference' => 'b4f54f74ef3453349c24a845d22392cd31e65f1d', + 'type' => 'composer-plugin', + 'install_path' => __DIR__ . '/./package-versions-deprecated', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'composer/pcre' => array( 'pretty_version' => '3.1.0', 'version' => '3.1.0.0', @@ -37,6 +64,15 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'dnoegel/php-xdg-base-dir' => array( + 'pretty_version' => 'v0.1.1', + 'version' => '0.1.1.0', + 'reference' => '8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd', + 'type' => 'library', + 'install_path' => __DIR__ . '/../dnoegel/php-xdg-base-dir', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'egrajp/development-corelibs-dev' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', @@ -55,6 +91,24 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'felixfbecker/language-server-protocol' => array( + 'pretty_version' => 'v1.5.2', + 'version' => '1.5.2.0', + 'reference' => '6e82196ffd7c62f7794d778ca52b69feec9f2842', + 'type' => 'library', + 'install_path' => __DIR__ . '/../felixfbecker/language-server-protocol', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'fidry/cpu-core-counter' => array( + 'pretty_version' => '0.5.1', + 'version' => '0.5.1.0', + 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', + 'type' => 'library', + 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'microsoft/tolerant-php-parser' => array( 'pretty_version' => 'v0.1.2', 'version' => '0.1.2.0', @@ -73,6 +127,21 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'nikic/php-parser' => array( + 'pretty_version' => 'v4.15.4', + 'version' => '4.15.4.0', + 'reference' => '6bb5176bc4af8bcb7d926f88718db9b96a2d4290', + 'type' => 'library', + 'install_path' => __DIR__ . '/../nikic/php-parser', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'ocramius/package-versions' => array( + 'dev_requirement' => true, + 'replaced' => array( + 0 => '1.11.99', + ), + ), 'phan/phan' => array( 'pretty_version' => '5.4.2', 'version' => '5.4.2.0', @@ -119,14 +188,20 @@ 'dev_requirement' => true, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.3', - 'version' => '1.10.3.0', - 'reference' => '5419375b5891add97dc74be71e6c1c34baaddf64', + 'pretty_version' => '1.10.5', + 'version' => '1.10.5.0', + 'reference' => '1fb6f494d82455151ecf15c5c191923f5d84324e', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => true, ), + 'psalm/psalm' => array( + 'dev_requirement' => true, + 'provided' => array( + 0 => '5.7.7', + ), + ), 'psr/container' => array( 'pretty_version' => '2.0.2', 'version' => '2.0.2.0', @@ -160,6 +235,24 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'sebastian/diff' => array( + 'pretty_version' => '5.0.0', + 'version' => '5.0.0.0', + 'reference' => '70dd1b20bc198da394ad542e988381b44e64e39f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/diff', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'spatie/array-to-xml' => array( + 'pretty_version' => '3.1.5', + 'version' => '3.1.5.0', + 'reference' => '13f76acef5362d15c71ae1ac6350cc3df5e25e43', + 'type' => 'library', + 'install_path' => __DIR__ . '/../spatie/array-to-xml', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'symfony/console' => array( 'pretty_version' => 'v6.2.7', 'version' => '6.2.7.0', @@ -178,6 +271,15 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'symfony/filesystem' => array( + 'pretty_version' => 'v6.2.7', + 'version' => '6.2.7.0', + 'reference' => '82b6c62b959f642d000456f08c6d219d749215b3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/filesystem', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'symfony/polyfill-ctype' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', @@ -250,6 +352,15 @@ 'aliases' => array(), 'dev_requirement' => true, ), + 'vimeo/psalm' => array( + 'pretty_version' => '5.7.7', + 'version' => '5.7.7.0', + 'reference' => 'e028ba46ba0d7f9a78bc3201c251e137383e145f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../vimeo/psalm', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'webmozart/assert' => array( 'pretty_version' => '1.11.0', 'version' => '1.11.0.0', diff --git a/vendor/composer/package-versions-deprecated/CHANGELOG.md b/vendor/composer/package-versions-deprecated/CHANGELOG.md new file mode 100644 index 00000000..a838c56a --- /dev/null +++ b/vendor/composer/package-versions-deprecated/CHANGELOG.md @@ -0,0 +1,120 @@ +# CHANGELOG + +## 1.1.3 - 2017-09-06 + +This release fixes a bug that caused PackageVersions to prevent +the `composer remove` and `composer update` commands to fail when +this package is removed. + +In addition to that, mutation testing has been added to the suite, +ensuring that the package is accurately and extensively tested. + +Total issues resolved: **3** + +- [40: Mutation testing, PHP 7.1 testing](https://github.com/Ocramius/PackageVersions/pull/40) thanks to @Ocramius +- [41: Removing this package on install results in file access error](https://github.com/Ocramius/PackageVersions/issues/41) thanks to @Xerkus +- [46: #41 Avoid issues when the package is scheduled for removal](https://github.com/Ocramius/PackageVersions/pull/46) thanks to @Jean85 + +## 1.1.2 - 2016-12-30 + +This release fixes a bug that caused PackageVersions to be enabled +even when it was part of a globally installed package. + +Total issues resolved: **3** + +- [35: remove all temp directories](https://github.com/Ocramius/PackageVersions/pull/35) +- [38: Interferes with other projects when installed globally](https://github.com/Ocramius/PackageVersions/issues/38) +- [39: Ignore the global plugin when updating local projects](https://github.com/Ocramius/PackageVersions/pull/39) + +## 1.1.1 - 2016-07-25 + +This release removes the [`"files"`](https://getcomposer.org/doc/04-schema.md#files) directive from +[`composer.json`](https://github.com/Ocramius/PackageVersions/commit/86f2636f7c5e7b56fa035fa3826d5fcf80b6dc72), +as it is no longer needed for `composer install --classmap-authoritative`. +Also, that directive was causing issues with HHVM installations, since +PackageVersions is not compatible with it. + +Total issues resolved: **1** + +- [34: Fatal error during travis build after update to 1.1.0](https://github.com/Ocramius/PackageVersions/issues/34) + +## 1.1.0 - 2016-07-22 + +This release introduces support for running `composer install --classmap-authoritative` +and `composer install --no-scripts`. Please note that performance +while using these modes may be degraded, but the package will +still work. + +Additionally, the package was tuned to prevent the plugin from +running twice at installation. + +Total issues resolved: **10** + +- [18: Fails when using composer install --no-scripts](https://github.com/Ocramius/PackageVersions/issues/18) +- [20: CS (spacing)](https://github.com/Ocramius/PackageVersions/pull/20) +- [22: Document the way the require-dev section is treated](https://github.com/Ocramius/PackageVersions/issues/22) +- [23: Underline that composer.lock is used as source of information](https://github.com/Ocramius/PackageVersions/pull/23) +- [27: Fix incompatibility with --classmap-authoritative](https://github.com/Ocramius/PackageVersions/pull/27) +- [29: mention optimize-autoloader composer.json config option in README](https://github.com/Ocramius/PackageVersions/pull/29) +- [30: The version class is generated twice during composer update](https://github.com/Ocramius/PackageVersions/issues/30) +- [31: Remove double registration of the event listeners](https://github.com/Ocramius/PackageVersions/pull/31) +- [32: Update the usage of mock APIs to use the new API](https://github.com/Ocramius/PackageVersions/pull/32) +- [33: Fix for #18 - support running with --no-scripts flag](https://github.com/Ocramius/PackageVersions/pull/33) + +## 1.0.4 - 2016-04-23 + +This release includes a fix/workaround for composer/composer#5237, +which causes `ocramius/package-versions` to sometimes generate a +`Versions` class with malformed name (something like +`Versions_composer_tmp0`) when running `composer require `. + +Total issues resolved: **2** + +- [16: Workaround for composer/composer#5237 - class parsing](https://github.com/Ocramius/PackageVersions/pull/16) +- [17: Weird Class name being generated](https://github.com/Ocramius/PackageVersions/issues/17) + +## 1.0.3 - 2016-02-26 + +This release fixes an issue related to concurrent autoloader +re-generation caused by multiple composer plugins being installed. +The issue was solved by removing autoloader re-generation from this +package, but it may still affect other packages. + +It is now recommended that you run `composer dump-autoload --optimize` +after installation when using this particular package. +Please note that `composer (install|update) -o` is not sufficient +to avoid autoload overhead when using this particular package. + +Total issues resolved: **1** + +- [15: Remove autoload re-dump optimization](https://github.com/Ocramius/PackageVersions/pull/15) + +## 1.0.2 - 2016-02-24 + +This release fixes issues related to installing the component without +any dev dependencies or with packages that don't have a source or dist +reference, which is usual with packages defined directly in the +`composer.json`. + +Total issues resolved: **3** + +- [11: fix composer install --no-dev PHP7](https://github.com/Ocramius/PackageVersions/pull/11) +- [12: Packages don't always have a source/reference](https://github.com/Ocramius/PackageVersions/issues/12) +- [13: Fix #12 - support dist and missing package version references](https://github.com/Ocramius/PackageVersions/pull/13) + +## 1.0.1 - 2016-02-01 + +This release fixes an issue related with composer updates to +already installed versions. +Using `composer require` within a package that already used +`ocramius/package-versions` caused the installation to be unable +to write the `PackageVersions\Versions` class to a file. + +Total issues resolved: **6** + +- [2: remove unused use statement](https://github.com/Ocramius/PackageVersions/pull/2) +- [3: Remove useless files from dist package](https://github.com/Ocramius/PackageVersions/pull/3) +- [5: failed to open stream: phar error: write operations disabled by the php.ini setting phar.readonly](https://github.com/Ocramius/PackageVersions/issues/5) +- [6: Fix/#5 use composer vendor dir](https://github.com/Ocramius/PackageVersions/pull/6) +- [7: Hotfix - #5 generate package versions also when in phar context](https://github.com/Ocramius/PackageVersions/pull/7) +- [8: Versions class should be ignored by VCS, as it is an install-time artifact](https://github.com/Ocramius/PackageVersions/pull/8) diff --git a/vendor/composer/package-versions-deprecated/CONTRIBUTING.md b/vendor/composer/package-versions-deprecated/CONTRIBUTING.md new file mode 100644 index 00000000..71806175 --- /dev/null +++ b/vendor/composer/package-versions-deprecated/CONTRIBUTING.md @@ -0,0 +1,39 @@ +--- +title: Contributing +--- + +# Contributing + + * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) + * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php) + * Any contribution must provide tests for additional introduced conditions + * Any un-confirmed issue needs a failing test case before being accepted + * Pull requests must be sent from a new hotfix/feature branch, not from `master`. + +## Installation + +To install the project and run the tests, you need to clone it first: + +```sh +$ git clone git://github.com/Ocramius/PackageVersions.git +``` + +You will then need to run a composer installation: + +```sh +$ cd PackageVersions +$ curl -s https://getcomposer.org/installer | php +$ php composer.phar update +``` + +## Testing + +The PHPUnit version to be used is the one installed as a dev- dependency via composer: + +```sh +$ ./vendor/bin/phpunit +``` + +Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement +won't be merged. + diff --git a/vendor/composer/package-versions-deprecated/LICENSE b/vendor/composer/package-versions-deprecated/LICENSE new file mode 100644 index 00000000..a90b0792 --- /dev/null +++ b/vendor/composer/package-versions-deprecated/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 Marco Pivetta + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/composer/package-versions-deprecated/README.md b/vendor/composer/package-versions-deprecated/README.md new file mode 100644 index 00000000..8bea9d41 --- /dev/null +++ b/vendor/composer/package-versions-deprecated/README.md @@ -0,0 +1,7 @@ +# Package Versions + +**`composer/package-versions-deprecated` is a fully-compatible fork of [`ocramius/package-versions`](https://github.com/Ocramius/PackageVersions)** which provides compatibility with Composer 1 and 2 on PHP 7+. It replaces ocramius/package-versions so if you have a dependency requiring it and you want to use Composer v2 but can not upgrade to PHP 7.4 just yet, you can require this package instead. + +If you have a **direct** dependency on `ocramius/package-versions`, we recommend that once you migrated to Composer 2.x you also migrate to use the [`Composer\InstalledVersions`](https://getcomposer.org/doc/07-runtime.md#installed-versions) class which offers the functionality present here out of the box. You can then remove the require on this package. + +This package is EOL / deprecated and you should aim to migrate away from it as soon as possible! diff --git a/vendor/composer/package-versions-deprecated/SECURITY.md b/vendor/composer/package-versions-deprecated/SECURITY.md new file mode 100644 index 00000000..da9c516d --- /dev/null +++ b/vendor/composer/package-versions-deprecated/SECURITY.md @@ -0,0 +1,5 @@ +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. diff --git a/vendor/composer/package-versions-deprecated/composer.json b/vendor/composer/package-versions-deprecated/composer.json new file mode 100644 index 00000000..d5a40daa --- /dev/null +++ b/vendor/composer/package-versions-deprecated/composer.json @@ -0,0 +1,48 @@ +{ + "name": "composer/package-versions-deprecated", + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "type": "composer-plugin", + "license": "MIT", + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "require": { + "php": "^7 || ^8", + "composer-plugin-api": "^1.1.0 || ^2.0" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7", + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13" + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "autoload-dev": { + "psr-4": { + "PackageVersionsTest\\": "test/PackageVersionsTest" + } + }, + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "scripts": { + "post-update-cmd": "PackageVersions\\Installer::dumpVersionsClass", + "post-install-cmd": "PackageVersions\\Installer::dumpVersionsClass" + } +} diff --git a/vendor/composer/package-versions-deprecated/composer.lock b/vendor/composer/package-versions-deprecated/composer.lock new file mode 100644 index 00000000..b711f6b1 --- /dev/null +++ b/vendor/composer/package-versions-deprecated/composer.lock @@ -0,0 +1,2603 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "6bfe0a7d7a51c4bdf14a2d7ea1d22d11", + "packages": [], + "packages-dev": [ + { + "name": "composer/ca-bundle", + "version": "1.2.7", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/95c63ab2117a72f48f5a55da9740a3273d45b7fd", + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-04-08T08:27:21+00:00" + }, + { + "name": "composer/composer", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "a8c105da344dd84ebd5d11be7943a45b09dc076f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/a8c105da344dd84ebd5d11be7943a45b09dc076f", + "reference": "a8c105da344dd84ebd5d11be7943a45b09dc076f", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" + }, + "conflict": { + "symfony/console": "2.8.38" + }, + "require-dev": { + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^3.4" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/master" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-03-29T14:59:26+00:00" + }, + { + "name": "composer/semver", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/1.5.1" + }, + "time": "2020-01-13T12:06:48+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.3", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "0c3e51e1880ca149682332770e25977c70cf9dae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae", + "reference": "0c3e51e1880ca149682332770e25977c70cf9dae", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "time": "2020-02-14T07:44:31+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/master" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + } + ], + "time": "2020-03-01T12:26:26+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/master" + }, + "time": "2019-10-21T16:45:58+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.9", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.9" + }, + "time": "2019-09-25T14:49:45+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.9.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.9.5" + }, + "time": "2020-01-17T21:11:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "time": "2018-08-07T13:53:10+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "shasum": "" + }, + "require": { + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" + }, + "require-dev": { + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2020-02-22T12:28:44+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "shasum": "" + }, + "require": { + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/master" + }, + "time": "2020-02-18T18:59:58+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.10.3", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.10.3" + }, + "time": "2020-03-05T15:02:03+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "6.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "suggest": { + "ext-xdebug": "^2.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2018-10-31T16:06:48+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2019-06-07T04:22:29+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2019-09-17T06:23:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "7.5.20", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpunit/phpunit-mock-objects": "*" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2020-01-08T08:45:45+00:00" + }, + { + "name": "psr/container", + "version": "1.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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "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" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "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" + ], + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "shasum": "" + }, + "require": { + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2019-02-04T06:01:07+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.2.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2019-11-20T08:46:58+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2019-09-14T09:02:43+00:00" + }, + { + "name": "sebastian/global-state", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.7.2" + }, + "time": "2019-10-24T14:27:39+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0", + "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.1.0" + }, + "time": "2020-02-14T15:25:33+00:00" + }, + { + "name": "symfony/console", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", + "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "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", + "support": { + "source": "https://github.com/symfony/console/tree/v5.0.7" + }, + "time": "2020-03-30T11:42:42+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "ca3b87dd09fff9b771731637f5379965fbfab420" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/ca3b87dd09fff9b771731637f5379965fbfab420", + "reference": "ca3b87dd09fff9b771731637f5379965fbfab420", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "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", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.0.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d", + "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "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", + "support": { + "source": "https://github.com/symfony/finder/tree/5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "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" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.15.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "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" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.15.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-03-09T19:04:49+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "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.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.15.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-02-27T09:26:54+00:00" + }, + { + "name": "symfony/process", + "version": "v5.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e", + "reference": "c5ca4a0fc16a0c888067d43fbcfe1f8a53d8e70e", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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 Process Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.0.7" + }, + "time": "2020-03-27T16:56:45+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "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": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.0.1" + }, + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozart/assert/issues", + "source": "https://github.com/webmozart/assert/tree/master" + }, + "time": "2020-04-18T12:12:48+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "composer/composer": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7", + "composer-plugin-api": "^1.1.0 || ^2.0" + }, + "platform-dev": { + "ext-zip": "^1.13" + }, + "plugin-api-version": "1.1.0" +} diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php new file mode 100644 index 00000000..18e5fe64 --- /dev/null +++ b/vendor/composer/package-versions-deprecated/src/PackageVersions/FallbackVersions.php @@ -0,0 +1,128 @@ + + */ + private static function getVersions(array $packageData): Generator + { + foreach ($packageData as $package) { + yield $package['name'] => $package['version'] . '@' . ( + $package['source']['reference'] ?? $package['dist']['reference'] ?? '' + ); + } + + yield self::ROOT_PACKAGE_NAME => self::ROOT_PACKAGE_NAME; + } +} diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php new file mode 100644 index 00000000..05bdac9a --- /dev/null +++ b/vendor/composer/package-versions-deprecated/src/PackageVersions/Installer.php @@ -0,0 +1,290 @@ + + * @internal + */ + const VERSIONS = %s; + + private function __construct() + { + } + + /** + * @psalm-pure + * + * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not + * cause any side effects here. + */ + public static function rootPackageName() : string + { + if (!self::composer2ApiUsable()) { + return self::ROOT_PACKAGE_NAME; + } + + return InstalledVersions::getRootPackage()['name']; + } + + /** + * @throws OutOfBoundsException If a version cannot be located. + * + * @psalm-param key-of $packageName + * @psalm-pure + * + * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not + * cause any side effects here. + */ + public static function getVersion(string $packageName): string + { + if (self::composer2ApiUsable()) { + return InstalledVersions::getPrettyVersion($packageName) + . '@' . InstalledVersions::getReference($packageName); + } + + if (isset(self::VERSIONS[$packageName])) { + return self::VERSIONS[$packageName]; + } + + throw new OutOfBoundsException( + 'Required package "' . $packageName . '" is not installed: check your ./vendor/composer/installed.json and/or ./composer.lock files' + ); + } + + private static function composer2ApiUsable(): bool + { + if (!class_exists(InstalledVersions::class, false)) { + return false; + } + + if (method_exists(InstalledVersions::class, 'getAllRawData')) { + $rawData = InstalledVersions::getAllRawData(); + if (count($rawData) === 1 && count($rawData[0]) === 0) { + return false; + } + } else { + $rawData = InstalledVersions::getRawData(); + if ($rawData === null || $rawData === []) { + return false; + } + } + + return true; + } +} + +PHP; + + public function activate(Composer $composer, IOInterface $io) + { + // Nothing to do here, as all features are provided through event listeners + } + + public function deactivate(Composer $composer, IOInterface $io) + { + // Nothing to do here, as all features are provided through event listeners + } + + public function uninstall(Composer $composer, IOInterface $io) + { + // Nothing to do here, as all features are provided through event listeners + } + + /** + * {@inheritDoc} + */ + public static function getSubscribedEvents(): array + { + return [ScriptEvents::POST_AUTOLOAD_DUMP => 'dumpVersionsClass']; + } + + /** + * @throws RuntimeException + */ + public static function dumpVersionsClass(Event $composerEvent) + { + $composer = $composerEvent->getComposer(); + $rootPackage = $composer->getPackage(); + $versions = iterator_to_array(self::getVersions($composer->getLocker(), $rootPackage)); + + if (! array_key_exists('composer/package-versions-deprecated', $versions)) { + //plugin must be globally installed - we only want to generate versions for projects which specifically + //require composer/package-versions-deprecated + return; + } + + $versionClass = self::generateVersionsClass($rootPackage->getName(), $versions); + + self::writeVersionClassToFile($versionClass, $composer, $composerEvent->getIO()); + } + + /** + * @param string[] $versions + */ + private static function generateVersionsClass(string $rootPackageName, array $versions): string + { + return sprintf( + self::$generatedClassTemplate, + 'fin' . 'al ' . 'cla' . 'ss ' . 'Versions', // note: workaround for regex-based code parsers :-( + $rootPackageName, + var_export($versions, true) + ); + } + + /** + * @throws RuntimeException + */ + private static function writeVersionClassToFile(string $versionClassSource, Composer $composer, IOInterface $io) + { + $installPath = self::locateRootPackageInstallPath($composer->getConfig(), $composer->getPackage()) + . '/src/PackageVersions/Versions.php'; + + $installDir = dirname($installPath); + if (! file_exists($installDir)) { + $io->write('composer/package-versions-deprecated: Package not found (probably scheduled for removal); generation of version class skipped.'); + + return; + } + + if (! is_writable($installDir)) { + $io->write( + sprintf( + 'composer/package-versions-deprecated: %s is not writable; generation of version class skipped.', + $installDir + ) + ); + + return; + } + + $io->write('composer/package-versions-deprecated: Generating version class...'); + + $installPathTmp = $installPath . '_' . uniqid('tmp', true); + file_put_contents($installPathTmp, $versionClassSource); + chmod($installPathTmp, 0664); + rename($installPathTmp, $installPath); + + $io->write('composer/package-versions-deprecated: ...done generating version class'); + } + + /** + * @throws RuntimeException + */ + private static function locateRootPackageInstallPath( + Config $composerConfig, + RootPackageInterface $rootPackage + ): string { + if (self::getRootPackageAlias($rootPackage)->getName() === 'composer/package-versions-deprecated') { + return dirname($composerConfig->get('vendor-dir')); + } + + return $composerConfig->get('vendor-dir') . '/composer/package-versions-deprecated'; + } + + private static function getRootPackageAlias(RootPackageInterface $rootPackage): PackageInterface + { + $package = $rootPackage; + + while ($package instanceof AliasPackage) { + $package = $package->getAliasOf(); + } + + return $package; + } + + /** + * @return Generator&string[] + * + * @psalm-return Generator + */ + private static function getVersions(Locker $locker, RootPackageInterface $rootPackage): Generator + { + $lockData = $locker->getLockData(); + + $lockData['packages-dev'] = $lockData['packages-dev'] ?? []; + + $packages = $lockData['packages']; + if (getenv('COMPOSER_DEV_MODE') !== '0') { + $packages = array_merge($packages, $lockData['packages-dev']); + } + foreach ($packages as $package) { + yield $package['name'] => $package['version'] . '@' . ( + $package['source']['reference'] ?? $package['dist']['reference'] ?? '' + ); + } + + foreach ($rootPackage->getReplaces() as $replace) { + $version = $replace->getPrettyConstraint(); + if ($version === 'self.version') { + $version = $rootPackage->getPrettyVersion(); + } + + yield $replace->getTarget() => $version . '@' . $rootPackage->getSourceReference(); + } + + yield $rootPackage->getName() => $rootPackage->getPrettyVersion() . '@' . $rootPackage->getSourceReference(); + } +} diff --git a/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php b/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php new file mode 100644 index 00000000..c1f45b5d --- /dev/null +++ b/vendor/composer/package-versions-deprecated/src/PackageVersions/Versions.php @@ -0,0 +1,94 @@ +getHomeDir(); +echo $xdg->getHomeConfigDir(); +echo $xdg->getHomeDataDir(); +echo $xdg->getHomeCacheDir(); +echo $xdg->getRuntimeDir(); + +print_r($xdg->getDataDirs()); // returns array +print_r($xdg->getConfigDirs()); // returns array +``` + +## Testing + +``` bash +$ phpunit +``` + +## License + +The MIT License (MIT). Please see [License File](https://github.com/dnoegel/php-xdg-base-dir/blob/master/LICENSE) for more information. diff --git a/vendor/dnoegel/php-xdg-base-dir/composer.json b/vendor/dnoegel/php-xdg-base-dir/composer.json new file mode 100644 index 00000000..94c46374 --- /dev/null +++ b/vendor/dnoegel/php-xdg-base-dir/composer.json @@ -0,0 +1,17 @@ +{ + "name": "dnoegel/php-xdg-base-dir", + "description": "implementation of xdg base directory specification for php", + "type": "library", + "license": "MIT", + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + } +} diff --git a/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php b/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php new file mode 100644 index 00000000..2dd314d0 --- /dev/null +++ b/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php @@ -0,0 +1,132 @@ +getHomeDir(); + + $path = DIRECTORY_SEPARATOR === $homeDir ? $homeDir.'.config' : $homeDir . DIRECTORY_SEPARATOR . '.config'; + + return $path; + } + + /** + * @return string + */ + public function getHomeDataDir() + { + $path = getenv('XDG_DATA_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.local' . DIRECTORY_SEPARATOR . 'share'; + + return $path; + } + + /** + * @return array + */ + public function getConfigDirs() + { + $configDirs = getenv('XDG_CONFIG_DIRS') ? explode(':', getenv('XDG_CONFIG_DIRS')) : array('/etc/xdg'); + + $paths = array_merge(array($this->getHomeConfigDir()), $configDirs); + + return $paths; + } + + /** + * @return array + */ + public function getDataDirs() + { + $dataDirs = getenv('XDG_DATA_DIRS') ? explode(':', getenv('XDG_DATA_DIRS')) : array('/usr/local/share', '/usr/share'); + + $paths = array_merge(array($this->getHomeDataDir()), $dataDirs); + + return $paths; + } + + /** + * @return string + */ + public function getHomeCacheDir() + { + $path = getenv('XDG_CACHE_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.cache'; + + return $path; + + } + + public function getRuntimeDir($strict=true) + { + if ($runtimeDir = getenv('XDG_RUNTIME_DIR')) { + return $runtimeDir; + } + + if ($strict) { + throw new \RuntimeException('XDG_RUNTIME_DIR was not set'); + } + + $fallback = sys_get_temp_dir() . DIRECTORY_SEPARATOR . self::RUNTIME_DIR_FALLBACK . getenv('USER'); + + $create = false; + + if (!is_dir($fallback)) { + mkdir($fallback, 0700, true); + } + + $st = lstat($fallback); + + # The fallback must be a directory + if (!$st['mode'] & self::S_IFDIR) { + rmdir($fallback); + $create = true; + } elseif ($st['uid'] != $this->getUid() || + $st['mode'] & (self::S_IRWXG | self::S_IRWXO) + ) { + rmdir($fallback); + $create = true; + } + + if ($create) { + mkdir($fallback, 0700, true); + } + + return $fallback; + } + + private function getUid() + { + if (function_exists('posix_getuid')) { + return posix_getuid(); + } + + return getmyuid(); + } +} diff --git a/vendor/felixfbecker/language-server-protocol/.editorconfig b/vendor/felixfbecker/language-server-protocol/.editorconfig new file mode 100644 index 00000000..b5f0c5df --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/.editorconfig @@ -0,0 +1,17 @@ + +[*] +insert_final_newline = true +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 + +[*.{json,yml}] +indent_size = 2 + +[composer.json] +indent_size = 4 + +[*.md] +trim_trailing_whitespace = false diff --git a/vendor/felixfbecker/language-server-protocol/.github/workflows/build.yml b/vendor/felixfbecker/language-server-protocol/.github/workflows/build.yml new file mode 100644 index 00000000..5a9a2a4d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/.github/workflows/build.yml @@ -0,0 +1,67 @@ +name: build + +on: [push, pull_request] + +env: + FORCE_COLOR: 3 + +jobs: + test: + if: github.event_name == 'pull_request' || github.ref == 'refs/heads/master' + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - php: '7.4' + os: ubuntu-18.04 + - php: '8.0' + os: ubuntu-18.04 + - php: '8.1' + os: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: '14.15.3' # renovate:keep-up-to-date + - name: Install npm dependencies + run: npm ci + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: ${{ matrix.xdebug }}, ast + tools: composer + - name: Composer Install + run: COMPOSER_ROOT_VERSION=dev-master composer install --prefer-dist --no-interaction + - name: phpcs + run: ./vendor/bin/phpcs -n + - name: phpstan + run: ./vendor/bin/phpstan + - name: psalm + run: ./vendor/bin/psalm +# - name: phan +# run: ./vendor/bin/phan +# - name: phpunit +# run: vendor/bin/phpunit --coverage-clover=coverage.xml --colors=always +# - name: Upload coverage to Codecov +# uses: codecov/codecov-action@v2 +# release: +# runs-on: ubuntu-18.04 +# needs: test +# if: github.repository_owner == 'xdebug' && github.event_name == 'push' && github.ref == 'refs/heads/main' +# steps: +# - uses: actions/checkout@v2 +# - name: Setup Node.js +# uses: actions/setup-node@v2 +# with: +# node-version: '14.15.3' # renovate:keep-up-to-date +# - name: Install npm dependencies +# run: npm ci +# - name: Build VS Code extension +# run: npm run build +# - name: Release +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# VSCE_TOKEN: ${{ secrets.VSCE_TOKEN }} +# run: npm run semantic-release diff --git a/vendor/felixfbecker/language-server-protocol/LICENSE b/vendor/felixfbecker/language-server-protocol/LICENSE new file mode 100644 index 00000000..fc354170 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2016, Felix Frederick Becker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/felixfbecker/language-server-protocol/README.md b/vendor/felixfbecker/language-server-protocol/README.md new file mode 100644 index 00000000..1e169d1e --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/README.md @@ -0,0 +1,19 @@ +# Language Server Protocol for PHP + +[![packagist](https://img.shields.io/packagist/v/felixfbecker/language-server-protocol.svg)](https://packagist.org/packages/felixfbecker/language-server-protocol) +[![build](https://travis-ci.org/felixfbecker/php-language-server-protocol.svg?branch=master)](https://travis-ci.org/felixfbecker/php-language-server-protocol) +[![php](https://img.shields.io/badge/php-%3E%3D%207.0-8892BF.svg)](https://php.net/) +[![license](https://img.shields.io/packagist/l/felixfbecker/language-server-protocol.svg)](https://github.com/felixfbecker/php-language-server-protocol/blob/master/LICENSE) + +Protocol classes for the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) in PHP + +## Installation + +``` +composer require felixfbecker/language-server-protocol +``` + +## Releases + +Releases are done automatically in CI by analyzing commit messages. +Make sure to follow the [Conventional Commits Convention](https://www.conventionalcommits.org/en/v1.0.0-beta.2/). diff --git a/vendor/felixfbecker/language-server-protocol/composer.json b/vendor/felixfbecker/language-server-protocol/composer.json new file mode 100644 index 00000000..4d653b4a --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/composer.json @@ -0,0 +1,44 @@ +{ + "name": "felixfbecker/language-server-protocol", + "description": "PHP classes for the Language Server Protocol", + "license": "ISC", + "keywords": [ + "php", + "language", + "server", + "microsoft" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "minimum-stability": "dev", + "prefer-stable": true, + "scripts": + { + "phpstan": "phpstan analyse -c phpstan.neon --ansi --level=7 -vvv src", + "psalm": "psalm", + "phpcs": "phpcs", + "phpcbf": "phpcbf" + } +} diff --git a/vendor/felixfbecker/language-server-protocol/package-lock.json b/vendor/felixfbecker/language-server-protocol/package-lock.json new file mode 100644 index 00000000..7fcdd3b4 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/package-lock.json @@ -0,0 +1,6489 @@ +{ + "name": "php-language-server-protocol", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz", + "integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==", + "dev": true + }, + "@octokit/rest": { + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-15.12.0.tgz", + "integrity": "sha512-5wRag4kHRkp0JDo++L9x9FkDlHEALbLnbSede16D8u+a2/t+gX32uhDs8cukVLyyrZR79nmh1lNpxZmffwoNoQ==", + "dev": true, + "requires": { + "before-after-hook": "^1.1.0", + "btoa-lite": "^1.0.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lodash": "^4.17.4", + "node-fetch": "^2.1.1", + "universal-user-agent": "^2.0.0", + "url-template": "^2.0.8" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@semantic-release/commit-analyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.0.1.tgz", + "integrity": "sha512-ENCRn1tm1D08CCBnIPsID8GjboWT6E97s0Lk3XrpAh+IMx615uAU1X2FoXyOGGc6zmqp9Ff4s8KECd/GjMcodQ==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "import-from": "^2.1.0", + "lodash": "^4.17.4" + } + }, + "@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true + }, + "@semantic-release/github": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.0.5.tgz", + "integrity": "sha512-Hdt6b8ST2pg6pl151PlcsnTcdsC2UJhA5FdbmunbZG/TVmlnKCZ4WUzpji7YqJtDLjbQTuFm/vhM6atW3XjMWg==", + "dev": true, + "requires": { + "@octokit/rest": "^15.2.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "bottleneck": "^2.0.1", + "debug": "^4.0.0", + "dir-glob": "^2.0.0", + "fs-extra": "^7.0.0", + "globby": "^8.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "issue-parser": "^3.0.0", + "lodash": "^4.17.4", + "mime": "^2.0.3", + "p-filter": "^1.0.0", + "p-retry": "^2.0.0", + "parse-github-url": "^1.0.1", + "url-join": "^4.0.0" + } + }, + "@semantic-release/npm": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.0.4.tgz", + "integrity": "sha512-ExGXP9GnM2hqUIgTnp6sXKB1G0Yh+fuLftmIopq5KHBWj34Wd2YbM/3iLkXXnAP1YZ9YCp7hsAdsR014ctbwHg==", + "dev": true, + "requires": { + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "detect-indent": "^5.0.0", + "detect-newline": "^2.1.0", + "execa": "^1.0.0", + "fs-extra": "^7.0.0", + "lodash": "^4.17.4", + "nerf-dart": "^1.0.0", + "normalize-url": "^3.0.0", + "npm": "^6.3.0", + "parse-json": "^4.0.0", + "rc": "^1.2.8", + "read-pkg": "^4.0.0", + "registry-auth-token": "^3.3.1" + }, + "dependencies": { + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + } + } + }, + "@semantic-release/release-notes-generator": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.0.2.tgz", + "integrity": "sha512-fomHrGq/gfZIAQYZk0MLRwfQ8d+DbTcI3kuO1hU2L0fDJYKHZHuPmKnsfVa5KoNdVVPHx878D/ojgyStRqhc9g==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^4.0.0", + "git-url-parse": "^10.0.1", + "import-from": "^2.1.0", + "into-stream": "^3.1.0", + "lodash": "^4.17.4" + } + }, + "JSONStream": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", + "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "aggregate-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz", + "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", + "dev": true, + "requires": { + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "before-after-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.1.0.tgz", + "integrity": "sha512-VOMDtYPwLbIncTxNoSzRyvaMxtXmLWLUqr8k5AfC1BzLk34HvBXaQX8snOwQZ4c0aX8aSERqtJSiI9/m2u5kuA==", + "dev": true + }, + "bottleneck": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.11.0.tgz", + "integrity": "sha512-DvKiYR1kG1qRVoLBUtPlmJffktoBZIz3qtdUbINlwzQXDhlhZdF8gWesPjwp05xqr5QZ7wXA2k1w78/COCweTg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "dev": true, + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", + "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true + }, + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "conventional-changelog-angular": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.1.tgz", + "integrity": "sha512-q4ylJ68fWZDdrFC9z4zKcf97HW6hp7Mo2YlqD4owfXhecFKy/PJCU/1oVFF4TqochchChqmZ0Vb0e0g8/MKNlA==", + "dev": true, + "requires": { + "compare-func": "^1.3.1", + "q": "^1.5.1" + } + }, + "conventional-changelog-writer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.0.tgz", + "integrity": "sha512-hMZPe0AQ6Bi05epeK/7hz80xxk59nPA5z/b63TOHq2wigM0/akreOc8N4Jam5b9nFgKWX1e9PdPv2ewgW6bcfg==", + "dev": true, + "requires": { + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.0", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" + } + }, + "conventional-commits-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.0.tgz", + "integrity": "sha512-Cfl0j1/NquB/TMVx7Wrmyq7uRM+/rPQbtVVGwzfkhZ6/yH6fcMmP0Q/9044TBZPTNdGzm46vXFXL14wbET0/Mg==", + "dev": true, + "requires": { + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.0.tgz", + "integrity": "sha512-GWh71U26BLWgMykCp+VghZ4s64wVbtseECcKQ/PvcPZR2cUnz+FUc2J9KjxNl7/ZbCxST8R03c9fc+Vi0umS9Q==", + "dev": true, + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.0.1.tgz", + "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.0.0.tgz", + "integrity": "sha512-3Xt4Cfjdy9MTTrg/eWTnJNQIrtU1DDV0KyuWOGlrR2oa9dOdzoOMbQBFbfrTiv+GypdiWWIw5HdmtakZO+rzWA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "java-properties": "^0.2.9" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "find-versions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-2.0.0.tgz", + "integrity": "sha1-KtkNSQ9oKMGqQCks9wmsMxghDDw=", + "dev": true, + "requires": { + "array-uniq": "^1.0.0", + "semver-regex": "^1.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", + "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "git-log-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", + "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "dev": true, + "requires": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" + }, + "dependencies": { + "split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", + "dev": true, + "requires": { + "through2": "~2.0.0" + } + } + } + }, + "git-up": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-2.0.10.tgz", + "integrity": "sha512-2v4UN3qV2RGypD9QpmUjpk+4+RlYpW8GFuiZqQnKmvei08HsFPd0RfbDvEhnE4wBvnYs8ORVtYpOFuuCEmBVBw==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "parse-url": "^1.3.0" + } + }, + "git-url-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-10.0.1.tgz", + "integrity": "sha512-Tq2u8UPXc/FawC/dO8bvh8jcck0Lkor5OhuZvmVSeyJGRucDBfw9y2zy/GNCx28lMYh1N12IzPwDexjUNFyAeg==", + "dev": true, + "requires": { + "git-up": "^2.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "handlebars": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "dev": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hook-std": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.1.0.tgz", + "integrity": "sha512-aIyBZbZl3NS8XoSwIDQ+ZaiBuPOhhPWoBFA3QX0Q8hOMO8Tx4xGRTDnn/nl/LAtZWdieXzFC9ohAtTSnWrlHCQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-ssh": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.0.tgz", + "integrity": "sha1-6+oRaaJhTaOSpjdANmw84EnY3/Y=", + "dev": true, + "requires": { + "protocols": "^1.1.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "dev": true + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "issue-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-3.0.0.tgz", + "integrity": "sha512-VWIhBdy0eOhlvpxOOMecBCHMpjx7lWVZcYpSzjD4dSdxptzI9TBR/cQEh057HL8+7jQKTLs+uCtezY/9VoveCA==", + "dev": true, + "requires": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + } + }, + "java-properties": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", + "integrity": "sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w==", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + } + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "dev": true + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "macos-release": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz", + "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", + "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.0.tgz", + "integrity": "sha512-UhjmkCWKu1SS/BIePL2a59BMJ7V42EYtTfksodPRXzPEGEph3Inp5dylseqt+KbU9Jglsx8xcMKmlumfJMBXAA==", + "dev": true + }, + "marked-terminal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.1.1.tgz", + "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==", + "dev": true, + "requires": { + "cardinal": "^2.1.1", + "chalk": "^2.4.1", + "cli-table": "^0.3.1", + "lodash.assign": "^4.2.0", + "node-emoji": "^1.4.1" + } + }, + "mem": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" + } + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + }, + "dependencies": { + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + } + } + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", + "dev": true, + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-fetch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", + "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.4.1.tgz", + "integrity": "sha512-mXJL1NTVU136PtuopXCUQaNWuHlXCTp4McwlSW8S9/Aj8OEPAlSBgo8og7kJ01MjCDrkmqFQTvN5tTEhBMhXQg==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.2.0", + "archy": "~1.0.0", + "bin-links": "^1.1.2", + "bluebird": "~3.5.1", + "byte-size": "^4.0.3", + "cacache": "^11.2.0", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "ci-info": "^1.4.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.0", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.11", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.4.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.0.1", + "glob": "~7.1.2", + "graceful-fs": "~4.1.11", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.7.1", + "iferr": "^1.0.2", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^2.0.6", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^2.0.2", + "libnpmhook": "^4.0.1", + "libnpx": "^10.2.0", + "lock-verify": "^2.0.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^4.1.3", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "~0.5.1", + "move-concurrently": "^1.0.1", + "node-gyp": "^3.8.0", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-audit-report": "^1.3.1", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-lifecycle": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.11", + "npm-pick-manifest": "^2.1.0", + "npm-profile": "^3.0.2", + "npm-registry-client": "^8.6.0", + "npm-registry-fetch": "^1.1.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.0", + "osenv": "^0.1.5", + "pacote": "^8.1.6", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.1.0", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "^2.0.13", + "read-package-tree": "^5.2.1", + "readable-stream": "^2.3.6", + "readdir-scoped-modules": "*", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "~2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.0", + "stringify-package": "^1.0.0", + "tar": "^4.4.6", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.6.0", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "agent-base": { + "version": "4.2.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.4.1", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "5.5.2", + "bundled": true, + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "asap": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "asn1": { + "version": "0.2.4", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.8.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "cmd-shim": "^2.0.2", + "gentle-fs": "^2.0.0", + "graceful-fs": "^4.1.11", + "write-file-atomic": "^2.3.0" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.1", + "bundled": true, + "dev": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "byline": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "byte-size": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "11.2.0", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "call-limit": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ci-info": { + "version": "1.4.0", + "bundled": true, + "dev": true + }, + "cidr-regex": { + "version": "2.0.9", + "bundled": true, + "dev": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.0", + "bundled": true, + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es6-promise": { + "version": "4.2.4", + "bundled": true, + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "figgy-pudding": { + "version": "3.4.1", + "bundled": true, + "dev": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "gentle-fs": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true, + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-ci": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ci-info": "^1.0.0" + } + }, + "is-cidr": { + "version": "2.0.6", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "^2.0.8" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "libcipm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^2.0.3", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^8.1.6", + "protoduck": "^5.0.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpmhook": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.1.0", + "npm-registry-fetch": "^3.0.0" + }, + "dependencies": { + "npm-registry-fetch": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.1.0", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^4.0.0", + "npm-package-arg": "^6.0.0" + } + } + } + }, + "libnpx": { + "version": "10.2.0", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lock-verify": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^5.1.2 || 6", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mime-db": { + "version": "1.35.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "bundled": true, + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + } + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-audit-report": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2 || 2", + "make-fetch-happen": "^2.5.0 || 3 || 4" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + }, + "ssri": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + } + } + }, + "npm-registry-fetch": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^2.0.1", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^3.0.0", + "npm-package-arg": "^6.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "mississippi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + } + } + }, + "figgy-pudding": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "make-fetch-happen": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^10.0.4", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.1", + "ssri": "^5.2.4" + } + }, + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true, + "dev": true + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "socks": "^1.1.10" + } + }, + "ssri": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.0", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "8.1.6", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "pify": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + }, + "protoduck": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "genfun": "^4.0.1" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "psl": { + "version": "1.1.29", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.2", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.0.13", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.2.1", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "bundled": true, + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "retry": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slash": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "socks": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "bundled": true, + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.0", + "bundled": true, + "dev": true + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-package": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.6", + "bundled": true, + "dev": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "11.0.0", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "os-locale": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + } + } + }, + "os-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz", + "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=", + "dev": true, + "requires": { + "macos-release": "^1.0.0", + "win-release": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-1.0.0.tgz", + "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", + "dev": true, + "requires": { + "p-map": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + }, + "dependencies": { + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + } + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-retry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-2.0.0.tgz", + "integrity": "sha512-ZbCuzAmiwJ45q4evp/IG9D+5MUllGSUeCWwPt3j/tdYSi1KPkSD+46uqmAA1LhccDhOXv8kYZKNb8x78VflzfA==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-url": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-1.3.11.tgz", + "integrity": "sha1-V8FUKKuKiSsfQ4aWRccR0OFEtVQ=", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "protocols": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.6.tgz", + "integrity": "sha1-+LsmPqG1/Xp2BNJri+Ob13Z4v4o=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "requires": { + "esprima": "~4.0.0" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semantic-release": { + "version": "15.9.16", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.9.16.tgz", + "integrity": "sha512-5RWqMFwDBXzIaNGUdnJxI4aCd4DtKtdc+5ZNjNWXABEmkimZVuuzZhMaTVNhHYfSuVUqWG9GuATEKhjlVoTzfQ==", + "dev": true, + "requires": { + "@semantic-release/commit-analyzer": "^6.0.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^5.0.0", + "@semantic-release/npm": "^5.0.1", + "@semantic-release/release-notes-generator": "^7.0.0", + "aggregate-error": "^1.0.0", + "cosmiconfig": "^5.0.1", + "debug": "^4.0.0", + "env-ci": "^3.0.0", + "execa": "^1.0.0", + "figures": "^2.0.0", + "find-versions": "^2.0.0", + "get-stream": "^4.0.0", + "git-log-parser": "^1.2.0", + "git-url-parse": "^10.0.1", + "hook-std": "^1.1.0", + "hosted-git-info": "^2.7.1", + "lodash": "^4.17.4", + "marked": "^0.5.0", + "marked-terminal": "^3.0.0", + "p-locate": "^3.0.0", + "p-reduce": "^1.0.0", + "read-pkg-up": "^4.0.0", + "resolve-from": "^4.0.0", + "semver": "^5.4.1", + "signale": "^1.2.1", + "yargs": "^12.0.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "signale": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.3.0.tgz", + "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "^2.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "text-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.8.0.tgz", + "integrity": "sha512-mVzjRxuWnDKs/qH1rbOJEVHLlSX9kty9lpi7lMvLgU9S74mQ8/Ozg9UPcKxShh0qG2NZ+NyPOPpcZU4C1Eld9A==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "universal-user-agent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.1.tgz", + "integrity": "sha512-vz+heWVydO0iyYAa65VHD7WZkYzhl7BeNVy4i54p4TF8OMiLSXdbuQe4hm+fmWAsL+rVibaQHXfhvkw3c1Ws2w==", + "dev": true, + "requires": { + "os-name": "^2.0.1" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "dev": true + }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "win-release": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", + "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", + "dev": true, + "requires": { + "semver": "^5.0.1" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + }, + "dependencies": { + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + } + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } +} diff --git a/vendor/felixfbecker/language-server-protocol/package.json b/vendor/felixfbecker/language-server-protocol/package.json new file mode 100644 index 00000000..314301e0 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol" + }, + "release": { + "verifyConditions": "@semantic-release/github", + "prepare": [], + "publish": "@semantic-release/github" + }, + "devDependencies": { + "semantic-release": "^15.9.16" + } +} diff --git a/vendor/felixfbecker/language-server-protocol/psalm-baseline.xml b/vendor/felixfbecker/language-server-protocol/psalm-baseline.xml new file mode 100644 index 00000000..ca496853 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/psalm-baseline.xml @@ -0,0 +1,146 @@ + + + + + $range + + + + + $triggerKind + + + + + $label + + + + + $text + + + + + $message + + + + + $range + + + + + $firstTriggerCharacter + + + + + $insertSpaces + $tabSize + + + + + $contents + + + + + $range + $uri + + + + + $language + $value + + + + + $kind + $value + + + + + $title + + + + + $name + + + + + $character + $line + + + + + $end + $start + + + + + $includeDeclaration + + + + + $reference + $symbol + + + + + $fqsen + + + + + $kind + $location + $name + + + + + $symbol + + + + + $text + + + + + $uri + + + + + $languageId + $text + $uri + $version + + + + + $newText + $range + + + + + $version + + + diff --git a/vendor/felixfbecker/language-server-protocol/psalm.xml b/vendor/felixfbecker/language-server-protocol/psalm.xml new file mode 100644 index 00000000..378f26fa --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/psalm.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/vendor/felixfbecker/language-server-protocol/src/CallHierarchyClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/CallHierarchyClientCapabilities.php new file mode 100644 index 00000000..4062ada7 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CallHierarchyClientCapabilities.php @@ -0,0 +1,22 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ChangeAnnotation.php b/vendor/felixfbecker/language-server-protocol/src/ChangeAnnotation.php new file mode 100644 index 00000000..39868e53 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ChangeAnnotation.php @@ -0,0 +1,39 @@ +label = $label; + $this->needsConfirmation = $needsConfirmation; + $this->description = $description; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilities.php new file mode 100644 index 00000000..c706dce7 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilities.php @@ -0,0 +1,97 @@ +workspace = $workspace; + $this->textDocument = $textDocument; + $this->window = $window; + $this->general = $general; + $this->experimental = $experimental; + $this->xfilesProvider = $xfilesProvider; + $this->xcontentProvider = $xcontentProvider; + $this->xcacheProvider = $xcacheProvider; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesGeneral.php b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesGeneral.php new file mode 100644 index 00000000..70463d07 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesGeneral.php @@ -0,0 +1,33 @@ +regularExpressions = $regularExpressions; + $this->markdown = $markdown; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWindow.php b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWindow.php new file mode 100644 index 00000000..8d6551f5 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWindow.php @@ -0,0 +1,47 @@ +workDoneProgress = $workDoneProgress; + $this->showMessage = $showMessage; + $this->showDocument = $showDocument; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWorkspace.php b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWorkspace.php new file mode 100644 index 00000000..00e92475 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ClientCapabilitiesWorkspace.php @@ -0,0 +1,99 @@ +dynamicRegistration = $dynamicRegistration; + $this->didCreate = $didCreate; + $this->willCreate = $willCreate; + $this->didRename = $didRename; + $this->willRename = $willRename; + $this->didDelete = $didDelete; + $this->willDelete = $willDelete; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ClientInfo.php b/vendor/felixfbecker/language-server-protocol/src/ClientInfo.php new file mode 100644 index 00000000..5903a0c8 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ClientInfo.php @@ -0,0 +1,29 @@ +name = $name; + $this->version = $version; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeAction.php b/vendor/felixfbecker/language-server-protocol/src/CodeAction.php new file mode 100644 index 00000000..90133465 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeAction.php @@ -0,0 +1,146 @@ +title = $title; + $this->kind = $kind; + $this->diagnostics = $diagnostics; + $this->isPreferred = $isPreferred; + $this->disabled = $disabled; + $this->edit = $edit; + $this->command = $command; + $this->data = $data; + } + + /** + * This is needed because VSCode Does not like nulls + * meaning if a null is sent then this will not compute + * + * @return mixed + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return array_filter(get_object_vars($this)); + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilities.php new file mode 100644 index 00000000..8abb115e --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilities.php @@ -0,0 +1,95 @@ +dynamicRegistration = $dynamicRegistration; + $this->codeActionLiteralSupport = $codeActionLiteralSupport; + $this->isPreferredSupport = $isPreferredSupport; + $this->disabledSupport = $disabledSupport; + $this->dataSupport = $dataSupport; + $this->resolveSupport = $resolveSupport; + $this->honorsChangeAnnotations = $honorsChangeAnnotations; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupport.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupport.php new file mode 100644 index 00000000..ea3583f3 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupport.php @@ -0,0 +1,20 @@ +codeActionKind = $codeActionKind; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupportcodeActionKind.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupportcodeActionKind.php new file mode 100644 index 00000000..3d510737 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesCodeActionLiteralSupportcodeActionKind.php @@ -0,0 +1,28 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesResolveSupport.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesResolveSupport.php new file mode 100644 index 00000000..89118ec1 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionClientCapabilitiesResolveSupport.php @@ -0,0 +1,21 @@ +properties = $properties; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionContext.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionContext.php new file mode 100644 index 00000000..3766334a --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionContext.php @@ -0,0 +1,51 @@ +diagnostics = $diagnostics; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionDisabled.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionDisabled.php new file mode 100644 index 00000000..a16d9642 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionDisabled.php @@ -0,0 +1,21 @@ +reason = $reason; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeActionKind.php b/vendor/felixfbecker/language-server-protocol/src/CodeActionKind.php new file mode 100644 index 00000000..b1329b16 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeActionKind.php @@ -0,0 +1,87 @@ +href = $href; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeLens.php b/vendor/felixfbecker/language-server-protocol/src/CodeLens.php new file mode 100644 index 00000000..25998e3c --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeLens.php @@ -0,0 +1,46 @@ +range = $range; + $this->command = $command; + $this->data = $data; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeLensClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/CodeLensClientCapabilities.php new file mode 100644 index 00000000..706733e5 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeLensClientCapabilities.php @@ -0,0 +1,20 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeLensOptions.php b/vendor/felixfbecker/language-server-protocol/src/CodeLensOptions.php new file mode 100644 index 00000000..7db0d4df --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeLensOptions.php @@ -0,0 +1,21 @@ +resolveProvider = $resolveProvider; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CodeLensWorkspaceClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/CodeLensWorkspaceClientCapabilities.php new file mode 100644 index 00000000..e97a8b1d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CodeLensWorkspaceClientCapabilities.php @@ -0,0 +1,25 @@ +refreshSupport = $refreshSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Command.php b/vendor/felixfbecker/language-server-protocol/src/Command.php new file mode 100644 index 00000000..97e0f0cb --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Command.php @@ -0,0 +1,42 @@ +title = $title; + $this->command = $command; + $this->arguments = $arguments; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilities.php new file mode 100644 index 00000000..2f1ad4a6 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilities.php @@ -0,0 +1,65 @@ +dynamicRegistration = $dynamicRegistration; + $this->completionItem = $completionItem; + $this->contextSupport = $contextSupport; + $this->insertTextMode = $insertTextMode; + $this->completionList = $completionList; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItem.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItem.php new file mode 100644 index 00000000..d1c1eb7f --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItem.php @@ -0,0 +1,140 @@ +snippetSupport = $snippetSupport; + $this->commitCharactersSupport = $commitCharactersSupport; + $this->documentationFormat = $documentationFormat; + $this->deprecatedSupport = $deprecatedSupport; + $this->preselectSupport = $preselectSupport; + $this->tagSupport = $tagSupport; + $this->insertReplaceSupport = $insertReplaceSupport; + $this->resolveSupport = $resolveSupport; + $this->insertTextModeSupport = $insertTextModeSupport; + $this->labelDetailsSupport = $labelDetailsSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemInsertTextModeSupport.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemInsertTextModeSupport.php new file mode 100644 index 00000000..68d4ead8 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemInsertTextModeSupport.php @@ -0,0 +1,24 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemResolveSupport.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemResolveSupport.php new file mode 100644 index 00000000..9afadfcd --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemResolveSupport.php @@ -0,0 +1,24 @@ +properties = $properties; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemTagSupport.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemTagSupport.php new file mode 100644 index 00000000..b80a4152 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionItemTagSupport.php @@ -0,0 +1,24 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionList.php b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionList.php new file mode 100644 index 00000000..2a23ed93 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionClientCapabilitiesCompletionList.php @@ -0,0 +1,30 @@ +itemDefaults = $itemDefaults; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionContext.php b/vendor/felixfbecker/language-server-protocol/src/CompletionContext.php new file mode 100644 index 00000000..1c6d43fb --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionContext.php @@ -0,0 +1,31 @@ +triggerKind = $triggerKind; + $this->triggerCharacter = $triggerCharacter; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionItem.php b/vendor/felixfbecker/language-server-protocol/src/CompletionItem.php new file mode 100644 index 00000000..ec8e4122 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionItem.php @@ -0,0 +1,248 @@ +` and a completion item with an `insertText` of + * `console` is provided it will only insert `sole`. Therefore it is + * recommended to use `textEdit` instead since it avoids additional client + * side interpretation. + * + * @var string|null + */ + public $insertText; + + /** + * The format of the insert text. The format applies to both the + * `insertText` property and the `newText` property of a provided + * `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`. + * + * Please note that the insertTextFormat doesn't apply to + * `additionalTextEdits`. + * + * @var int|null + * @see InsertTextFormat + */ + public $insertTextFormat; + + /** + * How whitespace and indentation is handled during completion + * item insertion. If not provided the client's default value depends on + * the `textDocument.completion.insertTextMode` client capability. + * + * @since 3.16.0 + * @since 3.17.0 - support for `textDocument.completion.insertTextMode` + * + * @var int|null + * @see InsertTextMode + */ + public $insertTextMode; + + /** + * An edit which is applied to a document when selecting this completion. + * When an edit is provided the value of `insertText` is ignored. + * + * *Note:* The range of the edit must be a single line range and it must + * contain the position at which completion has been requested. + * + * Most editors support two different operations when accepting a completion + * item. One is to insert a completion text and the other is to replace an + * existing text with a completion text. Since this can usually not be + * predetermined by a server it can report both ranges. Clients need to + * signal support for `InsertReplaceEdit`s via the + * `textDocument.completion.completionItem.insertReplaceSupport` client + * capability property. + * + * *Note 1:* The text edit's range as well as both ranges from an insert + * replace edit must be a [single line] and they must contain the position + * at which completion has been requested. + * *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range + * must be a prefix of the edit's replace range, that means it must be + * contained and starting at the same position. + * + * @since 3.16.0 additional type `InsertReplaceEdit` + * + * @var TextEdit|null + */ + public $textEdit; + + /** + * An optional array of additional text edits that are applied when + * selecting this completion. Edits must not overlap (including the same + * insert position) with the main edit nor with themselves. + * + * Additional text edits should be used to change text unrelated to the + * current cursor position (for example adding an import statement at the + * top of the file if the completion item will insert an unqualified type). + * + * @var TextEdit[]|null + */ + public $additionalTextEdits; + + /** + * An optional set of characters that when pressed while this completion is + * active will accept it first and then type that character. *Note* that all + * commit characters should have `length=1` and that superfluous characters + * will be ignored. + * + * @var string[]|null + */ + public $commitCharacters; + + /** + * An optional command that is executed *after* inserting this completion. *Note* that + * additional modifications to the current document should be described with the + * additionalTextEdits-property. + * + * @var Command|null + */ + public $command; + + /** + * An data entry field that is preserved on a completion item between + * a completion and a completion resolve request. + * + * @var mixed + */ + public $data; + + /** + * @param string $label + * @param int|null $kind + * @param string|null $detail + * @param string|null $documentation + * @param string|null $sortText + * @param string|null $filterText + * @param string|null $insertText + * @param TextEdit|null $textEdit + * @param TextEdit[]|null $additionalTextEdits + * @param Command|null $command + * @param mixed|null $data + * @param int|null $insertTextFormat + */ + public function __construct( + string $label = null, + int $kind = null, + string $detail = null, + string $documentation = null, + string $sortText = null, + string $filterText = null, + string $insertText = null, + TextEdit $textEdit = null, + array $additionalTextEdits = null, + Command $command = null, + $data = null, + int $insertTextFormat = null + ) { + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->label = $label; + $this->kind = $kind; + $this->detail = $detail; + $this->documentation = $documentation; + $this->sortText = $sortText; + $this->filterText = $filterText; + $this->insertText = $insertText; + $this->textEdit = $textEdit; + $this->additionalTextEdits = $additionalTextEdits; + $this->command = $command; + $this->data = $data; + $this->insertTextFormat = $insertTextFormat; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionItemKind.php b/vendor/felixfbecker/language-server-protocol/src/CompletionItemKind.php new file mode 100644 index 00000000..f2897f9b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionItemKind.php @@ -0,0 +1,71 @@ +detail = $detail; + $this->description = $description; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionItemTag.php b/vendor/felixfbecker/language-server-protocol/src/CompletionItemTag.php new file mode 100644 index 00000000..e88af50c --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionItemTag.php @@ -0,0 +1,11 @@ +items = $items; + $this->isIncomplete = $isIncomplete; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionOptions.php b/vendor/felixfbecker/language-server-protocol/src/CompletionOptions.php new file mode 100644 index 00000000..f0c60f96 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionOptions.php @@ -0,0 +1,33 @@ +resolveProvider = $resolveProvider; + $this->triggerCharacters = $triggerCharacters; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/CompletionTriggerKind.php b/vendor/felixfbecker/language-server-protocol/src/CompletionTriggerKind.php new file mode 100644 index 00000000..f84c48b5 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/CompletionTriggerKind.php @@ -0,0 +1,16 @@ +range = $range; + $this->rangeLength = $rangeLength; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->text = $text; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DeclarationClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DeclarationClientCapabilities.php new file mode 100644 index 00000000..bab0442e --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DeclarationClientCapabilities.php @@ -0,0 +1,31 @@ +dynamicRegistration = $dynamicRegistration; + $this->linkSupport = $linkSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DefinitionClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DefinitionClientCapabilities.php new file mode 100644 index 00000000..bc01efda --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DefinitionClientCapabilities.php @@ -0,0 +1,29 @@ +dynamicRegistration = $dynamicRegistration; + $this->linkSupport = $linkSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DependencyReference.php b/vendor/felixfbecker/language-server-protocol/src/DependencyReference.php new file mode 100644 index 00000000..afb6d30d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DependencyReference.php @@ -0,0 +1,27 @@ +attributes = $attributes ?? new \stdClass; + $this->hints = $hints; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Diagnostic.php b/vendor/felixfbecker/language-server-protocol/src/Diagnostic.php new file mode 100644 index 00000000..657bf0fe --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Diagnostic.php @@ -0,0 +1,121 @@ +message = $message; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->range = $range; + $this->code = $code; + $this->severity = $severity; + $this->source = $source; + $this->codeDescription = $codeDescription; + $this->tags = $tags; + $this->relatedInformation = $relatedInformation; + $this->data = $data; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DiagnosticRelatedInformation.php b/vendor/felixfbecker/language-server-protocol/src/DiagnosticRelatedInformation.php new file mode 100644 index 00000000..78e2b9b4 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DiagnosticRelatedInformation.php @@ -0,0 +1,31 @@ +location = $location; + $this->message = $message; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DiagnosticSeverity.php b/vendor/felixfbecker/language-server-protocol/src/DiagnosticSeverity.php new file mode 100644 index 00000000..d11ed95d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DiagnosticSeverity.php @@ -0,0 +1,26 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DidChangeWatchedFilesClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DidChangeWatchedFilesClientCapabilities.php new file mode 100644 index 00000000..e82b1841 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DidChangeWatchedFilesClientCapabilities.php @@ -0,0 +1,21 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentColorClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentColorClientCapabilities.php new file mode 100644 index 00000000..93f55150 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentColorClientCapabilities.php @@ -0,0 +1,20 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentFormattingClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentFormattingClientCapabilities.php new file mode 100644 index 00000000..97261175 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentFormattingClientCapabilities.php @@ -0,0 +1,20 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentHighlight.php b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlight.php new file mode 100644 index 00000000..4c329fce --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlight.php @@ -0,0 +1,32 @@ +range = $range; + $this->kind = $kind; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightClientCapabilities.php new file mode 100644 index 00000000..f7fe47b0 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightClientCapabilities.php @@ -0,0 +1,18 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightKind.php b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightKind.php new file mode 100644 index 00000000..21c5001e --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentHighlightKind.php @@ -0,0 +1,24 @@ +dynamicRegistration = $dynamicRegistration; + $this->tooltipSupport = $tooltipSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingClientCapabilities.php new file mode 100644 index 00000000..0101fc13 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingClientCapabilities.php @@ -0,0 +1,20 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingOptions.php b/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingOptions.php new file mode 100644 index 00000000..149ea36c --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentOnTypeFormattingOptions.php @@ -0,0 +1,33 @@ +firstTriggerCharacter = $firstTriggerCharacter; + $this->moreTriggerCharacter = $moreTriggerCharacter; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentRangeFormattingClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentRangeFormattingClientCapabilities.php new file mode 100644 index 00000000..5edca75b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentRangeFormattingClientCapabilities.php @@ -0,0 +1,20 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilities.php new file mode 100644 index 00000000..eaa10a4f --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilities.php @@ -0,0 +1,64 @@ +dynamicRegistration = $dynamicRegistration; + $this->symbolKind = $symbolKind; + $this->hierarchicalDocumentSymbolSupport = $hierarchicalDocumentSymbolSupport; + $this->tagSupport = $tagSupport; + $this->labelSupport = $labelSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesSymbolKind.php b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesSymbolKind.php new file mode 100644 index 00000000..536e5e9c --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesSymbolKind.php @@ -0,0 +1,37 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesTagSupport.php b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesTagSupport.php new file mode 100644 index 00000000..f423a1a6 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/DocumentSymbolClientCapabilitiesTagSupport.php @@ -0,0 +1,32 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ErrorCode.php b/vendor/felixfbecker/language-server-protocol/src/ErrorCode.php new file mode 100644 index 00000000..ffbc0755 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ErrorCode.php @@ -0,0 +1,17 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ExecuteCommandOptions.php b/vendor/felixfbecker/language-server-protocol/src/ExecuteCommandOptions.php new file mode 100644 index 00000000..0f77b607 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ExecuteCommandOptions.php @@ -0,0 +1,23 @@ +commands = $commands; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/FailureHandlingKind.php b/vendor/felixfbecker/language-server-protocol/src/FailureHandlingKind.php new file mode 100644 index 00000000..c0c48db2 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/FailureHandlingKind.php @@ -0,0 +1,36 @@ +uri = $uri; + $this->type = $type; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/FoldingRangeClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/FoldingRangeClientCapabilities.php new file mode 100644 index 00000000..4efe925b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/FoldingRangeClientCapabilities.php @@ -0,0 +1,42 @@ +dynamicRegistration = $dynamicRegistration; + $this->rangeLimit = $rangeLimit; + $this->lineFoldingOnly = $lineFoldingOnly; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/FormattingOptions.php b/vendor/felixfbecker/language-server-protocol/src/FormattingOptions.php new file mode 100644 index 00000000..1d9c1327 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/FormattingOptions.php @@ -0,0 +1,33 @@ +tabSize = $tabSize; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->insertSpaces = $insertSpaces; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Hover.php b/vendor/felixfbecker/language-server-protocol/src/Hover.php new file mode 100644 index 00000000..8c39c97d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Hover.php @@ -0,0 +1,34 @@ +contents = $contents; + $this->range = $range; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/HoverClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/HoverClientCapabilities.php new file mode 100644 index 00000000..2ba234cb --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/HoverClientCapabilities.php @@ -0,0 +1,36 @@ +dynamicRegistration = $dynamicRegistration; + $this->contentFormat = $contentFormat; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ImplementationClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/ImplementationClientCapabilities.php new file mode 100644 index 00000000..9caef5dd --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ImplementationClientCapabilities.php @@ -0,0 +1,32 @@ +dynamicRegistration = $dynamicRegistration; + $this->linkSupport = $linkSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/InitializeResult.php b/vendor/felixfbecker/language-server-protocol/src/InitializeResult.php new file mode 100644 index 00000000..59333eae --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/InitializeResult.php @@ -0,0 +1,29 @@ +capabilities = $capabilities; + $this->serverInfo = $serverInfo; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/InitializeResultServerInfo.php b/vendor/felixfbecker/language-server-protocol/src/InitializeResultServerInfo.php new file mode 100644 index 00000000..040b5839 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/InitializeResultServerInfo.php @@ -0,0 +1,26 @@ +name = $name; + $this->version = $version; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/InsertTextFormat.php b/vendor/felixfbecker/language-server-protocol/src/InsertTextFormat.php new file mode 100644 index 00000000..459904f5 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/InsertTextFormat.php @@ -0,0 +1,25 @@ +<3tabs>foo. Accepting a + * multi line completion item is indented using 2 tabs and all + * following lines inserted will be indented using 2 tabs as well. + */ + const ADJUST_INDENTATION = 2; +} diff --git a/vendor/felixfbecker/language-server-protocol/src/LinkedEditingRangeClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/LinkedEditingRangeClientCapabilities.php new file mode 100644 index 00000000..05c51086 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/LinkedEditingRangeClientCapabilities.php @@ -0,0 +1,23 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Location.php b/vendor/felixfbecker/language-server-protocol/src/Location.php new file mode 100644 index 00000000..7429620d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Location.php @@ -0,0 +1,27 @@ +uri = $uri; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->range = $range; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/LogMessage.php b/vendor/felixfbecker/language-server-protocol/src/LogMessage.php new file mode 100644 index 00000000..9c6f38d6 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/LogMessage.php @@ -0,0 +1,30 @@ +type = $type; + $this->message = $message; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/LogTrace.php b/vendor/felixfbecker/language-server-protocol/src/LogTrace.php new file mode 100644 index 00000000..dfba3645 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/LogTrace.php @@ -0,0 +1,39 @@ +message = $message; + $this->verbose = $verbose; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/MarkdownClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/MarkdownClientCapabilities.php new file mode 100644 index 00000000..5af49455 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/MarkdownClientCapabilities.php @@ -0,0 +1,47 @@ +parser = $parser; + $this->version = $version; + $this->allowedTags = $allowedTags; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/MarkedString.php b/vendor/felixfbecker/language-server-protocol/src/MarkedString.php new file mode 100644 index 00000000..402a8793 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/MarkedString.php @@ -0,0 +1,24 @@ +language = $language; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->value = $value; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/MarkupContent.php b/vendor/felixfbecker/language-server-protocol/src/MarkupContent.php new file mode 100644 index 00000000..5b7e6db1 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/MarkupContent.php @@ -0,0 +1,52 @@ +kind = $kind; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->value = $value; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/MarkupKind.php b/vendor/felixfbecker/language-server-protocol/src/MarkupKind.php new file mode 100644 index 00000000..962fb031 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/MarkupKind.php @@ -0,0 +1,23 @@ +title = $title; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/MessageType.php b/vendor/felixfbecker/language-server-protocol/src/MessageType.php new file mode 100644 index 00000000..1d01540b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/MessageType.php @@ -0,0 +1,29 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/PackageDescriptor.php b/vendor/felixfbecker/language-server-protocol/src/PackageDescriptor.php new file mode 100644 index 00000000..9f26856b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/PackageDescriptor.php @@ -0,0 +1,26 @@ +name = $name; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ParameterInformation.php b/vendor/felixfbecker/language-server-protocol/src/ParameterInformation.php new file mode 100644 index 00000000..a94bb671 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ParameterInformation.php @@ -0,0 +1,45 @@ +label = $label; + $this->documentation = $documentation; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Position.php b/vendor/felixfbecker/language-server-protocol/src/Position.php new file mode 100644 index 00000000..26c5f1e6 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Position.php @@ -0,0 +1,67 @@ +line = $line; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->character = $character; + } + + /** + * Compares this position to another position + * Returns + * - 0 if the positions match + * - a negative number if $this is before $position + * - a positive number otherwise + * + * @param Position $position + * @return int + */ + public function compare(Position $position): int + { + if ($this->line === $position->line && $this->character === $position->character) { + return 0; + } + + if ($this->line !== $position->line) { + return $this->line - $position->line; + } + + return $this->character - $position->character; + } + + /** + * Returns the offset of the position in a string + * + * @param string $content + * @return int + */ + public function toOffset(string $content): int + { + $lines = explode("\n", $content); + $slice = array_slice($lines, 0, $this->line); + return array_sum(array_map('strlen', $slice)) + count($slice) + $this->character; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/PrepareSupportDefaultBehavior.php b/vendor/felixfbecker/language-server-protocol/src/PrepareSupportDefaultBehavior.php new file mode 100644 index 00000000..fe374095 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/PrepareSupportDefaultBehavior.php @@ -0,0 +1,12 @@ +relatedInformation = $relatedInformation; + $this->tagSupport = $tagSupport; + $this->versionSupport = $versionSupport; + $this->codeDescriptionSupport = $codeDescriptionSupport; + $this->dataSupport = $dataSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/PublishDiagnosticsClientCapabilitiesTagSupport.php b/vendor/felixfbecker/language-server-protocol/src/PublishDiagnosticsClientCapabilitiesTagSupport.php new file mode 100644 index 00000000..7fe5df63 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/PublishDiagnosticsClientCapabilitiesTagSupport.php @@ -0,0 +1,23 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/Range.php b/vendor/felixfbecker/language-server-protocol/src/Range.php new file mode 100644 index 00000000..9077a523 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/Range.php @@ -0,0 +1,42 @@ +start = $start; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->end = $end; + } + + /** + * Checks if a position is within the range + * + * @param Position $position + * @return bool + */ + public function includes(Position $position): bool + { + return $this->start->compare($position) <= 0 && $this->end->compare($position) >= 0; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ReferenceClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/ReferenceClientCapabilities.php new file mode 100644 index 00000000..195f096f --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ReferenceClientCapabilities.php @@ -0,0 +1,18 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ReferenceContext.php b/vendor/felixfbecker/language-server-protocol/src/ReferenceContext.php new file mode 100644 index 00000000..fe941aee --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ReferenceContext.php @@ -0,0 +1,19 @@ +includeDeclaration = $includeDeclaration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ReferenceInformation.php b/vendor/felixfbecker/language-server-protocol/src/ReferenceInformation.php new file mode 100644 index 00000000..03a3be1d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ReferenceInformation.php @@ -0,0 +1,39 @@ +reference = $reference; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->symbol = $symbol; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/RegularExpressionsClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/RegularExpressionsClientCapabilities.php new file mode 100644 index 00000000..e3c16435 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/RegularExpressionsClientCapabilities.php @@ -0,0 +1,33 @@ +engine = $engine; + $this->version = $version; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/RenameClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/RenameClientCapabilities.php new file mode 100644 index 00000000..faaf258d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/RenameClientCapabilities.php @@ -0,0 +1,68 @@ +dynamicRegistration = $dynamicRegistration; + $this->prepareSupport = $prepareSupport; + $this->prepareSupportDefaultBehavior = $prepareSupportDefaultBehavior; + $this->honorsChangeAnnotations = $honorsChangeAnnotations; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ResourceOperationKind.php b/vendor/felixfbecker/language-server-protocol/src/ResourceOperationKind.php new file mode 100644 index 00000000..7bc9ca90 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ResourceOperationKind.php @@ -0,0 +1,24 @@ +dynamicRegistration = $dynamicRegistration; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilities.php new file mode 100644 index 00000000..a254dbd7 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilities.php @@ -0,0 +1,133 @@ +requests = $requests; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->tokenTypes = $tokenTypes; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->tokenModifiers = $tokenModifiers; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->formats = $formats; + $this->dynamicRegistration = $dynamicRegistration; + $this->overlappingTokenSupport = $overlappingTokenSupport; + $this->multilineTokenSupport = $multilineTokenSupport; + $this->serverCancelSupport = $serverCancelSupport; + $this->augmentsSyntaxTokens = $augmentsSyntaxTokens; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilitiesRequests.php b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilitiesRequests.php new file mode 100644 index 00000000..62d2bfd6 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensClientCapabilitiesRequests.php @@ -0,0 +1,31 @@ +range = $range; + $this->full = $full; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SemanticTokensWorkspaceClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensWorkspaceClientCapabilities.php new file mode 100644 index 00000000..ae1c0ed3 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SemanticTokensWorkspaceClientCapabilities.php @@ -0,0 +1,24 @@ +refreshSupport = $refreshSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ServerCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/ServerCapabilities.php new file mode 100644 index 00000000..3604321f --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ServerCapabilities.php @@ -0,0 +1,157 @@ +support = $support; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilities.php new file mode 100644 index 00000000..b19bd870 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilities.php @@ -0,0 +1,20 @@ +messageActionItem = $messageActionItem; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilitiesMessageActionItem.php b/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilitiesMessageActionItem.php new file mode 100644 index 00000000..4303f18b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/ShowMessageRequestClientCapabilitiesMessageActionItem.php @@ -0,0 +1,22 @@ +additionalPropertiesSupport = $additionalPropertiesSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureHelp.php b/vendor/felixfbecker/language-server-protocol/src/SignatureHelp.php new file mode 100644 index 00000000..c5b853eb --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureHelp.php @@ -0,0 +1,61 @@ +signatures = $signatures; + $this->activeSignature = $activeSignature; + $this->activeParameter = $activeParameter; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilities.php new file mode 100644 index 00000000..58b48052 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilities.php @@ -0,0 +1,43 @@ +dynamicRegistration = $dynamicRegistration; + $this->signatureInformation = $signatureInformation; + $this->contextSupport = $contextSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformation.php b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformation.php new file mode 100644 index 00000000..a333846b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformation.php @@ -0,0 +1,50 @@ +documentationFormat = $documentationFormat; + $this->parameterInformation = $parameterInformation; + $this->activeParameterSupport = $activeParameterSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformationParameterInformation.php b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformationParameterInformation.php new file mode 100644 index 00000000..72c7d004 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpClientCapabilitiesSignatureInformationParameterInformation.php @@ -0,0 +1,24 @@ +labelOffsetSupport = $labelOffsetSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureHelpOptions.php b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpOptions.php new file mode 100644 index 00000000..04222ed4 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureHelpOptions.php @@ -0,0 +1,24 @@ +triggerCharacters = $triggerCharacters; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SignatureInformation.php b/vendor/felixfbecker/language-server-protocol/src/SignatureInformation.php new file mode 100644 index 00000000..c7329feb --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SignatureInformation.php @@ -0,0 +1,66 @@ +label = $label; + $this->parameters = $parameters; + $this->documentation = $documentation; + $this->activeParameter = $activeParameter; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SymbolDescriptor.php b/vendor/felixfbecker/language-server-protocol/src/SymbolDescriptor.php new file mode 100644 index 00000000..2bcd4a41 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SymbolDescriptor.php @@ -0,0 +1,36 @@ +fqsen = $fqsen; + $this->package = $package; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SymbolInformation.php b/vendor/felixfbecker/language-server-protocol/src/SymbolInformation.php new file mode 100644 index 00000000..26688f97 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SymbolInformation.php @@ -0,0 +1,55 @@ +name = $name; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->kind = $kind; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->location = $location; + $this->containerName = $containerName; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SymbolKind.php b/vendor/felixfbecker/language-server-protocol/src/SymbolKind.php new file mode 100644 index 00000000..b59eecae --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SymbolKind.php @@ -0,0 +1,28 @@ +symbol = $symbol; + $this->location = $location; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/SymbolTag.php b/vendor/felixfbecker/language-server-protocol/src/SymbolTag.php new file mode 100644 index 00000000..6eed0476 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/SymbolTag.php @@ -0,0 +1,16 @@ +synchronization = $synchronization; + $this->completion = $completion; + $this->hover = $hover; + $this->signatureHelp = $signatureHelp; + $this->declaration = $declaration; + $this->definition = $definition; + $this->typeDefinition = $typeDefinition; + $this->implementation = $implementation; + $this->references = $references; + $this->documentHighlight = $documentHighlight; + $this->documentSymbol = $documentSymbol; + $this->codeAction = $codeAction; + $this->codeLens = $codeLens; + $this->documentLink = $documentLink; + $this->colorProvider = $colorProvider; + $this->formatting = $formatting; + $this->rangeFormatting = $rangeFormatting; + $this->onTypeFormatting = $onTypeFormatting; + $this->rename = $rename; + $this->publishDiagnostics = $publishDiagnostics; + $this->foldingRange = $foldingRange; + $this->selectionRange = $selectionRange; + $this->linkedEditingRange = $linkedEditingRange; + $this->callHierarchy = $callHierarchy; + $this->semanticTokens = $semanticTokens; + $this->moniker = $moniker; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TextDocumentContentChangeEvent.php b/vendor/felixfbecker/language-server-protocol/src/TextDocumentContentChangeEvent.php new file mode 100644 index 00000000..77589fca --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TextDocumentContentChangeEvent.php @@ -0,0 +1,39 @@ +range = $range; + $this->rangeLength = $rangeLength; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->text = $text; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TextDocumentIdentifier.php b/vendor/felixfbecker/language-server-protocol/src/TextDocumentIdentifier.php new file mode 100644 index 00000000..fe9eaddc --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TextDocumentIdentifier.php @@ -0,0 +1,22 @@ +uri = $uri; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TextDocumentItem.php b/vendor/felixfbecker/language-server-protocol/src/TextDocumentItem.php new file mode 100644 index 00000000..cb9fd651 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TextDocumentItem.php @@ -0,0 +1,50 @@ +uri = $uri; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->languageId = $languageId; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->version = $version; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->text = $text; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncClientCapabilities.php new file mode 100644 index 00000000..6bb119c7 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncClientCapabilities.php @@ -0,0 +1,49 @@ +dynamicRegistration = $dynamicRegistration; + $this->willSave = $willSave; + $this->willSaveWaitUntil = $willSaveWaitUntil; + $this->didSave = $didSave; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncKind.php b/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncKind.php new file mode 100644 index 00000000..0adf6345 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TextDocumentSyncKind.php @@ -0,0 +1,25 @@ +range = $range; + $this->newText = $newText; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/TokenFormat.php b/vendor/felixfbecker/language-server-protocol/src/TokenFormat.php new file mode 100644 index 00000000..73eff909 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/TokenFormat.php @@ -0,0 +1,8 @@ +dynamicRegistration = $dynamicRegistration; + $this->linkSupport = $linkSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/VersionedTextDocumentIdentifier.php b/vendor/felixfbecker/language-server-protocol/src/VersionedTextDocumentIdentifier.php new file mode 100644 index 00000000..6232713f --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/VersionedTextDocumentIdentifier.php @@ -0,0 +1,19 @@ +version = $version; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceEdit.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEdit.php new file mode 100644 index 00000000..eaa71950 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEdit.php @@ -0,0 +1,78 @@ + + */ + public $changes; + + /** + * Depending on the client capability + * `workspace.workspaceEdit.resourceOperations` document changes are either + * an array of `TextDocumentEdit`s to express changes to n different text + * documents where each text document edit addresses a specific version of + * a text document. Or it can contain above `TextDocumentEdit`s mixed with + * create, rename and delete file / folder operations. + * + * Whether a client supports versioned document edits is expressed via + * `workspace.workspaceEdit.documentChanges` client capability. + * + * If a client neither supports `documentChanges` nor + * `workspace.workspaceEdit.resourceOperations` then only plain `TextEdit`s + * using the `changes` property are supported. + * + * @var mixed + */ + public $documentChanges; + + /** + * A map of change annotations that can be referenced in + * `AnnotatedTextEdit`s or create, rename and delete file / folder + * operations. + * + * Whether clients honor this property depends on the client capability + * `workspace.changeAnnotationSupport`. + * + * @since 3.16.0 + * + * @var array|null + */ + public $changeAnnotations; + + /** + * @param array $changes + * @param mixed $documentChanges + * @param array|null $changeAnnotations + */ + public function __construct( + array $changes = [], + $documentChanges = null, + array $changeAnnotations = null + ) { + $this->changes = $changes; + $this->documentChanges = $documentChanges; + $this->changeAnnotations = $changeAnnotations; + } + + /** + * This is needed because VSCode Does not like nulls + * meaning if a null is sent then this will not compute + * + * @return mixed + */ + #[\ReturnTypeWillChange] + public function jsonSerialize() + { + return array_filter(get_object_vars($this)); + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilities.php new file mode 100644 index 00000000..31e21c62 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilities.php @@ -0,0 +1,80 @@ +documentChanges = $documentChanges; + $this->resourceOperations = $resourceOperations; + $this->failureHandling = $failureHandling; + $this->normalizesLineEndings = $normalizesLineEndings; + $this->changeAnnotationSupport = $changeAnnotationSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilitiesChangeAnnotationSupport.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilitiesChangeAnnotationSupport.php new file mode 100644 index 00000000..8f62d562 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceEditClientCapabilitiesChangeAnnotationSupport.php @@ -0,0 +1,21 @@ +groupsOnLabel = $groupsOnLabel; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceFolder.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceFolder.php new file mode 100644 index 00000000..764e0c28 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceFolder.php @@ -0,0 +1,31 @@ +uri = $uri; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->name = $name; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilities.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilities.php new file mode 100644 index 00000000..57550c1b --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilities.php @@ -0,0 +1,55 @@ +dynamicRegistration = $dynamicRegistration; + $this->symbolKind = $symbolKind; + $this->tagSupport = $tagSupport; + $this->resolveSupport = $resolveSupport; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesResolveSupport.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesResolveSupport.php new file mode 100644 index 00000000..b5450396 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesResolveSupport.php @@ -0,0 +1,24 @@ +properties = $properties; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesSymbolKind.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesSymbolKind.php new file mode 100644 index 00000000..7796d062 --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesSymbolKind.php @@ -0,0 +1,30 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesTagSupport.php b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesTagSupport.php new file mode 100644 index 00000000..1e21a84d --- /dev/null +++ b/vendor/felixfbecker/language-server-protocol/src/WorkspaceSymbolClientCapabilitiesTagSupport.php @@ -0,0 +1,30 @@ +valueSet = $valueSet; + } +} diff --git a/vendor/fidry/cpu-core-counter/LICENSE.md b/vendor/fidry/cpu-core-counter/LICENSE.md new file mode 100644 index 00000000..02442130 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/LICENSE.md @@ -0,0 +1,16 @@ +# The MIT License (MIT) + +Copyright (c) 2022 Théo FIDRY + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the _Software_), to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED **AS IS**, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/fidry/cpu-core-counter/README.md b/vendor/fidry/cpu-core-counter/README.md new file mode 100644 index 00000000..8c86a187 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/README.md @@ -0,0 +1,114 @@ +# CPU Core Counter + +This package is a tiny utility to get the number of CPU cores. + +```sh +composer require fidry/cpu-core-counter +``` + + +## Usage + +```php +use Fidry\CpuCoreCounter\CpuCoreCounter; +use Fidry\CpuCoreCounter\NumberOfCpuCoreNotFound; +use Fidry\CpuCoreCounter\Finder\DummyCpuCoreFinder; + +$counter = new CpuCoreCounter(); + +try { + $counter->getCount(); // e.g. 8 +} catch (NumberOfCpuCoreNotFound) { + return 1; // Fallback value +} + +// An alternative form where we not want to catch the exception: + +$counter = new CpuCoreCounter([ + ...CpuCoreCounter::getDefaultFinders(), + new DummyCpuCoreFinder(1), // Fallback value +]); + +$counter->getCount(); // e.g. 8 + +``` + + +## Advanced usage + +### Changing the finders + +When creating `CpuCoreCounter`, you may want to change the order of the finders +used or disable a specific finder. You can easily do so by passing the finders +you want + +```php +// Remove WindowsWmicFinder +$finders = array_filter( + CpuCoreCounter::getDefaultFinders(), + static fn (CpuCoreFinder $finder) => !($finder instanceof WindowsWmicFinder) +); + +$cores = (new CpuCoreCounter($finders))->getCount(); +``` + +```php +// Use CPUInfo first & don't use Nproc +$finders = [ + new CpuInfoFinder(), + new WindowsWmicFinder(), + new HwLogicalFinder(), +]; + +$cores = (new CpuCoreCounter($finders))->getCount(); +``` + +### Choosing only logical or physical finders + +`FinderRegistry` provides two helpful entries: + +- `::getDefaultLogicalFinders()`: gives an ordered list of finders that will + look for the _logical_ CPU cores count +- `::getDefaultPhysicalFinders()`: gives an ordered list of finders that will + look for the _physical_ CPU cores count + +By default when using `CpuCoreCounter`, it will use the logical finders since +it is more likely what you are looking for and is what is used by PHP source to +build the PHP binary. + + +### Checks what finders find what on your system + +You have two commands available that provides insight about what the finders +can find: + +``` +$ make diagnosis # From this repository +$ ./vendor/fidry/cpu-core-counter/bin/diagnose.php # From the library +``` + +And: +``` +$ make execute # From this repository +$ ./vendor/fidry/cpu-core-counter/bin/execute.php # From the library +``` + + +## Backward Compatibility Promise (BCP) + +The policy is for the major part following the same as [Symfony's one][symfony-bc-policy]. +Note that the code marked as `@private` or `@internal` are excluded from the BCP. + +The following elements are also excluded: + +- The `diagnose` and `execute` commands: those are for debugging/inspection purposes only +- `FinderRegistry::get*Finders()`: new finders may be added or the order of finders changed at any time + + +## License + +This package is licensed using the MIT License. + +Please have a look at [`LICENSE.md`](LICENSE.md). + +[symfony-bc-policy]: https://symfony.com/doc/current/contributing/code/bc.html diff --git a/vendor/fidry/cpu-core-counter/bin/diagnose.php b/vendor/fidry/cpu-core-counter/bin/diagnose.php new file mode 100755 index 00000000..ec589e31 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/bin/diagnose.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +use Fidry\CpuCoreCounter\Diagnoser; +use Fidry\CpuCoreCounter\Finder\FinderRegistry; + +require_once __DIR__.'/../vendor/autoload.php'; + +echo 'Running diagnosis...'.PHP_EOL.PHP_EOL; +echo Diagnoser::diagnose(FinderRegistry::getAllVariants()).PHP_EOL; diff --git a/vendor/fidry/cpu-core-counter/bin/execute.php b/vendor/fidry/cpu-core-counter/bin/execute.php new file mode 100755 index 00000000..edadebb1 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/bin/execute.php @@ -0,0 +1,21 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +use Fidry\CpuCoreCounter\Diagnoser; +use Fidry\CpuCoreCounter\Finder\FinderRegistry; + +require_once __DIR__.'/../vendor/autoload.php'; + +echo 'Executing finders...'.PHP_EOL.PHP_EOL; +echo Diagnoser::execute(FinderRegistry::getAllVariants()).PHP_EOL; diff --git a/vendor/fidry/cpu-core-counter/composer.json b/vendor/fidry/cpu-core-counter/composer.json new file mode 100644 index 00000000..2ddaf525 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/composer.json @@ -0,0 +1,48 @@ +{ + "name": "fidry/cpu-core-counter", + "description": "Tiny utility to get the number of CPU cores.", + "license": "MIT", + "type": "library", + "keywords": [ + "cpu", + "core" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^9.5.26 || ^8.5.31", + "theofidry/php-cs-fixer-config": "^1.0", + "webmozarts/strict-phpunit": "^7.5" + }, + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Fidry\\CpuCoreCounter\\Test\\": "tests/" + } + }, + "config": { + "allow-plugins": { + "ergebnis/composer-normalize": true, + "infection/extension-installer": true, + "phpstan/extension-installer": true + }, + "sort-packages": true + } +} diff --git a/vendor/fidry/cpu-core-counter/src/CpuCoreCounter.php b/vendor/fidry/cpu-core-counter/src/CpuCoreCounter.php new file mode 100644 index 00000000..098693b5 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/CpuCoreCounter.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter; + +use Fidry\CpuCoreCounter\Finder\CpuCoreFinder; +use Fidry\CpuCoreCounter\Finder\FinderRegistry; + +final class CpuCoreCounter +{ + /** + * @var list + */ + private $finders; + + /** + * @var positive-int|null + */ + private $count; + + /** + * @param list|null $finders + */ + public function __construct(?array $finders = null) + { + $this->finders = $finders ?? FinderRegistry::getDefaultLogicalFinders(); + } + + /** + * @throws NumberOfCpuCoreNotFound + * + * @return positive-int + */ + public function getCount(): int + { + // Memoize result + if (null === $this->count) { + $this->count = $this->findCount(); + } + + return $this->count; + } + + /** + * @throws NumberOfCpuCoreNotFound + * + * @return positive-int + */ + private function findCount(): int + { + foreach ($this->finders as $finder) { + $cores = $finder->find(); + + if (null !== $cores) { + return $cores; + } + } + + throw NumberOfCpuCoreNotFound::create(); + } + + /** + * @throws NumberOfCpuCoreNotFound + * + * @return array{CpuCoreFinder, positive-int} + */ + public function getFinderAndCores(): array + { + foreach ($this->finders as $finder) { + $cores = $finder->find(); + + if (null !== $cores) { + return [$finder, $cores]; + } + } + + throw NumberOfCpuCoreNotFound::create(); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Diagnoser.php b/vendor/fidry/cpu-core-counter/src/Diagnoser.php new file mode 100644 index 00000000..872b55f8 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Diagnoser.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter; + +use Fidry\CpuCoreCounter\Finder\CpuCoreFinder; +use function array_map; +use function explode; +use function implode; +use function max; +use function str_repeat; +use const PHP_EOL; + +/** + * Utility to debug. + * + * @private + */ +final class Diagnoser +{ + /** + * Provides an aggregated diagnosis based on each finders diagnosis. + * + * @param list $finders + */ + public static function diagnose(array $finders): string + { + $diagnoses = array_map( + static function (CpuCoreFinder $finder): string { + return self::diagnoseFinder($finder); + }, + $finders + ); + + return implode(PHP_EOL, $diagnoses); + } + + /** + * Executes each finders. + * + * @param list $finders + */ + public static function execute(array $finders): string + { + $diagnoses = array_map( + static function (CpuCoreFinder $finder): string { + $coresCount = $finder->find(); + + return implode( + '', + [ + $finder->toString(), + ': ', + null === $coresCount ? 'NULL' : $coresCount, + ] + ); + }, + $finders + ); + + return implode(PHP_EOL, $diagnoses); + } + + private static function diagnoseFinder(CpuCoreFinder $finder): string + { + $diagnosis = $finder->diagnose(); + + $maxLineLength = max( + array_map( + 'strlen', + explode(PHP_EOL, $diagnosis) + ) + ); + + $separator = str_repeat('-', $maxLineLength); + + return implode( + '', + [ + $finder->toString().':'.PHP_EOL, + $separator.PHP_EOL, + $diagnosis.PHP_EOL, + $separator.PHP_EOL, + ] + ); + } + + private function __construct() + { + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php b/vendor/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php new file mode 100644 index 00000000..751a311d --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Executor; + +use function fclose; +use function function_exists; +use function is_resource; +use function proc_close; +use function proc_open; +use function stream_get_contents; + +final class ProcOpenExecutor implements ProcessExecutor +{ + public function execute(string $command): ?array + { + if (!function_exists('proc_open')) { + return null; + } + + $pipes = []; + + $process = @proc_open( + $command, + [ + ['pipe', 'rb'], + ['pipe', 'wb'], // stdout + ['pipe', 'wb'], // stderr + ], + $pipes + ); + + if (!is_resource($process)) { + return null; + } + + fclose($pipes[0]); + + $stdout = (string) stream_get_contents($pipes[1]); + $stderr = (string) stream_get_contents($pipes[2]); + + proc_close($process); + + return [$stdout, $stderr]; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php b/vendor/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php new file mode 100644 index 00000000..287c01e1 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Executor; + +interface ProcessExecutor +{ + /** + * @return array{string, string}|null STDOUT & STDERR tuple + */ + public function execute(string $command): ?array; +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php new file mode 100644 index 00000000..edb40e86 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +interface CpuCoreFinder +{ + /** + * Provides an explanation which may offer some insight as to what the finder + * will be able to find. + * + * This is practical to have an idea of what each finder will find collect + * information for the unit tests, since integration tests are quite complicated + * as dependent on complex infrastructures. + */ + public function diagnose(): string; + + /** + * Find the number of CPU cores. If it could not find it, returns null. The + * means used to find the cores are at the implementation discretion. + * + * @return positive-int|null + */ + public function find(): ?int; + + public function toString(): string; +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php new file mode 100644 index 00000000..dea4c412 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function file_get_contents; +use function is_file; +use function sprintf; +use function substr_count; +use const PHP_EOL; + +/** + * Find the number of CPU cores looking up at the cpuinfo file which is available + * on Linux systems and Windows systems with a Linux sub-system. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L903-L909 + * @see https://unix.stackexchange.com/questions/146051/number-of-processors-in-proc-cpuinfo + */ +final class CpuInfoFinder implements CpuCoreFinder +{ + private const CPU_INFO_PATH = '/proc/cpuinfo'; + + public function diagnose(): string + { + if (!is_file(self::CPU_INFO_PATH)) { + return sprintf( + 'The file "%s" could not be found.', + self::CPU_INFO_PATH + ); + } + + $cpuInfo = file_get_contents(self::CPU_INFO_PATH); + + if (false === $cpuInfo) { + return sprintf( + 'Could not get the content of the file "%s".', + self::CPU_INFO_PATH + ); + } + + return sprintf( + 'Found the file "%s" with the content:%s%s', + self::CPU_INFO_PATH, + PHP_EOL, + $cpuInfo + ); + } + + /** + * @return positive-int|null + */ + public function find(): ?int + { + $cpuInfo = self::getCpuInfo(); + + return null === $cpuInfo ? null : self::countCpuCores($cpuInfo); + } + + public function toString(): string + { + return 'CpuInfoFinder'; + } + + private static function getCpuInfo(): ?string + { + if (!@is_file(self::CPU_INFO_PATH)) { + return null; + } + + $cpuInfo = @file_get_contents(self::CPU_INFO_PATH); + + return false === $cpuInfo + ? null + : $cpuInfo; + } + + /** + * @internal + * + * @return positive-int|null + */ + public static function countCpuCores(string $cpuInfo): ?int + { + $processorCount = substr_count($cpuInfo, 'processor'); + + return $processorCount > 0 ? $processorCount : null; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php new file mode 100644 index 00000000..1efa4da6 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function sprintf; + +/** + * This finder returns whatever value you gave to it. This is useful for testing + * or as a fallback to avoid to catch the NumberOfCpuCoreNotFound exception. + */ +final class DummyCpuCoreFinder implements CpuCoreFinder +{ + /** + * @var positive-int + */ + private $count; + + public function diagnose(): string + { + return sprintf( + 'Will return "%d".', + $this->count + ); + } + + /** + * @param positive-int $count + */ + public function __construct(int $count) + { + $this->count = $count; + } + + public function find(): ?int + { + return $this->count; + } + + public function toString(): string + { + return sprintf( + 'DummyCpuCoreFinder(value=%d)', + $this->count + ); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php b/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php new file mode 100644 index 00000000..4f824587 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/FinderRegistry.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +final class FinderRegistry +{ + /** + * @return list List of all the known finders with all their variants. + */ + public static function getAllVariants(): array + { + return [ + new CpuInfoFinder(), + new DummyCpuCoreFinder(1), + new HwLogicalFinder(), + new HwPhysicalFinder(), + new LscpuLogicalFinder(), + new LscpuPhysicalFinder(), + new _NProcessorFinder(), + new NProcessorFinder(), + new NProcFinder(true), + new NProcFinder(false), + new NullCpuCoreFinder(), + SkipOnOSFamilyFinder::forWindows( + new DummyCpuCoreFinder(1) + ), + OnlyOnOSFamilyFinder::forWindows( + new DummyCpuCoreFinder(1) + ), + new WmicPhysicalFinder(), + new WmicLogicalFinder(), + ]; + } + + /** + * @return list + */ + public static function getDefaultLogicalFinders(): array + { + return [ + OnlyOnOSFamilyFinder::forWindows(new WmicLogicalFinder()), + new NProcFinder(), + new HwLogicalFinder(), + new _NProcessorFinder(), + new NProcessorFinder(), + new LscpuLogicalFinder(), + new CpuInfoFinder(), + ]; + } + + /** + * @return list + */ + public static function getDefaultPhysicalFinders(): array + { + return [ + OnlyOnOSFamilyFinder::forWindows(new WmicPhysicalFinder()), + new HwPhysicalFinder(), + new LscpuPhysicalFinder(), + ]; + } + + private function __construct() + { + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php new file mode 100644 index 00000000..d1129038 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +/** + * Find the number of logical CPU cores for Linux, BSD and OSX. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L903-L909 + * @see https://opensource.apple.com/source/xnu/xnu-792.2.4/libkern/libkern/sysctl.h.auto.html + */ +final class HwLogicalFinder extends ProcOpenBasedFinder +{ + protected function getCommand(): string + { + return 'sysctl -n hw.logicalcpu'; + } + + public function toString(): string + { + return 'HwLogicalFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php new file mode 100644 index 00000000..65ca1cfd --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +/** + * Find the number of physical CPU cores for Linux, BSD and OSX. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L903-L909 + * @see https://opensource.apple.com/source/xnu/xnu-792.2.4/libkern/libkern/sysctl.h.auto.html + */ +final class HwPhysicalFinder extends ProcOpenBasedFinder +{ + protected function getCommand(): string + { + return 'sysctl -n hw.physicalcpu'; + } + + public function toString(): string + { + return 'HwPhysicalFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php new file mode 100644 index 00000000..bce09ebf --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function count; +use function explode; +use function is_array; +use function preg_grep; +use const PHP_EOL; + +/** + * The number of logical cores. + * + * @see https://stackoverflow.com/a/23378780/5846754 + */ +final class LscpuLogicalFinder extends ProcOpenBasedFinder +{ + public function getCommand(): string + { + return 'lscpu -p'; + } + + protected function countCpuCores(string $process): ?int + { + $lines = explode(PHP_EOL, $process); + $actualLines = preg_grep('/^\d+,/', $lines); + + if (!is_array($actualLines)) { + return null; + } + + $count = count($actualLines); + + return 0 === $count ? null : $count; + } + + public function toString(): string + { + return 'LscpuLogicalFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php new file mode 100644 index 00000000..58523cee --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function count; +use function explode; +use function is_array; +use function preg_grep; +use function strtok; +use const PHP_EOL; + +/** + * The number of physical processors. + * + * @see https://stackoverflow.com/a/23378780/5846754 + */ +final class LscpuPhysicalFinder extends ProcOpenBasedFinder +{ + public function toString(): string + { + return 'LscpuPhysicalFinder'; + } + + public function getCommand(): string + { + return 'lscpu -p'; + } + + protected function countCpuCores(string $process): ?int + { + $lines = explode(PHP_EOL, $process); + $actualLines = preg_grep('/^\d+/', $lines); + + if (!is_array($actualLines)) { + return null; + } + + $cores = []; + foreach ($actualLines as $line) { + strtok($line, ','); + $core = strtok(','); + + if (false === $core) { + continue; + } + + $cores[$core] = true; + } + unset($cores['-']); + + $count = count($cores); + + return 0 === $count ? null : $count; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php new file mode 100644 index 00000000..60a8ab78 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/NProcFinder.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use Fidry\CpuCoreCounter\Executor\ProcessExecutor; +use function sprintf; + +/** + * The number of (logical) cores. + * + * @see https://github.com/infection/infection/blob/fbd8c44/src/Resource/Processor/CpuCoresCountProvider.php#L69-L82 + * @see https://unix.stackexchange.com/questions/146051/number-of-processors-in-proc-cpuinfo + */ +final class NProcFinder extends ProcOpenBasedFinder +{ + /** + * @var bool + */ + private $all; + + /** + * @param bool $all If disabled will give the number of cores available for the current process only. + */ + public function __construct( + bool $all = true, + ?ProcessExecutor $executor = null + ) { + parent::__construct($executor); + + $this->all = $all; + } + + public function toString(): string + { + return sprintf( + 'NProcFinder(all=%s)', + $this->all ? 'true' : 'false' + ); + } + + protected function getCommand(): string + { + return 'nproc'.($this->all ? ' --all' : ''); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php new file mode 100644 index 00000000..9143e31c --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +/** + * Find the number of logical CPU cores for FreeSBD, Solaris and the likes. + * + * @see https://twitter.com/freebsdfrau/status/1052016199452700678?s=20&t=M2pHkRqmmna-UF68lfL2hw + */ +final class NProcessorFinder extends ProcOpenBasedFinder +{ + protected function getCommand(): string + { + return 'getconf NPROCESSORS_ONLN'; + } + + public function toString(): string + { + return 'NProcessorFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php new file mode 100644 index 00000000..50af2d4d --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +/** + * This finder returns whatever value you gave to it. This is useful for testing. + */ +final class NullCpuCoreFinder implements CpuCoreFinder +{ + public function diagnose(): string + { + return 'Will return "null".'; + } + + public function find(): ?int + { + return null; + } + + public function toString(): string + { + return 'NullCpuCoreFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php new file mode 100644 index 00000000..31478083 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function implode; +use function sprintf; +use const PHP_OS_FAMILY; + +final class OnlyOnOSFamilyFinder implements CpuCoreFinder +{ + /** + * @var list + */ + private $skippedOSFamilies; + + /** + * @var CpuCoreFinder + */ + private $decoratedFinder; + + /** + * @param string|list $skippedOSFamilyOrFamilies + */ + public function __construct( + $skippedOSFamilyOrFamilies, + CpuCoreFinder $decoratedFinder + ) { + $this->skippedOSFamilies = (array) $skippedOSFamilyOrFamilies; + $this->decoratedFinder = $decoratedFinder; + } + + public static function forWindows(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Windows', + $decoratedFinder + ); + } + + public static function forBSD(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'BSD', + $decoratedFinder + ); + } + + public static function forDarwin(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Darwin', + $decoratedFinder + ); + } + + public static function forSolaris(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Solaris', + $decoratedFinder + ); + } + + public static function forLinux(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Linux', + $decoratedFinder + ); + } + + public function diagnose(): string + { + return $this->skip() + ? sprintf( + 'Skipped platform detected ("%s").', + PHP_OS_FAMILY + ) + : $this->decoratedFinder->diagnose(); + } + + public function find(): ?int + { + return $this->skip() + ? null + : $this->decoratedFinder->find(); + } + + public function toString(): string + { + return sprintf( + 'OnlyOnOSFamilyFinder(only=(%s),%s)', + implode(',', $this->skippedOSFamilies), + $this->decoratedFinder->toString() + ); + } + + private function skip(): bool + { + return !in_array(PHP_OS_FAMILY, $this->skippedOSFamilies, true); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php new file mode 100644 index 00000000..793ec647 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use Fidry\CpuCoreCounter\Executor\ProcessExecutor; +use Fidry\CpuCoreCounter\Executor\ProcOpenExecutor; +use function filter_var; +use function function_exists; +use function is_int; +use function sprintf; +use function trim; +use const FILTER_VALIDATE_INT; +use const PHP_EOL; + +abstract class ProcOpenBasedFinder implements CpuCoreFinder +{ + /** + * @var ProcessExecutor + */ + private $executor; + + public function __construct(?ProcessExecutor $executor = null) + { + $this->executor = $executor ?? new ProcOpenExecutor(); + } + + public function diagnose(): string + { + if (!function_exists('proc_open')) { + return 'The function "proc_open" is not available.'; + } + + $command = $this->getCommand(); + $output = $this->executor->execute($command); + + if (null === $output) { + return sprintf( + 'Failed to execute the command "%s".', + $command + ); + } + + [$stdout, $stderr] = $output; + $failed = '' !== trim($stderr); + + return $failed + ? sprintf( + 'Executed the command "%s" which wrote the following output to the STDERR:%s%s', + $command, + PHP_EOL, + $stderr + ) + : sprintf( + 'Executed the command "%s" and got the following (STDOUT) output:%s%s', + $command, + PHP_EOL, + $stdout + ); + } + + /** + * @return positive-int|null + */ + public function find(): ?int + { + $output = $this->executor->execute($this->getCommand()); + + if (null === $output) { + return null; + } + + [$stdout, $stderr] = $output; + $failed = '' !== trim($stderr); + + return $failed + ? null + : $this->countCpuCores($stdout); + } + + /** + * @internal + * + * @return positive-int|null + */ + protected function countCpuCores(string $process): ?int + { + $cpuCount = filter_var($process, FILTER_VALIDATE_INT); + + return is_int($cpuCount) && $cpuCount > 0 ? $cpuCount : null; + } + + abstract protected function getCommand(): string; +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php new file mode 100644 index 00000000..66a50164 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function implode; +use function in_array; +use function sprintf; + +final class SkipOnOSFamilyFinder implements CpuCoreFinder +{ + /** + * @var list + */ + private $skippedOSFamilies; + + /** + * @var CpuCoreFinder + */ + private $decoratedFinder; + + /** + * @param string|list $skippedOSFamilyOrFamilies + */ + public function __construct( + $skippedOSFamilyOrFamilies, + CpuCoreFinder $decoratedFinder + ) { + $this->skippedOSFamilies = (array) $skippedOSFamilyOrFamilies; + $this->decoratedFinder = $decoratedFinder; + } + + public static function forWindows(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Windows', + $decoratedFinder + ); + } + + public static function forBSD(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'BSD', + $decoratedFinder + ); + } + + public static function forDarwin(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Darwin', + $decoratedFinder + ); + } + + public static function forSolaris(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Solaris', + $decoratedFinder + ); + } + + public static function forLinux(CpuCoreFinder $decoratedFinder): self + { + return new self( + 'Linux', + $decoratedFinder + ); + } + + public function diagnose(): string + { + return $this->skip() + ? sprintf( + 'Skipped platform detected ("%s").', + PHP_OS_FAMILY + ) + : $this->decoratedFinder->diagnose(); + } + + public function find(): ?int + { + return $this->skip() + ? null + : $this->decoratedFinder->find(); + } + + public function toString(): string + { + return sprintf( + 'SkipOnOSFamilyFinder(skip=(%s),%s)', + implode(',', $this->skippedOSFamilies), + $this->decoratedFinder->toString() + ); + } + + private function skip(): bool + { + return in_array(PHP_OS_FAMILY, $this->skippedOSFamilies, true); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php new file mode 100644 index 00000000..db576a64 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function preg_match; + +/** + * Find the number of logical CPU cores for Windows. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L912-L916 + */ +final class WmicLogicalFinder extends ProcOpenBasedFinder +{ + private const CPU_CORE_COUNT_REGEX = '/NumberOfLogicalProcessors[\s\n]+(?\d+)/'; + + protected function getCommand(): string + { + return 'wmic cpu get NumberOfLogicalProcessors'; + } + + public function toString(): string + { + return 'WmicLogicalFinder'; + } + + protected function countCpuCores(string $process): ?int + { + if (0 === preg_match(self::CPU_CORE_COUNT_REGEX, $process, $matches)) { + return parent::countCpuCores($process); + } + + $count = $matches['count']; + + return parent::countCpuCores($count); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php new file mode 100644 index 00000000..140b9fdb --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +use function preg_match; + +/** + * Find the number of physical CPU cores for Windows. + * + * @see https://github.com/paratestphp/paratest/blob/c163539818fd96308ca8dc60f46088461e366ed4/src/Runners/PHPUnit/Options.php#L912-L916 + */ +final class WmicPhysicalFinder extends ProcOpenBasedFinder +{ + private const CPU_CORE_COUNT_REGEX = '/NumberOfCores[\s\n]+(?\d+)/'; + + protected function getCommand(): string + { + return 'wmic cpu get NumberOfCores'; + } + + public function toString(): string + { + return 'WmicPhysicalFinder'; + } + + protected function countCpuCores(string $process): ?int + { + if (0 === preg_match(self::CPU_CORE_COUNT_REGEX, $process, $matches)) { + return parent::countCpuCores($process); + } + + $count = $matches['count']; + + return parent::countCpuCores($count); + } +} diff --git a/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php b/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php new file mode 100644 index 00000000..23f452e4 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter\Finder; + +/** + * Find the number of logical CPU cores for Linux and the likes. + * + * @see https://twitter.com/freebsdfrau/status/1052016199452700678?s=20&t=M2pHkRqmmna-UF68lfL2hw + */ +final class _NProcessorFinder extends ProcOpenBasedFinder +{ + protected function getCommand(): string + { + return 'getconf _NPROCESSORS_ONLN'; + } + + public function toString(): string + { + return '_NProcessorFinder'; + } +} diff --git a/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php b/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php new file mode 100644 index 00000000..e54f8931 --- /dev/null +++ b/vendor/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\CpuCoreCounter; + +use RuntimeException; + +final class NumberOfCpuCoreNotFound extends RuntimeException +{ + public static function create(): self + { + return new self( + 'Could not find the number of CPU cores available.' + ); + } +} diff --git a/vendor/nikic/php-parser/LICENSE b/vendor/nikic/php-parser/LICENSE new file mode 100644 index 00000000..2e567183 --- /dev/null +++ b/vendor/nikic/php-parser/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2011, Nikita Popov +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/nikic/php-parser/README.md b/vendor/nikic/php-parser/README.md new file mode 100644 index 00000000..36de23cd --- /dev/null +++ b/vendor/nikic/php-parser/README.md @@ -0,0 +1,225 @@ +PHP Parser +========== + +[![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master) + +This is a PHP 5.2 to PHP 8.2 parser written in PHP. Its purpose is to simplify static code analysis and +manipulation. + +[**Documentation for version 4.x**][doc_4_x] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.2). + +[Documentation for version 3.x][doc_3_x] (unsupported; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2). + +Features +-------- + +The main features provided by this library are: + + * Parsing PHP 5, PHP 7, and PHP 8 code into an abstract syntax tree (AST). + * Invalid code can be parsed into a partial AST. + * The AST contains accurate location information. + * Dumping the AST in human-readable form. + * Converting an AST back to PHP code. + * Experimental: Formatting can be preserved for partially changed ASTs. + * Infrastructure to traverse and modify ASTs. + * Resolution of namespaced names. + * Evaluation of constant expressions. + * Builders to simplify AST construction for code generation. + * Converting an AST into JSON and back. + +Quick Start +----------- + +Install the library using [composer](https://getcomposer.org): + + php composer.phar require nikic/php-parser + +Parse some PHP code into an AST and dump the result in human-readable form: + +```php +create(ParserFactory::PREFER_PHP7); +try { + $ast = $parser->parse($code); +} catch (Error $error) { + echo "Parse error: {$error->getMessage()}\n"; + return; +} + +$dumper = new NodeDumper; +echo $dumper->dump($ast) . "\n"; +``` + +This dumps an AST looking something like this: + +``` +array( + 0: Stmt_Function( + byRef: false + name: Identifier( + name: test + ) + params: array( + 0: Param( + type: null + byRef: false + variadic: false + var: Expr_Variable( + name: foo + ) + default: null + ) + ) + returnType: null + stmts: array( + 0: Stmt_Expression( + expr: Expr_FuncCall( + name: Name( + parts: array( + 0: var_dump + ) + ) + args: array( + 0: Arg( + value: Expr_Variable( + name: foo + ) + byRef: false + unpack: false + ) + ) + ) + ) + ) + ) +) +``` + +Let's traverse the AST and perform some kind of modification. For example, drop all function bodies: + +```php +use PhpParser\Node; +use PhpParser\Node\Stmt\Function_; +use PhpParser\NodeTraverser; +use PhpParser\NodeVisitorAbstract; + +$traverser = new NodeTraverser(); +$traverser->addVisitor(new class extends NodeVisitorAbstract { + public function enterNode(Node $node) { + if ($node instanceof Function_) { + // Clean out the function body + $node->stmts = []; + } + } +}); + +$ast = $traverser->traverse($ast); +echo $dumper->dump($ast) . "\n"; +``` + +This gives us an AST where the `Function_::$stmts` are empty: + +``` +array( + 0: Stmt_Function( + byRef: false + name: Identifier( + name: test + ) + params: array( + 0: Param( + type: null + byRef: false + variadic: false + var: Expr_Variable( + name: foo + ) + default: null + ) + ) + returnType: null + stmts: array( + ) + ) +) +``` + +Finally, we can convert the new AST back to PHP code: + +```php +use PhpParser\PrettyPrinter; + +$prettyPrinter = new PrettyPrinter\Standard; +echo $prettyPrinter->prettyPrintFile($ast); +``` + +This gives us our original code, minus the `var_dump()` call inside the function: + +```php + [ + 'startLine', 'endLine', 'startFilePos', 'endFilePos', 'comments' +]]); +$parser = (new PhpParser\ParserFactory)->create( + PhpParser\ParserFactory::PREFER_PHP7, + $lexer +); +$dumper = new PhpParser\NodeDumper([ + 'dumpComments' => true, + 'dumpPositions' => $attributes['with-positions'], +]); +$prettyPrinter = new PhpParser\PrettyPrinter\Standard; + +$traverser = new PhpParser\NodeTraverser(); +$traverser->addVisitor(new PhpParser\NodeVisitor\NameResolver); + +foreach ($files as $file) { + if (strpos($file, ' Code $code\n"); + } else { + if (!file_exists($file)) { + fwrite(STDERR, "File $file does not exist.\n"); + exit(1); + } + + $code = file_get_contents($file); + fwrite(STDERR, "====> File $file:\n"); + } + + if ($attributes['with-recovery']) { + $errorHandler = new PhpParser\ErrorHandler\Collecting; + $stmts = $parser->parse($code, $errorHandler); + foreach ($errorHandler->getErrors() as $error) { + $message = formatErrorMessage($error, $code, $attributes['with-column-info']); + fwrite(STDERR, $message . "\n"); + } + if (null === $stmts) { + continue; + } + } else { + try { + $stmts = $parser->parse($code); + } catch (PhpParser\Error $error) { + $message = formatErrorMessage($error, $code, $attributes['with-column-info']); + fwrite(STDERR, $message . "\n"); + exit(1); + } + } + + foreach ($operations as $operation) { + if ('dump' === $operation) { + fwrite(STDERR, "==> Node dump:\n"); + echo $dumper->dump($stmts, $code), "\n"; + } elseif ('pretty-print' === $operation) { + fwrite(STDERR, "==> Pretty print:\n"); + echo $prettyPrinter->prettyPrintFile($stmts), "\n"; + } elseif ('json-dump' === $operation) { + fwrite(STDERR, "==> JSON dump:\n"); + echo json_encode($stmts, JSON_PRETTY_PRINT), "\n"; + } elseif ('var-dump' === $operation) { + fwrite(STDERR, "==> var_dump():\n"); + var_dump($stmts); + } elseif ('resolve-names' === $operation) { + fwrite(STDERR, "==> Resolved names.\n"); + $stmts = $traverser->traverse($stmts); + } + } +} + +function formatErrorMessage(PhpParser\Error $e, $code, $withColumnInfo) { + if ($withColumnInfo && $e->hasColumnInfo()) { + return $e->getMessageWithColumnInfo($code); + } else { + return $e->getMessage(); + } +} + +function showHelp($error = '') { + if ($error) { + fwrite(STDERR, $error . "\n\n"); + } + fwrite($error ? STDERR : STDOUT, << false, + 'with-positions' => false, + 'with-recovery' => false, + ]; + + array_shift($args); + $parseOptions = true; + foreach ($args as $arg) { + if (!$parseOptions) { + $files[] = $arg; + continue; + } + + switch ($arg) { + case '--dump': + case '-d': + $operations[] = 'dump'; + break; + case '--pretty-print': + case '-p': + $operations[] = 'pretty-print'; + break; + case '--json-dump': + case '-j': + $operations[] = 'json-dump'; + break; + case '--var-dump': + $operations[] = 'var-dump'; + break; + case '--resolve-names': + case '-N'; + $operations[] = 'resolve-names'; + break; + case '--with-column-info': + case '-c'; + $attributes['with-column-info'] = true; + break; + case '--with-positions': + case '-P': + $attributes['with-positions'] = true; + break; + case '--with-recovery': + case '-r': + $attributes['with-recovery'] = true; + break; + case '--help': + case '-h'; + showHelp(); + break; + case '--': + $parseOptions = false; + break; + default: + if ($arg[0] === '-') { + showHelp("Invalid operation $arg."); + } else { + $files[] = $arg; + } + } + } + + return [$operations, $files, $attributes]; +} diff --git a/vendor/nikic/php-parser/composer.json b/vendor/nikic/php-parser/composer.json new file mode 100644 index 00000000..2fd064a2 --- /dev/null +++ b/vendor/nikic/php-parser/composer.json @@ -0,0 +1,41 @@ +{ + "name": "nikic/php-parser", + "type": "library", + "description": "A PHP parser written in PHP", + "keywords": [ + "php", + "parser" + ], + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Nikita Popov" + } + ], + "require": { + "php": ">=7.0", + "ext-tokenizer": "*" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0", + "ircmaxell/php-yacc": "^0.0.7" + }, + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "autoload-dev": { + "psr-4": { + "PhpParser\\": "test/PhpParser/" + } + }, + "bin": [ + "bin/php-parse" + ] +} diff --git a/vendor/nikic/php-parser/grammar/README.md b/vendor/nikic/php-parser/grammar/README.md new file mode 100644 index 00000000..4bae11d8 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/README.md @@ -0,0 +1,30 @@ +What do all those files mean? +============================= + + * `php5.y`: PHP 5 grammar written in a pseudo language + * `php7.y`: PHP 7 grammar written in a pseudo language + * `tokens.y`: Tokens definition shared between PHP 5 and PHP 7 grammars + * `parser.template`: A `kmyacc` parser prototype file for PHP + * `tokens.template`: A `kmyacc` prototype file for the `Tokens` class + * `rebuildParsers.php`: Preprocesses the grammar and builds the parser using `kmyacc` + +.phpy pseudo language +===================== + +The `.y` file is a normal grammar in `kmyacc` (`yacc`) style, with some transformations +applied to it: + + * Nodes are created using the syntax `Name[..., ...]`. This is transformed into + `new Name(..., ..., attributes())` + * Some function-like constructs are resolved (see `rebuildParsers.php` for a list) + +Building the parser +=================== + +Run `php grammar/rebuildParsers.php` to rebuild the parsers. Additional options: + + * The `KMYACC` environment variable can be used to specify an alternative `kmyacc` binary. + By default the `phpyacc` dev dependency will be used. To use the original `kmyacc`, you + need to compile [moriyoshi's fork](https://github.com/moriyoshi/kmyacc-forked). + * The `--debug` option enables emission of debug symbols and creates the `y.output` file. + * The `--keep-tmp-grammar` option preserves the preprocessed grammar file. diff --git a/vendor/nikic/php-parser/grammar/parser.template b/vendor/nikic/php-parser/grammar/parser.template new file mode 100644 index 00000000..6166607c --- /dev/null +++ b/vendor/nikic/php-parser/grammar/parser.template @@ -0,0 +1,106 @@ +semValue +#semval($,%t) $this->semValue +#semval(%n) $stackPos-(%l-%n) +#semval(%n,%t) $stackPos-(%l-%n) + +namespace PhpParser\Parser; + +use PhpParser\Error; +use PhpParser\Node; +use PhpParser\Node\Expr; +use PhpParser\Node\Name; +use PhpParser\Node\Scalar; +use PhpParser\Node\Stmt; +#include; + +/* This is an automatically GENERATED file, which should not be manually edited. + * Instead edit one of the following: + * * the grammar files grammar/php5.y or grammar/php7.y + * * the skeleton file grammar/parser.template + * * the preprocessing script grammar/rebuildParsers.php + */ +class #(-p) extends \PhpParser\ParserAbstract +{ + protected $tokenToSymbolMapSize = #(YYMAXLEX); + protected $actionTableSize = #(YYLAST); + protected $gotoTableSize = #(YYGLAST); + + protected $invalidSymbol = #(YYBADCH); + protected $errorSymbol = #(YYINTERRTOK); + protected $defaultAction = #(YYDEFAULT); + protected $unexpectedTokenRule = #(YYUNEXPECTED); + + protected $YY2TBLSTATE = #(YY2TBLSTATE); + protected $numNonLeafStates = #(YYNLSTATES); + + protected $symbolToName = array( + #listvar terminals + ); + + protected $tokenToSymbol = array( + #listvar yytranslate + ); + + protected $action = array( + #listvar yyaction + ); + + protected $actionCheck = array( + #listvar yycheck + ); + + protected $actionBase = array( + #listvar yybase + ); + + protected $actionDefault = array( + #listvar yydefault + ); + + protected $goto = array( + #listvar yygoto + ); + + protected $gotoCheck = array( + #listvar yygcheck + ); + + protected $gotoBase = array( + #listvar yygbase + ); + + protected $gotoDefault = array( + #listvar yygdefault + ); + + protected $ruleToNonTerminal = array( + #listvar yylhs + ); + + protected $ruleToLength = array( + #listvar yylen + ); +#if -t + + protected $productions = array( + #production-strings; + ); +#endif + + protected function initReduceCallbacks() { + $this->reduceCallbacks = [ +#reduce + %n => function ($stackPos) { + %b + }, +#noact + %n => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, +#endreduce + ]; + } +} +#tailcode; diff --git a/vendor/nikic/php-parser/grammar/php5.y b/vendor/nikic/php-parser/grammar/php5.y new file mode 100644 index 00000000..2920dead --- /dev/null +++ b/vendor/nikic/php-parser/grammar/php5.y @@ -0,0 +1,1046 @@ +%pure_parser +%expect 6 + +%tokens + +%% + +start: + top_statement_list { $$ = $this->handleNamespaces($1); } +; + +top_statement_list_ex: + top_statement_list_ex top_statement { pushNormalizing($1, $2); } + | /* empty */ { init(); } +; + +top_statement_list: + top_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +ampersand: + T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + | T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG +; + +reserved_non_modifiers: + T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND + | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE + | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH + | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO + | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT + | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS + | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN + | T_MATCH +; + +semi_reserved: + reserved_non_modifiers + | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC +; + +identifier_ex: + T_STRING { $$ = Node\Identifier[$1]; } + | semi_reserved { $$ = Node\Identifier[$1]; } +; + +identifier: + T_STRING { $$ = Node\Identifier[$1]; } +; + +reserved_non_modifiers_identifier: + reserved_non_modifiers { $$ = Node\Identifier[$1]; } +; + +namespace_name: + T_STRING { $$ = Name[$1]; } + | T_NAME_QUALIFIED { $$ = Name[$1]; } +; + +legacy_namespace_name: + namespace_name { $$ = $1; } + | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } +; + +plain_variable: + T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } +; + +top_statement: + statement { $$ = $1; } + | function_declaration_statement { $$ = $1; } + | class_declaration_statement { $$ = $1; } + | T_HALT_COMPILER + { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } + | T_NAMESPACE namespace_name ';' + { $$ = Stmt\Namespace_[$2, null]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); + $this->checkNamespace($$); } + | T_NAMESPACE namespace_name '{' top_statement_list '}' + { $$ = Stmt\Namespace_[$2, $4]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($$); } + | T_NAMESPACE '{' top_statement_list '}' + { $$ = Stmt\Namespace_[null, $3]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($$); } + | T_USE use_declarations ';' { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } + | T_USE use_type use_declarations ';' { $$ = Stmt\Use_[$3, $2]; } + | group_use_declaration ';' { $$ = $1; } + | T_CONST constant_declaration_list ';' { $$ = Stmt\Const_[$2]; } +; + +use_type: + T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } + | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } +; + +group_use_declaration: + T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' + { $$ = Stmt\GroupUse[$3, $6, $2]; } + | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' + { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } +; + +unprefixed_use_declarations: + unprefixed_use_declarations ',' unprefixed_use_declaration + { push($1, $3); } + | unprefixed_use_declaration { init($1); } +; + +use_declarations: + use_declarations ',' use_declaration { push($1, $3); } + | use_declaration { init($1); } +; + +inline_use_declarations: + inline_use_declarations ',' inline_use_declaration { push($1, $3); } + | inline_use_declaration { init($1); } +; + +unprefixed_use_declaration: + namespace_name + { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } + | namespace_name T_AS identifier + { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } +; + +use_declaration: + legacy_namespace_name + { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } + | legacy_namespace_name T_AS identifier + { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } +; + +inline_use_declaration: + unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } + | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } +; + +constant_declaration_list: + constant_declaration_list ',' constant_declaration { push($1, $3); } + | constant_declaration { init($1); } +; + +constant_declaration: + identifier '=' static_scalar { $$ = Node\Const_[$1, $3]; } +; + +class_const_list: + class_const_list ',' class_const { push($1, $3); } + | class_const { init($1); } +; + +class_const: + identifier_ex '=' static_scalar { $$ = Node\Const_[$1, $3]; } +; + +inner_statement_list_ex: + inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } + | /* empty */ { init(); } +; + +inner_statement_list: + inner_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +inner_statement: + statement { $$ = $1; } + | function_declaration_statement { $$ = $1; } + | class_declaration_statement { $$ = $1; } + | T_HALT_COMPILER + { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } +; + +non_empty_statement: + '{' inner_statement_list '}' + { + if ($2) { + $$ = $2; prependLeadingComments($$); + } else { + makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); + if (null === $$) { $$ = array(); } + } + } + | T_IF parentheses_expr statement elseif_list else_single + { $$ = Stmt\If_[$2, ['stmts' => toArray($3), 'elseifs' => $4, 'else' => $5]]; } + | T_IF parentheses_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' + { $$ = Stmt\If_[$2, ['stmts' => $4, 'elseifs' => $5, 'else' => $6]]; } + | T_WHILE parentheses_expr while_statement { $$ = Stmt\While_[$2, $3]; } + | T_DO statement T_WHILE parentheses_expr ';' { $$ = Stmt\Do_ [$4, toArray($2)]; } + | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement + { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } + | T_SWITCH parentheses_expr switch_case_list { $$ = Stmt\Switch_[$2, $3]; } + | T_BREAK ';' { $$ = Stmt\Break_[null]; } + | T_BREAK expr ';' { $$ = Stmt\Break_[$2]; } + | T_CONTINUE ';' { $$ = Stmt\Continue_[null]; } + | T_CONTINUE expr ';' { $$ = Stmt\Continue_[$2]; } + | T_RETURN ';' { $$ = Stmt\Return_[null]; } + | T_RETURN expr ';' { $$ = Stmt\Return_[$2]; } + | T_GLOBAL global_var_list ';' { $$ = Stmt\Global_[$2]; } + | T_STATIC static_var_list ';' { $$ = Stmt\Static_[$2]; } + | T_ECHO expr_list ';' { $$ = Stmt\Echo_[$2]; } + | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } + | yield_expr ';' { $$ = Stmt\Expression[$1]; } + | expr ';' { $$ = Stmt\Expression[$1]; } + | T_UNSET '(' variables_list ')' ';' { $$ = Stmt\Unset_[$3]; } + | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement + { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } + | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement + { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } + | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } + | T_TRY '{' inner_statement_list '}' catches optional_finally + { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } + | T_THROW expr ';' { $$ = Stmt\Throw_[$2]; } + | T_GOTO identifier ';' { $$ = Stmt\Goto_[$2]; } + | identifier ':' { $$ = Stmt\Label[$1]; } + | expr error { $$ = Stmt\Expression[$1]; } + | error { $$ = array(); /* means: no statement */ } +; + +statement: + non_empty_statement { $$ = $1; } + | ';' + { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); + if ($$ === null) $$ = array(); /* means: no statement */ } +; + +catches: + /* empty */ { init(); } + | catches catch { push($1, $2); } +; + +catch: + T_CATCH '(' name plain_variable ')' '{' inner_statement_list '}' + { $$ = Stmt\Catch_[array($3), $4, $7]; } +; + +optional_finally: + /* empty */ { $$ = null; } + | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } +; + +variables_list: + variable { init($1); } + | variables_list ',' variable { push($1, $3); } +; + +optional_ref: + /* empty */ { $$ = false; } + | ampersand { $$ = true; } +; + +optional_arg_ref: + /* empty */ { $$ = false; } + | T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG { $$ = true; } +; + +optional_ellipsis: + /* empty */ { $$ = false; } + | T_ELLIPSIS { $$ = true; } +; + +identifier_maybe_readonly: + identifier { $$ = $1; } + | T_READONLY { $$ = Node\Identifier[$1]; } +; + +function_declaration_statement: + T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type '{' inner_statement_list '}' + { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $9]]; } +; + +class_declaration_statement: + class_entry_type identifier extends_from implements_list '{' class_statement_list '}' + { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6]]; + $this->checkClass($$, #2); } + | T_INTERFACE identifier interface_extends_list '{' class_statement_list '}' + { $$ = Stmt\Interface_[$2, ['extends' => $3, 'stmts' => $5]]; + $this->checkInterface($$, #2); } + | T_TRAIT identifier '{' class_statement_list '}' + { $$ = Stmt\Trait_[$2, ['stmts' => $4]]; } +; + +class_entry_type: + T_CLASS { $$ = 0; } + | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } + | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } +; + +extends_from: + /* empty */ { $$ = null; } + | T_EXTENDS class_name { $$ = $2; } +; + +interface_extends_list: + /* empty */ { $$ = array(); } + | T_EXTENDS class_name_list { $$ = $2; } +; + +implements_list: + /* empty */ { $$ = array(); } + | T_IMPLEMENTS class_name_list { $$ = $2; } +; + +class_name_list: + class_name { init($1); } + | class_name_list ',' class_name { push($1, $3); } +; + +for_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } +; + +foreach_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } +; + +declare_statement: + non_empty_statement { $$ = toArray($1); } + | ';' { $$ = null; } + | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } +; + +declare_list: + declare_list_element { init($1); } + | declare_list ',' declare_list_element { push($1, $3); } +; + +declare_list_element: + identifier '=' static_scalar { $$ = Stmt\DeclareDeclare[$1, $3]; } +; + +switch_case_list: + '{' case_list '}' { $$ = $2; } + | '{' ';' case_list '}' { $$ = $3; } + | ':' case_list T_ENDSWITCH ';' { $$ = $2; } + | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } +; + +case_list: + /* empty */ { init(); } + | case_list case { push($1, $2); } +; + +case: + T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } + | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } +; + +case_separator: + ':' + | ';' +; + +while_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } +; + +elseif_list: + /* empty */ { init(); } + | elseif_list elseif { push($1, $2); } +; + +elseif: + T_ELSEIF parentheses_expr statement { $$ = Stmt\ElseIf_[$2, toArray($3)]; } +; + +new_elseif_list: + /* empty */ { init(); } + | new_elseif_list new_elseif { push($1, $2); } +; + +new_elseif: + T_ELSEIF parentheses_expr ':' inner_statement_list { $$ = Stmt\ElseIf_[$2, $4]; } +; + +else_single: + /* empty */ { $$ = null; } + | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } +; + +new_else_single: + /* empty */ { $$ = null; } + | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } +; + +foreach_variable: + variable { $$ = array($1, false); } + | ampersand variable { $$ = array($2, true); } + | list_expr { $$ = array($1, false); } +; + +parameter_list: + non_empty_parameter_list { $$ = $1; } + | /* empty */ { $$ = array(); } +; + +non_empty_parameter_list: + parameter { init($1); } + | non_empty_parameter_list ',' parameter { push($1, $3); } +; + +parameter: + optional_param_type optional_arg_ref optional_ellipsis plain_variable + { $$ = Node\Param[$4, null, $1, $2, $3]; $this->checkParam($$); } + | optional_param_type optional_arg_ref optional_ellipsis plain_variable '=' static_scalar + { $$ = Node\Param[$4, $6, $1, $2, $3]; $this->checkParam($$); } +; + +type: + name { $$ = $1; } + | T_ARRAY { $$ = Node\Identifier['array']; } + | T_CALLABLE { $$ = Node\Identifier['callable']; } +; + +optional_param_type: + /* empty */ { $$ = null; } + | type { $$ = $1; } +; + +optional_return_type: + /* empty */ { $$ = null; } + | ':' type { $$ = $2; } +; + +argument_list: + '(' ')' { $$ = array(); } + | '(' non_empty_argument_list ')' { $$ = $2; } + | '(' yield_expr ')' { $$ = array(Node\Arg[$2, false, false]); } +; + +non_empty_argument_list: + argument { init($1); } + | non_empty_argument_list ',' argument { push($1, $3); } +; + +argument: + expr { $$ = Node\Arg[$1, false, false]; } + | ampersand variable { $$ = Node\Arg[$2, true, false]; } + | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } +; + +global_var_list: + global_var_list ',' global_var { push($1, $3); } + | global_var { init($1); } +; + +global_var: + plain_variable { $$ = $1; } + | '$' variable { $$ = Expr\Variable[$2]; } + | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } +; + +static_var_list: + static_var_list ',' static_var { push($1, $3); } + | static_var { init($1); } +; + +static_var: + plain_variable { $$ = Stmt\StaticVar[$1, null]; } + | plain_variable '=' static_scalar { $$ = Stmt\StaticVar[$1, $3]; } +; + +class_statement_list_ex: + class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } + | /* empty */ { init(); } +; + +class_statement_list: + class_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +class_statement: + variable_modifiers property_declaration_list ';' + { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } + | T_CONST class_const_list ';' { $$ = Stmt\ClassConst[$2, 0]; } + | method_modifiers T_FUNCTION optional_ref identifier_ex '(' parameter_list ')' optional_return_type method_body + { $$ = Stmt\ClassMethod[$4, ['type' => $1, 'byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9]]; + $this->checkClassMethod($$, #1); } + | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } +; + +trait_adaptations: + ';' { $$ = array(); } + | '{' trait_adaptation_list '}' { $$ = $2; } +; + +trait_adaptation_list: + /* empty */ { init(); } + | trait_adaptation_list trait_adaptation { push($1, $2); } +; + +trait_adaptation: + trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' + { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } + | trait_method_reference T_AS member_modifier identifier_ex ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } + | trait_method_reference T_AS member_modifier ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } + | trait_method_reference T_AS identifier ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } + | trait_method_reference T_AS reserved_non_modifiers_identifier ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } +; + +trait_method_reference_fully_qualified: + name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = array($1, $3); } +; +trait_method_reference: + trait_method_reference_fully_qualified { $$ = $1; } + | identifier_ex { $$ = array(null, $1); } +; + +method_body: + ';' /* abstract method */ { $$ = null; } + | '{' inner_statement_list '}' { $$ = $2; } +; + +variable_modifiers: + non_empty_member_modifiers { $$ = $1; } + | T_VAR { $$ = 0; } +; + +method_modifiers: + /* empty */ { $$ = 0; } + | non_empty_member_modifiers { $$ = $1; } +; + +non_empty_member_modifiers: + member_modifier { $$ = $1; } + | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } +; + +member_modifier: + T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } + | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } + | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } + | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } + | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } + | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } +; + +property_declaration_list: + property_declaration { init($1); } + | property_declaration_list ',' property_declaration { push($1, $3); } +; + +property_decl_name: + T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } +; + +property_declaration: + property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } + | property_decl_name '=' static_scalar { $$ = Stmt\PropertyProperty[$1, $3]; } +; + +expr_list: + expr_list ',' expr { push($1, $3); } + | expr { init($1); } +; + +for_expr: + /* empty */ { $$ = array(); } + | expr_list { $$ = $1; } +; + +expr: + variable { $$ = $1; } + | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } + | variable '=' expr { $$ = Expr\Assign[$1, $3]; } + | variable '=' ampersand variable { $$ = Expr\AssignRef[$1, $4]; } + | variable '=' ampersand new_expr { $$ = Expr\AssignRef[$1, $4]; } + | new_expr { $$ = $1; } + | T_CLONE expr { $$ = Expr\Clone_[$2]; } + | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } + | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } + | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } + | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } + | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } + | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } + | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } + | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } + | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } + | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } + | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } + | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } + | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } + | variable T_INC { $$ = Expr\PostInc[$1]; } + | T_INC variable { $$ = Expr\PreInc [$2]; } + | variable T_DEC { $$ = Expr\PostDec[$1]; } + | T_DEC variable { $$ = Expr\PreDec [$2]; } + | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } + | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } + | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } + | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } + | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } + | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } + | expr T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | expr T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } + | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } + | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } + | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } + | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } + | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } + | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } + | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } + | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } + | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } + | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } + | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } + | '!' expr { $$ = Expr\BooleanNot[$2]; } + | '~' expr { $$ = Expr\BitwiseNot[$2]; } + | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } + | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } + | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } + | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } + | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } + | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } + | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } + | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } + | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } + | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } + | parentheses_expr { $$ = $1; } + /* we need a separate '(' new_expr ')' rule to avoid problems caused by a s/r conflict */ + | '(' new_expr ')' { $$ = $2; } + | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } + | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } + | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } + | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } + | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } + | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } + | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } + | T_EVAL parentheses_expr { $$ = Expr\Eval_[$2]; } + | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } + | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } + | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } + | T_DOUBLE_CAST expr + { $attrs = attributes(); + $attrs['kind'] = $this->getFloatCastKind($1); + $$ = new Expr\Cast\Double($2, $attrs); } + | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } + | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } + | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } + | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } + | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } + | T_EXIT exit_expr + { $attrs = attributes(); + $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $$ = new Expr\Exit_($2, $attrs); } + | '@' expr { $$ = Expr\ErrorSuppress[$2]; } + | scalar { $$ = $1; } + | array_expr { $$ = $1; } + | scalar_dereference { $$ = $1; } + | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } + | T_PRINT expr { $$ = Expr\Print_[$2]; } + | T_YIELD { $$ = Expr\Yield_[null, null]; } + | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } + | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type + '{' inner_statement_list '}' + { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $9]]; } + | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type + '{' inner_statement_list '}' + { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $10]]; } +; + +parentheses_expr: + '(' expr ')' { $$ = $2; } + | '(' yield_expr ')' { $$ = $2; } +; + +yield_expr: + T_YIELD expr { $$ = Expr\Yield_[$2, null]; } + | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } +; + +array_expr: + T_ARRAY '(' array_pair_list ')' + { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; + $$ = new Expr\Array_($3, $attrs); } + | '[' array_pair_list ']' + { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; + $$ = new Expr\Array_($2, $attrs); } +; + +scalar_dereference: + array_expr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[Scalar\String_::fromString($1, attributes()), $3]; } + | constant '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | scalar_dereference '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + /* alternative array syntax missing intentionally */ +; + +anonymous_class: + T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' + { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $3, 'implements' => $4, 'stmts' => $6]], $2); + $this->checkClass($$[0], -1); } +; + +new_expr: + T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } + | T_NEW anonymous_class + { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } +; + +lexical_vars: + /* empty */ { $$ = array(); } + | T_USE '(' lexical_var_list ')' { $$ = $3; } +; + +lexical_var_list: + lexical_var { init($1); } + | lexical_var_list ',' lexical_var { push($1, $3); } +; + +lexical_var: + optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } +; + +name_readonly: + T_READONLY { $$ = Name[$1]; } +; + +function_call: + name argument_list { $$ = Expr\FuncCall[$1, $2]; } + | name_readonly argument_list { $$ = Expr\FuncCall[$1, $2]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex argument_list + { $$ = Expr\StaticCall[$1, $3, $4]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' argument_list + { $$ = Expr\StaticCall[$1, $4, $6]; } + | static_property argument_list + { $$ = $this->fixupPhp5StaticPropCall($1, $2, attributes()); } + | variable_without_objects argument_list + { $$ = Expr\FuncCall[$1, $2]; } + | function_call '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + /* alternative array syntax missing intentionally */ +; + +class_name: + T_STATIC { $$ = Name[$1]; } + | name { $$ = $1; } +; + +name: + T_STRING { $$ = Name[$1]; } + | T_NAME_QUALIFIED { $$ = Name[$1]; } + | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } + | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } +; + +class_name_reference: + class_name { $$ = $1; } + | dynamic_class_name_reference { $$ = $1; } +; + +dynamic_class_name_reference: + object_access_for_dcnr { $$ = $1; } + | base_variable { $$ = $1; } +; + +class_name_or_var: + class_name { $$ = $1; } + | reference_variable { $$ = $1; } +; + +object_access_for_dcnr: + base_variable T_OBJECT_OPERATOR object_property + { $$ = Expr\PropertyFetch[$1, $3]; } + | object_access_for_dcnr T_OBJECT_OPERATOR object_property + { $$ = Expr\PropertyFetch[$1, $3]; } + | object_access_for_dcnr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | object_access_for_dcnr '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } +; + +exit_expr: + /* empty */ { $$ = null; } + | '(' ')' { $$ = null; } + | parentheses_expr { $$ = $1; } +; + +backticks_expr: + /* empty */ { $$ = array(); } + | T_ENCAPSED_AND_WHITESPACE + { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`', false)]); } + | encaps_list { parseEncapsed($1, '`', false); $$ = $1; } +; + +ctor_arguments: + /* empty */ { $$ = array(); } + | argument_list { $$ = $1; } +; + +common_scalar: + T_LNUMBER { $$ = $this->parseLNumber($1, attributes(), true); } + | T_DNUMBER { $$ = Scalar\DNumber::fromString($1, attributes()); } + | T_CONSTANT_ENCAPSED_STRING { $$ = Scalar\String_::fromString($1, attributes(), false); } + | T_LINE { $$ = Scalar\MagicConst\Line[]; } + | T_FILE { $$ = Scalar\MagicConst\File[]; } + | T_DIR { $$ = Scalar\MagicConst\Dir[]; } + | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } + | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } + | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } + | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } + | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } + | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), false); } + | T_START_HEREDOC T_END_HEREDOC + { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), false); } +; + +static_scalar: + common_scalar { $$ = $1; } + | class_name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = Expr\ClassConstFetch[$1, $3]; } + | name { $$ = Expr\ConstFetch[$1]; } + | T_ARRAY '(' static_array_pair_list ')' { $$ = Expr\Array_[$3]; } + | '[' static_array_pair_list ']' { $$ = Expr\Array_[$2]; } + | static_operation { $$ = $1; } +; + +static_operation: + static_scalar T_BOOLEAN_OR static_scalar { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } + | static_scalar T_BOOLEAN_AND static_scalar { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } + | static_scalar T_LOGICAL_OR static_scalar { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } + | static_scalar T_LOGICAL_AND static_scalar { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } + | static_scalar T_LOGICAL_XOR static_scalar { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } + | static_scalar '|' static_scalar { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } + | static_scalar T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG static_scalar + { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | static_scalar T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG static_scalar + { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | static_scalar '^' static_scalar { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } + | static_scalar '.' static_scalar { $$ = Expr\BinaryOp\Concat [$1, $3]; } + | static_scalar '+' static_scalar { $$ = Expr\BinaryOp\Plus [$1, $3]; } + | static_scalar '-' static_scalar { $$ = Expr\BinaryOp\Minus [$1, $3]; } + | static_scalar '*' static_scalar { $$ = Expr\BinaryOp\Mul [$1, $3]; } + | static_scalar '/' static_scalar { $$ = Expr\BinaryOp\Div [$1, $3]; } + | static_scalar '%' static_scalar { $$ = Expr\BinaryOp\Mod [$1, $3]; } + | static_scalar T_SL static_scalar { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } + | static_scalar T_SR static_scalar { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } + | static_scalar T_POW static_scalar { $$ = Expr\BinaryOp\Pow [$1, $3]; } + | '+' static_scalar %prec T_INC { $$ = Expr\UnaryPlus [$2]; } + | '-' static_scalar %prec T_INC { $$ = Expr\UnaryMinus[$2]; } + | '!' static_scalar { $$ = Expr\BooleanNot[$2]; } + | '~' static_scalar { $$ = Expr\BitwiseNot[$2]; } + | static_scalar T_IS_IDENTICAL static_scalar { $$ = Expr\BinaryOp\Identical [$1, $3]; } + | static_scalar T_IS_NOT_IDENTICAL static_scalar { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } + | static_scalar T_IS_EQUAL static_scalar { $$ = Expr\BinaryOp\Equal [$1, $3]; } + | static_scalar T_IS_NOT_EQUAL static_scalar { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } + | static_scalar '<' static_scalar { $$ = Expr\BinaryOp\Smaller [$1, $3]; } + | static_scalar T_IS_SMALLER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } + | static_scalar '>' static_scalar { $$ = Expr\BinaryOp\Greater [$1, $3]; } + | static_scalar T_IS_GREATER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } + | static_scalar '?' static_scalar ':' static_scalar { $$ = Expr\Ternary[$1, $3, $5]; } + | static_scalar '?' ':' static_scalar { $$ = Expr\Ternary[$1, null, $4]; } + | static_scalar '[' static_scalar ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | '(' static_scalar ')' { $$ = $2; } +; + +constant: + name { $$ = Expr\ConstFetch[$1]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex + { $$ = Expr\ClassConstFetch[$1, $3]; } +; + +scalar: + common_scalar { $$ = $1; } + | constant { $$ = $1; } + | '"' encaps_list '"' + { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } + | T_START_HEREDOC encaps_list T_END_HEREDOC + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } +; + +static_array_pair_list: + /* empty */ { $$ = array(); } + | non_empty_static_array_pair_list optional_comma { $$ = $1; } +; + +optional_comma: + /* empty */ + | ',' +; + +non_empty_static_array_pair_list: + non_empty_static_array_pair_list ',' static_array_pair { push($1, $3); } + | static_array_pair { init($1); } +; + +static_array_pair: + static_scalar T_DOUBLE_ARROW static_scalar { $$ = Expr\ArrayItem[$3, $1, false]; } + | static_scalar { $$ = Expr\ArrayItem[$1, null, false]; } +; + +variable: + object_access { $$ = $1; } + | base_variable { $$ = $1; } + | function_call { $$ = $1; } + | new_expr_array_deref { $$ = $1; } +; + +new_expr_array_deref: + '(' new_expr ')' '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$2, $5]; } + | new_expr_array_deref '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + /* alternative array syntax missing intentionally */ +; + +object_access: + variable_or_new_expr T_OBJECT_OPERATOR object_property + { $$ = Expr\PropertyFetch[$1, $3]; } + | variable_or_new_expr T_OBJECT_OPERATOR object_property argument_list + { $$ = Expr\MethodCall[$1, $3, $4]; } + | object_access argument_list { $$ = Expr\FuncCall[$1, $2]; } + | object_access '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | object_access '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } +; + +variable_or_new_expr: + variable { $$ = $1; } + | '(' new_expr ')' { $$ = $2; } +; + +variable_without_objects: + reference_variable { $$ = $1; } + | '$' variable_without_objects { $$ = Expr\Variable[$2]; } +; + +base_variable: + variable_without_objects { $$ = $1; } + | static_property { $$ = $1; } +; + +static_property: + class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable + { $$ = Expr\StaticPropertyFetch[$1, $4]; } + | static_property_with_arrays { $$ = $1; } +; + +static_property_simple_name: + T_VARIABLE + { $var = parseVar($1); $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } +; + +static_property_with_arrays: + class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_property_simple_name + { $$ = Expr\StaticPropertyFetch[$1, $3]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}' + { $$ = Expr\StaticPropertyFetch[$1, $5]; } + | static_property_with_arrays '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | static_property_with_arrays '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } +; + +reference_variable: + reference_variable '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | reference_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | plain_variable { $$ = $1; } + | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } +; + +dim_offset: + /* empty */ { $$ = null; } + | expr { $$ = $1; } +; + +object_property: + identifier { $$ = $1; } + | '{' expr '}' { $$ = $2; } + | variable_without_objects { $$ = $1; } + | error { $$ = Expr\Error[]; $this->errorState = 2; } +; + +list_expr: + T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } +; + +list_expr_elements: + list_expr_elements ',' list_expr_element { push($1, $3); } + | list_expr_element { init($1); } +; + +list_expr_element: + variable { $$ = Expr\ArrayItem[$1, null, false]; } + | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } + | /* empty */ { $$ = null; } +; + +array_pair_list: + /* empty */ { $$ = array(); } + | non_empty_array_pair_list optional_comma { $$ = $1; } +; + +non_empty_array_pair_list: + non_empty_array_pair_list ',' array_pair { push($1, $3); } + | array_pair { init($1); } +; + +array_pair: + expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } + | expr { $$ = Expr\ArrayItem[$1, null, false]; } + | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } + | ampersand variable { $$ = Expr\ArrayItem[$2, null, true]; } + | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } +; + +encaps_list: + encaps_list encaps_var { push($1, $2); } + | encaps_list encaps_string_part { push($1, $2); } + | encaps_var { init($1); } + | encaps_string_part encaps_var { init($1, $2); } +; + +encaps_string_part: + T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } +; + +encaps_str_varname: + T_STRING_VARNAME { $$ = Expr\Variable[$1]; } +; + +encaps_var: + plain_variable { $$ = $1; } + | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | plain_variable T_OBJECT_OPERATOR identifier { $$ = Expr\PropertyFetch[$1, $3]; } + | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } + | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' + { $$ = Expr\ArrayDimFetch[$2, $4]; } + | T_CURLY_OPEN variable '}' { $$ = $2; } +; + +encaps_var_offset: + T_STRING { $$ = Scalar\String_[$1]; } + | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } + | plain_variable { $$ = $1; } +; + +%% diff --git a/vendor/nikic/php-parser/grammar/php7.y b/vendor/nikic/php-parser/grammar/php7.y new file mode 100644 index 00000000..fc7862c3 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/php7.y @@ -0,0 +1,1237 @@ +%pure_parser +%expect 2 + +%tokens + +%% + +start: + top_statement_list { $$ = $this->handleNamespaces($1); } +; + +top_statement_list_ex: + top_statement_list_ex top_statement { pushNormalizing($1, $2); } + | /* empty */ { init(); } +; + +top_statement_list: + top_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +ampersand: + T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + | T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG +; + +reserved_non_modifiers: + T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND + | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE + | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH + | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO + | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT + | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS + | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN + | T_MATCH | T_ENUM +; + +semi_reserved: + reserved_non_modifiers + | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC | T_READONLY +; + +identifier_maybe_reserved: + T_STRING { $$ = Node\Identifier[$1]; } + | semi_reserved { $$ = Node\Identifier[$1]; } +; + +identifier_not_reserved: + T_STRING { $$ = Node\Identifier[$1]; } +; + +reserved_non_modifiers_identifier: + reserved_non_modifiers { $$ = Node\Identifier[$1]; } +; + +namespace_declaration_name: + T_STRING { $$ = Name[$1]; } + | semi_reserved { $$ = Name[$1]; } + | T_NAME_QUALIFIED { $$ = Name[$1]; } +; + +namespace_name: + T_STRING { $$ = Name[$1]; } + | T_NAME_QUALIFIED { $$ = Name[$1]; } +; + +legacy_namespace_name: + namespace_name { $$ = $1; } + | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } +; + +plain_variable: + T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } +; + +semi: + ';' { /* nothing */ } + | error { /* nothing */ } +; + +no_comma: + /* empty */ { /* nothing */ } + | ',' { $this->emitError(new Error('A trailing comma is not allowed here', attributes())); } +; + +optional_comma: + /* empty */ + | ',' +; + +attribute_decl: + class_name { $$ = Node\Attribute[$1, []]; } + | class_name argument_list { $$ = Node\Attribute[$1, $2]; } +; + +attribute_group: + attribute_decl { init($1); } + | attribute_group ',' attribute_decl { push($1, $3); } +; + +attribute: + T_ATTRIBUTE attribute_group optional_comma ']' { $$ = Node\AttributeGroup[$2]; } +; + +attributes: + attribute { init($1); } + | attributes attribute { push($1, $2); } +; + +optional_attributes: + /* empty */ { $$ = []; } + | attributes { $$ = $1; } +; + +top_statement: + statement { $$ = $1; } + | function_declaration_statement { $$ = $1; } + | class_declaration_statement { $$ = $1; } + | T_HALT_COMPILER + { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } + | T_NAMESPACE namespace_declaration_name semi + { $$ = Stmt\Namespace_[$2, null]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); + $this->checkNamespace($$); } + | T_NAMESPACE namespace_declaration_name '{' top_statement_list '}' + { $$ = Stmt\Namespace_[$2, $4]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($$); } + | T_NAMESPACE '{' top_statement_list '}' + { $$ = Stmt\Namespace_[null, $3]; + $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($$); } + | T_USE use_declarations semi { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } + | T_USE use_type use_declarations semi { $$ = Stmt\Use_[$3, $2]; } + | group_use_declaration semi { $$ = $1; } + | T_CONST constant_declaration_list semi { $$ = Stmt\Const_[$2]; } +; + +use_type: + T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } + | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } +; + +group_use_declaration: + T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' + { $$ = Stmt\GroupUse[$3, $6, $2]; } + | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' + { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } +; + +unprefixed_use_declarations: + non_empty_unprefixed_use_declarations optional_comma { $$ = $1; } +; + +non_empty_unprefixed_use_declarations: + non_empty_unprefixed_use_declarations ',' unprefixed_use_declaration + { push($1, $3); } + | unprefixed_use_declaration { init($1); } +; + +use_declarations: + non_empty_use_declarations no_comma { $$ = $1; } +; + +non_empty_use_declarations: + non_empty_use_declarations ',' use_declaration { push($1, $3); } + | use_declaration { init($1); } +; + +inline_use_declarations: + non_empty_inline_use_declarations optional_comma { $$ = $1; } +; + +non_empty_inline_use_declarations: + non_empty_inline_use_declarations ',' inline_use_declaration + { push($1, $3); } + | inline_use_declaration { init($1); } +; + +unprefixed_use_declaration: + namespace_name + { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } + | namespace_name T_AS identifier_not_reserved + { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } +; + +use_declaration: + legacy_namespace_name + { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } + | legacy_namespace_name T_AS identifier_not_reserved + { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } +; + +inline_use_declaration: + unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } + | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } +; + +constant_declaration_list: + non_empty_constant_declaration_list no_comma { $$ = $1; } +; + +non_empty_constant_declaration_list: + non_empty_constant_declaration_list ',' constant_declaration + { push($1, $3); } + | constant_declaration { init($1); } +; + +constant_declaration: + identifier_not_reserved '=' expr { $$ = Node\Const_[$1, $3]; } +; + +class_const_list: + non_empty_class_const_list no_comma { $$ = $1; } +; + +non_empty_class_const_list: + non_empty_class_const_list ',' class_const { push($1, $3); } + | class_const { init($1); } +; + +class_const: + identifier_maybe_reserved '=' expr { $$ = Node\Const_[$1, $3]; } +; + +inner_statement_list_ex: + inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } + | /* empty */ { init(); } +; + +inner_statement_list: + inner_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +inner_statement: + statement { $$ = $1; } + | function_declaration_statement { $$ = $1; } + | class_declaration_statement { $$ = $1; } + | T_HALT_COMPILER + { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } +; + +non_empty_statement: + '{' inner_statement_list '}' + { + if ($2) { + $$ = $2; prependLeadingComments($$); + } else { + makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); + if (null === $$) { $$ = array(); } + } + } + | T_IF '(' expr ')' statement elseif_list else_single + { $$ = Stmt\If_[$3, ['stmts' => toArray($5), 'elseifs' => $6, 'else' => $7]]; } + | T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' + { $$ = Stmt\If_[$3, ['stmts' => $6, 'elseifs' => $7, 'else' => $8]]; } + | T_WHILE '(' expr ')' while_statement { $$ = Stmt\While_[$3, $5]; } + | T_DO statement T_WHILE '(' expr ')' ';' { $$ = Stmt\Do_ [$5, toArray($2)]; } + | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement + { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } + | T_SWITCH '(' expr ')' switch_case_list { $$ = Stmt\Switch_[$3, $5]; } + | T_BREAK optional_expr semi { $$ = Stmt\Break_[$2]; } + | T_CONTINUE optional_expr semi { $$ = Stmt\Continue_[$2]; } + | T_RETURN optional_expr semi { $$ = Stmt\Return_[$2]; } + | T_GLOBAL global_var_list semi { $$ = Stmt\Global_[$2]; } + | T_STATIC static_var_list semi { $$ = Stmt\Static_[$2]; } + | T_ECHO expr_list_forbid_comma semi { $$ = Stmt\Echo_[$2]; } + | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } + | expr semi { + $e = $1; + if ($e instanceof Expr\Throw_) { + // For backwards-compatibility reasons, convert throw in statement position into + // Stmt\Throw_ rather than Stmt\Expression(Expr\Throw_). + $$ = Stmt\Throw_[$e->expr]; + } else { + $$ = Stmt\Expression[$e]; + } + } + | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } + | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement + { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } + | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement + { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } + | T_FOREACH '(' expr error ')' foreach_statement + { $$ = Stmt\Foreach_[$3, new Expr\Error(stackAttributes(#4)), ['stmts' => $6]]; } + | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } + | T_TRY '{' inner_statement_list '}' catches optional_finally + { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } + | T_GOTO identifier_not_reserved semi { $$ = Stmt\Goto_[$2]; } + | identifier_not_reserved ':' { $$ = Stmt\Label[$1]; } + | error { $$ = array(); /* means: no statement */ } +; + +statement: + non_empty_statement { $$ = $1; } + | ';' + { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); + if ($$ === null) $$ = array(); /* means: no statement */ } +; + +catches: + /* empty */ { init(); } + | catches catch { push($1, $2); } +; + +name_union: + name { init($1); } + | name_union '|' name { push($1, $3); } +; + +catch: + T_CATCH '(' name_union optional_plain_variable ')' '{' inner_statement_list '}' + { $$ = Stmt\Catch_[$3, $4, $7]; } +; + +optional_finally: + /* empty */ { $$ = null; } + | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } +; + +variables_list: + non_empty_variables_list optional_comma { $$ = $1; } +; + +non_empty_variables_list: + variable { init($1); } + | non_empty_variables_list ',' variable { push($1, $3); } +; + +optional_ref: + /* empty */ { $$ = false; } + | ampersand { $$ = true; } +; + +optional_arg_ref: + /* empty */ { $$ = false; } + | T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG { $$ = true; } +; + +optional_ellipsis: + /* empty */ { $$ = false; } + | T_ELLIPSIS { $$ = true; } +; + +block_or_error: + '{' inner_statement_list '}' { $$ = $2; } + | error { $$ = []; } +; + +identifier_maybe_readonly: + identifier_not_reserved { $$ = $1; } + | T_READONLY { $$ = Node\Identifier[$1]; } +; + +function_declaration_statement: + T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type block_or_error + { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } + | attributes T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type block_or_error + { $$ = Stmt\Function_[$4, ['byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } +; + +class_declaration_statement: + class_entry_type identifier_not_reserved extends_from implements_list '{' class_statement_list '}' + { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6, 'attrGroups' => []]]; + $this->checkClass($$, #2); } + | attributes class_entry_type identifier_not_reserved extends_from implements_list '{' class_statement_list '}' + { $$ = Stmt\Class_[$3, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; + $this->checkClass($$, #3); } + | optional_attributes T_INTERFACE identifier_not_reserved interface_extends_list '{' class_statement_list '}' + { $$ = Stmt\Interface_[$3, ['extends' => $4, 'stmts' => $6, 'attrGroups' => $1]]; + $this->checkInterface($$, #3); } + | optional_attributes T_TRAIT identifier_not_reserved '{' class_statement_list '}' + { $$ = Stmt\Trait_[$3, ['stmts' => $5, 'attrGroups' => $1]]; } + | optional_attributes T_ENUM identifier_not_reserved enum_scalar_type implements_list '{' class_statement_list '}' + { $$ = Stmt\Enum_[$3, ['scalarType' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; + $this->checkEnum($$, #3); } +; + +enum_scalar_type: + /* empty */ { $$ = null; } + | ':' type { $$ = $2; } + +enum_case_expr: + /* empty */ { $$ = null; } + | '=' expr { $$ = $2; } +; + +class_entry_type: + T_CLASS { $$ = 0; } + | class_modifiers T_CLASS { $$ = $1; } +; + +class_modifiers: + class_modifier { $$ = $1; } + | class_modifiers class_modifier { $this->checkClassModifier($1, $2, #2); $$ = $1 | $2; } +; + +class_modifier: + T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } + | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } + | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } +; + +extends_from: + /* empty */ { $$ = null; } + | T_EXTENDS class_name { $$ = $2; } +; + +interface_extends_list: + /* empty */ { $$ = array(); } + | T_EXTENDS class_name_list { $$ = $2; } +; + +implements_list: + /* empty */ { $$ = array(); } + | T_IMPLEMENTS class_name_list { $$ = $2; } +; + +class_name_list: + non_empty_class_name_list no_comma { $$ = $1; } +; + +non_empty_class_name_list: + class_name { init($1); } + | non_empty_class_name_list ',' class_name { push($1, $3); } +; + +for_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } +; + +foreach_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } +; + +declare_statement: + non_empty_statement { $$ = toArray($1); } + | ';' { $$ = null; } + | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } +; + +declare_list: + non_empty_declare_list no_comma { $$ = $1; } +; + +non_empty_declare_list: + declare_list_element { init($1); } + | non_empty_declare_list ',' declare_list_element { push($1, $3); } +; + +declare_list_element: + identifier_not_reserved '=' expr { $$ = Stmt\DeclareDeclare[$1, $3]; } +; + +switch_case_list: + '{' case_list '}' { $$ = $2; } + | '{' ';' case_list '}' { $$ = $3; } + | ':' case_list T_ENDSWITCH ';' { $$ = $2; } + | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } +; + +case_list: + /* empty */ { init(); } + | case_list case { push($1, $2); } +; + +case: + T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } + | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } +; + +case_separator: + ':' + | ';' +; + +match: + T_MATCH '(' expr ')' '{' match_arm_list '}' { $$ = Expr\Match_[$3, $6]; } +; + +match_arm_list: + /* empty */ { $$ = []; } + | non_empty_match_arm_list optional_comma { $$ = $1; } +; + +non_empty_match_arm_list: + match_arm { init($1); } + | non_empty_match_arm_list ',' match_arm { push($1, $3); } +; + +match_arm: + expr_list_allow_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[$1, $3]; } + | T_DEFAULT optional_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[null, $4]; } +; + +while_statement: + statement { $$ = toArray($1); } + | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } +; + +elseif_list: + /* empty */ { init(); } + | elseif_list elseif { push($1, $2); } +; + +elseif: + T_ELSEIF '(' expr ')' statement { $$ = Stmt\ElseIf_[$3, toArray($5)]; } +; + +new_elseif_list: + /* empty */ { init(); } + | new_elseif_list new_elseif { push($1, $2); } +; + +new_elseif: + T_ELSEIF '(' expr ')' ':' inner_statement_list + { $$ = Stmt\ElseIf_[$3, $6]; $this->fixupAlternativeElse($$); } +; + +else_single: + /* empty */ { $$ = null; } + | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } +; + +new_else_single: + /* empty */ { $$ = null; } + | T_ELSE ':' inner_statement_list + { $$ = Stmt\Else_[$3]; $this->fixupAlternativeElse($$); } +; + +foreach_variable: + variable { $$ = array($1, false); } + | ampersand variable { $$ = array($2, true); } + | list_expr { $$ = array($1, false); } + | array_short_syntax { $$ = array($1, false); } +; + +parameter_list: + non_empty_parameter_list optional_comma { $$ = $1; } + | /* empty */ { $$ = array(); } +; + +non_empty_parameter_list: + parameter { init($1); } + | non_empty_parameter_list ',' parameter { push($1, $3); } +; + +optional_property_modifiers: + /* empty */ { $$ = 0; } + | optional_property_modifiers property_modifier + { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } +; + +property_modifier: + T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } + | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } + | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } + | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } +; + +parameter: + optional_attributes optional_property_modifiers optional_type_without_static + optional_arg_ref optional_ellipsis plain_variable + { $$ = new Node\Param($6, null, $3, $4, $5, attributes(), $2, $1); + $this->checkParam($$); } + | optional_attributes optional_property_modifiers optional_type_without_static + optional_arg_ref optional_ellipsis plain_variable '=' expr + { $$ = new Node\Param($6, $8, $3, $4, $5, attributes(), $2, $1); + $this->checkParam($$); } + | optional_attributes optional_property_modifiers optional_type_without_static + optional_arg_ref optional_ellipsis error + { $$ = new Node\Param(Expr\Error[], null, $3, $4, $5, attributes(), $2, $1); } +; + +type_expr: + type { $$ = $1; } + | '?' type { $$ = Node\NullableType[$2]; } + | union_type { $$ = Node\UnionType[$1]; } + | intersection_type { $$ = $1; } +; + +type: + type_without_static { $$ = $1; } + | T_STATIC { $$ = Node\Name['static']; } +; + +type_without_static: + name { $$ = $this->handleBuiltinTypes($1); } + | T_ARRAY { $$ = Node\Identifier['array']; } + | T_CALLABLE { $$ = Node\Identifier['callable']; } +; + +union_type_element: + type { $$ = $1; } + | '(' intersection_type ')' { $$ = $2; } +; + +union_type: + union_type_element '|' union_type_element { init($1, $3); } + | union_type '|' union_type_element { push($1, $3); } +; + +union_type_without_static_element: + type_without_static { $$ = $1; } + | '(' intersection_type_without_static ')' { $$ = $2; } +; + +union_type_without_static: + union_type_without_static_element '|' union_type_without_static_element { init($1, $3); } + | union_type_without_static '|' union_type_without_static_element { push($1, $3); } +; + +intersection_type_list: + type T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type { init($1, $3); } + | intersection_type_list T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type + { push($1, $3); } +; + +intersection_type: + intersection_type_list { $$ = Node\IntersectionType[$1]; } +; + +intersection_type_without_static_list: + type_without_static T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static + { init($1, $3); } + | intersection_type_without_static_list T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static + { push($1, $3); } +; + +intersection_type_without_static: + intersection_type_without_static_list { $$ = Node\IntersectionType[$1]; } +; + +type_expr_without_static: + type_without_static { $$ = $1; } + | '?' type_without_static { $$ = Node\NullableType[$2]; } + | union_type_without_static { $$ = Node\UnionType[$1]; } + | intersection_type_without_static { $$ = $1; } +; + +optional_type_without_static: + /* empty */ { $$ = null; } + | type_expr_without_static { $$ = $1; } +; + +optional_return_type: + /* empty */ { $$ = null; } + | ':' type_expr { $$ = $2; } + | ':' error { $$ = null; } +; + +argument_list: + '(' ')' { $$ = array(); } + | '(' non_empty_argument_list optional_comma ')' { $$ = $2; } + | '(' variadic_placeholder ')' { init($2); } +; + +variadic_placeholder: + T_ELLIPSIS { $$ = Node\VariadicPlaceholder[]; } +; + +non_empty_argument_list: + argument { init($1); } + | non_empty_argument_list ',' argument { push($1, $3); } +; + +argument: + expr { $$ = Node\Arg[$1, false, false]; } + | ampersand variable { $$ = Node\Arg[$2, true, false]; } + | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } + | identifier_maybe_reserved ':' expr + { $$ = new Node\Arg($3, false, false, attributes(), $1); } +; + +global_var_list: + non_empty_global_var_list no_comma { $$ = $1; } +; + +non_empty_global_var_list: + non_empty_global_var_list ',' global_var { push($1, $3); } + | global_var { init($1); } +; + +global_var: + simple_variable { $$ = $1; } +; + +static_var_list: + non_empty_static_var_list no_comma { $$ = $1; } +; + +non_empty_static_var_list: + non_empty_static_var_list ',' static_var { push($1, $3); } + | static_var { init($1); } +; + +static_var: + plain_variable { $$ = Stmt\StaticVar[$1, null]; } + | plain_variable '=' expr { $$ = Stmt\StaticVar[$1, $3]; } +; + +class_statement_list_ex: + class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } + | /* empty */ { init(); } +; + +class_statement_list: + class_statement_list_ex + { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); + if ($nop !== null) { $1[] = $nop; } $$ = $1; } +; + +class_statement: + optional_attributes variable_modifiers optional_type_without_static property_declaration_list semi + { $$ = new Stmt\Property($2, $4, attributes(), $3, $1); + $this->checkProperty($$, #2); } + | optional_attributes method_modifiers T_CONST class_const_list semi + { $$ = new Stmt\ClassConst($4, $2, attributes(), $1); + $this->checkClassConst($$, #2); } + | optional_attributes method_modifiers T_FUNCTION optional_ref identifier_maybe_reserved '(' parameter_list ')' + optional_return_type method_body + { $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; + $this->checkClassMethod($$, #2); } + | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } + | optional_attributes T_CASE identifier_maybe_reserved enum_case_expr semi + { $$ = Stmt\EnumCase[$3, $4, $1]; } + | error { $$ = null; /* will be skipped */ } +; + +trait_adaptations: + ';' { $$ = array(); } + | '{' trait_adaptation_list '}' { $$ = $2; } +; + +trait_adaptation_list: + /* empty */ { init(); } + | trait_adaptation_list trait_adaptation { push($1, $2); } +; + +trait_adaptation: + trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' + { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } + | trait_method_reference T_AS member_modifier identifier_maybe_reserved ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } + | trait_method_reference T_AS member_modifier ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } + | trait_method_reference T_AS identifier_not_reserved ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } + | trait_method_reference T_AS reserved_non_modifiers_identifier ';' + { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } +; + +trait_method_reference_fully_qualified: + name T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved { $$ = array($1, $3); } +; +trait_method_reference: + trait_method_reference_fully_qualified { $$ = $1; } + | identifier_maybe_reserved { $$ = array(null, $1); } +; + +method_body: + ';' /* abstract method */ { $$ = null; } + | block_or_error { $$ = $1; } +; + +variable_modifiers: + non_empty_member_modifiers { $$ = $1; } + | T_VAR { $$ = 0; } +; + +method_modifiers: + /* empty */ { $$ = 0; } + | non_empty_member_modifiers { $$ = $1; } +; + +non_empty_member_modifiers: + member_modifier { $$ = $1; } + | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } +; + +member_modifier: + T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } + | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } + | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } + | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } + | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } + | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } + | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } +; + +property_declaration_list: + non_empty_property_declaration_list no_comma { $$ = $1; } +; + +non_empty_property_declaration_list: + property_declaration { init($1); } + | non_empty_property_declaration_list ',' property_declaration + { push($1, $3); } +; + +property_decl_name: + T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } +; + +property_declaration: + property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } + | property_decl_name '=' expr { $$ = Stmt\PropertyProperty[$1, $3]; } +; + +expr_list_forbid_comma: + non_empty_expr_list no_comma { $$ = $1; } +; + +expr_list_allow_comma: + non_empty_expr_list optional_comma { $$ = $1; } +; + +non_empty_expr_list: + non_empty_expr_list ',' expr { push($1, $3); } + | expr { init($1); } +; + +for_expr: + /* empty */ { $$ = array(); } + | expr_list_forbid_comma { $$ = $1; } +; + +expr: + variable { $$ = $1; } + | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } + | array_short_syntax '=' expr { $$ = Expr\Assign[$1, $3]; } + | variable '=' expr { $$ = Expr\Assign[$1, $3]; } + | variable '=' ampersand variable { $$ = Expr\AssignRef[$1, $4]; } + | new_expr { $$ = $1; } + | match { $$ = $1; } + | T_CLONE expr { $$ = Expr\Clone_[$2]; } + | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } + | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } + | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } + | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } + | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } + | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } + | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } + | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } + | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } + | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } + | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } + | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } + | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } + | variable T_INC { $$ = Expr\PostInc[$1]; } + | T_INC variable { $$ = Expr\PreInc [$2]; } + | variable T_DEC { $$ = Expr\PostDec[$1]; } + | T_DEC variable { $$ = Expr\PreDec [$2]; } + | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } + | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } + | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } + | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } + | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } + | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } + | expr T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | expr T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } + | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } + | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } + | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } + | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } + | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } + | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } + | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } + | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } + | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } + | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } + | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } + | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } + | '!' expr { $$ = Expr\BooleanNot[$2]; } + | '~' expr { $$ = Expr\BitwiseNot[$2]; } + | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } + | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } + | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } + | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } + | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } + | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } + | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } + | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } + | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } + | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } + | '(' expr ')' { $$ = $2; } + | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } + | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } + | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } + | T_ISSET '(' expr_list_allow_comma ')' { $$ = Expr\Isset_[$3]; } + | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } + | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } + | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } + | T_EVAL '(' expr ')' { $$ = Expr\Eval_[$3]; } + | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } + | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } + | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } + | T_DOUBLE_CAST expr + { $attrs = attributes(); + $attrs['kind'] = $this->getFloatCastKind($1); + $$ = new Expr\Cast\Double($2, $attrs); } + | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } + | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } + | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } + | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } + | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } + | T_EXIT exit_expr + { $attrs = attributes(); + $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $$ = new Expr\Exit_($2, $attrs); } + | '@' expr { $$ = Expr\ErrorSuppress[$2]; } + | scalar { $$ = $1; } + | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } + | T_PRINT expr { $$ = Expr\Print_[$2]; } + | T_YIELD { $$ = Expr\Yield_[null, null]; } + | T_YIELD expr { $$ = Expr\Yield_[$2, null]; } + | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } + | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } + | T_THROW expr { $$ = Expr\Throw_[$2]; } + + | T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW + { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $2, 'params' => $4, 'returnType' => $6, 'expr' => $8, 'attrGroups' => []]]; } + | T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW + { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => []]]; } + | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error + { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } + | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error + { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => []]]; } + + | attributes T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW + { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => $1]]; } + | attributes T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW + { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $4, 'params' => $6, 'returnType' => $8, 'expr' => $10, 'attrGroups' => $1]]; } + | attributes T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error + { $$ = Expr\Closure[['static' => false, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } + | attributes T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error + { $$ = Expr\Closure[['static' => true, 'byRef' => $4, 'params' => $6, 'uses' => $8, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; } +; + +anonymous_class: + optional_attributes T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' + { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); + $this->checkClass($$[0], -1); } +; + +new_expr: + T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } + | T_NEW anonymous_class + { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } +; + +lexical_vars: + /* empty */ { $$ = array(); } + | T_USE '(' lexical_var_list ')' { $$ = $3; } +; + +lexical_var_list: + non_empty_lexical_var_list optional_comma { $$ = $1; } +; + +non_empty_lexical_var_list: + lexical_var { init($1); } + | non_empty_lexical_var_list ',' lexical_var { push($1, $3); } +; + +lexical_var: + optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } +; + +name_readonly: + T_READONLY { $$ = Name[$1]; } +; + +function_call: + name argument_list { $$ = Expr\FuncCall[$1, $2]; } + | name_readonly argument_list { $$ = Expr\FuncCall[$1, $2]; } + | callable_expr argument_list { $$ = Expr\FuncCall[$1, $2]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM member_name argument_list + { $$ = Expr\StaticCall[$1, $3, $4]; } +; + +class_name: + T_STATIC { $$ = Name[$1]; } + | name { $$ = $1; } +; + +name: + T_STRING { $$ = Name[$1]; } + | T_NAME_QUALIFIED { $$ = Name[$1]; } + | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } + | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } +; + +class_name_reference: + class_name { $$ = $1; } + | new_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } + | error { $$ = Expr\Error[]; $this->errorState = 2; } +; + +class_name_or_var: + class_name { $$ = $1; } + | fully_dereferencable { $$ = $1; } +; + +exit_expr: + /* empty */ { $$ = null; } + | '(' optional_expr ')' { $$ = $2; } +; + +backticks_expr: + /* empty */ { $$ = array(); } + | T_ENCAPSED_AND_WHITESPACE + { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`')]); } + | encaps_list { parseEncapsed($1, '`', true); $$ = $1; } +; + +ctor_arguments: + /* empty */ { $$ = array(); } + | argument_list { $$ = $1; } +; + +constant: + name { $$ = Expr\ConstFetch[$1]; } + | T_LINE { $$ = Scalar\MagicConst\Line[]; } + | T_FILE { $$ = Scalar\MagicConst\File[]; } + | T_DIR { $$ = Scalar\MagicConst\Dir[]; } + | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } + | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } + | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } + | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } + | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } +; + +class_constant: + class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved + { $$ = Expr\ClassConstFetch[$1, $3]; } + /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be + an unfinished static property fetch or unfinished scoped call. */ + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error + { $$ = Expr\ClassConstFetch[$1, new Expr\Error(stackAttributes(#3))]; $this->errorState = 2; } +; + +array_short_syntax: + '[' array_pair_list ']' + { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; + $$ = new Expr\Array_($2, $attrs); } +; + +dereferencable_scalar: + T_ARRAY '(' array_pair_list ')' + { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; + $$ = new Expr\Array_($3, $attrs); } + | array_short_syntax { $$ = $1; } + | T_CONSTANT_ENCAPSED_STRING { $$ = Scalar\String_::fromString($1, attributes()); } + | '"' encaps_list '"' + { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } +; + +scalar: + T_LNUMBER { $$ = $this->parseLNumber($1, attributes()); } + | T_DNUMBER { $$ = Scalar\DNumber::fromString($1, attributes()); } + | dereferencable_scalar { $$ = $1; } + | constant { $$ = $1; } + | class_constant { $$ = $1; } + | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } + | T_START_HEREDOC T_END_HEREDOC + { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), true); } + | T_START_HEREDOC encaps_list T_END_HEREDOC + { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } +; + +optional_expr: + /* empty */ { $$ = null; } + | expr { $$ = $1; } +; + +fully_dereferencable: + variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } + | dereferencable_scalar { $$ = $1; } + | class_constant { $$ = $1; } +; + +array_object_dereferencable: + fully_dereferencable { $$ = $1; } + | constant { $$ = $1; } +; + +callable_expr: + callable_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } + | dereferencable_scalar { $$ = $1; } +; + +callable_variable: + simple_variable { $$ = $1; } + | array_object_dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | array_object_dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | function_call { $$ = $1; } + | array_object_dereferencable T_OBJECT_OPERATOR property_name argument_list + { $$ = Expr\MethodCall[$1, $3, $4]; } + | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name argument_list + { $$ = Expr\NullsafeMethodCall[$1, $3, $4]; } +; + +optional_plain_variable: + /* empty */ { $$ = null; } + | plain_variable { $$ = $1; } +; + +variable: + callable_variable { $$ = $1; } + | static_member { $$ = $1; } + | array_object_dereferencable T_OBJECT_OPERATOR property_name + { $$ = Expr\PropertyFetch[$1, $3]; } + | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name + { $$ = Expr\NullsafePropertyFetch[$1, $3]; } +; + +simple_variable: + plain_variable { $$ = $1; } + | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } + | '$' simple_variable { $$ = Expr\Variable[$2]; } + | '$' error { $$ = Expr\Variable[Expr\Error[]]; $this->errorState = 2; } +; + +static_member_prop_name: + simple_variable + { $var = $1->name; $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } +; + +static_member: + class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name + { $$ = Expr\StaticPropertyFetch[$1, $3]; } +; + +new_variable: + simple_variable { $$ = $1; } + | new_variable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | new_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | new_variable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } + | new_variable T_NULLSAFE_OBJECT_OPERATOR property_name { $$ = Expr\NullsafePropertyFetch[$1, $3]; } + | class_name T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name + { $$ = Expr\StaticPropertyFetch[$1, $3]; } + | new_variable T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name + { $$ = Expr\StaticPropertyFetch[$1, $3]; } +; + +member_name: + identifier_maybe_reserved { $$ = $1; } + | '{' expr '}' { $$ = $2; } + | simple_variable { $$ = $1; } +; + +property_name: + identifier_not_reserved { $$ = $1; } + | '{' expr '}' { $$ = $2; } + | simple_variable { $$ = $1; } + | error { $$ = Expr\Error[]; $this->errorState = 2; } +; + +list_expr: + T_LIST '(' inner_array_pair_list ')' { $$ = Expr\List_[$3]; } +; + +array_pair_list: + inner_array_pair_list + { $$ = $1; $end = count($$)-1; if ($$[$end] === null) array_pop($$); } +; + +comma_or_error: + ',' + | error + { /* do nothing -- prevent default action of $$=$1. See #551. */ } +; + +inner_array_pair_list: + inner_array_pair_list comma_or_error array_pair { push($1, $3); } + | array_pair { init($1); } +; + +array_pair: + expr { $$ = Expr\ArrayItem[$1, null, false]; } + | ampersand variable { $$ = Expr\ArrayItem[$2, null, true]; } + | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } + | expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } + | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } + | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } + | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } + | /* empty */ { $$ = null; } +; + +encaps_list: + encaps_list encaps_var { push($1, $2); } + | encaps_list encaps_string_part { push($1, $2); } + | encaps_var { init($1); } + | encaps_string_part encaps_var { init($1, $2); } +; + +encaps_string_part: + T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } +; + +encaps_str_varname: + T_STRING_VARNAME { $$ = Expr\Variable[$1]; } +; + +encaps_var: + plain_variable { $$ = $1; } + | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } + | plain_variable T_OBJECT_OPERATOR identifier_not_reserved + { $$ = Expr\PropertyFetch[$1, $3]; } + | plain_variable T_NULLSAFE_OBJECT_OPERATOR identifier_not_reserved + { $$ = Expr\NullsafePropertyFetch[$1, $3]; } + | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } + | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' + { $$ = Expr\ArrayDimFetch[$2, $4]; } + | T_CURLY_OPEN variable '}' { $$ = $2; } +; + +encaps_var_offset: + T_STRING { $$ = Scalar\String_[$1]; } + | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } + | '-' T_NUM_STRING { $$ = $this->parseNumString('-' . $2, attributes()); } + | plain_variable { $$ = $1; } +; + +%% diff --git a/vendor/nikic/php-parser/grammar/phpyLang.php b/vendor/nikic/php-parser/grammar/phpyLang.php new file mode 100644 index 00000000..663c2a14 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/phpyLang.php @@ -0,0 +1,184 @@ +\'[^\\\\\']*+(?:\\\\.[^\\\\\']*+)*+\') + (?"[^\\\\"]*+(?:\\\\.[^\\\\"]*+)*+") + (?(?&singleQuotedString)|(?&doubleQuotedString)) + (?/\*[^*]*+(?:\*(?!/)[^*]*+)*+\*/) + (?\{[^\'"/{}]*+(?:(?:(?&string)|(?&comment)|(?&code)|/)[^\'"/{}]*+)*+}) +)'; + +const PARAMS = '\[(?[^[\]]*+(?:\[(?¶ms)\][^[\]]*+)*+)\]'; +const ARGS = '\((?[^()]*+(?:\((?&args)\)[^()]*+)*+)\)'; + +/////////////////////////////// +/// Preprocessing functions /// +/////////////////////////////// + +function preprocessGrammar($code) { + $code = resolveNodes($code); + $code = resolveMacros($code); + $code = resolveStackAccess($code); + + return $code; +} + +function resolveNodes($code) { + return preg_replace_callback( + '~\b(?[A-Z][a-zA-Z_\\\\]++)\s*' . PARAMS . '~', + function($matches) { + // recurse + $matches['params'] = resolveNodes($matches['params']); + + $params = magicSplit( + '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', + $matches['params'] + ); + + $paramCode = ''; + foreach ($params as $param) { + $paramCode .= $param . ', '; + } + + return 'new ' . $matches['name'] . '(' . $paramCode . 'attributes())'; + }, + $code + ); +} + +function resolveMacros($code) { + return preg_replace_callback( + '~\b(?)(?!array\()(?[a-z][A-Za-z]++)' . ARGS . '~', + function($matches) { + // recurse + $matches['args'] = resolveMacros($matches['args']); + + $name = $matches['name']; + $args = magicSplit( + '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', + $matches['args'] + ); + + if ('attributes' === $name) { + assertArgs(0, $args, $name); + return '$this->startAttributeStack[#1] + $this->endAttributes'; + } + + if ('stackAttributes' === $name) { + assertArgs(1, $args, $name); + return '$this->startAttributeStack[' . $args[0] . ']' + . ' + $this->endAttributeStack[' . $args[0] . ']'; + } + + if ('init' === $name) { + return '$$ = array(' . implode(', ', $args) . ')'; + } + + if ('push' === $name) { + assertArgs(2, $args, $name); + + return $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0]; + } + + if ('pushNormalizing' === $name) { + assertArgs(2, $args, $name); + + return 'if (is_array(' . $args[1] . ')) { $$ = array_merge(' . $args[0] . ', ' . $args[1] . '); }' + . ' else { ' . $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0] . '; }'; + } + + if ('toArray' == $name) { + assertArgs(1, $args, $name); + + return 'is_array(' . $args[0] . ') ? ' . $args[0] . ' : array(' . $args[0] . ')'; + } + + if ('parseVar' === $name) { + assertArgs(1, $args, $name); + + return 'substr(' . $args[0] . ', 1)'; + } + + if ('parseEncapsed' === $name) { + assertArgs(3, $args, $name); + + return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' + . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; + } + + if ('makeNop' === $name) { + assertArgs(3, $args, $name); + + return '$startAttributes = ' . $args[1] . ';' + . ' if (isset($startAttributes[\'comments\']))' + . ' { ' . $args[0] . ' = new Stmt\Nop($startAttributes + ' . $args[2] . '); }' + . ' else { ' . $args[0] . ' = null; }'; + } + + if ('makeZeroLengthNop' == $name) { + assertArgs(2, $args, $name); + + return '$startAttributes = ' . $args[1] . ';' + . ' if (isset($startAttributes[\'comments\']))' + . ' { ' . $args[0] . ' = new Stmt\Nop($this->createCommentNopAttributes($startAttributes[\'comments\'])); }' + . ' else { ' . $args[0] . ' = null; }'; + } + + if ('prependLeadingComments' === $name) { + assertArgs(1, $args, $name); + + return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; ' + . 'if (!empty($attrs[\'comments\'])) {' + . '$stmts[0]->setAttribute(\'comments\', ' + . 'array_merge($attrs[\'comments\'], $stmts[0]->getAttribute(\'comments\', []))); }'; + } + + return $matches[0]; + }, + $code + ); +} + +function assertArgs($num, $args, $name) { + if ($num != count($args)) { + die('Wrong argument count for ' . $name . '().'); + } +} + +function resolveStackAccess($code) { + $code = preg_replace('/\$\d+/', '$this->semStack[$0]', $code); + $code = preg_replace('/#(\d+)/', '$$1', $code); + return $code; +} + +function removeTrailingWhitespace($code) { + $lines = explode("\n", $code); + $lines = array_map('rtrim', $lines); + return implode("\n", $lines); +} + +////////////////////////////// +/// Regex helper functions /// +////////////////////////////// + +function regex($regex) { + return '~' . LIB . '(?:' . str_replace('~', '\~', $regex) . ')~'; +} + +function magicSplit($regex, $string) { + $pieces = preg_split(regex('(?:(?&string)|(?&comment)|(?&code))(*SKIP)(*FAIL)|' . $regex), $string); + + foreach ($pieces as &$piece) { + $piece = trim($piece); + } + + if ($pieces === ['']) { + return []; + } + + return $pieces; +} diff --git a/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/nikic/php-parser/grammar/rebuildParsers.php new file mode 100644 index 00000000..2d0c6b14 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/rebuildParsers.php @@ -0,0 +1,81 @@ + 'Php5', + __DIR__ . '/php7.y' => 'Php7', +]; + +$tokensFile = __DIR__ . '/tokens.y'; +$tokensTemplate = __DIR__ . '/tokens.template'; +$skeletonFile = __DIR__ . '/parser.template'; +$tmpGrammarFile = __DIR__ . '/tmp_parser.phpy'; +$tmpResultFile = __DIR__ . '/tmp_parser.php'; +$resultDir = __DIR__ . '/../lib/PhpParser/Parser'; +$tokensResultsFile = $resultDir . '/Tokens.php'; + +$kmyacc = getenv('KMYACC'); +if (!$kmyacc) { + // Use phpyacc from dev dependencies by default. + $kmyacc = __DIR__ . '/../vendor/bin/phpyacc'; +} + +$options = array_flip($argv); +$optionDebug = isset($options['--debug']); +$optionKeepTmpGrammar = isset($options['--keep-tmp-grammar']); + +/////////////////// +/// Main script /// +/////////////////// + +$tokens = file_get_contents($tokensFile); + +foreach ($grammarFileToName as $grammarFile => $name) { + echo "Building temporary $name grammar file.\n"; + + $grammarCode = file_get_contents($grammarFile); + $grammarCode = str_replace('%tokens', $tokens, $grammarCode); + $grammarCode = preprocessGrammar($grammarCode); + + file_put_contents($tmpGrammarFile, $grammarCode); + + $additionalArgs = $optionDebug ? '-t -v' : ''; + + echo "Building $name parser.\n"; + $output = execCmd("$kmyacc $additionalArgs -m $skeletonFile -p $name $tmpGrammarFile"); + + $resultCode = file_get_contents($tmpResultFile); + $resultCode = removeTrailingWhitespace($resultCode); + + ensureDirExists($resultDir); + file_put_contents("$resultDir/$name.php", $resultCode); + unlink($tmpResultFile); + + echo "Building token definition.\n"; + $output = execCmd("$kmyacc -m $tokensTemplate $tmpGrammarFile"); + rename($tmpResultFile, $tokensResultsFile); + + if (!$optionKeepTmpGrammar) { + unlink($tmpGrammarFile); + } +} + +//////////////////////////////// +/// Utility helper functions /// +//////////////////////////////// + +function ensureDirExists($dir) { + if (!is_dir($dir)) { + mkdir($dir, 0777, true); + } +} + +function execCmd($cmd) { + $output = trim(shell_exec("$cmd 2>&1")); + if ($output !== "") { + echo "> " . $cmd . "\n"; + echo $output; + } + return $output; +} diff --git a/vendor/nikic/php-parser/grammar/tokens.template b/vendor/nikic/php-parser/grammar/tokens.template new file mode 100644 index 00000000..ba4e4901 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/tokens.template @@ -0,0 +1,17 @@ +semValue +#semval($,%t) $this->semValue +#semval(%n) $this->stackPos-(%l-%n) +#semval(%n,%t) $this->stackPos-(%l-%n) + +namespace PhpParser\Parser; +#include; + +/* GENERATED file based on grammar/tokens.y */ +final class Tokens +{ +#tokenval + const %s = %n; +#endtokenval +} diff --git a/vendor/nikic/php-parser/grammar/tokens.y b/vendor/nikic/php-parser/grammar/tokens.y new file mode 100644 index 00000000..8f0b2172 --- /dev/null +++ b/vendor/nikic/php-parser/grammar/tokens.y @@ -0,0 +1,115 @@ +/* We currently rely on the token ID mapping to be the same between PHP 5 and PHP 7 - so the same lexer can be used for + * both. This is enforced by sharing this token file. */ + +%right T_THROW +%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE +%left ',' +%left T_LOGICAL_OR +%left T_LOGICAL_XOR +%left T_LOGICAL_AND +%right T_PRINT +%right T_YIELD +%right T_DOUBLE_ARROW +%right T_YIELD_FROM +%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL +%left '?' ':' +%right T_COALESCE +%left T_BOOLEAN_OR +%left T_BOOLEAN_AND +%left '|' +%left '^' +%left T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG +%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP +%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL +%left T_SL T_SR +%left '+' '-' '.' +%left '*' '/' '%' +%right '!' +%nonassoc T_INSTANCEOF +%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' +%right T_POW +%right '[' +%nonassoc T_NEW T_CLONE +%token T_EXIT +%token T_IF +%left T_ELSEIF +%left T_ELSE +%left T_ENDIF +%token T_LNUMBER +%token T_DNUMBER +%token T_STRING +%token T_STRING_VARNAME +%token T_VARIABLE +%token T_NUM_STRING +%token T_INLINE_HTML +%token T_ENCAPSED_AND_WHITESPACE +%token T_CONSTANT_ENCAPSED_STRING +%token T_ECHO +%token T_DO +%token T_WHILE +%token T_ENDWHILE +%token T_FOR +%token T_ENDFOR +%token T_FOREACH +%token T_ENDFOREACH +%token T_DECLARE +%token T_ENDDECLARE +%token T_AS +%token T_SWITCH +%token T_MATCH +%token T_ENDSWITCH +%token T_CASE +%token T_DEFAULT +%token T_BREAK +%token T_CONTINUE +%token T_GOTO +%token T_FUNCTION +%token T_FN +%token T_CONST +%token T_RETURN +%token T_TRY +%token T_CATCH +%token T_FINALLY +%token T_THROW +%token T_USE +%token T_INSTEADOF +%token T_GLOBAL +%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC T_READONLY +%token T_VAR +%token T_UNSET +%token T_ISSET +%token T_EMPTY +%token T_HALT_COMPILER +%token T_CLASS +%token T_TRAIT +%token T_INTERFACE +%token T_ENUM +%token T_EXTENDS +%token T_IMPLEMENTS +%token T_OBJECT_OPERATOR +%token T_NULLSAFE_OBJECT_OPERATOR +%token T_DOUBLE_ARROW +%token T_LIST +%token T_ARRAY +%token T_CALLABLE +%token T_CLASS_C +%token T_TRAIT_C +%token T_METHOD_C +%token T_FUNC_C +%token T_LINE +%token T_FILE +%token T_START_HEREDOC +%token T_END_HEREDOC +%token T_DOLLAR_OPEN_CURLY_BRACES +%token T_CURLY_OPEN +%token T_PAAMAYIM_NEKUDOTAYIM +%token T_NAMESPACE +%token T_NS_C +%token T_DIR +%token T_NS_SEPARATOR +%token T_ELLIPSIS +%token T_NAME_FULLY_QUALIFIED +%token T_NAME_QUALIFIED +%token T_NAME_RELATIVE +%token T_ATTRIBUTE +%token T_ENUM diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder.php b/vendor/nikic/php-parser/lib/PhpParser/Builder.php new file mode 100644 index 00000000..26d8921e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder.php @@ -0,0 +1,13 @@ +constants = [new Const_($name, BuilderHelpers::normalizeValue($value))]; + } + + /** + * Add another constant to const group + * + * @param string|Identifier $name Name + * @param Node\Expr|bool|null|int|float|string|array $value Value + * + * @return $this The builder instance (for fluid interface) + */ + public function addConst($name, $value) { + $this->constants[] = new Const_($name, BuilderHelpers::normalizeValue($value)); + + return $this; + } + + /** + * Makes the constant public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PUBLIC); + + return $this; + } + + /** + * Makes the constant protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PROTECTED); + + return $this; + } + + /** + * Makes the constant private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PRIVATE); + + return $this; + } + + /** + * Makes the constant final. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeFinal() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + + return $this; + } + + /** + * Sets doc comment for the constant. + * + * @param PhpParser\Comment\Doc|string $docComment Doc comment to set + * + * @return $this The builder instance (for fluid interface) + */ + public function setDocComment($docComment) { + $this->attributes = [ + 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] + ]; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built class node. + * + * @return Stmt\ClassConst The built constant node + */ + public function getNode(): PhpParser\Node { + return new Stmt\ClassConst( + $this->constants, + $this->flags, + $this->attributes, + $this->attributeGroups + ); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php new file mode 100644 index 00000000..35b54d04 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php @@ -0,0 +1,146 @@ +name = $name; + } + + /** + * Extends a class. + * + * @param Name|string $class Name of class to extend + * + * @return $this The builder instance (for fluid interface) + */ + public function extend($class) { + $this->extends = BuilderHelpers::normalizeName($class); + + return $this; + } + + /** + * Implements one or more interfaces. + * + * @param Name|string ...$interfaces Names of interfaces to implement + * + * @return $this The builder instance (for fluid interface) + */ + public function implement(...$interfaces) { + foreach ($interfaces as $interface) { + $this->implements[] = BuilderHelpers::normalizeName($interface); + } + + return $this; + } + + /** + * Makes the class abstract. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeAbstract() { + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_ABSTRACT); + + return $this; + } + + /** + * Makes the class final. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeFinal() { + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + + return $this; + } + + public function makeReadonly() { + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_READONLY); + + return $this; + } + + /** + * Adds a statement. + * + * @param Stmt|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $stmt = BuilderHelpers::normalizeNode($stmt); + + $targets = [ + Stmt\TraitUse::class => &$this->uses, + Stmt\ClassConst::class => &$this->constants, + Stmt\Property::class => &$this->properties, + Stmt\ClassMethod::class => &$this->methods, + ]; + + $class = \get_class($stmt); + if (!isset($targets[$class])) { + throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); + } + + $targets[$class][] = $stmt; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built class node. + * + * @return Stmt\Class_ The built class node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Class_($this->name, [ + 'flags' => $this->flags, + 'extends' => $this->extends, + 'implements' => $this->implements, + 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods), + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php new file mode 100644 index 00000000..83094992 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php @@ -0,0 +1,43 @@ +addStmt($stmt); + } + + return $this; + } + + /** + * Sets doc comment for the declaration. + * + * @param PhpParser\Comment\Doc|string $docComment Doc comment to set + * + * @return $this The builder instance (for fluid interface) + */ + public function setDocComment($docComment) { + $this->attributes['comments'] = [ + BuilderHelpers::normalizeDocComment($docComment) + ]; + + return $this; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php new file mode 100644 index 00000000..accc5166 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php @@ -0,0 +1,85 @@ +name = $name; + } + + /** + * Sets the value. + * + * @param Node\Expr|string|int $value + * + * @return $this + */ + public function setValue($value) { + $this->value = BuilderHelpers::normalizeValue($value); + + return $this; + } + + /** + * Sets doc comment for the constant. + * + * @param PhpParser\Comment\Doc|string $docComment Doc comment to set + * + * @return $this The builder instance (for fluid interface) + */ + public function setDocComment($docComment) { + $this->attributes = [ + 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] + ]; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built enum case node. + * + * @return Stmt\EnumCase The built constant node + */ + public function getNode(): PhpParser\Node { + return new Stmt\EnumCase( + $this->name, + $this->value, + $this->attributeGroups, + $this->attributes + ); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php new file mode 100644 index 00000000..be7eef95 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php @@ -0,0 +1,117 @@ +name = $name; + } + + /** + * Sets the scalar type. + * + * @param string|Identifier $type + * + * @return $this + */ + public function setScalarType($scalarType) { + $this->scalarType = BuilderHelpers::normalizeType($scalarType); + + return $this; + } + + /** + * Implements one or more interfaces. + * + * @param Name|string ...$interfaces Names of interfaces to implement + * + * @return $this The builder instance (for fluid interface) + */ + public function implement(...$interfaces) { + foreach ($interfaces as $interface) { + $this->implements[] = BuilderHelpers::normalizeName($interface); + } + + return $this; + } + + /** + * Adds a statement. + * + * @param Stmt|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $stmt = BuilderHelpers::normalizeNode($stmt); + + $targets = [ + Stmt\TraitUse::class => &$this->uses, + Stmt\EnumCase::class => &$this->enumCases, + Stmt\ClassConst::class => &$this->constants, + Stmt\ClassMethod::class => &$this->methods, + ]; + + $class = \get_class($stmt); + if (!isset($targets[$class])) { + throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); + } + + $targets[$class][] = $stmt; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built class node. + * + * @return Stmt\Enum_ The built enum node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Enum_($this->name, [ + 'scalarType' => $this->scalarType, + 'implements' => $this->implements, + 'stmts' => array_merge($this->uses, $this->enumCases, $this->constants, $this->methods), + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php new file mode 100644 index 00000000..98ea9d33 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php @@ -0,0 +1,73 @@ +returnByRef = true; + + return $this; + } + + /** + * Adds a parameter. + * + * @param Node\Param|Param $param The parameter to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addParam($param) { + $param = BuilderHelpers::normalizeNode($param); + + if (!$param instanceof Node\Param) { + throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType())); + } + + $this->params[] = $param; + + return $this; + } + + /** + * Adds multiple parameters. + * + * @param array $params The parameters to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addParams(array $params) { + foreach ($params as $param) { + $this->addParam($param); + } + + return $this; + } + + /** + * Sets the return type for PHP 7. + * + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type + * + * @return $this The builder instance (for fluid interface) + */ + public function setReturnType($type) { + $this->returnType = BuilderHelpers::normalizeType($type); + + return $this; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php new file mode 100644 index 00000000..1cd73c0d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php @@ -0,0 +1,67 @@ +name = $name; + } + + /** + * Adds a statement. + * + * @param Node|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built function node. + * + * @return Stmt\Function_ The built function node + */ + public function getNode() : Node { + return new Stmt\Function_($this->name, [ + 'byRef' => $this->returnByRef, + 'params' => $this->params, + 'returnType' => $this->returnType, + 'stmts' => $this->stmts, + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php new file mode 100644 index 00000000..7806e85f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php @@ -0,0 +1,93 @@ +name = $name; + } + + /** + * Extends one or more interfaces. + * + * @param Name|string ...$interfaces Names of interfaces to extend + * + * @return $this The builder instance (for fluid interface) + */ + public function extend(...$interfaces) { + foreach ($interfaces as $interface) { + $this->extends[] = BuilderHelpers::normalizeName($interface); + } + + return $this; + } + + /** + * Adds a statement. + * + * @param Stmt|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $stmt = BuilderHelpers::normalizeNode($stmt); + + if ($stmt instanceof Stmt\ClassConst) { + $this->constants[] = $stmt; + } elseif ($stmt instanceof Stmt\ClassMethod) { + // we erase all statements in the body of an interface method + $stmt->stmts = null; + $this->methods[] = $stmt; + } else { + throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); + } + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built interface node. + * + * @return Stmt\Interface_ The built interface node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Interface_($this->name, [ + 'extends' => $this->extends, + 'stmts' => array_merge($this->constants, $this->methods), + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php new file mode 100644 index 00000000..232d7cb8 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php @@ -0,0 +1,146 @@ +name = $name; + } + + /** + * Makes the method public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PUBLIC); + + return $this; + } + + /** + * Makes the method protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PROTECTED); + + return $this; + } + + /** + * Makes the method private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PRIVATE); + + return $this; + } + + /** + * Makes the method static. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeStatic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_STATIC); + + return $this; + } + + /** + * Makes the method abstract. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeAbstract() { + if (!empty($this->stmts)) { + throw new \LogicException('Cannot make method with statements abstract'); + } + + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_ABSTRACT); + $this->stmts = null; // abstract methods don't have statements + + return $this; + } + + /** + * Makes the method final. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeFinal() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + + return $this; + } + + /** + * Adds a statement. + * + * @param Node|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + if (null === $this->stmts) { + throw new \LogicException('Cannot add statements to an abstract method'); + } + + $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built method node. + * + * @return Stmt\ClassMethod The built method node + */ + public function getNode() : Node { + return new Stmt\ClassMethod($this->name, [ + 'flags' => $this->flags, + 'byRef' => $this->returnByRef, + 'params' => $this->params, + 'returnType' => $this->returnType, + 'stmts' => $this->stmts, + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php new file mode 100644 index 00000000..1c751e16 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php @@ -0,0 +1,45 @@ +name = null !== $name ? BuilderHelpers::normalizeName($name) : null; + } + + /** + * Adds a statement. + * + * @param Node|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); + + return $this; + } + + /** + * Returns the built node. + * + * @return Stmt\Namespace_ The built node + */ + public function getNode() : Node { + return new Stmt\Namespace_($this->name, $this->stmts, $this->attributes); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php new file mode 100644 index 00000000..de9aae7e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php @@ -0,0 +1,122 @@ +name = $name; + } + + /** + * Sets default value for the parameter. + * + * @param mixed $value Default value to use + * + * @return $this The builder instance (for fluid interface) + */ + public function setDefault($value) { + $this->default = BuilderHelpers::normalizeValue($value); + + return $this; + } + + /** + * Sets type for the parameter. + * + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type Parameter type + * + * @return $this The builder instance (for fluid interface) + */ + public function setType($type) { + $this->type = BuilderHelpers::normalizeType($type); + if ($this->type == 'void') { + throw new \LogicException('Parameter type cannot be void'); + } + + return $this; + } + + /** + * Sets type for the parameter. + * + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type Parameter type + * + * @return $this The builder instance (for fluid interface) + * + * @deprecated Use setType() instead + */ + public function setTypeHint($type) { + return $this->setType($type); + } + + /** + * Make the parameter accept the value by reference. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeByRef() { + $this->byRef = true; + + return $this; + } + + /** + * Make the parameter variadic + * + * @return $this The builder instance (for fluid interface) + */ + public function makeVariadic() { + $this->variadic = true; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built parameter node. + * + * @return Node\Param The built parameter node + */ + public function getNode() : Node { + return new Node\Param( + new Node\Expr\Variable($this->name), + $this->default, $this->type, $this->byRef, $this->variadic, [], 0, $this->attributeGroups + ); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php new file mode 100644 index 00000000..68e31856 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php @@ -0,0 +1,161 @@ +name = $name; + } + + /** + * Makes the property public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PUBLIC); + + return $this; + } + + /** + * Makes the property protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PROTECTED); + + return $this; + } + + /** + * Makes the property private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PRIVATE); + + return $this; + } + + /** + * Makes the property static. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeStatic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_STATIC); + + return $this; + } + + /** + * Makes the property readonly. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeReadonly() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_READONLY); + + return $this; + } + + /** + * Sets default value for the property. + * + * @param mixed $value Default value to use + * + * @return $this The builder instance (for fluid interface) + */ + public function setDefault($value) { + $this->default = BuilderHelpers::normalizeValue($value); + + return $this; + } + + /** + * Sets doc comment for the property. + * + * @param PhpParser\Comment\Doc|string $docComment Doc comment to set + * + * @return $this The builder instance (for fluid interface) + */ + public function setDocComment($docComment) { + $this->attributes = [ + 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] + ]; + + return $this; + } + + /** + * Sets the property type for PHP 7.4+. + * + * @param string|Name|Identifier|ComplexType $type + * + * @return $this + */ + public function setType($type) { + $this->type = BuilderHelpers::normalizeType($type); + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built class node. + * + * @return Stmt\Property The built property node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Property( + $this->flags !== 0 ? $this->flags : Stmt\Class_::MODIFIER_PUBLIC, + [ + new Stmt\PropertyProperty($this->name, $this->default) + ], + $this->attributes, + $this->type, + $this->attributeGroups + ); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php new file mode 100644 index 00000000..311e8cd7 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php @@ -0,0 +1,64 @@ +and($trait); + } + } + + /** + * Adds used trait. + * + * @param Node\Name|string $trait Trait name + * + * @return $this The builder instance (for fluid interface) + */ + public function and($trait) { + $this->traits[] = BuilderHelpers::normalizeName($trait); + return $this; + } + + /** + * Adds trait adaptation. + * + * @param Stmt\TraitUseAdaptation|Builder\TraitUseAdaptation $adaptation Trait adaptation + * + * @return $this The builder instance (for fluid interface) + */ + public function with($adaptation) { + $adaptation = BuilderHelpers::normalizeNode($adaptation); + + if (!$adaptation instanceof Stmt\TraitUseAdaptation) { + throw new \LogicException('Adaptation must have type TraitUseAdaptation'); + } + + $this->adaptations[] = $adaptation; + return $this; + } + + /** + * Returns the built node. + * + * @return Node The built node + */ + public function getNode() : Node { + return new Stmt\TraitUse($this->traits, $this->adaptations); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php new file mode 100644 index 00000000..eb6c0b62 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php @@ -0,0 +1,148 @@ +type = self::TYPE_UNDEFINED; + + $this->trait = is_null($trait)? null: BuilderHelpers::normalizeName($trait); + $this->method = BuilderHelpers::normalizeIdentifier($method); + } + + /** + * Sets alias of method. + * + * @param Node\Identifier|string $alias Alias for adaptated method + * + * @return $this The builder instance (for fluid interface) + */ + public function as($alias) { + if ($this->type === self::TYPE_UNDEFINED) { + $this->type = self::TYPE_ALIAS; + } + + if ($this->type !== self::TYPE_ALIAS) { + throw new \LogicException('Cannot set alias for not alias adaptation buider'); + } + + $this->alias = $alias; + return $this; + } + + /** + * Sets adaptated method public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->setModifier(Stmt\Class_::MODIFIER_PUBLIC); + return $this; + } + + /** + * Sets adaptated method protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->setModifier(Stmt\Class_::MODIFIER_PROTECTED); + return $this; + } + + /** + * Sets adaptated method private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->setModifier(Stmt\Class_::MODIFIER_PRIVATE); + return $this; + } + + /** + * Adds overwritten traits. + * + * @param Node\Name|string ...$traits Traits for overwrite + * + * @return $this The builder instance (for fluid interface) + */ + public function insteadof(...$traits) { + if ($this->type === self::TYPE_UNDEFINED) { + if (is_null($this->trait)) { + throw new \LogicException('Precedence adaptation must have trait'); + } + + $this->type = self::TYPE_PRECEDENCE; + } + + if ($this->type !== self::TYPE_PRECEDENCE) { + throw new \LogicException('Cannot add overwritten traits for not precedence adaptation buider'); + } + + foreach ($traits as $trait) { + $this->insteadof[] = BuilderHelpers::normalizeName($trait); + } + + return $this; + } + + protected function setModifier(int $modifier) { + if ($this->type === self::TYPE_UNDEFINED) { + $this->type = self::TYPE_ALIAS; + } + + if ($this->type !== self::TYPE_ALIAS) { + throw new \LogicException('Cannot set access modifier for not alias adaptation buider'); + } + + if (is_null($this->modifier)) { + $this->modifier = $modifier; + } else { + throw new \LogicException('Multiple access type modifiers are not allowed'); + } + } + + /** + * Returns the built node. + * + * @return Node The built node + */ + public function getNode() : Node { + switch ($this->type) { + case self::TYPE_ALIAS: + return new Stmt\TraitUseAdaptation\Alias($this->trait, $this->method, $this->modifier, $this->alias); + case self::TYPE_PRECEDENCE: + return new Stmt\TraitUseAdaptation\Precedence($this->trait, $this->method, $this->insteadof); + default: + throw new \LogicException('Type of adaptation is not defined'); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php new file mode 100644 index 00000000..97f32f98 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php @@ -0,0 +1,78 @@ +name = $name; + } + + /** + * Adds a statement. + * + * @param Stmt|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $stmt = BuilderHelpers::normalizeNode($stmt); + + if ($stmt instanceof Stmt\Property) { + $this->properties[] = $stmt; + } elseif ($stmt instanceof Stmt\ClassMethod) { + $this->methods[] = $stmt; + } elseif ($stmt instanceof Stmt\TraitUse) { + $this->uses[] = $stmt; + } else { + throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); + } + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built trait node. + * + * @return Stmt\Trait_ The built interface node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Trait_( + $this->name, [ + 'stmts' => array_merge($this->uses, $this->properties, $this->methods), + 'attrGroups' => $this->attributeGroups, + ], $this->attributes + ); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php new file mode 100644 index 00000000..4bd3d12d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php @@ -0,0 +1,49 @@ +name = BuilderHelpers::normalizeName($name); + $this->type = $type; + } + + /** + * Sets alias for used name. + * + * @param string $alias Alias to use (last component of full name by default) + * + * @return $this The builder instance (for fluid interface) + */ + public function as(string $alias) { + $this->alias = $alias; + return $this; + } + + /** + * Returns the built node. + * + * @return Stmt\Use_ The built node + */ + public function getNode() : Node { + return new Stmt\Use_([ + new Stmt\UseUse($this->name, $this->alias) + ], $this->type); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php new file mode 100644 index 00000000..fef2579b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php @@ -0,0 +1,399 @@ +args($args) + ); + } + + /** + * Creates a namespace builder. + * + * @param null|string|Node\Name $name Name of the namespace + * + * @return Builder\Namespace_ The created namespace builder + */ + public function namespace($name) : Builder\Namespace_ { + return new Builder\Namespace_($name); + } + + /** + * Creates a class builder. + * + * @param string $name Name of the class + * + * @return Builder\Class_ The created class builder + */ + public function class(string $name) : Builder\Class_ { + return new Builder\Class_($name); + } + + /** + * Creates an interface builder. + * + * @param string $name Name of the interface + * + * @return Builder\Interface_ The created interface builder + */ + public function interface(string $name) : Builder\Interface_ { + return new Builder\Interface_($name); + } + + /** + * Creates a trait builder. + * + * @param string $name Name of the trait + * + * @return Builder\Trait_ The created trait builder + */ + public function trait(string $name) : Builder\Trait_ { + return new Builder\Trait_($name); + } + + /** + * Creates an enum builder. + * + * @param string $name Name of the enum + * + * @return Builder\Enum_ The created enum builder + */ + public function enum(string $name) : Builder\Enum_ { + return new Builder\Enum_($name); + } + + /** + * Creates a trait use builder. + * + * @param Node\Name|string ...$traits Trait names + * + * @return Builder\TraitUse The create trait use builder + */ + public function useTrait(...$traits) : Builder\TraitUse { + return new Builder\TraitUse(...$traits); + } + + /** + * Creates a trait use adaptation builder. + * + * @param Node\Name|string|null $trait Trait name + * @param Node\Identifier|string $method Method name + * + * @return Builder\TraitUseAdaptation The create trait use adaptation builder + */ + public function traitUseAdaptation($trait, $method = null) : Builder\TraitUseAdaptation { + if ($method === null) { + $method = $trait; + $trait = null; + } + + return new Builder\TraitUseAdaptation($trait, $method); + } + + /** + * Creates a method builder. + * + * @param string $name Name of the method + * + * @return Builder\Method The created method builder + */ + public function method(string $name) : Builder\Method { + return new Builder\Method($name); + } + + /** + * Creates a parameter builder. + * + * @param string $name Name of the parameter + * + * @return Builder\Param The created parameter builder + */ + public function param(string $name) : Builder\Param { + return new Builder\Param($name); + } + + /** + * Creates a property builder. + * + * @param string $name Name of the property + * + * @return Builder\Property The created property builder + */ + public function property(string $name) : Builder\Property { + return new Builder\Property($name); + } + + /** + * Creates a function builder. + * + * @param string $name Name of the function + * + * @return Builder\Function_ The created function builder + */ + public function function(string $name) : Builder\Function_ { + return new Builder\Function_($name); + } + + /** + * Creates a namespace/class use builder. + * + * @param Node\Name|string $name Name of the entity (namespace or class) to alias + * + * @return Builder\Use_ The created use builder + */ + public function use($name) : Builder\Use_ { + return new Builder\Use_($name, Use_::TYPE_NORMAL); + } + + /** + * Creates a function use builder. + * + * @param Node\Name|string $name Name of the function to alias + * + * @return Builder\Use_ The created use function builder + */ + public function useFunction($name) : Builder\Use_ { + return new Builder\Use_($name, Use_::TYPE_FUNCTION); + } + + /** + * Creates a constant use builder. + * + * @param Node\Name|string $name Name of the const to alias + * + * @return Builder\Use_ The created use const builder + */ + public function useConst($name) : Builder\Use_ { + return new Builder\Use_($name, Use_::TYPE_CONSTANT); + } + + /** + * Creates a class constant builder. + * + * @param string|Identifier $name Name + * @param Node\Expr|bool|null|int|float|string|array $value Value + * + * @return Builder\ClassConst The created use const builder + */ + public function classConst($name, $value) : Builder\ClassConst { + return new Builder\ClassConst($name, $value); + } + + /** + * Creates an enum case builder. + * + * @param string|Identifier $name Name + * + * @return Builder\EnumCase The created use const builder + */ + public function enumCase($name) : Builder\EnumCase { + return new Builder\EnumCase($name); + } + + /** + * Creates node a for a literal value. + * + * @param Expr|bool|null|int|float|string|array $value $value + * + * @return Expr + */ + public function val($value) : Expr { + return BuilderHelpers::normalizeValue($value); + } + + /** + * Creates variable node. + * + * @param string|Expr $name Name + * + * @return Expr\Variable + */ + public function var($name) : Expr\Variable { + if (!\is_string($name) && !$name instanceof Expr) { + throw new \LogicException('Variable name must be string or Expr'); + } + + return new Expr\Variable($name); + } + + /** + * Normalizes an argument list. + * + * Creates Arg nodes for all arguments and converts literal values to expressions. + * + * @param array $args List of arguments to normalize + * + * @return Arg[] + */ + public function args(array $args) : array { + $normalizedArgs = []; + foreach ($args as $key => $arg) { + if (!($arg instanceof Arg)) { + $arg = new Arg(BuilderHelpers::normalizeValue($arg)); + } + if (\is_string($key)) { + $arg->name = BuilderHelpers::normalizeIdentifier($key); + } + $normalizedArgs[] = $arg; + } + return $normalizedArgs; + } + + /** + * Creates a function call node. + * + * @param string|Name|Expr $name Function name + * @param array $args Function arguments + * + * @return Expr\FuncCall + */ + public function funcCall($name, array $args = []) : Expr\FuncCall { + return new Expr\FuncCall( + BuilderHelpers::normalizeNameOrExpr($name), + $this->args($args) + ); + } + + /** + * Creates a method call node. + * + * @param Expr $var Variable the method is called on + * @param string|Identifier|Expr $name Method name + * @param array $args Method arguments + * + * @return Expr\MethodCall + */ + public function methodCall(Expr $var, $name, array $args = []) : Expr\MethodCall { + return new Expr\MethodCall( + $var, + BuilderHelpers::normalizeIdentifierOrExpr($name), + $this->args($args) + ); + } + + /** + * Creates a static method call node. + * + * @param string|Name|Expr $class Class name + * @param string|Identifier|Expr $name Method name + * @param array $args Method arguments + * + * @return Expr\StaticCall + */ + public function staticCall($class, $name, array $args = []) : Expr\StaticCall { + return new Expr\StaticCall( + BuilderHelpers::normalizeNameOrExpr($class), + BuilderHelpers::normalizeIdentifierOrExpr($name), + $this->args($args) + ); + } + + /** + * Creates an object creation node. + * + * @param string|Name|Expr $class Class name + * @param array $args Constructor arguments + * + * @return Expr\New_ + */ + public function new($class, array $args = []) : Expr\New_ { + return new Expr\New_( + BuilderHelpers::normalizeNameOrExpr($class), + $this->args($args) + ); + } + + /** + * Creates a constant fetch node. + * + * @param string|Name $name Constant name + * + * @return Expr\ConstFetch + */ + public function constFetch($name) : Expr\ConstFetch { + return new Expr\ConstFetch(BuilderHelpers::normalizeName($name)); + } + + /** + * Creates a property fetch node. + * + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Property name + * + * @return Expr\PropertyFetch + */ + public function propertyFetch(Expr $var, $name) : Expr\PropertyFetch { + return new Expr\PropertyFetch($var, BuilderHelpers::normalizeIdentifierOrExpr($name)); + } + + /** + * Creates a class constant fetch node. + * + * @param string|Name|Expr $class Class name + * @param string|Identifier $name Constant name + * + * @return Expr\ClassConstFetch + */ + public function classConstFetch($class, $name): Expr\ClassConstFetch { + return new Expr\ClassConstFetch( + BuilderHelpers::normalizeNameOrExpr($class), + BuilderHelpers::normalizeIdentifier($name) + ); + } + + /** + * Creates nested Concat nodes from a list of expressions. + * + * @param Expr|string ...$exprs Expressions or literal strings + * + * @return Concat + */ + public function concat(...$exprs) : Concat { + $numExprs = count($exprs); + if ($numExprs < 2) { + throw new \LogicException('Expected at least two expressions'); + } + + $lastConcat = $this->normalizeStringExpr($exprs[0]); + for ($i = 1; $i < $numExprs; $i++) { + $lastConcat = new Concat($lastConcat, $this->normalizeStringExpr($exprs[$i])); + } + return $lastConcat; + } + + /** + * @param string|Expr $expr + * @return Expr + */ + private function normalizeStringExpr($expr) : Expr { + if ($expr instanceof Expr) { + return $expr; + } + + if (\is_string($expr)) { + return new String_($expr); + } + + throw new \LogicException('Expected string or Expr'); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php new file mode 100644 index 00000000..af6ceb99 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -0,0 +1,335 @@ +getNode(); + } + + if ($node instanceof Node) { + return $node; + } + + throw new \LogicException('Expected node or builder object'); + } + + /** + * Normalizes a node to a statement. + * + * Expressions are wrapped in a Stmt\Expression node. + * + * @param Node|Builder $node The node to normalize + * + * @return Stmt The normalized statement node + */ + public static function normalizeStmt($node) : Stmt { + $node = self::normalizeNode($node); + if ($node instanceof Stmt) { + return $node; + } + + if ($node instanceof Expr) { + return new Stmt\Expression($node); + } + + throw new \LogicException('Expected statement or expression node'); + } + + /** + * Normalizes strings to Identifier. + * + * @param string|Identifier $name The identifier to normalize + * + * @return Identifier The normalized identifier + */ + public static function normalizeIdentifier($name) : Identifier { + if ($name instanceof Identifier) { + return $name; + } + + if (\is_string($name)) { + return new Identifier($name); + } + + throw new \LogicException('Expected string or instance of Node\Identifier'); + } + + /** + * Normalizes strings to Identifier, also allowing expressions. + * + * @param string|Identifier|Expr $name The identifier to normalize + * + * @return Identifier|Expr The normalized identifier or expression + */ + public static function normalizeIdentifierOrExpr($name) { + if ($name instanceof Identifier || $name instanceof Expr) { + return $name; + } + + if (\is_string($name)) { + return new Identifier($name); + } + + throw new \LogicException('Expected string or instance of Node\Identifier or Node\Expr'); + } + + /** + * Normalizes a name: Converts string names to Name nodes. + * + * @param Name|string $name The name to normalize + * + * @return Name The normalized name + */ + public static function normalizeName($name) : Name { + if ($name instanceof Name) { + return $name; + } + + if (is_string($name)) { + if (!$name) { + throw new \LogicException('Name cannot be empty'); + } + + if ($name[0] === '\\') { + return new Name\FullyQualified(substr($name, 1)); + } + + if (0 === strpos($name, 'namespace\\')) { + return new Name\Relative(substr($name, strlen('namespace\\'))); + } + + return new Name($name); + } + + throw new \LogicException('Name must be a string or an instance of Node\Name'); + } + + /** + * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. + * + * @param Expr|Name|string $name The name to normalize + * + * @return Name|Expr The normalized name or expression + */ + public static function normalizeNameOrExpr($name) { + if ($name instanceof Expr) { + return $name; + } + + if (!is_string($name) && !($name instanceof Name)) { + throw new \LogicException( + 'Name must be a string or an instance of Node\Name or Node\Expr' + ); + } + + return self::normalizeName($name); + } + + /** + * Normalizes a type: Converts plain-text type names into proper AST representation. + * + * In particular, builtin types become Identifiers, custom types become Names and nullables + * are wrapped in NullableType nodes. + * + * @param string|Name|Identifier|ComplexType $type The type to normalize + * + * @return Name|Identifier|ComplexType The normalized type + */ + public static function normalizeType($type) { + if (!is_string($type)) { + if ( + !$type instanceof Name && !$type instanceof Identifier && + !$type instanceof ComplexType + ) { + throw new \LogicException( + 'Type must be a string, or an instance of Name, Identifier or ComplexType' + ); + } + return $type; + } + + $nullable = false; + if (strlen($type) > 0 && $type[0] === '?') { + $nullable = true; + $type = substr($type, 1); + } + + $builtinTypes = [ + 'array', + 'callable', + 'bool', + 'int', + 'float', + 'string', + 'iterable', + 'void', + 'object', + 'null', + 'false', + 'mixed', + 'never', + 'true', + ]; + + $lowerType = strtolower($type); + if (in_array($lowerType, $builtinTypes)) { + $type = new Identifier($lowerType); + } else { + $type = self::normalizeName($type); + } + + $notNullableTypes = [ + 'void', 'mixed', 'never', + ]; + if ($nullable && in_array((string) $type, $notNullableTypes)) { + throw new \LogicException(sprintf('%s type cannot be nullable', $type)); + } + + return $nullable ? new NullableType($type) : $type; + } + + /** + * Normalizes a value: Converts nulls, booleans, integers, + * floats, strings and arrays into their respective nodes + * + * @param Node\Expr|bool|null|int|float|string|array $value The value to normalize + * + * @return Expr The normalized value + */ + public static function normalizeValue($value) : Expr { + if ($value instanceof Node\Expr) { + return $value; + } + + if (is_null($value)) { + return new Expr\ConstFetch( + new Name('null') + ); + } + + if (is_bool($value)) { + return new Expr\ConstFetch( + new Name($value ? 'true' : 'false') + ); + } + + if (is_int($value)) { + return new Scalar\LNumber($value); + } + + if (is_float($value)) { + return new Scalar\DNumber($value); + } + + if (is_string($value)) { + return new Scalar\String_($value); + } + + if (is_array($value)) { + $items = []; + $lastKey = -1; + foreach ($value as $itemKey => $itemValue) { + // for consecutive, numeric keys don't generate keys + if (null !== $lastKey && ++$lastKey === $itemKey) { + $items[] = new Expr\ArrayItem( + self::normalizeValue($itemValue) + ); + } else { + $lastKey = null; + $items[] = new Expr\ArrayItem( + self::normalizeValue($itemValue), + self::normalizeValue($itemKey) + ); + } + } + + return new Expr\Array_($items); + } + + throw new \LogicException('Invalid value'); + } + + /** + * Normalizes a doc comment: Converts plain strings to PhpParser\Comment\Doc. + * + * @param Comment\Doc|string $docComment The doc comment to normalize + * + * @return Comment\Doc The normalized doc comment + */ + public static function normalizeDocComment($docComment) : Comment\Doc { + if ($docComment instanceof Comment\Doc) { + return $docComment; + } + + if (is_string($docComment)) { + return new Comment\Doc($docComment); + } + + throw new \LogicException('Doc comment must be a string or an instance of PhpParser\Comment\Doc'); + } + + /** + * Normalizes a attribute: Converts attribute to the Attribute Group if needed. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return Node\AttributeGroup The Attribute Group + */ + public static function normalizeAttribute($attribute) : Node\AttributeGroup + { + if ($attribute instanceof Node\AttributeGroup) { + return $attribute; + } + + if (!($attribute instanceof Node\Attribute)) { + throw new \LogicException('Attribute must be an instance of PhpParser\Node\Attribute or PhpParser\Node\AttributeGroup'); + } + + return new Node\AttributeGroup([$attribute]); + } + + /** + * Adds a modifier and returns new modifier bitmask. + * + * @param int $modifiers Existing modifiers + * @param int $modifier Modifier to set + * + * @return int New modifiers + */ + public static function addModifier(int $modifiers, int $modifier) : int { + Stmt\Class_::verifyModifier($modifiers, $modifier); + return $modifiers | $modifier; + } + + /** + * Adds a modifier and returns new modifier bitmask. + * @return int New modifiers + */ + public static function addClassModifier(int $existingModifiers, int $modifierToSet) : int { + Stmt\Class_::verifyClassModifier($existingModifiers, $modifierToSet); + return $existingModifiers | $modifierToSet; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Comment.php b/vendor/nikic/php-parser/lib/PhpParser/Comment.php new file mode 100644 index 00000000..61e98d3d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Comment.php @@ -0,0 +1,239 @@ +text = $text; + $this->startLine = $startLine; + $this->startFilePos = $startFilePos; + $this->startTokenPos = $startTokenPos; + $this->endLine = $endLine; + $this->endFilePos = $endFilePos; + $this->endTokenPos = $endTokenPos; + } + + /** + * Gets the comment text. + * + * @return string The comment text (including comment delimiters like /*) + */ + public function getText() : string { + return $this->text; + } + + /** + * Gets the line number the comment started on. + * + * @return int Line number (or -1 if not available) + */ + public function getStartLine() : int { + return $this->startLine; + } + + /** + * Gets the file offset the comment started on. + * + * @return int File offset (or -1 if not available) + */ + public function getStartFilePos() : int { + return $this->startFilePos; + } + + /** + * Gets the token offset the comment started on. + * + * @return int Token offset (or -1 if not available) + */ + public function getStartTokenPos() : int { + return $this->startTokenPos; + } + + /** + * Gets the line number the comment ends on. + * + * @return int Line number (or -1 if not available) + */ + public function getEndLine() : int { + return $this->endLine; + } + + /** + * Gets the file offset the comment ends on. + * + * @return int File offset (or -1 if not available) + */ + public function getEndFilePos() : int { + return $this->endFilePos; + } + + /** + * Gets the token offset the comment ends on. + * + * @return int Token offset (or -1 if not available) + */ + public function getEndTokenPos() : int { + return $this->endTokenPos; + } + + /** + * Gets the line number the comment started on. + * + * @deprecated Use getStartLine() instead + * + * @return int Line number + */ + public function getLine() : int { + return $this->startLine; + } + + /** + * Gets the file offset the comment started on. + * + * @deprecated Use getStartFilePos() instead + * + * @return int File offset + */ + public function getFilePos() : int { + return $this->startFilePos; + } + + /** + * Gets the token offset the comment started on. + * + * @deprecated Use getStartTokenPos() instead + * + * @return int Token offset + */ + public function getTokenPos() : int { + return $this->startTokenPos; + } + + /** + * Gets the comment text. + * + * @return string The comment text (including comment delimiters like /*) + */ + public function __toString() : string { + return $this->text; + } + + /** + * Gets the reformatted comment text. + * + * "Reformatted" here means that we try to clean up the whitespace at the + * starts of the lines. This is necessary because we receive the comments + * without trailing whitespace on the first line, but with trailing whitespace + * on all subsequent lines. + * + * @return mixed|string + */ + public function getReformattedText() { + $text = trim($this->text); + $newlinePos = strpos($text, "\n"); + if (false === $newlinePos) { + // Single line comments don't need further processing + return $text; + } elseif (preg_match('((*BSR_ANYCRLF)(*ANYCRLF)^.*(?:\R\s+\*.*)+$)', $text)) { + // Multi line comment of the type + // + // /* + // * Some text. + // * Some more text. + // */ + // + // is handled by replacing the whitespace sequences before the * by a single space + return preg_replace('(^\s+\*)m', ' *', $this->text); + } elseif (preg_match('(^/\*\*?\s*[\r\n])', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) { + // Multi line comment of the type + // + // /* + // Some text. + // Some more text. + // */ + // + // is handled by removing the whitespace sequence on the line before the closing + // */ on all lines. So if the last line is " */", then " " is removed at the + // start of all lines. + return preg_replace('(^' . preg_quote($matches[1]) . ')m', '', $text); + } elseif (preg_match('(^/\*\*?\s*(?!\s))', $text, $matches)) { + // Multi line comment of the type + // + // /* Some text. + // Some more text. + // Indented text. + // Even more text. */ + // + // is handled by removing the difference between the shortest whitespace prefix on all + // lines and the length of the "/* " opening sequence. + $prefixLen = $this->getShortestWhitespacePrefixLen(substr($text, $newlinePos + 1)); + $removeLen = $prefixLen - strlen($matches[0]); + return preg_replace('(^\s{' . $removeLen . '})m', '', $text); + } + + // No idea how to format this comment, so simply return as is + return $text; + } + + /** + * Get length of shortest whitespace prefix (at the start of a line). + * + * If there is a line with no prefix whitespace, 0 is a valid return value. + * + * @param string $str String to check + * @return int Length in characters. Tabs count as single characters. + */ + private function getShortestWhitespacePrefixLen(string $str) : int { + $lines = explode("\n", $str); + $shortestPrefixLen = \INF; + foreach ($lines as $line) { + preg_match('(^\s*)', $line, $matches); + $prefixLen = strlen($matches[0]); + if ($prefixLen < $shortestPrefixLen) { + $shortestPrefixLen = $prefixLen; + } + } + return $shortestPrefixLen; + } + + /** + * @return array + * @psalm-return array{nodeType:string, text:mixed, line:mixed, filePos:mixed} + */ + public function jsonSerialize() : array { + // Technically not a node, but we make it look like one anyway + $type = $this instanceof Comment\Doc ? 'Comment_Doc' : 'Comment'; + return [ + 'nodeType' => $type, + 'text' => $this->text, + // TODO: Rename these to include "start". + 'line' => $this->startLine, + 'filePos' => $this->startFilePos, + 'tokenPos' => $this->startTokenPos, + 'endLine' => $this->endLine, + 'endFilePos' => $this->endFilePos, + 'endTokenPos' => $this->endTokenPos, + ]; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php b/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php new file mode 100644 index 00000000..a9db6128 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php @@ -0,0 +1,7 @@ +fallbackEvaluator = $fallbackEvaluator ?? function(Expr $expr) { + throw new ConstExprEvaluationException( + "Expression of type {$expr->getType()} cannot be evaluated" + ); + }; + } + + /** + * Silently evaluates a constant expression into a PHP value. + * + * Thrown Errors, warnings or notices will be converted into a ConstExprEvaluationException. + * The original source of the exception is available through getPrevious(). + * + * If some part of the expression cannot be evaluated, the fallback evaluator passed to the + * constructor will be invoked. By default, if no fallback is provided, an exception of type + * ConstExprEvaluationException is thrown. + * + * See class doc comment for caveats and limitations. + * + * @param Expr $expr Constant expression to evaluate + * @return mixed Result of evaluation + * + * @throws ConstExprEvaluationException if the expression cannot be evaluated or an error occurred + */ + public function evaluateSilently(Expr $expr) { + set_error_handler(function($num, $str, $file, $line) { + throw new \ErrorException($str, 0, $num, $file, $line); + }); + + try { + return $this->evaluate($expr); + } catch (\Throwable $e) { + if (!$e instanceof ConstExprEvaluationException) { + $e = new ConstExprEvaluationException( + "An error occurred during constant expression evaluation", 0, $e); + } + throw $e; + } finally { + restore_error_handler(); + } + } + + /** + * Directly evaluates a constant expression into a PHP value. + * + * May generate Error exceptions, warnings or notices. Use evaluateSilently() to convert these + * into a ConstExprEvaluationException. + * + * If some part of the expression cannot be evaluated, the fallback evaluator passed to the + * constructor will be invoked. By default, if no fallback is provided, an exception of type + * ConstExprEvaluationException is thrown. + * + * See class doc comment for caveats and limitations. + * + * @param Expr $expr Constant expression to evaluate + * @return mixed Result of evaluation + * + * @throws ConstExprEvaluationException if the expression cannot be evaluated + */ + public function evaluateDirectly(Expr $expr) { + return $this->evaluate($expr); + } + + private function evaluate(Expr $expr) { + if ($expr instanceof Scalar\LNumber + || $expr instanceof Scalar\DNumber + || $expr instanceof Scalar\String_ + ) { + return $expr->value; + } + + if ($expr instanceof Expr\Array_) { + return $this->evaluateArray($expr); + } + + // Unary operators + if ($expr instanceof Expr\UnaryPlus) { + return +$this->evaluate($expr->expr); + } + if ($expr instanceof Expr\UnaryMinus) { + return -$this->evaluate($expr->expr); + } + if ($expr instanceof Expr\BooleanNot) { + return !$this->evaluate($expr->expr); + } + if ($expr instanceof Expr\BitwiseNot) { + return ~$this->evaluate($expr->expr); + } + + if ($expr instanceof Expr\BinaryOp) { + return $this->evaluateBinaryOp($expr); + } + + if ($expr instanceof Expr\Ternary) { + return $this->evaluateTernary($expr); + } + + if ($expr instanceof Expr\ArrayDimFetch && null !== $expr->dim) { + return $this->evaluate($expr->var)[$this->evaluate($expr->dim)]; + } + + if ($expr instanceof Expr\ConstFetch) { + return $this->evaluateConstFetch($expr); + } + + return ($this->fallbackEvaluator)($expr); + } + + private function evaluateArray(Expr\Array_ $expr) { + $array = []; + foreach ($expr->items as $item) { + if (null !== $item->key) { + $array[$this->evaluate($item->key)] = $this->evaluate($item->value); + } elseif ($item->unpack) { + $array = array_merge($array, $this->evaluate($item->value)); + } else { + $array[] = $this->evaluate($item->value); + } + } + return $array; + } + + private function evaluateTernary(Expr\Ternary $expr) { + if (null === $expr->if) { + return $this->evaluate($expr->cond) ?: $this->evaluate($expr->else); + } + + return $this->evaluate($expr->cond) + ? $this->evaluate($expr->if) + : $this->evaluate($expr->else); + } + + private function evaluateBinaryOp(Expr\BinaryOp $expr) { + if ($expr instanceof Expr\BinaryOp\Coalesce + && $expr->left instanceof Expr\ArrayDimFetch + ) { + // This needs to be special cased to respect BP_VAR_IS fetch semantics + return $this->evaluate($expr->left->var)[$this->evaluate($expr->left->dim)] + ?? $this->evaluate($expr->right); + } + + // The evaluate() calls are repeated in each branch, because some of the operators are + // short-circuiting and evaluating the RHS in advance may be illegal in that case + $l = $expr->left; + $r = $expr->right; + switch ($expr->getOperatorSigil()) { + case '&': return $this->evaluate($l) & $this->evaluate($r); + case '|': return $this->evaluate($l) | $this->evaluate($r); + case '^': return $this->evaluate($l) ^ $this->evaluate($r); + case '&&': return $this->evaluate($l) && $this->evaluate($r); + case '||': return $this->evaluate($l) || $this->evaluate($r); + case '??': return $this->evaluate($l) ?? $this->evaluate($r); + case '.': return $this->evaluate($l) . $this->evaluate($r); + case '/': return $this->evaluate($l) / $this->evaluate($r); + case '==': return $this->evaluate($l) == $this->evaluate($r); + case '>': return $this->evaluate($l) > $this->evaluate($r); + case '>=': return $this->evaluate($l) >= $this->evaluate($r); + case '===': return $this->evaluate($l) === $this->evaluate($r); + case 'and': return $this->evaluate($l) and $this->evaluate($r); + case 'or': return $this->evaluate($l) or $this->evaluate($r); + case 'xor': return $this->evaluate($l) xor $this->evaluate($r); + case '-': return $this->evaluate($l) - $this->evaluate($r); + case '%': return $this->evaluate($l) % $this->evaluate($r); + case '*': return $this->evaluate($l) * $this->evaluate($r); + case '!=': return $this->evaluate($l) != $this->evaluate($r); + case '!==': return $this->evaluate($l) !== $this->evaluate($r); + case '+': return $this->evaluate($l) + $this->evaluate($r); + case '**': return $this->evaluate($l) ** $this->evaluate($r); + case '<<': return $this->evaluate($l) << $this->evaluate($r); + case '>>': return $this->evaluate($l) >> $this->evaluate($r); + case '<': return $this->evaluate($l) < $this->evaluate($r); + case '<=': return $this->evaluate($l) <= $this->evaluate($r); + case '<=>': return $this->evaluate($l) <=> $this->evaluate($r); + } + + throw new \Exception('Should not happen'); + } + + private function evaluateConstFetch(Expr\ConstFetch $expr) { + $name = $expr->name->toLowerString(); + switch ($name) { + case 'null': return null; + case 'false': return false; + case 'true': return true; + } + + return ($this->fallbackEvaluator)($expr); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Error.php b/vendor/nikic/php-parser/lib/PhpParser/Error.php new file mode 100644 index 00000000..d1fb959d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Error.php @@ -0,0 +1,180 @@ +rawMessage = $message; + if (is_array($attributes)) { + $this->attributes = $attributes; + } else { + $this->attributes = ['startLine' => $attributes]; + } + $this->updateMessage(); + } + + /** + * Gets the error message + * + * @return string Error message + */ + public function getRawMessage() : string { + return $this->rawMessage; + } + + /** + * Gets the line the error starts in. + * + * @return int Error start line + */ + public function getStartLine() : int { + return $this->attributes['startLine'] ?? -1; + } + + /** + * Gets the line the error ends in. + * + * @return int Error end line + */ + public function getEndLine() : int { + return $this->attributes['endLine'] ?? -1; + } + + /** + * Gets the attributes of the node/token the error occurred at. + * + * @return array + */ + public function getAttributes() : array { + return $this->attributes; + } + + /** + * Sets the attributes of the node/token the error occurred at. + * + * @param array $attributes + */ + public function setAttributes(array $attributes) { + $this->attributes = $attributes; + $this->updateMessage(); + } + + /** + * Sets the line of the PHP file the error occurred in. + * + * @param string $message Error message + */ + public function setRawMessage(string $message) { + $this->rawMessage = $message; + $this->updateMessage(); + } + + /** + * Sets the line the error starts in. + * + * @param int $line Error start line + */ + public function setStartLine(int $line) { + $this->attributes['startLine'] = $line; + $this->updateMessage(); + } + + /** + * Returns whether the error has start and end column information. + * + * For column information enable the startFilePos and endFilePos in the lexer options. + * + * @return bool + */ + public function hasColumnInfo() : bool { + return isset($this->attributes['startFilePos'], $this->attributes['endFilePos']); + } + + /** + * Gets the start column (1-based) into the line where the error started. + * + * @param string $code Source code of the file + * @return int + */ + public function getStartColumn(string $code) : int { + if (!$this->hasColumnInfo()) { + throw new \RuntimeException('Error does not have column information'); + } + + return $this->toColumn($code, $this->attributes['startFilePos']); + } + + /** + * Gets the end column (1-based) into the line where the error ended. + * + * @param string $code Source code of the file + * @return int + */ + public function getEndColumn(string $code) : int { + if (!$this->hasColumnInfo()) { + throw new \RuntimeException('Error does not have column information'); + } + + return $this->toColumn($code, $this->attributes['endFilePos']); + } + + /** + * Formats message including line and column information. + * + * @param string $code Source code associated with the error, for calculation of the columns + * + * @return string Formatted message + */ + public function getMessageWithColumnInfo(string $code) : string { + return sprintf( + '%s from %d:%d to %d:%d', $this->getRawMessage(), + $this->getStartLine(), $this->getStartColumn($code), + $this->getEndLine(), $this->getEndColumn($code) + ); + } + + /** + * Converts a file offset into a column. + * + * @param string $code Source code that $pos indexes into + * @param int $pos 0-based position in $code + * + * @return int 1-based column (relative to start of line) + */ + private function toColumn(string $code, int $pos) : int { + if ($pos > strlen($code)) { + throw new \RuntimeException('Invalid position information'); + } + + $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); + if (false === $lineStartPos) { + $lineStartPos = -1; + } + + return $pos - $lineStartPos; + } + + /** + * Updates the exception message after a change to rawMessage or rawLine. + */ + protected function updateMessage() { + $this->message = $this->rawMessage; + + if (-1 === $this->getStartLine()) { + $this->message .= ' on unknown line'; + } else { + $this->message .= ' on line ' . $this->getStartLine(); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php new file mode 100644 index 00000000..d620e745 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php @@ -0,0 +1,13 @@ +errors[] = $error; + } + + /** + * Get collected errors. + * + * @return Error[] + */ + public function getErrors() : array { + return $this->errors; + } + + /** + * Check whether there are any errors. + * + * @return bool + */ + public function hasErrors() : bool { + return !empty($this->errors); + } + + /** + * Reset/clear collected errors. + */ + public function clearErrors() { + $this->errors = []; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php new file mode 100644 index 00000000..aeee989b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php @@ -0,0 +1,18 @@ +type = $type; + $this->old = $old; + $this->new = $new; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php new file mode 100644 index 00000000..7f218c74 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php @@ -0,0 +1,164 @@ +isEqual = $isEqual; + } + + /** + * Calculate diff (edit script) from $old to $new. + * + * @param array $old Original array + * @param array $new New array + * + * @return DiffElem[] Diff (edit script) + */ + public function diff(array $old, array $new) { + list($trace, $x, $y) = $this->calculateTrace($old, $new); + return $this->extractDiff($trace, $x, $y, $old, $new); + } + + /** + * Calculate diff, including "replace" operations. + * + * If a sequence of remove operations is followed by the same number of add operations, these + * will be coalesced into replace operations. + * + * @param array $old Original array + * @param array $new New array + * + * @return DiffElem[] Diff (edit script), including replace operations + */ + public function diffWithReplacements(array $old, array $new) { + return $this->coalesceReplacements($this->diff($old, $new)); + } + + private function calculateTrace(array $a, array $b) { + $n = \count($a); + $m = \count($b); + $max = $n + $m; + $v = [1 => 0]; + $trace = []; + for ($d = 0; $d <= $max; $d++) { + $trace[] = $v; + for ($k = -$d; $k <= $d; $k += 2) { + if ($k === -$d || ($k !== $d && $v[$k-1] < $v[$k+1])) { + $x = $v[$k+1]; + } else { + $x = $v[$k-1] + 1; + } + + $y = $x - $k; + while ($x < $n && $y < $m && ($this->isEqual)($a[$x], $b[$y])) { + $x++; + $y++; + } + + $v[$k] = $x; + if ($x >= $n && $y >= $m) { + return [$trace, $x, $y]; + } + } + } + throw new \Exception('Should not happen'); + } + + private function extractDiff(array $trace, int $x, int $y, array $a, array $b) { + $result = []; + for ($d = \count($trace) - 1; $d >= 0; $d--) { + $v = $trace[$d]; + $k = $x - $y; + + if ($k === -$d || ($k !== $d && $v[$k-1] < $v[$k+1])) { + $prevK = $k + 1; + } else { + $prevK = $k - 1; + } + + $prevX = $v[$prevK]; + $prevY = $prevX - $prevK; + + while ($x > $prevX && $y > $prevY) { + $result[] = new DiffElem(DiffElem::TYPE_KEEP, $a[$x-1], $b[$y-1]); + $x--; + $y--; + } + + if ($d === 0) { + break; + } + + while ($x > $prevX) { + $result[] = new DiffElem(DiffElem::TYPE_REMOVE, $a[$x-1], null); + $x--; + } + + while ($y > $prevY) { + $result[] = new DiffElem(DiffElem::TYPE_ADD, null, $b[$y-1]); + $y--; + } + } + return array_reverse($result); + } + + /** + * Coalesce equal-length sequences of remove+add into a replace operation. + * + * @param DiffElem[] $diff + * @return DiffElem[] + */ + private function coalesceReplacements(array $diff) { + $newDiff = []; + $c = \count($diff); + for ($i = 0; $i < $c; $i++) { + $diffType = $diff[$i]->type; + if ($diffType !== DiffElem::TYPE_REMOVE) { + $newDiff[] = $diff[$i]; + continue; + } + + $j = $i; + while ($j < $c && $diff[$j]->type === DiffElem::TYPE_REMOVE) { + $j++; + } + + $k = $j; + while ($k < $c && $diff[$k]->type === DiffElem::TYPE_ADD) { + $k++; + } + + if ($j - $i === $k - $j) { + $len = $j - $i; + for ($n = 0; $n < $len; $n++) { + $newDiff[] = new DiffElem( + DiffElem::TYPE_REPLACE, $diff[$i + $n]->old, $diff[$j + $n]->new + ); + } + } else { + for (; $i < $k; $i++) { + $newDiff[] = $diff[$i]; + } + } + $i = $k - 1; + } + return $newDiff; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php new file mode 100644 index 00000000..3eeac04a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -0,0 +1,61 @@ +attrGroups = $attrGroups; + $this->args = $args; + $this->extends = $extends; + $this->implements = $implements; + $this->stmts = $stmts; + } + + public static function fromNewNode(Expr\New_ $newNode) { + $class = $newNode->class; + assert($class instanceof Node\Stmt\Class_); + // We don't assert that $class->name is null here, to allow consumers to assign unique names + // to anonymous classes for their own purposes. We simplify ignore the name here. + return new self( + $class->attrGroups, $newNode->args, $class->extends, $class->implements, + $class->stmts, $newNode->getAttributes() + ); + } + + public function getType() : string { + return 'Expr_PrintableNewAnonClass'; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'args', 'extends', 'implements', 'stmts']; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php new file mode 100644 index 00000000..7e0a5de0 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php @@ -0,0 +1,286 @@ +tokens = $tokens; + $this->indentMap = $this->calcIndentMap(); + } + + /** + * Whether the given position is immediately surrounded by parenthesis. + * + * @param int $startPos Start position + * @param int $endPos End position + * + * @return bool + */ + public function haveParens(int $startPos, int $endPos) : bool { + return $this->haveTokenImmediatelyBefore($startPos, '(') + && $this->haveTokenImmediatelyAfter($endPos, ')'); + } + + /** + * Whether the given position is immediately surrounded by braces. + * + * @param int $startPos Start position + * @param int $endPos End position + * + * @return bool + */ + public function haveBraces(int $startPos, int $endPos) : bool { + return ($this->haveTokenImmediatelyBefore($startPos, '{') + || $this->haveTokenImmediatelyBefore($startPos, T_CURLY_OPEN)) + && $this->haveTokenImmediatelyAfter($endPos, '}'); + } + + /** + * Check whether the position is directly preceded by a certain token type. + * + * During this check whitespace and comments are skipped. + * + * @param int $pos Position before which the token should occur + * @param int|string $expectedTokenType Token to check for + * + * @return bool Whether the expected token was found + */ + public function haveTokenImmediatelyBefore(int $pos, $expectedTokenType) : bool { + $tokens = $this->tokens; + $pos--; + for (; $pos >= 0; $pos--) { + $tokenType = $tokens[$pos][0]; + if ($tokenType === $expectedTokenType) { + return true; + } + if ($tokenType !== \T_WHITESPACE + && $tokenType !== \T_COMMENT && $tokenType !== \T_DOC_COMMENT) { + break; + } + } + return false; + } + + /** + * Check whether the position is directly followed by a certain token type. + * + * During this check whitespace and comments are skipped. + * + * @param int $pos Position after which the token should occur + * @param int|string $expectedTokenType Token to check for + * + * @return bool Whether the expected token was found + */ + public function haveTokenImmediatelyAfter(int $pos, $expectedTokenType) : bool { + $tokens = $this->tokens; + $pos++; + for (; $pos < \count($tokens); $pos++) { + $tokenType = $tokens[$pos][0]; + if ($tokenType === $expectedTokenType) { + return true; + } + if ($tokenType !== \T_WHITESPACE + && $tokenType !== \T_COMMENT && $tokenType !== \T_DOC_COMMENT) { + break; + } + } + return false; + } + + public function skipLeft(int $pos, $skipTokenType) { + $tokens = $this->tokens; + + $pos = $this->skipLeftWhitespace($pos); + if ($skipTokenType === \T_WHITESPACE) { + return $pos; + } + + if ($tokens[$pos][0] !== $skipTokenType) { + // Shouldn't happen. The skip token MUST be there + throw new \Exception('Encountered unexpected token'); + } + $pos--; + + return $this->skipLeftWhitespace($pos); + } + + public function skipRight(int $pos, $skipTokenType) { + $tokens = $this->tokens; + + $pos = $this->skipRightWhitespace($pos); + if ($skipTokenType === \T_WHITESPACE) { + return $pos; + } + + if ($tokens[$pos][0] !== $skipTokenType) { + // Shouldn't happen. The skip token MUST be there + throw new \Exception('Encountered unexpected token'); + } + $pos++; + + return $this->skipRightWhitespace($pos); + } + + /** + * Return first non-whitespace token position smaller or equal to passed position. + * + * @param int $pos Token position + * @return int Non-whitespace token position + */ + public function skipLeftWhitespace(int $pos) { + $tokens = $this->tokens; + for (; $pos >= 0; $pos--) { + $type = $tokens[$pos][0]; + if ($type !== \T_WHITESPACE && $type !== \T_COMMENT && $type !== \T_DOC_COMMENT) { + break; + } + } + return $pos; + } + + /** + * Return first non-whitespace position greater or equal to passed position. + * + * @param int $pos Token position + * @return int Non-whitespace token position + */ + public function skipRightWhitespace(int $pos) { + $tokens = $this->tokens; + for ($count = \count($tokens); $pos < $count; $pos++) { + $type = $tokens[$pos][0]; + if ($type !== \T_WHITESPACE && $type !== \T_COMMENT && $type !== \T_DOC_COMMENT) { + break; + } + } + return $pos; + } + + public function findRight(int $pos, $findTokenType) { + $tokens = $this->tokens; + for ($count = \count($tokens); $pos < $count; $pos++) { + $type = $tokens[$pos][0]; + if ($type === $findTokenType) { + return $pos; + } + } + return -1; + } + + /** + * Whether the given position range contains a certain token type. + * + * @param int $startPos Starting position (inclusive) + * @param int $endPos Ending position (exclusive) + * @param int|string $tokenType Token type to look for + * @return bool Whether the token occurs in the given range + */ + public function haveTokenInRange(int $startPos, int $endPos, $tokenType) { + $tokens = $this->tokens; + for ($pos = $startPos; $pos < $endPos; $pos++) { + if ($tokens[$pos][0] === $tokenType) { + return true; + } + } + return false; + } + + public function haveBracesInRange(int $startPos, int $endPos) { + return $this->haveTokenInRange($startPos, $endPos, '{') + || $this->haveTokenInRange($startPos, $endPos, T_CURLY_OPEN) + || $this->haveTokenInRange($startPos, $endPos, '}'); + } + + public function haveTagInRange(int $startPos, int $endPos): bool { + return $this->haveTokenInRange($startPos, $endPos, \T_OPEN_TAG) + || $this->haveTokenInRange($startPos, $endPos, \T_CLOSE_TAG); + } + + /** + * Get indentation before token position. + * + * @param int $pos Token position + * + * @return int Indentation depth (in spaces) + */ + public function getIndentationBefore(int $pos) : int { + return $this->indentMap[$pos]; + } + + /** + * Get the code corresponding to a token offset range, optionally adjusted for indentation. + * + * @param int $from Token start position (inclusive) + * @param int $to Token end position (exclusive) + * @param int $indent By how much the code should be indented (can be negative as well) + * + * @return string Code corresponding to token range, adjusted for indentation + */ + public function getTokenCode(int $from, int $to, int $indent) : string { + $tokens = $this->tokens; + $result = ''; + for ($pos = $from; $pos < $to; $pos++) { + $token = $tokens[$pos]; + if (\is_array($token)) { + $type = $token[0]; + $content = $token[1]; + if ($type === \T_CONSTANT_ENCAPSED_STRING || $type === \T_ENCAPSED_AND_WHITESPACE) { + $result .= $content; + } else { + // TODO Handle non-space indentation + if ($indent < 0) { + $result .= str_replace("\n" . str_repeat(" ", -$indent), "\n", $content); + } elseif ($indent > 0) { + $result .= str_replace("\n", "\n" . str_repeat(" ", $indent), $content); + } else { + $result .= $content; + } + } + } else { + $result .= $token; + } + } + return $result; + } + + /** + * Precalculate the indentation at every token position. + * + * @return int[] Token position to indentation map + */ + private function calcIndentMap() { + $indentMap = []; + $indent = 0; + foreach ($this->tokens as $token) { + $indentMap[] = $indent; + + if ($token[0] === \T_WHITESPACE) { + $content = $token[1]; + $newlinePos = \strrpos($content, "\n"); + if (false !== $newlinePos) { + $indent = \strlen($content) - $newlinePos - 1; + } + } + } + + // Add a sentinel for one past end of the file + $indentMap[] = $indent; + + return $indentMap; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php b/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php new file mode 100644 index 00000000..47d2003d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php @@ -0,0 +1,103 @@ +decodeRecursive($value); + } + + private function decodeRecursive($value) { + if (\is_array($value)) { + if (isset($value['nodeType'])) { + if ($value['nodeType'] === 'Comment' || $value['nodeType'] === 'Comment_Doc') { + return $this->decodeComment($value); + } + return $this->decodeNode($value); + } + return $this->decodeArray($value); + } + return $value; + } + + private function decodeArray(array $array) : array { + $decodedArray = []; + foreach ($array as $key => $value) { + $decodedArray[$key] = $this->decodeRecursive($value); + } + return $decodedArray; + } + + private function decodeNode(array $value) : Node { + $nodeType = $value['nodeType']; + if (!\is_string($nodeType)) { + throw new \RuntimeException('Node type must be a string'); + } + + $reflectionClass = $this->reflectionClassFromNodeType($nodeType); + /** @var Node $node */ + $node = $reflectionClass->newInstanceWithoutConstructor(); + + if (isset($value['attributes'])) { + if (!\is_array($value['attributes'])) { + throw new \RuntimeException('Attributes must be an array'); + } + + $node->setAttributes($this->decodeArray($value['attributes'])); + } + + foreach ($value as $name => $subNode) { + if ($name === 'nodeType' || $name === 'attributes') { + continue; + } + + $node->$name = $this->decodeRecursive($subNode); + } + + return $node; + } + + private function decodeComment(array $value) : Comment { + $className = $value['nodeType'] === 'Comment' ? Comment::class : Comment\Doc::class; + if (!isset($value['text'])) { + throw new \RuntimeException('Comment must have text'); + } + + return new $className( + $value['text'], + $value['line'] ?? -1, $value['filePos'] ?? -1, $value['tokenPos'] ?? -1, + $value['endLine'] ?? -1, $value['endFilePos'] ?? -1, $value['endTokenPos'] ?? -1 + ); + } + + private function reflectionClassFromNodeType(string $nodeType) : \ReflectionClass { + if (!isset($this->reflectionClassCache[$nodeType])) { + $className = $this->classNameFromNodeType($nodeType); + $this->reflectionClassCache[$nodeType] = new \ReflectionClass($className); + } + return $this->reflectionClassCache[$nodeType]; + } + + private function classNameFromNodeType(string $nodeType) : string { + $className = 'PhpParser\\Node\\' . strtr($nodeType, '_', '\\'); + if (class_exists($className)) { + return $className; + } + + $className .= '_'; + if (class_exists($className)) { + return $className; + } + + throw new \RuntimeException("Unknown node type \"$nodeType\""); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php new file mode 100644 index 00000000..e15dd0a5 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -0,0 +1,560 @@ +defineCompatibilityTokens(); + $this->tokenMap = $this->createTokenMap(); + $this->identifierTokens = $this->createIdentifierTokenMap(); + + // map of tokens to drop while lexing (the map is only used for isset lookup, + // that's why the value is simply set to 1; the value is never actually used.) + $this->dropTokens = array_fill_keys( + [\T_WHITESPACE, \T_OPEN_TAG, \T_COMMENT, \T_DOC_COMMENT, \T_BAD_CHARACTER], 1 + ); + + $defaultAttributes = ['comments', 'startLine', 'endLine']; + $usedAttributes = array_fill_keys($options['usedAttributes'] ?? $defaultAttributes, true); + + // Create individual boolean properties to make these checks faster. + $this->attributeStartLineUsed = isset($usedAttributes['startLine']); + $this->attributeEndLineUsed = isset($usedAttributes['endLine']); + $this->attributeStartTokenPosUsed = isset($usedAttributes['startTokenPos']); + $this->attributeEndTokenPosUsed = isset($usedAttributes['endTokenPos']); + $this->attributeStartFilePosUsed = isset($usedAttributes['startFilePos']); + $this->attributeEndFilePosUsed = isset($usedAttributes['endFilePos']); + $this->attributeCommentsUsed = isset($usedAttributes['comments']); + } + + /** + * Initializes the lexer for lexing the provided source code. + * + * This function does not throw if lexing errors occur. Instead, errors may be retrieved using + * the getErrors() method. + * + * @param string $code The source code to lex + * @param ErrorHandler|null $errorHandler Error handler to use for lexing errors. Defaults to + * ErrorHandler\Throwing + */ + public function startLexing(string $code, ErrorHandler $errorHandler = null) { + if (null === $errorHandler) { + $errorHandler = new ErrorHandler\Throwing(); + } + + $this->code = $code; // keep the code around for __halt_compiler() handling + $this->pos = -1; + $this->line = 1; + $this->filePos = 0; + + // If inline HTML occurs without preceding code, treat it as if it had a leading newline. + // This ensures proper composability, because having a newline is the "safe" assumption. + $this->prevCloseTagHasNewline = true; + + $scream = ini_set('xdebug.scream', '0'); + + $this->tokens = @token_get_all($code); + $this->postprocessTokens($errorHandler); + + if (false !== $scream) { + ini_set('xdebug.scream', $scream); + } + } + + private function handleInvalidCharacterRange($start, $end, $line, ErrorHandler $errorHandler) { + $tokens = []; + for ($i = $start; $i < $end; $i++) { + $chr = $this->code[$i]; + if ($chr === "\0") { + // PHP cuts error message after null byte, so need special case + $errorMsg = 'Unexpected null byte'; + } else { + $errorMsg = sprintf( + 'Unexpected character "%s" (ASCII %d)', $chr, ord($chr) + ); + } + + $tokens[] = [\T_BAD_CHARACTER, $chr, $line]; + $errorHandler->handleError(new Error($errorMsg, [ + 'startLine' => $line, + 'endLine' => $line, + 'startFilePos' => $i, + 'endFilePos' => $i, + ])); + } + return $tokens; + } + + /** + * Check whether comment token is unterminated. + * + * @return bool + */ + private function isUnterminatedComment($token) : bool { + return ($token[0] === \T_COMMENT || $token[0] === \T_DOC_COMMENT) + && substr($token[1], 0, 2) === '/*' + && substr($token[1], -2) !== '*/'; + } + + protected function postprocessTokens(ErrorHandler $errorHandler) { + // PHP's error handling for token_get_all() is rather bad, so if we want detailed + // error information we need to compute it ourselves. Invalid character errors are + // detected by finding "gaps" in the token array. Unterminated comments are detected + // by checking if a trailing comment has a "*/" at the end. + // + // Additionally, we perform a number of canonicalizations here: + // * Use the PHP 8.0 comment format, which does not include trailing whitespace anymore. + // * Use PHP 8.0 T_NAME_* tokens. + // * Use PHP 8.1 T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG and + // T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG tokens used to disambiguate intersection types. + + $filePos = 0; + $line = 1; + $numTokens = \count($this->tokens); + for ($i = 0; $i < $numTokens; $i++) { + $token = $this->tokens[$i]; + + // Since PHP 7.4 invalid characters are represented by a T_BAD_CHARACTER token. + // In this case we only need to emit an error. + if ($token[0] === \T_BAD_CHARACTER) { + $this->handleInvalidCharacterRange($filePos, $filePos + 1, $line, $errorHandler); + } + + if ($token[0] === \T_COMMENT && substr($token[1], 0, 2) !== '/*' + && preg_match('/(\r\n|\n|\r)$/D', $token[1], $matches)) { + $trailingNewline = $matches[0]; + $token[1] = substr($token[1], 0, -strlen($trailingNewline)); + $this->tokens[$i] = $token; + if (isset($this->tokens[$i + 1]) && $this->tokens[$i + 1][0] === \T_WHITESPACE) { + // Move trailing newline into following T_WHITESPACE token, if it already exists. + $this->tokens[$i + 1][1] = $trailingNewline . $this->tokens[$i + 1][1]; + $this->tokens[$i + 1][2]--; + } else { + // Otherwise, we need to create a new T_WHITESPACE token. + array_splice($this->tokens, $i + 1, 0, [ + [\T_WHITESPACE, $trailingNewline, $line], + ]); + $numTokens++; + } + } + + // Emulate PHP 8 T_NAME_* tokens, by combining sequences of T_NS_SEPARATOR and T_STRING + // into a single token. + if (\is_array($token) + && ($token[0] === \T_NS_SEPARATOR || isset($this->identifierTokens[$token[0]]))) { + $lastWasSeparator = $token[0] === \T_NS_SEPARATOR; + $text = $token[1]; + for ($j = $i + 1; isset($this->tokens[$j]); $j++) { + if ($lastWasSeparator) { + if (!isset($this->identifierTokens[$this->tokens[$j][0]])) { + break; + } + $lastWasSeparator = false; + } else { + if ($this->tokens[$j][0] !== \T_NS_SEPARATOR) { + break; + } + $lastWasSeparator = true; + } + $text .= $this->tokens[$j][1]; + } + if ($lastWasSeparator) { + // Trailing separator is not part of the name. + $j--; + $text = substr($text, 0, -1); + } + if ($j > $i + 1) { + if ($token[0] === \T_NS_SEPARATOR) { + $type = \T_NAME_FULLY_QUALIFIED; + } else if ($token[0] === \T_NAMESPACE) { + $type = \T_NAME_RELATIVE; + } else { + $type = \T_NAME_QUALIFIED; + } + $token = [$type, $text, $line]; + array_splice($this->tokens, $i, $j - $i, [$token]); + $numTokens -= $j - $i - 1; + } + } + + if ($token === '&') { + $next = $i + 1; + while (isset($this->tokens[$next]) && $this->tokens[$next][0] === \T_WHITESPACE) { + $next++; + } + $followedByVarOrVarArg = isset($this->tokens[$next]) && + ($this->tokens[$next][0] === \T_VARIABLE || $this->tokens[$next][0] === \T_ELLIPSIS); + $this->tokens[$i] = $token = [ + $followedByVarOrVarArg + ? \T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + : \T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG, + '&', + $line, + ]; + } + + $tokenValue = \is_string($token) ? $token : $token[1]; + $tokenLen = \strlen($tokenValue); + + if (substr($this->code, $filePos, $tokenLen) !== $tokenValue) { + // Something is missing, must be an invalid character + $nextFilePos = strpos($this->code, $tokenValue, $filePos); + $badCharTokens = $this->handleInvalidCharacterRange( + $filePos, $nextFilePos, $line, $errorHandler); + $filePos = (int) $nextFilePos; + + array_splice($this->tokens, $i, 0, $badCharTokens); + $numTokens += \count($badCharTokens); + $i += \count($badCharTokens); + } + + $filePos += $tokenLen; + $line += substr_count($tokenValue, "\n"); + } + + if ($filePos !== \strlen($this->code)) { + if (substr($this->code, $filePos, 2) === '/*') { + // Unlike PHP, HHVM will drop unterminated comments entirely + $comment = substr($this->code, $filePos); + $errorHandler->handleError(new Error('Unterminated comment', [ + 'startLine' => $line, + 'endLine' => $line + substr_count($comment, "\n"), + 'startFilePos' => $filePos, + 'endFilePos' => $filePos + \strlen($comment), + ])); + + // Emulate the PHP behavior + $isDocComment = isset($comment[3]) && $comment[3] === '*'; + $this->tokens[] = [$isDocComment ? \T_DOC_COMMENT : \T_COMMENT, $comment, $line]; + } else { + // Invalid characters at the end of the input + $badCharTokens = $this->handleInvalidCharacterRange( + $filePos, \strlen($this->code), $line, $errorHandler); + $this->tokens = array_merge($this->tokens, $badCharTokens); + } + return; + } + + if (count($this->tokens) > 0) { + // Check for unterminated comment + $lastToken = $this->tokens[count($this->tokens) - 1]; + if ($this->isUnterminatedComment($lastToken)) { + $errorHandler->handleError(new Error('Unterminated comment', [ + 'startLine' => $line - substr_count($lastToken[1], "\n"), + 'endLine' => $line, + 'startFilePos' => $filePos - \strlen($lastToken[1]), + 'endFilePos' => $filePos, + ])); + } + } + } + + /** + * Fetches the next token. + * + * The available attributes are determined by the 'usedAttributes' option, which can + * be specified in the constructor. The following attributes are supported: + * + * * 'comments' => Array of PhpParser\Comment or PhpParser\Comment\Doc instances, + * representing all comments that occurred between the previous + * non-discarded token and the current one. + * * 'startLine' => Line in which the node starts. + * * 'endLine' => Line in which the node ends. + * * 'startTokenPos' => Offset into the token array of the first token in the node. + * * 'endTokenPos' => Offset into the token array of the last token in the node. + * * 'startFilePos' => Offset into the code string of the first character that is part of the node. + * * 'endFilePos' => Offset into the code string of the last character that is part of the node. + * + * @param mixed $value Variable to store token content in + * @param mixed $startAttributes Variable to store start attributes in + * @param mixed $endAttributes Variable to store end attributes in + * + * @return int Token id + */ + public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) : int { + $startAttributes = []; + $endAttributes = []; + + while (1) { + if (isset($this->tokens[++$this->pos])) { + $token = $this->tokens[$this->pos]; + } else { + // EOF token with ID 0 + $token = "\0"; + } + + if ($this->attributeStartLineUsed) { + $startAttributes['startLine'] = $this->line; + } + if ($this->attributeStartTokenPosUsed) { + $startAttributes['startTokenPos'] = $this->pos; + } + if ($this->attributeStartFilePosUsed) { + $startAttributes['startFilePos'] = $this->filePos; + } + + if (\is_string($token)) { + $value = $token; + if (isset($token[1])) { + // bug in token_get_all + $this->filePos += 2; + $id = ord('"'); + } else { + $this->filePos += 1; + $id = ord($token); + } + } elseif (!isset($this->dropTokens[$token[0]])) { + $value = $token[1]; + $id = $this->tokenMap[$token[0]]; + if (\T_CLOSE_TAG === $token[0]) { + $this->prevCloseTagHasNewline = false !== strpos($token[1], "\n") + || false !== strpos($token[1], "\r"); + } elseif (\T_INLINE_HTML === $token[0]) { + $startAttributes['hasLeadingNewline'] = $this->prevCloseTagHasNewline; + } + + $this->line += substr_count($value, "\n"); + $this->filePos += \strlen($value); + } else { + $origLine = $this->line; + $origFilePos = $this->filePos; + $this->line += substr_count($token[1], "\n"); + $this->filePos += \strlen($token[1]); + + if (\T_COMMENT === $token[0] || \T_DOC_COMMENT === $token[0]) { + if ($this->attributeCommentsUsed) { + $comment = \T_DOC_COMMENT === $token[0] + ? new Comment\Doc($token[1], + $origLine, $origFilePos, $this->pos, + $this->line, $this->filePos - 1, $this->pos) + : new Comment($token[1], + $origLine, $origFilePos, $this->pos, + $this->line, $this->filePos - 1, $this->pos); + $startAttributes['comments'][] = $comment; + } + } + continue; + } + + if ($this->attributeEndLineUsed) { + $endAttributes['endLine'] = $this->line; + } + if ($this->attributeEndTokenPosUsed) { + $endAttributes['endTokenPos'] = $this->pos; + } + if ($this->attributeEndFilePosUsed) { + $endAttributes['endFilePos'] = $this->filePos - 1; + } + + return $id; + } + + throw new \RuntimeException('Reached end of lexer loop'); + } + + /** + * Returns the token array for current code. + * + * The token array is in the same format as provided by the + * token_get_all() function and does not discard tokens (i.e. + * whitespace and comments are included). The token position + * attributes are against this token array. + * + * @return array Array of tokens in token_get_all() format + */ + public function getTokens() : array { + return $this->tokens; + } + + /** + * Handles __halt_compiler() by returning the text after it. + * + * @return string Remaining text + */ + public function handleHaltCompiler() : string { + // text after T_HALT_COMPILER, still including (); + $textAfter = substr($this->code, $this->filePos); + + // ensure that it is followed by (); + // this simplifies the situation, by not allowing any comments + // in between of the tokens. + if (!preg_match('~^\s*\(\s*\)\s*(?:;|\?>\r?\n?)~', $textAfter, $matches)) { + throw new Error('__HALT_COMPILER must be followed by "();"'); + } + + // prevent the lexer from returning any further tokens + $this->pos = count($this->tokens); + + // return with (); removed + return substr($textAfter, strlen($matches[0])); + } + + private function defineCompatibilityTokens() { + static $compatTokensDefined = false; + if ($compatTokensDefined) { + return; + } + + $compatTokens = [ + // PHP 7.4 + 'T_BAD_CHARACTER', + 'T_FN', + 'T_COALESCE_EQUAL', + // PHP 8.0 + 'T_NAME_QUALIFIED', + 'T_NAME_FULLY_QUALIFIED', + 'T_NAME_RELATIVE', + 'T_MATCH', + 'T_NULLSAFE_OBJECT_OPERATOR', + 'T_ATTRIBUTE', + // PHP 8.1 + 'T_ENUM', + 'T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG', + 'T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG', + 'T_READONLY', + ]; + + // PHP-Parser might be used together with another library that also emulates some or all + // of these tokens. Perform a sanity-check that all already defined tokens have been + // assigned a unique ID. + $usedTokenIds = []; + foreach ($compatTokens as $token) { + if (\defined($token)) { + $tokenId = \constant($token); + $clashingToken = $usedTokenIds[$tokenId] ?? null; + if ($clashingToken !== null) { + throw new \Error(sprintf( + 'Token %s has same ID as token %s, ' . + 'you may be using a library with broken token emulation', + $token, $clashingToken + )); + } + $usedTokenIds[$tokenId] = $token; + } + } + + // Now define any tokens that have not yet been emulated. Try to assign IDs from -1 + // downwards, but skip any IDs that may already be in use. + $newTokenId = -1; + foreach ($compatTokens as $token) { + if (!\defined($token)) { + while (isset($usedTokenIds[$newTokenId])) { + $newTokenId--; + } + \define($token, $newTokenId); + $newTokenId--; + } + } + + $compatTokensDefined = true; + } + + /** + * Creates the token map. + * + * The token map maps the PHP internal token identifiers + * to the identifiers used by the Parser. Additionally it + * maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'. + * + * @return array The token map + */ + protected function createTokenMap() : array { + $tokenMap = []; + + // 256 is the minimum possible token number, as everything below + // it is an ASCII value + for ($i = 256; $i < 1000; ++$i) { + if (\T_DOUBLE_COLON === $i) { + // T_DOUBLE_COLON is equivalent to T_PAAMAYIM_NEKUDOTAYIM + $tokenMap[$i] = Tokens::T_PAAMAYIM_NEKUDOTAYIM; + } elseif(\T_OPEN_TAG_WITH_ECHO === $i) { + // T_OPEN_TAG_WITH_ECHO with dropped T_OPEN_TAG results in T_ECHO + $tokenMap[$i] = Tokens::T_ECHO; + } elseif(\T_CLOSE_TAG === $i) { + // T_CLOSE_TAG is equivalent to ';' + $tokenMap[$i] = ord(';'); + } elseif ('UNKNOWN' !== $name = token_name($i)) { + if ('T_HASHBANG' === $name) { + // HHVM uses a special token for #! hashbang lines + $tokenMap[$i] = Tokens::T_INLINE_HTML; + } elseif (defined($name = Tokens::class . '::' . $name)) { + // Other tokens can be mapped directly + $tokenMap[$i] = constant($name); + } + } + } + + // HHVM uses a special token for numbers that overflow to double + if (defined('T_ONUMBER')) { + $tokenMap[\T_ONUMBER] = Tokens::T_DNUMBER; + } + // HHVM also has a separate token for the __COMPILER_HALT_OFFSET__ constant + if (defined('T_COMPILER_HALT_OFFSET')) { + $tokenMap[\T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; + } + + // Assign tokens for which we define compatibility constants, as token_name() does not know them. + $tokenMap[\T_FN] = Tokens::T_FN; + $tokenMap[\T_COALESCE_EQUAL] = Tokens::T_COALESCE_EQUAL; + $tokenMap[\T_NAME_QUALIFIED] = Tokens::T_NAME_QUALIFIED; + $tokenMap[\T_NAME_FULLY_QUALIFIED] = Tokens::T_NAME_FULLY_QUALIFIED; + $tokenMap[\T_NAME_RELATIVE] = Tokens::T_NAME_RELATIVE; + $tokenMap[\T_MATCH] = Tokens::T_MATCH; + $tokenMap[\T_NULLSAFE_OBJECT_OPERATOR] = Tokens::T_NULLSAFE_OBJECT_OPERATOR; + $tokenMap[\T_ATTRIBUTE] = Tokens::T_ATTRIBUTE; + $tokenMap[\T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG] = Tokens::T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG; + $tokenMap[\T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG] = Tokens::T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG; + $tokenMap[\T_ENUM] = Tokens::T_ENUM; + $tokenMap[\T_READONLY] = Tokens::T_READONLY; + + return $tokenMap; + } + + private function createIdentifierTokenMap(): array { + // Based on semi_reserved production. + return array_fill_keys([ + \T_STRING, + \T_STATIC, \T_ABSTRACT, \T_FINAL, \T_PRIVATE, \T_PROTECTED, \T_PUBLIC, \T_READONLY, + \T_INCLUDE, \T_INCLUDE_ONCE, \T_EVAL, \T_REQUIRE, \T_REQUIRE_ONCE, \T_LOGICAL_OR, \T_LOGICAL_XOR, \T_LOGICAL_AND, + \T_INSTANCEOF, \T_NEW, \T_CLONE, \T_EXIT, \T_IF, \T_ELSEIF, \T_ELSE, \T_ENDIF, \T_ECHO, \T_DO, \T_WHILE, + \T_ENDWHILE, \T_FOR, \T_ENDFOR, \T_FOREACH, \T_ENDFOREACH, \T_DECLARE, \T_ENDDECLARE, \T_AS, \T_TRY, \T_CATCH, + \T_FINALLY, \T_THROW, \T_USE, \T_INSTEADOF, \T_GLOBAL, \T_VAR, \T_UNSET, \T_ISSET, \T_EMPTY, \T_CONTINUE, \T_GOTO, + \T_FUNCTION, \T_CONST, \T_RETURN, \T_PRINT, \T_YIELD, \T_LIST, \T_SWITCH, \T_ENDSWITCH, \T_CASE, \T_DEFAULT, + \T_BREAK, \T_ARRAY, \T_CALLABLE, \T_EXTENDS, \T_IMPLEMENTS, \T_NAMESPACE, \T_TRAIT, \T_INTERFACE, \T_CLASS, + \T_CLASS_C, \T_TRAIT_C, \T_FUNC_C, \T_METHOD_C, \T_LINE, \T_FILE, \T_DIR, \T_NS_C, \T_HALT_COMPILER, \T_FN, + \T_MATCH, + ], true); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php new file mode 100644 index 00000000..b0929f3c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php @@ -0,0 +1,251 @@ +targetPhpVersion = $options['phpVersion'] ?? Emulative::PHP_8_2; + unset($options['phpVersion']); + + parent::__construct($options); + + $emulators = [ + new FlexibleDocStringEmulator(), + new FnTokenEmulator(), + new MatchTokenEmulator(), + new CoaleseEqualTokenEmulator(), + new NumericLiteralSeparatorEmulator(), + new NullsafeTokenEmulator(), + new AttributeEmulator(), + new EnumTokenEmulator(), + new ReadonlyTokenEmulator(), + new ExplicitOctalEmulator(), + new ReadonlyFunctionTokenEmulator(), + ]; + + // Collect emulators that are relevant for the PHP version we're running + // and the PHP version we're targeting for emulation. + foreach ($emulators as $emulator) { + $emulatorPhpVersion = $emulator->getPhpVersion(); + if ($this->isForwardEmulationNeeded($emulatorPhpVersion)) { + $this->emulators[] = $emulator; + } else if ($this->isReverseEmulationNeeded($emulatorPhpVersion)) { + $this->emulators[] = new ReverseEmulator($emulator); + } + } + } + + public function startLexing(string $code, ErrorHandler $errorHandler = null) { + $emulators = array_filter($this->emulators, function($emulator) use($code) { + return $emulator->isEmulationNeeded($code); + }); + + if (empty($emulators)) { + // Nothing to emulate, yay + parent::startLexing($code, $errorHandler); + return; + } + + $this->patches = []; + foreach ($emulators as $emulator) { + $code = $emulator->preprocessCode($code, $this->patches); + } + + $collector = new ErrorHandler\Collecting(); + parent::startLexing($code, $collector); + $this->sortPatches(); + $this->fixupTokens(); + + $errors = $collector->getErrors(); + if (!empty($errors)) { + $this->fixupErrors($errors); + foreach ($errors as $error) { + $errorHandler->handleError($error); + } + } + + foreach ($emulators as $emulator) { + $this->tokens = $emulator->emulate($code, $this->tokens); + } + } + + private function isForwardEmulationNeeded(string $emulatorPhpVersion): bool { + return version_compare(\PHP_VERSION, $emulatorPhpVersion, '<') + && version_compare($this->targetPhpVersion, $emulatorPhpVersion, '>='); + } + + private function isReverseEmulationNeeded(string $emulatorPhpVersion): bool { + return version_compare(\PHP_VERSION, $emulatorPhpVersion, '>=') + && version_compare($this->targetPhpVersion, $emulatorPhpVersion, '<'); + } + + private function sortPatches() + { + // Patches may be contributed by different emulators. + // Make sure they are sorted by increasing patch position. + usort($this->patches, function($p1, $p2) { + return $p1[0] <=> $p2[0]; + }); + } + + private function fixupTokens() + { + if (\count($this->patches) === 0) { + return; + } + + // Load first patch + $patchIdx = 0; + + list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; + + // We use a manual loop over the tokens, because we modify the array on the fly + $pos = 0; + for ($i = 0, $c = \count($this->tokens); $i < $c; $i++) { + $token = $this->tokens[$i]; + if (\is_string($token)) { + if ($patchPos === $pos) { + // Only support replacement for string tokens. + assert($patchType === 'replace'); + $this->tokens[$i] = $patchText; + + // Fetch the next patch + $patchIdx++; + if ($patchIdx >= \count($this->patches)) { + // No more patches, we're done + return; + } + list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; + } + + $pos += \strlen($token); + continue; + } + + $len = \strlen($token[1]); + $posDelta = 0; + while ($patchPos >= $pos && $patchPos < $pos + $len) { + $patchTextLen = \strlen($patchText); + if ($patchType === 'remove') { + if ($patchPos === $pos && $patchTextLen === $len) { + // Remove token entirely + array_splice($this->tokens, $i, 1, []); + $i--; + $c--; + } else { + // Remove from token string + $this->tokens[$i][1] = substr_replace( + $token[1], '', $patchPos - $pos + $posDelta, $patchTextLen + ); + $posDelta -= $patchTextLen; + } + } elseif ($patchType === 'add') { + // Insert into the token string + $this->tokens[$i][1] = substr_replace( + $token[1], $patchText, $patchPos - $pos + $posDelta, 0 + ); + $posDelta += $patchTextLen; + } else if ($patchType === 'replace') { + // Replace inside the token string + $this->tokens[$i][1] = substr_replace( + $token[1], $patchText, $patchPos - $pos + $posDelta, $patchTextLen + ); + } else { + assert(false); + } + + // Fetch the next patch + $patchIdx++; + if ($patchIdx >= \count($this->patches)) { + // No more patches, we're done + return; + } + + list($patchPos, $patchType, $patchText) = $this->patches[$patchIdx]; + + // Multiple patches may apply to the same token. Reload the current one to check + // If the new patch applies + $token = $this->tokens[$i]; + } + + $pos += $len; + } + + // A patch did not apply + assert(false); + } + + /** + * Fixup line and position information in errors. + * + * @param Error[] $errors + */ + private function fixupErrors(array $errors) { + foreach ($errors as $error) { + $attrs = $error->getAttributes(); + + $posDelta = 0; + $lineDelta = 0; + foreach ($this->patches as $patch) { + list($patchPos, $patchType, $patchText) = $patch; + if ($patchPos >= $attrs['startFilePos']) { + // No longer relevant + break; + } + + if ($patchType === 'add') { + $posDelta += strlen($patchText); + $lineDelta += substr_count($patchText, "\n"); + } else if ($patchType === 'remove') { + $posDelta -= strlen($patchText); + $lineDelta -= substr_count($patchText, "\n"); + } + } + + $attrs['startFilePos'] += $posDelta; + $attrs['endFilePos'] += $posDelta; + $attrs['startLine'] += $lineDelta; + $attrs['endLine'] += $lineDelta; + $error->setAttributes($attrs); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php new file mode 100644 index 00000000..6776a519 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php @@ -0,0 +1,56 @@ +resolveIntegerOrFloatToken($tokens[$i + 1][1]); + array_splice($tokens, $i, 2, [ + [$tokenKind, '0' . $tokens[$i + 1][1], $tokens[$i][2]], + ]); + $c--; + } + } + return $tokens; + } + + private function resolveIntegerOrFloatToken(string $str): int + { + $str = substr($str, 1); + $str = str_replace('_', '', $str); + $num = octdec($str); + return is_float($num) ? \T_DNUMBER : \T_LNUMBER; + } + + public function reverseEmulate(string $code, array $tokens): array { + // Explicit octals were not legal code previously, don't bother. + return $tokens; + } +} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php new file mode 100644 index 00000000..c15d6271 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php @@ -0,0 +1,76 @@ +\h*)\2(?![a-zA-Z0-9_\x80-\xff])(?(?:;?[\r\n])?)/x +REGEX; + + public function getPhpVersion(): string + { + return Emulative::PHP_7_3; + } + + public function isEmulationNeeded(string $code) : bool + { + return strpos($code, '<<<') !== false; + } + + public function emulate(string $code, array $tokens): array + { + // Handled by preprocessing + fixup. + return $tokens; + } + + public function reverseEmulate(string $code, array $tokens): array + { + // Not supported. + return $tokens; + } + + public function preprocessCode(string $code, array &$patches): string { + if (!preg_match_all(self::FLEXIBLE_DOC_STRING_REGEX, $code, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE)) { + // No heredoc/nowdoc found + return $code; + } + + // Keep track of how much we need to adjust string offsets due to the modifications we + // already made + $posDelta = 0; + foreach ($matches as $match) { + $indentation = $match['indentation'][0]; + $indentationStart = $match['indentation'][1]; + + $separator = $match['separator'][0]; + $separatorStart = $match['separator'][1]; + + if ($indentation === '' && $separator !== '') { + // Ordinary heredoc/nowdoc + continue; + } + + if ($indentation !== '') { + // Remove indentation + $indentationLen = strlen($indentation); + $code = substr_replace($code, '', $indentationStart + $posDelta, $indentationLen); + $patches[] = [$indentationStart + $posDelta, 'add', $indentation]; + $posDelta -= $indentationLen; + } + + if ($separator === '') { + // Insert newline as separator + $code = substr_replace($code, "\n", $separatorStart + $posDelta, 0); + $patches[] = [$separatorStart + $posDelta, 'remove', "\n"]; + $posDelta += 1; + } + } + + return $code; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php new file mode 100644 index 00000000..eb7e4963 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php @@ -0,0 +1,23 @@ +getKeywordString()) !== false; + } + + protected function isKeywordContext(array $tokens, int $pos): bool + { + $previousNonSpaceToken = $this->getPreviousNonSpaceToken($tokens, $pos); + return $previousNonSpaceToken === null || $previousNonSpaceToken[0] !== \T_OBJECT_OPERATOR; + } + + public function emulate(string $code, array $tokens): array + { + $keywordString = $this->getKeywordString(); + foreach ($tokens as $i => $token) { + if ($token[0] === T_STRING && strtolower($token[1]) === $keywordString + && $this->isKeywordContext($tokens, $i)) { + $tokens[$i][0] = $this->getKeywordToken(); + } + } + + return $tokens; + } + + /** + * @param mixed[] $tokens + * @return array|string|null + */ + private function getPreviousNonSpaceToken(array $tokens, int $start) + { + for ($i = $start - 1; $i >= 0; --$i) { + if ($tokens[$i][0] === T_WHITESPACE) { + continue; + } + + return $tokens[$i]; + } + + return null; + } + + public function reverseEmulate(string $code, array $tokens): array + { + $keywordToken = $this->getKeywordToken(); + foreach ($tokens as $i => $token) { + if ($token[0] === $keywordToken) { + $tokens[$i][0] = \T_STRING; + } + } + + return $tokens; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php new file mode 100644 index 00000000..902a46df --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php @@ -0,0 +1,23 @@ +') !== false; + } + + public function emulate(string $code, array $tokens): array + { + // We need to manually iterate and manage a count because we'll change + // the tokens array on the way + $line = 1; + for ($i = 0, $c = count($tokens); $i < $c; ++$i) { + if ($tokens[$i] === '?' && isset($tokens[$i + 1]) && $tokens[$i + 1][0] === \T_OBJECT_OPERATOR) { + array_splice($tokens, $i, 2, [ + [\T_NULLSAFE_OBJECT_OPERATOR, '?->', $line] + ]); + $c--; + continue; + } + + // Handle ?-> inside encapsed string. + if ($tokens[$i][0] === \T_ENCAPSED_AND_WHITESPACE && isset($tokens[$i - 1]) + && $tokens[$i - 1][0] === \T_VARIABLE + && preg_match('/^\?->([a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)/', $tokens[$i][1], $matches) + ) { + $replacement = [ + [\T_NULLSAFE_OBJECT_OPERATOR, '?->', $line], + [\T_STRING, $matches[1], $line], + ]; + if (\strlen($matches[0]) !== \strlen($tokens[$i][1])) { + $replacement[] = [ + \T_ENCAPSED_AND_WHITESPACE, + \substr($tokens[$i][1], \strlen($matches[0])), + $line + ]; + } + array_splice($tokens, $i, 1, $replacement); + $c += \count($replacement) - 1; + continue; + } + + if (\is_array($tokens[$i])) { + $line += substr_count($tokens[$i][1], "\n"); + } + } + + return $tokens; + } + + public function reverseEmulate(string $code, array $tokens): array + { + // ?-> was not valid code previously, don't bother. + return $tokens; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php new file mode 100644 index 00000000..cdf793e4 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php @@ -0,0 +1,105 @@ +resolveIntegerOrFloatToken($match); + $newTokens = [[$tokenKind, $match, $token[2]]]; + + $numTokens = 1; + $len = $tokenLen; + while ($matchLen > $len) { + $nextToken = $tokens[$i + $numTokens]; + $nextTokenText = \is_array($nextToken) ? $nextToken[1] : $nextToken; + $nextTokenLen = \strlen($nextTokenText); + + $numTokens++; + if ($matchLen < $len + $nextTokenLen) { + // Split trailing characters into a partial token. + assert(is_array($nextToken), "Partial token should be an array token"); + $partialText = substr($nextTokenText, $matchLen - $len); + $newTokens[] = [$nextToken[0], $partialText, $nextToken[2]]; + break; + } + + $len += $nextTokenLen; + } + + array_splice($tokens, $i, $numTokens, $newTokens); + $c -= $numTokens - \count($newTokens); + $codeOffset += $matchLen; + } + + return $tokens; + } + + private function resolveIntegerOrFloatToken(string $str): int + { + $str = str_replace('_', '', $str); + + if (stripos($str, '0b') === 0) { + $num = bindec($str); + } elseif (stripos($str, '0x') === 0) { + $num = hexdec($str); + } elseif (stripos($str, '0') === 0 && ctype_digit($str)) { + $num = octdec($str); + } else { + $num = +$str; + } + + return is_float($num) ? T_DNUMBER : T_LNUMBER; + } + + public function reverseEmulate(string $code, array $tokens): array + { + // Numeric separators were not legal code previously, don't bother. + return $tokens; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php new file mode 100644 index 00000000..e671458c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php @@ -0,0 +1,31 @@ +emulator = $emulator; + } + + public function getPhpVersion(): string { + return $this->emulator->getPhpVersion(); + } + + public function isEmulationNeeded(string $code): bool { + return $this->emulator->isEmulationNeeded($code); + } + + public function emulate(string $code, array $tokens): array { + return $this->emulator->reverseEmulate($code, $tokens); + } + + public function reverseEmulate(string $code, array $tokens): array { + return $this->emulator->emulate($code, $tokens); + } + + public function preprocessCode(string $code, array &$patches): string { + return $code; + } +} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php new file mode 100644 index 00000000..a020bc0f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php @@ -0,0 +1,25 @@ + [aliasName => originalName]] */ + protected $aliases = []; + + /** @var Name[][] Same as $aliases but preserving original case */ + protected $origAliases = []; + + /** @var ErrorHandler Error handler */ + protected $errorHandler; + + /** + * Create a name context. + * + * @param ErrorHandler $errorHandler Error handling used to report errors + */ + public function __construct(ErrorHandler $errorHandler) { + $this->errorHandler = $errorHandler; + } + + /** + * Start a new namespace. + * + * This also resets the alias table. + * + * @param Name|null $namespace Null is the global namespace + */ + public function startNamespace(Name $namespace = null) { + $this->namespace = $namespace; + $this->origAliases = $this->aliases = [ + Stmt\Use_::TYPE_NORMAL => [], + Stmt\Use_::TYPE_FUNCTION => [], + Stmt\Use_::TYPE_CONSTANT => [], + ]; + } + + /** + * Add an alias / import. + * + * @param Name $name Original name + * @param string $aliasName Aliased name + * @param int $type One of Stmt\Use_::TYPE_* + * @param array $errorAttrs Attributes to use to report an error + */ + public function addAlias(Name $name, string $aliasName, int $type, array $errorAttrs = []) { + // Constant names are case sensitive, everything else case insensitive + if ($type === Stmt\Use_::TYPE_CONSTANT) { + $aliasLookupName = $aliasName; + } else { + $aliasLookupName = strtolower($aliasName); + } + + if (isset($this->aliases[$type][$aliasLookupName])) { + $typeStringMap = [ + Stmt\Use_::TYPE_NORMAL => '', + Stmt\Use_::TYPE_FUNCTION => 'function ', + Stmt\Use_::TYPE_CONSTANT => 'const ', + ]; + + $this->errorHandler->handleError(new Error( + sprintf( + 'Cannot use %s%s as %s because the name is already in use', + $typeStringMap[$type], $name, $aliasName + ), + $errorAttrs + )); + return; + } + + $this->aliases[$type][$aliasLookupName] = $name; + $this->origAliases[$type][$aliasName] = $name; + } + + /** + * Get current namespace. + * + * @return null|Name Namespace (or null if global namespace) + */ + public function getNamespace() { + return $this->namespace; + } + + /** + * Get resolved name. + * + * @param Name $name Name to resolve + * @param int $type One of Stmt\Use_::TYPE_{FUNCTION|CONSTANT} + * + * @return null|Name Resolved name, or null if static resolution is not possible + */ + public function getResolvedName(Name $name, int $type) { + // don't resolve special class names + if ($type === Stmt\Use_::TYPE_NORMAL && $name->isSpecialClassName()) { + if (!$name->isUnqualified()) { + $this->errorHandler->handleError(new Error( + sprintf("'\\%s' is an invalid class name", $name->toString()), + $name->getAttributes() + )); + } + return $name; + } + + // fully qualified names are already resolved + if ($name->isFullyQualified()) { + return $name; + } + + // Try to resolve aliases + if (null !== $resolvedName = $this->resolveAlias($name, $type)) { + return $resolvedName; + } + + if ($type !== Stmt\Use_::TYPE_NORMAL && $name->isUnqualified()) { + if (null === $this->namespace) { + // outside of a namespace unaliased unqualified is same as fully qualified + return new FullyQualified($name, $name->getAttributes()); + } + + // Cannot resolve statically + return null; + } + + // if no alias exists prepend current namespace + return FullyQualified::concat($this->namespace, $name, $name->getAttributes()); + } + + /** + * Get resolved class name. + * + * @param Name $name Class ame to resolve + * + * @return Name Resolved name + */ + public function getResolvedClassName(Name $name) : Name { + return $this->getResolvedName($name, Stmt\Use_::TYPE_NORMAL); + } + + /** + * Get possible ways of writing a fully qualified name (e.g., by making use of aliases). + * + * @param string $name Fully-qualified name (without leading namespace separator) + * @param int $type One of Stmt\Use_::TYPE_* + * + * @return Name[] Possible representations of the name + */ + public function getPossibleNames(string $name, int $type) : array { + $lcName = strtolower($name); + + if ($type === Stmt\Use_::TYPE_NORMAL) { + // self, parent and static must always be unqualified + if ($lcName === "self" || $lcName === "parent" || $lcName === "static") { + return [new Name($name)]; + } + } + + // Collect possible ways to write this name, starting with the fully-qualified name + $possibleNames = [new FullyQualified($name)]; + + if (null !== $nsRelativeName = $this->getNamespaceRelativeName($name, $lcName, $type)) { + // Make sure there is no alias that makes the normally namespace-relative name + // into something else + if (null === $this->resolveAlias($nsRelativeName, $type)) { + $possibleNames[] = $nsRelativeName; + } + } + + // Check for relevant namespace use statements + foreach ($this->origAliases[Stmt\Use_::TYPE_NORMAL] as $alias => $orig) { + $lcOrig = $orig->toLowerString(); + if (0 === strpos($lcName, $lcOrig . '\\')) { + $possibleNames[] = new Name($alias . substr($name, strlen($lcOrig))); + } + } + + // Check for relevant type-specific use statements + foreach ($this->origAliases[$type] as $alias => $orig) { + if ($type === Stmt\Use_::TYPE_CONSTANT) { + // Constants are are complicated-sensitive + $normalizedOrig = $this->normalizeConstName($orig->toString()); + if ($normalizedOrig === $this->normalizeConstName($name)) { + $possibleNames[] = new Name($alias); + } + } else { + // Everything else is case-insensitive + if ($orig->toLowerString() === $lcName) { + $possibleNames[] = new Name($alias); + } + } + } + + return $possibleNames; + } + + /** + * Get shortest representation of this fully-qualified name. + * + * @param string $name Fully-qualified name (without leading namespace separator) + * @param int $type One of Stmt\Use_::TYPE_* + * + * @return Name Shortest representation + */ + public function getShortName(string $name, int $type) : Name { + $possibleNames = $this->getPossibleNames($name, $type); + + // Find shortest name + $shortestName = null; + $shortestLength = \INF; + foreach ($possibleNames as $possibleName) { + $length = strlen($possibleName->toCodeString()); + if ($length < $shortestLength) { + $shortestName = $possibleName; + $shortestLength = $length; + } + } + + return $shortestName; + } + + private function resolveAlias(Name $name, $type) { + $firstPart = $name->getFirst(); + + if ($name->isQualified()) { + // resolve aliases for qualified names, always against class alias table + $checkName = strtolower($firstPart); + if (isset($this->aliases[Stmt\Use_::TYPE_NORMAL][$checkName])) { + $alias = $this->aliases[Stmt\Use_::TYPE_NORMAL][$checkName]; + return FullyQualified::concat($alias, $name->slice(1), $name->getAttributes()); + } + } elseif ($name->isUnqualified()) { + // constant aliases are case-sensitive, function aliases case-insensitive + $checkName = $type === Stmt\Use_::TYPE_CONSTANT ? $firstPart : strtolower($firstPart); + if (isset($this->aliases[$type][$checkName])) { + // resolve unqualified aliases + return new FullyQualified($this->aliases[$type][$checkName], $name->getAttributes()); + } + } + + // No applicable aliases + return null; + } + + private function getNamespaceRelativeName(string $name, string $lcName, int $type) { + if (null === $this->namespace) { + return new Name($name); + } + + if ($type === Stmt\Use_::TYPE_CONSTANT) { + // The constants true/false/null always resolve to the global symbols, even inside a + // namespace, so they may be used without qualification + if ($lcName === "true" || $lcName === "false" || $lcName === "null") { + return new Name($name); + } + } + + $namespacePrefix = strtolower($this->namespace . '\\'); + if (0 === strpos($lcName, $namespacePrefix)) { + return new Name(substr($name, strlen($namespacePrefix))); + } + + return null; + } + + private function normalizeConstName(string $name) { + $nsSep = strrpos($name, '\\'); + if (false === $nsSep) { + return $name; + } + + // Constants have case-insensitive namespace and case-sensitive short-name + $ns = substr($name, 0, $nsSep); + $shortName = substr($name, $nsSep + 1); + return strtolower($ns) . '\\' . $shortName; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node.php b/vendor/nikic/php-parser/lib/PhpParser/Node.php new file mode 100644 index 00000000..befb2565 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node.php @@ -0,0 +1,151 @@ +attributes = $attributes; + $this->name = $name; + $this->value = $value; + $this->byRef = $byRef; + $this->unpack = $unpack; + } + + public function getSubNodeNames() : array { + return ['name', 'value', 'byRef', 'unpack']; + } + + public function getType() : string { + return 'Arg'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php new file mode 100644 index 00000000..c96f66e5 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->name = $name; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['name', 'args']; + } + + public function getType() : string { + return 'Attribute'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php b/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php new file mode 100644 index 00000000..613bfc41 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php @@ -0,0 +1,29 @@ +attributes = $attributes; + $this->attrs = $attrs; + } + + public function getSubNodeNames() : array { + return ['attrs']; + } + + public function getType() : string { + return 'AttributeGroup'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php b/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php new file mode 100644 index 00000000..9505532a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php @@ -0,0 +1,14 @@ +attributes = $attributes; + $this->name = \is_string($name) ? new Identifier($name) : $name; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['name', 'value']; + } + + public function getType() : string { + return 'Const'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php new file mode 100644 index 00000000..6cf4df22 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php @@ -0,0 +1,9 @@ +attributes = $attributes; + $this->var = $var; + $this->dim = $dim; + } + + public function getSubNodeNames() : array { + return ['var', 'dim']; + } + + public function getType() : string { + return 'Expr_ArrayDimFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php new file mode 100644 index 00000000..1b078f82 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php @@ -0,0 +1,41 @@ +attributes = $attributes; + $this->key = $key; + $this->value = $value; + $this->byRef = $byRef; + $this->unpack = $unpack; + } + + public function getSubNodeNames() : array { + return ['key', 'value', 'byRef', 'unpack']; + } + + public function getType() : string { + return 'Expr_ArrayItem'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php new file mode 100644 index 00000000..e6eaa283 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->items = $items; + } + + public function getSubNodeNames() : array { + return ['items']; + } + + public function getType() : string { + return 'Expr_Array'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php new file mode 100644 index 00000000..c273fb7e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php @@ -0,0 +1,79 @@ + false : Whether the closure is static + * 'byRef' => false : Whether to return by reference + * 'params' => array() : Parameters + * 'returnType' => null : Return type + * 'expr' => Expr : Expression body + * 'attrGroups' => array() : PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct(array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->static = $subNodes['static'] ?? false; + $this->byRef = $subNodes['byRef'] ?? false; + $this->params = $subNodes['params'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->expr = $subNodes['expr']; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'static', 'byRef', 'params', 'returnType', 'expr']; + } + + public function returnsByRef() : bool { + return $this->byRef; + } + + public function getParams() : array { + return $this->params; + } + + public function getReturnType() { + return $this->returnType; + } + + public function getAttrGroups() : array { + return $this->attrGroups; + } + + /** + * @return Node\Stmt\Return_[] + */ + public function getStmts() : array { + return [new Node\Stmt\Return_($this->expr)]; + } + + public function getType() : string { + return 'Expr_ArrowFunction'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php new file mode 100644 index 00000000..cf9e6e82 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->var = $var; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['var', 'expr']; + } + + public function getType() : string { + return 'Expr_Assign'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php new file mode 100644 index 00000000..bce8604f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->var = $var; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['var', 'expr']; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php new file mode 100644 index 00000000..420284cd --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php @@ -0,0 +1,12 @@ +attributes = $attributes; + $this->var = $var; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['var', 'expr']; + } + + public function getType() : string { + return 'Expr_AssignRef'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php new file mode 100644 index 00000000..d9c582b0 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php @@ -0,0 +1,40 @@ +attributes = $attributes; + $this->left = $left; + $this->right = $right; + } + + public function getSubNodeNames() : array { + return ['left', 'right']; + } + + /** + * Get the operator sigil for this binary operation. + * + * In the case there are multiple possible sigils for an operator, this method does not + * necessarily return the one used in the parsed code. + * + * @return string + */ + abstract public function getOperatorSigil() : string; +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php new file mode 100644 index 00000000..d907393b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php @@ -0,0 +1,16 @@ +'; + } + + public function getType() : string { + return 'Expr_BinaryOp_Greater'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php new file mode 100644 index 00000000..d677502c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php @@ -0,0 +1,16 @@ +='; + } + + public function getType() : string { + return 'Expr_BinaryOp_GreaterOrEqual'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php new file mode 100644 index 00000000..3d96285c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php @@ -0,0 +1,16 @@ +>'; + } + + public function getType() : string { + return 'Expr_BinaryOp_ShiftRight'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php new file mode 100644 index 00000000..3cb8e7e0 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php @@ -0,0 +1,16 @@ +'; + } + + public function getType() : string { + return 'Expr_BinaryOp_Spaceship'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php new file mode 100644 index 00000000..ed44984b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_BitwiseNot'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php new file mode 100644 index 00000000..bf27e9f6 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_BooleanNot'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php new file mode 100644 index 00000000..78e1cf34 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php @@ -0,0 +1,39 @@ + + */ + abstract public function getRawArgs(): array; + + /** + * Returns whether this call expression is actually a first class callable. + */ + public function isFirstClassCallable(): bool { + foreach ($this->getRawArgs() as $arg) { + if ($arg instanceof VariadicPlaceholder) { + return true; + } + } + return false; + } + + /** + * Assert that this is not a first-class callable and return only ordinary Args. + * + * @return Arg[] + */ + public function getArgs(): array { + assert(!$this->isFirstClassCallable()); + return $this->getRawArgs(); + } +} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php new file mode 100644 index 00000000..36769d4f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php @@ -0,0 +1,26 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php new file mode 100644 index 00000000..57cc473b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php @@ -0,0 +1,12 @@ +attributes = $attributes; + $this->class = $class; + $this->name = \is_string($name) ? new Identifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['class', 'name']; + } + + public function getType() : string { + return 'Expr_ClassConstFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php new file mode 100644 index 00000000..db216b8f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Clone'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php new file mode 100644 index 00000000..56ddea6a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php @@ -0,0 +1,79 @@ + false : Whether the closure is static + * 'byRef' => false : Whether to return by reference + * 'params' => array(): Parameters + * 'uses' => array(): use()s + * 'returnType' => null : Return type + * 'stmts' => array(): Statements + * 'attrGroups' => array(): PHP attributes groups + * @param array $attributes Additional attributes + */ + public function __construct(array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->static = $subNodes['static'] ?? false; + $this->byRef = $subNodes['byRef'] ?? false; + $this->params = $subNodes['params'] ?? []; + $this->uses = $subNodes['uses'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'static', 'byRef', 'params', 'uses', 'returnType', 'stmts']; + } + + public function returnsByRef() : bool { + return $this->byRef; + } + + public function getParams() : array { + return $this->params; + } + + public function getReturnType() { + return $this->returnType; + } + + /** @return Node\Stmt[] */ + public function getStmts() : array { + return $this->stmts; + } + + public function getAttrGroups() : array { + return $this->attrGroups; + } + + public function getType() : string { + return 'Expr_Closure'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php new file mode 100644 index 00000000..2b8a0966 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->var = $var; + $this->byRef = $byRef; + } + + public function getSubNodeNames() : array { + return ['var', 'byRef']; + } + + public function getType() : string { + return 'Expr_ClosureUse'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php new file mode 100644 index 00000000..14ebd16b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->name = $name; + } + + public function getSubNodeNames() : array { + return ['name']; + } + + public function getType() : string { + return 'Expr_ConstFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php new file mode 100644 index 00000000..4042ec93 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Empty'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php new file mode 100644 index 00000000..1637f3ae --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php @@ -0,0 +1,31 @@ +attributes = $attributes; + } + + public function getSubNodeNames() : array { + return []; + } + + public function getType() : string { + return 'Expr_Error'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php new file mode 100644 index 00000000..c44ff6f9 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_ErrorSuppress'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php new file mode 100644 index 00000000..85685474 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Eval'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php new file mode 100644 index 00000000..b88a8f7e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Exit'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php new file mode 100644 index 00000000..2de4d0dd --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php @@ -0,0 +1,39 @@ + Arguments */ + public $args; + + /** + * Constructs a function call node. + * + * @param Node\Name|Expr $name Function name + * @param array $args Arguments + * @param array $attributes Additional attributes + */ + public function __construct($name, array $args = [], array $attributes = []) { + $this->attributes = $attributes; + $this->name = $name; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['name', 'args']; + } + + public function getType() : string { + return 'Expr_FuncCall'; + } + + public function getRawArgs(): array { + return $this->args; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php new file mode 100644 index 00000000..07ce5968 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php @@ -0,0 +1,39 @@ +attributes = $attributes; + $this->expr = $expr; + $this->type = $type; + } + + public function getSubNodeNames() : array { + return ['expr', 'type']; + } + + public function getType() : string { + return 'Expr_Include'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php new file mode 100644 index 00000000..9000d47b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php @@ -0,0 +1,35 @@ +attributes = $attributes; + $this->expr = $expr; + $this->class = $class; + } + + public function getSubNodeNames() : array { + return ['expr', 'class']; + } + + public function getType() : string { + return 'Expr_Instanceof'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php new file mode 100644 index 00000000..76b73875 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->vars = $vars; + } + + public function getSubNodeNames() : array { + return ['vars']; + } + + public function getType() : string { + return 'Expr_Isset'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php new file mode 100644 index 00000000..c27a27b9 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->items = $items; + } + + public function getSubNodeNames() : array { + return ['items']; + } + + public function getType() : string { + return 'Expr_List'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php new file mode 100644 index 00000000..2455a302 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->cond = $cond; + $this->arms = $arms; + } + + public function getSubNodeNames() : array { + return ['cond', 'arms']; + } + + public function getType() : string { + return 'Expr_Match'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php new file mode 100644 index 00000000..49ca4835 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php @@ -0,0 +1,45 @@ + Arguments */ + public $args; + + /** + * Constructs a function call node. + * + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes + */ + public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { + $this->attributes = $attributes; + $this->var = $var; + $this->name = \is_string($name) ? new Identifier($name) : $name; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['var', 'name', 'args']; + } + + public function getType() : string { + return 'Expr_MethodCall'; + } + + public function getRawArgs(): array { + return $this->args; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php new file mode 100644 index 00000000..e2bb6492 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php @@ -0,0 +1,41 @@ + Arguments */ + public $args; + + /** + * Constructs a function call node. + * + * @param Node\Name|Expr|Node\Stmt\Class_ $class Class name (or class node for anonymous classes) + * @param array $args Arguments + * @param array $attributes Additional attributes + */ + public function __construct($class, array $args = [], array $attributes = []) { + $this->attributes = $attributes; + $this->class = $class; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['class', 'args']; + } + + public function getType() : string { + return 'Expr_New'; + } + + public function getRawArgs(): array { + return $this->args; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php new file mode 100644 index 00000000..07a571fd --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php @@ -0,0 +1,45 @@ + Arguments */ + public $args; + + /** + * Constructs a nullsafe method call node. + * + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes + */ + public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { + $this->attributes = $attributes; + $this->var = $var; + $this->name = \is_string($name) ? new Identifier($name) : $name; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['var', 'name', 'args']; + } + + public function getType() : string { + return 'Expr_NullsafeMethodCall'; + } + + public function getRawArgs(): array { + return $this->args; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php new file mode 100644 index 00000000..9317eb3b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php @@ -0,0 +1,35 @@ +attributes = $attributes; + $this->var = $var; + $this->name = \is_string($name) ? new Identifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['var', 'name']; + } + + public function getType() : string { + return 'Expr_NullsafePropertyFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php new file mode 100644 index 00000000..94d6c296 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->var = $var; + } + + public function getSubNodeNames() : array { + return ['var']; + } + + public function getType() : string { + return 'Expr_PostDec'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php new file mode 100644 index 00000000..005c443a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->var = $var; + } + + public function getSubNodeNames() : array { + return ['var']; + } + + public function getType() : string { + return 'Expr_PostInc'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php new file mode 100644 index 00000000..a5ca685a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->var = $var; + } + + public function getSubNodeNames() : array { + return ['var']; + } + + public function getType() : string { + return 'Expr_PreDec'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php new file mode 100644 index 00000000..0986c447 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->var = $var; + } + + public function getSubNodeNames() : array { + return ['var']; + } + + public function getType() : string { + return 'Expr_PreInc'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php new file mode 100644 index 00000000..2d43c2ac --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Print'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php new file mode 100644 index 00000000..4281f31c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php @@ -0,0 +1,35 @@ +attributes = $attributes; + $this->var = $var; + $this->name = \is_string($name) ? new Identifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['var', 'name']; + } + + public function getType() : string { + return 'Expr_PropertyFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php new file mode 100644 index 00000000..537a7cc8 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->parts = $parts; + } + + public function getSubNodeNames() : array { + return ['parts']; + } + + public function getType() : string { + return 'Expr_ShellExec'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php new file mode 100644 index 00000000..d0d099c4 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php @@ -0,0 +1,46 @@ + Arguments */ + public $args; + + /** + * Constructs a static method call node. + * + * @param Node\Name|Expr $class Class name + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes + */ + public function __construct($class, $name, array $args = [], array $attributes = []) { + $this->attributes = $attributes; + $this->class = $class; + $this->name = \is_string($name) ? new Identifier($name) : $name; + $this->args = $args; + } + + public function getSubNodeNames() : array { + return ['class', 'name', 'args']; + } + + public function getType() : string { + return 'Expr_StaticCall'; + } + + public function getRawArgs(): array { + return $this->args; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php new file mode 100644 index 00000000..1ee1a25e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php @@ -0,0 +1,36 @@ +attributes = $attributes; + $this->class = $class; + $this->name = \is_string($name) ? new VarLikeIdentifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['class', 'name']; + } + + public function getType() : string { + return 'Expr_StaticPropertyFetch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php new file mode 100644 index 00000000..9316f47d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php @@ -0,0 +1,38 @@ +attributes = $attributes; + $this->cond = $cond; + $this->if = $if; + $this->else = $else; + } + + public function getSubNodeNames() : array { + return ['cond', 'if', 'else']; + } + + public function getType() : string { + return 'Expr_Ternary'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php new file mode 100644 index 00000000..5c97f0e2 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_Throw'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php new file mode 100644 index 00000000..ce8808bc --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_UnaryMinus'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php new file mode 100644 index 00000000..d23047e5 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_UnaryPlus'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php new file mode 100644 index 00000000..b47d38e9 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->name = $name; + } + + public function getSubNodeNames() : array { + return ['name']; + } + + public function getType() : string { + return 'Expr_Variable'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php new file mode 100644 index 00000000..a3efce61 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Expr_YieldFrom'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php new file mode 100644 index 00000000..aef8fc33 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->key = $key; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['key', 'value']; + } + + public function getType() : string { + return 'Expr_Yield'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php new file mode 100644 index 00000000..5a825e73 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php @@ -0,0 +1,43 @@ + true, + 'parent' => true, + 'static' => true, + ]; + + /** + * Constructs an identifier node. + * + * @param string $name Identifier as string + * @param array $attributes Additional attributes + */ + public function __construct(string $name, array $attributes = []) { + $this->attributes = $attributes; + $this->name = $name; + } + + public function getSubNodeNames() : array { + return ['name']; + } + + /** + * Get identifier as string. + * + * @return string Identifier as string. + */ + public function toString() : string { + return $this->name; + } + + /** + * Get lowercased identifier as string. + * + * @return string Lowercased identifier as string + */ + public function toLowerString() : string { + return strtolower($this->name); + } + + /** + * Checks whether the identifier is a special class name (self, parent or static). + * + * @return bool Whether identifier is a special class name + */ + public function isSpecialClassName() : bool { + return isset(self::$specialClassNames[strtolower($this->name)]); + } + + /** + * Get identifier as string. + * + * @return string Identifier as string + */ + public function __toString() : string { + return $this->name; + } + + public function getType() : string { + return 'Identifier'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php b/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php new file mode 100644 index 00000000..9208e139 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->types = $types; + } + + public function getSubNodeNames() : array { + return ['types']; + } + + public function getType() : string { + return 'IntersectionType'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php b/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php new file mode 100644 index 00000000..2ae1c86b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php @@ -0,0 +1,31 @@ +conds = $conds; + $this->body = $body; + $this->attributes = $attributes; + } + + public function getSubNodeNames() : array { + return ['conds', 'body']; + } + + public function getType() : string { + return 'MatchArm'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php new file mode 100644 index 00000000..17bd1c0f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -0,0 +1,242 @@ + true, + 'parent' => true, + 'static' => true, + ]; + + /** + * Constructs a name node. + * + * @param string|string[]|self $name Name as string, part array or Name instance (copy ctor) + * @param array $attributes Additional attributes + */ + public function __construct($name, array $attributes = []) { + $this->attributes = $attributes; + $this->parts = self::prepareName($name); + } + + public function getSubNodeNames() : array { + return ['parts']; + } + + /** + * Gets the first part of the name, i.e. everything before the first namespace separator. + * + * @return string First part of the name + */ + public function getFirst() : string { + return $this->parts[0]; + } + + /** + * Gets the last part of the name, i.e. everything after the last namespace separator. + * + * @return string Last part of the name + */ + public function getLast() : string { + return $this->parts[count($this->parts) - 1]; + } + + /** + * Checks whether the name is unqualified. (E.g. Name) + * + * @return bool Whether the name is unqualified + */ + public function isUnqualified() : bool { + return 1 === count($this->parts); + } + + /** + * Checks whether the name is qualified. (E.g. Name\Name) + * + * @return bool Whether the name is qualified + */ + public function isQualified() : bool { + return 1 < count($this->parts); + } + + /** + * Checks whether the name is fully qualified. (E.g. \Name) + * + * @return bool Whether the name is fully qualified + */ + public function isFullyQualified() : bool { + return false; + } + + /** + * Checks whether the name is explicitly relative to the current namespace. (E.g. namespace\Name) + * + * @return bool Whether the name is relative + */ + public function isRelative() : bool { + return false; + } + + /** + * Returns a string representation of the name itself, without taking the name type into + * account (e.g., not including a leading backslash for fully qualified names). + * + * @return string String representation + */ + public function toString() : string { + return implode('\\', $this->parts); + } + + /** + * Returns a string representation of the name as it would occur in code (e.g., including + * leading backslash for fully qualified names. + * + * @return string String representation + */ + public function toCodeString() : string { + return $this->toString(); + } + + /** + * Returns lowercased string representation of the name, without taking the name type into + * account (e.g., no leading backslash for fully qualified names). + * + * @return string Lowercased string representation + */ + public function toLowerString() : string { + return strtolower(implode('\\', $this->parts)); + } + + /** + * Checks whether the identifier is a special class name (self, parent or static). + * + * @return bool Whether identifier is a special class name + */ + public function isSpecialClassName() : bool { + return count($this->parts) === 1 + && isset(self::$specialClassNames[strtolower($this->parts[0])]); + } + + /** + * Returns a string representation of the name by imploding the namespace parts with the + * namespace separator. + * + * @return string String representation + */ + public function __toString() : string { + return implode('\\', $this->parts); + } + + /** + * Gets a slice of a name (similar to array_slice). + * + * This method returns a new instance of the same type as the original and with the same + * attributes. + * + * If the slice is empty, null is returned. The null value will be correctly handled in + * concatenations using concat(). + * + * Offset and length have the same meaning as in array_slice(). + * + * @param int $offset Offset to start the slice at (may be negative) + * @param int|null $length Length of the slice (may be negative) + * + * @return static|null Sliced name + */ + public function slice(int $offset, int $length = null) { + $numParts = count($this->parts); + + $realOffset = $offset < 0 ? $offset + $numParts : $offset; + if ($realOffset < 0 || $realOffset > $numParts) { + throw new \OutOfBoundsException(sprintf('Offset %d is out of bounds', $offset)); + } + + if (null === $length) { + $realLength = $numParts - $realOffset; + } else { + $realLength = $length < 0 ? $length + $numParts - $realOffset : $length; + if ($realLength < 0 || $realLength > $numParts - $realOffset) { + throw new \OutOfBoundsException(sprintf('Length %d is out of bounds', $length)); + } + } + + if ($realLength === 0) { + // Empty slice is represented as null + return null; + } + + return new static(array_slice($this->parts, $realOffset, $realLength), $this->attributes); + } + + /** + * Concatenate two names, yielding a new Name instance. + * + * The type of the generated instance depends on which class this method is called on, for + * example Name\FullyQualified::concat() will yield a Name\FullyQualified instance. + * + * If one of the arguments is null, a new instance of the other name will be returned. If both + * arguments are null, null will be returned. As such, writing + * Name::concat($namespace, $shortName) + * where $namespace is a Name node or null will work as expected. + * + * @param string|string[]|self|null $name1 The first name + * @param string|string[]|self|null $name2 The second name + * @param array $attributes Attributes to assign to concatenated name + * + * @return static|null Concatenated name + */ + public static function concat($name1, $name2, array $attributes = []) { + if (null === $name1 && null === $name2) { + return null; + } elseif (null === $name1) { + return new static(self::prepareName($name2), $attributes); + } elseif (null === $name2) { + return new static(self::prepareName($name1), $attributes); + } else { + return new static( + array_merge(self::prepareName($name1), self::prepareName($name2)), $attributes + ); + } + } + + /** + * Prepares a (string, array or Name node) name for use in name changing methods by converting + * it to an array. + * + * @param string|string[]|self $name Name to prepare + * + * @return string[] Prepared name + */ + private static function prepareName($name) : array { + if (\is_string($name)) { + if ('' === $name) { + throw new \InvalidArgumentException('Name cannot be empty'); + } + + return explode('\\', $name); + } elseif (\is_array($name)) { + if (empty($name)) { + throw new \InvalidArgumentException('Name cannot be empty'); + } + + return $name; + } elseif ($name instanceof self) { + return $name->parts; + } + + throw new \InvalidArgumentException( + 'Expected string, array of parts or Name instance' + ); + } + + public function getType() : string { + return 'Name'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php new file mode 100644 index 00000000..1df93a56 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php @@ -0,0 +1,50 @@ +toString(); + } + + public function getType() : string { + return 'Name_FullyQualified'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php new file mode 100644 index 00000000..57bf7af2 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php @@ -0,0 +1,50 @@ +toString(); + } + + public function getType() : string { + return 'Name_Relative'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php b/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php new file mode 100644 index 00000000..d68e26a3 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php @@ -0,0 +1,28 @@ +attributes = $attributes; + $this->type = \is_string($type) ? new Identifier($type) : $type; + } + + public function getSubNodeNames() : array { + return ['type']; + } + + public function getType() : string { + return 'NullableType'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php new file mode 100644 index 00000000..1e90b794 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php @@ -0,0 +1,60 @@ +attributes = $attributes; + $this->type = \is_string($type) ? new Identifier($type) : $type; + $this->byRef = $byRef; + $this->variadic = $variadic; + $this->var = $var; + $this->default = $default; + $this->flags = $flags; + $this->attrGroups = $attrGroups; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'flags', 'type', 'byRef', 'variadic', 'var', 'default']; + } + + public function getType() : string { + return 'Param'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php new file mode 100644 index 00000000..8117909b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php @@ -0,0 +1,7 @@ +attributes = $attributes; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['value']; + } + + /** + * @param mixed[] $attributes + */ + public static function fromString(string $str, array $attributes = []): DNumber + { + $attributes['rawValue'] = $str; + $float = self::parse($str); + + return new DNumber($float, $attributes); + } + + /** + * @internal + * + * Parses a DNUMBER token like PHP would. + * + * @param string $str A string number + * + * @return float The parsed number + */ + public static function parse(string $str) : float { + $str = str_replace('_', '', $str); + + // Check whether this is one of the special integer notations. + if ('0' === $str[0]) { + // hex + if ('x' === $str[1] || 'X' === $str[1]) { + return hexdec($str); + } + + // bin + if ('b' === $str[1] || 'B' === $str[1]) { + return bindec($str); + } + + // oct, but only if the string does not contain any of '.eE'. + if (false === strpbrk($str, '.eE')) { + // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit + // (8 or 9) so that only the digits before that are used. + return octdec(substr($str, 0, strcspn($str, '89'))); + } + } + + // dec + return (float) $str; + } + + public function getType() : string { + return 'Scalar_DNumber'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php new file mode 100644 index 00000000..fa5d2e26 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->parts = $parts; + } + + public function getSubNodeNames() : array { + return ['parts']; + } + + public function getType() : string { + return 'Scalar_Encapsed'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php new file mode 100644 index 00000000..bb3194c1 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['value']; + } + + public function getType() : string { + return 'Scalar_EncapsedStringPart'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php new file mode 100644 index 00000000..2cc2b22c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php @@ -0,0 +1,80 @@ +attributes = $attributes; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['value']; + } + + /** + * Constructs an LNumber node from a string number literal. + * + * @param string $str String number literal (decimal, octal, hex or binary) + * @param array $attributes Additional attributes + * @param bool $allowInvalidOctal Whether to allow invalid octal numbers (PHP 5) + * + * @return LNumber The constructed LNumber, including kind attribute + */ + public static function fromString(string $str, array $attributes = [], bool $allowInvalidOctal = false) : LNumber { + $attributes['rawValue'] = $str; + + $str = str_replace('_', '', $str); + + if ('0' !== $str[0] || '0' === $str) { + $attributes['kind'] = LNumber::KIND_DEC; + return new LNumber((int) $str, $attributes); + } + + if ('x' === $str[1] || 'X' === $str[1]) { + $attributes['kind'] = LNumber::KIND_HEX; + return new LNumber(hexdec($str), $attributes); + } + + if ('b' === $str[1] || 'B' === $str[1]) { + $attributes['kind'] = LNumber::KIND_BIN; + return new LNumber(bindec($str), $attributes); + } + + if (!$allowInvalidOctal && strpbrk($str, '89')) { + throw new Error('Invalid numeric literal', $attributes); + } + + // Strip optional explicit octal prefix. + if ('o' === $str[1] || 'O' === $str[1]) { + $str = substr($str, 2); + } + + // use intval instead of octdec to get proper cutting behavior with malformed numbers + $attributes['kind'] = LNumber::KIND_OCT; + return new LNumber(intval($str, 8), $attributes); + } + + public function getType() : string { + return 'Scalar_LNumber'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php new file mode 100644 index 00000000..941f0c76 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php @@ -0,0 +1,28 @@ +attributes = $attributes; + } + + public function getSubNodeNames() : array { + return []; + } + + /** + * Get name of magic constant. + * + * @return string Name of magic constant + */ + abstract public function getName() : string; +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php new file mode 100644 index 00000000..24432847 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php @@ -0,0 +1,16 @@ + '\\', + '$' => '$', + 'n' => "\n", + 'r' => "\r", + 't' => "\t", + 'f' => "\f", + 'v' => "\v", + 'e' => "\x1B", + ]; + + /** + * Constructs a string scalar node. + * + * @param string $value Value of the string + * @param array $attributes Additional attributes + */ + public function __construct(string $value, array $attributes = []) { + $this->attributes = $attributes; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['value']; + } + + /** + * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes + */ + public static function fromString(string $str, array $attributes = [], bool $parseUnicodeEscape = true): self + { + $attributes['kind'] = ($str[0] === "'" || ($str[1] === "'" && ($str[0] === 'b' || $str[0] === 'B'))) + ? Scalar\String_::KIND_SINGLE_QUOTED + : Scalar\String_::KIND_DOUBLE_QUOTED; + + $attributes['rawValue'] = $str; + + $string = self::parse($str, $parseUnicodeEscape); + + return new self($string, $attributes); + } + + /** + * @internal + * + * Parses a string token. + * + * @param string $str String token content + * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes + * + * @return string The parsed string + */ + public static function parse(string $str, bool $parseUnicodeEscape = true) : string { + $bLength = 0; + if ('b' === $str[0] || 'B' === $str[0]) { + $bLength = 1; + } + + if ('\'' === $str[$bLength]) { + return str_replace( + ['\\\\', '\\\''], + ['\\', '\''], + substr($str, $bLength + 1, -1) + ); + } else { + return self::parseEscapeSequences( + substr($str, $bLength + 1, -1), '"', $parseUnicodeEscape + ); + } + } + + /** + * @internal + * + * Parses escape sequences in strings (all string types apart from single quoted). + * + * @param string $str String without quotes + * @param null|string $quote Quote type + * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes + * + * @return string String with escape sequences parsed + */ + public static function parseEscapeSequences(string $str, $quote, bool $parseUnicodeEscape = true) : string { + if (null !== $quote) { + $str = str_replace('\\' . $quote, $quote, $str); + } + + $extra = ''; + if ($parseUnicodeEscape) { + $extra = '|u\{([0-9a-fA-F]+)\}'; + } + + return preg_replace_callback( + '~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}' . $extra . ')~', + function($matches) { + $str = $matches[1]; + + if (isset(self::$replacements[$str])) { + return self::$replacements[$str]; + } elseif ('x' === $str[0] || 'X' === $str[0]) { + return chr(hexdec(substr($str, 1))); + } elseif ('u' === $str[0]) { + return self::codePointToUtf8(hexdec($matches[2])); + } else { + return chr(octdec($str)); + } + }, + $str + ); + } + + /** + * Converts a Unicode code point to its UTF-8 encoded representation. + * + * @param int $num Code point + * + * @return string UTF-8 representation of code point + */ + private static function codePointToUtf8(int $num) : string { + if ($num <= 0x7F) { + return chr($num); + } + if ($num <= 0x7FF) { + return chr(($num>>6) + 0xC0) . chr(($num&0x3F) + 0x80); + } + if ($num <= 0xFFFF) { + return chr(($num>>12) + 0xE0) . chr((($num>>6)&0x3F) + 0x80) . chr(($num&0x3F) + 0x80); + } + if ($num <= 0x1FFFFF) { + return chr(($num>>18) + 0xF0) . chr((($num>>12)&0x3F) + 0x80) + . chr((($num>>6)&0x3F) + 0x80) . chr(($num&0x3F) + 0x80); + } + throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large'); + } + + public function getType() : string { + return 'Scalar_String'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php new file mode 100644 index 00000000..69d33e57 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php @@ -0,0 +1,9 @@ +attributes = $attributes; + $this->num = $num; + } + + public function getSubNodeNames() : array { + return ['num']; + } + + public function getType() : string { + return 'Stmt_Break'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php new file mode 100644 index 00000000..2bf044c9 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->cond = $cond; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['cond', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Case'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php new file mode 100644 index 00000000..9b9c0947 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php @@ -0,0 +1,41 @@ +attributes = $attributes; + $this->types = $types; + $this->var = $var; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['types', 'var', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Catch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php new file mode 100644 index 00000000..1fc7f336 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php @@ -0,0 +1,80 @@ +attributes = $attributes; + $this->flags = $flags; + $this->consts = $consts; + $this->attrGroups = $attrGroups; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'flags', 'consts']; + } + + /** + * Whether constant is explicitly or implicitly public. + * + * @return bool + */ + public function isPublic() : bool { + return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 + || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; + } + + /** + * Whether constant is protected. + * + * @return bool + */ + public function isProtected() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); + } + + /** + * Whether constant is private. + * + * @return bool + */ + public function isPrivate() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); + } + + /** + * Whether constant is final. + * + * @return bool + */ + public function isFinal() : bool { + return (bool) ($this->flags & Class_::MODIFIER_FINAL); + } + + public function getType() : string { + return 'Stmt_ClassConst'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php new file mode 100644 index 00000000..2fa4e861 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php @@ -0,0 +1,109 @@ +stmts as $stmt) { + if ($stmt instanceof TraitUse) { + $traitUses[] = $stmt; + } + } + return $traitUses; + } + + /** + * @return ClassConst[] + */ + public function getConstants() : array { + $constants = []; + foreach ($this->stmts as $stmt) { + if ($stmt instanceof ClassConst) { + $constants[] = $stmt; + } + } + return $constants; + } + + /** + * @return Property[] + */ + public function getProperties() : array { + $properties = []; + foreach ($this->stmts as $stmt) { + if ($stmt instanceof Property) { + $properties[] = $stmt; + } + } + return $properties; + } + + /** + * Gets property with the given name defined directly in this class/interface/trait. + * + * @param string $name Name of the property + * + * @return Property|null Property node or null if the property does not exist + */ + public function getProperty(string $name) { + foreach ($this->stmts as $stmt) { + if ($stmt instanceof Property) { + foreach ($stmt->props as $prop) { + if ($prop instanceof PropertyProperty && $name === $prop->name->toString()) { + return $stmt; + } + } + } + } + return null; + } + + /** + * Gets all methods defined directly in this class/interface/trait + * + * @return ClassMethod[] + */ + public function getMethods() : array { + $methods = []; + foreach ($this->stmts as $stmt) { + if ($stmt instanceof ClassMethod) { + $methods[] = $stmt; + } + } + return $methods; + } + + /** + * Gets method with the given name defined directly in this class/interface/trait. + * + * @param string $name Name of the method (compared case-insensitively) + * + * @return ClassMethod|null Method node or null if the method does not exist + */ + public function getMethod(string $name) { + $lowerName = strtolower($name); + foreach ($this->stmts as $stmt) { + if ($stmt instanceof ClassMethod && $lowerName === $stmt->name->toLowerString()) { + return $stmt; + } + } + return null; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php new file mode 100644 index 00000000..6e85161e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php @@ -0,0 +1,161 @@ + true, + '__destruct' => true, + '__call' => true, + '__callstatic' => true, + '__get' => true, + '__set' => true, + '__isset' => true, + '__unset' => true, + '__sleep' => true, + '__wakeup' => true, + '__tostring' => true, + '__set_state' => true, + '__clone' => true, + '__invoke' => true, + '__debuginfo' => true, + '__serialize' => true, + '__unserialize' => true, + ]; + + /** + * Constructs a class method node. + * + * @param string|Node\Identifier $name Name + * @param array $subNodes Array of the following optional subnodes: + * 'flags => MODIFIER_PUBLIC: Flags + * 'byRef' => false : Whether to return by reference + * 'params' => array() : Parameters + * 'returnType' => null : Return type + * 'stmts' => array() : Statements + * 'attrGroups' => array() : PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; + $this->byRef = $subNodes['byRef'] ?? false; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->params = $subNodes['params'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'flags', 'byRef', 'name', 'params', 'returnType', 'stmts']; + } + + public function returnsByRef() : bool { + return $this->byRef; + } + + public function getParams() : array { + return $this->params; + } + + public function getReturnType() { + return $this->returnType; + } + + public function getStmts() { + return $this->stmts; + } + + public function getAttrGroups() : array { + return $this->attrGroups; + } + + /** + * Whether the method is explicitly or implicitly public. + * + * @return bool + */ + public function isPublic() : bool { + return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 + || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; + } + + /** + * Whether the method is protected. + * + * @return bool + */ + public function isProtected() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); + } + + /** + * Whether the method is private. + * + * @return bool + */ + public function isPrivate() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); + } + + /** + * Whether the method is abstract. + * + * @return bool + */ + public function isAbstract() : bool { + return (bool) ($this->flags & Class_::MODIFIER_ABSTRACT); + } + + /** + * Whether the method is final. + * + * @return bool + */ + public function isFinal() : bool { + return (bool) ($this->flags & Class_::MODIFIER_FINAL); + } + + /** + * Whether the method is static. + * + * @return bool + */ + public function isStatic() : bool { + return (bool) ($this->flags & Class_::MODIFIER_STATIC); + } + + /** + * Whether the method is magic. + * + * @return bool + */ + public function isMagic() : bool { + return isset(self::$magicNames[$this->name->toLowerString()]); + } + + public function getType() : string { + return 'Stmt_ClassMethod'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php new file mode 100644 index 00000000..52ed6c6c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php @@ -0,0 +1,137 @@ + 0 : Flags + * 'extends' => null : Name of extended class + * 'implements' => array(): Names of implemented interfaces + * 'stmts' => array(): Statements + * 'attrGroups' => array(): PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->extends = $subNodes['extends'] ?? null; + $this->implements = $subNodes['implements'] ?? []; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'flags', 'name', 'extends', 'implements', 'stmts']; + } + + /** + * Whether the class is explicitly abstract. + * + * @return bool + */ + public function isAbstract() : bool { + return (bool) ($this->flags & self::MODIFIER_ABSTRACT); + } + + /** + * Whether the class is final. + * + * @return bool + */ + public function isFinal() : bool { + return (bool) ($this->flags & self::MODIFIER_FINAL); + } + + public function isReadonly() : bool { + return (bool) ($this->flags & self::MODIFIER_READONLY); + } + + /** + * Whether the class is anonymous. + * + * @return bool + */ + public function isAnonymous() : bool { + return null === $this->name; + } + + /** + * @internal + */ + public static function verifyClassModifier($a, $b) { + if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) { + throw new Error('Multiple abstract modifiers are not allowed'); + } + + if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) { + throw new Error('Multiple final modifiers are not allowed'); + } + + if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) { + throw new Error('Multiple readonly modifiers are not allowed'); + } + + if ($a & 48 && $b & 48) { + throw new Error('Cannot use the final modifier on an abstract class'); + } + } + + /** + * @internal + */ + public static function verifyModifier($a, $b) { + if ($a & self::VISIBILITY_MODIFIER_MASK && $b & self::VISIBILITY_MODIFIER_MASK) { + throw new Error('Multiple access type modifiers are not allowed'); + } + + if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) { + throw new Error('Multiple abstract modifiers are not allowed'); + } + + if ($a & self::MODIFIER_STATIC && $b & self::MODIFIER_STATIC) { + throw new Error('Multiple static modifiers are not allowed'); + } + + if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) { + throw new Error('Multiple final modifiers are not allowed'); + } + + if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) { + throw new Error('Multiple readonly modifiers are not allowed'); + } + + if ($a & 48 && $b & 48) { + throw new Error('Cannot use the final modifier on an abstract class member'); + } + } + + public function getType() : string { + return 'Stmt_Class'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php new file mode 100644 index 00000000..e6316345 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->consts = $consts; + } + + public function getSubNodeNames() : array { + return ['consts']; + } + + public function getType() : string { + return 'Stmt_Const'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php new file mode 100644 index 00000000..24882683 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->num = $num; + } + + public function getSubNodeNames() : array { + return ['num']; + } + + public function getType() : string { + return 'Stmt_Continue'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php new file mode 100644 index 00000000..ac07f30c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php @@ -0,0 +1,34 @@ +value pair node. + * + * @param string|Node\Identifier $key Key + * @param Node\Expr $value Value + * @param array $attributes Additional attributes + */ + public function __construct($key, Node\Expr $value, array $attributes = []) { + $this->attributes = $attributes; + $this->key = \is_string($key) ? new Node\Identifier($key) : $key; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['key', 'value']; + } + + public function getType() : string { + return 'Stmt_DeclareDeclare'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php new file mode 100644 index 00000000..f46ff0ba --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->declares = $declares; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['declares', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Declare'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php new file mode 100644 index 00000000..78e90da0 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->cond = $cond; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['stmts', 'cond']; + } + + public function getType() : string { + return 'Stmt_Do'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php new file mode 100644 index 00000000..7cc50d5d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->exprs = $exprs; + } + + public function getSubNodeNames() : array { + return ['exprs']; + } + + public function getType() : string { + return 'Stmt_Echo'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php new file mode 100644 index 00000000..eef1ece3 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->cond = $cond; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['cond', 'stmts']; + } + + public function getType() : string { + return 'Stmt_ElseIf'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php new file mode 100644 index 00000000..0e61778e --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['stmts']; + } + + public function getType() : string { + return 'Stmt_Else'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php new file mode 100644 index 00000000..5beff8b3 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php @@ -0,0 +1,37 @@ +name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->expr = $expr; + $this->attrGroups = $attrGroups; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'name', 'expr']; + } + + public function getType() : string { + return 'Stmt_EnumCase'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php new file mode 100644 index 00000000..3a50c225 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php @@ -0,0 +1,40 @@ + null : Scalar type + * 'implements' => array() : Names of implemented interfaces + * 'stmts' => array() : Statements + * 'attrGroups' => array() : PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->scalarType = $subNodes['scalarType'] ?? null; + $this->implements = $subNodes['implements'] ?? []; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + + parent::__construct($attributes); + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'name', 'scalarType', 'implements', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Enum'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php new file mode 100644 index 00000000..99d1687d --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php @@ -0,0 +1,33 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Stmt_Expression'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php new file mode 100644 index 00000000..d55b8b68 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['stmts']; + } + + public function getType() : string { + return 'Stmt_Finally'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php new file mode 100644 index 00000000..1323d37c --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php @@ -0,0 +1,43 @@ + array(): Init expressions + * 'cond' => array(): Loop conditions + * 'loop' => array(): Loop expressions + * 'stmts' => array(): Statements + * @param array $attributes Additional attributes + */ + public function __construct(array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->init = $subNodes['init'] ?? []; + $this->cond = $subNodes['cond'] ?? []; + $this->loop = $subNodes['loop'] ?? []; + $this->stmts = $subNodes['stmts'] ?? []; + } + + public function getSubNodeNames() : array { + return ['init', 'cond', 'loop', 'stmts']; + } + + public function getType() : string { + return 'Stmt_For'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php new file mode 100644 index 00000000..0556a7ce --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php @@ -0,0 +1,47 @@ + null : Variable to assign key to + * 'byRef' => false : Whether to assign value by reference + * 'stmts' => array(): Statements + * @param array $attributes Additional attributes + */ + public function __construct(Node\Expr $expr, Node\Expr $valueVar, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->expr = $expr; + $this->keyVar = $subNodes['keyVar'] ?? null; + $this->byRef = $subNodes['byRef'] ?? false; + $this->valueVar = $valueVar; + $this->stmts = $subNodes['stmts'] ?? []; + } + + public function getSubNodeNames() : array { + return ['expr', 'keyVar', 'byRef', 'valueVar', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Foreach'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php new file mode 100644 index 00000000..c2ccae24 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php @@ -0,0 +1,77 @@ + false : Whether to return by reference + * 'params' => array(): Parameters + * 'returnType' => null : Return type + * 'stmts' => array(): Statements + * 'attrGroups' => array(): PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->byRef = $subNodes['byRef'] ?? false; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->params = $subNodes['params'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'byRef', 'name', 'params', 'returnType', 'stmts']; + } + + public function returnsByRef() : bool { + return $this->byRef; + } + + public function getParams() : array { + return $this->params; + } + + public function getReturnType() { + return $this->returnType; + } + + public function getAttrGroups() : array { + return $this->attrGroups; + } + + /** @return Node\Stmt[] */ + public function getStmts() : array { + return $this->stmts; + } + + public function getType() : string { + return 'Stmt_Function'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php new file mode 100644 index 00000000..a0022ad9 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->vars = $vars; + } + + public function getSubNodeNames() : array { + return ['vars']; + } + + public function getType() : string { + return 'Stmt_Global'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php new file mode 100644 index 00000000..24a57f78 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->name = \is_string($name) ? new Identifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['name']; + } + + public function getType() : string { + return 'Stmt_Goto'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php new file mode 100644 index 00000000..24520d22 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php @@ -0,0 +1,39 @@ +attributes = $attributes; + $this->type = $type; + $this->prefix = $prefix; + $this->uses = $uses; + } + + public function getSubNodeNames() : array { + return ['type', 'prefix', 'uses']; + } + + public function getType() : string { + return 'Stmt_GroupUse'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php new file mode 100644 index 00000000..8e624e0f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->remaining = $remaining; + } + + public function getSubNodeNames() : array { + return ['remaining']; + } + + public function getType() : string { + return 'Stmt_HaltCompiler'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php new file mode 100644 index 00000000..a1bae4bf --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php @@ -0,0 +1,43 @@ + array(): Statements + * 'elseifs' => array(): Elseif clauses + * 'else' => null : Else clause + * @param array $attributes Additional attributes + */ + public function __construct(Node\Expr $cond, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->cond = $cond; + $this->stmts = $subNodes['stmts'] ?? []; + $this->elseifs = $subNodes['elseifs'] ?? []; + $this->else = $subNodes['else'] ?? null; + } + + public function getSubNodeNames() : array { + return ['cond', 'stmts', 'elseifs', 'else']; + } + + public function getType() : string { + return 'Stmt_If'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php new file mode 100644 index 00000000..0711d284 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->value = $value; + } + + public function getSubNodeNames() : array { + return ['value']; + } + + public function getType() : string { + return 'Stmt_InlineHTML'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php new file mode 100644 index 00000000..4d587dd4 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php @@ -0,0 +1,37 @@ + array(): Name of extended interfaces + * 'stmts' => array(): Statements + * 'attrGroups' => array(): PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->extends = $subNodes['extends'] ?? []; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'name', 'extends', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Interface'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php new file mode 100644 index 00000000..3edcb3be --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->name = \is_string($name) ? new Identifier($name) : $name; + } + + public function getSubNodeNames() : array { + return ['name']; + } + + public function getType() : string { + return 'Stmt_Label'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php new file mode 100644 index 00000000..c6320457 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php @@ -0,0 +1,38 @@ +attributes = $attributes; + $this->name = $name; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['name', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Namespace'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php new file mode 100644 index 00000000..f86f8df7 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php @@ -0,0 +1,17 @@ +attributes = $attributes; + $this->flags = $flags; + $this->props = $props; + $this->type = \is_string($type) ? new Identifier($type) : $type; + $this->attrGroups = $attrGroups; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'flags', 'type', 'props']; + } + + /** + * Whether the property is explicitly or implicitly public. + * + * @return bool + */ + public function isPublic() : bool { + return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 + || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; + } + + /** + * Whether the property is protected. + * + * @return bool + */ + public function isProtected() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); + } + + /** + * Whether the property is private. + * + * @return bool + */ + public function isPrivate() : bool { + return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); + } + + /** + * Whether the property is static. + * + * @return bool + */ + public function isStatic() : bool { + return (bool) ($this->flags & Class_::MODIFIER_STATIC); + } + + /** + * Whether the property is readonly. + * + * @return bool + */ + public function isReadonly() : bool { + return (bool) ($this->flags & Class_::MODIFIER_READONLY); + } + + public function getType() : string { + return 'Stmt_Property'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php new file mode 100644 index 00000000..205731e2 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; + $this->default = $default; + } + + public function getSubNodeNames() : array { + return ['name', 'default']; + } + + public function getType() : string { + return 'Stmt_PropertyProperty'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php new file mode 100644 index 00000000..efc578c5 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Stmt_Return'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php new file mode 100644 index 00000000..29584560 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php @@ -0,0 +1,37 @@ +attributes = $attributes; + $this->var = $var; + $this->default = $default; + } + + public function getSubNodeNames() : array { + return ['var', 'default']; + } + + public function getType() : string { + return 'Stmt_StaticVar'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php new file mode 100644 index 00000000..464898ff --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->vars = $vars; + } + + public function getSubNodeNames() : array { + return ['vars']; + } + + public function getType() : string { + return 'Stmt_Static'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php new file mode 100644 index 00000000..2c8dae02 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->cond = $cond; + $this->cases = $cases; + } + + public function getSubNodeNames() : array { + return ['cond', 'cases']; + } + + public function getType() : string { + return 'Stmt_Switch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php new file mode 100644 index 00000000..a34e2b36 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->expr = $expr; + } + + public function getSubNodeNames() : array { + return ['expr']; + } + + public function getType() : string { + return 'Stmt_Throw'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php new file mode 100644 index 00000000..9e97053b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->traits = $traits; + $this->adaptations = $adaptations; + } + + public function getSubNodeNames() : array { + return ['traits', 'adaptations']; + } + + public function getType() : string { + return 'Stmt_TraitUse'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php new file mode 100644 index 00000000..8bdd2c04 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php @@ -0,0 +1,13 @@ +attributes = $attributes; + $this->trait = $trait; + $this->method = \is_string($method) ? new Node\Identifier($method) : $method; + $this->newModifier = $newModifier; + $this->newName = \is_string($newName) ? new Node\Identifier($newName) : $newName; + } + + public function getSubNodeNames() : array { + return ['trait', 'method', 'newModifier', 'newName']; + } + + public function getType() : string { + return 'Stmt_TraitUseAdaptation_Alias'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php new file mode 100644 index 00000000..80385f64 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->trait = $trait; + $this->method = \is_string($method) ? new Node\Identifier($method) : $method; + $this->insteadof = $insteadof; + } + + public function getSubNodeNames() : array { + return ['trait', 'method', 'insteadof']; + } + + public function getType() : string { + return 'Stmt_TraitUseAdaptation_Precedence'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php new file mode 100644 index 00000000..0cec203a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php @@ -0,0 +1,32 @@ + array(): Statements + * 'attrGroups' => array(): PHP attribute groups + * @param array $attributes Additional attributes + */ + public function __construct($name, array $subNodes = [], array $attributes = []) { + $this->attributes = $attributes; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->stmts = $subNodes['stmts'] ?? []; + $this->attrGroups = $subNodes['attrGroups'] ?? []; + } + + public function getSubNodeNames() : array { + return ['attrGroups', 'name', 'stmts']; + } + + public function getType() : string { + return 'Stmt_Trait'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php new file mode 100644 index 00000000..7fc158c5 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php @@ -0,0 +1,38 @@ +attributes = $attributes; + $this->stmts = $stmts; + $this->catches = $catches; + $this->finally = $finally; + } + + public function getSubNodeNames() : array { + return ['stmts', 'catches', 'finally']; + } + + public function getType() : string { + return 'Stmt_TryCatch'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php new file mode 100644 index 00000000..310e427a --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->vars = $vars; + } + + public function getSubNodeNames() : array { + return ['vars']; + } + + public function getType() : string { + return 'Stmt_Unset'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php new file mode 100644 index 00000000..32bd7847 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php @@ -0,0 +1,52 @@ +attributes = $attributes; + $this->type = $type; + $this->name = $name; + $this->alias = \is_string($alias) ? new Identifier($alias) : $alias; + } + + public function getSubNodeNames() : array { + return ['type', 'name', 'alias']; + } + + /** + * Get alias. If not explicitly given this is the last component of the used name. + * + * @return Identifier + */ + public function getAlias() : Identifier { + if (null !== $this->alias) { + return $this->alias; + } + + return new Identifier($this->name->getLast()); + } + + public function getType() : string { + return 'Stmt_UseUse'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php new file mode 100644 index 00000000..8753da31 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php @@ -0,0 +1,47 @@ +attributes = $attributes; + $this->type = $type; + $this->uses = $uses; + } + + public function getSubNodeNames() : array { + return ['type', 'uses']; + } + + public function getType() : string { + return 'Stmt_Use'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php new file mode 100644 index 00000000..f41034f8 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php @@ -0,0 +1,34 @@ +attributes = $attributes; + $this->cond = $cond; + $this->stmts = $stmts; + } + + public function getSubNodeNames() : array { + return ['cond', 'stmts']; + } + + public function getType() : string { + return 'Stmt_While'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php b/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php new file mode 100644 index 00000000..93cecd23 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php @@ -0,0 +1,28 @@ +attributes = $attributes; + $this->types = $types; + } + + public function getSubNodeNames() : array { + return ['types']; + } + + public function getType() : string { + return 'UnionType'; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php b/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php new file mode 100644 index 00000000..a30807a6 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php @@ -0,0 +1,17 @@ +attributes = $attributes; + } + + public function getType(): string { + return 'VariadicPlaceholder'; + } + + public function getSubNodeNames(): array { + return []; + } +} \ No newline at end of file diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php new file mode 100644 index 00000000..04514da1 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php @@ -0,0 +1,178 @@ +attributes = $attributes; + } + + /** + * Gets line the node started in (alias of getStartLine). + * + * @return int Start line (or -1 if not available) + */ + public function getLine() : int { + return $this->attributes['startLine'] ?? -1; + } + + /** + * Gets line the node started in. + * + * Requires the 'startLine' attribute to be enabled in the lexer (enabled by default). + * + * @return int Start line (or -1 if not available) + */ + public function getStartLine() : int { + return $this->attributes['startLine'] ?? -1; + } + + /** + * Gets the line the node ended in. + * + * Requires the 'endLine' attribute to be enabled in the lexer (enabled by default). + * + * @return int End line (or -1 if not available) + */ + public function getEndLine() : int { + return $this->attributes['endLine'] ?? -1; + } + + /** + * Gets the token offset of the first token that is part of this node. + * + * The offset is an index into the array returned by Lexer::getTokens(). + * + * Requires the 'startTokenPos' attribute to be enabled in the lexer (DISABLED by default). + * + * @return int Token start position (or -1 if not available) + */ + public function getStartTokenPos() : int { + return $this->attributes['startTokenPos'] ?? -1; + } + + /** + * Gets the token offset of the last token that is part of this node. + * + * The offset is an index into the array returned by Lexer::getTokens(). + * + * Requires the 'endTokenPos' attribute to be enabled in the lexer (DISABLED by default). + * + * @return int Token end position (or -1 if not available) + */ + public function getEndTokenPos() : int { + return $this->attributes['endTokenPos'] ?? -1; + } + + /** + * Gets the file offset of the first character that is part of this node. + * + * Requires the 'startFilePos' attribute to be enabled in the lexer (DISABLED by default). + * + * @return int File start position (or -1 if not available) + */ + public function getStartFilePos() : int { + return $this->attributes['startFilePos'] ?? -1; + } + + /** + * Gets the file offset of the last character that is part of this node. + * + * Requires the 'endFilePos' attribute to be enabled in the lexer (DISABLED by default). + * + * @return int File end position (or -1 if not available) + */ + public function getEndFilePos() : int { + return $this->attributes['endFilePos'] ?? -1; + } + + /** + * Gets all comments directly preceding this node. + * + * The comments are also available through the "comments" attribute. + * + * @return Comment[] + */ + public function getComments() : array { + return $this->attributes['comments'] ?? []; + } + + /** + * Gets the doc comment of the node. + * + * @return null|Comment\Doc Doc comment object or null + */ + public function getDocComment() { + $comments = $this->getComments(); + for ($i = count($comments) - 1; $i >= 0; $i--) { + $comment = $comments[$i]; + if ($comment instanceof Comment\Doc) { + return $comment; + } + } + + return null; + } + + /** + * Sets the doc comment of the node. + * + * This will either replace an existing doc comment or add it to the comments array. + * + * @param Comment\Doc $docComment Doc comment to set + */ + public function setDocComment(Comment\Doc $docComment) { + $comments = $this->getComments(); + for ($i = count($comments) - 1; $i >= 0; $i--) { + if ($comments[$i] instanceof Comment\Doc) { + // Replace existing doc comment. + $comments[$i] = $docComment; + $this->setAttribute('comments', $comments); + return; + } + } + + // Append new doc comment. + $comments[] = $docComment; + $this->setAttribute('comments', $comments); + } + + public function setAttribute(string $key, $value) { + $this->attributes[$key] = $value; + } + + public function hasAttribute(string $key) : bool { + return array_key_exists($key, $this->attributes); + } + + public function getAttribute(string $key, $default = null) { + if (array_key_exists($key, $this->attributes)) { + return $this->attributes[$key]; + } + + return $default; + } + + public function getAttributes() : array { + return $this->attributes; + } + + public function setAttributes(array $attributes) { + $this->attributes = $attributes; + } + + /** + * @return array + */ + public function jsonSerialize() : array { + return ['nodeType' => $this->getType()] + get_object_vars($this); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php b/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php new file mode 100644 index 00000000..ba622efd --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php @@ -0,0 +1,206 @@ +dumpComments = !empty($options['dumpComments']); + $this->dumpPositions = !empty($options['dumpPositions']); + } + + /** + * Dumps a node or array. + * + * @param array|Node $node Node or array to dump + * @param string|null $code Code corresponding to dumped AST. This only needs to be passed if + * the dumpPositions option is enabled and the dumping of node offsets + * is desired. + * + * @return string Dumped value + */ + public function dump($node, string $code = null) : string { + $this->code = $code; + return $this->dumpRecursive($node); + } + + protected function dumpRecursive($node) { + if ($node instanceof Node) { + $r = $node->getType(); + if ($this->dumpPositions && null !== $p = $this->dumpPosition($node)) { + $r .= $p; + } + $r .= '('; + + foreach ($node->getSubNodeNames() as $key) { + $r .= "\n " . $key . ': '; + + $value = $node->$key; + if (null === $value) { + $r .= 'null'; + } elseif (false === $value) { + $r .= 'false'; + } elseif (true === $value) { + $r .= 'true'; + } elseif (is_scalar($value)) { + if ('flags' === $key || 'newModifier' === $key) { + $r .= $this->dumpFlags($value); + } elseif ('type' === $key && $node instanceof Include_) { + $r .= $this->dumpIncludeType($value); + } elseif ('type' === $key + && ($node instanceof Use_ || $node instanceof UseUse || $node instanceof GroupUse)) { + $r .= $this->dumpUseType($value); + } else { + $r .= $value; + } + } else { + $r .= str_replace("\n", "\n ", $this->dumpRecursive($value)); + } + } + + if ($this->dumpComments && $comments = $node->getComments()) { + $r .= "\n comments: " . str_replace("\n", "\n ", $this->dumpRecursive($comments)); + } + } elseif (is_array($node)) { + $r = 'array('; + + foreach ($node as $key => $value) { + $r .= "\n " . $key . ': '; + + if (null === $value) { + $r .= 'null'; + } elseif (false === $value) { + $r .= 'false'; + } elseif (true === $value) { + $r .= 'true'; + } elseif (is_scalar($value)) { + $r .= $value; + } else { + $r .= str_replace("\n", "\n ", $this->dumpRecursive($value)); + } + } + } elseif ($node instanceof Comment) { + return $node->getReformattedText(); + } else { + throw new \InvalidArgumentException('Can only dump nodes and arrays.'); + } + + return $r . "\n)"; + } + + protected function dumpFlags($flags) { + $strs = []; + if ($flags & Class_::MODIFIER_PUBLIC) { + $strs[] = 'MODIFIER_PUBLIC'; + } + if ($flags & Class_::MODIFIER_PROTECTED) { + $strs[] = 'MODIFIER_PROTECTED'; + } + if ($flags & Class_::MODIFIER_PRIVATE) { + $strs[] = 'MODIFIER_PRIVATE'; + } + if ($flags & Class_::MODIFIER_ABSTRACT) { + $strs[] = 'MODIFIER_ABSTRACT'; + } + if ($flags & Class_::MODIFIER_STATIC) { + $strs[] = 'MODIFIER_STATIC'; + } + if ($flags & Class_::MODIFIER_FINAL) { + $strs[] = 'MODIFIER_FINAL'; + } + if ($flags & Class_::MODIFIER_READONLY) { + $strs[] = 'MODIFIER_READONLY'; + } + + if ($strs) { + return implode(' | ', $strs) . ' (' . $flags . ')'; + } else { + return $flags; + } + } + + protected function dumpIncludeType($type) { + $map = [ + Include_::TYPE_INCLUDE => 'TYPE_INCLUDE', + Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE', + Include_::TYPE_REQUIRE => 'TYPE_REQUIRE', + Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQUIRE_ONCE', + ]; + + if (!isset($map[$type])) { + return $type; + } + return $map[$type] . ' (' . $type . ')'; + } + + protected function dumpUseType($type) { + $map = [ + Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN', + Use_::TYPE_NORMAL => 'TYPE_NORMAL', + Use_::TYPE_FUNCTION => 'TYPE_FUNCTION', + Use_::TYPE_CONSTANT => 'TYPE_CONSTANT', + ]; + + if (!isset($map[$type])) { + return $type; + } + return $map[$type] . ' (' . $type . ')'; + } + + /** + * Dump node position, if possible. + * + * @param Node $node Node for which to dump position + * + * @return string|null Dump of position, or null if position information not available + */ + protected function dumpPosition(Node $node) { + if (!$node->hasAttribute('startLine') || !$node->hasAttribute('endLine')) { + return null; + } + + $start = $node->getStartLine(); + $end = $node->getEndLine(); + if ($node->hasAttribute('startFilePos') && $node->hasAttribute('endFilePos') + && null !== $this->code + ) { + $start .= ':' . $this->toColumn($this->code, $node->getStartFilePos()); + $end .= ':' . $this->toColumn($this->code, $node->getEndFilePos()); + } + return "[$start - $end]"; + } + + // Copied from Error class + private function toColumn($code, $pos) { + if ($pos > strlen($code)) { + throw new \RuntimeException('Invalid position information'); + } + + $lineStartPos = strrpos($code, "\n", $pos - strlen($code)); + if (false === $lineStartPos) { + $lineStartPos = -1; + } + + return $pos - $lineStartPos; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php b/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php new file mode 100644 index 00000000..2e7cfdad --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php @@ -0,0 +1,81 @@ +addVisitor($visitor); + $traverser->traverse($nodes); + + return $visitor->getFoundNodes(); + } + + /** + * Find all nodes that are instances of a certain class. + * + * @param Node|Node[] $nodes Single node or array of nodes to search in + * @param string $class Class name + * + * @return Node[] Found nodes (all instances of $class) + */ + public function findInstanceOf($nodes, string $class) : array { + return $this->find($nodes, function ($node) use ($class) { + return $node instanceof $class; + }); + } + + /** + * Find first node satisfying a filter callback. + * + * @param Node|Node[] $nodes Single node or array of nodes to search in + * @param callable $filter Filter callback: function(Node $node) : bool + * + * @return null|Node Found node (or null if none found) + */ + public function findFirst($nodes, callable $filter) { + if (!is_array($nodes)) { + $nodes = [$nodes]; + } + + $visitor = new FirstFindingVisitor($filter); + + $traverser = new NodeTraverser; + $traverser->addVisitor($visitor); + $traverser->traverse($nodes); + + return $visitor->getFoundNode(); + } + + /** + * Find first node that is an instance of a certain class. + * + * @param Node|Node[] $nodes Single node or array of nodes to search in + * @param string $class Class name + * + * @return null|Node Found node, which is an instance of $class (or null if none found) + */ + public function findFirstInstanceOf($nodes, string $class) { + return $this->findFirst($nodes, function ($node) use ($class) { + return $node instanceof $class; + }); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php new file mode 100644 index 00000000..97d45bda --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php @@ -0,0 +1,291 @@ +visitors[] = $visitor; + } + + /** + * Removes an added visitor. + * + * @param NodeVisitor $visitor + */ + public function removeVisitor(NodeVisitor $visitor) { + foreach ($this->visitors as $index => $storedVisitor) { + if ($storedVisitor === $visitor) { + unset($this->visitors[$index]); + break; + } + } + } + + /** + * Traverses an array of nodes using the registered visitors. + * + * @param Node[] $nodes Array of nodes + * + * @return Node[] Traversed array of nodes + */ + public function traverse(array $nodes) : array { + $this->stopTraversal = false; + + foreach ($this->visitors as $visitor) { + if (null !== $return = $visitor->beforeTraverse($nodes)) { + $nodes = $return; + } + } + + $nodes = $this->traverseArray($nodes); + + foreach ($this->visitors as $visitor) { + if (null !== $return = $visitor->afterTraverse($nodes)) { + $nodes = $return; + } + } + + return $nodes; + } + + /** + * Recursively traverse a node. + * + * @param Node $node Node to traverse. + * + * @return Node Result of traversal (may be original node or new one) + */ + protected function traverseNode(Node $node) : Node { + foreach ($node->getSubNodeNames() as $name) { + $subNode =& $node->$name; + + if (\is_array($subNode)) { + $subNode = $this->traverseArray($subNode); + if ($this->stopTraversal) { + break; + } + } elseif ($subNode instanceof Node) { + $traverseChildren = true; + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($subNode); + if (null !== $return) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($subNode, $return); + $subNode = $return; + } elseif (self::DONT_TRAVERSE_CHILDREN === $return) { + $traverseChildren = false; + } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; + } elseif (self::STOP_TRAVERSAL === $return) { + $this->stopTraversal = true; + break 2; + } else { + throw new \LogicException( + 'enterNode() returned invalid value of type ' . gettype($return) + ); + } + } + } + + if ($traverseChildren) { + $subNode = $this->traverseNode($subNode); + if ($this->stopTraversal) { + break; + } + } + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($subNode); + + if (null !== $return) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($subNode, $return); + $subNode = $return; + } elseif (self::STOP_TRAVERSAL === $return) { + $this->stopTraversal = true; + break 2; + } elseif (\is_array($return)) { + throw new \LogicException( + 'leaveNode() may only return an array ' . + 'if the parent structure is an array' + ); + } else { + throw new \LogicException( + 'leaveNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } + } + } + } + + return $node; + } + + /** + * Recursively traverse array (usually of nodes). + * + * @param array $nodes Array to traverse + * + * @return array Result of traversal (may be original array or changed one) + */ + protected function traverseArray(array $nodes) : array { + $doNodes = []; + + foreach ($nodes as $i => &$node) { + if ($node instanceof Node) { + $traverseChildren = true; + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($node); + if (null !== $return) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($node, $return); + $node = $return; + } elseif (self::DONT_TRAVERSE_CHILDREN === $return) { + $traverseChildren = false; + } elseif (self::DONT_TRAVERSE_CURRENT_AND_CHILDREN === $return) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; + } elseif (self::STOP_TRAVERSAL === $return) { + $this->stopTraversal = true; + break 2; + } else { + throw new \LogicException( + 'enterNode() returned invalid value of type ' . gettype($return) + ); + } + } + } + + if ($traverseChildren) { + $node = $this->traverseNode($node); + if ($this->stopTraversal) { + break; + } + } + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($node); + + if (null !== $return) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($node, $return); + $node = $return; + } elseif (\is_array($return)) { + $doNodes[] = [$i, $return]; + break; + } elseif (self::REMOVE_NODE === $return) { + $doNodes[] = [$i, []]; + break; + } elseif (self::STOP_TRAVERSAL === $return) { + $this->stopTraversal = true; + break 2; + } elseif (false === $return) { + throw new \LogicException( + 'bool(false) return from leaveNode() no longer supported. ' . + 'Return NodeTraverser::REMOVE_NODE instead' + ); + } else { + throw new \LogicException( + 'leaveNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } + } + } elseif (\is_array($node)) { + throw new \LogicException('Invalid node structure: Contains nested arrays'); + } + } + + if (!empty($doNodes)) { + while (list($i, $replace) = array_pop($doNodes)) { + array_splice($nodes, $i, 1, $replace); + } + } + + return $nodes; + } + + private function ensureReplacementReasonable($old, $new) { + if ($old instanceof Node\Stmt && $new instanceof Node\Expr) { + throw new \LogicException( + "Trying to replace statement ({$old->getType()}) " . + "with expression ({$new->getType()}). Are you missing a " . + "Stmt_Expression wrapper?" + ); + } + + if ($old instanceof Node\Expr && $new instanceof Node\Stmt) { + throw new \LogicException( + "Trying to replace expression ({$old->getType()}) " . + "with statement ({$new->getType()})" + ); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php new file mode 100644 index 00000000..77ff3d27 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php @@ -0,0 +1,29 @@ + $node stays as-is + * * NodeTraverser::DONT_TRAVERSE_CHILDREN + * => Children of $node are not traversed. $node stays as-is + * * NodeTraverser::STOP_TRAVERSAL + * => Traversal is aborted. $node stays as-is + * * otherwise + * => $node is set to the return value + * + * @param Node $node Node + * + * @return null|int|Node Replacement node (or special return value) + */ + public function enterNode(Node $node); + + /** + * Called when leaving a node. + * + * Return value semantics: + * * null + * => $node stays as-is + * * NodeTraverser::REMOVE_NODE + * => $node is removed from the parent array + * * NodeTraverser::STOP_TRAVERSAL + * => Traversal is aborted. $node stays as-is + * * array (of Nodes) + * => The return value is merged into the parent array (at the position of the $node) + * * otherwise + * => $node is set to the return value + * + * @param Node $node Node + * + * @return null|int|Node|Node[] Replacement node (or special return value) + */ + public function leaveNode(Node $node); + + /** + * Called once after traversal. + * + * Return value semantics: + * * null: $nodes stays as-is + * * otherwise: $nodes is set to the return value + * + * @param Node[] $nodes Array of nodes + * + * @return null|Node[] Array of nodes + */ + public function afterTraverse(array $nodes); +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php new file mode 100644 index 00000000..a85fa493 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php @@ -0,0 +1,20 @@ +setAttribute('origNode', $origNode); + return $node; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php new file mode 100644 index 00000000..9531edbc --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php @@ -0,0 +1,48 @@ +filterCallback = $filterCallback; + } + + /** + * Get found nodes satisfying the filter callback. + * + * Nodes are returned in pre-order. + * + * @return Node[] Found nodes + */ + public function getFoundNodes() : array { + return $this->foundNodes; + } + + public function beforeTraverse(array $nodes) { + $this->foundNodes = []; + + return null; + } + + public function enterNode(Node $node) { + $filterCallback = $this->filterCallback; + if ($filterCallback($node)) { + $this->foundNodes[] = $node; + } + + return null; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php new file mode 100644 index 00000000..596a7d7f --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php @@ -0,0 +1,50 @@ +filterCallback = $filterCallback; + } + + /** + * Get found node satisfying the filter callback. + * + * Returns null if no node satisfies the filter callback. + * + * @return null|Node Found node (or null if not found) + */ + public function getFoundNode() { + return $this->foundNode; + } + + public function beforeTraverse(array $nodes) { + $this->foundNode = null; + + return null; + } + + public function enterNode(Node $node) { + $filterCallback = $this->filterCallback; + if ($filterCallback($node)) { + $this->foundNode = $node; + return NodeTraverser::STOP_TRAVERSAL; + } + + return null; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php new file mode 100644 index 00000000..d0e7de02 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php @@ -0,0 +1,257 @@ +nameContext = new NameContext($errorHandler ?? new ErrorHandler\Throwing); + $this->preserveOriginalNames = $options['preserveOriginalNames'] ?? false; + $this->replaceNodes = $options['replaceNodes'] ?? true; + } + + /** + * Get name resolution context. + * + * @return NameContext + */ + public function getNameContext() : NameContext { + return $this->nameContext; + } + + public function beforeTraverse(array $nodes) { + $this->nameContext->startNamespace(); + return null; + } + + public function enterNode(Node $node) { + if ($node instanceof Stmt\Namespace_) { + $this->nameContext->startNamespace($node->name); + } elseif ($node instanceof Stmt\Use_) { + foreach ($node->uses as $use) { + $this->addAlias($use, $node->type, null); + } + } elseif ($node instanceof Stmt\GroupUse) { + foreach ($node->uses as $use) { + $this->addAlias($use, $node->type, $node->prefix); + } + } elseif ($node instanceof Stmt\Class_) { + if (null !== $node->extends) { + $node->extends = $this->resolveClassName($node->extends); + } + + foreach ($node->implements as &$interface) { + $interface = $this->resolveClassName($interface); + } + + $this->resolveAttrGroups($node); + if (null !== $node->name) { + $this->addNamespacedName($node); + } + } elseif ($node instanceof Stmt\Interface_) { + foreach ($node->extends as &$interface) { + $interface = $this->resolveClassName($interface); + } + + $this->resolveAttrGroups($node); + $this->addNamespacedName($node); + } elseif ($node instanceof Stmt\Enum_) { + foreach ($node->implements as &$interface) { + $interface = $this->resolveClassName($interface); + } + + $this->resolveAttrGroups($node); + if (null !== $node->name) { + $this->addNamespacedName($node); + } + } elseif ($node instanceof Stmt\Trait_) { + $this->resolveAttrGroups($node); + $this->addNamespacedName($node); + } elseif ($node instanceof Stmt\Function_) { + $this->resolveSignature($node); + $this->resolveAttrGroups($node); + $this->addNamespacedName($node); + } elseif ($node instanceof Stmt\ClassMethod + || $node instanceof Expr\Closure + || $node instanceof Expr\ArrowFunction + ) { + $this->resolveSignature($node); + $this->resolveAttrGroups($node); + } elseif ($node instanceof Stmt\Property) { + if (null !== $node->type) { + $node->type = $this->resolveType($node->type); + } + $this->resolveAttrGroups($node); + } elseif ($node instanceof Stmt\Const_) { + foreach ($node->consts as $const) { + $this->addNamespacedName($const); + } + } else if ($node instanceof Stmt\ClassConst) { + $this->resolveAttrGroups($node); + } else if ($node instanceof Stmt\EnumCase) { + $this->resolveAttrGroups($node); + } elseif ($node instanceof Expr\StaticCall + || $node instanceof Expr\StaticPropertyFetch + || $node instanceof Expr\ClassConstFetch + || $node instanceof Expr\New_ + || $node instanceof Expr\Instanceof_ + ) { + if ($node->class instanceof Name) { + $node->class = $this->resolveClassName($node->class); + } + } elseif ($node instanceof Stmt\Catch_) { + foreach ($node->types as &$type) { + $type = $this->resolveClassName($type); + } + } elseif ($node instanceof Expr\FuncCall) { + if ($node->name instanceof Name) { + $node->name = $this->resolveName($node->name, Stmt\Use_::TYPE_FUNCTION); + } + } elseif ($node instanceof Expr\ConstFetch) { + $node->name = $this->resolveName($node->name, Stmt\Use_::TYPE_CONSTANT); + } elseif ($node instanceof Stmt\TraitUse) { + foreach ($node->traits as &$trait) { + $trait = $this->resolveClassName($trait); + } + + foreach ($node->adaptations as $adaptation) { + if (null !== $adaptation->trait) { + $adaptation->trait = $this->resolveClassName($adaptation->trait); + } + + if ($adaptation instanceof Stmt\TraitUseAdaptation\Precedence) { + foreach ($adaptation->insteadof as &$insteadof) { + $insteadof = $this->resolveClassName($insteadof); + } + } + } + } + + return null; + } + + private function addAlias(Stmt\UseUse $use, int $type, Name $prefix = null) { + // Add prefix for group uses + $name = $prefix ? Name::concat($prefix, $use->name) : $use->name; + // Type is determined either by individual element or whole use declaration + $type |= $use->type; + + $this->nameContext->addAlias( + $name, (string) $use->getAlias(), $type, $use->getAttributes() + ); + } + + /** @param Stmt\Function_|Stmt\ClassMethod|Expr\Closure $node */ + private function resolveSignature($node) { + foreach ($node->params as $param) { + $param->type = $this->resolveType($param->type); + $this->resolveAttrGroups($param); + } + $node->returnType = $this->resolveType($node->returnType); + } + + private function resolveType($node) { + if ($node instanceof Name) { + return $this->resolveClassName($node); + } + if ($node instanceof Node\NullableType) { + $node->type = $this->resolveType($node->type); + return $node; + } + if ($node instanceof Node\UnionType || $node instanceof Node\IntersectionType) { + foreach ($node->types as &$type) { + $type = $this->resolveType($type); + } + return $node; + } + return $node; + } + + /** + * Resolve name, according to name resolver options. + * + * @param Name $name Function or constant name to resolve + * @param int $type One of Stmt\Use_::TYPE_* + * + * @return Name Resolved name, or original name with attribute + */ + protected function resolveName(Name $name, int $type) : Name { + if (!$this->replaceNodes) { + $resolvedName = $this->nameContext->getResolvedName($name, $type); + if (null !== $resolvedName) { + $name->setAttribute('resolvedName', $resolvedName); + } else { + $name->setAttribute('namespacedName', FullyQualified::concat( + $this->nameContext->getNamespace(), $name, $name->getAttributes())); + } + return $name; + } + + if ($this->preserveOriginalNames) { + // Save the original name + $originalName = $name; + $name = clone $originalName; + $name->setAttribute('originalName', $originalName); + } + + $resolvedName = $this->nameContext->getResolvedName($name, $type); + if (null !== $resolvedName) { + return $resolvedName; + } + + // unqualified names inside a namespace cannot be resolved at compile-time + // add the namespaced version of the name as an attribute + $name->setAttribute('namespacedName', FullyQualified::concat( + $this->nameContext->getNamespace(), $name, $name->getAttributes())); + return $name; + } + + protected function resolveClassName(Name $name) { + return $this->resolveName($name, Stmt\Use_::TYPE_NORMAL); + } + + protected function addNamespacedName(Node $node) { + $node->namespacedName = Name::concat( + $this->nameContext->getNamespace(), (string) $node->name); + } + + protected function resolveAttrGroups(Node $node) + { + foreach ($node->attrGroups as $attrGroup) { + foreach ($attrGroup->attrs as $attr) { + $attr->name = $this->resolveClassName($attr->name); + } + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php new file mode 100644 index 00000000..ea372e5b --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php @@ -0,0 +1,52 @@ +$node->getAttribute('parent'), the previous + * node can be accessed through $node->getAttribute('previous'), + * and the next node can be accessed through $node->getAttribute('next'). + */ +final class NodeConnectingVisitor extends NodeVisitorAbstract +{ + /** + * @var Node[] + */ + private $stack = []; + + /** + * @var ?Node + */ + private $previous; + + public function beforeTraverse(array $nodes) { + $this->stack = []; + $this->previous = null; + } + + public function enterNode(Node $node) { + if (!empty($this->stack)) { + $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); + } + + if ($this->previous !== null && $this->previous->getAttribute('parent') === $node->getAttribute('parent')) { + $node->setAttribute('previous', $this->previous); + $this->previous->setAttribute('next', $node); + } + + $this->stack[] = $node; + } + + public function leaveNode(Node $node) { + $this->previous = $node; + + array_pop($this->stack); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php new file mode 100644 index 00000000..b98d2bfa --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php @@ -0,0 +1,41 @@ +$node->getAttribute('parent'). + */ +final class ParentConnectingVisitor extends NodeVisitorAbstract +{ + /** + * @var Node[] + */ + private $stack = []; + + public function beforeTraverse(array $nodes) + { + $this->stack = []; + } + + public function enterNode(Node $node) + { + if (!empty($this->stack)) { + $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); + } + + $this->stack[] = $node; + } + + public function leaveNode(Node $node) + { + array_pop($this->stack); + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php new file mode 100644 index 00000000..d378d670 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php @@ -0,0 +1,25 @@ +parsers = $parsers; + } + + public function parse(string $code, ErrorHandler $errorHandler = null) { + if (null === $errorHandler) { + $errorHandler = new ErrorHandler\Throwing; + } + + list($firstStmts, $firstError) = $this->tryParse($this->parsers[0], $errorHandler, $code); + if ($firstError === null) { + return $firstStmts; + } + + for ($i = 1, $c = count($this->parsers); $i < $c; ++$i) { + list($stmts, $error) = $this->tryParse($this->parsers[$i], $errorHandler, $code); + if ($error === null) { + return $stmts; + } + } + + throw $firstError; + } + + private function tryParse(Parser $parser, ErrorHandler $errorHandler, $code) { + $stmts = null; + $error = null; + try { + $stmts = $parser->parse($code, $errorHandler); + } catch (Error $error) {} + return [$stmts, $error]; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php new file mode 100644 index 00000000..351db9ed --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -0,0 +1,2682 @@ +'", + "T_IS_GREATER_OR_EQUAL", + "T_SL", + "T_SR", + "'+'", + "'-'", + "'.'", + "'*'", + "'/'", + "'%'", + "'!'", + "T_INSTANCEOF", + "'~'", + "T_INC", + "T_DEC", + "T_INT_CAST", + "T_DOUBLE_CAST", + "T_STRING_CAST", + "T_ARRAY_CAST", + "T_OBJECT_CAST", + "T_BOOL_CAST", + "T_UNSET_CAST", + "'@'", + "T_POW", + "'['", + "T_NEW", + "T_CLONE", + "T_EXIT", + "T_IF", + "T_ELSEIF", + "T_ELSE", + "T_ENDIF", + "T_LNUMBER", + "T_DNUMBER", + "T_STRING", + "T_STRING_VARNAME", + "T_VARIABLE", + "T_NUM_STRING", + "T_INLINE_HTML", + "T_ENCAPSED_AND_WHITESPACE", + "T_CONSTANT_ENCAPSED_STRING", + "T_ECHO", + "T_DO", + "T_WHILE", + "T_ENDWHILE", + "T_FOR", + "T_ENDFOR", + "T_FOREACH", + "T_ENDFOREACH", + "T_DECLARE", + "T_ENDDECLARE", + "T_AS", + "T_SWITCH", + "T_MATCH", + "T_ENDSWITCH", + "T_CASE", + "T_DEFAULT", + "T_BREAK", + "T_CONTINUE", + "T_GOTO", + "T_FUNCTION", + "T_FN", + "T_CONST", + "T_RETURN", + "T_TRY", + "T_CATCH", + "T_FINALLY", + "T_USE", + "T_INSTEADOF", + "T_GLOBAL", + "T_STATIC", + "T_ABSTRACT", + "T_FINAL", + "T_PRIVATE", + "T_PROTECTED", + "T_PUBLIC", + "T_READONLY", + "T_VAR", + "T_UNSET", + "T_ISSET", + "T_EMPTY", + "T_HALT_COMPILER", + "T_CLASS", + "T_TRAIT", + "T_INTERFACE", + "T_EXTENDS", + "T_IMPLEMENTS", + "T_OBJECT_OPERATOR", + "T_LIST", + "T_ARRAY", + "T_CALLABLE", + "T_CLASS_C", + "T_TRAIT_C", + "T_METHOD_C", + "T_FUNC_C", + "T_LINE", + "T_FILE", + "T_START_HEREDOC", + "T_END_HEREDOC", + "T_DOLLAR_OPEN_CURLY_BRACES", + "T_CURLY_OPEN", + "T_PAAMAYIM_NEKUDOTAYIM", + "T_NAMESPACE", + "T_NS_C", + "T_DIR", + "T_NS_SEPARATOR", + "T_ELLIPSIS", + "T_NAME_FULLY_QUALIFIED", + "T_NAME_QUALIFIED", + "T_NAME_RELATIVE", + "';'", + "'{'", + "'}'", + "'('", + "')'", + "'$'", + "'`'", + "']'", + "'\"'", + "T_ENUM", + "T_NULLSAFE_OBJECT_OPERATOR", + "T_ATTRIBUTE" + ); + + protected $tokenToSymbol = array( + 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 56, 164, 168, 161, 55, 168, 168, + 159, 160, 53, 50, 8, 51, 52, 54, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 31, 156, + 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 70, 168, 163, 36, 168, 162, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 157, 35, 158, 58, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, + 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, + 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 165, 131, + 132, 133, 166, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 167 + ); + + protected $action = array( + 700, 670, 671, 672, 673, 674, 286, 675, 676, 677, + 713, 714, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 0, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, 245, 246, + 242, 243, 244,-32766,-32766, 678,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766, 1229, 245, 246, 1230, 679, + 680, 681, 682, 683, 684, 685, 899, 900, 747,-32766, + -32766,-32766,-32766,-32766,-32766, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 716, 739, 717, 718, + 719, 720, 708, 709, 710, 738, 711, 712, 697, 698, + 699, 701, 702, 703, 741, 742, 743, 744, 745, 746, + 875, 704, 705, 706, 707, 737, 728, 726, 727, 723, + 724, 1046, 715, 721, 722, 729, 730, 732, 731, 733, + 734, 55, 56, 425, 57, 58, 725, 736, 735, 755, + 59, 60, -226, 61,-32766,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766, 337,-32767,-32767,-32767,-32767, 29, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 620,-32766,-32766,-32766,-32766, 62, 63, + 1046,-32766,-32766,-32766, 64, 419, 65, 294, 295, 66, + 67, 68, 69, 70, 71, 72, 73, 823, 25, 302, + 74, 418, 984, 986, 669, 668, 1100, 1101, 1078, 755, + 755, 767, 1220, 768, 470,-32766,-32766,-32766, 341, 749, + 824, 54,-32767,-32767,-32767,-32767, 98, 99, 100, 101, + 102, 220, 221, 222, 362, 876,-32766, 27,-32766,-32766, + -32766,-32766,-32766, 1046, 493, 126, 1080, 1079, 1081, 370, + 1068, 930, 207, 478, 479, 952, 953, 954, 951, 950, + 949, 128, 480, 481, 803, 1106, 1107, 1108, 1109, 1103, + 1104, 319, 32, 297, 10, 211, -515, 1110, 1105, 669, + 668, 1080, 1079, 1081, 220, 221, 222, 41, 364, 341, + 334, 421, 336, 426, -128, -128, -128, 313, 1046, 469, + -4, 824, 54, 812, 770, 207, 40, 21, 427, -128, + 471, -128, 472, -128, 473, -128, 1046, 428, 220, 221, + 222,-32766, 33, 34, 429, 361, 327, 52, 35, 474, + -32766,-32766,-32766, 342, 357, 358, 475, 476, 48, 207, + 249, 669, 668, 477, 443, 300, 795, 846, 430, 431, + 28,-32766, 814,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + -32767,-32767,-32767,-32767,-32767, 952, 953, 954, 951, 950, + 949, 422, 755, 424, 426, 826, 634, -128,-32766,-32766, + 469, 824, 54, 288, 812, 1151, 755, 40, 21, 427, + 317, 471, 345, 472, 129, 473, 9, 1186, 428, 769, + 360, 324, 905, 33, 34, 429, 361, 1046, 415, 35, + 474, 944, 1068, 315, 125, 357, 358, 475, 476,-32766, + -32766,-32766, 926, 302, 477, 121, 1068, 759, 846, 430, + 431, 669, 668, 423, 755, 1152, 809, 1046, 480, 766, + -32766, 805,-32766,-32766,-32766,-32766, -261, 127, 347, 436, + 841, 341, 1078, 1200, 426, 446, 826, 634, -4, 807, + 469, 824, 54, 436, 812, 341, 755, 40, 21, 427, + 444, 471, 130, 472, 1068, 473, 346, 767, 428, 768, + -211, -211, -211, 33, 34, 429, 361, 308, 1076, 35, + 474,-32766,-32766,-32766, 1046, 357, 358, 475, 476,-32766, + -32766,-32766, 906, 120, 477, 539, 1068, 795, 846, 430, + 431, 436,-32766, 341,-32766,-32766,-32766, 1046, 480, 810, + -32766, 925,-32766,-32766, 754, 1080, 1079, 1081, 49,-32766, + -32766,-32766, 749, 751, 426, 1201, 826, 634, -211, 30, + 469, 669, 668, 436, 812, 341, 75, 40, 21, 427, + -32766, 471, 1064, 472, 124, 473, 669, 668, 428, 212, + -210, -210, -210, 33, 34, 429, 361, 51, 1186, 35, + 474, 755,-32766,-32766,-32766, 357, 358, 475, 476, 213, + 824, 54, 221, 222, 477, 20, 581, 795, 846, 430, + 431, 220, 221, 222, 755, 222, 247, 78, 79, 80, + 81, 341, 207, 517, 103, 104, 105, 752, 307, 131, + 637, 1068, 207, 341, 207, 122, 826, 634, -210, 36, + 106, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 1112, 307, 346, 436, 214, + 341, 824, 54, 426, 123, 250, 129, 134, 106, 469, + -32766, 572, 1112, 812, 245, 246, 40, 21, 427, 251, + 471, 252, 472, 341, 473, 453, 22, 428, 207, 899, + 900, 638, 33, 34, 429, 824, 54, -86, 35, 474, + 220, 221, 222, 314, 357, 358, 100, 101, 102, 239, + 240, 241, 645, 477, -230, 458, 589, 135, 374, 596, + 597, 207, 760, 640, 648, 642, 941, 654, 929, 662, + 822, 133, 307, 837, 426,-32766, 106, 749, 43, 44, + 469, 45, 442, 46, 812, 826, 634, 40, 21, 427, + 47, 471, 50, 472, 53, 473, 132, 608, 428, 302, + 604, -280,-32766, 33, 34, 429, 824, 54, 426, 35, + 474, 755, 957, -84, 469, 357, 358, 521, 812, 628, + 363, 40, 21, 427, 477, 471, 575, 472, -515, 473, + 847, 616, 428, -423,-32766, 11, 646, 33, 34, 429, + 824, 54, 445, 35, 474, 462, 285, 578, 1111, 357, + 358, 593, 369, 848, 594, 290, 826, 634, 477, 0, + 0, 532, 0, 0, 325, 0, 0, 0, 0, 0, + 651, 0, 0, 0, 322, 326, 0, 0, 0, 426, + 0, 0, 0, 0, 323, 469, 316, 318, -516, 812, + 862, 634, 40, 21, 427, 0, 471, 0, 472, 0, + 473, 1158, 0, 428, 0, -414, 6, 7, 33, 34, + 429, 824, 54, 426, 35, 474, 12, 14, 373, 469, + 357, 358, -424, 812, 563, 754, 40, 21, 427, 477, + 471, 248, 472, 839, 473, 38, 39, 428, 657, 658, + 765, 813, 33, 34, 429, 821, 800, 815, 35, 474, + 215, 216, 878, 869, 357, 358, 217, 870, 218, 798, + 863, 826, 634, 477, 860, 858, 936, 937, 934, 820, + 209, 804, 806, 808, 811, 933, 763, 764, 1100, 1101, + 935, 659, 78, 335, 426, 359, 1102, 635, 639, 641, + 469, 643, 644, 647, 812, 826, 634, 40, 21, 427, + 649, 471, 650, 472, 652, 473, 653, 636, 428, 796, + 1226, 1228, 762, 33, 34, 429, 215, 216, 845, 35, + 474, 761, 217, 844, 218, 357, 358, 1227, 843, 1060, + 831, 1048, 842, 1049, 477, 559, 209, 1106, 1107, 1108, + 1109, 1103, 1104, 398, 1100, 1101, 829, 942, 867, 1110, + 1105, 868, 1102, 457, 1225, 1194, 1192, 1177, 1157, 219, + 1190, 1091, 917, 1198, 1188, 0, 826, 634, 24, -433, + 26, 31, 37, 42, 76, 77, 210, 287, 292, 293, + 308, 309, 310, 311, 339, 356, 416, 0, -227, -226, + 16, 17, 18, 393, 454, 461, 463, 467, 553, 625, + 1051, 559, 1054, 1106, 1107, 1108, 1109, 1103, 1104, 398, + 907, 1116, 1050, 1026, 564, 1110, 1105, 1025, 1093, 1055, + 0, 1044, 0, 1057, 1056, 219, 1059, 1058, 1075, 0, + 1191, 1176, 1172, 1189, 1090, 1223, 1117, 1171, 600 + ); + + protected $actionCheck = array( + 2, 3, 4, 5, 6, 7, 14, 9, 10, 11, + 12, 13, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 0, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 9, 10, 11, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 69, 70, + 53, 54, 55, 9, 10, 57, 30, 116, 32, 33, + 34, 35, 36, 37, 38, 80, 69, 70, 83, 71, + 72, 73, 74, 75, 76, 77, 135, 136, 80, 33, + 34, 35, 36, 37, 38, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 31, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 13, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 3, 4, 5, 6, 7, 148, 149, 150, 82, + 12, 13, 160, 15, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 8, 44, 45, 46, 47, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 80, 33, 34, 35, 36, 50, 51, + 13, 9, 10, 11, 56, 128, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, + 72, 73, 59, 60, 37, 38, 78, 79, 80, 82, + 82, 106, 85, 108, 86, 9, 10, 11, 161, 80, + 1, 2, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 9, 10, 11, 106, 156, 30, 8, 32, 33, + 34, 35, 36, 13, 116, 8, 153, 154, 155, 8, + 122, 158, 30, 125, 126, 116, 117, 118, 119, 120, + 121, 31, 134, 135, 156, 137, 138, 139, 140, 141, + 142, 143, 145, 146, 8, 8, 133, 149, 150, 37, + 38, 153, 154, 155, 9, 10, 11, 159, 8, 161, + 162, 8, 164, 74, 75, 76, 77, 8, 13, 80, + 0, 1, 2, 84, 158, 30, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 13, 98, 9, 10, + 11, 9, 103, 104, 105, 106, 8, 70, 109, 110, + 9, 10, 11, 8, 115, 116, 117, 118, 70, 30, + 31, 37, 38, 124, 31, 8, 127, 128, 129, 130, + 8, 30, 156, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 116, 117, 118, 119, 120, + 121, 8, 82, 8, 74, 156, 157, 158, 33, 34, + 80, 1, 2, 8, 84, 163, 82, 87, 88, 89, + 133, 91, 70, 93, 152, 95, 108, 82, 98, 158, + 8, 113, 160, 103, 104, 105, 106, 13, 108, 109, + 110, 123, 122, 113, 157, 115, 116, 117, 118, 9, + 10, 11, 156, 71, 124, 157, 122, 127, 128, 129, + 130, 37, 38, 8, 82, 160, 156, 13, 134, 156, + 30, 156, 32, 33, 34, 35, 158, 157, 148, 159, + 122, 161, 80, 1, 74, 133, 156, 157, 158, 156, + 80, 1, 2, 159, 84, 161, 82, 87, 88, 89, + 157, 91, 157, 93, 122, 95, 161, 106, 98, 108, + 100, 101, 102, 103, 104, 105, 106, 159, 116, 109, + 110, 9, 10, 11, 13, 115, 116, 117, 118, 9, + 10, 11, 160, 16, 124, 81, 122, 127, 128, 129, + 130, 159, 30, 161, 32, 33, 34, 13, 134, 156, + 30, 156, 32, 33, 153, 153, 154, 155, 70, 9, + 10, 11, 80, 80, 74, 160, 156, 157, 158, 14, + 80, 37, 38, 159, 84, 161, 152, 87, 88, 89, + 30, 91, 160, 93, 14, 95, 37, 38, 98, 16, + 100, 101, 102, 103, 104, 105, 106, 70, 82, 109, + 110, 82, 33, 34, 35, 115, 116, 117, 118, 16, + 1, 2, 10, 11, 124, 160, 85, 127, 128, 129, + 130, 9, 10, 11, 82, 11, 14, 157, 9, 10, + 11, 161, 30, 85, 53, 54, 55, 154, 57, 157, + 31, 122, 30, 161, 30, 157, 156, 157, 158, 30, + 69, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 144, 57, 161, 159, 16, + 161, 1, 2, 74, 157, 16, 152, 157, 69, 80, + 116, 161, 144, 84, 69, 70, 87, 88, 89, 16, + 91, 16, 93, 161, 95, 75, 76, 98, 30, 135, + 136, 31, 103, 104, 105, 1, 2, 31, 109, 110, + 9, 10, 11, 31, 115, 116, 50, 51, 52, 50, + 51, 52, 31, 124, 160, 75, 76, 101, 102, 111, + 112, 30, 156, 157, 31, 31, 156, 157, 156, 157, + 31, 31, 57, 38, 74, 33, 69, 80, 70, 70, + 80, 70, 89, 70, 84, 156, 157, 87, 88, 89, + 70, 91, 70, 93, 70, 95, 70, 96, 98, 71, + 77, 82, 85, 103, 104, 105, 1, 2, 74, 109, + 110, 82, 82, 97, 80, 115, 116, 85, 84, 92, + 106, 87, 88, 89, 124, 91, 90, 93, 133, 95, + 128, 94, 98, 147, 116, 97, 31, 103, 104, 105, + 1, 2, 97, 109, 110, 97, 97, 100, 144, 115, + 116, 100, 106, 128, 113, 161, 156, 157, 124, -1, + -1, 151, -1, -1, 114, -1, -1, -1, -1, -1, + 31, -1, -1, -1, 131, 131, -1, -1, -1, 74, + -1, -1, -1, -1, 132, 80, 133, 133, 133, 84, + 156, 157, 87, 88, 89, -1, 91, -1, 93, -1, + 95, 144, -1, 98, -1, 147, 147, 147, 103, 104, + 105, 1, 2, 74, 109, 110, 147, 147, 147, 80, + 115, 116, 147, 84, 151, 153, 87, 88, 89, 124, + 91, 31, 93, 152, 95, 156, 156, 98, 156, 156, + 156, 156, 103, 104, 105, 156, 156, 156, 109, 110, + 50, 51, 156, 156, 115, 116, 56, 156, 58, 156, + 156, 156, 157, 124, 156, 156, 156, 156, 156, 156, + 70, 156, 156, 156, 156, 156, 156, 156, 78, 79, + 156, 158, 157, 157, 74, 157, 86, 157, 157, 157, + 80, 157, 157, 157, 84, 156, 157, 87, 88, 89, + 157, 91, 157, 93, 157, 95, 157, 157, 98, 158, + 158, 158, 158, 103, 104, 105, 50, 51, 158, 109, + 110, 158, 56, 158, 58, 115, 116, 158, 158, 158, + 158, 158, 158, 158, 124, 135, 70, 137, 138, 139, + 140, 141, 142, 143, 78, 79, 158, 158, 158, 149, + 150, 158, 86, 158, 158, 158, 158, 158, 164, 159, + 158, 158, 158, 158, 158, -1, 156, 157, 159, 162, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, -1, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 135, 160, 137, 138, 139, 140, 141, 142, 143, + 160, 160, 160, 160, 160, 149, 150, 160, 160, 163, + -1, 162, -1, 163, 163, 159, 163, 163, 163, -1, + 163, 163, 163, 163, 163, 163, 163, 163, 163 + ); + + protected $actionBase = array( + 0, 229, 310, 390, 470, 103, 325, 325, 784, -2, + -2, 149, -2, -2, -2, 660, 765, 799, 765, 589, + 694, 870, 870, 870, 252, 404, 404, 404, 514, 177, + 177, 918, 434, 118, 295, 313, 240, 491, 491, 491, + 491, 138, 138, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 89, 206, 773, 550, + 535, 775, 776, 777, 912, 709, 913, 856, 857, 700, + 858, 859, 862, 863, 864, 855, 865, 935, 866, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 322, 592, 285, 319, 232, 44, 691, 691, 691, + 691, 691, 691, 691, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 582, 530, 530, 530, 594, 860, 658, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 500, -21, -21, 492, 702, 420, 355, + 216, 549, 151, 26, 26, 331, 331, 331, 331, 331, + 46, 46, 5, 5, 5, 5, 153, 188, 188, 188, + 188, 121, 121, 121, 121, 314, 314, 394, 394, 362, + 300, 298, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 67, 656, 656, 659, 659, 522, 554, 554, + 554, 554, 679, -59, -59, 381, 462, 462, 462, 528, + 717, 854, 382, 382, 382, 382, 382, 382, 561, 561, + 561, -3, -3, -3, 692, 115, 137, 115, 137, 678, + 732, 450, 732, 338, 677, -15, 510, 810, 468, 707, + 850, 711, 853, 572, 735, 267, 529, 654, 674, 463, + 529, 529, 529, 529, 654, 610, 640, 608, 463, 529, + 463, 718, 323, 496, 89, 570, 507, 675, 778, 293, + 670, 780, 290, 373, 332, 566, 278, 435, 733, 781, + 914, 917, 385, 715, 675, 675, 675, 352, 511, 278, + -8, 605, 605, 605, 605, 156, 605, 605, 605, 605, + 251, 276, 375, 402, 779, 657, 657, 690, 872, 869, + 869, 657, 689, 657, 690, 874, 874, 874, 874, 657, + 657, 657, 657, 869, 869, 869, 688, 869, 239, 703, + 704, 704, 874, 742, 743, 657, 657, 712, 869, 869, + 869, 712, 695, 874, 701, 741, 277, 869, 874, 672, + 689, 672, 657, 701, 672, 689, 689, 672, 22, 666, + 668, 873, 875, 887, 790, 662, 685, 879, 880, 876, + 878, 871, 699, 744, 745, 497, 669, 671, 673, 680, + 719, 682, 713, 674, 667, 667, 667, 655, 720, 655, + 667, 667, 667, 667, 667, 667, 667, 667, 916, 646, + 731, 714, 653, 749, 553, 573, 791, 664, 811, 900, + 893, 867, 919, 881, 898, 655, 920, 739, 247, 643, + 882, 783, 786, 655, 883, 655, 792, 655, 902, 812, + 686, 813, 814, 667, 910, 921, 923, 924, 925, 927, + 928, 929, 930, 684, 931, 750, 696, 894, 299, 877, + 718, 729, 705, 788, 751, 820, 328, 932, 823, 655, + 655, 794, 785, 655, 795, 756, 740, 890, 757, 895, + 933, 664, 708, 896, 655, 706, 825, 934, 328, 681, + 683, 888, 661, 761, 886, 911, 885, 796, 649, 663, + 829, 830, 831, 693, 763, 891, 892, 889, 764, 803, + 665, 805, 697, 832, 807, 884, 768, 833, 834, 899, + 676, 730, 710, 698, 687, 809, 835, 897, 769, 770, + 771, 848, 772, 849, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 138, 138, 138, 138, -2, -2, + -2, -2, 0, 0, -2, 0, 0, 0, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 0, 0, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 599, -21, -21, -21, -21, 599, + -21, -21, -21, -21, -21, -21, -21, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, -21, 599, 599, 599, -21, + 382, -21, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 599, 0, 0, 599, + -21, 599, -21, 599, -21, -21, 599, 599, 599, 599, + 599, 599, 599, -21, -21, -21, -21, -21, -21, 0, + 561, 561, 561, 561, -21, -21, -21, -21, 382, 382, + 382, 382, 382, 382, 259, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 561, 561, -3, -3, + 382, 382, 382, 382, 382, 259, 382, 382, 463, 689, + 689, 689, 137, 137, 137, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 137, 463, 0, + 463, 0, 382, 463, 689, 463, 657, 137, 689, 689, + 463, 869, 616, 616, 616, 616, 328, 278, 0, 0, + 689, 689, 0, 0, 0, 0, 0, 689, 0, 0, + 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, + 667, 247, 0, 705, 335, 0, 0, 0, 0, 0, + 0, 705, 335, 347, 347, 0, 684, 667, 667, 667, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328 + ); + + protected $actionDefault = array( + 3,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 544, 544, 499,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 299, 299, 299, + 32767,32767,32767, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532,32767,32767,32767,32767,32767,32767, + 383,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 389, + 549,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 364, + 365, 367, 368, 298, 552, 533, 247, 390, 548, 297, + 249, 327, 503,32767,32767,32767, 329, 122, 258, 203, + 502, 125, 296, 234, 382, 384, 328, 303, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 302, 458, 361, 360, 359, 460,32767, 459, 496, + 496, 499,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 325, 487, 486, 326, 456, 330, 457, + 333, 461, 464, 331, 332, 349, 350, 347, 348, 351, + 462, 463, 480, 481, 478, 479, 301, 352, 353, 354, + 355, 482, 483, 484, 485,32767,32767, 543, 543,32767, + 32767, 282,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 340, 341, 471, 472,32767, 238, 238, + 238, 238, 283, 238,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 335, 336, + 334, 466, 467, 465, 432,32767,32767,32767, 434,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 504,32767, + 32767,32767,32767,32767, 517, 421, 171,32767, 413,32767, + 171, 171, 171, 171,32767, 222, 224, 167,32767, 171, + 32767, 490,32767,32767,32767,32767, 522, 345,32767,32767, + 116,32767,32767,32767, 559,32767, 517,32767, 116,32767, + 32767,32767,32767, 358, 337, 338, 339,32767,32767, 521, + 515, 474, 475, 476, 477,32767, 468, 469, 470, 473, + 32767,32767,32767,32767,32767,32767,32767,32767, 429, 435, + 435,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 520, 519,32767, 414, 498, 188, + 186, 186,32767, 208, 208,32767,32767, 190, 491, 510, + 32767, 190, 173,32767, 400, 175, 498,32767,32767, 240, + 32767, 240,32767, 400, 240,32767,32767, 240,32767, 415, + 439,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 379, 380, 493, 506, + 32767, 507,32767, 413, 343, 344, 346, 322,32767, 324, + 369, 370, 371, 372, 373, 374, 375, 377,32767, 419, + 32767, 422,32767,32767,32767, 257,32767, 557,32767,32767, + 306, 557,32767,32767,32767, 551,32767,32767, 300,32767, + 32767,32767,32767, 253,32767, 169,32767, 541,32767, 558, + 32767, 515,32767, 342,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 516,32767,32767,32767,32767, 229,32767, + 452,32767, 116,32767,32767,32767, 189,32767,32767, 304, + 248,32767,32767, 550,32767,32767,32767,32767,32767,32767, + 32767,32767, 114,32767, 170,32767,32767,32767, 191,32767, + 32767, 515,32767,32767,32767,32767,32767,32767,32767, 295, + 32767,32767,32767,32767,32767,32767,32767, 515,32767,32767, + 233,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 415,32767, 276,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 127, 127, 3, 127, 127, 260, + 3, 260, 127, 260, 260, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 216, 219, 208, 208, 164, + 127, 127, 268 + ); + + protected $goto = array( + 166, 140, 140, 140, 166, 187, 168, 144, 147, 141, + 142, 143, 149, 163, 163, 163, 163, 144, 144, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 138, 159, 160, 161, 162, 184, 139, 185, 494, 495, + 377, 496, 500, 501, 502, 503, 504, 505, 506, 507, + 970, 164, 145, 146, 148, 171, 176, 186, 203, 253, + 256, 258, 260, 263, 264, 265, 266, 267, 268, 269, + 277, 278, 279, 280, 303, 304, 328, 329, 330, 394, + 395, 396, 543, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 150, 151, 152, + 167, 153, 169, 154, 204, 170, 155, 156, 157, 205, + 158, 136, 621, 561, 757, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 1113, + 629, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 758, 520, 531, 509, 656, + 556, 1183, 750, 509, 592, 786, 1183, 888, 612, 613, + 884, 617, 618, 624, 626, 631, 633, 817, 855, 855, + 855, 855, 850, 856, 174, 891, 891, 1205, 1205, 177, + 178, 179, 401, 402, 403, 404, 173, 202, 206, 208, + 257, 259, 261, 262, 270, 271, 272, 273, 274, 275, + 281, 282, 283, 284, 305, 306, 331, 332, 333, 406, + 407, 408, 409, 175, 180, 254, 255, 181, 182, 183, + 498, 498, 498, 498, 498, 498, 861, 498, 498, 498, + 498, 498, 498, 498, 498, 498, 498, 510, 586, 538, + 601, 602, 510, 545, 546, 547, 548, 549, 550, 551, + 552, 554, 587, 1209, 560, 350, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 400, 607, 537, 537, 569, 533, 909, 535, 535, 497, + 499, 525, 541, 570, 573, 584, 591, 298, 296, 296, + 296, 298, 289, 299, 611, 378, 511, 614, 595, 947, + 375, 511, 437, 437, 437, 437, 437, 437, 1163, 437, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 1077, + 948, 338, 1175, 321, 1077, 898, 898, 898, 898, 606, + 898, 898, 1217, 1217, 1202, 753, 576, 605, 756, 1077, + 1077, 1077, 1077, 1077, 1077, 1069, 384, 384, 384, 391, + 1217, 877, 859, 857, 859, 655, 466, 512, 886, 881, + 753, 384, 753, 384, 968, 384, 895, 385, 588, 353, + 414, 384, 1231, 1019, 542, 1197, 1197, 1197, 568, 1094, + 386, 386, 386, 904, 915, 515, 1029, 19, 15, 372, + 389, 915, 940, 448, 450, 632, 340, 1216, 1216, 1114, + 615, 938, 840, 555, 775, 386, 913, 1070, 1073, 1074, + 399, 1069, 1182, 660, 23, 1216, 773, 1182, 544, 603, + 1066, 1219, 1071, 1174, 1071, 519, 1199, 1199, 1199, 1089, + 1088, 1072, 343, 523, 534, 519, 519, 772, 351, 352, + 13, 579, 583, 627, 1061, 388, 782, 562, 771, 515, + 783, 1181, 3, 4, 918, 956, 865, 451, 574, 1160, + 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 514, 529, 0, 0, 0, 0, + 514, 0, 529, 0, 0, 0, 0, 610, 513, 516, + 439, 440, 1067, 619, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 780, 1224, 0, 0, 0, 0, + 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 301, 301 + ); + + protected $gotoCheck = array( + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 57, 69, 15, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 128, + 9, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 16, 102, 32, 69, 32, + 32, 120, 6, 69, 32, 29, 120, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 50, 69, 69, + 69, 69, 69, 69, 27, 77, 77, 77, 77, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 119, 119, 119, 119, 119, 119, 33, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 67, 110, + 67, 67, 119, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 142, 57, 72, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 51, 51, 51, 51, 51, 51, 84, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 5, 5, 5, + 5, 5, 5, 5, 63, 46, 124, 63, 129, 98, + 63, 124, 57, 57, 57, 57, 57, 57, 133, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 98, 127, 82, 127, 57, 57, 57, 57, 57, 49, + 57, 57, 144, 144, 140, 11, 40, 40, 14, 57, + 57, 57, 57, 57, 57, 82, 13, 13, 13, 48, + 144, 14, 14, 14, 14, 14, 57, 14, 14, 14, + 11, 13, 11, 13, 102, 13, 79, 11, 70, 70, + 70, 13, 13, 103, 2, 9, 9, 9, 2, 34, + 125, 125, 125, 81, 13, 13, 34, 34, 34, 34, + 17, 13, 8, 8, 8, 8, 18, 143, 143, 8, + 8, 8, 9, 34, 25, 125, 85, 82, 82, 82, + 125, 82, 121, 74, 34, 143, 24, 121, 47, 34, + 116, 143, 82, 82, 82, 47, 121, 121, 121, 126, + 126, 82, 58, 58, 58, 47, 47, 23, 72, 72, + 58, 62, 62, 62, 114, 12, 23, 12, 23, 13, + 26, 121, 30, 30, 86, 100, 71, 65, 66, 132, + 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 9, -1, -1, -1, -1, + 9, -1, 9, -1, -1, -1, -1, 13, 9, 9, + 9, 9, 13, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 9, -1, -1, -1, -1, + -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 5 + ); + + protected $gotoBase = array( + 0, 0, -172, 0, 0, 353, 201, 0, 477, 149, + 0, 110, 195, 117, 426, 112, 203, 140, 171, 0, + 0, 0, 0, 168, 164, 157, 119, 27, 0, 205, + -118, 0, -428, 266, 51, 0, 0, 0, 0, 0, + 388, 0, 0, -24, 0, 0, 345, 484, 146, 133, + 209, 75, 0, 0, 0, 0, 0, 107, 161, 0, + 0, 0, 222, -77, 0, 106, 97, -343, 0, -94, + 135, 123, -129, 0, 129, 0, 0, -50, 0, 143, + 0, 159, 64, 0, 338, 132, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, + 121, 0, 165, 156, 0, 0, 0, 0, 0, 87, + 273, 259, 0, 0, 114, 0, 150, 0, 0, -5, + -91, 200, 0, 0, 84, 154, 202, 77, -48, 178, + 0, 0, 93, 187, 0, 0, 0, 0, 0, 0, + 136, 0, 286, 167, 102, 0, 0 + ); + + protected $gotoDefault = array( + -32768, 468, 664, 2, 665, 835, 740, 748, 598, 482, + 630, 582, 380, 1193, 792, 793, 794, 381, 368, 483, + 379, 410, 405, 781, 774, 776, 784, 172, 411, 787, + 1, 789, 518, 825, 1020, 365, 797, 366, 590, 799, + 527, 801, 802, 137, 382, 383, 528, 484, 390, 577, + 816, 276, 387, 818, 367, 819, 828, 371, 465, 455, + 460, 530, 557, 609, 432, 447, 571, 565, 536, 1086, + 566, 864, 349, 872, 661, 880, 883, 485, 558, 894, + 452, 902, 1099, 397, 908, 914, 919, 291, 922, 417, + 412, 585, 927, 928, 5, 932, 622, 623, 8, 312, + 955, 599, 969, 420, 1039, 1041, 486, 487, 522, 459, + 508, 526, 488, 1062, 441, 413, 1065, 433, 489, 490, + 434, 435, 1083, 355, 1168, 354, 449, 320, 1155, 580, + 1118, 456, 1208, 1164, 348, 491, 492, 376, 1187, 392, + 1203, 438, 1210, 1218, 344, 540, 567 + ); + + protected $ruleToNonTerminal = array( + 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, + 12, 12, 13, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 18, 18, 19, 19, 21, 21, + 17, 17, 22, 22, 23, 23, 24, 24, 25, 25, + 20, 20, 26, 28, 28, 29, 30, 30, 32, 31, + 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 14, 14, 54, 54, 56, 55, 55, 48, + 48, 58, 58, 59, 59, 60, 60, 61, 61, 15, + 16, 16, 16, 64, 64, 64, 65, 65, 68, 68, + 66, 66, 70, 70, 41, 41, 50, 50, 53, 53, + 53, 52, 52, 71, 42, 42, 42, 42, 72, 72, + 73, 73, 74, 74, 39, 39, 35, 35, 75, 37, + 37, 76, 36, 36, 38, 38, 49, 49, 49, 62, + 62, 78, 78, 79, 79, 81, 81, 81, 80, 80, + 63, 63, 82, 82, 82, 83, 83, 84, 84, 84, + 44, 44, 85, 85, 85, 45, 45, 86, 86, 87, + 87, 67, 88, 88, 88, 88, 93, 93, 94, 94, + 95, 95, 95, 95, 95, 96, 97, 97, 92, 92, + 89, 89, 91, 91, 99, 99, 98, 98, 98, 98, + 98, 98, 90, 90, 101, 100, 100, 46, 46, 40, + 40, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 34, 34, 47, + 47, 106, 106, 107, 107, 107, 107, 113, 102, 102, + 109, 109, 115, 115, 116, 117, 118, 118, 118, 118, + 118, 118, 118, 69, 69, 57, 57, 57, 57, 103, + 103, 122, 122, 119, 119, 123, 123, 123, 123, 104, + 104, 104, 108, 108, 108, 114, 114, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 27, 27, 27, 27, 27, 27, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 112, 112, 105, 105, 105, 105, 129, 129, 132, 132, + 131, 131, 133, 133, 51, 51, 51, 51, 135, 135, + 134, 134, 134, 134, 134, 136, 136, 121, 121, 124, + 124, 120, 120, 138, 137, 137, 137, 137, 125, 125, + 125, 125, 111, 111, 126, 126, 126, 126, 77, 139, + 139, 140, 140, 140, 110, 110, 141, 141, 142, 142, + 142, 142, 142, 127, 127, 127, 127, 144, 145, 143, + 143, 143, 143, 143, 143, 143, 146, 146, 146 + ); + + protected $ruleToLength = array( + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 5, 4, + 3, 4, 2, 3, 1, 1, 7, 6, 3, 1, + 3, 1, 3, 1, 1, 3, 1, 3, 1, 2, + 3, 1, 3, 3, 1, 3, 2, 0, 1, 1, + 1, 1, 1, 3, 5, 8, 3, 5, 9, 3, + 2, 3, 2, 3, 2, 3, 3, 3, 3, 1, + 2, 2, 5, 7, 9, 5, 6, 3, 3, 2, + 2, 1, 1, 1, 0, 2, 8, 0, 4, 1, + 3, 0, 1, 0, 1, 0, 1, 1, 1, 10, + 7, 6, 5, 1, 2, 2, 0, 2, 0, 2, + 0, 2, 1, 3, 1, 4, 1, 4, 1, 1, + 4, 1, 3, 3, 3, 4, 4, 5, 0, 2, + 4, 3, 1, 1, 1, 4, 0, 2, 3, 0, + 2, 4, 0, 2, 0, 3, 1, 2, 1, 1, + 0, 1, 3, 4, 6, 1, 1, 1, 0, 1, + 0, 2, 2, 3, 3, 1, 3, 1, 2, 2, + 3, 1, 1, 2, 4, 3, 1, 1, 3, 2, + 0, 1, 3, 3, 9, 3, 1, 3, 0, 2, + 4, 5, 4, 4, 4, 3, 1, 1, 1, 3, + 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 3, 3, 1, 0, + 1, 1, 3, 3, 4, 4, 1, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, + 4, 3, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 3, 2, 1, 2, 10, 11, 3, 3, 2, + 4, 4, 3, 4, 4, 4, 4, 7, 3, 2, + 0, 4, 1, 3, 2, 1, 2, 2, 4, 6, + 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 4, 4, 0, + 2, 1, 0, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 3, 1, 4, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, + 1, 3, 1, 1, 3, 3, 0, 2, 0, 1, + 3, 1, 3, 1, 1, 1, 1, 1, 6, 4, + 3, 4, 2, 4, 4, 1, 3, 1, 2, 1, + 1, 4, 1, 1, 3, 6, 4, 4, 4, 4, + 1, 4, 0, 1, 1, 3, 1, 1, 4, 3, + 1, 1, 1, 0, 0, 2, 3, 1, 3, 1, + 4, 2, 2, 2, 2, 1, 2, 1, 1, 1, + 4, 3, 3, 3, 6, 3, 1, 1, 1 + ); + + protected function initReduceCallbacks() { + $this->reduceCallbacks = [ + 0 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 1 => function ($stackPos) { + $this->semValue = $this->handleNamespaces($this->semStack[$stackPos-(1-1)]); + }, + 2 => function ($stackPos) { + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + }, + 3 => function ($stackPos) { + $this->semValue = array(); + }, + 4 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 5 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 6 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 7 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 8 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 9 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 10 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 11 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 12 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 13 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 14 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 15 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 16 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 17 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 18 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 19 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 20 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 21 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 22 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 23 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 24 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 25 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 26 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 27 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 28 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 29 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 30 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 31 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 32 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 33 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 34 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 35 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 36 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 37 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 38 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 39 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 40 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 41 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 42 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 43 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 44 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 45 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 46 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 47 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 48 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 49 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 50 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 51 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 52 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 53 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 54 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 55 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 56 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 57 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 58 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 59 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 60 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 61 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 62 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 63 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 64 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 65 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 66 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 67 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 68 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 69 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 70 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 71 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 72 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 73 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 74 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 75 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 76 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 77 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 78 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 79 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 80 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 81 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 82 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 83 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 84 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 85 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 86 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 87 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 88 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 89 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 90 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 91 => function ($stackPos) { + $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 92 => function ($stackPos) { + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 93 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 94 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 95 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 96 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 97 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); + $this->checkNamespace($this->semValue); + }, + 98 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($this->semValue); + }, + 99 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($this->semValue); + }, + 100 => function ($stackPos) { + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 101 => function ($stackPos) { + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 102 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 103 => function ($stackPos) { + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 104 => function ($stackPos) { + $this->semValue = Stmt\Use_::TYPE_FUNCTION; + }, + 105 => function ($stackPos) { + $this->semValue = Stmt\Use_::TYPE_CONSTANT; + }, + 106 => function ($stackPos) { + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 107 => function ($stackPos) { + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 108 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 109 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 110 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 111 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 112 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 113 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 114 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + }, + 115 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + }, + 116 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + }, + 117 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + }, + 118 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + }, + 119 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + }, + 120 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 121 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 122 => function ($stackPos) { + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 123 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 124 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 125 => function ($stackPos) { + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 126 => function ($stackPos) { + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + }, + 127 => function ($stackPos) { + $this->semValue = array(); + }, + 128 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 129 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 130 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 131 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 132 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 133 => function ($stackPos) { + + if ($this->semStack[$stackPos-(3-2)]) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; + } else { + $startAttributes = $this->startAttributeStack[$stackPos-(3-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; + if (null === $this->semValue) { $this->semValue = array(); } + } + + }, + 134 => function ($stackPos) { + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(5-2)], ['stmts' => is_array($this->semStack[$stackPos-(5-3)]) ? $this->semStack[$stackPos-(5-3)] : array($this->semStack[$stackPos-(5-3)]), 'elseifs' => $this->semStack[$stackPos-(5-4)], 'else' => $this->semStack[$stackPos-(5-5)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 135 => function ($stackPos) { + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(8-2)], ['stmts' => $this->semStack[$stackPos-(8-4)], 'elseifs' => $this->semStack[$stackPos-(8-5)], 'else' => $this->semStack[$stackPos-(8-6)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 136 => function ($stackPos) { + $this->semValue = new Stmt\While_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 137 => function ($stackPos) { + $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(5-4)], is_array($this->semStack[$stackPos-(5-2)]) ? $this->semStack[$stackPos-(5-2)] : array($this->semStack[$stackPos-(5-2)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 138 => function ($stackPos) { + $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 139 => function ($stackPos) { + $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 140 => function ($stackPos) { + $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 141 => function ($stackPos) { + $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 142 => function ($stackPos) { + $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 143 => function ($stackPos) { + $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 144 => function ($stackPos) { + $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 145 => function ($stackPos) { + $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 146 => function ($stackPos) { + $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 147 => function ($stackPos) { + $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 148 => function ($stackPos) { + $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 149 => function ($stackPos) { + $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 150 => function ($stackPos) { + $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 151 => function ($stackPos) { + $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 152 => function ($stackPos) { + $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 153 => function ($stackPos) { + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 154 => function ($stackPos) { + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 155 => function ($stackPos) { + $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 156 => function ($stackPos) { + $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); + }, + 157 => function ($stackPos) { + $this->semValue = new Stmt\Throw_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 158 => function ($stackPos) { + $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 159 => function ($stackPos) { + $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 160 => function ($stackPos) { + $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 161 => function ($stackPos) { + $this->semValue = array(); /* means: no statement */ + }, + 162 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 163 => function ($stackPos) { + $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; + if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ + }, + 164 => function ($stackPos) { + $this->semValue = array(); + }, + 165 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 166 => function ($stackPos) { + $this->semValue = new Stmt\Catch_(array($this->semStack[$stackPos-(8-3)]), $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 167 => function ($stackPos) { + $this->semValue = null; + }, + 168 => function ($stackPos) { + $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 169 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 170 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 171 => function ($stackPos) { + $this->semValue = false; + }, + 172 => function ($stackPos) { + $this->semValue = true; + }, + 173 => function ($stackPos) { + $this->semValue = false; + }, + 174 => function ($stackPos) { + $this->semValue = true; + }, + 175 => function ($stackPos) { + $this->semValue = false; + }, + 176 => function ($stackPos) { + $this->semValue = true; + }, + 177 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 178 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 179 => function ($stackPos) { + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(10-3)], ['byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-5)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + }, + 180 => function ($stackPos) { + $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->checkClass($this->semValue, $stackPos-(7-2)); + }, + 181 => function ($stackPos) { + $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(6-2)], ['extends' => $this->semStack[$stackPos-(6-3)], 'stmts' => $this->semStack[$stackPos-(6-5)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->checkInterface($this->semValue, $stackPos-(6-2)); + }, + 182 => function ($stackPos) { + $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 183 => function ($stackPos) { + $this->semValue = 0; + }, + 184 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + }, + 185 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_FINAL; + }, + 186 => function ($stackPos) { + $this->semValue = null; + }, + 187 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 188 => function ($stackPos) { + $this->semValue = array(); + }, + 189 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 190 => function ($stackPos) { + $this->semValue = array(); + }, + 191 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 192 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 193 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 194 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 195 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 196 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 197 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 198 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 199 => function ($stackPos) { + $this->semValue = null; + }, + 200 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 201 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 202 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 203 => function ($stackPos) { + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 204 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 205 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 206 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 207 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(5-3)]; + }, + 208 => function ($stackPos) { + $this->semValue = array(); + }, + 209 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 210 => function ($stackPos) { + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 211 => function ($stackPos) { + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 212 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 213 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 214 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 215 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 216 => function ($stackPos) { + $this->semValue = array(); + }, + 217 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 218 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(3-2)], is_array($this->semStack[$stackPos-(3-3)]) ? $this->semStack[$stackPos-(3-3)] : array($this->semStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 219 => function ($stackPos) { + $this->semValue = array(); + }, + 220 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 221 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 222 => function ($stackPos) { + $this->semValue = null; + }, + 223 => function ($stackPos) { + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 224 => function ($stackPos) { + $this->semValue = null; + }, + 225 => function ($stackPos) { + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 226 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + }, + 227 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + }, + 228 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + }, + 229 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 230 => function ($stackPos) { + $this->semValue = array(); + }, + 231 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 232 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 233 => function ($stackPos) { + $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); + }, + 234 => function ($stackPos) { + $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); + }, + 235 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 236 => function ($stackPos) { + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 237 => function ($stackPos) { + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 238 => function ($stackPos) { + $this->semValue = null; + }, + 239 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 240 => function ($stackPos) { + $this->semValue = null; + }, + 241 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 242 => function ($stackPos) { + $this->semValue = array(); + }, + 243 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 244 => function ($stackPos) { + $this->semValue = array(new Node\Arg($this->semStack[$stackPos-(3-2)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes)); + }, + 245 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 246 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 247 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 248 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 249 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 250 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 251 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 252 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 253 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 254 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 255 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 256 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 257 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 258 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 259 => function ($stackPos) { + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + }, + 260 => function ($stackPos) { + $this->semValue = array(); + }, + 261 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 262 => function ($stackPos) { + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); + }, + 263 => function ($stackPos) { + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 264 => function ($stackPos) { + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(9-1)); + }, + 265 => function ($stackPos) { + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 266 => function ($stackPos) { + $this->semValue = array(); + }, + 267 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 268 => function ($stackPos) { + $this->semValue = array(); + }, + 269 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 270 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 271 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 272 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 273 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 274 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 275 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 276 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 277 => function ($stackPos) { + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + }, + 278 => function ($stackPos) { + $this->semValue = null; + }, + 279 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 280 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 281 => function ($stackPos) { + $this->semValue = 0; + }, + 282 => function ($stackPos) { + $this->semValue = 0; + }, + 283 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 284 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 285 => function ($stackPos) { + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 286 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + }, + 287 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + }, + 288 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + }, + 289 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_STATIC; + }, + 290 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + }, + 291 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_FINAL; + }, + 292 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 293 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 294 => function ($stackPos) { + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 295 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 296 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 297 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 298 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 299 => function ($stackPos) { + $this->semValue = array(); + }, + 300 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 301 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 302 => function ($stackPos) { + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 303 => function ($stackPos) { + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 304 => function ($stackPos) { + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 305 => function ($stackPos) { + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 306 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 307 => function ($stackPos) { + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 308 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 309 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 310 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 311 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 312 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 313 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 314 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 315 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 316 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 317 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 318 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 319 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 320 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 321 => function ($stackPos) { + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 322 => function ($stackPos) { + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 323 => function ($stackPos) { + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 324 => function ($stackPos) { + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 325 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 326 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 327 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 328 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 329 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 330 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 331 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 332 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 333 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 334 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 335 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 336 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 337 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 338 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 339 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 340 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 341 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 342 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 343 => function ($stackPos) { + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 344 => function ($stackPos) { + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 345 => function ($stackPos) { + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 346 => function ($stackPos) { + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 347 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 348 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 349 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 350 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 351 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 352 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 353 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 354 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 355 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 356 => function ($stackPos) { + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 357 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 358 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 359 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 360 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 361 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 362 => function ($stackPos) { + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 363 => function ($stackPos) { + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 364 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 365 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 366 => function ($stackPos) { + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 367 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 368 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 369 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 370 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); + $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); + }, + 371 => function ($stackPos) { + $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 372 => function ($stackPos) { + $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 373 => function ($stackPos) { + $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 374 => function ($stackPos) { + $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 375 => function ($stackPos) { + $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 376 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); + }, + 377 => function ($stackPos) { + $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 378 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 379 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 380 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 381 => function ($stackPos) { + $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 382 => function ($stackPos) { + $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 383 => function ($stackPos) { + $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 384 => function ($stackPos) { + $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 385 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + }, + 386 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes); + }, + 387 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 388 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 389 => function ($stackPos) { + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 390 => function ($stackPos) { + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 391 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); + }, + 392 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); + }, + 393 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 394 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch(Scalar\String_::fromString($this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes), $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 395 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 396 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 397 => function ($stackPos) { + $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); + $this->checkClass($this->semValue[0], -1); + }, + 398 => function ($stackPos) { + $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 399 => function ($stackPos) { + list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 400 => function ($stackPos) { + $this->semValue = array(); + }, + 401 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 402 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 403 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 404 => function ($stackPos) { + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 405 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 406 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 407 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 408 => function ($stackPos) { + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 409 => function ($stackPos) { + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 410 => function ($stackPos) { + $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 411 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 412 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 413 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 414 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 415 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 416 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 417 => function ($stackPos) { + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 418 => function ($stackPos) { + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 419 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 420 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 421 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 422 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 423 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 424 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 425 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 426 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 427 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 428 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 429 => function ($stackPos) { + $this->semValue = null; + }, + 430 => function ($stackPos) { + $this->semValue = null; + }, + 431 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 432 => function ($stackPos) { + $this->semValue = array(); + }, + 433 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 434 => function ($stackPos) { + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 435 => function ($stackPos) { + $this->semValue = array(); + }, + 436 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 437 => function ($stackPos) { + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true); + }, + 438 => function ($stackPos) { + $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 439 => function ($stackPos) { + $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, false); + }, + 440 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 441 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 442 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 443 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 444 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 445 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 446 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 447 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 448 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], false); + }, + 449 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], false); + }, + 450 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 451 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 452 => function ($stackPos) { + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 453 => function ($stackPos) { + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 454 => function ($stackPos) { + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 455 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 456 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 457 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 458 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 459 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 460 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 461 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 462 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 463 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 464 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 465 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 466 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 467 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 468 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 469 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 470 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 471 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 472 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 473 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 474 => function ($stackPos) { + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 475 => function ($stackPos) { + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 476 => function ($stackPos) { + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 477 => function ($stackPos) { + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 478 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 479 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 480 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 481 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 482 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 483 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 484 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 485 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 486 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 487 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 488 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 489 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 490 => function ($stackPos) { + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 491 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 492 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 493 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 494 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + }, + 495 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + }, + 496 => function ($stackPos) { + $this->semValue = array(); + }, + 497 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 498 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 499 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 500 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 501 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 502 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 503 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 504 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 505 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 506 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 507 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 508 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 509 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 510 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 511 => function ($stackPos) { + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 512 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 513 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 514 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 515 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 516 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 517 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 518 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 519 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 520 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 521 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 522 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 523 => function ($stackPos) { + $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + }, + 524 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 525 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 526 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 527 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 528 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 529 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 530 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 531 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 532 => function ($stackPos) { + $this->semValue = null; + }, + 533 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 534 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 535 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 536 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 537 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 538 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 539 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 540 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 541 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 542 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 543 => function ($stackPos) { + $this->semValue = null; + }, + 544 => function ($stackPos) { + $this->semValue = array(); + }, + 545 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 546 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 547 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 548 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 549 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 550 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 551 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 552 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 553 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 554 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 555 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 556 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 557 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 558 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 559 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 560 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 561 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 562 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 563 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 564 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 565 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 566 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 567 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 568 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + ]; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php new file mode 100644 index 00000000..c6b9abd0 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -0,0 +1,2882 @@ +'", + "T_IS_GREATER_OR_EQUAL", + "T_SL", + "T_SR", + "'+'", + "'-'", + "'.'", + "'*'", + "'/'", + "'%'", + "'!'", + "T_INSTANCEOF", + "'~'", + "T_INC", + "T_DEC", + "T_INT_CAST", + "T_DOUBLE_CAST", + "T_STRING_CAST", + "T_ARRAY_CAST", + "T_OBJECT_CAST", + "T_BOOL_CAST", + "T_UNSET_CAST", + "'@'", + "T_POW", + "'['", + "T_NEW", + "T_CLONE", + "T_EXIT", + "T_IF", + "T_ELSEIF", + "T_ELSE", + "T_ENDIF", + "T_LNUMBER", + "T_DNUMBER", + "T_STRING", + "T_STRING_VARNAME", + "T_VARIABLE", + "T_NUM_STRING", + "T_INLINE_HTML", + "T_ENCAPSED_AND_WHITESPACE", + "T_CONSTANT_ENCAPSED_STRING", + "T_ECHO", + "T_DO", + "T_WHILE", + "T_ENDWHILE", + "T_FOR", + "T_ENDFOR", + "T_FOREACH", + "T_ENDFOREACH", + "T_DECLARE", + "T_ENDDECLARE", + "T_AS", + "T_SWITCH", + "T_MATCH", + "T_ENDSWITCH", + "T_CASE", + "T_DEFAULT", + "T_BREAK", + "T_CONTINUE", + "T_GOTO", + "T_FUNCTION", + "T_FN", + "T_CONST", + "T_RETURN", + "T_TRY", + "T_CATCH", + "T_FINALLY", + "T_USE", + "T_INSTEADOF", + "T_GLOBAL", + "T_STATIC", + "T_ABSTRACT", + "T_FINAL", + "T_PRIVATE", + "T_PROTECTED", + "T_PUBLIC", + "T_READONLY", + "T_VAR", + "T_UNSET", + "T_ISSET", + "T_EMPTY", + "T_HALT_COMPILER", + "T_CLASS", + "T_TRAIT", + "T_INTERFACE", + "T_ENUM", + "T_EXTENDS", + "T_IMPLEMENTS", + "T_OBJECT_OPERATOR", + "T_NULLSAFE_OBJECT_OPERATOR", + "T_LIST", + "T_ARRAY", + "T_CALLABLE", + "T_CLASS_C", + "T_TRAIT_C", + "T_METHOD_C", + "T_FUNC_C", + "T_LINE", + "T_FILE", + "T_START_HEREDOC", + "T_END_HEREDOC", + "T_DOLLAR_OPEN_CURLY_BRACES", + "T_CURLY_OPEN", + "T_PAAMAYIM_NEKUDOTAYIM", + "T_NAMESPACE", + "T_NS_C", + "T_DIR", + "T_NS_SEPARATOR", + "T_ELLIPSIS", + "T_NAME_FULLY_QUALIFIED", + "T_NAME_QUALIFIED", + "T_NAME_RELATIVE", + "T_ATTRIBUTE", + "';'", + "']'", + "'{'", + "'}'", + "'('", + "')'", + "'`'", + "'\"'", + "'$'" + ); + + protected $tokenToSymbol = array( + 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, + 163, 164, 53, 50, 8, 51, 52, 54, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, + 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 161, 35, 162, 58, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, + 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, + 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158 + ); + + protected $action = array( + 132, 133, 134, 575, 135, 136, 0, 738, 739, 740, + 137, 37, 850, 825, 851, 476,-32766,-32766,-32766,-32767, + -32767,-32767,-32767, 101, 102, 103, 104, 105, 1097, 1098, + 1099, 1096, 1095, 1094, 1100, 732, 731,-32766, 1289,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, + -32767, 1022, 377, 376, 2, 741,-32766,-32766,-32766,-32766, + -32766, 822, 417,-32766,-32766,-32766,-32766,-32766,-32766, 267, + 138, 399, 745, 746, 747, 748, 287,-32766, 423,-32766, + -32766,-32766,-32766,-32766,-32766, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 779, 576, 780, 781, + 782, 783, 771, 772, 340, 341, 774, 775, 760, 761, + 762, 764, 765, 766, 351, 806, 807, 808, 809, 810, + 577, 767, 768, 578, 579, 800, 791, 789, 790, 803, + 786, 787, -327, 423, 580, 581, 785, 582, 583, 584, + 585, 586, 587, 605, -590, 477, -86, 814, 788, 588, + 589, -590, 139,-32766,-32766,-32766, 132, 133, 134, 575, + 135, 136, 1046, 738, 739, 740, 137, 37, 323, 1013, + 823, 824, 1334, 1324,-32766, 1335,-32766,-32766,-32766,-32766, + -32766,-32766,-32766, 1097, 1098, 1099, 1096, 1095, 1094, 1100, + -587, 732, 731,-32766,-32766,-32766, 12, -587, 81,-32766, + -32766,-32766, 945, 946, 322, 927, 34, 947, 1224, 1223, + 1225, 741, -86, 942,-32766, 1075,-32766,-32766,-32766,-32766, + -32766, 239,-32766,-32766,-32766, 267, 138, 399, 745, 746, + 747, 748, 461, 462, 423, 35, 247, 103, 104, 105, + 128, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 779, 576, 780, 781, 782, 783, 771, 772, + 340, 341, 774, 775, 760, 761, 762, 764, 765, 766, + 351, 806, 807, 808, 809, 810, 577, 767, 768, 578, + 579, 800, 791, 789, 790, 803, 786, 787, -327, 144, + 580, 581, 785, 582, 583, 584, 585, 586, 587, 1222, + 82, 83, 84, -590, 788, 588, 589, -590, 148, 763, + 733, 734, 735, 736, 737, 1309, 738, 739, 740, 776, + 777, 36, 1308, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 288, 271, -587, + -193, 375, 376, -587, 976,-32766, 1021, 453, 454, 455, + 109, 417, 945, 946, 741, 712, 819, 947,-32766,-32766, + -32766, -271, 1073, 941, 1224, 1223, 1225, 288, 742, 743, + 744, 745, 746, 747, 748, -192, -365, 812, -365,-32766, + 599,-32766,-32766, 549, 749, 750, 751, 752, 753, 754, + 755, 756, 757, 758, 759, 779, 802, 780, 781, 782, + 783, 771, 772, 773, 801, 774, 775, 760, 761, 762, + 764, 765, 766, 805, 806, 807, 808, 809, 810, 811, + 767, 768, 769, 770, 800, 791, 789, 790, 803, 786, + 787, 251, 820, 778, 784, 785, 792, 793, 795, 794, + 796, 797, 732, 731, 1261, 1022, 1019, 788, 799, 798, + 49, 50, 51, 507, 52, 53, 1009, 1008, 1007, 1010, + 54, 55, -111, 56, 816, 1045, 14, -111, 1022, -111, + 287, 1305, 977, 306, 302, 1022, 238, -111, -111, -111, + -111, -111, -111, -111, -111, 106, 107, 108, 1089, 271, + -32766,-32766,-32766, 280, 284, 126, -193, 929, 57, 58, + 287, 109, 1019, -541, 59, 308, 60, 244, 245, 61, + 62, 63, 64, 65, 66, 67, 68, 1229, 27, 269, + 69, 439, 508, -341, 1022, 929, 1255, 1256, 509, 907, + 823, -192, 150, 907, 1253, 41, 24, 510, 352, 511, + 818, 512, 386, 513, 11, 699, 514, 515, 648, 25, + 814, 43, 44, 440, 372, 371, 907, 45, 516, 702, + 1220, 667, 668, 363, 334, -540, 357, -541, -541, 320, + 1215, 1249, 518, 519, 520, -581, 1074, 335, 724, -581, + 1019,-32766, -541, 336, 521, 522, 703, 1243, 1244, 1245, + 1246, 1240, 1241, 294, -541, 850, -547, 851, 823, 1247, + 1242, 365, 1022, 1224, 1223, 1225, 295, -153, -153, -153, + 369, 70, 897, 318, 319, 322, 897, 384, 149, 402, + 373, 374, -153, 435, -153, 436, -153, 280, -153, -540, + -540, 141, 1220, 378, 379, 639, 640, 322, 370, 897, + 907, 437, 438, 829, -540, -88, 151, 732, 731, 945, + 946, 153, 823,-32766, 517, -51, -540, 154, -546, 883, + 941, -111, -111, -111, 31, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 155, 74, + 27, 157, 32, 322, -85, 123, 124, 909, 129, 697, + 130, 909, 823, 697, -153, 143, 1253, 158,-32766, -544, + 1229, -542, 159, 160, 1222, 161, -79, 1134, 1136, -75, + 285,-32766,-32766,-32766, 909,-32766, 697,-32766, -539,-32766, + -301, -73,-32766, 897, -72, -71, 1220,-32766,-32766,-32766, + -16, 140, 1215,-32766,-32766, 732, 731, 322, -70,-32766, + 414, -69, -4, 907, -68, -67, 521, 522,-32766, 1243, + 1244, 1245, 1246, 1240, 1241, -66, -47, -18, 147, 270, + 281, 1247, 1242, -544, -544, -542, -542, 732, 731, 713, + 716, 906,-32766, 72, 146, 907, 319, 322, 1222, -297, + -542, 823, -539, -539, 276,-32766,-32766,-32766, 277,-32766, + -544,-32766, -542,-32766, 282, 283,-32766, -539, 909, 328, + 697,-32766,-32766,-32766,-32766, 704, 286,-32766,-32766, -539, + 1222, 923, 289,-32766, 414, 1220, 290,-32766,-32766,-32766, + 271,-32766,-32766,-32766, 47,-32766, 897, -111,-32766, 677, + 109, 814, 145,-32766,-32766,-32766,-32766, 823, 131,-32766, + -32766, 1336,-32766, 654, 670,-32766, 414, 1104, 370, 637, + 430, 551, 73, 13,-32766, 293, 555, 295, 897, 945, + 946, 649, 74, 434, 517, 458, 322, 487, 690, 842, + 941, -111, -111, -111, 301, 1022, 561, 655, 671, 1260, + 300,-32766, -539,-32766, 907, 603, 303, 1222, 296, 297, + 39, 1262, 9, 40,-32766,-32766,-32766, 0,-32766, 907, + -32766, 909,-32766, 697, -4,-32766, 0, 1229, 907, 0, + -32766,-32766,-32766,-32766, 307, 125,-32766,-32766, 0, 1222, + 907, 0,-32766, 414, 0, 0,-32766,-32766,-32766, 707, + -32766,-32766,-32766, 962,-32766, 697, -505,-32766, 714, -495, + 7, 482,-32766,-32766,-32766,-32766, -539, -539,-32766,-32766, + 16, 1222, 567, 367,-32766, 414, 925, 295,-32766,-32766, + -32766, -539,-32766,-32766,-32766, 822,-32766, 897, 721,-32766, + 722, -575, 888, -539,-32766,-32766,-32766, 986, 963, 970, + -32766,-32766, 897, -249, -249, -249,-32766, 414, 823, 370, + 960, 897, 971, 886, 958,-32766, 1078, 1081, 718, 1082, + 945, 946, 1079, 897, 1080, 517, 1086, 33, 1250, 834, + 883, 941, -111, -111, -111, 27, 1275, 1293, 1327, -248, + -248, -248, 1220, 642, 884, 370, 317, 823, 366, 698, + 701, 1253, 1331, 705, -111, 706, 945, 946, 708, 709, + 710, 517, 909,-32766, 697, -249, 883, 941, -111, -111, + -111, 711, 715, 700, -509, 1333, 845, 909, 48, 697, + -573, 1220, 844, 853, 295, 935, 909, 1215, 697, 74, + 978, 852, 1332, 322, 934, 932, 933, 936, 909, 1206, + 697, -248, 522, 916, 1243, 1244, 1245, 1246, 1240, 1241, + 926, 914, 968, 969, 1330, 1287, 1247, 1242, 1276, 1294, + -32766, 1300, 1303, 1191, -547, -546, 1222, -545, 72, -489, + 1, 319, 322,-32766,-32766,-32766, 28,-32766, 29,-32766, + 38,-32766, 298, 299,-32766, 42, 46, 71, 75,-32766, + -32766,-32766, 76, 77, 78,-32766,-32766, 368, 79, 80, + 142,-32766, 414, 152, 156, 243, 324, 352, 353, 127, + -32766, -274, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 364, 431, 0, -272, -271, 18, 19, 20, 21, + 23, 401, 478, 479, 486, 489, 490, 491, 492, 496, + 497, 498, 505, 684, 1233, 1174, 1251, 1048, 1047, 1028, + 0, 1210, 1024, -276, -103, 17, 22, 26, 292, 400, + 596, 600, 628, 689, 1178, 1228, 1175, 1306, 0, 0, + 1254, 0, 322 + ); + + protected $actionCheck = array( + 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, + 12, 13, 106, 1, 108, 31, 9, 10, 11, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, + 118, 119, 120, 121, 122, 37, 38, 30, 1, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 138, 106, 107, 8, 57, 9, 10, 11, 9, + 10, 155, 116, 9, 10, 11, 9, 10, 11, 71, + 72, 73, 74, 75, 76, 77, 163, 30, 80, 32, + 33, 34, 35, 36, 30, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 8, 80, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 51, 1, 161, 31, 80, 150, 151, + 152, 8, 154, 9, 10, 11, 2, 3, 4, 5, + 6, 7, 164, 9, 10, 11, 12, 13, 70, 1, + 82, 159, 80, 85, 30, 83, 32, 33, 34, 35, + 36, 37, 38, 116, 117, 118, 119, 120, 121, 122, + 1, 37, 38, 9, 10, 11, 8, 8, 161, 9, + 10, 11, 117, 118, 167, 1, 8, 122, 155, 156, + 157, 57, 97, 128, 30, 162, 32, 33, 34, 35, + 30, 14, 32, 33, 34, 71, 72, 73, 74, 75, + 76, 77, 134, 135, 80, 147, 148, 50, 51, 52, + 8, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 164, 8, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 80, + 9, 10, 11, 160, 150, 151, 152, 164, 154, 2, + 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, + 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 30, 57, 160, + 8, 106, 107, 164, 31, 9, 137, 129, 130, 131, + 69, 116, 117, 118, 57, 161, 80, 122, 9, 10, + 11, 164, 1, 128, 155, 156, 157, 30, 71, 72, + 73, 74, 75, 76, 77, 8, 106, 80, 108, 30, + 1, 32, 33, 85, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 8, 156, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 37, 38, 146, 138, 116, 150, 151, 152, + 2, 3, 4, 5, 6, 7, 119, 120, 121, 122, + 12, 13, 101, 15, 80, 1, 101, 106, 138, 108, + 163, 1, 159, 8, 113, 138, 97, 116, 117, 118, + 119, 120, 121, 122, 123, 53, 54, 55, 123, 57, + 9, 10, 11, 163, 30, 14, 164, 122, 50, 51, + 163, 69, 116, 70, 56, 8, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, + 72, 73, 74, 162, 138, 122, 78, 79, 80, 1, + 82, 164, 14, 1, 86, 87, 88, 89, 163, 91, + 156, 93, 106, 95, 108, 161, 98, 99, 75, 76, + 80, 103, 104, 105, 106, 107, 1, 109, 110, 31, + 116, 75, 76, 115, 116, 70, 163, 134, 135, 8, + 122, 1, 124, 125, 126, 160, 159, 8, 161, 164, + 116, 137, 149, 8, 136, 137, 31, 139, 140, 141, + 142, 143, 144, 145, 161, 106, 163, 108, 82, 151, + 152, 8, 138, 155, 156, 157, 158, 75, 76, 77, + 8, 163, 84, 165, 166, 167, 84, 8, 101, 102, + 106, 107, 90, 8, 92, 8, 94, 163, 96, 134, + 135, 161, 116, 106, 107, 111, 112, 167, 106, 84, + 1, 8, 8, 8, 149, 31, 14, 37, 38, 117, + 118, 14, 82, 137, 122, 31, 161, 14, 163, 127, + 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 14, 163, + 70, 14, 14, 167, 31, 16, 16, 159, 16, 161, + 16, 159, 82, 161, 162, 16, 86, 16, 74, 70, + 1, 70, 16, 16, 80, 16, 31, 59, 60, 31, + 37, 87, 88, 89, 159, 91, 161, 93, 70, 95, + 35, 31, 98, 84, 31, 31, 116, 103, 104, 105, + 31, 161, 122, 109, 110, 37, 38, 167, 31, 115, + 116, 31, 0, 1, 31, 31, 136, 137, 124, 139, + 140, 141, 142, 143, 144, 31, 31, 31, 31, 31, + 31, 151, 152, 134, 135, 134, 135, 37, 38, 31, + 31, 31, 74, 163, 31, 1, 166, 167, 80, 35, + 149, 82, 134, 135, 35, 87, 88, 89, 35, 91, + 161, 93, 161, 95, 35, 35, 98, 149, 159, 35, + 161, 103, 104, 105, 74, 31, 37, 109, 110, 161, + 80, 38, 37, 115, 116, 116, 37, 87, 88, 89, + 57, 91, 124, 93, 70, 95, 84, 128, 98, 77, + 69, 80, 70, 103, 104, 105, 137, 82, 31, 109, + 110, 83, 85, 96, 94, 115, 116, 82, 106, 113, + 108, 85, 154, 97, 124, 113, 89, 158, 84, 117, + 118, 90, 163, 128, 122, 97, 167, 97, 92, 127, + 128, 129, 130, 131, 133, 138, 153, 100, 100, 146, + 132, 74, 70, 137, 1, 153, 114, 80, 134, 135, + 159, 146, 150, 159, 87, 88, 89, -1, 91, 1, + 93, 159, 95, 161, 162, 98, -1, 1, 1, -1, + 103, 104, 105, 74, 132, 161, 109, 110, -1, 80, + 1, -1, 115, 116, -1, -1, 87, 88, 89, 31, + 91, 124, 93, 159, 95, 161, 149, 98, 31, 149, + 149, 102, 103, 104, 105, 74, 134, 135, 109, 110, + 149, 80, 81, 149, 115, 116, 154, 158, 87, 88, + 89, 149, 91, 124, 93, 155, 95, 84, 159, 98, + 159, 163, 159, 161, 103, 104, 105, 159, 159, 159, + 109, 110, 84, 100, 101, 102, 115, 116, 82, 106, + 159, 84, 159, 159, 159, 124, 159, 159, 162, 159, + 117, 118, 159, 84, 159, 122, 159, 161, 160, 160, + 127, 128, 129, 130, 131, 70, 160, 160, 160, 100, + 101, 102, 116, 160, 162, 106, 161, 82, 161, 161, + 161, 86, 162, 161, 128, 161, 117, 118, 161, 161, + 161, 122, 159, 137, 161, 162, 127, 128, 129, 130, + 131, 161, 161, 161, 165, 162, 162, 159, 70, 161, + 163, 116, 162, 162, 158, 162, 159, 122, 161, 163, + 162, 162, 162, 167, 162, 162, 162, 162, 159, 162, + 161, 162, 137, 162, 139, 140, 141, 142, 143, 144, + 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, + 74, 162, 162, 165, 163, 163, 80, 163, 163, 163, + 163, 166, 167, 87, 88, 89, 163, 91, 163, 93, + 163, 95, 134, 135, 98, 163, 163, 163, 163, 103, + 104, 105, 163, 163, 163, 109, 110, 149, 163, 163, + 163, 115, 116, 163, 163, 163, 163, 163, 163, 161, + 124, 164, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, -1, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, -1, -1, + 166, -1, 167 + ); + + protected $actionBase = array( + 0, -2, 154, 542, 752, 893, 929, 580, 53, 394, + 855, 307, 307, 67, 307, 307, 307, 565, 908, 908, + 917, 908, 538, 784, 649, 649, 649, 708, 708, 708, + 708, 740, 740, 849, 849, 881, 817, 634, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 12, 323, 389, 678, 1044, 1050, 1046, 1051, + 1042, 1041, 1045, 1047, 1052, 942, 943, 753, 946, 947, + 949, 950, 1048, 873, 1043, 1049, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 346, 491, 50, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 54, 54, 54, 620, 620, + 359, 190, 184, 955, 955, 955, 955, 955, 955, 955, + 955, 955, 955, 658, 47, 144, 144, 7, 7, 7, + 7, 7, 371, -25, -25, -25, -25, 709, 347, 916, + 474, 526, 375, 280, 317, 245, 340, 340, 187, 187, + 396, 396, -87, -87, 396, 396, 396, 747, 747, 747, + 747, 443, 505, -94, 308, 454, 480, 480, 480, 480, + 454, 454, 454, 454, 755, 1054, 454, 454, 454, 641, + 822, 822, 998, 442, 442, 442, 822, 499, 776, 88, + 499, 88, 37, 92, 756, 85, -54, 425, 756, 639, + 764, 189, 143, 820, 524, 820, 1040, 385, 767, 413, + 735, 688, 857, 902, 1053, 787, 940, 788, 941, 228, + 98, 685, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1055, 415, 1040, 286, 1055, 1055, 1055, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 534, 286, 483, 496, 286, 774, 415, 12, 800, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 736, + -16, 12, 323, 204, 204, 427, 168, 204, 204, 204, + 204, 12, 12, 12, 524, 773, 733, 537, 742, 377, + 773, 773, 773, 115, 124, 207, 342, 695, 754, 446, + 761, 761, 775, 957, 957, 761, 765, 761, 775, 973, + 761, 761, 957, 957, 809, 232, 625, 579, 612, 627, + 957, 475, 761, 761, 761, 761, 792, 643, 761, 433, + 281, 761, 761, 792, 758, 739, 46, 751, 957, 957, + 957, 792, 603, 751, 751, 751, 819, 821, 746, 738, + 571, 507, 645, 198, 783, 738, 738, 761, 619, 746, + 738, 746, 738, 812, 738, 738, 738, 746, 738, 765, + 585, 738, 691, 644, 188, 738, 6, 974, 975, 624, + 979, 967, 980, 1009, 981, 985, 878, 956, 992, 972, + 986, 965, 963, 750, 679, 680, 801, 797, 954, 771, + 771, 771, 951, 771, 771, 771, 771, 771, 771, 771, + 771, 679, 858, 814, 745, 777, 995, 682, 684, 743, + 872, 899, 948, 994, 1030, 987, 741, 689, 1016, 999, + 846, 875, 1000, 1001, 1017, 1031, 1032, 880, 772, 903, + 904, 859, 1003, 879, 771, 974, 985, 663, 972, 986, + 965, 963, 734, 724, 720, 723, 717, 704, 700, 703, + 737, 1033, 907, 818, 866, 1002, 952, 679, 867, 1012, + 856, 1018, 1019, 877, 778, 768, 868, 910, 1004, 1005, + 1006, 882, 1034, 884, 744, 1013, 997, 1020, 780, 911, + 1021, 1022, 1023, 1024, 887, 913, 888, 889, 823, 781, + 1010, 757, 918, 528, 769, 770, 789, 1008, 642, 993, + 900, 919, 920, 1025, 1026, 1027, 922, 923, 990, 828, + 1014, 760, 1015, 1011, 829, 830, 647, 785, 1035, 759, + 763, 779, 653, 674, 924, 925, 927, 991, 748, 762, + 841, 843, 1037, 683, 1038, 931, 677, 844, 696, 938, + 1029, 697, 699, 786, 901, 811, 782, 766, 1007, 749, + 845, 939, 847, 848, 850, 1028, 853, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 458, 458, 458, + 458, 458, 458, 307, 307, 307, 307, 0, 0, 307, + 0, 0, 0, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 219, 219, 291, 291, 291, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 0, + 291, 291, 291, 291, 291, 291, 291, 291, 809, 442, + 442, 442, 442, 219, 219, 219, 219, 219, -88, -88, + 219, 809, 219, 219, 442, 442, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 0, 0, 286, + 88, 219, 765, 765, 765, 765, 219, 219, 219, 219, + 88, 88, 219, 219, 219, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 88, 0, 286, 0, 765, 765, + 219, 0, 809, 314, 219, 0, 0, 0, 0, 286, + 765, 286, 415, 761, 88, 761, 415, 415, 204, 12, + 314, 527, 527, 527, 527, 0, 0, 524, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 765, + 0, 809, 0, 765, 765, 765, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 765, 0, 0, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, + 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, + 0, 771, 778, 0, 778, 0, 771, 771, 771, 0, + 0, 0, 0, 785, 683 + ); + + protected $actionDefault = array( + 3,32767, 103,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 101,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 593, 593, 593, + 593,32767,32767, 253, 103,32767,32767, 467, 385, 385, + 385,32767,32767, 537, 537, 537, 537, 537, 537,32767, + 32767,32767,32767,32767,32767, 467,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 101,32767, + 32767,32767, 37, 7, 8, 10, 11, 50, 17, 323, + 32767,32767,32767,32767, 103,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 586,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 471, 450, 451, 453, + 454, 384, 538, 592, 326, 589, 383, 146, 338, 328, + 241, 329, 257, 472, 258, 473, 476, 477, 214, 286, + 380, 150, 414, 468, 416, 466, 470, 415, 390, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 388, 389, 469, 447, 446, 445,32767,32767, + 412, 413, 417,32767,32767,32767,32767,32767,32767,32767, + 32767, 103,32767, 387, 420, 418, 419, 436, 437, 434, + 435, 438,32767, 439, 440, 441, 442,32767, 315,32767, + 32767,32767, 364, 362, 315, 112,32767,32767, 427, 428, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767, 531, 444,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 103,32767, 101, 533, + 409, 411, 501, 422, 423, 421, 391,32767, 508,32767, + 103, 510,32767,32767,32767,32767,32767,32767,32767, 532, + 32767, 539, 539,32767, 494, 101, 194,32767,32767,32767, + 194, 194,32767,32767,32767,32767,32767,32767,32767,32767, + 600, 494, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111,32767, 194, 111,32767,32767,32767, 101, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 189,32767, 267, 269, 103, 554, 194,32767, 513,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 506, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 494, 432, 139,32767, 139, 539, + 424, 425, 426, 496, 539, 539, 539, 311, 288,32767, + 32767,32767,32767, 511, 511, 101, 101, 101, 101, 506, + 32767,32767,32767,32767, 112, 100, 100, 100, 100, 100, + 104, 102,32767,32767,32767,32767, 222, 100,32767, 102, + 102,32767,32767, 222, 224, 211, 102, 226,32767, 558, + 559, 222, 102, 226, 226, 226, 246, 246, 483, 317, + 102, 100, 102, 102, 196, 317, 317,32767, 102, 483, + 317, 483, 317, 198, 317, 317, 317, 483, 317,32767, + 102, 317, 213, 100, 100, 317,32767,32767,32767, 496, + 32767,32767,32767,32767,32767,32767,32767, 221,32767,32767, + 32767,32767,32767,32767,32767, 526,32767, 543, 556, 430, + 431, 433, 541, 455, 456, 457, 458, 459, 460, 461, + 463, 588,32767, 500,32767,32767,32767,32767, 337, 598, + 32767, 598,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 599,32767, 539, + 32767,32767,32767,32767, 429, 9, 76, 489, 43, 44, + 52, 58, 517, 518, 519, 520, 514, 515, 521, 516, + 32767,32767, 522, 564,32767,32767, 540, 591,32767,32767, + 32767,32767,32767,32767, 139,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 526,32767, 137,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 539,32767,32767,32767,32767, 313, 310,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 539,32767,32767,32767,32767,32767, 290, + 32767, 307,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 285,32767, + 32767, 379,32767,32767,32767,32767, 358,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 152, 152, 3, + 3, 340, 152, 152, 152, 340, 340, 152, 340, 340, + 340, 152, 152, 152, 152, 152, 152, 279, 184, 261, + 264, 246, 246, 152, 350, 152 + ); + + protected $goto = array( + 194, 194, 685, 425, 653, 346, 614, 650, 419, 310, + 311, 331, 569, 316, 424, 332, 426, 630, 1200, 930, + 693, 1051, 1201, 1204, 931, 1205, 165, 165, 165, 165, + 218, 195, 191, 191, 175, 177, 213, 191, 191, 191, + 191, 191, 192, 192, 192, 192, 192, 192, 186, 187, + 188, 189, 190, 215, 213, 216, 529, 530, 415, 531, + 533, 534, 535, 536, 537, 538, 539, 540, 1120, 166, + 167, 168, 193, 169, 170, 171, 164, 172, 173, 174, + 176, 212, 214, 217, 235, 240, 241, 242, 254, 255, + 256, 257, 258, 259, 260, 261, 263, 264, 265, 266, + 278, 279, 313, 314, 315, 420, 421, 422, 574, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 178, 234, 179, 196, 197, 198, + 236, 186, 187, 188, 189, 190, 215, 1120, 199, 180, + 181, 182, 200, 196, 183, 237, 201, 199, 163, 202, + 203, 184, 204, 205, 206, 185, 207, 208, 209, 210, + 211, 275, 275, 275, 275, 843, 593, 646, 647, 560, + 664, 665, 666, 720, 629, 631, 840, 418, 651, 604, + 841, 350, 675, 679, 996, 683, 691, 992, 616, 616, + 817, 350, 350, 1252, 1252, 1252, 1252, 1252, 1252, 1252, + 1252, 1252, 1252, 1092, 1093, 350, 350, 874, 350, 848, + 1337, 896, 891, 892, 905, 849, 893, 846, 894, 895, + 847, 548, 900, 899, 901, 350, 391, 394, 554, 594, + 598, 1270, 1270, 1072, 1068, 1069, 1270, 1270, 1270, 1270, + 1270, 1270, 1270, 1270, 1270, 1270, 1268, 1268, 815, 347, + 348, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1221, 1020, 1221, 1020, 1221, 836, 5, 1020, 6, + 1020, 1020, 1281, 961, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 349, 349, 349, 349, 1221, + 460, 460, 566, 678, 1221, 1221, 1221, 1221, 344, 460, + 1221, 1221, 1221, 1302, 1302, 1302, 1302, 602, 617, 620, + 621, 622, 623, 643, 644, 645, 695, 836, 912, 553, + 546, 1310, 913, 548, 532, 532, 821, 856, 982, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 543, + 473, 543, 868, 543, 928, 855, 928, 389, 475, 337, + 546, 553, 562, 563, 339, 572, 595, 609, 610, 1320, + 1320, 249, 249, 1026, 1025, 15, 821, 450, 821, 494, + 565, 495, 955, 955, 955, 955, 1320, 501, 450, 949, + 956, 839, 652, 1321, 1321, 1169, 1214, 246, 246, 246, + 246, 248, 250, 1323, 985, 959, 959, 957, 959, 719, + 1321, 545, 994, 989, 470, 1295, 1296, 953, 405, 692, + 917, 1108, 432, 541, 541, 541, 541, 612, 597, 452, + 444, 1029, 1030, 1001, 658, 444, 1292, 444, 1292, 674, + 1292, 860, 833, 656, 980, 836, 861, 547, 557, 854, + 321, 305, 547, 333, 557, 1297, 1298, 392, 456, 570, + 607, 1211, 944, 398, 858, 1304, 1304, 1304, 1304, 463, + 573, 464, 465, 608, 1004, 866, 403, 404, 1328, 1329, + 1057, 662, 1212, 663, 471, 407, 408, 409, 723, 676, + 870, 1288, 410, 624, 626, 627, 342, 427, 1216, 869, + 857, 1056, 1060, 427, 864, 1061, 1103, 966, 0, 0, + 964, 1027, 1027, 0, 0, 0, 657, 1038, 1034, 1035, + 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, + 444, 0, 1059, 444, 954, 0, 1290, 1290, 1059, 592, + 1085, 0, 696, 682, 682, 0, 502, 688, 1083, 0, + 0, 0, 1217, 1218, 272, 428, 1101, 873, 0, 544, + 831, 544, 0, 0, 0, 673, 938, 0, 0, 1015, + 1031, 1032, 0, 0, 0, 0, 0, 0, 1219, 1278, + 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 252, 252, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 999, 999 + ); + + protected $gotoCheck = array( + 42, 42, 72, 65, 65, 96, 55, 55, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 78, 78, + 9, 126, 78, 78, 78, 78, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 23, 23, 23, 23, 15, 129, 85, 85, 48, + 85, 85, 85, 48, 48, 48, 26, 13, 48, 13, + 27, 14, 48, 48, 48, 48, 48, 48, 107, 107, + 7, 14, 14, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 143, 143, 14, 14, 45, 14, 15, + 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 14, 64, 15, 64, 14, 58, 58, 58, 58, + 58, 168, 168, 15, 15, 15, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 169, 169, 6, 96, + 96, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 72, 72, 72, 72, 72, 22, 46, 72, 46, + 72, 72, 14, 49, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 24, 24, 24, 24, 72, + 148, 148, 170, 14, 72, 72, 72, 72, 177, 148, + 72, 72, 72, 9, 9, 9, 9, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 22, 72, 75, + 75, 179, 72, 14, 171, 171, 12, 35, 102, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 19, + 83, 19, 35, 19, 9, 35, 9, 61, 83, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 180, + 180, 5, 5, 117, 117, 75, 12, 19, 12, 154, + 103, 154, 19, 19, 19, 19, 180, 154, 19, 19, + 19, 25, 63, 181, 181, 150, 14, 5, 5, 5, + 5, 5, 5, 180, 25, 25, 25, 25, 25, 25, + 181, 25, 25, 25, 174, 174, 174, 92, 92, 92, + 17, 17, 112, 106, 106, 106, 106, 17, 106, 82, + 23, 118, 118, 17, 119, 23, 129, 23, 129, 115, + 129, 17, 18, 17, 17, 22, 39, 9, 9, 17, + 167, 167, 9, 29, 9, 176, 176, 9, 9, 2, + 2, 17, 91, 28, 37, 129, 129, 129, 129, 9, + 9, 9, 9, 79, 109, 9, 81, 81, 9, 9, + 128, 81, 159, 81, 156, 81, 81, 81, 98, 81, + 41, 129, 81, 84, 84, 84, 81, 116, 20, 16, + 16, 16, 16, 116, 9, 131, 146, 95, -1, -1, + 16, 116, 116, -1, -1, -1, 116, 116, 116, 116, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, -1, 129, 23, 16, -1, 129, 129, 129, 8, + 8, -1, 8, 8, 8, -1, 8, 8, 8, -1, + -1, -1, 20, 20, 24, 88, 16, 16, -1, 24, + 20, 24, -1, -1, -1, 88, 88, -1, -1, 88, + 88, 88, -1, -1, -1, -1, -1, -1, 20, 20, + 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 5, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 106 + ); + + protected $gotoBase = array( + 0, 0, -250, 0, 0, 360, 235, 181, 522, 7, + 0, 0, 33, -156, -113, -178, 43, -49, 126, 72, + 100, 0, -9, 158, 282, 377, 172, 176, 120, 150, + 0, 0, 0, 0, 0, -39, 0, 119, 0, 116, + 0, 45, -1, 0, 0, 195, -456, 0, -529, 250, + 0, 0, 0, 0, 0, -33, 0, 0, 182, 0, + 0, 306, 0, 143, 203, -235, 0, 0, 0, 0, + 0, 0, -6, 0, 0, -21, 0, 0, -385, 124, + -46, -19, 144, -123, 10, -538, 0, 0, 275, 0, + 0, 127, 106, 0, 0, 60, -472, 0, 76, 0, + 0, 0, 294, 328, 0, 0, 386, -50, 0, 99, + 0, 0, 138, 0, 0, 149, 219, 87, 139, 137, + 0, 0, 0, 0, 0, 0, 19, 0, 101, 159, + 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -69, 0, 0, 58, 0, 257, 0, + 114, 0, 0, 0, -120, 0, 40, 0, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 122, -7, 8, + 264, 86, 0, 0, 107, 0, 78, 269, 0, 291, + 55, 79, 0, 0 + ); + + protected $gotoDefault = array( + -32768, 506, 727, 4, 728, 921, 804, 813, 590, 523, + 694, 343, 618, 416, 1286, 898, 1107, 571, 832, 1230, + 1238, 451, 835, 326, 717, 880, 881, 882, 395, 381, + 387, 393, 641, 619, 488, 867, 447, 859, 480, 862, + 446, 871, 162, 413, 504, 875, 3, 877, 550, 908, + 382, 885, 383, 669, 887, 556, 889, 890, 390, 396, + 397, 1112, 564, 615, 902, 253, 558, 903, 380, 904, + 911, 385, 388, 680, 459, 499, 493, 406, 1087, 559, + 601, 638, 441, 467, 613, 625, 611, 474, 1023, 411, + 325, 943, 951, 481, 457, 965, 345, 973, 725, 1119, + 632, 483, 981, 633, 988, 991, 524, 525, 472, 1003, + 268, 1006, 484, 1044, 659, 1017, 1018, 660, 634, 1040, + 635, 661, 636, 1042, 466, 591, 1050, 448, 1058, 1274, + 449, 1062, 262, 1065, 274, 412, 429, 1070, 1071, 8, + 1077, 686, 687, 10, 273, 503, 1102, 681, 445, 1118, + 433, 1188, 1190, 552, 485, 1208, 1207, 672, 500, 1213, + 442, 1277, 443, 526, 468, 312, 527, 304, 329, 309, + 542, 291, 330, 528, 469, 1283, 1291, 327, 30, 1311, + 1322, 338, 568, 606 + ); + + protected $ruleToNonTerminal = array( + 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, + 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, + 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, + 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, + 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, + 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 25, 25, 68, 68, 71, 71, 70, 69, + 69, 62, 74, 74, 75, 75, 76, 76, 77, 77, + 78, 78, 79, 79, 26, 26, 27, 27, 27, 27, + 27, 87, 87, 89, 89, 82, 82, 90, 90, 91, + 91, 91, 83, 83, 86, 86, 84, 84, 92, 93, + 93, 56, 56, 64, 64, 67, 67, 67, 66, 94, + 94, 95, 57, 57, 57, 57, 96, 96, 97, 97, + 98, 98, 99, 100, 100, 101, 101, 102, 102, 54, + 54, 50, 50, 104, 52, 52, 105, 51, 51, 53, + 53, 63, 63, 63, 63, 80, 80, 108, 108, 110, + 110, 111, 111, 111, 111, 109, 109, 109, 113, 113, + 113, 113, 88, 88, 116, 116, 116, 117, 117, 114, + 114, 118, 118, 120, 120, 121, 121, 115, 122, 122, + 119, 123, 123, 123, 123, 112, 112, 81, 81, 81, + 20, 20, 20, 125, 124, 124, 126, 126, 126, 126, + 59, 127, 127, 128, 60, 130, 130, 131, 131, 132, + 132, 85, 133, 133, 133, 133, 133, 133, 138, 138, + 139, 139, 140, 140, 140, 140, 140, 141, 142, 142, + 137, 137, 134, 134, 136, 136, 144, 144, 143, 143, + 143, 143, 143, 143, 143, 135, 145, 145, 147, 146, + 146, 61, 103, 148, 148, 55, 55, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 155, 149, 149, 154, 154, 157, 158, 158, 159, 160, + 161, 161, 161, 161, 19, 19, 72, 72, 72, 72, + 150, 150, 150, 150, 163, 163, 151, 151, 153, 153, + 153, 156, 156, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 169, 169, 107, 171, 171, 171, 171, 152, + 152, 152, 152, 152, 152, 152, 152, 58, 58, 166, + 166, 166, 166, 172, 172, 162, 162, 162, 173, 173, + 173, 173, 173, 173, 73, 73, 65, 65, 65, 65, + 129, 129, 129, 129, 176, 175, 165, 165, 165, 165, + 165, 165, 165, 164, 164, 164, 174, 174, 174, 174, + 106, 170, 178, 178, 177, 177, 179, 179, 179, 179, + 179, 179, 179, 179, 167, 167, 167, 167, 181, 182, + 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, + 183, 183 + ); + + protected $ruleToLength = array( + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, + 2, 0, 1, 1, 1, 1, 1, 3, 5, 4, + 3, 4, 2, 3, 1, 1, 7, 6, 2, 3, + 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, + 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, + 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, + 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, + 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, + 2, 1, 1, 1, 0, 2, 1, 3, 8, 0, + 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, + 3, 1, 1, 1, 8, 9, 7, 8, 7, 6, + 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, + 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, + 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, + 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, + 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, + 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, + 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, + 2, 1, 1, 1, 1, 6, 8, 6, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, + 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, + 2, 4, 3, 1, 1, 3, 1, 2, 2, 3, + 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, + 0, 1, 5, 5, 10, 3, 5, 1, 1, 3, + 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, + 3, 2, 2, 3, 1, 0, 1, 1, 3, 3, + 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, + 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, + 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, + 8, 3, 2, 0, 4, 2, 1, 3, 2, 1, + 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 0, 3, 0, 1, + 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 4, 1, 1, 3, 1, + 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 3, 1, 1, 4, + 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, + 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, + 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, + 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, + 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, + 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, + 2, 1 + ); + + protected function initReduceCallbacks() { + $this->reduceCallbacks = [ + 0 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 1 => function ($stackPos) { + $this->semValue = $this->handleNamespaces($this->semStack[$stackPos-(1-1)]); + }, + 2 => function ($stackPos) { + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + }, + 3 => function ($stackPos) { + $this->semValue = array(); + }, + 4 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 5 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 6 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 7 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 8 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 9 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 10 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 11 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 12 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 13 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 14 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 15 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 16 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 17 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 18 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 19 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 20 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 21 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 22 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 23 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 24 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 25 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 26 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 27 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 28 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 29 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 30 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 31 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 32 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 33 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 34 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 35 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 36 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 37 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 38 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 39 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 40 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 41 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 42 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 43 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 44 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 45 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 46 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 47 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 48 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 49 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 50 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 51 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 52 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 53 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 54 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 55 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 56 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 57 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 58 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 59 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 60 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 61 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 62 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 63 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 64 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 65 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 66 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 67 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 68 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 69 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 70 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 71 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 72 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 73 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 74 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 75 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 76 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 77 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 78 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 79 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 80 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 81 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 82 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 83 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 84 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 85 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 86 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 87 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 88 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 89 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 90 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 91 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 92 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 93 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 94 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 95 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 96 => function ($stackPos) { + $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 97 => function ($stackPos) { + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 98 => function ($stackPos) { + /* nothing */ + }, + 99 => function ($stackPos) { + /* nothing */ + }, + 100 => function ($stackPos) { + /* nothing */ + }, + 101 => function ($stackPos) { + $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 102 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 103 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 104 => function ($stackPos) { + $this->semValue = new Node\Attribute($this->semStack[$stackPos-(1-1)], [], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 105 => function ($stackPos) { + $this->semValue = new Node\Attribute($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 106 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 107 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 108 => function ($stackPos) { + $this->semValue = new Node\AttributeGroup($this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 109 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 110 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 111 => function ($stackPos) { + $this->semValue = []; + }, + 112 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 113 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 114 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 115 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 116 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 117 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); + $this->checkNamespace($this->semValue); + }, + 118 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($this->semValue); + }, + 119 => function ($stackPos) { + $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); + $this->checkNamespace($this->semValue); + }, + 120 => function ($stackPos) { + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 121 => function ($stackPos) { + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 122 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 123 => function ($stackPos) { + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 124 => function ($stackPos) { + $this->semValue = Stmt\Use_::TYPE_FUNCTION; + }, + 125 => function ($stackPos) { + $this->semValue = Stmt\Use_::TYPE_CONSTANT; + }, + 126 => function ($stackPos) { + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 127 => function ($stackPos) { + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 128 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 129 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 130 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 131 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 132 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 133 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 134 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 135 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 136 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 137 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + }, + 138 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + }, + 139 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + }, + 140 => function ($stackPos) { + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + }, + 141 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + }, + 142 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + }, + 143 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 144 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 145 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 146 => function ($stackPos) { + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 147 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 148 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 149 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 150 => function ($stackPos) { + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 151 => function ($stackPos) { + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + }, + 152 => function ($stackPos) { + $this->semValue = array(); + }, + 153 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 154 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 155 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 156 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 157 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 158 => function ($stackPos) { + + if ($this->semStack[$stackPos-(3-2)]) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; + } else { + $startAttributes = $this->startAttributeStack[$stackPos-(3-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; + if (null === $this->semValue) { $this->semValue = array(); } + } + + }, + 159 => function ($stackPos) { + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 160 => function ($stackPos) { + $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + }, + 161 => function ($stackPos) { + $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 162 => function ($stackPos) { + $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 163 => function ($stackPos) { + $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 164 => function ($stackPos) { + $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 165 => function ($stackPos) { + $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 166 => function ($stackPos) { + $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 167 => function ($stackPos) { + $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 168 => function ($stackPos) { + $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 169 => function ($stackPos) { + $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 170 => function ($stackPos) { + $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 171 => function ($stackPos) { + $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 172 => function ($stackPos) { + + $e = $this->semStack[$stackPos-(2-1)]; + if ($e instanceof Expr\Throw_) { + // For backwards-compatibility reasons, convert throw in statement position into + // Stmt\Throw_ rather than Stmt\Expression(Expr\Throw_). + $this->semValue = new Stmt\Throw_($e->expr, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + } else { + $this->semValue = new Stmt\Expression($e, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + } + + }, + 173 => function ($stackPos) { + $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 174 => function ($stackPos) { + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 175 => function ($stackPos) { + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 176 => function ($stackPos) { + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 177 => function ($stackPos) { + $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 178 => function ($stackPos) { + $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); + }, + 179 => function ($stackPos) { + $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 180 => function ($stackPos) { + $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 181 => function ($stackPos) { + $this->semValue = array(); /* means: no statement */ + }, + 182 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 183 => function ($stackPos) { + $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; + if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ + }, + 184 => function ($stackPos) { + $this->semValue = array(); + }, + 185 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 186 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 187 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 188 => function ($stackPos) { + $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 189 => function ($stackPos) { + $this->semValue = null; + }, + 190 => function ($stackPos) { + $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 191 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 192 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 193 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 194 => function ($stackPos) { + $this->semValue = false; + }, + 195 => function ($stackPos) { + $this->semValue = true; + }, + 196 => function ($stackPos) { + $this->semValue = false; + }, + 197 => function ($stackPos) { + $this->semValue = true; + }, + 198 => function ($stackPos) { + $this->semValue = false; + }, + 199 => function ($stackPos) { + $this->semValue = true; + }, + 200 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 201 => function ($stackPos) { + $this->semValue = []; + }, + 202 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 203 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 204 => function ($stackPos) { + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 205 => function ($stackPos) { + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 206 => function ($stackPos) { + $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->checkClass($this->semValue, $stackPos-(7-2)); + }, + 207 => function ($stackPos) { + $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->checkClass($this->semValue, $stackPos-(8-3)); + }, + 208 => function ($stackPos) { + $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->checkInterface($this->semValue, $stackPos-(7-3)); + }, + 209 => function ($stackPos) { + $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 210 => function ($stackPos) { + $this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->checkEnum($this->semValue, $stackPos-(8-3)); + }, + 211 => function ($stackPos) { + $this->semValue = null; + }, + 212 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 213 => function ($stackPos) { + $this->semValue = null; + }, + 214 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 215 => function ($stackPos) { + $this->semValue = 0; + }, + 216 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 217 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 218 => function ($stackPos) { + $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 219 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + }, + 220 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_FINAL; + }, + 221 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 222 => function ($stackPos) { + $this->semValue = null; + }, + 223 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 224 => function ($stackPos) { + $this->semValue = array(); + }, + 225 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 226 => function ($stackPos) { + $this->semValue = array(); + }, + 227 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 228 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 229 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 230 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 231 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 232 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 233 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 234 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 235 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 236 => function ($stackPos) { + $this->semValue = null; + }, + 237 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 238 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 239 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 240 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 241 => function ($stackPos) { + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 242 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 243 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 244 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 245 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(5-3)]; + }, + 246 => function ($stackPos) { + $this->semValue = array(); + }, + 247 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 248 => function ($stackPos) { + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 249 => function ($stackPos) { + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 250 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 251 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 252 => function ($stackPos) { + $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + }, + 253 => function ($stackPos) { + $this->semValue = []; + }, + 254 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 255 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 256 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 257 => function ($stackPos) { + $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 258 => function ($stackPos) { + $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 259 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 260 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 261 => function ($stackPos) { + $this->semValue = array(); + }, + 262 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 263 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 264 => function ($stackPos) { + $this->semValue = array(); + }, + 265 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 266 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); + }, + 267 => function ($stackPos) { + $this->semValue = null; + }, + 268 => function ($stackPos) { + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 269 => function ($stackPos) { + $this->semValue = null; + }, + 270 => function ($stackPos) { + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); + }, + 271 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + }, + 272 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + }, + 273 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + }, + 274 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + }, + 275 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 276 => function ($stackPos) { + $this->semValue = array(); + }, + 277 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 278 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 279 => function ($stackPos) { + $this->semValue = 0; + }, + 280 => function ($stackPos) { + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 281 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + }, + 282 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + }, + 283 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + }, + 284 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 285 => function ($stackPos) { + $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); + $this->checkParam($this->semValue); + }, + 286 => function ($stackPos) { + $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]); + $this->checkParam($this->semValue); + }, + 287 => function ($stackPos) { + $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); + }, + 288 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 289 => function ($stackPos) { + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 290 => function ($stackPos) { + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 291 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 292 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 293 => function ($stackPos) { + $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 294 => function ($stackPos) { + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); + }, + 295 => function ($stackPos) { + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 296 => function ($stackPos) { + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 297 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 298 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 299 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 300 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 301 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 302 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 303 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 304 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 305 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 306 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 307 => function ($stackPos) { + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 308 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 309 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 310 => function ($stackPos) { + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 311 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 312 => function ($stackPos) { + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 313 => function ($stackPos) { + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 314 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 315 => function ($stackPos) { + $this->semValue = null; + }, + 316 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 317 => function ($stackPos) { + $this->semValue = null; + }, + 318 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 319 => function ($stackPos) { + $this->semValue = null; + }, + 320 => function ($stackPos) { + $this->semValue = array(); + }, + 321 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 322 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-2)]); + }, + 323 => function ($stackPos) { + $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 324 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 325 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 326 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 327 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 328 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 329 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); + }, + 330 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 331 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 332 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 333 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 334 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 335 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 336 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 337 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 338 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 339 => function ($stackPos) { + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + }, + 340 => function ($stackPos) { + $this->semValue = array(); + }, + 341 => function ($stackPos) { + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 342 => function ($stackPos) { + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); + $this->checkProperty($this->semValue, $stackPos-(5-2)); + }, + 343 => function ($stackPos) { + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]); + $this->checkClassConst($this->semValue, $stackPos-(5-2)); + }, + 344 => function ($stackPos) { + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(10-2)); + }, + 345 => function ($stackPos) { + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 346 => function ($stackPos) { + $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 347 => function ($stackPos) { + $this->semValue = null; /* will be skipped */ + }, + 348 => function ($stackPos) { + $this->semValue = array(); + }, + 349 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 350 => function ($stackPos) { + $this->semValue = array(); + }, + 351 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 352 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 353 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 354 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 355 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 356 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 357 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 358 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 359 => function ($stackPos) { + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + }, + 360 => function ($stackPos) { + $this->semValue = null; + }, + 361 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 362 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 363 => function ($stackPos) { + $this->semValue = 0; + }, + 364 => function ($stackPos) { + $this->semValue = 0; + }, + 365 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 366 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 367 => function ($stackPos) { + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 368 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + }, + 369 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + }, + 370 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + }, + 371 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_STATIC; + }, + 372 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + }, + 373 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_FINAL; + }, + 374 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 375 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 376 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 377 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 378 => function ($stackPos) { + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 379 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 380 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 381 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 382 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 383 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 384 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 385 => function ($stackPos) { + $this->semValue = array(); + }, + 386 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 387 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 388 => function ($stackPos) { + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 389 => function ($stackPos) { + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 390 => function ($stackPos) { + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 391 => function ($stackPos) { + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 392 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 393 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 394 => function ($stackPos) { + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 395 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 396 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 397 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 398 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 399 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 400 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 401 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 402 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 403 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 404 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 405 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 406 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 407 => function ($stackPos) { + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 408 => function ($stackPos) { + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 409 => function ($stackPos) { + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 410 => function ($stackPos) { + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 411 => function ($stackPos) { + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 412 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 413 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 414 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 415 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 416 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 417 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 418 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 419 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 420 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 421 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 422 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 423 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 424 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 425 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 426 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 427 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 428 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 429 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 430 => function ($stackPos) { + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 431 => function ($stackPos) { + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 432 => function ($stackPos) { + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 433 => function ($stackPos) { + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 434 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 435 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 436 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 437 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 438 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 439 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 440 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 441 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 442 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 443 => function ($stackPos) { + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 444 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 445 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 446 => function ($stackPos) { + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 447 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 448 => function ($stackPos) { + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 449 => function ($stackPos) { + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 450 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 451 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 452 => function ($stackPos) { + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 453 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 454 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 455 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 456 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); + $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); + }, + 457 => function ($stackPos) { + $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 458 => function ($stackPos) { + $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 459 => function ($stackPos) { + $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 460 => function ($stackPos) { + $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 461 => function ($stackPos) { + $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 462 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); + }, + 463 => function ($stackPos) { + $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 464 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 465 => function ($stackPos) { + $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 466 => function ($stackPos) { + $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 467 => function ($stackPos) { + $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 468 => function ($stackPos) { + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 469 => function ($stackPos) { + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 470 => function ($stackPos) { + $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 471 => function ($stackPos) { + $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 472 => function ($stackPos) { + $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 473 => function ($stackPos) { + $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 474 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 475 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 476 => function ($stackPos) { + $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 477 => function ($stackPos) { + $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + }, + 478 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 479 => function ($stackPos) { + $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + }, + 480 => function ($stackPos) { + $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); + $this->checkClass($this->semValue[0], -1); + }, + 481 => function ($stackPos) { + $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 482 => function ($stackPos) { + list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 483 => function ($stackPos) { + $this->semValue = array(); + }, + 484 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 485 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 486 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 487 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 488 => function ($stackPos) { + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 489 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 490 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 491 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 492 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 493 => function ($stackPos) { + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 494 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 495 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 496 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 497 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 498 => function ($stackPos) { + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 499 => function ($stackPos) { + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 500 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 501 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 502 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 503 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 504 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 505 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 506 => function ($stackPos) { + $this->semValue = null; + }, + 507 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 508 => function ($stackPos) { + $this->semValue = array(); + }, + 509 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 510 => function ($stackPos) { + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 511 => function ($stackPos) { + $this->semValue = array(); + }, + 512 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 513 => function ($stackPos) { + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 514 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 515 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 516 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 517 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 518 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 519 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 520 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 521 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 522 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 523 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + }, + 524 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); + }, + 525 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); + }, + 526 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 527 => function ($stackPos) { + $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 528 => function ($stackPos) { + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + }, + 529 => function ($stackPos) { + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 530 => function ($stackPos) { + $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 531 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 532 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 533 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 534 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + }, + 535 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); + }, + 536 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + }, + 537 => function ($stackPos) { + $this->semValue = null; + }, + 538 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 539 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 540 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 541 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 542 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 543 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 544 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 545 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 546 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 547 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 548 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 549 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 550 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 551 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 552 => function ($stackPos) { + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 553 => function ($stackPos) { + $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 554 => function ($stackPos) { + $this->semValue = null; + }, + 555 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 556 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 557 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 558 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 559 => function ($stackPos) { + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 560 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 561 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 562 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 563 => function ($stackPos) { + $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + }, + 564 => function ($stackPos) { + $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + }, + 565 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 566 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 567 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 568 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 569 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 570 => function ($stackPos) { + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 571 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 572 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 573 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 574 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 575 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 576 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 577 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 578 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 579 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 580 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 581 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 582 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 583 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 584 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 585 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 586 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 587 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 588 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 589 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 590 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 591 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 592 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 593 => function ($stackPos) { + $this->semValue = null; + }, + 594 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 595 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 596 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 597 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 598 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 599 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 600 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 601 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 602 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 603 => function ($stackPos) { + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 604 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 605 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 606 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 607 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 608 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 609 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 610 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 611 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + ]; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php new file mode 100644 index 00000000..b76a5d94 --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php @@ -0,0 +1,148 @@ +lexer = $lexer; + + if (isset($options['throwOnError'])) { + throw new \LogicException( + '"throwOnError" is no longer supported, use "errorHandler" instead'); + } + + $this->initReduceCallbacks(); + } + + /** + * Parses PHP code into a node tree. + * + * If a non-throwing error handler is used, the parser will continue parsing after an error + * occurred and attempt to build a partial AST. + * + * @param string $code The source code to parse + * @param ErrorHandler|null $errorHandler Error handler to use for lexer/parser errors, defaults + * to ErrorHandler\Throwing. + * + * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and + * the parser was unable to recover from an error). + */ + public function parse(string $code, ErrorHandler $errorHandler = null) { + $this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing; + + $this->lexer->startLexing($code, $this->errorHandler); + $result = $this->doParse(); + + // Clear out some of the interior state, so we don't hold onto unnecessary + // memory between uses of the parser + $this->startAttributeStack = []; + $this->endAttributeStack = []; + $this->semStack = []; + $this->semValue = null; + + return $result; + } + + protected function doParse() { + // We start off with no lookahead-token + $symbol = self::SYMBOL_NONE; + + // The attributes for a node are taken from the first and last token of the node. + // From the first token only the startAttributes are taken and from the last only + // the endAttributes. Both are merged using the array union operator (+). + $startAttributes = []; + $endAttributes = []; + $this->endAttributes = $endAttributes; + + // Keep stack of start and end attributes + $this->startAttributeStack = []; + $this->endAttributeStack = [$endAttributes]; + + // Start off in the initial state and keep a stack of previous states + $state = 0; + $stateStack = [$state]; + + // Semantic value stack (contains values of tokens and semantic action results) + $this->semStack = []; + + // Current position in the stack(s) + $stackPos = 0; + + $this->errorState = 0; + + for (;;) { + //$this->traceNewState($state, $symbol); + + if ($this->actionBase[$state] === 0) { + $rule = $this->actionDefault[$state]; + } else { + if ($symbol === self::SYMBOL_NONE) { + // Fetch the next token id from the lexer and fetch additional info by-ref. + // The end attributes are fetched into a temporary variable and only set once the token is really + // shifted (not during read). Otherwise you would sometimes get off-by-one errors, when a rule is + // reduced after a token was read but not yet shifted. + $tokenId = $this->lexer->getNextToken($tokenValue, $startAttributes, $endAttributes); + + // map the lexer token id to the internally used symbols + $symbol = $tokenId >= 0 && $tokenId < $this->tokenToSymbolMapSize + ? $this->tokenToSymbol[$tokenId] + : $this->invalidSymbol; + + if ($symbol === $this->invalidSymbol) { + throw new \RangeException(sprintf( + 'The lexer returned an invalid token (id=%d, value=%s)', + $tokenId, $tokenValue + )); + } + + // Allow productions to access the start attributes of the lookahead token. + $this->lookaheadStartAttributes = $startAttributes; + + //$this->traceRead($symbol); + } + + $idx = $this->actionBase[$state] + $symbol; + if ((($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol) + || ($state < $this->YY2TBLSTATE + && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $symbol) >= 0 + && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol)) + && ($action = $this->action[$idx]) !== $this->defaultAction) { + /* + * >= numNonLeafStates: shift and reduce + * > 0: shift + * = 0: accept + * < 0: reduce + * = -YYUNEXPECTED: error + */ + if ($action > 0) { + /* shift */ + //$this->traceShift($symbol); + + ++$stackPos; + $stateStack[$stackPos] = $state = $action; + $this->semStack[$stackPos] = $tokenValue; + $this->startAttributeStack[$stackPos] = $startAttributes; + $this->endAttributeStack[$stackPos] = $endAttributes; + $this->endAttributes = $endAttributes; + $symbol = self::SYMBOL_NONE; + + if ($this->errorState) { + --$this->errorState; + } + + if ($action < $this->numNonLeafStates) { + continue; + } + + /* $yyn >= numNonLeafStates means shift-and-reduce */ + $rule = $action - $this->numNonLeafStates; + } else { + $rule = -$action; + } + } else { + $rule = $this->actionDefault[$state]; + } + } + + for (;;) { + if ($rule === 0) { + /* accept */ + //$this->traceAccept(); + return $this->semValue; + } elseif ($rule !== $this->unexpectedTokenRule) { + /* reduce */ + //$this->traceReduce($rule); + + try { + $this->reduceCallbacks[$rule]($stackPos); + } catch (Error $e) { + if (-1 === $e->getStartLine() && isset($startAttributes['startLine'])) { + $e->setStartLine($startAttributes['startLine']); + } + + $this->emitError($e); + // Can't recover from this type of error + return null; + } + + /* Goto - shift nonterminal */ + $lastEndAttributes = $this->endAttributeStack[$stackPos]; + $ruleLength = $this->ruleToLength[$rule]; + $stackPos -= $ruleLength; + $nonTerminal = $this->ruleToNonTerminal[$rule]; + $idx = $this->gotoBase[$nonTerminal] + $stateStack[$stackPos]; + if ($idx >= 0 && $idx < $this->gotoTableSize && $this->gotoCheck[$idx] === $nonTerminal) { + $state = $this->goto[$idx]; + } else { + $state = $this->gotoDefault[$nonTerminal]; + } + + ++$stackPos; + $stateStack[$stackPos] = $state; + $this->semStack[$stackPos] = $this->semValue; + $this->endAttributeStack[$stackPos] = $lastEndAttributes; + if ($ruleLength === 0) { + // Empty productions use the start attributes of the lookahead token. + $this->startAttributeStack[$stackPos] = $this->lookaheadStartAttributes; + } + } else { + /* error */ + switch ($this->errorState) { + case 0: + $msg = $this->getErrorMessage($symbol, $state); + $this->emitError(new Error($msg, $startAttributes + $endAttributes)); + // Break missing intentionally + case 1: + case 2: + $this->errorState = 3; + + // Pop until error-expecting state uncovered + while (!( + (($idx = $this->actionBase[$state] + $this->errorSymbol) >= 0 + && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $this->errorSymbol) + || ($state < $this->YY2TBLSTATE + && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $this->errorSymbol) >= 0 + && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $this->errorSymbol) + ) || ($action = $this->action[$idx]) === $this->defaultAction) { // Not totally sure about this + if ($stackPos <= 0) { + // Could not recover from error + return null; + } + $state = $stateStack[--$stackPos]; + //$this->tracePop($state); + } + + //$this->traceShift($this->errorSymbol); + ++$stackPos; + $stateStack[$stackPos] = $state = $action; + + // We treat the error symbol as being empty, so we reset the end attributes + // to the end attributes of the last non-error symbol + $this->startAttributeStack[$stackPos] = $this->lookaheadStartAttributes; + $this->endAttributeStack[$stackPos] = $this->endAttributeStack[$stackPos - 1]; + $this->endAttributes = $this->endAttributeStack[$stackPos - 1]; + break; + + case 3: + if ($symbol === 0) { + // Reached EOF without recovering from error + return null; + } + + //$this->traceDiscard($symbol); + $symbol = self::SYMBOL_NONE; + break 2; + } + } + + if ($state < $this->numNonLeafStates) { + break; + } + + /* >= numNonLeafStates means shift-and-reduce */ + $rule = $state - $this->numNonLeafStates; + } + } + + throw new \RuntimeException('Reached end of parser loop'); + } + + protected function emitError(Error $error) { + $this->errorHandler->handleError($error); + } + + /** + * Format error message including expected tokens. + * + * @param int $symbol Unexpected symbol + * @param int $state State at time of error + * + * @return string Formatted error message + */ + protected function getErrorMessage(int $symbol, int $state) : string { + $expectedString = ''; + if ($expected = $this->getExpectedTokens($state)) { + $expectedString = ', expecting ' . implode(' or ', $expected); + } + + return 'Syntax error, unexpected ' . $this->symbolToName[$symbol] . $expectedString; + } + + /** + * Get limited number of expected tokens in given state. + * + * @param int $state State + * + * @return string[] Expected tokens. If too many, an empty array is returned. + */ + protected function getExpectedTokens(int $state) : array { + $expected = []; + + $base = $this->actionBase[$state]; + foreach ($this->symbolToName as $symbol => $name) { + $idx = $base + $symbol; + if ($idx >= 0 && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol + || $state < $this->YY2TBLSTATE + && ($idx = $this->actionBase[$state + $this->numNonLeafStates] + $symbol) >= 0 + && $idx < $this->actionTableSize && $this->actionCheck[$idx] === $symbol + ) { + if ($this->action[$idx] !== $this->unexpectedTokenRule + && $this->action[$idx] !== $this->defaultAction + && $symbol !== $this->errorSymbol + ) { + if (count($expected) === 4) { + /* Too many expected tokens */ + return []; + } + + $expected[] = $name; + } + } + } + + return $expected; + } + + /* + * Tracing functions used for debugging the parser. + */ + + /* + protected function traceNewState($state, $symbol) { + echo '% State ' . $state + . ', Lookahead ' . ($symbol == self::SYMBOL_NONE ? '--none--' : $this->symbolToName[$symbol]) . "\n"; + } + + protected function traceRead($symbol) { + echo '% Reading ' . $this->symbolToName[$symbol] . "\n"; + } + + protected function traceShift($symbol) { + echo '% Shift ' . $this->symbolToName[$symbol] . "\n"; + } + + protected function traceAccept() { + echo "% Accepted.\n"; + } + + protected function traceReduce($n) { + echo '% Reduce by (' . $n . ') ' . $this->productions[$n] . "\n"; + } + + protected function tracePop($state) { + echo '% Recovering, uncovered state ' . $state . "\n"; + } + + protected function traceDiscard($symbol) { + echo '% Discard ' . $this->symbolToName[$symbol] . "\n"; + } + */ + + /* + * Helper functions invoked by semantic actions + */ + + /** + * Moves statements of semicolon-style namespaces into $ns->stmts and checks various error conditions. + * + * @param Node\Stmt[] $stmts + * @return Node\Stmt[] + */ + protected function handleNamespaces(array $stmts) : array { + $hasErrored = false; + $style = $this->getNamespacingStyle($stmts); + if (null === $style) { + // not namespaced, nothing to do + return $stmts; + } elseif ('brace' === $style) { + // For braced namespaces we only have to check that there are no invalid statements between the namespaces + $afterFirstNamespace = false; + foreach ($stmts as $stmt) { + if ($stmt instanceof Node\Stmt\Namespace_) { + $afterFirstNamespace = true; + } elseif (!$stmt instanceof Node\Stmt\HaltCompiler + && !$stmt instanceof Node\Stmt\Nop + && $afterFirstNamespace && !$hasErrored) { + $this->emitError(new Error( + 'No code may exist outside of namespace {}', $stmt->getAttributes())); + $hasErrored = true; // Avoid one error for every statement + } + } + return $stmts; + } else { + // For semicolon namespaces we have to move the statements after a namespace declaration into ->stmts + $resultStmts = []; + $targetStmts =& $resultStmts; + $lastNs = null; + foreach ($stmts as $stmt) { + if ($stmt instanceof Node\Stmt\Namespace_) { + if ($lastNs !== null) { + $this->fixupNamespaceAttributes($lastNs); + } + if ($stmt->stmts === null) { + $stmt->stmts = []; + $targetStmts =& $stmt->stmts; + $resultStmts[] = $stmt; + } else { + // This handles the invalid case of mixed style namespaces + $resultStmts[] = $stmt; + $targetStmts =& $resultStmts; + } + $lastNs = $stmt; + } elseif ($stmt instanceof Node\Stmt\HaltCompiler) { + // __halt_compiler() is not moved into the namespace + $resultStmts[] = $stmt; + } else { + $targetStmts[] = $stmt; + } + } + if ($lastNs !== null) { + $this->fixupNamespaceAttributes($lastNs); + } + return $resultStmts; + } + } + + private function fixupNamespaceAttributes(Node\Stmt\Namespace_ $stmt) { + // We moved the statements into the namespace node, as such the end of the namespace node + // needs to be extended to the end of the statements. + if (empty($stmt->stmts)) { + return; + } + + // We only move the builtin end attributes here. This is the best we can do with the + // knowledge we have. + $endAttributes = ['endLine', 'endFilePos', 'endTokenPos']; + $lastStmt = $stmt->stmts[count($stmt->stmts) - 1]; + foreach ($endAttributes as $endAttribute) { + if ($lastStmt->hasAttribute($endAttribute)) { + $stmt->setAttribute($endAttribute, $lastStmt->getAttribute($endAttribute)); + } + } + } + + /** + * Determine namespacing style (semicolon or brace) + * + * @param Node[] $stmts Top-level statements. + * + * @return null|string One of "semicolon", "brace" or null (no namespaces) + */ + private function getNamespacingStyle(array $stmts) { + $style = null; + $hasNotAllowedStmts = false; + foreach ($stmts as $i => $stmt) { + if ($stmt instanceof Node\Stmt\Namespace_) { + $currentStyle = null === $stmt->stmts ? 'semicolon' : 'brace'; + if (null === $style) { + $style = $currentStyle; + if ($hasNotAllowedStmts) { + $this->emitError(new Error( + 'Namespace declaration statement has to be the very first statement in the script', + $stmt->getLine() // Avoid marking the entire namespace as an error + )); + } + } elseif ($style !== $currentStyle) { + $this->emitError(new Error( + 'Cannot mix bracketed namespace declarations with unbracketed namespace declarations', + $stmt->getLine() // Avoid marking the entire namespace as an error + )); + // Treat like semicolon style for namespace normalization + return 'semicolon'; + } + continue; + } + + /* declare(), __halt_compiler() and nops can be used before a namespace declaration */ + if ($stmt instanceof Node\Stmt\Declare_ + || $stmt instanceof Node\Stmt\HaltCompiler + || $stmt instanceof Node\Stmt\Nop) { + continue; + } + + /* There may be a hashbang line at the very start of the file */ + if ($i === 0 && $stmt instanceof Node\Stmt\InlineHTML && preg_match('/\A#!.*\r?\n\z/', $stmt->value)) { + continue; + } + + /* Everything else if forbidden before namespace declarations */ + $hasNotAllowedStmts = true; + } + return $style; + } + + /** + * Fix up parsing of static property calls in PHP 5. + * + * In PHP 5 A::$b[c][d] and A::$b[c][d]() have very different interpretation. The former is + * interpreted as (A::$b)[c][d], while the latter is the same as A::{$b[c][d]}(). We parse the + * latter as the former initially and this method fixes the AST into the correct form when we + * encounter the "()". + * + * @param Node\Expr\StaticPropertyFetch|Node\Expr\ArrayDimFetch $prop + * @param Node\Arg[] $args + * @param array $attributes + * + * @return Expr\StaticCall + */ + protected function fixupPhp5StaticPropCall($prop, array $args, array $attributes) : Expr\StaticCall { + if ($prop instanceof Node\Expr\StaticPropertyFetch) { + $name = $prop->name instanceof VarLikeIdentifier + ? $prop->name->toString() : $prop->name; + $var = new Expr\Variable($name, $prop->name->getAttributes()); + return new Expr\StaticCall($prop->class, $var, $args, $attributes); + } elseif ($prop instanceof Node\Expr\ArrayDimFetch) { + $tmp = $prop; + while ($tmp->var instanceof Node\Expr\ArrayDimFetch) { + $tmp = $tmp->var; + } + + /** @var Expr\StaticPropertyFetch $staticProp */ + $staticProp = $tmp->var; + + // Set start attributes to attributes of innermost node + $tmp = $prop; + $this->fixupStartAttributes($tmp, $staticProp->name); + while ($tmp->var instanceof Node\Expr\ArrayDimFetch) { + $tmp = $tmp->var; + $this->fixupStartAttributes($tmp, $staticProp->name); + } + + $name = $staticProp->name instanceof VarLikeIdentifier + ? $staticProp->name->toString() : $staticProp->name; + $tmp->var = new Expr\Variable($name, $staticProp->name->getAttributes()); + return new Expr\StaticCall($staticProp->class, $prop, $args, $attributes); + } else { + throw new \Exception; + } + } + + protected function fixupStartAttributes(Node $to, Node $from) { + $startAttributes = ['startLine', 'startFilePos', 'startTokenPos']; + foreach ($startAttributes as $startAttribute) { + if ($from->hasAttribute($startAttribute)) { + $to->setAttribute($startAttribute, $from->getAttribute($startAttribute)); + } + } + } + + protected function handleBuiltinTypes(Name $name) { + $builtinTypes = [ + 'bool' => true, + 'int' => true, + 'float' => true, + 'string' => true, + 'iterable' => true, + 'void' => true, + 'object' => true, + 'null' => true, + 'false' => true, + 'mixed' => true, + 'never' => true, + 'true' => true, + ]; + + if (!$name->isUnqualified()) { + return $name; + } + + $lowerName = $name->toLowerString(); + if (!isset($builtinTypes[$lowerName])) { + return $name; + } + + return new Node\Identifier($lowerName, $name->getAttributes()); + } + + /** + * Get combined start and end attributes at a stack location + * + * @param int $pos Stack location + * + * @return array Combined start and end attributes + */ + protected function getAttributesAt(int $pos) : array { + return $this->startAttributeStack[$pos] + $this->endAttributeStack[$pos]; + } + + protected function getFloatCastKind(string $cast): int + { + $cast = strtolower($cast); + if (strpos($cast, 'float') !== false) { + return Double::KIND_FLOAT; + } + + if (strpos($cast, 'real') !== false) { + return Double::KIND_REAL; + } + + return Double::KIND_DOUBLE; + } + + protected function parseLNumber($str, $attributes, $allowInvalidOctal = false) { + try { + return LNumber::fromString($str, $attributes, $allowInvalidOctal); + } catch (Error $error) { + $this->emitError($error); + // Use dummy value + return new LNumber(0, $attributes); + } + } + + /** + * Parse a T_NUM_STRING token into either an integer or string node. + * + * @param string $str Number string + * @param array $attributes Attributes + * + * @return LNumber|String_ Integer or string node. + */ + protected function parseNumString(string $str, array $attributes) { + if (!preg_match('/^(?:0|-?[1-9][0-9]*)$/', $str)) { + return new String_($str, $attributes); + } + + $num = +$str; + if (!is_int($num)) { + return new String_($str, $attributes); + } + + return new LNumber($num, $attributes); + } + + protected function stripIndentation( + string $string, int $indentLen, string $indentChar, + bool $newlineAtStart, bool $newlineAtEnd, array $attributes + ) { + if ($indentLen === 0) { + return $string; + } + + $start = $newlineAtStart ? '(?:(?<=\n)|\A)' : '(?<=\n)'; + $end = $newlineAtEnd ? '(?:(?=[\r\n])|\z)' : '(?=[\r\n])'; + $regex = '/' . $start . '([ \t]*)(' . $end . ')?/'; + return preg_replace_callback( + $regex, + function ($matches) use ($indentLen, $indentChar, $attributes) { + $prefix = substr($matches[1], 0, $indentLen); + if (false !== strpos($prefix, $indentChar === " " ? "\t" : " ")) { + $this->emitError(new Error( + 'Invalid indentation - tabs and spaces cannot be mixed', $attributes + )); + } elseif (strlen($prefix) < $indentLen && !isset($matches[2])) { + $this->emitError(new Error( + 'Invalid body indentation level ' . + '(expecting an indentation level of at least ' . $indentLen . ')', + $attributes + )); + } + return substr($matches[0], strlen($prefix)); + }, + $string + ); + } + + protected function parseDocString( + string $startToken, $contents, string $endToken, + array $attributes, array $endTokenAttributes, bool $parseUnicodeEscape + ) { + $kind = strpos($startToken, "'") === false + ? String_::KIND_HEREDOC : String_::KIND_NOWDOC; + + $regex = '/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/'; + $result = preg_match($regex, $startToken, $matches); + assert($result === 1); + $label = $matches[1]; + + $result = preg_match('/\A[ \t]*/', $endToken, $matches); + assert($result === 1); + $indentation = $matches[0]; + + $attributes['kind'] = $kind; + $attributes['docLabel'] = $label; + $attributes['docIndentation'] = $indentation; + + $indentHasSpaces = false !== strpos($indentation, " "); + $indentHasTabs = false !== strpos($indentation, "\t"); + if ($indentHasSpaces && $indentHasTabs) { + $this->emitError(new Error( + 'Invalid indentation - tabs and spaces cannot be mixed', + $endTokenAttributes + )); + + // Proceed processing as if this doc string is not indented + $indentation = ''; + } + + $indentLen = \strlen($indentation); + $indentChar = $indentHasSpaces ? " " : "\t"; + + if (\is_string($contents)) { + if ($contents === '') { + return new String_('', $attributes); + } + + $contents = $this->stripIndentation( + $contents, $indentLen, $indentChar, true, true, $attributes + ); + $contents = preg_replace('~(\r\n|\n|\r)\z~', '', $contents); + + if ($kind === String_::KIND_HEREDOC) { + $contents = String_::parseEscapeSequences($contents, null, $parseUnicodeEscape); + } + + return new String_($contents, $attributes); + } else { + assert(count($contents) > 0); + if (!$contents[0] instanceof Node\Scalar\EncapsedStringPart) { + // If there is no leading encapsed string part, pretend there is an empty one + $this->stripIndentation( + '', $indentLen, $indentChar, true, false, $contents[0]->getAttributes() + ); + } + + $newContents = []; + foreach ($contents as $i => $part) { + if ($part instanceof Node\Scalar\EncapsedStringPart) { + $isLast = $i === \count($contents) - 1; + $part->value = $this->stripIndentation( + $part->value, $indentLen, $indentChar, + $i === 0, $isLast, $part->getAttributes() + ); + $part->value = String_::parseEscapeSequences($part->value, null, $parseUnicodeEscape); + if ($isLast) { + $part->value = preg_replace('~(\r\n|\n|\r)\z~', '', $part->value); + } + if ('' === $part->value) { + continue; + } + } + $newContents[] = $part; + } + return new Encapsed($newContents, $attributes); + } + } + + /** + * Create attributes for a zero-length common-capturing nop. + * + * @param Comment[] $comments + * @return array + */ + protected function createCommentNopAttributes(array $comments) { + $comment = $comments[count($comments) - 1]; + $commentEndLine = $comment->getEndLine(); + $commentEndFilePos = $comment->getEndFilePos(); + $commentEndTokenPos = $comment->getEndTokenPos(); + + $attributes = ['comments' => $comments]; + if (-1 !== $commentEndLine) { + $attributes['startLine'] = $commentEndLine; + $attributes['endLine'] = $commentEndLine; + } + if (-1 !== $commentEndFilePos) { + $attributes['startFilePos'] = $commentEndFilePos + 1; + $attributes['endFilePos'] = $commentEndFilePos; + } + if (-1 !== $commentEndTokenPos) { + $attributes['startTokenPos'] = $commentEndTokenPos + 1; + $attributes['endTokenPos'] = $commentEndTokenPos; + } + return $attributes; + } + + /** @param ElseIf_|Else_ $node */ + protected function fixupAlternativeElse($node) { + // Make sure a trailing nop statement carrying comments is part of the node. + $numStmts = \count($node->stmts); + if ($numStmts !== 0 && $node->stmts[$numStmts - 1] instanceof Nop) { + $nopAttrs = $node->stmts[$numStmts - 1]->getAttributes(); + if (isset($nopAttrs['endLine'])) { + $node->setAttribute('endLine', $nopAttrs['endLine']); + } + if (isset($nopAttrs['endFilePos'])) { + $node->setAttribute('endFilePos', $nopAttrs['endFilePos']); + } + if (isset($nopAttrs['endTokenPos'])) { + $node->setAttribute('endTokenPos', $nopAttrs['endTokenPos']); + } + } + } + + protected function checkClassModifier($a, $b, $modifierPos) { + try { + Class_::verifyClassModifier($a, $b); + } catch (Error $error) { + $error->setAttributes($this->getAttributesAt($modifierPos)); + $this->emitError($error); + } + } + + protected function checkModifier($a, $b, $modifierPos) { + // Jumping through some hoops here because verifyModifier() is also used elsewhere + try { + Class_::verifyModifier($a, $b); + } catch (Error $error) { + $error->setAttributes($this->getAttributesAt($modifierPos)); + $this->emitError($error); + } + } + + protected function checkParam(Param $node) { + if ($node->variadic && null !== $node->default) { + $this->emitError(new Error( + 'Variadic parameter cannot have a default value', + $node->default->getAttributes() + )); + } + } + + protected function checkTryCatch(TryCatch $node) { + if (empty($node->catches) && null === $node->finally) { + $this->emitError(new Error( + 'Cannot use try without catch or finally', $node->getAttributes() + )); + } + } + + protected function checkNamespace(Namespace_ $node) { + if (null !== $node->stmts) { + foreach ($node->stmts as $stmt) { + if ($stmt instanceof Namespace_) { + $this->emitError(new Error( + 'Namespace declarations cannot be nested', $stmt->getAttributes() + )); + } + } + } + } + + private function checkClassName($name, $namePos) { + if (null !== $name && $name->isSpecialClassName()) { + $this->emitError(new Error( + sprintf('Cannot use \'%s\' as class name as it is reserved', $name), + $this->getAttributesAt($namePos) + )); + } + } + + private function checkImplementedInterfaces(array $interfaces) { + foreach ($interfaces as $interface) { + if ($interface->isSpecialClassName()) { + $this->emitError(new Error( + sprintf('Cannot use \'%s\' as interface name as it is reserved', $interface), + $interface->getAttributes() + )); + } + } + } + + protected function checkClass(Class_ $node, $namePos) { + $this->checkClassName($node->name, $namePos); + + if ($node->extends && $node->extends->isSpecialClassName()) { + $this->emitError(new Error( + sprintf('Cannot use \'%s\' as class name as it is reserved', $node->extends), + $node->extends->getAttributes() + )); + } + + $this->checkImplementedInterfaces($node->implements); + } + + protected function checkInterface(Interface_ $node, $namePos) { + $this->checkClassName($node->name, $namePos); + $this->checkImplementedInterfaces($node->extends); + } + + protected function checkEnum(Enum_ $node, $namePos) { + $this->checkClassName($node->name, $namePos); + $this->checkImplementedInterfaces($node->implements); + } + + protected function checkClassMethod(ClassMethod $node, $modifierPos) { + if ($node->flags & Class_::MODIFIER_STATIC) { + switch ($node->name->toLowerString()) { + case '__construct': + $this->emitError(new Error( + sprintf('Constructor %s() cannot be static', $node->name), + $this->getAttributesAt($modifierPos))); + break; + case '__destruct': + $this->emitError(new Error( + sprintf('Destructor %s() cannot be static', $node->name), + $this->getAttributesAt($modifierPos))); + break; + case '__clone': + $this->emitError(new Error( + sprintf('Clone method %s() cannot be static', $node->name), + $this->getAttributesAt($modifierPos))); + break; + } + } + + if ($node->flags & Class_::MODIFIER_READONLY) { + $this->emitError(new Error( + sprintf('Method %s() cannot be readonly', $node->name), + $this->getAttributesAt($modifierPos))); + } + } + + protected function checkClassConst(ClassConst $node, $modifierPos) { + if ($node->flags & Class_::MODIFIER_STATIC) { + $this->emitError(new Error( + "Cannot use 'static' as constant modifier", + $this->getAttributesAt($modifierPos))); + } + if ($node->flags & Class_::MODIFIER_ABSTRACT) { + $this->emitError(new Error( + "Cannot use 'abstract' as constant modifier", + $this->getAttributesAt($modifierPos))); + } + if ($node->flags & Class_::MODIFIER_READONLY) { + $this->emitError(new Error( + "Cannot use 'readonly' as constant modifier", + $this->getAttributesAt($modifierPos))); + } + } + + protected function checkProperty(Property $node, $modifierPos) { + if ($node->flags & Class_::MODIFIER_ABSTRACT) { + $this->emitError(new Error('Properties cannot be declared abstract', + $this->getAttributesAt($modifierPos))); + } + + if ($node->flags & Class_::MODIFIER_FINAL) { + $this->emitError(new Error('Properties cannot be declared final', + $this->getAttributesAt($modifierPos))); + } + } + + protected function checkUseUse(UseUse $node, $namePos) { + if ($node->alias && $node->alias->isSpecialClassName()) { + $this->emitError(new Error( + sprintf( + 'Cannot use %s as %s because \'%2$s\' is a special class name', + $node->name, $node->alias + ), + $this->getAttributesAt($namePos) + )); + } + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php new file mode 100644 index 00000000..f041e7ff --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php @@ -0,0 +1,44 @@ +pAttrGroups($node->attrGroups, true) + . $this->pModifiers($node->flags) + . ($node->type ? $this->p($node->type) . ' ' : '') + . ($node->byRef ? '&' : '') + . ($node->variadic ? '...' : '') + . $this->p($node->var) + . ($node->default ? ' = ' . $this->p($node->default) : ''); + } + + protected function pArg(Node\Arg $node) { + return ($node->name ? $node->name->toString() . ': ' : '') + . ($node->byRef ? '&' : '') . ($node->unpack ? '...' : '') + . $this->p($node->value); + } + + protected function pVariadicPlaceholder(Node\VariadicPlaceholder $node) { + return '...'; + } + + protected function pConst(Node\Const_ $node) { + return $node->name . ' = ' . $this->p($node->value); + } + + protected function pNullableType(Node\NullableType $node) { + return '?' . $this->p($node->type); + } + + protected function pUnionType(Node\UnionType $node) { + $types = []; + foreach ($node->types as $typeNode) { + if ($typeNode instanceof Node\IntersectionType) { + $types[] = '('. $this->p($typeNode) . ')'; + continue; + } + $types[] = $this->p($typeNode); + } + return implode('|', $types); + } + + protected function pIntersectionType(Node\IntersectionType $node) { + return $this->pImplode($node->types, '&'); + } + + protected function pIdentifier(Node\Identifier $node) { + return $node->name; + } + + protected function pVarLikeIdentifier(Node\VarLikeIdentifier $node) { + return '$' . $node->name; + } + + protected function pAttribute(Node\Attribute $node) { + return $this->p($node->name) + . ($node->args ? '(' . $this->pCommaSeparated($node->args) . ')' : ''); + } + + protected function pAttributeGroup(Node\AttributeGroup $node) { + return '#[' . $this->pCommaSeparated($node->attrs) . ']'; + } + + // Names + + protected function pName(Name $node) { + return implode('\\', $node->parts); + } + + protected function pName_FullyQualified(Name\FullyQualified $node) { + return '\\' . implode('\\', $node->parts); + } + + protected function pName_Relative(Name\Relative $node) { + return 'namespace\\' . implode('\\', $node->parts); + } + + // Magic Constants + + protected function pScalar_MagicConst_Class(MagicConst\Class_ $node) { + return '__CLASS__'; + } + + protected function pScalar_MagicConst_Dir(MagicConst\Dir $node) { + return '__DIR__'; + } + + protected function pScalar_MagicConst_File(MagicConst\File $node) { + return '__FILE__'; + } + + protected function pScalar_MagicConst_Function(MagicConst\Function_ $node) { + return '__FUNCTION__'; + } + + protected function pScalar_MagicConst_Line(MagicConst\Line $node) { + return '__LINE__'; + } + + protected function pScalar_MagicConst_Method(MagicConst\Method $node) { + return '__METHOD__'; + } + + protected function pScalar_MagicConst_Namespace(MagicConst\Namespace_ $node) { + return '__NAMESPACE__'; + } + + protected function pScalar_MagicConst_Trait(MagicConst\Trait_ $node) { + return '__TRAIT__'; + } + + // Scalars + + protected function pScalar_String(Scalar\String_ $node) { + $kind = $node->getAttribute('kind', Scalar\String_::KIND_SINGLE_QUOTED); + switch ($kind) { + case Scalar\String_::KIND_NOWDOC: + $label = $node->getAttribute('docLabel'); + if ($label && !$this->containsEndLabel($node->value, $label)) { + if ($node->value === '') { + return "<<<'$label'\n$label" . $this->docStringEndToken; + } + + return "<<<'$label'\n$node->value\n$label" + . $this->docStringEndToken; + } + /* break missing intentionally */ + case Scalar\String_::KIND_SINGLE_QUOTED: + return $this->pSingleQuotedString($node->value); + case Scalar\String_::KIND_HEREDOC: + $label = $node->getAttribute('docLabel'); + if ($label && !$this->containsEndLabel($node->value, $label)) { + if ($node->value === '') { + return "<<<$label\n$label" . $this->docStringEndToken; + } + + $escaped = $this->escapeString($node->value, null); + return "<<<$label\n" . $escaped . "\n$label" + . $this->docStringEndToken; + } + /* break missing intentionally */ + case Scalar\String_::KIND_DOUBLE_QUOTED: + return '"' . $this->escapeString($node->value, '"') . '"'; + } + throw new \Exception('Invalid string kind'); + } + + protected function pScalar_Encapsed(Scalar\Encapsed $node) { + if ($node->getAttribute('kind') === Scalar\String_::KIND_HEREDOC) { + $label = $node->getAttribute('docLabel'); + if ($label && !$this->encapsedContainsEndLabel($node->parts, $label)) { + if (count($node->parts) === 1 + && $node->parts[0] instanceof Scalar\EncapsedStringPart + && $node->parts[0]->value === '' + ) { + return "<<<$label\n$label" . $this->docStringEndToken; + } + + return "<<<$label\n" . $this->pEncapsList($node->parts, null) . "\n$label" + . $this->docStringEndToken; + } + } + return '"' . $this->pEncapsList($node->parts, '"') . '"'; + } + + protected function pScalar_LNumber(Scalar\LNumber $node) { + if ($node->value === -\PHP_INT_MAX-1) { + // PHP_INT_MIN cannot be represented as a literal, + // because the sign is not part of the literal + return '(-' . \PHP_INT_MAX . '-1)'; + } + + $kind = $node->getAttribute('kind', Scalar\LNumber::KIND_DEC); + if (Scalar\LNumber::KIND_DEC === $kind) { + return (string) $node->value; + } + + if ($node->value < 0) { + $sign = '-'; + $str = (string) -$node->value; + } else { + $sign = ''; + $str = (string) $node->value; + } + switch ($kind) { + case Scalar\LNumber::KIND_BIN: + return $sign . '0b' . base_convert($str, 10, 2); + case Scalar\LNumber::KIND_OCT: + return $sign . '0' . base_convert($str, 10, 8); + case Scalar\LNumber::KIND_HEX: + return $sign . '0x' . base_convert($str, 10, 16); + } + throw new \Exception('Invalid number kind'); + } + + protected function pScalar_DNumber(Scalar\DNumber $node) { + if (!is_finite($node->value)) { + if ($node->value === \INF) { + return '\INF'; + } elseif ($node->value === -\INF) { + return '-\INF'; + } else { + return '\NAN'; + } + } + + // Try to find a short full-precision representation + $stringValue = sprintf('%.16G', $node->value); + if ($node->value !== (double) $stringValue) { + $stringValue = sprintf('%.17G', $node->value); + } + + // %G is locale dependent and there exists no locale-independent alternative. We don't want + // mess with switching locales here, so let's assume that a comma is the only non-standard + // decimal separator we may encounter... + $stringValue = str_replace(',', '.', $stringValue); + + // ensure that number is really printed as float + return preg_match('/^-?[0-9]+$/', $stringValue) ? $stringValue . '.0' : $stringValue; + } + + protected function pScalar_EncapsedStringPart(Scalar\EncapsedStringPart $node) { + throw new \LogicException('Cannot directly print EncapsedStringPart'); + } + + // Assignments + + protected function pExpr_Assign(Expr\Assign $node) { + return $this->pInfixOp(Expr\Assign::class, $node->var, ' = ', $node->expr); + } + + protected function pExpr_AssignRef(Expr\AssignRef $node) { + return $this->pInfixOp(Expr\AssignRef::class, $node->var, ' =& ', $node->expr); + } + + protected function pExpr_AssignOp_Plus(AssignOp\Plus $node) { + return $this->pInfixOp(AssignOp\Plus::class, $node->var, ' += ', $node->expr); + } + + protected function pExpr_AssignOp_Minus(AssignOp\Minus $node) { + return $this->pInfixOp(AssignOp\Minus::class, $node->var, ' -= ', $node->expr); + } + + protected function pExpr_AssignOp_Mul(AssignOp\Mul $node) { + return $this->pInfixOp(AssignOp\Mul::class, $node->var, ' *= ', $node->expr); + } + + protected function pExpr_AssignOp_Div(AssignOp\Div $node) { + return $this->pInfixOp(AssignOp\Div::class, $node->var, ' /= ', $node->expr); + } + + protected function pExpr_AssignOp_Concat(AssignOp\Concat $node) { + return $this->pInfixOp(AssignOp\Concat::class, $node->var, ' .= ', $node->expr); + } + + protected function pExpr_AssignOp_Mod(AssignOp\Mod $node) { + return $this->pInfixOp(AssignOp\Mod::class, $node->var, ' %= ', $node->expr); + } + + protected function pExpr_AssignOp_BitwiseAnd(AssignOp\BitwiseAnd $node) { + return $this->pInfixOp(AssignOp\BitwiseAnd::class, $node->var, ' &= ', $node->expr); + } + + protected function pExpr_AssignOp_BitwiseOr(AssignOp\BitwiseOr $node) { + return $this->pInfixOp(AssignOp\BitwiseOr::class, $node->var, ' |= ', $node->expr); + } + + protected function pExpr_AssignOp_BitwiseXor(AssignOp\BitwiseXor $node) { + return $this->pInfixOp(AssignOp\BitwiseXor::class, $node->var, ' ^= ', $node->expr); + } + + protected function pExpr_AssignOp_ShiftLeft(AssignOp\ShiftLeft $node) { + return $this->pInfixOp(AssignOp\ShiftLeft::class, $node->var, ' <<= ', $node->expr); + } + + protected function pExpr_AssignOp_ShiftRight(AssignOp\ShiftRight $node) { + return $this->pInfixOp(AssignOp\ShiftRight::class, $node->var, ' >>= ', $node->expr); + } + + protected function pExpr_AssignOp_Pow(AssignOp\Pow $node) { + return $this->pInfixOp(AssignOp\Pow::class, $node->var, ' **= ', $node->expr); + } + + protected function pExpr_AssignOp_Coalesce(AssignOp\Coalesce $node) { + return $this->pInfixOp(AssignOp\Coalesce::class, $node->var, ' ??= ', $node->expr); + } + + // Binary expressions + + protected function pExpr_BinaryOp_Plus(BinaryOp\Plus $node) { + return $this->pInfixOp(BinaryOp\Plus::class, $node->left, ' + ', $node->right); + } + + protected function pExpr_BinaryOp_Minus(BinaryOp\Minus $node) { + return $this->pInfixOp(BinaryOp\Minus::class, $node->left, ' - ', $node->right); + } + + protected function pExpr_BinaryOp_Mul(BinaryOp\Mul $node) { + return $this->pInfixOp(BinaryOp\Mul::class, $node->left, ' * ', $node->right); + } + + protected function pExpr_BinaryOp_Div(BinaryOp\Div $node) { + return $this->pInfixOp(BinaryOp\Div::class, $node->left, ' / ', $node->right); + } + + protected function pExpr_BinaryOp_Concat(BinaryOp\Concat $node) { + return $this->pInfixOp(BinaryOp\Concat::class, $node->left, ' . ', $node->right); + } + + protected function pExpr_BinaryOp_Mod(BinaryOp\Mod $node) { + return $this->pInfixOp(BinaryOp\Mod::class, $node->left, ' % ', $node->right); + } + + protected function pExpr_BinaryOp_BooleanAnd(BinaryOp\BooleanAnd $node) { + return $this->pInfixOp(BinaryOp\BooleanAnd::class, $node->left, ' && ', $node->right); + } + + protected function pExpr_BinaryOp_BooleanOr(BinaryOp\BooleanOr $node) { + return $this->pInfixOp(BinaryOp\BooleanOr::class, $node->left, ' || ', $node->right); + } + + protected function pExpr_BinaryOp_BitwiseAnd(BinaryOp\BitwiseAnd $node) { + return $this->pInfixOp(BinaryOp\BitwiseAnd::class, $node->left, ' & ', $node->right); + } + + protected function pExpr_BinaryOp_BitwiseOr(BinaryOp\BitwiseOr $node) { + return $this->pInfixOp(BinaryOp\BitwiseOr::class, $node->left, ' | ', $node->right); + } + + protected function pExpr_BinaryOp_BitwiseXor(BinaryOp\BitwiseXor $node) { + return $this->pInfixOp(BinaryOp\BitwiseXor::class, $node->left, ' ^ ', $node->right); + } + + protected function pExpr_BinaryOp_ShiftLeft(BinaryOp\ShiftLeft $node) { + return $this->pInfixOp(BinaryOp\ShiftLeft::class, $node->left, ' << ', $node->right); + } + + protected function pExpr_BinaryOp_ShiftRight(BinaryOp\ShiftRight $node) { + return $this->pInfixOp(BinaryOp\ShiftRight::class, $node->left, ' >> ', $node->right); + } + + protected function pExpr_BinaryOp_Pow(BinaryOp\Pow $node) { + return $this->pInfixOp(BinaryOp\Pow::class, $node->left, ' ** ', $node->right); + } + + protected function pExpr_BinaryOp_LogicalAnd(BinaryOp\LogicalAnd $node) { + return $this->pInfixOp(BinaryOp\LogicalAnd::class, $node->left, ' and ', $node->right); + } + + protected function pExpr_BinaryOp_LogicalOr(BinaryOp\LogicalOr $node) { + return $this->pInfixOp(BinaryOp\LogicalOr::class, $node->left, ' or ', $node->right); + } + + protected function pExpr_BinaryOp_LogicalXor(BinaryOp\LogicalXor $node) { + return $this->pInfixOp(BinaryOp\LogicalXor::class, $node->left, ' xor ', $node->right); + } + + protected function pExpr_BinaryOp_Equal(BinaryOp\Equal $node) { + return $this->pInfixOp(BinaryOp\Equal::class, $node->left, ' == ', $node->right); + } + + protected function pExpr_BinaryOp_NotEqual(BinaryOp\NotEqual $node) { + return $this->pInfixOp(BinaryOp\NotEqual::class, $node->left, ' != ', $node->right); + } + + protected function pExpr_BinaryOp_Identical(BinaryOp\Identical $node) { + return $this->pInfixOp(BinaryOp\Identical::class, $node->left, ' === ', $node->right); + } + + protected function pExpr_BinaryOp_NotIdentical(BinaryOp\NotIdentical $node) { + return $this->pInfixOp(BinaryOp\NotIdentical::class, $node->left, ' !== ', $node->right); + } + + protected function pExpr_BinaryOp_Spaceship(BinaryOp\Spaceship $node) { + return $this->pInfixOp(BinaryOp\Spaceship::class, $node->left, ' <=> ', $node->right); + } + + protected function pExpr_BinaryOp_Greater(BinaryOp\Greater $node) { + return $this->pInfixOp(BinaryOp\Greater::class, $node->left, ' > ', $node->right); + } + + protected function pExpr_BinaryOp_GreaterOrEqual(BinaryOp\GreaterOrEqual $node) { + return $this->pInfixOp(BinaryOp\GreaterOrEqual::class, $node->left, ' >= ', $node->right); + } + + protected function pExpr_BinaryOp_Smaller(BinaryOp\Smaller $node) { + return $this->pInfixOp(BinaryOp\Smaller::class, $node->left, ' < ', $node->right); + } + + protected function pExpr_BinaryOp_SmallerOrEqual(BinaryOp\SmallerOrEqual $node) { + return $this->pInfixOp(BinaryOp\SmallerOrEqual::class, $node->left, ' <= ', $node->right); + } + + protected function pExpr_BinaryOp_Coalesce(BinaryOp\Coalesce $node) { + return $this->pInfixOp(BinaryOp\Coalesce::class, $node->left, ' ?? ', $node->right); + } + + protected function pExpr_Instanceof(Expr\Instanceof_ $node) { + list($precedence, $associativity) = $this->precedenceMap[Expr\Instanceof_::class]; + return $this->pPrec($node->expr, $precedence, $associativity, -1) + . ' instanceof ' + . $this->pNewVariable($node->class); + } + + // Unary expressions + + protected function pExpr_BooleanNot(Expr\BooleanNot $node) { + return $this->pPrefixOp(Expr\BooleanNot::class, '!', $node->expr); + } + + protected function pExpr_BitwiseNot(Expr\BitwiseNot $node) { + return $this->pPrefixOp(Expr\BitwiseNot::class, '~', $node->expr); + } + + protected function pExpr_UnaryMinus(Expr\UnaryMinus $node) { + if ($node->expr instanceof Expr\UnaryMinus || $node->expr instanceof Expr\PreDec) { + // Enforce -(-$expr) instead of --$expr + return '-(' . $this->p($node->expr) . ')'; + } + return $this->pPrefixOp(Expr\UnaryMinus::class, '-', $node->expr); + } + + protected function pExpr_UnaryPlus(Expr\UnaryPlus $node) { + if ($node->expr instanceof Expr\UnaryPlus || $node->expr instanceof Expr\PreInc) { + // Enforce +(+$expr) instead of ++$expr + return '+(' . $this->p($node->expr) . ')'; + } + return $this->pPrefixOp(Expr\UnaryPlus::class, '+', $node->expr); + } + + protected function pExpr_PreInc(Expr\PreInc $node) { + return $this->pPrefixOp(Expr\PreInc::class, '++', $node->var); + } + + protected function pExpr_PreDec(Expr\PreDec $node) { + return $this->pPrefixOp(Expr\PreDec::class, '--', $node->var); + } + + protected function pExpr_PostInc(Expr\PostInc $node) { + return $this->pPostfixOp(Expr\PostInc::class, $node->var, '++'); + } + + protected function pExpr_PostDec(Expr\PostDec $node) { + return $this->pPostfixOp(Expr\PostDec::class, $node->var, '--'); + } + + protected function pExpr_ErrorSuppress(Expr\ErrorSuppress $node) { + return $this->pPrefixOp(Expr\ErrorSuppress::class, '@', $node->expr); + } + + protected function pExpr_YieldFrom(Expr\YieldFrom $node) { + return $this->pPrefixOp(Expr\YieldFrom::class, 'yield from ', $node->expr); + } + + protected function pExpr_Print(Expr\Print_ $node) { + return $this->pPrefixOp(Expr\Print_::class, 'print ', $node->expr); + } + + // Casts + + protected function pExpr_Cast_Int(Cast\Int_ $node) { + return $this->pPrefixOp(Cast\Int_::class, '(int) ', $node->expr); + } + + protected function pExpr_Cast_Double(Cast\Double $node) { + $kind = $node->getAttribute('kind', Cast\Double::KIND_DOUBLE); + if ($kind === Cast\Double::KIND_DOUBLE) { + $cast = '(double)'; + } elseif ($kind === Cast\Double::KIND_FLOAT) { + $cast = '(float)'; + } elseif ($kind === Cast\Double::KIND_REAL) { + $cast = '(real)'; + } + return $this->pPrefixOp(Cast\Double::class, $cast . ' ', $node->expr); + } + + protected function pExpr_Cast_String(Cast\String_ $node) { + return $this->pPrefixOp(Cast\String_::class, '(string) ', $node->expr); + } + + protected function pExpr_Cast_Array(Cast\Array_ $node) { + return $this->pPrefixOp(Cast\Array_::class, '(array) ', $node->expr); + } + + protected function pExpr_Cast_Object(Cast\Object_ $node) { + return $this->pPrefixOp(Cast\Object_::class, '(object) ', $node->expr); + } + + protected function pExpr_Cast_Bool(Cast\Bool_ $node) { + return $this->pPrefixOp(Cast\Bool_::class, '(bool) ', $node->expr); + } + + protected function pExpr_Cast_Unset(Cast\Unset_ $node) { + return $this->pPrefixOp(Cast\Unset_::class, '(unset) ', $node->expr); + } + + // Function calls and similar constructs + + protected function pExpr_FuncCall(Expr\FuncCall $node) { + return $this->pCallLhs($node->name) + . '(' . $this->pMaybeMultiline($node->args) . ')'; + } + + protected function pExpr_MethodCall(Expr\MethodCall $node) { + return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name) + . '(' . $this->pMaybeMultiline($node->args) . ')'; + } + + protected function pExpr_NullsafeMethodCall(Expr\NullsafeMethodCall $node) { + return $this->pDereferenceLhs($node->var) . '?->' . $this->pObjectProperty($node->name) + . '(' . $this->pMaybeMultiline($node->args) . ')'; + } + + protected function pExpr_StaticCall(Expr\StaticCall $node) { + return $this->pDereferenceLhs($node->class) . '::' + . ($node->name instanceof Expr + ? ($node->name instanceof Expr\Variable + ? $this->p($node->name) + : '{' . $this->p($node->name) . '}') + : $node->name) + . '(' . $this->pMaybeMultiline($node->args) . ')'; + } + + protected function pExpr_Empty(Expr\Empty_ $node) { + return 'empty(' . $this->p($node->expr) . ')'; + } + + protected function pExpr_Isset(Expr\Isset_ $node) { + return 'isset(' . $this->pCommaSeparated($node->vars) . ')'; + } + + protected function pExpr_Eval(Expr\Eval_ $node) { + return 'eval(' . $this->p($node->expr) . ')'; + } + + protected function pExpr_Include(Expr\Include_ $node) { + static $map = [ + Expr\Include_::TYPE_INCLUDE => 'include', + Expr\Include_::TYPE_INCLUDE_ONCE => 'include_once', + Expr\Include_::TYPE_REQUIRE => 'require', + Expr\Include_::TYPE_REQUIRE_ONCE => 'require_once', + ]; + + return $map[$node->type] . ' ' . $this->p($node->expr); + } + + protected function pExpr_List(Expr\List_ $node) { + return 'list(' . $this->pCommaSeparated($node->items) . ')'; + } + + // Other + + protected function pExpr_Error(Expr\Error $node) { + throw new \LogicException('Cannot pretty-print AST with Error nodes'); + } + + protected function pExpr_Variable(Expr\Variable $node) { + if ($node->name instanceof Expr) { + return '${' . $this->p($node->name) . '}'; + } else { + return '$' . $node->name; + } + } + + protected function pExpr_Array(Expr\Array_ $node) { + $syntax = $node->getAttribute('kind', + $this->options['shortArraySyntax'] ? Expr\Array_::KIND_SHORT : Expr\Array_::KIND_LONG); + if ($syntax === Expr\Array_::KIND_SHORT) { + return '[' . $this->pMaybeMultiline($node->items, true) . ']'; + } else { + return 'array(' . $this->pMaybeMultiline($node->items, true) . ')'; + } + } + + protected function pExpr_ArrayItem(Expr\ArrayItem $node) { + return (null !== $node->key ? $this->p($node->key) . ' => ' : '') + . ($node->byRef ? '&' : '') + . ($node->unpack ? '...' : '') + . $this->p($node->value); + } + + protected function pExpr_ArrayDimFetch(Expr\ArrayDimFetch $node) { + return $this->pDereferenceLhs($node->var) + . '[' . (null !== $node->dim ? $this->p($node->dim) : '') . ']'; + } + + protected function pExpr_ConstFetch(Expr\ConstFetch $node) { + return $this->p($node->name); + } + + protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node) { + return $this->pDereferenceLhs($node->class) . '::' . $this->p($node->name); + } + + protected function pExpr_PropertyFetch(Expr\PropertyFetch $node) { + return $this->pDereferenceLhs($node->var) . '->' . $this->pObjectProperty($node->name); + } + + protected function pExpr_NullsafePropertyFetch(Expr\NullsafePropertyFetch $node) { + return $this->pDereferenceLhs($node->var) . '?->' . $this->pObjectProperty($node->name); + } + + protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node) { + return $this->pDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); + } + + protected function pExpr_ShellExec(Expr\ShellExec $node) { + return '`' . $this->pEncapsList($node->parts, '`') . '`'; + } + + protected function pExpr_Closure(Expr\Closure $node) { + return $this->pAttrGroups($node->attrGroups, true) + . ($node->static ? 'static ' : '') + . 'function ' . ($node->byRef ? '&' : '') + . '(' . $this->pCommaSeparated($node->params) . ')' + . (!empty($node->uses) ? ' use(' . $this->pCommaSeparated($node->uses) . ')' : '') + . (null !== $node->returnType ? ' : ' . $this->p($node->returnType) : '') + . ' {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pExpr_Match(Expr\Match_ $node) { + return 'match (' . $this->p($node->cond) . ') {' + . $this->pCommaSeparatedMultiline($node->arms, true) + . $this->nl + . '}'; + } + + protected function pMatchArm(Node\MatchArm $node) { + return ($node->conds ? $this->pCommaSeparated($node->conds) : 'default') + . ' => ' . $this->p($node->body); + } + + protected function pExpr_ArrowFunction(Expr\ArrowFunction $node) { + return $this->pAttrGroups($node->attrGroups, true) + . ($node->static ? 'static ' : '') + . 'fn' . ($node->byRef ? '&' : '') + . '(' . $this->pCommaSeparated($node->params) . ')' + . (null !== $node->returnType ? ': ' . $this->p($node->returnType) : '') + . ' => ' + . $this->p($node->expr); + } + + protected function pExpr_ClosureUse(Expr\ClosureUse $node) { + return ($node->byRef ? '&' : '') . $this->p($node->var); + } + + protected function pExpr_New(Expr\New_ $node) { + if ($node->class instanceof Stmt\Class_) { + $args = $node->args ? '(' . $this->pMaybeMultiline($node->args) . ')' : ''; + return 'new ' . $this->pClassCommon($node->class, $args); + } + return 'new ' . $this->pNewVariable($node->class) + . '(' . $this->pMaybeMultiline($node->args) . ')'; + } + + protected function pExpr_Clone(Expr\Clone_ $node) { + return 'clone ' . $this->p($node->expr); + } + + protected function pExpr_Ternary(Expr\Ternary $node) { + // a bit of cheating: we treat the ternary as a binary op where the ?...: part is the operator. + // this is okay because the part between ? and : never needs parentheses. + return $this->pInfixOp(Expr\Ternary::class, + $node->cond, ' ?' . (null !== $node->if ? ' ' . $this->p($node->if) . ' ' : '') . ': ', $node->else + ); + } + + protected function pExpr_Exit(Expr\Exit_ $node) { + $kind = $node->getAttribute('kind', Expr\Exit_::KIND_DIE); + return ($kind === Expr\Exit_::KIND_EXIT ? 'exit' : 'die') + . (null !== $node->expr ? '(' . $this->p($node->expr) . ')' : ''); + } + + protected function pExpr_Throw(Expr\Throw_ $node) { + return 'throw ' . $this->p($node->expr); + } + + protected function pExpr_Yield(Expr\Yield_ $node) { + if ($node->value === null) { + return 'yield'; + } else { + // this is a bit ugly, but currently there is no way to detect whether the parentheses are necessary + return '(yield ' + . ($node->key !== null ? $this->p($node->key) . ' => ' : '') + . $this->p($node->value) + . ')'; + } + } + + // Declarations + + protected function pStmt_Namespace(Stmt\Namespace_ $node) { + if ($this->canUseSemicolonNamespaces) { + return 'namespace ' . $this->p($node->name) . ';' + . $this->nl . $this->pStmts($node->stmts, false); + } else { + return 'namespace' . (null !== $node->name ? ' ' . $this->p($node->name) : '') + . ' {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + } + + protected function pStmt_Use(Stmt\Use_ $node) { + return 'use ' . $this->pUseType($node->type) + . $this->pCommaSeparated($node->uses) . ';'; + } + + protected function pStmt_GroupUse(Stmt\GroupUse $node) { + return 'use ' . $this->pUseType($node->type) . $this->pName($node->prefix) + . '\{' . $this->pCommaSeparated($node->uses) . '};'; + } + + protected function pStmt_UseUse(Stmt\UseUse $node) { + return $this->pUseType($node->type) . $this->p($node->name) + . (null !== $node->alias ? ' as ' . $node->alias : ''); + } + + protected function pUseType($type) { + return $type === Stmt\Use_::TYPE_FUNCTION ? 'function ' + : ($type === Stmt\Use_::TYPE_CONSTANT ? 'const ' : ''); + } + + protected function pStmt_Interface(Stmt\Interface_ $node) { + return $this->pAttrGroups($node->attrGroups) + . 'interface ' . $node->name + . (!empty($node->extends) ? ' extends ' . $this->pCommaSeparated($node->extends) : '') + . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Enum(Stmt\Enum_ $node) { + return $this->pAttrGroups($node->attrGroups) + . 'enum ' . $node->name + . ($node->scalarType ? " : $node->scalarType" : '') + . (!empty($node->implements) ? ' implements ' . $this->pCommaSeparated($node->implements) : '') + . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Class(Stmt\Class_ $node) { + return $this->pClassCommon($node, ' ' . $node->name); + } + + protected function pStmt_Trait(Stmt\Trait_ $node) { + return $this->pAttrGroups($node->attrGroups) + . 'trait ' . $node->name + . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_EnumCase(Stmt\EnumCase $node) { + return $this->pAttrGroups($node->attrGroups) + . 'case ' . $node->name + . ($node->expr ? ' = ' . $this->p($node->expr) : '') + . ';'; + } + + protected function pStmt_TraitUse(Stmt\TraitUse $node) { + return 'use ' . $this->pCommaSeparated($node->traits) + . (empty($node->adaptations) + ? ';' + : ' {' . $this->pStmts($node->adaptations) . $this->nl . '}'); + } + + protected function pStmt_TraitUseAdaptation_Precedence(Stmt\TraitUseAdaptation\Precedence $node) { + return $this->p($node->trait) . '::' . $node->method + . ' insteadof ' . $this->pCommaSeparated($node->insteadof) . ';'; + } + + protected function pStmt_TraitUseAdaptation_Alias(Stmt\TraitUseAdaptation\Alias $node) { + return (null !== $node->trait ? $this->p($node->trait) . '::' : '') + . $node->method . ' as' + . (null !== $node->newModifier ? ' ' . rtrim($this->pModifiers($node->newModifier), ' ') : '') + . (null !== $node->newName ? ' ' . $node->newName : '') + . ';'; + } + + protected function pStmt_Property(Stmt\Property $node) { + return $this->pAttrGroups($node->attrGroups) + . (0 === $node->flags ? 'var ' : $this->pModifiers($node->flags)) + . ($node->type ? $this->p($node->type) . ' ' : '') + . $this->pCommaSeparated($node->props) . ';'; + } + + protected function pStmt_PropertyProperty(Stmt\PropertyProperty $node) { + return '$' . $node->name + . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); + } + + protected function pStmt_ClassMethod(Stmt\ClassMethod $node) { + return $this->pAttrGroups($node->attrGroups) + . $this->pModifiers($node->flags) + . 'function ' . ($node->byRef ? '&' : '') . $node->name + . '(' . $this->pMaybeMultiline($node->params) . ')' + . (null !== $node->returnType ? ' : ' . $this->p($node->returnType) : '') + . (null !== $node->stmts + ? $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}' + : ';'); + } + + protected function pStmt_ClassConst(Stmt\ClassConst $node) { + return $this->pAttrGroups($node->attrGroups) + . $this->pModifiers($node->flags) + . 'const ' . $this->pCommaSeparated($node->consts) . ';'; + } + + protected function pStmt_Function(Stmt\Function_ $node) { + return $this->pAttrGroups($node->attrGroups) + . 'function ' . ($node->byRef ? '&' : '') . $node->name + . '(' . $this->pCommaSeparated($node->params) . ')' + . (null !== $node->returnType ? ' : ' . $this->p($node->returnType) : '') + . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Const(Stmt\Const_ $node) { + return 'const ' . $this->pCommaSeparated($node->consts) . ';'; + } + + protected function pStmt_Declare(Stmt\Declare_ $node) { + return 'declare (' . $this->pCommaSeparated($node->declares) . ')' + . (null !== $node->stmts ? ' {' . $this->pStmts($node->stmts) . $this->nl . '}' : ';'); + } + + protected function pStmt_DeclareDeclare(Stmt\DeclareDeclare $node) { + return $node->key . '=' . $this->p($node->value); + } + + // Control flow + + protected function pStmt_If(Stmt\If_ $node) { + return 'if (' . $this->p($node->cond) . ') {' + . $this->pStmts($node->stmts) . $this->nl . '}' + . ($node->elseifs ? ' ' . $this->pImplode($node->elseifs, ' ') : '') + . (null !== $node->else ? ' ' . $this->p($node->else) : ''); + } + + protected function pStmt_ElseIf(Stmt\ElseIf_ $node) { + return 'elseif (' . $this->p($node->cond) . ') {' + . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Else(Stmt\Else_ $node) { + return 'else {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_For(Stmt\For_ $node) { + return 'for (' + . $this->pCommaSeparated($node->init) . ';' . (!empty($node->cond) ? ' ' : '') + . $this->pCommaSeparated($node->cond) . ';' . (!empty($node->loop) ? ' ' : '') + . $this->pCommaSeparated($node->loop) + . ') {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Foreach(Stmt\Foreach_ $node) { + return 'foreach (' . $this->p($node->expr) . ' as ' + . (null !== $node->keyVar ? $this->p($node->keyVar) . ' => ' : '') + . ($node->byRef ? '&' : '') . $this->p($node->valueVar) . ') {' + . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_While(Stmt\While_ $node) { + return 'while (' . $this->p($node->cond) . ') {' + . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Do(Stmt\Do_ $node) { + return 'do {' . $this->pStmts($node->stmts) . $this->nl + . '} while (' . $this->p($node->cond) . ');'; + } + + protected function pStmt_Switch(Stmt\Switch_ $node) { + return 'switch (' . $this->p($node->cond) . ') {' + . $this->pStmts($node->cases) . $this->nl . '}'; + } + + protected function pStmt_Case(Stmt\Case_ $node) { + return (null !== $node->cond ? 'case ' . $this->p($node->cond) : 'default') . ':' + . $this->pStmts($node->stmts); + } + + protected function pStmt_TryCatch(Stmt\TryCatch $node) { + return 'try {' . $this->pStmts($node->stmts) . $this->nl . '}' + . ($node->catches ? ' ' . $this->pImplode($node->catches, ' ') : '') + . ($node->finally !== null ? ' ' . $this->p($node->finally) : ''); + } + + protected function pStmt_Catch(Stmt\Catch_ $node) { + return 'catch (' . $this->pImplode($node->types, '|') + . ($node->var !== null ? ' ' . $this->p($node->var) : '') + . ') {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Finally(Stmt\Finally_ $node) { + return 'finally {' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pStmt_Break(Stmt\Break_ $node) { + return 'break' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; + } + + protected function pStmt_Continue(Stmt\Continue_ $node) { + return 'continue' . ($node->num !== null ? ' ' . $this->p($node->num) : '') . ';'; + } + + protected function pStmt_Return(Stmt\Return_ $node) { + return 'return' . (null !== $node->expr ? ' ' . $this->p($node->expr) : '') . ';'; + } + + protected function pStmt_Throw(Stmt\Throw_ $node) { + return 'throw ' . $this->p($node->expr) . ';'; + } + + protected function pStmt_Label(Stmt\Label $node) { + return $node->name . ':'; + } + + protected function pStmt_Goto(Stmt\Goto_ $node) { + return 'goto ' . $node->name . ';'; + } + + // Other + + protected function pStmt_Expression(Stmt\Expression $node) { + return $this->p($node->expr) . ';'; + } + + protected function pStmt_Echo(Stmt\Echo_ $node) { + return 'echo ' . $this->pCommaSeparated($node->exprs) . ';'; + } + + protected function pStmt_Static(Stmt\Static_ $node) { + return 'static ' . $this->pCommaSeparated($node->vars) . ';'; + } + + protected function pStmt_Global(Stmt\Global_ $node) { + return 'global ' . $this->pCommaSeparated($node->vars) . ';'; + } + + protected function pStmt_StaticVar(Stmt\StaticVar $node) { + return $this->p($node->var) + . (null !== $node->default ? ' = ' . $this->p($node->default) : ''); + } + + protected function pStmt_Unset(Stmt\Unset_ $node) { + return 'unset(' . $this->pCommaSeparated($node->vars) . ');'; + } + + protected function pStmt_InlineHTML(Stmt\InlineHTML $node) { + $newline = $node->getAttribute('hasLeadingNewline', true) ? "\n" : ''; + return '?>' . $newline . $node->value . 'remaining; + } + + protected function pStmt_Nop(Stmt\Nop $node) { + return ''; + } + + // Helpers + + protected function pClassCommon(Stmt\Class_ $node, $afterClassToken) { + return $this->pAttrGroups($node->attrGroups, $node->name === null) + . $this->pModifiers($node->flags) + . 'class' . $afterClassToken + . (null !== $node->extends ? ' extends ' . $this->p($node->extends) : '') + . (!empty($node->implements) ? ' implements ' . $this->pCommaSeparated($node->implements) : '') + . $this->nl . '{' . $this->pStmts($node->stmts) . $this->nl . '}'; + } + + protected function pObjectProperty($node) { + if ($node instanceof Expr) { + return '{' . $this->p($node) . '}'; + } else { + return $node; + } + } + + protected function pEncapsList(array $encapsList, $quote) { + $return = ''; + foreach ($encapsList as $element) { + if ($element instanceof Scalar\EncapsedStringPart) { + $return .= $this->escapeString($element->value, $quote); + } else { + $return .= '{' . $this->p($element) . '}'; + } + } + + return $return; + } + + protected function pSingleQuotedString(string $string) { + return '\'' . addcslashes($string, '\'\\') . '\''; + } + + protected function escapeString($string, $quote) { + if (null === $quote) { + // For doc strings, don't escape newlines + $escaped = addcslashes($string, "\t\f\v$\\"); + } else { + $escaped = addcslashes($string, "\n\r\t\f\v$" . $quote . "\\"); + } + + // Escape control characters and non-UTF-8 characters. + // Regex based on https://stackoverflow.com/a/11709412/385378. + $regex = '/( + [\x00-\x08\x0E-\x1F] # Control characters + | [\xC0-\xC1] # Invalid UTF-8 Bytes + | [\xF5-\xFF] # Invalid UTF-8 Bytes + | \xE0(?=[\x80-\x9F]) # Overlong encoding of prior code point + | \xF0(?=[\x80-\x8F]) # Overlong encoding of prior code point + | [\xC2-\xDF](?![\x80-\xBF]) # Invalid UTF-8 Sequence Start + | [\xE0-\xEF](?![\x80-\xBF]{2}) # Invalid UTF-8 Sequence Start + | [\xF0-\xF4](?![\x80-\xBF]{3}) # Invalid UTF-8 Sequence Start + | (?<=[\x00-\x7F\xF5-\xFF])[\x80-\xBF] # Invalid UTF-8 Sequence Middle + | (? $part) { + $atStart = $i === 0; + $atEnd = $i === count($parts) - 1; + if ($part instanceof Scalar\EncapsedStringPart + && $this->containsEndLabel($part->value, $label, $atStart, $atEnd) + ) { + return true; + } + } + return false; + } + + protected function pDereferenceLhs(Node $node) { + if (!$this->dereferenceLhsRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } + } + + protected function pCallLhs(Node $node) { + if (!$this->callLhsRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } + } + + protected function pNewVariable(Node $node) { + // TODO: This is not fully accurate. + return $this->pDereferenceLhs($node); + } + + /** + * @param Node[] $nodes + * @return bool + */ + protected function hasNodeWithComments(array $nodes) { + foreach ($nodes as $node) { + if ($node && $node->getComments()) { + return true; + } + } + return false; + } + + protected function pMaybeMultiline(array $nodes, bool $trailingComma = false) { + if (!$this->hasNodeWithComments($nodes)) { + return $this->pCommaSeparated($nodes); + } else { + return $this->pCommaSeparatedMultiline($nodes, $trailingComma) . $this->nl; + } + } + + protected function pAttrGroups(array $nodes, bool $inline = false): string { + $result = ''; + $sep = $inline ? ' ' : $this->nl; + foreach ($nodes as $node) { + $result .= $this->p($node) . $sep; + } + + return $result; + } +} diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php new file mode 100644 index 00000000..6ed936fe --- /dev/null +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -0,0 +1,1521 @@ + [ 0, 1], + Expr\BitwiseNot::class => [ 10, 1], + Expr\PreInc::class => [ 10, 1], + Expr\PreDec::class => [ 10, 1], + Expr\PostInc::class => [ 10, -1], + Expr\PostDec::class => [ 10, -1], + Expr\UnaryPlus::class => [ 10, 1], + Expr\UnaryMinus::class => [ 10, 1], + Cast\Int_::class => [ 10, 1], + Cast\Double::class => [ 10, 1], + Cast\String_::class => [ 10, 1], + Cast\Array_::class => [ 10, 1], + Cast\Object_::class => [ 10, 1], + Cast\Bool_::class => [ 10, 1], + Cast\Unset_::class => [ 10, 1], + Expr\ErrorSuppress::class => [ 10, 1], + Expr\Instanceof_::class => [ 20, 0], + Expr\BooleanNot::class => [ 30, 1], + BinaryOp\Mul::class => [ 40, -1], + BinaryOp\Div::class => [ 40, -1], + BinaryOp\Mod::class => [ 40, -1], + BinaryOp\Plus::class => [ 50, -1], + BinaryOp\Minus::class => [ 50, -1], + BinaryOp\Concat::class => [ 50, -1], + BinaryOp\ShiftLeft::class => [ 60, -1], + BinaryOp\ShiftRight::class => [ 60, -1], + BinaryOp\Smaller::class => [ 70, 0], + BinaryOp\SmallerOrEqual::class => [ 70, 0], + BinaryOp\Greater::class => [ 70, 0], + BinaryOp\GreaterOrEqual::class => [ 70, 0], + BinaryOp\Equal::class => [ 80, 0], + BinaryOp\NotEqual::class => [ 80, 0], + BinaryOp\Identical::class => [ 80, 0], + BinaryOp\NotIdentical::class => [ 80, 0], + BinaryOp\Spaceship::class => [ 80, 0], + BinaryOp\BitwiseAnd::class => [ 90, -1], + BinaryOp\BitwiseXor::class => [100, -1], + BinaryOp\BitwiseOr::class => [110, -1], + BinaryOp\BooleanAnd::class => [120, -1], + BinaryOp\BooleanOr::class => [130, -1], + BinaryOp\Coalesce::class => [140, 1], + Expr\Ternary::class => [150, 0], + // parser uses %left for assignments, but they really behave as %right + Expr\Assign::class => [160, 1], + Expr\AssignRef::class => [160, 1], + AssignOp\Plus::class => [160, 1], + AssignOp\Minus::class => [160, 1], + AssignOp\Mul::class => [160, 1], + AssignOp\Div::class => [160, 1], + AssignOp\Concat::class => [160, 1], + AssignOp\Mod::class => [160, 1], + AssignOp\BitwiseAnd::class => [160, 1], + AssignOp\BitwiseOr::class => [160, 1], + AssignOp\BitwiseXor::class => [160, 1], + AssignOp\ShiftLeft::class => [160, 1], + AssignOp\ShiftRight::class => [160, 1], + AssignOp\Pow::class => [160, 1], + AssignOp\Coalesce::class => [160, 1], + Expr\YieldFrom::class => [165, 1], + Expr\Print_::class => [168, 1], + BinaryOp\LogicalAnd::class => [170, -1], + BinaryOp\LogicalXor::class => [180, -1], + BinaryOp\LogicalOr::class => [190, -1], + Expr\Include_::class => [200, -1], + ]; + + /** @var int Current indentation level. */ + protected $indentLevel; + /** @var string Newline including current indentation. */ + protected $nl; + /** @var string Token placed at end of doc string to ensure it is followed by a newline. */ + protected $docStringEndToken; + /** @var bool Whether semicolon namespaces can be used (i.e. no global namespace is used) */ + protected $canUseSemicolonNamespaces; + /** @var array Pretty printer options */ + protected $options; + + /** @var TokenStream Original tokens for use in format-preserving pretty print */ + protected $origTokens; + /** @var Internal\Differ Differ for node lists */ + protected $nodeListDiffer; + /** @var bool[] Map determining whether a certain character is a label character */ + protected $labelCharMap; + /** + * @var int[][] Map from token classes and subnode names to FIXUP_* constants. This is used + * during format-preserving prints to place additional parens/braces if necessary. + */ + protected $fixupMap; + /** + * @var int[][] Map from "{$node->getType()}->{$subNode}" to ['left' => $l, 'right' => $r], + * where $l and $r specify the token type that needs to be stripped when removing + * this node. + */ + protected $removalMap; + /** + * @var mixed[] Map from "{$node->getType()}->{$subNode}" to [$find, $beforeToken, $extraLeft, $extraRight]. + * $find is an optional token after which the insertion occurs. $extraLeft/Right + * are optionally added before/after the main insertions. + */ + protected $insertionMap; + /** + * @var string[] Map From "{$node->getType()}->{$subNode}" to string that should be inserted + * between elements of this list subnode. + */ + protected $listInsertionMap; + protected $emptyListInsertionMap; + /** @var int[] Map from "{$node->getType()}->{$subNode}" to token before which the modifiers + * should be reprinted. */ + protected $modifierChangeMap; + + /** + * Creates a pretty printer instance using the given options. + * + * Supported options: + * * bool $shortArraySyntax = false: Whether to use [] instead of array() as the default array + * syntax, if the node does not specify a format. + * + * @param array $options Dictionary of formatting options + */ + public function __construct(array $options = []) { + $this->docStringEndToken = '_DOC_STRING_END_' . mt_rand(); + + $defaultOptions = ['shortArraySyntax' => false]; + $this->options = $options + $defaultOptions; + } + + /** + * Reset pretty printing state. + */ + protected function resetState() { + $this->indentLevel = 0; + $this->nl = "\n"; + $this->origTokens = null; + } + + /** + * Set indentation level + * + * @param int $level Level in number of spaces + */ + protected function setIndentLevel(int $level) { + $this->indentLevel = $level; + $this->nl = "\n" . \str_repeat(' ', $level); + } + + /** + * Increase indentation level. + */ + protected function indent() { + $this->indentLevel += 4; + $this->nl .= ' '; + } + + /** + * Decrease indentation level. + */ + protected function outdent() { + assert($this->indentLevel >= 4); + $this->indentLevel -= 4; + $this->nl = "\n" . str_repeat(' ', $this->indentLevel); + } + + /** + * Pretty prints an array of statements. + * + * @param Node[] $stmts Array of statements + * + * @return string Pretty printed statements + */ + public function prettyPrint(array $stmts) : string { + $this->resetState(); + $this->preprocessNodes($stmts); + + return ltrim($this->handleMagicTokens($this->pStmts($stmts, false))); + } + + /** + * Pretty prints an expression. + * + * @param Expr $node Expression node + * + * @return string Pretty printed node + */ + public function prettyPrintExpr(Expr $node) : string { + $this->resetState(); + return $this->handleMagicTokens($this->p($node)); + } + + /** + * Pretty prints a file of statements (includes the opening prettyPrint($stmts); + + if ($stmts[0] instanceof Stmt\InlineHTML) { + $p = preg_replace('/^<\?php\s+\?>\n?/', '', $p); + } + if ($stmts[count($stmts) - 1] instanceof Stmt\InlineHTML) { + $p = preg_replace('/<\?php$/', '', rtrim($p)); + } + + return $p; + } + + /** + * Preprocesses the top-level nodes to initialize pretty printer state. + * + * @param Node[] $nodes Array of nodes + */ + protected function preprocessNodes(array $nodes) { + /* We can use semicolon-namespaces unless there is a global namespace declaration */ + $this->canUseSemicolonNamespaces = true; + foreach ($nodes as $node) { + if ($node instanceof Stmt\Namespace_ && null === $node->name) { + $this->canUseSemicolonNamespaces = false; + break; + } + } + } + + /** + * Handles (and removes) no-indent and doc-string-end tokens. + * + * @param string $str + * @return string + */ + protected function handleMagicTokens(string $str) : string { + // Replace doc-string-end tokens with nothing or a newline + $str = str_replace($this->docStringEndToken . ";\n", ";\n", $str); + $str = str_replace($this->docStringEndToken, "\n", $str); + + return $str; + } + + /** + * Pretty prints an array of nodes (statements) and indents them optionally. + * + * @param Node[] $nodes Array of nodes + * @param bool $indent Whether to indent the printed nodes + * + * @return string Pretty printed statements + */ + protected function pStmts(array $nodes, bool $indent = true) : string { + if ($indent) { + $this->indent(); + } + + $result = ''; + foreach ($nodes as $node) { + $comments = $node->getComments(); + if ($comments) { + $result .= $this->nl . $this->pComments($comments); + if ($node instanceof Stmt\Nop) { + continue; + } + } + + $result .= $this->nl . $this->p($node); + } + + if ($indent) { + $this->outdent(); + } + + return $result; + } + + /** + * Pretty-print an infix operation while taking precedence into account. + * + * @param string $class Node class of operator + * @param Node $leftNode Left-hand side node + * @param string $operatorString String representation of the operator + * @param Node $rightNode Right-hand side node + * + * @return string Pretty printed infix operation + */ + protected function pInfixOp(string $class, Node $leftNode, string $operatorString, Node $rightNode) : string { + list($precedence, $associativity) = $this->precedenceMap[$class]; + + return $this->pPrec($leftNode, $precedence, $associativity, -1) + . $operatorString + . $this->pPrec($rightNode, $precedence, $associativity, 1); + } + + /** + * Pretty-print a prefix operation while taking precedence into account. + * + * @param string $class Node class of operator + * @param string $operatorString String representation of the operator + * @param Node $node Node + * + * @return string Pretty printed prefix operation + */ + protected function pPrefixOp(string $class, string $operatorString, Node $node) : string { + list($precedence, $associativity) = $this->precedenceMap[$class]; + return $operatorString . $this->pPrec($node, $precedence, $associativity, 1); + } + + /** + * Pretty-print a postfix operation while taking precedence into account. + * + * @param string $class Node class of operator + * @param string $operatorString String representation of the operator + * @param Node $node Node + * + * @return string Pretty printed postfix operation + */ + protected function pPostfixOp(string $class, Node $node, string $operatorString) : string { + list($precedence, $associativity) = $this->precedenceMap[$class]; + return $this->pPrec($node, $precedence, $associativity, -1) . $operatorString; + } + + /** + * Prints an expression node with the least amount of parentheses necessary to preserve the meaning. + * + * @param Node $node Node to pretty print + * @param int $parentPrecedence Precedence of the parent operator + * @param int $parentAssociativity Associativity of parent operator + * (-1 is left, 0 is nonassoc, 1 is right) + * @param int $childPosition Position of the node relative to the operator + * (-1 is left, 1 is right) + * + * @return string The pretty printed node + */ + protected function pPrec(Node $node, int $parentPrecedence, int $parentAssociativity, int $childPosition) : string { + $class = \get_class($node); + if (isset($this->precedenceMap[$class])) { + $childPrecedence = $this->precedenceMap[$class][0]; + if ($childPrecedence > $parentPrecedence + || ($parentPrecedence === $childPrecedence && $parentAssociativity !== $childPosition) + ) { + return '(' . $this->p($node) . ')'; + } + } + + return $this->p($node); + } + + /** + * Pretty prints an array of nodes and implodes the printed values. + * + * @param Node[] $nodes Array of Nodes to be printed + * @param string $glue Character to implode with + * + * @return string Imploded pretty printed nodes + */ + protected function pImplode(array $nodes, string $glue = '') : string { + $pNodes = []; + foreach ($nodes as $node) { + if (null === $node) { + $pNodes[] = ''; + } else { + $pNodes[] = $this->p($node); + } + } + + return implode($glue, $pNodes); + } + + /** + * Pretty prints an array of nodes and implodes the printed values with commas. + * + * @param Node[] $nodes Array of Nodes to be printed + * + * @return string Comma separated pretty printed nodes + */ + protected function pCommaSeparated(array $nodes) : string { + return $this->pImplode($nodes, ', '); + } + + /** + * Pretty prints a comma-separated list of nodes in multiline style, including comments. + * + * The result includes a leading newline and one level of indentation (same as pStmts). + * + * @param Node[] $nodes Array of Nodes to be printed + * @param bool $trailingComma Whether to use a trailing comma + * + * @return string Comma separated pretty printed nodes in multiline style + */ + protected function pCommaSeparatedMultiline(array $nodes, bool $trailingComma) : string { + $this->indent(); + + $result = ''; + $lastIdx = count($nodes) - 1; + foreach ($nodes as $idx => $node) { + if ($node !== null) { + $comments = $node->getComments(); + if ($comments) { + $result .= $this->nl . $this->pComments($comments); + } + + $result .= $this->nl . $this->p($node); + } else { + $result .= $this->nl; + } + if ($trailingComma || $idx !== $lastIdx) { + $result .= ','; + } + } + + $this->outdent(); + return $result; + } + + /** + * Prints reformatted text of the passed comments. + * + * @param Comment[] $comments List of comments + * + * @return string Reformatted text of comments + */ + protected function pComments(array $comments) : string { + $formattedComments = []; + + foreach ($comments as $comment) { + $formattedComments[] = str_replace("\n", $this->nl, $comment->getReformattedText()); + } + + return implode($this->nl, $formattedComments); + } + + /** + * Perform a format-preserving pretty print of an AST. + * + * The format preservation is best effort. For some changes to the AST the formatting will not + * be preserved (at least not locally). + * + * In order to use this method a number of prerequisites must be satisfied: + * * The startTokenPos and endTokenPos attributes in the lexer must be enabled. + * * The CloningVisitor must be run on the AST prior to modification. + * * The original tokens must be provided, using the getTokens() method on the lexer. + * + * @param Node[] $stmts Modified AST with links to original AST + * @param Node[] $origStmts Original AST with token offset information + * @param array $origTokens Tokens of the original code + * + * @return string + */ + public function printFormatPreserving(array $stmts, array $origStmts, array $origTokens) : string { + $this->initializeNodeListDiffer(); + $this->initializeLabelCharMap(); + $this->initializeFixupMap(); + $this->initializeRemovalMap(); + $this->initializeInsertionMap(); + $this->initializeListInsertionMap(); + $this->initializeEmptyListInsertionMap(); + $this->initializeModifierChangeMap(); + + $this->resetState(); + $this->origTokens = new TokenStream($origTokens); + + $this->preprocessNodes($stmts); + + $pos = 0; + $result = $this->pArray($stmts, $origStmts, $pos, 0, 'File', 'stmts', null); + if (null !== $result) { + $result .= $this->origTokens->getTokenCode($pos, count($origTokens), 0); + } else { + // Fallback + // TODO Add pStmts($stmts, false); + } + + return ltrim($this->handleMagicTokens($result)); + } + + protected function pFallback(Node $node) { + return $this->{'p' . $node->getType()}($node); + } + + /** + * Pretty prints a node. + * + * This method also handles formatting preservation for nodes. + * + * @param Node $node Node to be pretty printed + * @param bool $parentFormatPreserved Whether parent node has preserved formatting + * + * @return string Pretty printed node + */ + protected function p(Node $node, $parentFormatPreserved = false) : string { + // No orig tokens means this is a normal pretty print without preservation of formatting + if (!$this->origTokens) { + return $this->{'p' . $node->getType()}($node); + } + + /** @var Node $origNode */ + $origNode = $node->getAttribute('origNode'); + if (null === $origNode) { + return $this->pFallback($node); + } + + $class = \get_class($node); + \assert($class === \get_class($origNode)); + + $startPos = $origNode->getStartTokenPos(); + $endPos = $origNode->getEndTokenPos(); + \assert($startPos >= 0 && $endPos >= 0); + + $fallbackNode = $node; + if ($node instanceof Expr\New_ && $node->class instanceof Stmt\Class_) { + // Normalize node structure of anonymous classes + $node = PrintableNewAnonClassNode::fromNewNode($node); + $origNode = PrintableNewAnonClassNode::fromNewNode($origNode); + } + + // InlineHTML node does not contain closing and opening PHP tags. If the parent formatting + // is not preserved, then we need to use the fallback code to make sure the tags are + // printed. + if ($node instanceof Stmt\InlineHTML && !$parentFormatPreserved) { + return $this->pFallback($fallbackNode); + } + + $indentAdjustment = $this->indentLevel - $this->origTokens->getIndentationBefore($startPos); + + $type = $node->getType(); + $fixupInfo = $this->fixupMap[$class] ?? null; + + $result = ''; + $pos = $startPos; + foreach ($node->getSubNodeNames() as $subNodeName) { + $subNode = $node->$subNodeName; + $origSubNode = $origNode->$subNodeName; + + if ((!$subNode instanceof Node && $subNode !== null) + || (!$origSubNode instanceof Node && $origSubNode !== null) + ) { + if ($subNode === $origSubNode) { + // Unchanged, can reuse old code + continue; + } + + if (is_array($subNode) && is_array($origSubNode)) { + // Array subnode changed, we might be able to reconstruct it + $listResult = $this->pArray( + $subNode, $origSubNode, $pos, $indentAdjustment, $type, $subNodeName, + $fixupInfo[$subNodeName] ?? null + ); + if (null === $listResult) { + return $this->pFallback($fallbackNode); + } + + $result .= $listResult; + continue; + } + + if (is_int($subNode) && is_int($origSubNode)) { + // Check if this is a modifier change + $key = $type . '->' . $subNodeName; + if (!isset($this->modifierChangeMap[$key])) { + return $this->pFallback($fallbackNode); + } + + $findToken = $this->modifierChangeMap[$key]; + $result .= $this->pModifiers($subNode); + $pos = $this->origTokens->findRight($pos, $findToken); + continue; + } + + // If a non-node, non-array subnode changed, we don't be able to do a partial + // reconstructions, as we don't have enough offset information. Pretty print the + // whole node instead. + return $this->pFallback($fallbackNode); + } + + $extraLeft = ''; + $extraRight = ''; + if ($origSubNode !== null) { + $subStartPos = $origSubNode->getStartTokenPos(); + $subEndPos = $origSubNode->getEndTokenPos(); + \assert($subStartPos >= 0 && $subEndPos >= 0); + } else { + if ($subNode === null) { + // Both null, nothing to do + continue; + } + + // A node has been inserted, check if we have insertion information for it + $key = $type . '->' . $subNodeName; + if (!isset($this->insertionMap[$key])) { + return $this->pFallback($fallbackNode); + } + + list($findToken, $beforeToken, $extraLeft, $extraRight) = $this->insertionMap[$key]; + if (null !== $findToken) { + $subStartPos = $this->origTokens->findRight($pos, $findToken) + + (int) !$beforeToken; + } else { + $subStartPos = $pos; + } + + if (null === $extraLeft && null !== $extraRight) { + // If inserting on the right only, skipping whitespace looks better + $subStartPos = $this->origTokens->skipRightWhitespace($subStartPos); + } + $subEndPos = $subStartPos - 1; + } + + if (null === $subNode) { + // A node has been removed, check if we have removal information for it + $key = $type . '->' . $subNodeName; + if (!isset($this->removalMap[$key])) { + return $this->pFallback($fallbackNode); + } + + // Adjust positions to account for additional tokens that must be skipped + $removalInfo = $this->removalMap[$key]; + if (isset($removalInfo['left'])) { + $subStartPos = $this->origTokens->skipLeft($subStartPos - 1, $removalInfo['left']) + 1; + } + if (isset($removalInfo['right'])) { + $subEndPos = $this->origTokens->skipRight($subEndPos + 1, $removalInfo['right']) - 1; + } + } + + $result .= $this->origTokens->getTokenCode($pos, $subStartPos, $indentAdjustment); + + if (null !== $subNode) { + $result .= $extraLeft; + + $origIndentLevel = $this->indentLevel; + $this->setIndentLevel($this->origTokens->getIndentationBefore($subStartPos) + $indentAdjustment); + + // If it's the same node that was previously in this position, it certainly doesn't + // need fixup. It's important to check this here, because our fixup checks are more + // conservative than strictly necessary. + if (isset($fixupInfo[$subNodeName]) + && $subNode->getAttribute('origNode') !== $origSubNode + ) { + $fixup = $fixupInfo[$subNodeName]; + $res = $this->pFixup($fixup, $subNode, $class, $subStartPos, $subEndPos); + } else { + $res = $this->p($subNode, true); + } + + $this->safeAppend($result, $res); + $this->setIndentLevel($origIndentLevel); + + $result .= $extraRight; + } + + $pos = $subEndPos + 1; + } + + $result .= $this->origTokens->getTokenCode($pos, $endPos + 1, $indentAdjustment); + return $result; + } + + /** + * Perform a format-preserving pretty print of an array. + * + * @param array $nodes New nodes + * @param array $origNodes Original nodes + * @param int $pos Current token position (updated by reference) + * @param int $indentAdjustment Adjustment for indentation + * @param string $parentNodeType Type of the containing node. + * @param string $subNodeName Name of array subnode. + * @param null|int $fixup Fixup information for array item nodes + * + * @return null|string Result of pretty print or null if cannot preserve formatting + */ + protected function pArray( + array $nodes, array $origNodes, int &$pos, int $indentAdjustment, + string $parentNodeType, string $subNodeName, $fixup + ) { + $diff = $this->nodeListDiffer->diffWithReplacements($origNodes, $nodes); + + $mapKey = $parentNodeType . '->' . $subNodeName; + $insertStr = $this->listInsertionMap[$mapKey] ?? null; + $isStmtList = $subNodeName === 'stmts'; + + $beforeFirstKeepOrReplace = true; + $skipRemovedNode = false; + $delayedAdd = []; + $lastElemIndentLevel = $this->indentLevel; + + $insertNewline = false; + if ($insertStr === "\n") { + $insertStr = ''; + $insertNewline = true; + } + + if ($isStmtList && \count($origNodes) === 1 && \count($nodes) !== 1) { + $startPos = $origNodes[0]->getStartTokenPos(); + $endPos = $origNodes[0]->getEndTokenPos(); + \assert($startPos >= 0 && $endPos >= 0); + if (!$this->origTokens->haveBraces($startPos, $endPos)) { + // This was a single statement without braces, but either additional statements + // have been added, or the single statement has been removed. This requires the + // addition of braces. For now fall back. + // TODO: Try to preserve formatting + return null; + } + } + + $result = ''; + foreach ($diff as $i => $diffElem) { + $diffType = $diffElem->type; + /** @var Node|null $arrItem */ + $arrItem = $diffElem->new; + /** @var Node|null $origArrItem */ + $origArrItem = $diffElem->old; + + if ($diffType === DiffElem::TYPE_KEEP || $diffType === DiffElem::TYPE_REPLACE) { + $beforeFirstKeepOrReplace = false; + + if ($origArrItem === null || $arrItem === null) { + // We can only handle the case where both are null + if ($origArrItem === $arrItem) { + continue; + } + return null; + } + + if (!$arrItem instanceof Node || !$origArrItem instanceof Node) { + // We can only deal with nodes. This can occur for Names, which use string arrays. + return null; + } + + $itemStartPos = $origArrItem->getStartTokenPos(); + $itemEndPos = $origArrItem->getEndTokenPos(); + \assert($itemStartPos >= 0 && $itemEndPos >= 0 && $itemStartPos >= $pos); + + $origIndentLevel = $this->indentLevel; + $lastElemIndentLevel = $this->origTokens->getIndentationBefore($itemStartPos) + $indentAdjustment; + $this->setIndentLevel($lastElemIndentLevel); + + $comments = $arrItem->getComments(); + $origComments = $origArrItem->getComments(); + $commentStartPos = $origComments ? $origComments[0]->getStartTokenPos() : $itemStartPos; + \assert($commentStartPos >= 0); + + if ($commentStartPos < $pos) { + // Comments may be assigned to multiple nodes if they start at the same position. + // Make sure we don't try to print them multiple times. + $commentStartPos = $itemStartPos; + } + + if ($skipRemovedNode) { + if ($isStmtList && ($this->origTokens->haveBracesInRange($pos, $itemStartPos) || + $this->origTokens->haveTagInRange($pos, $itemStartPos))) { + // We'd remove the brace of a code block. + // TODO: Preserve formatting. + $this->setIndentLevel($origIndentLevel); + return null; + } + } else { + $result .= $this->origTokens->getTokenCode( + $pos, $commentStartPos, $indentAdjustment); + } + + if (!empty($delayedAdd)) { + /** @var Node $delayedAddNode */ + foreach ($delayedAdd as $delayedAddNode) { + if ($insertNewline) { + $delayedAddComments = $delayedAddNode->getComments(); + if ($delayedAddComments) { + $result .= $this->pComments($delayedAddComments) . $this->nl; + } + } + + $this->safeAppend($result, $this->p($delayedAddNode, true)); + + if ($insertNewline) { + $result .= $insertStr . $this->nl; + } else { + $result .= $insertStr; + } + } + + $delayedAdd = []; + } + + if ($comments !== $origComments) { + if ($comments) { + $result .= $this->pComments($comments) . $this->nl; + } + } else { + $result .= $this->origTokens->getTokenCode( + $commentStartPos, $itemStartPos, $indentAdjustment); + } + + // If we had to remove anything, we have done so now. + $skipRemovedNode = false; + } elseif ($diffType === DiffElem::TYPE_ADD) { + if (null === $insertStr) { + // We don't have insertion information for this list type + return null; + } + + // We go multiline if the original code was multiline, + // or if it's an array item with a comment above it. + if ($insertStr === ', ' && + ($this->isMultiline($origNodes) || $arrItem->getComments()) + ) { + $insertStr = ','; + $insertNewline = true; + } + + if ($beforeFirstKeepOrReplace) { + // Will be inserted at the next "replace" or "keep" element + $delayedAdd[] = $arrItem; + continue; + } + + $itemStartPos = $pos; + $itemEndPos = $pos - 1; + + $origIndentLevel = $this->indentLevel; + $this->setIndentLevel($lastElemIndentLevel); + + if ($insertNewline) { + $result .= $insertStr . $this->nl; + $comments = $arrItem->getComments(); + if ($comments) { + $result .= $this->pComments($comments) . $this->nl; + } + } else { + $result .= $insertStr; + } + } elseif ($diffType === DiffElem::TYPE_REMOVE) { + if (!$origArrItem instanceof Node) { + // We only support removal for nodes + return null; + } + + $itemStartPos = $origArrItem->getStartTokenPos(); + $itemEndPos = $origArrItem->getEndTokenPos(); + \assert($itemStartPos >= 0 && $itemEndPos >= 0); + + // Consider comments part of the node. + $origComments = $origArrItem->getComments(); + if ($origComments) { + $itemStartPos = $origComments[0]->getStartTokenPos(); + } + + if ($i === 0) { + // If we're removing from the start, keep the tokens before the node and drop those after it, + // instead of the other way around. + $result .= $this->origTokens->getTokenCode( + $pos, $itemStartPos, $indentAdjustment); + $skipRemovedNode = true; + } else { + if ($isStmtList && ($this->origTokens->haveBracesInRange($pos, $itemStartPos) || + $this->origTokens->haveTagInRange($pos, $itemStartPos))) { + // We'd remove the brace of a code block. + // TODO: Preserve formatting. + return null; + } + } + + $pos = $itemEndPos + 1; + continue; + } else { + throw new \Exception("Shouldn't happen"); + } + + if (null !== $fixup && $arrItem->getAttribute('origNode') !== $origArrItem) { + $res = $this->pFixup($fixup, $arrItem, null, $itemStartPos, $itemEndPos); + } else { + $res = $this->p($arrItem, true); + } + $this->safeAppend($result, $res); + + $this->setIndentLevel($origIndentLevel); + $pos = $itemEndPos + 1; + } + + if ($skipRemovedNode) { + // TODO: Support removing single node. + return null; + } + + if (!empty($delayedAdd)) { + if (!isset($this->emptyListInsertionMap[$mapKey])) { + return null; + } + + list($findToken, $extraLeft, $extraRight) = $this->emptyListInsertionMap[$mapKey]; + if (null !== $findToken) { + $insertPos = $this->origTokens->findRight($pos, $findToken) + 1; + $result .= $this->origTokens->getTokenCode($pos, $insertPos, $indentAdjustment); + $pos = $insertPos; + } + + $first = true; + $result .= $extraLeft; + foreach ($delayedAdd as $delayedAddNode) { + if (!$first) { + $result .= $insertStr; + if ($insertNewline) { + $result .= $this->nl; + } + } + $result .= $this->p($delayedAddNode, true); + $first = false; + } + $result .= $extraRight === "\n" ? $this->nl : $extraRight; + } + + return $result; + } + + /** + * Print node with fixups. + * + * Fixups here refer to the addition of extra parentheses, braces or other characters, that + * are required to preserve program semantics in a certain context (e.g. to maintain precedence + * or because only certain expressions are allowed in certain places). + * + * @param int $fixup Fixup type + * @param Node $subNode Subnode to print + * @param string|null $parentClass Class of parent node + * @param int $subStartPos Original start pos of subnode + * @param int $subEndPos Original end pos of subnode + * + * @return string Result of fixed-up print of subnode + */ + protected function pFixup(int $fixup, Node $subNode, $parentClass, int $subStartPos, int $subEndPos) : string { + switch ($fixup) { + case self::FIXUP_PREC_LEFT: + case self::FIXUP_PREC_RIGHT: + if (!$this->origTokens->haveParens($subStartPos, $subEndPos)) { + list($precedence, $associativity) = $this->precedenceMap[$parentClass]; + return $this->pPrec($subNode, $precedence, $associativity, + $fixup === self::FIXUP_PREC_LEFT ? -1 : 1); + } + break; + case self::FIXUP_CALL_LHS: + if ($this->callLhsRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos) + ) { + return '(' . $this->p($subNode) . ')'; + } + break; + case self::FIXUP_DEREF_LHS: + if ($this->dereferenceLhsRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos) + ) { + return '(' . $this->p($subNode) . ')'; + } + break; + case self::FIXUP_BRACED_NAME: + case self::FIXUP_VAR_BRACED_NAME: + if ($subNode instanceof Expr + && !$this->origTokens->haveBraces($subStartPos, $subEndPos) + ) { + return ($fixup === self::FIXUP_VAR_BRACED_NAME ? '$' : '') + . '{' . $this->p($subNode) . '}'; + } + break; + case self::FIXUP_ENCAPSED: + if (!$subNode instanceof Scalar\EncapsedStringPart + && !$this->origTokens->haveBraces($subStartPos, $subEndPos) + ) { + return '{' . $this->p($subNode) . '}'; + } + break; + default: + throw new \Exception('Cannot happen'); + } + + // Nothing special to do + return $this->p($subNode); + } + + /** + * Appends to a string, ensuring whitespace between label characters. + * + * Example: "echo" and "$x" result in "echo$x", but "echo" and "x" result in "echo x". + * Without safeAppend the result would be "echox", which does not preserve semantics. + * + * @param string $str + * @param string $append + */ + protected function safeAppend(string &$str, string $append) { + if ($str === "") { + $str = $append; + return; + } + + if ($append === "") { + return; + } + + if (!$this->labelCharMap[$append[0]] + || !$this->labelCharMap[$str[\strlen($str) - 1]]) { + $str .= $append; + } else { + $str .= " " . $append; + } + } + + /** + * Determines whether the LHS of a call must be wrapped in parenthesis. + * + * @param Node $node LHS of a call + * + * @return bool Whether parentheses are required + */ + protected function callLhsRequiresParens(Node $node) : bool { + return !($node instanceof Node\Name + || $node instanceof Expr\Variable + || $node instanceof Expr\ArrayDimFetch + || $node instanceof Expr\FuncCall + || $node instanceof Expr\MethodCall + || $node instanceof Expr\NullsafeMethodCall + || $node instanceof Expr\StaticCall + || $node instanceof Expr\Array_); + } + + /** + * Determines whether the LHS of a dereferencing operation must be wrapped in parenthesis. + * + * @param Node $node LHS of dereferencing operation + * + * @return bool Whether parentheses are required + */ + protected function dereferenceLhsRequiresParens(Node $node) : bool { + return !($node instanceof Expr\Variable + || $node instanceof Node\Name + || $node instanceof Expr\ArrayDimFetch + || $node instanceof Expr\PropertyFetch + || $node instanceof Expr\NullsafePropertyFetch + || $node instanceof Expr\StaticPropertyFetch + || $node instanceof Expr\FuncCall + || $node instanceof Expr\MethodCall + || $node instanceof Expr\NullsafeMethodCall + || $node instanceof Expr\StaticCall + || $node instanceof Expr\Array_ + || $node instanceof Scalar\String_ + || $node instanceof Expr\ConstFetch + || $node instanceof Expr\ClassConstFetch); + } + + /** + * Print modifiers, including trailing whitespace. + * + * @param int $modifiers Modifier mask to print + * + * @return string Printed modifiers + */ + protected function pModifiers(int $modifiers) { + return ($modifiers & Stmt\Class_::MODIFIER_PUBLIC ? 'public ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_PROTECTED ? 'protected ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_PRIVATE ? 'private ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_STATIC ? 'static ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_ABSTRACT ? 'abstract ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_FINAL ? 'final ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_READONLY ? 'readonly ' : ''); + } + + /** + * Determine whether a list of nodes uses multiline formatting. + * + * @param (Node|null)[] $nodes Node list + * + * @return bool Whether multiline formatting is used + */ + protected function isMultiline(array $nodes) : bool { + if (\count($nodes) < 2) { + return false; + } + + $pos = -1; + foreach ($nodes as $node) { + if (null === $node) { + continue; + } + + $endPos = $node->getEndTokenPos() + 1; + if ($pos >= 0) { + $text = $this->origTokens->getTokenCode($pos, $endPos, 0); + if (false === strpos($text, "\n")) { + // We require that a newline is present between *every* item. If the formatting + // is inconsistent, with only some items having newlines, we don't consider it + // as multiline + return false; + } + } + $pos = $endPos; + } + + return true; + } + + /** + * Lazily initializes label char map. + * + * The label char map determines whether a certain character may occur in a label. + */ + protected function initializeLabelCharMap() { + if ($this->labelCharMap) return; + + $this->labelCharMap = []; + for ($i = 0; $i < 256; $i++) { + // Since PHP 7.1 The lower range is 0x80. However, we also want to support code for + // older versions. + $chr = chr($i); + $this->labelCharMap[$chr] = $i >= 0x7f || ctype_alnum($chr); + } + } + + /** + * Lazily initializes node list differ. + * + * The node list differ is used to determine differences between two array subnodes. + */ + protected function initializeNodeListDiffer() { + if ($this->nodeListDiffer) return; + + $this->nodeListDiffer = new Internal\Differ(function ($a, $b) { + if ($a instanceof Node && $b instanceof Node) { + return $a === $b->getAttribute('origNode'); + } + // Can happen for array destructuring + return $a === null && $b === null; + }); + } + + /** + * Lazily initializes fixup map. + * + * The fixup map is used to determine whether a certain subnode of a certain node may require + * some kind of "fixup" operation, e.g. the addition of parenthesis or braces. + */ + protected function initializeFixupMap() { + if ($this->fixupMap) return; + + $this->fixupMap = [ + Expr\PreInc::class => ['var' => self::FIXUP_PREC_RIGHT], + Expr\PreDec::class => ['var' => self::FIXUP_PREC_RIGHT], + Expr\PostInc::class => ['var' => self::FIXUP_PREC_LEFT], + Expr\PostDec::class => ['var' => self::FIXUP_PREC_LEFT], + Expr\Instanceof_::class => [ + 'expr' => self::FIXUP_PREC_LEFT, + 'class' => self::FIXUP_PREC_RIGHT, // TODO: FIXUP_NEW_VARIABLE + ], + Expr\Ternary::class => [ + 'cond' => self::FIXUP_PREC_LEFT, + 'else' => self::FIXUP_PREC_RIGHT, + ], + + Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], + Expr\StaticCall::class => ['class' => self::FIXUP_DEREF_LHS], + Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], + Expr\ClassConstFetch::class => ['var' => self::FIXUP_DEREF_LHS], + Expr\New_::class => ['class' => self::FIXUP_DEREF_LHS], // TODO: FIXUP_NEW_VARIABLE + Expr\MethodCall::class => [ + 'var' => self::FIXUP_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Expr\NullsafeMethodCall::class => [ + 'var' => self::FIXUP_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Expr\StaticPropertyFetch::class => [ + 'class' => self::FIXUP_DEREF_LHS, + 'name' => self::FIXUP_VAR_BRACED_NAME, + ], + Expr\PropertyFetch::class => [ + 'var' => self::FIXUP_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Expr\NullsafePropertyFetch::class => [ + 'var' => self::FIXUP_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Scalar\Encapsed::class => [ + 'parts' => self::FIXUP_ENCAPSED, + ], + ]; + + $binaryOps = [ + BinaryOp\Pow::class, BinaryOp\Mul::class, BinaryOp\Div::class, BinaryOp\Mod::class, + BinaryOp\Plus::class, BinaryOp\Minus::class, BinaryOp\Concat::class, + BinaryOp\ShiftLeft::class, BinaryOp\ShiftRight::class, BinaryOp\Smaller::class, + BinaryOp\SmallerOrEqual::class, BinaryOp\Greater::class, BinaryOp\GreaterOrEqual::class, + BinaryOp\Equal::class, BinaryOp\NotEqual::class, BinaryOp\Identical::class, + BinaryOp\NotIdentical::class, BinaryOp\Spaceship::class, BinaryOp\BitwiseAnd::class, + BinaryOp\BitwiseXor::class, BinaryOp\BitwiseOr::class, BinaryOp\BooleanAnd::class, + BinaryOp\BooleanOr::class, BinaryOp\Coalesce::class, BinaryOp\LogicalAnd::class, + BinaryOp\LogicalXor::class, BinaryOp\LogicalOr::class, + ]; + foreach ($binaryOps as $binaryOp) { + $this->fixupMap[$binaryOp] = [ + 'left' => self::FIXUP_PREC_LEFT, + 'right' => self::FIXUP_PREC_RIGHT + ]; + } + + $assignOps = [ + Expr\Assign::class, Expr\AssignRef::class, AssignOp\Plus::class, AssignOp\Minus::class, + AssignOp\Mul::class, AssignOp\Div::class, AssignOp\Concat::class, AssignOp\Mod::class, + AssignOp\BitwiseAnd::class, AssignOp\BitwiseOr::class, AssignOp\BitwiseXor::class, + AssignOp\ShiftLeft::class, AssignOp\ShiftRight::class, AssignOp\Pow::class, AssignOp\Coalesce::class + ]; + foreach ($assignOps as $assignOp) { + $this->fixupMap[$assignOp] = [ + 'var' => self::FIXUP_PREC_LEFT, + 'expr' => self::FIXUP_PREC_RIGHT, + ]; + } + + $prefixOps = [ + Expr\BitwiseNot::class, Expr\BooleanNot::class, Expr\UnaryPlus::class, Expr\UnaryMinus::class, + Cast\Int_::class, Cast\Double::class, Cast\String_::class, Cast\Array_::class, + Cast\Object_::class, Cast\Bool_::class, Cast\Unset_::class, Expr\ErrorSuppress::class, + Expr\YieldFrom::class, Expr\Print_::class, Expr\Include_::class, + ]; + foreach ($prefixOps as $prefixOp) { + $this->fixupMap[$prefixOp] = ['expr' => self::FIXUP_PREC_RIGHT]; + } + } + + /** + * Lazily initializes the removal map. + * + * The removal map is used to determine which additional tokens should be removed when a + * certain node is replaced by null. + */ + protected function initializeRemovalMap() { + if ($this->removalMap) return; + + $stripBoth = ['left' => \T_WHITESPACE, 'right' => \T_WHITESPACE]; + $stripLeft = ['left' => \T_WHITESPACE]; + $stripRight = ['right' => \T_WHITESPACE]; + $stripDoubleArrow = ['right' => \T_DOUBLE_ARROW]; + $stripColon = ['left' => ':']; + $stripEquals = ['left' => '=']; + $this->removalMap = [ + 'Expr_ArrayDimFetch->dim' => $stripBoth, + 'Expr_ArrayItem->key' => $stripDoubleArrow, + 'Expr_ArrowFunction->returnType' => $stripColon, + 'Expr_Closure->returnType' => $stripColon, + 'Expr_Exit->expr' => $stripBoth, + 'Expr_Ternary->if' => $stripBoth, + 'Expr_Yield->key' => $stripDoubleArrow, + 'Expr_Yield->value' => $stripBoth, + 'Param->type' => $stripRight, + 'Param->default' => $stripEquals, + 'Stmt_Break->num' => $stripBoth, + 'Stmt_Catch->var' => $stripLeft, + 'Stmt_ClassMethod->returnType' => $stripColon, + 'Stmt_Class->extends' => ['left' => \T_EXTENDS], + 'Stmt_Enum->scalarType' => $stripColon, + 'Stmt_EnumCase->expr' => $stripEquals, + 'Expr_PrintableNewAnonClass->extends' => ['left' => \T_EXTENDS], + 'Stmt_Continue->num' => $stripBoth, + 'Stmt_Foreach->keyVar' => $stripDoubleArrow, + 'Stmt_Function->returnType' => $stripColon, + 'Stmt_If->else' => $stripLeft, + 'Stmt_Namespace->name' => $stripLeft, + 'Stmt_Property->type' => $stripRight, + 'Stmt_PropertyProperty->default' => $stripEquals, + 'Stmt_Return->expr' => $stripBoth, + 'Stmt_StaticVar->default' => $stripEquals, + 'Stmt_TraitUseAdaptation_Alias->newName' => $stripLeft, + 'Stmt_TryCatch->finally' => $stripLeft, + // 'Stmt_Case->cond': Replace with "default" + // 'Stmt_Class->name': Unclear what to do + // 'Stmt_Declare->stmts': Not a plain node + // 'Stmt_TraitUseAdaptation_Alias->newModifier': Not a plain node + ]; + } + + protected function initializeInsertionMap() { + if ($this->insertionMap) return; + + // TODO: "yield" where both key and value are inserted doesn't work + // [$find, $beforeToken, $extraLeft, $extraRight] + $this->insertionMap = [ + 'Expr_ArrayDimFetch->dim' => ['[', false, null, null], + 'Expr_ArrayItem->key' => [null, false, null, ' => '], + 'Expr_ArrowFunction->returnType' => [')', false, ' : ', null], + 'Expr_Closure->returnType' => [')', false, ' : ', null], + 'Expr_Ternary->if' => ['?', false, ' ', ' '], + 'Expr_Yield->key' => [\T_YIELD, false, null, ' => '], + 'Expr_Yield->value' => [\T_YIELD, false, ' ', null], + 'Param->type' => [null, false, null, ' '], + 'Param->default' => [null, false, ' = ', null], + 'Stmt_Break->num' => [\T_BREAK, false, ' ', null], + 'Stmt_Catch->var' => [null, false, ' ', null], + 'Stmt_ClassMethod->returnType' => [')', false, ' : ', null], + 'Stmt_Class->extends' => [null, false, ' extends ', null], + 'Stmt_Enum->scalarType' => [null, false, ' : ', null], + 'Stmt_EnumCase->expr' => [null, false, ' = ', null], + 'Expr_PrintableNewAnonClass->extends' => [null, ' extends ', null], + 'Stmt_Continue->num' => [\T_CONTINUE, false, ' ', null], + 'Stmt_Foreach->keyVar' => [\T_AS, false, null, ' => '], + 'Stmt_Function->returnType' => [')', false, ' : ', null], + 'Stmt_If->else' => [null, false, ' ', null], + 'Stmt_Namespace->name' => [\T_NAMESPACE, false, ' ', null], + 'Stmt_Property->type' => [\T_VARIABLE, true, null, ' '], + 'Stmt_PropertyProperty->default' => [null, false, ' = ', null], + 'Stmt_Return->expr' => [\T_RETURN, false, ' ', null], + 'Stmt_StaticVar->default' => [null, false, ' = ', null], + //'Stmt_TraitUseAdaptation_Alias->newName' => [T_AS, false, ' ', null], // TODO + 'Stmt_TryCatch->finally' => [null, false, ' ', null], + + // 'Expr_Exit->expr': Complicated due to optional () + // 'Stmt_Case->cond': Conversion from default to case + // 'Stmt_Class->name': Unclear + // 'Stmt_Declare->stmts': Not a proper node + // 'Stmt_TraitUseAdaptation_Alias->newModifier': Not a proper node + ]; + } + + protected function initializeListInsertionMap() { + if ($this->listInsertionMap) return; + + $this->listInsertionMap = [ + // special + //'Expr_ShellExec->parts' => '', // TODO These need to be treated more carefully + //'Scalar_Encapsed->parts' => '', + 'Stmt_Catch->types' => '|', + 'UnionType->types' => '|', + 'IntersectionType->types' => '&', + 'Stmt_If->elseifs' => ' ', + 'Stmt_TryCatch->catches' => ' ', + + // comma-separated lists + 'Expr_Array->items' => ', ', + 'Expr_ArrowFunction->params' => ', ', + 'Expr_Closure->params' => ', ', + 'Expr_Closure->uses' => ', ', + 'Expr_FuncCall->args' => ', ', + 'Expr_Isset->vars' => ', ', + 'Expr_List->items' => ', ', + 'Expr_MethodCall->args' => ', ', + 'Expr_NullsafeMethodCall->args' => ', ', + 'Expr_New->args' => ', ', + 'Expr_PrintableNewAnonClass->args' => ', ', + 'Expr_StaticCall->args' => ', ', + 'Stmt_ClassConst->consts' => ', ', + 'Stmt_ClassMethod->params' => ', ', + 'Stmt_Class->implements' => ', ', + 'Stmt_Enum->implements' => ', ', + 'Expr_PrintableNewAnonClass->implements' => ', ', + 'Stmt_Const->consts' => ', ', + 'Stmt_Declare->declares' => ', ', + 'Stmt_Echo->exprs' => ', ', + 'Stmt_For->init' => ', ', + 'Stmt_For->cond' => ', ', + 'Stmt_For->loop' => ', ', + 'Stmt_Function->params' => ', ', + 'Stmt_Global->vars' => ', ', + 'Stmt_GroupUse->uses' => ', ', + 'Stmt_Interface->extends' => ', ', + 'Stmt_Match->arms' => ', ', + 'Stmt_Property->props' => ', ', + 'Stmt_StaticVar->vars' => ', ', + 'Stmt_TraitUse->traits' => ', ', + 'Stmt_TraitUseAdaptation_Precedence->insteadof' => ', ', + 'Stmt_Unset->vars' => ', ', + 'Stmt_Use->uses' => ', ', + 'MatchArm->conds' => ', ', + 'AttributeGroup->attrs' => ', ', + + // statement lists + 'Expr_Closure->stmts' => "\n", + 'Stmt_Case->stmts' => "\n", + 'Stmt_Catch->stmts' => "\n", + 'Stmt_Class->stmts' => "\n", + 'Stmt_Enum->stmts' => "\n", + 'Expr_PrintableNewAnonClass->stmts' => "\n", + 'Stmt_Interface->stmts' => "\n", + 'Stmt_Trait->stmts' => "\n", + 'Stmt_ClassMethod->stmts' => "\n", + 'Stmt_Declare->stmts' => "\n", + 'Stmt_Do->stmts' => "\n", + 'Stmt_ElseIf->stmts' => "\n", + 'Stmt_Else->stmts' => "\n", + 'Stmt_Finally->stmts' => "\n", + 'Stmt_Foreach->stmts' => "\n", + 'Stmt_For->stmts' => "\n", + 'Stmt_Function->stmts' => "\n", + 'Stmt_If->stmts' => "\n", + 'Stmt_Namespace->stmts' => "\n", + 'Stmt_Class->attrGroups' => "\n", + 'Stmt_Enum->attrGroups' => "\n", + 'Stmt_EnumCase->attrGroups' => "\n", + 'Stmt_Interface->attrGroups' => "\n", + 'Stmt_Trait->attrGroups' => "\n", + 'Stmt_Function->attrGroups' => "\n", + 'Stmt_ClassMethod->attrGroups' => "\n", + 'Stmt_ClassConst->attrGroups' => "\n", + 'Stmt_Property->attrGroups' => "\n", + 'Expr_PrintableNewAnonClass->attrGroups' => ' ', + 'Expr_Closure->attrGroups' => ' ', + 'Expr_ArrowFunction->attrGroups' => ' ', + 'Param->attrGroups' => ' ', + 'Stmt_Switch->cases' => "\n", + 'Stmt_TraitUse->adaptations' => "\n", + 'Stmt_TryCatch->stmts' => "\n", + 'Stmt_While->stmts' => "\n", + + // dummy for top-level context + 'File->stmts' => "\n", + ]; + } + + protected function initializeEmptyListInsertionMap() { + if ($this->emptyListInsertionMap) return; + + // TODO Insertion into empty statement lists. + + // [$find, $extraLeft, $extraRight] + $this->emptyListInsertionMap = [ + 'Expr_ArrowFunction->params' => ['(', '', ''], + 'Expr_Closure->uses' => [')', ' use(', ')'], + 'Expr_Closure->params' => ['(', '', ''], + 'Expr_FuncCall->args' => ['(', '', ''], + 'Expr_MethodCall->args' => ['(', '', ''], + 'Expr_NullsafeMethodCall->args' => ['(', '', ''], + 'Expr_New->args' => ['(', '', ''], + 'Expr_PrintableNewAnonClass->args' => ['(', '', ''], + 'Expr_PrintableNewAnonClass->implements' => [null, ' implements ', ''], + 'Expr_StaticCall->args' => ['(', '', ''], + 'Stmt_Class->implements' => [null, ' implements ', ''], + 'Stmt_Enum->implements' => [null, ' implements ', ''], + 'Stmt_ClassMethod->params' => ['(', '', ''], + 'Stmt_Interface->extends' => [null, ' extends ', ''], + 'Stmt_Function->params' => ['(', '', ''], + 'Stmt_Interface->attrGroups' => [null, '', "\n"], + 'Stmt_Class->attrGroups' => [null, '', "\n"], + 'Stmt_ClassConst->attrGroups' => [null, '', "\n"], + 'Stmt_ClassMethod->attrGroups' => [null, '', "\n"], + 'Stmt_Function->attrGroups' => [null, '', "\n"], + 'Stmt_Property->attrGroups' => [null, '', "\n"], + 'Stmt_Trait->attrGroups' => [null, '', "\n"], + 'Expr_ArrowFunction->attrGroups' => [null, '', ' '], + 'Expr_Closure->attrGroups' => [null, '', ' '], + 'Expr_PrintableNewAnonClass->attrGroups' => [\T_NEW, ' ', ''], + + /* These cannot be empty to start with: + * Expr_Isset->vars + * Stmt_Catch->types + * Stmt_Const->consts + * Stmt_ClassConst->consts + * Stmt_Declare->declares + * Stmt_Echo->exprs + * Stmt_Global->vars + * Stmt_GroupUse->uses + * Stmt_Property->props + * Stmt_StaticVar->vars + * Stmt_TraitUse->traits + * Stmt_TraitUseAdaptation_Precedence->insteadof + * Stmt_Unset->vars + * Stmt_Use->uses + * UnionType->types + */ + + /* TODO + * Stmt_If->elseifs + * Stmt_TryCatch->catches + * Expr_Array->items + * Expr_List->items + * Stmt_For->init + * Stmt_For->cond + * Stmt_For->loop + */ + ]; + } + + protected function initializeModifierChangeMap() { + if ($this->modifierChangeMap) return; + + $this->modifierChangeMap = [ + 'Stmt_ClassConst->flags' => \T_CONST, + 'Stmt_ClassMethod->flags' => \T_FUNCTION, + 'Stmt_Class->flags' => \T_CLASS, + 'Stmt_Property->flags' => \T_VARIABLE, + 'Param->flags' => \T_VARIABLE, + //'Stmt_TraitUseAdaptation_Alias->newModifier' => 0, // TODO + ]; + + // List of integer subnodes that are not modifiers: + // Expr_Include->type + // Stmt_GroupUse->type + // Stmt_Use->type + // Stmt_UseUse->type + } +} diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index 210214f8bbe5199e4bfe9fb4709b8b1023f088cc..f96912fbaa69857537033039ca02e1711774e602 100755 GIT binary patch delta 189044 zcmZ^M1yohr^YA@a;?jri#wKl16l@U$>_7oqQNRuitY;$VQMWC23wA3$3rzHxNZDXv zJbkwRnH?AWt?zR!*W7jX-ZQhOcbo$$*lbu{u*EQaiteLmeU;tf8Q#Wyhv^TfQbnaw z#dV5T_D!)|e61>dw$ogtIyyDx3wvfmQmU02$!YKq2OzvX%ee&^xlGqm=_)zXA%Qw7 z)!SA>+mh)ABrBz{+JPjN723#`0XYsrc(;GO?nF94o6Sl5%R(1uhd;ihB&of15Q&nZ_NByvpe1SFq6ji_AF%L7U5!3Lv2fCN)>-PWHiuqm}}fYIaZ}EeGmq{-c1edpu9J>RE%^y z>BD{|DwVF+H$5d#Cy+j<50qYC?R}Xvgo~XR;LN=z8;Vc zZ~1SsGV-CN;;8FGAL=`*RMrE36jE*-b*;%SQfeuuTQD35TU;~LA&X~Lu~M9Lt&~f; zE_B?)>MB*}(-R++_qrkUfxn?jwffgOUvjf2>q_RXD7BX(I3|R9+aE4fq=`t}nwYID zmE~3ej1Izko#%#e)~uD^dUn<*>p~b782;eoX5bzFxhm$mj<#X#Tej}lxi!ikJ0Z-s zdGS&?Yi6%3GBhLGr6LQtwk~T$xTCp#P4Ye+v~)th7G-x%2Qaq{wf=*7H>VG_x~o** zUbcTn0#cz{gvOmdZDXra^*Mde2!v>|6@j*B7v!(6?R|TVy0R z)n_yjMmwdyti%;FuN+sEYU`SWG^&FpMn%K)Lf;$o`r z&@wS$(9priR|jj>g~CqjdI-K)9LNQ38~W|*%;kxw4N3TqLVG!$qefV3_P!l|5KsAB zs80$vmYT`4!QYVsgx7ow?aF4 zO?}1^!jx%6lVM18a$^HTjIQAR$SlHt!lU{LH=+`y9AA-5D0V#!kn?np5FC?t{}npO z_x0F#gt;G<#8;xtCOW`Pr8;D5Gvj}!LHcYewU+=cW6mz-QHACKl;k)Nfu7~! zZCaZbf{OfFXfAi)tRrj{(zZJpi4mZdv7s`}!iZV)B8y0h$QjIY?W*t(ESCJVU`Bhr zu1b}9(7gvH9ZO}Qvk94Usnkn8XwIgDuwm$;OC&@en$4VOvoT3sQEV+A1kO-w2>;!Z z(oOm0Wv^sdnk}*7l+CPKP|9DyQ0Kk)t1Xev0g@!EhDJE-JNQuClVs&)RR<;5)|gz+ z1G^c*Z5v_dqA}%E(6TkN$`Qbfk$Y=b>JGi_%!!*vk%>GEf*;~TI83^oN0z_e@liKVL;F}|4L?IWke=l zDK(a#Lk2?H2-oghdz!{G+1i4T%cW*Yo{bKjzc*No!OxgIm1vugVQxj{@)0XG9$|5_ z;X}1d1lzK}<_jkEX~mmi;KAS`Kz67nOll<$DhSE&lXaDSwoKBCfYMNxtjA2pD53_= zMb>gt9+VO0+Aa1I&JG3+DE)4gn#-Zw2oWBtGWsbcC|g_8Aoed0mk2jJ95#oG*qjvH z0G%D?Iz#xbc^;%yNa;vB#Szq#$rXTb_OqcE>DXvHnHXJxBs!Jb8N!3Vx(-#MAa<5m zn<%I4jcF472LebZ2ixf)i8?A#cD80biH_y-Ql=ZZD@hKdAfNRb_xPP>D( zm0d}!C%nl-33g;<+z?1ov4^u$sV%@bWsxI`RVl!2p#F*e+969Ejg?|Yb4t<(Mj0I1 z`$9Nc9s2YynEjIF3k#UQ9n8t(^C0jCJl-I@=DYQpve=2`i_zfBqbHi~RifrwDll2{ z>hDr#c_bGF!Y7GK{e`PrD51{G%0@xC^=89_7NVs-C7uhpcsF_fQ%r;`oc`3>eg(&d zFz8jy^FlFB$_58JQQZvYib1&Eq0M6|{ZbcWCBcQ|`54G-=U?X4sIbJhE_zC)ivy+X z?*_@&sqHT^at}naQWskm$*Qyoo7^yTlSr|fmLrr565 zQ>iZgS~E%OT-f;5)tN@2OqfQKtZ^i14-|;C+?f9R0zSKmU7Tqk&#=^xl9f*kh+Pf@ z>q(Gb(Bl#QJg;NRk+R}yn!if5Xp8M_7QtUxn$m%asXLq20iadh_DLOT=Tcw>%o|m!W=D`?m)e^jSrb)vJ zK|m`RaRiEt(Oe}67hmabTOoPu5_uAw@v8wNf$-O5_W&Av5&atvHUS$j#~G(DX3+`c zd6|%onj($-lZOt3eRfmX%|non{tLO9TX`ZR`7q?; zc97Ij#t8qqx^t>FZsvJek{^0d5c=`z1>v6Pw)ubHm}FFBW#++9R0lY|>DT;9C|KB! z0vFG27&RA?7F)JVcTlN%)cjh7OP!UFuE0UFO&1R`mt9kp<;<1fcOOIbCR490@GvJ2 zPJma=tj0(p^#4}99t3531%-4*Q)DMM;B!Lwt!5){E?W~)q7MPu2V4zjjPSC3D#Q+2 zvg^TkW3tBpRs{P&TG#{On$y9zIc-yNU8hK2ajnkkrCxSmV(|_SD#^n@^w3v^RX3)R z?+JC6Z)(&8R%Ac)FvBk9vWlBFLc6i^e3keASt`)Fq^1!`$S!qJAa~;r5ax65CM(S#1AXU~ zk8n+|ZmqfKDFO|VWtjR~2uCPggvut5iELp$qLwqwL2V#BF6db|R)jix<)(+V2z4R{ zi5LWGcTh6C4VCg*Y_*vHxjoUw(VgM+uFbN<8?e9FBc@NZC1Iqu5plg;s;5k=%|he> zFi59_X2me0mQ(_OJw&bQP21Z5*uC8*AD)_+f(zU+rt-GOvq%K#{} zx5eKT1U*U8)_f~sDm^pQoa50!DX5#oMn%@^E64C65Mi&3Yu(As>mZUQ9Rf(ks)st{ zT9l?l zHfgV91sjmaZ}~b(dQ(f<+7>+RW%d6ClBj0j6_KqQXuFW%KY^8TTxAHi=2pL}#KEjf zf@+azJ)W6pc0iP-_OLN%7Nc6L*>w4)6MKsAv7=|Oa-!K>Inj+hL>RdKVY#w1sMGS! z&os)O<}R|t!xqBDTf%B9QGv*-qtZN>+ht7fY(}6ocnbS5G-Lt$@g-yqoyt34@miOd z%Vc^_n98~q-Q@?o4nWwWo@xXYLC2QdlSZ}VLM>>SAdi5G0B3@*v|7v#;vNi0vcUr6 zsAqc0=2o`y6ux*s819vw2UZ{iOn+@JBI5Mps{XRdNL&Njl1{+FDU;9d=s^!9ej!cguqdqWeLzTG-Zr~0l7 zbS^cxv{%sS#F}lwl4j;Ai%lQSg*ntZ_K^lj-3JwEt$X<&~4} zWm0K2@5rjFm!N>bHx14(8Yvw+F-wDtHbZ3@jcOsk8ay*0ZV&UVG{M~5lnxQ&XulVb zs2?r5u?ATn=@0TPh+n;DuA0-_RFtNXF^uQ+kuh|@N+37$@$e$WeWj)192Lx3p~2jYy>DGefyu5F3xM*U}a>MS5ZgNN}@DhL(Ut;UNg2^MJ>hB3Jn;S)C0@ zVt-u?U2Zq#9)oar$kqgr6KW|XU2NsGFBvU_Ehj{|vbc||qz6hmM0R_oBj@mH5uxd( zSu=%idny@S>&XW>8wh)iH5mxOsT&EqnQto};#P`qN_&=eKeLg;cy>ql<-@pXV5cEUdXMUIAV-dH zc)*QWbV&2-`8IMnZ$UWz_WT>lyI?TL?o~-v4M3O=Hi8C;@a$dZCpb=V=w&0X0$aca zgsXy&d<05EePLatoW6fp0 zQKfwAGn(1|$i4&R->?OTh!MVwEzO3>bSB~Z@=atL?rR8N{%$+y51cM?vbB=*gRqOf z(F7s;Mi?Q?u}3pl3ZdQ*mW=B=6=H7#<=rrAl4tSER%0b%^~ph_=|m^M1LISN#$z{< zbPDP_Kb|%aKFl?E9Aspdza3wV_48<_g?`A84)U>O{0WO0lLZ(sK}70qmBd*SKj)nNzOQY&m!Af@vg=4tX4G=$!L)NQn_&6h#z1I`S> z!7;t_h-3$%K;il=2GtDY4vDbAh9z&=W+pa|Xaw6c)j+y96@()!=UZr1qr4c)R=~zU zwed~kzr{QpiD|P^N7;*$MM%0_9|TNwq;mWWZZ+xk^{ZScP3c1dNa{z9Tf)}7>*nbx ze&d;XYr^>IA1^0#nq;An32Y0<2Xvlr=dY!(2VkjOo@A#KPOzh#l|!M{ zedy_-aEi@Hn}Cs8C0DI0P>{yg3yoxbt^Ii$xe2pQYZq$yPLzSwm2JNQ~JK&Y79w zJk^Lcj03Z-5mFXhi7VG5pw8o*YlJf|)LL4>)!M0yD{J8Q+OLlLVUHddFjWetvh=tg zmZ9crzT3n0KU^P}r3ZpwS6j-!GFo4H26qFdwV>M~KLPjriAIWhi52e%NB7g%u3c3y zmfHv7Yfy81JunUX({zS81G+Bz1?~a5lHjPoGxvd z5$&EWlN+si;xb8{3{gf6Ti!Sn z;j`=p57-uKVwxU|XWMDFVD3|$V&MvwhN*Ho;L5#UjQgrYAFUC zs>Z*F5(2d$d3Otq)l^hY=~c0CC=2;pSWQk1()hTjKINaeX1p~@uf5Yrnw z0J|LvCo?q%f=^RTgB{#2)F`oYSgcvq3-+TfT$}d?gJjX2LPL24Y}=uB5Z+C>V2xpg zil|@?i-{wn;PC0z*1fEbNM8nSG?z*B9mKc7(<^Sk#5~E{gN0V|7BEsohH!t2wy*(@ z5k@Befn_P#a~U&NpwVPoSplbHNcS}wp)7@5W2cWg_1Z6Ju9VYsP-Yk4y155 zi1jvKV0?stuxy%v%8sgMT*tr*F=m;F^-@kLlgAFkz!KkLHJbfcv zlxVw5%)v|vUSdqngaTHn2Ga||UqK5z1iwr^&W_59fz6`}y8iV? zEBP4)Xia&fM7SaQ%^F%BbXd%CLOKT5aq&U?p%a-KUTUIbFJ`WD8#0D8s`mFvYPV5- zFJ_6#3M2OF!F2?ij!M`PW-UVi>GfyDyM@fa>NKQdt5Op=9mb&7AuKxE?laBdpfj+4 z;@rN}P!mM5wVxE2K zK*)_)B{oep!)6!xJ0FYia67#;sCL{GH^rPpw1(BjIf&)R9m3}IQgi+wuCK%{WfAHE zxZ%`mk^dw+5l@K zv(Hx3jv&56p?*8feHvk(-4;H~_Oe!ak<-KAs*l2DjquIdg>7It6Gr8*(+dn|u5OAT zLrN|Hdru$};%pJ7^{zdz0^8fO5VZd0!a&${Kt^W~boCTql*En(-Tzv_ij>x1wH*eY`KE?68Ad7TTf`xp-u2z9#6h}JeMQ&%%T z`VQH3n_n+G67>`YX02w0!7K2gHxUb;RH)Z?4O4FnkdLeSDp<7e@Brk^e*Bsvn4)vk zC3&Mt_2o@mb_k!PCFWG<@mf6SaaLU>d4&J$I`c}~tV~8TRI?);pifa7Lu-Do59`k~AwA zj(~3cumVr8RE}-5Rb1AylKm3MaO=`@r|5ZZ*aioO7I7o`B_^WNHR7=zVdGVeUqk4D z8hkxFVZRTuoV#d%6P(l{LI+ao8B_o&FcUO5gtn&biUd}rc?L6k9ccI`^V&li8;57G zfcYMb{r&81o~-CbWDA~yd0qh$hzw!!5~BgMP(QZOQE}S9w6+p>4?p^^8K=TlZ2tha zhnu}*u9LkKtF$&UpzgjMsA%qu{!l3bT2Wny?|He;ePZcX5x4d{rJVR z%}UxPW~6oCf#0Rs?csqB>HE0QKsM)kKsbN=!Bk>C8xZ(zX4kF>nEK}FjgD~k>`D4O z2oz7ibgAb99MoY?UFGa%wj0wN6p%4{kBefoh1pCmFtkiFt5B%(tdzc6*wINg7^j}z za%Z^0QG;ypE|TTz+~*Kp9QyDH3!FyVtjP^uxbBu%Txwx&#&<3eZnh6QEY5UmDbhAq zVp>>gDi?tFBVPz#h7={h4U!sU{R7}Qn1@n?BUVj|fa2duF@}53cenD}T3`la0~{im zxQ(_kad(IAGi=9A22RUT4P0EWQgBWtjA{-&$%;C$=-=YXrotXLi`nvK&e$ z_^+o1kWpC~I-@sidfC6d#%ddAR-$)sTY@t0U6a4vwZxS5JDAyiMRxl5>u6g@tS@kB z&O7b{1K-QZ<~A62~R1{Rz!O7=?WE`Hc& zxVs(YVnvRmYLc+`CEh0VRvzv)atIkUDsH0h=rLpah1oJ8BXk|~H@>%kT^OhC=~Yx` zdzn0An`e1X>~SzT^0K#yd<6Y@Rs2V z;e88FxAhF=)=ZA_cqT)+AJpmixlS%?4$R`s9kUoiuR$`F|3=kS%%6HIZu<F)BE_%y=(hg(b=B1lvKqN z3JmDb_WLau;+Xwm>__H)zQ6u`e@FHt{6JUsW9tFFtu7zz$)1cj$S#Hq0)tBJ^r|0j z(R(ZMF$=}%kTdHNbSRen*l;M0Zp1`F-vtjlk+bh1aitutL;OOc4dpamxgflna-tD= zZ^JMV;||g0vOh#U)GNY|&7hPQ%|OW5nwm@~;KeQo?_D@OgPur`;2IzYV2C({MO!M9 zkMQX(Ig&tyF%~)x-E&|U9A{C!v73bweUyuP=uv(IP;itVB!nFs#-?-p7#D`u@!=Fz z0-#Ep?zWm8Cubh-M4u+YQ_sva2O$|ZQqnQnNHY)~BeTlz6a8sFd~m$s!^LpUW2wA7 z!IjbMs_4UQzZQXr?4(o01ysqD?hJ1aqg(aPqaXIn~A4oR9a}tj^m3 zH0mAcv=cYZNjmx&YJbsLQ_jlSZtTamv)r1({$^%)Ybfm8#U@RoJ7bxDvofSDP+qXr z!JWpE@(UWp^&DULK$Ls)at#DqJur*%3uYwoNpD?wBxEZTBf>pR-rZum;u+@x8PTG1 zU8r#J>Tti=^SZOln3P*nnRK3ca2()$d+fZ5U9QSJA42=%wc++rV>_{9FS84b~| zKU|XObl@RHKjA9NODAEcG11EJFPcv-UuF5k7mAGr|NJ|FKQvU_;Eg=$oxax?rGIpry0R zYy62O&%O^_`@N|{1$}N7Jp1yjTBilG7?^~Qe$}Juc@^3LUeO?L?z5AK8 zKS#@Lfk4VXj6mQP*uVLnxB1U58E!C@fg3o1f`2#x|Jyu&O}@=^HxyE3w-zhQDs=bl zHq+fQFNnF#-7}e;wY$UZEcy=1vHjdssuL^wB~=V8xWfiM4VF}I!a79>XRudl-K|Dt zVGQPQaa7>~YD#nOS~00++-=K#yt>Qv+~gj&<$3p*81OuNe3`or9hi9^YQp^%>jPC8n5%A{e`0 zT@Ej+!ljh-Vpb)41HF&s?@KCD+vj38#+yS4Q^j-GUh1*8!viYp6(wBQdrP>mf0b}8 zhdpBb8+4Xb^(I$Q5%&(@vsWH*xfVTQ0o)#}$IjAiHw{^XAG474cnU0u?;nM2MyyVc zJ?2(=?J>vg_=G$0h$k#|jEB2qKGzdY2`SfSJR3Y^JeZD_RNdCS{6JL{1gnqqr`*!k zKV_Rm@0J;=bT1tqKq)#!wul{jn@{2k9!YXvM6o9>r9AgeDdh>V8m#s1wLVX;Fpvyu$k_g`O%nka2pQab;P)hXji`G zXm`CHNYRc`sZ>6b-AF)VFr@4cc1r9Uwo?2LGF(#09XQLu0vcP+@Rn1MtUJF8c_^k) zQ_1_FQC!|K7s!R;;acNWM_8eX<5J#o|5^QZ0A+0>_|H@G`pelBF_&`gsPW~!n7ne! zlwgy0ekrzi`3y`r3<1+Z9N*vR&;W3NmI0L0=8Y9@}U$%`QGe#qk>} za^d_>MK+tBWXoy)*ZRudZ%nmUL*TqLZ{n&7=D&P%qBPzX!7HI#UR%@n751HVZ{q=5 z&uh-trQJ!ovE-nT@9f~_9c%|CAD;}LO`vhoUU~VQ?Lwr(_PxoR4M{9WHT=PYREHmJ zDV<4fa17r6Vk8Z0mw&Lpb{xF(_n--dG!QxcWVKi)OW0Y8+_axX$e}-Zgq-}7#kN-v zsNYI0_AxqNesVg-zjzGn`-}B+>#b6yY)iOKCzk(<2j+LbcuHydo5e!uJY1>>olCUZ zaZpbDW~Z%xL8;ug{9_hkSY{(J49mPF7Il|Rl30vic3EPm>Om?v*F5z*&W5y;B$oO} zti(rPu$^ntnpeWb2HpP?(U@Jrt7N-W3@g&n5Rjpj#b&BdL}&=b>Nr6;ktP0I8Hj>h@| z$9#S9EMNPpmPTR=rzsGw+Hccj@dcti$ug8Q@Sd8)Jn}arkLD)V)R@fc5mN(6rk3{3 z9`>tig!RyF{M4h5m+QbWt6kPgk;@xXrz6)4BxX3o)lg!Am`pa5*rrB9*#2{B9sP|~ zdCQF?Rvog?8Ur6i*+SX73EWJ!w5BsZEe+5ys#3@3Ig-1R6IC?GZ@j#pr*X94XPGZ7vcv>c^)Cid<5;lbyN54g?oKr%lgeVH1vvsy3NqF0q1-tTLAdQvnTw zUOU1^{HyK7YGo2{A@!gg0--~=?0Q5S2$@8Z%q3%DW+|~GMQT|JRZg~)*xtkv$lLY> z6PF96yAv}j$&N{}ww1&}HkoS0yY~fsH-2QUi&ypOdFOiD$&EmW*p6^USWuEyPSwbGCy8YYGT%vJZ@Zy1+wL8^zfv!U zOTCRW{e^CuIEy$q&sk!tv6?WALESpMr*Y8MMZ`fL7ar_4zz+J~gPo>Au=gRmT_m=) z_oxA-Hq`fP5j(TNPRM(%5J12s?AC=a2s6@-v zhgXny^`Y|%SBVuEG(9G2`Ar8V)^q|yreoY_V0cItv!JzBeNK` zk3_iSU>`tg!%S(uyEX>9OKhQa7)}D(|K*!gfg{>OVi6P0RQox8iKFtIu%J3WL) zU-l4&@8T)3!g?fJ%F2&_nNH=n)lK$B z;w7<)Wx^HsBvatwa;zlCD=*1`&BCCn)QbIz(*9amRm`kR`>Sy^p6R|{gF<5Mr1mT+ z9;+sj;o>Spm`$lKH=D25B-Qur zo*C2*8u$r22=fyn&hQiV_!53mDtDng^s({W&irPGKlhtK5ELFYZJ2}W8y_;Qj$}r1 z{JGs+f>?8N$<$*NkuE7fl1cRdiEV?DrU4Qw%kO~mpWHs_2*xjtwSR4PCQ6x z9f`e(LeAC^VhE@!a{P+A(h$n(5YWM;rX~~MlC?LXB-_=KESc0|>hU^h0qCH~g;o35 zd`j!_`N*)_a@2PGO6taq>Wi2hSzicbRecejO6yB47*gK`!b+z$kl4P@GeuHK-`0mz z_{^6E+-KC_&%15o`cV>L4SA&KxJ0FTkkUzq>I9w|n9wD@7dRM=;CmZNtXd}D8uGxP zK*-q=JhTNJGPx0t;tn9o=C=nwl<`>5Nbp^&v9Q{C@QX^!5QK59^vW8txUm$1 zub!F8NjzO4tnQlcTCrhHiUTEklF>)kOoN3H?JYcm!TK`6hbjF)832);VXk?Mdt~VD$0)qLFEs&DFb;#_@n1}bnScUPR zI_zh+PLE)Z{onL9mFvKfKC*z&=G;_E?UsH+HmzMDLWzbgxD(9)Wn@!V2@@7qy*LBP7+R zKINs%kxW}d=@i?VPpm(PXw;31?v$mS@RTv1-CD3Dw-LW$+Xxza+XyWhx8=cSG~B22 zsF`wx;+fx8;K^vqr!f#-YBJj#>r>%vliNWZZB#nIlmxevbSR^`@W%706OSUbYY}?_ zy&M@!tJ`r>>!wR8+daGH@KalF*6iP2>PV4Hi-Xl$-b`bNEk5K(d&z^f7q;ia?N?!n z-QbHU)StwJa_>G5(bG`}*G21#*PM_GaKMY_UYT86owhj8z2+&Dza>P|0tBGhH$~QgUT;O^cLbXjd#& zx2^uQQft!ogm$eR#WR;3RMB6?7=D8-A0Lw41zu2vCPT6yN|aw~ql9<=juN$UbSH^z zyzGU&j~df%!#OK{X(aNc149wf8S2^7Qna;vnBSp5*xIDZM_gcdlk`rKIf>DYHq?x6 z#&%W7h|Xe~*R{X=x`=SHpo$djuBm<*G90zzFUxTOD!Tl!QD$s646~^FIZrS z?5afXr1wt9=@GCtkL?9xDS|!S1t({_3*$2CAvI@;>DWW!tERLb65C9*1QofpD%mthUeW;eYfCRt2w3-)lGw9(y`^DP zR8Lw#?z-3VHZ=tz5XmI4?5T@pDTGTJ6O!S6LT?)?EiiV=RG$DS1<_@J07EB|ZD&`x2x8 z6)eX{`Xs9lM9!M^%gp5;u<3>r5Y{p)yF&8DNKTbHb?D1Y;Sl7h$ct?u^unh;nbOT- zfLV%a#dNp_HW;?M5f#Gtd#7{oDpNzs1$>NFb$&lFAtRSdjs%9WEyek;-%V0ywIsEN zu*VwGGe%;U4^b*{C#OyLAI5d2!KbE%fzKi#gn^bX{}TG;lPiqj_0j7syVr&!$1K(Bxf zY@xgk+F}DPpQ4_Gn^z}c?3r#I=Rvr)B;`c3j~`Ry z@W-cNUk7b{_$O_d7!HzLDRY+qiN=0uATyWMgJ5?gb`USP>w<-4baP7o9|HA90|C5E zilRU`%4&o&nLb#mO*Dfg4~q6I)at8ub`SYOC-5D@vEW<#xVa(pa!tv`q0FSeKxU~E zl|T6pZNp{vT4gr!Sxyk)o@sZ7qoc6{&QS2?-cAj_2|Ln|lp&G>{d5w((|5;ck*T<% z33qS%K@I-Ev&=-U3M}Fb5Y8MuYa9J$6fsdG&GMmqn|eRompIX3!eZh+RAP5{wXR%Q z=K3Vhqs)-_dX(AAr?{ITJbY?lUwDJnl6>z6%RA^(Lq5ct5q=o4?_a#mN@UdC@L`e- z2^=OFu~^)GnADz1vJM1~rJhZ6@Xc3}Iv#qm{4~8#hsMU1JzNS%xq8`&nqMd8$YxWpuBjdiKFgjJoV zA^@WA{c@uZWcor3stF*)@aAP!@;h!p2v>gX;#6T}&_|!_P2gYoo;ehD)_T_)OhS?* z57K82#IYZ9ifrU=Tp$ROEM4eY){-PH0pU^vv}b%%pyUz6ct<#B<-If^hKi2PvKL=+ zAS`>?EtS5TMLLcIZeJ$y`mz8D?X!n}EJaJAGtnotl7y}sC-EY=Kd91kVxs~fKr`an zq^z2}glib#U)3je!4*SgcA=9Y+`uiel5r`6qDDC4+&=boH)MrvcQ=Q`nA0)hgeZad zEI?iwht6Y04Nah*EB1)sa|YP!?qK%aNb)cd=JT{MM8Q3<8-_#>?rU4V4RfO-aUI2@ z#+5qoUeM^(2ErY!N#ZDp9aoZ+QM{aSfK8T+RWA*NDO!^^bDo-MQh6mq3`dI+GJdqw ziP`Dd(PAIkevH^gOd2De<%|)#3Z`R)A4H7hi`Mj|y^DBzMMB+3W|8DG0w* z@g>uH!QuAX0bmC2#zUBJSp+wSuR#>X*&@8V!FwnxGCPcu*qi2oU_yf&cfi*NFx|pq zFOn2oW-M>wCWu@k>NTNVKE@Q*mLl4x}+n&risZ!E-aGG4ESUaI{Ly#OI85CTPARK z$%Q1Q$(U3_YhN;XKY^Q$$_w7JOWiV#l}vA^K!STWxJaM)JC&KqMU9z^5LR!Q_*O(U z+DDJ1PvkqxVGwFZ?P^j){WX0B!(k^!@I;PqWBpfC=_vp)nIy4mjJqKUe2rcM7sDn= z0d$Vd;r{tFN4vTtE*hpDI~nKru~e6wnIy3nfBQhDud{0RCy_{GA~z{ABBvWe1n_QL zWFYr;V;m#Yxn1i830NU{vQDR(K*?~Ls}Eu4gQGXFO89#+gpm`;TqIwhZQSR}FR==s zTv(FkuS#8IYtR5%3_{liUqe}L2QFFcOaQ%&8M-S4gPJGuZ9=Y2=3&AeGOqWc`z3!) z%!I^zhCdB3jN?UkwBODzG!{in;bY>d}di!tpZu}y$Ytk zBtg1Yp|Z58P|ih8Vg`BTPXi zCc|JB&7I4vK|WMtW&+!1l-7BXMBSJkLjg7uye$-qKt%KqxEMg z{HY6`s}SnC-?*h^1Wpgb;CrR5cm_Z?d`i3-vHMG^OIe=;3Y*nQFPIsANy8!y+4BtE zDAspp8bjD!=NLE!TySC@Ks)9A#iMCAK(Kw*#@o0GbtKt;fpxE|2j9~@8OabJyb$+z z61VP#MfS2MPk#u#qJKIgx3x%0BUtR5;sFVve(Z~|3Ja&0&F1nD+Y)N9Nwo^#MK`uc z)-cK)8^CwEU3kTd(B$s>l>h0|w;}Yg=6w)mTr$?fWv(Y#>kmy4$pw#O%Uoxd*yFq*H=X;y5vCw8rj`x6AlO+&T1;H(^ew&~^ zYZ1RlsFupP^&{-3-nCnB<3xfMNX85;j9T@%%TgA?k`_qS=;J=X|EkS5BUucA$7XOZ zrp!)`<}n80y4z7h|A*T%QQ&hJI#C7)?Uqg2Sjpw-l&ggJ=6Fthk@YLpU$kRO$(=MX%Z`(@H=a*ejofLp1P5C>AZHG0m7X#IJZ{?+le7y z+CJ48RfI>czS9@=IjqI7_L#OrG9tgz`YCMl<>Ls zm4XND6cG%olXxx~gyrx4f%Os(Y>wnbFqDO+P++6z5TF_sQp1 zB`VMcC1w-IW_cV7!r)t*t_bCEN@texjfdCJ-tmOxNRhKyQJf7=6V4|G2)&wyc5Klg|5CmUkCoX6Ulu!zxr_jw14@L2?= zo!t{6d^WfkiUpz91A85ep$(|>H3hNz+Kt;&DK-+QUmQ)#jO6KH@;C}%(7xuE1wr;A z@>y`mGkxYIYxO9Tj1^#ZH+sVq!hlB{iZECMU$ntZVhF49auZm?p5|Y!MffXZhIYS* zv4o!vyU_oRgr*uyne5^VE1lXs={MR4ROxK@btM#I-y?k3rFWL^UajDp=&it`mR{|0 zP=q_SwT^d;_ANcyuOfz+#lY9u56X;Lgy*uZC*gf4A0n>?IYh3J^c_bJ95XOs96iJx z2tf$vh48cK7q~r;Ub!o|7ja3}1n^EIVU@T?_HdOr-DtF$pKaHNUMdUtlv@S0H><^o zUG_#PkOZ%S4Vdn0cmV4Q-OERZJ|=O&RVr~uj;;|W;y2dt%W93F>zJEfa2e{4iNF!g zB_j>u!6}ecYsJCi*R^78+iRUT={&WLp99x|{yDQ|M>1q?8^9D}){Dzwlhz9y57tZU zdTmSSUu97EP%^R$h=%r`mcfsFVKt^Q^NZO<%rC%JFKx@u5KHk_8RAr`!v;>fHS~|1 zGx{@@UUbg7q9 z-8b=rEYz6U#~*u`IwQA0_RQHNv3C;4>rK)iO0gI8I{YT%2GaoTwQ93C6g#z9oOL>G z;g=1O!v{Wj9f^B4T^|Dd?TJ&P9BWN;cuqA?zC~C?*j9;M@h1DWieo90ZTzNVH|RfR z(r3F$QZU^P(|x^xU(fhc6wt;ttNtHSNZc-@kh)z+`;GQj_zo$U?QAUGA+h_`AcT4O&1QNMNaIkxi)Q)1bf?(m)cqK9atfm+Z zh~v>q7Mk8d#F2Z&@n^A>tb3;6o4W z-HuAG#BCp6;zmK!l_|S@83K@#0U37Wl6i&eF4!lIA&d7(>}>(!yQB*ca*~STOp)Cb*()ni|6sOBq4vJ$^heHBw{2@MP^q|yb zU*=%0YCt|85<)RO%n$al!>Tu%OtC{9vgR;9MQR0)z5L>J3H4N%sven;b;()-5uf>p ze1zY3>%m8s8pVwkgS=*{yZUdq8gk5ozAs=M53~Ub*G->^XdRipWgInT*)qrP71sHev+SE z4~AZz(N(Q5MmHe7hc8)bpyX%D$T}qgmdRAF)) zb<_}=XG<1z_BCMG?#~M=%|0!g&;Bel4eK5m&GQn*s*-HUnTbz2EAiXWVQ2Ym7!xQV zzCQIHQprLZD!FEwB+elzJIga3RQ{?hQ5mBvS>M>Txw58@=(+N55o^ExE%uHh&WTvI z>m0vyfJH@vKBMRr`#L1(JU{b6!=K@N0hV?%Frgyj>F4>5A4)$ys@xXK_Btpc9TE`+ z7pXo9(gqiJxWOb6eR7^Rb2N%&%>|JRj$aVl*X9@b4N|<0f5`XAHa2~#porGF#+tSQ z^RbH}j+k5$fg$>m2-W*836qv`#IL9vaR+O64o~nK0o%kEpYM|mlhgsEc`naf!{M=4 z+Pzw2!z(F(tj`rUD$nGKq~Ls6P#<|&Tq?YLSrj8RuZa1iT;buPUp4sL%IL8NiMei- zI>h9vn0oE2g84~T`NjEuK)pD;FF}C^kdkXq2X>s2Ybf{RQ%5+U_4)*?h-kYryA-;P zwqiS1x?{{kmkptZ?#msXwhWdO%nEz*qN3 zVu2LCzR0*eEIOLs5Z%IVh$1cX1|NW?HemV2g(R+Dm3k!Q8r)&GoX`QOu}edA1~sa5jI=mI#MeFD-wH4h z(MsMCgg_$-8e#JH z?tfL9Q~Es-Zui_1A;ILn;3w(6xEow>U(7S)fw&*D$j9`Q$M4E-?x%AUFGn$wd~3 zHOAlqA@{rjiG8Sp1Qv1)#3DaObRa_}tDz(>6uIDgp@@1>Mf_kLGxpj+wc+Iy-qnb_ zDB>#}%ox*7_Rk_4`Z6>|q{KMaP!kEysRc(A^N5Kx)Q%;iEBAa|Ebf;5Di(JNq1XHY z-tg6lo*;k)CA=_5gU6@Wp7COj3&dm0e;t3df=@3bgPZz167mdvB#NHZ+F!4=zk(i% z>MQNBhUw%(SN>KKvT8aki;y`(P%b7Bb{l;Q$B}@ z@FZ(XjR#(TrB`yc|o-6nI1@>GzU%LIfU# zJ(`k{r7+3h895LuU-B{|5!&2b?q4E{7eK;De=eDl+ONbdxF)YeB3k*1yBSXIN!eHU zfH>L>Rp^@KIVL3dwWLF9lj+c5$**v-cqt?l`I}UY%zMpCOZZfS>TXG!7mSwMQ;0gv z7Uh^}F2Zxl@%Ps}EjNKDHCn_(4Q+G_XqAkhoI{NV;2(=byM&N4rD}P8=lc&(Om=~gckc+$aoQ#&&GLSjspq) z$XyMW3(YJO;F7YI>im!5_U5{eQY=k;=p;!yqoLYHZBaLC|F5_e9rG`*{Kr7ACB^U; z14=;v)U>|-D_*@Y{lvx88#;OZv%?AGoUR?hZdYSqk_Z~A{cw=N_k3N-z<&z5LHiA<{7mN(Ba3{b4|6{ z(~vyyX3Z>kP9@s&2NxLDPAz6NZB1@Y;ePKhJaKR$`-a97-W_4``~Gz>cmzlF5=0s92Z0`^k6Bf?)sk=8q5Xx9l+zL3A)7p}&OUdjH~lppD#W6#1zV z$0yT(V_XnYjtzec$;SMa*f$jJK%13IEAn0g{`_@mj;V(5-pfqY>>gnTJXknr_abJX zhe(c^+hz(2qqV|Md1dd%a{uCY79S5xy_{24!V$Q8AkU*;)Lb9@V+>&@|9uQJN- zenZ5VSVhg>SxBp*W-mf7hF*8eU)LZ~TR}Db8RlW|_=;s-q>fs=IijOx@4q&KfjusD zwPbOym9Cn0>qULWcOfeBEd1%714uJj>za2_o zQ6OOj$axzljc}?($SiGaGb072YW9-PIA|Ms=hNc?82W1 z;Lnm|HGjRlP!8@iXo`zu-AgKk9#DV8@IZ#A&IH@PGXYHNU6Dh$$AQ*IYl7i>oQCz*dq40@gZ8o_#V#UJeRJV1(*=4Ra%tF#o0Eguio6QHWbj8kNgN!Up_Nt* zk`aE%kW|}~>mYlAqR=K07Wc{D!PcQvnK$O-I%sf{mHKg-n>v9{(Oo^2PU1SW?Kyt- z5VJx$#@9owaf}-?Ca(VwTG8UZ8V*NT-}P8yjCsLusab7JG5Evd)PDM~^N8zOz)+Ks z*yEudNIUF;4v{{-MT{*_q$TORCfBASBc^!rkX9dh#+G}>X=mv}e7)4{6b0-0pQjGZ zWBVTIdv$b|yQoc>&8)Kn_e-01M#En5)TY|AUTVH8Z(3CZ-T10%{$YgE+F$0?c=$z0 z^= zgp=a-7_dwO$atnXUR`itQbWyOpN^}c?ns4o3h+kk{05(D!bLI+(%6lP8&C0m4C&yMn-jOU$cgDu>_n>T6ui0B zCvG67kcs-EBB#h{)&D5Q)F<`Cn^ee(C{#G>%o@AMnNXYrv7`>NW3g{*uBCB4 zp(qku7>#=_OcYmFLwVex7recpj@MgB6s31|Qna+1S4ds$Fcn4~gvDc!|}H%+Of+O>`hXEwlL;%WOrm1Z}H8WX=Lt0 z1^|)z$K=TGV$NH@b+#(6yg2H^P#1m3g-1hladZNF76E57tUUwFXipBMCjdOS6uVIp z*t!D~*r@|eGHRW$W-DQ5P7Jh=-+>vnr~^BPUL6UgkpS9cN5e_t%_Bn(F>_2VY$@+( zC=Wm*x(kDy`XRcW!m|_kMQFw*JU^?Oxx!1u z(QOAHDZRwPj9gP=&KC)rE^H^lyKoeg--UP^mu@@X99t-7>wYaro`rYiF5|kAWkUz! z%z{-{B}x3=LpW~VjS1(}jV1_Z*gkq*2)cuA!r^e9i74nsqe3rzwr9W)$uP+?pdZKX ztW4Tz!cTn{Sv@?V7|Iqq>S;$Q4?6My7%dk?5)?;+$#TBF?yGqS}GsKwFUFu zvlqEB=rqhKy!uoUXj3odnWMdk>oE2)Zew>Jnb%DW>diVoqBjXzYXEq2?|@pOX6?(k zJNmNAp5)6G=YcP&dh|GcY?*XRL?uJ3nZdBk%c(7q?8jpLTKBJ)KeNI*f0{J(jMg-F zz9<=>@FtAPqYtC+--irsSAe=zw5bDj|<>p$8x^Ep^2hT5$x|}#_j-e7$4AT_$X?2dflSy}0|{sJBb?8cgR=}Cnr0$$ zAjE)4gAD1Wfo+2f<^5hW0P0&%#hR!f+{NI*JoK@H4dun!1BpiPhaA4A8) zO^g}BQaWP@Cju@Hq3Lo2&=RL9snQcEY-?y*ZI~1lYy<~_Wy8ejUnJdYOv*R^wYGR6 zfOYg6h9%Y{F?UY2rm z=^BXC9(si3&>I6Dh!aad1xEgESl)X4$l=ms@+VV(Wv{I-CkvmOK%w61JX0;o3JwCx z(lh6*g#Q9aDu&zv_hDublXyiClcg+($kG?!69*d4mza10CdTp9i&z(INY~nY2`1f$ zhTxQ;<^wL^LU#C(VO5bncfa{EUs!RQPbi4vAw&jTo1b^F$w8bRcd>dCu=@lC8W+k6 zEwj#yk6MuIa9 zYWlqHS65D8*l-rvS;JY!-yY69*>nW|n=^u+-Wx%aJR2IC)OTSrii4+^Hjv zx9^Zv9mV}9aMe*R5D6>?zuCM@3edO1xn{=c^hkJ)Vs*84lp*at`#g%B82{1S{r1t+ zJqCa~vV-1{2X@m?Bf5=Y9vd=-)F)zdCw6HiX)8aE;n7-z8Oj|qXf-eAI*K`K4BLsV zVTPuPLU4jwGv_+vC2OV}2j%u7%#ar9D~u(1N4B`opwvi`(l!(V2z2=rdLJ2UD6_0R zpl0j|*sI(|-CVfzf%%H?g}5?iv~gchO`5i@xUs(zQ_lFtb7XC(;m@ zUj;)jm>L(Q3^WUBdd!{H97*ji7KAeqSBJA165|>1a`B(Qxsm4amoCzA_@{ADw{N=Lm` z9Hx+qjN^){uX={hJjL`Wj6%{BL%C{%cIbWSpw4p6vPZ$3>0%Gxsiajx0VsW^(PYWN z&!#eAzDzZw^Q(T-*e~1#{}i@IckNM&SlGvh4r;&Y#G)u8t#Yy(OEyeyk*C#ehANyh zENk073rBjniJOtRm5s3xWjY+pC#jqFqJ%)8g@J!131VaalZf?INiGCc2{%bR#eJo8fM){i}r$Rm%BcZ*q z%+L9;%+GeS4Cyw|*|S&!7tJEE$M9p+?&ISmOGVE%l$ZFSVvcf2d#9LLn~4)fgiTc3 z2b@o&2bMc-7hIG!%Q22ZS)5Jh1s-reCaTdt;&`G~#Ia-aJ&xuS&6dHxK6emrcd;r8 z^e1W;h1lEYkbohO*0e#socNL8E1edkJvF#C=2$f#LjxB0Y|9Q=0(Y*5v86Z;#908(mi@{8@#^Dz4XCYZGgmbng< zK1xmqo6ml2+3F84&fyJIy(CMY$^V4M8T6QB4yO$yq+houK{rPMT8z*6J0 zfFjvG0AOO>Buc7_j66{3ek$0~@Qxe(wtzXT_aB5qb9km5G^m3#37g=mJ2zTRC6IQdo)1RKIH#SHX8d5Vxyk#fX1vVvAnwGYG;`yC~N~6l&b!) zT+|ink&aky*kS;2ug=rV>62gOmxA27h{P`~k+>leUa{|4P#_J;szf#@I}*vgz{ui7 zn+Fl-ar=lMzkDOn%g_u?CMB`?oRGv$#R>SQ=pD3U-cQa>lXG429i~Oc*kQ>OUgNgF z+=M?ev1>PBoWg;QZ3^>jbc!KeC-fl2&`fc%xz&DoT!)s> zWa3Z~Hx4T$k}T!S=!~VT+zR2JLI@n=t#s3^l1U-0WF#V%8PXjbvz8ILFkBtmC&EY? zfYKbul(?(}=K~W1ihMYy8IDkfKM-oxtgk0_<-yiIm!*acM8N^zl9DvW;aeK14NN!` z^&bew3^1qS>jNB@E|^1i3X-xm05#|Lte-MaD!dHo8_cd?r&wz1=iQWkOk79E`fXos zSWOugQs8c)Yl7SS$+G5H}>jvqg4rpbNq%cQJY`>&RJa**@N1OB3@DKw|bx9 z+DqT+)(xaHvh^=oHf#&k^9NstZDg23iiydqs%=m2V!32%pNo*^865vmnU8H&fojn>!$27i+t9G7;N1^P7h@vp%rgVkl3mWWt-ZD_<8U zKEMX=kl}`AV$&8z?8p{oJM*nP8=+gtlS3*s&f0!QQmJq}SiAGPK-e(aQ0Qs5jW`GW zuTFzE&Xb1tMNM$YkS`RVf^BS>8f_|vT5 z-NVvgyO%&wo4<&w1N-&ROI3V;!+Tkv&g~^c(F~1_xcEX+PSJ0uTGI>Rx=c}XK(0pX z2M|aiEa#SH!pFl=!z+=?#eLjf(LT~#iWrYFv5=-X*(=Xf#O$;O2z-f2i#nA0TrMghX}|UYA&~m zJ1K#7^oG=m4(RJ4vV8jiXjYM(i40+s>~qFpip6jkrCtmFlymUmFh>feN9bit48Om3 z2LLd)w($sU!$7SbY!!C{-)kp+9$_+D9%aoPagEsrC}b|C7~!b&RcS@8jf8 zpkKY}<=T8{tsWoeeF8s^Q+wz}*{@ z11vnv&R+@qQyiKw0ByL~(u*{Dh+!4sII6v=NIJvHeAO8;8yLrYTkq3QN<5_6%Zu5; zxf)}nk>u91tS{D_<;eESS=K8Lm8iQaiU5kYx+_9mqEeis?G zfE3vYlYAbHeLf);56!%=480){JDks|=wd!gbFFj4AawwAdHqcjBxMeq=*jbS`xv!kcrT=kY^~akR`FGkj8`cXw{s`-hKY(WL3a8cG3>Tx2} z%pU#kF=^TwPK3RAD0d1_@KqMoV^>)V)VxM7CIQru`kO$zgS|<+2EpR7YfP>4*NFE} zu@#p~=`W3lOD%m5Hs(6ZN#S)SMAIA0((yM)Wum9{*!MyP($QVizsbXFdy`*Jy2irLQ#D5hn_{Qy4F zw<#@&UOEih;I$=WyU{JHQR4Z#>=d2*5Ldq|5_V zJ*0NgW;zy}94s5~iw76D;32D=`wvOAVMIHq;vOqS3))VaJaKBM6noU$$OBl8ncMS& zbg)uT)!%r;Jp1es>mSd@?EfY|CW_<0j3;HnfePF((BN-cAlU-dh3i7$m=5OTWB%qG zL*m~ws2l)jJs{Ui`V^LyaQMjysuT%s`-Hacq2tlIQ5O$s;)|YeE2U3pVFU3#|8ur* zeGa`SUQNnVLkq>pLLX?Z{l_Iyk(Gr*q+vsmYyi_+_LKv03vt*%?GYW$o$xDaUXRLxI)q-(;R%8j6?`!=+@`%W6LG6A?WdBHwu+ZRMAWP=Hp zD<75%rFUMiK6vqh)s6Q{nlJ>7d(rm2Y|wi!?5Mf_l2zb~mt-c;JDZcWaEmfMHjxpa z%oRI|eqlFVUL15kpEzb)W+JzR2{g)c6XGzLqjSn3s`y#~^gO^{E6ssI6rT zb+n9>GX@9OmXNTCunVa8LAbA_IyXg$DniZ{o?DA9iH_Ec6h)*&)*r!Pl8~$KI+7=-{f-M zs`u=VXT7IUV%&QqYS~RG^j$u%kq-F4vz_&Um89vvBygC#J>6|(3uO?tyo8D^y{5hMavmF zEYD0l519^B4Lv79U=m4h3F}YfF5ygv2kcIjS+m2RcrSa=Cz^O~04Ry?v{$?_1>#12 z=A_=D&%~;;0Ko5TJ+<)v3ToH31av45NqBsrR?y76xpHU-T>Ahqmy1eeA&R~*W0Zbj zYIXZc@Tdpou2I{|MxTCV5`Xt}u=D3pgjuli-^ zb?f_`yAA!$-5&W)@QnaIVD9i?I(SPF_=AOc!Vhw4aS>+anApa+J6|D51!4Y^Tdnz% z+CnyZ{`#N2atPiJfG%jf6oxGPN$dH`8mZ(~lTdhcKWyd}JUs3xiXX$Victi;?4C-V zCP7`~`rN&*gsJcpV02zrqJc`D96|e)dg;uAWv4JcEhAKKdveuBGai;cJ z)q0FgdJ8X=infyWR;gqrOyQ5JbMMPhyiloVm-d!BNZJo2r*XCXDbSH|2#}oblhN#iHgqOd^S<_lr48N zRmuI8I1B6M{OKXq*{VFmGgB4qc>8Lqq7BZz6;yJC;Rt|ET0G|;6jMOeOl2&JpMu@W zg?gNJEMG2zFD3X?SG5)K&mam9r$@rqj3zk`YRc|@YliVBG}2IIDiZBfM%JSzhDIy; z0;3je4NI#>?~h2A5CN-2N{9@Cz;eWjI<@3(X$7B8rI4SyM9;-mbCoZ!)5(^b=&HiSgq7B)- zEQ!}g0O-)SArB-SQtst~muN|JP16!jBmz*=Z~s)08-*1*^e%=Suo%TCGPFxeJiHxh zdT%#^9gn7Pn!KZxN^WcQf$HFJlaunShBEq+zacPQYo(IDMicrKzG+_YlwV>yi>Rk;1=DvbW^Dk`}+8v&rJ9(3(5K>>XeF{3JrZ9-KQo!)v-RV9-V zm>lae=`0<|g6S|9zIS0cXe87t#7eD3BSq`D)O-ho={hOMehqnj18~I@$hOs4KvS!$ zXs_t2>MAkX~7^q3LiSjdfD+wPg zAGg~72T2FY;;QFx>V%almP1_QS4c6#7KH5`$arDP3YKqd2oIbS$4(KMI@zE}TVboB zO%A2DtUtQjG2zzPaosnlQ?wlN)%OGlMa{xHGi~u^i6M` zyVPLK8&HG9XeJ`Iuc#RLzHPP9GT2AzBmP*jIR8e^e-+Q@MT4W#W21_^lz7cw41|g$8c6|s4 z%c%1oZt7HrarNoLCMe2`^&ghTro$`A=>T@DD6(oXJLc3<(NU$EwOPx@)+W`3D<-SU z84ST8bgVvXg4A02T{m}c30HBA0t+IUbOlk=KqYsUV2dB3N6nSo8CgwbCTdny8Og;BB(j2_e?yf##}NZH z!%n$;mS)lBH5}L~Yp9ZY$1zdo={0VUB)X#O+BQMk@K` zkl&&DNTc29VqF6;l8SNA7UydJb8XXugfZLoIAup;=9KKldXyf%=fD=e63Pbh0ibfz zm*m5zA)p5w43=MRHSrL0sz6U0o2cY!-EgS>VS7qB8mky!b5X&O^v(o$_BQB`L2_Dv zO-;pw$6y5Y*)6MX+95ri1>#~PR^Nj?LZQ^Jxa_EsC#@Pl&Dv@UV2=>0N<|5eYO0cl zEWg9E$Rm^CBO{32kH&y~PE(aUzKA(Ghxu^LGHVi8Z3n3n_D(7pwIZIzKUbF1lQ@=) zFi>sGEHmHlh(3y7Vv?SO5WOry5`c0Pw+AJ%ECJfZtp2RkR^F##Kc-rS7|OKkb^Sa$_ERQLZHk1sbGS)y}W-z9OaRXT5x@h~&&Xjnlo2(NQHl{~8C2kl;;lu=Hef(0^4 zX+VX1bza$KOob4`d3meou>W9hj&5?inI`r=jC`z*O77D4g*I%hH!a7c548cD1uOsC z^EAKCEcIwlm@EZwb%#EVI!vs@_x9{uSao1i8`*&v03Gh@le?@`zIrRlI*{(doaVIR z33L)(;iW|#RdP!)@{Ab-$9iG}!fYb!vS7;DVMDvLNo_*=#MIDQ2<&@=gQpuxe z%K)HL)}&CqNwMq9lj7W&cnl57kHw28>NQic2X23Pq67WhSw(xdLc7rDHo{Ady=~{} zP_+`;t{l5Kc2&{Q`qZxc=I5>|I{OgZjeKLA+ePgkq+!;exhUF-N~9C0RVHa zj8u$~n~62u86dkmxrRpppyQ?ByCSNG%3TcX!9iwN4;9_qaI6Qa zpStwo2~6(A{>SrP%;vp%^V99UnMJj}ItKRDQ>i-x{0~S<9_tISO~`B5(skeV1l^c{ z2k22_V7YJUx%rZr!u^P?G39WiX5SYwj}qYr-sc@Zp0HPbDtXPrX@FYXsk)n9H!J-~ z6K{uSE}ee3$c7aZzWS3D#>n?UhrK^#{^fXIXg#nDZur5^(JN{!tPiWP^L==5j(y2B zI0$b)atJ(#8824>EmQXRd0!os`tiT4ek^z9{W**c>d%em^k*|*H-P6UY5>WHBXqNO zYWz28+x-TCnenU#`F8CJ^1OT280 zr%OeY5lDo_GvW0=otvtwZY<)X^J^LNnQ;+1lw~)6C^LQ2AfCGTAXc(vK`b1;!TfJ$ zFnOy70I_8q&m`;aCNvVxLqVnW2vNyH{FMNW^|iyU;@yC4Md74;GvP8Bc9k$)#O)9c zaUDZdbUVk2P-f3Bq1@%*VXSnH4I^r`gU)9eH2Q#-0eXtS;iP8KMGSwtV=*zna3JEL z;gmM>hG*-WJeVzfE5QvHe#60?kB>T0LwHB$YqYjBzgXH^ESMmDX#g@7DZ$`V7B|=qQ{5y*6pw(#7OPF{)Yy9VXT&bW24vc2r zx-gn4*klaHU~|SWmPJsfcn|}jje)~cy<~_4NSKT0FqQmhr6)X_(X(@?Bq%)7h_hit zZ1mMbaz=#+|8bzA&89-w)*Gr6X7wCP5{G%8yNP+jB+$*VD%$c@I#wlDDv(CwZiUGk z+PouGPBtSaP7IGwV&NXt9G1<}*US)a{2)pTjs#!n)i_d~Y2%6O?Law%UuxZ6rc4!D zT8;q$Up-z`Ng*iu@Kc^V7V8#+$x)s!nvrXoHi5LyGwoid>sPIt&e1GTi~n$%(2N1tX7)f!+T)Y4w~)$hiY#(buIlWz3#D8D!pL6J%~XGjcB`s^leN zK2T#5=PE+S0L2x+-zG5wte(Up_%?~eWiWuRC_i+zqz%B6`p%lnBQTpn$_KTgYWpaN z6Y(Yq05uhxrm!N3~Y)WDP#mj~|ROT_m9_r*lHyc{(A3K2hhj125~E zp^SYo10c3;`?`&iR~$t|vv-~ttv8(6Hujfw0A}LCWSAm+Q5lZ=3?dIMsV*Dv8%<+*j|+3Ud<#V~v+Lm~Hl-7w{hgql5*5lo*+oPimm%?qkG5W5zG zoI1pTg|E60GStXh3WD8YSr4s^C9&-S&q@~GS}qd^HRDvq*5l!%xFY|kVemaHcTS4m zB<()Ji21X~6UG4XP3im|QX-XS9*ZDnttO2wUd>`&_nA$8#AbNb@AvY`E=E_Oyi;Kj zNbyyA2g{=ARr;aDZYweqK=O1f;}OTrrNof}#Uz$$Q+!Pt!W=RvTOmg>6{3r<#>9Yg?15vW0_QbIUI_{8z=!q6Y>0aGCerCzjx~2L~^3i zRZ${vo8JPq&_fpxR$0$MG0V^S^KR6;7{|DiQOn&F--0`~cS_-px6>Yh- zi6?!5>7*{lzr*KZaZO4=U;>U6jkYp9m*PnWo`RZJKd*{8&kUN2kOY>QSqXYAbsz9s z71U8QOxuNeZvF3$_25%j=Rxx*y-Zoifoc3gUNm^HkVoOMh<(J=MI3s+SVWW<5190P z)S-fIWTs+4BI~i0i4;3e2B@TmL(-+sqV(A{NhJ@IajQ=XX5S>vqi&c*$=a1moD7La+PD#F@xN6SR+i$7>1QMa~LXzTZJW zSe{kwhYTw*t%RB8ut9X-qg&VuPSd7I+524BdI+s=RO+pT95RF8E^|m zX)4e6_f*nsg8|BzXHn+SVzU6>28D z7eJ!$=Mqk$*)8RWDtalwqs4K%G}u%`EeG$m`ZA_&<7Fy&H6OCsmn-eh%C-KSWh(hS zMzle8Q~WN9RNR@MT?N_fhG{f+uJCMK@tX!pA~tO$xKQnmfxzcOwK4%2X^i&QG(9xh zOgQsU=5C=E_;#Hj&(#Os`*5Y|G$m41n)@P1@8Q}&?{2#Tq}Ecf7_?kvuJ~Yq@NB{* zFY(|25CU2>6FZml=yH}53!o?CdP{v?CI^%T0#`8GN3PJbS+!23)>Rl4Fp%k^#qjQ2 zi^o3l%6aA8$ZWV-CUPZfhS-%P51RpWqUC#y4o~vc99OZMl(32@f&N(7fp%)#Qvz2D zAl{8uQ(TUlN=9m{l>Q>@!qx17XRPMA{l1z5tn7DhN66%-ez@H6_21iRZ6t%; z(4HA=;xaPGVxk*A&%3c&I;2h3alWSeI!Z&L;plQpGhPQ^E?%#rnN9nXV`l$9nY5XI z>RF9BzuorLd$IR=W{HsXOuy{)l%7h2j)o_9{Y}&|hxMz#4Jx{7a`pxi)%^f)xYyZz zDF0v&|6(uF`7dVhgumDUdhi#GZy^|z$yWy)qdf2qh~XnQavo&$MzRgVq3QmGU)<3T zX(pUD5eHx*JFmg3ySR}FRO6e9k)X@6YCr2+GsmL%!BV@dA@t))#A-| zRZFqBAVBZre$W=eeg(Y0#K6Z9nHU0~EhI6EAls34EwehtO-i+y2-r#^`wLPV`&+$& zO}qFEaH_3HF}jzNJEw>_cMY2h%WcdIPTNQ{hd`57UFsLXQb4lIBQUyS`I~jpb`cIKzeIl8L`v`UNI-b_O>P zvlNPcd$EI%!!)f?v#FoZ9w}q86bpB%)M~GE$QKssgmEh9|WDhd|mQcE-n@BfT{EC3{m5d^71t-`;5+3F3o5ruD8ssYTO!L zQSkbi$;q?OEZ!P)IE!63n_ZlEi`_-jhz8PiQlK6|MC^Y?+GsbC4nMtiqIhkvWSH#T zD*6ac@ow(YXAdQuKLC~A+e~gHTz5mt>+e0Ri+=850Sw$r0*fhu^&_o+;Eq9sMzkbl zwvSs4-$$elw}K6PDU}XOQvck?3dVLnVdw~adv?szeX_00{mdvA_ETqDfpX2oqUnfN zE78aYJm7US7h?7S7U(+%SfE`GvfH!pAR%!ChPFMgOt~UTnQyJg@`n3!rgJ+!hg9;G zQdDxSXUATV5(?a|6*au`Ew$(p;#^_rzIx0w^roo^~F0!CN}gym4P&2R{A7h-n|a@apB=bNnUwWR~xeZMGM zWugf8FaS#fPsi09ugw2PRYPcVz*~4`mv3e4O-+d}*|Zr91Lv0W--XgX?PDr=gb)R3 z^@cHiBC3t1xroSyzK&If&$)D<2C$s>JO>Ub{s$Kkx#lEXT6CPm5hvu(rRn9Q#!@iO zIZnQDPk2`BQ}vi+Zsl3c9CA)V;o0u?D@Wj_TN-Ih4%?K(9Ol!~945B!3I3OPf|<(n zBn>eHT6>jy%Lcdb!)Dr(tnQAVBqkjJ0H;4Td#oF*xd=H$;VGi&dT;Yry&)VqMMH>& zXE*OXdM>qzGKAUI`P%>NWS#4N=_#k8s?aW-LaP=D1cYU;aqr+>359c!H%iaY(mA?_9fN0r!a*aT zpwaUzt-Iq2Q}x{r%587-%*h@^WvJZK=xS~p%w-{K%BK_RaV0C9CJ#obDTeoJI7pc7yc>vvftp% zsA`3y^d`M9S4GwXJ@K;~s;b&eWe{K_?mD=}$O2)N-ghsqt3SS_b#OMyWPCa90+5P(F z%eqDt$O_{7b>=k78|)WPxIxhYW?9cHeg0Xpi898X4Iy9)WV+ejqzr>O)J*>}QH0im zDOCVdn!>@7oSWn~et?z=gLm7B2SpH3+q=NmBHB|USbA+W+=GvNMC2{Xc;YHZiU;h3 zQL-CKlR-DZsVTh0^nGxP6{gQ^ru6FDG?C5V^?C){qx4>Hb%#?fz3&iJP#7CHro_wn zV7%3$^bV=c_0UY2y2);d_on9X6$AlQ3M+)(O3EYYt5rt+FlYt8<3+!D?^Ii&M@oVQYPY=u6#VWcazO0y{ zKMgdqdGtSD^&|lJ)auuz!D~y1EXW;=XZh)q`Dim3^WtK+r=HfOQD<^<9{RQUuDmIou%=#q>0J#M!8zM>M)U@J`~7C2&edr!$mE z`u2z>2?rLJ-tDSh*Zm(8L!g~Cc)IYH9BFMvhEJX-cQm1R<9M(g*kej2bbr^)B(F~(U3vNmC#UW_;k>uYQ_}62eVE|x(@E@_4Be#s1M2AJQE?hRm!bKI&$m_z*t#uzYNtYZ50A|AeIr##(h|wu4{*`!B z3Yn>C&ndZtu4QDk27M(v!Yfwd-g8!Nub;E7=>3AFcIyjL{|f*!88# zOhfk07dx+)GG{r>=nOb{hDMI zpQScx86@XW8DjQp;y~oG%iAx|8nW`NdMQWqO-tE%OfKa}<5?+>uUi>2{F*Yo@wuCi zF_wEPpf%cC5%`7!yW?+2QjxYX#RHbX;pvw^LsE%8EpwCyZmoa)i%T;X2Zw za$2OiCiXx(-NHZfTors~1RcMSqmMMaCKe`0<)qAfVY@tI2)8E51Iojw11zVR9+;q; zR5Q`!D-*8AR~qH-0JUg-`dvN7{O2n(()X`S)R1qqmXAz%>t(~qB2=Sx6PoX=JZ!&{ zr;pb9W=*f7qE(fd1YP`?Fc!0Z5X?!asae~;v&=dc z8mLW#%}*AuCO-*xyx6_Ie zsp-^`fm$uM9^VD1g#A~>=nWZ8Uc>$YwVHN)Y*DM_u`>_Ad6a+LWZj^QMMn*hKn&KX z>0H+?jhfDNRVc5flM$ii)pY*raCx;nPvr%z4SsoKj2z$~BOc&*BQ>3;$}ys$_6N|- z>1)=?j66)9sR%GuS5?dwdKUTfdW%A9wY#u93x4)7V;*FoF*R@&2HCt;+cLdDjx|x! zX3kg>wY)qP*Hj%}b`d^pAmA&pSDOhNQ#H9DuBJS^cvCeUo_l7>!)sSTO$WzTRv=;_ zD~(@L_+Adr*-#Bzvrod(j|tQ(nyH%^L2d=)*7{6Q0szTaV%inZ$DEntvpEmL--2gkE3kyrV`i3WI_DH*sixyT z(Axa!1xKZHHoOGK2%j)s6|`#F>pdR0S2j_gRnw;3CRQXABEgC&_S}jl1oM^~l3V^R zcB$2#qT5A?cWk)XRTYVWpTTe|?yoQw8MvKjTZuWOS0xgns_@Dd$DMN}ho_u@?+2n2 zj^xF1e5=thdc5je07ShCZ7Sp+T$#w92Q?2WRGg2iM{YuysIQgP@^}$GyY_resvh6m zy9}TE%b{Md9MoY^N4;LQRAGrYR)xl42T-3YP7jf2I_1K;%+RXLeUVkwawiJ%=;$j3 zKY#U=b{iI)F^o|Vwywt97Ez5Rrx>2?Dte@R=8!n&W+4pnCBI`^o!^Oqe~OE75Rg&L zGVX?ycN58#)EZ%7%>v_KOM@E5?>jN0FT_T-}e9e*2chdf89V)<@(%o#p#tF}lx2a4PRUQ;b2v8&Dy*ej{ z`plk(`rV$IL0$emGHJdPApw(OcL5jGB_`dUDX z1rq}3i(iVSiL?S+6L<Z-sQK|=>_$B%oK>4AEVVX|;063s_+%%*Pp|&SThh4%42MXp!zN*6 z9px=Yf&x(ZVMfDs!~kDJJ<$BM$TK9Sr9px%9+JVJ(x z8THi^F6Pu{J!{)QE!TwS0cgav$>8>2`UF5N#PJ5q3YP#%>Ltg9B<{it_9H!-`A+)4 z#~P|>b)cjnH|^d?O-B%u8u27PZ$y}3%6X8l1CT{ImD>zVky8kyKQf?RVbt`-+~t?X zL`rXXW`BCd19D*T9nnNhrw6l|&;;S`{eM^N9xjcX3qpm5z}ML3Qp;Fc#k~XX5feG^ z+(K-1IUDy=NU1=11i~oVP+!8qi6=A8iRp6J ziP#rYd0um#ulRMQDzcH)JteV)I%EYKAmhMGx*Sn45XVtbyQUk_*NW#B|z!>y8)~{ z;BvXbSQ}cZBNfTSFC-#mlUd?`ysD~5y1hRN(QceR`%e7Wq_Qgf6) zBGVcT+*yOPDWG8^TKv&I`Q+OoqD`fTmjxp=p1h~eX_5K50f{^hpbqR5onK!tA@zd zoI8Lu@f@CO_bVOHy}g=FkgRP_@1REcyIMXZR;Ku;q0L4I!-~O=$pBjE-4xUe^*V;wQuQK}?V+v$C_Jx`!Ok_m0&2KzR0gg;fo? z@DE?rQVRRe93>!d5<)`i_Lc(FS2&)i5EEm{0j}hy7L5!*G3GPW@SG87o4aKEH z#M%bBXU4*%n_8Z)L~h6{7uZ~BQX58xj=5E_t{Xc-Kf5tv0p0b`X_!;nL&n`@-PLj{ zPdjMR@5v}FN-pee?+()G8;u^C&@iwXG!>U0!o-tGu}l{BR{^Zw4>{JN>H z9v;!LE0XBLh+Wl{gkK-;Gfd@Sb(p) zygo$EFf#3gDe?j>9+_C@ua?I_F|V-D^lgG%gL9Y!3C#>&bv2Q0dfGxBX4WN%BKxq; zE9|3|N0M;+-iQq&iY0|SB7s*>c_5-#4q5f7K5iL@g;8IafXv8zqhA+dzv`=|Q-A*b z82ugnII1=1&)PJgznV^vo#@Zht}#F@k6TWFUM7_L&<>MD?ZmkOY&P!#fTWW5K$5-; z0Ijm#_#kDMBfv8#9!L>PFL;)?;>2*Ng+lOI*;t_eH_Ou%M6W^2H$w)oaXSS66guP9 zrac`S4*B0V-TqCiAR-3yn==P9?d}a`W_KH+mZvm3V($+(K(-gZF#D_b-^W56i3&iO z_%95O>Z0G~xfim> z|DyC^6mWF!AhkR@kFHFg8!e5cU!k;+8APfA4f&yv7s>`LqD6&Z4mN5AGgCwdGwA!}t)6V=_XRb-srXhM@reb4b;6JuEJbg0K+l6@niRWwx{( z#@rM)jA!ruFvg%A*ni1u>xQf4M>|kE8Rhn=ikWaQ34>ttz9VRga6*H}7)MIqSQ-8J z5#aNqs#f~V9>I3YVI=e0?2*hr#kzm(M)A`%qZpT;y1JmzqI*VN2_@! z;TV>`@G;!b#WCEFQyAAJhLIl^03Ma!t6rtLDXoZ1WF*|i^8EB3%LZu6Sn`U5b{sbu zHI8gPYLpQ!HxG#ugMdkMhQYT>Pyli8SUzqupgLx%y@l^+m=BaNg)XV%iMqJ*J*53E zxFemYYc3R)_MAXWgvs)NgWGtu4_P5D7Q|UQ1cGHuWeyJyfa}ds>tfqjPMo-Oy>5=B_Zk7! zj+?hm)rp}-6hx2;>Iu(Imvw?f-&F9Dog&$x_KalCT?zjbowF1`o0#o~EC7B;*de;1~%B~%d{GCK#033)9gBB5QECZaPgbr^DF>?~nZptLa z?>7uFJ-m|HUq|Y?wpw-iu0l!Y;mV>7A zyT_&zFCoL+d$U|2X-5$rP1KBm>Y{SHCg~{yMWKg8{Li;I;%fclE%``038d6z21#ig zH1MX}`KEdeB+OuKvTg=v1;5N-k_W`Fj>w7OG1$)Jr!!}gG%kd82QBxz_rKcqVt=qS zjS8^C{>9ydhFO3G-+s9*@JFz}mLiVd4V&7MmOgw-UuE32kZ1~V%V)XFG^ z-a3oZmfvO(^ee{o^MorOr*+6R*Ji@jG<+XRSIvxgx!+28e?^>{PWtVNiAEEil|lCJ9mRy=;=On~!mYWc|$Ohx^5ZQ&Awla=9?b_l*x;?yS9C(&n~ zIgNy6Kts0~a>JtKd^Ig+IL@c!#UcP`(%$q3hTTL;?L4(wnDnOVd7qaI_zfo5FL#{`()?lz%*p19eqG?Ho$7l*Fs)ES^CEbADg~M>5+ID56SR zNN-<;xBJwwhP^R(s3{{65Gm^osd@HvuzcOC<5lU}!}AIv&^ND=wjb0Z5wMKR^lKt_ zrYi$+x&$ZPbc%h*B66(I?df$i$Xh1J08h)bL}neUL_#MSfX?;oR9%i6x}$MtC$f67 zNn#3wC-DIDVGT=a-CD_NxkD7SyY=1&Yb4%T0>;%QF1PZ3F8l9aSUEsC9PnHt98x$a z@Jbqc%WzOG`fHCxS6KXx@Ecx*MP^X~Ab{j#-sntI}Uw407CVBrlXr(`(T6x6mT!dN=)nYNPho*Aq_{4>Zo$4xG~ z4sLEkPHTqFX^~`)g87?6C0)gdsTw$R9|E6m@>@^* zjQ&RB$#;9mJeSh`=JibaJ_S(Z)f=o+D<|}5}w62o3fsa5x!G+ z9zGHmNbg|zG9v1v9`13wU;wRC@+)i6Im3prOl!NJ4*mn8kVM%*o+xr&^x$Tzi9L7F z*pO?lSFZtI7tqnO>rU1q0XrGb?K@dkf9U@CWfJb#hDWE1qxI;Mc@Zr7aHvPLu#B%$ z93nM|Lcdm7?9F%2;yzYoF(uzXox*_VG%j(U-B4I<1BdBLa()Go0xO})Go*5bD(|&A zDr>~KB)AF^>lG@O?$Tqg#5xy4v6WV0SrQzs$IwjyTD_YX3lm$nyWRL(56Kx9;A{?R zTLrS)9!78N9 z>EcJ={*N>yEaM)p9w*NNdgsv62s#hZoqO0)HKM*Ths{e)4vE$wfYR=--CPF3O5^vx z1OMv2@Dq80RpiAJJcvdoc@VKD`RN__r_4OM*BR@Rg{v{dXb$_;4Ta0Uxpe<+4<>NR zDQ@fKDPo3c@T^Ww;xWm*3r>?x{QwC1r3AwfTcpn2(@dS$r)i4tQ`@($#W+hF0wd6f zxHGKaSD#`0KA#~Du?Bd*Z#Cf?(R*R9iSIY?0#5XYTh7W}VFZYq?t{{r7+#OYO->ToW3>$pey%N4g+InsbU zmc8+LBzxE46{l@^ZhB}~zXknXg)k6y`2>m7$*Uh&N#e3EpKw7b`0MQRb<*A`xCDLy z<#C2_u|LP^HsTyh*g5#8C_cQtZ%Sn93@I5QKS44s@{6<1v(Vqu{d2p(Vz}l4TRiLgSEChV)7|p0Mn`OfEJ;`duOIFa(}$ zef%6Q6@p6=71Y9)0w?)UBUnaMIz32tgr^3;xF~ZFjc~n z7A%K(-6HP_qu|U_?*s5EOdpYPOD%6a>W{BvZidg!;L7nWT42X~+LHx)vXOT1ZS-5< zSq9wZAT|0n^U3YodLj0(`F(xFt`A`2Q&gG?BJK{a&#t;dN-PLkeIA$APNJvPXetV? zyW}8YHu(EMTMHVXMq?pX-({Pab(aQ+uIl0%74C^Qub`jIN1(Qc-s25f5%;K{LlBdi zXdA$yKiut@R>U&VxQIj;QwtOJeE2M^>@=;!w@Gjkrl5$J5?SkF>7B7Cn=q1>un)@V zJ`>vKJ}b;M_sKp@0{9!2P0Ay@=Q0?RXje>n2Az?T)UGgGTzrhY15F8dCIxhBF)di2 zlNDj;I8AowSHf#35hWx-p#ZSaGH07ixR+JZn2YKU)OHGUqIfN=y`&o%bnK$o1G3w0 zP_GDL@&lf$(gz%L_&?;RAnPIZfxfZh!)p!ElD86ZAE2F~kC^&VkJzO+|A<>_@|e)a zH=jh{KVjT1KVjUOJf+#iw3Jh)X;twoqU*9kjio4fO78Y^ zL&zyz6%XZ%D9Aeg!|dbr53MGKKm(`^GZm0F$o~_cee^&cJo><=}6S=)!K01Xy+`%D*D~>uS72juG6+ zsI!VO&zUB7b^qL7u;Y~ag2W;TY|@?!gAJwdz_{c>1FpVRS$MFmDept5HO5OUK$0Qxa1_c10e+KYB?$xO|I>Trr3RK+bo*Wv!I|mWGZ-D`7>`rgGI? znW+m@6@BD(0+cWj*$Pxzvq9&?@5L*M!fk?^fbvA3JH6e=2bDqRER>t zEg#quF#ngCe%!w_gfReRpHb_hB1gcrT4DB)7D{n*j9)YJk2pFn5m^LTjmVEQL^RO# zqdT;h67m{{Sp1RpVjx1FTabPz5Ij_{^8G{@pcV2Se`LAzt4coc z#2S32%qDVWPRzBTdP-u)XBNa0pULUkhrPa<4;Or)DNt0&_swU_MfexCl`&tKEAD=w zIY1>CpHM$m4g+7Z9UlQl*yWiDeIpp#=nLGNs@ru0WHy&1x&M{+gkW2q1G*JS2DPZ5 z(OO4L375Bp@%{-c0}4XnUT9o9Q|3J58{3I<-)M;pb=%qCVMioZWqn}3{P^#rN-)m7 z5bV}T=3ZF7t=DEWz?1Tpuhg1fYxbqziNwhK!=LV{rf3!s_d_jj!Nf_7s3PVIS9=ht zUlUdKgFSV#pUgUuKiMNa|C4q^EOXV!eHbW1^Pfz-q~HWRqoj( z?m|xf9nhS!+QL5bPV_dGUj{UfQ*NQZ^BQLXQpjM?O=Jn&D8-?w<;`fRIQQsPazlojMn@upMiFksa|BE{xf?P>P`54 z@7&tPl{GZ542?!^AV4m^`t(wiG6+TcyH|ye*9|SNp(7q+%WLH3nu!1z)2QMFDGz0T z;61fQ8o3V&4fE}=J`<&*l2QzotF#TQ!=V?Z5Hi+?`a|`wr%Fv{#e_qD<P+LmkJuWB?t-m?E9-z>_l0Kq6(TSN)U^@|KijpVNer%Mr}24NIc9m zavKRgI(pw>ARAw0inYS!!&36bhpb{yb3SOHSzcD98^ zo?gJ@W5{`bI6r~PGOI5tQVWgTPJ=iv_ib#Q6flaJ<)wsg0-_b?VPtaL+4>3{{FJNUNj;UdR*OQPI?W{C%o2P)9=Ewi2 zs>j5jwJgNG?r`VHM&@LTiW=Hb8&y#=K@m(;iQf$mTS#I%RMOOuD0Zo&8Lt4Kt@Uqf_?Rt}>P1jJ^L>LcI)R3a<~ImEj{5~0i`dFMNePuTw1?|;WoE;kRW$OV^*PYS zhn~sQH>&ov*`2)%EQDoMe&4RDhPKYks!Gh>65eWFOH9$ZE@tBRd{|CK4T>{~W#bLi z;C3_Ra=lOBufzc(%3-Be)6lBivueaX3jn^yxQBfe)u_;TT&28P#wezWIPR*hq5X8` z)*6|lLwQ?!ajVeUX<7@gtk(bW06P`rn#;)2M$=e!>tw@BkYuBg2Lqg-jURa_10`2M zykabzY>8tHP0E$K|L>f3Qhi)<%B`*q1OF7!!E(i*)joQz#7kQZtw@^KY2>D}IB5K8 z+{=!V@~DW zF3Fw;@Yt#?&L!Y+^ z(fvDKOCwJd;yTREgF7lpTw%=hsD7o$Mn|L)zCS%FLgC?K~?zI<9Bz|BV6JEmj}(xtdOhEUiCF}JR_(+>12$G zBNlvvjq!Ng|FsUlq5;XmJpeH3KEgsSyJa-c$Zx)&*>;#20sb+bae!+0B6~v?ff@~| zdlMMxnEYLR@!Fr}V$9h58vohmbMILm7!=&WpVd&K7M~p8JWLyCSm6xkMjCmrEgNcb zbFK`)>^wngJLX!5!bUXr)nRHwo;@*e-Doax20x zX!T;w2rs#*S?OPSsY(;lyVul^yqtekxk0m;C~gY+enJzH9+cd~mk;3n7QAssd6w5i zLkC0eHPOfeT+ab213yEhT-K#PY5Tz8pw3XQ3^B!#IqtP1PiMEL#Cw>N7;#AbM)$TP zJh~tL?!C3BdzuMPCuYeYCz`OkfcK81o_TU$006frIkB=cb0))&tuGt26Lu(W=Jy{V+(lc;Odenrmo3{nzH2sY-V! zWOF7tOcH)w0sl*r&Q=h|-v+@UffoGw%NCm1^7V+88d}{fYN?UO3vk25rD3;r%bc5E zYmJR?@B$XJ_kauSf<0i>772utgr!&S>;yD>kfUm*shs8tfMtW=XI5j_7c-Iog>7q1 zxa=^owI){nvuMNf8V3Iq%uyxYPrbZH%0yNRP@L@|&(fKNbJQ4?MvD*a5eDzot|G-# z(?CSb-CSNQY^#wM!C`XZZ9?1Wy8NVrP?{=rgpEblsTC}j1x;Ixr(R%*q=Uv<6#pA! zB!btfDeO|UrTsi9=lWlzmyNv&>Pni&e{H~{_r=5oA_ zI~!`3Q6E^^Ej{Nhv%hhzVCHU`bT$ViF6W_@3FBb6tr~p6C1deO~@x_U_D_Idj^aIa8KB<+elu zv}&bIV(*T$(vDPcz5vy4c>l7F=^e z@C!U!LnfsQO}}4sb2km{GtD5uFMI3B)7D%@sVUE@nFZg_wiW>9EjoEC+oFqG*cO=)(++LSp?2Ddtg{UwQ5&~KB29hU zYbUW>b9-%)($fTJq3FzCzDy`5N1;%rMsc^7_R>7J+>f3NEj-)X;DD-yb6v58?5|ZbsQNWu%qxns$Q(cS8+b)eT)hO*BgX_-K`_8a(+45asvMI+Mhne2ni8Ud4y@ zwc&FN^gB;V-tuy8I+EKHrT0ls6w1h6TDF+-0subPTl;UeWCfMjl2twMgNn!ilL}U3 zeT}V@P@4CALT|JW*}V~HSPY*GFVw?{?9~p=%yk8z?j$il(2)-@T8Z&V7mL*g$8zVt zI$$zw&N7I<(RrVOenMXuU$;N+p@k1%v36;?b6rY2bK+y;v@9gl%o8?-JiPgs9P2{| zgQqFWJ(s{89L% z#}U{+&=6}69;oFzArB1H@|ze;gYaGNLHI6X5O+6ekILVkIhAcDQy>mK3OD-Gh!e$! zrpBvnCNUot^7*0TP4S$c-Jn3o*7YE&R+Oe3hs{qkOh^IHboylXZhRlrU@h*W8q7WY zFes3?rtg7IG;`~lz&`1TW|pQ)oY$XK6&aTBPqIEAnEFnIh8LhA)#qrCf+09XX+IR{ zk#2o@HB=j^L~$sE_nm`pMP-0zqL5?wFR%w*$cHS7R@s%+`G*`7yc!&Z z?k&Xb%}vC{a}%+l&=ENAnl}R9-5Y_%rrt=bF=wQyxLrD!^A)=h~2qdt)fhfAK2X2b|h2AX{$2m+sA3y9XVUU(5{Q_)|tFY1;5&RJVr;_jOU@4t5D!= z510OA^>Jt_b%M4$x%2A-W7-5hm!zA99-Ww_oP*=}g}t(2ugL_owSy<1tvxpZ9gvWT z7`sTFh_di(A`W5gCt-~Y>y!OtbYq53#<~}+PeD`Aw9cD?uFcaa+!E{q6c7AX5J}?; zJ|ursp$9p4{(*;V2VJ8qr)jl0WGw3<ZBP4Gw*5II^<%CR!5?e zwfsQ*@MOg6T(Y%yDTu@T6zs{%6wdEbmEclLoe4B18NM;9VDs|q125?TOhYL)WYaWs zbLHtso1xROf9Iz2X;BlvYDnaRs^p#-dsX?`0~dKU?-fnAw{p!R_9t1sKRNdehN*ME z!5CiH48(Qi3_fdl379;N%1@xfj)I{dxp?`3Nm|Z@pY;9~>m2+R@$#IBPZMVHu+4Lb zai+Rki2bV4z9fC7){W#(E;P#Db1*c$(kt^E9dLa}Y)WAON%&67POR?-6aq%yYt1^R z)V)0>+f5$HJ4e$>J7qWi2hxk#@`bG7V4O4p&C&c}|Edk?L&nN}!E6%nDpdD;eiw4J97VNWaP zX`8U8D)Zr{eCPQX1B0K0N5Rv}?W?a=wz>s@#6#-cpr*^zN&bso&2c1imI5hbf6zLyLgRkW)>WDw z1BINf=ba-l-$T>E1e%UKcVCjaVsD@SfPkwk*4AaU;}>(pYswJZ9C6_R8LbFxI$Z7sr#cXM5Ah5h5J<&10&|Fz_6Wp1q$c&6-YMwm8cZ0 zS88i9K6*f`d%)p)k)@{oh~ZKXJGUggj#6zLDvr-o)!nQ>-qb;gD5W^Jef&=!>Z z&7zQYOk6&iad7ia*H%*slxqeb9yoP7m5i7N2&S&qYULL3u->0IC~;>w-s;SB?Dw&B zMEPSnm*0-yv6$Qa`P|xqj`UoOMrp)q&Vq1PAnwdEqta5Ll@>p0?cBc}89z#ChN4L6 zLDLqsisz8fHCivy=0~mVr!qxlSQ(m{r#<~!A#zSS=p&S4$JmEK3vY6(J6NmhNw1N& zOeFnBtqmi}#vhS9cYf5iVDAFgpt%~lhIi;O5c_b~W!{Ws#cN=B{OlU+(493X)c$L= z)fEcrfbosLYWp+MtOvPCUaMuBe%|N7#A$B7VC!pJa$_yZ)HAFc3-P_vZy)EA(0Smc zHCm_T_i32E`l{{WhqDzqp0bV;@q3v4j&+u9Q1$U6K5@77WNOSUlca&sL6N9}b=npR zPTxVv=3o1*BAQrw?fQD;+KTl!)qA`iJ5qTAl3@4-u12?kmP0NysI*8k-jQT(&;~MM zeb~S)dK#$UCYzKYq_GI#JvY;}tbO+-vS8nRXE~!h!-l3^UJ3~m+W?k-ZX=E_w>NT3 zCjcntn1m?GHdo@i88)UxZ$e`-WD_E}brVOe4e0WLYE{RRSCraOo3uLj=0hgLkD>yb zz%2t!yZ-JnNzo#}&c&_cXeQESxUA9i`k;ZeKS3dK|64j~5Qjka{iJQGbUJObwy{Fe zG7zEv`1iOLOe_FVlWp6fLxK_$vkaX2Q#Ye>9@&g4S-6=GCA)mS`fALI(k&Fpr4;js ziW`~Ke8ozVr}(YfYK&3l zt=Rsptz4?FfSS&FvnrR__rqI3s_Se+I=9}&N5zZKm&~%RV;BZXsiBAOo1|}$E(f=9 zsc!}nT4VG*#RqUDx3@!Fz+*d(=MA=VL1_+QW#@txi42}nYRh(%fg{^FZbq=Ye?0av zQp?L>`DXAD{yS(nDrId)#c(J9dSviD4!K}R>u($8&IW%aZ&?N|VP<5Y)qa%09iG!b z#^~~}VSOQiW-etwAY{P~_*XO&bZ8p(Fn))&F{9$P9jG?XcJMLcTPW4P`pPBD*qzIO z=xn>6u|Kgt^I`5GXkWDB%@ItgkNnJ)`Vdqe=yb)2wLcZ=d9_XGJ0z|Tlg&X;i*lK! zdB>J*AtQFeliIdtSJHzzY}$J%T7KJ4+rA8-0ZCX1eKWPfJe3v7^Kvxv`ZV# zIy8J2j?J5Qp&&iq#aW*WZdQMnOV3Hj3Zzb(-Dvh=cWaw77@Kx;#US~+wJq7Z`g^nu z+0&#wh~JStT<~W?sLScZ@gPMReGh}l_Ooc6-KSNvQP895tny`dtOfs={<)GAi`LPu zZA8=Nk)4_cp`)E>(Kb=kkbeE9s@<+kqB%gF$-UHQ%*b_@=kO^VP0L)#IZW*LatpH& zV2t>-OT9%|dEn_;z`!(`mFp+Fa=)LZ%MQvl7wwqrNc;`~epC0tzr=l7tw+cHNu!4< zrlk}IPt)&P&r4Pev)w*)FyL(khqP~CrVrM3pSGfc>SB1?Y}Hq5ncsWifEqM8xKGP2 z5VwI+zf>C%O)?L{u&1;=x$+}PUJ3&<)B%1P?QNlMc}1F!U6bj;3?yx6a;tiWy!IyK6n8yH3! zH2`Yq$m|2~bYOO_UOwlI4s2BEC7kacc7 zP{_se+c2e%J*;(cFSm+Of~EroUA>5;E~`i{m2e%|d|0cO>-@^ZoTi6<+w_KL+(2w^ z9OlY*$J+Nqj%g#5D5eFxrj_w52^u$Jt&!@47o=dOh&>03}srSyW6JOt+h6TtDOV0Nl`03{c=723M0D~-a5s@bd$h7e3Vl*lUHwGQ)=w7JlMhLUTBmafWcInOFhk-E35z| zE#D3yud<-IRFA@P(kKYjD1}=8ilMcie#KxGT;9Q!YI;Evi}MX%k$Xm=7CGu!D3QZw zxW)yR|LQA$mkt+c2+fgv%mKP71r~S}I@k>bS)|};dahw5qNxm#&e(k5SK?XRUz2*4 zhc-3ff!wLks6M%O3($iCI?}^6*C+*ZLrfZ+<2y2pU;(DK8hn%qOstzAl1au~1Ia(f zd3Ci4ELMGGD$T@3J`2NehEJi5RE&do#Ccpk+j}0Dzk)CD?j8in6)wqWvuMO#N3uLi zTb)Gv6?#jPK>!q587|_=&6tb05P0XJcC?}|{b9I`?C;ujQD`i$oamA3EWhD|rfH=; z)n&Rxu?6uxm?x38{<-#24w`7B=`e3uA>*mpK7%lmTPm za{@LRQDwPvnJWwR#1=H&*X)yIdo&w8ERngEU0`xT+ofs9z;W(enSDv}Zx}RK_!|$Q z`-A#iTVEQ>R8jg{t_PfcUHNV~S$GT@rMxgwi+LS1RO!#;D;UkbbVb{W85hs17-LK6v59Lvjt08Fe5#n`7k!<~-+{;z105Kk<=38VtvTMZpfoP1o zvD$}iB&vTy8%Q$U9{J0yxyaD8UhIZPbc+n!2>Az2rC0ue%Q&z8(6U?kW5B#;JHUQj z6MP>H3}S#nwzS%Xw(?UBji%#{cD&0NtWec+T&`Y9NAeWh#}%cv5BQo-Iq1%vO%4?l zEjsc5Cw@hkzaHw2TlM-!#`DLd z&OAZQ^L@&VK@!kXU%8fwm8-R=|6)!&Jk}?GfW$(ULL{+{v$#?>4XxBPd zAPLWKX=~y$gq-z^Z@j$;ecI*u_5>waZIaxmP#`bD3MGloNEGmMo@1SR@T6GJwoqqr zwPmBM4QYwF3+Vf8q|f{pyyW))Wt`uYDs-4{Ko0$yXOaeSNg)ki@`8-=GA1(g=SGXSJ{wMcQ?n9nIzY0!26#?>4M^C0?<_UJc z^Ex!OxiyK55SVkwXNy69;kw|$zi?sa`Cn)N+W(D4Ve8*mPJYeL%De!GV}IHI*xI6w z9C@uZuz};^Yh0TPe#13~a{R9vZ#%GF$$#ewB=ZgKEO`8elV&@VI<{onK%{TQ#j%0} z-@8GnSoW3|tOG<^xGc~cZ4zJ6iG0VUkjn9t;*$@VqP{~$6}?lbP33BP>M%x`+JgJI z392Y!w7mdT##o33GOm#KyAvHms?WZ_lxIS_LcK(sR{F9;HXCKzA4^Z@n(mC?&AP#OeTQTHRe;nN)>q1w9FFlq-DpfsW9^T{erdUOJMX(gF*% zwt!mGZ$1sBveld{5Cyn-qbpe5#vCz{U7EwEANV-`{pJ|DUhPPFi9$6pwH7ET{j7|_ z!lgDGb@JW@vFonIUhLOmuD8JZN~T($?g;`r{zbp8S2OWKEo&=mZ6pj{XU*HaNkzZ? zO>#fcj~FBbKU@;{DU7p{z)zP|)?t(LbV66fy0r#joZ(ai-_v*k2O`sZf-$6muk@s$ zUf|n;=IezHO7UD6TaFJ)ov6f4iuD3poRNLL`s&u9&cIgc)rP>~Tw<&Y!G^!NSkrX* z@djDU`#3T_*CZd|jnMSgg-7;x7LqqVa=1|Fw}(m^C;frsSA%h*tkEU;5cQBd@SG|HW%$U=li)1h%m zNs33@jJH73$|0s{4DXnJfVU6&4Ik|VzDqLNL5O8Kb;tpQ#NAO~N8_Twx!O@wtqwIj zwaMMyFm_Bmm8X*ya?+4Eu^R8Ur?*rug!xx>bc=4TOliUQp(<;+VU`JmzgEbqQ{m=)S zEKed$xwcYGjLIgv3v8dxKnS@Tha~*Mf&|G!AxMzOR}^UK{PXboO5`%lLkJ=X9)hIk z(nw%d;p~KSi{i#O63Ajp`Z>@~rv($gA@(ysNb)^|Fs1MuApewor|T$jwn$IGmoadJ zrx47Z)_Mw|?CGZUozY9EEH^8|q>rW-A1C)E_dEq}mpVbi`zH)<#zzyHCjHTx<=NI& z@}hYjS?47L$TxpyP-wd1x4_Qirk4=J+B10LQ$ugWCJ~+#ymvt-KZe~7V69eDAkTy@ zQhlIl&%k3pD0!sFTi{F8Iv)hnz(??vMffr)El$%jUH0n85Ff!)0p1sufX06CTu#3C zK@?6{pWgTgd>?svUx9Cbi18Kpr7p941s<>2>x->D^%eNqYZ*U*FT-^66DqN8e(NXj z?H4Ef5XuWbf$s=&_ZRpITMK`DH^LvKbgRF>{iPTFLOI!{4kG|f+w^_anUpPq%IVos=>JUs+LcQILNnGS*K*kP z*5$BEqsj?jD3E03tGE00D*Q$gTsvTZ7G<5pY>W&`z_pCK#P z3LfxnV;GL_{Qk~IZoxeUntn9yjUZv`FyF4C;H3n?>p|XpcVQq#W?K;dDuO4uTQOTp zVk-)Kx7@;t!a&xY_Z0=j@-Qx;}cEW4%z&QyyTszq=;Vxoq2!vavSU0-O5NLxe8ZW1IXvn z1GBD?4nJb&QvI@RA?cq!Y~uypP6zlon%!L+{vw)uwyVkn49fkK%uu2r-i14pvqMXL9R~Owl?w9ij%|1tLYXaEU z`yRMROSy!Qu-d5SW2{eGYoqMnw!U+&gQSnFgZx}jN2n%Gk7Tk$(}!c4_9t1^lKQ%c za)-J|i8*zVt%vFge1ET8PiVtrE2bWf_!;m{QPPGW54-;gsD?^fjri9Sd`Q%rcdk-n z&S}!Fz7V05&VbThZ@wwQ(sfwrOLDfi`&MoeXxfjA>x5-E#IU#TT-_V-SSU@WX#VPk zWok1x^WMJmazDX+2bwx}Z@&o3z=bRnv%7EKIgrc-0^d<`qk+&tK}}1SqFWOYi-)k{ zQ{KIEmcnrwKfWPa(Gv|h_eQsbt2V38_>)MDkS%o^2@Tz-0@r{5*RO}ase>?mK^w?+ zfJo*RywgjakUqN`32a@kBUqY0^OHuBLyZJC^1k4mi#!}wcPK2HKFN%qOX`LRf$}$H z*jt*q5cd$uRyT4kOt2$M!vq!#>kj7aviEBZ*%>CVL+DR|{If%@)+B#X7_NO744R(2 zH{&*`5{`pnk8q*B+yE#-Tc)Y)sDoJysgQawIr1C(z+TpIGey&N-%ox>qU!>EpBB9{ z%5j{RH1%EI3_g5B(X-fPyUX$1eWGcjv`)21Ok;r^2HgwP(d1PBnhcEqGw;^~+6hX| zR()3RXk#4eJ~T!HP`3#x_S7b*#D|&))n$(#81^)sKPY%rT2r(#^_$}8KBB1*BCiQx z1!=m};aV`+(G)HDJ!>7WW&+zI)*3Xk>B#1NNQahy zpyH88K~`Spl!a|C<#rz?J^R4Wm#Zs~r8%ig)QGV?n%PF}`E;}xj^oVe_AHwC^#&*l z+6!eFIrp?jcdfWRic0k;6!j5N$l8rj$oRWaC?M_~FgL1$z^<@438t)@nEDIJpad{? zK=NMffa;;^D6rj>oj`dHxm+4XE)9dCtxW~xr3k*tP8M|J4*pPBG%nhkew}FIpwOL; zg1yrDdaxBGugzck+3TNv%rnW^Raxh0`b*!#6-mrcsNvgLa9RGLl*W#PIOf^NeZfRh zn?uu6Ul(m69|uFBt(^r&GS9ZaUa}436gOJv z?jo>ri#^MM$M@6HA4%va!8xrfv@=XDaF+5Rq(Si@tGjTg=oYwBi|pZ(Tf88jT!eJx zcz9Qa4J0?*d>OUsb`$JYt+j(GT;gcKMmmGiezYr!PhnRSfhu1khev&lx!b-L*yhdv zFxi@cSsh766cFNxLxH2T6MYV^Zs>Up=!PJ+bwlkd6)mv+6{AZ5FBaTCKo(N@tk*El zUm6Cllw2THyP?t8^FmLf(Y#Xl9Rg=ah2;N%}F!0EfI3vF`~>yiwi3 zW>@VYxHHjh-2*G7_CQzTdJmzYA|Wyi&+QM(_exf;JhWz|#TKYv(EgLG6V-iS)>Gm1lFKLDTNxl?#b~2OxWQ&jJT2-=C9x zPAoG2P%Ij=0_(fVahTgH4i$ZQ9F7E8amWdS|ummtF* zzw-N)2~+Dud5+RjFkXrzOzMl2IM7$9Ysb9~Z%9{p7o`#Vj)Dt(H3H^uM&AO1^wfn{ ztJM!BZ%RKQSY8sx-qTe6;MIjRj)8j7U=vAZT8>f9;KZS6;R^rZ%nUv6FTmcEML8}~ zG59PBI!*hdY|rbDq|fXx@O^#G15loN4nS)BGyuyzAHap?E?iIWsNdu!WOY2SAabA( zz$9VJKm>ktAh!}}gK%_fI7ndoYWe^!yC>{DMy3oD$`Rl695`QR&e18WW79$S6+ABu z;%%J;id^h*pG2kk1`dUt7c;ye_ zcwL6dXKOWBU`1CZl`9mOqz?%6>!CtxMNucfo5H3YLsTVShJZaU<|Lr$fVyMhrYAb0 zw%=|HD}Wvux!X|N{8BtPL30h;!S8|I?QPu`egBALUj zlYrr3#4w6+8xfQq%R-jF(Q!j~KB=lZz&$E;2^Y|9ol*mWY zOt46W^MBk(N#IV>zlSiVX$1F3YJ!1(TD9eEa(DvdHLOw)DDUG+K+_YeIvyc$(;>@m zG8os3dvYpEEpY(2JwjlYk!^sP#L4ABi%EV@z{0&|fgMRWmE$LsMhfi04jK=B zI1g^QiKVE#s9I1#{zGQ6Ow)@A6(wQ3EN~Qx^q5fszpv)pC?17P1g~MF``IR>{c>n(-}t;BDHHY`!27d6b2HZ^mfk#UOxgDV~$Vi#Yh}95#xzHCh~A} zW8lHmf%&DF8OWT-N`xIcg*oAWZKs?-~Sx1EGB@pY5Xq5n9EN7Q!!ySrBF zSj-%j#L39GRg=-oYc*>(!jf7KLxS2Tq$8I%Q|y6#J31twCx>w!oa!2P4$qiKc7 zjYpBKlK{EYu`qmGnu;!G@l=$HPRSUh+mVcT8d8whJyN)o{{~&XZF;br+?ff`6gA3D z5!k(PY16pX?gYdp4a;vN3rA9V{E<^la_5GCteJ*_@^Kor6Fr@G!w=}2`|Gq9OeT9h z%L$Ttqr0p7216j-zCpA$ej~7hP89&HXV(^pOR;ys9&GSt@1O#w%PqN-%^?KAz^!R%E}J#iZ)8qLsB)k zy^Q+pz*rkH`%X?7NrT~rW8Y!3wzC9&@mBmSo!|xt4MiiAm!zOAN1td zV!@kikAcl`hnpApOI47>#j}yb-RI!aOvW69t(nW0Ow6EpKkh2OpJ`t2mIalh(m+Oq zW*g?>aF#z8xzu_d%8Gd&Hc&K=%f)hNyy~J{_*Tp)V0q7of&ghJrv)+3=Y>Xte%VOgQU|n-5epDi^8#e_iv{RdG)UzG(P$X5T*jUnz(i|fDxZ9o0mNPFdfjE} z{j5zvMR^M6KTT`i={AMRzYmG*oL5C^iI~k>h@x?CArINkhvK=j1KzTZ*bd1HkZyv@ zrch<-_b5ME-=kdkFA|!{i8WaXnx4A(;TF@5d5h41>|cZxjXwx%PfICir&aXgqhtyt z7$}mC%>4nEEi6CaOx|uW>iW>dC<*%(BdP4tkU+iCu!Zeu*r(D&U{~v%1m>)0)j?0~ zqA$7AA+M}V=b*GtG`(~w!*h1tIlpymGZoW=I`xy<`2vKEd zUU_*G9};Og<8kj&j8KtX3aUtPoV8@>GE~`T%TSA2E=NUOwHyWZujQ}`H>wNkGEGmw zZUhpv0zyxE?nTq|$hp-jar2cP`6bWyPUNO{m)CQaAsmK<2W2;#!2FL zW)#93W}LJ-r1Q3}1C836{;ol~q$9@j)3Jpk>F8LMT8+@^t;YULu|6HQJ_$c!jffx7 zJ)83*x?-n(OOtEMwuZmB>r=RGh;wp`Lk%QYyrE7zbXy|6xot;O8MYf+T* z)?x>1uS1t(`Z`pD%ylT5KI`#m=z4^FXg!wGZ$K#BH=sal-+(i%7aK4{7rc>&fy%&O zI(KlhKgp1dC<;q9^7V&Ef4GmwsdjaeyAcO#!zLcuO#~sH>9{DDwAqC9#%;pM8Q6R?!kxYu;U3wHn@s$+ za3gaWYJPZ`ltGfW3I4>qMPSEE)_`~XbEm-`%x^dG`72Fl^e9)GmUbb_hrp2Y z1Z~dk43vl}J5ZXY>_CY)w*zzCf5xeE+|NRULhS_bJSTb&9zwDnQY`lfPUP;-xGw(U zXN+hC?L@grus&t%#N2%AQ^+oSm$(aS?6AIjWqk_WjpasIpLSTEURj?)_weA&S3s2C zTHD^Y;>ixoo`V6hanf~fa_kR4KXZ@Z&1CJ>9+dbH3$~PKeaf&t{|CRm@gTc2K9pMv*e{}cCPjSTBkzV#{O0OlrIpE3?$-B;Fkp$D(i@)oKAgVuuoZ5eL163)FFYEjM?Etk!(K^^rc@n5E9}(DLtlt4@;I1GqE3aTXbHPJFJ__&YC`{9Rzr9^z z&4=jogaWOc#q(+EzWPA46|6J4G@(F{cX7p_>0+OlgVy>^#BL(w2k{slO`9!@icsaZ zr})OGuH*gM842Tdptc5?_c?XN%A`BMS%JaWvI0 zjtezqx=u#l)3jaZ>YOk^XCbOkZwkbRi_k+E`U?+I^aHaJzhU+VX8b0d27fQ-7nH6K zzu?&0_yjuMvrq8ZlopIy%GlanZ>l}_RK zH{lf8yAzxl`p~c3uO9*o z5U!;gnK94)6~>KN+Z;HoWXiFX^Jxn}ZJMrg7~75{UIApGDZVdg)fpT!uUntwvq+r| zXL%5>4GeM>2lh#4gft}Q_)9l&nx1_Yy&CUx$cwmh=-;e3hh)8X4vnJUc_eG%c|M~$ z2Qw-$>)}ecK8gE_X%~<)Z7$$gx#9wX$i9F$dR@e)UKcTU#YJ?v?p)*nP8p_;J$7Ab zo^~JlUukxMmt2Z#2Tkw((x@UyehFDqGGXXUm{$Pbkh;Vt=VbRKoKu)GaVU??#6DzX zB8T5+VzXgcd|l-nIPQyYh88lyDZqUrb3CLlu07;j77nd$mr;J>E_0hW1xj^jIpb%N z@*Ge*dKp)C^DpzT%W5dFY1-83OtWKu<3=+Ucr&1*X^E;!%OhcqJ&w0Z(@S5C{h5i( z#Y_<01y?|BGA}-qrHL@rR20|y3UXl373|`!D>$jLzsje5d9@%K*3{IHIzTQY`6^#p zn++mUeMKtVe{l;YkC}TOx=VJTF$(0ut6V|f0_{nUKSz*+7f?6$8mAgPI_@{GNdyU} zj>LysU>p2WfhBhiK6H?1Oj?2R^cwmn4X>l%rCdi}`1*Cs4ZMLHhv(ctSvh}$YtKoL zi?RXFVOuK|4D)qps(m*63;LnJPx=F-QfX?~O{}=>CU+3K0GX;+i2aR(X0!g;kf2*a zdBv!%hJkb5-S1j4o2cMF1uPJACzjm8=>MHt7|0LI#+m2jY!vp3*(hN?IXJ87mxJ20 zDF>~|s~m(7%?a@j)y;Kn(W>4D#<(r zy?=2BA}-sPfZMnkmHTckif7f^oH_PD|Fu;|uOgw8->J9Ju|9U28;izeAYObhD4F#h zfa*wPfUHpF7)*|5En2*l35$Z+$}tbi$_u&B(X`ql_h!u6vHVdFO;QfVvNG@RDX|_H z*Ju8Z-!e!F>fP@O>`42!fWA{`m+8blk9EtP$ZxY9l(mmjIKEuC%SC|hV5*REB-+{` zi8Q(=lvD710}`-)c))pPo!%D>;EuE8?g;h!>7G?WLbJ4L5 z`(0=xpXQ??O<&$Ru$XC}9pzB3ciCRjEKTIe#EzQUITw-shsY{R0Gfl(~_6%E;T@jAMzO0?!aSIMdK5E*YgP%8hQ;( z#*D^KXp63-^4y1IrSd2fubx0uV>b75XgVsqFq2eyietyrr#Rib`xL{04W41JFzp#e zBr>1zXi*~wL|1v;=T|Pz&%jiNyn>KX@97VnrB|HrWc+g;U406DX*}Me88uCy)z1V6 za(82am-G{s^n8K#eBcY*rhoPYHy)><_Mp0B;ov8=h~Y1B%02ES65-dE7?}6Z$9E(0 z(H`x~=V-V!`RXgr+K<6?9dB?TU5&Sy8uI7Ez z>bR2aZ(xZcwR4WA)RudX0+~OCmcf z698C_Odh?N*#ZUo+#>~WKu(8%ChJ7Li}<`w^r1ke z>P5DV;x8BgNxzGo*r1~nII9}-(A>0%c{XIl=>kde#i95YBT_~%iPhy>e6*tJ z!#7t4kq8sY&Q!=(e4+EekIuzEt*4siO5$H;SCGsI&c;^cXPUxoQT)c)ihS4lVOwlW zV$B`qwYQBobyPa`jKN6Zzqf&30n2yoHyf>8-gz4@b9oL;YyCC; zJew+n$s&u>o`?B&Qrv~{*2y{S>^fIqAXCo40+ZYqv64WAdOBg5?x*G=}Qn$PV;cB>}ce(2e2{V)>bAo3kt-5s#C z6%Hal({t59b)?0KYv5q2(x-Ep)br-Z9Lk_!(u4MK_*d&qR zD6-RNH6U-#@edcs2v4Z;C?ea=Z2NnF#z^uVMTu$jdq-@jmXpZ#u<1dfMoz5@D-J#o zSy=2Ox+`q<1U4s`8?Pt#Tmjf6C()BZc;SSdtmZ7T!+(zf!pyBTKC*UiI*T%qH$JfY zbcMh{D9LJ3nA@Vazl{`g$;3M7>skzltays;VLjfVfKH&V~R2WcDO zgA)9W4;t1BK8UuhFFv)mKBfAi@qFnk^3yxL{Y3UrfeC&v?S1j%KC-fn=t)w`i0}=d zY?wxG;VYuV$6p-9NSEd>@^ep`GU6ciZde&{Fnh`_BgU|&MrFmG>}ge5ET<0;`AMk} z0pd7iLUg7wd~LAbz1FC;@PR5{u`Eekn+@0M`inY}Z2QnxO5!n15>rm>&!GNVP8`9W z8kQINk>jQ1#d!8ks30b?rwJ9r!HRU12aDIw`++-YT$%L|Zn7yW8kDJJQ&2-ijvH4L zyR&-ciU_r+qBwxP>mMj4v8S9sJ^-b+fZZ_-EGNj_rT{hkK|xtLm`_M(8c@-zkP$WC zM|2?R4+?yx$J_vt+m%GV3!-jiksX7jcL}cRnK71}uMOaoIvEcO%1UFo2_t`27NZ#o z?W>6F&^p-xPf8aPpp^Zbo}I{CAE@p72)2@ka%4!)swiV?s*3#>2tyFc#NZ%w5sn0j z{HUEvFuD>GgT;2N#`$2BUSkN3t35(+7~C2nvUBZ^z)l-|8?_-REdi0t5Ya$vpB1>s zb-6Q7(_7Ojo+ZQUuzZ0GdkRKA_E~|G>WNP^ zu@%E@a5ZZm;7K9KSdg2f0|D2FeFU`Q_X5_@kE19JsV;VRzXC%qZHuO{&MwDM4BL>5 znqaJt-pH;kz2;>|jT&MEYbvD%_hG7lNBu{e{i8@wGiV^cI#?d_^=v2US0243wQ8ck znrkA#UerXgx2q+_DTvkuI7`ZfY-YjY`zoT$g(%+3^sBKHL}1TvGu~m*8%amvy=KGXYxnc^e!{ zF4m{ydkqnRuTc=Y)WZQ{c|DPz*m_Y9yV$Tk+P0MXXns%C$Hv75*o9sV5Xp57P(GhE zKy)iL#CIbaitKdZGSJl4!;dT>hpFVG-h^pZOhJL3+JzW8qIo_~&#%zZI zdq)j1P|oK)r0M$7^QIE7#ve~eQaxlvaK~Y z)^*E*u{QnPm&y8_2+@N)znra;_i-ah(}?gf4ou!-g+do80_A;i8*J=V8X;a`Z7;F|WECOG z>2B95hRkm-@-rld+oNMq)E<>IJPQ4xNm1C+i6~S(c^>L3SVn_6=!a5?6#&tyVaM1ehbw_j!gFA`rQi46ODdj`P0TUV12`RCu6Am^- zop4^*qBA!R(}BEp!Sha#(;`_aLo9b`3)J-6-q_g7WztA zI3y46f+%k2f_!|^MXV)j;Q}q%Et(#wyu^`o=s=rzf8R~&jFXc1u1K*RU6G23;WX|sJTe7B_==VJR~rM`Oi{aF(k@ijExJMET^$k8G{ zQ|cCt?qU0AbPs1o^Jz^@kTdVq-@ajpPksrA|Ae76o9>+8Gk}2AeV3oL_ReIU(nZ#Y z%DQGT?D(3r?yW(@gQ0 z>gV;D;&E3iu05lYM)qu)Fnm;8{P6xG$-Nz-ljX#B;v(ax8kX3_qNDovq}5_|&8K{_ z_eXKC>L+A-Sz4|UE2zr=j7pZ(YsFyG=OqIyA9je63Oa$3u9k9##XY4ym9*SHDyC^n zpJ7chTRe8PtU50K;qlK5ck+CPsJHCM6=NO#nd?fnxk}EK*7;(1g)ihQpRn6 zsqz=$L57zlqK0G>`h{w=HD60=f9bl*r!J8Wt~y7{^huJPw&crgDbkQOpTDe5x?GUT zs@|nskkrC(Y@4n=+3u$EusB|nw)m+ED$QiSkSe*VUP5sf(%qnwOT05DE_K!zEWHIC zd|}*5ZSwEM2^1GC%MH4%22~wsw}I+snyb!N_4BZ+&Rg~KzN=0x%eHPhbr-(SR}1vj zT>29P%hz7I7iv|4I?k59LAsUdegICc#IL$e_o*WJC-A10pR4O`s!8)hGhMY$RVDCIW-;>(tnw03eBLODrE%&?XuB){`VaD}txeNE(dsMHk-2SLuZ5LDe>Rl|i&+0Zf|35(pzNhO~Sp~trhThS#-Kd{xSK=jU z?WI?9xde9Wg7u-Q8WcMMumy*hs8&&(M#T+}u_}nA$V=Z;Eq%1jlHikqKI?4_t)Y?% z{MDe(Nb~H7UY%PfSRbq^oEWUHqWW0^(>uZX5LK>Q$Y=fN7@}7*^}7&#JyqdzA$ql0 zkwQOfH$3#ST#c_GKvnnEX@j5TY^c72hw5cOTm5IMOnKb5t$u;Z5?YG-=cp(m zyOZKc`evWrS=vn2H&M$4{H|m<`n~?FN|P*$i2fJ#_yU0Xe1bt@?F?#M?1{mJ%-^Zk zSsd2uYpCmep`Zl{9#<=Q^bvjBe}-Lxet^rXvQ`ZnZZr~&p6>5Vq#yY*{m>@7W?=+~>|q(q-fXvgRH6UsTuR;}SDwIMG7 z0jhXd*4P<3t1R^%7eg;KjwPxn0s&xcEjwKe(^U2T|0gE_a{5|U_!?HItdym3upvv0 z@8>kN08Ou{nNG7UK=S$0CuUiGY-E7j%&qc5KyH1>56ujbs&^&m0Q^r|7_{M^-1x(Db@tAHd^Kr!%p?E(t4wzj*0^F z=HBOAoZ{fQ zsa}>O*bdu@7U;`b^$1#`<$pI0t?wC|k&n+kjh1S!4d1GpDgnm7vTYTMqpi_FJ#dyN zQ)1@y&z1v7qer$LM1BpX97Y4tV(>G5qc-yYXMmPQjg5o6R1_)!;h#9DXl$v|+xUlC zLll$ZH{DRy(rcLUGhHqLwgj(01-&g93C3*>{~42iCyxK$cCgbWMb=w9ryB!Rrry$S zm9ebKLVQ8^6y0*QTv%`HuAWGiK=})lC^;^X3kQsLC0;s_w)<>li~gVyzAyjDE|mcO z@0|l`{e$!Mj~jRXizt0bLB7y~PZ(JaT`?XJKm8^^H&@Gw9HZC2Xzss51l`#CFO^I5 zxr9i7zBrMhO15f4@y{3l9FNHR%$8W=0wiA0m9xytGy17zYEOYWieR~0V08IEVdzJ| z<1<>4i;Y$O#aLy#n$&J3@WP2yaWe&|sQV@UfDFUg>st0&%W*f8m)iY8uST( zf{FaV)KML*8Ior@s&-pqHX2m3Kuhdn(^;FKPtA4gAJ=zO&!%yG2lcP7*N;x>@AuCc z7Woq6%r8t&od2(Ys5fJ|VPo4>C46T4)y{CCQR_fkwH*9c#;XiJf#94AF?_C_B?5M! ziC@yr3M9Y0Y(p~tHmJSXFKD|3-d$^{qJ5IBdYmdDm?fOJlqB2QpQ@5$NwzBNEpL-- z&sYDHZ8^We)<#>xZaZ3@Z?WxFy5w5|Z$&aZ!&Z%b30z88GG$OK$goxUDi-@4wtIvB z0sG-yTb1OHDEHg$mdf{RKQp4w9@wfzHzGf@Rl9QwN7y@&n1{CNaqQ*yvWofS-;p)u z*{WyL>&4bw}pes^?85{LRb)88%)P$Z9VLgrc$qoR-}aKGB=l8Dw?TriA3(OD*R} z(u3>+)bvT2We+#T4v;?^Ug0Ht-!;hIL{ii2KF{$t`dR$?*%?Cr=VnV#(u#!&0A=j| z5h+#ef9iD5XTShu0w}}R5I{FnIceSOy+~1>T7IbhsYe*=sAu_|*v$+7)Tm|L4ZFcA zvsse#(95!4Qb2N7_;ZAsKyJHg`h$nL5-Fz|Vs78o8c zsK=Dgvq=dlDnX%twp`cpywJ{FZ2?OF1lm-x#2VxtD#a~HzY>l9CvyIGI@GoN%AsUI{fUVM}KWkZY+_gILXiif|>YQi+k_KNzVBBt)_oi9FqCuv{7_ z_f*@k5=j4Fs9*ujjQ$s{mgw!5j1CMH6&YR?=gRQmN~3HmF=A z@;{6iUo?Be7ky^uOHjE44?t2lffa2J&p9ZPoGBITN!te|ou%Us@*uU74&JV(<@S0x zTi6xBIzdL~?@Jz2^uMTQnuVMe07X+NDO>We*|I7h{mvBV8w7mzJUm~Y*JNrO<^_%jdB{1E- zsVcBw8NJ*7XY~Zxf0%=MF#fMn!{Z^h587KCKM~2YD%1YHYNk*AuV8t!%XrXew0wQb z{S@=sVSen)#qMrVJUd7^H#i6d+Dfv8`I+Csyh_;VY^ZB1; zlsLHu30b&bw9FXh@LD~B{j;=sh2fvdr|xh26o)lx78RvA+_yI;ek*F+Nk+<9caoXq zSpPuF>KzVcwB$m*KL zFP6J|94cwPltWhbb2E_|dmRcs&viE^|5jRKPd+^K(OJ6ebNEIN8{c1pgLlN$p2T-) zWk-%=)r2eGW1JmGc$~9D7W8u#$uoylVM{VjU=p# zhn^f*;8Nb4I=6zREQwtYOHkoG9Lt+0bt|WFGus&|X<%izqhqq(9CWUn2I$Du!{I+M z+=+y@@v=9+yc?v^65n2qb<7v;l+)N+GJ84tdz2c}-}2{J$DhPW=FzXyTL4LEWEqz z;h`gQ_Bz%w%gLb{J=yBuB$8kEI{G>I!5@4JtpCVS6$AQ@8`Xb!5=md->Q184T_yAF zT~(k{TV6Zr$*`Rk9Z4MHsAE(q0sps6j`n29UdKSPdy}IR86$mkAYJx3Rwi!Yjz+t< zK1m5fM~~{?B7SK9C~gG|s+S~X`A#o#cdVn zKbGJq$@KKBWu7Yd1LWk5&Ni0Bw~pRMbJY5(8p(30v{TvA<`BU}<6`j@oo?8fV`xuL!AS9MpUiX`lJN>j!LeT%rEN&UOV4ISN|G~Vf5 z^@#0(a+=Gf6rHhrJmlo6F*iI$K_;$mAt~)Tk=w0q*^={5ZtKmh50}%pmTuUvq51B9 zcp`N(&fAf&KR@cpp(9SKm6~(F*xBnWA?uvnH6%pmZfA))?ldEiwBHSaFm;HtABnBx z=0WV9IaQ<<(T&`$;2c0AXT1mNW;==6;7XPBeq_Wmr{<+t>TQgQ>pLWFV1K^>BNK)Z zO`x-vMk(N}{q%h%XBc{<+_PUuu~vyqx63`0XLrG14nXgVeD#e#{t{WBBb%_4~}H+L}x|R zwZ!F>Q$M4+GFe^O8O{{jI*+%*HhIS_kN|S{(iqdh8LfiGiPSboNdl5*M$o8fo^TbgXh+@4+x<6)N7tr>pN{B)rS*< z7PP1{Eh*?>O^e)SEUGMqsFhx~2ws>ns`B zS<|y7Tjaje-tBb()NymQ8=bup7(z*HKlY-^HbE}i&jb~?{=dK!v3ZH<+W&v^L=&%( zB`(N??A}3RS};ZqWsHCd%Y4u5>X1bUEb_GM!&g z)oobFAWz-6xsBh9^HS@@oT*wZZsxArfZUSJoHSH%0`J%RUJdldMYA9ugJXsphd}-2 z>Oi)!UC?1XlGKXQVNg0cO&U*qhU-Tm15VL@@u+<;KRbz`V=N6W;S?P+p&Krmgt^1CnD4+jRZKeB?HG=7oO$0-Yy znU6yoMoyeLZZZx1_DTq4ROnsl#*cc>;KuR>zq9en64tAir9EXOmju%F(LteZjRll6 zCg{VaFLq%}&{tj!es0q!y!a>vV3yzxQ~3kNV2YX!kG#UwV4ywAg6^j?6N7YY!n7b5 z3GO1_qAFXqET~9NFVA(;1__fpaq{F@GqXld8s|a%)(6dP_A3Oh>+^Tu+^4+xH zxXtjXf>`i-L9QAasW%F4vf8O4I8|;Ga^{Z&D*QDdnhIvY>(qV-Wzc#r*w60=#kRQ> zfaSxWftp(Z%-$GuOhc9#Mkl(q^_n|X9`Sdhhc*Wd4s|$g(AHy&@_V>2avucg>28K) zOTjznB|J(OveoLe4L(-F^$r>n*!oH^Sw6;6b3|Sg-XZu>*U4HH9I1i7HyR6^j33>@ zs3J%40@n97TMJI6!1MdPFzDZ$ft?h#q^umBj>g{|)Pa?535tOR_$*AIB42F8T63#A zz!&UT6!aFQM{1p^&>zlx(~3kPbs}Y^TFg|q2F(sA3i4%X+k$328wgLMQF5Cmmrj23 zMlgB3d)b3kBo6TE4yxe<^rv2qdh?U|`t>156R#b0p^;!Q5@&7%t|eIt-P zK3jK1Z_Qm03^(=KgGXHH&E>jYv^gQrgQ}P7dRq%jo*Eac_EKAPKk;>4dnz2_>4vwN z;2uBuI@Yo2C$&N3vv0qvwP0%q+W7EwT}Se5r+20sDc4=;^?UX0tUvdQ2lnbb-8@f4 zuBXhxN;Nu~LRaXz&?iN|24dE_Dhsn&aAeu+6}n^2!Z20z$jLFe(6WkS9u)VL!ASMv z3{KYcH=N-;C!RKRu#T#U)=hh zb>)WE2}1*(H2PcT?sNeoZv0FiP3hYWp7cYX5Fb{*UDx|2FH|M!B59PLC*0NH<}k|G zYse<;ucm5Bp9~6&_++0uqCj7}QRv48ALd@73v5GP<0IXyFD>zbP=xL?;P&yZFR+vR zSr~qAeyrAwHkX)u*{A_#_{(!kb??ZGF`TrEN<68mB*cRjZhIq$tt``xccUZ^iPIY? z*2%i;gBVPSeUQn6W$x4UXzQ5E6+WPxV)XUTGeJ?5S?3?b?E7_7@S>o&G8VaV*~f3V z(c#0wEVxqA*IEzWeJVH+5JZ+F^FWsIweF5U$3$Mi(j_Z$O)V%;2HcEOYONU}a=o4`yTPbl$fS%+j;E@7vPaUjp2$<@=MN z98GvmNc*4o!*%VTaE%*Qtyq?wcq1AwlJq?DWl(d? zC`!D5;7n_E*aH`Il^V+Fk4~T73We5g;Vu_SSQOw-{mptm>sKSZH709$9gHi@x~M~Z z!l?7MW{gfmXV6g(s$kFzOD{l&w$_BzeMXGNlO4LKTjWFYof`E)TwvXD#a|Q1xsko(rnfp<3(t6fRFbA0PgNhm@I8GFqpVne&6geb z(L=#}(an@>&3PHo3D!lgFMou3>{TM64=HBg)fHaUd#c_>iAwyX30s45C#~Mo)tVF^ z1ya=;%=wfv+7QZ&)AZHubipS=gy(9JpcbQX?$DS_<)4K)SvMb3q8?F?SK_&f7xZrI z(`WVTwRHM7qtS2b^l=Ymj~g>_{KPR2j+;4a`V{LCr?!aWR&>&9*=vjSePJ0JgK5;S zz~trI0EYWE@M*BvBkct{o(_jvv?f)=XbhAw0Y{BBOZ6XkTMK^c2-0{bA^dycO=seaKR7i&`2U<4<$NA*s$^qxRG;^1R|o1bQguqL7eFZ(DZ))d2Fdi+@<02@0? z*Fu!v4aBh3c&tlbvcOiYjS7S}_-A4sp^#eEf-6Ir9B+;QO_Cy)ksbj_mlqTHVvzUoJBYEYaejZ z=&kkEV6bef? z6m#eVCGlK01hTcUA&3js7=0+?ckp{_bZ7H_*C%Rtr)m2i`q8A#DT5FFl)=?CQYAD# zvetawhjr^LQpZo9vYhTtP!Ev#u+3?uaST+(VBg*D+Hh-EYOGI6AXh^O?(d1 zu-`w>mzMhIUFf+G!{cfxAJzSa|M~+?1`XA_nA9R$_VqpwcHY_GrJ>M+Kp-oJ21#sg z*s8tLfcA2K)Tdi}Kb@?Jq561b4di2hV{%`BD|K-*oT8lzQk!?48g`KUSr2!^XKk#7 z(^51+r1dg{S~ouF1|xeoXN9}K7K*N-`mrfa>>)41Vofu=2R+$IZ)t|KTDD^S%3^#B zYZ{=;ZF^fH>0(bTn;SR1@KZhtI*rzF$)T*1zn|e=YsFpW%frbQ) zLm&op_ca!^-rV3WF07N@FsDtc%ttw41`k$cG(dxMd*Np`O#CN`hI5>Pgn%SYaZQ}9 zRsKHkDsBWDPODi=p)-Tle%qnFfC|oYtZfO}HiV&>-`Y?{tv_D$ylMYT^vuWbzH^_{ zJx{s6A)3GXjo#j1wio?q;5ckWj*K!Ka&CR}ws`C=Htxf@D8b?3^vBECJu+|GuCrzw z_rOerb~J3YR{e%oB&-+q`9YhX>}dG(Z^*k7`NHo0Ftk`r^ zrM+rtq20<;4Ib8{O@2^$g)yi6sm)iHTWn8r7vX$oLwEIfm1(C>IvFm|rKb#@EtH*F z@o?kKfapWst#*z&6VWQgnRge1QDZ&qiFZaD$Z0+IEo>7@?`jyWq3nAD{-&P-7h;JM z-91&u<;#KHP!bLJK0wdLj5qXiZ{Qr?hH!0jJOk01AXYxr(68;S34$mL_Jvzp+p^3>hP4PJ zD1JbTCiqfWJJ{sUwA&5Xr&Gn4ng(Po>>a4lvngeUwzpbzw>$WTJ8c+({cf}>2jrFi%Yz|!Qr(sg6&n0nj8U`yjR-d2 zJHvw>*76lDh|A5sdVTXUjYl#m=aeCkrXGd; zg2UiTnO#^XYdJh)i0T=`c2C8H7V6w&BFj$(Gwb)OVPRX!9?-a=ZQ`6>WH|+E6aS~- zBY($Y#wX^6yYXwR=pDxlZYwDC`7kr1f`fV|Ytl0@*u*w?8{@nMc5UiTXN8fYt@W!r zz(FWC8IQJUZ5i&t>>ZziwTjp>x}F#>V+Rah}#YPoyZ z5^`-?dn}!nDQk5OK43K*rS$NI1z<~Xsy}1w(*Rk%8Uff_Kpyr&z|ecoJ~zskWlCwN zQ)n}|P|r0+xJx%3RtHUlYK)1L^s&*%K3HSy(v}m(uLWV~by%4^LNxuxu^348 z+Sg6`2EIDC+jvYd?}082r@REV8D-v#h;p9kUWzO?4pc_afqE@R=)RTCS4>^uOqC0FH-9mJ;^D)_69o&1# za7%Sim2c|N0J-VXt#Q_SHsB0xrQsuoKQYq?FH<^$q@D2<3DJs#aAs`^Us`*2j>HZG zSCOgT7(;JC32XUUXDEzi8YA9Wf}TOR8-H5YNF3gq-qIMu=<<7}Lk-h^;<`b{>fSe< z(`pem9oV1%ALW(=Y1C`T%sgIn_u?5(dcV0Ew9lh{)R#EeFD zM9fNi-00c1IpC`1Ye7cyGZbkXYy7AwwxAj=w?dh=eNNVj2<3E)r3kTRh1hIzrE$H} zP0RT()E+gNNQWC~+-_1~cLV|vTm84nb}AcoeX0D6(S;2@Wvpqdkg37Rv34)&iKX9! z{(EsA(?0_-o<9*x?VyjO`|80Gx3>mfG}+CB zbx0pr;ysyxZfsY*G0uq&k4Dh&j^FC0{^kHjo?G2OZDEg zwA?t1Q;SZ!n_?UKs^}+c#t&M=0n1IFx#Ta?c~P@UDm-JlkL@vPsr*aO>#Hc!6|8)@r}xkJRf!)nbAsu9wa3@M zwb^%?JgF!yEGB>Rzi{}vpD~qqmQO#}o`O>boweK}RpZ2lCz-US+l;KiayCn4=Hy6( zP-A;{VAcmrkGVPa-MJr(MO98)VQrxJ!K~mB(*aGJ#8?WmcMoiEZ4Vs9ncVbuFJn_2 z?lWNp<-ryYF~v7TG-dt8)lAh4Q!kt!HCb+@x(*${rn_Z6)FvQ(XxKm#cD7shJ`3)> zf>sA&mr~W^28sfQCthMT&B&i(ie%{{P1p*k8lc0j;y;==Hh+{U*txYeW?$@^n%vm6 zGp4(4rz>TC!`^lFB|{{uc)~OnzWkw}mdo6|pM>G8{4b!yL}rTeYCIUx?A(nSj9KW| z!{kSq9Zl}6f|*PR>MTnQJr>JNQk znuTTHXsuQeBR1-wDF}}BDjdAdIT42=s)%oT(a1u0lvNd`P1Xuz`opdNEmSUfh{~rL z<7wm(Q!vq2ChVO9Fo2d?bt)7hVDZ-`oz?QFKL8W&YYCWX$Vz4f5bpJpL<{{B^JgC7|j$#CdBk@`+}(;7LEn-^psd+jASmArU`BT z8-byz|GJ_lZ~~gCf^FR#d&7h6_|bIE>Hnq>-K$}i^QHw(j+I-ZC>gBUr`$EIu>GS0 z%whbzhdX)TMv%2|3^pOHRiTl%s4%=upcfr}EU3us$APyw28HU>e=C(EaHxlJ0#WGh% zxY7Q$W*l#CI8oM|?@r!MW|O1*flg*4C7t!c0g_iEZk~ICA;nSqt62GE-1RGdQpw3Y zyj`P0SMGgG$4#<$apgIVE+(4i5svO)|q_S z#2;oTV@m`s361j7c(B6lhM5|+YoOVV$8QFiZw6c&?MDaY1X+*}-ENN8DVOb(+jO3+ z=fmb>t*8TR2N;z@M{d;r`Wvp)eW>}nTZQ&-9xcSdARmpjBck`g4i6SGgf6`iUTeB& z%KEb(4jnaQ#$JT2KfHZ8nYjb zNc2#3M8{D2qImNbXgcy6F*s}4LDP{c7a)v1`|MSJHe`+Y{uYpxBd*55p$*hAa3$|MmQ{qUzohuxngry z5opU{a~d7^1cB)(d(GR0$F+zfZ|>E~Pt4zoZ-6#cBvkZapMP$)s%u+AXF>b255F{D z6>2inoF;se3e%jg&FzF@hJJ`oShB3+<_fVTR1alC?B-s7dkz`q@KceF97Ro?xkhXk zjARzu;e3usc4Gnc=EEXyHkGV*|HUlg?eUjcc;1ptxNiAbtfwlT`j`2#bEhVW8#Z9v z%$ehc^_@C(CJvosWw$PYM}{10Ma6MblA$Yae>w&$3g^TK}UtI8YQT{UC4aSCZ=imd)m(od90n-+}MONR!J5#BeZ+czb=*Fde|X26{z z(&T@GwxP=#Uk?6{_(sWXaqHQhyx?bqd-@D)k}XP?JRSLKLrm<_d%-J2KG-y+o$w4D zEB!F|dErSkcF%XgTSczQxEPER#r;EkSyE;2S&hGny&+z-H}lyb^3Dr&XZN2BmY#q@ zp!L-cg3hFw7T)itL9WArr;#`-g=*CQi<#;UQzhZ_~(-GLeU>CWHv0$!<&t zIVQdaqvA-{*&*+U!&em_eJ*6Q@PHt@b7jcV*1>nI4S7&79;8B+vp>Wl_Ec4T=txL^ z@f{9T@qO;?9ulNcg`6uxty*5Feo{yfa|&)}7he!mA=dV2_th!JQy(I91NECw3kV-Xrw zjhtThv4l7Gnw9xj`iN8=b!WKn>I~~(upEzR1}9ZKpU3?)TgzEL1@m%_y z76dbzxLSor-N!*|!*$H%jEdNVO!T;I#K@;IMEOx%ia);oFlHAP}-nOckd)vaupWRBo!iI%t!wFN`oTuZP19iO%>xZ2jE~=tZW;11b*TeN?GE zOsp)0zu~ghRr0{OfNc7R4P`x{Q&4UcXEsO0qGa`5;UZ@_(hU#}6J5J2T-2`^#7B=b&)DDT|E=|@qlURQIkGnVkl@rP z6A(bV_J-S|{7a-+|Y=BF|cu@s3w|Gn!Q7!s@s*1lDBmBf3sEWJwig>m4{<1&%MvQ13xtiNU zZP(jT+2h+?*@3$vI*C4!s@2X0krP!+&bjVTxy7BC z=0qG4{U(%1Yh?$>7<|iq|4oA%7Dk9G7~Ton!U(|}Gw{?TaV6xSc`h<+XMV&)u@5p$ z)THLDn)_Bnvbd&46&(W`z9s5AC6iXZ8*!p_=K5fL#17F|$W5~qA4bIf!=804jMy!R zuSyJ9=+1~Ke;Xr%)0r&%)PM?^urQc%WhD@_$8}uWgYYe}gs#*73*4`~NqS+n#l;iS+*)1ILl%+c8Re=J8YHdw*j9 ze+$=)`pEMC6|UcYj~w>D!sT}*a`OKO*Y@(LS>mL$bbwDzAw7LaxtMemYpexs=f`3(w2_(+7k7%Xt*38YXDrm zJ*wt57@6(UsNJ`N`Rm&#lj!%T8szVJUtJdM#-{%iwN2b!QUUT|zVKJn;M??`rCg2L zD7q7l@bq?xK7Nai_tQlu3rvAN-sV>`&^es`cJMn(;HNP5us-_kp#nbi2yYEfixyXV z4%%o9DFf2OZGD)IYkg||QBaJ~Ci!=^tJkkWD z$B`x?J%RKj(j=tGNK=reB4r~@Lz<2>18FAGETpH9o<@2GX*SXvq-T-lB0YyR4{1J9 z4$=ao=aF7OdJ*X*q?eHvBE5q2D$;96i;xy0EkRm}v=y86aeU*`Vu)_cVTv?J(NMitC} zp;XxSbvPfT=ost%;nriK57Bbs(%G`2t=$B6QILhObLCs_6t$<4Nyv0%Bfi|aL!9G2 zC%3kz^5a`Y6ivgVw1;}&g#L-GMz-4hil z`LIaKXi(7r5hEY0>5-!ALMB7o&j{ZN!8)=-ql*@co*K^tjpvHdKSzxZci-kt)2A0j zsc6G?PA|Go3}kbR-CitOtZEylqTj@H*S}iSP84&18<|ofZjmaP4dCMoiY}>U-AJG1 znMJh&XwFNVIHGcEED%*Q&*Ou6cw>=Ruy=D&1Z~(@6d??d=Uv`d6s^wdx2Z_<06Cm> zQ&GGc?ypTn;!Ze+>$h1VBF|g1xkxx@Ldd&MMum-#>LOoucVW?Qj|wHqXc$H#MFJa# zXlALN+jcs&Fl?jW^ArpT^YGiYuzxd7_ST4P%S5jq-}&tGncF(4ba?<}Chl-&p|5Ov zK=etW>JUpF)7v9;&->*BTNlDaba7hQ1yUv z{I>_NUcTGgtLef};?m0@`1XO@T|^Q1dk+E6t`XbCW$$&V zl=U6C{c#cZ{|(9zC=*R9O5gQo)sJtVCrB21B5(U$B11LIY8dCwYf)fk4zfG7o&eBZ97-@ezF#z(um> zx9ms}4Hz<0WL##Z-@D_eXf6QLo>@NGv07wMrBzn>#g6Yp8Bj6_nI7!NLpwH!EXhmc zPBL`zZP6w=fFZybsQYWK{&dh>B6OUcJF#Q1C~4Eo%uLHhF7>bPcoAX5>5rrl)BK)Cz)u*HIrF;(oSLt0xG@U58 zTdv!l9zPJ|N7;Ml=+!H`Et8qB5kyMk%rb@Dt>Og}emrZpD5soAId6b#H;sJXg@z3% zi=Ydso4uLo1-3|J$CF1(EOh8~ywlvIO^4C6Z+7S@eodtanDq$@p`LjXkx)5?_8ct{ z_ndg%MZLS&L!Ng}>TVzUL+>sjJy{aSGT&fZMMpmQbCxO)$dOI-ozK}Xu0kjHq*Z+<^;5;uvfwjx`(L78{f{va zFx<)Zea{{fJNsXu>CQ>O5>BuKA`ul_ETWQa6;<~?Z$Q>*tgePhKkW{E7C{H=B+{ug zIX-J5N9E`CsS9u#QS*;sr{q&X-UMu%dHCGHx`(rJW? zyDKXRE&fT=TdhF1uqV)+4H&3?P>C;lC9e2+sR1;~QhFAriPNUwW|Us+s?Jn*PeqyL zwh*XwVb9-D{H?eqY^BShYKMvztsl1timf2n3Rm{npyKtCdT>Co*1E*1vWj#6KDjSV zC|)aWpSRNYD7rDHSTuG`Bw*Rk7LOD?5k8jPtBPI7XG5`T{)@%pLQfV)f=NpxbCu|L zkj%J>yoFm6#wOsY0o#e4qJC^_$dAo_sW?pZPa8`H2)Y7#p(E?Fy4X(?t42WHSCL(K zL196$$ogE_zP6z_iAAm}E_c+EmS|)Ht6*Tj@J_4rlKLQ5zSzCwPGLMy)V)}*?Zv%> zxn6Oxq&<1>D;B*{#a^wq?JO380FJ;^>;zZQ%<}dX&k%-*Y6+}YMe%%rf=V7CZxFrq zW3d;@{I>YGTsoM&a;$i?px;oV8;i3QN6T<6`mHDxW;6(B0Vw!6j|QrOH3=G@vxGPjn=-j%khmM_ zh#t4@CSQZDwwAcl6V?(@M>Q6RjKlMeT1z4YepB+8v7ltX#Q5NG=KXHT>w;jBqs}>+ ztXoe^OS;~UkP78)dUHiv!|3x$=EIyel-NbH;;3)8?g!Q@QS{U95^>Fe(S%daJtcxl zAl1bGjY*zbUb0+JYYyr5|5e|X94L83>KinidQAgbs#a~$RPtSkz_-efBJ#hN_(;j3 z%F8Ctogaf$nA4)n1e2Ka@7lw0xkS6KYq=O?HLqj|7_M-VmC9}^9TCSn` z3QcklN6V+bp_6YdrMz_MacO{#)?4s;S~#AZDW5%25+U@I=j}gHBB^-UY zH*L}ql4ChxD-i=3V0T9=zA%DY;YBe$N<`bQk_~*er*9*732|aYd~PS-D*NTgXS=n1 z!8pv+D;CS%->cLl;V~ur(3WqhFFkNl>V4Kp$!=l=6GI12N;ZbODFHv0=-!cue><5` zX^AEc#*!B9OcJATyz4M*?rh1DonhiK0VQE{j&=%e27}M?m8!NHh5$2w4SsXy*WyCf z0W!58%x%NIf}M%NNE`F~D16;cF$Bhq#=q9>l->#9jZE3O(}Qh!Z|6mgfX7kuT>pA( z*eS9#&wFgcPLZv7-uewYMbppo{&WC$$A>#bW`@{_z7(H^4}3j6S=)^}m$smf(sjE0 zvo??&-L}(5vV6*1pxB3nvYk=tSz;*ZB#MQj;X<;-u5iloO&IK}_!728T-oEF?-Z}D zDc)y`*@d?qOoz>-Qq)Ir5nJ_RRHC!)#Ll~fnNfLaXtE)u*sx9kDQefy7L=5^niQqS+Q#g1R~e=jgI7&wqsrB@s^nc)M80*@PuLUDs&V)K z-O;=IuU}oz3J{gGkMo^$xCrCqpCsuU8?}1MN!6rT}i_9sOC1g z`|cj(wLHp=c|5=C?rZ_j(KuE8Xe6#<=eS9s(QBbBjurg6>s86_I~b=U)21Tke;ETu zB-)ul!A}#Gp#MyG{DMnGm-rvdK?>C$D0U`oh_v^hQvVQRw_1m~p z#|FMrdP&sv{~VV}(9mmfo$Y84DhEjsK9;?$^cPWI{_}o-z+#B-zwF1X^3q4eoq&Jd z4@ZjOpZASVboKGlzeGEr>I^5`Ft4%-(Kk`S{7=}9p*K&9CR!6&7B4U$@5r>svb8FW z)xxb*oH^xiRV;m>ta^_mmAxt26R=Vwh2CEl&Wi6S6T@cISmME^+*|gdI9{cMq0U)# zrh>?WW%Mgs>8K=}#SADDkFhm3L8#M{b;~U4@2H{&FQzLG_0Y4*Q(HSZf(c?TJX9v% zygG=DG)qO9C~7Lf!6$cnB3anK%I*_+aEpV=(CNL|*{Nk2qQP_oD7V5;??2*9-oA=L zn42BDdq>$iFJaytRpyS!)Q`*3giQ$sz&k|U=%}LHQKi+66myT=mmXUa=FSdRlvRso zI)EXTojP51kLbPrJ+yo z$3Y7#R_;M6N7{?@5z@ya7KLGV(bwSu3)U5VEv%3h z`fmFg=^LbPk-kIv9_a_>yY1-2w=Jn%MvqPz(=9b=^yty!QaUA%>C&ak_%7W>k4;V+ zH@Z{GcAy zps`fn>9i9qIDY(YD%gG8jkct?cEAsq9LH0=olnD=F2R4Lolke5r1y{OsDAfxXZA$- z@%PhcUBHPjviy!J1J+#9(u3!Zhg0Q@(_s{R`S_zg{icq|nlyNJ_PD|PkzlXO$Gds( zfBQ_Dm^Fj;_Baua-@88UPUB~u_Mx~-$3tn&%+q+Y_m|_Qg@-R6XNNDJNPR_^qCW4` z=;{9GS}**txvh`7pj;^!$!xxq{(??PY60d_-&+Jpwgr6tbzEwYzw z;$hP-Ubf8^fcq`9O%Ogy7up^cK25LK9uYphI^ubWwXfLj5c1BxVtYyWEQqfSrf%`I z-t_%Kn}II;yT+eZ?{fB`qpwQc09<>T`U{9w_^K_0Ja;+cw=rLnKr9Kh(Ukj|?QQ|R z)>>_*%dgo+3V9hxwMKe&k_u9Pa88+tcd0$n&AMmrBG2a2WOI40iEZ zVN0f`m)S(Uz)L?~W*aA?%9TIE$U7Aszn*IwtS*?l+%{32=likuiK`o^Lpjk zrm6FO$g^ds^LBNs4WeDI+miF9OjqvzNE66MFeI&3r;JbJBVMp8l!owa+dfuo~y z-D~mF?XRne8%Ceyx2#sz18w9k2MsrnO|%=lp)1sKd~v-{L+Ljie^XtF9XwS*hbw(`!3W)lpk06%^UTt&DM@||oKl~Z9~NcGVQTM*^0vw6^8eIdc^)=C3NUTYgFV83w(X8rxOk}5=A z1TA|XV?4Ol2EBYIgk#TY2}_057EC!-n;5`C-aG*_KB0{7s`XVwk$1>1&j&v@Sala# zY?rG>7ep5eB=JUl{DS8?n|Ka@=Y`w@mDGsSm6kn%Nz2&M65q0WYCUP-zonraz8B20 z`QNs_LPvR?_H9X{BQK14c5awRZQjyF?i6w#<~AusqBow@F;V^7l5q08x$oG92u<+3 z+4n2r^B>zFb%ECdwR)u>F0bF~IvVgFN%DAApLZo~!}H#JR}w_znW?xRXsckNYyB|w zzU}I(ijcgU=zbgymZkZOg-<) z>ZN+Je;^T#Ls%Zfq-C$ZDG+%VmUz;r2ho2=ZCO9GjaCmfyVyKSb>#E4;VSjx9ciUE0gx-bmdDrtwUw*Wj~IQrvgq$hVs z3?4rMMg^{8x=?pLvpp(&x)n>aIJMaJFQN2Mv1E|?i~?_8F159%CrWJ6VskWPJUy${ znf_fO5pv7T0v}pC^tdloFk9g3InH_39B&%BQxXjhxibsSh6FizzP|%VGdwzJq^KQ9 zo~5=J${AgYpWxhO6PH9B_n*5YRnGIi7*nfN1{6aZOKswskC*;bDiLGLSaA4>Ihf*{ z)i(TUTB*$^&o@fkz&qbhfJd2LZhKIeQeH6XaTM%vP*C?c78||xN_L0Wm@*LtZs%Uf zQ1F7dkEDq}UL+0ov1#)U*dl576PQoiPRR}e!jS(YuwDMRr^}v>oFCQx-c4gp!{=Nbl&_`-t_oq(ya2TD?gL$7tag* zyd}C-pWCw4U5?u?Nh_~=c^aCH``ngF=l0vgjZ|J5_eIMZn`YFyQQ!7^YK?O6WPSiA8V%BisV=h>ctGk8cM^`OI8Wm%uD^`PsAZ1)RvM1g1l z8{nS7gx4RI+&W$`xcqS7)P(oc}6p`n(&nJt=ceOa7ZO2T&gzk=VRy4wl*X zR>3~=!S(z~nz%7vNzHummF*c}0GV?!HHtr-4?{ys=E50JxzithEvb0#ZzN-uGY`6Y z**7+Ecbey2YLREAiQn2XgtpJkgO$oCR6GK^O$@w0F&~5cY&2#o`vig%kAEkL%+l|q z6?MNHjQ*Za8iBiiFL@n%b6~Wd`(Cnyi3^Z-&kwdJa{a+3o=aN20JfZaJM~A=t4TkI zTtdr#kc`pAA0$8Ev7?e-QFc_~-S}ft-6h8)shx5hqny&SohuoSOO!-`xT0SB5}e4( z$EC^lds!LG&EY2t)SdS-=#sg&fiAH8CnT=W*(67G@Z9Zm?`6eKo2bs+YWN-9<^qoLr6m(M8Fb&s+nShX;7Hzt}npgy{E+q;k^NqLWp> zNCF%GtK`#mw8Ht?`Kvhme4S?qy?X>h%lRE4!ZTLPnCy@NB8cJ&;0rDNP3qWy-=PiG z7J#v?|0V@hP#~_3*8K&|Tk*T?F`@4~@4i1IA?A69{*Wlo^FrSSw;eX)wWESn)voz} z*j#D&+bySn!|wi5l1rYK_LpQ{kSDq=936*=-O0P-A zC3yqb`|>qO5AwVNAHX#lal_U=ufW5b-oGxXbU;K=?RAN&$P1?Z8=%=x>t10P9NoSf z>LvnLB-uq*1Ym&_w-I9m;>f%TSEm(U*u}M`07>_&KMd=E2wFl6UB1oqG7_36BkKG@!2jH9X zqr?$_GtuWRc5z<_dE!C}pMmtnHZaI;SGzb}ykNj~%tJ>vdk=whyr6hHoX|CH_6LN5 zi*EKw!YAMYXwMF;G8VhrB`-rM_}N_|A_sn-fq?;xv&SCx7&WTIVo2b7qi&8jZ&Oqt z%`1ikhI&eC365!VF_;KT^_#Sr<7tmnql+)Wm@7Q(VzjuSZV3pf^dj#Z-tXPxE(LKo z#3nDhxKqLN;=Eg8TIy{V1Fjsdt&e?>x+~c}_J@SLa$mcFv}IVM{p=%6Nn-)b{X&~> zzOOx$R{BamB?Aa?XJLV#9gc|BF7BWqFPf@$gO;IwQuk2shR_RMH_hKJZZ&;S-Voz! zmp3=ogRb~Xq*)gLW=jmPi*63`#JwM5pj~vT<_FqygcjX`?9U0GOM~p9lj)?hi{Z0u zog@+XG}1YpUEHNYo`E)g3b&No7OfsqvQlps!#uiuSVz|C?V|U#WO0p&G7XZHH0HU` zeV>7$<0E0KfX|hl`>Ynf6lst+FwgD*f~B4+*8JZP;2aUu|<2 zhC66KoT51mg zZb2c`Rj8!;3lG6`REA3026?!*aE?BX8e$uKCmw<>^u zcm7}n@Tocv5RomPI0B~Nz)QmIQNn5G)4)}hybB#6MC~O~0U}ILZF@Z3;$n&;%I+u;XYUCJNYhx!#|8!Lh$aJV@SH})ORfUPw>w_)2-ewQ zzTy%juLF4&p^d`{b}>|fQZxA^+D8c-#PfDmqRF+1cJUwtZ?a92q>V17!Qf0uvWpwR zJTK-X80vbGq<&Cfp()9BaTSleFuIX!7mv6gFFgNrtrO)`BUU%NlSD|dFhbe-6rDb? z(2c(AELobHg)a1Din_l_b1pRb6g-3*DY668&=(68r$Sp-bcOk-cv)kl_fw?VZo<9c zH29(!c0d=&wlslRyGXOtlz;GyP#qH4)h_DWCa}$2CC%NG-=mwPN01*!bJ8I5o9jSH z(@;#7wuc>|AtkS4nq7>JGy+c%cma9u%AcKS^G^t0VWrMdiQX$mF!5(7m;1*Z^Ud!8 zKclRNy8mJ1(o^zwP|HF&JteMM&5=?5; z$o=lJuMyDWGnRUHuhT2e1LtHdX;)}GXycy<)2bpHgYK5<;xkz}Rw@#QTexRP0V8Zy?IWqcl1FC8y=cjoN!DWPl{%Xd`yThjr0Z83{##3Z{Hb zT}L(Hr#)zIPs0XEl;(M!ZR&!k^db1^iJ6iE!b@Mwl-gJF@&`$riL7{H4}oR(43bO$ zFVH?HsZr$37Fb6?N2Z4)E1~4&yVN0Q@Q~z+a@dr?lAYsuI|tjvQwuz=%(X6nMm{X9 z`nEi5UoNzL@=-AV)BlpZ@j>o&sdV{YlFC3{5_x&ldC(XApqdIEvBwHnrg@--+oMtq zV2-B_o^{@|>`|!)D0o(=>o*)kUo=GGIG%UVtIk)^sp2{o1#uKK6jD(-RMM`z!0wIK zK3LyiNVHV&rpA*@KA?eGbQLU9l>*LPusSz^4?iXe*h!zd?#da7o8rvzjf7^Fdml&D z-7!>@8p!f<%ZM$y)?&P++PV-$$w$$(;r4hLUo;IFA%!xa!b7RfuMS6yMo7%iXQcfF zp)Nk#)4Wl3Z+dE^!idU$X``e-P9umIG-%9orL=aX-jt9fd1JhEtAo7xL3N(=>_|-B zgwYbm^BO31ArD=hPlG8NH5z^CJzwMPkV3ph#u!OP){U_*5yr-8FwB4^59uKliUm}> z1uZR`r!iBgp{_+(u(3vj3=D;AsDpu(k3=;Bd(h%>c5&;T7c4c_MJVSn5$l>@_oJWR z#Lv=Cehmus;A_%)k^^@(VQTk`mlOssIB0@#xPO8qYP{f_xz3IDOprY8#sY&4@fn>?g2zDF}fIJU_AJ@OfQ; zh%18Tx|g4j>}q3yXtpng)}>MUB#C#C7fYKg=q?I6(5NwZ8))rh$+B>eev>8p)F<2C zj!uNtMJcuotJK-(cttqWQbKs0MLnyHz@9XJiv1~pn|ML+R7th)y!Rr&v5$Wb=F(<^ zxsFAkf2xgh4)@noX|;enQK{lHhSH%{_`BK!EgP=f<;w}U=CLsrKo~wvd}3A z?wT$UmIL44z7BVXXF|HuX4u=yBZ{HrGwkB|TV7*rOhXNksd>R&9qRCuKd_MJEPI$5 z)$m!8r^{%#_6v?~TvF@%0q%Py&T(m-_ zcC<6TPD?$fVP>)?!@oKgU#Fw~vn7GZN(M_cyI_U0rBx3vExUZol`Or z3=&JjuE5z=B8`OJBT(K6lh+be7*%uvV|q>nH2~*Nl_McNA@d~ZNq!zyr3a0iZ|^INmlu37U!oAtdnUEc*x-6)KMxhDU4UqQ zZjNM4IoydH$!p_z!xl)fAml~U6Tg6*K&7W4U7_@+^pa*8AmTZl1>NBHRXi`LT;z45 z;V(!!C+tNij{`4AaL5zS1agql7o{a}W1c6Cd`XJ+HWxI{8`Q8HWxoQo6xsu7DdT0y zo8&bt3$aA(&=cA=eIexh$)1>Gl`u8JiBYx2JWncHXcv#;@`C$cQ4gyfonO2yh~6G` z42;>-tHR!Op=$q}BLJ{F4R}@ZLV3ZObQoMvvK>WF*Z7g=3lf`YGU~e0<0l%-u^Y{M z&7LOk3rb_@>}!%1Kwc<~?E?me1Eg1K_*2;;iB&kr(!PquTr8Qa#)6OrUgN{!2r3s# zlH3UANn26*a+Z!czO=&cbL8=G#Nq?|JsaZJIL~ zGM{hT{7v|dV$Z#0pW`HC_PJ!&GriURr$)#GWH?J(Xa8P6r&JGTJ>Ic@+yZCE_v{l? znc-~r2D|hOF>i=%vdnE-DDV{SsLB9GQ34I!(80mmB*>v>5`$c69b;V z#7&;Fs~yx)z4)rU7s0aDR7QxwWkvfegqlODLORJde)QuDUkjZB7lhH!{OVpp9_OGv z`PFv`d0bAEb%2luVfqYkXIl^JcZb0LF%TnQ6q1O!3ORyWgL8~w!^CGjG&e^@0>EDp(1wLy=na_ zsqs~7YJ$nWs#-j2eQ`-m5OrT&Ee76audcpF7#2T?Qn^|pPMH#`(1}&>;*D!qC0W;CQHB$dJuB{gRUffn2E!2J1S}lfVaVgMD=dBXI;HF_P z%PgpF-`6R%eMb+v*sjLlo}84Bnvldlf3G&gHPLK*^0+Z+W0Je3rFHF^GJ5>@v7N?r zNlEV3soU6;&SO)ulnQ>As-x)Wsp>EmRb72JGHP^EYU*}mr_p1_rFKb4>XzCiwNs~*F5{C^veHt=b)w`y zst2(i=9!KUYVz|C^*{1+g{1Jbc@WuQaI4KZt#nQxhZYD=KQk_*#t^{%uqn z&NNCc;JRboYc--S=DMR+&V%lVpm*iEe6clakyMwfjTuX&ykm=Mk_4^|SS)>VwJ{EQ zLI8o<5bZcrM6yuozN98W_~gPrc!`8y?vffYuEE9p&=QFx5OeW7Ylo#ZqHEnK;m(w> zOsdAk{LkezepIleMkG6z^`GRCL)LK)PeuTN7gfaT%W66bgMoxw=!{&$BUc(e7xR(1 zQm?p}ug$IbKs5WXA7T)rnFl=cYs5`@&I2{?)*vkU3N~BM=GTZj=A0WoCX`wd;S$Xy zsg(1@?DaLhX>&)!T)f_tN;!uNezQhAf5JKB#G6tN2CuA{D-hwR{K+}w>9=a83n1LE zJh8H-CspmkPTpTxj0fnhru~;aaI~GyhyDK#d%0O^N^vCYmRFa@HAIP$O0Wm(e=`dG>~pNlUMRrD_!osw+=P#BfXj`o6$8|` z6CX+06R`hS(H_j|9akGIRO=a6D~79ZMIKlD;%Y?~8u#SI6(_F9cc#im8u8gX)}{*h z8gI;xl=H-6J-7)ko=9lC1n*B@CP>8Px8BE1I~70~|AuiZT!izXBd^x_2$-8M#ve+o zohTQ)AbjHHG`|xsg77?Cf){(r^KiKx8<3r9#Y0z(1wOQ{lSB;^@LTWV)+W#Ux^t~6 zuNzHGtL>6EcLw4Rxj1xsp{q0&UJKXXMOyPb+;i|l`0n5=9ptK`0;O6`sHF{i?=heoj3vge)MH{#!&xfm;!!W{Cc@?mc zKJHa3?o#l3@VFo^Dr}yIyYZqt;~u;?SBwcQrP$ZDeX+)qOA7+e-8q~Farz>3_A>q zfE(aaE+~$gTe(o$a&vYopTT>(|JUvH;>qWGzGpw@d%ov9&-)ow(LlJz@m)i3a@Q~xk9il> zVrW#1QDrHq_ibYwHS+x>{K63(w@gsgTj~OJN7l*irdD*r_|zA>4|?b>CfP{l9H=|k@0%Uj)%R9OQXNM8 z7F7;X4fK16Tdi|LumZGSUkyM!9YZoISa>?jqzv>sAZ+Byr@n$txn7Qd;e+{8nfL}w z-XxX%MgkIxr;9l_csjwryr=Mh33z8H_cbJ+IZ;)iep4JYuB6I=z|)~3W#HWn?g4DR z74Pg-O;yB8Z2JoF8_)8g3_d@TuK-$B* za^y$0VV~4Bi9C~Gt=E;w{*F@T`s)LN|q4jnHM zsAYiBX<0l7x|b}G|8Y4+Ueyf8NKy|#=gIua3Qw0BDH8=k9?mBhIQmuJu-eG= zVB6IZA~=9@y28m=z{o?mYu_*UQot-YX%+L-`OH(rh%Ho&NPy#seC9qxlW`~Qfz@d$ zR2c)n5P_oV8dw%qzqWNZqvQ0 zwFq*$&B3k0fzy(J{-zs0nGnElBR4Nn^{@;8{oSo3Jr{SE0rRHAQ^p11-K}Ooy7j#G zduZy0MR;+!t=K{Ly)qgIZ)*0W3^;cv|LYr`Xa=jJCm9q{1$4Kb=e~u7u(22~QRnYR z3=2N?gsi-8lx35rnVN#a7(pxrGp$MZ|8 z9Ji1dfVUTsThQ8c76R0!$pg=(o+o(hXx{qWaqN5_Q;@XpU>IjTqH1O^+Ge+-ENhdlsC|;oe+Z&(i9s>+GHMJh%JCHAYTJ^)M9_*WXNVl$2nF_Glz4@HY zvUoAokJp9p#4V~B<6*$5pW=bO^?dDT$CZl3@Wl11VqQhSL$4`Rzwvx1f4R3RY1C9g z;emYfh^y7De(yys?^oGf4V-uw-^}1@)pr~ZbT>`!U(mi)cd5p;OcMaPj$f`+wS^1- zMNVzI1jtWRsVo#^_<_(3-Q$8HSH-;wkZbs>pPf+JAhJ3^XuPYqW22)^-QSWSr#8q# zjYlfo5XI}C0XS3Qgh8l(PF1s#XH+{EkmUWZ#R%s2HKW*GG303|=yK{bK-Ptl2P+Bm z;&V2sj!mGlij-NV0+gI?I;0HjI9`xZ5^!;qt0hB0k;m}*KO^*s&5lg(^uUvcDsg*r z!xojz1zAp~HK203Mh<>fb!Z1zoStcT*zrJ~Tchef0OV%g@)LXq>lTNhdX_H$^d5Nl z>eXHV%c%`{;4cpP*bhuOH50(e=`j}|@)Vvq7zYpXnEG~M;zcH$%^uMQ5z z`rptudGl4nOA^(f%ftE6SMhzXL(i+aREB~x$9Ki$fU1&I;IY2e_rADupykjNuT`#FNHBt}kIo+N}8L;z2ck1oI z37f!{cQqiF3SiKq-36X;1*#=4cW)FR>9pfzG{_`+PB(af%`=sx=m8CgbLxKq6DR%4 zJtTP$pZ!PP;P9!?6luwak^hqqWRqZ z0RQ}T#|_m7wSkTRZ}UN3Qs;&T>u3k$Acm) zFz$(=#0G30$`kJXRqyox0C+h)E(cFeT~V0BJ(g#@i3PA}7e+*pFDhHPTh%at z&1pA!*mFIfp|ENBQ051Hk7}wD({+5rPF3rBbT$0poes*qgHy*#Z3nMrTRpQ^FrW0f zDyoE_fv(f>09g$G?kxv>j|Q?dp8q$Mxr9uz>U7p zo-cbxWkwJ~vg&l6O4%tb#@Kk9YEsJpu)PU4Zh45j`2qo%*A3-X>Bi13=gDKOXQ@uz9!Y*_2cPj~;%lcl6cfWFv1o z*u8gN{JYAbkWqoChbo(6x)bo==zv4tbKFYW-xENG7i4(F`hAt22TxDqmIg;=_2i76 zT!dlyt0+?qR1dMPnuDQ7bKJ4EXW+AM3g_NERxAg%^)!swK z&nD#q6rb#lp+hth06bnAuAY4Prz+J!HI&&pN0&H3bS!JH|uC)1@9Le6ljb)A->-s>K6P zJZQ2;)lStz#?$9TkR>V!^yKDbH0jhkR80ypo{k0Z@c7AZrTw$Mpe`T>8BhHwK=D1@ zwm0}o)yCR`#~a%VjiAq{cpOO=o90p+RnhwKp&13-KV|I^nhD+MZ^PInLdPE&!5 zrXpWSX##`KE521Vm<#~mK8Iu}WdPZ!g^@B)>#|z-P{cnSIqDe6N_}yP_8rEH_@`>T z$+*DTyQK$qo$jrr9$-78%GKs6lacwC&#rl)-6@!gHW$tQM*>mVg zggt=I{K+wz^eO_>9DB6l_0e9W8f*Sd%mAKqT=kgyY9z_A>v_v@l{bDZ5HLG!#H(^@ zDzB-6S*J$injDb2fgd@6=OBhBSTJAyqj$C4*gTl^>qZBp9>%Q>)!FN{v_YyT@{krB zMmH(1{^vSXMgVGE;JR0X$$%I>yIFP6ix`u*;iPIlKqhhZ$JH&{hXYdgN>pO$2L9k6 zpfTpts=Xpok$`$2AELqNS+Nw%^!C%LrT{1oUj4MAnq&moINo?hbp{}z^+jh@?lELz zlwpy|S8W6i3YtBTkK70lvD1mi(O!$OB+>!0(_t!QAlLE0`@ACypW8ng@4YpYDgfEL zMFYN$J-~U@^aWZj8TL5d?}F-CjbzRNvQsk&*>K)=5icHmwj5>7*mK-_qXevdu%ba1 zOPLbbc6v%IWgyzAg9re8JfAuMePTTh4?*JUzO5>UNHXGJss<7j5bb?PPyE>Gc!k`0 zVD@nL@j#P8=1Y1#vv5{v<5iUSkOydo4*` zg|*Xx0+{_ZqIZ>JUr$7m$YL0+`598ZR=!lP3foB{Rp&A?#5|?!Qt0rZzUZvZ?1{zh3J`yNbQ*PU3jF>8i4Z=NG_lx?alX!&S{GQvvKwXPQSQ0eHF)$^dZgp-L_3 zrWUaKNO#RkBAtCnSIB1aVDIz*!xOOLI?57a58^Rbu;>Ag*YdoT45xPU&=A*i%Rskx zO9c=+-5<%^z^~J3BV`_RJ9vBC_7WZ;`A`SbB53xL?vG$R#> zw9~mRWx&^|(<@~l*YS#{l2m2s(OzCASZdsy?xf4Ol$}d=E>~AFgM(i0rU!7Hc9@I{ zTpjMNl4HOEeC_6Xg$KP(AJPC83C`yxzntlhi^<=FHNxQ5$;6n zeVx5X;X$>(KyFb+NwCuaAYpUqS%K;Z<4yStuNf(yGw_-^Qm>0!hr5=kaO-&Bu72ZE z>UmtLOn#&QCN!as%8!PMWZCJvXHw=S*pr<21wN%LfZR0-#!e?2^r)97a|89<-yH*> zI;}oJC8JLFEs|mZk4}$1Ad~DlKAJR8We{Zm$jm_g>vPI8uWVrKHG`b=y#lEM6g>)` z6zd)rJo>$)1Eez8^KhPcqjQpX008tzzV${Y^`Q|XjrSVtoTygL=3CV=4|}fTnM0g6 z6J-QENp2Q1oPFA&XPUpsP&zV(Y&dDl!km z(D7r#ob-7~SHQX)CtY%7fQLuFUO*zx9q#PMH6ywgO-2KXj?VkZQ@&Yi@!_-fwb&wg zjbfP*81)c$RcGCg4e!JF%`xx#N@V?sT-ACi<9hJ)2zPF|Bc1fzN~!=t&yICY`F%<;V4QR8?`tg{=e&cIw0@#d~dfpB&NrO5bZ*GxJ8>Hfr)TbEY|cc{;8$=j2Vun^s;> zJm;Eqf3IQE89%lFhZ z2PCGJFDxqSmpi}cp(WN)i^>a2iwnw&9w;2UsH`v}HMN&bx7|64@psx`4D0KfwP|x^ zqz;^wWB#3JYx}>@Z0rBR$#3uUSyU#TzqL1u^H-9bIA4Tn`(O>h$(SG4UpaY?&y*6r zgr5yg@#B^ZlYfXii8;%a|Iaa}@*R(z zH*w37aBakO%g;y6JQ*=KE6Y5&;J!k0*^<&ibAh=Wzni+KsCa?7xWsBMD=#Q7TwGXO zZk}6ETKcdeo?Eh55tMOlzl*UEX0ti9c*){v<%`S9%p=S*=awufF6XP>YL6275kV|q zl{+M9#0Yb?IV}y!CG!gV<(4V>GrD5-GxwimE-FTL#d8Zw=9{OKSbLe51tRrp{~@Mz zRC#%+lFfferC;uX!g58g=$<9zg=M^Id%J$q>1JP%?=z6;f;@@LNG~j&$63!)_#K)# z=l!_#z4j2JBAZlHT$tWh$wB7E?L96=@?86FlgQ2qXWCGA8D#WvMT-jaN;r#ckLpT< z4{f-hkL*gIjHs6J{`TD|?u5cfLeop`D=hAoQlwIxt3hS7NCmzZW0fLde;gL%&&?I5 z5_rjzr~KDeuQ-Lj)A&1szq7XL6)l&a<dG2=fgo=MrsIQRgareqWDU zem#@J>pni4!t*zt(ejXeXCl^C#h%08d0SQNg_l1d(<%4pg*%8j;JEK^JJ@t#5}o{0 zf4wlscIWX6XUTlFK{$qb|22~@(g$x}PrgV`OO{W$nA?>tUoqukMUJ6B1dRt-*3>cAd&%?l^I20C%nWCDpd-$4ei`6!ypfAnv|=b$cEX>E6E+rBb!S6Un1m>$*^ z%qNd%GxE9+t(L!$)fQ^|o4IW`J=0n7a~t(6>wj*;D-#__T9W0CVeQF6lttpC$@1DI zoo(HkHeFCxxUFtO+kzN!Z`jtR@$0(h<{fQmLxN%)AhPh2?P{Bv7~cR=Z`wm2foTApMkw*~t47~U~9nN}%eTynfkySwcnI)83W zdMk$Or?to0?C-T*46}W6sI9_C5(-_OL|r6x%h}L!Lv`Ki5qMTr++1^VI!W=?T6|$Y zyEZvWEz2ag4QJbKB)6Ss+mdJ|RY%Y!xh<+p8m*lPBJ0;|79lE>EOB>arRq6kD zTm-*sXglqk)kE9q`RTz?aX3;O+D=D2WLcz`Qf1h%cG@%78?}!NYbT@5hCw_;)y(K@ z8#=q#MABAM^1<+u(59Xj{_?OpnXh7CEp z=n+A|v0c=Fp0n@DA?ZUoNjT?bGBStwjzxdB5S@b0ZOI~YUM33@51k8RA);w}1jDZG zg|Kjbx~0uzvm|xQHuGUm@7CLnjq2Fe)Ao-A9kpY+QV>Uf$!1t({|tkZ)!Z@2*08lB zIqctubASyM3GHi*{+zvpjTzo)}j(-oUz%0=?@=8oY?ya6`zKRV9)^Spx{ zn(<}U(xT$>`5DPGQ;QZ9my{NcEiEl6Et@e5KE{lh#WTy(7Z;Y56)Y%BH;>3Q_blrx zWzxrSOXf)l&;P6=QZuu7R?f`gWFC4D#&gQ$j^4cGvyK^}X?hG!Hdh|(DB`Y9I`Flc z$2!9JC;L0_<@cFd7_C7a8m`&eF`b|3=)fWF+D>ilhgr;zuR7H6A*sZ*>Ty&L-*j%r z&!bO_GT9m%JDTXw@eByco+icjjI#wccR0LSg^qR1OH){PZ<}M(CCg4x8m|`*ZtMsU z^;1kNoueHydDH4oG`6e@9jmF`+vVfxMT&k>eH-7yMUFb%eQ&Gn;krPa0B-m-ctBSY zBJ}wPIK?e~E}9KX)X~%ZbNh63wsvfDWp|~(U-EY)cioEm9Vv`XicpPJ+4TtRYvgl- zt-jb*OpAVP4&KFE^e%19y8So`Zu+x}E(!mOC6TqsU)UMX^Lt0d2)b{s)3Cz9YhLt zuEKzi3Z)r*y$8wv+-w*GNn+JKQ7|OZs$wXZyqYn3Q;92uTQsH++lYEsqMmoYdfuG&NU8yIj)yDzb$Ivt zD_4-M;E=1ymjp{6uQK0;ui<^=!e^JCF~r+8edStAZ3{jD7s*o&yW&YaFUQBrb=Yy( zMVWBKjIor*GR9ackAKZ<4M_-v1>yo{5oCy^b})ZHp`8jj2s?tuO9YF&1+4S zGXc|2D~CTntBv-zEgaKn)$*XxF1;;ra%V1`=hw67UWNmGlFXfPHrn1^Wk9BM&F<>O z&XD&)_$@!~B2F`xp?Qh#MJmo%fNgMI=Sk{}N&A7RydZ$I5f+fKRDC+n(%7 z&~~n^bLGsMPj6*IeaGU&L2S6Q4@(yL4`s7J;hLty2j#6ZJ58c_ViePfoA&o*2GP

zMZ@et=K|QDzSJzV&XmouW4eY-7L5;TSh2`A_@R7NCwy6UZD|jdY`6ZOmc6SL^%@`c zl*o(f!Td#Csgcd+6|3G35T+%1Hd0t)2Vv354i49fk)JUZB(fjujpMM%3!@`zDrPai z9%yuB8`+a(h?QuxeqvLjmi6U7Uwl7CPR2Hu)RQ5CBQKI7hc&wzSkYaGn6L&NGtoJ2-s>~;}X6oZ8-p%OB z6mdVUlQwNL1<0=LCCoSVh8t?0)dvn}!xf{iXc?|!zV@sywajS|b;1XpRmG)`eZ|lE1?c01b?l8yXSak0vRN8o9u~-g#p*8@Gl`wCfhDC5_ALaVH zv8FBuTi*OV7(JhTJ(vx&-@GY|O}|SVIjq6FtN-SQSdkyp1GBB+Hb0gw48#0U;cOm) ze>a8upphC8y14dJGyYj|voDJi78DrU>YX|kS_@|({c7187y2>X_Bzx6A3ISO@uVFy{B%79)%8CSE4ah6i8>`~sCBqVC;TsBcI92|_P2SmdT3qYU;ren$4I zK{OoEB1P?`fo`Lr;pVx)0U|rv$oh)==cCACy}^h|#5-<4J9jpO2a5dB8r1voFoabt z^F@`TsQyQ>teZ#GHXfWMF+tQP1ligN=#hL!GY}a5fgJ zK-ObA6e{0pLVuh}G-9AwUb_($QdW^zVSUD*rHQ7ejj%3t#u%8f`f?*1Ck*u(mLt|B z55ZKgBF=m3wWQ_P(h#3G0>!7`|%`7yq}8uH2nOpO1}D zT$w0)?z0i>6XL7em3^C_j#78$y;oO0ay9(A>z@C&j`@GucPY+_vWrR(*@hnIj{NhO zy}V*+cqFfwAMR(*sgGcO#9X@5vMYPI9>gV;`_$iUHa46BH7d`TkAd|e?o{dl~+WgXtzxBW!l>1F_;|M1->x+j}A4lmtd=SNOt@{yBKOhDuwio-6_l0r zHBT?HUK3WH85P5DiDmXPqvF`FrDEw)GbX87lL-&7zJj3?onMEsn?%d6DQuvy%rnF7 zYaABGhKt^R3Bxq{KH}KBk<20nQjR7@0KT1VDP2}$FNBI`s#SLudl39->W5U`Z^khR68Y}1sNxm%q>`? zEO1>n?pijIjUqLR;3GNHME{Bu z^o%7Y62{>B!>L)KBFTh>_|T44gV-h#Flxo>WElLW^hB0ZS@n1V!zGc~s~$JAJ6|Kl z5Pn+*x2`Y_sm#ktV)neOWY%MeSGY6)lkANzC9@?jih{jx+U&PYNMSn$yNyT?3bRb( zF4)GkDQuHlJm85Grl*GZy60``m7?1bTGj#sIZv`D?Mz|qI#Rw{D`HJz_?{F-&rB4d zy;2dHpX5v$Saz)nqDJx`SP#?VFe(|E+Sh)$uNVudj`=$?i zvNZB!$J>s%7e$e`J`L`P)nvL))U~Bz`aJ9(u|`zA*b}Ewmc3yC?qj1jCbvgdPQ|Ke zpZakc`{{Gh@L@W8RG7zQFk`JLgDu(9oX#Hf6Ls6tF+b{0r(@_eol9r>%ETAa87>*h zr5Cd&zR;Tmy@9=09}MG)57J?nvSEyditPJ?nZdo2{V_ZP7J!{fhief3ilU+nE?;r) zM_RZEEgz-B2tAV&om_i95+i^6>-})08riON@CuXm{hv-8T4ciTt@y$ZtzQg^lS8Ywle3^YF9rm&+HUm*#MI`(H)6||} z!aB7#QViLqIJF7Sr?XVIVe!%n5#|@uG12n#l*A1IK35YD=Z2KlOkp{hhN9T9E5jSg zC&EKT#fm;`5U&qzk3mgh6m!$s3*POaiM=rAm%^^Y-|WZOB+&pf6e{fZW}sFl;UGg$z2Nv`{dLwTlQ zSDtB@=5=Lr{UIg&Ec!@G8A6`jd|d)dvR~ex$y%SU4e!Hxa?6esUr~2j%l!PtC`%n* zeRGt_-g0ji`+`OHHIFQl1_$qtcy^s`t%^7IL~`>*y^d#JG^OuZoW&U92S4o$5OvGq zv6Wt}jWqHp%L4<1Ay7F05ij?_*jfBTFP3S~E6!rK_=qO|a260UrC@O(*@@JQy3Bg> zx=@qvrcXQl^fEI=#XNFkWwAAj*^8~&YymMd|Dg@+%40o2Pu{$qu_@2~YVR??{2tZx zhYfsfK_~k8w%%}hlt&(wb0YdP`<#dY?6+;)`b#o?cJxrBuQ)R;97DjIG=Sye<@5$&u-*ZPAyI&Kfp$+EMNdjt$lj{R(MPB0BktwCJum?(P$pPviRod zr;ONj3}jig9}d9sIWrW>KDU>Nin|9wNy%ZDFwekiBBG(5VL?CA2m5~+VKE#p_KZ&()-E}A}2cFpG72eO#T&iw-!E`yZI4a((4X7AiTnDr{|8i$qr z2M=Mm3{@_}luM3s8LnJLD3@I2GE%u%n7#ktQS7H=u{mbAa;WpxaAxvfUc6+{qFm9i zZ77SZwA?+4;WApej8QH(DVMRzWt?&u&+L}FC$Q~Px(Z<5-D@KIp@;p;Z4=mg4_r+; z==GbJUX`>^lGce;`zD~(a$Xz5wDtoj6WK4sO3Rc+`Nlo4`_nfDWlvwZ;zHicC$=Y- TpIduqn$I8p@Q3lECy)Mrx6BQ( delta 184807 zcmZ^M1z1&C7wA1#;?f5$-DQ(DSYQVV*nt9eBG@fxqRP(0JRFs1=v@5f0mFkiOeZB&p-BOWU8PbXGK3R%Pi{t}Q?%KVoIO|KDj(#{2xI2C=PB*Mz)YobxNbH@3Dygy59-5A^({POmG?`rmrTqZ3(VyQYBm!>qt(54DChMW)9zaU z>D9bPPn3jQt>UEbOCK6KsZ>||Z<|nRo%C&#>H2oGA=wJpe%7fgSvj|gwc@OAP5f;N z9OWt18FqyA<5$g8-s^`_)dd)S)1 zb8KI}QqEgAD9ep4lm&*il!e;*Dpk{rV^zufWYEtk!&>y|!j39clV%={z;Sc>V5f&l zwLAXsWfGVK-NH2<^l2MAm1>r@UI~a#tE|w}pbr}W#;~d;SCr6Q)=Ij&KAlcB)>q0k z%qq=5C3CjeXIJWAMY5_Fn8`nF8MO#EH62%vyf=`v%6B6>WrmR>MScqSFs%QuH!~;M z+yJm!DYuNwY3o@pm8$prHvj0jl#LmeKS4H+JZg0(2m1rUQ-(IgwPt~d+{BR0htQy> z-=<0wF>}gvQ>pIc=5C`x&o*Y}Fu_ly`X?)?PGuUb$(w2g8hI%Q1jUVT{>|h9rL&1Y z^M~0cZ77M6z}k&lb5ALEKsvQe%}AJQfmSy6VdD_Kw;q-YmhYehm@;K-uu!QoI@Qln zOx*CH!`f;Eda}%o2H~JZFG~b5=44jY0&6+ng&{=f=TX}OoTLGr{~^pjEY0vL^@m!f z<|ONSi7dZzVBHahq_#ZE6>0#}X~-$30$X_qSQc`IkhuKp3! z#N#WGE&}#=>xT5{cW|C*QT-gLYem`1%0p{w+As{d-{^a5IhC$#!;Eq?kZ^a6a-TXv zUwcbZ&;cUQ2#9kiG=#~oUwosu_BmK7sWw&=mmN4%ioWL!ouwApFl8(PeD{7;iO~tP z$i|dh|5l=v1GEe$LgPQJrAl^SZK6!Il_}yEkYpNuzdVk{F4@M4nEqR0p=8_Y(N-TY zkZ5Jf_e#^6k({q3mhv%ch8^KdpUzu#^M}~680H7&bL{4rSKzVW6V@ig{%47~ypG2Y zg!d@w?Zga}z=V@A%kE6_On&BF%5YPko!MS^rvBJJ%gc!He3 z`BG+^cqs9XrleOnaQlE;BEsV8KYS=rdmXJv;hPdu`6Bl$grmFLg>jLau5!{>&N#Bt zAQi+oV%JJip=?Axx_N<#B0Dji_5>T7Wl}d#c#fG8;>0SnVUUlWeXcTv+5(JImOD96 z`6dFjTY`2q)(u(ZWU3T8S<*%m7!{GYsv!wA1h24gu0x+L0PfA}SPx}VceEt>%|Ysq z!6;C22+7>kpUO&SmLJA}<1RS7se=-^M5`djF>gy;j<~DQaZRWD;o=y zRM_wd6GcmXI{7uoyZ6SsdJ0BJ%$Y(Phd($rgjOx<{V5dVtZa3(7nRFUt{8+{9NRpl zDkyO^RpMM(PLGC6_H=p5zzR!z=W3v&xw1kbz+I&(xD#be681ynDsi=AQLBm@v+{1O zRjPm<_n(5rFfpMWs5ehbuh3V3yMc1RjoJ0hdMecri_W<^=fcK!ZcJNgz(%-vQhhd6 zEq7)B{Q;rNBa-w1tZOPH6BIr|_iWQ494jlIW(7dF&OBkw!u4yd zIUT5&doaEZ!(>k3wN%v9Ia&jyuLqBiBRqnr;N=3Em z__}a3DL#R~08Zqn$ z=e?`$Ov5dXee20+w*^x)ooai8(w^;YMoa?>G!{R(HzBktg__SFa)P^~fr5zB>Om&6 z2lqyKA-q!OO3(kytz>wyD1QVJ(PQT?#+8{OM`tAe44 zgVsLwtQDc#hhM8I$-@YHm@6Zyn^HsT4HZ|-J1d5;$~xE60-Ft$z17WWqE~^57n?{p6=+>m(}Xl{T;Qt6HCPbzhYF+dm?5vo!N(A^SP!LBjhYmBAw>P!(Mt!A^Jhh) zEtzg*Dbu{-z>5@wZEH4ARqDmop8dh1PS_4At!&9gWJNxtzvWFBg9y*}ZevGl>uhf$ za`t73tn90)q4T$>sZxz=I{ysyVczN@e+L&p(IMQ|s;mwdJsqndw;DnH^bTSZc0uUy zt~84+z(?0|p)0mF5GxPp6Auyh9F#krHX`ncgd_qIsNGRX@iA7)YPnLP;vmtF@A#k> z!|7Aog$nvD*k3`a4SCWEyeHe(K#A}%A?CkI?B&B?h)4^<>j%9c$kuL25uItMQte$m zD_v*HIAr-xa2U)#I0T`O>4an$;tlg_$Y!ZjE1wNwtq5=QT06bM9Rb1GaA1D`uXqrC zBy$&5@ZiIEm<)26GyAW0urk&vKE8fbEZN`&zP}FK6k>5wLVWE0e_~#RA--AtM5KaAyMW1(Er<;pX8v0+FH5Mr{~h3B>Yy6vF4)SB(H8f8x>KnzubTqi3p2NBtIp0Zh>$bcMK%2jdLyJcVNfV$^kCW z&TXi8)F12c+nGH?7;t%Cs?g>jC9q>-5|L1BPLeHi%}BPpp&51KhU3`)gk2(oZIy)M zTBSTVkoC3G=2~iIb0sOu8_cJy1OT}^Ud~)hR`vzaB0&`KwTk9u))B3Axv(+)K)1B>Oi(k zEVibke}bI=6ad1XvwM$))*)<$_QCVyQ(Sro<5%=e6L3Lx8?qb@KyECgGppF@SBL%4Maa@c_LRJ!kyQuKTu+O zG*F6~)*{Vk7n^BPAvsa&__OIeHfybBv*klvRS4^3cc`MAYPLw83R@o772!sc%}&am zrd^2anp;gyg200<2%8+Mc29{6MnauPh)b@$=DV<<=#cqrijt5S?8orXrR>L-(1n!M za_F1YE&4i{-5dDW+@hzvlY1({eNLyC5IVPXXXD1UE zCBBK4yqaI^B;Vuih49|*2``jHXiaZvO={Q5wUq;Ts6g1H+4jev!d6O1I}MpRs@OqJ z;ckNPc<}frpr{oIG0in1ZATQ_$n|(L!dAx`PE>qHHXs2bitR{yQwUJKxm*$MHVlAG z6y_d)-%WPljR@!D?t%qz82H1o{$7Z{mPDK9TFSYcWrY8nX#GvF9H_XrXL-^aMym%c zye%Zzn2Z`!td(nX!Vq@wTwW?>CglT)-Q*s;6=COqt1e1Np9V^DdwVk4FxOEtixZ|C z=n%(r=-zQQ)qP!Px!T~WPHkOSvu)Tk+B_GUJNX~mqPP!Y=pu}B9W-MFI@3~-XQPYFNOBBB&Jb>T zO2_btwBJj}>ra;7-iRcS^yp$(_5I3m)12jURGLIYGn%(VMAHH5V7j?aM-?a@>$HkX zWC&}Gjf|(QgMoJQMSVIbu@fP#MK)%w{$03Swswh@r*~jBi!g6pkTpl-MIt`rur>4n zE&zlLAKx$L8K4o7!-|dNJI&a5gho#WCW$1*5Rmw?95Y$PqY=Wmq&@B;o%t#0U5!cd z+Z+uIX_dEN8zo+k6v?8NQq;{(HZ5TjA#D8n>|T}-ZuDtHl7l5ZlHIOYPfq8RCBj-8 zx>*V*_fk^2*OMplS{|Xg{~-^EQ$5J6FFAJdTP|OO#_KNFLCa{lh(APlcJyFJ2)iAZzL8q)Q2O*7E*pC=(hw$wEbaFakTzcF7XJ2@HR>?J`JOqrfXH`=EF~?S}$?HFaJ^tyFLTAeTl4C^$Sjt-w z%G2eAFxxOWpI7S$bCOOy{IBr++CkcSP?b@M@Z-*V;s2w*a zAnyK#MkFpT$3{~}q{*_rF>(z)CBkhs>IwgYFRB#qE#!3?Le;pWsyeH(Xd)SEVe3Yz z$0kI0vg&bJM>mOS50b6JV=cnrL-({NkvAa}-{|8$(9DiCYtN8uZ7ZAzV#c& zOh2LjU>W!7@F_wc-(HP?lddH35zu7HHIC4>N%4pO;DqgnIv}fFo@_Kiv*)4Rl%@U+ zNK8(S3z7fMF_N{NSTn*Q$zNJ1fiZn$EAC?mQ-kCOIHOV)Vs*H=r&NwN7#^n!W=t|HIGrs=^^82C00oQEQ7}k_Hia+@X-o=V4fCyL$`=xum7rajve&yDva z$^Bt__!%!;5N>r$wEt$Fb#D*w|n?*>B+Y#D`rSbdzO_Wygq} zU=Ei}fB%LI=|?GeGZc2oK0|l(JcJ*lHU_$3NTY8w&=|^TL^%52GmXV`p31{UqgPK$+wmtb7~N- z4T`=^Bzuqtiuvsc(9d8V5fFA6kz9>!gJSc;)A<&1HSVnlpXb&uu29mKexM{%J~zU3 zJN>H*Mx03X3;9m6H=i4!o7TK7d4GvMby4&uvmLeaS}N72%L}S09t#`* ziMbNS8!o}T8l}Sv#e6<&NlmpPE57BM$iCbr5FY(*I0tqOw956V_DcR_rj0VJ)fSXg zg#&IjwHes#0*4o%8jdGyYl(?$$fbes_U5Zc*#5%xsSf1a*L)-S0Z(iQjSjkB5`&fB zQ`i=zA%xEh3sRfVoj2d9Z0Btxq^N$iU3?gqH>SFif-m`IavQ$!hfuCFD2}W=4?@UJ z)CacMe(WUJw5;3j0^3RTo$8@9n#Oj%ilLC2ySkRQAkSWzHjQn1O#wNdzVwb*ZiZU{ zD1eM<%ts5r@~(_7fUUe44y&fSQFXb4koOH5U#ire?oS_d1o8dZ_(OqmZnc9V&tg@D z2R8wPo9(`Kgaa1ss)YutW|)(ZB9MKEF>@A#4_6NhV_RO06Rk<}anEcIAApD@Q zwFM%oE1hSsvjbzG%&z*Ii73ofGql9wWxlbDhfe5$2pg1)41*DkD2WY0|Hd0eq;nE2 z6qlJMv|%FH_hG-B(n{pz7Xo=F`P>LI)_wY_BTv~h(~OR^0m5T;ZJz<#{6K)Yl0TDW zNnD$z1@1osCkSxGV4eX;gxz_;`l?&)L!*_@S!_%HC*W3pGg(=wr>|V)fz%y@Z7gHLA8z-_TtU%BHxuYXkcyFBOK;oB{=o9%_zD8ccc|o|S zZC;5m8D?iEAwYMTXVRU{;XIqofh)gnTb$ttjxt9g7MB>yn>ikYlb)Fpc6_jJHrs`7 z1S0NbQgsBgu6^@ma(gap%#MP`s1k(7{`~VeVpP)S7?X?~VDt)C7{XR{G#aJ`S(!XX zONFe4qWjdKZKv60?U)q?FqCb`-32M+t=!p-XO^F|jhj+=md_!1wl~XCif|{hi zA>5(CID@1hoM+O;A6t~AbJ;OzVr}R?^|~wAlOIX^31aKaX+vn8Yq5+X+NTeQrZr@U z5bj#AKNH5(RHElG!<-FXRV#G&kN^Q3@qWpH zi;V2xriw7DOFh`}#^@uHQM=%XI%5%|>IO94%9vAyPiaivNw5{Hfxv zv5Kqx5|$n>fMgq9j!)##CP`M7FEvtbFJYVe1~p;L^S4bHP~=5i9s@NEIIRfhPb*CZ zQ8=thHX)<$-)TCpIWnM-HnIm7Il>{mR_pBDn^JSk0TRIbBEp84 zl3&@NrK-Rmnj6A!OVuI4fQ1sW%9MQ00<2OE)&*gAmmUWN!Av)`!3~yO3K<XKsB&EPVDyW*}`l2@7emhwfu z6NNC+Zb{1jP!Y45m2sEB3ny==T88liO#(?I!DAtFz5*Q~1qciNE?EsOSC^W^)ZS2d z)hkJd17*}Y=0@sNaZ&FBr1S6OQDMq+* z%U_d0AP!2*Cbw0D4Qm6WwH>%PsA8D^D=3@Ja$iR1_vj-J80qW1l^ulL8d5;Qd9}2Q zVSy7yMX<*k_8as*-Vrm9&F>&BJcBfd^CNtllR1K!FCZfOUO}X~z{x|{s7tr{BGMWl zjU;3fls@L4z;#-Ku_79T+0|54VV|-qoiz){nBF(bi>)m3)_T)H%9(X6EiVGR)lMc% zf&R@Er}Zpg_<|8SziAOn?wCRr>%5*-aVMZFne43*6tc*(8LGpsoxEYY;sJy$#J}eQ z1nd($Kp-?N{oGL3tjyfNEl>sdf5L%vB=R{7Oy9t&g4f_Z3FAj3>(s0GZDi#}G)%v! z#w}~n!h-@#KWu_rD2Sr$nabOsGl~PD^*7U2I_)Vwo0tvHtE*D|Z97Z9qGc9uiG}T% zW=9=Qh>5(3vjP@2CYYf_Xyw%MCh_>d8Q#1BJiM6Ch;RwPSqEf`2vQbqhkr zmTRU$kb&BJ3pka%SAkGzp293#4@{=fiNiB! z6daYpLgRa|>rPF42`jS^S$m5DQ~3r=fpSGS*UXRI5l{;kZ#hr=w3GrGVfB)FvvOe){EGMZ*XLx(|~E>uiE!xW}> zfyX#KLfeLJw>bNbBtV9;&5ySt{8H9DNepIJIW_?i>&<>0q6gbZvdcE+0=dw=O8ud} zc&i>RP;aY8X~uKwlmjP-M}I~$i8m`SlI!p(5Dw{MT}4^3&6hZvK#L{U3_@+aVPA;l ze8A?non6uja(+A8rD+Z-@wJ#2s+jCx_R|N9 zuC0-MGL(1LO8*_~EF}XBbzwiRJ8%W02GJOn%JMDlbqMPeC0eo2X|l_PB=#yWAV$3k ztQ;)(RwhE9?fpE<&zrDZQ{C)A3Hd9G!~p8e47$s z$*AoaQ2kpgrn{`kx+|!eD31b$2zW56WX1fed@Zeti8SN+s zu4>?560Z^v?(z7m4b0CLw$_kQ+CJ(%gwA(*w+*q-FSV5M@-IpdVLz)5W5j%vVN2PV z3m9RXNq7}%XQy_v?Sn=zdC`fUjx5Q6kk+O>H&WbFSq(a;FWg9SPuj;Sd1zIlQd#8i zgA(t{fF=)gb17R=nK^$2DpsE8dRNy%Tzf*HZOKDC!ZDAQ?W7jyyvL8m=fA-+cDz1} z_jqb3Gxx9ntPi^BH~wcUSot#HzUcn8AWmQxMyW?~71jAZX2on*E&G`R4tD7}IBxv#xWS|7 z_#04q(U<}7cC)px!v=mvni>He)Al>Db;0`m5$wmi{SlNPt&yIp?(f`t#Ih<7H1UAU znwK14^iH1z+uQ+FreUZfiEe<(IE~#sOaaULxYj1TqNNva8MO>HV7%P7FqAvfILec0 z4CNtEtJ9}C*I09KI&bcr&Ioz~64L$?Sy!=q?xVOLG*SxFjTlXD(isBZhLAVxJ-H#zvXi zPz?w0sEF`mGrKhveQ-)LGCs;k?f}>k55k9+&(5Le7bK(xhy-Z^WFDHaypOW#SR9qh z1b8rf|KYuG`o&m)ZdOXvaW47c$N70d-f@2F5O!h&W9sAyE*I~UqbRC4K(%7F`v!LK zoOZGceL4o7dZn#!6hd+*W)q`KG=l{pqfQN^{qVubhPf-@L`bW=JH_?V?DTLp+uqYr z?1#yjf$YcFGlSWW+%p5%kI=Jy*^iX7-Ko4|AXE4?Z$%CchP}v$t0)HtCeIT*2qFwv zlz&4xaJZQgpJA@-I>$}p%sD=DtqeZl$_!4z`;4xXJs3^j&U3>GyTB~+?r=Dxiiw{^H_Os4u+6fzFmCBiM-Lia$}VdZw~Nfm zts(HeeYMdX^No*EcG-gQkpO87b&ha<8zAvH+i$a@XXB(W47e`4 z>_C=!M_Fh-@Z_kRy3947QP(EpoGkSw%9~ zm&MY=P*7)R=GjVV;u~+tgl%n$p;h0J_f@4prPD1fb=GDu*Tb78N(Nk(opq}Qn`ZAV z9tghQV&<0y8aa@1K&Xl!3-#F8AHW+1zE5vLhHdPqO*BX22bmv%0MTRh?g3gL z?mK!^+85_RQvb`W-haC!pM#l>?cy`}+~pG_-sRyU=PuLLr_~Vfd!AeI-_Zf1V1mTI z*#yBmRI26Qv$y|Gm(uE3ZUELNB1TFd7OnH~_<&HU|5*$B$x{72@o zU}WAJDw!`SM=KPWo5wG~e$VT|=7`L1&wgyq=LEjW??CNr3Hbb;Ydf-)Ck1sNXpS5l zM-6@+NDeau!p`3p{iGqmKi@z(Tfkond0fEA_5!k3blg*)k&RuV3wb<(v4_-UpJ`d0 zT*%65ADHiB+54i3?DwhAozdo4#8mMDwxoI;==hil`;Q_n>;pwy*uRRnmcyQ~{tdcH zs(RC_sE9{L@Z1|uxLgaKu%PY$)?=@A-$&!t(5EbJJ%yJ&{(f|P0khH*Pq~$5J>|Ha zo^dB0{ftGBNpL64_g35)A?5mvW~1kf2J>-}s>kM6AE=6&!g3|~Ik&Ve&)F_h`5I%D zRk2kAI-_$$t8jn#Ph~x^szhatF!Dp`=nB^uStt$B`r})zcrI0bq z-<2?u%8TpMfaqBh&Ujr4NT?rNiH^SMpq$Imke)C4nrpnfaJQcJf*a@U7d$YzzU;*K z8S}CS#Zm^kyWzZ;gkHuypc@WK#s>?X>PK^9kAR}kYG3{`g0YtF)!*SswM z@wz8#e*P@yefqxV$~*aJ|mHVHVXjg*)>>k`P z>p%KYYJKMVZ1OprVO#N;(^vYL(RT{49V_qW^FOxPKRC)zN&3QrMaq|+Z20#tTsnQe z_MswogLzxoZEzLE9J7o5&EY+{oMuqH?gjp+^*McGRdXMBK(?EoW=r;fH-^fAZ%n~A zL*d1t>?!LjSoreInNISq0Io3Ycw<9DUf6fmy^SaA)oi>}mv$$~rjnyVzO$pDa@d8O zc5*r#cEaVsz zKUh3G2@d>w$mDz)znp)vI<5D*mn(GonRSz=A#pX%hksH!Zl32zhF%lm^4(NXUkR+DJ zp4C^W0$0|CJ3UbUkr`@ zoE(x^MPepS@~TKo7ODWqiO&sgQJIlmdJ+>F8KoykJE_MBY6W(*ZSBN96n(J1Kp&wm z(5L82ENYYY`Vx!7!(k_DT%#qCI+O7ra|{Ig>kT9p?n$YEz!799a4azt&vJCXYH1|4 z5SsyktNkubI$w1Uku~NMeRV+>9j_oXK=!iEWxRgk47G)=}SRak$n*Vnx+kut57| z`sGAwUqwsYtt1aJ%S5Wi@THnaYzYqMK2j{5`6-0w#^D7{I`Ob9POh0sEZ&h?X5!aU zGd^`4nB-RJ(h^wg`!K!(%%xgvj{fEnyVy?7n@hvlGd~N71#4JPsLt>FRzgzhf<>iR z!RA_lh2%~hu^k`{O>rhtC&;gE$GJcOu`y{UOU%iwpwC|?=gs1K8n)|BR5&A`S8Aux|LA(L@|uja zl6uh&!O)?T>~>5S37ItFEhST8p_N#wBDJ(ajnlOf+woWh8Qmdo%37gt4`N|0*)wU? zww74nCNr&h_x_;kpeL4a0%R`*5nCH!`93z>8u12Y;Ip=Ax`^JC;d){t{H>|2#7Z2p z(pF+`50O$^sW0W@D@62`(Rv$1{oz1jY$P)>(^fJdE9@i|d~uQf;6;%aGnEWGiJQt- zJE<$1EyAADYXr_QX>IB%u@A!WmDqDV;;C$Flbm?5tH9gC-u9I>HDMae9wf#=*!&p> ziKW5kusf4z`}9DCZh=mF679%ItPObU`21^4R=R-Kfk^d<@w>j38WZp@iu1Ok6izu- zKwvKlM^45RO?z69(M}u->=Uc{g+E#d<*_e`v6f67=shOfU|tFajEE3c@9@S~H(Z~@ zz3OXB+?_d&Mj+8SVNK(8!m36lIZG^EkR{F%dle5w+V;SNLzQ~fa1p&4yNCd|*hONi zx0=AmkRBc1(*S7aD$Kywl}Gulutk4isPjyS^1fuBtHe%?JZr#}sO@>rC_i6ZC3elA z=&(u^_2S7;x=JDK-MDAeE3Kls^?c$*5#9Z%xOPKLWqmi^KC{mO^&<766ddxlIqli3j+jN2Leqd7SU`&ih#7JenLE?Hq4fmc<6$! zhr||UN8zZU{Q|$t3LH_M5?cxbt;SVfn6J605fp+~D%= z$XCf!jyt`C98Y_3`)ySl{H@yHZ!Gh*^X8dvcw5*t`d2Ban1y&ttX!FV1MbTPA1%Wr z6?yF~IWjJcs!FZcuSngmbyWptrMh21)p&~go&^=erm5{^HWW%g#VvtL9!A?ST zF7hG%P%Fs;oOJsH#J!eeO)P3~WBdlBIikHQ$5`bex~C;NOP_Qn?R@Rf!!YLa}VQS8@G zUugiHb|vg1fAiSAiq@Hg_;E{b=mc@@hi;^j#z7WXz`XWA+)R$T?q<#&Ana*q=v5lf)MN&!MwuDwV&6ft;Y1H7*`|M%| z&?&+i@=(!v72E+!?4n0?0#A+1=$?Q#co>Zl2O3JOPA1SaKjK{q!v~SQb$V_XhKL{SCT@B;4%Cuyt0TmzjIPah(H{eQW}F9m|-M+kMf~OaV`zq|9z2 zu|+N^Y$Ek%0tjs?ih@l|xee?Ewy$(cEvtwibRK-6k4b+A6f6{BL^Fx43(4MQqS7;O z&K)ot=xwlKU?W93=ffz47lQOnQGzlkgCe-qTnq~g;lp-7g8J4m4ZeVfLN5y8VtQO1 zw!~W}hqK4cL;2%6aF@XL;!LgXSfC+eYj3E~rg01IO>;ma8C3&^Q43htLRdgr3t^?d zb-%(}^4zd2yo$=}NSz)P(c)oC$(Bv=zNJ_%gtQVyw7iut#~k=YjcEO7Nj0`#Sqbwf z^VU#B#kA(s4+Ig7y?w=llC%e&GRzsR1xa!n@hhf{nBzbjp+(cSJPM72%X^+R6VFjR zOWF!NDQ!6$gPXwF!1fs53b&iy4od0Q7K7oke>+K!5~>ehP&jkyNrY}W;y|F66C-Iu zJ3iIs*^2eg+uQzWxuVF8yt7w*1)_9e&KOP;JfzdaxBupX1`RzFOp z0VKKuck@dSMvc`kC0dp2>mWI>Vb?kc_8mHk+!@_w_6Fsx;g_X^!(UlQL*l;F!cNo@azeCs3vZ9->3 z*!j-F3gmE!ZPbwXaIs3d6E5|qgjIzZnzdW*z?%MDR zF8sl#$mqQXLc7+EnT}M@!f^oTVfUQFI@7}lJK4qd$$9N zWj7^i553|-&W?uqBc>0Gr3mEId{a$+0*^`OdkOXG>ju8C@i=}4d(IvI%f`;asm3}brpb^A5QU|F-b z2H{}{N#_08ev1!8&VT-$evCOOl|g()p#$;nBN;PNoA!|gv0pp-h-$#5uN2RoE$%Cg zpkjK~3X<2umiMR`5P?W0-z%v0INQl-Sd=CjSrJi~E<_$s@pBaUz6a*1x=kRyl9^(Y(fb2KamQ><#fZM(RWf znGT7&``Qba@JT(gJVtV$nYdP&YP+{_~9MhP9zPWiFCR(=kh+MKvK zi+Jedzj;T2CHd3`KIhXOw1^xdO#Lv}OxQi=IAk}xqVpKI#XbnzZ+1RaK~l;f;Hc@^ z0yo*4OAg`6#$THVTYj)nK7P5*9D==; zl#xn(^hp1%rM5DDzZN?pwAyPk@V|t} zSX=$%`}9ofe`hl80yE*|R-6gp&}P=t$n2p~ZK4?}c~VK7hXOvJU}gD#v?P;jo8Uuk z2e|Qk4}hY)b7u$)Re?n00Aa5{>jL`0D`KWdnzh6EuJs|f zdJ!@_y(aM(F0m`cI^V9W0Yfrxc!yR?z7K$<9yA$~@J^+!@)2mm z2@%$8KDY$$(GnT8IBJAsOM*v8CM+(uA0f4;*y?~9v#UosNM@g&{65(BVM*yX&7=)_#?WvxyRQB5QA8^m>Xmpr~cTFahI8OaDk#^*m10;t?^`cQ~&-mv6A-VmlPFq=o;1tXmkfYMiEc%7LC1-IH^ zR2Eth<-(BEiWj;LikILc&VXSc=<`COvq}cBCgA=S#4G^}=UhAwEvumUQq{N{|4TFU zVjhPpnlVf3hw3O`o8HYKH`Xn+zbh)B3NgW^%U<}lvS&DF72xd~5Bk%a#3XkNP~g8G zF6{1y9WkU2VW8{PKQJ{q5x22?rGBFh+-^)*Qzo3xhKw02u~SQuIF{EijF8wA=fp9Dc+OC0Dki$`OGpZk0cX60qa zi4uFoJs2!!TC^u@*WmSEcf z{RN+<$4l2JWP~9~&;jA_?1p(RIGm<`>OoB6PDpGWim(t6E@^+M6~(lF5N&xR{?jh3_hdK|mce&e4f_X7V2}9NO*WaGt;srZ2m#&?5k1 zHdSJGA@_l=AFVsHJLxl33Z(osm!YWEGoL|Xqk!$0=@6LRO7+RPsSm z5!pf}@q-FXNKq_UZC`grE5h@I9=93$(C#3g<>?3E;-S0YZDm;dknhtVN)!z&aFM_8 zc7&e)+UH>Er_*bR?Q|ZPY(Vrw8pgtDFBSnn8jFl^pr~E$Ta7SYc>%FbvIpc*R4l?y z*WPyg4=-lKaR#qLMgYPi{U+K|;|QO@@jV7}cygs*P=%HNsTnyngRhixVbqTF1#NVi zViENw82AjoO`#PEibyIjA`vsWrA~K(P3%3>&r&i8v^mMIcqxsru-PnGXHzn^!`@L+ zft_5FGlS4%*q3S~as*clk(U%0l08d7^5a1($T33G#L@-S9sJjU70^DlLQ0M0A$(Pd z@OsmumzZ_}nwC1q1Gy(4v^1{KNk>S1Y7>F*IHg8jvx;PacEM1Gg~GcRC&2e{dW3hr zC$y;$ICgTA_kvMjJ3>`bRI3W(q2%e$<^_Hn@HlN%zlRk@9Mi0neU`5}mleWMQ~JkN zh#671cAhY5RQQDP@e{^l`fbEZTZEqtY^Uo~C6na#rG{j~YWQ684Zi$9*dpHK6N@@d zb9mG_4r&hj_wZ+79DL~VIeZUb6?oJ=Gi(0}S^>2YDV)O{vIES0pmgCPQ8v=?v|XS0 z&*k|v3>Y4)j%r%bsq@4FSGr6a$W@Ba_gHc!EpATDl^V0S2D1mfFuO!zS3rcBIS5lDY6(kvFN^$d?i2<-~I z-7CzVqPJMYHQW-4uK}sk;Ir{;sSJf8PH!3w#^uWET!e+v_uc=~XQoxDg>1w7ApAp9 zHVap~UZiht7;c@;s7LtiN5cCGBiy*6z*%m{iAVT4N_kX)ojPW2Z-^V6xlbcpIA29S zkWA7SOEswd*ucoEefJJvV#!zxbf2pS=Ig$M??n!Rs491?_pTz6Kqo^I?hBEm2ehG) zA)MoR*@Pj9X#i0&uYRd1Nf$_}f&{%D;I8K~5N?JK6nSObH4)x!Ijk2g7l15h(sZe0 zN@>Hd501| zRt-`KxG$H?sC0&mRjH)!-5*t03LXC_5a@UesR#9i@XvzaVSMemTw>Q<+Jf-vb=;7o zvjuo#ybicXY$rAh;gE&KPuaE$wXhB=L@C{S1;6t!7@WM-^e-{Aipp9cu`0?I0-Q3t zMsxAhoy_W6088FvZf0{pvOh;n%&s7N)+)(_Y)Lm`KTuaq=YK#t&Lwc=C`m7)plWi}kvxg)uR5ElJ9JxCYv zoCt9SQJ6!)jS@sSY*W{)ig+z%vXdiu*g#mERqehG2P>>@LbUiR=lFaU@@}t^+$dRg zKvwI4$M)zJ!tB$}eL&Uo+72LFP4uiu`4C{4rQ9{JJZT;WA>bAd^azbs-N;}%g@OuF zK6WaM1GY}V@&w67X!dseGF{~a$s0Ratmajn9nhSa@;8lwUaW1_7?>rSBS2_l-S@6g zBcJ5lYQ7G71MQ1$pE@QIJFAs5;OUWTP8Wo7ElIow#F#VjP<)@}m=QLvpLI^RX~K2@ zRY1_wrwg>gqijh*FoevSu%9+_kW6H*LcuHbJs#GG89N#F8&Tntz_t_dj*YS6};oejQHxZQ?|ZczeyZQ ze%&NizkN1~6VNl8`9X0lK$JOeegs40z7>`#(Obm*v8h`Gj>lUhb_KU3^sh3c({Pf| z4P-<6&r0EE!mw^rS@=iqC6lATf)p0AIyEXKWSU3*81M?XAgG%&C z;a16;8gTfmED()mxmn9&LMU@+5 zKlU?yM(luenz>D4Z#s}S+oU0M#y-&N=-ZUrO!~Cf`t9Pt?96s?4(han-$g_UANyu^ zCLTTXeF^k;AmP!OHk#(}9Ic3y?GR=Wwo_tv!O6j$;>gNu7rzME1Nx7j`pLeM6wG%6 zyKlDgJ>vh00@~Q-)&D~ZV|EKEB<&W`eyjV{DOCz#wy`o*Vi&W?>r`>&uh||!+4?>F za)Sh}{`zDKs7}73KKForR=3O4YSsx3o9-1-*|1k)FDtZ%w$bomj+M5s1CqTLqQ}fV z5FT9et{Q3Dh;d>2#HQe;eFDSxeNrT&E@Ho+WZ!}p+)By804W3>CGar=parpBZ`yjo}sen$Cf-1@4ytZ;M) zf45e8AY5Gh`5G0`qD#v_v4Zq zaX-kH$&t`>W5zx|h5%$`L^c&%wbWo3pa!(`pg5{5JSef(3y9AlaY#1vkl^{&At6q; z!$PrB4vVo_hlPsW|B@o9Y;a~wO{=SmGtuV7~iVExKws|PKuB-I}{0qrvYzU zz?W5e3r!{+=WCkU(DtEPCcOe#hZG#=#xWTlhr7fMsbm~=PViJU0W$c`+MY95@B`wk zNOsOu)Bn7;y>ao5Ubw!lL-J2Z>>cPf1;XNsFL>b9|Gj13dNIWfIM_mU09NyiL=unaSPZIWmKApy#AQp*c5FevW%c2M9n? zlg($C`lvB9&ycJr=QUv1zE8_4alRshbABG0M)Zt`;yDWAR#ArJ!c0{?|6oV;eCiRToO((^p~!SX=0BQj-NB@5hr>6)zRCwi{CAmZ-V3u31^ z{Gy0wdoS|K30Pq?=r@+$#;-$~UgAptH2yg*mm^5*989iAc=9E_Yl_kz8ChnB1yLOo zkshh$@Wov7QA}-gnTH%qC{d>u`!HvtSTn(9u z9??!N?5+LHydB|-!d*sK1kiSNWH7;xDD12 zXMfI+#AS<-)3Qa)QIsvQSLJ%b$Vojel7##4w_D>+s$D794&w(;9#5GLhjwHdVdLzT z_9SEjWVVnTyy$)lLUx8l0RNc9a^4eRvsG>hI`*we%v~Y#nRmslnj-i`dF=xIr-q&U zsFMrrZ$Qd&VZ-HD>NSmK2FFbH{VnLXyeF~mM3AZX#QPD@Yqt4}pJZi!Ap@A#fSk)g z>D?DH2)nP7-hD2;wlLByvc}N=mENrfFf#6e7&+|$?;nTs81#bA9>j{7K-z}P3PL%t z2&aATxu6nT$qz-S-TzR81hYqiocKrLGI8D`!Di@VahE3bu@Ia|4zKtBfEoPGv~{R7 zLq?96AwP$EzLSeewKeMN4}5JT5dM;t*rL%@ZQe&Xd?jLP&5v7k&)Va!e00aR|#jMi<)5+HU42=nCS}1Ong%|QjiS<+Js&SQjnb*B$tid{yrovx^;@%-V zSu)56K6cR?m|t4N3xgH#`0S>0-t2Lnc#L_k^RHI$iHB+6p}tRqEIT|AMb8G^uQ$41 zO`nSDYsFI$?+SIl{GW-)x8xa5i8N#X_IQh_D3D~lg5+neRvXJ>V<%CU+a}luea_jK z0#DMn=UpUQd$JKmq|f$DV+}@i%5dp(9#t2^ld&tagGlH>(No@;X+n~VIqM0~!SPrD zVLZa*M&wno2<*R##YH*jRp@ap8>4U#QfELmy%2gxd%?*{hF&9^9NIwMKbIPlY>irv zl{m zCBWdj)J#Ki`xUP+#z339>!Yh=FtDaLuOfG@>(xO+G$Lu+GA-o|94*4S$rf;#6}5IMt@1KYE)%8dh%!;Co+;zf z*a`zL<$bM=WhS+7_zQdcGWAGQxmfv+E*A;=W_cz40*V5I$jW*kcKHij2Q7Sf%~D>- zsX^!&ld`!IH%X^5P4Le`QXwGx^HP&4re-&kdIuWxF~3*jf0C<7%iyumV6YRwE3eHL$e$D zLj0a6sHIUgn~!B$Yj*M(Nc2Cvv>y*oRu$GI=SzTd8W2t$%`~gXd*=Ug8TEyZUO#P{ zG8?#cI@44$OJFBYrB0G zN}2hY`-z1Q_lhF@J%SM)O$_h8^}FfpZ0uZ)usb<~(mA%fARWdGkdq9NK>s zW#ZH|YDML8z{lGdHnSu!=zvE94p8EgfbFG73{~S}&Sk?hG>yvWmMa`rs zY`)(4@j*`)0?bH5C{aa!mTeuHx)~>C{ zdky%o&*@Ba4dK1ln5)_K!W4M0Y{QI znFi!kYNnAqmUl$xGr@DaP9@ysk4tL)R#BG3QDGd{elfX80_UQ+e}L`9bK3!5+4f9* z87&-HLHK%RPK*ByAve@&e$yvU&G9XTu6HJNzsaU9{|$j-N)hw z_NE4r+KO2rDZ?KKz!7I())n=xXZlLBbZ(KJ}^Q|p6Lp}#qUyDlhGua%+4b|+% zbsczI?+=ITB+^2}8Hm#QBz{|_mHdzsfw26tC!CmIZk(!7^Orl5G;02;_A8B=zZe^8 z#3$SVgO+}q(5#XmcYq<=c@s780hIa|!Q)$1|-$=jno+ z1<5m4TT$*OLfi2B|E~OBJ8Wbj?6AFsnr|-eu~73ZT?<(}iz4Lrom`PJhHGAK^ zE+BvOuv#i^^9GVcPqhUs2CrGkxaLQpA?$Ev{#iy?j8+X_5pMxI`sOXK8p*{xm?3O* z;Kgf(M0A3yH!WfN5_d!p6GF}HyY!DE1rpK8UV~mi)l*%o<_oH1t&rP0t(w226=AJr z?}lLUZr9oKCE3^l*0w;g3o)`$v)9IM?V7RNm`{Yz&Mfi} zTlUjVH*M7HwOl{o|v*7%S@y^*{-9#ZZMoK90KaH?bPgQ7j`h+?UTUB2N7A3ruJ(7{f9_SXGuW`CrT*gL7mvexBJ>M`t> zj-zOLM+kPVxi4}ajn z2JK}{3SHIw<^ON4+;h4?uOqGvTXD;BR9h3*31C!}iwh5d3;*#ea6a92KFo1?W@kj=T*Dy7@= z-fF%DZ~lMC`s%nUm*?Tj2?>dVO(}MO3bxWV7TAFSHY#N+BB<9wDTB4adu>s$^&*N1 z7>J!HsMl7ouC4FPvopu@eSiO)J)dXi*`1x8-gs)Wo*iFXMHeO<)Bm%sLmIaYG<|35 zPPm}I4NOjIU5J=A*Wt;@uA}l(hH(|3E~q~Dm&z}(zN&1MF{5NUrYDge%dYPsj#E4m zXo$?pKXtixi+UPm8o+q%Vc#pgDeBV(_&b z6Ww;|8Ow|=H_pjHW6yT@v5wG@N=)oZU1QlRB7d>OFUE<-y~asJmy^75V#Dg=OkJ;q zrk}k@y^m%|!MCg^ypm&Kf_h(3ey;#hvXW;*@`?69omZNpjh+x@RYJlfE+zCDmSKKd z`~99K(V&rvmRj31;wG0iVyZl7L>lW9yt%_Craz{PX(C4B-aR~;igZGxu$=m&ws@Na znGht0m~lPF%EW@IMPXyYbP_xn+_Rdeo~KO2v&#UPM`(&z7e?it3)9BcRV9x;9(u5$Jt3ZPO#{XEptVY;=mAVp{86U%S>e+XT4~-! zC1V9NgI%2a!jvJ(*+W!1(Rey6O~k`IsQQrVbtAOViCnyRO)4hV+6dvs<}uBU zkuh>-(-Y{f8m2^M=o~l}EEle$U}Ho~gsPq>eE^PMSq~nsod>@&(}M|q$3rEr*Xaar zzaJZ4ir%H0nD0s0cYw!72Ol&SmpcI_g$r|x?M99o5eCOLko)^XEsg=p7P}+N(di^I zyL++!=jTO=61zCI=fg-j8OO_kIe+fOe%V(q_Qr;Jlc=C=jQkSb1-ZvteD`Kh3m-BI zh}<*N%mrf3JHYv%kBY7*xadRfJesJBV`A6Hi4AVcEzE37E~Wp&)M;0}N#gAzmAgn!$bnM>?N#!yG-A4B zSff6OsfY0Bpt4q22JKqNi<6E>Hy;td5t4*B^$J_;>cBl%c2v>DSK~U8(76KCgBh*+ zAt^n@v78(;6AWFH7i~MSDGBYwkx^bJVs%``?Raxsft;x>zPZ*W=v*i-#&jmThfmHd zTzgeg#oQ5$=rjguZ|@z_$RXJH@erK-*nN-p zV-r;DM|vMUk)PWq-4YQA(DGz|c0v;TS)||S|8?)l^S`kt%@z7c8=5x0C}+LkCXCFz z7o*>^7a3m6BHSw6+73H$6Hj`PwNCEM&eD+Htg%n@rj~KYl}=YmmJ&9g4@+2ZA60*a z#p?sW$$NGUCDF?C%kqc4JhiOt-Q4^$bEM$3Jtl;(T9~snQHW{k!sy z0KFb6_diSaRcpGJAN5q#MwiM=>}Lda;}} zn8w)*fNDN`bxNU@P0*xZDMJmZ6D*hf>U>!WO7IYsycKF6JRWkRU$Ho`9F$!60x-57 zQy?HP^n$zZcr{u0+*G;QhE5(CEH~|;L?G^1mYg|fEqX45++yGz@D^qbW$LaT%G4+w zO4LB2#`QOuFVP792D?!fvmdl^n2N5u`8teLAL{y3D(y#HrG*UeBUL4_e)~ZSnN6Bc zIEdqcL<3x{nRn6YFiwk`xRejG7{Wl~gIIs%1*rxo)^{w_Wv(44PSgc|1!l%n+?|sL zU%eVm7655BYM0Ru*__pxJW~_&3=}TCFr0)1wQR39eQL?s3m(C`{Kvb|C_;%Y$DNBJ5 zb2OsiX!ajGMze-W8Lgt-XJ1CM^U`w+W05w7u)qj#SJu$?(%^&I(F)(OtRV)CC9R1_ z-HBRJUfRZ`oghQnn$QuJ!78~+1}){~9A`0SgUU;Ij)MGSMleyf5mcEst~o)9cH(hR zZa;%nv_@Zc94P=~mJ4-Dj3sG%EP{Xn-9Cl>nd4M4``Q(rj5`q{f?8>s3YT6miK*@L zD(Th{AeO^sU08sN3~fZgj2vT;HJ-9ks6~3tT6kQ_6?mFu`25l2Gzj&|h74V}C8lBX=W#BlVfRoneF(&P3Xh%>j}j;yOb558qSB z77$MULLGS0Va&>vQV>6cv&>pYkUxveKA5aUuI zW#51skDsEF>q=eV$%m2w9p&7W#=+bn+bd-Bn@Sod2%fCpZ9G{r^7E-IDPO0m=)|l4 zH1-Miz(2(>qObO-SrqK&LkG3bbP7gLURq>lHIVGMV>;#Rw!z~XcF#kRUf`ju%Bk?% z{d1hbK|#z6io%8f_}+wZ+0vn@JChx3&zUUit7q~{UuH6vevuq`Zj5Bl^+zP@j$yMX z{WA<2UwSj`mL#}E6ssABD4JXh__u~ng{(40LHnbam-C{Sm+fb(=)%zG*{qQZXOqNZ zxG{R~@$r(CW<;yxb$_U+BV3Z-OLLo93$mR!g*X*h?z)|SQ5rDk7;-vs@)|F6hZ{6e znVug9j2lUBh}ALd68(swX+$$-^qukiy>jb&VY!SPig=| zmza)!Jdy7gor0hQb+a;Xrv*I!aSLdEuz`mqhjOIgI4xw^^;t;S>s|n0YU30kwMJ?# zDE1c%SuK8F$V}E_5%u2`;B^BAw37y2=L`PB^F^xa(wnkeOruNysMwl;6ZJlnsYo~o znXSq298tw`M6<_zC8>02DwE_`mPG4V=KBe;fp-Eg&|OcE5df+ULX^xVoibjcAZEH`a8f=E~Ic*ZSd zHM?UeNnUasaRRQ5Idsd|UIJe~PLZ0WWz!IXg|xZ~p{tH8_EyY1|E%6T2uKyKN&(5;?T7OJrW1k*K2EhKdta z{)*!i055&cy)Tk#LV5%oCo2(^#4jc$v7hlGiH3%3Yy2TphfLuq7A<2W)-2=HNXatd zAM~bn?oLY(8(V@uS-Kdq!fTdu{_4nbnn0AzxGlp=Bq@fj;PmLs6|Bz+;GaSO9N(?= zW;-N9D%qsal|0w8R}z^pMjh8H%vkFBl5B8;ZIfAdHBMHIREFIjpf>znTkOe&oqR4U zRCPth{am}>R^fXxX$nj$6!z^8hYK);<>v#obG=}O+$~6$S^?CY1sT6&d<0xuM)<8F zTYz~KU7g&U(rt-p58=4?q&$ttSVamBNpLsLHBkw{l1~FO=vFfsoL95SiCay~91Bi% zGpqD0Kk{5k>(gQhb54lR?(qTMmjADTu5Df{)TD?-;B z=&BlnMvah@WW0gAI1JrhuWz+hb~SPX>!g_*SQ_#-5HrLB=u-Rtwxfl06Jt`?HqK6A zi+DeUCg&l5Mh2w9QAV`UT`qt{V3Q-_QrValrLvTGZX^rX3|{LT@||3JtS_^pDtuQ4?s zo^K)6LMi;Kkqvx+0yQQGzp41=TaKN{e+;=}D--_5R+>_DM^D<#hA0EyN&Eos>>3C- zG#=BzRHSWV)p%qZYX+D4t=rkd&)m-3XR(7PC1?k^ zZ%C&G8EJPUoeCyk@Nx_IgF_Bszmu2Q=x6G3!xN0X@tw;7y7(9O`+ok$xq}EVR zp6HueN6N#+G@haRX^f4_E}Ez4qcYE_eEh=hvi zj7{$zNx}p#gDv{ZKq5MWXwnXV`sSp?zVkFmkwLX!WdtWmq4m*yEE0D62^_P#FJo%L&OLNg!3VG~aboau z`w3UHMq|P*zLaEBbX{T;><;jY0_Ve@z_FZLl73pssA6G$%>@}n^{(_@cz_g`BF&>s zEu}G@dQfGln5cmOxT4R!=J?oC38a;gJ18MFnaJ%5PO zZO%~l@JB&)DWkTBRkn)JLiwEh;FoyY8_1oS4oeweNXq>_JF)gKX@5*@L~D9flG?w` z5$3+GM+m?h04}$PIVk~(U@`l*L;39pnZAPnG`rB=R7NY&g&2?jLtz(UU*fssFG=%- zxj=Kh@-xe%1~41^;ocnp!qnQ9Od=BcY{RT$Zs5CK;#Ve{aI2%Ny2FkVvnK)QzAj54 zUydo=ukqmcq8FgdMZ+wb|K{*ylGFM((z}C1lt!G-VvApt#VqG>jNre30iB#MZ3xb? zr?`8JeVEtB*w*$qPR;~6&}(0%J_P4$*q>)j)<@MP- zvR&ECwB{#BLCgU7^M7>m6xBZi61z{RDk==r0v^Y;UTY%axgKOj>6Lp zV}Y)Ij(DXefUc^uHAE6;>?jBq^%mm%Ih8!Cf=<|=Az?9kU8NNlAA*L_E3C!mDf&cl zsvlG4zFg002jjIf|?3%k*yU+^O-7n`Al`^OQZ*Pz>A@0EnyQII->!XfD?PbBb+!a z`vg6-k@T=BU~Xzyz%v$8z_M9bK*PW+ah1}~^9`Kk$jjs%j)%GolkP1HhByp|xQaRy zC6~$9!r`>P^s}PWT!;5Vo&^<_!cG}isH=(aBznw$$E1l1SPi>zQTi01VOLpTk6mS@ zQ0*GM7!OdHb+&?%2YZuz4T8mE*O)}-uMrcXl6&w+Vqa-WMqOuDHu5@)Nx^jO^Dv*zZCr63tEZ%C8}SS`}{zFn>=;sV5w-0Wdg$x2N z-%bsZU)M(cjEsZj*ty+4N-ruAHTsQ5tP`Iy zCu7NWWp-@C!(cDk|JkB)G7N5#R~8owUQ^V9Trp_VELaz&#b0C5cp}KY-oFZX!^UFw z8)8ya(!HCTUzD1)VG_7wC`bzGgGxwMpvL*J)a)GvcDPowVFnB`kRdHfNt>fsrP-W{ zm5>Tica$=79W5n&j4{Tm7OzST6ymVAybWOHTV5Q!{FXM`AT!3^2`rQZ8~u(6HshU2 zUh{zVAt*gr6z4;7O#1Se28;_bw-7Gx*_?R1rwKq$V%hx%*ClV*N5LvxF+5TR{o=h! zelrBa^U)`c{VA97)_!0H%J@KI#V9H>V&zTA=AAyW3JLhgGoJC0RixQ}BzOt%(rMo{ z&E!ygd%!88PSiD)PA;=y=N4{H%4!dL?2(*^6_&S+0~Sk$m>3i~M($a{*03JS#rHQR zNR?PH1+vBQQ{a>c5*q8VJTvh;WY;BF``3=-?4`VQ4JV4?8m0EEHpto0! z41y~kAoy}ot1U(0S7wuvuS_-HZv>AzV(tcwgKYHaHzxJBZ$wsi00?|;(ipeby9)0g z5dW?E&RMMV?*xSc((84fRD*8)esH%zKe*e>9|T_?-~;B47_Nu65`%wo_!sh%yxOq< zwPtKo1Kg*tkff}z_{FVO`$cUbJH2@GY`+}B(O*1-f?u?_zp}ns?lK7i$os*ww&S63 zkCl09d7fhBJ+(Ydf-1@NgT6kK5fa^W2I3u+@G=j!G>C&0vm9AG4XwMh`b6EGGHUvgpO3Mc4#1=sb5Ea))pW8T&_qoivdGu}b2nAf8G{X`YC3iE z#Z=u*nsHwQazud(}JGHxbZlbD$Q55zALA;p+)LRn)D;Q5__|La9plnbR!i!jsaw- zLcZ`Mx?dkx*;b65+O*23;o(YSYY7-j2aldN3{HCJAmZgD0+x0EUi?XRR%EHB z&Dq~A)wCtMyA|>HNB|x3F0fdkL9!OMcD}J9!Y1p8DdGU8;rC}1<^EuW1Z#Eba&mh1 z=!kdI0IEltF>GoygM;Jkt<`b^EBg1tLQPM~lNrjuFV#|)5h>PcdAbH&?Z_{%u}RrU zt^j0J1j-;Ckha3CoSJrK4=%?NbF>`cHW;8DB<38H&Fg9c!_L~>-AwtyPj7A^qCD{h zW*L7(ghM7i7;~|fFpp&_s4L2mRI5NESpraX&rez-dYY-*iD=kWqnk%fVHs(o?reap zmpPom^`?3(x2_)eSWaGGMQ(dWMaKMgMYUXq4Fk}%#hv>~P{7<&%&f!$A6rRHC$)+z zsb$&$m(4p(I!kA;U=}RI@rvsI|9oUpWg03P#T6F2AS7oI5TzAiyQC4gV+vVYS7GT) zs-mW?ps%Z_>EMF5jan{Gr9eBaRkM!M{9(8EY}9fmHs*NUGQHnPK7`SlR-P!239Nw{ z>;=omEeB1I74C zotpMBl-RNI=wi>*+i1_vzQZ#`#UWq)Xx0Z-EQkk8L{}?_lE-kDyBtXLaouK7t4H4r zCc9HrR;U40NrGk}Vh0KzAm6tZv#mf5k@ko^mUE)#6;cC8yKdFgblZMFH3OagUu~1G z$Zl=Kacyon6O>A2_*RZIozd{5i#9Am6jxMx3NJMrR?l!$%k(UAQX7ZfVZVuNGdg&J z3~_o z7A}jd`@?7uj-Y*&;UQ968Ft;&tvOt|H5!Djz!rEQ)(AX3y@1EoBvPXFiL^_Fa2Y63 zQHIj!Q6ed@EcAu1YD|I)`f91$NSTeV#q;~T7W08uZGN_wx7#AZ4WkA4FxO#V$vuXd1Sn%Tc~Vy`w~b(HA7_l7D|s=zvf5l!tE4uT%NIyh1-YK})bgN4 zBs>{@%H@l+fZZ$R!Ufs&)N(U8rrJzV_f9jpGtVl|8QGK=i zfXD)PoLPVGda<#ty0u~j)~+8yd(HYn9io9{aqQSM1NPX}fY~FffdQpQ>^rob?|QNo ziB;9ccAZ9c3=5TqTQFUV?P2-#mXo`fQxW9ma3$E7FoLSE{AqVeIR&fOTnkawnRHGF z)V&+JXn>p`;8HV@S{7u^klQk9B_A=+SBkV;Qp5EPLDYe`?5vjOtm?v(l*$WXI}oZ# zMGKE^NOJW9>cTT8J4g(FHUMjp-B2yhDPk_pasFTM=_0))v1vq(5~67GYt0`9vc@vO zNj)t6&pd$JJb>WB#U4gcnlgkAA?pRBxRF|3%!WGV(#y~Af%Xc*I|DB0DezM3M08^{ zor6wntfup)ZyT%S=CBv=%DTL9t;C$$uMJ>O}fI_~Xg<4Z-6t9-bt+$UdAWNh)`EG?S71ORnz{c`>x!rR}-~79C{AgkMvobEKi~;4Q+4% zbAM^~P)f1kCuVW}vAq27zw3HP6HyY7V}oCLRO+#eyuJeb2|VeCEhXOvj6AJQloiLD zGBOvMG71fwu@zg~j7%)DSmgI%)%An564ml^;d67%NodeKMX7gxllK%U*jBlgYpYWc zj#wr-*dLYWuA#m{ato690V;4F1Jg6~^tD9vY{P>lPWrzgVeY{9YP{2;qs_!oLGlFI zcp4^_7qT4Q$gI7Bf_+Q&s@+@aJ>!;Yd0zNCz?Tj=yW%%W!oL;a)Evc?F)FEy@^);sP;KV>RrQY0Wk+sWq$mlGbWE zL*A_oKidKS6pM;#$#a?(E=hlkaaUutu1fG2nJ9Th9by?~9{;C2PnqEggv7}N^yrvX zz8gD8jog{NlH7@xgW&CorZ*a5P)SI7dQdnfdU`NI=^o4rI#2!=;mI-1c~3PR-)-!r zmdBI)q223~QvZ-AV1f2hMo?j2omaXIvm%o7gr~Qfj?WJC=0GRgn`z?U!^lVZsO5Hj zKWM|wX6q_U0Z|*PuEJ$7o^6?PyS61PRsg7`T`y-n7S`fNTb=^zc5HXU+YtvK$6TM> zX^rx2Tv6JNG#O?&r#%RvgYXI?Ep4xs$Fh-W%pofNElWZX@2)q&2(tYbmK})R69GKy z(x;1h9+RS%-9ar+pRI)Y4jGez4CceWBhN?Uj>KAMYkn?UHt}~W!uJkbJrjKgIFS<~ z;!8(0ZQcs%L<8IcFE;SDo2$pxTIf1+4CCBcO$Y3gI`f-fI;-jY!!Td+mT_vAwk?M1 z^;f8yiV|NnosqWeLWVvQ04zLHlQ2+jA~tkkfUGX$CmscW_Lqj;6%k$4ZsNQ(q;D6( zBgG;IcU9BP4ad6j)K~4sd^oEc2c!kvxYngR&tpP&c28b(XHM_lgKN`zFqi85^gQfm zpj>wc^gJXfdaO4DJ3lKydhPgqR<3w_9x=r7z>0J8B~OL=6K7-YA+uWVmokqM<_`|( z9ej;TuxCd;01C{71pclGjGGYL6 zR{;Q2ulxvZz=(px+s}SrA_KbSSeoEjT&1h31If9rr-5Yz%Wcl+O|%kLevmT!$v}An zdGxk}$cIh)@Oqcp7bubYcPl(s~d~T}#aRYHQHLtn} zpCA`OLs)+EhA`7N9LiI-cqr@H(xEIIe#7|R?qTH69s*=nwm*}gzmpJB?L#1n{IMag znyx(23Cq801YgB#0b7f-wRz^kduAUC5xzE0Yl1{kD1JMTgJ0($b+C*tRtGVkehuQj z2M%WqbZj`0%nRC>ZB+jw-UjF)29F@MiwYjuw99 z;j#<=5#at;9;udJbh87T9V{1yNOv3ROhn=^Fy@O!@`SA)$@rFzWYyDS6w`0VDB>Sn zGuZjrYrABK(hzVpt;Pbobsw#k=SABAfOFjCIha0o6$*gU^}MnoW3*ac5f%>s<6o^6 za~5i=iNr8<6>_=yK%Y0CD6@rYPzbpWE?vRzT-)hx&mmE^&4i2xBd{h4GRa~ z==FHgmdO){&Fw)GgkEadR%T3plXu+&b$KQHLvMb{lgDD?GO#mB{qc=CX2~I>Zl*!? z#~MEQ`Z2*}peZ@VRi=-UnUq;jk5tC;(1QWX^>i__oj3|EsaHbywgiM_;f>jpaDdJz z@n;@NqsJ)m;n>aA`rfpnJy6h?-WOS+B-9w+{ISvglfhJ4Zi4Ml{TOmw7@M|pVFvW- zTzD-TN$Vp*!#P146V9`IFPs^*O$6J>c=)HxJmOa6?aER)Gu0x1N1Y~e8y*u0F*krJ z{I;T+4CNChgRF<;!v?C3jM&SGYI&)c4?MAraTP&hf$$1o$Pu_!-}6Y0@$WNE>n8Cq zzE2{783^yKE;A%r(gV3X%}^5m0Rte$Z4UU3mNy=S&0sG* zZic~-qHP^6>jBKgueESA17B2hg4;|YQFC~*vfq<029URA@~pm?$%#6jNQ0K=)|%&F z0ACo%@Ffg|Z1`={lrs`4dKM$NeipF_rjoWTtWsC(Sq8G}7z1YBcQ4piWHJRo-zZi> zDN!WKouIC0*{xMFwNNbvRBq(n95X}pvU}3vt$9MYvYpXYDDQag%Q4ekrFXC_oL;dHTI<%LZVW3@_ZV&} zF@}^T=C{;a7gr<9=TIU7Wnx6vyy>{wNIgXEfmyo8SS^{OmS6nrZvqDFZ_O1n`I4d*%WLIO!pQKkXS#rnq>27JDiWUH9{rSxG?(>Q3 z#{txp(G%86gQ-B>n$Oz3bUv|TGC)n6y!*4fVX|}~wADCHt*sh9any+5Nx@+C?ap)c{+E3ez;b`e6gCg+}bWCRe?#SPRD<2H5hK{ zS%~J)SSuWNX))=+Q}E>Vud8CtbEBprFqTDScC0~5UHbi55!Dk7(r$@?OTWOmwyD7& zJ7>el%cRujkKSyS64sO6`|hrmn5=XX6d z=yt<$H6`4zH-%>R6No#JnL>1r7vTMbZen_(S{_E<1&`0F4?+T#nATL>N@RWiCec8P zTMvKn!C-2l=L3RWPQgxqaOw-oxsL|DF`)W{dB9&KNj%j*l1P^g0MMRWBeNu^!m}~+ z!S`9aj724F8L5QiQZrVlNjl6vfNo#+OtTBpb6=f*q=|lBwHZrCMIlhphJXO53w?tskJ|_ngrD*iZ4lD3Wkz zf^ID&yz3>?+_^&C#s_cfD%siOHQ-S#NoKv4n#{O=OD5bAmsTNX9?E1c^Z=g(6$T57 zAFouJrbMYqQ(pz?JzOj3;k!3LYAgkV0jty&iaRzK>OwAgisC~+4P|7zSMkWQSJCvN z=jVD$b6zF~lm-T`=9EnMY6DYM{Zvvdg-HPenLSzt@6NS+>?5z5SKb{51C{Ya)EW|l zZ2&dV>VsB~B6(`gYuQ7JT}wnjS1kCDmj?Hgz!d{H8THpuIF4zQQM!sHzv=nrF)XbJ zc&spV>N=j^AL}^A3R+Kk8$DBPdRnYB52fqXbb*-J2G-Vt_5XJBzvL9MmS|yPo^9?; zD>(W&KT=sW|9oL_+63MRf~U${M^$P4`SjZz54W2mt?dKYIX0A57t9_8l8>nbfM5vX%55;4ZD$ zW*}(OM%cUIcBm%eM$a5uT?YtykiW1z-=)Gj@itA}T)fZDtN7awAG)0oUkw;8H}Y{t z{)Gr=JITpX$ZI5DORs`~lk(VH1ni(eZH6Sq!4|J!qb}9~IyDs8MPG7q$3!vbuBxf9 z+R1FtXeSBeAZXIMQ%z+XdK37}G;6tgJ4uvILIYnePf?aQA(5QM)033OR_u8ifhHmf zT|*KjxfQzFgh7UflUZ0UpZMn`gZi7hSVg?tMHpdH*0{;k&uDg(fq=r>t(LdXpjw}n ze|0Br!)zi-_QTBG+O4)#Vj&c+S`KGwNCLQ|tL4YG2SBH<-V}Y2D@z5t)W$ZQM+M2{ z)K^eRs=${Ps(rou|el2Pb%^li7*GYp7 zsgMx@el4b56a`a%FVPD>vv%S^$}q_#S$oxV2jqjj+@;SxN-uu|(tfa=+(NkSg^X5} zQ21igY71)b*FF}y!TU)_G3x(&l+91vB&g7dY?t`~ZaMS-kvr5HcJ3vX|3{Mh*8$ck zb_WSdXJFW~W1k+7ZKWS%4!LlUI@C4)obY5_im?wPu(&}D-!kk}3m5IeSqo58#R zK*9fO7VZAR(75^h_d&Er`ApP=L=B^y9LbM@zDq&VDEOU-}7VD6^9^%s_babyY7}J{wx?+^8&_)PI_};eJ5}n2 zc);ZmNL*zYOHPx^=Lt_7z4NuQcdxU+wJzRyCjWDr*_>$`wh5nZayly6O$ZAcKSipj zSZWW;?&IIX#SseEB9oMyp=@Lx)U_Wr3p5U@eg&5h?>wCjaYS6Otg_cpxyX&`6}HJZ zOGKCt0Mqt2xGFQk*{9XzMcEv+qx8QT=MWiZ15~}1?|(^l3O}!|Antj>7Fqp}Uoa%9 zz&=lx9TZ00;Fj{Cx$GNd`f%uDGPcnn4tX$-j4=~$W0kd-?7eTTN#|s3FxEw zoD#2oiN^cP0WK`LQ_xmeZ-*!#{StSce~DDrCg?Kqr2kGCB?aDsFfO=&!{Rvw)J!BO z)8xT6u$2)%(V#$8xlF-?hY?&gZuVx0K??=_;IjdN{UAbZ1C+ze0>r6FOYcg-ltb_47@)Zd z#|IGcytqnXVe&N^NeDDt*>>+~18l`L9&h?Ja@4j0Rg!vNP|G+Ky4MQFqi{@l5~2!l zzyh93|2k0w)rRR)01wW+99J zZTP1MJ?@S<*ktrkgLfkDbGX0sKB)$8fQrpGh0Ad;9}J8~iCpgoG~Xpa6n`(5c?L+{ zexRlsO-mn8D5r&HwvBoA&4A|@6!F&8lp>-EazumK{)PlD83+Sj2G5lN`xmqCwyT&B z#Ds~@l@7Ujc81;4{b3iXFTXSNAu;|&g#7kCSVAf?^ywjUvgsqvC=Go?Bije?aX**C z(Hp&DQ0B-I=LiRcC}A11-uJ3O_jbKt3qs&yGW=*wjh-&~EkruoQK6G3%Dvkt*4PS` zhfm&cF=zz_UPhSz%b7l#e<^w54DB5q7rlJXlnNrd(5R{id;)x<>jryWe7ohAwVDI< z*d&&}uJ;xva!|VTFy>E4wKawMrwKLTnkn3M4gm6gdd#>49qhb~#Pm?gP9emekQm)1S z+)&UVWASV8wglEsr@bI5pfed>xo&UCm++dkxc7p2;>`&~!q@)Z5mC^O zxM8w8OHXQZk@b$WXJ4pu{;xuUm@|<%#pXThU)T3+WD?#}XXrGvd6}?D?%x5tl+HB5 z4&R@x^M+#mOOJb$6Qs({mX!y$3aB39GX=aB)^fPHL zoW8L#@A{2Kwg8}(&R>7mfE%BEWA6F!jR_g}otEQ~6K}n$H(3N}HEo3U2P+D@ALPxW zwZ2)+^Qfp^S>rB_{$MKQ{~*hi2mn{E8ef+H6Mizl?4Ja161u2X!=a;0Ar=^EOoi<) z7AU7*gt!Sb(`3-hDRP0x(MSUeYeulcpx_sAUnBrD>+|j}yU?I{>*9pD9WNAlXdp_yWY8 z!N`4KNaX8EH5$K??w7*Xao=I}raeJo+1st6#(?jiSuk^av0&_bTJm)4u+-2QH*+fu z9cLP9rJIb<_p9gjmAUF`T!hm%gwGWM-2QNMq2J**>T9gUZQn*W{>XWNt!CbE8CrS&y^hh zyu3!92E?hK&|*xa0i)_ZqMK7eLx&azRv@zHLKnql%gx6Hp*BL9oNpC0@(2;uU3)Pn z$$($1Kr(dMgeaB++AVEw(9J!Rhw3a3$12i5>;dvix#@ut&(t^Ipbe>{p>>z=N*cMz z1o?B!6{BAU{gtWAP&SpB#lkAn)I0$AJ%x{y&lnQRm|_2~;JL#2c2)SD2>7S??uP*r z^=uPgq}SY48&Xs_0ad;hRh0wN z{RD?Hs}$xERfU2=w5^6tTo&3AF*ZY8wTOdtY40uQ<&`OUm38N+aV+1Dh&;pRX*F={ z*N(MTi5>AzIcVgt?SOZBT4{ylF*v~*!6>e?CrGsTUG1YzNbe!W9)$UB7F;!f7F9vf z-+>U@0#8QHdwot0JN6}vV+@buhXXa|2v2^5$IqAODfVLRCkPi0b93ocS@oG#V_6HT zrlC`8S=CrPY#m7nHiH)PLjvgYUW&E}w+1tm@B+^EAWtBcSeClB-z^FK;u$EoZ0@mf zbz%tA6}w$)bd^I@G(*}mII@+&kVVyr4NBq3&*E`g3>b2D4Q92Z8a#rR@K0fz-2gwm z$|G+{?jo=v$vQJ=8Gr1Jnj zN1%>!4z~%|ruhvtw0UoR1Mco?1EQukz&o6tSxgQs!XKWSXKm7kQOt0ndGdoN|E=CT zLRvi+g!FaR$OBq)q0TzyJvft?RDe25vBR0?Fw5Bhw`oHf-IZaP(!zj-lY|Pi9Obrpet##KD-%^PKZy_3wjKy2cs{_#{h?RyPnxi)6<# zB5A`?J+@{duQA)yqQ-gjL;%0#-5R{sm?eCKVB(vQSa+;w5Q_R585i)#t< zt93gn17c+)X$#=^doy^hO#eDp(p|_9iE$n&`o4Z|5okUwvCW8LNY}lm6KrMT9y*aRv=cmz zsN@bGfx{01D1E!s2gbnFa0U5I%{AeQKstdW#lLU+kG=t8abYYhnx<1K5X<<}M%84x zU1{lO{XEP6IsRGYr5GYFNr8Hu*xfL%g2`xTSLvyBOP=u6Ej9A^d~z$+3xis*;m>TP zp(78Dt@+uU);!*Ot(gX1ZCGm7wxPLh2!lFM@l=q02v)+~jrrHlO(U=GQr3o6j{v6) zGuWkW8aYe&a_OxV7ASH=slo1SB|_a9l}qm2t&@jFUebijx^IqE7kT<6)l*|F9(WLo zc|+ak{IT$bw+q_x0>0o^RUkl$sb~uyly`B+)9MUktvZgy*GbKI^0XiG)W}0_7*E?b z$=WR=Hl?2lUL?A`pstnpvQfrVN?n1MhEDOk^wLa_`YFJhiJR@Mp-=ER`7lZ2eaLQQ z8-tQ4w|0VYlBl!(H0+dHtyH0sDqG`OQiZdDr!P;EYqT3-EZ1yRsZ(?&LK*@>rk zTqmCP^YBa&laBC8RaIRGr2IAQtBi_}-`~Ke*d3M&?Hi938@oe{sp|$2VnJt(yc?hk z)U^vssjIIu5iY(OxhoxcAoq{KO_f%4!E~mWTNN99+2{G?%eVz}F~F!^b`5tKZkKk^ z$elS}(4_y9(K?h@*q+`6~p zJWPJ9osq(FQn{!SrB)PlV@J5C8)N9+o$b`>?o7w8@Jyj2QlqI?CVgf!u?KVe?jHQQ znV$h3Gon_<(?p2I(-_i+GU zYgHWxnqd}oAyee>aUPo3*i$19cw$mviP^hYxxALxMN=8OCRZW67b~=aUK)9r2shr1 z+%)omBubco#X{5$h#HoI)_$&o8@^$!(+_BVzc*Wf*S$4#T(4&zMs`;p4q1)*vYHI& ztD&=BC;BpRtM=2#!;&G;L&zT=y)aqhCC>F@OLi9kBu%{glbEFfXvM!x4pTlk3@rVF z{uHEihq}1cCq_s$69{$5$+;DOU%oeJ09&jh@J}Hp?nv6#zTTkUuZYrd8m;hXb-Jtw z8_1kBYakQs-auyPHiIr#Fqe#JQ&y(UJ0pt*;PJHU5Kk^gEha8IG^`!Ro-9- zy5$g6&0Y@Y&Myt-?(YpIuK>H>;}iT&ru~%eqlRec+}*k%#19Dd-@)sfDLEJctXnW2 zTHSp;4vy}?=buI3P>np&j*d#N8_i9m^Pn`CK9tl0TI(Z$FO`i}M4Ph1ICiZzjJadR zFlPBX!!+{HXCS<}@61KuI%VMisk%6jout%2=Aj>fgm4hR{~A{3^4`SZ5 z8_p~hGn{Ag{&4QyYXryc8%Jp5H#Sfk8Rzt>ggI|e{sT~klOgg&{f*Lr<*>0P;j{#R zc&01?XC5`QBG_3Y*-AN%V*ZOB#r*U@|IceQ*KQci`25m88#;#k^V!gD#dEb9(Qd#o z8r}^!mIX0%EH`v5N6NoQS8XvdnR|V72-eT4So{OXjL|I(S9@KUZTyRd5 zwSW!6z}X%l#5|Y{4>-J&*Y}XLF;O6#8$#H-$p|5}fUc2s%IjCSO5!E_LN%3?4J@b^ zFRtB5S94eUG5w_M0yGe*S?N|>&Q{T;=ExwapH=<_46v-(lB`Jylux+ z14+CzKUb&gMz3Lcy0inN@uq?c+$fy&q(?Y&>>Bu|=$;h->STTpqI>-OuS` z5lrH2{lDrH*%_EI(ZCKRR&Z^HWbYsn=0e&ln2^9SpizX-<8CRUqI2oKin9bH5+^ZA zuP3o6be+uqwohiZHJ`%FI$;WnNB$IsbDqkzOQ&*s&!;lBKGT?m)=gs${5FkS9y*=h zJvN<~3AyIp+f@pE+l$Z{q}n6lap50(CK+f0)YArMtJnl$8B_h4x8y3_B#>8^nWSA~ zpziG-=NlTd5<8Q1%Ep-EjU0>_`MaT@=rk)IpE^wQ>QOO_j*gk|3p*v^(1qcN?*r}H>9gk?azHZ$es zL#z23TDWkYPnn3N0N~Wt>?g+6L`B^^jYj0o*T_3mcOgKb(Zr2CQi}< z7NU{`YzciAvWV?m$OQQX|CCYAfOgL=zP4GWyNeb<3dH3 zM4_HA|FMXh>baQ4fLs|{BbzcNMT<3bdd?`8`FwCJ$1FQzDP~GuLT_J&w|mvJf$cAN z4k;lG?UJO7@Eq`&Z3LG#|N+u?yW_yvoCe0xfF z88Y{v)Mdx!IhdgANQEFMGOHBZ#i)$CQ3uGY{^hu&+L^6S>{ zG?uJkZtJ#IBkw~+^Paf$=?wkg&BXUDa4P^tW(sQN>sb89tz#sQts`}gQKrMn))435 zhuanMEGU8VvzUue-X6c6ZRh#*Yz!PWkWk=4c2A#_h4RF@LYspdH1!oFG92nQnR=9! zc~qq?VF&E(Mps>F**k@BK*%S4M}76|p%pMirs6>gxp=5`o%c;!Ly62(Rw6x9$tlM@ z9D5FLYemj#s@_@M$jFb|NS#dv(B_96=EyzsrJKPM_1>n@$c@&>0*D)y5A%N2mcp(8 zncc{=;LybetxAs+?s zQB9`&O%@8^tBeX8t(?LiOx zc@*6hI0EXBOjs_i`5;g#7=?`6-@%~|G-L`HyJT=*YcrUjZ{eB3lcND@xm$ESVZ9R^ zsfLGOpGP7rgerAN?6MU<==8+aiXR8yf)#wOv|O^sfaBt7UJSxkS|AW`0Q{I>Y^Ol3 z+e-|GiLTqeH~uxicGr8r7PYYg>AR0{OxZ`q6jv~ZeR*OjdhUayWT*Y?Aq?Elpy~Sw zk)7B~ac?*fauSB)dw`{W&;eG_yAF`1`2wJGl8+w{MrR=~?S7C!haM#DiHphK`;CXx z_daOr(?Om)vqNNiMbIG@!sCb7(Apl>^j9n+I@uS4-NaiH@D9UIff71=m>u^EhY5-5 z;Hqi%caK6O+(e8$BvkV4V6!PcSI7}{gl)p*Bix1aKb*Xt^AD?_yZ^9-^2#JqH-oAV|aDx_AH*JUs-H21CH^q(vQ*9p^?b3><=H0LUKFXLKE!JiowS< z@*BV|08}u#y437Aq~vO_B>V}UBDJuLdAx4CJn-k8O)DelW6bE-)s7w`@>{am24!cH ztQ`R;-N717Wwfl2YrqK(YQj&j>b!V@$58(yk0I(L*WQ7D%IqWRsedO3R}+Zc91m*h zi3evirZU;vm53%1PjOqXP7y;)gSwj8amOSBFFdW0TQYGIw}0X=I6jNSxqF&<@y%(P zApF4gt!t5urELN1wIb#WEBWMWUR0#PK93-g9=UY}mzTJ7sSUe?v-3!8A>VI4 z`(mRse+ohg)pN~E&cHiLD-P#a<%XSOnK}pm6s3o^@=Xa(nknUB?0F5{oILwH%lbY2 zzcv?G=r&xSv}$wc{cxO#ba*gvfb!4b=C!f~sRsuk$3njiv?kf2zaR32~5$k$YaZ6rCC!tYp))&$L|Lc)~G2 z@a@lMDoDOcy{4%ova-Q7K_>}uz|!x_b~ru-7o01j540Qt7js_a(f_zgbi&o5wjSo! zT!FG0gK8Ezx3poPO#<0N!osBT{c^@s;##A{>{4OK;J7 zdUtsGWZ}Lnq#AtR{1&*F0k=7PopGDFNT8edd*$ider2(SPx~yv1d*bbD=qIov z@bRu?@C7ck{R+p0-J`yaK(uPAs|)M=a93k;AxlMrLK0w1K7{Q1_(fRTYg>rMYe6;S z7ZOJzPhBjzGY+K_M)L}GJ{9bOUZ!v_KKEHuZn#f&3D5G}uyQJc?|7_)u?epSr224C zpeU&`3>$CI3crIJsYZa^!bG5g^o|F#jDc=en96yY?AX7E7h1xKNREO4V2f4uPML-; zEw8l@zNdzi7f!_*dHxs$ZAp#gzGTg@uc%`7gc6E*;!27+6zTbpV}*=|)Jbn>!};O0 zdT7O4h?tMi#*jxm6%mivmpK23TXT9$_~V;TC(T|Yb&<;}*voSJvBpLbA!Ml@C$gxAb7mZ2(k zfuqN=U18o8(X*D;Q;dJXtIUxvm=t&Q|J+`(qm=ZL#3CN7(Y^}AgSaPt#N_}PULq6wr%94Za4KC9W#?0?C zVS$FodqU0A|k=IJ&1LYYr=z_TN-4KdITyS}h?IPrx%uLA(}`SpCbstd`l=n#u0 za8+*TS2mWBUzs=Vex->(^|v^-PLv!9z61x2M+8lfcP|^7!l?RR;Tlx^ULzp2g>Y=0 zTm65&LEzEPw~$yLrOy95E#_fx8IT_Yw>;xgnlj(1-`PN%`%WunsLRd{8=fhVahU}S zG~oy75DaZE3~SRtW?)#b%ZY-QLoJ1)7i{oEg{4e+$qyndGX99C`zkBiM8y2m)Kt_W zPG49>F<-bkfH)~LQ{tUl#l)K%F#p9o6aI_c(DT1&f5b{xt=y3@4#4L>nRrRT2$-jl z(s&X)bs4(NRZ_v*NJ|PJ$Ve;G*!Y^uckibEYqw2A`rb2Tgx7Ew2qsRIfz(xL>2oiM zD(w&{18?D<(hz?%g3L)%j?5Hi961K9l5y&hMQ`drU!18>ntNo-tRVMwYMk_CnLcaYqL;J6+ z1C1>6zQ{CvXLTzum}^kMmZBP70#QLrV@uU)|;!l}Y{zxiybpaGzT?H6+|kwDK6q4tSEe?xPV+7P=)5OtiG3|HVX0`^Ed4 z@|HbfCoRIWc%|5!?bJC@hh zlrr3@ymo>DfHpVF;h&z;1pwc&neuokJf8KT?pVEOLr(L%#wtbkxHAMlj`48YE~-jJ zN5odp(*CYD6__2nRn*Gc)8_!x$8HIPKulvp@4~*4mQK>lu0-749Kf4a7gO}ki@C$d zpvj{q&j^?10QD($ie-aMmEpoN+(Qlq%UZ+$C(6MkRo2qV-Sf)CNDBeJ>-dMg6-}v7 zc|)7r>Lx6=Vowz^9YSZXZE4_2IH$m=WX_*r*&#p2LdKc4+6EGV zMz+il@wQrdB%l#M{>)A6FF6fjm`Xa8sT>QI_y3#YC6&rtJFUGk1;OC5t{$+?=eJ*x z60*?KNGHDAv7DINYvmrb7-;=!%&YcN4qz6`i|%5hvB0NJV`BMbw zWM%Vykt3Tlqv~4vmQA4k-|^~NdAbnS5OyElRZgM`W3DY{XGRUJ+#x#(D12pdfBfDi zDY6FXuztqEFB;cmrdU#w`+1@N=UYolNA*%_Y3UT(*IHWo*i+Bi{O+#WgwJBYr?|

=s@J0_{S(l{a9sn438EGlkM^m8BW8r;zkS^F8bXdC#ECjX z>5Y3;4A-^b4LeF*t`m25&q*uKaJ>MiRQ%kOaygd*HO*N|-<(QxW?p;a%#-Nbkhl)B z6C;mk-s<0!YgUTqY*RX&_*;(cLC>J@!fLepa8&9{A$EqvK*FCSYxZhZ-Q{?{&)bD(^-xDv3f#ZBGJh1LAEU0^3w9yLaEC6+^ zTm;|NM$lQV44UYwADyd~?vxqSghtm4UOK$4XfR&z(@Dgf+h!sxnlhHQO|=uHv?Mmw z(q8&+O|?^%?ohDiOmdtg{5xwqiul!M?Zty;{N}4>+GzP^SaU6{auzn%%F_f1@aCoA zxAw|xn@cmTO|rXIv+~k*3u&^ECdjc^diKbQMSBMcswUbB$*#bVscX-g3d@$$95=aqr$PT+vTIqDHh<7G$o38N1h zSCQzUtt;lY*2*2X=+?iBZ9QF|h;$T6E0>O(H5aLy2h+Lo>(msMD~C>7heupsJ*1u1 zM)U}R>tu(uVZsSf#}( z|Btozj;rG69*4c^7A{;^dT%OrDRu-EdspnDNU>u9EU_1CN$eORW53wDVu?5Q-W!-$ z0mVecF2*DZD*n#w%(*TkU!Ujsyf1$+dv|8eoH=dIoGHt~DBXFB#5Ppm5#kA<0^dY^ zKU5f__MbXshc?MK$n*#ynjCE?@RO984TUj`Xl)t^6V;-_py;PJnRANCq!$TmE(ppJ z-WW|ie!LjMg1||21-Df1Xuf(uBQUDP+1VJS#x+bB!CILcCJbXw1z`f)7ab4feQJl5 zWqejib#230{v|wW4pm^snh5-eM?h1Q{U4hO@hZwsp_I+4;Rns=co^e_<~qKU(Tq?+ zGn~F;G!rH;G&(dF_?IsCH5bOQcL6OB-Lw`+Q@JG)Dyb!JwFk7CQSsJkl~5$Cl~A2k zPi!Ud?+xU%LJG8QEsSQl$65=cRHUy!_1m7OHjw<@z!KvH__PMP6l8lFVZ2(X6BPQT z$Fd~qv$Ry@Ke7vaa-c1|revY%4=Hzkq7i&*l+`68S`_ogPg%>}E9@4b%vL%R5 z8;&W->cQ215xnWSF|rXe8a^R{3$w9kG-&E<>NbzjqOss+jA_wE=b73LeEU@hEua_b z?CM_V3+f_J9VSF*?AXw6UPH_i#xkl7zBYU(LMlQU*&DUsiTNqIkHGIZ__+@sA!t9= z*A2;GYexBf1-RQUl8^TT!MXUqV8a`N%$gmgMU27hLgf@(baf8sCK0b&$ zbMzpMSm82!z?OdGkHRMlAHyO|Lk^q_9W3w-l!pcj{B{Pz5PTOk1mC3(;T|aMR>gbY zO=J7dREWkrxVxVQs3^KLwYt%6GV^F5pL>p5;y7P>L4m*>8$n_bCHJAR{S*4dsf58< zGEHYraqY$TT@4j*-_=m={5OUIiR=0w`a(IE{s|*g7Gy%{caRJSNlIv=bjTTvfc(dB(HahwVh@jdNH>_l{Y6yN zYdk+E727Vn_oqML6WwOX88|*MVH8^ipTRpt(-Cv-zzPAXRO(|`Bi8a^oO832d@Jxb z7#h6z4R*(KELR?C@uy`*oK1nPE3nyGsKnIl;8^5@)i@+j%sAfh_x3RI)oLF@W0hVc zcdXz<8d^WLmvbdLs_TESR>v1WIF|&ocJkN_p15He<~W-1yj-S zc|Mh!f&+lbpZU?B60o7rO|gNFQT?T9&3R;;+Cj*6CozSOoRyl~_S4is zHv(qhGlcr&+K*Y@@>-rn;*$`mOG)OgO-BS4PRDM%p3Zq)x++|eX<-0WNh-}y+4c63 zhx`bprW6&jWd{1b%1oro@R``ROEdZ0sVN{ZtmC5^?)VEmW@VAJR z`*-*>@jD*Dc?qGp~?pI>j`s&a>RcQcCgVLB;0a%Qb*Id z0MC2puj;ls-r#Yo$F_1FifD(qTvYDBn|5`7xy1BJMQu@fp{?w~TP8(wk>h>l@j7#X z8Lh;dL+Mn9L-&^+mzSF$Q@!RR)h5pu*r$_jK|9?}oFoq(BZUrGK33$)h)|UULMR_? z7YKpuY1IOuDSN8E5H81eTqy9%oZx2*wVyH&c67wDdgR1b!I@l3hTui`LI`tgT8P8I z;e}}YZ5N@7J8Y4_kGLOPB=Ga-?-vOnDo9^f*pWD|!%mW9M38-wajF`hEHq*mr6&t@ z*wfQwj?6qTMMoS?R;7le25GnDu9Zw*sbW59vCxxi*w*X&C7A%Ny zF+?fr{2=gqOnUwx)Mk|y{UFq1PZxg>>Z^EqxRffjs`XunH~$ED8dIRUe~Q3Py3d7X z>n^<-Y0k4Ii76;9NhwI_<0(Q2gZepz$J={BO{Zy-eN*1dvnTVG0V!jC#8rUtKMKKW z(_^8K!>znaB>D$vI)Fga)_*>fxl>Pv)R)htXz|&d|F1k8+U4Ec_tCiT{y~=c31q; z-NQ=}m%^nSmxE9zrJQh_p&kW2_F}-Dk zdU|fx3W059du0QI^6;B`G;Fb4DY!DUE3Xvlsdd*{Lkz3#4Y++}39w||N{sLsSE8ui zT8RX-U4<&rc9l?4t@<0_AgI&;L~Enw0`C?i(5bfd9^^Wyfm4 zYduL`b{EbsuNBHNT5Mj6RJp%aXvyAHS%>y&_&VN?r$FPQJ(hbiE)}hVrSyyIupjr= zp)~uh7iy`5vjAQ$Qw%R@GXLcYl~qM zVIwPuX#%$eH0|-5(_~e506Qm_F5fUgF2^N|rniO+uJ;8B3C(?IArIjY$bqdwGquyH z+k_@6Ny|a_{_~&XTQaEtL=D#MhY#~lOw6?8)StEuRr1(2RK&tYjv@apq8wj_s}5E!jgw~ za-nYy0$Tf<2dWPMYbd)QF5tEc$Meu#Tu@p-yxFm!Wg>&8mfF4xW#HH@j-M6S+TWjg zSy5ZdVR@(X5&nBdu0rW}ddmnPZnuhEg;mQVoHP3zjU2FLbj<4zIXse&3 zbEoGV#C0Mn!lw4c1e&^*4l~3>yWyYzE*N=cU@zl#3r!d`ckV{jd9j<14BtYjfwfjG zWoGVDI)rXJ?7=?8?BPS)W6;0|`#U3XIuiN+XK{y@==ya!>{tHwRwgIc2Qe@AU%^qJ&X)I4u-ZN*!O`_yU|AJCnmW8W=(ZkwWcue! zrkezNoAzy*wdmNjg+Dsmi6)_`s*3a@IIDU)O(VKP)S>(taLw6~U+@SV79}DfYzY2;evEXZV+R0Nm`{ zojH1?G>1&n{-4T@Qq8i>0rV)~ZS{gnwPBhM#`b_vS;cY*yq)lUlTXa;y>h4+)WZh^ z_O+t2P-<$lOEl^t{&-z0D;Dh7wIbtgfG8yWPQDgzW@d24hjqh!OC`OX}=HubKDJ zwj=Bt+Hmxbls8roia5-ptW^Mm^1p^eVLzCcGyp)nsj;O2?XL%UaTo^j^ut`|4M2;& zk&|Gj_+bv2_M)n9R1ETt?>T651f_8P5w5t&VX(&8*XtG|HAtX^OXBEJwJE8;<;q3V zyn7DKP*7RyI;R1=U9zwp)A*R9f|G0c)r=4{UGXBZ2q|4&6~^zFt4|0ep}n?I+ii6U2cSvji{LWSZwB ze}m5I+*242d2tHE1wih$*M4_l(z)%NP@a5yT40yY`~=i`H})tToIWjtlI+vC8u#?H z&_)^9v9yXRO>;)Ix<_{3XI+uVq%-K$Ejq&^Z(cC-n{XDUrMgGh;h5HimP!QZE$uK( zFT9Q(qH13FS%F_NGwm!!ZSS7tA-c(69zHA6w~;r0!@gBxc#cFmyvVbXA7MBl`5bSv zuo9FseLIZ2$%HoZU*-A9V{o5Z+w&M#+j<^@SvD8=f=yp&VoAPbDe}NdRGV;7s#Iin z($v?f^Hmx@vnQXkfn1$l=DFDn2N6^m2kE7TRf(<|#5ZH|>Cx?rxXC8@A`fWl!27sg zsZj`da2F6$!g3tt0B(0l=q0{4!wPhMTI-?5nTW)=h;SEpMxG_fzr+JaH>$%jRVhOm zCL@U*3vJ{g9Io43#x=8_FXNh5z!l!T!$7IRrRnWbM*eJ1R%8mb$mZYjJmo3CZQ2E5 zc@-CH#$Lr`!24H)Z&c+N2m@=!fzCZrf?{}O|7JOk%HN!@G_AV7mO^(cwj`ap6uQcN zfSM}Yni;qOWOW9jXUG&1nEEAUVp~r$F)kQ>om1>~xl*MXdYy*tMN}W|U+4NjU9LsV z4m8&YuiLXcz0w`#AGArD1`ZzY%JtQoB>jRxfyKY@2)QpPNA z3rCa1C!oC~pu2nvbWiQZlwUDceeGAFHACM028NY}-r)NR(m@h@kN)C~x>%m%&&;uv zcW^-=J~vUcC*2gw8kErFdVJqUtf_rinho?qI5B;P_KbLkewwtQ~$ja3pr zK9-Z|OEPc5Zo#l-PxRz-??OSAvBj&m`Q{*R7|_^Te3ztGf_oU$b0j$p}9n0kjt z`mRI6)!h56q#7GaJnmwFYIhOG>34CDN*0(UbW)99RS<-S)8O{PDxe7IpM(mj zQ4m@*qL^o8aabF(=z3!&Z|o47Qy+OZkP6%efp--m1@ zogV^@ub1Um%XpnCS)Ie_vH@DKKNVm_4OA#;a1VjEyT?(u0Kh$KRy<5K4G6a;M<&nj z@#UUK=*GTj)pru#50H2KF1SCT_xZ^C4(eU;siLTWfs7V1!R~FjkL)SBkMYpRTr|E% zb2)0?0sbfLJ9j{PUV#KI%+ZtR2ROwU`GCjL>p;nzsK)PDCoF%%PI&yr zU<^+&96t0ZZ}k_b5;p%8ME7ZxS0jOW$}^#?ssZ$4V;6)768oBRO za3i0g`doO1D&_s08@!uPs;W32j?;Yvz=`8QvO_@>)rwc2bD@|Dg|dFS`GM+jJ(6bo zL?V4hff&w0zh}}51f2PTZ=Ssaz1ipf?lh%SJ(B(ms5$W^Qghx*EdKzWR7=<%$}g$8 zd<<(tEx*wFiKToGsj~1DFZlytGv4Rd>U3a+yIH$KUx#psAPryhLerqojkwF>Rc7yc zjm&=jn)85a(8&rZ4z%A5$(2z6WE{3+%;yUGBLz~avR8`lG6&LECsrn*Z}@KfU!m|1 zp^Nj$nzEwGLkn`RC%6dP-k|+D_y(77T>s!M#X~UdmipCjlIa6r9u}FS*!;$=Jx$Br zolHiG%!lJMI{&x0e7E>5uE4x}i~8N^Pt^Gxe_}c1FMjgn6+j$!>flq>7)Y4~IrbMK zcl9q^MGN?ws|RKB+uH9svmV*ZFN6aPf8!2-r+;&j?1EA!mhK#kbgjH3MudF{?{G87 z@^`#oeIU@{CLWP0O_D$=eWxI20Ws1tMa)MX|_X*N#`@-Lhf zRD}&<_da6D;7=OBBi1dcWhM~uO3Ja4XG3>Y3|@Xh z{M#0xwOCWceS{!N-B-up;)Xv!DjR$j*yU0~z+-AZJc{VffrdxfiWT5vGa_89`I&DP z3Ij*$S_k)1nOGF4;;CYC%9BN_HhbRyqTo~9Ec*t<_Uk)N{Z zQ(9yTeYF7kjNpAexYP=w-U)VMfWgA=sL(X1a9`P!%-8nBzl_KNp)KL<%sbD6s64@i zjFKpji}3wN)=X9z4xHA#{KK|rx{Pd3`buI=+AWF9D=X?*(Pd>h;^bpl#I3i0eK;s! zuBXU*N~W2g9*814zD2){S10jGU2`*RnW8bg&Rp=*7Vf#vE_5J)mQUbTb$G9G%Th-0 z@v_KIO?W%L(P3DCb z2Ii1_Zu!JfvEqej+U?Cpe--JS29ES>P>}`&>r_9k9*ItdS!OD)K+~bsNB%*4?Zrl9 zlC@~V=(o@ssr$y7Gm47xPZc}EH?;Y@$B$$zhE;0HKuScKR!MGENHVQJUar`PEG|W> zWw{MLNso<#3@RdzjZILng=|G+=Zol}j92m)S2A4@+mOO4Pl|sZr&^$42E#MD5)40H zFgsG2_t{qDyB8zuM1BV7h#ks=tG&pMutk7-wEIKN`qZw}Bd?bf+R2MK704xfk>8o- z?tqdo+(G0!w~jh+_MCvp)uODrS=6n8&+NH~a_Y*$vZR-z$gWfLhy0tB*B__sgKrR# zLPt3WJ&SJ z*c_d9&=n%`u_LHWN#r4YnmX=@4^hL0scxb_NpKTo)l(P+41AQ=rCmzwSbG9lY)w5I zI=r%FGk;<`8w4ZYO>C?do(IIg{G-KBYMiU1yXeh&Khj+cU{CAa#US={$NbL9L#(EZ zD91QY(@|5y%aI4}qNh`R|M-Ck@y+>ALDSK{x9zXyS=UqZB6uFz;2~B}5`JS)X!>kl zNOy9_L-c3uS$g7ALr=se5uQ}M_dzE=H@;VawOUh!{2g?W$|6l8tDN{z%_AQ?(NbD? zA(&7v(OYp{t5b{9bZewXRWi&=WY>fChc%c#<{zy`e(*vRPMe?p_7eF9?~2|c-+vJ8 zE%HlO=6H)dWb(5&w)Wgx@60m5<0bWV!l^e2J^2 zFTNY;i{iS&SLBY+D__x1=~%@1vY{ec4_zgZuZgy+#0^?eX;`n`equjawO({1$<;(XIZ{bvLD80=XrHZq zZbKSxz&xAEqK6uPZUA|Mv!>q1sAx;#TU~S~_xC*Vmq($OytuMBm|^p=vdE7G^sgfF zQ#049;4oXGsyLjLTUAwLGhqeBH#btwhCHh(vP~iro+(R5np zbx!0p$G@s7)@@+MurIfE5bIWMHKdPHo$IS5h-SxLQHx0Dwb-|5)kQnCat4fB4jYmW zkWT9`@3>PzIfXzS)kZ_=eeK*#vaB+=NV#pY>dAUgBQ>i>4RILj%9$GC2=-LhUu2iR z4S<;MsXrW+kwyL@-+Pnkk5X$BfXr?hfUKJtAhNvz-vRs!Q!k~F%$lMrG4#!Xi+2J< zcARSj5azes&Tmr#QORlsBA+J*qH6sV$PL&Nup3pZ2ElinD5xC(O6ksxAx(p7K6WAj zK`5X@%}*PGQ1I>qq2O896w%+ViMlkmrpR~VT&RgX`e=R^QVaV#p_a&ZL>;SzP(If} zoeHjv<;K-Uc>8PPxF*&S+4i0Nz$)qGn9byBUD28Jt0VGF9@FZGY;l*It%Dk7Qx}`* zR2Rv=xGr|(Y+WvAbbp##P}U`4T?asJ7@y@NFN0Q8?l!K6T0PeMw4*SW|i1kwK#ABG=KQNv64^J{VE%9E?<$7mO@D5-fIN(xfyH+p(wU1~|H> z!#h?^O{ZIojU*AlK;a2>V8>=G=ORr%ba!xO=zpwQ;Ht!NUx}u<0o#8h(M?2l5c6li zOqX4&CmG%b%(+ifXlGj!k?%u4-UNrTPfbwWgPWonPiu-Qd!(sYOBoNxR4C>&-Izft zr8YyG64DGu?~%>KK*iFJ6{Km^)9K%n-ObQkKQPzvXfCpCS8YKTn~iGGk92MY2sZXF zaFRn&JxOye8qr`bQ(g>eOpMK;(5o$3wsHhoXqy%y--+0&1uFmK7O2;I%}>u-AeKHY zQHNt&qFyg=iKMvI61CN~6+&*)3Tw=5g^*9Q!g3$X}*7 z(++_>YKP{wLVJ|NuI*8YzHN_uKiQr$WCzI5!jR`@NZAe|8+-!+ezw<)Rpd>C=tw$s z;O@j@(8(ru>lG5)S@8P8$!vRLj9Yzhq7%On%PN0!q-g4ImjT!2(8|x+6xfn$rfdr} zaybu#lZq6PI^tLq(h;fpO-GU4v}{os_LhxnJe$O<1_;MGitOxfHfV9U-%m$LWIq`9 zt`5jkeEbvyD3OX=YJFm|*vM5kY*S0Lr3HVtHn=_IE<>tf&);Ppxp2{E^|v z?#5cLn<$MTI zs7zneojXH!!Hr6>g^yqHf_xeg*n{KYSq<(;zwP492o>B*v>{2+16g7P-qH! zAmgj|M81yciMcy_ifrR#1+d?`!I@o1dN|PFT$2KOc`r`bJ$j+DHK-SY*x3v9uylmT zwnuyeZbjarhlj{wDwS@{3Vh`e@Jj93ln4~(-4Q4?Pa{OW%es1RkuRrB?2WeecyCTL z7m%N|{+4i*N)`4h)&^tC6Xv4dtbA+}vWF(W&P z`qTs2mhyA%u#ma~Q0Ar%5CfE%F{~O*JFM&1+%oc%DqoUMoAd2>afk^p`fg;~H=Qs$(DRK}}Wa}U-_i_-IncUD) zrM`{Y?oQUk0UJ6F7Ar787&{n&A0N!^L+TJ5<{AzW+1{0YfXh!4e?CE`4i^1L&iQPa zBy}k;$TM+{d2I-9=OU2gYTw%vXqO#HV4TRd*}8ypV0R|8J;{v+0J|<`+sN7IFD#40 zzTArw`2oplLs4Bu4&_7W0w}+y(|l_-BrO~&DkQgWp0#`n;k+A)!+6**l-l{jxFU=N zCwWUxC6(coKaAsb9V%a}8@kAhu0lHY$TP^F5NOZgVq4XAPlPvx&AJ3?N-pgI2E2%q zfTn|j$JJ#F%^3{n0iB!`Z=O%n@h4vNW#ex62tM-c0I-I?51*iXsbcgTT}CIXgKRqN z7E-x?ZiL7-8My&~qQ1SqHzOdEYu)o4m0DbMX*$?pa5;0nLbCeg8I)%{T1eA=u_K%` z`594pWyykG1@O7Uc#-ejz8#O6Fu zR8bCaO`z%N)m@H}*qM;!GX)In{QKF}vfTR?R8^XDBxpLO z{qgT;mKWJE8Uj_5_}EC(@x%8(pq>J3KP#`I+!7E`*;r)^iuTwsBEKu<(ik3gO$2vg zl*1bHA zHx&v}pqugT7Q@ldub`sRgU?WC`lsu!k*w1rbU9VY@$o#m(HAB@m(~n}tLhd3hEK<% z#r2wi@(@1(r^Y8Hh#gffYy^qCcKu^F#!8RK0=NQXB6mYu0Xst1HH9xN&!My$P*7QJ z43eRCdH+NXpbc=y7&p2vqxG@uY(IGtX9MXoi3g&az?*4<^Gh?kkTHojFdO8kkHtAS zxKA<88CXz5j=~1oPsV8YhRNvWf1b=^>AQjVJ!*C-Vtz~F6pU=Ho`Um$*He(J?WZCm zR!_xuAExrff$}hD1i!Yb#N?}kMNTEf5*$F9)1z_9!;e~IhY=h6 z*%%o&2RVPx{A4*7%k`QowpYcy43P5r;7@vTVu|QU7X1Z-Wb&LmU%5JxxM(htxc59< zm`R_9uyynKf{79IaP7W|2bms*j4h}tmjN=WG}|;E$GH6Y$fdRmP+p7+uz?Q?xNNL| z#%rYH!1r9n0Lz2N7gUh`hq zvjvM$G#)JGQQL)3JZEl&cdR3>lc6Jbz>ia@GVKSHpUfXnE__qOW=h{$tOQL{`<vcJN>dRQZc><5H9$<5F(IU<-7q()LkJDMQ@I@u@KNa!=1ICr?K)>bQ(^{w-*+ zW8B&P%tnDKc)4~P70XWfJmzvs({i0=hq56fdnODSWB52p)7ej>N;6`0*qv8hj^*qn z%a)_szF3Z$)M^DP>*^IKv~O3y@>^mr)@_>RH_04F{8vIus)##5G<`Yl^J)^m5;?bG zB~A{mti-{n^eS}!Lsp>^Gi?<>H(X)RX4_mPQHP3oWN%u6w zcwrj0a4Zd-tuo?EWab7`g^Ud-o?aXAY4}Ej zd}Je*({Dm3y*Hsi?AnA=uveQffETct2ZYMOpz1YlpFbJ48AV~~X1)y35$2WKoL(;` zIh%3Nw%j7JYd;e~h+o}V5e28HvEKMCIIG;h1zGtAlxIf2>QGFid!9XO#IzXN@S zn>$betL#MUJ$@(h;KELv_}TB`=4cIw<^5IZKM~(OFkMaFg^QgBcX2o1Z?GRB%V&Qk znH0IeV~<_sWhg;?(_!MfiqCFon)%)yV)Z)#()i_Ite>InxtERtQGGWG)70H45SMmi zuInD0Q^)QR+o;4&057z|;Kt8L%w3A$e$j#C?!oo&S9>tN<-ZrjCc*raz87=z%};^* z@Ll3Qtg+kt?v42==qD^U()_gB{Pf2B6tthmb4meGerap{(2OTLsCo&;$tI(3d8VEe zs~T$2{SWlkN_7N#vma$X(1eX8nxE3mPx3!p~S^m-*?n`6=K4<|de*cA1}E zo1X#>A_)=?VvTh3Q@;5r@DS!EnxE1SVcj?8cR`1-+(`4&Zu8Td!<eQp~k3$B9PtyaxyjyB6;OMAwFq7xg)OF3F z2s2zqVzVe)RQ7TGpy?8?=)>mv4o*R81OB`NG;O{(yp5(neYFJ--U3ZOhjb1wx8UTc z0?6U{G@Z2RlC?SCku-MB6BQlDfTqoDqWgVmfOszl3`g^Pnv!$pZff%Vw-tzrCx=f{ z=Uum8ix{VzBT1n7Kk@oB9jL$5O_QGv`6T}Yj-u~R@R5jqeLM1Kookw=UY7$@&+w*b zT2#w>hB+UuO50u_$aI^p%52j~G|sP1iglFj-0aXauU5BYhJyb^h%H2&fGd4IpieUV z6c1Gl080|LY3?Ux>L#B9FE9I)=*dj~r&BoEHaU&%_T1Ba4kdscoBr^6LPeok1zBdKSmPiD%LHoj=P>-Wfpj z!PGR2aJD?E!Y?G@S6FdMyZ{&k z?kP}|E<7Sb)96`oxg^a1<5Jpr3{)RE&#@l{Ob~CTSuq=)bzZb2(e&TWy4luBJ^-hj zpy>v?aUDqFuh0Or!nXmfz96z2H_n3R-G?k#K{9QinL~RaX79$AG>CE$N!Ixy5AwBx zQLXaeerb%l7dB`6%6D+qo^=tO8_!F~px8_3=B&JgPS}G>Xc>JjBV`jW^U2jEm|WHU zwex6l=`wd4Q?KBfcDpM$IIg^cAhNC?jviO>sqa4AZqv^F$}hun+u{ zBZ=-cRF1jHsY(xc`z&bMhAjLIUVnnST1eQF$08XwAlpu+!EMznJ->+#O~YF#4%2U; z?|kbP=2p3lJBjDrMxnZVo9o>f2t|~y@UoDsc>_%uZ$VS{pFXZE|IWj7WW*h;v-1x3 z8oL9DYE_E)g#=|m-||ltR3zbd(d_oRiDq5%`2Pl zP}}PRd)33fGca4G5+M96tmbuu_iEp_WTORolZ~)La=5d)9!B}S%VvBg8E2tSUJqfD z>pii&>eFol%Jykf(e+CfiCOa4TdBc`O4AcrW5Zd)v?_@?4-MNQ(GT21=T^Rt+R*Mk zc6r`?>{RxBG!@RdI17!>#oS}Le2?~75d5|+-x$ks&jTCQg0BKsO>CuHu;B9iCYg1P| z_E7fm*)>gb|Ge;+oVX`?0l{p@e9vqIi?j-P*AmUQyU zwkNxO7iBi09r~TiaW7DU9~{5G0}d491DR%oTf9=xIiLFwZS3WTXise)AwT;(LRsGZ z2nWVO$Wapy&S`7MY5l8G-rb- z&gs#RK8HxeRPL$Jw8h@LKaiu((Z1Whz{%jK7Z}F7`T~P|m0$9W9ts424wsJ1 zC$X>Kgwi3uY!9Uok1Er&`d|Idlkh)adUpRMF7{f!LZU^yLS^6a3PrNu6>gf3e9hJM z9Q1NX@VFsVvV2KEP62GO26M=0q|e7*_RiL?G-f5^CjJ zEcfOuAL$E0E}G?cuFT}Z`lIM>3=j3ul~tG5M9>3OofrJc7YIjy;a{KFBSE zJCU$=d{e_X;AgII<|VU#tN#Yt8Q<}3U@O1?+;3l_6!Ff5Dv)PO?tFgiBUj}vH*tH9 zBujjcWIXzwn?sNMa78wEy_*mQ?yuWwl=WQbQZ!yT0#K$_%S9!qo zg{GflfAOSN5W*1eK$&Yud3LfpTHX8t9znbakOp6!8fuvgs2aT5Vvkx>57T2287!BGFIfj29p_=XJ(p(xgZ%$Ao-v z5n8|PMHv0LSA;TF>oX#g{F#Sbe+L-V7an}YrYt)@i~1#2l7k9Ld?_ zaimV-du`Y0B)-)>*ZkyJTH@Q(VoOVGb7p-|flig8;ra}nU`~O%*;(PqBmyy^RrWsY>d&*(0-oTfC0hn^>v5P#BN2*E3vQn%{h*dBG zRG(FJmpZ#XB&)2%w+vYd5?>LG5hQ*_?U*3(E%~yDxO5UZp{9e6>$>GuIo8^%PT4L> zKR#yCv{c}NF>LsrDgccx<`=ljVc4}wlEk;^O_Q*R^OD5RcvX=lzUzOaEU_~sJ3tlM z{QfLX12J2c_{oybG9nyhfpGU*Nc^mgjb7rLgroEl-)f$w=bdN*+!WUB>&@I$71Ml4 z63MGGkKL8Ge9)vR8E~~LQA8kFl%>Qs5Kpm`_(7s;mJ&PXwF`t-4HRx~Eo5J_R0_H^+gd9=}}fO9yUu(&$}*3rRLe ze7nF>gH%ho%11StUW)%7z6WYRS+TX2*yU}PfdSo$wr-@;2PabBIlHoKJcDK?V7vYNL{(<3qK6gthUp$gj-u#rQ1 zMtsNSw?2x*_oO#eqyQz2SEK31M9W^PJ9Ke)wyToFb7)%HG1;Fv{6l|vtdNFXvK9F< zuFDrFNXVwP$lF=A65AdtzyPWw4}+y6TgipogZY(;({!)|%iZ@+Otq8nfD2+a44zcVmILYP{mqk&B*+WO&n*oXgjl1-KXQ@y7Dy*o6rKoI zPHkr>^?fOia208?%T;nz;fe72_2IF5iLE2Rd*mwds7)C+iSN5=?S>*g)eVVv%ncFy z;3lzkhYw(7LmX2(kqid_6z(qhus)1&M?-ViUE(J-KDZ-I8+&lON-t=zdv@&+i3Q9^ zvWLVE&fc($Z=^%Sl7o(}?m?G<(V@ zFY)uvffcaa$_f%c_Eg4C8n2#oxKIsFe)ul9iAMo?kQ2UA0}@sbVlSi7*?Z$B4P;Pz zSCmGwr)w1vw`!H7IQDL7B`J|TSye`iCRUc%5z%Hqr85V#ngyyQ*#)O_p! zrzN;<1XV$Z3#v%`v#jr`NTV6V_^J{+Z<*E-rca@!(2=A*TBWt3}r`MEPv-UsMG~-!I>a2Ep97w?ELlth4&uyTIz{!uR z%O_DNKGl+XyJm1VnWpz%M>az-YDaAAOO=+SWml5_;zh{W+7es6`a~mh86Ey2ox%X> z@p=+$yBqVkhFl#z!GW$svg&X)cO)X^V_37 zs>1&IIDWjZFSTdgZXJvUC^;D2xvRmbv^EV;k$W|e_y$OzfY-Z#7!ngoi4rJDB%^_3 z&!FWsz=5Ggh{TUbC50gB*Fw=lY_Eel1AUxy-2^%|mRO>KzS9X7u!(@0`- zs^y?uZR3wECE*|osf{H&WAgcm@R`-*MiP&FtZanMAOIdtIX z<0>GM82#8&UgXCW^iyLL!B%1DCvFZy0WAzeL2B6q>AkTDQtx#WtP$Q+;`_%}H$_@K zY$~z6ohzYv``cw-keyAyK7{py*}(>sieH;a?2Ntu);ZwBHrQqp1Pt&Algbir|3Xjs zJlf%@%_X*7cM5F69eZufJ!UJ^k}sP}{OE*33+^yFgR2}h|5-n>hB6fTY(ruK3O(e% z%JGgLZGp7=+yasB&=Lh`RZEF))_v9z^}9(cB-OlDsMVKRp%}Qe=9t!loB$N^@($*9?vnW?3i)xM8Dd_HWx9nWVq&{@6)r!;K|P>vm7GBayyP zbx}@MknD?!e!o2`WBm?Dh8Z2uwK>!QeUG9J$p7XY`M@gy*cCr6d&a~s{!W&s+zi9L z7duMq^yxB?2z{SZF2tde#E-ML>Ldj*VomOZGJU!epWv;A&sN-Pdl?SUb^<4KWhV*d z@ZpjLE8ifTyQ-BT5Hq-R&BwxI(f3Vh#;r+T7 z%%Rhd-nCY?a+igsuhK2w!5IJm+^Mr3}DY3ma&v}kdPkXSVyPph-hHL)(mn%YYt^Ycpk}|=xd0TKXM*5o%@y5gY8`S6`|Li00u4k&ca_tMrc?@aLSCo9eGj;WHp z_V>`WQZ3z=e6n$!G*t5wvOP?7)=QPNWdKH1)1nPhfT4KF3a00KBv}KUKuKql{V{2O z=`STs*H1{P8gQnOr=%jcFZl$1yOV0`CB13YJ*l6aCTF^f9B8WlMhdI+<)sN;R?=&J z?=B~|)K-Gu^-T5Z$Yq1R6e3WmfobX>`Igg{m!_yGaydcsd(I4bYP&DLiE>r$q4^nW zWnoWZVl8}&zk^ltSPMV0%GJWnq`M|>_t9iS3vQ;2*K&Dh%}apeL|R)}D8=7ZW<2jH zSzIq$Jf~!76F|6OsVM`9)`GzCZVN}V&_)i2PnV62Y%z9V{1_6Hskhe@-|k}J=~S|0 z*SNv(y}>1K4r&GNql<;MJ71-M2`FGJqiJS$ltp!tGyu#-(oNalw8hh6u2w}TFjJ=h z3!}ET&=Xi5sBK}Pf%COiYnak%Tinr7az+b_nqMlLjmT`Ptc1uZ7j{gkEd;dxd#0YHeY@dKTrKvaGLI^*D5;2$t6Vp&FFzX(c!JbyN-#Ck2Z_C>8Yo_ znN|i%fQ}6)*1zNceN_z}rvi!*cdxfKKT0h+>5f%@v2pCz!o5~vT<3aMd)}VWZxayqKbI z{^gx1c&fgsR$}0HRicn15(((J-^O%0MZZt0chi^ZPiY4p0NL*gG_w1+USpz64>sz% zYD*W-CXnrIn!QhdKx+e_j6LanT;K8k1WQUV`>T3k8h%1wuLOJzisYX>(Q>=VZfhq~ z$18fVm?uQbrD<{jo#c(W6HVT{oa4XXq7t0x%iY0{T|8M#dps%-Su8-wPty%jg z0cF#IK+Dm^I#7%eCSXJ@jcWW0pX|t{clwUxa7{}`GVD)l3sXWpOBcDgT-%%0HMWEc z^UXR>yRRyM6`9e(@+(>Z!s1E1TUu(EV+v|%8EvgM!-^ysb1fan&Tf|4K^a_TPjZb| zY6p|WvaP=chyUyon{vBbUNQU^O*xZ=we2iP^5#QYOOWvw;1xJPi#+){4ytGWaDXML z`Cl~ppZceI_0R(s)8wU=dzF7c?6AdBJIYOOa?j0_vc=M*<#$FagQtdMl&YrGot8Va z7Pn-X;-GdYzr=;RVaynxUPPK<=xi$pj3$>7wawiOM$Bt*e`KHdc1p0lh?-5>vH* zwpW38XW6=uqP@YNc>LdJ{}Tr-@u`rS8bn)Nv(`WW zy9HY+W?7auwTrjP)Y^v<*cIob3DotHc4kzf^nWCd4+;3oMmBw(X;n+(Bbq{tR^_!O z<)2_x1#~tY+GN#RJDVs`@avSI;~+V5*h(vg@Xmo;%d)mLy+3RP-*`7$osxp}AG`Js zzWblD+W8eh`d7XAhi|3fq-om?t7Fm^3{9hRtcuz0|A`nN7R{N9wDC79JF;U$OWCyQ zH><8+Hx61~y|`$Q8`Z3}Uh_XA5Kg2h&q`}-%uxvfGgLp*q$gHBTG?7(XyvQv?bSjn zr~e5#=9Ze`KU-D*iZ#37V$k}&qN}0)mqy9IGKqS;AjT3&t8FKk(p?Q6THlin!Y1%^ zA~dWjDNO$c_TL5*Fo-oway`Q_?Z{Vx&Hq_2O=DXdmT4t%S*pR81ot*<|I$;_tKNo# z8u2&njxnTZRTA=@O(WwB^|UKhUJ1ts^z7esuM$ZcV5#LnaSb-X zXn3=g2I{NP)>;abu(ki<$WdR&kL3UO*@DCb7iow~y-Y`PdW^MZEH*tFV|}^Sm*z|d zH(Qt02qXbZ?M|MYaUV0@;lw)do5F4?nt786WF>c^rp}r{iWb)ra<|54TTfFsX@HH^?}DFj zhkUTDflMVfHYHm2Fm5YbgGnU#c2>a5sY0w>;p;~DvL4q|SZ8h9A1>dtt)~ZN}(j|FQ ztTHKq(?7>vf7PQ-J+enO>7UvZi}aRg2&*&O6jDfc8P)|S}sn*|4fEp^7^b|W6JkXbeecS`FbP&v3sf^ElXgO zwIi$U*;txBS5kbnUTO*WAlX&P)K3a*bNFCmFf9yK4rm6||F75tn_5Q0(TFdCSP~#8 zn^rUbP4`MD+vvecT@Abvx>sVxYaR%+iu5nmh>l#9NJhDeDj6(IM}{bon(?3{)+IRq zRi>C=#EbX}ga56|CCm*S64+D}cw}jETA;w!AI(lkN#yYy{Vt$o91lSX7>UvPAr{R$)<+M^ki%JQlDZ&5$S@TVx`4hEMV8248oQ8HK;G4${ zEj2)j|Br#<-{c#5S<=NarQKAt3wNf=FO_iZYG(b?D=~F!{j?C&Fk(POTdf$=22Jr5ZEwihlK)1M;%%7@1=v2; zj_xIV!4l&1b$65^s_E6jI>o}6XX@A%7lID9^~l+}w#A&T#fohpnOx!}bi=)=L>M(pGDfN@!&Xew2`y z;x@uGZItaFTHZo)+SaK=nlhH#uGA9!-%u*fCsG2Xe>21X3z`IMw!2ALW7}3U$usre zZ@Wi3aqV2&PCFm_kHX+%f)%t=ngw;!{7l=2+UfWI3bBF-qL5`Z&OiAl1RhgM`pY&( z>*)WppsT5J4LcvLOYzS#&L)VEkJobSpJmj5wi}80Wsk%{qvPZ4@-@TJzu;Ib;Pj8^ zm>P4dXlgjaZk?7LPl??_TjKM;!56+j>EKFYikx9bZ1^P+4y?QD$*W}_s~ba;%jld_ z4|`dVh~Ba{5{E+T24^wE~I*=A>H+)?DGgHyMy?G-5OWD4GHw-HX- z_p>TXwy*f;N*e98+iZ+^Tumnvt9^F%q~UHmPgBc%b`Ao`S%1Jll3rE;iyim8EJ;4? zBAL<-*tzRiPVRXxdy+iO8NPaX(5`^KlTxqPNhY7ecB}QNnGUc!Y`&wt$>yA0X8{~V zHz#Axw2C^}wDYpvNP+xv$I+9-UAJ>F-p;evxsWH;f$9zG!WO@fO; zakV1P)BUo88>`jeC&vUKI39X`wSeBIA#I~ zI`Wg7@#vw-I%`u*KYL#{-DuOy$@W_{I&P{v-G0BbF($F1PBgV$W^brKq9Pm}$f6_m zjY;AJ*eiVhh`kRPa^tNtNjhrZkTEg+m9tFl9<{Gc4leYA-b}U^Oo_+rUxcjiIj{3w zalf9<0zPqQ--bNj=jcZ+#5n{QEvNYDoJdA@$FgMVM|+deb9@<{19|P{T*sJP!B=Nt zO8;c8y-9 z&UnK{?txN?T4w<4Ai1vgC6Pz-jB@ zq9^W=_ExFYKv3`6M_QGx5@I^h!Xe(0C^~1Guk?>B7+Vg$3Jl#N>A&q4$;xmC8=`nR zcpHyDGk|0@@^mOq(uTucwe-#o2b@X#seR5SQ=CIj8)I5K2c4(!_=bu)g|uC7S3>Fl z%GwhyrYjR1BK?dLg7i8Y^6|w-*)+}Qptu;PJoM8|CB_dMY)#=u9eylLR-L&llSJj3$FT!{`01{fhHI+sTN>Zz`RU3T zd%pA2!Fa#vfDNhU_R)e2Kke|-7s0bB)}dvG9UN7B+>D9uX&dRYZ3Nn}fG z!-!j#tx5iFo3bRZ;m;!3dB$PQS75<0?qU?NCaVrR1RDdt_0idp!2Pz)B>6kX9%RRK zpn2{*$Sx=;Uv_(5@l8~CVlJqh-x4M-SOV?f-f z#tnR!{!AegYdO}oKx^njn#^&4FJjkpv^Abg4AR+~{Qq_srZXy1An-RPx(Kc-dGFA_ zWcfqy9PEsvo>)V-lHWUgPagdGyF;_sZ^k4HPlz3Wt@j@uJ9_kp*u(}t!{bJe31#g! zs_rug4B+UJFX03BHEK5?CmuMsllUqhBnv1=-vw&km1#6(3Yp~OINoF|aEKIFpDm-a zT2jSvItepM0F~6b(kRxpJDFtlDalv#>bX+c#V3i42 z6;S&BG4~$OQ5N6-@L5Q&o3cG+(+PDUKqvyCNRbv05v3%dcY>m#fCMa9D8WFk2(rO0 zH4w-oKp-GeqyCjpnjEHgdliSQqc|@44pbJkK1SoHS+%?OS)xPvqG-Yi4^liNhCQ0AJ~( z@uc_&4c=~%1_V6xRLx^kA~Z#KQ>0R?!|8r=&2KEnq6w^vR|Aw?k|ncR(&R2Bux_n2 zA2s~Pjw%(r-p^BsAOiwK<8lY*ar4M2|_^>C&X_`1v#!F^zW}B=r zs3>(C^nb!sO_1NDS>vWP>pWrHES%e#8lN<4Vxwp(pK?z_A5GOzU8St+G|jgjl)Oaa zXtl_`eB>*dFM{}tfvYrGI{N$o7RW#9qSH`Rj;23lZr3!ecExVi6R_^#hM&DPeaVukK>)xY#u9EeXuHPTprVSZ5pfa%;|Pb06jRRabnkZYR0J8?A@CFFhlqJdQ-oX58Nnjk0#ZcF~2dqQo&e* zuS6rRy+3o(L@7hH&TQmf&Fgcl#agK&nMV&gGM|pxuT|E(_rg`4){IXZsY3BVUF`&l zi!wRVj8589bT7)}N$Np5M;ac|){7Fy`ys$;j@KGDzpLLxsn?}YYXqEf z{37jV)`FAah&_4@4Og|Z=0`S0ytE)rd&SEd9IgXt8J}v~kk_??E>sk(*V6e|1KL=! z3y)E3*rsMd@!A%iYhUqJ`B}|#qEt;u{h6Qh>MciAkuZ&6a@h*wTI z)8G%aovfK3v_RGJbcATDKGb$zozYL_YW2SEjsU4>vd)1ney9zj#IBwWl>dnuZg;IV z5O1#FXMB8UpfyM*;T^D6+mt%T_`6zXtPfOqn9ZF!buvp4l6mf2b4d7@7oK|#$CSHE zhPYYhiAnen*IKR7nsHkN!=2n7(Yt38KMma?-D|7M4RFFs-f9MA-n>@(sx`iEh)Qow zKHU_q*rSP`R)(T{wV#W%pqo2fWp}H#u{C3FpvpV_#xW0T@MRorx4!XXECw>8fypiX z6GH@Lw$ws~)@gOjAwxUSksf&bsb(00Fk>a>KG}CL(0cNUA6nfr+uw&Q`+YT(QJ{BV zmVE7#D(mne%`q0`aT=9H5{2bdKE$s*m2c2@ru-p(7D{x~J7j;QO>RKm-=A@!%w>8P zn*FsF&r-c*bfuzC^}Xw=k^Yso9eJPDKSwhTY1_+^;YXGY`d$=w;1xG!Ijo(7@M3|B zEG|vbKMHlDHSKqLF!L#G$A;Fl-#t}&_U?DuFI}w5QrlGtRebaz7xHeVcVk;@+9LnT z4jvx8(nS5Q_#5S}S^F$PkWU#K9yn3|-?b)+{9Sv?TF_3TYR;bcL)%+rZPq|jr4J1H z@JB;(>vqV40&i&ptn-INKsZuM(Z}nzwNBJ4$6swtITi_xdi~SC{7BvHkdp)%LEUl? z*GMJK?D*f>LRAG4^D;kQGEUIBrQg$f)YNvSM)$NjT6ISo%RaxSO~(dcfk&mL6qFxy zr1(G1y3y6uCaCjdOe023*1NMC9=aorboK2|w3HcRbbz)W#7Ivu=n2yycWUIPE1`S` zH)m`9%k5O|)XZP^25mO#eVCs{XLY2^Hw_AV7Dd=O(-`4H7-%<>YbQXN-Gp3}y{(X8vDeYlySED$4rn{P`R67u+`GG5oCO*yTRM)=p3OkQwCn3BC|i3 zng6o>0$VvxSB$69_Wn`ZC=BTHCr;SHMp#of_^Vu5ueWsHs44TD0YrDv>Dbs+x^5~e z@W^(hEh}~2Rr^mTDRVl;!XrR(C{yH5!QK^TdSh2sr_Ow#Fh_!!+bEo zU**QW`cjwF#5%UQH+r*n!5vTb%=fxjZ+dHlNk;?z()m%ptGYJS;^#BY6n9bgE0y2; z1`&0Z3yA4@N$1&+PJHd|MAnJ^E|k$L1mTNDkIw;I)wQI|jc|1-Px@oGMx!50)34~> zqlDex=vj-ay7yF6l&uEqjs&ZG*o|v2HgblHgZ24U7pbC5|BwotZ0&U&T&L#|lb)vZ zzz2y$^sN64ogZI)*>AcfDjGFiuV;P#(4E2@q`3z1_q~>wwV%wn>qkZN?mE+m`?@#^ za87r{S2!-Z(Si}CAgRMo)XZ$zhQD;vRf-O>H*f1K6~wTMf9tMcYVh^_=5=9zwuXt; zyZ1d2-xV%4xl`u{x*VB{Yaa*yt#kStRIV%i^b6={w9$QKK13AJq!aye!tO!$i}g+` z@9N#@#k=@!CYCJJv}ATmS2j?kS2v*e07Epz7vY3VRSA|Y8tRXz=y*@P)@uIK38o;^ zQQxtK5SHMiZ=oXffh^2_24V8D&RPGAb=nVZs#r=HZ3>{|zjbbGnTy`uK(542xa(hY zuok!kNE4<(nC6X9>)SS@RTB}8N#o6&{Pk{??7+}t!Y2>$7OlPkhNL-+xje*H+x(;`Rn_#RD*u4iu#o6y{Ks4H@>iFuR60CCVhT`nh@KGju|l@ zwuI|lso4abhjlq7c4qcbkUmva3ksU;f;cDO`+%U;$^I&L_K{h?MgTJ(wL7_VHit`r z*z*;*C?iyVo2Fk2GSW9;`kt^8-joqh*=8k3c?6n&a01iU#o_wN*6-DT^ zs;aySQY)*)y_)Mr(=u1e)ecZ>BYi@Ba1PYv%pE7@5{;p%f~mky!0*R08tYRkhNnV9 zS3kWH6dCbp!o9b3S~9o9;v00;jqJ_zS9paz*Ib{dl;;YCtw9ldM`xg*&;4AjaigRO zt7l7nsXV3?s#h-{Th>b7j?+Sd76wucI7q|iggR?H*;B3ctt-@%pq>>l%-%+SwE<=H z^n+jgM32?6j@pHELWclt?Q;QvQa@eUFYWaw9V=uRV(Cxs_RzN`^-l(OhG}XCgo=_o zkWCZib=7}O_EQnglrUYdW7oUs5lYIE36bmHKvIx7)tK~@sDd-U-bask4Cn~xM$+_d z0hKy3v$y^dZ9akZ7zqQx8U@nsUiuE!%oI07Sn*B$oatB(y%%fyg#Kw&mEQH`^v<6p z_S5TCGR{il`EGyx6cu?x!D|ekjGCnk)F(SwOB=O;WsEzoU!bxE`?z5w-bvB#;?YYGWgL(4RPH&$e%vHZ49T4zQ+u;B5XM{55DE=LTd-Z z;_nXBdvNi2N(XqVq_0Ovw zg;kh&tihv@&JmS?QjMo7`d!D1_h*35oUSjGn)H;UhH@ZPb( zFx;JHyarrCP=+04FM~hL$Tg_x-dx>N^3QBfgBMn!cScslX((o6OTEne68l}CJ4JT_cg&pS1x;y4S>X^Mqjqf$8f-hri2-a zttrJ&#Hx9*iT3=dHT-)mBWRhG;=a)utc6<|skCfEq@jr?4U9pD%$-fW*S^^ddTjkp ziWDByp0`;%oT>g)x7c{ z^<{4dYvzKM2rB2h8iQEDI737*d93hrHTIwM{PWll=`(HG3$v0&PaW5F`t%vIlB9Kb z+B(2!q|N&d`m)Av7|Ick{O+Mn*B_0r7JcHXa$qklGW7F)l;+5?3N~=mFwA>1U5&G` z0bzVh%JZ_uA8H1}mg(D66-@CjZ*ryh+lGoFGMW*)G@4+T$^aRzr(a$-xZo2pM$GtB zcO2PwTMb#N>b^ITqi<5@7<4praEP8BoXz#4xcN^vqJlHVQIuQ`3Ax_h&xzFjrWYt~ zhrwB9WrCA&Om(4))!Z`*yByWgyoAp{_tb``rN2xx$*1Bk18EW~M%3lTv&qN+e$uT?+AMljXj|!hy=|nAdWA)-QcjF6Et8Of3x8Vt_DZ}5= zvS;+3H2*tPOvyH4@}M?))A5gu2Py!e1%EcI6EOKYR)aF#4W8`SL4&3t#dpBMTl}oW z*f!{$?nxcKGqhuw-xyXvB|2)n$$Z_|h1Q-hM3UNM_M(CazYzB83Bz3nnr}8Xqtr~} zvuwq8hDE9hL_0!_udr{<81__zIQBG5H3n}pzD{rbWSCtgjgFKUX`Ch#im8^tV(lEI zg~P~9)u9!MasAF2^m2%lehw=9UX*co1#m(kxN#@Sm`DW^!Rb_~(Ry$T&)zlK??|7dMu_irX1tQ>M~=6F4LAAV@ERQfIHU<4SrVjILR+IpVLHI zLXgIFqptz){Yig0UjS85^7sny*?twntfL}7gAvMi(w*WyG&W`!>gC>2qtg6wUPXi7 zcfz{4wXHEhstcd}JM0DY#MheqG`=xtEqcQbI@dWC0-yhRh%Xf!HLjB@vdljWohp?# z(`~;O1&%eeCUc%KTUs{5W*)?YM%^+*$WFkAigH$ZQ2s5$5XqztlZvq+aUXLIs0j9I zwTIlLX?NR-dT*XG>g4v=md^~T1{8M>MkQ{ZVPeH!*Y6tUkhzZzJGtlmE9EVJjxmB# zUo~VSB0Olse8td&c|9DOt-bN={+`u%aTJ12sF=jWg=0`hXn=jL|F~a@?S0g#mvoY9Ry589kL?$eYSo5FP zfqC(5v0rUe8=H#a??H)PCSL|UY41RB;d+SnDg@KzoehCGq&o%sjgFMG#1G5Hu3o;@lt~yz8m%|Blu-DxAN0m!uv36!P>wMT zq+HnBix5MJAW4Xw+1v%(GMu_6#vyJ#ZU1hN+S)z@fkUAVY#rYjISm(20 zc#b@iH5%lKi+6!)_CIvV}0WJ8Kp)SV(52FimsM5nD^mEFJ_)*EORF8&3n+=c9;xyhT|eQ zE-%^}=bp)R}+n`D+=ac zFnUmPhR|e}%Y!x*^Y8qtS}e4@4lgp@XrN}V7~i28(*d@0hyjNb<`|o+SjG(FXa}0} z06sz5C1=}#HPPx z?B1|?KpY29E5}1Yblw4rjdCB4?mMU>bG9pH4A+h7^bzpf<^3@1`R9#3Z1Y*8tIE3c z(?8Zqhl~LzW zheL*n7UKr{t6AYC2>O4{Rf%m<0A>oK@^K*$<$0!N*0xw4)mkl>1Ub-_O@<}XbTEm! zY=P*i*Tju|693(xhfz9u~3?r%Fq(MtXsRj>fp)%oQ#a~88*8ewr z&fRL6iA9U_f-^2Oe7UJtb>;2U#mP{S@0Dh9q7Ltwx>pot{s9Z0X>qMC>|dS#G4;A> z#OssGF}F3}n(9W+tu(cl=SZYpgB6MVAvo+HFROyQXDD+G%zfro7>vv#(CQhB5MG=Q zgb8%t0|Qz`Xh4PkLhoVO-ZxDk^J%cj;)>o^p&G`LZy6UfNFN3SMXtSlndOf0!wOle z%RyL^S4ZJsMzSSZ6-1yUW5*fOoraub|F|EbC=2C?p8j5JoTKTNN0;nV4G_9Rh2xJH ze61(XN5klpmxC*r@4Be1>a?a9{N`_BWEc9F!W|?fz%irTG`Rt__$1nsih^MEkAAP$ zP@G?YJH;>14xoX@^j_BdjVeqf1I?xu4ISl^CA9U*3KJC;9(1N<>u$RK!z>@MYUM(H zAZ>09^YiUHyL_$j*(S`e)VK4Tta;w9(oBDIfGU8>^B!P>DBR>{ExL^jZ7wM{+n*9C~}Cd{xc!kWF-6N z;m(wI6G4sKd8<>PFU8rk!Ia@~Q$r{2>HV!KN1`y_8u(lY4vnSGa>f$I@YYz0IscY+ z5-sjw3Sz~LP5JIL{9UYvCBFH+13s8-XhE5a?|M>DtSNy~=0PMax7+(s@+w0+slbWd zjx}AW*f>zE95kz5tKZL(yO?4dNFiO#CS=XVLMt-sU&pS{;@2G5sBWeKEvevLoQB)y za45X)Jt)k`KXJ0A7Dd5zR5^!0Yr%{r(jM2R+HjUK$8_JJ(m=xQ;Mubj(`nk$!7q{$ z-_pBEJ2+T5e}s)pc}`f+MQf3_EYYJy+OFwwTAg*+%ZfHC?aE|rBeJ~V=RkMe(D9pJnY66$ zM$Bx^mm_;a38rx-f*y`mmId3Mj_>|6WI96}8(74F0u>Id#vC2Zc(jXzT?l`@pR z&Yyopri@Qb17E`QBQ?d}Gkt+ST+~$LcZtk*V&z|%hSpgFTg%?6#?oGkPFl@zWc!Yp z?r|p!C30lkZE49(la5)wHMOs+7+XmB_rj=X>pdrS=!|J_osCg&++Cg3@}3^kdnxi^ zsfDK4T9C;%!7|rUQyzCOwVDidErPpVHGRw9b(9H~a1d~4*_7)hYn_N#m)}et%C0a} zeCi?C0{=DzDT^6Ka&;|4<^}=VmF=?I4gqohUJw`r;p$vR6u->47ZTd)TOaQ7LRTSUk;zMfc2Gj9d@u`W>|m-$;jnuq{1e{G=U z{Ih{HA|k*$s@gt`=$ABW*0}m!kD^nSVD8{DWkv*W=7ODy2x!vSrv}%6aWXC%bR|^B z!s7$h@C2WHK7c!O&aMv%xX+*1zWGeRCGIf40@{6efSs38MX`Qtz>oYuh{eiY%$$hx zdP61#@K@lF$6pVTKv@3704M%YqlaV77#Ct-O=ktHH=(vG-m z*h@PD#&C!3S@E%eWL}NMVPFeS25jNSe$dJw?ix5tI32K%yNArK+zr^qOVYbBfx#=k z5A|lJ9RsiM^6G64)Ub2TfuYpg8VyW?gOLzkVXg~UO zUSJ>_`c&WnzA*(Jh13F13$|)l;AcEz6jf%93FPl~ph_EdWK3WyMf*IpGTIRn16%R> zBcf&b&j${B2%$2HmtPDNp0<#>$8Pk5$?#T90K*(ZSmxqJNV^4`Fu_19q^ z9|#=Gc@7d$vas?%Gp_)OVmOli!fhK-ovyVAdXiI41#*R@W$$(i`dhfcFCxoI3KHT5 z1u0qMg0}L)peTNCW>8E1!la`3#{8hCdEccdesN_`7fzQH9bv_5gHn0vRMcL#H)tIn zMJS4s4+bSX1o^#_L7yeoXr`iVB@?e(f(JZXKQ#Io%9gwv+?&5NEz(1PY0R4C1seu& zcm{fzxgN6FUgkaAYa6UffSI>ItR%?1pVJnZXth!qB-h`JTtdwkY8qm{g_?Ksdc?xb zjfB_0lCPLGbicKk*As=&*_waHk9xN;b9Wo?K3dQc>RPz*G55@KsRanCN=5_q_ zLJ^uZ$v3y>UG)4L=5VfWN^Wfl(b388%-ncV%h(VtyYrp-4_^62G%UhyKIG(A!-OHv zC5?G`M7N~pXwbY|1F7?_xiIrZb7#({kpjhvYi2disJH@KIK8+1j)e*z3(;HShDKwt zBtHVQwExxIi5~zFk%B*p(37^-(L*T$qctUAF0B1;=8XT1TS*h|a!>WK<<249x#(5d zX=QM(=t`ZzxdKKULH0_ske0k`KNOlCv<->oqya-6R`ZjMj139p?{2>JM2MarB2m6$O)drf7LqrV`Q3-L(=%5Sj4~zw}gDb4V5J3^>>eFEB|@`f_K;`zI6*8{ zjI%sy45K!QS8lNivs?|a@kUxKmND}4%?m9;G;H?WkbAtEi_*3uBXpb(Hxgngv-pO_ zb0(jbhlTpFH6fwGR2Z53C@W+DG}f|(3L#d^!$kEVY2w8;goiruFPh6{&E7FIo}(Rk zVeHw*LSN^VO9Eu>okLa1OlsdHbf%&X@j2{h=vnw+~4J`ec&{qWF9>#o@I5PAD-U*4rtE5$On*_J%L9XX^ z^VJ?owWPiNbZ<&1?+_bL6@H4!EXg`f5lju`Z2(9$u%lB$zkHe-lz*i6A*NAmlVtUu z^>yfpP!7K&&ortu)aGB~bmdi)5k30gvMZvgPHb^m=+pdohnxu0vIf^ebNNXlGC7l9 zOA~Jd{e|yL7u{`6<#YX=*ofak6FYEZh_%^`reWiGHJ4j_u~XO;1sQycvXA>BF6=(v zJq6x#W5V99pJ=vfQrM`6v>@pehQ%|&Rr9>gcoK= z68}Jl!ji~xc4AkEE6d9WJHdzlC<&xb0)E%9gP(`J$M-?PSVvSD#Mt_<=zrOCa%i{{ zohfkR4Wdj_3c}Qy(PWUcsroi3hRF&ESq;ril${j>U%m&_bw-_ z5Qhl96u>wS8WQ2pW?l?`iC6XiBbqO-hU<7)`9GprP#)fe*Vq3mn!m!kKLkxZ%;D5qUp&UO)Mx6f-zqymSKJfjoieC0*VG@m{h49p3ibH(>Vfn)Qct8_NWGEzAU%Q97pWgof3{%%fYA@| zMD4%;x;}QG3-jDR@Nffq^U}a^ROY@fnjX76(3d1A;NU={c%(r{gOQ#@8iMo` z(om$Qk%l2X!x|iX_T*Z>TskHNF$L(AtfLsA|)Y>MjC@O7HJ&Pc%%tP6Okq% zO-7o6G!1Cu>kmexGMVg27D$;zU6r=@6 z3z1$!dL8Kvq&JZkA-#q4Hqtvt?;EE9O(f`QnyP)_%~I{=8@+Q^!6VvE?iMKU7}?NTf_Q^Tn-218c^SLQZcp z(t5uvVG4bE8*UIJ;9&>F(j$N)sDp7gzq%~v^;@wkLPQ!tpB~!En+_T7?>h1Z9^T4- ze+_UZdhhVoFcF`LemcCB-=34;nCZyY!$*{WzihgKwgW{^8g+EH z3)x+=!l``sHebqK@ufFSJ-OY5tzWe*m|xzM39F64L{_gXHEX+RTW@|ITMu*u)zw`Y zL%ZGEHgPM{b&U)IR^jPD{H|;CM(gS^hlZR8M9Z zsp)s1eo0`~Uv-ucN^m(fJzP`D^6jm+6iR7&t!%D10YKqmDROYi>}kN7X4GjU!Tt!$uqhh zD%|PXY3R~{*;xa4jB>|%y_$8uR^}_OXZ5RqFDot+=~GZ+?o}{n*o3u@Muw%8^4h$WmbTv9m=|`7n2WY!{a9 zfX7J4G_ldGw(oSP<^8H6DFKi03^_UHHzFk$ufbT;zM?YFsII)=={ zyxre-YF?c8hcEHP{QMBc{NfrbH1 z8ZW76pXYSfpg#;ZHxYXI33^LGq#@~m0z8!;`3 zEN||>D;96;;5Wib-`K%VVw=3Vqa%l9#+y4P@{Rl#Jn>}rm+eSxtmbHInJ{8RD~i7d z^6t*gZc6XJlHHZs=kADOy9Q)OHDGV&?GO$Wfze^irCB_|EhGy4PNjcjenghUKfV^1haLq+4+3< z^=~jRV7Q#Zu_*Y*Y~EQ*Whss=`$}}BNwiMmW+nNbO3oV z=^iqu;+WSpIURI z)x~jevNgq}<=`d2FLo)IpyXdYUF*QM&1IMPmh~DGHi*0?bmcu3#&zUW8V0RX8smc%5mZWzkLtx|7Sexh&45-p$t0RDvX&G=5$rIs@tcZSiWuLb5p zQ@U_8Ns2?(Pj-8=g$J1nuhUW^EaxIi<*gPnd9OS3My`blE(+&pz}*fktc(TzyLt@u zX7OgPu1?lad+Iv-&6(>*^>}&S7uZslSU=QQbYO>Xu>d}p{tr=?-Dl(YKK^H@yRqR7 zbB^&GuR_h@opQGEUZJXh{#Q;ZOeoWOH_aK$t5!7)EHN(U9zUuOw-DO=l0aCE@y(c=&&3dZv zo=?O;fiLHJvmJwT7V_Pf(6FR2Iqi8#kTVaA&v8~}Drv;<)pE(ztuoME!cR5pA-R4R zQ-|BeOSkY|5(WZ>aCZ6IoLO~o^U=`U$nC+?Rq0SX+2r#%op|X;QsqX` zW|v&vIl@H*e(v^j4!>ei7hGM!h~OCSqWzLHi{}6;Hz)JmoI#Wkkn70u|H_HxxhoYj z6u09DW5~?r4KIGTBlFKWPHdDzu31sNRu`&Bt1x2B%{AAZcfvq6gqphMc4Au^(7 zkOLbww^{Dfyt$JH>V8}*6qPV!_9zRNOT;oEr%_@3C&V(Olll6}!8T^}8&7 z4CD^vy(oO-u72H-9r*n2x%|ukI?{pt&^@;yKb`wO_GI~`TwYQBH6f2ORX|8qxyJtF z*j(X6Z(T$y6c0ZG=)?;GyB=YL>f&;h=qM&$n_)FM`jcWLRtTwV#P@?7cLgF-Ll0;fZQ+)8<@=b_vq zoQ{&zI_q#eS2$f*7fFiIdW4awi@V^`qp=gB-;L}~Zx5k%>zNm8`E9P9cW-r3_y{Cn zddIK6$rMhyB(Svh_}4Riu6MxKT+Ut2o6i3~)4KEb+_!jI!I4^%LYe-$=D)~upiB31 zIq8<=iJIQejo^%AKvwEz|*vS)H zna$H$1xYEx_u%P^VZs5F>cTpvqmSwVfTNabBQJt>HQ32}6glq^7L&ecxHF7nhAh%I z8}8&ihMZT&qLb3}$#DA}cJjLba-OT>PJTC|uE{g<_?0My7U5?UMYS*UB=3I0+RY=| zgL<^B-f;6#+!Ypo0%*#hJ)RWmA}|aEW@;L{+nZ*)2o6IwtLt2LHsUyr$z3D*+hr#o zRm&k%7uTJ-PdGrZ@{x2)>T2CSMmCB|S2D}zOE&N1S4XRSrwiM;eP;+iQCin`7w>Fj zslo)aa%L#)sI#d#J74FKJwlZQdv~7Z*BBI4K&LX?mpRw@@J=6cI4tnGs(_dMsyyt< z9^M(KXegZ4UfAi(>?e2L;FshTB*4-~QoC=3QIYfB{#KA>Iq&;#ck&BPXBDjDWgNU{%UTWG<;*)aMO$?Y9YbEMrGE12 za)VW9D(5Jt-`*u0n^QDe5C7^=l?bYROs6uk{&dBz=lDoS(MA0?f+N?*$ z{`XA@$@VkY{+ayLSwTxZ3KKz{yYJ>_ijT(l*7B5^I`!DiFPYTu1yB+~c|CUXLtKw& zJ*sNf$F_R6Y}{y3&)xj8jI_(l@_X){(4QM5s7xcuTeX{;bTh7-99NtGF0c7cNC;gV9jVXc%@4w(&vbzi&kD zExfaiKcVvP(bT1i|4cvCUWVvKg}>xzY3|Y8vGTb)raHfSDQ{o@J#BJisfbGdPqcMl zA6?!(jC-Pi{yi}Y>+*l3P2Me1H_W@$f>QzoG0@Zw?CqGm0zPb7RLR=aB=~LQTo) z8F|7z=IRnc9X*>qGw(3Zn5yEQw0qg7J!>7#s48}2onFY>p{&S2OIoeW!r6Jtl$kQs z5(Vxo^Od|kd@=OfO!?`;HYu8|wbOvS%59nf^YZ%e(pWDBxMW|Zro3Lf*R2=2_O=k7 z@dk#9v!hK9=S|?_w|{}Af@}iWo-D&HZ~^i;YIIa z;vW8-S3NOBhehuv?P2dH?d_33a}MqGpp4Ob@mlezy%ChWZ?Ds$=KJ;{3qe#b)j} ziBy1e3h7%mY53`9=JSWvdJQD=xzoJ<-8g$Xl;calxzmA~>N8*?MkFLeH8n@!|7hCx z*>}NCqQJNHxPk3+{L#k6TVw$`N`(6lq5sWYOpkFuGx+)6>ZnW_c;qt@9TH3YI7SF+{H`|QVe3NaU zGB0D3ZGxCLU;K$LkZ-p2d3mq zHkzxu^{G-n3e2<(5%WxR`3svj72Wj5hv_!iTq!%##!J_Np{4$GEz`zNPLLNak-_Kv zJ+w52W^6diqq@7*#!p-Ph~;#XG(o(apx*> z%eUF^p7JxLdYa$Z&UZiL*-`_w-)?)FLx8*}eDc*cT+B1jiDygQXtBZWO((b8nv-#O zshajA3i!GXFKtTCl%sDc%x0o{J8WSbmUY=S19i)`4HffJ#h+269SO`I2BRTh>CKg% zVzxKMpW)PZRH-)|%d@ql)KTbQ(dPm|s1ZWyT-yw;T2ex3YeOy6yr%0bArEMrO?Y4vW~h&l>1678+hW<2Ld z%f>)H>!Sa}m{P3-#*dPWc=}ij-`c(Cd*0a6;5zGG*<+ijY&K_HMYU(S0#&|ksrWO3 z^74h=w%jLx$fMbAVrc-~+b0aE^&nLHx%~pqrM&d7Y?FLBdt32}zz9489%!PX<=|15 z^R~_$5hEv;MvEiBFYl3SYNY&9L3XXnRc)B#&M2alg-D*VnCNdX6J_0y}$>e~IBKP_Hq$440t+MJ}?UTOVmH#hH~Z4%d9#x(TZ{g6QN)VqBNn0?TOhymS=LkKN zQ8oLfHu_cH*!V3k8Lq)m!D>EzR5-^Y!6d(_s0BPi;aZ7lcGd>kfw^D%)h$a`K1 z^6M-~gpb<>DGTCGDC-*O*a@M(avNX1Sn5T~Y_KdCB6V8admgmxq>bO)z(YtTYW5PC zi*}l%`7PIw{RL>0`3b=y0E}0Nodv?+G&yA(&ykq%EiBfn2W(9#`7{Rh_yHRqqoUME zoxim`Bi2|T{xp#N6&R-GUjqTK@O$qv`tol>yvcsr_N1a(`rN8oDc{wu1u^H%N$R{( z6D53aOXQFsuSIpU8oa~`aaE{8$g8jf4{n1p^C1Y|s8``OZ07}e+H}S?jYH}*AFc^{ zT3I9TCtEOAI)6S)YrUmjKiWodz%Tr08!FuQSa&}pEPX+R9jF`s<3HJwI1F2U5_s=( z)|OCPxmEqkLX?&z;I+~)W!|#az@O>oY~8p99=rzrD6EppV2+Ibi%NAg-7aVk@*?S1yRCCg zlsuyHVHR56El5ip&I@6Owa~`f`vyhAPp`L2jWoYVuw}E~E)A?0%#(#SFUorx6f2ae z*#*J!$G-!So%j=kV@9#fJ1y{4XF7R7@StaIv5P zGRU5#K=s%g=e$Y%Gkio3{(xhp{Y>HH=EF-#E1z5_7#&um^J9jI!E!*UJQ3BEwC&BIv4| zH+cobwg1bKSW9kFeZ?019=XxHmj$ORgZ{Fj)RU603KA<9T)0}h{d+4hXP9<0t{*MF&vAmLX*%7H*nXMa_4N>5E!p=Z(CE4)iZ&+z>b7{kl} zL2G3MXRZrINX~og14z&$cb+x0rrZ`HQg5KbawS1V8gWCgu)r5i%RYeJNV$rqO`ETQ z=->ZIkVv`7`D7?+>MRXLZbpTlA)eD=}1f{XJ00!WA669`A1hS)tJ{FC!S z?hDh&_(oevO3Y=T>x z_&3I*5{Wl`_OsxS<}|SLv31;L;B0J^%=`nJmZBTl`6)h1{VAcLo%hWlTcjAgp`G_J z$kS3c2Rpxz@qvRtnS-Oy+lh|$F&sB1ZiNki)epwkz7W`{e-K3IaVPso4tUTu(EP+l zklKQK=xLdgK(o8Eo!6GmSs0V3`?iR*cVF|OADso$eZkwVr=wXg-A(#JzEXYcI_l(N z=Oet9J3vp0i=Cgt%X!DQ!v;6%fh7m2T3W$J-qg`mzz(n`l;UcCf}0do<1S zu=8h|-SkR|7B@~jQl%&T^YtkM#`O~jW1UhA~fPGM&YB1X1Z|9wa3{viI=i>r7?_~{dOi0e#xgY9Zg{q5^ zo;g}UiqC58N!-)qBjTTbZp4UwGw}Jm^H}Y=Z?LP=mNX2Y88ZcvHy(iUozvML|Hq;6GHIF)6yWJr*hsq$1rsADk-SoExcU1IN1Ia zhh_e8SQbm1U6US)HJo;4L1N?zbIk&$f(0R`gJHN_`0?s9o4EIxronLvA^V9_} zqu0aiVU!wb=QnwSPXVbt)Xp!GAg^(CU;OF)Fgt%H0Hr}x5+*p6F5&i9xc+VZmP6o$ zi|TMWikVpF2s^)UvH3Kn4aZEk;@t2@93De3(V0xwGoaATPbz0B_@nBb5Lm?@}R*!hJdId6UoL4d3B zoauH8JHP)T7j!NJ^>ZzDe%)OzD6$9y$$3qSprylG3M`QevWpNYp&*3HB@pvvA%Fo$ zWJT$;3+R6BQa{SPfKiB@A_;H{yD$CFN(lYrHoRkmh-&%ISafksljd+S_E?T}KE+_? z2Ok3!3j8Rc7)>tCRube#vs()`!lwjECv_q17rYwYrHx<$QK+HmZS4G7txQz&ix~Hp zcU94yaIq90@)q|bWVn89g&;-F(_fO7A-+HlirU&+aXqNO94n0MtL+f0!B@J_`dDGG zY6_NIh6YvGP)TO?T!vv+m<<5)(P5Vkb`!l{iqWyPw@0V-Z-hJ49fgj!C@bwK74i`l zYOUa?m680_!Tu7L7km{`@L_K#b7FJ5D{bj01T+bcAqrf375XXb`-v`gkF>Rc!IbYW zv<)zRALoN>u))I|5UZ!|FZN9DVt1s%Yfu5jf_SG+_7ski)xTg>w7MB8{{>D-5zF-J zEcov)e}%d2*9Efd*u~DT`ZVt%_$~Z2(1tF8QA8fT&>bh}UrL-1zAfl#H&delRkxb8uB5H;<0 zh)$>Oc0MeU3+%r`WMu}$^|iaxiSG7BH7ycA__+suV%@NZ;EioPgt^S-KdUWQu-%Cy zq-n2cJ?P$_h$0mxY}4Zc=RdfKcm_ z$DV>S-TfEjzQS}?6VTD$m##h`NY{eiFb=(MVbSM74~)qCTaZ|FPr<^v{Eh?cFLMJ__yANC4G;o^CIflPwsKclQ@Yv@-M-!!bHjoBAfXKIBHo_J zVU*tqT^ldN@^YT*+yspNwHsm_l-h$3gu)9&Pu?!z$pDdVcfOMC}JecOchfi1oj`wCV z(smOCdxAWE@MMsQlLU}clk9JEWS|Sdv^S{CkrquB%y?CS7g>U!TSuqZo6@d%_@wyF zO~SHO6iX0K_2T-AW2nqlQ+5aT?RFTFceun{uc z$uO|4c}N)+xIcn{kDr1dEja{+SP@Co09&UE3v@LFDWOU%t~7s!y_u3>a+3gdrb{#I z`~it7R6!ywu9TN-533W)3*lwPTEO9D=K84*iYNh!so zya^m~rNv1qf7_yfB%TJ6KhU?^)m-1^WDXL9weqU~->_MM`-M zXJD_az35(ttwRJb%l@j8FUZ3eh$=D52=p`~8q6+uLC}wyh5+nEjb9W5T_|w}H z=0#zNqzc5H#=T^JgCk?zE3kEiO<+sToyU|0rc_P&Z>yZ?*t;q{l{W(|idmRkBc*AX zMp+}jX_=``U_&#AEp{aNB_$clo|lE?DC9MxGw09ZQT1vv=D(|QBIj2GhXy!B7n;$C zIfDD#I!7?|UFQnxo);`-v2D5o zm=OcscbG3MC=6;{W}&S4!deINI#8DsArA=n7;I)6fb?G=fFQ3K9a|to1vlPAKl&^b zWLM5RvQUU?sTY;|+2;G5OmgOSXmI=UupNC z)F%+-1gE3P<4?dmDbDiLz|CGML`YQy{HleVw<28#ALYDT{Sao#zNH`?v#Npp%OaHi zONKj3f{w{~fdk6C=;^o78Ps*A0Rs>MZu(h>SY^2E_XYbQ=Vd-w=0;Jggh^jb!S;a& zwc}P{0PYS%s9jgjWdtMR;q_&>XU3|q05Mo{HR6${8l*0R%EBsu`>(dga3fO#vUdvp@eN!f%u#Ew{Jut5PpB#|Nr$td=*WlmkUAUhKLpW%-1z%LFbegy zdv{2gt^)4CT65kWP}sMw2ZGaplQmAqJ8Vq>q3YYbIR8^jz-~SZeXWh8 z0&LiDOb%qQrHLvH#rf2QEl`5s_nu`kw~T;N%7oMvi~%HsR(>W-u#gu_$49~h+>uWG zSiV4TqDuhF)T2PLVnJF4?mr6N3Wu;|U_V+s3i7E~*p=aIqhKnUnXujpr2Nj1T6r6%ngq#GM7&kNKIE}Y(DmvD z)3yoT&Ac6vNb@N$4jGfNLM5+$o3jz>56BV>P!(JV?a2~^4F&vM!7?3ID0wO*r0{7_ z3sfQGwL>tAGRUYMf(1jKg?{-l+m$@Bh4o+*bdbC%&k>(JB>{A8dYKz*!R(_PIT3ny zuRV}u?Y5t6P?O1!xv*i)Z^G{g*6}O*D-K-dgOEZU`~HyqFBO*w$WZpz5&I7uI;nan zyM4_5RV|!X3hWaUnW1d%clMw7>T*Lb{9u2%2iK6C=@n2|%5{bzvjcxprhIZC?-I;Y z3N>s|*TTE*93ly(<{kVxU(RLM`WKG&7wZ^lM|zf;yayDvqR*!kdb0e{g;6ddjH2z( zTFpGsFvo{dMi<7h?NbV`^7}bod|g-@T=AYSUS=_|po4|t#~UT93IpiA=!L6=NJU5& z*b7&Ge)%*<9ONN{^m~gtae1=5&f8o3IG0zg17&-Q`TbSds`bq;?#RK)zHw8&0Eha) zXXIHPTHiBgG#Q8k%xQ zq;?w)VwN2eI@JDf@jwnAZvFA+jc{WS9|S#89M#PsCaS3$C54n2TrACFnp>n_U0apt zn^fNy8Z)L{OzSZ%W7@WAJtn5r=(b}=TgJ4EwOEoy$Fxdnmn2nKt|^J2_K_tatk}Ke zWO!suo3WPIF-b8=tzu%v#J01vwv3OB9c^hfu5G(e-UPtZ~Z{ zT*KHOTN32Zx_Qes^k8^NcvP%qT>EyGq*j)eW82|wXRDaDqb*5oTa6t%zSWraV@8i| zWr=BRiD^$sZGge8Yl)=+wOUky&1+MMXT!G5TT|x5lCVatW7@WD)4tu9q*g6slUgRV zjvYOIZ0lC-$H!R4wj0}aT$}cz+l+4Ac3dniXjL+Z-RWKu;JD}UX}i1 z*<`!Wm}~@MnAq4pTw2Q%;ZAQavDDBgTY`ukLM_=6Oc3*630l_Fq6J?S`;%>lK!9us z{IdmAk7bweOQf&_0f-iaYA^?UKv|Yu!mljIYF{SyN>+Qev&4rIvxRqTW!>K(0z>yr z^eYpZgaP0!+TffLeyXxn()f>ZgnoRJBXl1cZ=&E_0jaF^qjF1x$66s3OE|X40&#Fp z$t*6fS|C0-S<;>2CSzS`{oWFOM_v|<*YZ(XB+Wb?%NI&zA!%KJ(t`e|drT~?5f{V0 zl5t$Kvbe0-SHjQY;WM<C8$f9@Bs z$i4+Vtpr(i2xqZ+9TGs24+%(R0b75hq$9;0E@{oR1}WoXN?EpyM@slWS(dFWM+BN> z=hD6a6y%S_Ub}+6J>QfFdn}TuO*twMbmgef?#yE)i)yG^1Sw;x;}=^mW4PbGFpegy zz0{F{)?RA82shZ-xwV%MY^{N&s>|#A+)~cNy>$=DdkY)hh4DDrm$DJ(`dcJl!eaR3 zQr@anU1;~D!;Jx){1o_k^jL`}K46C{K*uMQdU35)-E?=Ss~=s&A+Vz`%W=m_Tqtof zE|w<@F6Hf@42&!AIvOyfv&3) z5riA@{E8$DPZT8_Mnmz#O8KL=vPHtRcp-|CL6h;hH<%{lopK+%K^69jQl`cBC!4aMMjaN}#*)jynz-jxHUoY^&;`ySvm2ehB1NQOa9$IS*Ic zdAlX&;Z{3mM@i1ZHFn(68dtkX+-2v1ag9Az>RDS_KfbgvM;{903+;XtrF|!q^1c&S z+hZ#@e{F(Lt?H6HFMQHncKUXrzCVeNF1hm^z#aBj zD*qHlA$2m2E#VG3boGD@i=T6Zaj3fMj-y)hU_7fXymRpi;jVjgVycUH(_mVuXPW0b zYP#|@?lZ5QTIyB%nk??X`_aj%rTkO~7v96E&$LqhkKy<#UwEHYTw;(KQPaDJ z@X|yfPVR~zVG@<$v}?M+T=@!m!x^Rg`6)TC>L$FJ-tL99Lm4yfx;v+Nt%jXws(SUpQd~AU$_94`#mvq24xzra` z)wJe$K}D->-Rmf|J@^y%B98o(AA^v@zaVfPaM3j&X%CirNmt@|WtTDGaz1Z{sdk?4D>!^yW`Z!r#NkmU>&}AgJw9gyZsvG)zXOY*4j=xkon5&CB`C-&|wjg%6 zm>)_fb(g#-{v{lrn|2D*(YnU7>c&2{btEMM^FiPDwz`$5>H@#FB%UqkrEk$0g`NS# zBA2EmF4mIzG{mSjgnY%H59(?z_V1im+L}DS1GRNj!xjHpwQ#Xt*69{$1D2|3)Ldb> zs;>F_l4YJCqbT6F<8ZH^-&DgL{uY!x0L+v5flK=uIPu!bfXn^7AmBDXZ}+@@v<1=B zA(aZ5Hh-C#cD_-nsZaP9_+2tpw72<37=<|h%9yFHEC0Mfd}@KU7g2av@5#7h7?vvBL*@c(N2_PD64^#45w z3^TyYzzi_J0K*-TySGwN)Fkbqv|71aCZwo%feGzmrBb__m0RFaoRZ|wZMR+5r0b+* zL)&d@TgBRH%T#JBXV3)8@&XLM_vZ}bJfFc{yMO$?ySghcDDY zKy|G`81Jt8T>9qi8?`*HO2w=|1E5U!vicQK^)mE7l5aSUBMSYA$KAGSg+Y?elfEOl zA>0UH0p9)oNFget^nnvVJ1Wxv5l}7z0M!sAG4KHBaAn%MhgAzB(*OlPO>db76aW*CC;=N(Zo}8z`&wMtfgO+G zBZ~nPU_@0Zj|6s2;sM}icph<4zbD$2pa4tN4Ouv1{}Gh*sO$Q`3;+Pss?%h!zm9tj zD!SamFx(8SF6yg58#4AET98^D7R__T2 zdpi)_e8(L+UfYk6O;P&?fC_LIDfRXrRpJE*08}6$+CMAsltL&!a(s=~?(;a}weqj9k24@{&=tmPe zMDf!~eL?;D|7GBa?5EbW4D^3~mx~_v2=q@@j`j=%v!HqLZzK8otK3xQzNbSqWQ6|X zkX-76|-EYlFTAI*DSaV;Q&kr@cy*YQ=mRa;bMAc8-dAKyK)1j6_c z$hl|a*bvJf!F%?otP}+AQ+I|hmY*89Xf2EX{mj>J5xxX5P-H~A$yI?tgi)V>u%Fqxh!D@C4fTx{{iYJ!RyLyS^A9U=ZnF!n+nK#^c|= z4hHT%LXH0Px{G>sK_a97shmcXf3dn4)t2BO9-}xwM)M96%2uFK(mm-u1_l6?pE3mp~Q;%!$%^I%Xkzvx|8%mrZqq;Vh@!(U(+AOL+*8{$9-xPeRs5CJlko>(}V zp-bq43efQn-oz4?z2VX+Byr8X!CHRoZPmF82m!jW0T*E9TW%z!qWN3zxROb;fDoVp z@|t&50tM&+>Ad#`@Fea6bo_7vq8S6`NFoaGDtrg)yH+S6)dO1~)61PjAAp_u|E_Ye zNvMHY@44oa5=f)I03WVEFrW0kYc`<+xPXoCcwgmw@gWRE@i`wuc6Rn6UfBLG+?HIC zjM#;F|8QlJ3P4OxVHv^?)B&^NsI4G$G6T>9RF9Eq033)?h(|ZStT*tk6tG=@Ll+nX z)XI~kfI0x|vVAIC!m`XXaohk`xF=t>o=Kn85dn?{2w0!Qnn`x)8F{9N}eD$p3nSP zWq$ydAX6zp9hN?nyt>9CYq9oIRRY1kDFHOP}P%Bqv0GGhT zxBpwkS~3IR1XTR_a0#g8fV6DyZ1nxhWoS0)q7}Rqsz3O^227CbkMtqHM+Uvh^<&lPfG(cn9fiFPkMV1AYK&-dyu5pmdcCDKp zg+LFWd(j6b5X(Ei9@z~b3Q!Rxs|R|3nLqoDiqB;RAOz^Wi%fg)Ta|+3#|JPSRqY3V z27m*o1&@qe{(2a`p6oaZEp9IG0my9lFasVWX+R0sPF_JW8E}EBRq&w%q$n9sT_Ytxqhku@rSCHp%L68WniPNoDE6LG6}^b{uKdnL z&oH0^+(SAJB!Fx_r57x4>j{+&0ZagT_$K$N_JR)y0KhBCd0O@t+*qtp;`)#Ds+=x9 zbO7MZDdJDkE$mad000({C411kH^IcWoKQ&ud`}>u1L)a?w6T2hNeK38Q#9WZL`@I* zO#<)&sA&jnfD&o>wEUpbiX|2RKmsW5$u!^t(A|Wz6u$U095Yid!Q|V2JyPC-M1ln9 zm0{BQfE1ACE!*&;>bwSK0F^C(1;BN$(#Gs0it&!VZD_Hg6{_gDNL6Li#fmX_UYRu7ox7 z;Gn9L2VzYYZUlNx|`3k|EbL;(-7|u%m}pBEdCtDMKIl19O3>s-md6F+}ZwdDH#$6z`zeJ zg0(d?${o|(^^754W1fcw!08#{o=eKhrY{e5Q&*-;+ZP%*Jm3gu+|*Q;bZ=?gR|nRI z=>JG=IqHgO2}YmRgt=1*1)}&R76A1w$jJUbhkp~#=jrh2{GWo{@#+!<5{dUpvw*2oh09Xq}m zarq1qi5YMk>1nZn@-qiMz!bjf5va$N(TFMgdJ(orfXfe<0W%0m*F7wrKW0$%&xa#G zSH_1PU_4(I2kN~{f5Eaq6!6oL-N$7uz!r%1+MVcR3SYGuK??ykC-4R?RSZ`gvdM^@ zsk;tm+SDotwSfKZLm8kStoYJ~kq7pf-Sikiu0$T7Mg`J#lR1?Y9FBEU-=|zvpbSu@ z2Wb*fK<8cQ4YxC(My^pEoCxZd00a5F$>OF0Rz~~h#=F;(b|uQddd*RjvUmtl8paWj zcms4BfUb=clT`s*z{EFdV3qsICh-WXYE?luLroISBWvI&>#(YJkE{Tec(#6TxmgIQ}&aEI}^w?J^0HNT?e*T3VU?Cm2S zh7~}&W0jgEtN=AnRdjm3=M7x!N@;9QEm1H$;?Lid%F9q+(t@W7jjvm_s3t=1wpy`BJ~z{Nb`@4npjJ7I+y9~`Mw z18RVpDgYQL^4nQNl`EHFeE_)ue``j4H922RaSk~o0adJ=3b+r>AjI3DimC2$HAxviGF7dX zNvwkVv3L=s03~|*et1GFN>xiia1N%a_LeV0I{NXO6Qy9=zib(4RY*EuAE*=prCq=t zSiJ3q+{NN}|8&(-_)ri`{DGMOz4+AwilbZYulIo>#Cu74AHY#Ll4OFCOE(Gd3?xuO zD&ILB3a&izk3GUt`Ju%s^#gQMcz!ro;IT$H-2-YKMn#ZV3e;Jrq$@BA)OsJLjpJL! zp|-Yi_ZYG+z&S|eKa{ID+>3p%6)Jx2Y^=+JcO%q#-XEaGbzQ1j9MDO81?t(7X@FKR zDrHOfnr3irK(W+0?w#r$0J&j~%2JV07(P@5s>=E^0Ha{y;xe3(l}iv%E=KA%>m{nKmR#p&-2T5fI+_48|I8ec+?@ z9!x&65PVawQYs`F&Ys3o(69vH>%VG zoN(u{4CqY^O_vA;)XQ@|6W|2~<&%J4KJn6 z&KnVIS6Pbz2Pnwr+Xu)&G%r|!MYwdOJBw5&qX2zy2g@#y@f&qoiPTS8R=cN@bRWh6 zof03YL9Eh6>L&Cf8zioAPvQcw1zw;7eXWWULB~lO3dVs07zd;Nho5>i*xhsgd+6*2 zyL;Aur~1lH_p)R9P40t1q+56|b=r|JBj8 zqGvPnzw^qKJ#Ua#H8lq{aCKJpL^*!9s^{qlKcQpnZ9QN8l2?8P126W;o+z$=zb8B> zV}fJTXYMUQe9=Mdj8%g@(VI>CdK{*G#~#0ipUODCjBotMsW8W;%;Q6M^PNM9W?uW^ zaqZ?kJC5V;JN%u%U$0}&j=po-c%{BKgufKkJBc@)JQ3}fcInBnK}urq=8ich@%O!> zW6lq$Z>qjOziR#uCP#0?sp&x@k~xyCj+KT}SCGkaIHOOge$N{3;~Xh5rwr6!oOtIc zdM?~_=czUdzp!}2sW^PVe~NJWW~AZoNBsTdSiIr%+hfVpU}-YiG@d*|M*<9BSCsN;D@ zwi@`{sr^<*H0{jZL$ z7y73~`rr9;o&6@qm^bNKrCjaM#8 zi+5~r_uon737h{yg2Q^eAD@h@p6=16%&4zhRb6k(xY7In+(Mmg_&=G%zx>dX=(v2S zztTi%K2VfG_1=+Fo8U+>4WxvVA{erTFHRmXkhCw$)96J@)TLRV1a7avM_yGRSM?_Mv1kucLtB7qKITv~A;KVJ{UG#8@3R+ra2J zLW$*_;&^c4z$-*raP`ZSYf660cnMSB%Ld)p|Llwt+p+$m|Zb{T~+Pk^PwYL z&FuWsngPnU;QcgFx03;V$=KNs2%#?qaL+c?5-U1p7BIb|edRzKohOBbI9MoAbg&>+ zgx>>*3E?w-Yl;zNTXR{w0Pj3n{nWHMAQ)Uw-fv+WgjUcT>-B@qyi0qU&%BkiW`o;gm0w9KLDhZqgTy zv{c?YZ;)(j{^c>p*p`S_==Mian)s(EV9}1r6@#zXgi%w(wCU4pt5&aHTRq)wUtP1L zYF$lTt<9EEMc#4?dBgL2VjM&E!N0<(nI0F?(i#(ND6hG#y53)kNAW?^C|ho!qpf9d z$4oK_UB?Hn6?MNXW??OzgISJGKOgLiQfE_};SIKTk~sH74$Enq6UibS&wMwypNbjC zh&XOZ^;GkHpATxqv?qdKWOb%`@XhLT@iDypr??2mf*%K;3>BR-N3*a?ZKbv;Q>J8t zf3g)RkWsU|wywT#! z%Ukv%JaCdNoF@zp*6_<;9E{`*?!ge=ae7ei*gZHnnVh0r89#sjvjoYqS(3NnMP-_q z#fXlb@hrx%YiRHV3zeq!oSl<*;He zYjWeoo=nFl+dbzp{T<<82tesR>d}htt{%@Kc&+fjVP4`H&rNT6r~~5vyIl0mE=NbP zEem229Qt=WSBFa_f!|*0$x`GMkE-)n9k(3tFy@trslyVn{+Bn`)+%a5l~+Rg-ch9X zL(h%gTAqL06V1Cm@|eR>l~2u(3B1hi33eR)&~q&nUnBRD&GG1Go`966&OGltn-(n0+j5yrSs9Vf7~9}@s>kzSsGRMj@|xAvzSXg1 zETeB&mC+|XS4uk3aeE>Q79SrfWU;}@x`?|n3*p+l=cH$xm*Ab^@hnPsK;S*Io;&He zMn~ojtTUOv_H242ub6v8<5)c4`8JqjKfc*vbJVh-N2!oCYKQ3bD>9d^;?JsjU%Z)$ zz}NfZVP2?pz+Uap7+S-DJFJO(nr?{7%WHK*R3bL%hKLqMg#d(l7>{H_8eVYaV7Vyz zt{5_)EPgOf7!u6b@>6#eu+ffP;X@BlRwTPUKoL>23En>HRl3!E8_vrNyz5_aSK=zm zk|;KPlgtW4#YK56)^SKbWL+RvffqjE$&e~T-;G07VwLj?vFXouMac=&iF{pA_P$nh z7bLQ9N4|aN7OiY~^e?N|-n@F<%&H|Ts%NgQuBunIdHu*VXfxZ^56!1D5^&sJK-?oK znjEWgt>^!$DPR$hfQvGMxWAGa{GVR<#=Y0Z)a>+RKRuPa(4 zo{LXauF3EDB&@aXeiq$2>-Tu=tTTiOd%cd$77Y*PF`d};R5%M&Du@!v&l*^QsMws! zw4%MXm}y%p7crY=xZc*2XhdwAYr@lhxCFw+e$vV;tzCiFRa0i%yT0Sw-hxQkYTf?<|2M;*J+g_;rQ*h9Y=pV_KMK>YWHgczbb`DIoMh-R7f!uYH4Fvc8T#vxFq&>X_ctrmP?sMc1wrmMgmZM=2wop~FNpp3Y$* zT198gQ0RrdN)P3r{m3Ycqv?vVETpYA20OWORUV5I-SZ9TYt-GlO~O8D92>_g=XlJb z{Xjm`wdQZetTb(4!L5gX!=8NAwVCPG%YE^`3fKTa-KYp^XFd$4Ddf`(G3HPVOOWA1f*2m7lt-}g2vHuP%0r_(!kDuoLCaqJNZ20NuoST=H;By=U3Z4CX`EwgKdEmOmmib{JH3l-gGwd^L5ajlJw78M#3rmmwp zoM}W^a6Fy|pUs7L$U|r0B@}v8;EQjB6NkTkt$~K!M zV?;RbN9ymHxEkcq!{o~cwJcI>Tp!9p+wy`L{M?W31`t)k_A=t=Y(9kVzm z<5|jh*VDRS@!4fMcD4DsMR~UCmsPD^Tb*aiSW;KJcHPx$`5Tj8iIJ?Lm9~#oRL<40 zbz<%nI;MFYk9)(yM%yOY=2oq#7GJI#t9%VGJu-OPVzAGdy=<5H)s~q=9)2@?mSC~=v+Gr z3stl{noYG3W-EulGO_TsAFNn8`?(A-#pmEMv)Ef`!j61+s}`1gQL#DLD`Vi)(u4?O z6~oVtG%Sk?6}BQ1yIHjSx&X>kC;r{TR|b6%El%92Fvrni6T3(heU-zaoSQa9v-f8T zd)X)!CKkP#gY3!@E7Lmb-i&6yU+66+hvY1?npl^Cbn;R$v^pA#ZZF>xIxO)DpHGBz z=|02$ONT{YNF21brc!gLzr(QTz&^a`-B*p`5_EbjudIG;cvxZ+5@N}S;=K}z7j64K zo_FL9YD5l(715fx8eb@N9J5A9Zt>^j%gRMpO)z$E*|h~&*`+989j>N*bTXFiuLkHa z0W%frqc{-*9O0#Vaz*>zFiev&b3Y2>>q#ufIW^zJ3WG$~-=d)^vL_W)nDx@LQ>$ShUWfOHAzc^}OQ> zlTO$nBX9(KZ-r^wS&@%LDjQ>BHDX?EFe~Ss*Oc+cwv-obe=W?pr6Zc% z#l$mz!&&2u!Sexf^CRp-nT$9^#s0KnmM^--#j;tA-j1W?R5*eSeIH6VbK-Zd%));$dAIW~6{u zr#!eXinkk%hKq-{#IpIKVN)zP@Pp)ZwuEn3`R_32lY_DB-lN)@+I7|S%c_=Ci>OI) z5F?MEGm{$|zlmdbSeUc%n|OALI8QG)SbT_bECE{L1PjXrDEDB9dwUl6vM3^f zm3mcjQ4y4dp3nO}9?Wl_Xkj5vPk%g%T_@VdSRji{Hzlxv#+U087#@kt`EtFL9jO;~ zTN1j~fJs}x8*0zMOSLA6EfCwz;(_j}?jTideQ4(fw2*YUw>{Wmg9YgVw_S z#Ct!9*NNLtB;kC2;5}$G&Nq9kY-PMCJ5`JWe)aSec1_z>3xrzJ+F;bRdhbhZOjYm>4pn^8N zjq}30$`$455Ephl^M(D@cx>FIXOdXeTa5=^OJ;baFz12SY;5bF{kuTnv>e{$iZzSH zo6T&JsC+$^S=-iIA=)N<0!vkNElg*n%8{cH8`dT;OXIrbsm!@mRd zQ#yNnqO--3&VHv6+0JyF|o zZf&RHtD_L~;=qsT>@xqLdDIJuvCc_9rL%GLBExU%NIQ?)PsS!RDxNbuGMID!*-Z9G zh`*K#Zj&5tzbq!Du^V#M**%oS20rASFUCLtn45!blKi4g@$1Ji$;Th~z`bCilW2w$Zf(zN{$3^9T!kMjQ zqFF1}oiVeG&P{*9=4O1wX52k@G+KhW?ccFh;XG@G8Pv4W6vDf|dOuZE{JD_r6_wLQ zu{ok**=XeyHe=>_#rmCEv2kra+={Q?8Hd<}2NQ#N!}#E)Rz(i-cl~`w0!?{XF~a|h@m)M8IRin zzq@< z5*tfKjb+Y~QRCPseE#bzGpVsJY#hU5yz-c!JSH+{U)V)#Wvzb({3oGixM$rT41_hd z+;^-Jfl zezL12&B0OPyESvzGV985UEl4!zx9^poU!$<+^xCw)S5>>4En_{esSrHD`)&aV63t- diff --git a/vendor/phpstan/phpstan/phpstan.phar.asc b/vendor/phpstan/phpstan/phpstan.phar.asc index 7c45832e..89f0c673 100644 --- a/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEE0yaA1ZV9xxFr4pwUzxoQjQ565yAFAmP6H1oACgkQzxoQjQ56 -5yCVhxAAlXqhfvKCITSAJjkaIhncEBHpT5Ogby65BX1O5+SkKyc/OO7JnjlN8cLB -DKbJpdc8P2Dbfo/uBHVR5YiNX5CWYzgdMzCpLQI20Ffa7qkeRbA5ZS2AfdIfLqhD -PswlQIYxg0F3lj0L+joTxfBiHgmR5wnOUx1sLXnEbqGtFzzGstPGDg9gjKKh5EnO -g207jrm1we05+k3kKzr233/ENvQD6bBWLr2yngyMoirOuDpurAuPjkBL7vN6PDbx -DlyGDazsgU/R7aE2FtqmFC8KIU/BgnpbCSWTHBEJAqtncHbwTgneyEm+88lT6cUt -YM72Rh1+QTvS3WgJ/q7AQRik2aE83Kz2rc3XOl1ADd45J3Oan1rqQXdnKtH6qZeT -wMk6PE8SQPJ8NMHy3LT048PfMOakAtgBL5xonbVqX0IFAvKAMRijwBCNKat2yRsB -0VGnoeH7klf1fSSo0xOD20Pd0uIILAWZlBjb2e/1NRytFQkokAr1bsLD/VJHiNYh -lPQ4OztCT/uumJOAgTKm10T56CK1u0VxhIVtQ+/NkTvAwrmpX0KKqbYPP/1hZqVO -vFaWJR4iLFNt+il7dlv56jmTAneUrGrWkQdVFbz5FVpqz7abIo+/cevbSSndFZCI -K1mn42aFdYXSqVTFpkzeOQeJPPysEYDysFk7ClhE+F48HN7WAtw= -=A7BG +iQIzBAABCgAdFiEE0yaA1ZV9xxFr4pwUzxoQjQ565yAFAmQHatYACgkQzxoQjQ56 +5yAU7A/8CLVE46kub8QEP/s8/w9T4uOyG1vsFwv9dafa4PySyvhZCr/vliCuYyF9 +JUUSXqyGIFi+VKsuY8y7u5zaVqpq6O6qJBkzsUK/X9BHZfFEo1k2v/NNJD7t3p0b +or5u9bOTlSJnXV+1hPNjkW4wcnxR6kuJQIoz9XwNsQC07mPVxNrHknxnkgGFVDNR +ITjpW3rBW3vRtoOWajPJMXZt6f+pJCl8ccISK97gskAzK75t2Ymle9fV9FdQYGWt +8X/gfQtVfJOkEmHV6F+pUE9o++aNCPljNo1O+1eS62TTOSRlS6fNhppu/o7Z4IIi +9QS3DHhDTGQPLUCXbMToK/kwRCAzDe9lFgjpKIUQhmEGKOjTNup2NPqWGtQNQj7h +WTP6W2GNpGh5g+d7Tm667FKej/AgixwvpdJqR1VGk2PI2EYMryMz17nQ1cvGinOW +X3auWZe/HWuyqFtt5r85ffZGVS/4xKxeAK85HPrn3mzotiXr/KZf8S525BuGqUaZ +lQ7paCM6kZ9rn9vMmLEe57Ypl7bMzfUV6c2k5KYYR2EV9LXzNPS9G7Yhpg/Q3G2S +cTqxKuBk+hvXd3rp4OwzrjAUps8w4XzyHBpDl9k1n2oB+1Plygrkew8Z5CRglTL4 +lSQAD2FLSTEAvPcFi3kkiBxxeoXSSnjP2iruPsAkcfzsENBFTdM= +=4/CB -----END PGP SIGNATURE----- diff --git a/vendor/sebastian/diff/ChangeLog.md b/vendor/sebastian/diff/ChangeLog.md new file mode 100644 index 00000000..7db073c7 --- /dev/null +++ b/vendor/sebastian/diff/ChangeLog.md @@ -0,0 +1,99 @@ +# ChangeLog + +All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [5.0.0] - 2022-02-03 + +### Changed + +* Passing a `DiffOutputBuilderInterface` instance to `Differ::__construct()` is no longer optional + +### Removed + +* Removed support for PHP 7.3, PHP 7.4, and PHP 8.0 + +## [4.0.4] - 2020-10-26 + +### Fixed + +* `SebastianBergmann\Diff\Exception` now correctly extends `\Throwable` + +## [4.0.3] - 2020-09-28 + +### Changed + +* Changed PHP version constraint in `composer.json` from `^7.3 || ^8.0` to `>=7.3` + +## [4.0.2] - 2020-06-30 + +### Added + +* This component is now supported on PHP 8 + +## [4.0.1] - 2020-05-08 + +### Fixed + +* [#99](https://github.com/sebastianbergmann/diff/pull/99): Regression in unified diff output of identical strings + +## [4.0.0] - 2020-02-07 + +### Removed + +* Removed support for PHP 7.1 and PHP 7.2 + +## [3.0.2] - 2019-02-04 + +### Changed + +* `Chunk::setLines()` now ensures that the `$lines` array only contains `Line` objects + +## [3.0.1] - 2018-06-10 + +### Fixed + +* Removed `"minimum-stability": "dev",` from `composer.json` + +## [3.0.0] - 2018-02-01 + +* The `StrictUnifiedDiffOutputBuilder` implementation of the `DiffOutputBuilderInterface` was added + +### Changed + +* The default `DiffOutputBuilderInterface` implementation now generates context lines (unchanged lines) + +### Removed + +* Removed support for PHP 7.0 + +### Fixed + +* [#70](https://github.com/sebastianbergmann/diff/issues/70): Diffing of arrays no longer works + +## [2.0.1] - 2017-08-03 + +### Fixed + +* [#66](https://github.com/sebastianbergmann/diff/pull/66): Restored backwards compatibility for PHPUnit 6.1.4, 6.2.0, 6.2.1, 6.2.2, and 6.2.3 + +## [2.0.0] - 2017-07-11 [YANKED] + +### Added + +* [#64](https://github.com/sebastianbergmann/diff/pull/64): Show line numbers for chunks of a diff + +### Removed + +* This component is no longer supported on PHP 5.6 + +[5.0.0]: https://github.com/sebastianbergmann/diff/compare/4.0.4...5.0.0 +[4.0.4]: https://github.com/sebastianbergmann/diff/compare/4.0.3...4.0.4 +[4.0.3]: https://github.com/sebastianbergmann/diff/compare/4.0.2...4.0.3 +[4.0.2]: https://github.com/sebastianbergmann/diff/compare/4.0.1...4.0.2 +[4.0.1]: https://github.com/sebastianbergmann/diff/compare/4.0.0...4.0.1 +[4.0.0]: https://github.com/sebastianbergmann/diff/compare/3.0.2...4.0.0 +[3.0.2]: https://github.com/sebastianbergmann/diff/compare/3.0.1...3.0.2 +[3.0.1]: https://github.com/sebastianbergmann/diff/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/sebastianbergmann/diff/compare/2.0...3.0.0 +[2.0.1]: https://github.com/sebastianbergmann/diff/compare/c341c98ce083db77f896a0aa64f5ee7652915970...2.0.1 +[2.0.0]: https://github.com/sebastianbergmann/diff/compare/1.4...c341c98ce083db77f896a0aa64f5ee7652915970 diff --git a/vendor/sebastian/diff/LICENSE b/vendor/sebastian/diff/LICENSE new file mode 100644 index 00000000..a453252d --- /dev/null +++ b/vendor/sebastian/diff/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2002-2023, Sebastian Bergmann +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/sebastian/diff/README.md b/vendor/sebastian/diff/README.md new file mode 100644 index 00000000..3e84a35b --- /dev/null +++ b/vendor/sebastian/diff/README.md @@ -0,0 +1,204 @@ +[![Latest Stable Version](https://poser.pugx.org/sebastian/diff/v/stable.png)](https://packagist.org/packages/sebastian/diff) +[![CI Status](https://github.com/sebastianbergmann/diff/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/diff/actions) +[![Type Coverage](https://shepherd.dev/github/sebastianbergmann/diff/coverage.svg)](https://shepherd.dev/github/sebastianbergmann/diff) +[![codecov](https://codecov.io/gh/sebastianbergmann/diff/branch/main/graph/badge.svg)](https://codecov.io/gh/sebastianbergmann/diff) + +# sebastian/diff + +Diff implementation for PHP, factored out of PHPUnit into a stand-alone component. + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + +``` +composer require sebastian/diff +``` + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + +``` +composer require --dev sebastian/diff +``` + +### Usage + +#### Generating diff + +The `Differ` class can be used to generate a textual representation of the difference between two strings: + +```php +diff('foo', 'bar'); +``` + +The code above yields the output below: +```diff +--- Original ++++ New +@@ @@ +-foo ++bar +``` + +There are three output builders available in this package: + +#### UnifiedDiffOutputBuilder + +This is default builder, which generates the output close to udiff and is used by PHPUnit. + +```php +diff('foo', 'bar'); +``` + +#### StrictUnifiedDiffOutputBuilder + +Generates (strict) Unified diff's (unidiffs) with hunks, +similar to `diff -u` and compatible with `patch` and `git apply`. + +```php + true, // ranges of length one are rendered with the trailing `,1` + 'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed) + 'contextLines' => 3, // like `diff: -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3 + 'fromFile' => '', + 'fromFileDate' => null, + 'toFile' => '', + 'toFileDate' => null, +]); + +$differ = new Differ($builder); +print $differ->diff('foo', 'bar'); +``` + +#### DiffOnlyOutputBuilder + +Output only the lines that differ. + +```php +diff('foo', 'bar'); +``` + +#### DiffOutputBuilderInterface + +You can pass any output builder to the `Differ` class as longs as it implements the `DiffOutputBuilderInterface`. + +#### Parsing diff + +The `Parser` class can be used to parse a unified diff into an object graph: + +```php +use SebastianBergmann\Diff\Parser; +use SebastianBergmann\Git; + +$git = new Git('/usr/local/src/money'); + +$diff = $git->getDiff( + '948a1a07768d8edd10dcefa8315c1cbeffb31833', + 'c07a373d2399f3e686234c4f7f088d635eb9641b' +); + +$parser = new Parser; + +print_r($parser->parse($diff)); +``` + +The code above yields the output below: + + Array + ( + [0] => SebastianBergmann\Diff\Diff Object + ( + [from:SebastianBergmann\Diff\Diff:private] => a/tests/MoneyTest.php + [to:SebastianBergmann\Diff\Diff:private] => b/tests/MoneyTest.php + [chunks:SebastianBergmann\Diff\Diff:private] => Array + ( + [0] => SebastianBergmann\Diff\Chunk Object + ( + [start:SebastianBergmann\Diff\Chunk:private] => 87 + [startRange:SebastianBergmann\Diff\Chunk:private] => 7 + [end:SebastianBergmann\Diff\Chunk:private] => 87 + [endRange:SebastianBergmann\Diff\Chunk:private] => 7 + [lines:SebastianBergmann\Diff\Chunk:private] => Array + ( + [0] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => * @covers SebastianBergmann\Money\Money::add + ) + + [1] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => * @covers SebastianBergmann\Money\Money::newMoney + ) + + [2] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => */ + ) + + [3] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 2 + [content:SebastianBergmann\Diff\Line:private] => public function testAnotherMoneyWithSameCurrencyObjectCanBeAdded() + ) + + [4] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 1 + [content:SebastianBergmann\Diff\Line:private] => public function testAnotherMoneyObjectWithSameCurrencyCanBeAdded() + ) + + [5] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => { + ) + + [6] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => $a = new Money(1, new Currency('EUR')); + ) + + [7] => SebastianBergmann\Diff\Line Object + ( + [type:SebastianBergmann\Diff\Line:private] => 3 + [content:SebastianBergmann\Diff\Line:private] => $b = new Money(2, new Currency('EUR')); + ) + ) + ) + ) + ) + ) diff --git a/vendor/sebastian/diff/SECURITY.md b/vendor/sebastian/diff/SECURITY.md new file mode 100644 index 00000000..d4ee967b --- /dev/null +++ b/vendor/sebastian/diff/SECURITY.md @@ -0,0 +1,9 @@ +# Security Policy + +This library is intended to be used in development environments only. For instance, it is used by the testing framework PHPUnit. There is no reason why this library should be installed on a webserver. + +**If you upload this library to a webserver then your deployment process is broken. On a more general note, if your `vendor` directory is publicly accessible on your webserver then your deployment process is also broken.** + +## Security Contact Information + +After the above, if you still would like to report a security vulnerability, please email `sebastian@phpunit.de`. diff --git a/vendor/sebastian/diff/composer.json b/vendor/sebastian/diff/composer.json new file mode 100644 index 00000000..b8e778b5 --- /dev/null +++ b/vendor/sebastian/diff/composer.json @@ -0,0 +1,47 @@ +{ + "name": "sebastian/diff", + "description": "Diff implementation", + "keywords": ["diff", "udiff", "unidiff", "unified diff"], + "homepage": "https://github.com/sebastianbergmann/diff", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "prefer-stable": true, + "config": { + "platform": { + "php": "8.1.0" + }, + "optimize-autoloader": true, + "sort-packages": true + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "autoload-dev": { + "classmap": [ + "tests/" + ] + }, + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + } +} diff --git a/vendor/sebastian/diff/src/Chunk.php b/vendor/sebastian/diff/src/Chunk.php new file mode 100644 index 00000000..cdfdf00b --- /dev/null +++ b/vendor/sebastian/diff/src/Chunk.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +final class Chunk +{ + private int $start; + private int $startRange; + private int $end; + private int $endRange; + private array $lines; + + public function __construct(int $start = 0, int $startRange = 1, int $end = 0, int $endRange = 1, array $lines = []) + { + $this->start = $start; + $this->startRange = $startRange; + $this->end = $end; + $this->endRange = $endRange; + $this->lines = $lines; + } + + public function getStart(): int + { + return $this->start; + } + + public function getStartRange(): int + { + return $this->startRange; + } + + public function getEnd(): int + { + return $this->end; + } + + public function getEndRange(): int + { + return $this->endRange; + } + + /** + * @psalm-return list + */ + public function getLines(): array + { + return $this->lines; + } + + /** + * @psalm-param list $lines + */ + public function setLines(array $lines): void + { + foreach ($lines as $line) { + if (!$line instanceof Line) { + throw new InvalidArgumentException; + } + } + + $this->lines = $lines; + } +} diff --git a/vendor/sebastian/diff/src/Diff.php b/vendor/sebastian/diff/src/Diff.php new file mode 100644 index 00000000..3376b723 --- /dev/null +++ b/vendor/sebastian/diff/src/Diff.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +final class Diff +{ + private string $from; + private string $to; + + /** + * @psalm-var list + */ + private array $chunks; + + /** + * @psalm-param list $chunks + */ + public function __construct(string $from, string $to, array $chunks = []) + { + $this->from = $from; + $this->to = $to; + $this->chunks = $chunks; + } + + public function getFrom(): string + { + return $this->from; + } + + public function getTo(): string + { + return $this->to; + } + + /** + * @psalm-return list + */ + public function getChunks(): array + { + return $this->chunks; + } + + /** + * @psalm-param list $chunks + */ + public function setChunks(array $chunks): void + { + $this->chunks = $chunks; + } +} diff --git a/vendor/sebastian/diff/src/Differ.php b/vendor/sebastian/diff/src/Differ.php new file mode 100644 index 00000000..edf2dcc4 --- /dev/null +++ b/vendor/sebastian/diff/src/Differ.php @@ -0,0 +1,243 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use const PHP_INT_SIZE; +use const PREG_SPLIT_DELIM_CAPTURE; +use const PREG_SPLIT_NO_EMPTY; +use function array_shift; +use function array_unshift; +use function array_values; +use function count; +use function current; +use function end; +use function is_string; +use function key; +use function min; +use function preg_split; +use function prev; +use function reset; +use function str_ends_with; +use function substr; +use SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; + +final class Differ +{ + public const OLD = 0; + + public const ADDED = 1; + + public const REMOVED = 2; + + public const DIFF_LINE_END_WARNING = 3; + + public const NO_LINE_END_EOF_WARNING = 4; + private DiffOutputBuilderInterface $outputBuilder; + + public function __construct(DiffOutputBuilderInterface $outputBuilder) + { + $this->outputBuilder = $outputBuilder; + } + + public function diff(array|string $from, array|string $to, LongestCommonSubsequenceCalculator $lcs = null): string + { + $diff = $this->diffToArray($from, $to, $lcs); + + return $this->outputBuilder->getDiff($diff); + } + + public function diffToArray(array|string $from, array|string $to, LongestCommonSubsequenceCalculator $lcs = null): array + { + if (is_string($from)) { + $from = $this->splitStringByLines($from); + } + + if (is_string($to)) { + $to = $this->splitStringByLines($to); + } + + [$from, $to, $start, $end] = self::getArrayDiffParted($from, $to); + + if ($lcs === null) { + $lcs = $this->selectLcsImplementation($from, $to); + } + + $common = $lcs->calculate(array_values($from), array_values($to)); + $diff = []; + + foreach ($start as $token) { + $diff[] = [$token, self::OLD]; + } + + reset($from); + reset($to); + + foreach ($common as $token) { + while (($fromToken = reset($from)) !== $token) { + $diff[] = [array_shift($from), self::REMOVED]; + } + + while (($toToken = reset($to)) !== $token) { + $diff[] = [array_shift($to), self::ADDED]; + } + + $diff[] = [$token, self::OLD]; + + array_shift($from); + array_shift($to); + } + + while (($token = array_shift($from)) !== null) { + $diff[] = [$token, self::REMOVED]; + } + + while (($token = array_shift($to)) !== null) { + $diff[] = [$token, self::ADDED]; + } + + foreach ($end as $token) { + $diff[] = [$token, self::OLD]; + } + + if ($this->detectUnmatchedLineEndings($diff)) { + array_unshift($diff, ["#Warning: Strings contain different line endings!\n", self::DIFF_LINE_END_WARNING]); + } + + return $diff; + } + + private function splitStringByLines(string $input): array + { + return preg_split('/(.*\R)/', $input, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); + } + + private function selectLcsImplementation(array $from, array $to): LongestCommonSubsequenceCalculator + { + // We do not want to use the time-efficient implementation if its memory + // footprint will probably exceed this value. Note that the footprint + // calculation is only an estimation for the matrix and the LCS method + // will typically allocate a bit more memory than this. + $memoryLimit = 100 * 1024 * 1024; + + if ($this->calculateEstimatedFootprint($from, $to) > $memoryLimit) { + return new MemoryEfficientLongestCommonSubsequenceCalculator; + } + + return new TimeEfficientLongestCommonSubsequenceCalculator; + } + + private function calculateEstimatedFootprint(array $from, array $to): float|int + { + $itemSize = PHP_INT_SIZE === 4 ? 76 : 144; + + return $itemSize * min(count($from), count($to)) ** 2; + } + + private function detectUnmatchedLineEndings(array $diff): bool + { + $newLineBreaks = ['' => true]; + $oldLineBreaks = ['' => true]; + + foreach ($diff as $entry) { + if (self::OLD === $entry[1]) { + $ln = $this->getLinebreak($entry[0]); + $oldLineBreaks[$ln] = true; + $newLineBreaks[$ln] = true; + } elseif (self::ADDED === $entry[1]) { + $newLineBreaks[$this->getLinebreak($entry[0])] = true; + } elseif (self::REMOVED === $entry[1]) { + $oldLineBreaks[$this->getLinebreak($entry[0])] = true; + } + } + + // if either input or output is a single line without breaks than no warning should be raised + if (['' => true] === $newLineBreaks || ['' => true] === $oldLineBreaks) { + return false; + } + + // two-way compare + foreach ($newLineBreaks as $break => $set) { + if (!isset($oldLineBreaks[$break])) { + return true; + } + } + + foreach ($oldLineBreaks as $break => $set) { + if (!isset($newLineBreaks[$break])) { + return true; + } + } + + return false; + } + + private function getLinebreak($line): string + { + if (!is_string($line)) { + return ''; + } + + $lc = substr($line, -1); + + if ("\r" === $lc) { + return "\r"; + } + + if ("\n" !== $lc) { + return ''; + } + + if (str_ends_with($line, "\r\n")) { + return "\r\n"; + } + + return "\n"; + } + + private static function getArrayDiffParted(array &$from, array &$to): array + { + $start = []; + $end = []; + + reset($to); + + foreach ($from as $k => $v) { + $toK = key($to); + + if ($toK === $k && $v === $to[$k]) { + $start[$k] = $v; + + unset($from[$k], $to[$k]); + } else { + break; + } + } + + end($from); + end($to); + + do { + $fromK = key($from); + $toK = key($to); + + if (null === $fromK || null === $toK || current($from) !== current($to)) { + break; + } + + prev($from); + prev($to); + + $end = [$fromK => $from[$fromK]] + $end; + unset($from[$fromK], $to[$toK]); + } while (true); + + return [$from, $to, $start, $end]; + } +} diff --git a/vendor/sebastian/diff/src/Exception/ConfigurationException.php b/vendor/sebastian/diff/src/Exception/ConfigurationException.php new file mode 100644 index 00000000..85f066c2 --- /dev/null +++ b/vendor/sebastian/diff/src/Exception/ConfigurationException.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use function gettype; +use function is_object; +use function sprintf; +use Exception; + +final class ConfigurationException extends InvalidArgumentException +{ + public function __construct( + string $option, + string $expected, + $value, + int $code = 0, + Exception $previous = null + ) { + parent::__construct( + sprintf( + 'Option "%s" must be %s, got "%s".', + $option, + $expected, + is_object($value) ? $value::class : (null === $value ? '' : gettype($value) . '#' . $value) + ), + $code, + $previous + ); + } +} diff --git a/vendor/sebastian/diff/src/Exception/Exception.php b/vendor/sebastian/diff/src/Exception/Exception.php new file mode 100644 index 00000000..e20d3203 --- /dev/null +++ b/vendor/sebastian/diff/src/Exception/Exception.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use Throwable; + +interface Exception extends Throwable +{ +} diff --git a/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php b/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php new file mode 100644 index 00000000..846ac3fb --- /dev/null +++ b/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +class InvalidArgumentException extends \InvalidArgumentException implements Exception +{ +} diff --git a/vendor/sebastian/diff/src/Line.php b/vendor/sebastian/diff/src/Line.php new file mode 100644 index 00000000..ecb2f794 --- /dev/null +++ b/vendor/sebastian/diff/src/Line.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +final class Line +{ + public const ADDED = 1; + + public const REMOVED = 2; + + public const UNCHANGED = 3; + private int $type; + private string $content; + + public function __construct(int $type = self::UNCHANGED, string $content = '') + { + $this->type = $type; + $this->content = $content; + } + + public function getContent(): string + { + return $this->content; + } + + public function getType(): int + { + return $this->type; + } +} diff --git a/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php b/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php new file mode 100644 index 00000000..dea8fe1c --- /dev/null +++ b/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +interface LongestCommonSubsequenceCalculator +{ + /** + * Calculates the longest common subsequence of two arrays. + */ + public function calculate(array $from, array $to): array; +} diff --git a/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php b/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php new file mode 100644 index 00000000..dde08027 --- /dev/null +++ b/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use function array_fill; +use function array_merge; +use function array_reverse; +use function array_slice; +use function count; +use function in_array; +use function max; + +final class MemoryEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator +{ + /** + * @inheritDoc + */ + public function calculate(array $from, array $to): array + { + $cFrom = count($from); + $cTo = count($to); + + if ($cFrom === 0) { + return []; + } + + if ($cFrom === 1) { + if (in_array($from[0], $to, true)) { + return [$from[0]]; + } + + return []; + } + + $i = (int) ($cFrom / 2); + $fromStart = array_slice($from, 0, $i); + $fromEnd = array_slice($from, $i); + $llB = $this->length($fromStart, $to); + $llE = $this->length(array_reverse($fromEnd), array_reverse($to)); + $jMax = 0; + $max = 0; + + for ($j = 0; $j <= $cTo; $j++) { + $m = $llB[$j] + $llE[$cTo - $j]; + + if ($m >= $max) { + $max = $m; + $jMax = $j; + } + } + + $toStart = array_slice($to, 0, $jMax); + $toEnd = array_slice($to, $jMax); + + return array_merge( + $this->calculate($fromStart, $toStart), + $this->calculate($fromEnd, $toEnd) + ); + } + + private function length(array $from, array $to): array + { + $current = array_fill(0, count($to) + 1, 0); + $cFrom = count($from); + $cTo = count($to); + + for ($i = 0; $i < $cFrom; $i++) { + $prev = $current; + + for ($j = 0; $j < $cTo; $j++) { + if ($from[$i] === $to[$j]) { + $current[$j + 1] = $prev[$j] + 1; + } else { + $current[$j + 1] = max($current[$j], $prev[$j + 1]); + } + } + } + + return $current; + } +} diff --git a/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php b/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php new file mode 100644 index 00000000..6c706839 --- /dev/null +++ b/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff\Output; + +use function count; + +abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface +{ + /** + * Takes input of the diff array and returns the common parts. + * Iterates through diff line by line. + */ + protected function getCommonChunks(array $diff, int $lineThreshold = 5): array + { + $diffSize = count($diff); + $capturing = false; + $chunkStart = 0; + $chunkSize = 0; + $commonChunks = []; + + for ($i = 0; $i < $diffSize; $i++) { + if ($diff[$i][1] === 0 /* OLD */) { + if ($capturing === false) { + $capturing = true; + $chunkStart = $i; + $chunkSize = 0; + } else { + $chunkSize++; + } + } elseif ($capturing !== false) { + if ($chunkSize >= $lineThreshold) { + $commonChunks[$chunkStart] = $chunkStart + $chunkSize; + } + + $capturing = false; + } + } + + if ($capturing !== false && $chunkSize >= $lineThreshold) { + $commonChunks[$chunkStart] = $chunkStart + $chunkSize; + } + + return $commonChunks; + } +} diff --git a/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php b/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php new file mode 100644 index 00000000..fd6ce768 --- /dev/null +++ b/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff\Output; + +use function fclose; +use function fopen; +use function fwrite; +use function str_ends_with; +use function stream_get_contents; +use function substr; +use SebastianBergmann\Diff\Differ; + +/** + * Builds a diff string representation in a loose unified diff format + * listing only changes lines. Does not include line numbers. + */ +final class DiffOnlyOutputBuilder implements DiffOutputBuilderInterface +{ + private string $header; + + public function __construct(string $header = "--- Original\n+++ New\n") + { + $this->header = $header; + } + + public function getDiff(array $diff): string + { + $buffer = fopen('php://memory', 'r+b'); + + if ('' !== $this->header) { + fwrite($buffer, $this->header); + + if (!str_ends_with($this->header, "\n")) { + fwrite($buffer, "\n"); + } + } + + foreach ($diff as $diffEntry) { + if ($diffEntry[1] === Differ::ADDED) { + fwrite($buffer, '+' . $diffEntry[0]); + } elseif ($diffEntry[1] === Differ::REMOVED) { + fwrite($buffer, '-' . $diffEntry[0]); + } elseif ($diffEntry[1] === Differ::DIFF_LINE_END_WARNING) { + fwrite($buffer, ' ' . $diffEntry[0]); + + continue; // Warnings should not be tested for line break, it will always be there + } else { /* Not changed (old) 0 */ + continue; // we didn't write the not-changed line, so do not add a line break either + } + + $lc = substr($diffEntry[0], -1); + + if ($lc !== "\n" && $lc !== "\r") { + fwrite($buffer, "\n"); // \No newline at end of file + } + } + + $diff = stream_get_contents($buffer, -1, 0); + fclose($buffer); + + return $diff; + } +} diff --git a/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php b/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php new file mode 100644 index 00000000..0e18f9f2 --- /dev/null +++ b/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff\Output; + +/** + * Defines how an output builder should take a generated + * diff array and return a string representation of that diff. + */ +interface DiffOutputBuilderInterface +{ + public function getDiff(array $diff): string; +} diff --git a/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php b/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php new file mode 100644 index 00000000..3eb7428d --- /dev/null +++ b/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php @@ -0,0 +1,326 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff\Output; + +use function array_merge; +use function array_splice; +use function count; +use function fclose; +use function fopen; +use function fwrite; +use function is_bool; +use function is_int; +use function is_string; +use function max; +use function min; +use function sprintf; +use function stream_get_contents; +use function substr; +use SebastianBergmann\Diff\ConfigurationException; +use SebastianBergmann\Diff\Differ; + +/** + * Strict Unified diff output builder. + * + * Generates (strict) Unified diff's (unidiffs) with hunks. + */ +final class StrictUnifiedDiffOutputBuilder implements DiffOutputBuilderInterface +{ + private static array $default = [ + 'collapseRanges' => true, // ranges of length one are rendered with the trailing `,1` + 'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed) + 'contextLines' => 3, // like `diff: -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3 + 'fromFile' => null, + 'fromFileDate' => null, + 'toFile' => null, + 'toFileDate' => null, + ]; + private bool $changed; + private bool $collapseRanges; + + /** + * @psalm-var positive-int + */ + private int $commonLineThreshold; + private string $header; + + /** + * @psalm-var positive-int + */ + private int $contextLines; + + public function __construct(array $options = []) + { + $options = array_merge(self::$default, $options); + + if (!is_bool($options['collapseRanges'])) { + throw new ConfigurationException('collapseRanges', 'a bool', $options['collapseRanges']); + } + + if (!is_int($options['contextLines']) || $options['contextLines'] < 0) { + throw new ConfigurationException('contextLines', 'an int >= 0', $options['contextLines']); + } + + if (!is_int($options['commonLineThreshold']) || $options['commonLineThreshold'] <= 0) { + throw new ConfigurationException('commonLineThreshold', 'an int > 0', $options['commonLineThreshold']); + } + + $this->assertString($options, 'fromFile'); + $this->assertString($options, 'toFile'); + $this->assertStringOrNull($options, 'fromFileDate'); + $this->assertStringOrNull($options, 'toFileDate'); + + $this->header = sprintf( + "--- %s%s\n+++ %s%s\n", + $options['fromFile'], + null === $options['fromFileDate'] ? '' : "\t" . $options['fromFileDate'], + $options['toFile'], + null === $options['toFileDate'] ? '' : "\t" . $options['toFileDate'] + ); + + $this->collapseRanges = $options['collapseRanges']; + $this->commonLineThreshold = $options['commonLineThreshold']; + $this->contextLines = $options['contextLines']; + } + + public function getDiff(array $diff): string + { + if (0 === count($diff)) { + return ''; + } + + $this->changed = false; + + $buffer = fopen('php://memory', 'r+b'); + fwrite($buffer, $this->header); + + $this->writeDiffHunks($buffer, $diff); + + if (!$this->changed) { + fclose($buffer); + + return ''; + } + + $diff = stream_get_contents($buffer, -1, 0); + + fclose($buffer); + + // If the last char is not a linebreak: add it. + // This might happen when both the `from` and `to` do not have a trailing linebreak + $last = substr($diff, -1); + + return "\n" !== $last && "\r" !== $last + ? $diff . "\n" + : $diff; + } + + private function writeDiffHunks($output, array $diff): void + { + // detect "No newline at end of file" and insert into `$diff` if needed + + $upperLimit = count($diff); + + if (0 === $diff[$upperLimit - 1][1]) { + $lc = substr($diff[$upperLimit - 1][0], -1); + + if ("\n" !== $lc) { + array_splice($diff, $upperLimit, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]); + } + } else { + // search back for the last `+` and `-` line, + // check if it has a trailing linebreak, else add a warning under it + $toFind = [1 => true, 2 => true]; + + for ($i = $upperLimit - 1; $i >= 0; $i--) { + if (isset($toFind[$diff[$i][1]])) { + unset($toFind[$diff[$i][1]]); + $lc = substr($diff[$i][0], -1); + + if ("\n" !== $lc) { + array_splice($diff, $i + 1, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]); + } + + if (!count($toFind)) { + break; + } + } + } + } + + // write hunks to output buffer + + $cutOff = max($this->commonLineThreshold, $this->contextLines); + $hunkCapture = false; + $sameCount = $toRange = $fromRange = 0; + $toStart = $fromStart = 1; + $i = 0; + + /** @var int $i */ + foreach ($diff as $i => $entry) { + if (0 === $entry[1]) { // same + if (false === $hunkCapture) { + $fromStart++; + $toStart++; + + continue; + } + + $sameCount++; + $toRange++; + $fromRange++; + + if ($sameCount === $cutOff) { + $contextStartOffset = ($hunkCapture - $this->contextLines) < 0 + ? $hunkCapture + : $this->contextLines; + + // note: $contextEndOffset = $this->contextLines; + // + // because we never go beyond the end of the diff. + // with the cutoff/contextlines here the follow is never true; + // + // if ($i - $cutOff + $this->contextLines + 1 > \count($diff)) { + // $contextEndOffset = count($diff) - 1; + // } + // + // ; that would be true for a trailing incomplete hunk case which is dealt with after this loop + + $this->writeHunk( + $diff, + $hunkCapture - $contextStartOffset, + $i - $cutOff + $this->contextLines + 1, + $fromStart - $contextStartOffset, + $fromRange - $cutOff + $contextStartOffset + $this->contextLines, + $toStart - $contextStartOffset, + $toRange - $cutOff + $contextStartOffset + $this->contextLines, + $output + ); + + $fromStart += $fromRange; + $toStart += $toRange; + + $hunkCapture = false; + $sameCount = $toRange = $fromRange = 0; + } + + continue; + } + + $sameCount = 0; + + if ($entry[1] === Differ::NO_LINE_END_EOF_WARNING) { + continue; + } + + $this->changed = true; + + if (false === $hunkCapture) { + $hunkCapture = $i; + } + + if (Differ::ADDED === $entry[1]) { // added + $toRange++; + } + + if (Differ::REMOVED === $entry[1]) { // removed + $fromRange++; + } + } + + if (false === $hunkCapture) { + return; + } + + // we end here when cutoff (commonLineThreshold) was not reached, but we were capturing a hunk, + // do not render hunk till end automatically because the number of context lines might be less than the commonLineThreshold + + $contextStartOffset = $hunkCapture - $this->contextLines < 0 + ? $hunkCapture + : $this->contextLines; + + // prevent trying to write out more common lines than there are in the diff _and_ + // do not write more than configured through the context lines + $contextEndOffset = min($sameCount, $this->contextLines); + + $fromRange -= $sameCount; + $toRange -= $sameCount; + + $this->writeHunk( + $diff, + $hunkCapture - $contextStartOffset, + $i - $sameCount + $contextEndOffset + 1, + $fromStart - $contextStartOffset, + $fromRange + $contextStartOffset + $contextEndOffset, + $toStart - $contextStartOffset, + $toRange + $contextStartOffset + $contextEndOffset, + $output + ); + } + + private function writeHunk( + array $diff, + int $diffStartIndex, + int $diffEndIndex, + int $fromStart, + int $fromRange, + int $toStart, + int $toRange, + $output + ): void { + fwrite($output, '@@ -' . $fromStart); + + if (!$this->collapseRanges || 1 !== $fromRange) { + fwrite($output, ',' . $fromRange); + } + + fwrite($output, ' +' . $toStart); + + if (!$this->collapseRanges || 1 !== $toRange) { + fwrite($output, ',' . $toRange); + } + + fwrite($output, " @@\n"); + + for ($i = $diffStartIndex; $i < $diffEndIndex; $i++) { + if ($diff[$i][1] === Differ::ADDED) { + $this->changed = true; + fwrite($output, '+' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::REMOVED) { + $this->changed = true; + fwrite($output, '-' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::OLD) { + fwrite($output, ' ' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::NO_LINE_END_EOF_WARNING) { + $this->changed = true; + fwrite($output, $diff[$i][0]); + } + //} elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package + // skip + //} else { + // unknown/invalid + //} + } + } + + private function assertString(array $options, string $option): void + { + if (!is_string($options[$option])) { + throw new ConfigurationException($option, 'a string', $options[$option]); + } + } + + private function assertStringOrNull(array $options, string $option): void + { + if (null !== $options[$option] && !is_string($options[$option])) { + throw new ConfigurationException($option, 'a string or ', $options[$option]); + } + } +} diff --git a/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php b/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php new file mode 100644 index 00000000..1483b3af --- /dev/null +++ b/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php @@ -0,0 +1,258 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff\Output; + +use function array_splice; +use function count; +use function fclose; +use function fopen; +use function fwrite; +use function max; +use function min; +use function str_ends_with; +use function stream_get_contents; +use function strlen; +use function substr; +use SebastianBergmann\Diff\Differ; + +/** + * Builds a diff string representation in unified diff format in chunks. + */ +final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder +{ + private bool $collapseRanges = true; + private int $commonLineThreshold = 6; + + /** + * @psalm-var positive-int + */ + private int $contextLines = 3; + private string $header; + private bool $addLineNumbers; + + public function __construct(string $header = "--- Original\n+++ New\n", bool $addLineNumbers = false) + { + $this->header = $header; + $this->addLineNumbers = $addLineNumbers; + } + + public function getDiff(array $diff): string + { + $buffer = fopen('php://memory', 'r+b'); + + if ('' !== $this->header) { + fwrite($buffer, $this->header); + + if (!str_ends_with($this->header, "\n")) { + fwrite($buffer, "\n"); + } + } + + if (0 !== count($diff)) { + $this->writeDiffHunks($buffer, $diff); + } + + $diff = stream_get_contents($buffer, -1, 0); + + fclose($buffer); + + // If the diff is non-empty and last char is not a linebreak: add it. + // This might happen when both the `from` and `to` do not have a trailing linebreak + $last = substr($diff, -1); + + return 0 !== strlen($diff) && "\n" !== $last && "\r" !== $last + ? $diff . "\n" + : $diff; + } + + private function writeDiffHunks($output, array $diff): void + { + // detect "No newline at end of file" and insert into `$diff` if needed + + $upperLimit = count($diff); + + if (0 === $diff[$upperLimit - 1][1]) { + $lc = substr($diff[$upperLimit - 1][0], -1); + + if ("\n" !== $lc) { + array_splice($diff, $upperLimit, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]); + } + } else { + // search back for the last `+` and `-` line, + // check if it has trailing linebreak, else add a warning under it + $toFind = [1 => true, 2 => true]; + + for ($i = $upperLimit - 1; $i >= 0; $i--) { + if (isset($toFind[$diff[$i][1]])) { + unset($toFind[$diff[$i][1]]); + $lc = substr($diff[$i][0], -1); + + if ("\n" !== $lc) { + array_splice($diff, $i + 1, 0, [["\n\\ No newline at end of file\n", Differ::NO_LINE_END_EOF_WARNING]]); + } + + if (!count($toFind)) { + break; + } + } + } + } + + // write hunks to output buffer + + $cutOff = max($this->commonLineThreshold, $this->contextLines); + $hunkCapture = false; + $sameCount = $toRange = $fromRange = 0; + $toStart = $fromStart = 1; + $i = 0; + + /** @var int $i */ + foreach ($diff as $i => $entry) { + if (0 === $entry[1]) { // same + if (false === $hunkCapture) { + $fromStart++; + $toStart++; + + continue; + } + + $sameCount++; + $toRange++; + $fromRange++; + + if ($sameCount === $cutOff) { + $contextStartOffset = ($hunkCapture - $this->contextLines) < 0 + ? $hunkCapture + : $this->contextLines; + + // note: $contextEndOffset = $this->contextLines; + // + // because we never go beyond the end of the diff. + // with the cutoff/contextlines here the follow is never true; + // + // if ($i - $cutOff + $this->contextLines + 1 > \count($diff)) { + // $contextEndOffset = count($diff) - 1; + // } + // + // ; that would be true for a trailing incomplete hunk case which is dealt with after this loop + + $this->writeHunk( + $diff, + $hunkCapture - $contextStartOffset, + $i - $cutOff + $this->contextLines + 1, + $fromStart - $contextStartOffset, + $fromRange - $cutOff + $contextStartOffset + $this->contextLines, + $toStart - $contextStartOffset, + $toRange - $cutOff + $contextStartOffset + $this->contextLines, + $output + ); + + $fromStart += $fromRange; + $toStart += $toRange; + + $hunkCapture = false; + $sameCount = $toRange = $fromRange = 0; + } + + continue; + } + + $sameCount = 0; + + if ($entry[1] === Differ::NO_LINE_END_EOF_WARNING) { + continue; + } + + if (false === $hunkCapture) { + $hunkCapture = $i; + } + + if (Differ::ADDED === $entry[1]) { + $toRange++; + } + + if (Differ::REMOVED === $entry[1]) { + $fromRange++; + } + } + + if (false === $hunkCapture) { + return; + } + + // we end here when cutoff (commonLineThreshold) was not reached, but we were capturing a hunk, + // do not render hunk till end automatically because the number of context lines might be less than the commonLineThreshold + + $contextStartOffset = $hunkCapture - $this->contextLines < 0 + ? $hunkCapture + : $this->contextLines; + + // prevent trying to write out more common lines than there are in the diff _and_ + // do not write more than configured through the context lines + $contextEndOffset = min($sameCount, $this->contextLines); + + $fromRange -= $sameCount; + $toRange -= $sameCount; + + $this->writeHunk( + $diff, + $hunkCapture - $contextStartOffset, + $i - $sameCount + $contextEndOffset + 1, + $fromStart - $contextStartOffset, + $fromRange + $contextStartOffset + $contextEndOffset, + $toStart - $contextStartOffset, + $toRange + $contextStartOffset + $contextEndOffset, + $output + ); + } + + private function writeHunk( + array $diff, + int $diffStartIndex, + int $diffEndIndex, + int $fromStart, + int $fromRange, + int $toStart, + int $toRange, + $output + ): void { + if ($this->addLineNumbers) { + fwrite($output, '@@ -' . $fromStart); + + if (!$this->collapseRanges || 1 !== $fromRange) { + fwrite($output, ',' . $fromRange); + } + + fwrite($output, ' +' . $toStart); + + if (!$this->collapseRanges || 1 !== $toRange) { + fwrite($output, ',' . $toRange); + } + + fwrite($output, " @@\n"); + } else { + fwrite($output, "@@ @@\n"); + } + + for ($i = $diffStartIndex; $i < $diffEndIndex; $i++) { + if ($diff[$i][1] === Differ::ADDED) { + fwrite($output, '+' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::REMOVED) { + fwrite($output, '-' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::OLD) { + fwrite($output, ' ' . $diff[$i][0]); + } elseif ($diff[$i][1] === Differ::NO_LINE_END_EOF_WARNING) { + fwrite($output, "\n"); // $diff[$i][0] + } else { /* Not changed (old) Differ::OLD or Warning Differ::DIFF_LINE_END_WARNING */ + fwrite($output, ' ' . $diff[$i][0]); + } + } + } +} diff --git a/vendor/sebastian/diff/src/Parser.php b/vendor/sebastian/diff/src/Parser.php new file mode 100644 index 00000000..b0ec6403 --- /dev/null +++ b/vendor/sebastian/diff/src/Parser.php @@ -0,0 +1,108 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use function array_pop; +use function count; +use function max; +use function preg_match; +use function preg_split; + +/** + * Unified diff parser. + */ +final class Parser +{ + /** + * @return Diff[] + */ + public function parse(string $string): array + { + $lines = preg_split('(\r\n|\r|\n)', $string); + + if (!empty($lines) && $lines[count($lines) - 1] === '') { + array_pop($lines); + } + + $lineCount = count($lines); + $diffs = []; + $diff = null; + $collected = []; + + for ($i = 0; $i < $lineCount; $i++) { + if (preg_match('#^---\h+"?(?P[^\\v\\t"]+)#', $lines[$i], $fromMatch) && + preg_match('#^\\+\\+\\+\\h+"?(?P[^\\v\\t"]+)#', $lines[$i + 1], $toMatch)) { + if ($diff !== null) { + $this->parseFileDiff($diff, $collected); + + $diffs[] = $diff; + $collected = []; + } + + $diff = new Diff($fromMatch['file'], $toMatch['file']); + + $i++; + } else { + if (preg_match('/^(?:diff --git |index [\da-f.]+|[+-]{3} [ab])/', $lines[$i])) { + continue; + } + + $collected[] = $lines[$i]; + } + } + + if ($diff !== null && count($collected)) { + $this->parseFileDiff($diff, $collected); + + $diffs[] = $diff; + } + + return $diffs; + } + + private function parseFileDiff(Diff $diff, array $lines): void + { + $chunks = []; + $chunk = null; + $diffLines = []; + + foreach ($lines as $line) { + if (preg_match('/^@@\s+-(?P\d+)(?:,\s*(?P\d+))?\s+\+(?P\d+)(?:,\s*(?P\d+))?\s+@@/', $line, $match)) { + $chunk = new Chunk( + (int) $match['start'], + isset($match['startrange']) ? max(1, (int) $match['startrange']) : 1, + (int) $match['end'], + isset($match['endrange']) ? max(1, (int) $match['endrange']) : 1 + ); + + $chunks[] = $chunk; + $diffLines = []; + + continue; + } + + if (preg_match('/^(?P[+ -])?(?P.*)/', $line, $match)) { + $type = Line::UNCHANGED; + + if ($match['type'] === '+') { + $type = Line::ADDED; + } elseif ($match['type'] === '-') { + $type = Line::REMOVED; + } + + $diffLines[] = new Line($type, $match['line']); + + $chunk?->setLines($diffLines); + } + } + + $diff->setChunks($chunks); + } +} diff --git a/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php b/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php new file mode 100644 index 00000000..51bac1f1 --- /dev/null +++ b/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Diff; + +use function array_reverse; +use function count; +use function max; +use SplFixedArray; + +final class TimeEfficientLongestCommonSubsequenceCalculator implements LongestCommonSubsequenceCalculator +{ + /** + * @inheritDoc + */ + public function calculate(array $from, array $to): array + { + $common = []; + $fromLength = count($from); + $toLength = count($to); + $width = $fromLength + 1; + $matrix = new SplFixedArray($width * ($toLength + 1)); + + for ($i = 0; $i <= $fromLength; $i++) { + $matrix[$i] = 0; + } + + for ($j = 0; $j <= $toLength; $j++) { + $matrix[$j * $width] = 0; + } + + for ($i = 1; $i <= $fromLength; $i++) { + for ($j = 1; $j <= $toLength; $j++) { + $o = ($j * $width) + $i; + $matrix[$o] = max( + $matrix[$o - 1], + $matrix[$o - $width], + $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0 + ); + } + } + + $i = $fromLength; + $j = $toLength; + + while ($i > 0 && $j > 0) { + if ($from[$i - 1] === $to[$j - 1]) { + $common[] = $from[$i - 1]; + $i--; + $j--; + } else { + $o = ($j * $width) + $i; + + if ($matrix[$o - $width] > $matrix[$o - 1]) { + $j--; + } else { + $i--; + } + } + } + + return array_reverse($common); + } +} diff --git a/vendor/spatie/array-to-xml/.php-cs-fixer.dist.php b/vendor/spatie/array-to-xml/.php-cs-fixer.dist.php new file mode 100644 index 00000000..3600d2de --- /dev/null +++ b/vendor/spatie/array-to-xml/.php-cs-fixer.dist.php @@ -0,0 +1,44 @@ +in([ + __DIR__ . '/src', + __DIR__ . '/tests', + ]) + ->name('*.php') + ->notName('*.blade.php') + ->ignoreDotFiles(true) + ->ignoreVCS(true); +$config = new Config(); + +return $config->setFinder($finder) + ->setRules([ + '@PSR2' => true, + 'array_syntax' => ['syntax' => 'short'], + 'ordered_imports' => ['sort_algorithm' => 'alpha'], + 'no_unused_imports' => true, + 'not_operator_with_successor_space' => true, + 'trailing_comma_in_multiline' => ['elements' => ['arrays']], + 'phpdoc_scalar' => true, + 'unary_operator_spaces' => true, + 'binary_operator_spaces' => true, + 'blank_line_before_statement' => [ + 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'], + ], + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_var_without_name' => true, + 'class_attributes_separation' => [ + 'elements' => [ + 'method' => 'one', + ], + ], + 'method_argument_space' => [ + 'on_multiline' => 'ensure_fully_multiline', + 'keep_multiple_spaces_after_comma' => true, + ], + 'single_trait_insert_per_statement' => true, + ]) + ->setRiskyAllowed(true); diff --git a/vendor/spatie/array-to-xml/CHANGELOG.md b/vendor/spatie/array-to-xml/CHANGELOG.md new file mode 100755 index 00000000..d43177a4 --- /dev/null +++ b/vendor/spatie/array-to-xml/CHANGELOG.md @@ -0,0 +1,198 @@ +# Changelog + +All notable changes to `array-to-xml` will be documented in this file + +## 3.1.4 - 2022-11-24 + +### What's Changed + +- PHP 8.2 support by @SuperDJ in https://github.com/spatie/array-to-xml/pull/194 +- Added more types by @SuperDJ in https://github.com/spatie/array-to-xml/pull/195 + +### New Contributors + +- @SuperDJ made their first contribution in https://github.com/spatie/array-to-xml/pull/194 + +**Full Changelog**: https://github.com/spatie/array-to-xml/compare/3.1.3...3.1.4 + +## 3.1.3 - 2022-05-08 + +## What's Changed + +- Rewrite phpunit tests to pest by @otsch in https://github.com/spatie/array-to-xml/pull/183 +- PHP 8.1 fix deprecated null parameters by @gigerIT in https://github.com/spatie/array-to-xml/pull/187 + +## New Contributors + +- @otsch made their first contribution in https://github.com/spatie/array-to-xml/pull/183 +- @gigerIT made their first contribution in https://github.com/spatie/array-to-xml/pull/187 + +**Full Changelog**: https://github.com/spatie/array-to-xml/compare/3.1.2...3.1.3 + +## 3.1.2 - 2022-03-03 + +## What's Changed + +- Fix basic collection with namespace by @vaclavvanik in https://github.com/spatie/array-to-xml/pull/182 + +## New Contributors + +- @vaclavvanik made their first contribution in https://github.com/spatie/array-to-xml/pull/182 + +**Full Changelog**: https://github.com/spatie/array-to-xml/compare/3.1.1...3.1.2 + +## 3.1.1 - 2022-02-11 + +## What's Changed + +- Fix a typo in the result by @olsza in https://github.com/spatie/array-to-xml/pull/172 + +## New Contributors + +- @olsza made their first contribution in https://github.com/spatie/array-to-xml/pull/172 + +**Full Changelog**: https://github.com/spatie/array-to-xml/compare/3.1.0...3.1.1 + +## 3.1.0 - 2021-09-12 + +- add support for processing instructions + +## 3.0.1 - 2021-09-05 + +- allow null inside array to be converted to xml (#170) + +## 3.0.0 - 2021-04-23 + +- require PHP 8+ +- drop support for PHP 7.x +- convert syntax to PHP 8 + +## 2.16.0 - 2020-11-18 + +- add escapable colons in custom keys (#151) + +## 2.15.1 - 2020-11-12 + +- add support for PHP 8 + +## 2.15.0 - 2020-10-29 + +- add $xmlStandalone as a new parameter (#148) + +## 2.14.0 - 2020-09-14 + +- add support for dropping XML declaration (#145) + +## 2.13.0 - 2020-08-24 + +- add support for custom keys (#140) + +## 2.12.1 - 2020-06-17 + +- add XML prettification (#136) + +## 2.11.2 - 2019-08-21 + +- fix XML structure when using numeric keys + +## 2.11.1 - 2019-07-25 + +- do not interpret "0" as a non-empty value + +## 2.11.0 - 2019-09-26 + +- drop support for PHP 7.1 + +## 2.10.0 - 2019-09-26 + +- add `setDomProperties` + +## 2.9.0 - 2019-05-06 + +- add support for numeric keys + +## 2.8.1 - 2019-03-15 + +- fix tests +- drop support for PHP 7.0 + +## 2.8.0 - 2018-11-29 + +- added support for mixed content + +## 2.7.3 - 2018-10-30 + +- fix for `DomExeception`s being thrown + +## 2.7.2 - 2018-09-17 + +- remove control characters + +## 2.7.1 - 2018-02-02 + +- fix setting attributes + +## 2.7.0 - 2017-09-07 + +- allow wrapping data in a CDATA section + +## 2.6.1- 2017-08-29 + +- add fix for multiple empty/self-closing child elements + +## 2.6.0 - 2017-08-25 + +- add support for naming a root element and adding properties to it + +## 2.5.2 - 2017-08-03 + +- avoid pulling in the snapshot package on install + +## 2.5.1 - 2017-05-30 + +- PHP 7 is now required + +## 2.5.0 - 2017-05-22 + +- allow encoding and version to be set + +## 2.4.0 - 2017-02-18 + +- attributes and value can be set in SimpleXMLElement style + +## 2.3.0 - 2017-02-18 + +- attributes and value can be set in SimpleXMLElement style + +## 2.2.1 - 2016-12-08 + +- fixed an error when there is a special character to the value set in _value + +## 2.2.0 - 2016-06-04 + +- added `toDom` method + +## 2.1.1 - 2016-02-23 + +- Fixed typo in the name of the `addSequentialNode`-function + +## 2.1.0 - 2015-10-08 + +- Add ability to use attributes + +## 2.0.0 - 2015-10-08 + +- Add support to collection arrays and dynamically XML convertion when keys are numeric + +## 1.0.3 - 2015-10-03 + +- handle values with special characters + +## 1.0.1 - 2015-03-18 + +- use DOMDocument for better validation +- added an option to opt out of the automatic space replacement + +## 1.0.0 - 2015-03-17 + +- initial release diff --git a/vendor/spatie/array-to-xml/LICENSE.md b/vendor/spatie/array-to-xml/LICENSE.md new file mode 100755 index 00000000..59e5ec59 --- /dev/null +++ b/vendor/spatie/array-to-xml/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Spatie bvba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/spatie/array-to-xml/README.md b/vendor/spatie/array-to-xml/README.md new file mode 100755 index 00000000..5d4769a3 --- /dev/null +++ b/vendor/spatie/array-to-xml/README.md @@ -0,0 +1,536 @@ + +[](https://supportukrainenow.org) + +# Convert an array to xml + +[![Latest Version](https://img.shields.io/github/release/spatie/array-to-xml.svg?style=flat-square)](https://github.com/spatie/array-to-xml/releases) +[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md) +![Tests](https://github.com/spatie/array-to-xml/workflows/Tests/badge.svg) +[![Total Downloads](https://img.shields.io/packagist/dt/spatie/array-to-xml.svg?style=flat-square)](https://packagist.org/packages/spatie/array-to-xml) + +This package provides a very simple class to convert an array to an xml string. + +## Support us + +[](https://spatie.be/github-ad-click/array-to-xml) + +We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us). + +We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards). + +## Install + +You can install this package via composer. + +``` bash +composer require spatie/array-to-xml +``` + +## Usage + +```php +use Spatie\ArrayToXml\ArrayToXml; +... +$array = [ + 'Good guy' => [ + 'name' => 'Luke Skywalker', + 'weapon' => 'Lightsaber' + ], + 'Bad guy' => [ + 'name' => 'Sauron', + 'weapon' => 'Evil Eye' + ] +]; + +$result = ArrayToXml::convert($array); +``` +After running this piece of code `$result` will contain: + +```xml + + + + Luke Skywalker + Lightsaber + + + Sauron + Evil Eye + + +``` + + +### Setting the name of the root element + +Optionally you can set the name of the rootElement by passing it as the second argument. If you don't specify +this argument (or set it to an empty string) "root" will be used. +``` +$result = ArrayToXml::convert($array, 'customrootname'); +``` + +### Handling key names + +By default all spaces in the key names of your array will be converted to underscores. If you want to opt out of +this behaviour you can set the third argument to false. We'll leave all keynames alone. +``` +$result = ArrayToXml::convert($array, 'customrootname', false); +``` + +### Adding attributes + +You can use a key named `_attributes` to add attributes to a node, and `_value` to specify the value. + +```php +$array = [ + 'Good guy' => [ + '_attributes' => ['attr1' => 'value'], + 'name' => 'Luke Skywalker', + 'weapon' => 'Lightsaber' + ], + 'Bad guy' => [ + 'name' => 'Sauron', + 'weapon' => 'Evil Eye' + ], + 'The survivor' => [ + '_attributes' => ['house'=>'Hogwarts'], + '_value' => 'Harry Potter' + ] +]; + +$result = ArrayToXml::convert($array); +``` + +This code will result in: + +```xml + + + + Luke Skywalker + Lightsaber + + + Sauron + Evil Eye + + + Harry Potter + + +``` + +*Note, that the value of the `_value` field must be a string. [(More)](https://github.com/spatie/array-to-xml/issues/75#issuecomment-413726065)* + +### Using reserved characters + +It is also possible to wrap the value of a node into a CDATA section. This allows you to use reserved characters. + +```php +$array = [ + 'Good guy' => [ + 'name' => [ + '_cdata' => '

Luke Skywalker

' + ], + 'weapon' => 'Lightsaber' + ], + 'Bad guy' => [ + 'name' => '

Sauron

', + 'weapon' => 'Evil Eye' + ] +]; + +$result = ArrayToXml::convert($array); +``` + +This code will result in: + +```xml + + + + Luke Skywalker]]> + Lightsaber + + + <h1>Sauron</h1> + Evil Eye + + +``` + +If your input contains something that cannot be parsed a `DOMException` will be thrown. + + +### Customize the XML declaration + +You could specify specific values in for: + - encoding as the fourth argument (string) + - version as the fifth argument (string) + - standalone as sixth argument (boolean) + +```php +$result = ArrayToXml::convert($array, [], true, 'UTF-8', '1.1', [], true); +``` + +This will result in: + +```xml + +``` + + +### Adding attributes to the root element + +To add attributes to the root element provide an array with an `_attributes` key as the second argument. +The root element name can then be set using the `rootElementName` key. + +```php +$result = ArrayToXml::convert($array, [ +    'rootElementName' => 'helloyouluckypeople', + '_attributes' => [ + 'xmlns' => 'https://github.com/spatie/array-to-xml', + ], +], true, 'UTF-8'); +``` + +### Using a multi-dimensional array + +Use a multi-dimensional array to create a collection of elements. +```php +$array = [ + 'Good guys' => [ + 'Guy' => [ + ['name' => 'Luke Skywalker', 'weapon' => 'Lightsaber'], + ['name' => 'Captain America', 'weapon' => 'Shield'], + ], + ], + 'Bad guys' => [ + 'Guy' => [ + ['name' => 'Sauron', 'weapon' => 'Evil Eye'], + ['name' => 'Darth Vader', 'weapon' => 'Lightsaber'], + ], + ], +]; +``` + +This will result in: + +```xml + + + + + Luke Skywalker + Lightsaber + + + Captain America + Shield + + + + + Sauron + Evil Eye + + + Darth Vader + Lightsaber + + + +``` + +### Handling numeric keys + +The package can also can handle numeric keys: + +```php +$array = [ + 100 => [ + 'name' => 'Vladimir', + 'nickname' => 'greeflas', + ], + 200 => [ + 'name' => 'Marina', + 'nickname' => 'estacet', + ], +]; + +$result = ArrayToXml::convert(['__numeric' => $array]); +``` + +This will result in: + +```xml + + + + Vladimir + greeflas + + + Marina + estacet + + +``` + +You can change key prefix with setter method called `setNumericTagNamePrefix()`. + +### Using custom keys + +The package can also can handle custom keys: + +```php +$array = [ + '__custom:custom-key:1' => [ + 'name' => 'Vladimir', + 'nickname' => 'greeflas', + ], + '__custom:custom-key:2' => [ + 'name' => 'Marina', + 'nickname' => 'estacet', + 'tags' => [ + '__custom:tag:1' => 'first-tag', + '__custom:tag:2' => 'second-tag', + ] + ], +]; + +$result = ArrayToXml::convert($array); +``` + +This will result in: + +```xml + + + + Vladimir + greeflas + + + Marina + estacet + + first-tag + second-tag + + + +``` + +A custom key contains three, colon-separated parts: "__custom:[custom-tag]:[unique-string]". + +- "__custom" + - The key always starts with "__custom". +- [custom-tag] + - The string to be rendered as the XML tag. +- [unique-string] + - A unique string that avoids overwriting of duplicate keys in PHP arrays. + +a colon character can be included within the custom-tag portion by escaping it with a backslash: + +```php +$array = [ + '__custom:ns\\:custom-key:1' => [ + 'name' => 'Vladimir', + 'nickname' => 'greeflas', + ], + '__custom:ns\\:custom-key:2' => [ + 'name' => 'Marina', + 'nickname' => 'estacet', + 'tags' => [ + '__custom:ns\\:tag:1' => 'first-tag', + '__custom:ns\\:tag:2' => 'second-tag', + ] + ], +]; +``` +This will result in: + +```xml + + + + Vladimir + greeflas + + + Marina + estacet + + first-tag + second-tag + + + +``` + +### Setting DOMDocument properties + +To set properties of the internal DOMDocument object just pass an array consisting of keys and values. For a full list of valid properties consult https://www.php.net/manual/en/class.domdocument.php. + +You can use the constructor to set DOMDocument properties. + +```php +$result = ArrayToXml::convert( + $array, + $rootElement, + $replaceSpacesByUnderScoresInKeyNames, + $xmlEncoding, + $xmlVersion, + ['formatOutput' => true] +); + +``` + +Alternatively you can use `setDomProperties` + +```php +$arrayToXml = new ArrayToXml($array); +$arrayToXml->setDomProperties(['formatOutput' => true]); +$result = $arrayToXml->toXml(); +``` + +### XML Prettification + +Call `$arrayToXml->prettify()` method on ArrayToXml to set XML in pretty form. + +Example: + +```php +$array = [ + 'Good guy' => [ + 'name' => 'Luke Skywalker', + 'weapon' => 'Lightsaber' + ], + 'Bad guy' => [ + 'name' => 'Sauron', + 'weapon' => 'Evil Eye' + ] +]; +$arrayToXml = new ArrayToXml($array); +``` + +With prettification: + +```php +$arrayToXml->prettify()->toXml(); +``` + +will result in: + +```xml + + + + Luke Skywalker + Lightsaber + + + Sauron + Evil Eye + + +``` + +Without prettification: + +```php +$arrayToXml->toXml(); +``` + +will result in: + +```xml + +Luke SkywalkerLightsaberSauronEvil Eye +``` + +### Dropping XML declaration + +Call `$arrayToXml->dropXmlDeclaration()` method on ArrayToXml object to omit default XML declaration on top of the generated XML. + +Example: + +```php +$root = [ + 'rootElementName' => 'soap:Envelope', + '_attributes' => [ + 'xmlns:soap' => 'http://www.w3.org/2003/05/soap-envelope/', + ], +]; +$array = [ + 'soap:Header' => [], + 'soap:Body' => [ + 'soap:key' => 'soap:value', + ], +]; +$arrayToXml = new ArrayToXml($array, $root); + +$result = $arrayToXml->dropXmlDeclaration()->toXml(); +``` + +This will result in: + +```xml +soap:value +``` + +### Adding processing instructions + +Call `$arrayToXml->addProcessingInstruction($target, $data)` method on ArrayToXml object to prepend a processing instruction before the root element. + +Example: + +```php +$arrayToXml = new ArrayToXml($array); +$arrayToXml->addProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="base.xsl"'); +$result = $arrayToXml->toXml(); +``` + +This will result in: + +```xml + + +Luke SkywalkerLightsaberSauronEvil Eye +``` + +## Testing + +```bash +vendor/bin/phpunit +``` + +## Changelog + +Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. + +## Contributing + +Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. + +## Security Vulnerabilities + +Please review [our security policy](../../security/policy) on how to report security vulnerabilities. + +## Postcardware + +You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. + +Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium. + +We publish all received postcards [on our company website](https://spatie.be/en/opensource/postcards). + +## Credits + +- [Freek Van der Herten](https://github.com/freekmurze) +- [All Contributors](../../contributors) + +## License + +The MIT License (MIT). Please see [License File](LICENSE.md) for more information. diff --git a/vendor/spatie/array-to-xml/composer.json b/vendor/spatie/array-to-xml/composer.json new file mode 100755 index 00000000..df8cd3a2 --- /dev/null +++ b/vendor/spatie/array-to-xml/composer.json @@ -0,0 +1,46 @@ +{ + "name": "spatie/array-to-xml", + "description": "Convert an array to xml", + "keywords": [ + "convert", + "array", + "xml" + ], + "homepage": "https://github.com/spatie/array-to-xml", + "license": "MIT", + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "require": { + "php" : "^8.0", + "ext-dom": "*" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Spatie\\ArrayToXml\\Test\\": "tests" + } + }, + "scripts": { + "test": "vendor/bin/pest" + }, + "config": { + "allow-plugins": { + "pestphp/pest-plugin": true + } + } +} diff --git a/vendor/spatie/array-to-xml/src/ArrayToXml.php b/vendor/spatie/array-to-xml/src/ArrayToXml.php new file mode 100644 index 00000000..e08a150d --- /dev/null +++ b/vendor/spatie/array-to-xml/src/ArrayToXml.php @@ -0,0 +1,275 @@ +document = new DOMDocument($xmlVersion, $xmlEncoding ?? ''); + + if (! is_null($xmlStandalone)) { + $this->document->xmlStandalone = $xmlStandalone; + } + + if (! empty($domProperties)) { + $this->setDomProperties($domProperties); + } + + $this->replaceSpacesByUnderScoresInKeyNames = $replaceSpacesByUnderScoresInKeyNames; + + if (! empty($array) && $this->isArrayAllKeySequential($array)) { + throw new DOMException('Invalid Character Error'); + } + + $root = $this->createRootElement($rootElement); + + $this->document->appendChild($root); + + $this->convertElement($root, $array); + } + + public function setNumericTagNamePrefix(string $prefix): void + { + $this->numericTagNamePrefix = $prefix; + } + + public static function convert( + array $array, + $rootElement = '', + bool $replaceSpacesByUnderScoresInKeyNames = true, + string $xmlEncoding = null, + string $xmlVersion = '1.0', + array $domProperties = [], + bool $xmlStandalone = null + ): string { + $converter = new static( + $array, + $rootElement, + $replaceSpacesByUnderScoresInKeyNames, + $xmlEncoding, + $xmlVersion, + $domProperties, + $xmlStandalone + ); + + return $converter->toXml(); + } + + public function toXml(): string + { + return $this->addXmlDeclaration + ? $this->document->saveXML() + : $this->document->saveXml($this->document->documentElement); + } + + public function toDom(): DOMDocument + { + return $this->document; + } + + protected function ensureValidDomProperties(array $domProperties): void + { + foreach ($domProperties as $key => $value) { + if (! property_exists($this->document, $key)) { + throw new Exception("{$key} is not a valid property of DOMDocument"); + } + } + } + + public function setDomProperties(array $domProperties): self + { + $this->ensureValidDomProperties($domProperties); + + foreach ($domProperties as $key => $value) { + $this->document->{$key} = $value; + } + + return $this; + } + + public function prettify(): self + { + $this->document->preserveWhiteSpace = false; + $this->document->formatOutput = true; + + return $this; + } + + public function dropXmlDeclaration(): self + { + $this->addXmlDeclaration = false; + + return $this; + } + + public function addProcessingInstruction(string $target, string $data): self + { + $elements = $this->document->getElementsByTagName('*'); + + $rootElement = $elements->count() > 0 ? $elements->item(0) : null; + + $processingInstruction = $this->document->createProcessingInstruction($target, $data); + + $this->document->insertBefore($processingInstruction, $rootElement); + + return $this; + } + + protected function convertElement(DOMElement $element, mixed $value): void + { + $sequential = $this->isArrayAllKeySequential($value); + + if (! is_array($value)) { + $value = htmlspecialchars($value ?? ''); + + $value = $this->removeControlCharacters($value); + + $element->nodeValue = $value; + + return; + } + + foreach ($value as $key => $data) { + if (! $sequential) { + if (($key === '_attributes') || ($key === '@attributes')) { + $this->addAttributes($element, $data); + } elseif ((($key === '_value') || ($key === '@value')) && is_string($data)) { + $element->nodeValue = htmlspecialchars($data); + } elseif ((($key === '_cdata') || ($key === '@cdata')) && is_string($data)) { + $element->appendChild($this->document->createCDATASection($data)); + } elseif ((($key === '_mixed') || ($key === '@mixed')) && is_string($data)) { + $fragment = $this->document->createDocumentFragment(); + $fragment->appendXML($data); + $element->appendChild($fragment); + } elseif ($key === '__numeric') { + $this->addNumericNode($element, $data); + } elseif (str_starts_with($key, '__custom:')) { + $this->addNode($element, str_replace('\:', ':', preg_split('/(?addNode($element, $key, $data); + } + } elseif (is_array($data)) { + $this->addCollectionNode($element, $data); + } else { + $this->addSequentialNode($element, $data); + } + } + } + + protected function addNumericNode(DOMElement $element, mixed $value): void + { + foreach ($value as $key => $item) { + $this->convertElement($element, [$this->numericTagNamePrefix.$key => $item]); + } + } + + protected function addNode(DOMElement $element, string $key, mixed $value): void + { + if ($this->replaceSpacesByUnderScoresInKeyNames) { + $key = str_replace(' ', '_', $key); + } + + $child = $this->document->createElement($key); + $element->appendChild($child); + $this->convertElement($child, $value); + } + + protected function addCollectionNode(DOMElement $element, mixed $value): void + { + if ($element->childNodes->length === 0 && $element->attributes->length === 0) { + $this->convertElement($element, $value); + + return; + } + + $child = $this->document->createElement($element->tagName); + $element->parentNode->appendChild($child); + $this->convertElement($child, $value); + } + + protected function addSequentialNode(DOMElement $element, mixed $value): void + { + if (empty($element->nodeValue) && ! is_numeric($element->nodeValue)) { + $element->nodeValue = htmlspecialchars($value); + + return; + } + + $child = $this->document->createElement($element->tagName); + $child->nodeValue = htmlspecialchars($value); + $element->parentNode->appendChild($child); + } + + protected function isArrayAllKeySequential(array | string | null $value): bool + { + if (! is_array($value)) { + return false; + } + + if (count($value) <= 0) { + return true; + } + + if (\key($value) === '__numeric') { + return false; + } + + return array_unique(array_map('is_int', array_keys($value))) === [true]; + } + + protected function addAttributes(DOMElement $element, array $data): void + { + foreach ($data as $attrKey => $attrVal) { + $element->setAttribute($attrKey, $attrVal ?? ''); + } + } + + protected function createRootElement(string|array $rootElement): DOMElement + { + if (is_string($rootElement)) { + $rootElementName = $rootElement ?: 'root'; + + return $this->document->createElement($rootElementName); + } + + $rootElementName = $rootElement['rootElementName'] ?? 'root'; + + $element = $this->document->createElement($rootElementName); + + foreach ($rootElement as $key => $value) { + if ($key !== '_attributes' && $key !== '@attributes') { + continue; + } + + $this->addAttributes($element, $rootElement[$key]); + } + + return $element; + } + + protected function removeControlCharacters(string $value): string + { + return preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $value); + } +} diff --git a/vendor/symfony/filesystem/CHANGELOG.md b/vendor/symfony/filesystem/CHANGELOG.md new file mode 100644 index 00000000..fcb7170c --- /dev/null +++ b/vendor/symfony/filesystem/CHANGELOG.md @@ -0,0 +1,82 @@ +CHANGELOG +========= + +5.4 +--- + + * Add `Path` class + * Add `$lock` argument to `Filesystem::appendToFile()` + +5.0.0 +----- + + * `Filesystem::dumpFile()` and `appendToFile()` don't accept arrays anymore + +4.4.0 +----- + + * support for passing a `null` value to `Filesystem::isAbsolutePath()` is deprecated and will be removed in 5.0 + * `tempnam()` now accepts a third argument `$suffix`. + +4.3.0 +----- + + * support for passing arrays to `Filesystem::dumpFile()` is deprecated and will be removed in 5.0 + * support for passing arrays to `Filesystem::appendToFile()` is deprecated and will be removed in 5.0 + +4.0.0 +----- + + * removed `LockHandler` + * Support for passing relative paths to `Filesystem::makePathRelative()` has been removed. + +3.4.0 +----- + + * support for passing relative paths to `Filesystem::makePathRelative()` is deprecated and will be removed in 4.0 + +3.3.0 +----- + + * added `appendToFile()` to append contents to existing files + +3.2.0 +----- + + * added `readlink()` as a platform independent method to read links + +3.0.0 +----- + + * removed `$mode` argument from `Filesystem::dumpFile()` + +2.8.0 +----- + + * added tempnam() a stream aware version of PHP's native tempnam() + +2.6.0 +----- + + * added LockHandler + +2.3.12 +------ + + * deprecated dumpFile() file mode argument. + +2.3.0 +----- + + * added the dumpFile() method to atomically write files + +2.2.0 +----- + + * added a delete option for the mirror() method + +2.1.0 +----- + + * 24eb396 : BC Break : mkdir() function now throws exception in case of failure instead of returning Boolean value + * created the component diff --git a/vendor/symfony/filesystem/Exception/ExceptionInterface.php b/vendor/symfony/filesystem/Exception/ExceptionInterface.php new file mode 100644 index 00000000..fc438d9f --- /dev/null +++ b/vendor/symfony/filesystem/Exception/ExceptionInterface.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception interface for all exceptions thrown by the component. + * + * @author Romain Neutron + */ +interface ExceptionInterface extends \Throwable +{ +} diff --git a/vendor/symfony/filesystem/Exception/FileNotFoundException.php b/vendor/symfony/filesystem/Exception/FileNotFoundException.php new file mode 100644 index 00000000..48b64080 --- /dev/null +++ b/vendor/symfony/filesystem/Exception/FileNotFoundException.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception class thrown when a file couldn't be found. + * + * @author Fabien Potencier + * @author Christian Gärtner + */ +class FileNotFoundException extends IOException +{ + public function __construct(string $message = null, int $code = 0, \Throwable $previous = null, string $path = null) + { + if (null === $message) { + if (null === $path) { + $message = 'File could not be found.'; + } else { + $message = sprintf('File "%s" could not be found.', $path); + } + } + + parent::__construct($message, $code, $previous, $path); + } +} diff --git a/vendor/symfony/filesystem/Exception/IOException.php b/vendor/symfony/filesystem/Exception/IOException.php new file mode 100644 index 00000000..a3c54455 --- /dev/null +++ b/vendor/symfony/filesystem/Exception/IOException.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * Exception class thrown when a filesystem operation failure happens. + * + * @author Romain Neutron + * @author Christian Gärtner + * @author Fabien Potencier + */ +class IOException extends \RuntimeException implements IOExceptionInterface +{ + private ?string $path; + + public function __construct(string $message, int $code = 0, \Throwable $previous = null, string $path = null) + { + $this->path = $path; + + parent::__construct($message, $code, $previous); + } + + public function getPath(): ?string + { + return $this->path; + } +} diff --git a/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/vendor/symfony/filesystem/Exception/IOExceptionInterface.php new file mode 100644 index 00000000..90c71db8 --- /dev/null +++ b/vendor/symfony/filesystem/Exception/IOExceptionInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * IOException interface for file and input/output stream related exceptions thrown by the component. + * + * @author Christian Gärtner + */ +interface IOExceptionInterface extends ExceptionInterface +{ + /** + * Returns the associated path for the exception. + */ + public function getPath(): ?string; +} diff --git a/vendor/symfony/filesystem/Exception/InvalidArgumentException.php b/vendor/symfony/filesystem/Exception/InvalidArgumentException.php new file mode 100644 index 00000000..abadc200 --- /dev/null +++ b/vendor/symfony/filesystem/Exception/InvalidArgumentException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * @author Christian Flothmann + */ +class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/filesystem/Exception/RuntimeException.php b/vendor/symfony/filesystem/Exception/RuntimeException.php new file mode 100644 index 00000000..a7512dca --- /dev/null +++ b/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * @author Théo Fidry + */ +class RuntimeException extends \RuntimeException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php new file mode 100644 index 00000000..c7f3dd29 --- /dev/null +++ b/vendor/symfony/filesystem/Filesystem.php @@ -0,0 +1,737 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem; + +use Symfony\Component\Filesystem\Exception\FileNotFoundException; +use Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use Symfony\Component\Filesystem\Exception\IOException; + +/** + * Provides basic utility to manipulate the file system. + * + * @author Fabien Potencier + */ +class Filesystem +{ + private static $lastError; + + /** + * Copies a file. + * + * If the target file is older than the origin file, it's always overwritten. + * If the target file is newer, it is overwritten only when the + * $overwriteNewerFiles option is set to true. + * + * @throws FileNotFoundException When originFile doesn't exist + * @throws IOException When copy fails + */ + public function copy(string $originFile, string $targetFile, bool $overwriteNewerFiles = false) + { + $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://'); + if ($originIsLocal && !is_file($originFile)) { + throw new FileNotFoundException(sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile); + } + + $this->mkdir(\dirname($targetFile)); + + $doCopy = true; + if (!$overwriteNewerFiles && null === parse_url($originFile, \PHP_URL_HOST) && is_file($targetFile)) { + $doCopy = filemtime($originFile) > filemtime($targetFile); + } + + if ($doCopy) { + // https://bugs.php.net/64634 + if (!$source = self::box('fopen', $originFile, 'r')) { + throw new IOException(sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile); + } + + // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default + if (!$target = self::box('fopen', $targetFile, 'w', false, stream_context_create(['ftp' => ['overwrite' => true]]))) { + throw new IOException(sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing: ', $originFile, $targetFile).self::$lastError, 0, null, $originFile); + } + + $bytesCopied = stream_copy_to_stream($source, $target); + fclose($source); + fclose($target); + unset($source, $target); + + if (!is_file($targetFile)) { + throw new IOException(sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile); + } + + if ($originIsLocal) { + // Like `cp`, preserve executable permission bits + self::box('chmod', $targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111)); + + if ($bytesCopied !== $bytesOrigin = filesize($originFile)) { + throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); + } + } + } + } + + /** + * Creates a directory recursively. + * + * @throws IOException On any directory creation failure + */ + public function mkdir(string|iterable $dirs, int $mode = 0777) + { + foreach ($this->toIterable($dirs) as $dir) { + if (is_dir($dir)) { + continue; + } + + if (!self::box('mkdir', $dir, $mode, true) && !is_dir($dir)) { + throw new IOException(sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir); + } + } + } + + /** + * Checks the existence of files or directories. + */ + public function exists(string|iterable $files): bool + { + $maxPathLength = \PHP_MAXPATHLEN - 2; + + foreach ($this->toIterable($files) as $file) { + if (\strlen($file) > $maxPathLength) { + throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file); + } + + if (!file_exists($file)) { + return false; + } + } + + return true; + } + + /** + * Sets access and modification time of file. + * + * @param int|null $time The touch time as a Unix timestamp, if not supplied the current system time is used + * @param int|null $atime The access time as a Unix timestamp, if not supplied the current system time is used + * + * @throws IOException When touch fails + */ + public function touch(string|iterable $files, int $time = null, int $atime = null) + { + foreach ($this->toIterable($files) as $file) { + if (!($time ? self::box('touch', $file, $time, $atime) : self::box('touch', $file))) { + throw new IOException(sprintf('Failed to touch "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + + /** + * Removes files or directories. + * + * @throws IOException When removal fails + */ + public function remove(string|iterable $files) + { + if ($files instanceof \Traversable) { + $files = iterator_to_array($files, false); + } elseif (!\is_array($files)) { + $files = [$files]; + } + + self::doRemove($files, false); + } + + private static function doRemove(array $files, bool $isRecursive): void + { + $files = array_reverse($files); + foreach ($files as $file) { + if (is_link($file)) { + // See https://bugs.php.net/52176 + if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) { + throw new IOException(sprintf('Failed to remove symlink "%s": ', $file).self::$lastError); + } + } elseif (is_dir($file)) { + if (!$isRecursive) { + $tmpName = \dirname(realpath($file)).'/.'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-.')); + + if (file_exists($tmpName)) { + try { + self::doRemove([$tmpName], true); + } catch (IOException) { + } + } + + if (!file_exists($tmpName) && self::box('rename', $file, $tmpName)) { + $origFile = $file; + $file = $tmpName; + } else { + $origFile = null; + } + } + + $filesystemIterator = new \FilesystemIterator($file, \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS); + self::doRemove(iterator_to_array($filesystemIterator, true), true); + + if (!self::box('rmdir', $file) && file_exists($file) && !$isRecursive) { + $lastError = self::$lastError; + + if (null !== $origFile && self::box('rename', $file, $origFile)) { + $file = $origFile; + } + + throw new IOException(sprintf('Failed to remove directory "%s": ', $file).$lastError); + } + } elseif (!self::box('unlink', $file) && (str_contains(self::$lastError, 'Permission denied') || file_exists($file))) { + throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError); + } + } + } + + /** + * Change mode for an array of files or directories. + * + * @param int $mode The new mode (octal) + * @param int $umask The mode mask (octal) + * @param bool $recursive Whether change the mod recursively or not + * + * @throws IOException When the change fails + */ + public function chmod(string|iterable $files, int $mode, int $umask = 0000, bool $recursive = false) + { + foreach ($this->toIterable($files) as $file) { + if (\is_int($mode) && !self::box('chmod', $file, $mode & ~$umask)) { + throw new IOException(sprintf('Failed to chmod file "%s": ', $file).self::$lastError, 0, null, $file); + } + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chmod(new \FilesystemIterator($file), $mode, $umask, true); + } + } + } + + /** + * Change the owner of an array of files or directories. + * + * @param string|int $user A user name or number + * @param bool $recursive Whether change the owner recursively or not + * + * @throws IOException When the change fails + */ + public function chown(string|iterable $files, string|int $user, bool $recursive = false) + { + foreach ($this->toIterable($files) as $file) { + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chown(new \FilesystemIterator($file), $user, true); + } + if (is_link($file) && \function_exists('lchown')) { + if (!self::box('lchown', $file, $user)) { + throw new IOException(sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file); + } + } else { + if (!self::box('chown', $file, $user)) { + throw new IOException(sprintf('Failed to chown file "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + } + + /** + * Change the group of an array of files or directories. + * + * @param string|int $group A group name or number + * @param bool $recursive Whether change the group recursively or not + * + * @throws IOException When the change fails + */ + public function chgrp(string|iterable $files, string|int $group, bool $recursive = false) + { + foreach ($this->toIterable($files) as $file) { + if ($recursive && is_dir($file) && !is_link($file)) { + $this->chgrp(new \FilesystemIterator($file), $group, true); + } + if (is_link($file) && \function_exists('lchgrp')) { + if (!self::box('lchgrp', $file, $group)) { + throw new IOException(sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file); + } + } else { + if (!self::box('chgrp', $file, $group)) { + throw new IOException(sprintf('Failed to chgrp file "%s": ', $file).self::$lastError, 0, null, $file); + } + } + } + } + + /** + * Renames a file or a directory. + * + * @throws IOException When target file or directory already exists + * @throws IOException When origin cannot be renamed + */ + public function rename(string $origin, string $target, bool $overwrite = false) + { + // we check that target does not exist + if (!$overwrite && $this->isReadable($target)) { + throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target); + } + + if (!self::box('rename', $origin, $target)) { + if (is_dir($origin)) { + // See https://bugs.php.net/54097 & https://php.net/rename#113943 + $this->mirror($origin, $target, null, ['override' => $overwrite, 'delete' => $overwrite]); + $this->remove($origin); + + return; + } + throw new IOException(sprintf('Cannot rename "%s" to "%s": ', $origin, $target).self::$lastError, 0, null, $target); + } + } + + /** + * Tells whether a file exists and is readable. + * + * @throws IOException When windows path is longer than 258 characters + */ + private function isReadable(string $filename): bool + { + $maxPathLength = \PHP_MAXPATHLEN - 2; + + if (\strlen($filename) > $maxPathLength) { + throw new IOException(sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename); + } + + return is_readable($filename); + } + + /** + * Creates a symbolic link or copy a directory. + * + * @throws IOException When symlink fails + */ + public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false) + { + self::assertFunctionExists('symlink'); + + if ('\\' === \DIRECTORY_SEPARATOR) { + $originDir = strtr($originDir, '/', '\\'); + $targetDir = strtr($targetDir, '/', '\\'); + + if ($copyOnWindows) { + $this->mirror($originDir, $targetDir); + + return; + } + } + + $this->mkdir(\dirname($targetDir)); + + if (is_link($targetDir)) { + if (readlink($targetDir) === $originDir) { + return; + } + $this->remove($targetDir); + } + + if (!self::box('symlink', $originDir, $targetDir)) { + $this->linkException($originDir, $targetDir, 'symbolic'); + } + } + + /** + * Creates a hard link, or several hard links to a file. + * + * @param string|string[] $targetFiles The target file(s) + * + * @throws FileNotFoundException When original file is missing or not a file + * @throws IOException When link fails, including if link already exists + */ + public function hardlink(string $originFile, string|iterable $targetFiles) + { + self::assertFunctionExists('link'); + + if (!$this->exists($originFile)) { + throw new FileNotFoundException(null, 0, null, $originFile); + } + + if (!is_file($originFile)) { + throw new FileNotFoundException(sprintf('Origin file "%s" is not a file.', $originFile)); + } + + foreach ($this->toIterable($targetFiles) as $targetFile) { + if (is_file($targetFile)) { + if (fileinode($originFile) === fileinode($targetFile)) { + continue; + } + $this->remove($targetFile); + } + + if (!self::box('link', $originFile, $targetFile)) { + $this->linkException($originFile, $targetFile, 'hard'); + } + } + } + + /** + * @param string $linkType Name of the link type, typically 'symbolic' or 'hard' + */ + private function linkException(string $origin, string $target, string $linkType) + { + if (self::$lastError) { + if ('\\' === \DIRECTORY_SEPARATOR && str_contains(self::$lastError, 'error code(1314)')) { + throw new IOException(sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target); + } + } + throw new IOException(sprintf('Failed to create "%s" link from "%s" to "%s": ', $linkType, $origin, $target).self::$lastError, 0, null, $target); + } + + /** + * Resolves links in paths. + * + * With $canonicalize = false (default) + * - if $path does not exist or is not a link, returns null + * - if $path is a link, returns the next direct target of the link without considering the existence of the target + * + * With $canonicalize = true + * - if $path does not exist, returns null + * - if $path exists, returns its absolute fully resolved final version + */ + public function readlink(string $path, bool $canonicalize = false): ?string + { + if (!$canonicalize && !is_link($path)) { + return null; + } + + if ($canonicalize) { + if (!$this->exists($path)) { + return null; + } + + return realpath($path); + } + + return readlink($path); + } + + /** + * Given an existing path, convert it to a path relative to a given starting path. + */ + public function makePathRelative(string $endPath, string $startPath): string + { + if (!$this->isAbsolutePath($startPath)) { + throw new InvalidArgumentException(sprintf('The start path "%s" is not absolute.', $startPath)); + } + + if (!$this->isAbsolutePath($endPath)) { + throw new InvalidArgumentException(sprintf('The end path "%s" is not absolute.', $endPath)); + } + + // Normalize separators on Windows + if ('\\' === \DIRECTORY_SEPARATOR) { + $endPath = str_replace('\\', '/', $endPath); + $startPath = str_replace('\\', '/', $startPath); + } + + $splitDriveLetter = function ($path) { + return (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0])) + ? [substr($path, 2), strtoupper($path[0])] + : [$path, null]; + }; + + $splitPath = function ($path) { + $result = []; + + foreach (explode('/', trim($path, '/')) as $segment) { + if ('..' === $segment) { + array_pop($result); + } elseif ('.' !== $segment && '' !== $segment) { + $result[] = $segment; + } + } + + return $result; + }; + + [$endPath, $endDriveLetter] = $splitDriveLetter($endPath); + [$startPath, $startDriveLetter] = $splitDriveLetter($startPath); + + $startPathArr = $splitPath($startPath); + $endPathArr = $splitPath($endPath); + + if ($endDriveLetter && $startDriveLetter && $endDriveLetter != $startDriveLetter) { + // End path is on another drive, so no relative path exists + return $endDriveLetter.':/'.($endPathArr ? implode('/', $endPathArr).'/' : ''); + } + + // Find for which directory the common path stops + $index = 0; + while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) { + ++$index; + } + + // Determine how deep the start path is relative to the common path (ie, "web/bundles" = 2 levels) + if (1 === \count($startPathArr) && '' === $startPathArr[0]) { + $depth = 0; + } else { + $depth = \count($startPathArr) - $index; + } + + // Repeated "../" for each level need to reach the common path + $traverser = str_repeat('../', $depth); + + $endPathRemainder = implode('/', \array_slice($endPathArr, $index)); + + // Construct $endPath from traversing to the common path, then to the remaining $endPath + $relativePath = $traverser.('' !== $endPathRemainder ? $endPathRemainder.'/' : ''); + + return '' === $relativePath ? './' : $relativePath; + } + + /** + * Mirrors a directory to another. + * + * Copies files and directories from the origin directory into the target directory. By default: + * + * - existing files in the target directory will be overwritten, except if they are newer (see the `override` option) + * - files in the target directory that do not exist in the source directory will not be deleted (see the `delete` option) + * + * @param \Traversable|null $iterator Iterator that filters which files and directories to copy, if null a recursive iterator is created + * @param array $options An array of boolean options + * Valid options are: + * - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false) + * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) + * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) + * + * @throws IOException When file type is unknown + */ + public function mirror(string $originDir, string $targetDir, \Traversable $iterator = null, array $options = []) + { + $targetDir = rtrim($targetDir, '/\\'); + $originDir = rtrim($originDir, '/\\'); + $originDirLen = \strlen($originDir); + + if (!$this->exists($originDir)) { + throw new IOException(sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir); + } + + // Iterate in destination folder to remove obsolete entries + if ($this->exists($targetDir) && isset($options['delete']) && $options['delete']) { + $deleteIterator = $iterator; + if (null === $deleteIterator) { + $flags = \FilesystemIterator::SKIP_DOTS; + $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, $flags), \RecursiveIteratorIterator::CHILD_FIRST); + } + $targetDirLen = \strlen($targetDir); + foreach ($deleteIterator as $file) { + $origin = $originDir.substr($file->getPathname(), $targetDirLen); + if (!$this->exists($origin)) { + $this->remove($file); + } + } + } + + $copyOnWindows = $options['copy_on_windows'] ?? false; + + if (null === $iterator) { + $flags = $copyOnWindows ? \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS : \FilesystemIterator::SKIP_DOTS; + $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, $flags), \RecursiveIteratorIterator::SELF_FIRST); + } + + $this->mkdir($targetDir); + $filesCreatedWhileMirroring = []; + + foreach ($iterator as $file) { + if ($file->getPathname() === $targetDir || $file->getRealPath() === $targetDir || isset($filesCreatedWhileMirroring[$file->getRealPath()])) { + continue; + } + + $target = $targetDir.substr($file->getPathname(), $originDirLen); + $filesCreatedWhileMirroring[$target] = true; + + if (!$copyOnWindows && is_link($file)) { + $this->symlink($file->getLinkTarget(), $target); + } elseif (is_dir($file)) { + $this->mkdir($target); + } elseif (is_file($file)) { + $this->copy($file, $target, $options['override'] ?? false); + } else { + throw new IOException(sprintf('Unable to guess "%s" file type.', $file), 0, null, $file); + } + } + } + + /** + * Returns whether the file path is an absolute path. + */ + public function isAbsolutePath(string $file): bool + { + return '' !== $file && (strspn($file, '/\\', 0, 1) + || (\strlen($file) > 3 && ctype_alpha($file[0]) + && ':' === $file[1] + && strspn($file, '/\\', 2, 1) + ) + || null !== parse_url($file, \PHP_URL_SCHEME) + ); + } + + /** + * Creates a temporary file with support for custom stream wrappers. + * + * @param string $prefix The prefix of the generated temporary filename + * Note: Windows uses only the first three characters of prefix + * @param string $suffix The suffix of the generated temporary filename + * + * @return string The new temporary filename (with path), or throw an exception on failure + */ + public function tempnam(string $dir, string $prefix, string $suffix = ''): string + { + [$scheme, $hierarchy] = $this->getSchemeAndHierarchy($dir); + + // If no scheme or scheme is "file" or "gs" (Google Cloud) create temp file in local filesystem + if ((null === $scheme || 'file' === $scheme || 'gs' === $scheme) && '' === $suffix) { + // If tempnam failed or no scheme return the filename otherwise prepend the scheme + if ($tmpFile = self::box('tempnam', $hierarchy, $prefix)) { + if (null !== $scheme && 'gs' !== $scheme) { + return $scheme.'://'.$tmpFile; + } + + return $tmpFile; + } + + throw new IOException('A temporary file could not be created: '.self::$lastError); + } + + // Loop until we create a valid temp file or have reached 10 attempts + for ($i = 0; $i < 10; ++$i) { + // Create a unique filename + $tmpFile = $dir.'/'.$prefix.uniqid(mt_rand(), true).$suffix; + + // Use fopen instead of file_exists as some streams do not support stat + // Use mode 'x+' to atomically check existence and create to avoid a TOCTOU vulnerability + if (!$handle = self::box('fopen', $tmpFile, 'x+')) { + continue; + } + + // Close the file if it was successfully opened + self::box('fclose', $handle); + + return $tmpFile; + } + + throw new IOException('A temporary file could not be created: '.self::$lastError); + } + + /** + * Atomically dumps content into a file. + * + * @param string|resource $content The data to write into the file + * + * @throws IOException if the file cannot be written to + */ + public function dumpFile(string $filename, $content) + { + if (\is_array($content)) { + throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); + } + + $dir = \dirname($filename); + + if (!is_dir($dir)) { + $this->mkdir($dir); + } + + // Will create a temp file with 0600 access rights + // when the filesystem supports chmod. + $tmpFile = $this->tempnam($dir, basename($filename)); + + try { + if (false === self::box('file_put_contents', $tmpFile, $content)) { + throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); + } + + self::box('chmod', $tmpFile, file_exists($filename) ? fileperms($filename) : 0666 & ~umask()); + + $this->rename($tmpFile, $filename, true); + } finally { + if (file_exists($tmpFile)) { + self::box('unlink', $tmpFile); + } + } + } + + /** + * Appends content to an existing file. + * + * @param string|resource $content The content to append + * @param bool $lock Whether the file should be locked when writing to it + * + * @throws IOException If the file is not writable + */ + public function appendToFile(string $filename, $content/* , bool $lock = false */) + { + if (\is_array($content)) { + throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); + } + + $dir = \dirname($filename); + + if (!is_dir($dir)) { + $this->mkdir($dir); + } + + $lock = \func_num_args() > 2 && func_get_arg(2); + + if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND | ($lock ? \LOCK_EX : 0))) { + throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); + } + } + + private function toIterable(string|iterable $files): iterable + { + return is_iterable($files) ? $files : [$files]; + } + + /** + * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> [file, tmp]). + */ + private function getSchemeAndHierarchy(string $filename): array + { + $components = explode('://', $filename, 2); + + return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]]; + } + + private static function assertFunctionExists(string $func): void + { + if (!\function_exists($func)) { + throw new IOException(sprintf('Unable to perform filesystem operation because the "%s()" function has been disabled.', $func)); + } + } + + private static function box(string $func, mixed ...$args): mixed + { + self::assertFunctionExists($func); + + self::$lastError = null; + set_error_handler(__CLASS__.'::handleError'); + try { + return $func(...$args); + } finally { + restore_error_handler(); + } + } + + /** + * @internal + */ + public static function handleError(int $type, string $msg) + { + self::$lastError = $msg; + } +} diff --git a/vendor/symfony/filesystem/LICENSE b/vendor/symfony/filesystem/LICENSE new file mode 100644 index 00000000..0138f8f0 --- /dev/null +++ b/vendor/symfony/filesystem/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-present Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/symfony/filesystem/Path.php b/vendor/symfony/filesystem/Path.php new file mode 100644 index 00000000..8ddbac8f --- /dev/null +++ b/vendor/symfony/filesystem/Path.php @@ -0,0 +1,819 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem; + +use Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use Symfony\Component\Filesystem\Exception\RuntimeException; + +/** + * Contains utility methods for handling path strings. + * + * The methods in this class are able to deal with both UNIX and Windows paths + * with both forward and backward slashes. All methods return normalized parts + * containing only forward slashes and no excess "." and ".." segments. + * + * @author Bernhard Schussek + * @author Thomas Schulz + * @author Théo Fidry + */ +final class Path +{ + /** + * The number of buffer entries that triggers a cleanup operation. + */ + private const CLEANUP_THRESHOLD = 1250; + + /** + * The buffer size after the cleanup operation. + */ + private const CLEANUP_SIZE = 1000; + + /** + * Buffers input/output of {@link canonicalize()}. + * + * @var array + */ + private static $buffer = []; + + /** + * @var int + */ + private static $bufferSize = 0; + + /** + * Canonicalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Furthermore, all "." and ".." segments are removed as far as possible. + * ".." segments at the beginning of relative paths are not removed. + * + * ```php + * echo Path::canonicalize("\symfony\puli\..\css\style.css"); + * // => /symfony/css/style.css + * + * echo Path::canonicalize("../css/./style.css"); + * // => ../css/style.css + * ``` + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function canonicalize(string $path): string + { + if ('' === $path) { + return ''; + } + + // This method is called by many other methods in this class. Buffer + // the canonicalized paths to make up for the severe performance + // decrease. + if (isset(self::$buffer[$path])) { + return self::$buffer[$path]; + } + + // Replace "~" with user's home directory. + if ('~' === $path[0]) { + $path = self::getHomeDirectory().substr($path, 1); + } + + $path = self::normalize($path); + + [$root, $pathWithoutRoot] = self::split($path); + + $canonicalParts = self::findCanonicalParts($root, $pathWithoutRoot); + + // Add the root directory again + self::$buffer[$path] = $canonicalPath = $root.implode('/', $canonicalParts); + ++self::$bufferSize; + + // Clean up regularly to prevent memory leaks + if (self::$bufferSize > self::CLEANUP_THRESHOLD) { + self::$buffer = \array_slice(self::$buffer, -self::CLEANUP_SIZE, null, true); + self::$bufferSize = self::CLEANUP_SIZE; + } + + return $canonicalPath; + } + + /** + * Normalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Contrary to {@link canonicalize()}, this method does not remove invalid + * or dot path segments. Consequently, it is much more efficient and should + * be used whenever the given path is known to be a valid, absolute system + * path. + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function normalize(string $path): string + { + return str_replace('\\', '/', $path); + } + + /** + * Returns the directory part of the path. + * + * This method is similar to PHP's dirname(), but handles various cases + * where dirname() returns a weird result: + * + * - dirname() does not accept backslashes on UNIX + * - dirname("C:/symfony") returns "C:", not "C:/" + * - dirname("C:/") returns ".", not "C:/" + * - dirname("C:") returns ".", not "C:/" + * - dirname("symfony") returns ".", not "" + * - dirname() does not canonicalize the result + * + * This method fixes these shortcomings and behaves like dirname() + * otherwise. + * + * The result is a canonical path. + * + * @return string The canonical directory part. Returns the root directory + * if the root directory is passed. Returns an empty string + * if a relative path is passed that contains no slashes. + * Returns an empty string if an empty string is passed. + */ + public static function getDirectory(string $path): string + { + if ('' === $path) { + return ''; + } + + $path = self::canonicalize($path); + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + if (false === $dirSeparatorPosition = strrpos($path, '/')) { + return ''; + } + + // Directory equals root directory "/" + if (0 === $dirSeparatorPosition) { + return $scheme.'/'; + } + + // Directory equals Windows root "C:/" + if (2 === $dirSeparatorPosition && ctype_alpha($path[0]) && ':' === $path[1]) { + return $scheme.substr($path, 0, 3); + } + + return $scheme.substr($path, 0, $dirSeparatorPosition); + } + + /** + * Returns canonical path of the user's home directory. + * + * Supported operating systems: + * + * - UNIX + * - Windows8 and upper + * + * If your operating system or environment isn't supported, an exception is thrown. + * + * The result is a canonical path. + * + * @throws RuntimeException If your operating system or environment isn't supported + */ + public static function getHomeDirectory(): string + { + // For UNIX support + if (getenv('HOME')) { + return self::canonicalize(getenv('HOME')); + } + + // For >= Windows8 support + if (getenv('HOMEDRIVE') && getenv('HOMEPATH')) { + return self::canonicalize(getenv('HOMEDRIVE').getenv('HOMEPATH')); + } + + throw new RuntimeException("Cannot find the home directory path: Your environment or operating system isn't supported."); + } + + /** + * Returns the root directory of a path. + * + * The result is a canonical path. + * + * @return string The canonical root directory. Returns an empty string if + * the given path is relative or empty. + */ + public static function getRoot(string $path): string + { + if ('' === $path) { + return ''; + } + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + $firstCharacter = $path[0]; + + // UNIX root "/" or "\" (Windows style) + if ('/' === $firstCharacter || '\\' === $firstCharacter) { + return $scheme.'/'; + } + + $length = \strlen($path); + + // Windows root + if ($length > 1 && ':' === $path[1] && ctype_alpha($firstCharacter)) { + // Special case: "C:" + if (2 === $length) { + return $scheme.$path.'/'; + } + + // Normal case: "C:/ or "C:\" + if ('/' === $path[2] || '\\' === $path[2]) { + return $scheme.$firstCharacter.$path[1].'/'; + } + } + + return ''; + } + + /** + * Returns the file name without the extension from a file path. + * + * @param string|null $extension if specified, only that extension is cut + * off (may contain leading dot) + */ + public static function getFilenameWithoutExtension(string $path, string $extension = null): string + { + if ('' === $path) { + return ''; + } + + if (null !== $extension) { + // remove extension and trailing dot + return rtrim(basename($path, $extension), '.'); + } + + return pathinfo($path, \PATHINFO_FILENAME); + } + + /** + * Returns the extension from a file path (without leading dot). + * + * @param bool $forceLowerCase forces the extension to be lower-case + */ + public static function getExtension(string $path, bool $forceLowerCase = false): string + { + if ('' === $path) { + return ''; + } + + $extension = pathinfo($path, \PATHINFO_EXTENSION); + + if ($forceLowerCase) { + $extension = self::toLower($extension); + } + + return $extension; + } + + /** + * Returns whether the path has an (or the specified) extension. + * + * @param string $path the path string + * @param string|string[]|null $extensions if null or not provided, checks if + * an extension exists, otherwise + * checks for the specified extension + * or array of extensions (with or + * without leading dot) + * @param bool $ignoreCase whether to ignore case-sensitivity + */ + public static function hasExtension(string $path, $extensions = null, bool $ignoreCase = false): bool + { + if ('' === $path) { + return false; + } + + $actualExtension = self::getExtension($path, $ignoreCase); + + // Only check if path has any extension + if ([] === $extensions || null === $extensions) { + return '' !== $actualExtension; + } + + if (\is_string($extensions)) { + $extensions = [$extensions]; + } + + foreach ($extensions as $key => $extension) { + if ($ignoreCase) { + $extension = self::toLower($extension); + } + + // remove leading '.' in extensions array + $extensions[$key] = ltrim($extension, '.'); + } + + return \in_array($actualExtension, $extensions, true); + } + + /** + * Changes the extension of a path string. + * + * @param string $path The path string with filename.ext to change. + * @param string $extension new extension (with or without leading dot) + * + * @return string the path string with new file extension + */ + public static function changeExtension(string $path, string $extension): string + { + if ('' === $path) { + return ''; + } + + $actualExtension = self::getExtension($path); + $extension = ltrim($extension, '.'); + + // No extension for paths + if ('/' === substr($path, -1)) { + return $path; + } + + // No actual extension in path + if (empty($actualExtension)) { + return $path.('.' === substr($path, -1) ? '' : '.').$extension; + } + + return substr($path, 0, -\strlen($actualExtension)).$extension; + } + + public static function isAbsolute(string $path): bool + { + if ('' === $path) { + return false; + } + + // Strip scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $path = substr($path, $schemeSeparatorPosition + 3); + } + + $firstCharacter = $path[0]; + + // UNIX root "/" or "\" (Windows style) + if ('/' === $firstCharacter || '\\' === $firstCharacter) { + return true; + } + + // Windows root + if (\strlen($path) > 1 && ctype_alpha($firstCharacter) && ':' === $path[1]) { + // Special case: "C:" + if (2 === \strlen($path)) { + return true; + } + + // Normal case: "C:/ or "C:\" + if ('/' === $path[2] || '\\' === $path[2]) { + return true; + } + } + + return false; + } + + public static function isRelative(string $path): bool + { + return !self::isAbsolute($path); + } + + /** + * Turns a relative path into an absolute path in canonical form. + * + * Usually, the relative path is appended to the given base path. Dot + * segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * echo Path::makeAbsolute("../style.css", "/symfony/puli/css"); + * // => /symfony/puli/style.css + * ``` + * + * If an absolute path is passed, that path is returned unless its root + * directory is different than the one of the base path. In that case, an + * exception is thrown. + * + * ```php + * Path::makeAbsolute("/style.css", "/symfony/puli/css"); + * // => /style.css + * + * Path::makeAbsolute("C:/style.css", "C:/symfony/puli/css"); + * // => C:/style.css + * + * Path::makeAbsolute("C:/style.css", "/symfony/puli/css"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @param string $basePath an absolute base path + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path is an absolute path with + * a different root than the base path + */ + public static function makeAbsolute(string $path, string $basePath): string + { + if ('' === $basePath) { + throw new InvalidArgumentException(sprintf('The base path must be a non-empty string. Got: "%s".', $basePath)); + } + + if (!self::isAbsolute($basePath)) { + throw new InvalidArgumentException(sprintf('The base path "%s" is not an absolute path.', $basePath)); + } + + if (self::isAbsolute($path)) { + return self::canonicalize($path); + } + + if (false !== $schemeSeparatorPosition = strpos($basePath, '://')) { + $scheme = substr($basePath, 0, $schemeSeparatorPosition + 3); + $basePath = substr($basePath, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + return $scheme.self::canonicalize(rtrim($basePath, '/\\').'/'.$path); + } + + /** + * Turns a path into a relative path. + * + * The relative path is created relative to the given base path: + * + * ```php + * echo Path::makeRelative("/symfony/style.css", "/symfony/puli"); + * // => ../style.css + * ``` + * + * If a relative path is passed and the base path is absolute, the relative + * path is returned unchanged: + * + * ```php + * Path::makeRelative("style.css", "/symfony/puli/css"); + * // => style.css + * ``` + * + * If both paths are relative, the relative path is created with the + * assumption that both paths are relative to the same directory: + * + * ```php + * Path::makeRelative("style.css", "symfony/puli/css"); + * // => ../../../style.css + * ``` + * + * If both paths are absolute, their root directory must be the same, + * otherwise an exception is thrown: + * + * ```php + * Path::makeRelative("C:/symfony/style.css", "/symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the passed path is absolute, but the base path is not, an exception + * is thrown as well: + * + * ```php + * Path::makeRelative("/symfony/style.css", "symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path has a different root + * than the base path + */ + public static function makeRelative(string $path, string $basePath): string + { + $path = self::canonicalize($path); + $basePath = self::canonicalize($basePath); + + [$root, $relativePath] = self::split($path); + [$baseRoot, $relativeBasePath] = self::split($basePath); + + // If the base path is given as absolute path and the path is already + // relative, consider it to be relative to the given absolute path + // already + if ('' === $root && '' !== $baseRoot) { + // If base path is already in its root + if ('' === $relativeBasePath) { + $relativePath = ltrim($relativePath, './\\'); + } + + return $relativePath; + } + + // If the passed path is absolute, but the base path is not, we + // cannot generate a relative path + if ('' !== $root && '' === $baseRoot) { + throw new InvalidArgumentException(sprintf('The absolute path "%s" cannot be made relative to the relative path "%s". You should provide an absolute base path instead.', $path, $basePath)); + } + + // Fail if the roots of the two paths are different + if ($baseRoot && $root !== $baseRoot) { + throw new InvalidArgumentException(sprintf('The path "%s" cannot be made relative to "%s", because they have different roots ("%s" and "%s").', $path, $basePath, $root, $baseRoot)); + } + + if ('' === $relativeBasePath) { + return $relativePath; + } + + // Build a "../../" prefix with as many "../" parts as necessary + $parts = explode('/', $relativePath); + $baseParts = explode('/', $relativeBasePath); + $dotDotPrefix = ''; + + // Once we found a non-matching part in the prefix, we need to add + // "../" parts for all remaining parts + $match = true; + + foreach ($baseParts as $index => $basePart) { + if ($match && isset($parts[$index]) && $basePart === $parts[$index]) { + unset($parts[$index]); + + continue; + } + + $match = false; + $dotDotPrefix .= '../'; + } + + return rtrim($dotDotPrefix.implode('/', $parts), '/'); + } + + /** + * Returns whether the given path is on the local filesystem. + */ + public static function isLocal(string $path): bool + { + return '' !== $path && !str_contains($path, '://'); + } + + /** + * Returns the longest common base path in canonical form of a set of paths or + * `null` if the paths are on different Windows partitions. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/symfony/css/..' + * ); + * // => /symfony + * ``` + * + * The root is returned if no common base path can be found: + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/puli/css/..' + * ); + * // => / + * ``` + * + * If the paths are located on different Windows partitions, `null` is + * returned. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * 'C:/symfony/css/style.css', + * 'D:/symfony/css/..' + * ); + * // => null + * ``` + */ + public static function getLongestCommonBasePath(string ...$paths): ?string + { + [$bpRoot, $basePath] = self::split(self::canonicalize(reset($paths))); + + for (next($paths); null !== key($paths) && '' !== $basePath; next($paths)) { + [$root, $path] = self::split(self::canonicalize(current($paths))); + + // If we deal with different roots (e.g. C:/ vs. D:/), it's time + // to quit + if ($root !== $bpRoot) { + return null; + } + + // Make the base path shorter until it fits into path + while (true) { + if ('.' === $basePath) { + // No more base paths + $basePath = ''; + + // next path + continue 2; + } + + // Prevent false positives for common prefixes + // see isBasePath() + if (str_starts_with($path.'/', $basePath.'/')) { + // next path + continue 2; + } + + $basePath = \dirname($basePath); + } + } + + return $bpRoot.$basePath; + } + + /** + * Joins two or more path strings into a canonical path. + */ + public static function join(string ...$paths): string + { + $finalPath = null; + $wasScheme = false; + + foreach ($paths as $path) { + if ('' === $path) { + continue; + } + + if (null === $finalPath) { + // For first part we keep slashes, like '/top', 'C:\' or 'phar://' + $finalPath = $path; + $wasScheme = str_contains($path, '://'); + continue; + } + + // Only add slash if previous part didn't end with '/' or '\' + if (!\in_array(substr($finalPath, -1), ['/', '\\'])) { + $finalPath .= '/'; + } + + // If first part included a scheme like 'phar://' we allow \current part to start with '/', otherwise trim + $finalPath .= $wasScheme ? $path : ltrim($path, '/'); + $wasScheme = false; + } + + if (null === $finalPath) { + return ''; + } + + return self::canonicalize($finalPath); + } + + /** + * Returns whether a path is a base path of another path. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * Path::isBasePath('/symfony', '/symfony/css'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony/..'); + * // => false + * + * Path::isBasePath('/symfony', '/puli'); + * // => false + * ``` + */ + public static function isBasePath(string $basePath, string $ofPath): bool + { + $basePath = self::canonicalize($basePath); + $ofPath = self::canonicalize($ofPath); + + // Append slashes to prevent false positives when two paths have + // a common prefix, for example /base/foo and /base/foobar. + // Don't append a slash for the root "/", because then that root + // won't be discovered as common prefix ("//" is not a prefix of + // "/foobar/"). + return str_starts_with($ofPath.'/', rtrim($basePath, '/').'/'); + } + + /** + * @return string[] + */ + private static function findCanonicalParts(string $root, string $pathWithoutRoot): array + { + $parts = explode('/', $pathWithoutRoot); + + $canonicalParts = []; + + // Collapse "." and "..", if possible + foreach ($parts as $part) { + if ('.' === $part || '' === $part) { + continue; + } + + // Collapse ".." with the previous part, if one exists + // Don't collapse ".." if the previous part is also ".." + if ('..' === $part && \count($canonicalParts) > 0 && '..' !== $canonicalParts[\count($canonicalParts) - 1]) { + array_pop($canonicalParts); + + continue; + } + + // Only add ".." prefixes for relative paths + if ('..' !== $part || '' === $root) { + $canonicalParts[] = $part; + } + } + + return $canonicalParts; + } + + /** + * Splits a canonical path into its root directory and the remainder. + * + * If the path has no root directory, an empty root directory will be + * returned. + * + * If the root directory is a Windows style partition, the resulting root + * will always contain a trailing slash. + * + * list ($root, $path) = Path::split("C:/symfony") + * // => ["C:/", "symfony"] + * + * list ($root, $path) = Path::split("C:") + * // => ["C:/", ""] + * + * @return array{string, string} an array with the root directory and the remaining relative path + */ + private static function split(string $path): array + { + if ('' === $path) { + return ['', '']; + } + + // Remember scheme as part of the root, if any + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $root = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $root = ''; + } + + $length = \strlen($path); + + // Remove and remember root directory + if (str_starts_with($path, '/')) { + $root .= '/'; + $path = $length > 1 ? substr($path, 1) : ''; + } elseif ($length > 1 && ctype_alpha($path[0]) && ':' === $path[1]) { + if (2 === $length) { + // Windows special case: "C:" + $root .= $path.'/'; + $path = ''; + } elseif ('/' === $path[2]) { + // Windows normal case: "C:/".. + $root .= substr($path, 0, 3); + $path = $length > 3 ? substr($path, 3) : ''; + } + } + + return [$root, $path]; + } + + private static function toLower(string $string): string + { + if (false !== $encoding = mb_detect_encoding($string, null, true)) { + return mb_strtolower($string, $encoding); + } + + return strtolower($string); + } + + private function __construct() + { + } +} diff --git a/vendor/symfony/filesystem/README.md b/vendor/symfony/filesystem/README.md new file mode 100644 index 00000000..f2f6d45f --- /dev/null +++ b/vendor/symfony/filesystem/README.md @@ -0,0 +1,13 @@ +Filesystem Component +==================== + +The Filesystem component provides basic utilities for the filesystem. + +Resources +--------- + + * [Documentation](https://symfony.com/doc/current/components/filesystem.html) + * [Contributing](https://symfony.com/doc/current/contributing/index.html) + * [Report issues](https://github.com/symfony/symfony/issues) and + [send Pull Requests](https://github.com/symfony/symfony/pulls) + in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/symfony/filesystem/composer.json b/vendor/symfony/filesystem/composer.json new file mode 100644 index 00000000..10a7a531 --- /dev/null +++ b/vendor/symfony/filesystem/composer.json @@ -0,0 +1,30 @@ +{ + "name": "symfony/filesystem", + "type": "library", + "description": "Provides basic utilities for the filesystem", + "keywords": [], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "autoload": { + "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "minimum-stability": "dev" +} diff --git a/vendor/vimeo/psalm/LICENSE b/vendor/vimeo/psalm/LICENSE new file mode 100644 index 00000000..bfb2d1c5 --- /dev/null +++ b/vendor/vimeo/psalm/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Vimeo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/vimeo/psalm/composer.json b/vendor/vimeo/psalm/composer.json new file mode 100644 index 00000000..d62c80c2 --- /dev/null +++ b/vendor/vimeo/psalm/composer.json @@ -0,0 +1,139 @@ +{ + "name": "vimeo/psalm", + "type": "library", + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "php", + "code", + "inspection", + "static analysis" + ], + "license": "MIT", + "authors": [ + { + "name": "Matthew Brown" + } + ], + "require": { + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "ext-SimpleXML": "*", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.10.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.2", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.13", + "sebastian/diff": "^4.0 || ^5.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^4.1.6 || ^5.0 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "ext-curl": "*", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^4.4 || ^5.0 || ^6.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5 is required, used to serialize caching data", + "ext-curl": "In order to send data to shepherd" + }, + "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true, + "composer/package-versions-deprecated": true, + "dealerdirect/phpcodesniffer-composer-installer": true + }, + "optimize-autoloader": true, + "sort-packages": true, + "platform-check": true + }, + "extra": { + "branch-alias": { + "dev-master": "5.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "autoload-dev": { + "psr-4": { + "Psalm\\Tests\\": "tests/" + } + }, + "repositories": [ + { + "type": "path", + "url": "examples/plugins/composer-based/echo-checker" + } + ], + "minimum-stability": "dev", + "prefer-stable": true, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "scripts": { + "cs": "phpcs -ps", + "cs-fix": "phpcbf -ps", + "lint": "parallel-lint ./src ./tests", + "phpunit": [ + "Composer\\Config::disableProcessTimeout", + "paratest --runner=WrapperRunner" + ], + "phpunit-std": [ + "Composer\\Config::disableProcessTimeout", + "phpunit" + ], + "verify-callmap": "phpunit tests/Internal/Codebase/InternalCallMapHandlerTest.php", + "psalm": "@php ./psalm", + "psalm-set-baseline": "@php ./psalm --set-baseline=psalm-baseline.xml", + "tests": [ + "@lint", + "@cs", + "@psalm", + "@phpunit" + ] + }, + "scripts-descriptions": { + "cs": "Checks that the code conforms to the coding standard.", + "cs-fix": "Automatically correct coding standard violations.", + "lint": "Runs unit tests.", + "phpunit": "Runs unit tests in parallel.", + "phpunit-std": "Runs unit tests.", + "psalm": "Runs static analysis.", + "tests": "Runs all available tests." + } +} diff --git a/vendor/vimeo/psalm/config.xsd b/vendor/vimeo/psalm/config.xsd new file mode 100644 index 00000000..9d08a678 --- /dev/null +++ b/vendor/vimeo/psalm/config.xsd @@ -0,0 +1,742 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/vimeo/psalm/dictionaries/CallMap.php b/vendor/vimeo/psalm/dictionaries/CallMap.php new file mode 100644 index 00000000..4cc19235 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap.php @@ -0,0 +1,15907 @@ +' => [', ''=>''] + * alternative signature for the same function + * '' => [', ''=>''] + * + * A '&' in front of the means the arg is always passed by reference. + * (i.e. ReflectionParameter->isPassedByReference()) + * This was previously only used in cases where the function actually created the + * variable in the local scope. + * Some reference arguments will have prefixes in to indicate the way the argument is used. + * Currently, the only prefixes with meaning are 'rw_' (read-write) and 'w_' (write). + * Those prefixes don't mean anything for non-references. + * Code using these signatures should remove those prefixes from messages rendered to the user. + * 1. '&rw_' indicates that a parameter with a value is expected to be passed in, and may be modified. + * Phan will warn if the variable has an incompatible type, or is undefined. + * 2. '&w_' indicates that a parameter is expected to be passed in, and the value will be ignored, and may be overwritten. + * 3. The absence of a prefix is treated by Phan the same way as having the prefix 'w_' (Some may be changed to 'rw_name'). These will have prefixes added later. + * + * So, for functions like sort() where technically the arg is by-ref, + * indicate the reference param's signature by-ref and read-write, + * as `'&rw_array'=>'array'` + * so that Phan won't create it in the local scope + * + * However, for a function like preg_match() where the 3rd arg is an array of sub-pattern matches (and optional), + * this arg needs to be marked as by-ref and write-only, as `'&w_matches='=>'array'`. + * + * A '=' following the indicates this arg is optional. + * + * The can begin with '...' to indicate the arg is variadic. + * '...args=' indicates it is both variadic and optional. + * + * Some reference arguments will have prefixes in to indicate the way the argument is used. + * Currently, the only prefixes with meaning are 'rw_' and 'w_'. + * Code using these signatures should remove those prefixes from messages rendered to the user. + * 1. '&rw_name' indicates that a parameter with a value is expected to be passed in, and may be modified. + * 2. '&w_name' indicates that a parameter is expected to be passed in, and the value will be ignored, and may be overwritten. + * + * This file contains the signatures for the most recent minor release of PHP supported by phan (php 7.2) + * + * Changes: + * + * In Phan 0.12.3, + * + * - This started using array shapes for union types (array{...}). + * + * \Phan\Language\UnionType->withFlattenedArrayShapeOrLiteralTypeInstances() may be of help to programmatically convert these to array|array + * + * - This started using array shapes with optional fields for union types (array{key?:int}). + * A `?` after the array shape field's key indicates that the field is optional. + * + * - This started adding param signatures and return signatures to `callable` types. + * E.g. 'usort' => ['bool', '&rw_array_arg'=>'array', 'cmp_function'=>'callable(mixed,mixed):int']. + * See NEWS.md for 0.12.3 for possible syntax. A suffix of `=` within `callable(...)` means that a parameter is optional. + * + * (Phan assumes that callbacks with optional arguments can be cast to callbacks with/without those args (Similar to inheritance checks) + * (e.g. callable(T1,T2=) can be cast to callable(T1) or callable(T1,T2), in the same way that a subclass would check). + * For some signatures, e.g. set_error_handler, this results in repetition, because callable(T1=) can't cast to callable(T1). + * + * Sources of stub info: + * + * 1. Reflection + * 2. docs.php.net's SVN repo or website, and examples (See internal/internalsignatures.php) + * + * See https://secure.php.net/manual/en/copyright.php + * + * The PHP manual text and comments are covered by the [Creative Commons Attribution 3.0 License](http://creativecommons.org/licenses/by/3.0/legalcode), + * copyright (c) the PHP Documentation Group + * 3. Various websites documenting individual extensions + * 4. PHPStorm stubs (For anything missing from the above sources) + * See internal/internalsignatures.php + * + * Available from https://github.com/JetBrains/phpstorm-stubs under the [Apache 2 license](https://www.apache.org/licenses/LICENSE-2.0) + * + * @phan-file-suppress PhanPluginMixedKeyNoKey (read by Phan when analyzing this file) + * + * Note: Some of Phan's inferences about return types are written as plugins for functions/methods where the return type depends on the parameter types. + * E.g. src/Phan/Plugin/Internal/DependentReturnTypeOverridePlugin.php is one plugin + */ +return [ +'_' => ['string', 'message'=>'string'], +'__halt_compiler' => ['void'], +'abs' => ['0|positive-int', 'num'=>'int'], +'abs\'1' => ['float', 'num'=>'float'], +'abs\'2' => ['numeric', 'num'=>'numeric'], +'accelerator_get_configuration' => ['array'], +'accelerator_get_scripts' => ['array'], +'accelerator_get_status' => ['array', 'fetch_scripts'=>'bool'], +'accelerator_reset' => [''], +'accelerator_set_status' => ['void', 'status'=>'bool'], +'acos' => ['float', 'num'=>'float'], +'acosh' => ['float', 'num'=>'float'], +'addcslashes' => ['string', 'string'=>'string', 'characters'=>'string'], +'addslashes' => ['string', 'string'=>'string'], +'AMQPBasicProperties::__construct' => ['void', 'content_type='=>'string', 'content_encoding='=>'string', 'headers='=>'array', 'delivery_mode='=>'int', 'priority='=>'int', 'correlation_id='=>'string', 'reply_to='=>'string', 'expiration='=>'string', 'message_id='=>'string', 'timestamp='=>'int', 'type='=>'string', 'user_id='=>'string', 'app_id='=>'string', 'cluster_id='=>'string'], +'AMQPBasicProperties::getAppId' => ['string'], +'AMQPBasicProperties::getClusterId' => ['string'], +'AMQPBasicProperties::getContentEncoding' => ['string'], +'AMQPBasicProperties::getContentType' => ['string'], +'AMQPBasicProperties::getCorrelationId' => ['string'], +'AMQPBasicProperties::getDeliveryMode' => ['int'], +'AMQPBasicProperties::getExpiration' => ['string'], +'AMQPBasicProperties::getHeaders' => ['array'], +'AMQPBasicProperties::getMessageId' => ['string'], +'AMQPBasicProperties::getPriority' => ['int'], +'AMQPBasicProperties::getReplyTo' => ['string'], +'AMQPBasicProperties::getTimestamp' => ['string'], +'AMQPBasicProperties::getType' => ['string'], +'AMQPBasicProperties::getUserId' => ['string'], +'AMQPChannel::__construct' => ['void', 'amqp_connection'=>'AMQPConnection'], +'AMQPChannel::basicRecover' => ['', 'requeue='=>'bool'], +'AMQPChannel::close' => [''], +'AMQPChannel::commitTransaction' => ['bool'], +'AMQPChannel::confirmSelect' => [''], +'AMQPChannel::getChannelId' => ['int'], +'AMQPChannel::getConnection' => ['AMQPConnection'], +'AMQPChannel::getConsumers' => ['AMQPQueue[]'], +'AMQPChannel::getPrefetchCount' => ['int'], +'AMQPChannel::getPrefetchSize' => ['int'], +'AMQPChannel::isConnected' => ['bool'], +'AMQPChannel::qos' => ['bool', 'size'=>'int', 'count'=>'int'], +'AMQPChannel::rollbackTransaction' => ['bool'], +'AMQPChannel::setConfirmCallback' => ['', 'ack_callback='=>'?callable', 'nack_callback='=>'?callable'], +'AMQPChannel::setPrefetchCount' => ['bool', 'count'=>'int'], +'AMQPChannel::setPrefetchSize' => ['bool', 'size'=>'int'], +'AMQPChannel::setReturnCallback' => ['', 'return_callback='=>'?callable'], +'AMQPChannel::startTransaction' => ['bool'], +'AMQPChannel::waitForBasicReturn' => ['', 'timeout='=>'float'], +'AMQPChannel::waitForConfirm' => ['', 'timeout='=>'float'], +'AMQPConnection::__construct' => ['void', 'credentials='=>'array'], +'AMQPConnection::connect' => ['bool'], +'AMQPConnection::disconnect' => ['bool'], +'AMQPConnection::getCACert' => ['string'], +'AMQPConnection::getCert' => ['string'], +'AMQPConnection::getHeartbeatInterval' => ['int'], +'AMQPConnection::getHost' => ['string'], +'AMQPConnection::getKey' => ['string'], +'AMQPConnection::getLogin' => ['string'], +'AMQPConnection::getMaxChannels' => ['?int'], +'AMQPConnection::getMaxFrameSize' => ['int'], +'AMQPConnection::getPassword' => ['string'], +'AMQPConnection::getPort' => ['int'], +'AMQPConnection::getReadTimeout' => ['float'], +'AMQPConnection::getTimeout' => ['float'], +'AMQPConnection::getUsedChannels' => ['int'], +'AMQPConnection::getVerify' => ['bool'], +'AMQPConnection::getVhost' => ['string'], +'AMQPConnection::getWriteTimeout' => ['float'], +'AMQPConnection::isConnected' => ['bool'], +'AMQPConnection::isPersistent' => ['?bool'], +'AMQPConnection::pconnect' => ['bool'], +'AMQPConnection::pdisconnect' => ['bool'], +'AMQPConnection::preconnect' => ['bool'], +'AMQPConnection::reconnect' => ['bool'], +'AMQPConnection::setCACert' => ['', 'cacert'=>'string'], +'AMQPConnection::setCert' => ['', 'cert'=>'string'], +'AMQPConnection::setHost' => ['bool', 'host'=>'string'], +'AMQPConnection::setKey' => ['', 'key'=>'string'], +'AMQPConnection::setLogin' => ['bool', 'login'=>'string'], +'AMQPConnection::setPassword' => ['bool', 'password'=>'string'], +'AMQPConnection::setPort' => ['bool', 'port'=>'int'], +'AMQPConnection::setReadTimeout' => ['bool', 'timeout'=>'int'], +'AMQPConnection::setTimeout' => ['bool', 'timeout'=>'int'], +'AMQPConnection::setVerify' => ['', 'verify'=>'bool'], +'AMQPConnection::setVhost' => ['bool', 'vhost'=>'string'], +'AMQPConnection::setWriteTimeout' => ['bool', 'timeout'=>'int'], +'AMQPDecimal::__construct' => ['void', 'exponent'=>'', 'significand'=>''], +'AMQPDecimal::getExponent' => ['int'], +'AMQPDecimal::getSignificand' => ['int'], +'AMQPEnvelope::__construct' => ['void'], +'AMQPEnvelope::getAppId' => ['string'], +'AMQPEnvelope::getBody' => ['string'], +'AMQPEnvelope::getClusterId' => ['string'], +'AMQPEnvelope::getConsumerTag' => ['string'], +'AMQPEnvelope::getContentEncoding' => ['string'], +'AMQPEnvelope::getContentType' => ['string'], +'AMQPEnvelope::getCorrelationId' => ['string'], +'AMQPEnvelope::getDeliveryMode' => ['int'], +'AMQPEnvelope::getDeliveryTag' => ['string'], +'AMQPEnvelope::getExchangeName' => ['string'], +'AMQPEnvelope::getExpiration' => ['string'], +'AMQPEnvelope::getHeader' => ['string|false', 'header_key'=>'string'], +'AMQPEnvelope::getHeaders' => ['array'], +'AMQPEnvelope::getMessageId' => ['string'], +'AMQPEnvelope::getPriority' => ['int'], +'AMQPEnvelope::getReplyTo' => ['string'], +'AMQPEnvelope::getRoutingKey' => ['string'], +'AMQPEnvelope::getTimeStamp' => ['string'], +'AMQPEnvelope::getType' => ['string'], +'AMQPEnvelope::getUserId' => ['string'], +'AMQPEnvelope::hasHeader' => ['bool', 'header_key'=>'string'], +'AMQPEnvelope::isRedelivery' => ['bool'], +'AMQPExchange::__construct' => ['void', 'amqp_channel'=>'AMQPChannel'], +'AMQPExchange::bind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], +'AMQPExchange::declareExchange' => ['bool'], +'AMQPExchange::delete' => ['bool', 'exchangeName='=>'string', 'flags='=>'int'], +'AMQPExchange::getArgument' => ['int|string|false', 'key'=>'string'], +'AMQPExchange::getArguments' => ['array'], +'AMQPExchange::getChannel' => ['AMQPChannel'], +'AMQPExchange::getConnection' => ['AMQPConnection'], +'AMQPExchange::getFlags' => ['int'], +'AMQPExchange::getName' => ['string'], +'AMQPExchange::getType' => ['string'], +'AMQPExchange::hasArgument' => ['bool', 'key'=>'string'], +'AMQPExchange::publish' => ['bool', 'message'=>'string', 'routing_key='=>'string', 'flags='=>'int', 'attributes='=>'array'], +'AMQPExchange::setArgument' => ['bool', 'key'=>'string', 'value'=>'int|string'], +'AMQPExchange::setArguments' => ['bool', 'arguments'=>'array'], +'AMQPExchange::setFlags' => ['bool', 'flags'=>'int'], +'AMQPExchange::setName' => ['bool', 'exchange_name'=>'string'], +'AMQPExchange::setType' => ['bool', 'exchange_type'=>'string'], +'AMQPExchange::unbind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], +'AMQPQueue::__construct' => ['void', 'amqp_channel'=>'AMQPChannel'], +'AMQPQueue::ack' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], +'AMQPQueue::bind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], +'AMQPQueue::cancel' => ['bool', 'consumer_tag='=>'string'], +'AMQPQueue::consume' => ['void', 'callback='=>'?callable', 'flags='=>'int', 'consumerTag='=>'string'], +'AMQPQueue::declareQueue' => ['int'], +'AMQPQueue::delete' => ['int', 'flags='=>'int'], +'AMQPQueue::get' => ['AMQPEnvelope|false', 'flags='=>'int'], +'AMQPQueue::getArgument' => ['int|string|false', 'key'=>'string'], +'AMQPQueue::getArguments' => ['array'], +'AMQPQueue::getChannel' => ['AMQPChannel'], +'AMQPQueue::getConnection' => ['AMQPConnection'], +'AMQPQueue::getConsumerTag' => ['?string'], +'AMQPQueue::getFlags' => ['int'], +'AMQPQueue::getName' => ['string'], +'AMQPQueue::hasArgument' => ['bool', 'key'=>'string'], +'AMQPQueue::nack' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], +'AMQPQueue::purge' => ['bool'], +'AMQPQueue::reject' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], +'AMQPQueue::setArgument' => ['bool', 'key'=>'string', 'value'=>'mixed'], +'AMQPQueue::setArguments' => ['bool', 'arguments'=>'array'], +'AMQPQueue::setFlags' => ['bool', 'flags'=>'int'], +'AMQPQueue::setName' => ['bool', 'queue_name'=>'string'], +'AMQPQueue::unbind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], +'AMQPTimestamp::__construct' => ['void', 'timestamp'=>'string'], +'AMQPTimestamp::__toString' => ['string'], +'AMQPTimestamp::getTimestamp' => ['string'], +'apache_child_terminate' => ['bool'], +'apache_get_modules' => ['array'], +'apache_get_version' => ['string|false'], +'apache_getenv' => ['string|false', 'variable'=>'string', 'walk_to_top='=>'bool'], +'apache_lookup_uri' => ['object', 'filename'=>'string'], +'apache_note' => ['string|false', 'note_name'=>'string', 'note_value='=>'string'], +'apache_request_headers' => ['array|false'], +'apache_reset_timeout' => ['bool'], +'apache_response_headers' => ['array|false'], +'apache_setenv' => ['bool', 'variable'=>'string', 'value'=>'string', 'walk_to_top='=>'bool'], +'apc_add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'ttl='=>'int'], +'apc_add\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'apc_bin_dump' => ['string|false|null', 'files='=>'array', 'user_vars='=>'array'], +'apc_bin_dumpfile' => ['int|false', 'files'=>'array', 'user_vars'=>'array', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], +'apc_bin_load' => ['bool', 'data'=>'string', 'flags='=>'int'], +'apc_bin_loadfile' => ['bool', 'filename'=>'string', 'context='=>'resource', 'flags='=>'int'], +'apc_cache_info' => ['array|false', 'cache_type='=>'string', 'limited='=>'bool'], +'apc_cas' => ['bool', 'key'=>'string', 'old'=>'int', 'new'=>'int'], +'apc_clear_cache' => ['bool', 'cache_type='=>'string'], +'apc_compile_file' => ['bool', 'filename'=>'string', 'atomic='=>'bool'], +'apc_dec' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool'], +'apc_define_constants' => ['bool', 'key'=>'string', 'constants'=>'array', 'case_sensitive='=>'bool'], +'apc_delete' => ['bool', 'key'=>'string|string[]|APCIterator'], +'apc_delete_file' => ['bool|string[]', 'keys'=>'mixed'], +'apc_exists' => ['bool', 'keys'=>'string'], +'apc_exists\'1' => ['array', 'keys'=>'string[]'], +'apc_fetch' => ['mixed|false', 'key'=>'string', '&w_success='=>'bool'], +'apc_fetch\'1' => ['array|false', 'key'=>'string[]', '&w_success='=>'bool'], +'apc_inc' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool'], +'apc_load_constants' => ['bool', 'key'=>'string', 'case_sensitive='=>'bool'], +'apc_sma_info' => ['array|false', 'limited='=>'bool'], +'apc_store' => ['bool', 'key'=>'string', 'var'=>'', 'ttl='=>'int'], +'apc_store\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'APCIterator::__construct' => ['void', 'cache'=>'string', 'search='=>'null|string|string[]', 'format='=>'int', 'chunk_size='=>'int', 'list='=>'int'], +'APCIterator::current' => ['mixed|false'], +'APCIterator::getTotalCount' => ['int|false'], +'APCIterator::getTotalHits' => ['int|false'], +'APCIterator::getTotalSize' => ['int|false'], +'APCIterator::key' => ['string'], +'APCIterator::next' => ['void'], +'APCIterator::rewind' => ['void'], +'APCIterator::valid' => ['bool'], +'apcu_add' => ['bool', 'key'=>'string', 'var'=>'', 'ttl='=>'int'], +'apcu_add\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'apcu_cache_info' => ['array|false', 'limited='=>'bool'], +'apcu_cas' => ['bool', 'key'=>'string', 'old'=>'int', 'new'=>'int'], +'apcu_clear_cache' => ['bool'], +'apcu_dec' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool', 'ttl='=>'int'], +'apcu_delete' => ['bool', 'key'=>'string|APCuIterator'], +'apcu_delete\'1' => ['list', 'key'=>'string[]'], +'apcu_enabled' => ['bool'], +'apcu_entry' => ['mixed', 'key'=>'string', 'generator'=>'callable(string):mixed', 'ttl='=>'int'], +'apcu_exists' => ['bool', 'keys'=>'string'], +'apcu_exists\'1' => ['array', 'keys'=>'string[]'], +'apcu_fetch' => ['mixed|false', 'key'=>'string', '&w_success='=>'bool'], +'apcu_fetch\'1' => ['array|false', 'key'=>'string[]', '&w_success='=>'bool'], +'apcu_inc' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool', 'ttl='=>'int'], +'apcu_key_info' => ['?array', 'key'=>'string'], +'apcu_sma_info' => ['array|false', 'limited='=>'bool'], +'apcu_store' => ['bool', 'key'=>'string', 'var='=>'', 'ttl='=>'int'], +'apcu_store\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'APCuIterator::__construct' => ['void', 'search='=>'string|string[]|null', 'format='=>'int', 'chunk_size='=>'int', 'list='=>'int'], +'APCuIterator::current' => ['mixed'], +'APCuIterator::getTotalCount' => ['int'], +'APCuIterator::getTotalHits' => ['int'], +'APCuIterator::getTotalSize' => ['int'], +'APCuIterator::key' => ['string'], +'APCuIterator::next' => ['void'], +'APCuIterator::rewind' => ['void'], +'APCuIterator::valid' => ['bool'], +'apd_breakpoint' => ['bool', 'debug_level'=>'int'], +'apd_callstack' => ['array'], +'apd_clunk' => ['void', 'warning'=>'string', 'delimiter='=>'string'], +'apd_continue' => ['bool', 'debug_level'=>'int'], +'apd_croak' => ['void', 'warning'=>'string', 'delimiter='=>'string'], +'apd_dump_function_table' => ['void'], +'apd_dump_persistent_resources' => ['array'], +'apd_dump_regular_resources' => ['array'], +'apd_echo' => ['bool', 'output'=>'string'], +'apd_get_active_symbols' => ['array'], +'apd_set_pprof_trace' => ['string', 'dump_directory='=>'string', 'fragment='=>'string'], +'apd_set_session' => ['void', 'debug_level'=>'int'], +'apd_set_session_trace' => ['void', 'debug_level'=>'int', 'dump_directory='=>'string'], +'apd_set_session_trace_socket' => ['bool', 'tcp_server'=>'string', 'socket_type'=>'int', 'port'=>'int', 'debug_level'=>'int'], +'AppendIterator::__construct' => ['void'], +'AppendIterator::append' => ['void', 'iterator'=>'Iterator'], +'AppendIterator::current' => ['mixed'], +'AppendIterator::getArrayIterator' => ['ArrayIterator'], +'AppendIterator::getInnerIterator' => ['Iterator'], +'AppendIterator::getIteratorIndex' => ['int'], +'AppendIterator::key' => ['int|string|float|bool'], +'AppendIterator::next' => ['void'], +'AppendIterator::rewind' => ['void'], +'AppendIterator::valid' => ['bool'], +'ArgumentCountError::__clone' => ['void'], +'ArgumentCountError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'ArgumentCountError::__toString' => ['string'], +'ArgumentCountError::__wakeup' => ['void'], +'ArgumentCountError::getCode' => ['int'], +'ArgumentCountError::getFile' => ['string'], +'ArgumentCountError::getLine' => ['int'], +'ArgumentCountError::getMessage' => ['string'], +'ArgumentCountError::getPrevious' => ['?Throwable'], +'ArgumentCountError::getTrace' => ['list\',args?:array}>'], +'ArgumentCountError::getTraceAsString' => ['string'], +'ArithmeticError::__clone' => ['void'], +'ArithmeticError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'ArithmeticError::__toString' => ['string'], +'ArithmeticError::__wakeup' => ['void'], +'ArithmeticError::getCode' => ['int'], +'ArithmeticError::getFile' => ['string'], +'ArithmeticError::getLine' => ['int'], +'ArithmeticError::getMessage' => ['string'], +'ArithmeticError::getPrevious' => ['?Throwable'], +'ArithmeticError::getTrace' => ['list\',args?:array}>'], +'ArithmeticError::getTraceAsString' => ['string'], +'array_change_key_case' => ['associative-array', 'array'=>'array', 'case='=>'int'], +'array_chunk' => ['list', 'array'=>'array', 'length'=>'int', 'preserve_keys='=>'bool'], +'array_column' => ['array', 'array'=>'array', 'column_key'=>'int|string|null', 'index_key='=>'int|string|null'], +'array_combine' => ['associative-array', 'keys'=>'string[]|int[]', 'values'=>'array'], +'array_count_values' => ['associative-array', 'array'=>'array'], +'array_diff' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_diff_assoc' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_diff_key' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_diff_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int'], +'array_diff_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_diff_ukey' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_comp_func'=>'callable(mixed,mixed):int'], +'array_diff_ukey\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_fill' => ['array', 'start_index'=>'int', 'count'=>'int', 'value'=>'mixed'], +'array_fill_keys' => ['array', 'keys'=>'array', 'value'=>'mixed'], +'array_filter' => ['associative-array', 'array'=>'array', 'callback='=>'callable(mixed,mixed=):scalar|null', 'mode='=>'int'], +'array_flip' => ['associative-array|associative-array', 'array'=>'array'], +'array_intersect' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_intersect_assoc' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_intersect_key' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], +'array_intersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_compare_func'=>'callable(mixed,mixed):int'], +'array_intersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest'=>'array|callable(mixed,mixed):int'], +'array_intersect_ukey' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_compare_func'=>'callable(mixed,mixed):int'], +'array_intersect_ukey\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest'=>'array|callable(mixed,mixed):int'], +'array_is_list' => ['bool', 'array'=>'array'], +'array_key_exists' => ['bool', 'key'=>'string|int', 'array'=>'array'], +'array_key_first' => ['int|string|null', 'array'=>'array'], +'array_key_last' => ['int|string|null', 'array'=>'array'], +'array_keys' => ['list', 'array'=>'array', 'filter_value='=>'mixed', 'strict='=>'bool'], +'array_map' => ['array', 'callback'=>'?callable', 'array'=>'array', '...arrays='=>'array'], +'array_merge' => ['array', '...arrays='=>'array'], +'array_merge_recursive' => ['array', '...arrays='=>'array'], +'array_multisort' => ['bool', '&rw_array'=>'array', 'rest='=>'array|int', 'array1_sort_flags='=>'array|int', '...args='=>'array|int'], +'array_pad' => ['array', 'array'=>'array', 'length'=>'int', 'value'=>'mixed'], +'array_pop' => ['mixed', '&rw_array'=>'array'], +'array_product' => ['int|float', 'array'=>'array'], +'array_push' => ['int', '&rw_array'=>'array', '...values='=>'mixed'], +'array_rand' => ['int|string|array|array', 'array'=>'non-empty-array', 'num'=>'int'], +'array_rand\'1' => ['int|string', 'array'=>'array'], +'array_reduce' => ['mixed', 'array'=>'array', 'callback'=>'callable(mixed,mixed):mixed', 'initial='=>'mixed'], +'array_replace' => ['array', 'array'=>'array', '...replacements='=>'array'], +'array_replace_recursive' => ['array', 'array'=>'array', '...replacements='=>'array'], +'array_reverse' => ['array', 'array'=>'array', 'preserve_keys='=>'bool'], +'array_search' => ['int|string|false', 'needle'=>'mixed', 'haystack'=>'array', 'strict='=>'bool'], +'array_shift' => ['mixed|null', '&rw_array'=>'array'], +'array_slice' => ['array', 'array'=>'array', 'offset'=>'int', 'length='=>'?int', 'preserve_keys='=>'bool'], +'array_splice' => ['array', '&rw_array'=>'array', 'offset'=>'int', 'length='=>'?int', 'replacement='=>'array|string'], +'array_sum' => ['int|float', 'array'=>'array'], +'array_udiff' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int'], +'array_udiff\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_udiff_assoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_comp_func'=>'callable(mixed,mixed):int'], +'array_udiff_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_udiff_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int', 'key_comp_func'=>'callable(mixed,mixed):int'], +'array_udiff_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_uintersect' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int'], +'array_uintersect\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_uintersect_assoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int'], +'array_uintersect_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable', '...rest='=>'array|callable(mixed,mixed):int'], +'array_uintersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int', 'key_compare_func'=>'callable(mixed,mixed):int'], +'array_uintersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], +'array_unique' => ['array', 'array'=>'array', 'flags='=>'0'], +'array_unique\'1' => ['array', 'array'=>'array', 'flags='=>'1'], +'array_unique\'2' => ['array', 'array'=>'array', 'flags='=>'2|5'], +'array_unshift' => ['int', '&rw_array'=>'array', '...values='=>'mixed'], +'array_values' => ['list', 'array'=>'array'], +'array_walk' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'], +'array_walk\'1' => ['bool', '&rw_array'=>'object', 'callback'=>'callable', 'arg='=>'mixed'], +'array_walk_recursive' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'], +'array_walk_recursive\'1' => ['bool', '&rw_array'=>'object', 'callback'=>'callable', 'arg='=>'mixed'], +'ArrayAccess::offsetExists' => ['bool', 'offset'=>'mixed'], +'ArrayAccess::offsetGet' => ['mixed', 'offset'=>'mixed'], +'ArrayAccess::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'ArrayAccess::offsetUnset' => ['void', 'offset'=>'mixed'], +'ArrayIterator::__construct' => ['void', 'array='=>'array|object', 'flags='=>'int'], +'ArrayIterator::append' => ['void', 'value'=>'mixed'], +'ArrayIterator::asort' => ['void'], +'ArrayIterator::count' => ['int'], +'ArrayIterator::current' => ['mixed'], +'ArrayIterator::getArrayCopy' => ['array'], +'ArrayIterator::getFlags' => ['int'], +'ArrayIterator::key' => ['int|string|null'], +'ArrayIterator::ksort' => ['void'], +'ArrayIterator::natcasesort' => ['true'], +'ArrayIterator::natsort' => ['true'], +'ArrayIterator::next' => ['void'], +'ArrayIterator::offsetExists' => ['bool', 'index'=>'string|int'], +'ArrayIterator::offsetGet' => ['mixed', 'index'=>'string|int'], +'ArrayIterator::offsetSet' => ['void', 'index'=>'string|int', 'newval'=>'mixed'], +'ArrayIterator::offsetUnset' => ['void', 'index'=>'string|int'], +'ArrayIterator::rewind' => ['void'], +'ArrayIterator::seek' => ['void', 'position'=>'int'], +'ArrayIterator::serialize' => ['string'], +'ArrayIterator::setFlags' => ['void', 'flags'=>'string'], +'ArrayIterator::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'ArrayIterator::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'ArrayIterator::unserialize' => ['void', 'serialized'=>'string'], +'ArrayIterator::valid' => ['bool'], +'ArrayObject::__construct' => ['void', 'input='=>'array|object', 'flags='=>'int', 'iterator_class='=>'string'], +'ArrayObject::append' => ['void', 'value'=>'mixed'], +'ArrayObject::asort' => ['void'], +'ArrayObject::count' => ['int'], +'ArrayObject::exchangeArray' => ['array', 'ar'=>'mixed'], +'ArrayObject::getArrayCopy' => ['array'], +'ArrayObject::getFlags' => ['int'], +'ArrayObject::getIterator' => ['ArrayIterator'], +'ArrayObject::getIteratorClass' => ['string'], +'ArrayObject::ksort' => ['void'], +'ArrayObject::natcasesort' => ['true'], +'ArrayObject::natsort' => ['true'], +'ArrayObject::offsetExists' => ['bool', 'index'=>'int|string'], +'ArrayObject::offsetGet' => ['mixed|null', 'index'=>'int|string'], +'ArrayObject::offsetSet' => ['void', 'index'=>'int|string', 'newval'=>'mixed'], +'ArrayObject::offsetUnset' => ['void', 'index'=>'int|string'], +'ArrayObject::serialize' => ['string'], +'ArrayObject::setFlags' => ['void', 'flags'=>'int'], +'ArrayObject::setIteratorClass' => ['void', 'iterator_class'=>'string'], +'ArrayObject::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'ArrayObject::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'ArrayObject::unserialize' => ['void', 'serialized'=>'string'], +'arsort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], +'asin' => ['float', 'num'=>'float'], +'asinh' => ['float', 'num'=>'float'], +'asort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], +'assert' => ['bool', 'assertion'=>'string|bool|int', 'description='=>'string|Throwable|null'], +'assert_options' => ['mixed|false', 'option'=>'int', 'value='=>'mixed'], +'ast\get_kind_name' => ['string', 'kind'=>'int'], +'ast\get_metadata' => ['array'], +'ast\get_supported_versions' => ['array', 'exclude_deprecated='=>'bool'], +'ast\kind_uses_flags' => ['bool', 'kind'=>'int'], +'ast\Node::__construct' => ['void', 'kind='=>'int', 'flags='=>'int', 'children='=>'ast\Node\Decl[]|ast\Node[]|int[]|string[]|float[]|bool[]|null[]', 'start_line='=>'int'], +'ast\parse_code' => ['ast\Node', 'code'=>'string', 'version'=>'int', 'filename='=>'string'], +'ast\parse_file' => ['ast\Node', 'filename'=>'string', 'version'=>'int'], +'atan' => ['float', 'num'=>'float'], +'atan2' => ['float', 'y'=>'float', 'x'=>'float'], +'atanh' => ['float', 'num'=>'float'], +'BadFunctionCallException::__clone' => ['void'], +'BadFunctionCallException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'BadFunctionCallException::__toString' => ['string'], +'BadFunctionCallException::getCode' => ['int'], +'BadFunctionCallException::getFile' => ['string'], +'BadFunctionCallException::getLine' => ['int'], +'BadFunctionCallException::getMessage' => ['string'], +'BadFunctionCallException::getPrevious' => ['?Throwable'], +'BadFunctionCallException::getTrace' => ['list\',args?:array}>'], +'BadFunctionCallException::getTraceAsString' => ['string'], +'BadMethodCallException::__clone' => ['void'], +'BadMethodCallException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'BadMethodCallException::__toString' => ['string'], +'BadMethodCallException::getCode' => ['int'], +'BadMethodCallException::getFile' => ['string'], +'BadMethodCallException::getLine' => ['int'], +'BadMethodCallException::getMessage' => ['string'], +'BadMethodCallException::getPrevious' => ['?Throwable'], +'BadMethodCallException::getTrace' => ['list\',args?:array}>'], +'BadMethodCallException::getTraceAsString' => ['string'], +'base64_decode' => ['string|false', 'string'=>'string', 'strict='=>'bool'], +'base64_encode' => ['string', 'string'=>'string'], +'base_convert' => ['string', 'num'=>'string', 'from_base'=>'int', 'to_base'=>'int'], +'basename' => ['string', 'path'=>'string', 'suffix='=>'string'], +'bbcode_add_element' => ['bool', 'bbcode_container'=>'resource', 'tag_name'=>'string', 'tag_rules'=>'array'], +'bbcode_add_smiley' => ['bool', 'bbcode_container'=>'resource', 'smiley'=>'string', 'replace_by'=>'string'], +'bbcode_create' => ['resource', 'bbcode_initial_tags='=>'array'], +'bbcode_destroy' => ['bool', 'bbcode_container'=>'resource'], +'bbcode_parse' => ['string', 'bbcode_container'=>'resource', 'to_parse'=>'string'], +'bbcode_set_arg_parser' => ['bool', 'bbcode_container'=>'resource', 'bbcode_arg_parser'=>'resource'], +'bbcode_set_flags' => ['bool', 'bbcode_container'=>'resource', 'flags'=>'int', 'mode='=>'int'], +'bcadd' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bccomp' => ['int', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bcdiv' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bcmod' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bcmul' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bcompiler_load' => ['bool', 'filename'=>'string'], +'bcompiler_load_exe' => ['bool', 'filename'=>'string'], +'bcompiler_parse_class' => ['bool', 'class'=>'string', 'callback'=>'string'], +'bcompiler_read' => ['bool', 'filehandle'=>'resource'], +'bcompiler_write_class' => ['bool', 'filehandle'=>'resource', 'classname'=>'string', 'extends='=>'string'], +'bcompiler_write_constant' => ['bool', 'filehandle'=>'resource', 'constantname'=>'string'], +'bcompiler_write_exe_footer' => ['bool', 'filehandle'=>'resource', 'startpos'=>'int'], +'bcompiler_write_file' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], +'bcompiler_write_footer' => ['bool', 'filehandle'=>'resource'], +'bcompiler_write_function' => ['bool', 'filehandle'=>'resource', 'functionname'=>'string'], +'bcompiler_write_functions_from_file' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], +'bcompiler_write_header' => ['bool', 'filehandle'=>'resource', 'write_ver='=>'string'], +'bcompiler_write_included_filename' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], +'bcpow' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'scale='=>'int|null'], +'bcpowmod' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'modulus'=>'numeric-string', 'scale='=>'int|null'], +'bcscale' => ['int', 'scale='=>'int|null'], +'bcsqrt' => ['numeric-string', 'num'=>'numeric-string', 'scale='=>'int|null'], +'bcsub' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], +'bin2hex' => ['string', 'string'=>'string'], +'bind_textdomain_codeset' => ['string', 'domain'=>'string', 'codeset'=>'?string'], +'bindec' => ['float|int', 'binary_string'=>'string'], +'bindtextdomain' => ['string', 'domain'=>'string', 'directory'=>'?string'], +'birdstep_autocommit' => ['bool', 'index'=>'int'], +'birdstep_close' => ['bool', 'id'=>'int'], +'birdstep_commit' => ['bool', 'index'=>'int'], +'birdstep_connect' => ['int', 'server'=>'string', 'user'=>'string', 'pass'=>'string'], +'birdstep_exec' => ['int', 'index'=>'int', 'exec_str'=>'string'], +'birdstep_fetch' => ['bool', 'index'=>'int'], +'birdstep_fieldname' => ['string', 'index'=>'int', 'col'=>'int'], +'birdstep_fieldnum' => ['int', 'index'=>'int'], +'birdstep_freeresult' => ['bool', 'index'=>'int'], +'birdstep_off_autocommit' => ['bool', 'index'=>'int'], +'birdstep_result' => ['', 'index'=>'int', 'col'=>''], +'birdstep_rollback' => ['bool', 'index'=>'int'], +'blenc_encrypt' => ['string', 'plaintext'=>'string', 'encodedfile'=>'string', 'encryption_key='=>'string'], +'boolval' => ['bool', 'value'=>'mixed'], +'bson_decode' => ['array', 'bson'=>'string'], +'bson_encode' => ['string', 'anything'=>'mixed'], +'bzclose' => ['bool', 'bz'=>'resource'], +'bzcompress' => ['string|int', 'data'=>'string', 'block_size='=>'int', 'work_factor='=>'int'], +'bzdecompress' => ['string|int|false', 'data'=>'string', 'use_less_memory='=>'bool'], +'bzerrno' => ['int', 'bz'=>'resource'], +'bzerror' => ['array', 'bz'=>'resource'], +'bzerrstr' => ['string', 'bz'=>'resource'], +'bzflush' => ['bool', 'bz'=>'resource'], +'bzopen' => ['resource|false', 'file'=>'string|resource', 'mode'=>'string'], +'bzread' => ['string|false', 'bz'=>'resource', 'length='=>'int'], +'bzwrite' => ['int|false', 'bz'=>'resource', 'data'=>'string', 'length='=>'?int'], +'CachingIterator::__construct' => ['void', 'iterator'=>'Iterator', 'flags='=>''], +'CachingIterator::__toString' => ['string'], +'CachingIterator::count' => ['int'], +'CachingIterator::current' => ['mixed'], +'CachingIterator::getCache' => ['array'], +'CachingIterator::getFlags' => ['int'], +'CachingIterator::getInnerIterator' => ['Iterator'], +'CachingIterator::hasNext' => ['bool'], +'CachingIterator::key' => ['int|string|float|bool'], +'CachingIterator::next' => ['void'], +'CachingIterator::offsetExists' => ['bool', 'index'=>'string'], +'CachingIterator::offsetGet' => ['mixed', 'index'=>'string'], +'CachingIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'mixed'], +'CachingIterator::offsetUnset' => ['void', 'index'=>'string'], +'CachingIterator::rewind' => ['void'], +'CachingIterator::setFlags' => ['void', 'flags'=>'int'], +'CachingIterator::valid' => ['bool'], +'cal_days_in_month' => ['int', 'calendar'=>'int', 'month'=>'int', 'year'=>'int'], +'cal_from_jd' => ['array{date:string,month:int,day:int,year:int,dow:int,abbrevdayname:string,dayname:string,abbrevmonth:string,monthname:string}', 'julian_day'=>'int', 'calendar'=>'int'], +'cal_info' => ['array', 'calendar='=>'int'], +'cal_to_jd' => ['int', 'calendar'=>'int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'calcul_hmac' => ['string', 'clent'=>'string', 'siretcode'=>'string', 'price'=>'string', 'reference'=>'string', 'validity'=>'string', 'taxation'=>'string', 'devise'=>'string', 'language'=>'string'], +'calculhmac' => ['string', 'clent'=>'string', 'data'=>'string'], +'call_user_func' => ['mixed|false', 'callback'=>'callable', '...args='=>'mixed'], +'call_user_func_array' => ['mixed|false', 'callback'=>'callable', 'args'=>'list'], +'call_user_method' => ['mixed', 'method_name'=>'string', 'object'=>'object', 'parameter='=>'mixed', '...args='=>'mixed'], +'call_user_method_array' => ['mixed', 'method_name'=>'string', 'object'=>'object', 'params'=>'list'], +'CallbackFilterIterator::__construct' => ['void', 'iterator'=>'Iterator', 'func'=>'callable(mixed):bool|callable(mixed,mixed):bool|callable(mixed,mixed,mixed):bool'], +'CallbackFilterIterator::accept' => ['bool'], +'CallbackFilterIterator::current' => ['mixed'], +'CallbackFilterIterator::getInnerIterator' => ['Iterator'], +'CallbackFilterIterator::key' => ['mixed'], +'CallbackFilterIterator::next' => ['void'], +'CallbackFilterIterator::rewind' => ['void'], +'CallbackFilterIterator::valid' => ['bool'], +'ceil' => ['float', 'num'=>'float'], +'chdb::__construct' => ['void', 'pathname'=>'string'], +'chdb::get' => ['string', 'key'=>'string'], +'chdb_create' => ['bool', 'pathname'=>'string', 'data'=>'array'], +'chdir' => ['bool', 'directory'=>'string'], +'checkdate' => ['bool', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'checkdnsrr' => ['bool', 'hostname'=>'string', 'type='=>'string'], +'chgrp' => ['bool', 'filename'=>'string', 'group'=>'string|int'], +'chmod' => ['bool', 'filename'=>'string', 'permissions'=>'int'], +'chop' => ['string', 'string'=>'string', 'characters='=>'string'], +'chown' => ['bool', 'filename'=>'string', 'user'=>'string|int'], +'chr' => ['non-empty-string', 'codepoint'=>'int'], +'chroot' => ['bool', 'directory'=>'string'], +'chunk_split' => ['string', 'string'=>'string', 'length='=>'int', 'separator='=>'string'], +'class_alias' => ['bool', 'class'=>'string', 'alias'=>'string', 'autoload='=>'bool'], +'class_exists' => ['bool', 'class'=>'string', 'autoload='=>'bool'], +'class_implements' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], +'class_parents' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], +'class_uses' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], +'classkit_import' => ['array', 'filename'=>'string'], +'classkit_method_add' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int'], +'classkit_method_copy' => ['bool', 'dclass'=>'string', 'dmethod'=>'string', 'sclass'=>'string', 'smethod='=>'string'], +'classkit_method_redefine' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int'], +'classkit_method_remove' => ['bool', 'classname'=>'string', 'methodname'=>'string'], +'classkit_method_rename' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'newname'=>'string'], +'classObj::__construct' => ['void', 'layer'=>'layerObj', 'class'=>'classObj'], +'classObj::addLabel' => ['int', 'label'=>'labelObj'], +'classObj::convertToString' => ['string'], +'classObj::createLegendIcon' => ['imageObj', 'width'=>'int', 'height'=>'int'], +'classObj::deletestyle' => ['int', 'index'=>'int'], +'classObj::drawLegendIcon' => ['int', 'width'=>'int', 'height'=>'int', 'im'=>'imageObj', 'dstX'=>'int', 'dstY'=>'int'], +'classObj::free' => ['void'], +'classObj::getExpressionString' => ['string'], +'classObj::getLabel' => ['labelObj', 'index'=>'int'], +'classObj::getMetaData' => ['int', 'name'=>'string'], +'classObj::getStyle' => ['styleObj', 'index'=>'int'], +'classObj::getTextString' => ['string'], +'classObj::movestyledown' => ['int', 'index'=>'int'], +'classObj::movestyleup' => ['int', 'index'=>'int'], +'classObj::ms_newClassObj' => ['classObj', 'layer'=>'layerObj', 'class'=>'classObj'], +'classObj::removeLabel' => ['labelObj', 'index'=>'int'], +'classObj::removeMetaData' => ['int', 'name'=>'string'], +'classObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'classObj::setExpression' => ['int', 'expression'=>'string'], +'classObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], +'classObj::settext' => ['int', 'text'=>'string'], +'classObj::updateFromString' => ['int', 'snippet'=>'string'], +'clearstatcache' => ['void', 'clear_realpath_cache='=>'bool', 'filename='=>'string'], +'cli_get_process_title' => ['?string'], +'cli_set_process_title' => ['bool', 'title'=>'string'], +'ClosedGeneratorException::__clone' => ['void'], +'ClosedGeneratorException::__toString' => ['string'], +'ClosedGeneratorException::getCode' => ['int'], +'ClosedGeneratorException::getFile' => ['string'], +'ClosedGeneratorException::getLine' => ['int'], +'ClosedGeneratorException::getMessage' => ['string'], +'ClosedGeneratorException::getPrevious' => ['?Throwable'], +'ClosedGeneratorException::getTrace' => ['list\',args?:array}>'], +'ClosedGeneratorException::getTraceAsString' => ['string'], +'closedir' => ['void', 'dir_handle='=>'resource'], +'closelog' => ['true'], +'Closure::__construct' => ['void'], +'Closure::__invoke' => ['', '...args='=>''], +'Closure::bind' => ['?Closure', 'closure'=>'Closure', 'newThis'=>'?object', 'newScope='=>'object|string|null'], +'Closure::bindTo' => ['?Closure', 'newThis'=>'?object', 'newScope='=>'object|string|null'], +'Closure::call' => ['mixed', 'newThis'=>'object', '...args='=>'mixed'], +'Closure::fromCallable' => ['Closure', 'callback'=>'callable'], +'clusterObj::convertToString' => ['string'], +'clusterObj::getFilterString' => ['string'], +'clusterObj::getGroupString' => ['string'], +'clusterObj::setFilter' => ['int', 'expression'=>'string'], +'clusterObj::setGroup' => ['int', 'expression'=>'string'], +'Collator::__construct' => ['void', 'locale'=>'string'], +'Collator::asort' => ['bool', '&rw_arr'=>'array', 'sort_flag='=>'int'], +'Collator::compare' => ['int|false', 'string1'=>'string', 'string2'=>'string'], +'Collator::create' => ['?Collator', 'locale'=>'string'], +'Collator::getAttribute' => ['int|false', 'attr'=>'int'], +'Collator::getErrorCode' => ['int'], +'Collator::getErrorMessage' => ['string'], +'Collator::getLocale' => ['string', 'type'=>'int'], +'Collator::getSortKey' => ['string|false', 'string'=>'string'], +'Collator::getStrength' => ['int'], +'Collator::setAttribute' => ['bool', 'attr'=>'int', 'value'=>'int'], +'Collator::setStrength' => ['bool', 'strength'=>'int'], +'Collator::sort' => ['bool', '&rw_arr'=>'array', 'sort_flags='=>'int'], +'Collator::sortWithSortKeys' => ['bool', '&rw_arr'=>'array'], +'collator_asort' => ['bool', 'object'=>'collator', '&rw_array'=>'array', 'flags='=>'int'], +'collator_compare' => ['int', 'object'=>'collator', 'string1'=>'string', 'string2'=>'string'], +'collator_create' => ['?Collator', 'locale'=>'string'], +'collator_get_attribute' => ['int|false', 'object'=>'collator', 'attribute'=>'int'], +'collator_get_error_code' => ['int', 'object'=>'collator'], +'collator_get_error_message' => ['string', 'object'=>'collator'], +'collator_get_locale' => ['string', 'object'=>'collator', 'type'=>'int'], +'collator_get_sort_key' => ['string', 'object'=>'collator', 'string'=>'string'], +'collator_get_strength' => ['int', 'object'=>'collator'], +'collator_set_attribute' => ['bool', 'object'=>'collator', 'attribute'=>'int', 'value'=>'int'], +'collator_set_strength' => ['bool', 'object'=>'collator', 'strength'=>'int'], +'collator_sort' => ['bool', 'object'=>'collator', '&rw_array'=>'array', 'flags='=>'int'], +'collator_sort_with_sort_keys' => ['bool', 'object'=>'collator', '&rw_array'=>'array'], +'Collectable::isGarbage' => ['bool'], +'Collectable::setGarbage' => ['void'], +'colorObj::setHex' => ['int', 'hex'=>'string'], +'colorObj::toHex' => ['string'], +'COM::__call' => ['', 'name'=>'', 'args'=>''], +'COM::__construct' => ['void', 'module_name'=>'string', 'server_name='=>'mixed', 'codepage='=>'int', 'typelib='=>'string'], +'COM::__get' => ['', 'name'=>''], +'COM::__set' => ['void', 'name'=>'', 'value'=>''], +'com_addref' => [''], +'com_create_guid' => ['string'], +'com_event_sink' => ['bool', 'variant'=>'VARIANT', 'sink_object'=>'object', 'sink_interface='=>'mixed'], +'com_get_active_object' => ['VARIANT', 'prog_id'=>'string', 'codepage='=>'int'], +'com_isenum' => ['bool', 'com_module'=>'variant'], +'com_load_typelib' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'true'], +'com_message_pump' => ['bool', 'timeout_milliseconds='=>'int'], +'com_print_typeinfo' => ['bool', 'variant'=>'object', 'dispatch_interface='=>'string', 'display_sink='=>'bool'], +'commonmark\cql::__invoke' => ['', 'root'=>'CommonMark\Node', 'handler'=>'callable'], +'commonmark\interfaces\ivisitable::accept' => ['void', 'visitor'=>'CommonMark\Interfaces\IVisitor'], +'commonmark\interfaces\ivisitor::enter' => ['?int|IVisitable', 'visitable'=>'IVisitable'], +'commonmark\interfaces\ivisitor::leave' => ['?int|IVisitable', 'visitable'=>'IVisitable'], +'commonmark\node::accept' => ['void', 'visitor'=>'CommonMark\Interfaces\IVisitor'], +'commonmark\node::appendChild' => ['CommonMark\Node', 'child'=>'CommonMark\Node'], +'commonmark\node::insertAfter' => ['CommonMark\Node', 'sibling'=>'CommonMark\Node'], +'commonmark\node::insertBefore' => ['CommonMark\Node', 'sibling'=>'CommonMark\Node'], +'commonmark\node::prependChild' => ['CommonMark\Node', 'child'=>'CommonMark\Node'], +'commonmark\node::replace' => ['CommonMark\Node', 'target'=>'CommonMark\Node'], +'commonmark\node::unlink' => ['void'], +'commonmark\parse' => ['CommonMark\Node', 'content'=>'string', 'options='=>'int'], +'commonmark\parser::finish' => ['CommonMark\Node'], +'commonmark\parser::parse' => ['void', 'buffer'=>'string'], +'commonmark\render' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], +'commonmark\render\html' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int'], +'commonmark\render\latex' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], +'commonmark\render\man' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], +'commonmark\render\xml' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int'], +'compact' => ['array', 'var_name'=>'string|array', '...var_names='=>'string|array'], +'COMPersistHelper::__construct' => ['void', 'variant'=>'object'], +'COMPersistHelper::GetCurFile' => ['string'], +'COMPersistHelper::GetCurFileName' => ['string'], +'COMPersistHelper::GetMaxStreamSize' => ['int'], +'COMPersistHelper::InitNew' => ['int'], +'COMPersistHelper::LoadFromFile' => ['bool', 'filename'=>'string', 'flags'=>'int'], +'COMPersistHelper::LoadFromStream' => ['', 'stream'=>''], +'COMPersistHelper::SaveToFile' => ['bool', 'filename'=>'string', 'remember'=>'bool'], +'COMPersistHelper::SaveToStream' => ['int', 'stream'=>''], +'componere\abstract\definition::addInterface' => ['Componere\Abstract\Definition', 'interface'=>'string'], +'componere\abstract\definition::addMethod' => ['Componere\Abstract\Definition', 'name'=>'string', 'method'=>'Componere\Method'], +'componere\abstract\definition::addTrait' => ['Componere\Abstract\Definition', 'trait'=>'string'], +'componere\abstract\definition::getReflector' => ['ReflectionClass'], +'componere\cast' => ['object', 'arg1'=>'string', 'object'=>'object'], +'componere\cast_by_ref' => ['object', 'arg1'=>'string', 'object'=>'object'], +'componere\definition::addConstant' => ['Componere\Definition', 'name'=>'string', 'value'=>'Componere\Value'], +'componere\definition::addProperty' => ['Componere\Definition', 'name'=>'string', 'value'=>'Componere\Value'], +'componere\definition::getClosure' => ['Closure', 'name'=>'string'], +'componere\definition::getClosures' => ['Closure[]'], +'componere\definition::isRegistered' => ['bool'], +'componere\definition::register' => ['void'], +'componere\method::getReflector' => ['ReflectionMethod'], +'componere\method::setPrivate' => ['Method'], +'componere\method::setProtected' => ['Method'], +'componere\method::setStatic' => ['Method'], +'componere\patch::apply' => ['void'], +'componere\patch::derive' => ['Componere\Patch', 'instance'=>'object'], +'componere\patch::getClosure' => ['Closure', 'name'=>'string'], +'componere\patch::getClosures' => ['Closure[]'], +'componere\patch::isApplied' => ['bool'], +'componere\patch::revert' => ['void'], +'componere\value::hasDefault' => ['bool'], +'componere\value::isPrivate' => ['bool'], +'componere\value::isProtected' => ['bool'], +'componere\value::isStatic' => ['bool'], +'componere\value::setPrivate' => ['Value'], +'componere\value::setProtected' => ['Value'], +'componere\value::setStatic' => ['Value'], +'Cond::broadcast' => ['bool', 'condition'=>'long'], +'Cond::create' => ['long'], +'Cond::destroy' => ['bool', 'condition'=>'long'], +'Cond::signal' => ['bool', 'condition'=>'long'], +'Cond::wait' => ['bool', 'condition'=>'long', 'mutex'=>'long', 'timeout='=>'long'], +'confirm_pdo_ibm_compiled' => [''], +'connection_aborted' => ['int'], +'connection_status' => ['int'], +'connection_timeout' => ['int'], +'constant' => ['mixed', 'name'=>'string'], +'convert_cyr_string' => ['string', 'string'=>'string', 'from'=>'string', 'to'=>'string'], +'convert_uudecode' => ['string', 'string'=>'string'], +'convert_uuencode' => ['string', 'string'=>'string'], +'copy' => ['bool', 'from'=>'string', 'to'=>'string', 'context='=>'resource'], +'cos' => ['float', 'num'=>'float'], +'cosh' => ['float', 'num'=>'float'], +'Couchbase\AnalyticsQuery::__construct' => ['void'], +'Couchbase\AnalyticsQuery::fromString' => ['Couchbase\AnalyticsQuery', 'statement'=>'string'], +'Couchbase\basicDecoderV1' => ['mixed', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int', 'options'=>'array'], +'Couchbase\basicEncoderV1' => ['array', 'value'=>'mixed', 'options'=>'array'], +'Couchbase\BooleanFieldSearchQuery::__construct' => ['void'], +'Couchbase\BooleanFieldSearchQuery::boost' => ['Couchbase\BooleanFieldSearchQuery', 'boost'=>'float'], +'Couchbase\BooleanFieldSearchQuery::field' => ['Couchbase\BooleanFieldSearchQuery', 'field'=>'string'], +'Couchbase\BooleanFieldSearchQuery::jsonSerialize' => ['array'], +'Couchbase\BooleanSearchQuery::__construct' => ['void'], +'Couchbase\BooleanSearchQuery::boost' => ['Couchbase\BooleanSearchQuery', 'boost'=>'float'], +'Couchbase\BooleanSearchQuery::jsonSerialize' => ['array'], +'Couchbase\BooleanSearchQuery::must' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], +'Couchbase\BooleanSearchQuery::mustNot' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], +'Couchbase\BooleanSearchQuery::should' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], +'Couchbase\Bucket::__construct' => ['void'], +'Couchbase\Bucket::__get' => ['int', 'name'=>'string'], +'Couchbase\Bucket::__set' => ['int', 'name'=>'string', 'value'=>'int'], +'Couchbase\Bucket::append' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\Bucket::counter' => ['Couchbase\Document|array', 'ids'=>'array|string', 'delta='=>'int', 'options='=>'array'], +'Couchbase\Bucket::decryptFields' => ['array', 'document'=>'array', 'fieldOptions'=>'', 'prefix='=>'string'], +'Couchbase\Bucket::diag' => ['array', 'reportId='=>'string'], +'Couchbase\Bucket::encryptFields' => ['array', 'document'=>'array', 'fieldOptions'=>'', 'prefix='=>'string'], +'Couchbase\Bucket::get' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], +'Couchbase\Bucket::getAndLock' => ['Couchbase\Document|array', 'ids'=>'array|string', 'lockTime'=>'int', 'options='=>'array'], +'Couchbase\Bucket::getAndTouch' => ['Couchbase\Document|array', 'ids'=>'array|string', 'expiry'=>'int', 'options='=>'array'], +'Couchbase\Bucket::getFromReplica' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], +'Couchbase\Bucket::getName' => ['string'], +'Couchbase\Bucket::insert' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\Bucket::listExists' => ['bool', 'id'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::listGet' => ['mixed', 'id'=>'string', 'index'=>'int'], +'Couchbase\Bucket::listPush' => ['', 'id'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::listRemove' => ['', 'id'=>'string', 'index'=>'int'], +'Couchbase\Bucket::listSet' => ['', 'id'=>'string', 'index'=>'int', 'value'=>'mixed'], +'Couchbase\Bucket::listShift' => ['', 'id'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::listSize' => ['int', 'id'=>'string'], +'Couchbase\Bucket::lookupIn' => ['Couchbase\LookupInBuilder', 'id'=>'string'], +'Couchbase\Bucket::manager' => ['Couchbase\BucketManager'], +'Couchbase\Bucket::mapAdd' => ['', 'id'=>'string', 'key'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::mapGet' => ['mixed', 'id'=>'string', 'key'=>'string'], +'Couchbase\Bucket::mapRemove' => ['', 'id'=>'string', 'key'=>'string'], +'Couchbase\Bucket::mapSize' => ['int', 'id'=>'string'], +'Couchbase\Bucket::mutateIn' => ['Couchbase\MutateInBuilder', 'id'=>'string', 'cas'=>'string'], +'Couchbase\Bucket::ping' => ['array', 'services='=>'int', 'reportId='=>'string'], +'Couchbase\Bucket::prepend' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\Bucket::query' => ['object', 'query'=>'Couchbase\AnalyticsQuery|Couchbase\N1qlQuery|Couchbase\SearchQuery|Couchbase\SpatialViewQuery|Couchbase\ViewQuery', 'jsonAsArray='=>'bool'], +'Couchbase\Bucket::queueAdd' => ['', 'id'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::queueExists' => ['bool', 'id'=>'string', 'value'=>'mixed'], +'Couchbase\Bucket::queueRemove' => ['mixed', 'id'=>'string'], +'Couchbase\Bucket::queueSize' => ['int', 'id'=>'string'], +'Couchbase\Bucket::remove' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], +'Couchbase\Bucket::replace' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\Bucket::retrieveIn' => ['Couchbase\DocumentFragment', 'id'=>'string', '...paths='=>'array'], +'Couchbase\Bucket::setAdd' => ['', 'id'=>'string', 'value'=>'bool|float|int|string'], +'Couchbase\Bucket::setExists' => ['bool', 'id'=>'string', 'value'=>'bool|float|int|string'], +'Couchbase\Bucket::setRemove' => ['', 'id'=>'string', 'value'=>'bool|float|int|string'], +'Couchbase\Bucket::setSize' => ['int', 'id'=>'string'], +'Couchbase\Bucket::setTranscoder' => ['', 'encoder'=>'callable', 'decoder'=>'callable'], +'Couchbase\Bucket::touch' => ['Couchbase\Document|array', 'ids'=>'array|string', 'expiry'=>'int', 'options='=>'array'], +'Couchbase\Bucket::unlock' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], +'Couchbase\Bucket::upsert' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\BucketManager::__construct' => ['void'], +'Couchbase\BucketManager::createN1qlIndex' => ['', 'name'=>'string', 'fields'=>'array', 'whereClause='=>'string', 'ignoreIfExist='=>'bool', 'defer='=>'bool'], +'Couchbase\BucketManager::createN1qlPrimaryIndex' => ['', 'customName='=>'string', 'ignoreIfExist='=>'bool', 'defer='=>'bool'], +'Couchbase\BucketManager::dropN1qlIndex' => ['', 'name'=>'string', 'ignoreIfNotExist='=>'bool'], +'Couchbase\BucketManager::dropN1qlPrimaryIndex' => ['', 'customName='=>'string', 'ignoreIfNotExist='=>'bool'], +'Couchbase\BucketManager::flush' => [''], +'Couchbase\BucketManager::getDesignDocument' => ['array', 'name'=>'string'], +'Couchbase\BucketManager::info' => ['array'], +'Couchbase\BucketManager::insertDesignDocument' => ['', 'name'=>'string', 'document'=>'array'], +'Couchbase\BucketManager::listDesignDocuments' => ['array'], +'Couchbase\BucketManager::listN1qlIndexes' => ['array'], +'Couchbase\BucketManager::removeDesignDocument' => ['', 'name'=>'string'], +'Couchbase\BucketManager::upsertDesignDocument' => ['', 'name'=>'string', 'document'=>'array'], +'Couchbase\ClassicAuthenticator::bucket' => ['', 'name'=>'string', 'password'=>'string'], +'Couchbase\ClassicAuthenticator::cluster' => ['', 'username'=>'string', 'password'=>'string'], +'Couchbase\Cluster::__construct' => ['void', 'connstr'=>'string'], +'Couchbase\Cluster::authenticate' => ['null', 'authenticator'=>'Couchbase\Authenticator'], +'Couchbase\Cluster::authenticateAs' => ['null', 'username'=>'string', 'password'=>'string'], +'Couchbase\Cluster::manager' => ['Couchbase\ClusterManager', 'username='=>'string', 'password='=>'string'], +'Couchbase\Cluster::openBucket' => ['Couchbase\Bucket', 'name='=>'string', 'password='=>'string'], +'Couchbase\ClusterManager::__construct' => ['void'], +'Couchbase\ClusterManager::createBucket' => ['', 'name'=>'string', 'options='=>'array'], +'Couchbase\ClusterManager::getUser' => ['array', 'username'=>'string', 'domain='=>'int'], +'Couchbase\ClusterManager::info' => ['array'], +'Couchbase\ClusterManager::listBuckets' => ['array'], +'Couchbase\ClusterManager::listUsers' => ['array', 'domain='=>'int'], +'Couchbase\ClusterManager::removeBucket' => ['', 'name'=>'string'], +'Couchbase\ClusterManager::removeUser' => ['', 'name'=>'string', 'domain='=>'int'], +'Couchbase\ClusterManager::upsertUser' => ['', 'name'=>'string', 'settings'=>'Couchbase\UserSettings', 'domain='=>'int'], +'Couchbase\ConjunctionSearchQuery::__construct' => ['void'], +'Couchbase\ConjunctionSearchQuery::boost' => ['Couchbase\ConjunctionSearchQuery', 'boost'=>'float'], +'Couchbase\ConjunctionSearchQuery::every' => ['Couchbase\ConjunctionSearchQuery', '...queries='=>'array'], +'Couchbase\ConjunctionSearchQuery::jsonSerialize' => ['array'], +'Couchbase\DateRangeSearchFacet::__construct' => ['void'], +'Couchbase\DateRangeSearchFacet::addRange' => ['Couchbase\DateRangeSearchFacet', 'name'=>'string', 'start'=>'int|string', 'end'=>'int|string'], +'Couchbase\DateRangeSearchFacet::jsonSerialize' => ['array'], +'Couchbase\DateRangeSearchQuery::__construct' => ['void'], +'Couchbase\DateRangeSearchQuery::boost' => ['Couchbase\DateRangeSearchQuery', 'boost'=>'float'], +'Couchbase\DateRangeSearchQuery::dateTimeParser' => ['Couchbase\DateRangeSearchQuery', 'dateTimeParser'=>'string'], +'Couchbase\DateRangeSearchQuery::end' => ['Couchbase\DateRangeSearchQuery', 'end'=>'int|string', 'inclusive='=>'bool'], +'Couchbase\DateRangeSearchQuery::field' => ['Couchbase\DateRangeSearchQuery', 'field'=>'string'], +'Couchbase\DateRangeSearchQuery::jsonSerialize' => ['array'], +'Couchbase\DateRangeSearchQuery::start' => ['Couchbase\DateRangeSearchQuery', 'start'=>'int|string', 'inclusive='=>'bool'], +'Couchbase\defaultDecoder' => ['mixed', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int'], +'Couchbase\defaultEncoder' => ['array', 'value'=>'mixed'], +'Couchbase\DisjunctionSearchQuery::__construct' => ['void'], +'Couchbase\DisjunctionSearchQuery::boost' => ['Couchbase\DisjunctionSearchQuery', 'boost'=>'float'], +'Couchbase\DisjunctionSearchQuery::either' => ['Couchbase\DisjunctionSearchQuery', '...queries='=>'array'], +'Couchbase\DisjunctionSearchQuery::jsonSerialize' => ['array'], +'Couchbase\DisjunctionSearchQuery::min' => ['Couchbase\DisjunctionSearchQuery', 'min'=>'int'], +'Couchbase\DocIdSearchQuery::__construct' => ['void'], +'Couchbase\DocIdSearchQuery::boost' => ['Couchbase\DocIdSearchQuery', 'boost'=>'float'], +'Couchbase\DocIdSearchQuery::docIds' => ['Couchbase\DocIdSearchQuery', '...documentIds='=>'array'], +'Couchbase\DocIdSearchQuery::field' => ['Couchbase\DocIdSearchQuery', 'field'=>'string'], +'Couchbase\DocIdSearchQuery::jsonSerialize' => ['array'], +'Couchbase\fastlzCompress' => ['string', 'data'=>'string'], +'Couchbase\fastlzDecompress' => ['string', 'data'=>'string'], +'Couchbase\GeoBoundingBoxSearchQuery::__construct' => ['void'], +'Couchbase\GeoBoundingBoxSearchQuery::boost' => ['Couchbase\GeoBoundingBoxSearchQuery', 'boost'=>'float'], +'Couchbase\GeoBoundingBoxSearchQuery::field' => ['Couchbase\GeoBoundingBoxSearchQuery', 'field'=>'string'], +'Couchbase\GeoBoundingBoxSearchQuery::jsonSerialize' => ['array'], +'Couchbase\GeoDistanceSearchQuery::__construct' => ['void'], +'Couchbase\GeoDistanceSearchQuery::boost' => ['Couchbase\GeoDistanceSearchQuery', 'boost'=>'float'], +'Couchbase\GeoDistanceSearchQuery::field' => ['Couchbase\GeoDistanceSearchQuery', 'field'=>'string'], +'Couchbase\GeoDistanceSearchQuery::jsonSerialize' => ['array'], +'Couchbase\LookupInBuilder::__construct' => ['void'], +'Couchbase\LookupInBuilder::execute' => ['Couchbase\DocumentFragment'], +'Couchbase\LookupInBuilder::exists' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], +'Couchbase\LookupInBuilder::get' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], +'Couchbase\LookupInBuilder::getCount' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], +'Couchbase\MatchAllSearchQuery::__construct' => ['void'], +'Couchbase\MatchAllSearchQuery::boost' => ['Couchbase\MatchAllSearchQuery', 'boost'=>'float'], +'Couchbase\MatchAllSearchQuery::jsonSerialize' => ['array'], +'Couchbase\MatchNoneSearchQuery::__construct' => ['void'], +'Couchbase\MatchNoneSearchQuery::boost' => ['Couchbase\MatchNoneSearchQuery', 'boost'=>'float'], +'Couchbase\MatchNoneSearchQuery::jsonSerialize' => ['array'], +'Couchbase\MatchPhraseSearchQuery::__construct' => ['void'], +'Couchbase\MatchPhraseSearchQuery::analyzer' => ['Couchbase\MatchPhraseSearchQuery', 'analyzer'=>'string'], +'Couchbase\MatchPhraseSearchQuery::boost' => ['Couchbase\MatchPhraseSearchQuery', 'boost'=>'float'], +'Couchbase\MatchPhraseSearchQuery::field' => ['Couchbase\MatchPhraseSearchQuery', 'field'=>'string'], +'Couchbase\MatchPhraseSearchQuery::jsonSerialize' => ['array'], +'Couchbase\MatchSearchQuery::__construct' => ['void'], +'Couchbase\MatchSearchQuery::analyzer' => ['Couchbase\MatchSearchQuery', 'analyzer'=>'string'], +'Couchbase\MatchSearchQuery::boost' => ['Couchbase\MatchSearchQuery', 'boost'=>'float'], +'Couchbase\MatchSearchQuery::field' => ['Couchbase\MatchSearchQuery', 'field'=>'string'], +'Couchbase\MatchSearchQuery::fuzziness' => ['Couchbase\MatchSearchQuery', 'fuzziness'=>'int'], +'Couchbase\MatchSearchQuery::jsonSerialize' => ['array'], +'Couchbase\MatchSearchQuery::prefixLength' => ['Couchbase\MatchSearchQuery', 'prefixLength'=>'int'], +'Couchbase\MutateInBuilder::__construct' => ['void'], +'Couchbase\MutateInBuilder::arrayAddUnique' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::arrayAppend' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::arrayAppendAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::arrayInsert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\MutateInBuilder::arrayInsertAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array'], +'Couchbase\MutateInBuilder::arrayPrepend' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::arrayPrependAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::counter' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'delta'=>'int', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::execute' => ['Couchbase\DocumentFragment'], +'Couchbase\MutateInBuilder::insert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::modeDocument' => ['', 'mode'=>'int'], +'Couchbase\MutateInBuilder::remove' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'options='=>'array'], +'Couchbase\MutateInBuilder::replace' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array'], +'Couchbase\MutateInBuilder::upsert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], +'Couchbase\MutateInBuilder::withExpiry' => ['Couchbase\MutateInBuilder', 'expiry'=>'Couchbase\expiry'], +'Couchbase\MutationState::__construct' => ['void'], +'Couchbase\MutationState::add' => ['', 'source'=>'Couchbase\Document|Couchbase\DocumentFragment|array'], +'Couchbase\MutationState::from' => ['Couchbase\MutationState', 'source'=>'Couchbase\Document|Couchbase\DocumentFragment|array'], +'Couchbase\MutationToken::__construct' => ['void'], +'Couchbase\MutationToken::bucketName' => ['string'], +'Couchbase\MutationToken::from' => ['', 'bucketName'=>'string', 'vbucketId'=>'int', 'vbucketUuid'=>'string', 'sequenceNumber'=>'string'], +'Couchbase\MutationToken::sequenceNumber' => ['string'], +'Couchbase\MutationToken::vbucketId' => ['int'], +'Couchbase\MutationToken::vbucketUuid' => ['string'], +'Couchbase\N1qlIndex::__construct' => ['void'], +'Couchbase\N1qlQuery::__construct' => ['void'], +'Couchbase\N1qlQuery::adhoc' => ['Couchbase\N1qlQuery', 'adhoc'=>'bool'], +'Couchbase\N1qlQuery::consistency' => ['Couchbase\N1qlQuery', 'consistency'=>'int'], +'Couchbase\N1qlQuery::consistentWith' => ['Couchbase\N1qlQuery', 'state'=>'Couchbase\MutationState'], +'Couchbase\N1qlQuery::crossBucket' => ['Couchbase\N1qlQuery', 'crossBucket'=>'bool'], +'Couchbase\N1qlQuery::fromString' => ['Couchbase\N1qlQuery', 'statement'=>'string'], +'Couchbase\N1qlQuery::maxParallelism' => ['Couchbase\N1qlQuery', 'maxParallelism'=>'int'], +'Couchbase\N1qlQuery::namedParams' => ['Couchbase\N1qlQuery', 'params'=>'array'], +'Couchbase\N1qlQuery::pipelineBatch' => ['Couchbase\N1qlQuery', 'pipelineBatch'=>'int'], +'Couchbase\N1qlQuery::pipelineCap' => ['Couchbase\N1qlQuery', 'pipelineCap'=>'int'], +'Couchbase\N1qlQuery::positionalParams' => ['Couchbase\N1qlQuery', 'params'=>'array'], +'Couchbase\N1qlQuery::profile' => ['', 'profileType'=>'string'], +'Couchbase\N1qlQuery::readonly' => ['Couchbase\N1qlQuery', 'readonly'=>'bool'], +'Couchbase\N1qlQuery::scanCap' => ['Couchbase\N1qlQuery', 'scanCap'=>'int'], +'Couchbase\NumericRangeSearchFacet::__construct' => ['void'], +'Couchbase\NumericRangeSearchFacet::addRange' => ['Couchbase\NumericRangeSearchFacet', 'name'=>'string', 'min'=>'float', 'max'=>'float'], +'Couchbase\NumericRangeSearchFacet::jsonSerialize' => ['array'], +'Couchbase\NumericRangeSearchQuery::__construct' => ['void'], +'Couchbase\NumericRangeSearchQuery::boost' => ['Couchbase\NumericRangeSearchQuery', 'boost'=>'float'], +'Couchbase\NumericRangeSearchQuery::field' => ['Couchbase\NumericRangeSearchQuery', 'field'=>'string'], +'Couchbase\NumericRangeSearchQuery::jsonSerialize' => ['array'], +'Couchbase\NumericRangeSearchQuery::max' => ['Couchbase\NumericRangeSearchQuery', 'max'=>'float', 'inclusive='=>'bool'], +'Couchbase\NumericRangeSearchQuery::min' => ['Couchbase\NumericRangeSearchQuery', 'min'=>'float', 'inclusive='=>'bool'], +'Couchbase\passthruDecoder' => ['string', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int'], +'Couchbase\passthruEncoder' => ['array', 'value'=>'string'], +'Couchbase\PasswordAuthenticator::password' => ['Couchbase\PasswordAuthenticator', 'password'=>'string'], +'Couchbase\PasswordAuthenticator::username' => ['Couchbase\PasswordAuthenticator', 'username'=>'string'], +'Couchbase\PhraseSearchQuery::__construct' => ['void'], +'Couchbase\PhraseSearchQuery::boost' => ['Couchbase\PhraseSearchQuery', 'boost'=>'float'], +'Couchbase\PhraseSearchQuery::field' => ['Couchbase\PhraseSearchQuery', 'field'=>'string'], +'Couchbase\PhraseSearchQuery::jsonSerialize' => ['array'], +'Couchbase\PrefixSearchQuery::__construct' => ['void'], +'Couchbase\PrefixSearchQuery::boost' => ['Couchbase\PrefixSearchQuery', 'boost'=>'float'], +'Couchbase\PrefixSearchQuery::field' => ['Couchbase\PrefixSearchQuery', 'field'=>'string'], +'Couchbase\PrefixSearchQuery::jsonSerialize' => ['array'], +'Couchbase\QueryStringSearchQuery::__construct' => ['void'], +'Couchbase\QueryStringSearchQuery::boost' => ['Couchbase\QueryStringSearchQuery', 'boost'=>'float'], +'Couchbase\QueryStringSearchQuery::jsonSerialize' => ['array'], +'Couchbase\RegexpSearchQuery::__construct' => ['void'], +'Couchbase\RegexpSearchQuery::boost' => ['Couchbase\RegexpSearchQuery', 'boost'=>'float'], +'Couchbase\RegexpSearchQuery::field' => ['Couchbase\RegexpSearchQuery', 'field'=>'string'], +'Couchbase\RegexpSearchQuery::jsonSerialize' => ['array'], +'Couchbase\SearchQuery::__construct' => ['void', 'indexName'=>'string', 'queryPart'=>'Couchbase\SearchQueryPart'], +'Couchbase\SearchQuery::addFacet' => ['Couchbase\SearchQuery', 'name'=>'string', 'facet'=>'Couchbase\SearchFacet'], +'Couchbase\SearchQuery::boolean' => ['Couchbase\BooleanSearchQuery'], +'Couchbase\SearchQuery::booleanField' => ['Couchbase\BooleanFieldSearchQuery', 'value'=>'bool'], +'Couchbase\SearchQuery::conjuncts' => ['Couchbase\ConjunctionSearchQuery', '...queries='=>'array'], +'Couchbase\SearchQuery::consistentWith' => ['Couchbase\SearchQuery', 'state'=>'Couchbase\MutationState'], +'Couchbase\SearchQuery::dateRange' => ['Couchbase\DateRangeSearchQuery'], +'Couchbase\SearchQuery::dateRangeFacet' => ['Couchbase\DateRangeSearchFacet', 'field'=>'string', 'limit'=>'int'], +'Couchbase\SearchQuery::disjuncts' => ['Couchbase\DisjunctionSearchQuery', '...queries='=>'array'], +'Couchbase\SearchQuery::docId' => ['Couchbase\DocIdSearchQuery', '...documentIds='=>'array'], +'Couchbase\SearchQuery::explain' => ['Couchbase\SearchQuery', 'explain'=>'bool'], +'Couchbase\SearchQuery::fields' => ['Couchbase\SearchQuery', '...fields='=>'array'], +'Couchbase\SearchQuery::geoBoundingBox' => ['Couchbase\GeoBoundingBoxSearchQuery', 'topLeftLongitude'=>'float', 'topLeftLatitude'=>'float', 'bottomRightLongitude'=>'float', 'bottomRightLatitude'=>'float'], +'Couchbase\SearchQuery::geoDistance' => ['Couchbase\GeoDistanceSearchQuery', 'longitude'=>'float', 'latitude'=>'float', 'distance'=>'string'], +'Couchbase\SearchQuery::highlight' => ['Couchbase\SearchQuery', 'style'=>'string', '...fields='=>'array'], +'Couchbase\SearchQuery::jsonSerialize' => ['array'], +'Couchbase\SearchQuery::limit' => ['Couchbase\SearchQuery', 'limit'=>'int'], +'Couchbase\SearchQuery::match' => ['Couchbase\MatchSearchQuery', 'match'=>'string'], +'Couchbase\SearchQuery::matchAll' => ['Couchbase\MatchAllSearchQuery'], +'Couchbase\SearchQuery::matchNone' => ['Couchbase\MatchNoneSearchQuery'], +'Couchbase\SearchQuery::matchPhrase' => ['Couchbase\MatchPhraseSearchQuery', '...terms='=>'array'], +'Couchbase\SearchQuery::numericRange' => ['Couchbase\NumericRangeSearchQuery'], +'Couchbase\SearchQuery::numericRangeFacet' => ['Couchbase\NumericRangeSearchFacet', 'field'=>'string', 'limit'=>'int'], +'Couchbase\SearchQuery::prefix' => ['Couchbase\PrefixSearchQuery', 'prefix'=>'string'], +'Couchbase\SearchQuery::queryString' => ['Couchbase\QueryStringSearchQuery', 'queryString'=>'string'], +'Couchbase\SearchQuery::regexp' => ['Couchbase\RegexpSearchQuery', 'regexp'=>'string'], +'Couchbase\SearchQuery::serverSideTimeout' => ['Couchbase\SearchQuery', 'serverSideTimeout'=>'int'], +'Couchbase\SearchQuery::skip' => ['Couchbase\SearchQuery', 'skip'=>'int'], +'Couchbase\SearchQuery::sort' => ['Couchbase\SearchQuery', '...sort='=>'array'], +'Couchbase\SearchQuery::term' => ['Couchbase\TermSearchQuery', 'term'=>'string'], +'Couchbase\SearchQuery::termFacet' => ['Couchbase\TermSearchFacet', 'field'=>'string', 'limit'=>'int'], +'Couchbase\SearchQuery::termRange' => ['Couchbase\TermRangeSearchQuery'], +'Couchbase\SearchQuery::wildcard' => ['Couchbase\WildcardSearchQuery', 'wildcard'=>'string'], +'Couchbase\SearchSort::__construct' => ['void'], +'Couchbase\SearchSort::field' => ['Couchbase\SearchSortField', 'field'=>'string'], +'Couchbase\SearchSort::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], +'Couchbase\SearchSort::id' => ['Couchbase\SearchSortId'], +'Couchbase\SearchSort::score' => ['Couchbase\SearchSortScore'], +'Couchbase\SearchSortField::__construct' => ['void'], +'Couchbase\SearchSortField::descending' => ['Couchbase\SearchSortField', 'descending'=>'bool'], +'Couchbase\SearchSortField::field' => ['Couchbase\SearchSortField', 'field'=>'string'], +'Couchbase\SearchSortField::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], +'Couchbase\SearchSortField::id' => ['Couchbase\SearchSortId'], +'Couchbase\SearchSortField::jsonSerialize' => ['mixed'], +'Couchbase\SearchSortField::missing' => ['', 'missing'=>'string'], +'Couchbase\SearchSortField::mode' => ['', 'mode'=>'string'], +'Couchbase\SearchSortField::score' => ['Couchbase\SearchSortScore'], +'Couchbase\SearchSortField::type' => ['', 'type'=>'string'], +'Couchbase\SearchSortGeoDistance::__construct' => ['void'], +'Couchbase\SearchSortGeoDistance::descending' => ['Couchbase\SearchSortGeoDistance', 'descending'=>'bool'], +'Couchbase\SearchSortGeoDistance::field' => ['Couchbase\SearchSortField', 'field'=>'string'], +'Couchbase\SearchSortGeoDistance::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], +'Couchbase\SearchSortGeoDistance::id' => ['Couchbase\SearchSortId'], +'Couchbase\SearchSortGeoDistance::jsonSerialize' => ['mixed'], +'Couchbase\SearchSortGeoDistance::score' => ['Couchbase\SearchSortScore'], +'Couchbase\SearchSortGeoDistance::unit' => ['Couchbase\SearchSortGeoDistance', 'unit'=>'string'], +'Couchbase\SearchSortId::__construct' => ['void'], +'Couchbase\SearchSortId::descending' => ['Couchbase\SearchSortId', 'descending'=>'bool'], +'Couchbase\SearchSortId::field' => ['Couchbase\SearchSortField', 'field'=>'string'], +'Couchbase\SearchSortId::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], +'Couchbase\SearchSortId::id' => ['Couchbase\SearchSortId'], +'Couchbase\SearchSortId::jsonSerialize' => ['mixed'], +'Couchbase\SearchSortId::score' => ['Couchbase\SearchSortScore'], +'Couchbase\SearchSortScore::__construct' => ['void'], +'Couchbase\SearchSortScore::descending' => ['Couchbase\SearchSortScore', 'descending'=>'bool'], +'Couchbase\SearchSortScore::field' => ['Couchbase\SearchSortField', 'field'=>'string'], +'Couchbase\SearchSortScore::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], +'Couchbase\SearchSortScore::id' => ['Couchbase\SearchSortId'], +'Couchbase\SearchSortScore::jsonSerialize' => ['mixed'], +'Couchbase\SearchSortScore::score' => ['Couchbase\SearchSortScore'], +'Couchbase\SpatialViewQuery::__construct' => ['void'], +'Couchbase\SpatialViewQuery::bbox' => ['Couchbase\SpatialViewQuery', 'bbox'=>'array'], +'Couchbase\SpatialViewQuery::consistency' => ['Couchbase\SpatialViewQuery', 'consistency'=>'int'], +'Couchbase\SpatialViewQuery::custom' => ['', 'customParameters'=>'array'], +'Couchbase\SpatialViewQuery::encode' => ['array'], +'Couchbase\SpatialViewQuery::endRange' => ['Couchbase\SpatialViewQuery', 'range'=>'array'], +'Couchbase\SpatialViewQuery::limit' => ['Couchbase\SpatialViewQuery', 'limit'=>'int'], +'Couchbase\SpatialViewQuery::order' => ['Couchbase\SpatialViewQuery', 'order'=>'int'], +'Couchbase\SpatialViewQuery::skip' => ['Couchbase\SpatialViewQuery', 'skip'=>'int'], +'Couchbase\SpatialViewQuery::startRange' => ['Couchbase\SpatialViewQuery', 'range'=>'array'], +'Couchbase\TermRangeSearchQuery::__construct' => ['void'], +'Couchbase\TermRangeSearchQuery::boost' => ['Couchbase\TermRangeSearchQuery', 'boost'=>'float'], +'Couchbase\TermRangeSearchQuery::field' => ['Couchbase\TermRangeSearchQuery', 'field'=>'string'], +'Couchbase\TermRangeSearchQuery::jsonSerialize' => ['array'], +'Couchbase\TermRangeSearchQuery::max' => ['Couchbase\TermRangeSearchQuery', 'max'=>'string', 'inclusive='=>'bool'], +'Couchbase\TermRangeSearchQuery::min' => ['Couchbase\TermRangeSearchQuery', 'min'=>'string', 'inclusive='=>'bool'], +'Couchbase\TermSearchFacet::__construct' => ['void'], +'Couchbase\TermSearchFacet::jsonSerialize' => ['array'], +'Couchbase\TermSearchQuery::__construct' => ['void'], +'Couchbase\TermSearchQuery::boost' => ['Couchbase\TermSearchQuery', 'boost'=>'float'], +'Couchbase\TermSearchQuery::field' => ['Couchbase\TermSearchQuery', 'field'=>'string'], +'Couchbase\TermSearchQuery::fuzziness' => ['Couchbase\TermSearchQuery', 'fuzziness'=>'int'], +'Couchbase\TermSearchQuery::jsonSerialize' => ['array'], +'Couchbase\TermSearchQuery::prefixLength' => ['Couchbase\TermSearchQuery', 'prefixLength'=>'int'], +'Couchbase\UserSettings::fullName' => ['Couchbase\UserSettings', 'fullName'=>'string'], +'Couchbase\UserSettings::password' => ['Couchbase\UserSettings', 'password'=>'string'], +'Couchbase\UserSettings::role' => ['Couchbase\UserSettings', 'role'=>'string', 'bucket='=>'string'], +'Couchbase\ViewQuery::__construct' => ['void'], +'Couchbase\ViewQuery::consistency' => ['Couchbase\ViewQuery', 'consistency'=>'int'], +'Couchbase\ViewQuery::custom' => ['Couchbase\ViewQuery', 'customParameters'=>'array'], +'Couchbase\ViewQuery::encode' => ['array'], +'Couchbase\ViewQuery::from' => ['Couchbase\ViewQuery', 'designDocumentName'=>'string', 'viewName'=>'string'], +'Couchbase\ViewQuery::fromSpatial' => ['Couchbase\SpatialViewQuery', 'designDocumentName'=>'string', 'viewName'=>'string'], +'Couchbase\ViewQuery::group' => ['Couchbase\ViewQuery', 'group'=>'bool'], +'Couchbase\ViewQuery::groupLevel' => ['Couchbase\ViewQuery', 'groupLevel'=>'int'], +'Couchbase\ViewQuery::idRange' => ['Couchbase\ViewQuery', 'startKeyDocumentId'=>'string', 'endKeyDocumentId'=>'string'], +'Couchbase\ViewQuery::key' => ['Couchbase\ViewQuery', 'key'=>'mixed'], +'Couchbase\ViewQuery::keys' => ['Couchbase\ViewQuery', 'keys'=>'array'], +'Couchbase\ViewQuery::limit' => ['Couchbase\ViewQuery', 'limit'=>'int'], +'Couchbase\ViewQuery::order' => ['Couchbase\ViewQuery', 'order'=>'int'], +'Couchbase\ViewQuery::range' => ['Couchbase\ViewQuery', 'startKey'=>'mixed', 'endKey'=>'mixed', 'inclusiveEnd='=>'bool'], +'Couchbase\ViewQuery::reduce' => ['Couchbase\ViewQuery', 'reduce'=>'bool'], +'Couchbase\ViewQuery::skip' => ['Couchbase\ViewQuery', 'skip'=>'int'], +'Couchbase\ViewQueryEncodable::encode' => ['array'], +'Couchbase\WildcardSearchQuery::__construct' => ['void'], +'Couchbase\WildcardSearchQuery::boost' => ['Couchbase\WildcardSearchQuery', 'boost'=>'float'], +'Couchbase\WildcardSearchQuery::field' => ['Couchbase\WildcardSearchQuery', 'field'=>'string'], +'Couchbase\WildcardSearchQuery::jsonSerialize' => ['array'], +'Couchbase\zlibCompress' => ['string', 'data'=>'string'], +'Couchbase\zlibDecompress' => ['string', 'data'=>'string'], +'count' => ['int<0, max>', 'value'=>'Countable|array', 'mode='=>'int'], +'count_chars' => ['array', 'input'=>'string', 'mode='=>'0|1|2'], +'count_chars\'1' => ['string', 'input'=>'string', 'mode='=>'3|4'], +'Countable::count' => ['int'], +'crack_check' => ['bool', 'dictionary'=>'', 'password'=>'string'], +'crack_closedict' => ['bool', 'dictionary='=>'resource'], +'crack_getlastmessage' => ['string'], +'crack_opendict' => ['resource|false', 'dictionary'=>'string'], +'crash' => [''], +'crc32' => ['int', 'string'=>'string'], +'crypt' => ['string', 'string'=>'string', 'salt'=>'string'], +'ctype_alnum' => ['bool', 'text'=>'string|int'], +'ctype_alpha' => ['bool', 'text'=>'string|int'], +'ctype_cntrl' => ['bool', 'text'=>'string|int'], +'ctype_digit' => ['bool', 'text'=>'string|int'], +'ctype_graph' => ['bool', 'text'=>'string|int'], +'ctype_lower' => ['bool', 'text'=>'string|int'], +'ctype_print' => ['bool', 'text'=>'string|int'], +'ctype_punct' => ['bool', 'text'=>'string|int'], +'ctype_space' => ['bool', 'text'=>'string|int'], +'ctype_upper' => ['bool', 'text'=>'string|int'], +'ctype_xdigit' => ['bool', 'text'=>'string|int'], +'cubrid_affected_rows' => ['int', 'req_identifier='=>''], +'cubrid_bind' => ['bool', 'req_identifier'=>'resource', 'bind_param'=>'int', 'bind_value'=>'mixed', 'bind_value_type='=>'string'], +'cubrid_client_encoding' => ['string', 'conn_identifier='=>''], +'cubrid_close' => ['bool', 'conn_identifier='=>''], +'cubrid_close_prepare' => ['bool', 'req_identifier'=>'resource'], +'cubrid_close_request' => ['bool', 'req_identifier'=>'resource'], +'cubrid_col_get' => ['array', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string'], +'cubrid_col_size' => ['int', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string'], +'cubrid_column_names' => ['array', 'req_identifier'=>'resource'], +'cubrid_column_types' => ['array', 'req_identifier'=>'resource'], +'cubrid_commit' => ['bool', 'conn_identifier'=>'resource'], +'cubrid_connect' => ['resource', 'host'=>'string', 'port'=>'int', 'dbname'=>'string', 'userid='=>'string', 'passwd='=>'string'], +'cubrid_connect_with_url' => ['resource', 'conn_url'=>'string', 'userid='=>'string', 'passwd='=>'string'], +'cubrid_current_oid' => ['string', 'req_identifier'=>'resource'], +'cubrid_data_seek' => ['bool', 'req_identifier'=>'', 'row_number'=>'int'], +'cubrid_db_name' => ['string', 'result'=>'array', 'index'=>'int'], +'cubrid_db_parameter' => ['array', 'conn_identifier'=>'resource'], +'cubrid_disconnect' => ['bool', 'conn_identifier'=>'resource'], +'cubrid_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], +'cubrid_errno' => ['int', 'conn_identifier='=>''], +'cubrid_error' => ['string', 'connection='=>''], +'cubrid_error_code' => ['int'], +'cubrid_error_code_facility' => ['int'], +'cubrid_error_msg' => ['string'], +'cubrid_execute' => ['bool', 'conn_identifier'=>'', 'sql'=>'string', 'option='=>'int', 'request_identifier='=>''], +'cubrid_fetch' => ['mixed', 'result'=>'resource', 'type='=>'int'], +'cubrid_fetch_array' => ['array', 'result'=>'resource', 'type='=>'int'], +'cubrid_fetch_assoc' => ['array', 'result'=>'resource'], +'cubrid_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], +'cubrid_fetch_lengths' => ['array', 'result'=>'resource'], +'cubrid_fetch_object' => ['object', 'result'=>'resource', 'class_name='=>'string', 'params='=>'array'], +'cubrid_fetch_row' => ['array', 'result'=>'resource'], +'cubrid_field_flags' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'cubrid_field_len' => ['int', 'result'=>'resource', 'field_offset'=>'int'], +'cubrid_field_name' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'cubrid_field_seek' => ['bool', 'result'=>'resource', 'field_offset='=>'int'], +'cubrid_field_table' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'cubrid_field_type' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'cubrid_free_result' => ['bool', 'req_identifier'=>'resource'], +'cubrid_get' => ['mixed', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr='=>'mixed'], +'cubrid_get_autocommit' => ['bool', 'conn_identifier'=>'resource'], +'cubrid_get_charset' => ['string', 'conn_identifier'=>'resource'], +'cubrid_get_class_name' => ['string', 'conn_identifier'=>'resource', 'oid'=>'string'], +'cubrid_get_client_info' => ['string'], +'cubrid_get_db_parameter' => ['array', 'conn_identifier'=>'resource'], +'cubrid_get_query_timeout' => ['int', 'req_identifier'=>'resource'], +'cubrid_get_server_info' => ['string', 'conn_identifier'=>'resource'], +'cubrid_insert_id' => ['string', 'conn_identifier='=>'resource'], +'cubrid_is_instance' => ['int', 'conn_identifier'=>'resource', 'oid'=>'string'], +'cubrid_list_dbs' => ['array', 'conn_identifier'=>'resource'], +'cubrid_load_from_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string', 'file_name'=>'string'], +'cubrid_lob2_bind' => ['bool', 'req_identifier'=>'resource', 'bind_index'=>'int', 'bind_value'=>'mixed', 'bind_value_type='=>'string'], +'cubrid_lob2_close' => ['bool', 'lob_identifier'=>'resource'], +'cubrid_lob2_export' => ['bool', 'lob_identifier'=>'resource', 'file_name'=>'string'], +'cubrid_lob2_import' => ['bool', 'lob_identifier'=>'resource', 'file_name'=>'string'], +'cubrid_lob2_new' => ['resource', 'conn_identifier='=>'resource', 'type='=>'string'], +'cubrid_lob2_read' => ['string', 'lob_identifier'=>'resource', 'length'=>'int'], +'cubrid_lob2_seek' => ['bool', 'lob_identifier'=>'resource', 'offset'=>'int', 'origin='=>'int'], +'cubrid_lob2_seek64' => ['bool', 'lob_identifier'=>'resource', 'offset'=>'string', 'origin='=>'int'], +'cubrid_lob2_size' => ['int', 'lob_identifier'=>'resource'], +'cubrid_lob2_size64' => ['string', 'lob_identifier'=>'resource'], +'cubrid_lob2_tell' => ['int', 'lob_identifier'=>'resource'], +'cubrid_lob2_tell64' => ['string', 'lob_identifier'=>'resource'], +'cubrid_lob2_write' => ['bool', 'lob_identifier'=>'resource', 'buf'=>'string'], +'cubrid_lob_close' => ['bool', 'lob_identifier_array'=>'array'], +'cubrid_lob_export' => ['bool', 'conn_identifier'=>'resource', 'lob_identifier'=>'resource', 'path_name'=>'string'], +'cubrid_lob_get' => ['array', 'conn_identifier'=>'resource', 'sql'=>'string'], +'cubrid_lob_send' => ['bool', 'conn_identifier'=>'resource', 'lob_identifier'=>'resource'], +'cubrid_lob_size' => ['string', 'lob_identifier'=>'resource'], +'cubrid_lock_read' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], +'cubrid_lock_write' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], +'cubrid_move_cursor' => ['int', 'req_identifier'=>'resource', 'offset'=>'int', 'origin='=>'int'], +'cubrid_new_glo' => ['string', 'conn_identifier'=>'', 'class_name'=>'string', 'file_name'=>'string'], +'cubrid_next_result' => ['bool', 'result'=>'resource'], +'cubrid_num_cols' => ['int', 'req_identifier'=>'resource'], +'cubrid_num_fields' => ['int', 'result'=>'resource'], +'cubrid_num_rows' => ['int', 'req_identifier'=>'resource'], +'cubrid_pconnect' => ['resource', 'host'=>'string', 'port'=>'int', 'dbname'=>'string', 'userid='=>'string', 'passwd='=>'string'], +'cubrid_pconnect_with_url' => ['resource', 'conn_url'=>'string', 'userid='=>'string', 'passwd='=>'string'], +'cubrid_ping' => ['bool', 'conn_identifier='=>''], +'cubrid_prepare' => ['resource', 'conn_identifier'=>'resource', 'prepare_stmt'=>'string', 'option='=>'int'], +'cubrid_put' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr='=>'string', 'value='=>'mixed'], +'cubrid_query' => ['resource', 'query'=>'string', 'conn_identifier='=>''], +'cubrid_real_escape_string' => ['string', 'unescaped_string'=>'string', 'conn_identifier='=>''], +'cubrid_result' => ['string', 'result'=>'resource', 'row'=>'int', 'field='=>''], +'cubrid_rollback' => ['bool', 'conn_identifier'=>'resource'], +'cubrid_save_to_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string', 'file_name'=>'string'], +'cubrid_schema' => ['array', 'conn_identifier'=>'resource', 'schema_type'=>'int', 'class_name='=>'string', 'attr_name='=>'string'], +'cubrid_send_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string'], +'cubrid_seq_add' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'seq_element'=>'string'], +'cubrid_seq_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int'], +'cubrid_seq_insert' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int', 'seq_element'=>'string'], +'cubrid_seq_put' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int', 'seq_element'=>'string'], +'cubrid_set_add' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'set_element'=>'string'], +'cubrid_set_autocommit' => ['bool', 'conn_identifier'=>'resource', 'mode'=>'bool'], +'cubrid_set_db_parameter' => ['bool', 'conn_identifier'=>'resource', 'param_type'=>'int', 'param_value'=>'int'], +'cubrid_set_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'set_element'=>'string'], +'cubrid_set_query_timeout' => ['bool', 'req_identifier'=>'resource', 'timeout'=>'int'], +'cubrid_unbuffered_query' => ['resource', 'query'=>'string', 'conn_identifier='=>''], +'cubrid_version' => ['string'], +'curl_close' => ['void', 'handle'=>'CurlHandle'], +'curl_copy_handle' => ['CurlHandle', 'handle'=>'CurlHandle'], +'curl_errno' => ['int', 'handle'=>'CurlHandle'], +'curl_error' => ['string', 'handle'=>'CurlHandle'], +'curl_escape' => ['string|false', 'handle'=>'CurlHandle', 'string'=>'string'], +'curl_exec' => ['bool|string', 'handle'=>'CurlHandle'], +'curl_file_create' => ['CURLFile', 'filename'=>'string', 'mime_type='=>'string|null', 'posted_filename='=>'string|null'], +'curl_getinfo' => ['mixed', 'handle'=>'CurlHandle', 'option='=>'?int'], +'curl_init' => ['CurlHandle|false', 'url='=>'?string'], +'curl_multi_add_handle' => ['int', 'multi_handle'=>'CurlMultiHandle', 'handle'=>'CurlHandle'], +'curl_multi_close' => ['void', 'multi_handle'=>'CurlMultiHandle'], +'curl_multi_errno' => ['int', 'multi_handle'=>'CurlMultiHandle'], +'curl_multi_exec' => ['int', 'multi_handle'=>'CurlMultiHandle', '&w_still_running'=>'int'], +'curl_multi_getcontent' => ['string', 'handle'=>'CurlHandle'], +'curl_multi_info_read' => ['array|false', 'multi_handle'=>'CurlMultiHandle', '&w_queued_messages='=>'int'], +'curl_multi_init' => ['CurlMultiHandle'], +'curl_multi_remove_handle' => ['int', 'multi_handle'=>'CurlMultiHandle', 'handle'=>'CurlHandle'], +'curl_multi_select' => ['int', 'multi_handle'=>'CurlMultiHandle', 'timeout='=>'float'], +'curl_multi_setopt' => ['bool', 'multi_handle'=>'CurlMultiHandle', 'option'=>'int', 'value'=>'mixed'], +'curl_multi_strerror' => ['?string', 'error_code'=>'int'], +'curl_pause' => ['int', 'handle'=>'CurlHandle', 'flags'=>'int'], +'curl_reset' => ['void', 'handle'=>'CurlHandle'], +'curl_setopt' => ['bool', 'handle'=>'CurlHandle', 'option'=>'int', 'value'=>'callable|mixed'], +'curl_setopt_array' => ['bool', 'handle'=>'CurlHandle', 'options'=>'array'], +'curl_share_close' => ['void', 'share_handle'=>'CurlShareHandle'], +'curl_share_errno' => ['int', 'share_handle'=>'CurlShareHandle'], +'curl_share_init' => ['CurlShareHandle'], +'curl_share_setopt' => ['bool', 'share_handle'=>'CurlShareHandle', 'option'=>'int', 'value'=>'mixed'], +'curl_share_strerror' => ['?string', 'error_code'=>'int'], +'curl_strerror' => ['?string', 'error_code'=>'int'], +'curl_upkeep' => ['bool', 'handle'=>'CurlHandle'], +'curl_unescape' => ['string|false', 'handle'=>'CurlHandle', 'string'=>'string'], +'curl_version' => ['array', 'version='=>'int'], +'CURLFile::__construct' => ['void', 'filename'=>'string', 'mimetype='=>'string', 'postfilename='=>'string'], +'CURLFile::__wakeup' => ['void'], +'CURLFile::getFilename' => ['string'], +'CURLFile::getMimeType' => ['string'], +'CURLFile::getPostFilename' => ['string'], +'CURLFile::setMimeType' => ['void', 'mime'=>'string'], +'CURLFile::setPostFilename' => ['void', 'name'=>'string'], +'CURLStringFile::__construct' => ['void', 'data'=>'string', 'postname'=>'string', 'mime='=>'string'], +'current' => ['mixed|false', 'array'=>'array|object'], +'cyrus_authenticate' => ['void', 'connection'=>'resource', 'mechlist='=>'string', 'service='=>'string', 'user='=>'string', 'minssf='=>'int', 'maxssf='=>'int', 'authname='=>'string', 'password='=>'string'], +'cyrus_bind' => ['bool', 'connection'=>'resource', 'callbacks'=>'array'], +'cyrus_close' => ['bool', 'connection'=>'resource'], +'cyrus_connect' => ['resource', 'host='=>'string', 'port='=>'string', 'flags='=>'int'], +'cyrus_query' => ['array', 'connection'=>'resource', 'query'=>'string'], +'cyrus_unbind' => ['bool', 'connection'=>'resource', 'trigger_name'=>'string'], +'date' => ['string', 'format'=>'string', 'timestamp='=>'?int'], +'date_add' => ['DateTime', 'object'=>'DateTime', 'interval'=>'DateInterval'], +'date_create' => ['DateTime|false', 'datetime='=>'string', 'timezone='=>'?DateTimeZone'], +'date_create_from_format' => ['DateTime|false', 'format'=>'string', 'datetime'=>'string', 'timezone='=>'?\DateTimeZone'], +'date_create_immutable' => ['DateTimeImmutable|false', 'datetime='=>'string', 'timezone='=>'?DateTimeZone'], +'date_create_immutable_from_format' => ['DateTimeImmutable|false', 'format'=>'string', 'datetime'=>'string', 'timezone='=>'?DateTimeZone'], +'date_date_set' => ['DateTime', 'object'=>'DateTime', 'year'=>'int', 'month'=>'int', 'day'=>'int'], +'date_default_timezone_get' => ['string'], +'date_default_timezone_set' => ['bool', 'timezoneId'=>'string'], +'date_diff' => ['DateInterval', 'baseObject'=>'DateTimeInterface', 'targetObject'=>'DateTimeInterface', 'absolute='=>'bool'], +'date_format' => ['string', 'object'=>'DateTimeInterface', 'format'=>'string'], +'date_get_last_errors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], +'date_interval_create_from_date_string' => ['DateInterval', 'datetime'=>'string'], +'date_interval_format' => ['string', 'object'=>'DateInterval', 'format'=>'string'], +'date_isodate_set' => ['DateTime|false', 'object'=>'DateTime', 'year'=>'int', 'week'=>'int', 'dayOfWeek='=>'int|mixed'], +'date_modify' => ['DateTime|false', 'object'=>'DateTime', 'modifier'=>'string'], +'date_offset_get' => ['int', 'object'=>'DateTimeInterface'], +'date_parse' => ['array', 'datetime'=>'string'], +'date_parse_from_format' => ['array', 'format'=>'string', 'datetime'=>'string'], +'date_sub' => ['DateTime', 'object'=>'DateTime', 'interval'=>'DateInterval'], +'date_sun_info' => ['array', 'timestamp'=>'int', 'latitude'=>'float', 'longitude'=>'float'], +'date_sunrise' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'?float', 'longitude='=>'?float', 'zenith='=>'?float', 'utcOffset='=>'?float'], +'date_sunset' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'?float', 'longitude='=>'?float', 'zenith='=>'?float', 'utcOffset='=>'?float'], +'date_time_set' => ['DateTime', 'object'=>'', 'hour'=>'', 'minute'=>'', 'second='=>'', 'microsecond='=>''], +'date_timestamp_get' => ['int', 'object'=>'DateTimeInterface'], +'date_timestamp_set' => ['DateTime', 'object'=>'DateTime', 'timestamp'=>'int'], +'date_timezone_get' => ['DateTimeZone|false', 'object'=>'DateTimeInterface'], +'date_timezone_set' => ['DateTime', 'object'=>'DateTime', 'timezone'=>'DateTimeZone'], +'datefmt_create' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'DateTimeZone|IntlTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], +'datefmt_format' => ['string|false', 'formatter'=>'IntlDateFormatter', 'datetime'=>'DateTime|IntlCalendar|array|int'], +'datefmt_format_object' => ['string|false', 'datetime'=>'object', 'format='=>'mixed', 'locale='=>'?string'], +'datefmt_get_calendar' => ['int', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_calendar_object' => ['IntlCalendar|false|null', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_datetype' => ['int', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_error_code' => ['int', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_error_message' => ['string', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_locale' => ['string|false', 'formatter'=>'IntlDateFormatter', 'type='=>'int'], +'datefmt_get_pattern' => ['string', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_timetype' => ['int', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_timezone' => ['IntlTimeZone|false', 'formatter'=>'IntlDateFormatter'], +'datefmt_get_timezone_id' => ['string|false', 'formatter'=>'IntlDateFormatter'], +'datefmt_is_lenient' => ['bool', 'formatter'=>'IntlDateFormatter'], +'datefmt_localtime' => ['array|false', 'formatter'=>'IntlDateFormatter', 'string'=>'string', '&rw_offset='=>'int'], +'datefmt_parse' => ['int|false', 'formatter'=>'IntlDateFormatter', 'string'=>'string', '&rw_offset='=>'int'], +'datefmt_set_calendar' => ['bool', 'formatter'=>'IntlDateFormatter', 'calendar'=>'IntlCalendar|int|null'], +'datefmt_set_lenient' => ['void', 'formatter'=>'IntlDateFormatter', 'lenient'=>'bool'], +'datefmt_set_pattern' => ['bool', 'formatter'=>'IntlDateFormatter', 'pattern'=>'string'], +'datefmt_set_timezone' => ['false|null', 'formatter'=>'IntlDateFormatter', 'timezone'=>'IntlTimeZone|DateTimeZone|string|null'], +'DateInterval::__construct' => ['void', 'spec'=>'string'], +'DateInterval::__set_state' => ['DateInterval', 'array'=>'array'], +'DateInterval::__wakeup' => ['void'], +'DateInterval::createFromDateString' => ['DateInterval|false', 'time'=>'string'], +'DateInterval::format' => ['string', 'format'=>'string'], +'DatePeriod::__construct' => ['void', 'start'=>'DateTimeInterface', 'interval'=>'DateInterval', 'recur'=>'int', 'options='=>'int'], +'DatePeriod::__construct\'1' => ['void', 'start'=>'DateTimeInterface', 'interval'=>'DateInterval', 'end'=>'DateTimeInterface', 'options='=>'int'], +'DatePeriod::__construct\'2' => ['void', 'iso'=>'string', 'options='=>'int'], +'DatePeriod::__wakeup' => ['void'], +'DatePeriod::getDateInterval' => ['DateInterval'], +'DatePeriod::getEndDate' => ['?DateTimeInterface'], +'DatePeriod::getStartDate' => ['DateTimeInterface'], +'DateTime::__construct' => ['void', 'time='=>'string'], +'DateTime::__construct\'1' => ['void', 'time'=>'?string', 'timezone'=>'?DateTimeZone'], +'DateTime::__wakeup' => ['void'], +'DateTime::add' => ['static', 'interval'=>'DateInterval'], +'DateTime::createFromFormat' => ['static|false', 'format'=>'string', 'time'=>'string', 'timezone='=>'?DateTimeZone'], +'DateTime::createFromImmutable' => ['static', 'object'=>'DateTimeImmutable'], +'DateTime::createFromInterface' => ['static', 'object' => 'DateTimeInterface'], +'DateTime::diff' => ['DateInterval', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], +'DateTime::format' => ['string', 'format'=>'string'], +'DateTime::getLastErrors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], +'DateTime::getOffset' => ['int'], +'DateTime::getTimestamp' => ['int'], +'DateTime::getTimezone' => ['DateTimeZone|false'], +'DateTime::modify' => ['static|false', 'modify'=>'string'], +'DateTime::setDate' => ['static', 'year'=>'int', 'month'=>'int', 'day'=>'int'], +'DateTime::setISODate' => ['static', 'year'=>'int', 'week'=>'int', 'day='=>'int'], +'DateTime::setTime' => ['static', 'hour'=>'int', 'minute'=>'int', 'second='=>'int', 'microseconds='=>'int'], +'DateTime::setTimestamp' => ['static', 'unixtimestamp'=>'int'], +'DateTime::setTimezone' => ['static', 'timezone'=>'DateTimeZone'], +'DateTime::sub' => ['static', 'interval'=>'DateInterval'], +'DateTimeImmutable::__wakeup' => ['void'], +'DateTimeImmutable::createFromInterface' => ['static', 'object' => 'DateTimeInterface'], +'DateTimeImmutable::getLastErrors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], +'DateTimeInterface::diff' => ['DateInterval', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], +'DateTimeInterface::format' => ['string', 'format'=>'string'], +'DateTimeInterface::getOffset' => ['int'], +'DateTimeInterface::getTimestamp' => ['int'], +'DateTimeInterface::getTimezone' => ['DateTimeZone|false'], +'DateTimeInterface::__serialize' => ['array'], +'DateTimeInterface::__unserialize' => ['void', 'data'=>'array'], +'DateTimeZone::__construct' => ['void', 'timezone'=>'string'], +'DateTimeZone::__set_state' => ['DateTimeZone', 'array'=>'array'], +'DateTimeZone::__wakeup' => ['void'], +'DateTimeZone::getLocation' => ['array|false'], +'DateTimeZone::getName' => ['string'], +'DateTimeZone::getOffset' => ['int', 'datetime'=>'DateTimeInterface'], +'DateTimeZone::getTransitions' => ['list|false', 'timestamp_begin='=>'int', 'timestamp_end='=>'int'], +'DateTimeZone::listAbbreviations' => ['array>'], +'DateTimeZone::listIdentifiers' => ['list', 'timezoneGroup='=>'int', 'countryCode='=>'string|null'], +'db2_autocommit' => ['mixed', 'connection'=>'resource', 'value='=>'int'], +'db2_bind_param' => ['bool', 'stmt'=>'resource', 'parameter_number'=>'int', 'variable_name'=>'string', 'parameter_type='=>'int', 'data_type='=>'int', 'precision='=>'int', 'scale='=>'int'], +'db2_client_info' => ['object|false', 'connection'=>'resource'], +'db2_close' => ['bool', 'connection'=>'resource'], +'db2_column_privileges' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'column_name='=>'string'], +'db2_columns' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'column_name='=>'string'], +'db2_commit' => ['bool', 'connection'=>'resource'], +'db2_conn_error' => ['string', 'connection='=>'resource'], +'db2_conn_errormsg' => ['string', 'connection='=>'resource'], +'db2_connect' => ['resource|false', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'options='=>'array'], +'db2_cursor_type' => ['int', 'stmt'=>'resource'], +'db2_escape_string' => ['string', 'string_literal'=>'string'], +'db2_exec' => ['resource|false', 'connection'=>'resource', 'statement'=>'string', 'options='=>'array'], +'db2_execute' => ['bool', 'stmt'=>'resource', 'parameters='=>'array'], +'db2_fetch_array' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], +'db2_fetch_assoc' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], +'db2_fetch_both' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], +'db2_fetch_object' => ['object|false', 'stmt'=>'resource', 'row_number='=>'int'], +'db2_fetch_row' => ['bool', 'stmt'=>'resource', 'row_number='=>'int'], +'db2_field_display_size' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_name' => ['string|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_num' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_precision' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_scale' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_type' => ['string|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_field_width' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_foreign_keys' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string'], +'db2_free_result' => ['bool', 'stmt'=>'resource'], +'db2_free_stmt' => ['bool', 'stmt'=>'resource'], +'db2_get_option' => ['string|false', 'resource'=>'resource', 'option'=>'string'], +'db2_last_insert_id' => ['string', 'resource'=>'resource'], +'db2_lob_read' => ['string|false', 'stmt'=>'resource', 'colnum'=>'int', 'length'=>'int'], +'db2_next_result' => ['resource|false', 'stmt'=>'resource'], +'db2_num_fields' => ['int|false', 'stmt'=>'resource'], +'db2_num_rows' => ['int', 'stmt'=>'resource'], +'db2_pclose' => ['bool', 'resource'=>'resource'], +'db2_pconnect' => ['resource|false', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'options='=>'array'], +'db2_prepare' => ['resource|false', 'connection'=>'resource', 'statement'=>'string', 'options='=>'array'], +'db2_primary_keys' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string'], +'db2_primarykeys' => [''], +'db2_procedure_columns' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'procedure'=>'string', 'parameter'=>'string'], +'db2_procedurecolumns' => [''], +'db2_procedures' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'procedure'=>'string'], +'db2_result' => ['mixed', 'stmt'=>'resource', 'column'=>'mixed'], +'db2_rollback' => ['bool', 'connection'=>'resource'], +'db2_server_info' => ['object|false', 'connection'=>'resource'], +'db2_set_option' => ['bool', 'resource'=>'resource', 'options'=>'array', 'type'=>'int'], +'db2_setoption' => [''], +'db2_special_columns' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string', 'scope'=>'int'], +'db2_specialcolumns' => [''], +'db2_statistics' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string', 'unique'=>'bool'], +'db2_stmt_error' => ['string', 'stmt='=>'resource'], +'db2_stmt_errormsg' => ['string', 'stmt='=>'resource'], +'db2_table_privileges' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string'], +'db2_tableprivileges' => [''], +'db2_tables' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'table_type='=>'string'], +'dba_close' => ['void', 'dba'=>'resource'], +'dba_delete' => ['bool', 'key'=>'string', 'dba'=>'resource'], +'dba_exists' => ['bool', 'key'=>'string', 'dba'=>'resource'], +'dba_fetch' => ['string|false', 'key'=>'string', 'skip'=>'int', 'dba'=>'resource'], +'dba_fetch\'1' => ['string|false', 'key'=>'string', 'skip'=>'resource'], +'dba_firstkey' => ['string', 'dba'=>'resource'], +'dba_handlers' => ['array', 'full_info='=>'bool'], +'dba_insert' => ['bool', 'key'=>'string', 'value'=>'string', 'dba'=>'resource'], +'dba_key_split' => ['array|false', 'key'=>'string|false|null'], +'dba_list' => ['array'], +'dba_nextkey' => ['string', 'dba'=>'resource'], +'dba_open' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'?string', 'permission='=>'int', 'map_size='=>'int', 'flags='=>'?int'], +'dba_optimize' => ['bool', 'dba'=>'resource'], +'dba_popen' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'?string', 'permission='=>'int', 'map_size='=>'int', 'flags='=>'?int'], +'dba_replace' => ['bool', 'key'=>'string', 'value'=>'string', 'dba'=>'resource'], +'dba_sync' => ['bool', 'dba'=>'resource'], +'dbase_add_record' => ['bool', 'dbase_identifier'=>'resource', 'record'=>'array'], +'dbase_close' => ['bool', 'dbase_identifier'=>'resource'], +'dbase_create' => ['resource|false', 'filename'=>'string', 'fields'=>'array'], +'dbase_delete_record' => ['bool', 'dbase_identifier'=>'resource', 'record_number'=>'int'], +'dbase_get_header_info' => ['array', 'dbase_identifier'=>'resource'], +'dbase_get_record' => ['array', 'dbase_identifier'=>'resource', 'record_number'=>'int'], +'dbase_get_record_with_names' => ['array', 'dbase_identifier'=>'resource', 'record_number'=>'int'], +'dbase_numfields' => ['int', 'dbase_identifier'=>'resource'], +'dbase_numrecords' => ['int', 'dbase_identifier'=>'resource'], +'dbase_open' => ['resource|false', 'filename'=>'string', 'mode'=>'int'], +'dbase_pack' => ['bool', 'dbase_identifier'=>'resource'], +'dbase_replace_record' => ['bool', 'dbase_identifier'=>'resource', 'record'=>'array', 'record_number'=>'int'], +'dbplus_add' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_aql' => ['resource', 'query'=>'string', 'server='=>'string', 'dbpath='=>'string'], +'dbplus_chdir' => ['string', 'newdir='=>'string'], +'dbplus_close' => ['mixed', 'relation'=>'resource'], +'dbplus_curr' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_errcode' => ['string', 'errno='=>'int'], +'dbplus_errno' => ['int'], +'dbplus_find' => ['int', 'relation'=>'resource', 'constraints'=>'array', 'tuple'=>'mixed'], +'dbplus_first' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_flush' => ['int', 'relation'=>'resource'], +'dbplus_freealllocks' => ['int'], +'dbplus_freelock' => ['int', 'relation'=>'resource', 'tuple'=>'string'], +'dbplus_freerlocks' => ['int', 'relation'=>'resource'], +'dbplus_getlock' => ['int', 'relation'=>'resource', 'tuple'=>'string'], +'dbplus_getunique' => ['int', 'relation'=>'resource', 'uniqueid'=>'int'], +'dbplus_info' => ['int', 'relation'=>'resource', 'key'=>'string', 'result'=>'array'], +'dbplus_last' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_lockrel' => ['int', 'relation'=>'resource'], +'dbplus_next' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_open' => ['resource', 'name'=>'string'], +'dbplus_prev' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_rchperm' => ['int', 'relation'=>'resource', 'mask'=>'int', 'user'=>'string', 'group'=>'string'], +'dbplus_rcreate' => ['resource', 'name'=>'string', 'domlist'=>'mixed', 'overwrite='=>'bool'], +'dbplus_rcrtexact' => ['mixed', 'name'=>'string', 'relation'=>'resource', 'overwrite='=>'bool'], +'dbplus_rcrtlike' => ['mixed', 'name'=>'string', 'relation'=>'resource', 'overwrite='=>'int'], +'dbplus_resolve' => ['array', 'relation_name'=>'string'], +'dbplus_restorepos' => ['int', 'relation'=>'resource', 'tuple'=>'array'], +'dbplus_rkeys' => ['mixed', 'relation'=>'resource', 'domlist'=>'mixed'], +'dbplus_ropen' => ['resource', 'name'=>'string'], +'dbplus_rquery' => ['resource', 'query'=>'string', 'dbpath='=>'string'], +'dbplus_rrename' => ['int', 'relation'=>'resource', 'name'=>'string'], +'dbplus_rsecindex' => ['mixed', 'relation'=>'resource', 'domlist'=>'mixed', 'type'=>'int'], +'dbplus_runlink' => ['int', 'relation'=>'resource'], +'dbplus_rzap' => ['int', 'relation'=>'resource'], +'dbplus_savepos' => ['int', 'relation'=>'resource'], +'dbplus_setindex' => ['int', 'relation'=>'resource', 'idx_name'=>'string'], +'dbplus_setindexbynumber' => ['int', 'relation'=>'resource', 'idx_number'=>'int'], +'dbplus_sql' => ['resource', 'query'=>'string', 'server='=>'string', 'dbpath='=>'string'], +'dbplus_tcl' => ['string', 'sid'=>'int', 'script'=>'string'], +'dbplus_tremove' => ['int', 'relation'=>'resource', 'tuple'=>'array', 'current='=>'array'], +'dbplus_undo' => ['int', 'relation'=>'resource'], +'dbplus_undoprepare' => ['int', 'relation'=>'resource'], +'dbplus_unlockrel' => ['int', 'relation'=>'resource'], +'dbplus_unselect' => ['int', 'relation'=>'resource'], +'dbplus_update' => ['int', 'relation'=>'resource', 'old'=>'array', 'new'=>'array'], +'dbplus_xlockrel' => ['int', 'relation'=>'resource'], +'dbplus_xunlockrel' => ['int', 'relation'=>'resource'], +'dbx_close' => ['int', 'link_identifier'=>'object'], +'dbx_compare' => ['int', 'row_a'=>'array', 'row_b'=>'array', 'column_key'=>'string', 'flags='=>'int'], +'dbx_connect' => ['object', 'module'=>'mixed', 'host'=>'string', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'persistent='=>'int'], +'dbx_error' => ['string', 'link_identifier'=>'object'], +'dbx_escape_string' => ['string', 'link_identifier'=>'object', 'text'=>'string'], +'dbx_fetch_row' => ['mixed', 'result_identifier'=>'object'], +'dbx_query' => ['mixed', 'link_identifier'=>'object', 'sql_statement'=>'string', 'flags='=>'int'], +'dbx_sort' => ['bool', 'result'=>'object', 'user_compare_function'=>'string'], +'dcgettext' => ['string', 'domain'=>'string', 'message'=>'string', 'category'=>'int'], +'dcngettext' => ['string', 'domain'=>'string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int', 'category'=>'int'], +'deaggregate' => ['', 'object'=>'object', 'class_name='=>'string'], +'debug_backtrace' => ['list', 'options='=>'int', 'limit='=>'int'], +'debug_print_backtrace' => ['void', 'options='=>'int', 'limit='=>'int'], +'debug_zval_dump' => ['void', 'value'=>'mixed', '...values='=>'mixed'], +'debugger_connect' => [''], +'debugger_connector_pid' => [''], +'debugger_get_server_start_time' => [''], +'debugger_print' => [''], +'debugger_start_debug' => [''], +'decbin' => ['string', 'num'=>'int'], +'dechex' => ['string', 'num'=>'int'], +'decoct' => ['string', 'num'=>'int'], +'define' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'case_insensitive='=>'bool'], +'define_syslog_variables' => ['void'], +'defined' => ['bool', 'constant_name'=>'string'], +'deflate_add' => ['string|false', 'context'=>'DeflateContext', 'data'=>'string', 'flush_mode='=>'int'], +'deflate_init' => ['DeflateContext|false', 'encoding'=>'int', 'options='=>'array'], +'deg2rad' => ['float', 'num'=>'float'], +'dgettext' => ['string', 'domain'=>'string', 'message'=>'string'], +'dio_close' => ['void', 'fd'=>'resource'], +'dio_fcntl' => ['mixed', 'fd'=>'resource', 'cmd'=>'int', 'args='=>'mixed'], +'dio_open' => ['resource|false', 'filename'=>'string', 'flags'=>'int', 'mode='=>'int'], +'dio_read' => ['string', 'fd'=>'resource', 'length='=>'int'], +'dio_seek' => ['int', 'fd'=>'resource', 'pos'=>'int', 'whence='=>'int'], +'dio_stat' => ['?array', 'fd'=>'resource'], +'dio_tcsetattr' => ['bool', 'fd'=>'resource', 'options'=>'array'], +'dio_truncate' => ['bool', 'fd'=>'resource', 'offset'=>'int'], +'dio_write' => ['int', 'fd'=>'resource', 'data'=>'string', 'length='=>'int'], +'dir' => ['Directory|false', 'directory'=>'string', 'context='=>'resource'], +'Directory::close' => ['void'], +'Directory::read' => ['string|false'], +'Directory::rewind' => ['void'], +'DirectoryIterator::__construct' => ['void', 'path'=>'string'], +'DirectoryIterator::__toString' => ['string'], +'DirectoryIterator::current' => ['DirectoryIterator'], +'DirectoryIterator::getATime' => ['int'], +'DirectoryIterator::getBasename' => ['string', 'suffix='=>'string'], +'DirectoryIterator::getCTime' => ['int'], +'DirectoryIterator::getExtension' => ['string'], +'DirectoryIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], +'DirectoryIterator::getFilename' => ['string'], +'DirectoryIterator::getGroup' => ['int'], +'DirectoryIterator::getInode' => ['int'], +'DirectoryIterator::getLinkTarget' => ['string'], +'DirectoryIterator::getMTime' => ['int'], +'DirectoryIterator::getOwner' => ['int'], +'DirectoryIterator::getPath' => ['string'], +'DirectoryIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], +'DirectoryIterator::getPathname' => ['string'], +'DirectoryIterator::getPerms' => ['int'], +'DirectoryIterator::getRealPath' => ['string'], +'DirectoryIterator::getSize' => ['int'], +'DirectoryIterator::getType' => ['string'], +'DirectoryIterator::isDir' => ['bool'], +'DirectoryIterator::isDot' => ['bool'], +'DirectoryIterator::isExecutable' => ['bool'], +'DirectoryIterator::isFile' => ['bool'], +'DirectoryIterator::isLink' => ['bool'], +'DirectoryIterator::isReadable' => ['bool'], +'DirectoryIterator::isWritable' => ['bool'], +'DirectoryIterator::key' => ['string'], +'DirectoryIterator::next' => ['void'], +'DirectoryIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], +'DirectoryIterator::rewind' => ['void'], +'DirectoryIterator::seek' => ['void', 'position'=>'int'], +'DirectoryIterator::setFileClass' => ['void', 'class_name='=>'string'], +'DirectoryIterator::setInfoClass' => ['void', 'class_name='=>'string'], +'DirectoryIterator::valid' => ['bool'], +'dirname' => ['string', 'path'=>'string', 'levels='=>'int'], +'disk_free_space' => ['float|false', 'directory'=>'string'], +'disk_total_space' => ['float|false', 'directory'=>'string'], +'diskfreespace' => ['float|false', 'directory'=>'string'], +'display_disabled_function' => [''], +'dl' => ['bool', 'extension_filename'=>'string'], +'dngettext' => ['string', 'domain'=>'string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int'], +'dns_check_record' => ['bool', 'hostname'=>'string', 'type='=>'string'], +'dns_get_mx' => ['bool', 'hostname'=>'string', '&w_hosts'=>'array', '&w_weights='=>'array'], +'dns_get_record' => ['list|false', 'hostname'=>'string', 'type='=>'int', '&w_authoritative_name_servers='=>'array', '&w_additional_records='=>'array', 'raw='=>'bool'], +'dom_document_relaxNG_validate_file' => ['bool', 'filename'=>'string'], +'dom_document_relaxNG_validate_xml' => ['bool', 'source'=>'string'], +'dom_document_schema_validate' => ['bool', 'source'=>'string', 'flags'=>'int'], +'dom_document_schema_validate_file' => ['bool', 'filename'=>'string', 'flags'=>'int'], +'dom_document_xinclude' => ['int', 'options'=>'int'], +'dom_import_simplexml' => ['DOMElement', 'node'=>'SimpleXMLElement'], +'dom_xpath_evaluate' => ['', 'expr'=>'string', 'context'=>'DOMNode', 'registernodens'=>'bool'], +'dom_xpath_query' => ['DOMNodeList', 'expr'=>'string', 'context'=>'DOMNode', 'registernodens'=>'bool'], +'dom_xpath_register_ns' => ['bool', 'prefix'=>'string', 'uri'=>'string'], +'dom_xpath_register_php_functions' => [''], +'DomainException::__clone' => ['void'], +'DomainException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'DomainException::__toString' => ['string'], +'DomainException::__wakeup' => ['void'], +'DomainException::getCode' => ['int'], +'DomainException::getFile' => ['string'], +'DomainException::getLine' => ['int'], +'DomainException::getMessage' => ['string'], +'DomainException::getPrevious' => ['?Throwable'], +'DomainException::getTrace' => ['list\',args?:array}>'], +'DomainException::getTraceAsString' => ['string'], +'DOMAttr::__construct' => ['void', 'name'=>'string', 'value='=>'string'], +'DOMAttr::getLineNo' => ['int'], +'DOMAttr::getNodePath' => ['?string'], +'DOMAttr::hasAttributes' => ['bool'], +'DOMAttr::hasChildNodes' => ['bool'], +'DOMAttr::insertBefore' => ['DOMNode', 'newnode'=>'DOMNode', 'refnode='=>'DOMNode'], +'DOMAttr::isDefaultNamespace' => ['bool', 'namespaceuri'=>'string'], +'DOMAttr::isId' => ['bool'], +'DOMAttr::isSameNode' => ['bool', 'node'=>'DOMNode'], +'DOMAttr::isSupported' => ['bool', 'feature'=>'string', 'version'=>'string'], +'DOMAttr::lookupNamespaceUri' => ['string|null', 'prefix'=>'string|null'], +'DOMAttr::lookupPrefix' => ['string|null', 'namespaceuri'=>'string'], +'DOMAttr::normalize' => ['void'], +'DOMAttr::removeChild' => ['DOMNode', 'oldnode'=>'DOMNode'], +'DOMAttr::replaceChild' => ['DOMNode', 'newnode'=>'DOMNode', 'oldnode'=>'DOMNode'], +'DomAttribute::name' => ['string'], +'DomAttribute::set_value' => ['bool', 'content'=>'string'], +'DomAttribute::specified' => ['bool'], +'DomAttribute::value' => ['string'], +'DOMCdataSection::__construct' => ['void', 'value'=>'string'], +'DOMCharacterData::appendData' => ['true', 'data'=>'string'], +'DOMCharacterData::deleteData' => ['bool', 'offset'=>'int', 'count'=>'int'], +'DOMCharacterData::insertData' => ['bool', 'offset'=>'int', 'data'=>'string'], +'DOMCharacterData::replaceData' => ['bool', 'offset'=>'int', 'count'=>'int', 'data'=>'string'], +'DOMCharacterData::substringData' => ['string', 'offset'=>'int', 'count'=>'int'], +'DOMComment::__construct' => ['void', 'value='=>'string'], +'DOMDocument::__construct' => ['void', 'version='=>'string', 'encoding='=>'string'], +'DOMDocument::createAttribute' => ['DOMAttr|false', 'name'=>'string'], +'DOMDocument::createAttributeNS' => ['DOMAttr|false', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string'], +'DOMDocument::createCDATASection' => ['DOMCDATASection|false', 'data'=>'string'], +'DOMDocument::createComment' => ['DOMComment', 'data'=>'string'], +'DOMDocument::createDocumentFragment' => ['DOMDocumentFragment'], +'DOMDocument::createElement' => ['DOMElement|false', 'name'=>'string', 'value='=>'string'], +'DOMDocument::createElementNS' => ['DOMElement|false', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string', 'value='=>'string'], +'DOMDocument::createEntityReference' => ['DOMEntityReference|false', 'name'=>'string'], +'DOMDocument::createProcessingInstruction' => ['DOMProcessingInstruction|false', 'target'=>'string', 'data='=>'string'], +'DOMDocument::createTextNode' => ['DOMText|false', 'content'=>'string'], +'DOMDocument::getElementById' => ['?DOMElement', 'elementid'=>'string'], +'DOMDocument::getElementsByTagName' => ['DOMNodeList', 'name'=>'string'], +'DOMDocument::getElementsByTagNameNS' => ['DOMNodeList', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMDocument::importNode' => ['DOMNode|false', 'importednode'=>'DOMNode', 'deep='=>'bool'], +'DOMDocument::load' => ['DOMDocument|bool', 'filename'=>'string', 'options='=>'int'], +'DOMDocument::loadHTML' => ['bool', 'source'=>'non-empty-string', 'options='=>'int'], +'DOMDocument::loadHTMLFile' => ['bool', 'filename'=>'string', 'options='=>'int'], +'DOMDocument::loadXML' => ['DOMDocument|bool', 'source'=>'non-empty-string', 'options='=>'int'], +'DOMDocument::normalizeDocument' => ['void'], +'DOMDocument::registerNodeClass' => ['bool', 'baseclass'=>'string', 'extendedclass'=>'string'], +'DOMDocument::relaxNGValidate' => ['bool', 'filename'=>'string'], +'DOMDocument::relaxNGValidateSource' => ['bool', 'source'=>'string'], +'DOMDocument::save' => ['int|false', 'filename'=>'string', 'options='=>'int'], +'DOMDocument::saveHTML' => ['string|false', 'node='=>'?DOMNode'], +'DOMDocument::saveHTMLFile' => ['int|false', 'filename'=>'string'], +'DOMDocument::saveXML' => ['string|false', 'node='=>'?DOMNode', 'options='=>'int'], +'DOMDocument::schemaValidate' => ['bool', 'filename'=>'string', 'flags='=>'int'], +'DOMDocument::schemaValidateSource' => ['bool', 'source'=>'string', 'flags='=>'int'], +'DOMDocument::validate' => ['bool'], +'DOMDocument::xinclude' => ['int', 'options='=>'int'], +'DOMDocumentFragment::__construct' => ['void'], +'DOMDocumentFragment::appendXML' => ['bool', 'data'=>'string'], +'DOMElement::__construct' => ['void', 'name'=>'string', 'value='=>'string', 'uri='=>'string'], +'DOMElement::getAttribute' => ['string', 'name'=>'string'], +'DOMElement::getAttributeNode' => ['DOMAttr', 'name'=>'string'], +'DOMElement::getAttributeNodeNS' => ['DOMAttr', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMElement::getAttributeNS' => ['string', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMElement::getElementsByTagName' => ['DOMNodeList', 'name'=>'string'], +'DOMElement::getElementsByTagNameNS' => ['DOMNodeList', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMElement::hasAttribute' => ['bool', 'name'=>'string'], +'DOMElement::hasAttributeNS' => ['bool', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMElement::removeAttribute' => ['bool', 'name'=>'string'], +'DOMElement::removeAttributeNode' => ['bool', 'oldnode'=>'DOMAttr'], +'DOMElement::removeAttributeNS' => ['bool', 'namespaceuri'=>'string|null', 'localname'=>'string'], +'DOMElement::setAttribute' => ['DOMAttr|false', 'name'=>'string', 'value'=>'string'], +'DOMElement::setAttributeNode' => ['?DOMAttr', 'attr'=>'DOMAttr'], +'DOMElement::setAttributeNodeNS' => ['DOMAttr', 'attr'=>'DOMAttr'], +'DOMElement::setAttributeNS' => ['void', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string', 'value'=>'string'], +'DOMElement::setIdAttribute' => ['void', 'name'=>'string', 'isid'=>'bool'], +'DOMElement::setIdAttributeNode' => ['void', 'attr'=>'DOMAttr', 'isid'=>'bool'], +'DOMElement::setIdAttributeNS' => ['void', 'namespaceuri'=>'string', 'localname'=>'string', 'isid'=>'bool'], +'DOMEntityReference::__construct' => ['void', 'name'=>'string'], +'DOMImplementation::__construct' => ['void'], +'DOMImplementation::createDocument' => ['DOMDocument', 'namespaceuri='=>'string', 'qualifiedname='=>'string', 'doctype='=>'DOMDocumentType'], +'DOMImplementation::createDocumentType' => ['DOMDocumentType', 'qualifiedname='=>'string', 'publicid='=>'string', 'systemid='=>'string'], +'DOMImplementation::hasFeature' => ['bool', 'feature'=>'string', 'version'=>'string'], +'DOMNamedNodeMap::count' => ['int'], +'DOMNamedNodeMap::getNamedItem' => ['?DOMNode', 'name'=>'string'], +'DOMNamedNodeMap::getNamedItemNS' => ['?DOMNode', 'namespaceuri'=>'string', 'localname'=>'string'], +'DOMNamedNodeMap::item' => ['?DOMNode', 'index'=>'int'], +'DOMNode::appendChild' => ['DOMNode', 'newnode'=>'DOMNode'], +'DOMNode::C14N' => ['string', 'exclusive='=>'bool', 'with_comments='=>'bool', 'xpath='=>'array', 'ns_prefixes='=>'array'], +'DOMNode::C14NFile' => ['int|false', 'uri='=>'string', 'exclusive='=>'bool', 'with_comments='=>'bool', 'xpath='=>'array', 'ns_prefixes='=>'array'], +'DOMNode::cloneNode' => ['DOMNode', 'deep='=>'bool'], +'DOMNode::getLineNo' => ['int'], +'DOMNode::getNodePath' => ['?string'], +'DOMNode::hasAttributes' => ['bool'], +'DOMNode::hasChildNodes' => ['bool'], +'DOMNode::insertBefore' => ['DOMNode', 'newnode'=>'DOMNode', 'refnode='=>'DOMNode|null'], +'DOMNode::isDefaultNamespace' => ['bool', 'namespaceuri'=>'string'], +'DOMNode::isSameNode' => ['bool', 'node'=>'DOMNode'], +'DOMNode::isSupported' => ['bool', 'feature'=>'string', 'version'=>'string'], +'DOMNode::lookupNamespaceURI' => ['string|null', 'prefix'=>'string|null'], +'DOMNode::lookupPrefix' => ['string|null', 'namespaceuri'=>'string'], +'DOMNode::normalize' => ['void'], +'DOMNode::removeChild' => ['DOMNode', 'oldnode'=>'DOMNode'], +'DOMNode::replaceChild' => ['DOMNode|false', 'newnode'=>'DOMNode', 'oldnode'=>'DOMNode'], +'DOMNodeList::count' => ['int'], +'DOMNodeList::item' => ['?DOMNode', 'index'=>'int'], +'DOMProcessingInstruction::__construct' => ['void', 'name'=>'string', 'value'=>'string'], +'DOMText::__construct' => ['void', 'value='=>'string'], +'DOMText::isElementContentWhitespace' => ['bool'], +'DOMText::isWhitespaceInElementContent' => ['bool'], +'DOMText::splitText' => ['DOMText', 'offset'=>'int'], +'domxml_new_doc' => ['DomDocument', 'version'=>'string'], +'domxml_open_file' => ['DomDocument', 'filename'=>'string', 'mode='=>'int', 'error='=>'array'], +'domxml_open_mem' => ['DomDocument', 'string'=>'string', 'mode='=>'int', 'error='=>'array'], +'domxml_version' => ['string'], +'domxml_xmltree' => ['DomDocument', 'string'=>'string'], +'domxml_xslt_stylesheet' => ['DomXsltStylesheet', 'xsl_buf'=>'string'], +'domxml_xslt_stylesheet_doc' => ['DomXsltStylesheet', 'xsl_doc'=>'DOMDocument'], +'domxml_xslt_stylesheet_file' => ['DomXsltStylesheet', 'xsl_file'=>'string'], +'domxml_xslt_version' => ['int'], +'DOMXPath::__construct' => ['void', 'doc'=>'DOMDocument'], +'DOMXPath::evaluate' => ['mixed', 'expression'=>'string', 'contextnode='=>'?DOMNode', 'registernodens='=>'bool'], +'DOMXPath::query' => ['DOMNodeList|false', 'expression'=>'string', 'contextnode='=>'DOMNode|null', 'registernodens='=>'bool'], +'DOMXPath::registerNamespace' => ['bool', 'prefix'=>'string', 'namespaceuri'=>'string'], +'DOMXPath::registerPhpFunctions' => ['void', 'restrict='=>'mixed'], +'DomXsltStylesheet::process' => ['DomDocument', 'xml_doc'=>'DOMDocument', 'xslt_params='=>'array', 'is_xpath_param='=>'bool', 'profile_filename='=>'string'], +'DomXsltStylesheet::result_dump_file' => ['string', 'xmldoc'=>'DOMDocument', 'filename'=>'string'], +'DomXsltStylesheet::result_dump_mem' => ['string', 'xmldoc'=>'DOMDocument'], +'DOTNET::__call' => ['mixed', 'name'=>'string', 'args'=>''], +'DOTNET::__construct' => ['void', 'assembly_name'=>'string', 'datatype_name'=>'string', 'codepage='=>'int'], +'DOTNET::__get' => ['mixed', 'name'=>'string'], +'DOTNET::__set' => ['void', 'name'=>'string', 'value'=>''], +'dotnet_load' => ['int', 'assembly_name'=>'string', 'datatype_name='=>'string', 'codepage='=>'int'], +'doubleval' => ['float', 'value'=>'mixed'], +'Ds\Collection::clear' => ['void'], +'Ds\Collection::copy' => ['Ds\Collection'], +'Ds\Collection::isEmpty' => ['bool'], +'Ds\Collection::toArray' => ['array'], +'Ds\Deque::__construct' => ['void', 'values='=>'mixed'], +'Ds\Deque::allocate' => ['void', 'capacity'=>'int'], +'Ds\Deque::apply' => ['void', 'callback'=>'callable'], +'Ds\Deque::capacity' => ['int'], +'Ds\Deque::clear' => ['void'], +'Ds\Deque::contains' => ['bool', '...values='=>'mixed'], +'Ds\Deque::copy' => ['Ds\Deque'], +'Ds\Deque::count' => ['int'], +'Ds\Deque::filter' => ['Ds\Deque', 'callback='=>'callable'], +'Ds\Deque::find' => ['mixed', 'value'=>'mixed'], +'Ds\Deque::first' => ['mixed'], +'Ds\Deque::get' => ['void', 'index'=>'int'], +'Ds\Deque::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], +'Ds\Deque::isEmpty' => ['bool'], +'Ds\Deque::join' => ['string', 'glue='=>'string'], +'Ds\Deque::jsonSerialize' => ['array'], +'Ds\Deque::last' => ['mixed'], +'Ds\Deque::map' => ['Ds\Deque', 'callback'=>'callable'], +'Ds\Deque::merge' => ['Ds\Deque', 'values'=>'mixed'], +'Ds\Deque::pop' => ['mixed'], +'Ds\Deque::push' => ['void', '...values='=>'mixed'], +'Ds\Deque::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], +'Ds\Deque::remove' => ['mixed', 'index'=>'int'], +'Ds\Deque::reverse' => ['void'], +'Ds\Deque::reversed' => ['Ds\Deque'], +'Ds\Deque::rotate' => ['void', 'rotations'=>'int'], +'Ds\Deque::set' => ['void', 'index'=>'int', 'value'=>'mixed'], +'Ds\Deque::shift' => ['mixed'], +'Ds\Deque::slice' => ['Ds\Deque', 'index'=>'int', 'length='=>'?int'], +'Ds\Deque::sort' => ['void', 'comparator='=>'callable'], +'Ds\Deque::sorted' => ['Ds\Deque', 'comparator='=>'callable'], +'Ds\Deque::sum' => ['int|float'], +'Ds\Deque::toArray' => ['array'], +'Ds\Deque::unshift' => ['void', '...values='=>'mixed'], +'Ds\Hashable::equals' => ['bool', 'object'=>'mixed'], +'Ds\Hashable::hash' => ['mixed'], +'Ds\Map::__construct' => ['void', 'values='=>'mixed'], +'Ds\Map::allocate' => ['void', 'capacity'=>'int'], +'Ds\Map::apply' => ['void', 'callback'=>'callable'], +'Ds\Map::capacity' => ['int'], +'Ds\Map::clear' => ['void'], +'Ds\Map::copy' => ['Ds\Map'], +'Ds\Map::count' => ['int'], +'Ds\Map::diff' => ['Ds\Map', 'map'=>'Ds\Map'], +'Ds\Map::filter' => ['Ds\Map', 'callback='=>'callable'], +'Ds\Map::first' => ['Ds\Pair'], +'Ds\Map::get' => ['mixed', 'key'=>'mixed', 'default='=>'mixed'], +'Ds\Map::hasKey' => ['bool', 'key'=>'mixed'], +'Ds\Map::hasValue' => ['bool', 'value'=>'mixed'], +'Ds\Map::intersect' => ['Ds\Map', 'map'=>'Ds\Map'], +'Ds\Map::isEmpty' => ['bool'], +'Ds\Map::jsonSerialize' => ['array'], +'Ds\Map::keys' => ['Ds\Set'], +'Ds\Map::ksort' => ['void', 'comparator='=>'callable'], +'Ds\Map::ksorted' => ['Ds\Map', 'comparator='=>'callable'], +'Ds\Map::last' => ['Ds\Pair'], +'Ds\Map::map' => ['Ds\Map', 'callback'=>'callable'], +'Ds\Map::merge' => ['Ds\Map', 'values'=>'mixed'], +'Ds\Map::pairs' => ['Ds\Sequence'], +'Ds\Map::put' => ['void', 'key'=>'mixed', 'value'=>'mixed'], +'Ds\Map::putAll' => ['void', 'values'=>'mixed'], +'Ds\Map::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], +'Ds\Map::remove' => ['mixed', 'key'=>'mixed', 'default='=>'mixed'], +'Ds\Map::reverse' => ['void'], +'Ds\Map::reversed' => ['Ds\Map'], +'Ds\Map::skip' => ['Ds\Pair', 'position'=>'int'], +'Ds\Map::slice' => ['Ds\Map', 'index'=>'int', 'length='=>'?int'], +'Ds\Map::sort' => ['void', 'comparator='=>'callable'], +'Ds\Map::sorted' => ['Ds\Map', 'comparator='=>'callable'], +'Ds\Map::sum' => ['int|float'], +'Ds\Map::toArray' => ['array'], +'Ds\Map::union' => ['Ds\Map', 'map'=>'Ds\Map'], +'Ds\Map::values' => ['Ds\Sequence'], +'Ds\Map::xor' => ['Ds\Map', 'map'=>'Ds\Map'], +'Ds\Pair::__construct' => ['void', 'key='=>'mixed', 'value='=>'mixed'], +'Ds\Pair::clear' => ['void'], +'Ds\Pair::copy' => ['Ds\Pair'], +'Ds\Pair::isEmpty' => ['bool'], +'Ds\Pair::jsonSerialize' => ['array'], +'Ds\Pair::toArray' => ['array'], +'Ds\PriorityQueue::__construct' => ['void'], +'Ds\PriorityQueue::allocate' => ['void', 'capacity'=>'int'], +'Ds\PriorityQueue::capacity' => ['int'], +'Ds\PriorityQueue::clear' => ['void'], +'Ds\PriorityQueue::copy' => ['Ds\PriorityQueue'], +'Ds\PriorityQueue::count' => ['int'], +'Ds\PriorityQueue::isEmpty' => ['bool'], +'Ds\PriorityQueue::jsonSerialize' => ['array'], +'Ds\PriorityQueue::peek' => ['mixed'], +'Ds\PriorityQueue::pop' => ['mixed'], +'Ds\PriorityQueue::push' => ['void', 'value'=>'mixed', 'priority'=>'int'], +'Ds\PriorityQueue::toArray' => ['array'], +'Ds\Queue::__construct' => ['void', 'values='=>'mixed'], +'Ds\Queue::allocate' => ['void', 'capacity'=>'int'], +'Ds\Queue::capacity' => ['int'], +'Ds\Queue::clear' => ['void'], +'Ds\Queue::copy' => ['Ds\Queue'], +'Ds\Queue::count' => ['int'], +'Ds\Queue::isEmpty' => ['bool'], +'Ds\Queue::jsonSerialize' => ['array'], +'Ds\Queue::peek' => ['mixed'], +'Ds\Queue::pop' => ['mixed'], +'Ds\Queue::push' => ['void', '...values='=>'mixed'], +'Ds\Queue::toArray' => ['array'], +'Ds\Sequence::allocate' => ['void', 'capacity'=>'int'], +'Ds\Sequence::apply' => ['void', 'callback'=>'callable'], +'Ds\Sequence::capacity' => ['int'], +'Ds\Sequence::contains' => ['bool', '...values='=>'mixed'], +'Ds\Sequence::filter' => ['Ds\Sequence', 'callback='=>'callable'], +'Ds\Sequence::find' => ['mixed', 'value'=>'mixed'], +'Ds\Sequence::first' => ['mixed'], +'Ds\Sequence::get' => ['mixed', 'index'=>'int'], +'Ds\Sequence::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], +'Ds\Sequence::join' => ['string', 'glue='=>'string'], +'Ds\Sequence::last' => ['void'], +'Ds\Sequence::map' => ['Ds\Sequence', 'callback'=>'callable'], +'Ds\Sequence::merge' => ['Ds\Sequence', 'values'=>'mixed'], +'Ds\Sequence::pop' => ['mixed'], +'Ds\Sequence::push' => ['void', '...values='=>'mixed'], +'Ds\Sequence::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], +'Ds\Sequence::remove' => ['mixed', 'index'=>'int'], +'Ds\Sequence::reverse' => ['void'], +'Ds\Sequence::reversed' => ['Ds\Sequence'], +'Ds\Sequence::rotate' => ['void', 'rotations'=>'int'], +'Ds\Sequence::set' => ['void', 'index'=>'int', 'value'=>'mixed'], +'Ds\Sequence::shift' => ['mixed'], +'Ds\Sequence::slice' => ['Ds\Sequence', 'index'=>'int', 'length='=>'?int'], +'Ds\Sequence::sort' => ['void', 'comparator='=>'callable'], +'Ds\Sequence::sorted' => ['Ds\Sequence', 'comparator='=>'callable'], +'Ds\Sequence::sum' => ['int|float'], +'Ds\Sequence::unshift' => ['void', '...values='=>'mixed'], +'Ds\Set::__construct' => ['void', 'values='=>'mixed'], +'Ds\Set::add' => ['void', '...values='=>'mixed'], +'Ds\Set::allocate' => ['void', 'capacity'=>'int'], +'Ds\Set::capacity' => ['int'], +'Ds\Set::clear' => ['void'], +'Ds\Set::contains' => ['bool', '...values='=>'mixed'], +'Ds\Set::copy' => ['Ds\Set'], +'Ds\Set::count' => ['int'], +'Ds\Set::diff' => ['Ds\Set', 'set'=>'Ds\Set'], +'Ds\Set::filter' => ['Ds\Set', 'callback='=>'callable'], +'Ds\Set::first' => ['mixed'], +'Ds\Set::get' => ['mixed', 'index'=>'int'], +'Ds\Set::intersect' => ['Ds\Set', 'set'=>'Ds\Set'], +'Ds\Set::isEmpty' => ['bool'], +'Ds\Set::join' => ['string', 'glue='=>'string'], +'Ds\Set::jsonSerialize' => ['array'], +'Ds\Set::last' => ['mixed'], +'Ds\Set::merge' => ['Ds\Set', 'values'=>'mixed'], +'Ds\Set::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], +'Ds\Set::remove' => ['void', '...values='=>'mixed'], +'Ds\Set::reverse' => ['void'], +'Ds\Set::reversed' => ['Ds\Set'], +'Ds\Set::slice' => ['Ds\Set', 'index'=>'int', 'length='=>'?int'], +'Ds\Set::sort' => ['void', 'comparator='=>'callable'], +'Ds\Set::sorted' => ['Ds\Set', 'comparator='=>'callable'], +'Ds\Set::sum' => ['int|float'], +'Ds\Set::toArray' => ['array'], +'Ds\Set::union' => ['Ds\Set', 'set'=>'Ds\Set'], +'Ds\Set::xor' => ['Ds\Set', 'set'=>'Ds\Set'], +'Ds\Stack::__construct' => ['void', 'values='=>'mixed'], +'Ds\Stack::allocate' => ['void', 'capacity'=>'int'], +'Ds\Stack::capacity' => ['int'], +'Ds\Stack::clear' => ['void'], +'Ds\Stack::copy' => ['Ds\Stack'], +'Ds\Stack::count' => ['int'], +'Ds\Stack::isEmpty' => ['bool'], +'Ds\Stack::jsonSerialize' => ['array'], +'Ds\Stack::peek' => ['mixed'], +'Ds\Stack::pop' => ['mixed'], +'Ds\Stack::push' => ['void', '...values='=>'mixed'], +'Ds\Stack::toArray' => ['array'], +'Ds\Vector::__construct' => ['void', 'values='=>'mixed'], +'Ds\Vector::allocate' => ['void', 'capacity'=>'int'], +'Ds\Vector::apply' => ['void', 'callback'=>'callable'], +'Ds\Vector::capacity' => ['int'], +'Ds\Vector::clear' => ['void'], +'Ds\Vector::contains' => ['bool', '...values='=>'mixed'], +'Ds\Vector::copy' => ['Ds\Vector'], +'Ds\Vector::count' => ['int'], +'Ds\Vector::filter' => ['Ds\Vector', 'callback='=>'callable'], +'Ds\Vector::find' => ['mixed', 'value'=>'mixed'], +'Ds\Vector::first' => ['mixed'], +'Ds\Vector::get' => ['mixed', 'index'=>'int'], +'Ds\Vector::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], +'Ds\Vector::isEmpty' => ['bool'], +'Ds\Vector::join' => ['string', 'glue='=>'string'], +'Ds\Vector::jsonSerialize' => ['array'], +'Ds\Vector::last' => ['mixed'], +'Ds\Vector::map' => ['Ds\Vector', 'callback'=>'callable'], +'Ds\Vector::merge' => ['Ds\Vector', 'values'=>'mixed'], +'Ds\Vector::pop' => ['mixed'], +'Ds\Vector::push' => ['void', '...values='=>'mixed'], +'Ds\Vector::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], +'Ds\Vector::remove' => ['mixed', 'index'=>'int'], +'Ds\Vector::reverse' => ['void'], +'Ds\Vector::reversed' => ['Ds\Vector'], +'Ds\Vector::rotate' => ['void', 'rotations'=>'int'], +'Ds\Vector::set' => ['void', 'index'=>'int', 'value'=>'mixed'], +'Ds\Vector::shift' => ['mixed'], +'Ds\Vector::slice' => ['Ds\Vector', 'index'=>'int', 'length='=>'?int'], +'Ds\Vector::sort' => ['void', 'comparator='=>'callable'], +'Ds\Vector::sorted' => ['Ds\Vector', 'comparator='=>'callable'], +'Ds\Vector::sum' => ['int|float'], +'Ds\Vector::toArray' => ['array'], +'Ds\Vector::unshift' => ['void', '...values='=>'mixed'], +'easter_date' => ['int', 'year='=>'?int'], +'easter_days' => ['int', 'year='=>'?int', 'mode='=>'int'], +'echo' => ['void', 'arg1'=>'string', '...args='=>'string'], +'eio_busy' => ['resource', 'delay'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_cancel' => ['void', 'req'=>'resource'], +'eio_chmod' => ['resource', 'path'=>'string', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_chown' => ['resource', 'path'=>'string', 'uid'=>'int', 'gid='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_close' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_custom' => ['resource', 'execute'=>'callable', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_dup2' => ['resource', 'fd'=>'mixed', 'fd2'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_event_loop' => ['bool'], +'eio_fallocate' => ['resource', 'fd'=>'mixed', 'mode'=>'int', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_fchmod' => ['resource', 'fd'=>'mixed', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_fchown' => ['resource', 'fd'=>'mixed', 'uid'=>'int', 'gid='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_fdatasync' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_fstat' => ['resource', 'fd'=>'mixed', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_fstatvfs' => ['resource', 'fd'=>'mixed', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_fsync' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_ftruncate' => ['resource', 'fd'=>'mixed', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_futime' => ['resource', 'fd'=>'mixed', 'atime'=>'float', 'mtime'=>'float', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_get_event_stream' => ['mixed'], +'eio_get_last_error' => ['string', 'req'=>'resource'], +'eio_grp' => ['resource', 'callback'=>'callable', 'data='=>'string'], +'eio_grp_add' => ['void', 'grp'=>'resource', 'req'=>'resource'], +'eio_grp_cancel' => ['void', 'grp'=>'resource'], +'eio_grp_limit' => ['void', 'grp'=>'resource', 'limit'=>'int'], +'eio_init' => ['void'], +'eio_link' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_lstat' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_mkdir' => ['resource', 'path'=>'string', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_mknod' => ['resource', 'path'=>'string', 'mode'=>'int', 'dev'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_nop' => ['resource', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_npending' => ['int'], +'eio_nready' => ['int'], +'eio_nreqs' => ['int'], +'eio_nthreads' => ['int'], +'eio_open' => ['resource', 'path'=>'string', 'flags'=>'int', 'mode'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_poll' => ['int'], +'eio_read' => ['resource', 'fd'=>'mixed', 'length'=>'int', 'offset'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_readahead' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_readdir' => ['resource', 'path'=>'string', 'flags'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], +'eio_readlink' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], +'eio_realpath' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], +'eio_rename' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_rmdir' => ['resource', 'path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_seek' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'whence'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_sendfile' => ['resource', 'out_fd'=>'mixed', 'in_fd'=>'mixed', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'string'], +'eio_set_max_idle' => ['void', 'nthreads'=>'int'], +'eio_set_max_parallel' => ['void', 'nthreads'=>'int'], +'eio_set_max_poll_reqs' => ['void', 'nreqs'=>'int'], +'eio_set_max_poll_time' => ['void', 'nseconds'=>'float'], +'eio_set_min_parallel' => ['void', 'nthreads'=>'string'], +'eio_stat' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_statvfs' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], +'eio_symlink' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_sync' => ['resource', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_sync_file_range' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'nbytes'=>'int', 'flags'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_syncfs' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_truncate' => ['resource', 'path'=>'string', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_unlink' => ['resource', 'path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_utime' => ['resource', 'path'=>'string', 'atime'=>'float', 'mtime'=>'float', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'eio_write' => ['resource', 'fd'=>'mixed', 'string'=>'string', 'length='=>'int', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], +'empty' => ['bool', 'value'=>'mixed'], +'EmptyIterator::current' => ['never'], +'EmptyIterator::key' => ['never'], +'EmptyIterator::next' => ['void'], +'EmptyIterator::rewind' => ['void'], +'EmptyIterator::valid' => ['false'], +'enchant_broker_describe' => ['array', 'broker'=>'EnchantBroker'], +'enchant_broker_dict_exists' => ['bool', 'broker'=>'EnchantBroker', 'tag'=>'string'], +'enchant_broker_free' => ['bool', 'broker'=>'EnchantBroker'], +'enchant_broker_free_dict' => ['bool', 'dictionary'=>'EnchantBroker'], +'enchant_broker_get_dict_path' => ['string', 'broker'=>'EnchantBroker', 'type'=>'int'], +'enchant_broker_get_error' => ['string|false', 'broker'=>'EnchantBroker'], +'enchant_broker_init' => ['EnchantBroker|false'], +'enchant_broker_list_dicts' => ['array', 'broker'=>'EnchantBroker'], +'enchant_broker_request_dict' => ['EnchantDictionary|false', 'broker'=>'EnchantBroker', 'tag'=>'string'], +'enchant_broker_request_pwl_dict' => ['EnchantDictionary|false', 'broker'=>'EnchantBroker', 'filename'=>'string'], +'enchant_broker_set_dict_path' => ['bool', 'broker'=>'EnchantBroker', 'type'=>'int', 'path'=>'string'], +'enchant_broker_set_ordering' => ['bool', 'broker'=>'EnchantBroker', 'tag'=>'string', 'ordering'=>'string'], +'enchant_dict_add_to_personal' => ['void', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], +'enchant_dict_add_to_session' => ['void', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], +'enchant_dict_check' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], +'enchant_dict_describe' => ['array', 'dictionary'=>'EnchantDictionary'], +'enchant_dict_get_error' => ['string', 'dictionary'=>'EnchantDictionary'], +'enchant_dict_is_in_session' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], +'enchant_dict_quick_check' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string', '&w_suggestions='=>'array'], +'enchant_dict_store_replacement' => ['void', 'dictionary'=>'EnchantDictionary', 'misspelled'=>'string', 'correct'=>'string'], +'enchant_dict_suggest' => ['array', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], +'end' => ['mixed|false', '&r_array'=>'array|object'], +'enum_exists' => ['bool', 'enum' => 'string', 'autoload=' => 'bool'], +'Error::__clone' => ['void'], +'Error::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'Error::__toString' => ['string'], +'Error::getCode' => ['int'], +'Error::getFile' => ['string'], +'Error::getLine' => ['int'], +'Error::getMessage' => ['string'], +'Error::getPrevious' => ['?Throwable'], +'Error::getTrace' => ['list\',args?:array}>'], +'Error::getTraceAsString' => ['string'], +'error_clear_last' => ['void'], +'error_get_last' => ['?array{type:int,message:string,file:string,line:int}'], +'error_log' => ['bool', 'message'=>'string', 'message_type='=>'int', 'destination='=>'?string', 'additional_headers='=>'?string'], +'error_reporting' => ['int', 'error_level='=>'?int'], +'ErrorException::__clone' => ['void'], +'ErrorException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'severity='=>'int', 'filename='=>'?string', 'line='=>'?int', 'previous='=>'?Throwable'], +'ErrorException::__toString' => ['string'], +'ErrorException::getCode' => ['int'], +'ErrorException::getFile' => ['string'], +'ErrorException::getLine' => ['int'], +'ErrorException::getMessage' => ['string'], +'ErrorException::getPrevious' => ['?Throwable'], +'ErrorException::getSeverity' => ['int'], +'ErrorException::getTrace' => ['list\',args?:array}>'], +'ErrorException::getTraceAsString' => ['string'], +'escapeshellarg' => ['string', 'arg'=>'string'], +'escapeshellcmd' => ['string', 'command'=>'string'], +'Ev::backend' => ['int'], +'Ev::depth' => ['int'], +'Ev::embeddableBackends' => ['int'], +'Ev::feedSignal' => ['void', 'signum'=>'int'], +'Ev::feedSignalEvent' => ['void', 'signum'=>'int'], +'Ev::iteration' => ['int'], +'Ev::now' => ['float'], +'Ev::nowUpdate' => ['void'], +'Ev::recommendedBackends' => ['int'], +'Ev::resume' => ['void'], +'Ev::run' => ['void', 'flags='=>'int'], +'Ev::sleep' => ['void', 'seconds'=>'float'], +'Ev::stop' => ['void', 'how='=>'int'], +'Ev::supportedBackends' => ['int'], +'Ev::suspend' => ['void'], +'Ev::time' => ['float'], +'Ev::verify' => ['void'], +'eval' => ['mixed', 'code_str'=>'string'], +'EvCheck::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvCheck::clear' => ['int'], +'EvCheck::createStopped' => ['EvCheck', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvCheck::feed' => ['void', 'events'=>'int'], +'EvCheck::getLoop' => ['EvLoop'], +'EvCheck::invoke' => ['void', 'events'=>'int'], +'EvCheck::keepAlive' => ['void', 'value'=>'bool'], +'EvCheck::setCallback' => ['void', 'callback'=>'callable'], +'EvCheck::start' => ['void'], +'EvCheck::stop' => ['void'], +'EvChild::__construct' => ['void', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvChild::clear' => ['int'], +'EvChild::createStopped' => ['EvChild', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvChild::feed' => ['void', 'events'=>'int'], +'EvChild::getLoop' => ['EvLoop'], +'EvChild::invoke' => ['void', 'events'=>'int'], +'EvChild::keepAlive' => ['void', 'value'=>'bool'], +'EvChild::set' => ['void', 'pid'=>'int', 'trace'=>'bool'], +'EvChild::setCallback' => ['void', 'callback'=>'callable'], +'EvChild::start' => ['void'], +'EvChild::stop' => ['void'], +'EvEmbed::__construct' => ['void', 'other'=>'object', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvEmbed::clear' => ['int'], +'EvEmbed::createStopped' => ['EvEmbed', 'other'=>'object', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvEmbed::feed' => ['void', 'events'=>'int'], +'EvEmbed::getLoop' => ['EvLoop'], +'EvEmbed::invoke' => ['void', 'events'=>'int'], +'EvEmbed::keepAlive' => ['void', 'value'=>'bool'], +'EvEmbed::set' => ['void', 'other'=>'object'], +'EvEmbed::setCallback' => ['void', 'callback'=>'callable'], +'EvEmbed::start' => ['void'], +'EvEmbed::stop' => ['void'], +'EvEmbed::sweep' => ['void'], +'Event::__construct' => ['void', 'base'=>'EventBase', 'fd'=>'mixed', 'what'=>'int', 'cb'=>'callable', 'arg='=>'mixed'], +'Event::add' => ['bool', 'timeout='=>'float'], +'Event::addSignal' => ['bool', 'timeout='=>'float'], +'Event::addTimer' => ['bool', 'timeout='=>'float'], +'Event::del' => ['bool'], +'Event::delSignal' => ['bool'], +'Event::delTimer' => ['bool'], +'Event::free' => ['void'], +'Event::getSupportedMethods' => ['array'], +'Event::pending' => ['bool', 'flags'=>'int'], +'Event::set' => ['bool', 'base'=>'EventBase', 'fd'=>'mixed', 'what='=>'int', 'cb='=>'callable', 'arg='=>'mixed'], +'Event::setPriority' => ['bool', 'priority'=>'int'], +'Event::setTimer' => ['bool', 'base'=>'EventBase', 'cb'=>'callable', 'arg='=>'mixed'], +'Event::signal' => ['Event', 'base'=>'EventBase', 'signum'=>'int', 'cb'=>'callable', 'arg='=>'mixed'], +'Event::timer' => ['Event', 'base'=>'EventBase', 'cb'=>'callable', 'arg='=>'mixed'], +'event_add' => ['bool', 'event'=>'resource', 'timeout='=>'int'], +'event_base_free' => ['void', 'event_base'=>'resource'], +'event_base_loop' => ['int', 'event_base'=>'resource', 'flags='=>'int'], +'event_base_loopbreak' => ['bool', 'event_base'=>'resource'], +'event_base_loopexit' => ['bool', 'event_base'=>'resource', 'timeout='=>'int'], +'event_base_new' => ['resource|false'], +'event_base_priority_init' => ['bool', 'event_base'=>'resource', 'npriorities'=>'int'], +'event_base_reinit' => ['bool', 'event_base'=>'resource'], +'event_base_set' => ['bool', 'event'=>'resource', 'event_base'=>'resource'], +'event_buffer_base_set' => ['bool', 'bevent'=>'resource', 'event_base'=>'resource'], +'event_buffer_disable' => ['bool', 'bevent'=>'resource', 'events'=>'int'], +'event_buffer_enable' => ['bool', 'bevent'=>'resource', 'events'=>'int'], +'event_buffer_fd_set' => ['void', 'bevent'=>'resource', 'fd'=>'resource'], +'event_buffer_free' => ['void', 'bevent'=>'resource'], +'event_buffer_new' => ['resource|false', 'stream'=>'resource', 'readcb'=>'callable|null', 'writecb'=>'callable|null', 'errorcb'=>'callable', 'arg='=>'mixed'], +'event_buffer_priority_set' => ['bool', 'bevent'=>'resource', 'priority'=>'int'], +'event_buffer_read' => ['string', 'bevent'=>'resource', 'data_size'=>'int'], +'event_buffer_set_callback' => ['bool', 'event'=>'resource', 'readcb'=>'mixed', 'writecb'=>'mixed', 'errorcb'=>'mixed', 'arg='=>'mixed'], +'event_buffer_timeout_set' => ['void', 'bevent'=>'resource', 'read_timeout'=>'int', 'write_timeout'=>'int'], +'event_buffer_watermark_set' => ['void', 'bevent'=>'resource', 'events'=>'int', 'lowmark'=>'int', 'highmark'=>'int'], +'event_buffer_write' => ['bool', 'bevent'=>'resource', 'data'=>'string', 'data_size='=>'int'], +'event_del' => ['bool', 'event'=>'resource'], +'event_free' => ['void', 'event'=>'resource'], +'event_new' => ['resource|false'], +'event_priority_set' => ['bool', 'event'=>'resource', 'priority'=>'int'], +'event_set' => ['bool', 'event'=>'resource', 'fd'=>'int|resource', 'events'=>'int', 'callback'=>'callable', 'arg='=>'mixed'], +'event_timer_add' => ['bool', 'event'=>'resource', 'timeout='=>'int'], +'event_timer_del' => ['bool', 'event'=>'resource'], +'event_timer_new' => ['resource|false'], +'event_timer_pending' => ['bool', 'event'=>'resource', 'timeout='=>'int'], +'event_timer_set' => ['bool', 'event'=>'resource', 'callback'=>'callable', 'arg='=>'mixed'], +'EventBase::__construct' => ['void', 'cfg='=>'EventConfig'], +'EventBase::dispatch' => ['void'], +'EventBase::exit' => ['bool', 'timeout='=>'float'], +'EventBase::free' => ['void'], +'EventBase::getFeatures' => ['int'], +'EventBase::getMethod' => ['string', 'cfg='=>'EventConfig'], +'EventBase::getTimeOfDayCached' => ['float'], +'EventBase::gotExit' => ['bool'], +'EventBase::gotStop' => ['bool'], +'EventBase::loop' => ['bool', 'flags='=>'int'], +'EventBase::priorityInit' => ['bool', 'n_priorities'=>'int'], +'EventBase::reInit' => ['bool'], +'EventBase::stop' => ['bool'], +'EventBuffer::__construct' => ['void'], +'EventBuffer::add' => ['bool', 'data'=>'string'], +'EventBuffer::addBuffer' => ['bool', 'buf'=>'EventBuffer'], +'EventBuffer::appendFrom' => ['int', 'buf'=>'EventBuffer', 'length'=>'int'], +'EventBuffer::copyout' => ['int', '&w_data'=>'string', 'max_bytes'=>'int'], +'EventBuffer::drain' => ['bool', 'length'=>'int'], +'EventBuffer::enableLocking' => ['void'], +'EventBuffer::expand' => ['bool', 'length'=>'int'], +'EventBuffer::freeze' => ['bool', 'at_front'=>'bool'], +'EventBuffer::lock' => ['void'], +'EventBuffer::prepend' => ['bool', 'data'=>'string'], +'EventBuffer::prependBuffer' => ['bool', 'buf'=>'EventBuffer'], +'EventBuffer::pullup' => ['string', 'size'=>'int'], +'EventBuffer::read' => ['string', 'max_bytes'=>'int'], +'EventBuffer::readFrom' => ['int', 'fd'=>'mixed', 'howmuch'=>'int'], +'EventBuffer::readLine' => ['string', 'eol_style'=>'int'], +'EventBuffer::search' => ['mixed', 'what'=>'string', 'start='=>'int', 'end='=>'int'], +'EventBuffer::searchEol' => ['mixed', 'start='=>'int', 'eol_style='=>'int'], +'EventBuffer::substr' => ['string', 'start'=>'int', 'length='=>'int'], +'EventBuffer::unfreeze' => ['bool', 'at_front'=>'bool'], +'EventBuffer::unlock' => ['bool'], +'EventBuffer::write' => ['int', 'fd'=>'mixed', 'howmuch='=>'int'], +'EventBufferEvent::__construct' => ['void', 'base'=>'EventBase', 'socket='=>'mixed', 'options='=>'int', 'readcb='=>'callable', 'writecb='=>'callable', 'eventcb='=>'callable'], +'EventBufferEvent::close' => ['void'], +'EventBufferEvent::connect' => ['bool', 'addr'=>'string'], +'EventBufferEvent::connectHost' => ['bool', 'dns_base'=>'EventDnsBase', 'hostname'=>'string', 'port'=>'int', 'family='=>'int'], +'EventBufferEvent::createPair' => ['array', 'base'=>'EventBase', 'options='=>'int'], +'EventBufferEvent::disable' => ['bool', 'events'=>'int'], +'EventBufferEvent::enable' => ['bool', 'events'=>'int'], +'EventBufferEvent::free' => ['void'], +'EventBufferEvent::getDnsErrorString' => ['string'], +'EventBufferEvent::getEnabled' => ['int'], +'EventBufferEvent::getInput' => ['EventBuffer'], +'EventBufferEvent::getOutput' => ['EventBuffer'], +'EventBufferEvent::read' => ['string', 'size'=>'int'], +'EventBufferEvent::readBuffer' => ['bool', 'buf'=>'EventBuffer'], +'EventBufferEvent::setCallbacks' => ['void', 'readcb'=>'callable', 'writecb'=>'callable', 'eventcb'=>'callable', 'arg='=>'string'], +'EventBufferEvent::setPriority' => ['bool', 'priority'=>'int'], +'EventBufferEvent::setTimeouts' => ['bool', 'timeout_read'=>'float', 'timeout_write'=>'float'], +'EventBufferEvent::setWatermark' => ['void', 'events'=>'int', 'lowmark'=>'int', 'highmark'=>'int'], +'EventBufferEvent::sslError' => ['string'], +'EventBufferEvent::sslFilter' => ['EventBufferEvent', 'base'=>'EventBase', 'underlying'=>'EventBufferEvent', 'ctx'=>'EventSslContext', 'state'=>'int', 'options='=>'int'], +'EventBufferEvent::sslGetCipherInfo' => ['string'], +'EventBufferEvent::sslGetCipherName' => ['string'], +'EventBufferEvent::sslGetCipherVersion' => ['string'], +'EventBufferEvent::sslGetProtocol' => ['string'], +'EventBufferEvent::sslRenegotiate' => ['void'], +'EventBufferEvent::sslSocket' => ['EventBufferEvent', 'base'=>'EventBase', 'socket'=>'mixed', 'ctx'=>'EventSslContext', 'state'=>'int', 'options='=>'int'], +'EventBufferEvent::write' => ['bool', 'data'=>'string'], +'EventBufferEvent::writeBuffer' => ['bool', 'buf'=>'EventBuffer'], +'EventConfig::__construct' => ['void'], +'EventConfig::avoidMethod' => ['bool', 'method'=>'string'], +'EventConfig::requireFeatures' => ['bool', 'feature'=>'int'], +'EventConfig::setMaxDispatchInterval' => ['void', 'max_interval'=>'int', 'max_callbacks'=>'int', 'min_priority'=>'int'], +'EventDnsBase::__construct' => ['void', 'base'=>'EventBase', 'initialize'=>'bool'], +'EventDnsBase::addNameserverIp' => ['bool', 'ip'=>'string'], +'EventDnsBase::addSearch' => ['void', 'domain'=>'string'], +'EventDnsBase::clearSearch' => ['void'], +'EventDnsBase::countNameservers' => ['int'], +'EventDnsBase::loadHosts' => ['bool', 'hosts'=>'string'], +'EventDnsBase::parseResolvConf' => ['bool', 'flags'=>'int', 'filename'=>'string'], +'EventDnsBase::setOption' => ['bool', 'option'=>'string', 'value'=>'string'], +'EventDnsBase::setSearchNdots' => ['bool', 'ndots'=>'int'], +'EventHttp::__construct' => ['void', 'base'=>'EventBase', 'ctx='=>'EventSslContext'], +'EventHttp::accept' => ['bool', 'socket'=>'mixed'], +'EventHttp::addServerAlias' => ['bool', 'alias'=>'string'], +'EventHttp::bind' => ['void', 'address'=>'string', 'port'=>'int'], +'EventHttp::removeServerAlias' => ['bool', 'alias'=>'string'], +'EventHttp::setAllowedMethods' => ['void', 'methods'=>'int'], +'EventHttp::setCallback' => ['void', 'path'=>'string', 'cb'=>'string', 'arg='=>'string'], +'EventHttp::setDefaultCallback' => ['void', 'cb'=>'string', 'arg='=>'string'], +'EventHttp::setMaxBodySize' => ['void', 'value'=>'int'], +'EventHttp::setMaxHeadersSize' => ['void', 'value'=>'int'], +'EventHttp::setTimeout' => ['void', 'value'=>'int'], +'EventHttpConnection::__construct' => ['void', 'base'=>'EventBase', 'dns_base'=>'EventDnsBase', 'address'=>'string', 'port'=>'int', 'ctx='=>'EventSslContext'], +'EventHttpConnection::getBase' => ['EventBase'], +'EventHttpConnection::getPeer' => ['void', '&w_address'=>'string', '&w_port'=>'int'], +'EventHttpConnection::makeRequest' => ['bool', 'req'=>'EventHttpRequest', 'type'=>'int', 'uri'=>'string'], +'EventHttpConnection::setCloseCallback' => ['void', 'callback'=>'callable', 'data='=>'mixed'], +'EventHttpConnection::setLocalAddress' => ['void', 'address'=>'string'], +'EventHttpConnection::setLocalPort' => ['void', 'port'=>'int'], +'EventHttpConnection::setMaxBodySize' => ['void', 'max_size'=>'string'], +'EventHttpConnection::setMaxHeadersSize' => ['void', 'max_size'=>'string'], +'EventHttpConnection::setRetries' => ['void', 'retries'=>'int'], +'EventHttpConnection::setTimeout' => ['void', 'timeout'=>'int'], +'EventHttpRequest::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed'], +'EventHttpRequest::addHeader' => ['bool', 'key'=>'string', 'value'=>'string', 'type'=>'int'], +'EventHttpRequest::cancel' => ['void'], +'EventHttpRequest::clearHeaders' => ['void'], +'EventHttpRequest::closeConnection' => ['void'], +'EventHttpRequest::findHeader' => ['void', 'key'=>'string', 'type'=>'string'], +'EventHttpRequest::free' => ['void'], +'EventHttpRequest::getBufferEvent' => ['EventBufferEvent'], +'EventHttpRequest::getCommand' => ['void'], +'EventHttpRequest::getConnection' => ['EventHttpConnection'], +'EventHttpRequest::getHost' => ['string'], +'EventHttpRequest::getInputBuffer' => ['EventBuffer'], +'EventHttpRequest::getInputHeaders' => ['array'], +'EventHttpRequest::getOutputBuffer' => ['EventBuffer'], +'EventHttpRequest::getOutputHeaders' => ['void'], +'EventHttpRequest::getResponseCode' => ['int'], +'EventHttpRequest::getUri' => ['string'], +'EventHttpRequest::removeHeader' => ['void', 'key'=>'string', 'type'=>'string'], +'EventHttpRequest::sendError' => ['void', 'error'=>'int', 'reason='=>'string'], +'EventHttpRequest::sendReply' => ['void', 'code'=>'int', 'reason'=>'string', 'buf='=>'EventBuffer'], +'EventHttpRequest::sendReplyChunk' => ['void', 'buf'=>'EventBuffer'], +'EventHttpRequest::sendReplyEnd' => ['void'], +'EventHttpRequest::sendReplyStart' => ['void', 'code'=>'int', 'reason'=>'string'], +'EventListener::__construct' => ['void', 'base'=>'EventBase', 'cb'=>'callable', 'data'=>'mixed', 'flags'=>'int', 'backlog'=>'int', 'target'=>'mixed'], +'EventListener::disable' => ['bool'], +'EventListener::enable' => ['bool'], +'EventListener::getBase' => ['void'], +'EventListener::getSocketName' => ['bool', '&w_address'=>'string', '&w_port='=>'mixed'], +'EventListener::setCallback' => ['void', 'cb'=>'callable', 'arg='=>'mixed'], +'EventListener::setErrorCallback' => ['void', 'cb'=>'string'], +'EventSslContext::__construct' => ['void', 'method'=>'string', 'options'=>'string'], +'EventUtil::__construct' => ['void'], +'EventUtil::getLastSocketErrno' => ['int', 'socket='=>'mixed'], +'EventUtil::getLastSocketError' => ['string', 'socket='=>'mixed'], +'EventUtil::getSocketFd' => ['int', 'socket'=>'mixed'], +'EventUtil::getSocketName' => ['bool', 'socket'=>'mixed', '&w_address'=>'string', '&w_port='=>'mixed'], +'EventUtil::setSocketOption' => ['bool', 'socket'=>'mixed', 'level'=>'int', 'optname'=>'int', 'optval'=>'mixed'], +'EventUtil::sslRandPoll' => ['void'], +'EvFork::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvFork::clear' => ['int'], +'EvFork::createStopped' => ['EvFork', 'callback'=>'callable', 'data='=>'string', 'priority='=>'string'], +'EvFork::feed' => ['void', 'events'=>'int'], +'EvFork::getLoop' => ['EvLoop'], +'EvFork::invoke' => ['void', 'events'=>'int'], +'EvFork::keepAlive' => ['void', 'value'=>'bool'], +'EvFork::setCallback' => ['void', 'callback'=>'callable'], +'EvFork::start' => ['void'], +'EvFork::stop' => ['void'], +'EvIdle::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvIdle::clear' => ['int'], +'EvIdle::createStopped' => ['EvIdle', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvIdle::feed' => ['void', 'events'=>'int'], +'EvIdle::getLoop' => ['EvLoop'], +'EvIdle::invoke' => ['void', 'events'=>'int'], +'EvIdle::keepAlive' => ['void', 'value'=>'bool'], +'EvIdle::setCallback' => ['void', 'callback'=>'callable'], +'EvIdle::start' => ['void'], +'EvIdle::stop' => ['void'], +'EvIo::__construct' => ['void', 'fd'=>'mixed', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvIo::clear' => ['int'], +'EvIo::createStopped' => ['EvIo', 'fd'=>'resource', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvIo::feed' => ['void', 'events'=>'int'], +'EvIo::getLoop' => ['EvLoop'], +'EvIo::invoke' => ['void', 'events'=>'int'], +'EvIo::keepAlive' => ['void', 'value'=>'bool'], +'EvIo::set' => ['void', 'fd'=>'resource', 'events'=>'int'], +'EvIo::setCallback' => ['void', 'callback'=>'callable'], +'EvIo::start' => ['void'], +'EvIo::stop' => ['void'], +'EvLoop::__construct' => ['void', 'flags='=>'int', 'data='=>'mixed', 'io_interval='=>'float', 'timeout_interval='=>'float'], +'EvLoop::backend' => ['int'], +'EvLoop::check' => ['EvCheck', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::child' => ['EvChild', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::defaultLoop' => ['EvLoop', 'flags='=>'int', 'data='=>'mixed', 'io_interval='=>'float', 'timeout_interval='=>'float'], +'EvLoop::embed' => ['EvEmbed', 'other'=>'EvLoop', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::fork' => ['EvFork', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::idle' => ['EvIdle', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::invokePending' => ['void'], +'EvLoop::io' => ['EvIo', 'fd'=>'resource', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::loopFork' => ['void'], +'EvLoop::now' => ['float'], +'EvLoop::nowUpdate' => ['void'], +'EvLoop::periodic' => ['EvPeriodic', 'offset'=>'float', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::prepare' => ['EvPrepare', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::resume' => ['void'], +'EvLoop::run' => ['void', 'flags='=>'int'], +'EvLoop::signal' => ['EvSignal', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::stat' => ['EvStat', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::stop' => ['void', 'how='=>'int'], +'EvLoop::suspend' => ['void'], +'EvLoop::timer' => ['EvTimer', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvLoop::verify' => ['void'], +'EvPeriodic::__construct' => ['void', 'offset'=>'float', 'interval'=>'string', 'reschedule_cb'=>'callable', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvPeriodic::again' => ['void'], +'EvPeriodic::at' => ['float'], +'EvPeriodic::clear' => ['int'], +'EvPeriodic::createStopped' => ['EvPeriodic', 'offset'=>'float', 'interval'=>'float', 'reschedule_cb'=>'callable', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvPeriodic::feed' => ['void', 'events'=>'int'], +'EvPeriodic::getLoop' => ['EvLoop'], +'EvPeriodic::invoke' => ['void', 'events'=>'int'], +'EvPeriodic::keepAlive' => ['void', 'value'=>'bool'], +'EvPeriodic::set' => ['void', 'offset'=>'float', 'interval'=>'float'], +'EvPeriodic::setCallback' => ['void', 'callback'=>'callable'], +'EvPeriodic::start' => ['void'], +'EvPeriodic::stop' => ['void'], +'EvPrepare::__construct' => ['void', 'callback'=>'string', 'data='=>'string', 'priority='=>'string'], +'EvPrepare::clear' => ['int'], +'EvPrepare::createStopped' => ['EvPrepare', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvPrepare::feed' => ['void', 'events'=>'int'], +'EvPrepare::getLoop' => ['EvLoop'], +'EvPrepare::invoke' => ['void', 'events'=>'int'], +'EvPrepare::keepAlive' => ['void', 'value'=>'bool'], +'EvPrepare::setCallback' => ['void', 'callback'=>'callable'], +'EvPrepare::start' => ['void'], +'EvPrepare::stop' => ['void'], +'EvSignal::__construct' => ['void', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvSignal::clear' => ['int'], +'EvSignal::createStopped' => ['EvSignal', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvSignal::feed' => ['void', 'events'=>'int'], +'EvSignal::getLoop' => ['EvLoop'], +'EvSignal::invoke' => ['void', 'events'=>'int'], +'EvSignal::keepAlive' => ['void', 'value'=>'bool'], +'EvSignal::set' => ['void', 'signum'=>'int'], +'EvSignal::setCallback' => ['void', 'callback'=>'callable'], +'EvSignal::start' => ['void'], +'EvSignal::stop' => ['void'], +'EvStat::__construct' => ['void', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvStat::attr' => ['array'], +'EvStat::clear' => ['int'], +'EvStat::createStopped' => ['EvStat', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvStat::feed' => ['void', 'events'=>'int'], +'EvStat::getLoop' => ['EvLoop'], +'EvStat::invoke' => ['void', 'events'=>'int'], +'EvStat::keepAlive' => ['void', 'value'=>'bool'], +'EvStat::prev' => ['array'], +'EvStat::set' => ['void', 'path'=>'string', 'interval'=>'float'], +'EvStat::setCallback' => ['void', 'callback'=>'callable'], +'EvStat::start' => ['void'], +'EvStat::stat' => ['bool'], +'EvStat::stop' => ['void'], +'EvTimer::__construct' => ['void', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvTimer::again' => ['void'], +'EvTimer::clear' => ['int'], +'EvTimer::createStopped' => ['EvTimer', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], +'EvTimer::feed' => ['void', 'events'=>'int'], +'EvTimer::getLoop' => ['EvLoop'], +'EvTimer::invoke' => ['void', 'events'=>'int'], +'EvTimer::keepAlive' => ['void', 'value'=>'bool'], +'EvTimer::set' => ['void', 'after'=>'float', 'repeat'=>'float'], +'EvTimer::setCallback' => ['void', 'callback'=>'callable'], +'EvTimer::start' => ['void'], +'EvTimer::stop' => ['void'], +'EvWatcher::__construct' => ['void'], +'EvWatcher::clear' => ['int'], +'EvWatcher::feed' => ['void', 'revents'=>'int'], +'EvWatcher::getLoop' => ['EvLoop'], +'EvWatcher::invoke' => ['void', 'revents'=>'int'], +'EvWatcher::keepalive' => ['bool', 'value='=>'bool'], +'EvWatcher::setCallback' => ['void', 'callback'=>'callable'], +'EvWatcher::start' => ['void'], +'EvWatcher::stop' => ['void'], +'Exception::__clone' => ['void'], +'Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'Exception::__toString' => ['string'], +'Exception::getCode' => ['int|string'], +'Exception::getFile' => ['string'], +'Exception::getLine' => ['int'], +'Exception::getMessage' => ['string'], +'Exception::getPrevious' => ['?Throwable'], +'Exception::getTrace' => ['list\',args?:array}>'], +'Exception::getTraceAsString' => ['string'], +'exec' => ['string|false', 'command'=>'string', '&w_output='=>'array', '&w_result_code='=>'int'], +'exif_imagetype' => ['int|false', 'filename'=>'string'], +'exif_read_data' => ['array|false', 'file'=>'string|resource', 'required_sections='=>'?string', 'as_arrays='=>'bool', 'read_thumbnail='=>'bool'], +'exif_tagname' => ['string|false', 'index'=>'int'], +'exif_thumbnail' => ['string|false', 'file'=>'string', '&w_width='=>'int', '&w_height='=>'int', '&w_image_type='=>'int'], +'exit' => ['', 'status'=>'string|int'], +'exp' => ['float', 'num'=>'float'], +'expect_expectl' => ['int', 'expect'=>'resource', 'cases'=>'array', 'match='=>'array'], +'expect_popen' => ['resource|false', 'command'=>'string'], +'explode' => ['list', 'separator'=>'string', 'string'=>'string', 'limit='=>'int'], +'expm1' => ['float', 'num'=>'float'], +'extension_loaded' => ['bool', 'extension'=>'string'], +'extract' => ['int', '&rw_array'=>'array', 'flags='=>'int', 'prefix='=>'string'], +'ezmlm_hash' => ['int', 'addr'=>'string'], +'fam_cancel_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], +'fam_close' => ['void', 'fam'=>'resource'], +'fam_monitor_collection' => ['resource', 'fam'=>'resource', 'dirname'=>'string', 'depth'=>'int', 'mask'=>'string'], +'fam_monitor_directory' => ['resource', 'fam'=>'resource', 'dirname'=>'string'], +'fam_monitor_file' => ['resource', 'fam'=>'resource', 'filename'=>'string'], +'fam_next_event' => ['array', 'fam'=>'resource'], +'fam_open' => ['resource|false', 'appname='=>'string'], +'fam_pending' => ['int', 'fam'=>'resource'], +'fam_resume_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], +'fam_suspend_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], +'fann_cascadetrain_on_data' => ['bool', 'ann'=>'resource', 'data'=>'resource', 'max_neurons'=>'int', 'neurons_between_reports'=>'int', 'desired_error'=>'float'], +'fann_cascadetrain_on_file' => ['bool', 'ann'=>'resource', 'filename'=>'string', 'max_neurons'=>'int', 'neurons_between_reports'=>'int', 'desired_error'=>'float'], +'fann_clear_scaling_params' => ['bool', 'ann'=>'resource'], +'fann_copy' => ['resource|false', 'ann'=>'resource'], +'fann_create_from_file' => ['resource', 'configuration_file'=>'string'], +'fann_create_shortcut' => ['resource|false', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], +'fann_create_shortcut_array' => ['resource|false', 'num_layers'=>'int', 'layers'=>'array'], +'fann_create_sparse' => ['resource|false', 'connection_rate'=>'float', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], +'fann_create_sparse_array' => ['resource|false', 'connection_rate'=>'float', 'num_layers'=>'int', 'layers'=>'array'], +'fann_create_standard' => ['resource|false', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], +'fann_create_standard_array' => ['resource|false', 'num_layers'=>'int', 'layers'=>'array'], +'fann_create_train' => ['resource', 'num_data'=>'int', 'num_input'=>'int', 'num_output'=>'int'], +'fann_create_train_from_callback' => ['resource', 'num_data'=>'int', 'num_input'=>'int', 'num_output'=>'int', 'user_function'=>'callable'], +'fann_descale_input' => ['bool', 'ann'=>'resource', 'input_vector'=>'array'], +'fann_descale_output' => ['bool', 'ann'=>'resource', 'output_vector'=>'array'], +'fann_descale_train' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], +'fann_destroy' => ['bool', 'ann'=>'resource'], +'fann_destroy_train' => ['bool', 'train_data'=>'resource'], +'fann_duplicate_train_data' => ['resource', 'data'=>'resource'], +'fann_get_activation_function' => ['int|false', 'ann'=>'resource', 'layer'=>'int', 'neuron'=>'int'], +'fann_get_activation_steepness' => ['float|false', 'ann'=>'resource', 'layer'=>'int', 'neuron'=>'int'], +'fann_get_bias_array' => ['array', 'ann'=>'resource'], +'fann_get_bit_fail' => ['int|false', 'ann'=>'resource'], +'fann_get_bit_fail_limit' => ['float|false', 'ann'=>'resource'], +'fann_get_cascade_activation_functions' => ['array|false', 'ann'=>'resource'], +'fann_get_cascade_activation_functions_count' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_activation_steepnesses' => ['array|false', 'ann'=>'resource'], +'fann_get_cascade_activation_steepnesses_count' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_candidate_change_fraction' => ['float|false', 'ann'=>'resource'], +'fann_get_cascade_candidate_limit' => ['float|false', 'ann'=>'resource'], +'fann_get_cascade_candidate_stagnation_epochs' => ['float|false', 'ann'=>'resource'], +'fann_get_cascade_max_cand_epochs' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_max_out_epochs' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_min_cand_epochs' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_min_out_epochs' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_num_candidate_groups' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_num_candidates' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_output_change_fraction' => ['float|false', 'ann'=>'resource'], +'fann_get_cascade_output_stagnation_epochs' => ['int|false', 'ann'=>'resource'], +'fann_get_cascade_weight_multiplier' => ['float|false', 'ann'=>'resource'], +'fann_get_connection_array' => ['array', 'ann'=>'resource'], +'fann_get_connection_rate' => ['float|false', 'ann'=>'resource'], +'fann_get_errno' => ['int|false', 'errdat'=>'resource'], +'fann_get_errstr' => ['string|false', 'errdat'=>'resource'], +'fann_get_layer_array' => ['array', 'ann'=>'resource'], +'fann_get_learning_momentum' => ['float|false', 'ann'=>'resource'], +'fann_get_learning_rate' => ['float|false', 'ann'=>'resource'], +'fann_get_MSE' => ['float|false', 'ann'=>'resource'], +'fann_get_network_type' => ['int|false', 'ann'=>'resource'], +'fann_get_num_input' => ['int|false', 'ann'=>'resource'], +'fann_get_num_layers' => ['int|false', 'ann'=>'resource'], +'fann_get_num_output' => ['int|false', 'ann'=>'resource'], +'fann_get_quickprop_decay' => ['float|false', 'ann'=>'resource'], +'fann_get_quickprop_mu' => ['float|false', 'ann'=>'resource'], +'fann_get_rprop_decrease_factor' => ['float|false', 'ann'=>'resource'], +'fann_get_rprop_delta_max' => ['float|false', 'ann'=>'resource'], +'fann_get_rprop_delta_min' => ['float|false', 'ann'=>'resource'], +'fann_get_rprop_delta_zero' => ['float|false', 'ann'=>'resource'], +'fann_get_rprop_increase_factor' => ['float|false', 'ann'=>'resource'], +'fann_get_sarprop_step_error_shift' => ['float|false', 'ann'=>'resource'], +'fann_get_sarprop_step_error_threshold_factor' => ['float|false', 'ann'=>'resource'], +'fann_get_sarprop_temperature' => ['float|false', 'ann'=>'resource'], +'fann_get_sarprop_weight_decay_shift' => ['float|false', 'ann'=>'resource'], +'fann_get_total_connections' => ['int|false', 'ann'=>'resource'], +'fann_get_total_neurons' => ['int|false', 'ann'=>'resource'], +'fann_get_train_error_function' => ['int|false', 'ann'=>'resource'], +'fann_get_train_stop_function' => ['int|false', 'ann'=>'resource'], +'fann_get_training_algorithm' => ['int|false', 'ann'=>'resource'], +'fann_init_weights' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], +'fann_length_train_data' => ['int|false', 'data'=>'resource'], +'fann_merge_train_data' => ['resource|false', 'data1'=>'resource', 'data2'=>'resource'], +'fann_num_input_train_data' => ['int|false', 'data'=>'resource'], +'fann_num_output_train_data' => ['int|false', 'data'=>'resource'], +'fann_print_error' => ['void', 'errdat'=>'string'], +'fann_randomize_weights' => ['bool', 'ann'=>'resource', 'min_weight'=>'float', 'max_weight'=>'float'], +'fann_read_train_from_file' => ['resource', 'filename'=>'string'], +'fann_reset_errno' => ['void', 'errdat'=>'resource'], +'fann_reset_errstr' => ['void', 'errdat'=>'resource'], +'fann_reset_MSE' => ['bool', 'ann'=>'string'], +'fann_run' => ['array|false', 'ann'=>'resource', 'input'=>'array'], +'fann_save' => ['bool', 'ann'=>'resource', 'configuration_file'=>'string'], +'fann_save_train' => ['bool', 'data'=>'resource', 'file_name'=>'string'], +'fann_scale_input' => ['bool', 'ann'=>'resource', 'input_vector'=>'array'], +'fann_scale_input_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], +'fann_scale_output' => ['bool', 'ann'=>'resource', 'output_vector'=>'array'], +'fann_scale_output_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], +'fann_scale_train' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], +'fann_scale_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], +'fann_set_activation_function' => ['bool', 'ann'=>'resource', 'activation_function'=>'int', 'layer'=>'int', 'neuron'=>'int'], +'fann_set_activation_function_hidden' => ['bool', 'ann'=>'resource', 'activation_function'=>'int'], +'fann_set_activation_function_layer' => ['bool', 'ann'=>'resource', 'activation_function'=>'int', 'layer'=>'int'], +'fann_set_activation_function_output' => ['bool', 'ann'=>'resource', 'activation_function'=>'int'], +'fann_set_activation_steepness' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float', 'layer'=>'int', 'neuron'=>'int'], +'fann_set_activation_steepness_hidden' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float'], +'fann_set_activation_steepness_layer' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float', 'layer'=>'int'], +'fann_set_activation_steepness_output' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float'], +'fann_set_bit_fail_limit' => ['bool', 'ann'=>'resource', 'bit_fail_limit'=>'float'], +'fann_set_callback' => ['bool', 'ann'=>'resource', 'callback'=>'callable'], +'fann_set_cascade_activation_functions' => ['bool', 'ann'=>'resource', 'cascade_activation_functions'=>'array'], +'fann_set_cascade_activation_steepnesses' => ['bool', 'ann'=>'resource', 'cascade_activation_steepnesses_count'=>'array'], +'fann_set_cascade_candidate_change_fraction' => ['bool', 'ann'=>'resource', 'cascade_candidate_change_fraction'=>'float'], +'fann_set_cascade_candidate_limit' => ['bool', 'ann'=>'resource', 'cascade_candidate_limit'=>'float'], +'fann_set_cascade_candidate_stagnation_epochs' => ['bool', 'ann'=>'resource', 'cascade_candidate_stagnation_epochs'=>'int'], +'fann_set_cascade_max_cand_epochs' => ['bool', 'ann'=>'resource', 'cascade_max_cand_epochs'=>'int'], +'fann_set_cascade_max_out_epochs' => ['bool', 'ann'=>'resource', 'cascade_max_out_epochs'=>'int'], +'fann_set_cascade_min_cand_epochs' => ['bool', 'ann'=>'resource', 'cascade_min_cand_epochs'=>'int'], +'fann_set_cascade_min_out_epochs' => ['bool', 'ann'=>'resource', 'cascade_min_out_epochs'=>'int'], +'fann_set_cascade_num_candidate_groups' => ['bool', 'ann'=>'resource', 'cascade_num_candidate_groups'=>'int'], +'fann_set_cascade_output_change_fraction' => ['bool', 'ann'=>'resource', 'cascade_output_change_fraction'=>'float'], +'fann_set_cascade_output_stagnation_epochs' => ['bool', 'ann'=>'resource', 'cascade_output_stagnation_epochs'=>'int'], +'fann_set_cascade_weight_multiplier' => ['bool', 'ann'=>'resource', 'cascade_weight_multiplier'=>'float'], +'fann_set_error_log' => ['void', 'errdat'=>'resource', 'log_file'=>'string'], +'fann_set_input_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_input_min'=>'float', 'new_input_max'=>'float'], +'fann_set_learning_momentum' => ['bool', 'ann'=>'resource', 'learning_momentum'=>'float'], +'fann_set_learning_rate' => ['bool', 'ann'=>'resource', 'learning_rate'=>'float'], +'fann_set_output_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_output_min'=>'float', 'new_output_max'=>'float'], +'fann_set_quickprop_decay' => ['bool', 'ann'=>'resource', 'quickprop_decay'=>'float'], +'fann_set_quickprop_mu' => ['bool', 'ann'=>'resource', 'quickprop_mu'=>'float'], +'fann_set_rprop_decrease_factor' => ['bool', 'ann'=>'resource', 'rprop_decrease_factor'=>'float'], +'fann_set_rprop_delta_max' => ['bool', 'ann'=>'resource', 'rprop_delta_max'=>'float'], +'fann_set_rprop_delta_min' => ['bool', 'ann'=>'resource', 'rprop_delta_min'=>'float'], +'fann_set_rprop_delta_zero' => ['bool', 'ann'=>'resource', 'rprop_delta_zero'=>'float'], +'fann_set_rprop_increase_factor' => ['bool', 'ann'=>'resource', 'rprop_increase_factor'=>'float'], +'fann_set_sarprop_step_error_shift' => ['bool', 'ann'=>'resource', 'sarprop_step_error_shift'=>'float'], +'fann_set_sarprop_step_error_threshold_factor' => ['bool', 'ann'=>'resource', 'sarprop_step_error_threshold_factor'=>'float'], +'fann_set_sarprop_temperature' => ['bool', 'ann'=>'resource', 'sarprop_temperature'=>'float'], +'fann_set_sarprop_weight_decay_shift' => ['bool', 'ann'=>'resource', 'sarprop_weight_decay_shift'=>'float'], +'fann_set_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_input_min'=>'float', 'new_input_max'=>'float', 'new_output_min'=>'float', 'new_output_max'=>'float'], +'fann_set_train_error_function' => ['bool', 'ann'=>'resource', 'error_function'=>'int'], +'fann_set_train_stop_function' => ['bool', 'ann'=>'resource', 'stop_function'=>'int'], +'fann_set_training_algorithm' => ['bool', 'ann'=>'resource', 'training_algorithm'=>'int'], +'fann_set_weight' => ['bool', 'ann'=>'resource', 'from_neuron'=>'int', 'to_neuron'=>'int', 'weight'=>'float'], +'fann_set_weight_array' => ['bool', 'ann'=>'resource', 'connections'=>'array'], +'fann_shuffle_train_data' => ['bool', 'train_data'=>'resource'], +'fann_subset_train_data' => ['resource', 'data'=>'resource', 'pos'=>'int', 'length'=>'int'], +'fann_test' => ['bool', 'ann'=>'resource', 'input'=>'array', 'desired_output'=>'array'], +'fann_test_data' => ['float|false', 'ann'=>'resource', 'data'=>'resource'], +'fann_train' => ['bool', 'ann'=>'resource', 'input'=>'array', 'desired_output'=>'array'], +'fann_train_epoch' => ['float|false', 'ann'=>'resource', 'data'=>'resource'], +'fann_train_on_data' => ['bool', 'ann'=>'resource', 'data'=>'resource', 'max_epochs'=>'int', 'epochs_between_reports'=>'int', 'desired_error'=>'float'], +'fann_train_on_file' => ['bool', 'ann'=>'resource', 'filename'=>'string', 'max_epochs'=>'int', 'epochs_between_reports'=>'int', 'desired_error'=>'float'], +'FANNConnection::__construct' => ['void', 'from_neuron'=>'int', 'to_neuron'=>'int', 'weight'=>'float'], +'FANNConnection::getFromNeuron' => ['int'], +'FANNConnection::getToNeuron' => ['int'], +'FANNConnection::getWeight' => ['void'], +'FANNConnection::setWeight' => ['bool', 'weight'=>'float'], +'fastcgi_finish_request' => ['bool'], +'fbsql_affected_rows' => ['int', 'link_identifier='=>'?resource'], +'fbsql_autocommit' => ['bool', 'link_identifier'=>'resource', 'onoff='=>'bool'], +'fbsql_blob_size' => ['int', 'blob_handle'=>'string', 'link_identifier='=>'?resource'], +'fbsql_change_user' => ['bool', 'user'=>'string', 'password'=>'string', 'database='=>'string', 'link_identifier='=>'?resource'], +'fbsql_clob_size' => ['int', 'clob_handle'=>'string', 'link_identifier='=>'?resource'], +'fbsql_close' => ['bool', 'link_identifier='=>'?resource'], +'fbsql_commit' => ['bool', 'link_identifier='=>'?resource'], +'fbsql_connect' => ['resource', 'hostname='=>'string', 'username='=>'string', 'password='=>'string'], +'fbsql_create_blob' => ['string', 'blob_data'=>'string', 'link_identifier='=>'?resource'], +'fbsql_create_clob' => ['string', 'clob_data'=>'string', 'link_identifier='=>'?resource'], +'fbsql_create_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource', 'database_options='=>'string'], +'fbsql_data_seek' => ['bool', 'result'=>'resource', 'row_number'=>'int'], +'fbsql_database' => ['string', 'link_identifier'=>'resource', 'database='=>'string'], +'fbsql_database_password' => ['string', 'link_identifier'=>'resource', 'database_password='=>'string'], +'fbsql_db_query' => ['resource', 'database'=>'string', 'query'=>'string', 'link_identifier='=>'?resource'], +'fbsql_db_status' => ['int', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'fbsql_drop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'fbsql_errno' => ['int', 'link_identifier='=>'?resource'], +'fbsql_error' => ['string', 'link_identifier='=>'?resource'], +'fbsql_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], +'fbsql_fetch_assoc' => ['array', 'result'=>'resource'], +'fbsql_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_fetch_lengths' => ['array', 'result'=>'resource'], +'fbsql_fetch_object' => ['object', 'result'=>'resource'], +'fbsql_fetch_row' => ['array', 'result'=>'resource'], +'fbsql_field_flags' => ['string', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_field_len' => ['int', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_field_name' => ['string', 'result'=>'resource', 'field_index='=>'int'], +'fbsql_field_seek' => ['bool', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_field_table' => ['string', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_field_type' => ['string', 'result'=>'resource', 'field_offset='=>'int'], +'fbsql_free_result' => ['bool', 'result'=>'resource'], +'fbsql_get_autostart_info' => ['array', 'link_identifier='=>'?resource'], +'fbsql_hostname' => ['string', 'link_identifier'=>'resource', 'host_name='=>'string'], +'fbsql_insert_id' => ['int', 'link_identifier='=>'?resource'], +'fbsql_list_dbs' => ['resource', 'link_identifier='=>'?resource'], +'fbsql_list_fields' => ['resource', 'database_name'=>'string', 'table_name'=>'string', 'link_identifier='=>'?resource'], +'fbsql_list_tables' => ['resource', 'database'=>'string', 'link_identifier='=>'?resource'], +'fbsql_next_result' => ['bool', 'result'=>'resource'], +'fbsql_num_fields' => ['int', 'result'=>'resource'], +'fbsql_num_rows' => ['int', 'result'=>'resource'], +'fbsql_password' => ['string', 'link_identifier'=>'resource', 'password='=>'string'], +'fbsql_pconnect' => ['resource', 'hostname='=>'string', 'username='=>'string', 'password='=>'string'], +'fbsql_query' => ['resource', 'query'=>'string', 'link_identifier='=>'?resource', 'batch_size='=>'int'], +'fbsql_read_blob' => ['string', 'blob_handle'=>'string', 'link_identifier='=>'?resource'], +'fbsql_read_clob' => ['string', 'clob_handle'=>'string', 'link_identifier='=>'?resource'], +'fbsql_result' => ['mixed', 'result'=>'resource', 'row='=>'int', 'field='=>'mixed'], +'fbsql_rollback' => ['bool', 'link_identifier='=>'?resource'], +'fbsql_rows_fetched' => ['int', 'result'=>'resource'], +'fbsql_select_db' => ['bool', 'database_name='=>'string', 'link_identifier='=>'?resource'], +'fbsql_set_characterset' => ['void', 'link_identifier'=>'resource', 'characterset'=>'int', 'in_out_both='=>'int'], +'fbsql_set_lob_mode' => ['bool', 'result'=>'resource', 'lob_mode'=>'int'], +'fbsql_set_password' => ['bool', 'link_identifier'=>'resource', 'user'=>'string', 'password'=>'string', 'old_password'=>'string'], +'fbsql_set_transaction' => ['void', 'link_identifier'=>'resource', 'locking'=>'int', 'isolation'=>'int'], +'fbsql_start_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource', 'database_options='=>'string'], +'fbsql_stop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'fbsql_table_name' => ['string', 'result'=>'resource', 'index'=>'int'], +'fbsql_username' => ['string', 'link_identifier'=>'resource', 'username='=>'string'], +'fbsql_warnings' => ['bool', 'onoff='=>'bool'], +'fclose' => ['bool', 'stream'=>'resource'], +'fdf_add_doc_javascript' => ['bool', 'fdf_document'=>'resource', 'script_name'=>'string', 'script_code'=>'string'], +'fdf_add_template' => ['bool', 'fdf_document'=>'resource', 'newpage'=>'int', 'filename'=>'string', 'template'=>'string', 'rename'=>'int'], +'fdf_close' => ['void', 'fdf_document'=>'resource'], +'fdf_create' => ['resource'], +'fdf_enum_values' => ['bool', 'fdf_document'=>'resource', 'function'=>'callable', 'userdata='=>'mixed'], +'fdf_errno' => ['int'], +'fdf_error' => ['string', 'error_code='=>'int'], +'fdf_get_ap' => ['bool', 'fdf_document'=>'resource', 'field'=>'string', 'face'=>'int', 'filename'=>'string'], +'fdf_get_attachment' => ['array', 'fdf_document'=>'resource', 'fieldname'=>'string', 'savepath'=>'string'], +'fdf_get_encoding' => ['string', 'fdf_document'=>'resource'], +'fdf_get_file' => ['string', 'fdf_document'=>'resource'], +'fdf_get_flags' => ['int', 'fdf_document'=>'resource', 'fieldname'=>'string', 'whichflags'=>'int'], +'fdf_get_opt' => ['mixed', 'fdf_document'=>'resource', 'fieldname'=>'string', 'element='=>'int'], +'fdf_get_status' => ['string', 'fdf_document'=>'resource'], +'fdf_get_value' => ['mixed', 'fdf_document'=>'resource', 'fieldname'=>'string', 'which='=>'int'], +'fdf_get_version' => ['string', 'fdf_document='=>'resource'], +'fdf_header' => ['void'], +'fdf_next_field_name' => ['string', 'fdf_document'=>'resource', 'fieldname='=>'string'], +'fdf_open' => ['resource|false', 'filename'=>'string'], +'fdf_open_string' => ['resource', 'fdf_data'=>'string'], +'fdf_remove_item' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'item'=>'int'], +'fdf_save' => ['bool', 'fdf_document'=>'resource', 'filename='=>'string'], +'fdf_save_string' => ['string', 'fdf_document'=>'resource'], +'fdf_set_ap' => ['bool', 'fdf_document'=>'resource', 'field_name'=>'string', 'face'=>'int', 'filename'=>'string', 'page_number'=>'int'], +'fdf_set_encoding' => ['bool', 'fdf_document'=>'resource', 'encoding'=>'string'], +'fdf_set_file' => ['bool', 'fdf_document'=>'resource', 'url'=>'string', 'target_frame='=>'string'], +'fdf_set_flags' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'whichflags'=>'int', 'newflags'=>'int'], +'fdf_set_javascript_action' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'trigger'=>'int', 'script'=>'string'], +'fdf_set_on_import_javascript' => ['bool', 'fdf_document'=>'resource', 'script'=>'string', 'before_data_import'=>'bool'], +'fdf_set_opt' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'element'=>'int', 'string1'=>'string', 'string2'=>'string'], +'fdf_set_status' => ['bool', 'fdf_document'=>'resource', 'status'=>'string'], +'fdf_set_submit_form_action' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'trigger'=>'int', 'script'=>'string', 'flags'=>'int'], +'fdf_set_target_frame' => ['bool', 'fdf_document'=>'resource', 'frame_name'=>'string'], +'fdf_set_value' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'value'=>'mixed', 'isname='=>'int'], +'fdf_set_version' => ['bool', 'fdf_document'=>'resource', 'version'=>'string'], +'fdiv' => ['float', 'num1'=>'float', 'num2'=>'float'], +'feof' => ['bool', 'stream'=>'resource'], +'fflush' => ['bool', 'stream'=>'resource'], +'fsync' => ['bool', 'stream'=>'resource'], +'fdatasync' => ['bool', 'stream'=>'resource'], +'ffmpeg_animated_gif::__construct' => ['void', 'output_file_path'=>'string', 'width'=>'int', 'height'=>'int', 'frame_rate'=>'int', 'loop_count='=>'int'], +'ffmpeg_animated_gif::addFrame' => ['', 'frame_to_add'=>'ffmpeg_frame'], +'ffmpeg_frame::__construct' => ['void', 'gd_image'=>'resource'], +'ffmpeg_frame::crop' => ['', 'crop_top'=>'int', 'crop_bottom='=>'int', 'crop_left='=>'int', 'crop_right='=>'int'], +'ffmpeg_frame::getHeight' => ['int'], +'ffmpeg_frame::getPresentationTimestamp' => ['int'], +'ffmpeg_frame::getPTS' => ['int'], +'ffmpeg_frame::getWidth' => ['int'], +'ffmpeg_frame::resize' => ['', 'width'=>'int', 'height'=>'int', 'crop_top='=>'int', 'crop_bottom='=>'int', 'crop_left='=>'int', 'crop_right='=>'int'], +'ffmpeg_frame::toGDImage' => ['resource'], +'ffmpeg_movie::__construct' => ['void', 'path_to_media'=>'string', 'persistent'=>'bool'], +'ffmpeg_movie::getArtist' => ['string'], +'ffmpeg_movie::getAudioBitRate' => ['int'], +'ffmpeg_movie::getAudioChannels' => ['int'], +'ffmpeg_movie::getAudioCodec' => ['string'], +'ffmpeg_movie::getAudioSampleRate' => ['int'], +'ffmpeg_movie::getAuthor' => ['string'], +'ffmpeg_movie::getBitRate' => ['int'], +'ffmpeg_movie::getComment' => ['string'], +'ffmpeg_movie::getCopyright' => ['string'], +'ffmpeg_movie::getDuration' => ['int'], +'ffmpeg_movie::getFilename' => ['string'], +'ffmpeg_movie::getFrame' => ['ffmpeg_frame|false', 'framenumber'=>'int'], +'ffmpeg_movie::getFrameCount' => ['int'], +'ffmpeg_movie::getFrameHeight' => ['int'], +'ffmpeg_movie::getFrameNumber' => ['int'], +'ffmpeg_movie::getFrameRate' => ['int'], +'ffmpeg_movie::getFrameWidth' => ['int'], +'ffmpeg_movie::getGenre' => ['string'], +'ffmpeg_movie::getNextKeyFrame' => ['ffmpeg_frame|false'], +'ffmpeg_movie::getPixelFormat' => [''], +'ffmpeg_movie::getTitle' => ['string'], +'ffmpeg_movie::getTrackNumber' => ['int|string'], +'ffmpeg_movie::getVideoBitRate' => ['int'], +'ffmpeg_movie::getVideoCodec' => ['string'], +'ffmpeg_movie::getYear' => ['int|string'], +'ffmpeg_movie::hasAudio' => ['bool'], +'ffmpeg_movie::hasVideo' => ['bool'], +'fgetc' => ['string|false', 'stream'=>'resource'], +'fgetcsv' => ['list|array{0: null}|false', 'stream'=>'resource', 'length='=>'?int', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'fgets' => ['string|false', 'stream'=>'resource', 'length='=>'?int'], +'Fiber::__construct' => ['void', 'callback'=>'callable'], +'Fiber::start' => ['mixed', '...args'=>'mixed'], +'Fiber::resume' => ['mixed', 'value='=>'null|mixed'], +'Fiber::throw' => ['mixed', 'exception'=>'Throwable'], +'Fiber::isStarted' => ['bool'], +'Fiber::isSuspended' => ['bool'], +'Fiber::isRunning' => ['bool'], +'Fiber::isTerminated' => ['bool'], +'Fiber::getReturn' => ['mixed'], +'Fiber::getCurrent' => ['?self'], +'Fiber::suspend' => ['mixed', 'value='=>'null|mixed'], +'FiberError::__construct' => ['void'], +'file' => ['list|false', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], +'file_exists' => ['bool', 'filename'=>'string'], +'file_get_contents' => ['string|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'?resource', 'offset='=>'int', 'length='=>'?int'], +'file_put_contents' => ['int|false', 'filename'=>'string', 'data'=>'string|resource|array', 'flags='=>'int', 'context='=>'resource'], +'fileatime' => ['int|false', 'filename'=>'string'], +'filectime' => ['int|false', 'filename'=>'string'], +'filegroup' => ['int|false', 'filename'=>'string'], +'fileinode' => ['int|false', 'filename'=>'string'], +'filemtime' => ['int|false', 'filename'=>'string'], +'fileowner' => ['int|false', 'filename'=>'string'], +'fileperms' => ['int|false', 'filename'=>'string'], +'filepro' => ['bool', 'directory'=>'string'], +'filepro_fieldcount' => ['int'], +'filepro_fieldname' => ['string', 'field_number'=>'int'], +'filepro_fieldtype' => ['string', 'field_number'=>'int'], +'filepro_fieldwidth' => ['int', 'field_number'=>'int'], +'filepro_retrieve' => ['string', 'row_number'=>'int', 'field_number'=>'int'], +'filepro_rowcount' => ['int'], +'filesize' => ['int|false', 'filename'=>'string'], +'FilesystemIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], +'FilesystemIterator::__toString' => ['string'], +'FilesystemIterator::current' => ['SplFileInfo|FilesystemIterator|string'], +'FilesystemIterator::getATime' => ['int'], +'FilesystemIterator::getBasename' => ['string', 'suffix='=>'string'], +'FilesystemIterator::getCTime' => ['int'], +'FilesystemIterator::getExtension' => ['string'], +'FilesystemIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], +'FilesystemIterator::getFilename' => ['string'], +'FilesystemIterator::getFlags' => ['int'], +'FilesystemIterator::getGroup' => ['int'], +'FilesystemIterator::getInode' => ['int'], +'FilesystemIterator::getLinkTarget' => ['string'], +'FilesystemIterator::getMTime' => ['int'], +'FilesystemIterator::getOwner' => ['int'], +'FilesystemIterator::getPath' => ['string'], +'FilesystemIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], +'FilesystemIterator::getPathname' => ['string'], +'FilesystemIterator::getPerms' => ['int'], +'FilesystemIterator::getRealPath' => ['string'], +'FilesystemIterator::getSize' => ['int'], +'FilesystemIterator::getType' => ['string'], +'FilesystemIterator::isDir' => ['bool'], +'FilesystemIterator::isDot' => ['bool'], +'FilesystemIterator::isExecutable' => ['bool'], +'FilesystemIterator::isFile' => ['bool'], +'FilesystemIterator::isLink' => ['bool'], +'FilesystemIterator::isReadable' => ['bool'], +'FilesystemIterator::isWritable' => ['bool'], +'FilesystemIterator::key' => ['string'], +'FilesystemIterator::next' => ['void'], +'FilesystemIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], +'FilesystemIterator::rewind' => ['void'], +'FilesystemIterator::seek' => ['void', 'position'=>'int'], +'FilesystemIterator::setFileClass' => ['void', 'class_name='=>'string'], +'FilesystemIterator::setFlags' => ['void', 'flags='=>'int'], +'FilesystemIterator::setInfoClass' => ['void', 'class_name='=>'string'], +'FilesystemIterator::valid' => ['bool'], +'filetype' => ['string|false', 'filename'=>'string'], +'filter_has_var' => ['bool', 'input_type'=>'int', 'var_name'=>'string'], +'filter_id' => ['int|false', 'name'=>'string'], +'filter_input' => ['mixed|false', 'type'=>'int', 'var_name'=>'string', 'filter='=>'int', 'options='=>'array|int'], +'filter_input_array' => ['array|false|null', 'type'=>'int', 'options='=>'int|array', 'add_empty='=>'bool'], +'filter_list' => ['array'], +'filter_var' => ['mixed|false', 'value'=>'mixed', 'filter='=>'int', 'options='=>'array|int'], +'filter_var_array' => ['array|false|null', 'array'=>'array', 'options='=>'array|int', 'add_empty='=>'bool'], +'FilterIterator::__construct' => ['void', 'iterator'=>'Iterator'], +'FilterIterator::accept' => ['bool'], +'FilterIterator::current' => ['mixed'], +'FilterIterator::getInnerIterator' => ['Iterator'], +'FilterIterator::key' => ['mixed'], +'FilterIterator::next' => ['void'], +'FilterIterator::rewind' => ['void'], +'FilterIterator::valid' => ['bool'], +'finfo::__construct' => ['void', 'flags='=>'int', 'magic_database='=>'?string'], +'finfo::buffer' => ['string|false', 'string'=>'string', 'flags='=>'int', 'context='=>'?resource'], +'finfo::file' => ['string|false', 'filename'=>'string', 'flags='=>'int', 'context='=>'?resource'], +'finfo::set_flags' => ['bool', 'flags'=>'int'], +'finfo_buffer' => ['string|false', 'finfo'=>'finfo', 'string'=>'string', 'flags='=>'int', 'context='=>'resource'], +'finfo_close' => ['bool', 'finfo'=>'finfo'], +'finfo_file' => ['string|false', 'finfo'=>'finfo', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], +'finfo_open' => ['finfo|false', 'flags='=>'int', 'magic_database='=>'?string'], +'finfo_set_flags' => ['bool', 'finfo'=>'finfo', 'flags'=>'int'], +'floatval' => ['float', 'value'=>'mixed'], +'flock' => ['bool', 'stream'=>'resource', 'operation'=>'int', '&w_would_block='=>'int'], +'floor' => ['float', 'num'=>'float'], +'flush' => ['void'], +'fmod' => ['float', 'num1'=>'float', 'num2'=>'float'], +'fnmatch' => ['bool', 'pattern'=>'string', 'filename'=>'string', 'flags='=>'int'], +'fopen' => ['resource|false', 'filename'=>'string', 'mode'=>'string', 'use_include_path='=>'bool', 'context='=>'resource|null'], +'forward_static_call' => ['mixed|false', 'callback'=>'callable', '...args='=>'mixed'], +'forward_static_call_array' => ['mixed|false', 'callback'=>'callable', 'args'=>'list'], +'fpassthru' => ['int', 'stream'=>'resource'], +'fpm_get_status' => ['array|false'], +'fprintf' => ['int', 'stream'=>'resource', 'format'=>'string', '...values='=>'string|int|float'], +'fputcsv' => ['int|false', 'stream'=>'resource', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string'], +'fputs' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], +'fread' => ['string|false', 'stream'=>'resource', 'length'=>'int'], +'frenchtojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'fribidi_log2vis' => ['string', 'string'=>'string', 'direction'=>'string', 'charset'=>'int'], +'fscanf' => ['list', 'stream'=>'resource', 'format'=>'string'], +'fscanf\'1' => ['int', 'stream'=>'resource', 'format'=>'string', '&...w_vars='=>'string|int|float'], +'fseek' => ['int', 'stream'=>'resource', 'offset'=>'int', 'whence='=>'int'], +'fsockopen' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float'], +'fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'stream'=>'resource'], +'ftell' => ['int|false', 'stream'=>'resource'], +'ftok' => ['int', 'filename'=>'string', 'project_id'=>'string'], +'ftp_alloc' => ['bool', 'ftp'=>'FTP\Connection', 'size'=>'int', '&w_response='=>'string'], +'ftp_append' => ['bool', 'ftp'=>'FTP\Connection', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int'], +'ftp_cdup' => ['bool', 'ftp'=>'FTP\Connection'], +'ftp_chdir' => ['bool', 'ftp'=>'FTP\Connection', 'directory'=>'string'], +'ftp_chmod' => ['int|false', 'ftp'=>'FTP\Connection', 'permissions'=>'int', 'filename'=>'string'], +'ftp_close' => ['bool', 'ftp'=>'FTP\Connection'], +'ftp_connect' => ['FTP\Connection|false', 'hostname'=>'string', 'port='=>'int', 'timeout='=>'int'], +'ftp_delete' => ['bool', 'ftp'=>'FTP\Connection', 'filename'=>'string'], +'ftp_exec' => ['bool', 'ftp'=>'FTP\Connection', 'command'=>'string'], +'ftp_fget' => ['bool', 'ftp'=>'FTP\Connection', 'stream'=>'resource', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_fput' => ['bool', 'ftp'=>'FTP\Connection', 'remote_filename'=>'string', 'stream'=>'resource', 'mode='=>'int', 'offset='=>'int'], +'ftp_get' => ['bool', 'ftp'=>'FTP\Connection', 'local_filename'=>'string', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_get_option' => ['int|false', 'ftp'=>'FTP\Connection', 'option'=>'int'], +'ftp_login' => ['bool', 'ftp'=>'FTP\Connection', 'username'=>'string', 'password'=>'string'], +'ftp_mdtm' => ['int', 'ftp'=>'FTP\Connection', 'filename'=>'string'], +'ftp_mkdir' => ['string|false', 'ftp'=>'FTP\Connection', 'directory'=>'string'], +'ftp_mlsd' => ['array|false', 'ftp'=>'FTP\Connection', 'directory'=>'string'], +'ftp_nb_continue' => ['int', 'ftp'=>'FTP\Connection'], +'ftp_nb_fget' => ['int', 'ftp'=>'FTP\Connection', 'stream'=>'resource', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_nb_fput' => ['int', 'ftp'=>'FTP\Connection', 'remote_filename'=>'string', 'stream'=>'resource', 'mode='=>'int', 'offset='=>'int'], +'ftp_nb_get' => ['int', 'ftp'=>'FTP\Connection', 'local_filename'=>'string', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_nb_put' => ['int', 'ftp'=>'FTP\Connection', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_nlist' => ['array|false', 'ftp'=>'FTP\Connection', 'directory'=>'string'], +'ftp_pasv' => ['bool', 'ftp'=>'FTP\Connection', 'enable'=>'bool'], +'ftp_put' => ['bool', 'ftp'=>'FTP\Connection', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], +'ftp_pwd' => ['string|false', 'ftp'=>'FTP\Connection'], +'ftp_quit' => ['bool', 'ftp'=>'FTP\Connection'], +'ftp_raw' => ['?array', 'ftp'=>'FTP\Connection', 'command'=>'string'], +'ftp_rawlist' => ['array|false', 'ftp'=>'FTP\Connection', 'directory'=>'string', 'recursive='=>'bool'], +'ftp_rename' => ['bool', 'ftp'=>'FTP\Connection', 'from'=>'string', 'to'=>'string'], +'ftp_rmdir' => ['bool', 'ftp'=>'FTP\Connection', 'directory'=>'string'], +'ftp_set_option' => ['bool', 'ftp'=>'FTP\Connection', 'option'=>'int', 'value'=>'mixed'], +'ftp_site' => ['bool', 'ftp'=>'FTP\Connection', 'command'=>'string'], +'ftp_size' => ['int', 'ftp'=>'FTP\Connection', 'filename'=>'string'], +'ftp_ssl_connect' => ['FTP\Connection|false', 'hostname'=>'string', 'port='=>'int', 'timeout='=>'int'], +'ftp_systype' => ['string|false', 'ftp'=>'FTP\Connection'], +'ftruncate' => ['bool', 'stream'=>'resource', 'size'=>'int'], +'func_get_arg' => ['mixed|false', 'position'=>'int'], +'func_get_args' => ['list'], +'func_num_args' => ['int'], +'function_exists' => ['bool', 'function'=>'string'], +'fwrite' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], +'gc_collect_cycles' => ['int'], +'gc_disable' => ['void'], +'gc_enable' => ['void'], +'gc_enabled' => ['bool'], +'gc_mem_caches' => ['int'], +'gc_status' => ['array{runs:int,collected:int,threshold:int,roots:int}'], +'gd_info' => ['array'], +'gearman_bugreport' => [''], +'gearman_client_add_options' => ['', 'client_object'=>'', 'option'=>''], +'gearman_client_add_server' => ['', 'client_object'=>'', 'host'=>'', 'port'=>''], +'gearman_client_add_servers' => ['', 'client_object'=>'', 'servers'=>''], +'gearman_client_add_task' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_high' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_high_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_low' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_low_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], +'gearman_client_add_task_status' => ['', 'client_object'=>'', 'job_handle'=>'', 'context'=>''], +'gearman_client_clear_fn' => ['', 'client_object'=>''], +'gearman_client_clone' => ['', 'client_object'=>''], +'gearman_client_context' => ['', 'client_object'=>''], +'gearman_client_create' => ['', 'client_object'=>''], +'gearman_client_do' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_high' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_high_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_job_handle' => ['', 'client_object'=>''], +'gearman_client_do_low' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_low_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], +'gearman_client_do_normal' => ['', 'client_object'=>'', 'function_name'=>'string', 'workload'=>'string', 'unique'=>'string'], +'gearman_client_do_status' => ['', 'client_object'=>''], +'gearman_client_echo' => ['', 'client_object'=>'', 'workload'=>''], +'gearman_client_errno' => ['', 'client_object'=>''], +'gearman_client_error' => ['', 'client_object'=>''], +'gearman_client_job_status' => ['', 'client_object'=>'', 'job_handle'=>''], +'gearman_client_options' => ['', 'client_object'=>''], +'gearman_client_remove_options' => ['', 'client_object'=>'', 'option'=>''], +'gearman_client_return_code' => ['', 'client_object'=>''], +'gearman_client_run_tasks' => ['', 'data'=>''], +'gearman_client_set_complete_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_context' => ['', 'client_object'=>'', 'context'=>''], +'gearman_client_set_created_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_data_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_exception_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_fail_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_options' => ['', 'client_object'=>'', 'option'=>''], +'gearman_client_set_status_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_timeout' => ['', 'client_object'=>'', 'timeout'=>''], +'gearman_client_set_warning_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_set_workload_fn' => ['', 'client_object'=>'', 'callback'=>''], +'gearman_client_timeout' => ['', 'client_object'=>''], +'gearman_client_wait' => ['', 'client_object'=>''], +'gearman_job_function_name' => ['', 'job_object'=>''], +'gearman_job_handle' => ['string'], +'gearman_job_return_code' => ['', 'job_object'=>''], +'gearman_job_send_complete' => ['', 'job_object'=>'', 'result'=>''], +'gearman_job_send_data' => ['', 'job_object'=>'', 'data'=>''], +'gearman_job_send_exception' => ['', 'job_object'=>'', 'exception'=>''], +'gearman_job_send_fail' => ['', 'job_object'=>''], +'gearman_job_send_status' => ['', 'job_object'=>'', 'numerator'=>'', 'denominator'=>''], +'gearman_job_send_warning' => ['', 'job_object'=>'', 'warning'=>''], +'gearman_job_status' => ['array', 'job_handle'=>'string'], +'gearman_job_unique' => ['', 'job_object'=>''], +'gearman_job_workload' => ['', 'job_object'=>''], +'gearman_job_workload_size' => ['', 'job_object'=>''], +'gearman_task_data' => ['', 'task_object'=>''], +'gearman_task_data_size' => ['', 'task_object'=>''], +'gearman_task_denominator' => ['', 'task_object'=>''], +'gearman_task_function_name' => ['', 'task_object'=>''], +'gearman_task_is_known' => ['', 'task_object'=>''], +'gearman_task_is_running' => ['', 'task_object'=>''], +'gearman_task_job_handle' => ['', 'task_object'=>''], +'gearman_task_numerator' => ['', 'task_object'=>''], +'gearman_task_recv_data' => ['', 'task_object'=>'', 'data_len'=>''], +'gearman_task_return_code' => ['', 'task_object'=>''], +'gearman_task_send_workload' => ['', 'task_object'=>'', 'data'=>''], +'gearman_task_unique' => ['', 'task_object'=>''], +'gearman_verbose_name' => ['', 'verbose'=>''], +'gearman_version' => [''], +'gearman_worker_add_function' => ['', 'worker_object'=>'', 'function_name'=>'', 'function'=>'', 'data'=>'', 'timeout'=>''], +'gearman_worker_add_options' => ['', 'worker_object'=>'', 'option'=>''], +'gearman_worker_add_server' => ['', 'worker_object'=>'', 'host'=>'', 'port'=>''], +'gearman_worker_add_servers' => ['', 'worker_object'=>'', 'servers'=>''], +'gearman_worker_clone' => ['', 'worker_object'=>''], +'gearman_worker_create' => [''], +'gearman_worker_echo' => ['', 'worker_object'=>'', 'workload'=>''], +'gearman_worker_errno' => ['', 'worker_object'=>''], +'gearman_worker_error' => ['', 'worker_object'=>''], +'gearman_worker_grab_job' => ['', 'worker_object'=>''], +'gearman_worker_options' => ['', 'worker_object'=>''], +'gearman_worker_register' => ['', 'worker_object'=>'', 'function_name'=>'', 'timeout'=>''], +'gearman_worker_remove_options' => ['', 'worker_object'=>'', 'option'=>''], +'gearman_worker_return_code' => ['', 'worker_object'=>''], +'gearman_worker_set_options' => ['', 'worker_object'=>'', 'option'=>''], +'gearman_worker_set_timeout' => ['', 'worker_object'=>'', 'timeout'=>''], +'gearman_worker_timeout' => ['', 'worker_object'=>''], +'gearman_worker_unregister' => ['', 'worker_object'=>'', 'function_name'=>''], +'gearman_worker_unregister_all' => ['', 'worker_object'=>''], +'gearman_worker_wait' => ['', 'worker_object'=>''], +'gearman_worker_work' => ['', 'worker_object'=>''], +'GearmanClient::__construct' => ['void'], +'GearmanClient::addOptions' => ['bool', 'options'=>'int'], +'GearmanClient::addServer' => ['bool', 'host='=>'string', 'port='=>'int'], +'GearmanClient::addServers' => ['bool', 'servers='=>'string'], +'GearmanClient::addTask' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskHigh' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskHighBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskLow' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskLowBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], +'GearmanClient::addTaskStatus' => ['GearmanTask', 'job_handle'=>'string', 'context='=>'string'], +'GearmanClient::clearCallbacks' => ['bool'], +'GearmanClient::clone' => ['GearmanClient'], +'GearmanClient::context' => ['string'], +'GearmanClient::data' => ['string'], +'GearmanClient::do' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doHigh' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doHighBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doJobHandle' => ['string'], +'GearmanClient::doLow' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doLowBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doNormal' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], +'GearmanClient::doStatus' => ['array'], +'GearmanClient::echo' => ['bool', 'workload'=>'string'], +'GearmanClient::error' => ['string'], +'GearmanClient::getErrno' => ['int'], +'GearmanClient::jobStatus' => ['array', 'job_handle'=>'string'], +'GearmanClient::options' => [''], +'GearmanClient::ping' => ['bool', 'workload'=>'string'], +'GearmanClient::removeOptions' => ['bool', 'options'=>'int'], +'GearmanClient::returnCode' => ['int'], +'GearmanClient::runTasks' => ['bool'], +'GearmanClient::setClientCallback' => ['void', 'callback'=>'callable'], +'GearmanClient::setCompleteCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setContext' => ['bool', 'context'=>'string'], +'GearmanClient::setCreatedCallback' => ['bool', 'callback'=>'string'], +'GearmanClient::setData' => ['bool', 'data'=>'string'], +'GearmanClient::setDataCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setExceptionCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setFailCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setOptions' => ['bool', 'options'=>'int'], +'GearmanClient::setStatusCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setTimeout' => ['bool', 'timeout'=>'int'], +'GearmanClient::setWarningCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::setWorkloadCallback' => ['bool', 'callback'=>'callable'], +'GearmanClient::timeout' => ['int'], +'GearmanClient::wait' => [''], +'GearmanJob::__construct' => ['void'], +'GearmanJob::complete' => ['bool', 'result'=>'string'], +'GearmanJob::data' => ['bool', 'data'=>'string'], +'GearmanJob::exception' => ['bool', 'exception'=>'string'], +'GearmanJob::fail' => ['bool'], +'GearmanJob::functionName' => ['string'], +'GearmanJob::handle' => ['string'], +'GearmanJob::returnCode' => ['int'], +'GearmanJob::sendComplete' => ['bool', 'result'=>'string'], +'GearmanJob::sendData' => ['bool', 'data'=>'string'], +'GearmanJob::sendException' => ['bool', 'exception'=>'string'], +'GearmanJob::sendFail' => ['bool'], +'GearmanJob::sendStatus' => ['bool', 'numerator'=>'int', 'denominator'=>'int'], +'GearmanJob::sendWarning' => ['bool', 'warning'=>'string'], +'GearmanJob::setReturn' => ['bool', 'gearman_return_t'=>'string'], +'GearmanJob::status' => ['bool', 'numerator'=>'int', 'denominator'=>'int'], +'GearmanJob::unique' => ['string'], +'GearmanJob::warning' => ['bool', 'warning'=>'string'], +'GearmanJob::workload' => ['string'], +'GearmanJob::workloadSize' => ['int'], +'GearmanTask::__construct' => ['void'], +'GearmanTask::create' => ['GearmanTask'], +'GearmanTask::data' => ['string|false'], +'GearmanTask::dataSize' => ['int|false'], +'GearmanTask::function' => ['string'], +'GearmanTask::functionName' => ['string'], +'GearmanTask::isKnown' => ['bool'], +'GearmanTask::isRunning' => ['bool'], +'GearmanTask::jobHandle' => ['string'], +'GearmanTask::recvData' => ['array|false', 'data_len'=>'int'], +'GearmanTask::returnCode' => ['int'], +'GearmanTask::sendData' => ['int', 'data'=>'string'], +'GearmanTask::sendWorkload' => ['int|false', 'data'=>'string'], +'GearmanTask::taskDenominator' => ['int|false'], +'GearmanTask::taskNumerator' => ['int|false'], +'GearmanTask::unique' => ['string|false'], +'GearmanTask::uuid' => ['string'], +'GearmanWorker::__construct' => ['void'], +'GearmanWorker::addFunction' => ['bool', 'function_name'=>'string', 'function'=>'callable', 'context='=>'mixed', 'timeout='=>'int'], +'GearmanWorker::addOptions' => ['bool', 'option'=>'int'], +'GearmanWorker::addServer' => ['bool', 'host='=>'string', 'port='=>'int'], +'GearmanWorker::addServers' => ['bool', 'servers'=>'string'], +'GearmanWorker::clone' => ['void'], +'GearmanWorker::echo' => ['bool', 'workload'=>'string'], +'GearmanWorker::error' => ['string'], +'GearmanWorker::getErrno' => ['int'], +'GearmanWorker::grabJob' => [''], +'GearmanWorker::options' => ['int'], +'GearmanWorker::register' => ['bool', 'function_name'=>'string', 'timeout='=>'int'], +'GearmanWorker::removeOptions' => ['bool', 'option'=>'int'], +'GearmanWorker::returnCode' => ['int'], +'GearmanWorker::setId' => ['bool', 'id'=>'string'], +'GearmanWorker::setOptions' => ['bool', 'option'=>'int'], +'GearmanWorker::setTimeout' => ['bool', 'timeout'=>'int'], +'GearmanWorker::timeout' => ['int'], +'GearmanWorker::unregister' => ['bool', 'function_name'=>'string'], +'GearmanWorker::unregisterAll' => ['bool'], +'GearmanWorker::wait' => ['bool'], +'GearmanWorker::work' => ['bool'], +'Gender\Gender::__construct' => ['void', 'dsn='=>'string'], +'Gender\Gender::connect' => ['bool', 'dsn'=>'string'], +'Gender\Gender::country' => ['array', 'country'=>'int'], +'Gender\Gender::get' => ['int', 'name'=>'string', 'country='=>'int'], +'Gender\Gender::isNick' => ['array', 'name0'=>'string', 'name1'=>'string', 'country='=>'int'], +'Gender\Gender::similarNames' => ['array', 'name'=>'string', 'country='=>'int'], +'Generator::__wakeup' => ['void'], +'Generator::current' => ['mixed'], +'Generator::getReturn' => ['mixed'], +'Generator::key' => ['mixed'], +'Generator::next' => ['void'], +'Generator::rewind' => ['void'], +'Generator::send' => ['mixed', 'value'=>'mixed'], +'Generator::throw' => ['mixed', 'exception'=>'Throwable'], +'Generator::valid' => ['bool'], +'geoip_asnum_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_continent_code_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_country_code3_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_country_code_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_country_name_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_database_info' => ['string', 'database='=>'int'], +'geoip_db_avail' => ['bool', 'database'=>'int'], +'geoip_db_filename' => ['string', 'database'=>'int'], +'geoip_db_get_all_info' => ['array'], +'geoip_domain_by_name' => ['string', 'hostname'=>'string'], +'geoip_id_by_name' => ['int', 'hostname'=>'string'], +'geoip_isp_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_netspeedcell_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_org_by_name' => ['string|false', 'hostname'=>'string'], +'geoip_record_by_name' => ['array|false', 'hostname'=>'string'], +'geoip_region_by_name' => ['array|false', 'hostname'=>'string'], +'geoip_region_name_by_code' => ['string|false', 'country_code'=>'string', 'region_code'=>'string'], +'geoip_setup_custom_directory' => ['void', 'path'=>'string'], +'geoip_time_zone_by_country_and_region' => ['string|false', 'country_code'=>'string', 'region_code='=>'string'], +'GEOSGeometry::__toString' => ['string'], +'GEOSGeometry::project' => ['float', 'other'=>'GEOSGeometry', 'normalized'=>'bool'], +'GEOSGeometry::interpolate' => ['GEOSGeometry', 'dist'=>'float', 'normalized'=>'bool'], +'GEOSGeometry::buffer' => ['GEOSGeometry', 'dist'=>'float', 'styleArray='=>'array'], +'GEOSGeometry::offsetCurve' => ['GEOSGeometry', 'dist'=>'float', 'styleArray'=>'array'], +'GEOSGeometry::envelope' => ['GEOSGeometry'], +'GEOSGeometry::intersection' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::convexHull' => ['GEOSGeometry'], +'GEOSGeometry::difference' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::symDifference' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::boundary' => ['GEOSGeometry'], +'GEOSGeometry::union' => ['GEOSGeometry', 'otherGeom='=>'GEOSGeometry'], +'GEOSGeometry::pointOnSurface' => ['GEOSGeometry'], +'GEOSGeometry::centroid' => ['GEOSGeometry'], +'GEOSGeometry::relate' => ['string|bool', 'otherGeom'=>'GEOSGeometry', 'pattern'=>'string'], +'GEOSGeometry::relateBoundaryNodeRule' => ['string', 'otherGeom'=>'GEOSGeometry', 'rule'=>'int'], +'GEOSGeometry::simplify' => ['GEOSGeometry', 'tolerance'=>'float', 'preserveTopology='=>'bool'], +'GEOSGeometry::normalize' => ['GEOSGeometry'], +'GEOSGeometry::extractUniquePoints' => ['GEOSGeometry'], +'GEOSGeometry::disjoint' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::touches' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::intersects' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::crosses' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::within' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::contains' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::overlaps' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::covers' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::coveredBy' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::equals' => ['bool', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::equalsExact' => ['bool', 'geom'=>'GEOSGeometry', 'tolerance'=>'float'], +'GEOSGeometry::isEmpty' => ['bool'], +'GEOSGeometry::checkValidity' => ['array{valid: bool, reason?: string, location?: GEOSGeometry}'], +'GEOSGeometry::isSimple' => ['bool'], +'GEOSGeometry::isRing' => ['bool'], +'GEOSGeometry::hasZ' => ['bool'], +'GEOSGeometry::isClosed' => ['bool'], +'GEOSGeometry::typeName' => ['string'], +'GEOSGeometry::typeId' => ['int'], +'GEOSGeometry::getSRID' => ['int'], +'GEOSGeometry::setSRID' => ['void', 'srid'=>'int'], +'GEOSGeometry::numGeometries' => ['int'], +'GEOSGeometry::geometryN' => ['GEOSGeometry', 'num'=>'int'], +'GEOSGeometry::numInteriorRings' => ['int'], +'GEOSGeometry::numPoints' => ['int'], +'GEOSGeometry::getX' => ['float'], +'GEOSGeometry::getY' => ['float'], +'GEOSGeometry::interiorRingN' => ['GEOSGeometry', 'num'=>'int'], +'GEOSGeometry::exteriorRing' => ['GEOSGeometry'], +'GEOSGeometry::numCoordinates' => ['int'], +'GEOSGeometry::dimension' => ['int'], +'GEOSGeometry::coordinateDimension' => ['int'], +'GEOSGeometry::pointN' => ['GEOSGeometry', 'num'=>'int'], +'GEOSGeometry::startPoint' => ['GEOSGeometry'], +'GEOSGeometry::endPoint' => ['GEOSGeometry'], +'GEOSGeometry::area' => ['float'], +'GEOSGeometry::length' => ['float'], +'GEOSGeometry::distance' => ['float', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::hausdorffDistance' => ['float', 'geom'=>'GEOSGeometry'], +'GEOSGeometry::snapTo' => ['GEOSGeometry', 'geom'=>'GEOSGeometry', 'tolerance'=>'float'], +'GEOSGeometry::node' => ['GEOSGeometry'], +'GEOSGeometry::delaunayTriangulation' => ['GEOSGeometry', 'tolerance'=>'float', 'onlyEdges'=>'bool'], +'GEOSGeometry::voronoiDiagram' => ['GEOSGeometry', 'tolerance'=>'float', 'onlyEdges'=>'bool', 'extent'=>'GEOSGeometry|null'], +'GEOSLineMerge' => ['array', 'geom'=>'GEOSGeometry'], +'GEOSPolygonize' => ['array{rings: GEOSGeometry[], cut_edges?: GEOSGeometry[], dangles: GEOSGeometry[], invalid_rings: GEOSGeometry[]}', 'geom'=>'GEOSGeometry'], +'GEOSRelateMatch' => ['bool', 'matrix'=>'string', 'pattern'=>'string'], +'GEOSSharedPaths' => ['GEOSGeometry', 'geom1'=>'GEOSGeometry', 'geom2'=>'GEOSGeometry'], +'GEOSVersion' => ['string'], +'GEOSWKBReader::__construct' => ['void'], +'GEOSWKBReader::read' => ['GEOSGeometry', 'wkb'=>'string'], +'GEOSWKBReader::readHEX' => ['GEOSGeometry', 'wkb'=>'string'], +'GEOSWKBWriter::__construct' => ['void'], +'GEOSWKBWriter::getOutputDimension' => ['int'], +'GEOSWKBWriter::setOutputDimension' => ['void', 'dim'=>'int'], +'GEOSWKBWriter::getByteOrder' => ['int'], +'GEOSWKBWriter::setByteOrder' => ['void', 'byteOrder'=>'int'], +'GEOSWKBWriter::getIncludeSRID' => ['bool'], +'GEOSWKBWriter::setIncludeSRID' => ['void', 'inc'=>'bool'], +'GEOSWKBWriter::write' => ['string', 'geom'=>'GEOSGeometry'], +'GEOSWKBWriter::writeHEX' => ['string', 'geom'=>'GEOSGeometry'], +'GEOSWKTReader::__construct' => ['void'], +'GEOSWKTReader::read' => ['GEOSGeometry', 'wkt'=>'string'], +'GEOSWKTWriter::__construct' => ['void'], +'GEOSWKTWriter::write' => ['string', 'geom'=>'GEOSGeometry'], +'GEOSWKTWriter::setTrim' => ['void', 'trim'=>'bool'], +'GEOSWKTWriter::setRoundingPrecision' => ['void', 'prec'=>'int'], +'GEOSWKTWriter::setOutputDimension' => ['void', 'dim'=>'int'], +'GEOSWKTWriter::getOutputDimension' => ['int'], +'GEOSWKTWriter::setOld3D' => ['void', 'val'=>'bool'], +'get_browser' => ['array|object|false', 'user_agent='=>'?string', 'return_array='=>'bool'], +'get_call_stack' => [''], +'get_called_class' => ['class-string'], +'get_cfg_var' => ['string|false', 'option'=>'string'], +'get_class' => ['class-string', 'object='=>'object'], +'get_class_methods' => ['list', 'object_or_class'=>'object|class-string'], +'get_class_vars' => ['array', 'class'=>'string'], +'get_current_user' => ['string'], +'get_debug_type' => ['string', 'value'=>'mixed'], +'get_declared_classes' => ['list'], +'get_declared_interfaces' => ['list'], +'get_declared_traits' => ['list'], +'get_defined_constants' => ['array', 'categorize='=>'bool'], +'get_defined_functions' => ['array{internal: list, user: list}', 'exclude_disabled='=>'bool'], +'get_defined_vars' => ['array'], +'get_extension_funcs' => ['list|false', 'extension'=>'string'], +'get_headers' => ['array|false', 'url'=>'string', 'associative='=>'bool', 'context='=>'?resource'], +'get_html_translation_table' => ['array', 'table='=>'int', 'flags='=>'int', 'encoding='=>'string'], +'get_include_path' => ['string'], +'get_included_files' => ['list'], +'get_loaded_extensions' => ['list', 'zend_extensions='=>'bool'], +'get_magic_quotes_gpc' => ['int|false'], +'get_magic_quotes_runtime' => ['int|false'], +'get_meta_tags' => ['array', 'filename'=>'string', 'use_include_path='=>'bool'], +'get_object_vars' => ['array', 'object'=>'object'], +'get_parent_class' => ['class-string|false', 'object_or_class='=>'object|class-string'], +'get_required_files' => ['list'], +'get_resource_id' => ['int', 'resource'=>'resource'], +'get_resource_type' => ['string', 'resource'=>'resource'], +'get_resources' => ['array', 'type='=>'?string'], +'getallheaders' => ['array|false'], +'getcwd' => ['string|false'], +'getdate' => ['array{seconds: int<0, 59>, minutes: int<0, 59>, hours: int<0, 23>, mday: int<1, 31>, wday: int<0, 6>, mon: int<1, 12>, year: int, yday: int<0, 365>, weekday: "Monday"|"Tuesday"|"Wednesday"|"Thursday"|"Friday"|"Saturday"|"Sunday", month: "January"|"February"|"March"|"April"|"May"|"June"|"July"|"August"|"September"|"October"|"November"|"December", 0: int}', 'timestamp='=>'?int'], +'getenv' => ['string|false', 'name'=>'string', 'local_only='=>'bool'], +'getenv\'1' => ['array'], +'gethostbyaddr' => ['string|false', 'ip'=>'string'], +'gethostbyname' => ['string', 'hostname'=>'string'], +'gethostbynamel' => ['list|false', 'hostname'=>'string'], +'gethostname' => ['string|false'], +'getimagesize' => ['array|false', 'filename'=>'string', '&w_image_info='=>'array'], +'getimagesizefromstring' => ['array|false', 'string'=>'string', '&w_image_info='=>'array'], +'getlastmod' => ['int|false'], +'getmxrr' => ['bool', 'hostname'=>'string', '&w_hosts'=>'array', '&w_weights='=>'array'], +'getmygid' => ['int|false'], +'getmyinode' => ['int|false'], +'getmypid' => ['int|false'], +'getmyuid' => ['int|false'], +'getopt' => ['array>|false', 'short_options'=>'string', 'long_options='=>'array', '&w_rest_index='=>'int'], +'getprotobyname' => ['int|false', 'protocol'=>'string'], +'getprotobynumber' => ['string', 'protocol'=>'int'], +'getrandmax' => ['int'], +'getrusage' => ['array', 'mode='=>'int'], +'getservbyname' => ['int|false', 'service'=>'string', 'protocol'=>'string'], +'getservbyport' => ['string|false', 'port'=>'int', 'protocol'=>'string'], +'gettext' => ['string', 'message'=>'string'], +'gettimeofday' => ['array'], +'gettimeofday\'1' => ['float', 'as_float='=>'true'], +'gettype' => ['string', 'value'=>'mixed'], +'glob' => ['list|false', 'pattern'=>'string', 'flags='=>'int'], +'GlobIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], +'GlobIterator::count' => ['int'], +'GlobIterator::current' => ['FilesystemIterator|SplFileInfo|string'], +'GlobIterator::getATime' => ['int'], +'GlobIterator::getBasename' => ['string', 'suffix='=>'string'], +'GlobIterator::getCTime' => ['int'], +'GlobIterator::getExtension' => ['string'], +'GlobIterator::getFileInfo' => ['SplFileInfo'], +'GlobIterator::getFilename' => ['string'], +'GlobIterator::getFlags' => ['int'], +'GlobIterator::getGroup' => ['int'], +'GlobIterator::getInode' => ['int'], +'GlobIterator::getLinkTarget' => ['string|false'], +'GlobIterator::getMTime' => ['int'], +'GlobIterator::getOwner' => ['int'], +'GlobIterator::getPath' => ['string'], +'GlobIterator::getPathInfo' => ['?SplFileInfo'], +'GlobIterator::getPathname' => ['string'], +'GlobIterator::getPerms' => ['int'], +'GlobIterator::getRealPath' => ['string|false'], +'GlobIterator::getSize' => ['int'], +'GlobIterator::getType' => ['string|false'], +'GlobIterator::isDir' => ['bool'], +'GlobIterator::isDot' => ['bool'], +'GlobIterator::isExecutable' => ['bool'], +'GlobIterator::isFile' => ['bool'], +'GlobIterator::isLink' => ['bool'], +'GlobIterator::isReadable' => ['bool'], +'GlobIterator::isWritable' => ['bool'], +'GlobIterator::key' => ['string'], +'GlobIterator::next' => ['void'], +'GlobIterator::openFile' => ['SplFileObject'], +'GlobIterator::rewind' => ['void'], +'GlobIterator::seek' => ['void', 'position'=>'int'], +'GlobIterator::setFileClass' => ['void'], +'GlobIterator::setFlags' => ['void', 'flags='=>'int'], +'GlobIterator::setInfoClass' => ['void'], +'GlobIterator::valid' => ['bool'], +'Gmagick::__construct' => ['void', 'filename='=>'string'], +'Gmagick::addimage' => ['Gmagick', 'gmagick'=>'gmagick'], +'Gmagick::addnoiseimage' => ['Gmagick', 'noise'=>'int'], +'Gmagick::annotateimage' => ['Gmagick', 'gmagickdraw'=>'gmagickdraw', 'x'=>'float', 'y'=>'float', 'angle'=>'float', 'text'=>'string'], +'Gmagick::blurimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Gmagick::borderimage' => ['Gmagick', 'color'=>'gmagickpixel', 'width'=>'int', 'height'=>'int'], +'Gmagick::charcoalimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float'], +'Gmagick::chopimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Gmagick::clear' => ['Gmagick'], +'Gmagick::commentimage' => ['Gmagick', 'comment'=>'string'], +'Gmagick::compositeimage' => ['Gmagick', 'source'=>'gmagick', 'compose'=>'int', 'x'=>'int', 'y'=>'int'], +'Gmagick::cropimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Gmagick::cropthumbnailimage' => ['Gmagick', 'width'=>'int', 'height'=>'int'], +'Gmagick::current' => ['Gmagick'], +'Gmagick::cyclecolormapimage' => ['Gmagick', 'displace'=>'int'], +'Gmagick::deconstructimages' => ['Gmagick'], +'Gmagick::despeckleimage' => ['Gmagick'], +'Gmagick::destroy' => ['bool'], +'Gmagick::drawimage' => ['Gmagick', 'gmagickdraw'=>'gmagickdraw'], +'Gmagick::edgeimage' => ['Gmagick', 'radius'=>'float'], +'Gmagick::embossimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float'], +'Gmagick::enhanceimage' => ['Gmagick'], +'Gmagick::equalizeimage' => ['Gmagick'], +'Gmagick::flipimage' => ['Gmagick'], +'Gmagick::flopimage' => ['Gmagick'], +'Gmagick::frameimage' => ['Gmagick', 'color'=>'gmagickpixel', 'width'=>'int', 'height'=>'int', 'inner_bevel'=>'int', 'outer_bevel'=>'int'], +'Gmagick::gammaimage' => ['Gmagick', 'gamma'=>'float'], +'Gmagick::getcopyright' => ['string'], +'Gmagick::getfilename' => ['string'], +'Gmagick::getimagebackgroundcolor' => ['GmagickPixel'], +'Gmagick::getimageblueprimary' => ['array'], +'Gmagick::getimagebordercolor' => ['GmagickPixel'], +'Gmagick::getimagechanneldepth' => ['int', 'channel_type'=>'int'], +'Gmagick::getimagecolors' => ['int'], +'Gmagick::getimagecolorspace' => ['int'], +'Gmagick::getimagecompose' => ['int'], +'Gmagick::getimagedelay' => ['int'], +'Gmagick::getimagedepth' => ['int'], +'Gmagick::getimagedispose' => ['int'], +'Gmagick::getimageextrema' => ['array'], +'Gmagick::getimagefilename' => ['string'], +'Gmagick::getimageformat' => ['string'], +'Gmagick::getimagegamma' => ['float'], +'Gmagick::getimagegreenprimary' => ['array'], +'Gmagick::getimageheight' => ['int'], +'Gmagick::getimagehistogram' => ['array'], +'Gmagick::getimageindex' => ['int'], +'Gmagick::getimageinterlacescheme' => ['int'], +'Gmagick::getimageiterations' => ['int'], +'Gmagick::getimagematte' => ['int'], +'Gmagick::getimagemattecolor' => ['GmagickPixel'], +'Gmagick::getimageprofile' => ['string', 'name'=>'string'], +'Gmagick::getimageredprimary' => ['array'], +'Gmagick::getimagerenderingintent' => ['int'], +'Gmagick::getimageresolution' => ['array'], +'Gmagick::getimagescene' => ['int'], +'Gmagick::getimagesignature' => ['string'], +'Gmagick::getimagetype' => ['int'], +'Gmagick::getimageunits' => ['int'], +'Gmagick::getimagewhitepoint' => ['array'], +'Gmagick::getimagewidth' => ['int'], +'Gmagick::getpackagename' => ['string'], +'Gmagick::getquantumdepth' => ['array'], +'Gmagick::getreleasedate' => ['string'], +'Gmagick::getsamplingfactors' => ['array'], +'Gmagick::getsize' => ['array'], +'Gmagick::getversion' => ['array'], +'Gmagick::hasnextimage' => ['bool'], +'Gmagick::haspreviousimage' => ['bool'], +'Gmagick::implodeimage' => ['mixed', 'radius'=>'float'], +'Gmagick::labelimage' => ['mixed', 'label'=>'string'], +'Gmagick::levelimage' => ['mixed', 'blackpoint'=>'float', 'gamma'=>'float', 'whitepoint'=>'float', 'channel='=>'int'], +'Gmagick::magnifyimage' => ['mixed'], +'Gmagick::mapimage' => ['Gmagick', 'gmagick'=>'gmagick', 'dither'=>'bool'], +'Gmagick::medianfilterimage' => ['void', 'radius'=>'float'], +'Gmagick::minifyimage' => ['Gmagick'], +'Gmagick::modulateimage' => ['Gmagick', 'brightness'=>'float', 'saturation'=>'float', 'hue'=>'float'], +'Gmagick::motionblurimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float'], +'Gmagick::newimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'background'=>'string', 'format='=>'string'], +'Gmagick::nextimage' => ['bool'], +'Gmagick::normalizeimage' => ['Gmagick', 'channel='=>'int'], +'Gmagick::oilpaintimage' => ['Gmagick', 'radius'=>'float'], +'Gmagick::previousimage' => ['bool'], +'Gmagick::profileimage' => ['Gmagick', 'name'=>'string', 'profile'=>'string'], +'Gmagick::quantizeimage' => ['Gmagick', 'numcolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], +'Gmagick::quantizeimages' => ['Gmagick', 'numcolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], +'Gmagick::queryfontmetrics' => ['array', 'draw'=>'gmagickdraw', 'text'=>'string'], +'Gmagick::queryfonts' => ['array', 'pattern='=>'string'], +'Gmagick::queryformats' => ['array', 'pattern='=>'string'], +'Gmagick::radialblurimage' => ['Gmagick', 'angle'=>'float', 'channel='=>'int'], +'Gmagick::raiseimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int', 'raise'=>'bool'], +'Gmagick::read' => ['Gmagick', 'filename'=>'string'], +'Gmagick::readimage' => ['Gmagick', 'filename'=>'string'], +'Gmagick::readimageblob' => ['Gmagick', 'imagecontents'=>'string', 'filename='=>'string'], +'Gmagick::readimagefile' => ['Gmagick', 'fp'=>'resource', 'filename='=>'string'], +'Gmagick::reducenoiseimage' => ['Gmagick', 'radius'=>'float'], +'Gmagick::removeimage' => ['Gmagick'], +'Gmagick::removeimageprofile' => ['string', 'name'=>'string'], +'Gmagick::resampleimage' => ['Gmagick', 'xresolution'=>'float', 'yresolution'=>'float', 'filter'=>'int', 'blur'=>'float'], +'Gmagick::resizeimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'filter'=>'int', 'blur'=>'float', 'fit='=>'bool'], +'Gmagick::rollimage' => ['Gmagick', 'x'=>'int', 'y'=>'int'], +'Gmagick::rotateimage' => ['Gmagick', 'color'=>'mixed', 'degrees'=>'float'], +'Gmagick::scaleimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'fit='=>'bool'], +'Gmagick::separateimagechannel' => ['Gmagick', 'channel'=>'int'], +'Gmagick::setCompressionQuality' => ['Gmagick', 'quality'=>'int'], +'Gmagick::setfilename' => ['Gmagick', 'filename'=>'string'], +'Gmagick::setimagebackgroundcolor' => ['Gmagick', 'color'=>'gmagickpixel'], +'Gmagick::setimageblueprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], +'Gmagick::setimagebordercolor' => ['Gmagick', 'color'=>'gmagickpixel'], +'Gmagick::setimagechanneldepth' => ['Gmagick', 'channel'=>'int', 'depth'=>'int'], +'Gmagick::setimagecolorspace' => ['Gmagick', 'colorspace'=>'int'], +'Gmagick::setimagecompose' => ['Gmagick', 'composite'=>'int'], +'Gmagick::setimagedelay' => ['Gmagick', 'delay'=>'int'], +'Gmagick::setimagedepth' => ['Gmagick', 'depth'=>'int'], +'Gmagick::setimagedispose' => ['Gmagick', 'disposetype'=>'int'], +'Gmagick::setimagefilename' => ['Gmagick', 'filename'=>'string'], +'Gmagick::setimageformat' => ['Gmagick', 'imageformat'=>'string'], +'Gmagick::setimagegamma' => ['Gmagick', 'gamma'=>'float'], +'Gmagick::setimagegreenprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], +'Gmagick::setimageindex' => ['Gmagick', 'index'=>'int'], +'Gmagick::setimageinterlacescheme' => ['Gmagick', 'interlace'=>'int'], +'Gmagick::setimageiterations' => ['Gmagick', 'iterations'=>'int'], +'Gmagick::setimageprofile' => ['Gmagick', 'name'=>'string', 'profile'=>'string'], +'Gmagick::setimageredprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], +'Gmagick::setimagerenderingintent' => ['Gmagick', 'rendering_intent'=>'int'], +'Gmagick::setimageresolution' => ['Gmagick', 'xresolution'=>'float', 'yresolution'=>'float'], +'Gmagick::setimagescene' => ['Gmagick', 'scene'=>'int'], +'Gmagick::setimagetype' => ['Gmagick', 'imgtype'=>'int'], +'Gmagick::setimageunits' => ['Gmagick', 'resolution'=>'int'], +'Gmagick::setimagewhitepoint' => ['Gmagick', 'x'=>'float', 'y'=>'float'], +'Gmagick::setsamplingfactors' => ['Gmagick', 'factors'=>'array'], +'Gmagick::setsize' => ['Gmagick', 'columns'=>'int', 'rows'=>'int'], +'Gmagick::shearimage' => ['Gmagick', 'color'=>'mixed', 'xshear'=>'float', 'yshear'=>'float'], +'Gmagick::solarizeimage' => ['Gmagick', 'threshold'=>'int'], +'Gmagick::spreadimage' => ['Gmagick', 'radius'=>'float'], +'Gmagick::stripimage' => ['Gmagick'], +'Gmagick::swirlimage' => ['Gmagick', 'degrees'=>'float'], +'Gmagick::thumbnailimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'fit='=>'bool'], +'Gmagick::trimimage' => ['Gmagick', 'fuzz'=>'float'], +'Gmagick::write' => ['Gmagick', 'filename'=>'string'], +'Gmagick::writeimage' => ['Gmagick', 'filename'=>'string', 'all_frames='=>'bool'], +'GmagickDraw::annotate' => ['GmagickDraw', 'x'=>'float', 'y'=>'float', 'text'=>'string'], +'GmagickDraw::arc' => ['GmagickDraw', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float', 'sd'=>'float', 'ed'=>'float'], +'GmagickDraw::bezier' => ['GmagickDraw', 'coordinate_array'=>'array'], +'GmagickDraw::ellipse' => ['GmagickDraw', 'ox'=>'float', 'oy'=>'float', 'rx'=>'float', 'ry'=>'float', 'start'=>'float', 'end'=>'float'], +'GmagickDraw::getfillcolor' => ['GmagickPixel'], +'GmagickDraw::getfillopacity' => ['float'], +'GmagickDraw::getfont' => ['string|false'], +'GmagickDraw::getfontsize' => ['float'], +'GmagickDraw::getfontstyle' => ['int'], +'GmagickDraw::getfontweight' => ['int'], +'GmagickDraw::getstrokecolor' => ['GmagickPixel'], +'GmagickDraw::getstrokeopacity' => ['float'], +'GmagickDraw::getstrokewidth' => ['float'], +'GmagickDraw::gettextdecoration' => ['int'], +'GmagickDraw::gettextencoding' => ['string|false'], +'GmagickDraw::line' => ['GmagickDraw', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float'], +'GmagickDraw::point' => ['GmagickDraw', 'x'=>'float', 'y'=>'float'], +'GmagickDraw::polygon' => ['GmagickDraw', 'coordinates'=>'array'], +'GmagickDraw::polyline' => ['GmagickDraw', 'coordinate_array'=>'array'], +'GmagickDraw::rectangle' => ['GmagickDraw', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], +'GmagickDraw::rotate' => ['GmagickDraw', 'degrees'=>'float'], +'GmagickDraw::roundrectangle' => ['GmagickDraw', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'rx'=>'float', 'ry'=>'float'], +'GmagickDraw::scale' => ['GmagickDraw', 'x'=>'float', 'y'=>'float'], +'GmagickDraw::setfillcolor' => ['GmagickDraw', 'color'=>'string'], +'GmagickDraw::setfillopacity' => ['GmagickDraw', 'fill_opacity'=>'float'], +'GmagickDraw::setfont' => ['GmagickDraw', 'font'=>'string'], +'GmagickDraw::setfontsize' => ['GmagickDraw', 'pointsize'=>'float'], +'GmagickDraw::setfontstyle' => ['GmagickDraw', 'style'=>'int'], +'GmagickDraw::setfontweight' => ['GmagickDraw', 'weight'=>'int'], +'GmagickDraw::setstrokecolor' => ['GmagickDraw', 'color'=>'gmagickpixel'], +'GmagickDraw::setstrokeopacity' => ['GmagickDraw', 'stroke_opacity'=>'float'], +'GmagickDraw::setstrokewidth' => ['GmagickDraw', 'width'=>'float'], +'GmagickDraw::settextdecoration' => ['GmagickDraw', 'decoration'=>'int'], +'GmagickDraw::settextencoding' => ['GmagickDraw', 'encoding'=>'string'], +'GmagickPixel::__construct' => ['void', 'color='=>'string'], +'GmagickPixel::getcolor' => ['mixed', 'as_array='=>'bool', 'normalize_array='=>'bool'], +'GmagickPixel::getcolorcount' => ['int'], +'GmagickPixel::getcolorvalue' => ['float', 'color'=>'int'], +'GmagickPixel::setcolor' => ['GmagickPixel', 'color'=>'string'], +'GmagickPixel::setcolorvalue' => ['GmagickPixel', 'color'=>'int', 'value'=>'float'], +'gmdate' => ['string', 'format'=>'string', 'timestamp='=>'int|null'], +'gmmktime' => ['int|false', 'hour'=>'int', 'minute='=>'int|null', 'second='=>'int|null', 'month='=>'int|null', 'day='=>'int|null', 'year='=>'int|null'], +'GMP::__construct' => ['void'], +'GMP::__serialize' => ['array'], +'GMP::__toString' => ['numeric-string'], +'GMP::__unserialize' => ['void', 'data'=>'array'], +'gmp_abs' => ['GMP', 'num'=>'GMP|string|int'], +'gmp_add' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_and' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_binomial' => ['GMP', 'n'=>'GMP|string|int', 'k'=>'int'], +'gmp_clrbit' => ['void', 'num'=>'GMP', 'index'=>'int'], +'gmp_cmp' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_com' => ['GMP', 'num'=>'GMP|string|int'], +'gmp_div' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], +'gmp_div_q' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], +'gmp_div_qr' => ['array{0: GMP, 1: GMP}', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], +'gmp_div_r' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], +'gmp_divexact' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_export' => ['string', 'num'=>'GMP|string|int', 'word_size='=>'int', 'flags='=>'int'], +'gmp_fact' => ['GMP', 'num'=>'int'], +'gmp_gcd' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_gcdext' => ['array', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_hamdist' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_import' => ['GMP', 'data'=>'string', 'word_size='=>'int', 'flags='=>'int'], +'gmp_init' => ['GMP', 'num'=>'int|string', 'base='=>'int'], +'gmp_intval' => ['int', 'num'=>'GMP|string|int'], +'gmp_invert' => ['GMP|false', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_jacobi' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_kronecker' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_lcm' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_legendre' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_mod' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_mul' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_neg' => ['GMP', 'num'=>'GMP|string|int'], +'gmp_nextprime' => ['GMP', 'num'=>'GMP|string|int'], +'gmp_or' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_perfect_power' => ['bool', 'num'=>'GMP|string|int'], +'gmp_perfect_square' => ['bool', 'num'=>'GMP|string|int'], +'gmp_popcount' => ['int', 'num'=>'GMP|string|int'], +'gmp_pow' => ['GMP', 'num'=>'GMP|string|int', 'exponent'=>'int'], +'gmp_powm' => ['GMP', 'num'=>'GMP|string|int', 'exponent'=>'GMP|string|int', 'modulus'=>'GMP|string|int'], +'gmp_prob_prime' => ['int', 'num'=>'GMP|string|int', 'repetitions='=>'int'], +'gmp_random_bits' => ['GMP', 'bits'=>'int'], +'gmp_random_range' => ['GMP', 'min'=>'GMP|string|int', 'max'=>'GMP|string|int'], +'gmp_random_seed' => ['void', 'seed'=>'GMP|string|int'], +'gmp_root' => ['GMP', 'num'=>'GMP|string|int', 'nth'=>'int'], +'gmp_rootrem' => ['array{0: GMP, 1: GMP}', 'num'=>'GMP|string|int', 'nth'=>'int'], +'gmp_scan0' => ['int', 'num1'=>'GMP|string|int', 'start'=>'int'], +'gmp_scan1' => ['int', 'num1'=>'GMP|string|int', 'start'=>'int'], +'gmp_setbit' => ['void', 'num'=>'GMP', 'index'=>'int', 'value='=>'bool'], +'gmp_sign' => ['int', 'num'=>'GMP|string|int'], +'gmp_sqrt' => ['GMP', 'num'=>'GMP|string|int'], +'gmp_sqrtrem' => ['array{0: GMP, 1: GMP}', 'num'=>'GMP|string|int'], +'gmp_strval' => ['numeric-string', 'num'=>'GMP|string|int', 'base='=>'int'], +'gmp_sub' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmp_testbit' => ['bool', 'num'=>'GMP|string|int', 'index'=>'int'], +'gmp_xor' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], +'gmstrftime' => ['string|false', 'format'=>'string', 'timestamp='=>'?int'], +'gnupg::adddecryptkey' => ['bool', 'fingerprint'=>'string', 'passphrase'=>'string'], +'gnupg::addencryptkey' => ['bool', 'fingerprint'=>'string'], +'gnupg::addsignkey' => ['bool', 'fingerprint'=>'string', 'passphrase='=>'string'], +'gnupg::cleardecryptkeys' => ['bool'], +'gnupg::clearencryptkeys' => ['bool'], +'gnupg::clearsignkeys' => ['bool'], +'gnupg::decrypt' => ['string|false', 'text'=>'string'], +'gnupg::decryptverify' => ['array|false', 'text'=>'string', '&plaintext'=>'string'], +'gnupg::encrypt' => ['string|false', 'plaintext'=>'string'], +'gnupg::encryptsign' => ['string|false', 'plaintext'=>'string'], +'gnupg::export' => ['string|false', 'fingerprint'=>'string'], +'gnupg::geterror' => ['string|false'], +'gnupg::getprotocol' => ['int'], +'gnupg::import' => ['array|false', 'keydata'=>'string'], +'gnupg::keyinfo' => ['array', 'pattern'=>'string'], +'gnupg::setarmor' => ['bool', 'armor'=>'int'], +'gnupg::seterrormode' => ['void', 'errormode'=>'int'], +'gnupg::setsignmode' => ['bool', 'signmode'=>'int'], +'gnupg::sign' => ['string|false', 'plaintext'=>'string'], +'gnupg::verify' => ['array|false', 'signed_text'=>'string', 'signature'=>'string', '&plaintext='=>'string'], +'gnupg_adddecryptkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string', 'passphrase'=>'string'], +'gnupg_addencryptkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string'], +'gnupg_addsignkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string', 'passphrase='=>'string'], +'gnupg_cleardecryptkeys' => ['bool', 'identifier'=>'resource'], +'gnupg_clearencryptkeys' => ['bool', 'identifier'=>'resource'], +'gnupg_clearsignkeys' => ['bool', 'identifier'=>'resource'], +'gnupg_decrypt' => ['string', 'identifier'=>'resource', 'text'=>'string'], +'gnupg_decryptverify' => ['array', 'identifier'=>'resource', 'text'=>'string', 'plaintext'=>'string'], +'gnupg_encrypt' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], +'gnupg_encryptsign' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], +'gnupg_export' => ['string', 'identifier'=>'resource', 'fingerprint'=>'string'], +'gnupg_geterror' => ['string', 'identifier'=>'resource'], +'gnupg_getprotocol' => ['int', 'identifier'=>'resource'], +'gnupg_import' => ['array', 'identifier'=>'resource', 'keydata'=>'string'], +'gnupg_init' => ['resource'], +'gnupg_keyinfo' => ['array', 'identifier'=>'resource', 'pattern'=>'string'], +'gnupg_setarmor' => ['bool', 'identifier'=>'resource', 'armor'=>'int'], +'gnupg_seterrormode' => ['void', 'identifier'=>'resource', 'errormode'=>'int'], +'gnupg_setsignmode' => ['bool', 'identifier'=>'resource', 'signmode'=>'int'], +'gnupg_sign' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], +'gnupg_verify' => ['array', 'identifier'=>'resource', 'signed_text'=>'string', 'signature'=>'string', 'plaintext='=>'string'], +'gopher_parsedir' => ['array', 'dirent'=>'string'], +'grapheme_extract' => ['string|false', 'haystack'=>'string', 'size'=>'int', 'type='=>'int', 'offset='=>'int', '&w_next='=>'int'], +'grapheme_stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'grapheme_stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'beforeNeedle='=>'bool'], +'grapheme_strlen' => ['0|positive-int|false|null', 'string'=>'string'], +'grapheme_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'grapheme_strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'grapheme_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'grapheme_strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'beforeNeedle='=>'bool'], +'grapheme_substr' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'?int'], +'gregoriantojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'gridObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'Grpc\Call::__construct' => ['void', 'channel'=>'Grpc\Channel', 'method'=>'string', 'absolute_deadline'=>'Grpc\Timeval', 'host_override='=>'mixed'], +'Grpc\Call::cancel' => [''], +'Grpc\Call::getPeer' => ['string'], +'Grpc\Call::setCredentials' => ['int', 'creds_obj'=>'Grpc\CallCredentials'], +'Grpc\Call::startBatch' => ['object', 'batch'=>'array'], +'Grpc\CallCredentials::createComposite' => ['Grpc\CallCredentials', 'cred1'=>'Grpc\CallCredentials', 'cred2'=>'Grpc\CallCredentials'], +'Grpc\CallCredentials::createFromPlugin' => ['Grpc\CallCredentials', 'callback'=>'Closure'], +'Grpc\Channel::__construct' => ['void', 'target'=>'string', 'args='=>'array'], +'Grpc\Channel::close' => [''], +'Grpc\Channel::getConnectivityState' => ['int', 'try_to_connect='=>'bool'], +'Grpc\Channel::getTarget' => ['string'], +'Grpc\Channel::watchConnectivityState' => ['bool', 'last_state'=>'int', 'deadline_obj'=>'Grpc\Timeval'], +'Grpc\ChannelCredentials::createComposite' => ['Grpc\ChannelCredentials', 'cred1'=>'Grpc\ChannelCredentials', 'cred2'=>'Grpc\CallCredentials'], +'Grpc\ChannelCredentials::createDefault' => ['Grpc\ChannelCredentials'], +'Grpc\ChannelCredentials::createInsecure' => ['null'], +'Grpc\ChannelCredentials::createSsl' => ['Grpc\ChannelCredentials', 'pem_root_certs'=>'string', 'pem_private_key='=>'string', 'pem_cert_chain='=>'string'], +'Grpc\ChannelCredentials::setDefaultRootsPem' => ['', 'pem_roots'=>'string'], +'Grpc\Server::__construct' => ['void', 'args'=>'array'], +'Grpc\Server::addHttp2Port' => ['bool', 'addr'=>'string'], +'Grpc\Server::addSecureHttp2Port' => ['bool', 'addr'=>'string', 'creds_obj'=>'Grpc\ServerCredentials'], +'Grpc\Server::requestCall' => ['', 'tag_new'=>'int', 'tag_cancel'=>'int'], +'Grpc\Server::start' => [''], +'Grpc\ServerCredentials::createSsl' => ['object', 'pem_root_certs'=>'string', 'pem_private_key'=>'string', 'pem_cert_chain'=>'string'], +'Grpc\Timeval::__construct' => ['void', 'usec'=>'int'], +'Grpc\Timeval::add' => ['Grpc\Timeval', 'other'=>'Grpc\Timeval'], +'Grpc\Timeval::compare' => ['int', 'a'=>'Grpc\Timeval', 'b'=>'Grpc\Timeval'], +'Grpc\Timeval::infFuture' => ['Grpc\Timeval'], +'Grpc\Timeval::infPast' => ['Grpc\Timeval'], +'Grpc\Timeval::now' => ['Grpc\Timeval'], +'Grpc\Timeval::similar' => ['bool', 'a'=>'Grpc\Timeval', 'b'=>'Grpc\Timeval', 'threshold'=>'Grpc\Timeval'], +'Grpc\Timeval::sleepUntil' => [''], +'Grpc\Timeval::subtract' => ['Grpc\Timeval', 'other'=>'Grpc\Timeval'], +'Grpc\Timeval::zero' => ['Grpc\Timeval'], +'gupnp_context_get_host_ip' => ['string', 'context'=>'resource'], +'gupnp_context_get_port' => ['int', 'context'=>'resource'], +'gupnp_context_get_subscription_timeout' => ['int', 'context'=>'resource'], +'gupnp_context_host_path' => ['bool', 'context'=>'resource', 'local_path'=>'string', 'server_path'=>'string'], +'gupnp_context_new' => ['resource', 'host_ip='=>'string', 'port='=>'int'], +'gupnp_context_set_subscription_timeout' => ['void', 'context'=>'resource', 'timeout'=>'int'], +'gupnp_context_timeout_add' => ['bool', 'context'=>'resource', 'timeout'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], +'gupnp_context_unhost_path' => ['bool', 'context'=>'resource', 'server_path'=>'string'], +'gupnp_control_point_browse_start' => ['bool', 'cpoint'=>'resource'], +'gupnp_control_point_browse_stop' => ['bool', 'cpoint'=>'resource'], +'gupnp_control_point_callback_set' => ['bool', 'cpoint'=>'resource', 'signal'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], +'gupnp_control_point_new' => ['resource', 'context'=>'resource', 'target'=>'string'], +'gupnp_device_action_callback_set' => ['bool', 'root_device'=>'resource', 'signal'=>'int', 'action_name'=>'string', 'callback'=>'mixed', 'arg='=>'mixed'], +'gupnp_device_info_get' => ['array', 'root_device'=>'resource'], +'gupnp_device_info_get_service' => ['resource', 'root_device'=>'resource', 'type'=>'string'], +'gupnp_root_device_get_available' => ['bool', 'root_device'=>'resource'], +'gupnp_root_device_get_relative_location' => ['string', 'root_device'=>'resource'], +'gupnp_root_device_new' => ['resource', 'context'=>'resource', 'location'=>'string', 'description_dir'=>'string'], +'gupnp_root_device_set_available' => ['bool', 'root_device'=>'resource', 'available'=>'bool'], +'gupnp_root_device_start' => ['bool', 'root_device'=>'resource'], +'gupnp_root_device_stop' => ['bool', 'root_device'=>'resource'], +'gupnp_service_action_get' => ['mixed', 'action'=>'resource', 'name'=>'string', 'type'=>'int'], +'gupnp_service_action_return' => ['bool', 'action'=>'resource'], +'gupnp_service_action_return_error' => ['bool', 'action'=>'resource', 'error_code'=>'int', 'error_description='=>'string'], +'gupnp_service_action_set' => ['bool', 'action'=>'resource', 'name'=>'string', 'type'=>'int', 'value'=>'mixed'], +'gupnp_service_freeze_notify' => ['bool', 'service'=>'resource'], +'gupnp_service_info_get' => ['array', 'proxy'=>'resource'], +'gupnp_service_info_get_introspection' => ['mixed', 'proxy'=>'resource', 'callback='=>'mixed', 'arg='=>'mixed'], +'gupnp_service_introspection_get_state_variable' => ['array', 'introspection'=>'resource', 'variable_name'=>'string'], +'gupnp_service_notify' => ['bool', 'service'=>'resource', 'name'=>'string', 'type'=>'int', 'value'=>'mixed'], +'gupnp_service_proxy_action_get' => ['mixed', 'proxy'=>'resource', 'action'=>'string', 'name'=>'string', 'type'=>'int'], +'gupnp_service_proxy_action_set' => ['bool', 'proxy'=>'resource', 'action'=>'string', 'name'=>'string', 'value'=>'mixed', 'type'=>'int'], +'gupnp_service_proxy_add_notify' => ['bool', 'proxy'=>'resource', 'value'=>'string', 'type'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], +'gupnp_service_proxy_callback_set' => ['bool', 'proxy'=>'resource', 'signal'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], +'gupnp_service_proxy_get_subscribed' => ['bool', 'proxy'=>'resource'], +'gupnp_service_proxy_remove_notify' => ['bool', 'proxy'=>'resource', 'value'=>'string'], +'gupnp_service_proxy_send_action' => ['array', 'proxy'=>'resource', 'action'=>'string', 'in_params'=>'array', 'out_params'=>'array'], +'gupnp_service_proxy_set_subscribed' => ['bool', 'proxy'=>'resource', 'subscribed'=>'bool'], +'gupnp_service_thaw_notify' => ['bool', 'service'=>'resource'], +'gzclose' => ['bool', 'stream'=>'resource'], +'gzcompress' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], +'gzdecode' => ['string|false', 'data'=>'string', 'max_length='=>'int'], +'gzdeflate' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], +'gzencode' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], +'gzeof' => ['bool', 'stream'=>'resource'], +'gzfile' => ['list', 'filename'=>'string', 'use_include_path='=>'int'], +'gzgetc' => ['string|false', 'stream'=>'resource'], +'gzgets' => ['string|false', 'stream'=>'resource', 'length='=>'?int'], +'gzinflate' => ['string|false', 'data'=>'string', 'max_length='=>'int'], +'gzopen' => ['resource|false', 'filename'=>'string', 'mode'=>'string', 'use_include_path='=>'int'], +'gzpassthru' => ['int', 'stream'=>'resource'], +'gzputs' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], +'gzread' => ['string|false', 'stream'=>'resource', 'length'=>'int'], +'gzrewind' => ['bool', 'stream'=>'resource'], +'gzseek' => ['int', 'stream'=>'resource', 'offset'=>'int', 'whence='=>'int'], +'gztell' => ['int|false', 'stream'=>'resource'], +'gzuncompress' => ['string|false', 'data'=>'string', 'max_length='=>'int'], +'gzwrite' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], +'HaruAnnotation::setBorderStyle' => ['bool', 'width'=>'float', 'dash_on'=>'int', 'dash_off'=>'int'], +'HaruAnnotation::setHighlightMode' => ['bool', 'mode'=>'int'], +'HaruAnnotation::setIcon' => ['bool', 'icon'=>'int'], +'HaruAnnotation::setOpened' => ['bool', 'opened'=>'bool'], +'HaruDestination::setFit' => ['bool'], +'HaruDestination::setFitB' => ['bool'], +'HaruDestination::setFitBH' => ['bool', 'top'=>'float'], +'HaruDestination::setFitBV' => ['bool', 'left'=>'float'], +'HaruDestination::setFitH' => ['bool', 'top'=>'float'], +'HaruDestination::setFitR' => ['bool', 'left'=>'float', 'bottom'=>'float', 'right'=>'float', 'top'=>'float'], +'HaruDestination::setFitV' => ['bool', 'left'=>'float'], +'HaruDestination::setXYZ' => ['bool', 'left'=>'float', 'top'=>'float', 'zoom'=>'float'], +'HaruDoc::__construct' => ['void'], +'HaruDoc::addPage' => ['object'], +'HaruDoc::addPageLabel' => ['bool', 'first_page'=>'int', 'style'=>'int', 'first_num'=>'int', 'prefix='=>'string'], +'HaruDoc::createOutline' => ['object', 'title'=>'string', 'parent_outline='=>'object', 'encoder='=>'object'], +'HaruDoc::getCurrentEncoder' => ['object'], +'HaruDoc::getCurrentPage' => ['object'], +'HaruDoc::getEncoder' => ['object', 'encoding'=>'string'], +'HaruDoc::getFont' => ['object', 'fontname'=>'string', 'encoding='=>'string'], +'HaruDoc::getInfoAttr' => ['string', 'type'=>'int'], +'HaruDoc::getPageLayout' => ['int'], +'HaruDoc::getPageMode' => ['int'], +'HaruDoc::getStreamSize' => ['int'], +'HaruDoc::insertPage' => ['object', 'page'=>'object'], +'HaruDoc::loadJPEG' => ['object', 'filename'=>'string'], +'HaruDoc::loadPNG' => ['object', 'filename'=>'string', 'deferred='=>'bool'], +'HaruDoc::loadRaw' => ['object', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'color_space'=>'int'], +'HaruDoc::loadTTC' => ['string', 'fontfile'=>'string', 'index'=>'int', 'embed='=>'bool'], +'HaruDoc::loadTTF' => ['string', 'fontfile'=>'string', 'embed='=>'bool'], +'HaruDoc::loadType1' => ['string', 'afmfile'=>'string', 'pfmfile='=>'string'], +'HaruDoc::output' => ['bool'], +'HaruDoc::readFromStream' => ['string', 'bytes'=>'int'], +'HaruDoc::resetError' => ['bool'], +'HaruDoc::resetStream' => ['bool'], +'HaruDoc::save' => ['bool', 'file'=>'string'], +'HaruDoc::saveToStream' => ['bool'], +'HaruDoc::setCompressionMode' => ['bool', 'mode'=>'int'], +'HaruDoc::setCurrentEncoder' => ['bool', 'encoding'=>'string'], +'HaruDoc::setEncryptionMode' => ['bool', 'mode'=>'int', 'key_len='=>'int'], +'HaruDoc::setInfoAttr' => ['bool', 'type'=>'int', 'info'=>'string'], +'HaruDoc::setInfoDateAttr' => ['bool', 'type'=>'int', 'year'=>'int', 'month'=>'int', 'day'=>'int', 'hour'=>'int', 'min'=>'int', 'sec'=>'int', 'ind'=>'string', 'off_hour'=>'int', 'off_min'=>'int'], +'HaruDoc::setOpenAction' => ['bool', 'destination'=>'object'], +'HaruDoc::setPageLayout' => ['bool', 'layout'=>'int'], +'HaruDoc::setPageMode' => ['bool', 'mode'=>'int'], +'HaruDoc::setPagesConfiguration' => ['bool', 'page_per_pages'=>'int'], +'HaruDoc::setPassword' => ['bool', 'owner_password'=>'string', 'user_password'=>'string'], +'HaruDoc::setPermission' => ['bool', 'permission'=>'int'], +'HaruDoc::useCNSEncodings' => ['bool'], +'HaruDoc::useCNSFonts' => ['bool'], +'HaruDoc::useCNTEncodings' => ['bool'], +'HaruDoc::useCNTFonts' => ['bool'], +'HaruDoc::useJPEncodings' => ['bool'], +'HaruDoc::useJPFonts' => ['bool'], +'HaruDoc::useKREncodings' => ['bool'], +'HaruDoc::useKRFonts' => ['bool'], +'HaruEncoder::getByteType' => ['int', 'text'=>'string', 'index'=>'int'], +'HaruEncoder::getType' => ['int'], +'HaruEncoder::getUnicode' => ['int', 'character'=>'int'], +'HaruEncoder::getWritingMode' => ['int'], +'HaruFont::getAscent' => ['int'], +'HaruFont::getCapHeight' => ['int'], +'HaruFont::getDescent' => ['int'], +'HaruFont::getEncodingName' => ['string'], +'HaruFont::getFontName' => ['string'], +'HaruFont::getTextWidth' => ['array', 'text'=>'string'], +'HaruFont::getUnicodeWidth' => ['int', 'character'=>'int'], +'HaruFont::getXHeight' => ['int'], +'HaruFont::measureText' => ['int', 'text'=>'string', 'width'=>'float', 'font_size'=>'float', 'char_space'=>'float', 'word_space'=>'float', 'word_wrap='=>'bool'], +'HaruImage::getBitsPerComponent' => ['int'], +'HaruImage::getColorSpace' => ['string'], +'HaruImage::getHeight' => ['int'], +'HaruImage::getSize' => ['array'], +'HaruImage::getWidth' => ['int'], +'HaruImage::setColorMask' => ['bool', 'rmin'=>'int', 'rmax'=>'int', 'gmin'=>'int', 'gmax'=>'int', 'bmin'=>'int', 'bmax'=>'int'], +'HaruImage::setMaskImage' => ['bool', 'mask_image'=>'object'], +'HaruOutline::setDestination' => ['bool', 'destination'=>'object'], +'HaruOutline::setOpened' => ['bool', 'opened'=>'bool'], +'HaruPage::arc' => ['bool', 'x'=>'float', 'y'=>'float', 'ray'=>'float', 'ang1'=>'float', 'ang2'=>'float'], +'HaruPage::beginText' => ['bool'], +'HaruPage::circle' => ['bool', 'x'=>'float', 'y'=>'float', 'ray'=>'float'], +'HaruPage::closePath' => ['bool'], +'HaruPage::concat' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], +'HaruPage::createDestination' => ['object'], +'HaruPage::createLinkAnnotation' => ['object', 'rectangle'=>'array', 'destination'=>'object'], +'HaruPage::createTextAnnotation' => ['object', 'rectangle'=>'array', 'text'=>'string', 'encoder='=>'object'], +'HaruPage::createURLAnnotation' => ['object', 'rectangle'=>'array', 'url'=>'string'], +'HaruPage::curveTo' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'HaruPage::curveTo2' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'HaruPage::curveTo3' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x3'=>'float', 'y3'=>'float'], +'HaruPage::drawImage' => ['bool', 'image'=>'object', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'HaruPage::ellipse' => ['bool', 'x'=>'float', 'y'=>'float', 'xray'=>'float', 'yray'=>'float'], +'HaruPage::endPath' => ['bool'], +'HaruPage::endText' => ['bool'], +'HaruPage::eofill' => ['bool'], +'HaruPage::eoFillStroke' => ['bool', 'close_path='=>'bool'], +'HaruPage::fill' => ['bool'], +'HaruPage::fillStroke' => ['bool', 'close_path='=>'bool'], +'HaruPage::getCharSpace' => ['float'], +'HaruPage::getCMYKFill' => ['array'], +'HaruPage::getCMYKStroke' => ['array'], +'HaruPage::getCurrentFont' => ['object'], +'HaruPage::getCurrentFontSize' => ['float'], +'HaruPage::getCurrentPos' => ['array'], +'HaruPage::getCurrentTextPos' => ['array'], +'HaruPage::getDash' => ['array'], +'HaruPage::getFillingColorSpace' => ['int'], +'HaruPage::getFlatness' => ['float'], +'HaruPage::getGMode' => ['int'], +'HaruPage::getGrayFill' => ['float'], +'HaruPage::getGrayStroke' => ['float'], +'HaruPage::getHeight' => ['float'], +'HaruPage::getHorizontalScaling' => ['float'], +'HaruPage::getLineCap' => ['int'], +'HaruPage::getLineJoin' => ['int'], +'HaruPage::getLineWidth' => ['float'], +'HaruPage::getMiterLimit' => ['float'], +'HaruPage::getRGBFill' => ['array'], +'HaruPage::getRGBStroke' => ['array'], +'HaruPage::getStrokingColorSpace' => ['int'], +'HaruPage::getTextLeading' => ['float'], +'HaruPage::getTextMatrix' => ['array'], +'HaruPage::getTextRenderingMode' => ['int'], +'HaruPage::getTextRise' => ['float'], +'HaruPage::getTextWidth' => ['float', 'text'=>'string'], +'HaruPage::getTransMatrix' => ['array'], +'HaruPage::getWidth' => ['float'], +'HaruPage::getWordSpace' => ['float'], +'HaruPage::lineTo' => ['bool', 'x'=>'float', 'y'=>'float'], +'HaruPage::measureText' => ['int', 'text'=>'string', 'width'=>'float', 'wordwrap='=>'bool'], +'HaruPage::moveTextPos' => ['bool', 'x'=>'float', 'y'=>'float', 'set_leading='=>'bool'], +'HaruPage::moveTo' => ['bool', 'x'=>'float', 'y'=>'float'], +'HaruPage::moveToNextLine' => ['bool'], +'HaruPage::rectangle' => ['bool', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'HaruPage::setCharSpace' => ['bool', 'char_space'=>'float'], +'HaruPage::setCMYKFill' => ['bool', 'c'=>'float', 'm'=>'float', 'y'=>'float', 'k'=>'float'], +'HaruPage::setCMYKStroke' => ['bool', 'c'=>'float', 'm'=>'float', 'y'=>'float', 'k'=>'float'], +'HaruPage::setDash' => ['bool', 'pattern'=>'array', 'phase'=>'int'], +'HaruPage::setFlatness' => ['bool', 'flatness'=>'float'], +'HaruPage::setFontAndSize' => ['bool', 'font'=>'object', 'size'=>'float'], +'HaruPage::setGrayFill' => ['bool', 'value'=>'float'], +'HaruPage::setGrayStroke' => ['bool', 'value'=>'float'], +'HaruPage::setHeight' => ['bool', 'height'=>'float'], +'HaruPage::setHorizontalScaling' => ['bool', 'scaling'=>'float'], +'HaruPage::setLineCap' => ['bool', 'cap'=>'int'], +'HaruPage::setLineJoin' => ['bool', 'join'=>'int'], +'HaruPage::setLineWidth' => ['bool', 'width'=>'float'], +'HaruPage::setMiterLimit' => ['bool', 'limit'=>'float'], +'HaruPage::setRGBFill' => ['bool', 'r'=>'float', 'g'=>'float', 'b'=>'float'], +'HaruPage::setRGBStroke' => ['bool', 'r'=>'float', 'g'=>'float', 'b'=>'float'], +'HaruPage::setRotate' => ['bool', 'angle'=>'int'], +'HaruPage::setSize' => ['bool', 'size'=>'int', 'direction'=>'int'], +'HaruPage::setSlideShow' => ['bool', 'type'=>'int', 'disp_time'=>'float', 'trans_time'=>'float'], +'HaruPage::setTextLeading' => ['bool', 'text_leading'=>'float'], +'HaruPage::setTextMatrix' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], +'HaruPage::setTextRenderingMode' => ['bool', 'mode'=>'int'], +'HaruPage::setTextRise' => ['bool', 'rise'=>'float'], +'HaruPage::setWidth' => ['bool', 'width'=>'float'], +'HaruPage::setWordSpace' => ['bool', 'word_space'=>'float'], +'HaruPage::showText' => ['bool', 'text'=>'string'], +'HaruPage::showTextNextLine' => ['bool', 'text'=>'string', 'word_space='=>'float', 'char_space='=>'float'], +'HaruPage::stroke' => ['bool', 'close_path='=>'bool'], +'HaruPage::textOut' => ['bool', 'x'=>'float', 'y'=>'float', 'text'=>'string'], +'HaruPage::textRect' => ['bool', 'left'=>'float', 'top'=>'float', 'right'=>'float', 'bottom'=>'float', 'text'=>'string', 'align='=>'int'], +'hash' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool', 'options='=>'array{seed:scalar}'], +'hash_algos' => ['list'], +'hash_copy' => ['HashContext', 'context'=>'HashContext'], +'hash_equals' => ['bool', 'known_string'=>'string', 'user_string'=>'string'], +'hash_file' => ['non-empty-string|false', 'algo'=>'string', 'filename'=>'string', 'binary='=>'bool', 'options='=>'array{seed:scalar}'], +'hash_final' => ['non-empty-string', 'context'=>'HashContext', 'binary='=>'bool'], +'hash_hkdf' => ['non-empty-string', 'algo'=>'string', 'key'=>'string', 'length='=>'int', 'info='=>'string', 'salt='=>'string'], +'hash_hmac' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], +'hash_hmac_algos' => ['list'], +'hash_hmac_file' => ['non-empty-string', 'algo'=>'string', 'filename'=>'string', 'key'=>'string', 'binary='=>'bool'], +'hash_init' => ['HashContext', 'algo'=>'string', 'flags='=>'int', 'key='=>'string', 'options='=>'array{seed:scalar}'], +'hash_pbkdf2' => ['non-empty-string', 'algo'=>'string', 'password'=>'string', 'salt'=>'string', 'iterations'=>'int', 'length='=>'int', 'binary='=>'bool'], +'hash_update' => ['bool', 'context'=>'HashContext', 'data'=>'string'], +'hash_update_file' => ['bool', 'context'=>'HashContext', 'filename'=>'string', 'stream_context='=>'?resource'], +'hash_update_stream' => ['int', 'context'=>'HashContext', 'stream'=>'resource', 'length='=>'int'], +'hashTableObj::clear' => ['void'], +'hashTableObj::get' => ['string', 'key'=>'string'], +'hashTableObj::nextkey' => ['string', 'previousKey'=>'string'], +'hashTableObj::remove' => ['int', 'key'=>'string'], +'hashTableObj::set' => ['int', 'key'=>'string', 'value'=>'string'], +'header' => ['void', 'header'=>'string', 'replace='=>'bool', 'response_code='=>'int'], +'header_register_callback' => ['bool', 'callback'=>'callable():void'], +'header_remove' => ['void', 'name='=>'?string'], +'headers_list' => ['list'], +'headers_sent' => ['bool', '&w_filename='=>'string', '&w_line='=>'int'], +'hebrev' => ['string', 'string'=>'string', 'max_chars_per_line='=>'int'], +'hebrevc' => ['string', 'string'=>'string', 'max_chars_per_line='=>'int'], +'hex2bin' => ['string|false', 'string'=>'string'], +'hexdec' => ['int|float', 'hex_string'=>'string'], +'highlight_file' => ['string|bool', 'filename'=>'string', 'return='=>'bool'], +'highlight_string' => ['string|bool', 'string'=>'string', 'return='=>'bool'], +'hrtime' => ['array{0:int,1:int}|false', 'as_number='=>'false'], +'hrtime\'1' => ['int|float|false', 'as_number='=>'true'], +'HRTime\PerformanceCounter::getElapsedTicks' => ['int'], +'HRTime\PerformanceCounter::getFrequency' => ['int'], +'HRTime\PerformanceCounter::getLastElapsedTicks' => ['int'], +'HRTime\PerformanceCounter::getTicks' => ['int'], +'HRTime\PerformanceCounter::getTicksSince' => ['int', 'start'=>'int'], +'HRTime\PerformanceCounter::isRunning' => ['bool'], +'HRTime\PerformanceCounter::start' => ['void'], +'HRTime\PerformanceCounter::stop' => ['void'], +'HRTime\StopWatch::getElapsedTicks' => ['int'], +'HRTime\StopWatch::getElapsedTime' => ['float', 'unit='=>'int'], +'HRTime\StopWatch::getLastElapsedTicks' => ['int'], +'HRTime\StopWatch::getLastElapsedTime' => ['float', 'unit='=>'int'], +'HRTime\StopWatch::isRunning' => ['bool'], +'HRTime\StopWatch::start' => ['void'], +'HRTime\StopWatch::stop' => ['void'], +'html_entity_decode' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'?string'], +'htmlentities' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'?string', 'double_encode='=>'bool'], +'htmlspecialchars' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string|null', 'double_encode='=>'bool'], +'htmlspecialchars_decode' => ['string', 'string'=>'string', 'flags='=>'int'], +'http\Client::__construct' => ['void', 'driver='=>'string', 'persistent_handle_id='=>'string'], +'http\Client::addCookies' => ['http\Client', 'cookies='=>'?array'], +'http\Client::addSslOptions' => ['http\Client', 'ssl_options='=>'?array'], +'http\Client::attach' => ['void', 'observer'=>'SplObserver'], +'http\Client::configure' => ['http\Client', 'settings'=>'array'], +'http\Client::count' => ['int'], +'http\Client::dequeue' => ['http\Client', 'request'=>'http\Client\Request'], +'http\Client::detach' => ['void', 'observer'=>'SplObserver'], +'http\Client::enableEvents' => ['http\Client', 'enable='=>'mixed'], +'http\Client::enablePipelining' => ['http\Client', 'enable='=>'mixed'], +'http\Client::enqueue' => ['http\Client', 'request'=>'http\Client\Request', 'callable='=>'mixed'], +'http\Client::getAvailableConfiguration' => ['array'], +'http\Client::getAvailableDrivers' => ['array'], +'http\Client::getAvailableOptions' => ['array'], +'http\Client::getCookies' => ['array'], +'http\Client::getHistory' => ['http\Message'], +'http\Client::getObservers' => ['SplObjectStorage'], +'http\Client::getOptions' => ['array'], +'http\Client::getProgressInfo' => ['null|object', 'request'=>'http\Client\Request'], +'http\Client::getResponse' => ['http\Client\Response|null', 'request='=>'?http\Client\Request'], +'http\Client::getSslOptions' => ['array'], +'http\Client::getTransferInfo' => ['object', 'request'=>'http\Client\Request'], +'http\Client::notify' => ['void', 'request='=>'?http\Client\Request'], +'http\Client::once' => ['bool'], +'http\Client::requeue' => ['http\Client', 'request'=>'http\Client\Request', 'callable='=>'mixed'], +'http\Client::reset' => ['http\Client'], +'http\Client::send' => ['http\Client'], +'http\Client::setCookies' => ['http\Client', 'cookies='=>'?array'], +'http\Client::setDebug' => ['http\Client', 'callback'=>'callable'], +'http\Client::setOptions' => ['http\Client', 'options='=>'?array'], +'http\Client::setSslOptions' => ['http\Client', 'ssl_option='=>'?array'], +'http\Client::wait' => ['bool', 'timeout='=>'mixed'], +'http\Client\Curl\User::init' => ['', 'run'=>'callable'], +'http\Client\Curl\User::once' => [''], +'http\Client\Curl\User::send' => [''], +'http\Client\Curl\User::socket' => ['', 'socket'=>'resource', 'action'=>'int'], +'http\Client\Curl\User::timer' => ['', 'timeout_ms'=>'int'], +'http\Client\Curl\User::wait' => ['', 'timeout_ms='=>'mixed'], +'http\Client\Request::__construct' => ['void', 'method='=>'mixed', 'url='=>'mixed', 'headers='=>'?array', 'body='=>'?http\Message\Body'], +'http\Client\Request::__toString' => ['string'], +'http\Client\Request::addBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Client\Request::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], +'http\Client\Request::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], +'http\Client\Request::addQuery' => ['http\Client\Request', 'query_data'=>'mixed'], +'http\Client\Request::addSslOptions' => ['http\Client\Request', 'ssl_options='=>'?array'], +'http\Client\Request::count' => ['int'], +'http\Client\Request::current' => ['mixed'], +'http\Client\Request::detach' => ['http\Message'], +'http\Client\Request::getBody' => ['http\Message\Body'], +'http\Client\Request::getContentType' => ['null|string'], +'http\Client\Request::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], +'http\Client\Request::getHeaders' => ['array'], +'http\Client\Request::getHttpVersion' => ['string'], +'http\Client\Request::getInfo' => ['null|string'], +'http\Client\Request::getOptions' => ['array'], +'http\Client\Request::getParentMessage' => ['http\Message'], +'http\Client\Request::getQuery' => ['null|string'], +'http\Client\Request::getRequestMethod' => ['false|string'], +'http\Client\Request::getRequestUrl' => ['false|string'], +'http\Client\Request::getResponseCode' => ['false|int'], +'http\Client\Request::getResponseStatus' => ['false|string'], +'http\Client\Request::getSslOptions' => ['array'], +'http\Client\Request::getType' => ['int'], +'http\Client\Request::isMultipart' => ['bool', '&boundary='=>'mixed'], +'http\Client\Request::key' => ['int|string'], +'http\Client\Request::next' => ['void'], +'http\Client\Request::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], +'http\Client\Request::reverse' => ['http\Message'], +'http\Client\Request::rewind' => ['void'], +'http\Client\Request::serialize' => ['string'], +'http\Client\Request::setBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Client\Request::setContentType' => ['http\Client\Request', 'content_type'=>'string'], +'http\Client\Request::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], +'http\Client\Request::setHeaders' => ['http\Message', 'headers'=>'array'], +'http\Client\Request::setHttpVersion' => ['http\Message', 'http_version'=>'string'], +'http\Client\Request::setInfo' => ['http\Message', 'http_info'=>'string'], +'http\Client\Request::setOptions' => ['http\Client\Request', 'options='=>'?array'], +'http\Client\Request::setQuery' => ['http\Client\Request', 'query_data='=>'mixed'], +'http\Client\Request::setRequestMethod' => ['http\Message', 'request_method'=>'string'], +'http\Client\Request::setRequestUrl' => ['http\Message', 'url'=>'string'], +'http\Client\Request::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], +'http\Client\Request::setResponseStatus' => ['http\Message', 'response_status'=>'string'], +'http\Client\Request::setSslOptions' => ['http\Client\Request', 'ssl_options='=>'?array'], +'http\Client\Request::setType' => ['http\Message', 'type'=>'int'], +'http\Client\Request::splitMultipartBody' => ['http\Message'], +'http\Client\Request::toCallback' => ['http\Message', 'callback'=>'callable'], +'http\Client\Request::toStream' => ['http\Message', 'stream'=>'resource'], +'http\Client\Request::toString' => ['string', 'include_parent='=>'mixed'], +'http\Client\Request::unserialize' => ['void', 'serialized'=>'string'], +'http\Client\Request::valid' => ['bool'], +'http\Client\Response::__construct' => ['Iterator'], +'http\Client\Response::__toString' => ['string'], +'http\Client\Response::addBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Client\Response::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], +'http\Client\Response::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], +'http\Client\Response::count' => ['int'], +'http\Client\Response::current' => ['mixed'], +'http\Client\Response::detach' => ['http\Message'], +'http\Client\Response::getBody' => ['http\Message\Body'], +'http\Client\Response::getCookies' => ['array', 'flags='=>'mixed', 'allowed_extras='=>'mixed'], +'http\Client\Response::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], +'http\Client\Response::getHeaders' => ['array'], +'http\Client\Response::getHttpVersion' => ['string'], +'http\Client\Response::getInfo' => ['null|string'], +'http\Client\Response::getParentMessage' => ['http\Message'], +'http\Client\Response::getRequestMethod' => ['false|string'], +'http\Client\Response::getRequestUrl' => ['false|string'], +'http\Client\Response::getResponseCode' => ['false|int'], +'http\Client\Response::getResponseStatus' => ['false|string'], +'http\Client\Response::getTransferInfo' => ['mixed|object', 'element='=>'mixed'], +'http\Client\Response::getType' => ['int'], +'http\Client\Response::isMultipart' => ['bool', '&boundary='=>'mixed'], +'http\Client\Response::key' => ['int|string'], +'http\Client\Response::next' => ['void'], +'http\Client\Response::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], +'http\Client\Response::reverse' => ['http\Message'], +'http\Client\Response::rewind' => ['void'], +'http\Client\Response::serialize' => ['string'], +'http\Client\Response::setBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Client\Response::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], +'http\Client\Response::setHeaders' => ['http\Message', 'headers'=>'array'], +'http\Client\Response::setHttpVersion' => ['http\Message', 'http_version'=>'string'], +'http\Client\Response::setInfo' => ['http\Message', 'http_info'=>'string'], +'http\Client\Response::setRequestMethod' => ['http\Message', 'request_method'=>'string'], +'http\Client\Response::setRequestUrl' => ['http\Message', 'url'=>'string'], +'http\Client\Response::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], +'http\Client\Response::setResponseStatus' => ['http\Message', 'response_status'=>'string'], +'http\Client\Response::setType' => ['http\Message', 'type'=>'int'], +'http\Client\Response::splitMultipartBody' => ['http\Message'], +'http\Client\Response::toCallback' => ['http\Message', 'callback'=>'callable'], +'http\Client\Response::toStream' => ['http\Message', 'stream'=>'resource'], +'http\Client\Response::toString' => ['string', 'include_parent='=>'mixed'], +'http\Client\Response::unserialize' => ['void', 'serialized'=>'string'], +'http\Client\Response::valid' => ['bool'], +'http\Cookie::__construct' => ['void', 'cookie_string='=>'mixed', 'parser_flags='=>'int', 'allowed_extras='=>'array'], +'http\Cookie::__toString' => ['string'], +'http\Cookie::addCookie' => ['http\Cookie', 'cookie_name'=>'string', 'cookie_value'=>'string'], +'http\Cookie::addCookies' => ['http\Cookie', 'cookies'=>'array'], +'http\Cookie::addExtra' => ['http\Cookie', 'extra_name'=>'string', 'extra_value'=>'string'], +'http\Cookie::addExtras' => ['http\Cookie', 'extras'=>'array'], +'http\Cookie::getCookie' => ['null|string', 'name'=>'string'], +'http\Cookie::getCookies' => ['array'], +'http\Cookie::getDomain' => ['string'], +'http\Cookie::getExpires' => ['int'], +'http\Cookie::getExtra' => ['string', 'name'=>'string'], +'http\Cookie::getExtras' => ['array'], +'http\Cookie::getFlags' => ['int'], +'http\Cookie::getMaxAge' => ['int'], +'http\Cookie::getPath' => ['string'], +'http\Cookie::setCookie' => ['http\Cookie', 'cookie_name'=>'string', 'cookie_value='=>'mixed'], +'http\Cookie::setCookies' => ['http\Cookie', 'cookies='=>'mixed'], +'http\Cookie::setDomain' => ['http\Cookie', 'value='=>'mixed'], +'http\Cookie::setExpires' => ['http\Cookie', 'value='=>'mixed'], +'http\Cookie::setExtra' => ['http\Cookie', 'extra_name'=>'string', 'extra_value='=>'mixed'], +'http\Cookie::setExtras' => ['http\Cookie', 'extras='=>'mixed'], +'http\Cookie::setFlags' => ['http\Cookie', 'value='=>'mixed'], +'http\Cookie::setMaxAge' => ['http\Cookie', 'value='=>'mixed'], +'http\Cookie::setPath' => ['http\Cookie', 'value='=>'mixed'], +'http\Cookie::toArray' => ['array'], +'http\Cookie::toString' => ['string'], +'http\Encoding\Stream::__construct' => ['void', 'flags='=>'mixed'], +'http\Encoding\Stream::done' => ['bool'], +'http\Encoding\Stream::finish' => ['string'], +'http\Encoding\Stream::flush' => ['string'], +'http\Encoding\Stream::update' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Debrotli::__construct' => ['void', 'flags='=>'int'], +'http\Encoding\Stream\Debrotli::decode' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Debrotli::done' => ['bool'], +'http\Encoding\Stream\Debrotli::finish' => ['string'], +'http\Encoding\Stream\Debrotli::flush' => ['string'], +'http\Encoding\Stream\Debrotli::update' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Dechunk::__construct' => ['void', 'flags='=>'mixed'], +'http\Encoding\Stream\Dechunk::decode' => ['false|string', 'data'=>'string', '&decoded_len='=>'mixed'], +'http\Encoding\Stream\Dechunk::done' => ['bool'], +'http\Encoding\Stream\Dechunk::finish' => ['string'], +'http\Encoding\Stream\Dechunk::flush' => ['string'], +'http\Encoding\Stream\Dechunk::update' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Deflate::__construct' => ['void', 'flags='=>'mixed'], +'http\Encoding\Stream\Deflate::done' => ['bool'], +'http\Encoding\Stream\Deflate::encode' => ['string', 'data'=>'string', 'flags='=>'mixed'], +'http\Encoding\Stream\Deflate::finish' => ['string'], +'http\Encoding\Stream\Deflate::flush' => ['string'], +'http\Encoding\Stream\Deflate::update' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Enbrotli::__construct' => ['void', 'flags='=>'int'], +'http\Encoding\Stream\Enbrotli::done' => ['bool'], +'http\Encoding\Stream\Enbrotli::encode' => ['string', 'data'=>'string', 'flags='=>'int'], +'http\Encoding\Stream\Enbrotli::finish' => ['string'], +'http\Encoding\Stream\Enbrotli::flush' => ['string'], +'http\Encoding\Stream\Enbrotli::update' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Inflate::__construct' => ['void', 'flags='=>'mixed'], +'http\Encoding\Stream\Inflate::decode' => ['string', 'data'=>'string'], +'http\Encoding\Stream\Inflate::done' => ['bool'], +'http\Encoding\Stream\Inflate::finish' => ['string'], +'http\Encoding\Stream\Inflate::flush' => ['string'], +'http\Encoding\Stream\Inflate::update' => ['string', 'data'=>'string'], +'http\Env::getRequestBody' => ['http\Message\Body', 'body_class_name='=>'mixed'], +'http\Env::getRequestHeader' => ['array|null|string', 'header_name='=>'mixed'], +'http\Env::getResponseCode' => ['int'], +'http\Env::getResponseHeader' => ['array|null|string', 'header_name='=>'mixed'], +'http\Env::getResponseStatusForAllCodes' => ['array'], +'http\Env::getResponseStatusForCode' => ['string', 'code'=>'int'], +'http\Env::negotiate' => ['null|string', 'params'=>'string', 'supported'=>'array', 'primary_type_separator='=>'mixed', '&result_array='=>'mixed'], +'http\Env::negotiateCharset' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], +'http\Env::negotiateContentType' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], +'http\Env::negotiateEncoding' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], +'http\Env::negotiateLanguage' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], +'http\Env::setResponseCode' => ['bool', 'code'=>'int'], +'http\Env::setResponseHeader' => ['bool', 'header_name'=>'string', 'header_value='=>'mixed', 'response_code='=>'mixed', 'replace_header='=>'mixed'], +'http\Env\Request::__construct' => ['void'], +'http\Env\Request::__toString' => ['string'], +'http\Env\Request::addBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Env\Request::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], +'http\Env\Request::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], +'http\Env\Request::count' => ['int'], +'http\Env\Request::current' => ['mixed'], +'http\Env\Request::detach' => ['http\Message'], +'http\Env\Request::getBody' => ['http\Message\Body'], +'http\Env\Request::getCookie' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], +'http\Env\Request::getFiles' => ['array'], +'http\Env\Request::getForm' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], +'http\Env\Request::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], +'http\Env\Request::getHeaders' => ['array'], +'http\Env\Request::getHttpVersion' => ['string'], +'http\Env\Request::getInfo' => ['null|string'], +'http\Env\Request::getParentMessage' => ['http\Message'], +'http\Env\Request::getQuery' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], +'http\Env\Request::getRequestMethod' => ['false|string'], +'http\Env\Request::getRequestUrl' => ['false|string'], +'http\Env\Request::getResponseCode' => ['false|int'], +'http\Env\Request::getResponseStatus' => ['false|string'], +'http\Env\Request::getType' => ['int'], +'http\Env\Request::isMultipart' => ['bool', '&boundary='=>'mixed'], +'http\Env\Request::key' => ['int|string'], +'http\Env\Request::next' => ['void'], +'http\Env\Request::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], +'http\Env\Request::reverse' => ['http\Message'], +'http\Env\Request::rewind' => ['void'], +'http\Env\Request::serialize' => ['string'], +'http\Env\Request::setBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Env\Request::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], +'http\Env\Request::setHeaders' => ['http\Message', 'headers'=>'array'], +'http\Env\Request::setHttpVersion' => ['http\Message', 'http_version'=>'string'], +'http\Env\Request::setInfo' => ['http\Message', 'http_info'=>'string'], +'http\Env\Request::setRequestMethod' => ['http\Message', 'request_method'=>'string'], +'http\Env\Request::setRequestUrl' => ['http\Message', 'url'=>'string'], +'http\Env\Request::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], +'http\Env\Request::setResponseStatus' => ['http\Message', 'response_status'=>'string'], +'http\Env\Request::setType' => ['http\Message', 'type'=>'int'], +'http\Env\Request::splitMultipartBody' => ['http\Message'], +'http\Env\Request::toCallback' => ['http\Message', 'callback'=>'callable'], +'http\Env\Request::toStream' => ['http\Message', 'stream'=>'resource'], +'http\Env\Request::toString' => ['string', 'include_parent='=>'mixed'], +'http\Env\Request::unserialize' => ['void', 'serialized'=>'string'], +'http\Env\Request::valid' => ['bool'], +'http\Env\Response::__construct' => ['void'], +'http\Env\Response::__invoke' => ['bool', 'data'=>'string', 'ob_flags='=>'int'], +'http\Env\Response::__toString' => ['string'], +'http\Env\Response::addBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Env\Response::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], +'http\Env\Response::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], +'http\Env\Response::count' => ['int'], +'http\Env\Response::current' => ['mixed'], +'http\Env\Response::detach' => ['http\Message'], +'http\Env\Response::getBody' => ['http\Message\Body'], +'http\Env\Response::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], +'http\Env\Response::getHeaders' => ['array'], +'http\Env\Response::getHttpVersion' => ['string'], +'http\Env\Response::getInfo' => ['?string'], +'http\Env\Response::getParentMessage' => ['http\Message'], +'http\Env\Response::getRequestMethod' => ['false|string'], +'http\Env\Response::getRequestUrl' => ['false|string'], +'http\Env\Response::getResponseCode' => ['false|int'], +'http\Env\Response::getResponseStatus' => ['false|string'], +'http\Env\Response::getType' => ['int'], +'http\Env\Response::isCachedByETag' => ['int', 'header_name='=>'string'], +'http\Env\Response::isCachedByLastModified' => ['int', 'header_name='=>'string'], +'http\Env\Response::isMultipart' => ['bool', '&boundary='=>'mixed'], +'http\Env\Response::key' => ['int|string'], +'http\Env\Response::next' => ['void'], +'http\Env\Response::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], +'http\Env\Response::reverse' => ['http\Message'], +'http\Env\Response::rewind' => ['void'], +'http\Env\Response::send' => ['bool', 'stream='=>'resource'], +'http\Env\Response::serialize' => ['string'], +'http\Env\Response::setBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Env\Response::setCacheControl' => ['http\Env\Response', 'cache_control'=>'string'], +'http\Env\Response::setContentDisposition' => ['http\Env\Response', 'disposition_params'=>'array'], +'http\Env\Response::setContentEncoding' => ['http\Env\Response', 'content_encoding'=>'int'], +'http\Env\Response::setContentType' => ['http\Env\Response', 'content_type'=>'string'], +'http\Env\Response::setCookie' => ['http\Env\Response', 'cookie'=>'mixed'], +'http\Env\Response::setEnvRequest' => ['http\Env\Response', 'env_request'=>'http\Message'], +'http\Env\Response::setEtag' => ['http\Env\Response', 'etag'=>'string'], +'http\Env\Response::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], +'http\Env\Response::setHeaders' => ['http\Message', 'headers'=>'array'], +'http\Env\Response::setHttpVersion' => ['http\Message', 'http_version'=>'string'], +'http\Env\Response::setInfo' => ['http\Message', 'http_info'=>'string'], +'http\Env\Response::setLastModified' => ['http\Env\Response', 'last_modified'=>'int'], +'http\Env\Response::setRequestMethod' => ['http\Message', 'request_method'=>'string'], +'http\Env\Response::setRequestUrl' => ['http\Message', 'url'=>'string'], +'http\Env\Response::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], +'http\Env\Response::setResponseStatus' => ['http\Message', 'response_status'=>'string'], +'http\Env\Response::setThrottleRate' => ['http\Env\Response', 'chunk_size'=>'int', 'delay='=>'float|int'], +'http\Env\Response::setType' => ['http\Message', 'type'=>'int'], +'http\Env\Response::splitMultipartBody' => ['http\Message'], +'http\Env\Response::toCallback' => ['http\Message', 'callback'=>'callable'], +'http\Env\Response::toStream' => ['http\Message', 'stream'=>'resource'], +'http\Env\Response::toString' => ['string', 'include_parent='=>'mixed'], +'http\Env\Response::unserialize' => ['void', 'serialized'=>'string'], +'http\Env\Response::valid' => ['bool'], +'http\Header::__construct' => ['void', 'name='=>'mixed', 'value='=>'mixed'], +'http\Header::__toString' => ['string'], +'http\Header::getParams' => ['http\Params', 'param_sep='=>'mixed', 'arg_sep='=>'mixed', 'val_sep='=>'mixed', 'flags='=>'mixed'], +'http\Header::match' => ['bool', 'value'=>'string', 'flags='=>'mixed'], +'http\Header::negotiate' => ['null|string', 'supported'=>'array', '&result='=>'mixed'], +'http\Header::parse' => ['array|false', 'string'=>'string', 'header_class='=>'mixed'], +'http\Header::serialize' => ['string'], +'http\Header::toString' => ['string'], +'http\Header::unserialize' => ['void', 'serialized'=>'string'], +'http\Header\Parser::getState' => ['int'], +'http\Header\Parser::parse' => ['int', 'data'=>'string', 'flags'=>'int', '&headers'=>'array'], +'http\Header\Parser::stream' => ['int', 'stream'=>'resource', 'flags'=>'int', '&headers'=>'array'], +'http\Message::__construct' => ['void', 'message='=>'mixed', 'greedy='=>'bool'], +'http\Message::__toString' => ['string'], +'http\Message::addBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Message::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], +'http\Message::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], +'http\Message::count' => ['int'], +'http\Message::current' => ['mixed'], +'http\Message::detach' => ['http\Message'], +'http\Message::getBody' => ['http\Message\Body'], +'http\Message::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], +'http\Message::getHeaders' => ['array'], +'http\Message::getHttpVersion' => ['string'], +'http\Message::getInfo' => ['null|string'], +'http\Message::getParentMessage' => ['http\Message'], +'http\Message::getRequestMethod' => ['false|string'], +'http\Message::getRequestUrl' => ['false|string'], +'http\Message::getResponseCode' => ['false|int'], +'http\Message::getResponseStatus' => ['false|string'], +'http\Message::getType' => ['int'], +'http\Message::isMultipart' => ['bool', '&boundary='=>'mixed'], +'http\Message::key' => ['int|string'], +'http\Message::next' => ['void'], +'http\Message::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], +'http\Message::reverse' => ['http\Message'], +'http\Message::rewind' => ['void'], +'http\Message::serialize' => ['string'], +'http\Message::setBody' => ['http\Message', 'body'=>'http\Message\Body'], +'http\Message::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], +'http\Message::setHeaders' => ['http\Message', 'headers'=>'array'], +'http\Message::setHttpVersion' => ['http\Message', 'http_version'=>'string'], +'http\Message::setInfo' => ['http\Message', 'http_info'=>'string'], +'http\Message::setRequestMethod' => ['http\Message', 'request_method'=>'string'], +'http\Message::setRequestUrl' => ['http\Message', 'url'=>'string'], +'http\Message::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], +'http\Message::setResponseStatus' => ['http\Message', 'response_status'=>'string'], +'http\Message::setType' => ['http\Message', 'type'=>'int'], +'http\Message::splitMultipartBody' => ['http\Message'], +'http\Message::toCallback' => ['http\Message', 'callback'=>'callable'], +'http\Message::toStream' => ['http\Message', 'stream'=>'resource'], +'http\Message::toString' => ['string', 'include_parent='=>'mixed'], +'http\Message::unserialize' => ['void', 'serialized'=>'string'], +'http\Message::valid' => ['bool'], +'http\Message\Body::__construct' => ['void', 'stream='=>'resource'], +'http\Message\Body::__toString' => ['string'], +'http\Message\Body::addForm' => ['http\Message\Body', 'fields='=>'?array', 'files='=>'?array'], +'http\Message\Body::addPart' => ['http\Message\Body', 'message'=>'http\Message'], +'http\Message\Body::append' => ['http\Message\Body', 'string'=>'string'], +'http\Message\Body::etag' => ['false|string'], +'http\Message\Body::getBoundary' => ['null|string'], +'http\Message\Body::getResource' => ['resource'], +'http\Message\Body::serialize' => ['string'], +'http\Message\Body::stat' => ['int|object', 'field='=>'mixed'], +'http\Message\Body::toCallback' => ['http\Message\Body', 'callback'=>'callable', 'offset='=>'mixed', 'maxlen='=>'mixed'], +'http\Message\Body::toStream' => ['http\Message\Body', 'stream'=>'resource', 'offset='=>'mixed', 'maxlen='=>'mixed'], +'http\Message\Body::toString' => ['string'], +'http\Message\Body::unserialize' => ['void', 'serialized'=>'string'], +'http\Message\Parser::getState' => ['int'], +'http\Message\Parser::parse' => ['int', 'data'=>'string', 'flags'=>'int', '&message'=>'http\Message'], +'http\Message\Parser::stream' => ['int', 'stream'=>'resource', 'flags'=>'int', '&message'=>'http\Message'], +'http\Params::__construct' => ['void', 'params='=>'mixed', 'param_sep='=>'mixed', 'arg_sep='=>'mixed', 'val_sep='=>'mixed', 'flags='=>'mixed'], +'http\Params::__toString' => ['string'], +'http\Params::offsetExists' => ['bool', 'name'=>'mixed'], +'http\Params::offsetGet' => ['mixed', 'name'=>'mixed'], +'http\Params::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], +'http\Params::offsetUnset' => ['void', 'name'=>'mixed'], +'http\Params::toArray' => ['array'], +'http\Params::toString' => ['string'], +'http\QueryString::__construct' => ['void', 'querystring'=>'string'], +'http\QueryString::__toString' => ['string'], +'http\QueryString::get' => ['http\QueryString|string|mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getArray' => ['array|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getBool' => ['bool|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getFloat' => ['float|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getGlobalInstance' => ['http\QueryString'], +'http\QueryString::getInt' => ['int|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getIterator' => ['IteratorAggregate'], +'http\QueryString::getObject' => ['object|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::getString' => ['string|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], +'http\QueryString::mod' => ['http\QueryString', 'params='=>'mixed'], +'http\QueryString::offsetExists' => ['bool', 'offset'=>'mixed'], +'http\QueryString::offsetGet' => ['mixed|null', 'offset'=>'mixed'], +'http\QueryString::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'http\QueryString::offsetUnset' => ['void', 'offset'=>'mixed'], +'http\QueryString::serialize' => ['string'], +'http\QueryString::set' => ['http\QueryString', 'params'=>'mixed'], +'http\QueryString::toArray' => ['array'], +'http\QueryString::toString' => ['string'], +'http\QueryString::unserialize' => ['void', 'serialized'=>'string'], +'http\QueryString::xlate' => ['http\QueryString'], +'http\Url::__construct' => ['void', 'old_url='=>'mixed', 'new_url='=>'mixed', 'flags='=>'int'], +'http\Url::__toString' => ['string'], +'http\Url::mod' => ['http\Url', 'parts'=>'mixed', 'flags='=>'float|int|mixed'], +'http\Url::toArray' => ['string[]'], +'http\Url::toString' => ['string'], +'http_build_cookie' => ['string', 'cookie'=>'array'], +'http_build_query' => ['string', 'data'=>'array|object', 'numeric_prefix='=>'string', 'arg_separator='=>'?string', 'encoding_type='=>'int'], +'http_build_str' => ['string', 'query'=>'array', 'prefix='=>'?string', 'arg_separator='=>'string'], +'http_build_url' => ['string', 'url='=>'string|array', 'parts='=>'string|array', 'flags='=>'int', 'new_url='=>'array'], +'http_cache_etag' => ['bool', 'etag='=>'string'], +'http_cache_last_modified' => ['bool', 'timestamp_or_expires='=>'int'], +'http_chunked_decode' => ['string|false', 'encoded'=>'string'], +'http_date' => ['string', 'timestamp='=>'int'], +'http_deflate' => ['?string', 'data'=>'string', 'flags='=>'int'], +'http_get' => ['string', 'url'=>'string', 'options='=>'array', 'info='=>'array'], +'http_get_request_body' => ['?string'], +'http_get_request_body_stream' => ['?resource'], +'http_get_request_headers' => ['array'], +'http_head' => ['string', 'url'=>'string', 'options='=>'array', 'info='=>'array'], +'http_inflate' => ['?string', 'data'=>'string'], +'http_match_etag' => ['bool', 'etag'=>'string', 'for_range='=>'bool'], +'http_match_modified' => ['bool', 'timestamp='=>'int', 'for_range='=>'bool'], +'http_match_request_header' => ['bool', 'header'=>'string', 'value'=>'string', 'match_case='=>'bool'], +'http_negotiate_charset' => ['string', 'supported'=>'array', 'result='=>'array'], +'http_negotiate_content_type' => ['string', 'supported'=>'array', 'result='=>'array'], +'http_negotiate_language' => ['string', 'supported'=>'array', 'result='=>'array'], +'http_parse_cookie' => ['stdClass|false', 'cookie'=>'string', 'flags='=>'int', 'allowed_extras='=>'array'], +'http_parse_headers' => ['array|false', 'header'=>'string'], +'http_parse_message' => ['object', 'message'=>'string'], +'http_parse_params' => ['stdClass', 'param'=>'string', 'flags='=>'int'], +'http_persistent_handles_clean' => ['string', 'ident='=>'string'], +'http_persistent_handles_count' => ['stdClass|false'], +'http_persistent_handles_ident' => ['string|false', 'ident='=>'string'], +'http_post_data' => ['string', 'url'=>'string', 'data'=>'string', 'options='=>'array', 'info='=>'array'], +'http_post_fields' => ['string', 'url'=>'string', 'data'=>'array', 'files='=>'array', 'options='=>'array', 'info='=>'array'], +'http_put_data' => ['string', 'url'=>'string', 'data'=>'string', 'options='=>'array', 'info='=>'array'], +'http_put_file' => ['string', 'url'=>'string', 'file'=>'string', 'options='=>'array', 'info='=>'array'], +'http_put_stream' => ['string', 'url'=>'string', 'stream'=>'resource', 'options='=>'array', 'info='=>'array'], +'http_redirect' => ['int|false', 'url='=>'string', 'params='=>'array', 'session='=>'bool', 'status='=>'int'], +'http_request' => ['string', 'method'=>'int', 'url'=>'string', 'body='=>'string', 'options='=>'array', 'info='=>'array'], +'http_request_body_encode' => ['string|false', 'fields'=>'array', 'files'=>'array'], +'http_request_method_exists' => ['bool', 'method'=>'mixed'], +'http_request_method_name' => ['string|false', 'method'=>'int'], +'http_request_method_register' => ['int|false', 'method'=>'string'], +'http_request_method_unregister' => ['bool', 'method'=>'mixed'], +'http_response_code' => ['int|bool', 'response_code='=>'int'], +'http_send_content_disposition' => ['bool', 'filename'=>'string', 'inline='=>'bool'], +'http_send_content_type' => ['bool', 'content_type='=>'string'], +'http_send_data' => ['bool', 'data'=>'string'], +'http_send_file' => ['bool', 'file'=>'string'], +'http_send_last_modified' => ['bool', 'timestamp='=>'int'], +'http_send_status' => ['bool', 'status'=>'int'], +'http_send_stream' => ['bool', 'stream'=>'resource'], +'http_support' => ['int', 'feature='=>'int'], +'http_throttle' => ['void', 'sec'=>'float', 'bytes='=>'int'], +'HttpDeflateStream::__construct' => ['void', 'flags='=>'int'], +'HttpDeflateStream::factory' => ['HttpDeflateStream', 'flags='=>'int', 'class_name='=>'string'], +'HttpDeflateStream::finish' => ['string', 'data='=>'string'], +'HttpDeflateStream::flush' => ['string|false', 'data='=>'string'], +'HttpDeflateStream::update' => ['string|false', 'data'=>'string'], +'HttpInflateStream::__construct' => ['void', 'flags='=>'int'], +'HttpInflateStream::factory' => ['HttpInflateStream', 'flags='=>'int', 'class_name='=>'string'], +'HttpInflateStream::finish' => ['string', 'data='=>'string'], +'HttpInflateStream::flush' => ['string|false', 'data='=>'string'], +'HttpInflateStream::update' => ['string|false', 'data'=>'string'], +'HttpMessage::__construct' => ['void', 'message='=>'string'], +'HttpMessage::__toString' => ['string'], +'HttpMessage::addHeaders' => ['void', 'headers'=>'array', 'append='=>'bool'], +'HttpMessage::count' => ['int'], +'HttpMessage::current' => ['mixed'], +'HttpMessage::detach' => ['HttpMessage'], +'HttpMessage::factory' => ['?HttpMessage', 'raw_message='=>'string', 'class_name='=>'string'], +'HttpMessage::fromEnv' => ['?HttpMessage', 'message_type'=>'int', 'class_name='=>'string'], +'HttpMessage::fromString' => ['?HttpMessage', 'raw_message='=>'string', 'class_name='=>'string'], +'HttpMessage::getBody' => ['string'], +'HttpMessage::getHeader' => ['?string', 'header'=>'string'], +'HttpMessage::getHeaders' => ['array'], +'HttpMessage::getHttpVersion' => ['string'], +'HttpMessage::getInfo' => [''], +'HttpMessage::getParentMessage' => ['HttpMessage'], +'HttpMessage::getRequestMethod' => ['string|false'], +'HttpMessage::getRequestUrl' => ['string|false'], +'HttpMessage::getResponseCode' => ['int'], +'HttpMessage::getResponseStatus' => ['string'], +'HttpMessage::getType' => ['int'], +'HttpMessage::guessContentType' => ['string|false', 'magic_file'=>'string', 'magic_mode='=>'int'], +'HttpMessage::key' => ['int|string'], +'HttpMessage::next' => ['void'], +'HttpMessage::prepend' => ['void', 'message'=>'HttpMessage', 'top='=>'bool'], +'HttpMessage::reverse' => ['HttpMessage'], +'HttpMessage::rewind' => ['void'], +'HttpMessage::send' => ['bool'], +'HttpMessage::serialize' => ['string'], +'HttpMessage::setBody' => ['void', 'body'=>'string'], +'HttpMessage::setHeaders' => ['void', 'headers'=>'array'], +'HttpMessage::setHttpVersion' => ['bool', 'version'=>'string'], +'HttpMessage::setInfo' => ['', 'http_info'=>''], +'HttpMessage::setRequestMethod' => ['bool', 'method'=>'string'], +'HttpMessage::setRequestUrl' => ['bool', 'url'=>'string'], +'HttpMessage::setResponseCode' => ['bool', 'code'=>'int'], +'HttpMessage::setResponseStatus' => ['bool', 'status'=>'string'], +'HttpMessage::setType' => ['void', 'type'=>'int'], +'HttpMessage::toMessageTypeObject' => ['HttpRequest|HttpResponse|null'], +'HttpMessage::toString' => ['string', 'include_parent='=>'bool'], +'HttpMessage::unserialize' => ['void', 'serialized'=>'string'], +'HttpMessage::valid' => ['bool'], +'HttpQueryString::__construct' => ['void', 'global='=>'bool', 'add='=>'mixed'], +'HttpQueryString::__toString' => ['string'], +'HttpQueryString::factory' => ['', 'global'=>'', 'params'=>'', 'class_name'=>''], +'HttpQueryString::get' => ['mixed', 'key='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], +'HttpQueryString::getArray' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::getBool' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::getFloat' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::getInt' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::getObject' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::getString' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], +'HttpQueryString::mod' => ['HttpQueryString', 'params'=>'mixed'], +'HttpQueryString::offsetExists' => ['bool', 'offset'=>'mixed'], +'HttpQueryString::offsetGet' => ['mixed', 'offset'=>'mixed'], +'HttpQueryString::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'HttpQueryString::offsetUnset' => ['void', 'offset'=>'mixed'], +'HttpQueryString::serialize' => ['string'], +'HttpQueryString::set' => ['string', 'params'=>'mixed'], +'HttpQueryString::singleton' => ['HttpQueryString', 'global='=>'bool'], +'HttpQueryString::toArray' => ['array'], +'HttpQueryString::toString' => ['string'], +'HttpQueryString::unserialize' => ['void', 'serialized'=>'string'], +'HttpQueryString::xlate' => ['bool', 'ie'=>'string', 'oe'=>'string'], +'HttpRequest::__construct' => ['void', 'url='=>'string', 'request_method='=>'int', 'options='=>'array'], +'HttpRequest::addBody' => ['', 'request_body_data'=>''], +'HttpRequest::addCookies' => ['bool', 'cookies'=>'array'], +'HttpRequest::addHeaders' => ['bool', 'headers'=>'array'], +'HttpRequest::addPostFields' => ['bool', 'post_data'=>'array'], +'HttpRequest::addPostFile' => ['bool', 'name'=>'string', 'file'=>'string', 'content_type='=>'string'], +'HttpRequest::addPutData' => ['bool', 'put_data'=>'string'], +'HttpRequest::addQueryData' => ['bool', 'query_params'=>'array'], +'HttpRequest::addRawPostData' => ['bool', 'raw_post_data'=>'string'], +'HttpRequest::addSslOptions' => ['bool', 'options'=>'array'], +'HttpRequest::clearHistory' => ['void'], +'HttpRequest::enableCookies' => ['bool'], +'HttpRequest::encodeBody' => ['', 'fields'=>'', 'files'=>''], +'HttpRequest::factory' => ['', 'url'=>'', 'method'=>'', 'options'=>'', 'class_name'=>''], +'HttpRequest::flushCookies' => [''], +'HttpRequest::get' => ['', 'url'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::getBody' => [''], +'HttpRequest::getContentType' => ['string'], +'HttpRequest::getCookies' => ['array'], +'HttpRequest::getHeaders' => ['array'], +'HttpRequest::getHistory' => ['HttpMessage'], +'HttpRequest::getMethod' => ['int'], +'HttpRequest::getOptions' => ['array'], +'HttpRequest::getPostFields' => ['array'], +'HttpRequest::getPostFiles' => ['array'], +'HttpRequest::getPutData' => ['string'], +'HttpRequest::getPutFile' => ['string'], +'HttpRequest::getQueryData' => ['string'], +'HttpRequest::getRawPostData' => ['string'], +'HttpRequest::getRawRequestMessage' => ['string'], +'HttpRequest::getRawResponseMessage' => ['string'], +'HttpRequest::getRequestMessage' => ['HttpMessage'], +'HttpRequest::getResponseBody' => ['string'], +'HttpRequest::getResponseCode' => ['int'], +'HttpRequest::getResponseCookies' => ['stdClass[]', 'flags='=>'int', 'allowed_extras='=>'array'], +'HttpRequest::getResponseData' => ['array'], +'HttpRequest::getResponseHeader' => ['mixed', 'name='=>'string'], +'HttpRequest::getResponseInfo' => ['mixed', 'name='=>'string'], +'HttpRequest::getResponseMessage' => ['HttpMessage'], +'HttpRequest::getResponseStatus' => ['string'], +'HttpRequest::getSslOptions' => ['array'], +'HttpRequest::getUrl' => ['string'], +'HttpRequest::head' => ['', 'url'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::methodExists' => ['', 'method'=>''], +'HttpRequest::methodName' => ['', 'method_id'=>''], +'HttpRequest::methodRegister' => ['', 'method_name'=>''], +'HttpRequest::methodUnregister' => ['', 'method'=>''], +'HttpRequest::postData' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::postFields' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::putData' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::putFile' => ['', 'url'=>'', 'file'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::putStream' => ['', 'url'=>'', 'stream'=>'', 'options'=>'', '&info'=>''], +'HttpRequest::resetCookies' => ['bool', 'session_only='=>'bool'], +'HttpRequest::send' => ['HttpMessage'], +'HttpRequest::setBody' => ['bool', 'request_body_data='=>'string'], +'HttpRequest::setContentType' => ['bool', 'content_type'=>'string'], +'HttpRequest::setCookies' => ['bool', 'cookies='=>'array'], +'HttpRequest::setHeaders' => ['bool', 'headers='=>'array'], +'HttpRequest::setMethod' => ['bool', 'request_method'=>'int'], +'HttpRequest::setOptions' => ['bool', 'options='=>'array'], +'HttpRequest::setPostFields' => ['bool', 'post_data'=>'array'], +'HttpRequest::setPostFiles' => ['bool', 'post_files'=>'array'], +'HttpRequest::setPutData' => ['bool', 'put_data='=>'string'], +'HttpRequest::setPutFile' => ['bool', 'file='=>'string'], +'HttpRequest::setQueryData' => ['bool', 'query_data'=>'mixed'], +'HttpRequest::setRawPostData' => ['bool', 'raw_post_data='=>'string'], +'HttpRequest::setSslOptions' => ['bool', 'options='=>'array'], +'HttpRequest::setUrl' => ['bool', 'url'=>'string'], +'HttpRequestDataShare::__construct' => ['void'], +'HttpRequestDataShare::__destruct' => ['void'], +'HttpRequestDataShare::attach' => ['', 'request'=>'HttpRequest'], +'HttpRequestDataShare::count' => ['int'], +'HttpRequestDataShare::detach' => ['', 'request'=>'HttpRequest'], +'HttpRequestDataShare::factory' => ['', 'global'=>'', 'class_name'=>''], +'HttpRequestDataShare::reset' => [''], +'HttpRequestDataShare::singleton' => ['', 'global'=>''], +'HttpRequestPool::__construct' => ['void', 'request='=>'HttpRequest'], +'HttpRequestPool::__destruct' => ['void'], +'HttpRequestPool::attach' => ['bool', 'request'=>'HttpRequest'], +'HttpRequestPool::count' => ['int'], +'HttpRequestPool::current' => ['mixed'], +'HttpRequestPool::detach' => ['bool', 'request'=>'HttpRequest'], +'HttpRequestPool::enableEvents' => ['', 'enable'=>''], +'HttpRequestPool::enablePipelining' => ['', 'enable'=>''], +'HttpRequestPool::getAttachedRequests' => ['array'], +'HttpRequestPool::getFinishedRequests' => ['array'], +'HttpRequestPool::key' => ['int|string'], +'HttpRequestPool::next' => ['void'], +'HttpRequestPool::reset' => ['void'], +'HttpRequestPool::rewind' => ['void'], +'HttpRequestPool::send' => ['bool'], +'HttpRequestPool::socketPerform' => ['bool'], +'HttpRequestPool::socketSelect' => ['bool', 'timeout='=>'float'], +'HttpRequestPool::valid' => ['bool'], +'HttpResponse::capture' => ['void'], +'HttpResponse::getBufferSize' => ['int'], +'HttpResponse::getCache' => ['bool'], +'HttpResponse::getCacheControl' => ['string'], +'HttpResponse::getContentDisposition' => ['string'], +'HttpResponse::getContentType' => ['string'], +'HttpResponse::getData' => ['string'], +'HttpResponse::getETag' => ['string'], +'HttpResponse::getFile' => ['string'], +'HttpResponse::getGzip' => ['bool'], +'HttpResponse::getHeader' => ['mixed', 'name='=>'string'], +'HttpResponse::getLastModified' => ['int'], +'HttpResponse::getRequestBody' => ['string'], +'HttpResponse::getRequestBodyStream' => ['resource'], +'HttpResponse::getRequestHeaders' => ['array'], +'HttpResponse::getStream' => ['resource'], +'HttpResponse::getThrottleDelay' => ['float'], +'HttpResponse::guessContentType' => ['string|false', 'magic_file'=>'string', 'magic_mode='=>'int'], +'HttpResponse::redirect' => ['void', 'url='=>'string', 'params='=>'array', 'session='=>'bool', 'status='=>'int'], +'HttpResponse::send' => ['bool', 'clean_ob='=>'bool'], +'HttpResponse::setBufferSize' => ['bool', 'bytes'=>'int'], +'HttpResponse::setCache' => ['bool', 'cache'=>'bool'], +'HttpResponse::setCacheControl' => ['bool', 'control'=>'string', 'max_age='=>'int', 'must_revalidate='=>'bool'], +'HttpResponse::setContentDisposition' => ['bool', 'filename'=>'string', 'inline='=>'bool'], +'HttpResponse::setContentType' => ['bool', 'content_type'=>'string'], +'HttpResponse::setData' => ['bool', 'data'=>'mixed'], +'HttpResponse::setETag' => ['bool', 'etag'=>'string'], +'HttpResponse::setFile' => ['bool', 'file'=>'string'], +'HttpResponse::setGzip' => ['bool', 'gzip'=>'bool'], +'HttpResponse::setHeader' => ['bool', 'name'=>'string', 'value='=>'mixed', 'replace='=>'bool'], +'HttpResponse::setLastModified' => ['bool', 'timestamp'=>'int'], +'HttpResponse::setStream' => ['bool', 'stream'=>'resource'], +'HttpResponse::setThrottleDelay' => ['bool', 'seconds'=>'float'], +'HttpResponse::status' => ['bool', 'status'=>'int'], +'HttpUtil::buildCookie' => ['', 'cookie_array'=>''], +'HttpUtil::buildStr' => ['', 'query'=>'', 'prefix'=>'', 'arg_sep'=>''], +'HttpUtil::buildUrl' => ['', 'url'=>'', 'parts'=>'', 'flags'=>'', '&composed'=>''], +'HttpUtil::chunkedDecode' => ['', 'encoded_string'=>''], +'HttpUtil::date' => ['', 'timestamp'=>''], +'HttpUtil::deflate' => ['', 'plain'=>'', 'flags'=>''], +'HttpUtil::inflate' => ['', 'encoded'=>''], +'HttpUtil::matchEtag' => ['', 'plain_etag'=>'', 'for_range'=>''], +'HttpUtil::matchModified' => ['', 'last_modified'=>'', 'for_range'=>''], +'HttpUtil::matchRequestHeader' => ['', 'header_name'=>'', 'header_value'=>'', 'case_sensitive'=>''], +'HttpUtil::negotiateCharset' => ['', 'supported'=>'', '&result'=>''], +'HttpUtil::negotiateContentType' => ['', 'supported'=>'', '&result'=>''], +'HttpUtil::negotiateLanguage' => ['', 'supported'=>'', '&result'=>''], +'HttpUtil::parseCookie' => ['', 'cookie_string'=>''], +'HttpUtil::parseHeaders' => ['', 'headers_string'=>''], +'HttpUtil::parseMessage' => ['', 'message_string'=>''], +'HttpUtil::parseParams' => ['', 'param_string'=>'', 'flags'=>''], +'HttpUtil::support' => ['', 'feature'=>''], +'hw_api::checkin' => ['bool', 'parameter'=>'array'], +'hw_api::checkout' => ['bool', 'parameter'=>'array'], +'hw_api::children' => ['array', 'parameter'=>'array'], +'hw_api::content' => ['HW_API_Content', 'parameter'=>'array'], +'hw_api::copy' => ['hw_api_content', 'parameter'=>'array'], +'hw_api::dbstat' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::dcstat' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::dstanchors' => ['array', 'parameter'=>'array'], +'hw_api::dstofsrcanchor' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::find' => ['array', 'parameter'=>'array'], +'hw_api::ftstat' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::hwstat' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::identify' => ['bool', 'parameter'=>'array'], +'hw_api::info' => ['array', 'parameter'=>'array'], +'hw_api::insert' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::insertanchor' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::insertcollection' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::insertdocument' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::link' => ['bool', 'parameter'=>'array'], +'hw_api::lock' => ['bool', 'parameter'=>'array'], +'hw_api::move' => ['bool', 'parameter'=>'array'], +'hw_api::object' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::objectbyanchor' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::parents' => ['array', 'parameter'=>'array'], +'hw_api::remove' => ['bool', 'parameter'=>'array'], +'hw_api::replace' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::setcommittedversion' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::srcanchors' => ['array', 'parameter'=>'array'], +'hw_api::srcsofdst' => ['array', 'parameter'=>'array'], +'hw_api::unlock' => ['bool', 'parameter'=>'array'], +'hw_api::user' => ['hw_api_object', 'parameter'=>'array'], +'hw_api::userlist' => ['array', 'parameter'=>'array'], +'hw_api_attribute' => ['HW_API_Attribute', 'name='=>'string', 'value='=>'string'], +'hw_api_attribute::key' => ['string'], +'hw_api_attribute::langdepvalue' => ['string', 'language'=>'string'], +'hw_api_attribute::value' => ['string'], +'hw_api_attribute::values' => ['array'], +'hw_api_content' => ['HW_API_Content', 'content'=>'string', 'mimetype'=>'string'], +'hw_api_content::mimetype' => ['string'], +'hw_api_content::read' => ['string', 'buffer'=>'string', 'length'=>'int'], +'hw_api_error::count' => ['int'], +'hw_api_error::reason' => ['HW_API_Reason'], +'hw_api_object' => ['hw_api_object', 'parameter'=>'array'], +'hw_api_object::assign' => ['bool', 'parameter'=>'array'], +'hw_api_object::attreditable' => ['bool', 'parameter'=>'array'], +'hw_api_object::count' => ['int', 'parameter'=>'array'], +'hw_api_object::insert' => ['bool', 'attribute'=>'hw_api_attribute'], +'hw_api_object::remove' => ['bool', 'name'=>'string'], +'hw_api_object::title' => ['string', 'parameter'=>'array'], +'hw_api_object::value' => ['string', 'name'=>'string'], +'hw_api_reason::description' => ['string'], +'hw_api_reason::type' => ['HW_API_Reason'], +'hw_Array2Objrec' => ['string', 'object_array'=>'array'], +'hw_changeobject' => ['bool', 'link'=>'int', 'objid'=>'int', 'attributes'=>'array'], +'hw_Children' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_ChildrenObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_Close' => ['bool', 'connection'=>'int'], +'hw_Connect' => ['int', 'host'=>'string', 'port'=>'int', 'username='=>'string', 'password='=>'string'], +'hw_connection_info' => ['', 'link'=>'int'], +'hw_cp' => ['int', 'connection'=>'int', 'object_id_array'=>'array', 'destination_id'=>'int'], +'hw_Deleteobject' => ['bool', 'connection'=>'int', 'object_to_delete'=>'int'], +'hw_DocByAnchor' => ['int', 'connection'=>'int', 'anchorid'=>'int'], +'hw_DocByAnchorObj' => ['string', 'connection'=>'int', 'anchorid'=>'int'], +'hw_Document_Attributes' => ['string', 'hw_document'=>'int'], +'hw_Document_BodyTag' => ['string', 'hw_document'=>'int', 'prefix='=>'string'], +'hw_Document_Content' => ['string', 'hw_document'=>'int'], +'hw_Document_SetContent' => ['bool', 'hw_document'=>'int', 'content'=>'string'], +'hw_Document_Size' => ['int', 'hw_document'=>'int'], +'hw_dummy' => ['string', 'link'=>'int', 'id'=>'int', 'msgid'=>'int'], +'hw_EditText' => ['bool', 'connection'=>'int', 'hw_document'=>'int'], +'hw_Error' => ['int', 'connection'=>'int'], +'hw_ErrorMsg' => ['string', 'connection'=>'int'], +'hw_Free_Document' => ['bool', 'hw_document'=>'int'], +'hw_GetAnchors' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetAnchorsObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetAndLock' => ['string', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetChildColl' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetChildCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetChildDocColl' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetChildDocCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetObject' => ['', 'connection'=>'int', 'objectid'=>'', 'query='=>'string'], +'hw_GetObjectByQuery' => ['array', 'connection'=>'int', 'query'=>'string', 'max_hits'=>'int'], +'hw_GetObjectByQueryColl' => ['array', 'connection'=>'int', 'objectid'=>'int', 'query'=>'string', 'max_hits'=>'int'], +'hw_GetObjectByQueryCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int', 'query'=>'string', 'max_hits'=>'int'], +'hw_GetObjectByQueryObj' => ['array', 'connection'=>'int', 'query'=>'string', 'max_hits'=>'int'], +'hw_GetParents' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetParentsObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_getrellink' => ['string', 'link'=>'int', 'rootid'=>'int', 'sourceid'=>'int', 'destid'=>'int'], +'hw_GetRemote' => ['int', 'connection'=>'int', 'objectid'=>'int'], +'hw_getremotechildren' => ['', 'connection'=>'int', 'object_record'=>'string'], +'hw_GetSrcByDestObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], +'hw_GetText' => ['int', 'connection'=>'int', 'objectid'=>'int', 'prefix='=>''], +'hw_getusername' => ['string', 'connection'=>'int'], +'hw_Identify' => ['string', 'link'=>'int', 'username'=>'string', 'password'=>'string'], +'hw_InCollections' => ['array', 'connection'=>'int', 'object_id_array'=>'array', 'collection_id_array'=>'array', 'return_collections'=>'int'], +'hw_Info' => ['string', 'connection'=>'int'], +'hw_InsColl' => ['int', 'connection'=>'int', 'objectid'=>'int', 'object_array'=>'array'], +'hw_InsDoc' => ['int', 'connection'=>'', 'parentid'=>'int', 'object_record'=>'string', 'text='=>'string'], +'hw_insertanchors' => ['bool', 'hwdoc'=>'int', 'anchorecs'=>'array', 'dest'=>'array', 'urlprefixes='=>'array'], +'hw_InsertDocument' => ['int', 'connection'=>'int', 'parent_id'=>'int', 'hw_document'=>'int'], +'hw_InsertObject' => ['int', 'connection'=>'int', 'object_rec'=>'string', 'parameter'=>'string'], +'hw_mapid' => ['int', 'connection'=>'int', 'server_id'=>'int', 'object_id'=>'int'], +'hw_Modifyobject' => ['bool', 'connection'=>'int', 'object_to_change'=>'int', 'remove'=>'array', 'add'=>'array', 'mode='=>'int'], +'hw_mv' => ['int', 'connection'=>'int', 'object_id_array'=>'array', 'source_id'=>'int', 'destination_id'=>'int'], +'hw_New_Document' => ['int', 'object_record'=>'string', 'document_data'=>'string', 'document_size'=>'int'], +'hw_objrec2array' => ['array', 'object_record'=>'string', 'format='=>'array'], +'hw_Output_Document' => ['bool', 'hw_document'=>'int'], +'hw_pConnect' => ['int', 'host'=>'string', 'port'=>'int', 'username='=>'string', 'password='=>'string'], +'hw_PipeDocument' => ['int', 'connection'=>'int', 'objectid'=>'int', 'url_prefixes='=>'array'], +'hw_Root' => ['int'], +'hw_setlinkroot' => ['int', 'link'=>'int', 'rootid'=>'int'], +'hw_stat' => ['string', 'link'=>'int'], +'hw_Unlock' => ['bool', 'connection'=>'int', 'objectid'=>'int'], +'hw_Who' => ['array', 'connection'=>'int'], +'hwapi_attribute_new' => ['HW_API_Attribute', 'name='=>'string', 'value='=>'string'], +'hwapi_content_new' => ['HW_API_Content', 'content'=>'string', 'mimetype'=>'string'], +'hwapi_hgcsp' => ['HW_API', 'hostname'=>'string', 'port='=>'int'], +'hwapi_object_new' => ['hw_api_object', 'parameter'=>'array'], +'hypot' => ['float', 'x'=>'float', 'y'=>'float'], +'ibase_add_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password'=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], +'ibase_affected_rows' => ['int', 'link_identifier='=>'resource'], +'ibase_backup' => ['mixed', 'service_handle'=>'resource', 'source_db'=>'string', 'dest_file'=>'string', 'options='=>'int', 'verbose='=>'bool'], +'ibase_blob_add' => ['void', 'blob_handle'=>'resource', 'data'=>'string'], +'ibase_blob_cancel' => ['bool', 'blob_handle'=>'resource'], +'ibase_blob_close' => ['string|bool', 'blob_handle'=>'resource'], +'ibase_blob_create' => ['resource', 'link_identifier='=>'resource'], +'ibase_blob_echo' => ['bool', 'link_identifier'=>'', 'blob_id'=>'string'], +'ibase_blob_echo\'1' => ['bool', 'blob_id'=>'string'], +'ibase_blob_get' => ['string|false', 'blob_handle'=>'resource', 'length'=>'int'], +'ibase_blob_import' => ['string|false', 'link_identifier'=>'resource', 'file_handle'=>'resource'], +'ibase_blob_info' => ['array', 'link_identifier'=>'resource', 'blob_id'=>'string'], +'ibase_blob_info\'1' => ['array', 'blob_id'=>'string'], +'ibase_blob_open' => ['resource|false', 'link_identifier'=>'', 'blob_id'=>'string'], +'ibase_blob_open\'1' => ['resource', 'blob_id'=>'string'], +'ibase_close' => ['bool', 'link_identifier='=>'resource'], +'ibase_commit' => ['bool', 'link_identifier='=>'resource'], +'ibase_commit_ret' => ['bool', 'link_identifier='=>'resource'], +'ibase_connect' => ['resource|false', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'charset='=>'string', 'buffers='=>'int', 'dialect='=>'int', 'role='=>'string'], +'ibase_db_info' => ['string', 'service_handle'=>'resource', 'db'=>'string', 'action'=>'int', 'argument='=>'int'], +'ibase_delete_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password='=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], +'ibase_drop_db' => ['bool', 'link_identifier='=>'resource'], +'ibase_errcode' => ['int|false'], +'ibase_errmsg' => ['string|false'], +'ibase_execute' => ['resource|false', 'query'=>'resource', 'bind_arg='=>'mixed', '...args='=>'mixed'], +'ibase_fetch_assoc' => ['array|false', 'result'=>'resource', 'fetch_flags='=>'int'], +'ibase_fetch_object' => ['object|false', 'result'=>'resource', 'fetch_flags='=>'int'], +'ibase_fetch_row' => ['array|false', 'result'=>'resource', 'fetch_flags='=>'int'], +'ibase_field_info' => ['array', 'query_result'=>'resource', 'field_number'=>'int'], +'ibase_free_event_handler' => ['bool', 'event'=>'resource'], +'ibase_free_query' => ['bool', 'query'=>'resource'], +'ibase_free_result' => ['bool', 'result'=>'resource'], +'ibase_gen_id' => ['int|string', 'generator'=>'string', 'increment='=>'int', 'link_identifier='=>'resource'], +'ibase_maintain_db' => ['bool', 'service_handle'=>'resource', 'db'=>'string', 'action'=>'int', 'argument='=>'int'], +'ibase_modify_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password'=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], +'ibase_name_result' => ['bool', 'result'=>'resource', 'name'=>'string'], +'ibase_num_fields' => ['int', 'query_result'=>'resource'], +'ibase_num_params' => ['int', 'query'=>'resource'], +'ibase_num_rows' => ['int', 'result_identifier'=>''], +'ibase_param_info' => ['array', 'query'=>'resource', 'field_number'=>'int'], +'ibase_pconnect' => ['resource|false', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'charset='=>'string', 'buffers='=>'int', 'dialect='=>'int', 'role='=>'string'], +'ibase_prepare' => ['resource|false', 'link_identifier'=>'', 'query'=>'string', 'trans_identifier'=>''], +'ibase_query' => ['resource|false', 'link_identifier='=>'resource', 'string='=>'string', 'bind_arg='=>'int', '...args='=>''], +'ibase_restore' => ['mixed', 'service_handle'=>'resource', 'source_file'=>'string', 'dest_db'=>'string', 'options='=>'int', 'verbose='=>'bool'], +'ibase_rollback' => ['bool', 'link_identifier='=>'resource'], +'ibase_rollback_ret' => ['bool', 'link_identifier='=>'resource'], +'ibase_server_info' => ['string', 'service_handle'=>'resource', 'action'=>'int'], +'ibase_service_attach' => ['resource', 'host'=>'string', 'dba_username'=>'string', 'dba_password'=>'string'], +'ibase_service_detach' => ['bool', 'service_handle'=>'resource'], +'ibase_set_event_handler' => ['resource', 'link_identifier'=>'', 'callback'=>'callable', 'event='=>'string', '...args='=>''], +'ibase_set_event_handler\'1' => ['resource', 'callback'=>'callable', 'event'=>'string', '...args'=>''], +'ibase_timefmt' => ['bool', 'format'=>'string', 'columntype='=>'int'], +'ibase_trans' => ['resource|false', 'trans_args='=>'int', 'link_identifier='=>'', '...args='=>''], +'ibase_wait_event' => ['string', 'link_identifier'=>'', 'event='=>'string', '...args='=>''], +'ibase_wait_event\'1' => ['string', 'event'=>'string', '...args'=>''], +'iconv' => ['string|false', 'from_encoding'=>'string', 'to_encoding'=>'string', 'string'=>'string'], +'iconv_get_encoding' => ['array|string|false', 'type='=>'string'], +'iconv_mime_decode' => ['string|false', 'string'=>'string', 'mode='=>'int', 'encoding='=>'?string'], +'iconv_mime_decode_headers' => ['array|false', 'headers'=>'string', 'mode='=>'int', 'encoding='=>'?string'], +'iconv_mime_encode' => ['string|false', 'field_name'=>'string', 'field_value'=>'string', 'options='=>'array'], +'iconv_set_encoding' => ['bool', 'type'=>'string', 'encoding'=>'string'], +'iconv_strlen' => ['0|positive-int|false', 'string'=>'string', 'encoding='=>'?string'], +'iconv_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'?string'], +'iconv_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'?string'], +'iconv_substr' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'?int', 'encoding='=>'?string'], +'id3_get_frame_long_name' => ['string', 'frameid'=>'string'], +'id3_get_frame_short_name' => ['string', 'frameid'=>'string'], +'id3_get_genre_id' => ['int', 'genre'=>'string'], +'id3_get_genre_list' => ['array'], +'id3_get_genre_name' => ['string', 'genre_id'=>'int'], +'id3_get_tag' => ['array', 'filename'=>'string', 'version='=>'int'], +'id3_get_version' => ['int', 'filename'=>'string'], +'id3_remove_tag' => ['bool', 'filename'=>'string', 'version='=>'int'], +'id3_set_tag' => ['bool', 'filename'=>'string', 'tag'=>'array', 'version='=>'int'], +'idate' => ['int', 'format'=>'string', 'timestamp='=>'?int'], +'idn_strerror' => ['string', 'errorcode'=>'int'], +'idn_to_ascii' => ['string|false', 'domain'=>'string', 'flags='=>'int', 'variant='=>'int', '&w_idna_info='=>'array'], +'idn_to_utf8' => ['string|false', 'domain'=>'string', 'flags='=>'int', 'variant='=>'int', '&w_idna_info='=>'array'], +'ifx_affected_rows' => ['int', 'result_id'=>'resource'], +'ifx_blobinfile_mode' => ['bool', 'mode'=>'int'], +'ifx_byteasvarchar' => ['bool', 'mode'=>'int'], +'ifx_close' => ['bool', 'link_identifier='=>'resource'], +'ifx_connect' => ['resource', 'database='=>'string', 'userid='=>'string', 'password='=>'string'], +'ifx_copy_blob' => ['int', 'bid'=>'int'], +'ifx_create_blob' => ['int', 'type'=>'int', 'mode'=>'int', 'param'=>'string'], +'ifx_create_char' => ['int', 'param'=>'string'], +'ifx_do' => ['bool', 'result_id'=>'resource'], +'ifx_error' => ['string', 'link_identifier='=>'resource'], +'ifx_errormsg' => ['string', 'errorcode='=>'int'], +'ifx_fetch_row' => ['array', 'result_id'=>'resource', 'position='=>'mixed'], +'ifx_fieldproperties' => ['array', 'result_id'=>'resource'], +'ifx_fieldtypes' => ['array', 'result_id'=>'resource'], +'ifx_free_blob' => ['bool', 'bid'=>'int'], +'ifx_free_char' => ['bool', 'bid'=>'int'], +'ifx_free_result' => ['bool', 'result_id'=>'resource'], +'ifx_get_blob' => ['string', 'bid'=>'int'], +'ifx_get_char' => ['string', 'bid'=>'int'], +'ifx_getsqlca' => ['array', 'result_id'=>'resource'], +'ifx_htmltbl_result' => ['int', 'result_id'=>'resource', 'html_table_options='=>'string'], +'ifx_nullformat' => ['bool', 'mode'=>'int'], +'ifx_num_fields' => ['int', 'result_id'=>'resource'], +'ifx_num_rows' => ['int', 'result_id'=>'resource'], +'ifx_pconnect' => ['resource', 'database='=>'string', 'userid='=>'string', 'password='=>'string'], +'ifx_prepare' => ['resource', 'query'=>'string', 'link_identifier'=>'resource', 'cursor_def='=>'int', 'blobidarray='=>'mixed'], +'ifx_query' => ['resource', 'query'=>'string', 'link_identifier'=>'resource', 'cursor_type='=>'int', 'blobidarray='=>'mixed'], +'ifx_textasvarchar' => ['bool', 'mode'=>'int'], +'ifx_update_blob' => ['bool', 'bid'=>'int', 'content'=>'string'], +'ifx_update_char' => ['bool', 'bid'=>'int', 'content'=>'string'], +'ifxus_close_slob' => ['bool', 'bid'=>'int'], +'ifxus_create_slob' => ['int', 'mode'=>'int'], +'ifxus_free_slob' => ['bool', 'bid'=>'int'], +'ifxus_open_slob' => ['int', 'bid'=>'int', 'mode'=>'int'], +'ifxus_read_slob' => ['string', 'bid'=>'int', 'nbytes'=>'int'], +'ifxus_seek_slob' => ['int', 'bid'=>'int', 'mode'=>'int', 'offset'=>'int'], +'ifxus_tell_slob' => ['int', 'bid'=>'int'], +'ifxus_write_slob' => ['int', 'bid'=>'int', 'content'=>'string'], +'igbinary_serialize' => ['string|false', 'value'=>'mixed'], +'igbinary_unserialize' => ['mixed', 'str'=>'string'], +'ignore_user_abort' => ['int', 'enable='=>'?bool'], +'iis_add_server' => ['int', 'path'=>'string', 'comment'=>'string', 'server_ip'=>'string', 'port'=>'int', 'host_name'=>'string', 'rights'=>'int', 'start_server'=>'int'], +'iis_get_dir_security' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string'], +'iis_get_script_map' => ['string', 'server_instance'=>'int', 'virtual_path'=>'string', 'script_extension'=>'string'], +'iis_get_server_by_comment' => ['int', 'comment'=>'string'], +'iis_get_server_by_path' => ['int', 'path'=>'string'], +'iis_get_server_rights' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string'], +'iis_get_service_state' => ['int', 'service_id'=>'string'], +'iis_remove_server' => ['int', 'server_instance'=>'int'], +'iis_set_app_settings' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'application_scope'=>'string'], +'iis_set_dir_security' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'directory_flags'=>'int'], +'iis_set_script_map' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'script_extension'=>'string', 'engine_path'=>'string', 'allow_scripting'=>'int'], +'iis_set_server_rights' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'directory_flags'=>'int'], +'iis_start_server' => ['int', 'server_instance'=>'int'], +'iis_start_service' => ['int', 'service_id'=>'string'], +'iis_stop_server' => ['int', 'server_instance'=>'int'], +'iis_stop_service' => ['int', 'service_id'=>'string'], +'image_type_to_extension' => ['string', 'image_type'=>'int', 'include_dot='=>'bool'], +'image_type_to_mime_type' => ['string', 'image_type'=>'int'], +'imageaffine' => ['false|GdImage', 'image'=>'GdImage', 'affine'=>'array', 'clip='=>'?array'], +'imageaffinematrixconcat' => ['array{0:float,1:float,2:float,3:float,4:float,5:float}|false', 'matrix1'=>'array', 'matrix2'=>'array'], +'imageaffinematrixget' => ['array{0:float,1:float,2:float,3:float,4:float,5:float}|false', 'type'=>'int', 'options'=>'array|float'], +'imagealphablending' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], +'imageantialias' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], +'imagearc' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int'], +'imageavif' => ['bool', 'image'=>'GdImage', 'file='=>'resource|string|null', 'quality='=>'int', 'speed='=>'int'], +'imagebmp' => ['bool', 'image'=>'GdImage', 'file='=>'resource|string|null', 'compressed='=>'bool'], +'imagechar' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], +'imagecharup' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], +'imagecolorallocate' => ['int|false', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'imagecolorallocatealpha' => ['int|false', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], +'imagecolorat' => ['int|false', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int'], +'imagecolorclosest' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'imagecolorclosestalpha' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], +'imagecolorclosesthwb' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'imagecolordeallocate' => ['bool', 'image'=>'GdImage', 'color'=>'int'], +'imagecolorexact' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'imagecolorexactalpha' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], +'imagecolormatch' => ['bool', 'image1'=>'GdImage', 'image2'=>'GdImage'], +'imagecolorresolve' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'imagecolorresolvealpha' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], +'imagecolorset' => ['false|null', 'image'=>'GdImage', 'color'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], +'imagecolorsforindex' => ['array', 'image'=>'GdImage', 'color'=>'int'], +'imagecolorstotal' => ['int', 'image'=>'GdImage'], +'imagecolortransparent' => ['int', 'image'=>'GdImage', 'color='=>'?int'], +'imageconvolution' => ['bool', 'image'=>'GdImage', 'matrix'=>'array', 'divisor'=>'float', 'offset'=>'float'], +'imagecopy' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int'], +'imagecopymerge' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], +'imagecopymergegray' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], +'imagecopyresampled' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], +'imagecopyresized' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], +'imagecreate' => ['false|GdImage', 'width'=>'int', 'height'=>'int'], +'imagecreatefromavif' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefrombmp' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromgd' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromgd2' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromgd2part' => ['false|GdImage', 'filename'=>'string', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int'], +'imagecreatefromgif' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromjpeg' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefrompng' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromstring' => ['false|GdImage', 'data'=>'string'], +'imagecreatefromwbmp' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromwebp' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromxbm' => ['false|GdImage', 'filename'=>'string'], +'imagecreatefromxpm' => ['false|GdImage', 'filename'=>'string'], +'imagecreatetruecolor' => ['false|GdImage', 'width'=>'int', 'height'=>'int'], +'imagecrop' => ['false|GdImage', 'image'=>'GdImage', 'rectangle'=>'array'], +'imagecropauto' => ['false|GdImage', 'image'=>'GdImage', 'mode='=>'int', 'threshold='=>'float', 'color='=>'int'], +'imagedashedline' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], +'imagedestroy' => ['bool', 'image'=>'GdImage'], +'imageellipse' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], +'imagefill' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'color'=>'int'], +'imagefilledarc' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int', 'style'=>'int'], +'imagefilledellipse' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], +'imagefilledpolygon' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], +'imagefilledrectangle' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], +'imagefilltoborder' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'border_color'=>'int', 'color'=>'int'], +'imagefilter' => ['bool', 'image'=>'GdImage', 'filter'=>'int', '...args='=>'array|int|float|bool'], +'imageflip' => ['bool', 'image'=>'GdImage', 'mode'=>'int'], +'imagefontheight' => ['int', 'font'=>'int'], +'imagefontwidth' => ['int', 'font'=>'int'], +'imageftbbox' => ['array|false', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string', 'options='=>'array'], +'imagefttext' => ['array|false', 'image'=>'GdImage', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], +'imagegammacorrect' => ['bool', 'image'=>'GdImage', 'input_gamma'=>'float', 'output_gamma'=>'float'], +'imagegd' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null'], +'imagegd2' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'chunk_size='=>'int', 'mode='=>'int'], +'imagegetclip' => ['array', 'image'=>'GdImage'], +'imagegetinterpolation' => ['int', 'image'=>'GdImage'], +'imagegif' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null'], +'imagegrabscreen' => ['false|GdImage'], +'imagegrabwindow' => ['false|GdImage', 'handle'=>'int', 'client_area='=>'int'], +'imageinterlace' => ['bool', 'image'=>'GdImage', 'enable='=>'bool|null'], +'imageistruecolor' => ['bool', 'image'=>'GdImage'], +'imagejpeg' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int'], +'imagelayereffect' => ['bool', 'image'=>'GdImage', 'effect'=>'int'], +'imageline' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], +'imageloadfont' => ['GdFont|false', 'filename'=>'string'], +'imageObj::pasteImage' => ['void', 'srcImg'=>'imageObj', 'transparentColorHex'=>'int', 'dstX'=>'int', 'dstY'=>'int', 'angle'=>'int'], +'imageObj::saveImage' => ['int', 'filename'=>'string', 'oMap'=>'mapObj'], +'imageObj::saveWebImage' => ['string'], +'imageopenpolygon' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points'=>'int', 'color'=>'int'], +'imagepalettecopy' => ['void', 'dst'=>'GdImage', 'src'=>'GdImage'], +'imagepalettetotruecolor' => ['bool', 'image'=>'GdImage'], +'imagepng' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int', 'filters='=>'int'], +'imagepolygon' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], +'imagerectangle' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], +'imageresolution' => ['array|bool', 'image'=>'GdImage', 'resolution_x='=>'?int', 'resolution_y='=>'?int'], +'imagerotate' => ['false|GdImage', 'image'=>'GdImage', 'angle'=>'float', 'background_color'=>'int', 'ignore_transparent='=>'bool'], +'imagesavealpha' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], +'imagescale' => ['false|GdImage', 'image'=>'GdImage', 'width'=>'int', 'height='=>'int', 'mode='=>'int'], +'imagesetbrush' => ['bool', 'image'=>'GdImage', 'brush'=>'GdImage'], +'imagesetclip' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'x2'=>'int', 'y1'=>'int', 'y2'=>'int'], +'imagesetinterpolation' => ['bool', 'image'=>'GdImage', 'method='=>'int'], +'imagesetpixel' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'color'=>'int'], +'imagesetstyle' => ['bool', 'image'=>'GdImage', 'style'=>'non-empty-array'], +'imagesetthickness' => ['bool', 'image'=>'GdImage', 'thickness'=>'int'], +'imagesettile' => ['bool', 'image'=>'GdImage', 'tile'=>'GdImage'], +'imagestring' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], +'imagestringup' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], +'imagesx' => ['int', 'image'=>'GdImage'], +'imagesy' => ['int', 'image'=>'GdImage'], +'imagetruecolortopalette' => ['bool', 'image'=>'GdImage', 'dither'=>'bool', 'num_colors'=>'int'], +'imagettfbbox' => ['false|array', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string', 'options='=>'array'], +'imagettftext' => ['false|array', 'image'=>'GdImage', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], +'imagetypes' => ['int'], +'imagewbmp' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'foreground_color='=>'?int'], +'imagewebp' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int'], +'imagexbm' => ['bool', 'image'=>'GdImage', 'filename'=>'?string', 'foreground_color='=>'?int'], +'Imagick::__construct' => ['void', 'files='=>'string|string[]'], +'Imagick::__toString' => ['string'], +'Imagick::adaptiveBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Imagick::adaptiveResizeImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'bestfit='=>'bool'], +'Imagick::adaptiveSharpenImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Imagick::adaptiveThresholdImage' => ['bool', 'width'=>'int', 'height'=>'int', 'offset'=>'int'], +'Imagick::addImage' => ['bool', 'source'=>'Imagick'], +'Imagick::addNoiseImage' => ['bool', 'noise_type'=>'int', 'channel='=>'int'], +'Imagick::affineTransformImage' => ['bool', 'matrix'=>'ImagickDraw'], +'Imagick::animateImages' => ['bool', 'x_server'=>'string'], +'Imagick::annotateImage' => ['bool', 'draw_settings'=>'ImagickDraw', 'x'=>'float', 'y'=>'float', 'angle'=>'float', 'text'=>'string'], +'Imagick::appendImages' => ['Imagick', 'stack'=>'bool'], +'Imagick::autoGammaImage' => ['bool', 'channel='=>'int'], +'Imagick::autoLevelImage' => ['void', 'CHANNEL='=>'string'], +'Imagick::autoOrient' => ['bool'], +'Imagick::averageImages' => ['Imagick'], +'Imagick::blackThresholdImage' => ['bool', 'threshold'=>'mixed'], +'Imagick::blueShiftImage' => ['void', 'factor='=>'float'], +'Imagick::blurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Imagick::borderImage' => ['bool', 'bordercolor'=>'mixed', 'width'=>'int', 'height'=>'int'], +'Imagick::brightnessContrastImage' => ['void', 'brightness'=>'string', 'contrast'=>'string', 'CHANNEL='=>'string'], +'Imagick::charcoalImage' => ['bool', 'radius'=>'float', 'sigma'=>'float'], +'Imagick::chopImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::clampImage' => ['void', 'CHANNEL='=>'string'], +'Imagick::clear' => ['bool'], +'Imagick::clipImage' => ['bool'], +'Imagick::clipImagePath' => ['void', 'pathname'=>'string', 'inside'=>'string'], +'Imagick::clipPathImage' => ['bool', 'pathname'=>'string', 'inside'=>'bool'], +'Imagick::clone' => ['Imagick'], +'Imagick::clutImage' => ['bool', 'lookup_table'=>'Imagick', 'channel='=>'float'], +'Imagick::coalesceImages' => ['Imagick'], +'Imagick::colorFloodfillImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int'], +'Imagick::colorizeImage' => ['bool', 'colorize'=>'mixed', 'opacity'=>'mixed'], +'Imagick::colorMatrixImage' => ['void', 'color_matrix'=>'string'], +'Imagick::combineImages' => ['Imagick', 'channeltype'=>'int'], +'Imagick::commentImage' => ['bool', 'comment'=>'string'], +'Imagick::compareImageChannels' => ['array{Imagick, float}', 'image'=>'Imagick', 'channeltype'=>'int', 'metrictype'=>'int'], +'Imagick::compareImageLayers' => ['Imagick', 'method'=>'int'], +'Imagick::compareImages' => ['array{Imagick, float}', 'compare'=>'Imagick', 'metric'=>'int'], +'Imagick::compositeImage' => ['bool', 'composite_object'=>'Imagick', 'composite'=>'int', 'x'=>'int', 'y'=>'int', 'channel='=>'int'], +'Imagick::compositeImageGravity' => ['bool', 'Imagick'=>'Imagick', 'COMPOSITE_CONSTANT'=>'int', 'GRAVITY_CONSTANT'=>'int'], +'Imagick::contrastImage' => ['bool', 'sharpen'=>'bool'], +'Imagick::contrastStretchImage' => ['bool', 'black_point'=>'float', 'white_point'=>'float', 'channel='=>'int'], +'Imagick::convolveImage' => ['bool', 'kernel'=>'array', 'channel='=>'int'], +'Imagick::count' => ['void', 'mode='=>'string'], +'Imagick::cropImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::cropThumbnailImage' => ['bool', 'width'=>'int', 'height'=>'int', 'legacy='=>'bool'], +'Imagick::current' => ['Imagick'], +'Imagick::cycleColormapImage' => ['bool', 'displace'=>'int'], +'Imagick::decipherImage' => ['bool', 'passphrase'=>'string'], +'Imagick::deconstructImages' => ['Imagick'], +'Imagick::deleteImageArtifact' => ['bool', 'artifact'=>'string'], +'Imagick::deleteImageProperty' => ['void', 'name'=>'string'], +'Imagick::deskewImage' => ['bool', 'threshold'=>'float'], +'Imagick::despeckleImage' => ['bool'], +'Imagick::destroy' => ['bool'], +'Imagick::displayImage' => ['bool', 'servername'=>'string'], +'Imagick::displayImages' => ['bool', 'servername'=>'string'], +'Imagick::distortImage' => ['bool', 'method'=>'int', 'arguments'=>'array', 'bestfit'=>'bool'], +'Imagick::drawImage' => ['bool', 'draw'=>'ImagickDraw'], +'Imagick::edgeImage' => ['bool', 'radius'=>'float'], +'Imagick::embossImage' => ['bool', 'radius'=>'float', 'sigma'=>'float'], +'Imagick::encipherImage' => ['bool', 'passphrase'=>'string'], +'Imagick::enhanceImage' => ['bool'], +'Imagick::equalizeImage' => ['bool'], +'Imagick::evaluateImage' => ['bool', 'op'=>'int', 'constant'=>'float', 'channel='=>'int'], +'Imagick::evaluateImages' => ['bool', 'EVALUATE_CONSTANT'=>'int'], +'Imagick::exportImagePixels' => ['list', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int', 'map'=>'string', 'storage'=>'int'], +'Imagick::extentImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::filter' => ['void', 'ImagickKernel'=>'ImagickKernel', 'CHANNEL='=>'int'], +'Imagick::flattenImages' => ['Imagick'], +'Imagick::flipImage' => ['bool'], +'Imagick::floodFillPaintImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'target'=>'mixed', 'x'=>'int', 'y'=>'int', 'invert'=>'bool', 'channel='=>'int'], +'Imagick::flopImage' => ['bool'], +'Imagick::forwardFourierTransformimage' => ['void', 'magnitude'=>'bool'], +'Imagick::frameImage' => ['bool', 'matte_color'=>'mixed', 'width'=>'int', 'height'=>'int', 'inner_bevel'=>'int', 'outer_bevel'=>'int'], +'Imagick::functionImage' => ['bool', 'function'=>'int', 'arguments'=>'array', 'channel='=>'int'], +'Imagick::fxImage' => ['Imagick', 'expression'=>'string', 'channel='=>'int'], +'Imagick::gammaImage' => ['bool', 'gamma'=>'float', 'channel='=>'int'], +'Imagick::gaussianBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Imagick::getColorspace' => ['int'], +'Imagick::getCompression' => ['int'], +'Imagick::getCompressionQuality' => ['int'], +'Imagick::getConfigureOptions' => ['string'], +'Imagick::getCopyright' => ['string'], +'Imagick::getFeatures' => ['string'], +'Imagick::getFilename' => ['string'], +'Imagick::getFont' => ['string|false'], +'Imagick::getFormat' => ['string'], +'Imagick::getGravity' => ['int'], +'Imagick::getHDRIEnabled' => ['int'], +'Imagick::getHomeURL' => ['string'], +'Imagick::getImage' => ['Imagick'], +'Imagick::getImageAlphaChannel' => ['int'], +'Imagick::getImageArtifact' => ['string', 'artifact'=>'string'], +'Imagick::getImageAttribute' => ['string', 'key'=>'string'], +'Imagick::getImageBackgroundColor' => ['ImagickPixel'], +'Imagick::getImageBlob' => ['string'], +'Imagick::getImageBluePrimary' => ['array{x:float, y:float}'], +'Imagick::getImageBorderColor' => ['ImagickPixel'], +'Imagick::getImageChannelDepth' => ['int', 'channel'=>'int'], +'Imagick::getImageChannelDistortion' => ['float', 'reference'=>'Imagick', 'channel'=>'int', 'metric'=>'int'], +'Imagick::getImageChannelDistortions' => ['float', 'reference'=>'Imagick', 'metric'=>'int', 'channel='=>'int'], +'Imagick::getImageChannelExtrema' => ['array{minima:int, maxima:int}', 'channel'=>'int'], +'Imagick::getImageChannelKurtosis' => ['array{kurtosis:float, skewness:float}', 'channel='=>'int'], +'Imagick::getImageChannelMean' => ['array{mean:float, standardDeviation:float}', 'channel'=>'int'], +'Imagick::getImageChannelRange' => ['array{minima:float, maxima:float}', 'channel'=>'int'], +'Imagick::getImageChannelStatistics' => ['array'], +'Imagick::getImageClipMask' => ['Imagick'], +'Imagick::getImageColormapColor' => ['ImagickPixel', 'index'=>'int'], +'Imagick::getImageColors' => ['int'], +'Imagick::getImageColorspace' => ['int'], +'Imagick::getImageCompose' => ['int'], +'Imagick::getImageCompression' => ['int'], +'Imagick::getImageCompressionQuality' => ['int'], +'Imagick::getImageDelay' => ['int'], +'Imagick::getImageDepth' => ['int'], +'Imagick::getImageDispose' => ['int'], +'Imagick::getImageDistortion' => ['float', 'reference'=>'magickwand', 'metric'=>'int'], +'Imagick::getImageExtrema' => ['array{min:int, max:int}'], +'Imagick::getImageFilename' => ['string'], +'Imagick::getImageFormat' => ['string'], +'Imagick::getImageGamma' => ['float'], +'Imagick::getImageGeometry' => ['array{width:int, height:int}'], +'Imagick::getImageGravity' => ['int'], +'Imagick::getImageGreenPrimary' => ['array{x:float, y:float}'], +'Imagick::getImageHeight' => ['int'], +'Imagick::getImageHistogram' => ['list'], +'Imagick::getImageIndex' => ['int'], +'Imagick::getImageInterlaceScheme' => ['int'], +'Imagick::getImageInterpolateMethod' => ['int'], +'Imagick::getImageIterations' => ['int'], +'Imagick::getImageLength' => ['int'], +'Imagick::getImageMagickLicense' => ['string'], +'Imagick::getImageMatte' => ['bool'], +'Imagick::getImageMatteColor' => ['ImagickPixel'], +'Imagick::getImageMimeType' => ['string'], +'Imagick::getImageOrientation' => ['int'], +'Imagick::getImagePage' => ['array{width:int, height:int, x:int, y:int}'], +'Imagick::getImagePixelColor' => ['ImagickPixel', 'x'=>'int', 'y'=>'int'], +'Imagick::getImageProfile' => ['string', 'name'=>'string'], +'Imagick::getImageProfiles' => ['array', 'pattern='=>'string', 'only_names='=>'bool'], +'Imagick::getImageProperties' => ['array', 'pattern='=>'string', 'only_names='=>'bool'], +'Imagick::getImageProperty' => ['string|false', 'name'=>'string'], +'Imagick::getImageRedPrimary' => ['array{x:float, y:float}'], +'Imagick::getImageRegion' => ['Imagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::getImageRenderingIntent' => ['int'], +'Imagick::getImageResolution' => ['array{x:float, y:float}'], +'Imagick::getImagesBlob' => ['string'], +'Imagick::getImageScene' => ['int'], +'Imagick::getImageSignature' => ['string'], +'Imagick::getImageSize' => ['int'], +'Imagick::getImageTicksPerSecond' => ['int'], +'Imagick::getImageTotalInkDensity' => ['float'], +'Imagick::getImageType' => ['int'], +'Imagick::getImageUnits' => ['int'], +'Imagick::getImageVirtualPixelMethod' => ['int'], +'Imagick::getImageWhitePoint' => ['array{x:float, y:float}'], +'Imagick::getImageWidth' => ['int'], +'Imagick::getInterlaceScheme' => ['int'], +'Imagick::getIteratorIndex' => ['int'], +'Imagick::getNumberImages' => ['int'], +'Imagick::getOption' => ['string', 'key'=>'string'], +'Imagick::getPackageName' => ['string'], +'Imagick::getPage' => ['array{width:int, height:int, x:int, y:int}'], +'Imagick::getPixelIterator' => ['ImagickPixelIterator'], +'Imagick::getPixelRegionIterator' => ['ImagickPixelIterator', 'x'=>'int', 'y'=>'int', 'columns'=>'int', 'rows'=>'int'], +'Imagick::getPointSize' => ['float'], +'Imagick::getQuantum' => ['int'], +'Imagick::getQuantumDepth' => ['array{quantumDepthLong:int, quantumDepthString:string}'], +'Imagick::getQuantumRange' => ['array{quantumRangeLong:int, quantumRangeString:string}'], +'Imagick::getRegistry' => ['string|false', 'key'=>'string'], +'Imagick::getReleaseDate' => ['string'], +'Imagick::getResource' => ['int', 'type'=>'int'], +'Imagick::getResourceLimit' => ['int', 'type'=>'int'], +'Imagick::getSamplingFactors' => ['array'], +'Imagick::getSize' => ['array{columns:int, rows: int}'], +'Imagick::getSizeOffset' => ['int'], +'Imagick::getVersion' => ['array{versionNumber: int, versionString:string}'], +'Imagick::haldClutImage' => ['bool', 'clut'=>'Imagick', 'channel='=>'int'], +'Imagick::hasNextImage' => ['bool'], +'Imagick::hasPreviousImage' => ['bool'], +'Imagick::identifyFormat' => ['string|false', 'embedText'=>'string'], +'Imagick::identifyImage' => ['array', 'appendrawoutput='=>'bool'], +'Imagick::identifyImageType' => ['int'], +'Imagick::implodeImage' => ['bool', 'radius'=>'float'], +'Imagick::importImagePixels' => ['bool', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int', 'map'=>'string', 'storage'=>'int', 'pixels'=>'list'], +'Imagick::inverseFourierTransformImage' => ['void', 'complement'=>'string', 'magnitude'=>'string'], +'Imagick::key' => ['int|string'], +'Imagick::labelImage' => ['bool', 'label'=>'string'], +'Imagick::levelImage' => ['bool', 'blackpoint'=>'float', 'gamma'=>'float', 'whitepoint'=>'float', 'channel='=>'int'], +'Imagick::linearStretchImage' => ['bool', 'blackpoint'=>'float', 'whitepoint'=>'float'], +'Imagick::liquidRescaleImage' => ['bool', 'width'=>'int', 'height'=>'int', 'delta_x'=>'float', 'rigidity'=>'float'], +'Imagick::listRegistry' => ['array'], +'Imagick::localContrastImage' => ['bool', 'radius'=>'float', 'strength'=>'float'], +'Imagick::magnifyImage' => ['bool'], +'Imagick::mapImage' => ['bool', 'map'=>'Imagick', 'dither'=>'bool'], +'Imagick::matteFloodfillImage' => ['bool', 'alpha'=>'float', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int'], +'Imagick::medianFilterImage' => ['bool', 'radius'=>'float'], +'Imagick::mergeImageLayers' => ['Imagick', 'layer_method'=>'int'], +'Imagick::minifyImage' => ['bool'], +'Imagick::modulateImage' => ['bool', 'brightness'=>'float', 'saturation'=>'float', 'hue'=>'float'], +'Imagick::montageImage' => ['Imagick', 'draw'=>'ImagickDraw', 'tile_geometry'=>'string', 'thumbnail_geometry'=>'string', 'mode'=>'int', 'frame'=>'string'], +'Imagick::morphImages' => ['Imagick', 'number_frames'=>'int'], +'Imagick::morphology' => ['void', 'morphologyMethod'=>'int', 'iterations'=>'int', 'ImagickKernel'=>'ImagickKernel', 'CHANNEL='=>'string'], +'Imagick::mosaicImages' => ['Imagick'], +'Imagick::motionBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float', 'channel='=>'int'], +'Imagick::negateImage' => ['bool', 'gray'=>'bool', 'channel='=>'int'], +'Imagick::newImage' => ['bool', 'cols'=>'int', 'rows'=>'int', 'background'=>'mixed', 'format='=>'string'], +'Imagick::newPseudoImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'pseudostring'=>'string'], +'Imagick::next' => ['void'], +'Imagick::nextImage' => ['bool'], +'Imagick::normalizeImage' => ['bool', 'channel='=>'int'], +'Imagick::oilPaintImage' => ['bool', 'radius'=>'float'], +'Imagick::opaquePaintImage' => ['bool', 'target'=>'mixed', 'fill'=>'mixed', 'fuzz'=>'float', 'invert'=>'bool', 'channel='=>'int'], +'Imagick::optimizeImageLayers' => ['bool'], +'Imagick::orderedPosterizeImage' => ['bool', 'threshold_map'=>'string', 'channel='=>'int'], +'Imagick::paintFloodfillImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int', 'channel='=>'int'], +'Imagick::paintOpaqueImage' => ['bool', 'target'=>'mixed', 'fill'=>'mixed', 'fuzz'=>'float', 'channel='=>'int'], +'Imagick::paintTransparentImage' => ['bool', 'target'=>'mixed', 'alpha'=>'float', 'fuzz'=>'float'], +'Imagick::pingImage' => ['bool', 'filename'=>'string'], +'Imagick::pingImageBlob' => ['bool', 'image'=>'string'], +'Imagick::pingImageFile' => ['bool', 'filehandle'=>'resource', 'filename='=>'string'], +'Imagick::polaroidImage' => ['bool', 'properties'=>'ImagickDraw', 'angle'=>'float'], +'Imagick::posterizeImage' => ['bool', 'levels'=>'int', 'dither'=>'bool'], +'Imagick::previewImages' => ['bool', 'preview'=>'int'], +'Imagick::previousImage' => ['bool'], +'Imagick::profileImage' => ['bool', 'name'=>'string', 'profile'=>'string'], +'Imagick::quantizeImage' => ['bool', 'numbercolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], +'Imagick::quantizeImages' => ['bool', 'numbercolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], +'Imagick::queryFontMetrics' => ['array', 'properties'=>'ImagickDraw', 'text'=>'string', 'multiline='=>'bool'], +'Imagick::queryFonts' => ['array', 'pattern='=>'string'], +'Imagick::queryFormats' => ['list', 'pattern='=>'string'], +'Imagick::radialBlurImage' => ['bool', 'angle'=>'float', 'channel='=>'int'], +'Imagick::raiseImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int', 'raise'=>'bool'], +'Imagick::randomThresholdImage' => ['bool', 'low'=>'float', 'high'=>'float', 'channel='=>'int'], +'Imagick::readImage' => ['bool', 'filename'=>'string'], +'Imagick::readImageBlob' => ['bool', 'image'=>'string', 'filename='=>'string'], +'Imagick::readImageFile' => ['bool', 'filehandle'=>'resource', 'filename='=>'string'], +'Imagick::readImages' => ['Imagick', 'filenames'=>'string'], +'Imagick::recolorImage' => ['bool', 'matrix'=>'list'], +'Imagick::reduceNoiseImage' => ['bool', 'radius'=>'float'], +'Imagick::remapImage' => ['bool', 'replacement'=>'Imagick', 'dither'=>'int'], +'Imagick::removeImage' => ['bool'], +'Imagick::removeImageProfile' => ['string', 'name'=>'string'], +'Imagick::render' => ['bool'], +'Imagick::resampleImage' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float', 'filter'=>'int', 'blur'=>'float'], +'Imagick::resetImagePage' => ['bool', 'page'=>'string'], +'Imagick::resetIterator' => [''], +'Imagick::resizeImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'filter'=>'int', 'blur'=>'float', 'bestfit='=>'bool'], +'Imagick::rewind' => ['void'], +'Imagick::rollImage' => ['bool', 'x'=>'int', 'y'=>'int'], +'Imagick::rotateImage' => ['bool', 'background'=>'mixed', 'degrees'=>'float'], +'Imagick::rotationalBlurImage' => ['void', 'angle'=>'string', 'CHANNEL='=>'string'], +'Imagick::roundCorners' => ['bool', 'x_rounding'=>'float', 'y_rounding'=>'float', 'stroke_width='=>'float', 'displace='=>'float', 'size_correction='=>'float'], +'Imagick::roundCornersImage' => ['', 'xRounding'=>'', 'yRounding'=>'', 'strokeWidth'=>'', 'displace'=>'', 'sizeCorrection'=>''], +'Imagick::sampleImage' => ['bool', 'columns'=>'int', 'rows'=>'int'], +'Imagick::scaleImage' => ['bool', 'cols'=>'int', 'rows'=>'int', 'bestfit='=>'bool'], +'Imagick::segmentImage' => ['bool', 'colorspace'=>'int', 'cluster_threshold'=>'float', 'smooth_threshold'=>'float', 'verbose='=>'bool'], +'Imagick::selectiveBlurImage' => ['void', 'radius'=>'float', 'sigma'=>'float', 'threshold'=>'float', 'CHANNEL'=>'int'], +'Imagick::separateImageChannel' => ['bool', 'channel'=>'int'], +'Imagick::sepiaToneImage' => ['bool', 'threshold'=>'float'], +'Imagick::setAntiAlias' => ['int', 'antialias'=>'bool'], +'Imagick::setBackgroundColor' => ['bool', 'background'=>'mixed'], +'Imagick::setColorspace' => ['bool', 'colorspace'=>'int'], +'Imagick::setCompression' => ['bool', 'compression'=>'int'], +'Imagick::setCompressionQuality' => ['bool', 'quality'=>'int'], +'Imagick::setFilename' => ['bool', 'filename'=>'string'], +'Imagick::setFirstIterator' => ['bool'], +'Imagick::setFont' => ['bool', 'font'=>'string'], +'Imagick::setFormat' => ['bool', 'format'=>'string'], +'Imagick::setGravity' => ['bool', 'gravity'=>'int'], +'Imagick::setImage' => ['bool', 'replace'=>'Imagick'], +'Imagick::setImageAlpha' => ['bool', 'alpha'=>'float'], +'Imagick::setImageAlphaChannel' => ['bool', 'mode'=>'int'], +'Imagick::setImageArtifact' => ['bool', 'artifact'=>'string', 'value'=>'string'], +'Imagick::setImageAttribute' => ['void', 'key'=>'string', 'value'=>'string'], +'Imagick::setImageBackgroundColor' => ['bool', 'background'=>'mixed'], +'Imagick::setImageBias' => ['bool', 'bias'=>'float'], +'Imagick::setImageBiasQuantum' => ['void', 'bias'=>'string'], +'Imagick::setImageBluePrimary' => ['bool', 'x'=>'float', 'y'=>'float'], +'Imagick::setImageBorderColor' => ['bool', 'border'=>'mixed'], +'Imagick::setImageChannelDepth' => ['bool', 'channel'=>'int', 'depth'=>'int'], +'Imagick::setImageChannelMask' => ['', 'channel'=>'int'], +'Imagick::setImageClipMask' => ['bool', 'clip_mask'=>'Imagick'], +'Imagick::setImageColormapColor' => ['bool', 'index'=>'int', 'color'=>'ImagickPixel'], +'Imagick::setImageColorspace' => ['bool', 'colorspace'=>'int'], +'Imagick::setImageCompose' => ['bool', 'compose'=>'int'], +'Imagick::setImageCompression' => ['bool', 'compression'=>'int'], +'Imagick::setImageCompressionQuality' => ['bool', 'quality'=>'int'], +'Imagick::setImageDelay' => ['bool', 'delay'=>'int'], +'Imagick::setImageDepth' => ['bool', 'depth'=>'int'], +'Imagick::setImageDispose' => ['bool', 'dispose'=>'int'], +'Imagick::setImageExtent' => ['bool', 'columns'=>'int', 'rows'=>'int'], +'Imagick::setImageFilename' => ['bool', 'filename'=>'string'], +'Imagick::setImageFormat' => ['bool', 'format'=>'string'], +'Imagick::setImageGamma' => ['bool', 'gamma'=>'float'], +'Imagick::setImageGravity' => ['bool', 'gravity'=>'int'], +'Imagick::setImageGreenPrimary' => ['bool', 'x'=>'float', 'y'=>'float'], +'Imagick::setImageIndex' => ['bool', 'index'=>'int'], +'Imagick::setImageInterlaceScheme' => ['bool', 'interlace_scheme'=>'int'], +'Imagick::setImageInterpolateMethod' => ['bool', 'method'=>'int'], +'Imagick::setImageIterations' => ['bool', 'iterations'=>'int'], +'Imagick::setImageMatte' => ['bool', 'matte'=>'bool'], +'Imagick::setImageMatteColor' => ['bool', 'matte'=>'mixed'], +'Imagick::setImageOpacity' => ['bool', 'opacity'=>'float'], +'Imagick::setImageOrientation' => ['bool', 'orientation'=>'int'], +'Imagick::setImagePage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::setImageProfile' => ['bool', 'name'=>'string', 'profile'=>'string'], +'Imagick::setImageProgressMonitor' => ['', 'filename'=>''], +'Imagick::setImageProperty' => ['bool', 'name'=>'string', 'value'=>'string'], +'Imagick::setImageRedPrimary' => ['bool', 'x'=>'float', 'y'=>'float'], +'Imagick::setImageRenderingIntent' => ['bool', 'rendering_intent'=>'int'], +'Imagick::setImageResolution' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float'], +'Imagick::setImageScene' => ['bool', 'scene'=>'int'], +'Imagick::setImageTicksPerSecond' => ['bool', 'ticks_per_second'=>'int'], +'Imagick::setImageType' => ['bool', 'image_type'=>'int'], +'Imagick::setImageUnits' => ['bool', 'units'=>'int'], +'Imagick::setImageVirtualPixelMethod' => ['bool', 'method'=>'int'], +'Imagick::setImageWhitePoint' => ['bool', 'x'=>'float', 'y'=>'float'], +'Imagick::setInterlaceScheme' => ['bool', 'interlace_scheme'=>'int'], +'Imagick::setIteratorIndex' => ['bool', 'index'=>'int'], +'Imagick::setLastIterator' => ['bool'], +'Imagick::setOption' => ['bool', 'key'=>'string', 'value'=>'string'], +'Imagick::setPage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::setPointSize' => ['bool', 'point_size'=>'float'], +'Imagick::setProgressMonitor' => ['void', 'callback'=>'callable'], +'Imagick::setRegistry' => ['void', 'key'=>'string', 'value'=>'string'], +'Imagick::setResolution' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float'], +'Imagick::setResourceLimit' => ['bool', 'type'=>'int', 'limit'=>'int'], +'Imagick::setSamplingFactors' => ['bool', 'factors'=>'list'], +'Imagick::setSize' => ['bool', 'columns'=>'int', 'rows'=>'int'], +'Imagick::setSizeOffset' => ['bool', 'columns'=>'int', 'rows'=>'int', 'offset'=>'int'], +'Imagick::setType' => ['bool', 'image_type'=>'int'], +'Imagick::shadeImage' => ['bool', 'gray'=>'bool', 'azimuth'=>'float', 'elevation'=>'float'], +'Imagick::shadowImage' => ['bool', 'opacity'=>'float', 'sigma'=>'float', 'x'=>'int', 'y'=>'int'], +'Imagick::sharpenImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], +'Imagick::shaveImage' => ['bool', 'columns'=>'int', 'rows'=>'int'], +'Imagick::shearImage' => ['bool', 'background'=>'mixed', 'x_shear'=>'float', 'y_shear'=>'float'], +'Imagick::sigmoidalContrastImage' => ['bool', 'sharpen'=>'bool', 'alpha'=>'float', 'beta'=>'float', 'channel='=>'int'], +'Imagick::similarityImage' => ['Imagick', 'Imagick'=>'Imagick', '&bestMatch'=>'array', '&similarity'=>'float', 'similarity_threshold'=>'float', 'metric'=>'int'], +'Imagick::sketchImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float'], +'Imagick::smushImages' => ['Imagick', 'stack'=>'string', 'offset'=>'string'], +'Imagick::solarizeImage' => ['bool', 'threshold'=>'int'], +'Imagick::sparseColorImage' => ['bool', 'sparse_method'=>'int', 'arguments'=>'array', 'channel='=>'int'], +'Imagick::spliceImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], +'Imagick::spreadImage' => ['bool', 'radius'=>'float'], +'Imagick::statisticImage' => ['void', 'type'=>'int', 'width'=>'int', 'height'=>'int', 'CHANNEL='=>'string'], +'Imagick::steganoImage' => ['Imagick', 'watermark_wand'=>'Imagick', 'offset'=>'int'], +'Imagick::stereoImage' => ['bool', 'offset_wand'=>'Imagick'], +'Imagick::stripImage' => ['bool'], +'Imagick::subImageMatch' => ['Imagick', 'Imagick'=>'Imagick', '&w_offset='=>'array', '&w_similarity='=>'float'], +'Imagick::swirlImage' => ['bool', 'degrees'=>'float'], +'Imagick::textureImage' => ['bool', 'texture_wand'=>'Imagick'], +'Imagick::thresholdImage' => ['bool', 'threshold'=>'float', 'channel='=>'int'], +'Imagick::thumbnailImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'bestfit='=>'bool', 'fill='=>'bool', 'legacy='=>'bool'], +'Imagick::tintImage' => ['bool', 'tint'=>'mixed', 'opacity'=>'mixed'], +'Imagick::transformImage' => ['Imagick', 'crop'=>'string', 'geometry'=>'string'], +'Imagick::transformImageColorspace' => ['bool', 'colorspace'=>'int'], +'Imagick::transparentPaintImage' => ['bool', 'target'=>'mixed', 'alpha'=>'float', 'fuzz'=>'float', 'invert'=>'bool'], +'Imagick::transposeImage' => ['bool'], +'Imagick::transverseImage' => ['bool'], +'Imagick::trimImage' => ['bool', 'fuzz'=>'float'], +'Imagick::uniqueImageColors' => ['bool'], +'Imagick::unsharpMaskImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'amount'=>'float', 'threshold'=>'float', 'channel='=>'int'], +'Imagick::valid' => ['bool'], +'Imagick::vignetteImage' => ['bool', 'blackpoint'=>'float', 'whitepoint'=>'float', 'x'=>'int', 'y'=>'int'], +'Imagick::waveImage' => ['bool', 'amplitude'=>'float', 'length'=>'float'], +'Imagick::whiteThresholdImage' => ['bool', 'threshold'=>'mixed'], +'Imagick::writeImage' => ['bool', 'filename='=>'string'], +'Imagick::writeImageFile' => ['bool', 'filehandle'=>'resource'], +'Imagick::writeImages' => ['bool', 'filename'=>'string', 'adjoin'=>'bool'], +'Imagick::writeImagesFile' => ['bool', 'filehandle'=>'resource'], +'ImagickDraw::__construct' => ['void'], +'ImagickDraw::affine' => ['bool', 'affine'=>'array'], +'ImagickDraw::annotation' => ['bool', 'x'=>'float', 'y'=>'float', 'text'=>'string'], +'ImagickDraw::arc' => ['bool', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float', 'sd'=>'float', 'ed'=>'float'], +'ImagickDraw::bezier' => ['bool', 'coordinates'=>'list'], +'ImagickDraw::circle' => ['bool', 'ox'=>'float', 'oy'=>'float', 'px'=>'float', 'py'=>'float'], +'ImagickDraw::clear' => ['bool'], +'ImagickDraw::clone' => ['ImagickDraw'], +'ImagickDraw::color' => ['bool', 'x'=>'float', 'y'=>'float', 'paintmethod'=>'int'], +'ImagickDraw::comment' => ['bool', 'comment'=>'string'], +'ImagickDraw::composite' => ['bool', 'compose'=>'int', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float', 'compositewand'=>'Imagick'], +'ImagickDraw::destroy' => ['bool'], +'ImagickDraw::ellipse' => ['bool', 'ox'=>'float', 'oy'=>'float', 'rx'=>'float', 'ry'=>'float', 'start'=>'float', 'end'=>'float'], +'ImagickDraw::getBorderColor' => ['ImagickPixel'], +'ImagickDraw::getClipPath' => ['string|false'], +'ImagickDraw::getClipRule' => ['int'], +'ImagickDraw::getClipUnits' => ['int'], +'ImagickDraw::getDensity' => ['?string'], +'ImagickDraw::getFillColor' => ['ImagickPixel'], +'ImagickDraw::getFillOpacity' => ['float'], +'ImagickDraw::getFillRule' => ['int'], +'ImagickDraw::getFont' => ['string|false'], +'ImagickDraw::getFontFamily' => ['string|false'], +'ImagickDraw::getFontResolution' => ['array'], +'ImagickDraw::getFontSize' => ['float'], +'ImagickDraw::getFontStretch' => ['int'], +'ImagickDraw::getFontStyle' => ['int'], +'ImagickDraw::getFontWeight' => ['int'], +'ImagickDraw::getGravity' => ['int'], +'ImagickDraw::getOpacity' => ['float'], +'ImagickDraw::getStrokeAntialias' => ['bool'], +'ImagickDraw::getStrokeColor' => ['ImagickPixel'], +'ImagickDraw::getStrokeDashArray' => ['array'], +'ImagickDraw::getStrokeDashOffset' => ['float'], +'ImagickDraw::getStrokeLineCap' => ['int'], +'ImagickDraw::getStrokeLineJoin' => ['int'], +'ImagickDraw::getStrokeMiterLimit' => ['int'], +'ImagickDraw::getStrokeOpacity' => ['float'], +'ImagickDraw::getStrokeWidth' => ['float'], +'ImagickDraw::getTextAlignment' => ['int'], +'ImagickDraw::getTextAntialias' => ['bool'], +'ImagickDraw::getTextDecoration' => ['int'], +'ImagickDraw::getTextDirection' => ['bool'], +'ImagickDraw::getTextEncoding' => ['string'], +'ImagickDraw::getTextInterlineSpacing' => ['float'], +'ImagickDraw::getTextInterwordSpacing' => ['float'], +'ImagickDraw::getTextKerning' => ['float'], +'ImagickDraw::getTextUnderColor' => ['ImagickPixel'], +'ImagickDraw::getVectorGraphics' => ['string'], +'ImagickDraw::line' => ['bool', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float'], +'ImagickDraw::matte' => ['bool', 'x'=>'float', 'y'=>'float', 'paintmethod'=>'int'], +'ImagickDraw::pathClose' => ['bool'], +'ImagickDraw::pathCurveToAbsolute' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToQuadraticBezierAbsolute' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToQuadraticBezierRelative' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToQuadraticBezierSmoothRelative' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToRelative' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToSmoothAbsolute' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathCurveToSmoothRelative' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathEllipticArcAbsolute' => ['bool', 'rx'=>'float', 'ry'=>'float', 'x_axis_rotation'=>'float', 'large_arc_flag'=>'bool', 'sweep_flag'=>'bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathEllipticArcRelative' => ['bool', 'rx'=>'float', 'ry'=>'float', 'x_axis_rotation'=>'float', 'large_arc_flag'=>'bool', 'sweep_flag'=>'bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathFinish' => ['bool'], +'ImagickDraw::pathLineToAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathLineToHorizontalAbsolute' => ['bool', 'x'=>'float'], +'ImagickDraw::pathLineToHorizontalRelative' => ['bool', 'x'=>'float'], +'ImagickDraw::pathLineToRelative' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathLineToVerticalAbsolute' => ['bool', 'y'=>'float'], +'ImagickDraw::pathLineToVerticalRelative' => ['bool', 'y'=>'float'], +'ImagickDraw::pathMoveToAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathMoveToRelative' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::pathStart' => ['bool'], +'ImagickDraw::point' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::polygon' => ['bool', 'coordinates'=>'list'], +'ImagickDraw::polyline' => ['bool', 'coordinates'=>'list'], +'ImagickDraw::pop' => ['bool'], +'ImagickDraw::popClipPath' => ['bool'], +'ImagickDraw::popDefs' => ['bool'], +'ImagickDraw::popPattern' => ['bool'], +'ImagickDraw::push' => ['bool'], +'ImagickDraw::pushClipPath' => ['bool', 'clip_mask_id'=>'string'], +'ImagickDraw::pushDefs' => ['bool'], +'ImagickDraw::pushPattern' => ['bool', 'pattern_id'=>'string', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'ImagickDraw::rectangle' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], +'ImagickDraw::render' => ['bool'], +'ImagickDraw::resetVectorGraphics' => ['void'], +'ImagickDraw::rotate' => ['bool', 'degrees'=>'float'], +'ImagickDraw::roundRectangle' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'rx'=>'float', 'ry'=>'float'], +'ImagickDraw::scale' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::setBorderColor' => ['bool', 'color'=>'ImagickPixel|string'], +'ImagickDraw::setClipPath' => ['bool', 'clip_mask'=>'string'], +'ImagickDraw::setClipRule' => ['bool', 'fill_rule'=>'int'], +'ImagickDraw::setClipUnits' => ['bool', 'clip_units'=>'int'], +'ImagickDraw::setDensity' => ['bool', 'density_string'=>'string'], +'ImagickDraw::setFillAlpha' => ['bool', 'opacity'=>'float'], +'ImagickDraw::setFillColor' => ['bool', 'fill_pixel'=>'ImagickPixel|string'], +'ImagickDraw::setFillOpacity' => ['bool', 'fillopacity'=>'float'], +'ImagickDraw::setFillPatternURL' => ['bool', 'fill_url'=>'string'], +'ImagickDraw::setFillRule' => ['bool', 'fill_rule'=>'int'], +'ImagickDraw::setFont' => ['bool', 'font_name'=>'string'], +'ImagickDraw::setFontFamily' => ['bool', 'font_family'=>'string'], +'ImagickDraw::setFontResolution' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickDraw::setFontSize' => ['bool', 'pointsize'=>'float'], +'ImagickDraw::setFontStretch' => ['bool', 'fontstretch'=>'int'], +'ImagickDraw::setFontStyle' => ['bool', 'style'=>'int'], +'ImagickDraw::setFontWeight' => ['bool', 'font_weight'=>'int'], +'ImagickDraw::setGravity' => ['bool', 'gravity'=>'int'], +'ImagickDraw::setOpacity' => ['void', 'opacity'=>'float'], +'ImagickDraw::setResolution' => ['void', 'x_resolution'=>'float', 'y_resolution'=>'float'], +'ImagickDraw::setStrokeAlpha' => ['bool', 'opacity'=>'float'], +'ImagickDraw::setStrokeAntialias' => ['bool', 'stroke_antialias'=>'bool'], +'ImagickDraw::setStrokeColor' => ['bool', 'stroke_pixel'=>'ImagickPixel|string'], +'ImagickDraw::setStrokeDashArray' => ['bool', 'dasharray'=>'list'], +'ImagickDraw::setStrokeDashOffset' => ['bool', 'dash_offset'=>'float'], +'ImagickDraw::setStrokeLineCap' => ['bool', 'linecap'=>'int'], +'ImagickDraw::setStrokeLineJoin' => ['bool', 'linejoin'=>'int'], +'ImagickDraw::setStrokeMiterLimit' => ['bool', 'miterlimit'=>'int'], +'ImagickDraw::setStrokeOpacity' => ['bool', 'stroke_opacity'=>'float'], +'ImagickDraw::setStrokePatternURL' => ['bool', 'stroke_url'=>'string'], +'ImagickDraw::setStrokeWidth' => ['bool', 'stroke_width'=>'float'], +'ImagickDraw::setTextAlignment' => ['bool', 'alignment'=>'int'], +'ImagickDraw::setTextAntialias' => ['bool', 'antialias'=>'bool'], +'ImagickDraw::setTextDecoration' => ['bool', 'decoration'=>'int'], +'ImagickDraw::setTextDirection' => ['bool', 'direction'=>'int'], +'ImagickDraw::setTextEncoding' => ['bool', 'encoding'=>'string'], +'ImagickDraw::setTextInterlineSpacing' => ['void', 'spacing'=>'float'], +'ImagickDraw::setTextInterwordSpacing' => ['void', 'spacing'=>'float'], +'ImagickDraw::setTextKerning' => ['void', 'kerning'=>'float'], +'ImagickDraw::setTextUnderColor' => ['bool', 'under_color'=>'ImagickPixel|string'], +'ImagickDraw::setVectorGraphics' => ['bool', 'xml'=>'string'], +'ImagickDraw::setViewbox' => ['bool', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int'], +'ImagickDraw::skewX' => ['bool', 'degrees'=>'float'], +'ImagickDraw::skewY' => ['bool', 'degrees'=>'float'], +'ImagickDraw::translate' => ['bool', 'x'=>'float', 'y'=>'float'], +'ImagickKernel::addKernel' => ['void', 'ImagickKernel'=>'ImagickKernel'], +'ImagickKernel::addUnityKernel' => ['void'], +'ImagickKernel::fromBuiltin' => ['ImagickKernel', 'kernelType'=>'string', 'kernelString'=>'string'], +'ImagickKernel::fromMatrix' => ['ImagickKernel', 'matrix'=>'list>', 'origin='=>'array'], +'ImagickKernel::getMatrix' => ['list>'], +'ImagickKernel::scale' => ['void'], +'ImagickKernel::separate' => ['ImagickKernel[]'], +'ImagickKernel::seperate' => ['void'], +'ImagickPixel::__construct' => ['void', 'color='=>'string'], +'ImagickPixel::clear' => ['bool'], +'ImagickPixel::clone' => ['void'], +'ImagickPixel::destroy' => ['bool'], +'ImagickPixel::getColor' => ['array{r: int|float, g: int|float, b: int|float, a: int|float}', 'normalized='=>'0|1|2'], +'ImagickPixel::getColorAsString' => ['string'], +'ImagickPixel::getColorCount' => ['int'], +'ImagickPixel::getColorQuantum' => ['mixed'], +'ImagickPixel::getColorValue' => ['float', 'color'=>'int'], +'ImagickPixel::getColorValueQuantum' => ['mixed'], +'ImagickPixel::getHSL' => ['array{hue: float, saturation: float, luminosity: float}'], +'ImagickPixel::getIndex' => ['int'], +'ImagickPixel::isPixelSimilar' => ['bool', 'color'=>'ImagickPixel', 'fuzz'=>'float'], +'ImagickPixel::isPixelSimilarQuantum' => ['bool', 'color'=>'string', 'fuzz='=>'string'], +'ImagickPixel::isSimilar' => ['bool', 'color'=>'ImagickPixel', 'fuzz'=>'float'], +'ImagickPixel::setColor' => ['bool', 'color'=>'string'], +'ImagickPixel::setcolorcount' => ['void', 'colorCount'=>'string'], +'ImagickPixel::setColorFromPixel' => ['bool', 'srcPixel'=>'ImagickPixel'], +'ImagickPixel::setColorValue' => ['bool', 'color'=>'int', 'value'=>'float'], +'ImagickPixel::setColorValueQuantum' => ['void', 'color'=>'int', 'value'=>'mixed'], +'ImagickPixel::setHSL' => ['bool', 'hue'=>'float', 'saturation'=>'float', 'luminosity'=>'float'], +'ImagickPixel::setIndex' => ['void', 'index'=>'int'], +'ImagickPixelIterator::__construct' => ['void', 'wand'=>'Imagick'], +'ImagickPixelIterator::clear' => ['bool'], +'ImagickPixelIterator::current' => ['mixed'], +'ImagickPixelIterator::destroy' => ['bool'], +'ImagickPixelIterator::getCurrentIteratorRow' => ['array'], +'ImagickPixelIterator::getIteratorRow' => ['int'], +'ImagickPixelIterator::getNextIteratorRow' => ['array'], +'ImagickPixelIterator::getpixeliterator' => ['', 'Imagick'=>'Imagick'], +'ImagickPixelIterator::getpixelregioniterator' => ['', 'Imagick'=>'Imagick', 'x'=>'', 'y'=>'', 'columns'=>'', 'rows'=>''], +'ImagickPixelIterator::getPreviousIteratorRow' => ['array'], +'ImagickPixelIterator::key' => ['int|string'], +'ImagickPixelIterator::newPixelIterator' => ['bool', 'wand'=>'Imagick'], +'ImagickPixelIterator::newPixelRegionIterator' => ['bool', 'wand'=>'Imagick', 'x'=>'int', 'y'=>'int', 'columns'=>'int', 'rows'=>'int'], +'ImagickPixelIterator::next' => ['void'], +'ImagickPixelIterator::resetIterator' => ['bool'], +'ImagickPixelIterator::rewind' => ['void'], +'ImagickPixelIterator::setIteratorFirstRow' => ['bool'], +'ImagickPixelIterator::setIteratorLastRow' => ['bool'], +'ImagickPixelIterator::setIteratorRow' => ['bool', 'row'=>'int'], +'ImagickPixelIterator::syncIterator' => ['bool'], +'ImagickPixelIterator::valid' => ['bool'], +'imap_8bit' => ['string|false', 'string'=>'string'], +'imap_alerts' => ['array|false'], +'imap_append' => ['bool', 'imap'=>'IMAP\Connection', 'folder'=>'string', 'message'=>'string', 'options='=>'?string', 'internal_date='=>'?string'], +'imap_base64' => ['string|false', 'string'=>'string'], +'imap_binary' => ['string|false', 'string'=>'string'], +'imap_body' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], +'imap_bodystruct' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string'], +'imap_check' => ['stdClass|false', 'imap'=>'IMAP\Connection'], +'imap_clearflag_full' => ['bool', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], +'imap_close' => ['bool', 'imap'=>'IMAP\Connection', 'flags='=>'int'], +'imap_create' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_createmailbox' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_delete' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'flags='=>'int'], +'imap_deletemailbox' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_errors' => ['array|false'], +'imap_expunge' => ['bool', 'imap'=>'IMAP\Connection'], +'imap_fetch_overview' => ['array|false', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flags='=>'int'], +'imap_fetchbody' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], +'imap_fetchheader' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], +'imap_fetchmime' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], +'imap_fetchstructure' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], +'imap_fetchtext' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], +'imap_gc' => ['bool', 'imap'=>'IMAP\Connection', 'flags'=>'int'], +'imap_get_quota' => ['array|false', 'imap'=>'IMAP\Connection', 'quota_root'=>'string'], +'imap_get_quotaroot' => ['array|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_getacl' => ['array|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_getmailboxes' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_getsubscribed' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_header' => ['stdClass|false', 'stream_id'=>'resource', 'msg_no'=>'int', 'from_length='=>'int', 'subject_length='=>'int', 'default_host='=>'string'], +'imap_headerinfo' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int'], +'imap_headers' => ['array|false', 'imap'=>'IMAP\Connection'], +'imap_is_open' => ['bool', 'imap'=>'IMAP\Connection'], +'imap_last_error' => ['string|false'], +'imap_list' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_listmailbox' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_listscan' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], +'imap_listsubscribed' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_lsub' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], +'imap_mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'?string', 'cc='=>'?string', 'bcc='=>'?string', 'return_path='=>'?string'], +'imap_mail_compose' => ['string|false', 'envelope'=>'array', 'bodies'=>'array'], +'imap_mail_copy' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], +'imap_mail_move' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], +'imap_mailboxmsginfo' => ['stdClass', 'imap'=>'IMAP\Connection'], +'imap_mime_header_decode' => ['array|false', 'string'=>'string'], +'imap_msgno' => ['int', 'imap'=>'IMAP\Connection', 'message_uid'=>'int'], +'imap_mutf7_to_utf8' => ['string|false', 'string'=>'string'], +'imap_num_msg' => ['int|false', 'imap'=>'IMAP\Connection'], +'imap_num_recent' => ['int', 'imap'=>'IMAP\Connection'], +'imap_open' => ['IMAP\Connection|false', 'mailbox'=>'string', 'user'=>'string', 'password'=>'string', 'flags='=>'int', 'retries='=>'int', 'options='=>'array'], +'imap_ping' => ['bool', 'imap'=>'IMAP\Connection'], +'imap_qprint' => ['string|false', 'string'=>'string'], +'imap_rename' => ['bool', 'imap'=>'IMAP\Connection', 'from'=>'string', 'to'=>'string'], +'imap_renamemailbox' => ['bool', 'imap'=>'IMAP\Connection', 'from'=>'string', 'to'=>'string'], +'imap_reopen' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'flags='=>'int', 'retries='=>'int'], +'imap_rfc822_parse_adrlist' => ['array', 'string'=>'string', 'default_hostname'=>'string'], +'imap_rfc822_parse_headers' => ['stdClass', 'headers'=>'string', 'default_hostname='=>'string'], +'imap_rfc822_write_address' => ['string|false', 'mailbox'=>'string', 'hostname'=>'string', 'personal'=>'string'], +'imap_savebody' => ['bool', 'imap'=>'IMAP\Connection', 'file'=>'string|resource', 'message_num'=>'int', 'section='=>'string', 'flags='=>'int'], +'imap_scan' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], +'imap_scanmailbox' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], +'imap_search' => ['array|false', 'imap'=>'IMAP\Connection', 'criteria'=>'string', 'flags='=>'int', 'charset='=>'string'], +'imap_set_quota' => ['bool', 'imap'=>'IMAP\Connection', 'quota_root'=>'string', 'mailbox_size'=>'int'], +'imap_setacl' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'user_id'=>'string', 'rights'=>'string'], +'imap_setflag_full' => ['bool', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], +'imap_sort' => ['array|false', 'imap'=>'IMAP\Connection', 'criteria'=>'int', 'reverse'=>'bool', 'flags='=>'int', 'search_criteria='=>'?string', 'charset='=>'?string'], +'imap_status' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'flags'=>'int'], +'imap_subscribe' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_thread' => ['array|false', 'imap'=>'IMAP\Connection', 'flags='=>'int'], +'imap_timeout' => ['int|bool', 'timeout_type'=>'int', 'timeout='=>'int'], +'imap_uid' => ['int|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int'], +'imap_undelete' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'flags='=>'int'], +'imap_unsubscribe' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], +'imap_utf7_decode' => ['string|false', 'string'=>'string'], +'imap_utf7_encode' => ['string', 'string'=>'string'], +'imap_utf8' => ['string', 'mime_encoded_text'=>'string'], +'imap_utf8_to_mutf7' => ['string|false', 'string'=>'string'], +'implode' => ['string', 'separator'=>'string', 'array'=>'array'], +'implode\'1' => ['string', 'separator'=>'array'], +'import_request_variables' => ['bool', 'types'=>'string', 'prefix='=>'string'], +'in_array' => ['bool', 'needle'=>'mixed', 'haystack'=>'array', 'strict='=>'bool'], +'inclued_get_data' => ['array'], +'inet_ntop' => ['string|false', 'ip'=>'string'], +'inet_pton' => ['string|false', 'ip'=>'string'], +'InfiniteIterator::__construct' => ['void', 'iterator'=>'Iterator'], +'InfiniteIterator::current' => ['mixed'], +'InfiniteIterator::getInnerIterator' => ['Iterator'], +'InfiniteIterator::key' => ['bool|float|int|string'], +'InfiniteIterator::next' => ['void'], +'InfiniteIterator::rewind' => ['void'], +'InfiniteIterator::valid' => ['bool'], +'inflate_add' => ['string|false', 'context'=>'InflateContext', 'data'=>'string', 'flush_mode='=>'int'], +'inflate_get_read_len' => ['int', 'context'=>'InflateContext'], +'inflate_get_status' => ['int', 'context'=>'InflateContext'], +'inflate_init' => ['InflateContext|false', 'encoding'=>'int', 'options='=>'array'], +'ingres_autocommit' => ['bool', 'link'=>'resource'], +'ingres_autocommit_state' => ['bool', 'link'=>'resource'], +'ingres_charset' => ['string', 'link'=>'resource'], +'ingres_close' => ['bool', 'link'=>'resource'], +'ingres_commit' => ['bool', 'link'=>'resource'], +'ingres_connect' => ['resource', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'options='=>'array'], +'ingres_cursor' => ['string', 'result'=>'resource'], +'ingres_errno' => ['int', 'link='=>'resource'], +'ingres_error' => ['string', 'link='=>'resource'], +'ingres_errsqlstate' => ['string', 'link='=>'resource'], +'ingres_escape_string' => ['string', 'link'=>'resource', 'source_string'=>'string'], +'ingres_execute' => ['bool', 'result'=>'resource', 'params='=>'array', 'types='=>'string'], +'ingres_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], +'ingres_fetch_assoc' => ['array', 'result'=>'resource'], +'ingres_fetch_object' => ['object', 'result'=>'resource', 'result_type='=>'int'], +'ingres_fetch_proc_return' => ['int', 'result'=>'resource'], +'ingres_fetch_row' => ['array', 'result'=>'resource'], +'ingres_field_length' => ['int', 'result'=>'resource', 'index'=>'int'], +'ingres_field_name' => ['string', 'result'=>'resource', 'index'=>'int'], +'ingres_field_nullable' => ['bool', 'result'=>'resource', 'index'=>'int'], +'ingres_field_precision' => ['int', 'result'=>'resource', 'index'=>'int'], +'ingres_field_scale' => ['int', 'result'=>'resource', 'index'=>'int'], +'ingres_field_type' => ['string', 'result'=>'resource', 'index'=>'int'], +'ingres_free_result' => ['bool', 'result'=>'resource'], +'ingres_next_error' => ['bool', 'link='=>'resource'], +'ingres_num_fields' => ['int', 'result'=>'resource'], +'ingres_num_rows' => ['int', 'result'=>'resource'], +'ingres_pconnect' => ['resource', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'options='=>'array'], +'ingres_prepare' => ['mixed', 'link'=>'resource', 'query'=>'string'], +'ingres_query' => ['mixed', 'link'=>'resource', 'query'=>'string', 'params='=>'array', 'types='=>'string'], +'ingres_result_seek' => ['bool', 'result'=>'resource', 'position'=>'int'], +'ingres_rollback' => ['bool', 'link'=>'resource'], +'ingres_set_environment' => ['bool', 'link'=>'resource', 'options'=>'array'], +'ingres_unbuffered_query' => ['mixed', 'link'=>'resource', 'query'=>'string', 'params='=>'array', 'types='=>'string'], +'ini_alter' => ['string|false', 'option'=>'string', 'value'=>'string|int|float|bool|null'], +'ini_get' => ['string|false', 'option'=>'string'], +'ini_get_all' => ['array|false', 'extension='=>'?string', 'details='=>'bool'], +'ini_restore' => ['void', 'option'=>'string'], +'ini_parse_quantity' => ['int', 'shorthand'=>'non-empty-string'], +'ini_set' => ['string|false', 'option'=>'string', 'value'=>'string|int|float|bool|null'], +'inotify_add_watch' => ['int', 'inotify_instance'=>'resource', 'pathname'=>'string', 'mask'=>'int'], +'inotify_init' => ['resource|false'], +'inotify_queue_len' => ['int', 'inotify_instance'=>'resource'], +'inotify_read' => ['array|false', 'inotify_instance'=>'resource'], +'inotify_rm_watch' => ['bool', 'inotify_instance'=>'resource', 'watch_descriptor'=>'int'], +'intdiv' => ['int', 'num1'=>'int', 'num2'=>'int'], +'interface_exists' => ['bool', 'interface'=>'string', 'autoload='=>'bool'], +'intl_error_name' => ['string', 'errorCode'=>'int'], +'intl_get_error_code' => ['int'], +'intl_get_error_message' => ['string'], +'intl_is_failure' => ['bool', 'errorCode'=>'int'], +'IntlBreakIterator::__construct' => ['void'], +'IntlBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], +'IntlBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlBreakIterator::current' => ['int'], +'IntlBreakIterator::first' => ['int'], +'IntlBreakIterator::following' => ['int', 'offset'=>'int'], +'IntlBreakIterator::getErrorCode' => ['int'], +'IntlBreakIterator::getErrorMessage' => ['string'], +'IntlBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], +'IntlBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'int'], +'IntlBreakIterator::getText' => ['?string'], +'IntlBreakIterator::isBoundary' => ['bool', 'offset'=>'int'], +'IntlBreakIterator::last' => ['int'], +'IntlBreakIterator::next' => ['int', 'offset='=>'?int'], +'IntlBreakIterator::preceding' => ['int', 'offset'=>'int'], +'IntlBreakIterator::previous' => ['int'], +'IntlBreakIterator::setText' => ['?bool', 'text'=>'string'], +'intlcal_add' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int', 'value'=>'int'], +'intlcal_after' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], +'intlcal_before' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], +'intlcal_clear' => ['bool', 'calendar'=>'IntlCalendar', 'field='=>'?int'], +'intlcal_create_instance' => ['?IntlCalendar', 'timezone='=>'mixed', 'locale='=>'?string'], +'intlcal_equals' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], +'intlcal_field_difference' => ['int', 'calendar'=>'IntlCalendar', 'timestamp'=>'float', 'field'=>'int'], +'intlcal_from_date_time' => ['IntlCalendar', 'datetime'=>'DateTime|string'], +'intlcal_get' => ['int|false', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_actual_maximum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_actual_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_available_locales' => ['array'], +'intlcal_get_day_of_week_type' => ['int', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'int'], +'intlcal_get_first_day_of_week' => ['int', 'calendar'=>'IntlCalendar'], +'intlcal_get_greatest_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_keyword_values_for_locale' => ['IntlIterator|false', 'keyword'=>'string', 'locale'=>'string', 'onlyCommon'=>'bool'], +'intlcal_get_least_maximum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_locale' => ['string', 'calendar'=>'IntlCalendar', 'type'=>'int'], +'intlcal_get_maximum' => ['int|false', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_minimal_days_in_first_week' => ['int', 'calendar'=>'IntlCalendar'], +'intlcal_get_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_get_now' => ['float'], +'intlcal_get_repeated_wall_time_option' => ['int', 'calendar'=>'IntlCalendar'], +'intlcal_get_skipped_wall_time_option' => ['int', 'calendar'=>'IntlCalendar'], +'intlcal_get_time' => ['float', 'calendar'=>'IntlCalendar'], +'intlcal_get_time_zone' => ['IntlTimeZone', 'calendar'=>'IntlCalendar'], +'intlcal_get_type' => ['string', 'calendar'=>'IntlCalendar'], +'intlcal_get_weekend_transition' => ['int', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'string'], +'intlcal_in_daylight_time' => ['bool', 'calendar'=>'IntlCalendar'], +'intlcal_is_equivalent_to' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], +'intlcal_is_lenient' => ['bool', 'calendar'=>'IntlCalendar'], +'intlcal_is_set' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int'], +'intlcal_is_weekend' => ['bool', 'calendar'=>'IntlCalendar', 'timestamp='=>'?float'], +'intlcal_roll' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int', 'value'=>'mixed'], +'intlcal_set' => ['bool', 'calendar'=>'IntlCalendar', 'year'=>'int', 'month'=>'int'], +'intlcal_set\'1' => ['bool', 'calendar'=>'IntlCalendar', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], +'intlcal_set_first_day_of_week' => ['bool', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'int'], +'intlcal_set_lenient' => ['bool', 'calendar'=>'IntlCalendar', 'lenient'=>'bool'], +'intlcal_set_repeated_wall_time_option' => ['bool', 'calendar'=>'IntlCalendar', 'option'=>'int'], +'intlcal_set_skipped_wall_time_option' => ['bool', 'calendar'=>'IntlCalendar', 'option'=>'int'], +'intlcal_set_time' => ['bool', 'calendar'=>'IntlCalendar', 'timestamp'=>'float'], +'intlcal_set_time_zone' => ['bool', 'calendar'=>'IntlCalendar', 'timezone'=>'mixed'], +'intlcal_to_date_time' => ['DateTime|false', 'calendar'=>'IntlCalendar'], +'IntlCalendar::__construct' => ['void'], +'IntlCalendar::add' => ['bool', 'field'=>'int', 'amount'=>'int'], +'IntlCalendar::after' => ['bool', 'other'=>'IntlCalendar'], +'IntlCalendar::before' => ['bool', 'other'=>'IntlCalendar'], +'IntlCalendar::clear' => ['bool', 'field='=>'?int'], +'IntlCalendar::createInstance' => ['IntlCalendar', 'timeZone='=>'mixed', 'locale='=>'string'], +'IntlCalendar::equals' => ['bool', 'other'=>'IntlCalendar'], +'IntlCalendar::fieldDifference' => ['int', 'when'=>'float', 'field'=>'int'], +'IntlCalendar::fromDateTime' => ['IntlCalendar', 'dateTime'=>'DateTime|string'], +'IntlCalendar::get' => ['int', 'field'=>'int'], +'IntlCalendar::getActualMaximum' => ['int', 'field'=>'int'], +'IntlCalendar::getActualMinimum' => ['int', 'field'=>'int'], +'IntlCalendar::getAvailableLocales' => ['array'], +'IntlCalendar::getDayOfWeekType' => ['int', 'dayOfWeek'=>'int'], +'IntlCalendar::getErrorCode' => ['int'], +'IntlCalendar::getErrorMessage' => ['string'], +'IntlCalendar::getFirstDayOfWeek' => ['int'], +'IntlCalendar::getGreatestMinimum' => ['int', 'field'=>'int'], +'IntlCalendar::getKeywordValuesForLocale' => ['Iterator|false', 'key'=>'string', 'locale'=>'string', 'commonlyUsed'=>'bool'], +'IntlCalendar::getLeastMaximum' => ['int', 'field'=>'int'], +'IntlCalendar::getLocale' => ['string', 'localeType'=>'int'], +'IntlCalendar::getMaximum' => ['int|false', 'field'=>'int'], +'IntlCalendar::getMinimalDaysInFirstWeek' => ['int'], +'IntlCalendar::getMinimum' => ['int', 'field'=>'int'], +'IntlCalendar::getNow' => ['float'], +'IntlCalendar::getRepeatedWallTimeOption' => ['int'], +'IntlCalendar::getSkippedWallTimeOption' => ['int'], +'IntlCalendar::getTime' => ['float'], +'IntlCalendar::getTimeZone' => ['IntlTimeZone'], +'IntlCalendar::getType' => ['string'], +'IntlCalendar::getWeekendTransition' => ['int', 'dayOfWeek'=>'string'], +'IntlCalendar::inDaylightTime' => ['bool'], +'IntlCalendar::isEquivalentTo' => ['bool', 'other'=>'IntlCalendar'], +'IntlCalendar::isLenient' => ['bool'], +'IntlCalendar::isSet' => ['bool', 'field'=>'int'], +'IntlCalendar::isWeekend' => ['bool', 'date='=>'?float'], +'IntlCalendar::roll' => ['bool', 'field'=>'int', 'amountOrUpOrDown'=>'mixed'], +'IntlCalendar::set' => ['bool', 'field'=>'int', 'value'=>'int'], +'IntlCalendar::set\'1' => ['bool', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], +'IntlCalendar::setFirstDayOfWeek' => ['bool', 'dayOfWeek'=>'int'], +'IntlCalendar::setLenient' => ['bool', 'isLenient'=>'string'], +'IntlCalendar::setMinimalDaysInFirstWeek' => ['bool', 'minimalDays'=>'int'], +'IntlCalendar::setRepeatedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], +'IntlCalendar::setSkippedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], +'IntlCalendar::setTime' => ['bool', 'date'=>'float'], +'IntlCalendar::setTimeZone' => ['bool', 'timeZone'=>'mixed'], +'IntlCalendar::toDateTime' => ['DateTime|false'], +'IntlChar::charAge' => ['array', 'char'=>'int|string'], +'IntlChar::charDigitValue' => ['int', 'codepoint'=>'mixed'], +'IntlChar::charDirection' => ['int', 'codepoint'=>'mixed'], +'IntlChar::charFromName' => ['?int', 'name'=>'string', 'namechoice='=>'int'], +'IntlChar::charMirror' => ['mixed', 'codepoint'=>'mixed'], +'IntlChar::charName' => ['string', 'char'=>'int|string', 'namechoice='=>'int'], +'IntlChar::charType' => ['int', 'codepoint'=>'mixed'], +'IntlChar::chr' => ['string', 'codepoint'=>'mixed'], +'IntlChar::digit' => ['int|false', 'char'=>'int|string', 'radix='=>'int'], +'IntlChar::enumCharNames' => ['void', 'start'=>'mixed', 'limit'=>'mixed', 'callback'=>'callable', 'nameChoice='=>'int'], +'IntlChar::enumCharTypes' => ['void', 'cb='=>'callable'], +'IntlChar::foldCase' => ['int|string', 'char'=>'int|string', 'options='=>'int'], +'IntlChar::forDigit' => ['int', 'digit'=>'int', 'radix'=>'int'], +'IntlChar::getBidiPairedBracket' => ['mixed', 'codepoint'=>'mixed'], +'IntlChar::getBlockCode' => ['int', 'char'=>'int|string'], +'IntlChar::getCombiningClass' => ['int', 'codepoint'=>'mixed'], +'IntlChar::getFC_NFKC_Closure' => ['string', 'char'=>'int|string'], +'IntlChar::getIntPropertyMaxValue' => ['int', 'property'=>'int'], +'IntlChar::getIntPropertyMinValue' => ['int', 'property'=>'int'], +'IntlChar::getIntPropertyValue' => ['int', 'char'=>'int|string', 'property'=>'int'], +'IntlChar::getNumericValue' => ['float', 'char'=>'int|string'], +'IntlChar::getPropertyEnum' => ['int', 'alias'=>'string'], +'IntlChar::getPropertyName' => ['string|false', 'property'=>'int', 'namechoice='=>'int'], +'IntlChar::getPropertyValueEnum' => ['int', 'property'=>'int', 'name'=>'string'], +'IntlChar::getPropertyValueName' => ['string|false', 'prop'=>'int', 'value'=>'int', 'namechoice='=>'int'], +'IntlChar::getUnicodeVersion' => ['array'], +'IntlChar::hasBinaryProperty' => ['bool', 'char'=>'int|string', 'property'=>'int'], +'IntlChar::isalnum' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isalpha' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isbase' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isblank' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::iscntrl' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isdefined' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isdigit' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isgraph' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isIDIgnorable' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isIDPart' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isIDStart' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isISOControl' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isJavaIDPart' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isJavaIDStart' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isJavaSpaceChar' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::islower' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isMirrored' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isprint' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::ispunct' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isspace' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::istitle' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isUAlphabetic' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isULowercase' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isupper' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isUUppercase' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isUWhiteSpace' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isWhitespace' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::isxdigit' => ['bool', 'codepoint'=>'mixed'], +'IntlChar::ord' => ['int', 'character'=>'mixed'], +'IntlChar::tolower' => ['mixed', 'codepoint'=>'mixed'], +'IntlChar::totitle' => ['mixed', 'codepoint'=>'mixed'], +'IntlChar::toupper' => ['mixed', 'codepoint'=>'mixed'], +'IntlCodePointBreakIterator::__construct' => ['void'], +'IntlCodePointBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlCodePointBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], +'IntlCodePointBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlCodePointBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlCodePointBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlCodePointBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlCodePointBreakIterator::current' => ['int'], +'IntlCodePointBreakIterator::first' => ['int'], +'IntlCodePointBreakIterator::following' => ['int', 'offset'=>'string'], +'IntlCodePointBreakIterator::getErrorCode' => ['int'], +'IntlCodePointBreakIterator::getErrorMessage' => ['string'], +'IntlCodePointBreakIterator::getLastCodePoint' => ['int'], +'IntlCodePointBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], +'IntlCodePointBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'string'], +'IntlCodePointBreakIterator::getText' => ['?string'], +'IntlCodePointBreakIterator::isBoundary' => ['bool', 'offset'=>'string'], +'IntlCodePointBreakIterator::last' => ['int'], +'IntlCodePointBreakIterator::next' => ['int', 'offset='=>'string'], +'IntlCodePointBreakIterator::preceding' => ['int', 'offset'=>'string'], +'IntlCodePointBreakIterator::previous' => ['int'], +'IntlCodePointBreakIterator::setText' => ['?bool', 'text'=>'string'], +'IntlDateFormatter::__construct' => ['void', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], +'IntlDateFormatter::create' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], +'IntlDateFormatter::format' => ['string|false', 'datetime'=>'IntlCalendar|DateTimeInterface|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], +'IntlDateFormatter::formatObject' => ['string|false', 'datetime'=>'IntlCalendar|DateTimeInterface', 'format='=>'array{0: int, 1: int}|int|string|null', 'locale='=>'?string'], +'IntlDateFormatter::getCalendar' => ['int|false'], +'IntlDateFormatter::getCalendarObject' => ['IntlCalendar|false|null'], +'IntlDateFormatter::getDateType' => ['int|false'], +'IntlDateFormatter::getErrorCode' => ['int'], +'IntlDateFormatter::getErrorMessage' => ['string'], +'IntlDateFormatter::getLocale' => ['string|false', 'type='=>'int'], +'IntlDateFormatter::getPattern' => ['string|false'], +'IntlDateFormatter::getTimeType' => ['int|false'], +'IntlDateFormatter::getTimeZone' => ['IntlTimeZone|false'], +'IntlDateFormatter::getTimeZoneId' => ['string|false'], +'IntlDateFormatter::isLenient' => ['bool'], +'IntlDateFormatter::localtime' => ['array|false', 'string'=>'string', '&rw_offset='=>'int'], +'IntlDateFormatter::parse' => ['int|float|false', 'string'=>'string', '&rw_offset='=>'int'], +'IntlDateFormatter::setCalendar' => ['bool', 'calendar'=>'IntlCalendar|int|null'], +'IntlDateFormatter::setLenient' => ['void', 'lenient'=>'bool'], +'IntlDateFormatter::setPattern' => ['bool', 'pattern'=>'string'], +'IntlDateFormatter::setTimeZone' => ['null|false', 'timezone'=>'IntlTimeZone|DateTimeZone|string|null'], +'IntlException::__clone' => ['void'], +'IntlException::__construct' => ['void'], +'IntlException::__toString' => ['string'], +'IntlException::__wakeup' => ['void'], +'IntlException::getCode' => ['int'], +'IntlException::getFile' => ['string'], +'IntlException::getLine' => ['int'], +'IntlException::getMessage' => ['string'], +'IntlException::getPrevious' => ['?Throwable'], +'IntlException::getTrace' => ['list\',args?:array}>'], +'IntlException::getTraceAsString' => ['string'], +'intlgregcal_create_instance' => ['IntlGregorianCalendar', 'timezoneOrYear='=>'mixed', 'localeOrMonth='=>'string'], +'intlgregcal_get_gregorian_change' => ['float', 'calendar'=>'IntlGregorianCalendar'], +'intlgregcal_is_leap_year' => ['bool', 'calendar'=>'int'], +'intlgregcal_set_gregorian_change' => ['bool', 'calendar'=>'IntlGregorianCalendar', 'timestamp'=>'float'], +'IntlGregorianCalendar::__construct' => ['void'], +'IntlGregorianCalendar::add' => ['bool', 'field'=>'int', 'amount'=>'int'], +'IntlGregorianCalendar::after' => ['bool', 'other'=>'IntlCalendar'], +'IntlGregorianCalendar::before' => ['bool', 'other'=>'IntlCalendar'], +'IntlGregorianCalendar::clear' => ['bool', 'field='=>'?int'], +'IntlGregorianCalendar::createInstance' => ['IntlGregorianCalendar', 'timeZone='=>'mixed', 'locale='=>'string'], +'IntlGregorianCalendar::equals' => ['bool', 'other'=>'IntlCalendar'], +'IntlGregorianCalendar::fieldDifference' => ['int', 'when'=>'float', 'field'=>'int'], +'IntlGregorianCalendar::fromDateTime' => ['IntlCalendar', 'dateTime'=>'DateTime|string'], +'IntlGregorianCalendar::get' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getActualMaximum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getActualMinimum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getAvailableLocales' => ['array'], +'IntlGregorianCalendar::getDayOfWeekType' => ['int', 'dayOfWeek'=>'int'], +'IntlGregorianCalendar::getErrorCode' => ['int'], +'IntlGregorianCalendar::getErrorMessage' => ['string'], +'IntlGregorianCalendar::getFirstDayOfWeek' => ['int'], +'IntlGregorianCalendar::getGreatestMinimum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getGregorianChange' => ['float'], +'IntlGregorianCalendar::getKeywordValuesForLocale' => ['Iterator', 'key'=>'string', 'locale'=>'string', 'commonlyUsed'=>'bool'], +'IntlGregorianCalendar::getLeastMaximum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getLocale' => ['string', 'localeType'=>'int'], +'IntlGregorianCalendar::getMaximum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getMinimalDaysInFirstWeek' => ['int'], +'IntlGregorianCalendar::getMinimum' => ['int', 'field'=>'int'], +'IntlGregorianCalendar::getNow' => ['float'], +'IntlGregorianCalendar::getRepeatedWallTimeOption' => ['int'], +'IntlGregorianCalendar::getSkippedWallTimeOption' => ['int'], +'IntlGregorianCalendar::getTime' => ['float'], +'IntlGregorianCalendar::getTimeZone' => ['IntlTimeZone'], +'IntlGregorianCalendar::getType' => ['string'], +'IntlGregorianCalendar::getWeekendTransition' => ['int', 'dayOfWeek'=>'string'], +'IntlGregorianCalendar::inDaylightTime' => ['bool'], +'IntlGregorianCalendar::isEquivalentTo' => ['bool', 'other'=>'IntlCalendar'], +'IntlGregorianCalendar::isLeapYear' => ['bool', 'year'=>'int'], +'IntlGregorianCalendar::isLenient' => ['bool'], +'IntlGregorianCalendar::isSet' => ['bool', 'field'=>'int'], +'IntlGregorianCalendar::isWeekend' => ['bool', 'date='=>'float'], +'IntlGregorianCalendar::roll' => ['bool', 'field'=>'int', 'amountOrUpOrDown'=>'mixed'], +'IntlGregorianCalendar::set' => ['bool', 'field'=>'int', 'value'=>'int'], +'IntlGregorianCalendar::set\'1' => ['bool', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], +'IntlGregorianCalendar::setFirstDayOfWeek' => ['bool', 'dayOfWeek'=>'int'], +'IntlGregorianCalendar::setGregorianChange' => ['bool', 'date'=>'float'], +'IntlGregorianCalendar::setLenient' => ['bool', 'isLenient'=>'string'], +'IntlGregorianCalendar::setMinimalDaysInFirstWeek' => ['bool', 'minimalDays'=>'int'], +'IntlGregorianCalendar::setRepeatedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], +'IntlGregorianCalendar::setSkippedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], +'IntlGregorianCalendar::setTime' => ['bool', 'date'=>'float'], +'IntlGregorianCalendar::setTimeZone' => ['bool', 'timeZone'=>'mixed'], +'IntlGregorianCalendar::toDateTime' => ['DateTime'], +'IntlIterator::__construct' => ['void'], +'IntlIterator::current' => ['mixed'], +'IntlIterator::key' => ['string'], +'IntlIterator::next' => ['void'], +'IntlIterator::rewind' => ['void'], +'IntlIterator::valid' => ['bool'], +'IntlPartsIterator::getBreakIterator' => ['IntlBreakIterator'], +'IntlRuleBasedBreakIterator::__construct' => ['void', 'rules'=>'string', 'areCompiled='=>'string'], +'IntlRuleBasedBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlRuleBasedBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], +'IntlRuleBasedBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlRuleBasedBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlRuleBasedBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlRuleBasedBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], +'IntlRuleBasedBreakIterator::current' => ['int'], +'IntlRuleBasedBreakIterator::first' => ['int'], +'IntlRuleBasedBreakIterator::following' => ['int', 'offset'=>'int'], +'IntlRuleBasedBreakIterator::getBinaryRules' => ['string'], +'IntlRuleBasedBreakIterator::getErrorCode' => ['int'], +'IntlRuleBasedBreakIterator::getErrorMessage' => ['string'], +'IntlRuleBasedBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], +'IntlRuleBasedBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'int'], +'IntlRuleBasedBreakIterator::getRules' => ['string'], +'IntlRuleBasedBreakIterator::getRuleStatus' => ['int'], +'IntlRuleBasedBreakIterator::getRuleStatusVec' => ['array'], +'IntlRuleBasedBreakIterator::getText' => ['?string'], +'IntlRuleBasedBreakIterator::isBoundary' => ['bool', 'offset'=>'int'], +'IntlRuleBasedBreakIterator::last' => ['int'], +'IntlRuleBasedBreakIterator::next' => ['int', 'offset='=>'?int'], +'IntlRuleBasedBreakIterator::preceding' => ['int', 'offset'=>'int'], +'IntlRuleBasedBreakIterator::previous' => ['int'], +'IntlRuleBasedBreakIterator::setText' => ['?bool', 'text'=>'string'], +'IntlTimeZone::countEquivalentIDs' => ['int|false', 'zoneId'=>'string'], +'IntlTimeZone::createDefault' => ['IntlTimeZone'], +'IntlTimeZone::createEnumeration' => ['IntlIterator|false', 'countryOrRawOffset='=>'mixed'], +'IntlTimeZone::createTimeZone' => ['IntlTimeZone|false', 'zoneId'=>'string'], +'IntlTimeZone::createTimeZoneIDEnumeration' => ['IntlIterator|false', 'zoneType'=>'int', 'region='=>'string', 'rawOffset='=>'int'], +'IntlTimeZone::fromDateTimeZone' => ['?IntlTimeZone', 'zoneId'=>'DateTimeZone'], +'IntlTimeZone::getCanonicalID' => ['string|false', 'zoneId'=>'string', '&w_isSystemID='=>'bool'], +'IntlTimeZone::getDisplayName' => ['string|false', 'isDaylight='=>'bool', 'style='=>'int', 'locale='=>'string'], +'IntlTimeZone::getDSTSavings' => ['int'], +'IntlTimeZone::getEquivalentID' => ['string|false', 'zoneId'=>'string', 'index'=>'int'], +'IntlTimeZone::getErrorCode' => ['int'], +'IntlTimeZone::getErrorMessage' => ['string'], +'IntlTimeZone::getGMT' => ['IntlTimeZone'], +'IntlTimeZone::getID' => ['string'], +'IntlTimeZone::getIDForWindowsID' => ['string', 'timezone'=>'string', 'region='=>'string'], +'IntlTimeZone::getOffset' => ['int', 'date'=>'float', 'local'=>'bool', '&w_rawOffset'=>'int', '&w_dstOffset'=>'int'], +'IntlTimeZone::getRawOffset' => ['int'], +'IntlTimeZone::getRegion' => ['string|false', 'zoneId'=>'string'], +'IntlTimeZone::getTZDataVersion' => ['string'], +'IntlTimeZone::getUnknown' => ['IntlTimeZone'], +'IntlTimeZone::getWindowsID' => ['string|false', 'timezone'=>'string'], +'IntlTimeZone::hasSameRules' => ['bool', 'otherTimeZone'=>'IntlTimeZone'], +'IntlTimeZone::toDateTimeZone' => ['DateTimeZone|false'], +'IntlTimeZone::useDaylightTime' => ['bool'], +'intltz_count_equivalent_ids' => ['int', 'timezoneId'=>'string'], +'intltz_create_enumeration' => ['IntlIterator', 'countryOrRawOffset'=>'mixed'], +'intltz_create_time_zone' => ['?IntlTimeZone', 'timezoneId'=>'string'], +'intltz_from_date_time_zone' => ['?IntlTimeZone', 'timezone'=>'DateTimeZone'], +'intltz_get_canonical_id' => ['string', 'timezoneId'=>'string', '&isSystemId'=>'bool'], +'intltz_get_display_name' => ['string', 'timezone'=>'IntlTimeZone', 'dst'=>'bool', 'style'=>'int', 'locale'=>'string'], +'intltz_get_dst_savings' => ['int', 'timezone'=>'IntlTimeZone'], +'intltz_get_equivalent_id' => ['string', 'timezoneId'=>'string', 'offset'=>'int'], +'intltz_get_error_code' => ['int', 'timezone'=>'IntlTimeZone'], +'intltz_get_error_message' => ['string', 'timezone'=>'IntlTimeZone'], +'intltz_get_id' => ['string', 'timezone'=>'IntlTimeZone'], +'intltz_get_offset' => ['bool', 'timezone'=>'IntlTimeZone', 'timestamp'=>'float', 'local'=>'bool', '&rawOffset'=>'int', '&dstOffset'=>'int'], +'intltz_get_raw_offset' => ['int', 'timezone'=>'IntlTimeZone'], +'intltz_get_tz_data_version' => ['string', 'object'=>'IntlTimeZone'], +'intltz_getGMT' => ['IntlTimeZone'], +'intltz_has_same_rules' => ['bool', 'timezone'=>'IntlTimeZone', 'other'=>'IntlTimeZone'], +'intltz_to_date_time_zone' => ['DateTimeZone', 'timezone'=>'IntlTimeZone'], +'intltz_use_daylight_time' => ['bool', 'timezone'=>'IntlTimeZone'], +'intlz_create_default' => ['IntlTimeZone'], +'intval' => ['int', 'value'=>'mixed', 'base='=>'int'], +'InvalidArgumentException::__clone' => ['void'], +'InvalidArgumentException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'InvalidArgumentException::__toString' => ['string'], +'InvalidArgumentException::getCode' => ['int'], +'InvalidArgumentException::getFile' => ['string'], +'InvalidArgumentException::getLine' => ['int'], +'InvalidArgumentException::getMessage' => ['string'], +'InvalidArgumentException::getPrevious' => ['?Throwable'], +'InvalidArgumentException::getTrace' => ['list\',args?:array}>'], +'InvalidArgumentException::getTraceAsString' => ['string'], +'ip2long' => ['int|false', 'ip'=>'string'], +'iptcembed' => ['string|bool', 'iptc_data'=>'string', 'filename'=>'string', 'spool='=>'int'], +'iptcparse' => ['array|false', 'iptc_block'=>'string'], +'is_a' => ['bool', 'object_or_class'=>'mixed', 'class'=>'string', 'allow_string='=>'bool'], +'is_array' => ['bool', 'value'=>'mixed'], +'is_bool' => ['bool', 'value'=>'mixed'], +'is_callable' => ['bool', 'value'=>'callable|mixed', 'syntax_only='=>'bool', '&w_callable_name='=>'string'], +'is_countable' => ['bool', 'value'=>'mixed'], +'is_dir' => ['bool', 'filename'=>'string'], +'is_double' => ['bool', 'value'=>'mixed'], +'is_executable' => ['bool', 'filename'=>'string'], +'is_file' => ['bool', 'filename'=>'string'], +'is_finite' => ['bool', 'num'=>'float'], +'is_float' => ['bool', 'value'=>'mixed'], +'is_infinite' => ['bool', 'num'=>'float'], +'is_int' => ['bool', 'value'=>'mixed'], +'is_integer' => ['bool', 'value'=>'mixed'], +'is_iterable' => ['bool', 'value'=>'mixed'], +'is_link' => ['bool', 'filename'=>'string'], +'is_long' => ['bool', 'value'=>'mixed'], +'is_nan' => ['bool', 'num'=>'float'], +'is_null' => ['bool', 'value'=>'mixed'], +'is_numeric' => ['bool', 'value'=>'mixed'], +'is_object' => ['bool', 'value'=>'mixed'], +'is_readable' => ['bool', 'filename'=>'string'], +'is_real' => ['bool', 'value'=>'mixed'], +'is_resource' => ['bool', 'value'=>'mixed'], +'is_scalar' => ['bool', 'value'=>'mixed'], +'is_soap_fault' => ['bool', 'object'=>'mixed'], +'is_string' => ['bool', 'value'=>'mixed'], +'is_subclass_of' => ['bool', 'object_or_class'=>'object|string', 'class'=>'class-string', 'allow_string='=>'bool'], +'is_tainted' => ['bool', 'string'=>'string'], +'is_uploaded_file' => ['bool', 'filename'=>'string'], +'is_writable' => ['bool', 'filename'=>'string'], +'is_writeable' => ['bool', 'filename'=>'string'], +'isset' => ['bool', 'value'=>'mixed', '...rest='=>'mixed'], +'Iterator::current' => ['mixed'], +'Iterator::key' => ['mixed'], +'Iterator::next' => ['void'], +'Iterator::rewind' => ['void'], +'Iterator::valid' => ['bool'], +'iterator_apply' => ['0|positive-int', 'iterator'=>'Traversable', 'callback'=>'callable(mixed):bool', 'args='=>'?array'], +'iterator_count' => ['0|positive-int', 'iterator'=>'Traversable'], +'iterator_to_array' => ['array', 'iterator'=>'Traversable', 'preserve_keys='=>'bool'], +'IteratorAggregate::getIterator' => ['Traversable'], +'IteratorIterator::__construct' => ['void', 'it'=>'Traversable'], +'IteratorIterator::current' => ['mixed'], +'IteratorIterator::getInnerIterator' => ['Iterator'], +'IteratorIterator::key' => ['mixed'], +'IteratorIterator::next' => ['void'], +'IteratorIterator::rewind' => ['void'], +'IteratorIterator::valid' => ['bool'], +'java_last_exception_clear' => ['void'], +'java_last_exception_get' => ['object'], +'java_reload' => ['array', 'new_jarpath'=>'string'], +'java_require' => ['array', 'new_classpath'=>'string'], +'java_set_encoding' => ['array', 'encoding'=>'string'], +'java_set_ignore_case' => ['void', 'ignore'=>'bool'], +'java_throw_exceptions' => ['void', 'throw'=>'bool'], +'JavaException::getCause' => ['object'], +'jddayofweek' => ['string|int', 'julian_day'=>'int', 'mode='=>'int'], +'jdmonthname' => ['string', 'julian_day'=>'int', 'mode'=>'int'], +'jdtofrench' => ['string', 'julian_day'=>'int'], +'jdtogregorian' => ['string', 'julian_day'=>'int'], +'jdtojewish' => ['string', 'julian_day'=>'int', 'hebrew='=>'bool', 'flags='=>'int'], +'jdtojulian' => ['string', 'julian_day'=>'int'], +'jdtounix' => ['int', 'julian_day'=>'int'], +'jewishtojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'jobqueue_license_info' => ['array'], +'join' => ['string', 'separator'=>'string', 'array'=>'array'], +'join\'1' => ['string', 'separator'=>'array'], +'json_decode' => ['mixed', 'json'=>'string', 'associative='=>'?bool', 'depth='=>'int', 'flags='=>'int'], +'json_encode' => ['non-empty-string|false', 'value'=>'mixed', 'flags='=>'int', 'depth='=>'int'], +'json_last_error' => ['int'], +'json_last_error_msg' => ['string'], +'JsonException::__clone' => ['void'], +'JsonException::__construct' => ['void'], +'JsonException::__toString' => ['string'], +'JsonException::__wakeup' => ['void'], +'JsonException::getCode' => ['int'], +'JsonException::getFile' => ['string'], +'JsonException::getLine' => ['int'], +'JsonException::getMessage' => ['string'], +'JsonException::getPrevious' => ['?Throwable'], +'JsonException::getTrace' => ['list\',args?:array}>'], +'JsonException::getTraceAsString' => ['string'], +'JsonIncrementalParser::__construct' => ['void', 'depth'=>'', 'options'=>''], +'JsonIncrementalParser::get' => ['', 'options'=>''], +'JsonIncrementalParser::getError' => [''], +'JsonIncrementalParser::parse' => ['', 'json'=>''], +'JsonIncrementalParser::parseFile' => ['', 'filename'=>''], +'JsonIncrementalParser::reset' => [''], +'JsonSerializable::jsonSerialize' => ['mixed'], +'Judy::__construct' => ['void', 'judy_type'=>'int'], +'Judy::__destruct' => ['void'], +'Judy::byCount' => ['int', 'nth_index'=>'int'], +'Judy::count' => ['int', 'index_start='=>'int', 'index_end='=>'int'], +'Judy::first' => ['mixed', 'index='=>'mixed'], +'Judy::firstEmpty' => ['mixed', 'index='=>'mixed'], +'Judy::free' => ['int'], +'Judy::getType' => ['int'], +'Judy::last' => ['mixed', 'index='=>'string'], +'Judy::lastEmpty' => ['mixed', 'index='=>'int'], +'Judy::memoryUsage' => ['int'], +'Judy::next' => ['mixed', 'index'=>'mixed'], +'Judy::nextEmpty' => ['mixed', 'index'=>'mixed'], +'Judy::offsetExists' => ['bool', 'offset'=>'mixed'], +'Judy::offsetGet' => ['mixed', 'offset'=>'mixed'], +'Judy::offsetSet' => ['bool', 'offset'=>'mixed', 'value'=>'mixed'], +'Judy::offsetUnset' => ['bool', 'offset'=>'mixed'], +'Judy::prev' => ['mixed', 'index'=>'mixed'], +'Judy::prevEmpty' => ['mixed', 'index'=>'mixed'], +'Judy::size' => ['int'], +'judy_type' => ['int', 'array'=>'judy'], +'judy_version' => ['string'], +'juliantojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], +'kadm5_chpass_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'password'=>'string'], +'kadm5_create_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'password='=>'string', 'options='=>'array'], +'kadm5_delete_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string'], +'kadm5_destroy' => ['bool', 'handle'=>'resource'], +'kadm5_flush' => ['bool', 'handle'=>'resource'], +'kadm5_get_policies' => ['array', 'handle'=>'resource'], +'kadm5_get_principal' => ['array', 'handle'=>'resource', 'principal'=>'string'], +'kadm5_get_principals' => ['array', 'handle'=>'resource'], +'kadm5_init_with_password' => ['resource', 'admin_server'=>'string', 'realm'=>'string', 'principal'=>'string', 'password'=>'string'], +'kadm5_modify_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'options'=>'array'], +'key' => ['int|string|null', 'array'=>'array|object'], +'key_exists' => ['bool', 'key'=>'string|int', 'array'=>'array'], +'krsort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], +'ksort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], +'KTaglib_ID3v2_AttachedPictureFrame::getDescription' => ['string'], +'KTaglib_ID3v2_AttachedPictureFrame::getMimeType' => ['string'], +'KTaglib_ID3v2_AttachedPictureFrame::getType' => ['int'], +'KTaglib_ID3v2_AttachedPictureFrame::savePicture' => ['bool', 'filename'=>'string'], +'KTaglib_ID3v2_AttachedPictureFrame::setMimeType' => ['string', 'type'=>'string'], +'KTaglib_ID3v2_AttachedPictureFrame::setPicture' => ['', 'filename'=>'string'], +'KTaglib_ID3v2_AttachedPictureFrame::setType' => ['', 'type'=>'int'], +'KTaglib_ID3v2_Frame::__toString' => ['string'], +'KTaglib_ID3v2_Frame::getDescription' => ['string'], +'KTaglib_ID3v2_Frame::getMimeType' => ['string'], +'KTaglib_ID3v2_Frame::getSize' => ['int'], +'KTaglib_ID3v2_Frame::getType' => ['int'], +'KTaglib_ID3v2_Frame::savePicture' => ['bool', 'filename'=>'string'], +'KTaglib_ID3v2_Frame::setMimeType' => ['string', 'type'=>'string'], +'KTaglib_ID3v2_Frame::setPicture' => ['void', 'filename'=>'string'], +'KTaglib_ID3v2_Frame::setType' => ['void', 'type'=>'int'], +'KTaglib_ID3v2_Tag::addFrame' => ['bool', 'frame'=>'KTaglib_ID3v2_Frame'], +'KTaglib_ID3v2_Tag::getFrameList' => ['array'], +'KTaglib_MPEG_AudioProperties::getBitrate' => ['int'], +'KTaglib_MPEG_AudioProperties::getChannels' => ['int'], +'KTaglib_MPEG_AudioProperties::getLayer' => ['int'], +'KTaglib_MPEG_AudioProperties::getLength' => ['int'], +'KTaglib_MPEG_AudioProperties::getSampleBitrate' => ['int'], +'KTaglib_MPEG_AudioProperties::getVersion' => ['int'], +'KTaglib_MPEG_AudioProperties::isCopyrighted' => ['bool'], +'KTaglib_MPEG_AudioProperties::isOriginal' => ['bool'], +'KTaglib_MPEG_AudioProperties::isProtectionEnabled' => ['bool'], +'KTaglib_MPEG_File::getAudioProperties' => ['KTaglib_MPEG_File'], +'KTaglib_MPEG_File::getID3v1Tag' => ['KTaglib_ID3v1_Tag', 'create='=>'bool'], +'KTaglib_MPEG_File::getID3v2Tag' => ['KTaglib_ID3v2_Tag', 'create='=>'bool'], +'KTaglib_Tag::getAlbum' => ['string'], +'KTaglib_Tag::getArtist' => ['string'], +'KTaglib_Tag::getComment' => ['string'], +'KTaglib_Tag::getGenre' => ['string'], +'KTaglib_Tag::getTitle' => ['string'], +'KTaglib_Tag::getTrack' => ['int'], +'KTaglib_Tag::getYear' => ['int'], +'KTaglib_Tag::isEmpty' => ['bool'], +'labelcacheObj::freeCache' => ['bool'], +'labelObj::__construct' => ['void'], +'labelObj::convertToString' => ['string'], +'labelObj::deleteStyle' => ['int', 'index'=>'int'], +'labelObj::free' => ['void'], +'labelObj::getBinding' => ['string', 'labelbinding'=>'mixed'], +'labelObj::getExpressionString' => ['string'], +'labelObj::getStyle' => ['styleObj', 'index'=>'int'], +'labelObj::getTextString' => ['string'], +'labelObj::moveStyleDown' => ['int', 'index'=>'int'], +'labelObj::moveStyleUp' => ['int', 'index'=>'int'], +'labelObj::removeBinding' => ['int', 'labelbinding'=>'mixed'], +'labelObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'labelObj::setBinding' => ['int', 'labelbinding'=>'mixed', 'value'=>'string'], +'labelObj::setExpression' => ['int', 'expression'=>'string'], +'labelObj::setText' => ['int', 'text'=>'string'], +'labelObj::updateFromString' => ['int', 'snippet'=>'string'], +'Lapack::eigenValues' => ['array', 'a'=>'array', 'left='=>'array', 'right='=>'array'], +'Lapack::identity' => ['array', 'n'=>'int'], +'Lapack::leastSquaresByFactorisation' => ['array', 'a'=>'array', 'b'=>'array'], +'Lapack::leastSquaresBySVD' => ['array', 'a'=>'array', 'b'=>'array'], +'Lapack::pseudoInverse' => ['array', 'a'=>'array'], +'Lapack::singularValues' => ['array', 'a'=>'array'], +'Lapack::solveLinearEquation' => ['array', 'a'=>'array', 'b'=>'array'], +'layerObj::addFeature' => ['int', 'shape'=>'shapeObj'], +'layerObj::applySLD' => ['int', 'sldxml'=>'string', 'namedlayer'=>'string'], +'layerObj::applySLDURL' => ['int', 'sldurl'=>'string', 'namedlayer'=>'string'], +'layerObj::clearProcessing' => ['void'], +'layerObj::close' => ['void'], +'layerObj::convertToString' => ['string'], +'layerObj::draw' => ['int', 'image'=>'imageObj'], +'layerObj::drawQuery' => ['int', 'image'=>'imageObj'], +'layerObj::free' => ['void'], +'layerObj::generateSLD' => ['string'], +'layerObj::getClass' => ['classObj', 'classIndex'=>'int'], +'layerObj::getClassIndex' => ['int', 'shape'=>'', 'classgroup'=>'', 'numclasses'=>''], +'layerObj::getExtent' => ['rectObj'], +'layerObj::getFilterString' => ['?string'], +'layerObj::getGridIntersectionCoordinates' => ['array'], +'layerObj::getItems' => ['array'], +'layerObj::getMetaData' => ['int', 'name'=>'string'], +'layerObj::getNumResults' => ['int'], +'layerObj::getProcessing' => ['array'], +'layerObj::getProjection' => ['string'], +'layerObj::getResult' => ['resultObj', 'index'=>'int'], +'layerObj::getResultsBounds' => ['rectObj'], +'layerObj::getShape' => ['shapeObj', 'result'=>'resultObj'], +'layerObj::getWMSFeatureInfoURL' => ['string', 'clickX'=>'int', 'clickY'=>'int', 'featureCount'=>'int', 'infoFormat'=>'string'], +'layerObj::isVisible' => ['bool'], +'layerObj::moveclassdown' => ['int', 'index'=>'int'], +'layerObj::moveclassup' => ['int', 'index'=>'int'], +'layerObj::ms_newLayerObj' => ['layerObj', 'map'=>'mapObj', 'layer'=>'layerObj'], +'layerObj::nextShape' => ['shapeObj'], +'layerObj::open' => ['int'], +'layerObj::queryByAttributes' => ['int', 'qitem'=>'string', 'qstring'=>'string', 'mode'=>'int'], +'layerObj::queryByFeatures' => ['int', 'slayer'=>'int'], +'layerObj::queryByPoint' => ['int', 'point'=>'pointObj', 'mode'=>'int', 'buffer'=>'float'], +'layerObj::queryByRect' => ['int', 'rect'=>'rectObj'], +'layerObj::queryByShape' => ['int', 'shape'=>'shapeObj'], +'layerObj::removeClass' => ['?classObj', 'index'=>'int'], +'layerObj::removeMetaData' => ['int', 'name'=>'string'], +'layerObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'layerObj::setConnectionType' => ['int', 'connectiontype'=>'int', 'plugin_library'=>'string'], +'layerObj::setFilter' => ['int', 'expression'=>'string'], +'layerObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], +'layerObj::setProjection' => ['int', 'proj_params'=>'string'], +'layerObj::setWKTProjection' => ['int', 'proj_params'=>'string'], +'layerObj::updateFromString' => ['int', 'snippet'=>'string'], +'lcfirst' => ['string', 'string'=>'string'], +'lcg_value' => ['float'], +'lchgrp' => ['bool', 'filename'=>'string', 'group'=>'string|int'], +'lchown' => ['bool', 'filename'=>'string', 'user'=>'string|int'], +'ldap_8859_to_t61' => ['string', 'value'=>'string'], +'ldap_add' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_add_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_bind' => ['bool', 'ldap'=>'LDAP\Connection', 'dn='=>'string|null', 'password='=>'string|null'], +'ldap_bind_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'?array'], +'ldap_close' => ['bool', 'ldap'=>'LDAP\Connection'], +'ldap_compare' => ['bool|int', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'?array'], +'ldap_connect' => ['LDAP\Connection|false', 'uri='=>'?string', 'port='=>'int', 'wallet='=>'string', 'password='=>'string', 'auth_mode='=>'int'], +'ldap_count_entries' => ['int', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], +'ldap_delete' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'controls='=>'?array'], +'ldap_delete_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'controls='=>'?array'], +'ldap_dn2ufn' => ['string', 'dn'=>'string'], +'ldap_err2str' => ['string', 'errno'=>'int'], +'ldap_errno' => ['int', 'ldap'=>'LDAP\Connection'], +'ldap_error' => ['string', 'ldap'=>'LDAP\Connection'], +'ldap_escape' => ['string', 'value'=>'string', 'ignore='=>'string', 'flags='=>'int'], +'ldap_exop' => ['LDAP\Result|bool', 'ldap'=>'LDAP\Connection', 'request_oid'=>'string', 'request_data='=>'?string', 'controls='=>'?array', '&w_response_data='=>'string', '&w_response_oid='=>'string'], +'ldap_exop_passwd' => ['bool|string', 'ldap'=>'LDAP\Connection', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array|null'], +'ldap_exop_refresh' => ['int|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'ttl'=>'int'], +'ldap_exop_whoami' => ['string|false', 'ldap'=>'LDAP\Connection'], +'ldap_explode_dn' => ['array|false', 'dn'=>'string', 'with_attrib'=>'int'], +'ldap_first_attribute' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_first_entry' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], +'ldap_first_reference' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], +'ldap_free_result' => ['bool', 'result'=>'LDAP\Result'], +'ldap_get_attributes' => ['array', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_get_dn' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_get_entries' => ['array|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], +'ldap_get_option' => ['bool', 'ldap'=>'LDAP\Connection', 'option'=>'int', '&w_value='=>'array|string|int'], +'ldap_get_values' => ['array|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', 'attribute'=>'string'], +'ldap_get_values_len' => ['array|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', 'attribute'=>'string'], +'ldap_list' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], +'ldap_mod_add' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_mod_add_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_mod_del' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_mod_del_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_mod_replace' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_mod_replace_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_modify' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], +'ldap_modify_batch' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'?array'], +'ldap_next_attribute' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_next_entry' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_next_reference' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], +'ldap_parse_exop' => ['bool', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result', '&w_response_data='=>'string', '&w_response_oid='=>'string'], +'ldap_parse_reference' => ['bool', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', '&w_referrals'=>'array'], +'ldap_parse_result' => ['bool', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result', '&w_error_code'=>'int', '&w_matched_dn='=>'string', '&w_error_message='=>'string', '&w_referrals='=>'array', '&w_controls='=>'array'], +'ldap_read' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], +'ldap_rename' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], +'ldap_rename_ext' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], +'ldap_sasl_bind' => ['bool', 'ldap'=>'LDAP\Connection', 'dn='=>'?string', 'password='=>'?string', 'mech='=>'?string', 'realm='=>'?string', 'authc_id='=>'?string', 'authz_id='=>'?string', 'props='=>'?string'], +'ldap_search' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], +'ldap_set_option' => ['bool', 'ldap'=>'LDAP\Connection|null', 'option'=>'int', 'value'=>'mixed'], +'ldap_set_rebind_proc' => ['bool', 'ldap'=>'LDAP\Connection', 'callback'=>'?callable'], +'ldap_start_tls' => ['bool', 'ldap'=>'LDAP\Connection'], +'ldap_t61_to_8859' => ['string', 'value'=>'string'], +'ldap_unbind' => ['bool', 'ldap'=>'LDAP\Connection'], +'leak' => ['', 'num_bytes'=>'int'], +'leak_variable' => ['', 'variable'=>'', 'leak_data'=>'bool'], +'legendObj::convertToString' => ['string'], +'legendObj::free' => ['void'], +'legendObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'legendObj::updateFromString' => ['int', 'snippet'=>'string'], +'LengthException::__clone' => ['void'], +'LengthException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'LengthException::__toString' => ['string'], +'LengthException::getCode' => ['int'], +'LengthException::getFile' => ['string'], +'LengthException::getLine' => ['int'], +'LengthException::getMessage' => ['string'], +'LengthException::getPrevious' => ['?Throwable'], +'LengthException::getTrace' => ['list\',args?:array}>'], +'LengthException::getTraceAsString' => ['string'], +'LevelDB::__construct' => ['void', 'name'=>'string', 'options='=>'array', 'read_options='=>'array', 'write_options='=>'array'], +'LevelDB::close' => [''], +'LevelDB::compactRange' => ['', 'start'=>'', 'limit'=>''], +'LevelDB::delete' => ['bool', 'key'=>'string', 'write_options='=>'array'], +'LevelDB::destroy' => ['', 'name'=>'', 'options='=>'array'], +'LevelDB::get' => ['bool|string', 'key'=>'string', 'read_options='=>'array'], +'LevelDB::getApproximateSizes' => ['', 'start'=>'', 'limit'=>''], +'LevelDB::getIterator' => ['LevelDBIterator', 'options='=>'array'], +'LevelDB::getProperty' => ['mixed', 'name'=>'string'], +'LevelDB::getSnapshot' => ['LevelDBSnapshot'], +'LevelDB::put' => ['', 'key'=>'string', 'value'=>'string', 'write_options='=>'array'], +'LevelDB::repair' => ['', 'name'=>'', 'options='=>'array'], +'LevelDB::set' => ['', 'key'=>'string', 'value'=>'string', 'write_options='=>'array'], +'LevelDB::write' => ['', 'batch'=>'LevelDBWriteBatch', 'write_options='=>'array'], +'LevelDBIterator::__construct' => ['void', 'db'=>'LevelDB', 'read_options='=>'array'], +'LevelDBIterator::current' => ['mixed'], +'LevelDBIterator::destroy' => [''], +'LevelDBIterator::getError' => [''], +'LevelDBIterator::key' => ['int|string'], +'LevelDBIterator::last' => [''], +'LevelDBIterator::next' => ['void'], +'LevelDBIterator::prev' => [''], +'LevelDBIterator::rewind' => ['void'], +'LevelDBIterator::seek' => ['', 'key'=>''], +'LevelDBIterator::valid' => ['bool'], +'LevelDBSnapshot::__construct' => ['void', 'db'=>'LevelDB'], +'LevelDBSnapshot::release' => [''], +'LevelDBWriteBatch::__construct' => ['void', 'name'=>'', 'options='=>'array', 'read_options='=>'array', 'write_options='=>'array'], +'LevelDBWriteBatch::clear' => [''], +'LevelDBWriteBatch::delete' => ['', 'key'=>'', 'write_options='=>'array'], +'LevelDBWriteBatch::put' => ['', 'key'=>'', 'value'=>'', 'write_options='=>'array'], +'LevelDBWriteBatch::set' => ['', 'key'=>'', 'value'=>'', 'write_options='=>'array'], +'levenshtein' => ['int', 'string1'=>'string', 'string2'=>'string'], +'levenshtein\'1' => ['int', 'string1'=>'string', 'string2'=>'string', 'insertion_cost'=>'int', 'repetition_cost'=>'int', 'deletion_cost'=>'int'], +'libxml_clear_errors' => ['void'], +'libxml_disable_entity_loader' => ['bool', 'disable='=>'bool'], +'libxml_get_errors' => ['list'], +'libxml_get_last_error' => ['LibXMLError|false'], +'libxml_get_external_entity_loader' => ['(callable(string,string,array{directory:?string,intSubName:?string,extSubURI:?string,extSubSystem:?string}):(resource|string|null))|null'], +'libxml_set_external_entity_loader' => ['bool', 'resolver_function'=>'(callable(string,string,array{directory:?string,intSubName:?string,extSubURI:?string,extSubSystem:?string}):(resource|string|null))|null'], +'libxml_set_streams_context' => ['void', 'context'=>'resource'], +'libxml_use_internal_errors' => ['bool', 'use_errors='=>'?bool'], +'LimitIterator::__construct' => ['void', 'iterator'=>'Iterator', 'offset='=>'int', 'count='=>'int'], +'LimitIterator::current' => ['mixed'], +'LimitIterator::getInnerIterator' => ['Iterator'], +'LimitIterator::getPosition' => ['int'], +'LimitIterator::key' => ['mixed'], +'LimitIterator::next' => ['void'], +'LimitIterator::rewind' => ['void'], +'LimitIterator::seek' => ['int', 'position'=>'int'], +'LimitIterator::valid' => ['bool'], +'lineObj::__construct' => ['void'], +'lineObj::add' => ['int', 'point'=>'pointObj'], +'lineObj::addXY' => ['int', 'x'=>'float', 'y'=>'float', 'm'=>'float'], +'lineObj::addXYZ' => ['int', 'x'=>'float', 'y'=>'float', 'z'=>'float', 'm'=>'float'], +'lineObj::ms_newLineObj' => ['lineObj'], +'lineObj::point' => ['pointObj', 'i'=>'int'], +'lineObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], +'link' => ['bool', 'target'=>'string', 'link'=>'string'], +'linkinfo' => ['int|false', 'path'=>'string'], +'litespeed_request_headers' => ['array'], +'litespeed_response_headers' => ['array'], +'Locale::acceptFromHttp' => ['string|false', 'header'=>'string'], +'Locale::canonicalize' => ['string', 'locale'=>'string'], +'Locale::composeLocale' => ['string', 'subtags'=>'array'], +'Locale::filterMatches' => ['?bool', 'languageTag'=>'string', 'locale'=>'string', 'canonicalize='=>'bool'], +'Locale::getAllVariants' => ['array', 'locale'=>'string'], +'Locale::getDefault' => ['string'], +'Locale::getDisplayLanguage' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'Locale::getDisplayName' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'Locale::getDisplayRegion' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'Locale::getDisplayScript' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'Locale::getDisplayVariant' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'Locale::getKeywords' => ['array|false', 'locale'=>'string'], +'Locale::getPrimaryLanguage' => ['string', 'locale'=>'string'], +'Locale::getRegion' => ['string', 'locale'=>'string'], +'Locale::getScript' => ['string', 'locale'=>'string'], +'Locale::lookup' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'?string'], +'Locale::parseLocale' => ['array', 'locale'=>'string'], +'Locale::setDefault' => ['bool', 'locale'=>'string'], +'locale_accept_from_http' => ['string|false', 'header'=>'string'], +'locale_canonicalize' => ['?string', 'locale'=>'string'], +'locale_compose' => ['string|false', 'subtags'=>'array'], +'locale_filter_matches' => ['?bool', 'languageTag'=>'string', 'locale'=>'string', 'canonicalize='=>'bool'], +'locale_get_all_variants' => ['?array', 'locale'=>'string'], +'locale_get_default' => ['string'], +'locale_get_display_language' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'locale_get_display_name' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'locale_get_display_region' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'locale_get_display_script' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'locale_get_display_variant' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], +'locale_get_keywords' => ['array|false|null', 'locale'=>'string'], +'locale_get_primary_language' => ['?string', 'locale'=>'string'], +'locale_get_region' => ['?string', 'locale'=>'string'], +'locale_get_script' => ['?string', 'locale'=>'string'], +'locale_lookup' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'?string'], +'locale_parse' => ['?array', 'locale'=>'string'], +'locale_set_default' => ['bool', 'locale'=>'string'], +'localeconv' => ['array'], +'localtime' => ['array', 'timestamp='=>'?int', 'associative='=>'bool'], +'log' => ['float', 'num'=>'float', 'base='=>'float'], +'log10' => ['float', 'num'=>'float'], +'log1p' => ['float', 'num'=>'float'], +'LogicException::__clone' => ['void'], +'LogicException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'LogicException::__toString' => ['string'], +'LogicException::getCode' => ['int'], +'LogicException::getFile' => ['string'], +'LogicException::getLine' => ['int'], +'LogicException::getMessage' => ['string'], +'LogicException::getPrevious' => ['?Throwable'], +'LogicException::getTrace' => ['list\',args?:array}>'], +'LogicException::getTraceAsString' => ['string'], +'long2ip' => ['string', 'ip'=>'int'], +'lstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'filename'=>'string'], +'ltrim' => ['string', 'string'=>'string', 'characters='=>'string'], +'Lua::__call' => ['mixed', 'lua_func'=>'callable', 'args='=>'array', 'use_self='=>'int'], +'Lua::__construct' => ['void', 'lua_script_file'=>'string'], +'Lua::assign' => ['?Lua', 'name'=>'string', 'value'=>'mixed'], +'Lua::call' => ['mixed', 'lua_func'=>'callable', 'args='=>'array', 'use_self='=>'int'], +'Lua::eval' => ['mixed', 'statements'=>'string'], +'Lua::getVersion' => ['string'], +'Lua::include' => ['mixed', 'file'=>'string'], +'Lua::registerCallback' => ['Lua|null|false', 'name'=>'string', 'function'=>'callable'], +'LuaClosure::__invoke' => ['void', 'arg'=>'mixed', '...args='=>'mixed'], +'lzf_compress' => ['string', 'data'=>'string'], +'lzf_decompress' => ['string', 'data'=>'string'], +'lzf_optimized_for' => ['int'], +'magic_quotes_runtime' => ['bool', 'new_setting'=>'bool'], +'mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string'], +'mailparse_determine_best_xfer_encoding' => ['string', 'fp'=>'resource'], +'mailparse_msg_create' => ['resource'], +'mailparse_msg_extract_part' => ['void', 'mimemail'=>'resource', 'msgbody'=>'string', 'callbackfunc='=>'callable'], +'mailparse_msg_extract_part_file' => ['string', 'mimemail'=>'resource', 'filename'=>'mixed', 'callbackfunc='=>'callable'], +'mailparse_msg_extract_whole_part_file' => ['string', 'mimemail'=>'resource', 'filename'=>'string', 'callbackfunc='=>'callable'], +'mailparse_msg_free' => ['bool', 'mimemail'=>'resource'], +'mailparse_msg_get_part' => ['resource', 'mimemail'=>'resource', 'mimesection'=>'string'], +'mailparse_msg_get_part_data' => ['array', 'mimemail'=>'resource'], +'mailparse_msg_get_structure' => ['array', 'mimemail'=>'resource'], +'mailparse_msg_parse' => ['bool', 'mimemail'=>'resource', 'data'=>'string'], +'mailparse_msg_parse_file' => ['resource|false', 'filename'=>'string'], +'mailparse_rfc822_parse_addresses' => ['array', 'addresses'=>'string'], +'mailparse_stream_encode' => ['bool', 'sourcefp'=>'resource', 'destfp'=>'resource', 'encoding'=>'string'], +'mailparse_uudecode_all' => ['array', 'fp'=>'resource'], +'mapObj::__construct' => ['void', 'map_file_name'=>'string', 'new_map_path'=>'string'], +'mapObj::appendOutputFormat' => ['int', 'outputFormat'=>'outputformatObj'], +'mapObj::applyconfigoptions' => ['int'], +'mapObj::applySLD' => ['int', 'sldxml'=>'string'], +'mapObj::applySLDURL' => ['int', 'sldurl'=>'string'], +'mapObj::convertToString' => ['string'], +'mapObj::draw' => ['?imageObj'], +'mapObj::drawLabelCache' => ['int', 'image'=>'imageObj'], +'mapObj::drawLegend' => ['imageObj'], +'mapObj::drawQuery' => ['?imageObj'], +'mapObj::drawReferenceMap' => ['imageObj'], +'mapObj::drawScaleBar' => ['imageObj'], +'mapObj::embedLegend' => ['int', 'image'=>'imageObj'], +'mapObj::embedScalebar' => ['int', 'image'=>'imageObj'], +'mapObj::free' => ['void'], +'mapObj::generateSLD' => ['string'], +'mapObj::getAllGroupNames' => ['array'], +'mapObj::getAllLayerNames' => ['array'], +'mapObj::getColorbyIndex' => ['colorObj', 'iCloIndex'=>'int'], +'mapObj::getConfigOption' => ['string', 'key'=>'string'], +'mapObj::getLabel' => ['labelcacheMemberObj', 'index'=>'int'], +'mapObj::getLayer' => ['layerObj', 'index'=>'int'], +'mapObj::getLayerByName' => ['layerObj', 'layer_name'=>'string'], +'mapObj::getLayersDrawingOrder' => ['array'], +'mapObj::getLayersIndexByGroup' => ['array', 'groupname'=>'string'], +'mapObj::getMetaData' => ['int', 'name'=>'string'], +'mapObj::getNumSymbols' => ['int'], +'mapObj::getOutputFormat' => ['?outputformatObj', 'index'=>'int'], +'mapObj::getProjection' => ['string'], +'mapObj::getSymbolByName' => ['int', 'symbol_name'=>'string'], +'mapObj::getSymbolObjectById' => ['symbolObj', 'symbolid'=>'int'], +'mapObj::loadMapContext' => ['int', 'filename'=>'string', 'unique_layer_name'=>'bool'], +'mapObj::loadOWSParameters' => ['int', 'request'=>'OwsrequestObj', 'version'=>'string'], +'mapObj::moveLayerDown' => ['int', 'layerindex'=>'int'], +'mapObj::moveLayerUp' => ['int', 'layerindex'=>'int'], +'mapObj::ms_newMapObjFromString' => ['mapObj', 'map_file_string'=>'string', 'new_map_path'=>'string'], +'mapObj::offsetExtent' => ['int', 'x'=>'float', 'y'=>'float'], +'mapObj::owsDispatch' => ['int', 'request'=>'OwsrequestObj'], +'mapObj::prepareImage' => ['imageObj'], +'mapObj::prepareQuery' => ['void'], +'mapObj::processLegendTemplate' => ['string', 'params'=>'array'], +'mapObj::processQueryTemplate' => ['string', 'params'=>'array', 'generateimages'=>'bool'], +'mapObj::processTemplate' => ['string', 'params'=>'array', 'generateimages'=>'bool'], +'mapObj::queryByFeatures' => ['int', 'slayer'=>'int'], +'mapObj::queryByIndex' => ['int', 'layerindex'=>'', 'tileindex'=>'', 'shapeindex'=>'', 'addtoquery'=>''], +'mapObj::queryByPoint' => ['int', 'point'=>'pointObj', 'mode'=>'int', 'buffer'=>'float'], +'mapObj::queryByRect' => ['int', 'rect'=>'rectObj'], +'mapObj::queryByShape' => ['int', 'shape'=>'shapeObj'], +'mapObj::removeLayer' => ['layerObj', 'nIndex'=>'int'], +'mapObj::removeMetaData' => ['int', 'name'=>'string'], +'mapObj::removeOutputFormat' => ['int', 'name'=>'string'], +'mapObj::save' => ['int', 'filename'=>'string'], +'mapObj::saveMapContext' => ['int', 'filename'=>'string'], +'mapObj::saveQuery' => ['int', 'filename'=>'string', 'results'=>'int'], +'mapObj::scaleExtent' => ['int', 'zoomfactor'=>'float', 'minscaledenom'=>'float', 'maxscaledenom'=>'float'], +'mapObj::selectOutputFormat' => ['int', 'type'=>'string'], +'mapObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'mapObj::setCenter' => ['int', 'center'=>'pointObj'], +'mapObj::setConfigOption' => ['int', 'key'=>'string', 'value'=>'string'], +'mapObj::setExtent' => ['void', 'minx'=>'float', 'miny'=>'float', 'maxx'=>'float', 'maxy'=>'float'], +'mapObj::setFontSet' => ['int', 'fileName'=>'string'], +'mapObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], +'mapObj::setProjection' => ['int', 'proj_params'=>'string', 'bSetUnitsAndExtents'=>'bool'], +'mapObj::setRotation' => ['int', 'rotation_angle'=>'float'], +'mapObj::setSize' => ['int', 'width'=>'int', 'height'=>'int'], +'mapObj::setSymbolSet' => ['int', 'fileName'=>'string'], +'mapObj::setWKTProjection' => ['int', 'proj_params'=>'string', 'bSetUnitsAndExtents'=>'bool'], +'mapObj::zoomPoint' => ['int', 'nZoomFactor'=>'int', 'oPixelPos'=>'pointObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj'], +'mapObj::zoomRectangle' => ['int', 'oPixelExt'=>'rectObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj'], +'mapObj::zoomScale' => ['int', 'nScaleDenom'=>'float', 'oPixelPos'=>'pointObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj', 'oMaxGeorefExt'=>'rectObj'], +'max' => ['mixed', 'value'=>'non-empty-array'], +'max\'1' => ['mixed', 'value'=>'', 'values'=>'', '...args='=>''], +'mb_check_encoding' => ['bool', 'value='=>'array|string|null', 'encoding='=>'string|null'], +'mb_chr' => ['non-empty-string|false', 'codepoint'=>'int', 'encoding='=>'string|null'], +'mb_convert_case' => ['string', 'string'=>'string', 'mode'=>'int', 'encoding='=>'string|null'], +'mb_convert_encoding' => ['string|false', 'string'=>'string', 'to_encoding'=>'string', 'from_encoding='=>'array|string|null'], +'mb_convert_encoding\'1' => ['array', 'string'=>'array', 'to_encoding'=>'string', 'from_encoding='=>'array|string|null'], +'mb_convert_kana' => ['string', 'string'=>'string', 'mode='=>'string', 'encoding='=>'string|null'], +'mb_convert_variables' => ['string|false', 'to_encoding'=>'string', 'from_encoding'=>'array|string', '&rw_var'=>'string|array|object', '&...rw_vars='=>'string|array|object'], +'mb_decode_mimeheader' => ['string', 'string'=>'string'], +'mb_decode_numericentity' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string|null'], +'mb_detect_encoding' => ['string|false', 'string'=>'string', 'encodings='=>'array|string|null', 'strict='=>'bool'], +'mb_detect_order' => ['bool|list', 'encoding='=>'array|string|null'], +'mb_encode_mimeheader' => ['string', 'string'=>'string', 'charset='=>'string|null', 'transfer_encoding='=>'string|null', 'newline='=>'string', 'indent='=>'int'], +'mb_encode_numericentity' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string|null', 'hex='=>'bool'], +'mb_encoding_aliases' => ['list', 'encoding'=>'string'], +'mb_ereg' => ['bool', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], +'mb_ereg_match' => ['bool', 'pattern'=>'string', 'string'=>'string', 'options='=>'string|null'], +'mb_ereg_replace' => ['string|false|null', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string|null'], +'mb_ereg_replace_callback' => ['string|false|null', 'pattern'=>'string', 'callback'=>'callable', 'string'=>'string', 'options='=>'string|null'], +'mb_ereg_search' => ['bool', 'pattern='=>'string|null', 'options='=>'string|null'], +'mb_ereg_search_getpos' => ['int'], +'mb_ereg_search_getregs' => ['string[]|false'], +'mb_ereg_search_init' => ['bool', 'string'=>'string', 'pattern='=>'string|null', 'options='=>'string|null'], +'mb_ereg_search_pos' => ['int[]|false', 'pattern='=>'string|null', 'options='=>'string|null'], +'mb_ereg_search_regs' => ['string[]|false', 'pattern='=>'string|null', 'options='=>'string|null'], +'mb_ereg_search_setpos' => ['bool', 'offset'=>'int'], +'mb_eregi' => ['bool', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], +'mb_eregi_replace' => ['string|false|null', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string|null'], +'mb_get_info' => ['array|string|int|false', 'type='=>'string'], +'mb_http_input' => ['array|string|false', 'type='=>'string|null'], +'mb_http_output' => ['string|bool', 'encoding='=>'string|null'], +'mb_internal_encoding' => ['string|bool', 'encoding='=>'string|null'], +'mb_language' => ['string|bool', 'language='=>'string|null'], +'mb_list_encodings' => ['list'], +'mb_ord' => ['int|false', 'string'=>'string', 'encoding='=>'string|null'], +'mb_output_handler' => ['string', 'string'=>'string', 'status'=>'int'], +'mb_parse_str' => ['bool', 'string'=>'string', '&w_result'=>'array'], +'mb_preferred_mime_name' => ['string|false', 'encoding'=>'string'], +'mb_regex_encoding' => ['string|bool', 'encoding='=>'string|null'], +'mb_regex_set_options' => ['string', 'options='=>'string|null'], +'mb_scrub' => ['string', 'string'=>'string', 'encoding='=>'string|null'], +'mb_send_mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string|null'], +'mb_split' => ['list|false', 'pattern'=>'string', 'string'=>'string', 'limit='=>'int'], +'mb_str_split' => ['list', 'string'=>'string', 'length='=>'positive-int', 'encoding='=>'string|null'], +'mb_strcut' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string|null'], +'mb_strimwidth' => ['string', 'string'=>'string', 'start'=>'int', 'width'=>'int', 'trim_marker='=>'string', 'encoding='=>'string|null'], +'mb_stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], +'mb_stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], +'mb_strlen' => ['0|positive-int', 'string'=>'string', 'encoding='=>'string|null'], +'mb_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], +'mb_strrchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], +'mb_strrichr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], +'mb_strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], +'mb_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], +'mb_strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], +'mb_strtolower' => ['lowercase-string', 'string'=>'string', 'encoding='=>'string|null'], +'mb_strtoupper' => ['string', 'string'=>'string', 'encoding='=>'string|null'], +'mb_strwidth' => ['int', 'string'=>'string', 'encoding='=>'string|null'], +'mb_substitute_character' => ['bool|int|string', 'substitute_character='=>'int|string|null'], +'mb_substr' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string|null'], +'mb_substr_count' => ['int', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string|null'], +'mcrypt_cbc' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], +'mcrypt_cfb' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], +'mcrypt_create_iv' => ['string|false', 'size'=>'int', 'source='=>'int'], +'mcrypt_decrypt' => ['string', 'cipher'=>'string', 'key'=>'string', 'data'=>'string', 'mode'=>'string', 'iv='=>'string'], +'mcrypt_ecb' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], +'mcrypt_enc_get_algorithms_name' => ['string', 'td'=>'resource'], +'mcrypt_enc_get_block_size' => ['int', 'td'=>'resource'], +'mcrypt_enc_get_iv_size' => ['int', 'td'=>'resource'], +'mcrypt_enc_get_key_size' => ['int', 'td'=>'resource'], +'mcrypt_enc_get_modes_name' => ['string', 'td'=>'resource'], +'mcrypt_enc_get_supported_key_sizes' => ['array', 'td'=>'resource'], +'mcrypt_enc_is_block_algorithm' => ['bool', 'td'=>'resource'], +'mcrypt_enc_is_block_algorithm_mode' => ['bool', 'td'=>'resource'], +'mcrypt_enc_is_block_mode' => ['bool', 'td'=>'resource'], +'mcrypt_enc_self_test' => ['int|false', 'td'=>'resource'], +'mcrypt_encrypt' => ['string', 'cipher'=>'string', 'key'=>'string', 'data'=>'string', 'mode'=>'string', 'iv='=>'string'], +'mcrypt_generic' => ['string', 'td'=>'resource', 'data'=>'string'], +'mcrypt_generic_deinit' => ['bool', 'td'=>'resource'], +'mcrypt_generic_end' => ['bool', 'td'=>'resource'], +'mcrypt_generic_init' => ['int|false', 'td'=>'resource', 'key'=>'string', 'iv'=>'string'], +'mcrypt_get_block_size' => ['int', 'cipher'=>'int|string', 'module'=>'string'], +'mcrypt_get_cipher_name' => ['string|false', 'cipher'=>'int|string'], +'mcrypt_get_iv_size' => ['int|false', 'cipher'=>'int|string', 'module'=>'string'], +'mcrypt_get_key_size' => ['int', 'cipher'=>'int|string', 'module'=>'string'], +'mcrypt_list_algorithms' => ['array', 'lib_dir='=>'string'], +'mcrypt_list_modes' => ['array', 'lib_dir='=>'string'], +'mcrypt_module_close' => ['bool', 'td'=>'resource'], +'mcrypt_module_get_algo_block_size' => ['int', 'algorithm'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_get_algo_key_size' => ['int', 'algorithm'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_get_supported_key_sizes' => ['array', 'algorithm'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_is_block_algorithm' => ['bool', 'algorithm'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_is_block_algorithm_mode' => ['bool', 'mode'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_is_block_mode' => ['bool', 'mode'=>'string', 'lib_dir='=>'string'], +'mcrypt_module_open' => ['resource|false', 'cipher'=>'string', 'cipher_directory'=>'string', 'mode'=>'string', 'mode_directory'=>'string'], +'mcrypt_module_self_test' => ['bool', 'algorithm'=>'string', 'lib_dir='=>'string'], +'mcrypt_ofb' => ['string', 'cipher'=>'int|string', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], +'md5' => ['non-falsy-string', 'string'=>'string', 'binary='=>'bool'], +'md5_file' => ['non-falsy-string|false', 'filename'=>'string', 'binary='=>'bool'], +'mdecrypt_generic' => ['string', 'td'=>'resource', 'data'=>'string'], +'Memcache::add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'Memcache::addServer' => ['bool', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable', 'timeoutms='=>'int'], +'Memcache::append' => [''], +'Memcache::cas' => [''], +'Memcache::close' => ['bool'], +'Memcache::connect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], +'Memcache::decrement' => ['int', 'key'=>'string', 'value='=>'int'], +'Memcache::delete' => ['bool', 'key'=>'string', 'timeout='=>'int'], +'Memcache::findServer' => [''], +'Memcache::flush' => ['bool'], +'Memcache::get' => ['string|array|false', 'key'=>'string', 'flags='=>'array', 'keys='=>'array'], +'Memcache::get\'1' => ['array', 'key'=>'string[]', 'flags='=>'int[]'], +'Memcache::getExtendedStats' => ['false|array>', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'Memcache::getServerStatus' => ['int', 'host'=>'string', 'port='=>'int'], +'Memcache::getStats' => ['array', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'Memcache::getVersion' => ['string'], +'Memcache::increment' => ['int', 'key'=>'string', 'value='=>'int'], +'Memcache::pconnect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], +'Memcache::prepend' => ['string'], +'Memcache::replace' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'Memcache::set' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'Memcache::setCompressThreshold' => ['bool', 'threshold'=>'int', 'min_savings='=>'float'], +'Memcache::setFailureCallback' => [''], +'Memcache::setServerParams' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable'], +'memcache_add' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'memcache_add_server' => ['bool', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable', 'timeoutms='=>'int'], +'memcache_append' => ['', 'memcache_obj'=>'Memcache'], +'memcache_cas' => ['', 'memcache_obj'=>'Memcache'], +'memcache_close' => ['bool', 'memcache_obj'=>'Memcache'], +'memcache_connect' => ['Memcache|false', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], +'memcache_debug' => ['bool', 'on_off'=>'bool'], +'memcache_decrement' => ['int', 'memcache_obj'=>'Memcache', 'key'=>'string', 'value='=>'int'], +'memcache_delete' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'timeout='=>'int'], +'memcache_flush' => ['bool', 'memcache_obj'=>'Memcache'], +'memcache_get' => ['string', 'memcache_obj'=>'Memcache', 'key'=>'string', 'flags='=>'int'], +'memcache_get\'1' => ['array', 'memcache_obj'=>'Memcache', 'key'=>'string[]', 'flags='=>'int[]'], +'memcache_get_extended_stats' => ['array', 'memcache_obj'=>'Memcache', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'memcache_get_server_status' => ['int', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int'], +'memcache_get_stats' => ['array', 'memcache_obj'=>'Memcache', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'memcache_get_version' => ['string', 'memcache_obj'=>'Memcache'], +'memcache_increment' => ['int', 'memcache_obj'=>'Memcache', 'key'=>'string', 'value='=>'int'], +'memcache_pconnect' => ['Memcache|false', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], +'memcache_prepend' => ['string', 'memcache_obj'=>'Memcache'], +'memcache_replace' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'memcache_set' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'memcache_set_compress_threshold' => ['bool', 'memcache_obj'=>'Memcache', 'threshold'=>'int', 'min_savings='=>'float'], +'memcache_set_failure_callback' => ['', 'memcache_obj'=>'Memcache'], +'memcache_set_server_params' => ['bool', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable'], +'Memcached::__construct' => ['void', 'persistent_id='=>'?string', 'callback='=>'?callable', 'connection_str='=>'?string'], +'Memcached::add' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::addByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::addServer' => ['bool', 'host'=>'string', 'port'=>'int', 'weight='=>'int'], +'Memcached::addServers' => ['bool', 'servers'=>'array'], +'Memcached::append' => ['?bool', 'key'=>'string', 'value'=>'string'], +'Memcached::appendByKey' => ['?bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'string'], +'Memcached::cas' => ['bool', 'cas_token'=>'string|int|float', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::casByKey' => ['bool', 'cas_token'=>'string|int|float', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::decrement' => ['int|false', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], +'Memcached::decrementByKey' => ['int|false', 'server_key'=>'string', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], +'Memcached::delete' => ['bool', 'key'=>'string', 'time='=>'int'], +'Memcached::deleteByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'time='=>'int'], +'Memcached::deleteMulti' => ['array', 'keys'=>'array', 'time='=>'int'], +'Memcached::deleteMultiByKey' => ['array', 'server_key'=>'string', 'keys'=>'array', 'time='=>'int'], +'Memcached::fetch' => ['array|false'], +'Memcached::fetchAll' => ['array|false'], +'Memcached::flush' => ['bool', 'delay='=>'int'], +'Memcached::flushBuffers' => ['bool'], +'Memcached::get' => ['mixed|false', 'key'=>'string', 'cache_cb='=>'?callable', 'get_flags='=>'int'], +'Memcached::getAllKeys' => ['array|false'], +'Memcached::getByKey' => ['mixed|false', 'server_key'=>'string', 'key'=>'string', 'cache_cb='=>'?callable', 'get_flags='=>'int'], +'Memcached::getDelayed' => ['bool', 'keys'=>'array', 'with_cas='=>'bool', 'value_cb='=>'?callable'], +'Memcached::getDelayedByKey' => ['bool', 'server_key'=>'string', 'keys'=>'array', 'with_cas='=>'bool', 'value_cb='=>'?callable'], +'Memcached::getLastDisconnectedServer' => ['array|false'], +'Memcached::getLastErrorCode' => ['int'], +'Memcached::getLastErrorErrno' => ['int'], +'Memcached::getLastErrorMessage' => ['string'], +'Memcached::getMulti' => ['array|false', 'keys'=>'array', 'get_flags='=>'int'], +'Memcached::getMultiByKey' => ['array|false', 'server_key'=>'string', 'keys'=>'array', 'get_flags='=>'int'], +'Memcached::getOption' => ['mixed|false', 'option'=>'int'], +'Memcached::getResultCode' => ['int'], +'Memcached::getResultMessage' => ['string'], +'Memcached::getServerByKey' => ['array', 'server_key'=>'string'], +'Memcached::getServerList' => ['array'], +'Memcached::getStats' => ['false|array>', 'type='=>'?string'], +'Memcached::getVersion' => ['array'], +'Memcached::increment' => ['int|false', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], +'Memcached::incrementByKey' => ['int|false', 'server_key'=>'string', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], +'Memcached::isPersistent' => ['bool'], +'Memcached::isPristine' => ['bool'], +'Memcached::prepend' => ['?bool', 'key'=>'string', 'value'=>'string'], +'Memcached::prependByKey' => ['?bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'string'], +'Memcached::quit' => ['bool'], +'Memcached::replace' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::replaceByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::resetServerList' => ['bool'], +'Memcached::set' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::setBucket' => ['bool', 'host_map'=>'array', 'forward_map'=>'?array', 'replicas'=>'int'], +'Memcached::setByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], +'Memcached::setEncodingKey' => ['bool', 'key'=>'string'], +'Memcached::setMulti' => ['bool', 'items'=>'array', 'expiration='=>'int'], +'Memcached::setMultiByKey' => ['bool', 'server_key'=>'string', 'items'=>'array', 'expiration='=>'int'], +'Memcached::setOption' => ['bool', 'option'=>'int', 'value'=>'mixed'], +'Memcached::setOptions' => ['bool', 'options'=>'array'], +'Memcached::setSaslAuthData' => ['bool', 'username'=>'string', 'password'=>'string'], +'Memcached::touch' => ['bool', 'key'=>'string', 'expiration='=>'int'], +'Memcached::touchByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'expiration='=>'int'], +'MemcachePool::add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'MemcachePool::addServer' => ['bool', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'?callable', 'timeoutms='=>'int'], +'MemcachePool::append' => [''], +'MemcachePool::cas' => [''], +'MemcachePool::close' => ['bool'], +'MemcachePool::connect' => ['bool', 'host'=>'string', 'port'=>'int', 'timeout='=>'int'], +'MemcachePool::decrement' => ['int|false', 'key'=>'', 'value='=>'int|mixed'], +'MemcachePool::delete' => ['bool', 'key'=>'', 'timeout='=>'int|mixed'], +'MemcachePool::findServer' => [''], +'MemcachePool::flush' => ['bool'], +'MemcachePool::get' => ['array|string|false', 'key'=>'array|string', '&flags='=>'array|int'], +'MemcachePool::getExtendedStats' => ['false|array>', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'MemcachePool::getServerStatus' => ['int', 'host'=>'string', 'port='=>'int'], +'MemcachePool::getStats' => ['array|false', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], +'MemcachePool::getVersion' => ['string|false'], +'MemcachePool::increment' => ['int|false', 'key'=>'', 'value='=>'int|mixed'], +'MemcachePool::prepend' => ['string'], +'MemcachePool::replace' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'MemcachePool::set' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], +'MemcachePool::setCompressThreshold' => ['bool', 'thresold'=>'int', 'min_saving='=>'float'], +'MemcachePool::setFailureCallback' => [''], +'MemcachePool::setServerParams' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'?callable'], +'memory_get_peak_usage' => ['int', 'real_usage='=>'bool'], +'memory_get_usage' => ['int', 'real_usage='=>'bool'], +'memory_reset_peak_usage' => ['void'], +'MessageFormatter::__construct' => ['void', 'locale'=>'string', 'pattern'=>'string'], +'MessageFormatter::create' => ['MessageFormatter', 'locale'=>'string', 'pattern'=>'string'], +'MessageFormatter::format' => ['false|string', 'args'=>'array'], +'MessageFormatter::formatMessage' => ['false|string', 'locale'=>'string', 'pattern'=>'string', 'args'=>'array'], +'MessageFormatter::getErrorCode' => ['int'], +'MessageFormatter::getErrorMessage' => ['string'], +'MessageFormatter::getLocale' => ['string'], +'MessageFormatter::getPattern' => ['string'], +'MessageFormatter::parse' => ['array|false', 'value'=>'string'], +'MessageFormatter::parseMessage' => ['array|false', 'locale'=>'string', 'pattern'=>'string', 'source'=>'string'], +'MessageFormatter::setPattern' => ['bool', 'pattern'=>'string'], +'metaphone' => ['string', 'string'=>'string', 'max_phonemes='=>'int'], +'method_exists' => ['bool', 'object_or_class'=>'object|class-string|interface-string|enum-string', 'method'=>'string'], +'mhash' => ['string', 'algo'=>'int', 'data'=>'string', 'key='=>'?string'], +'mhash_count' => ['int'], +'mhash_get_block_size' => ['int|false', 'algo'=>'int'], +'mhash_get_hash_name' => ['string|false', 'algo'=>'int'], +'mhash_keygen_s2k' => ['string|false', 'algo'=>'int', 'password'=>'string', 'salt'=>'string', 'length'=>'int'], +'microtime' => ['string', 'as_float='=>'false'], +'microtime\'1' => ['float', 'as_float='=>'true'], +'mime_content_type' => ['string|false', 'filename'=>'string|resource'], +'min' => ['mixed', 'value'=>'non-empty-array'], +'min\'1' => ['mixed', 'value'=>'', 'values'=>'', '...args='=>''], +'ming_keypress' => ['int', 'char'=>'string'], +'ming_setcubicthreshold' => ['void', 'threshold'=>'int'], +'ming_setscale' => ['void', 'scale'=>'float'], +'ming_setswfcompression' => ['void', 'level'=>'int'], +'ming_useconstants' => ['void', 'use'=>'int'], +'ming_useswfversion' => ['void', 'version'=>'int'], +'mkdir' => ['bool', 'directory'=>'string', 'permissions='=>'int', 'recursive='=>'bool', 'context='=>'resource'], +'mktime' => ['int|false', 'hour'=>'int', 'minute='=>'int|null', 'second='=>'int|null', 'month='=>'int|null', 'day='=>'int|null', 'year='=>'int|null'], +'money_format' => ['string', 'format'=>'string', 'value'=>'float'], +'Mongo::__construct' => ['void', 'server='=>'string', 'options='=>'array', 'driver_options='=>'array'], +'Mongo::__get' => ['MongoDB', 'dbname'=>'string'], +'Mongo::__toString' => ['string'], +'Mongo::close' => ['bool'], +'Mongo::connect' => ['bool'], +'Mongo::connectUtil' => ['bool'], +'Mongo::dropDB' => ['array', 'db'=>'mixed'], +'Mongo::forceError' => ['bool'], +'Mongo::getConnections' => ['array'], +'Mongo::getHosts' => ['array'], +'Mongo::getPoolSize' => ['int'], +'Mongo::getReadPreference' => ['array'], +'Mongo::getSlave' => ['?string'], +'Mongo::getSlaveOkay' => ['bool'], +'Mongo::getWriteConcern' => ['array'], +'Mongo::killCursor' => ['', 'server_hash'=>'string', 'id'=>'MongoInt64|int'], +'Mongo::lastError' => ['?array'], +'Mongo::listDBs' => ['array'], +'Mongo::pairConnect' => ['bool'], +'Mongo::pairPersistConnect' => ['bool', 'username='=>'string', 'password='=>'string'], +'Mongo::persistConnect' => ['bool', 'username='=>'string', 'password='=>'string'], +'Mongo::poolDebug' => ['array'], +'Mongo::prevError' => ['array'], +'Mongo::resetError' => ['array'], +'Mongo::selectCollection' => ['MongoCollection', 'db'=>'string', 'collection'=>'string'], +'Mongo::selectDB' => ['MongoDB', 'name'=>'string'], +'Mongo::setPoolSize' => ['bool', 'size'=>'int'], +'Mongo::setReadPreference' => ['bool', 'readPreference'=>'string', 'tags='=>'array'], +'Mongo::setSlaveOkay' => ['bool', 'ok='=>'bool'], +'Mongo::switchSlave' => ['string'], +'MongoBinData::__construct' => ['void', 'data'=>'string', 'type='=>'int'], +'MongoBinData::__toString' => ['string'], +'MongoClient::__construct' => ['void', 'server='=>'string', 'options='=>'array', 'driver_options='=>'array'], +'MongoClient::__get' => ['MongoDB', 'dbname'=>'string'], +'MongoClient::__toString' => ['string'], +'MongoClient::close' => ['bool', 'connection='=>'bool|string'], +'MongoClient::connect' => ['bool'], +'MongoClient::dropDB' => ['array', 'db'=>'mixed'], +'MongoClient::getConnections' => ['array'], +'MongoClient::getHosts' => ['array'], +'MongoClient::getReadPreference' => ['array'], +'MongoClient::getWriteConcern' => ['array'], +'MongoClient::killCursor' => ['bool', 'server_hash'=>'string', 'id'=>'int|MongoInt64'], +'MongoClient::listDBs' => ['array'], +'MongoClient::selectCollection' => ['MongoCollection', 'db'=>'string', 'collection'=>'string'], +'MongoClient::selectDB' => ['MongoDB', 'name'=>'string'], +'MongoClient::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], +'MongoClient::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], +'MongoClient::switchSlave' => ['string'], +'MongoCode::__construct' => ['void', 'code'=>'string', 'scope='=>'array'], +'MongoCode::__toString' => ['string'], +'MongoCollection::__construct' => ['void', 'db'=>'MongoDB', 'name'=>'string'], +'MongoCollection::__get' => ['MongoCollection', 'name'=>'string'], +'MongoCollection::__toString' => ['string'], +'MongoCollection::aggregate' => ['array', 'op'=>'array', 'op='=>'array', '...args='=>'array'], +'MongoCollection::aggregate\'1' => ['array', 'pipeline'=>'array', 'options='=>'array'], +'MongoCollection::aggregateCursor' => ['MongoCommandCursor', 'command'=>'array', 'options='=>'array'], +'MongoCollection::batchInsert' => ['array|bool', 'a'=>'array', 'options='=>'array'], +'MongoCollection::count' => ['int', 'query='=>'array', 'limit='=>'int', 'skip='=>'int'], +'MongoCollection::createDBRef' => ['array', 'a'=>'array'], +'MongoCollection::createIndex' => ['array', 'keys'=>'array', 'options='=>'array'], +'MongoCollection::deleteIndex' => ['array', 'keys'=>'string|array'], +'MongoCollection::deleteIndexes' => ['array'], +'MongoCollection::distinct' => ['array|false', 'key'=>'string', 'query='=>'array'], +'MongoCollection::drop' => ['array'], +'MongoCollection::ensureIndex' => ['bool', 'keys'=>'array', 'options='=>'array'], +'MongoCollection::find' => ['MongoCursor', 'query='=>'array', 'fields='=>'array'], +'MongoCollection::findAndModify' => ['array', 'query'=>'array', 'update='=>'array', 'fields='=>'array', 'options='=>'array'], +'MongoCollection::findOne' => ['?array', 'query='=>'array', 'fields='=>'array'], +'MongoCollection::getDBRef' => ['array', 'ref'=>'array'], +'MongoCollection::getIndexInfo' => ['array'], +'MongoCollection::getName' => ['string'], +'MongoCollection::getReadPreference' => ['array'], +'MongoCollection::getSlaveOkay' => ['bool'], +'MongoCollection::getWriteConcern' => ['array'], +'MongoCollection::group' => ['array', 'keys'=>'mixed', 'initial'=>'array', 'reduce'=>'MongoCode', 'options='=>'array'], +'MongoCollection::insert' => ['bool|array', 'a'=>'array|object', 'options='=>'array'], +'MongoCollection::parallelCollectionScan' => ['MongoCommandCursor[]', 'num_cursors'=>'int'], +'MongoCollection::remove' => ['bool|array', 'criteria='=>'array', 'options='=>'array'], +'MongoCollection::save' => ['bool|array', 'a'=>'array|object', 'options='=>'array'], +'MongoCollection::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], +'MongoCollection::setSlaveOkay' => ['bool', 'ok='=>'bool'], +'MongoCollection::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], +'MongoCollection::toIndexString' => ['string', 'keys'=>'mixed'], +'MongoCollection::update' => ['bool', 'criteria'=>'array', 'newobj'=>'array', 'options='=>'array'], +'MongoCollection::validate' => ['array', 'scan_data='=>'bool'], +'MongoCommandCursor::__construct' => ['void', 'connection'=>'MongoClient', 'ns'=>'string', 'command'=>'array'], +'MongoCommandCursor::batchSize' => ['MongoCommandCursor', 'batchSize'=>'int'], +'MongoCommandCursor::createFromDocument' => ['MongoCommandCursor', 'connection'=>'MongoClient', 'hash'=>'string', 'document'=>'array'], +'MongoCommandCursor::current' => ['array'], +'MongoCommandCursor::dead' => ['bool'], +'MongoCommandCursor::getReadPreference' => ['array'], +'MongoCommandCursor::info' => ['array'], +'MongoCommandCursor::key' => ['int'], +'MongoCommandCursor::next' => ['void'], +'MongoCommandCursor::rewind' => ['array'], +'MongoCommandCursor::setReadPreference' => ['MongoCommandCursor', 'read_preference'=>'string', 'tags='=>'array'], +'MongoCommandCursor::timeout' => ['MongoCommandCursor', 'ms'=>'int'], +'MongoCommandCursor::valid' => ['bool'], +'MongoCursor::__construct' => ['void', 'connection'=>'MongoClient', 'ns'=>'string', 'query='=>'array', 'fields='=>'array'], +'MongoCursor::addOption' => ['MongoCursor', 'key'=>'string', 'value'=>'mixed'], +'MongoCursor::awaitData' => ['MongoCursor', 'wait='=>'bool'], +'MongoCursor::batchSize' => ['MongoCursor', 'num'=>'int'], +'MongoCursor::count' => ['int', 'foundonly='=>'bool'], +'MongoCursor::current' => ['array'], +'MongoCursor::dead' => ['bool'], +'MongoCursor::doQuery' => ['void'], +'MongoCursor::explain' => ['array'], +'MongoCursor::fields' => ['MongoCursor', 'f'=>'array'], +'MongoCursor::getNext' => ['array'], +'MongoCursor::getReadPreference' => ['array'], +'MongoCursor::hasNext' => ['bool'], +'MongoCursor::hint' => ['MongoCursor', 'key_pattern'=>'string|array|object'], +'MongoCursor::immortal' => ['MongoCursor', 'liveforever='=>'bool'], +'MongoCursor::info' => ['array'], +'MongoCursor::key' => ['string'], +'MongoCursor::limit' => ['MongoCursor', 'num'=>'int'], +'MongoCursor::maxTimeMS' => ['MongoCursor', 'ms'=>'int'], +'MongoCursor::next' => ['array'], +'MongoCursor::partial' => ['MongoCursor', 'okay='=>'bool'], +'MongoCursor::reset' => ['void'], +'MongoCursor::rewind' => ['void'], +'MongoCursor::setFlag' => ['MongoCursor', 'flag'=>'int', 'set='=>'bool'], +'MongoCursor::setReadPreference' => ['MongoCursor', 'read_preference'=>'string', 'tags='=>'array'], +'MongoCursor::skip' => ['MongoCursor', 'num'=>'int'], +'MongoCursor::slaveOkay' => ['MongoCursor', 'okay='=>'bool'], +'MongoCursor::snapshot' => ['MongoCursor'], +'MongoCursor::sort' => ['MongoCursor', 'fields'=>'array'], +'MongoCursor::tailable' => ['MongoCursor', 'tail='=>'bool'], +'MongoCursor::timeout' => ['MongoCursor', 'ms'=>'int'], +'MongoCursor::valid' => ['bool'], +'MongoCursorException::__clone' => ['void'], +'MongoCursorException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'MongoCursorException::__toString' => ['string'], +'MongoCursorException::__wakeup' => ['void'], +'MongoCursorException::getCode' => ['int'], +'MongoCursorException::getFile' => ['string'], +'MongoCursorException::getHost' => ['string'], +'MongoCursorException::getLine' => ['int'], +'MongoCursorException::getMessage' => ['string'], +'MongoCursorException::getPrevious' => ['Exception|Throwable'], +'MongoCursorException::getTrace' => ['list\',args?:array}>'], +'MongoCursorException::getTraceAsString' => ['string'], +'MongoCursorInterface::__construct' => ['void'], +'MongoCursorInterface::batchSize' => ['MongoCursorInterface', 'batchSize'=>'int'], +'MongoCursorInterface::current' => ['mixed'], +'MongoCursorInterface::dead' => ['bool'], +'MongoCursorInterface::getReadPreference' => ['array'], +'MongoCursorInterface::info' => ['array'], +'MongoCursorInterface::key' => ['int|string'], +'MongoCursorInterface::next' => ['void'], +'MongoCursorInterface::rewind' => ['void'], +'MongoCursorInterface::setReadPreference' => ['MongoCursorInterface', 'read_preference'=>'string', 'tags='=>'array'], +'MongoCursorInterface::timeout' => ['MongoCursorInterface', 'ms'=>'int'], +'MongoCursorInterface::valid' => ['bool'], +'MongoDate::__construct' => ['void', 'second='=>'int', 'usecond='=>'int'], +'MongoDate::__toString' => ['string'], +'MongoDate::toDateTime' => ['DateTime'], +'MongoDB::__construct' => ['void', 'conn'=>'MongoClient', 'name'=>'string'], +'MongoDB::__get' => ['MongoCollection', 'name'=>'string'], +'MongoDB::__toString' => ['string'], +'MongoDB::authenticate' => ['array', 'username'=>'string', 'password'=>'string'], +'MongoDB::command' => ['array', 'command'=>'array'], +'MongoDB::createCollection' => ['MongoCollection', 'name'=>'string', 'capped='=>'bool', 'size='=>'int', 'max='=>'int'], +'MongoDB::createDBRef' => ['array', 'collection'=>'string', 'a'=>'mixed'], +'MongoDB::drop' => ['array'], +'MongoDB::dropCollection' => ['array', 'coll'=>'MongoCollection|string'], +'MongoDB::execute' => ['array', 'code'=>'MongoCode|string', 'args='=>'array'], +'MongoDB::forceError' => ['bool'], +'MongoDB::getCollectionInfo' => ['array', 'options='=>'array'], +'MongoDB::getCollectionNames' => ['array', 'options='=>'array'], +'MongoDB::getDBRef' => ['array', 'ref'=>'array'], +'MongoDB::getGridFS' => ['MongoGridFS', 'prefix='=>'string'], +'MongoDB::getProfilingLevel' => ['int'], +'MongoDB::getReadPreference' => ['array'], +'MongoDB::getSlaveOkay' => ['bool'], +'MongoDB::getWriteConcern' => ['array'], +'MongoDB::lastError' => ['array'], +'MongoDB::listCollections' => ['array'], +'MongoDB::prevError' => ['array'], +'MongoDB::repair' => ['array', 'preserve_cloned_files='=>'bool', 'backup_original_files='=>'bool'], +'MongoDB::resetError' => ['array'], +'MongoDB::selectCollection' => ['MongoCollection', 'name'=>'string'], +'MongoDB::setProfilingLevel' => ['int', 'level'=>'int'], +'MongoDB::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], +'MongoDB::setSlaveOkay' => ['bool', 'ok='=>'bool'], +'MongoDB::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], +'MongoDB\BSON\Binary::__construct' => ['void', 'data' => 'string', 'type' => 'int'], +'MongoDB\BSON\Binary::getData' => ['string'], +'MongoDB\BSON\Binary::getType' => ['int'], +'MongoDB\BSON\Binary::__toString' => ['string'], +'MongoDB\BSON\Binary::serialize' => ['string'], +'MongoDB\BSON\Binary::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Binary::jsonSerialize' => ['mixed'], +'MongoDB\BSON\BinaryInterface::getData' => ['string'], +'MongoDB\BSON\BinaryInterface::getType' => ['int'], +'MongoDB\BSON\BinaryInterface::__toString' => ['string'], +'MongoDB\BSON\DBPointer::__toString' => ['string'], +'MongoDB\BSON\DBPointer::serialize' => ['string'], +'MongoDB\BSON\DBPointer::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\DBPointer::jsonSerialize' => ['mixed'], +'MongoDB\BSON\Decimal128::__construct' => ['void', 'value' => 'string'], +'MongoDB\BSON\Decimal128::__toString' => ['string'], +'MongoDB\BSON\Decimal128::serialize' => ['string'], +'MongoDB\BSON\Decimal128::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Decimal128::jsonSerialize' => ['mixed'], +'MongoDB\BSON\Decimal128Interface::__toString' => ['string'], +'MongoDB\BSON\Int64::__toString' => ['string'], +'MongoDB\BSON\Int64::serialize' => ['string'], +'MongoDB\BSON\Int64::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Int64::jsonSerialize' => ['mixed'], +'MongoDB\BSON\Javascript::__construct' => ['void', 'code' => 'string', 'scope=' => 'object|array|null'], +'MongoDB\BSON\Javascript::getCode' => ['string'], +'MongoDB\BSON\Javascript::getScope' => ['?object'], +'MongoDB\BSON\Javascript::__toString' => ['string'], +'MongoDB\BSON\Javascript::serialize' => ['string'], +'MongoDB\BSON\Javascript::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Javascript::jsonSerialize' => ['mixed'], +'MongoDB\BSON\JavascriptInterface::getCode' => ['string'], +'MongoDB\BSON\JavascriptInterface::getScope' => ['?object'], +'MongoDB\BSON\JavascriptInterface::__toString' => ['string'], +'MongoDB\BSON\MaxKey::serialize' => ['string'], +'MongoDB\BSON\MaxKey::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\MaxKey::jsonSerialize' => ['mixed'], +'MongoDB\BSON\MinKey::serialize' => ['string'], +'MongoDB\BSON\MinKey::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\MinKey::jsonSerialize' => ['mixed'], +'MongoDB\BSON\ObjectId::__construct' => ['void', 'id=' => '?string'], +'MongoDB\BSON\ObjectId::getTimestamp' => ['int'], +'MongoDB\BSON\ObjectId::__toString' => ['string'], +'MongoDB\BSON\ObjectId::serialize' => ['string'], +'MongoDB\BSON\ObjectId::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\ObjectId::jsonSerialize' => ['mixed'], +'MongoDB\BSON\ObjectIdInterface::getTimestamp' => ['int'], +'MongoDB\BSON\ObjectIdInterface::__toString' => ['string'], +'MongoDB\BSON\Regex::__construct' => ['void', 'pattern' => 'string', 'flags=' => 'string'], +'MongoDB\BSON\Regex::getPattern' => ['string'], +'MongoDB\BSON\Regex::getFlags' => ['string'], +'MongoDB\BSON\Regex::__toString' => ['string'], +'MongoDB\BSON\Regex::serialize' => ['string'], +'MongoDB\BSON\Regex::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Regex::jsonSerialize' => ['mixed'], +'MongoDB\BSON\RegexInterface::getPattern' => ['string'], +'MongoDB\BSON\RegexInterface::getFlags' => ['string'], +'MongoDB\BSON\RegexInterface::__toString' => ['string'], +'MongoDB\BSON\Serializable::bsonSerialize' => ['object|array'], +'MongoDB\BSON\Symbol::__toString' => ['string'], +'MongoDB\BSON\Symbol::serialize' => ['string'], +'MongoDB\BSON\Symbol::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Symbol::jsonSerialize' => ['mixed'], +'MongoDB\BSON\Timestamp::__construct' => ['void', 'increment' => 'string|int', 'timestamp' => 'string|int'], +'MongoDB\BSON\Timestamp::getTimestamp' => ['int'], +'MongoDB\BSON\Timestamp::getIncrement' => ['int'], +'MongoDB\BSON\Timestamp::__toString' => ['string'], +'MongoDB\BSON\Timestamp::serialize' => ['string'], +'MongoDB\BSON\Timestamp::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Timestamp::jsonSerialize' => ['mixed'], +'MongoDB\BSON\TimestampInterface::getTimestamp' => ['int'], +'MongoDB\BSON\TimestampInterface::getIncrement' => ['int'], +'MongoDB\BSON\TimestampInterface::__toString' => ['string'], +'MongoDB\BSON\UTCDateTime::__construct' => ['void', 'milliseconds=' => 'DateTimeInterface|string|int|float|null'], +'MongoDB\BSON\UTCDateTime::toDateTime' => ['DateTime'], +'MongoDB\BSON\UTCDateTime::__toString' => ['string'], +'MongoDB\BSON\UTCDateTime::serialize' => ['string'], +'MongoDB\BSON\UTCDateTime::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\UTCDateTime::jsonSerialize' => ['mixed'], +'MongoDB\BSON\UTCDateTimeInterface::toDateTime' => ['DateTime'], +'MongoDB\BSON\UTCDateTimeInterface::__toString' => ['string'], +'MongoDB\BSON\Undefined::__toString' => ['string'], +'MongoDB\BSON\Undefined::serialize' => ['string'], +'MongoDB\BSON\Undefined::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\BSON\Undefined::jsonSerialize' => ['mixed'], +'MongoDB\BSON\Unserializable::bsonUnserialize' => ['void', 'data' => 'array'], +'MongoDB\Driver\BulkWrite::__construct' => ['void', 'options=' => '?array'], +'MongoDB\Driver\BulkWrite::count' => ['int'], +'MongoDB\Driver\BulkWrite::delete' => ['void', 'filter' => 'object|array', 'deleteOptions=' => '?array'], +'MongoDB\Driver\BulkWrite::insert' => ['mixed', 'document' => 'object|array'], +'MongoDB\Driver\BulkWrite::update' => ['void', 'filter' => 'object|array', 'newObj' => 'object|array', 'updateOptions=' => '?array'], +'MongoDB\Driver\ClientEncryption::__construct' => ['void', 'options' => 'array'], +'MongoDB\Driver\ClientEncryption::addKeyAltName' => ['?object', 'keyId' => 'MongoDB\BSON\Binary', 'keyAltName' => 'string'], +'MongoDB\Driver\ClientEncryption::createDataKey' => ['MongoDB\BSON\Binary', 'kmsProvider' => 'string', 'options=' => '?array'], +'MongoDB\Driver\ClientEncryption::decrypt' => ['mixed', 'value' => 'MongoDB\BSON\Binary'], +'MongoDB\Driver\ClientEncryption::deleteKey' => ['object', 'keyId' => 'MongoDB\BSON\Binary'], +'MongoDB\Driver\ClientEncryption::encrypt' => ['MongoDB\BSON\Binary', 'value' => 'mixed', 'options=' => '?array'], +'MongoDB\Driver\ClientEncryption::getKey' => ['?object', 'keyId' => 'MongoDB\BSON\Binary'], +'MongoDB\Driver\ClientEncryption::getKeyByAltName' => ['?object', 'keyAltName' => 'string'], +'MongoDB\Driver\ClientEncryption::getKeys' => ['MongoDB\Driver\Cursor'], +'MongoDB\Driver\ClientEncryption::removeKeyAltName' => ['?object', 'keyId' => 'MongoDB\BSON\Binary', 'keyAltName' => 'string'], +'MongoDB\Driver\ClientEncryption::rewrapManyDataKey' => ['object', 'filter' => 'object|array', 'options=' => '?array'], +'MongoDB\Driver\Command::__construct' => ['void', 'document' => 'object|array', 'commandOptions=' => '?array'], +'MongoDB\Driver\Cursor::current' => ['object|array|null'], +'MongoDB\Driver\Cursor::getId' => ['MongoDB\Driver\CursorId'], +'MongoDB\Driver\Cursor::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\Cursor::isDead' => ['bool'], +'MongoDB\Driver\Cursor::key' => ['?int'], +'MongoDB\Driver\Cursor::next' => ['void'], +'MongoDB\Driver\Cursor::rewind' => ['void'], +'MongoDB\Driver\Cursor::setTypeMap' => ['void', 'typemap' => 'array'], +'MongoDB\Driver\Cursor::toArray' => ['array'], +'MongoDB\Driver\Cursor::valid' => ['bool'], +'MongoDB\Driver\CursorId::__toString' => ['string'], +'MongoDB\Driver\CursorId::serialize' => ['string'], +'MongoDB\Driver\CursorId::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\Driver\CursorInterface::getId' => ['MongoDB\Driver\CursorId'], +'MongoDB\Driver\CursorInterface::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\CursorInterface::isDead' => ['bool'], +'MongoDB\Driver\CursorInterface::setTypeMap' => ['void', 'typemap' => 'array'], +'MongoDB\Driver\CursorInterface::toArray' => ['array'], +'MongoDB\Driver\Exception\AuthenticationException::__toString' => ['string'], +'MongoDB\Driver\Exception\BulkWriteException::__toString' => ['string'], +'MongoDB\Driver\Exception\CommandException::getResultDocument' => ['object'], +'MongoDB\Driver\Exception\CommandException::__toString' => ['string'], +'MongoDB\Driver\Exception\ConnectionException::__toString' => ['string'], +'MongoDB\Driver\Exception\ConnectionTimeoutException::__toString' => ['string'], +'MongoDB\Driver\Exception\EncryptionException::__toString' => ['string'], +'MongoDB\Driver\Exception\Exception::__toString' => ['string'], +'MongoDB\Driver\Exception\ExecutionTimeoutException::__toString' => ['string'], +'MongoDB\Driver\Exception\InvalidArgumentException::__toString' => ['string'], +'MongoDB\Driver\Exception\LogicException::__toString' => ['string'], +'MongoDB\Driver\Exception\RuntimeException::hasErrorLabel' => ['bool', 'errorLabel' => 'string'], +'MongoDB\Driver\Exception\RuntimeException::__toString' => ['string'], +'MongoDB\Driver\Exception\SSLConnectionException::__toString' => ['string'], +'MongoDB\Driver\Exception\ServerException::__toString' => ['string'], +'MongoDB\Driver\Exception\UnexpectedValueException::__toString' => ['string'], +'MongoDB\Driver\Exception\WriteException::getWriteResult' => ['MongoDB\Driver\WriteResult'], +'MongoDB\Driver\Exception\WriteException::__toString' => ['string'], +'MongoDB\Driver\Manager::__construct' => ['void', 'uri=' => '?string', 'uriOptions=' => '?array', 'driverOptions=' => '?array'], +'MongoDB\Driver\Manager::addSubscriber' => ['void', 'subscriber' => 'MongoDB\Driver\Monitoring\Subscriber'], +'MongoDB\Driver\Manager::createClientEncryption' => ['MongoDB\Driver\ClientEncryption', 'options' => 'array'], +'MongoDB\Driver\Manager::executeBulkWrite' => ['MongoDB\Driver\WriteResult', 'namespace' => 'string', 'bulk' => 'MongoDB\Driver\BulkWrite', 'options=' => 'MongoDB\Driver\WriteConcern|array|null'], +'MongoDB\Driver\Manager::executeCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], +'MongoDB\Driver\Manager::executeQuery' => ['MongoDB\Driver\Cursor', 'namespace' => 'string', 'query' => 'MongoDB\Driver\Query', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], +'MongoDB\Driver\Manager::executeReadCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Manager::executeReadWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Manager::executeWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Manager::getEncryptedFieldsMap' => ['object|array|null'], +'MongoDB\Driver\Manager::getReadConcern' => ['MongoDB\Driver\ReadConcern'], +'MongoDB\Driver\Manager::getReadPreference' => ['MongoDB\Driver\ReadPreference'], +'MongoDB\Driver\Manager::getServers' => ['array'], +'MongoDB\Driver\Manager::getWriteConcern' => ['MongoDB\Driver\WriteConcern'], +'MongoDB\Driver\Manager::removeSubscriber' => ['void', 'subscriber' => 'MongoDB\Driver\Monitoring\Subscriber'], +'MongoDB\Driver\Manager::selectServer' => ['MongoDB\Driver\Server', 'readPreference=' => '?MongoDB\Driver\ReadPreference'], +'MongoDB\Driver\Manager::startSession' => ['MongoDB\Driver\Session', 'options=' => '?array'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName' => ['string'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros' => ['int'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getError' => ['Exception'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId' => ['string'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getReply' => ['object'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId' => ['string'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId' => ['?int'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand' => ['object'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName' => ['string'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName' => ['string'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId' => ['string'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId' => ['string'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId' => ['?int'], +'MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandStartedEvent'], +'MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandSucceededEvent'], +'MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandFailedEvent'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName' => ['string'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros' => ['int'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId' => ['string'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply' => ['object'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId' => ['string'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId' => ['?int'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerChangedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerClosedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerOpeningEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyChangedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyClosedEvent'], +'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyOpeningEvent'], +'MongoDB\Driver\Monitoring\ServerChangedEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerChangedEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription' => ['MongoDB\Driver\ServerDescription'], +'MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription' => ['MongoDB\Driver\ServerDescription'], +'MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\ServerClosedEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerClosedEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros' => ['int'], +'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError' => ['Exception'], +'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited' => ['bool'], +'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited' => ['bool'], +'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros' => ['int'], +'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply' => ['object'], +'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited' => ['bool'], +'MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort' => ['int'], +'MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost' => ['string'], +'MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription' => ['MongoDB\Driver\TopologyDescription'], +'MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription' => ['MongoDB\Driver\TopologyDescription'], +'MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], +'MongoDB\Driver\Query::__construct' => ['void', 'filter' => 'object|array', 'queryOptions=' => '?array'], +'MongoDB\Driver\ReadConcern::__construct' => ['void', 'level=' => '?string'], +'MongoDB\Driver\ReadConcern::getLevel' => ['?string'], +'MongoDB\Driver\ReadConcern::isDefault' => ['bool'], +'MongoDB\Driver\ReadConcern::bsonSerialize' => ['object|array'], +'MongoDB\Driver\ReadConcern::serialize' => ['string'], +'MongoDB\Driver\ReadConcern::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\Driver\ReadPreference::__construct' => ['void', 'mode' => 'string|int', 'tagSets=' => '?array', 'options=' => '?array'], +'MongoDB\Driver\ReadPreference::getHedge' => ['?object'], +'MongoDB\Driver\ReadPreference::getMaxStalenessSeconds' => ['int'], +'MongoDB\Driver\ReadPreference::getMode' => ['int'], +'MongoDB\Driver\ReadPreference::getModeString' => ['string'], +'MongoDB\Driver\ReadPreference::getTagSets' => ['array'], +'MongoDB\Driver\ReadPreference::bsonSerialize' => ['object|array'], +'MongoDB\Driver\ReadPreference::serialize' => ['string'], +'MongoDB\Driver\ReadPreference::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\Driver\Server::executeBulkWrite' => ['MongoDB\Driver\WriteResult', 'namespace' => 'string', 'bulkWrite' => 'MongoDB\Driver\BulkWrite', 'options=' => 'MongoDB\Driver\WriteConcern|array|null'], +'MongoDB\Driver\Server::executeCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], +'MongoDB\Driver\Server::executeQuery' => ['MongoDB\Driver\Cursor', 'namespace' => 'string', 'query' => 'MongoDB\Driver\Query', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], +'MongoDB\Driver\Server::executeReadCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Server::executeReadWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Server::executeWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], +'MongoDB\Driver\Server::getHost' => ['string'], +'MongoDB\Driver\Server::getInfo' => ['array'], +'MongoDB\Driver\Server::getLatency' => ['?int'], +'MongoDB\Driver\Server::getPort' => ['int'], +'MongoDB\Driver\Server::getServerDescription' => ['MongoDB\Driver\ServerDescription'], +'MongoDB\Driver\Server::getTags' => ['array'], +'MongoDB\Driver\Server::getType' => ['int'], +'MongoDB\Driver\Server::isArbiter' => ['bool'], +'MongoDB\Driver\Server::isHidden' => ['bool'], +'MongoDB\Driver\Server::isPassive' => ['bool'], +'MongoDB\Driver\Server::isPrimary' => ['bool'], +'MongoDB\Driver\Server::isSecondary' => ['bool'], +'MongoDB\Driver\ServerApi::__construct' => ['void', 'version' => 'string', 'strict=' => '?bool', 'deprecationErrors=' => '?bool'], +'MongoDB\Driver\ServerApi::bsonSerialize' => ['object|array'], +'MongoDB\Driver\ServerApi::serialize' => ['string'], +'MongoDB\Driver\ServerApi::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\Driver\ServerDescription::getHelloResponse' => ['array'], +'MongoDB\Driver\ServerDescription::getHost' => ['string'], +'MongoDB\Driver\ServerDescription::getLastUpdateTime' => ['int'], +'MongoDB\Driver\ServerDescription::getPort' => ['int'], +'MongoDB\Driver\ServerDescription::getRoundTripTime' => ['?int'], +'MongoDB\Driver\ServerDescription::getType' => ['string'], +'MongoDB\Driver\Session::abortTransaction' => ['void'], +'MongoDB\Driver\Session::advanceClusterTime' => ['void', 'clusterTime' => 'object|array'], +'MongoDB\Driver\Session::advanceOperationTime' => ['void', 'operationTime' => 'MongoDB\BSON\TimestampInterface'], +'MongoDB\Driver\Session::commitTransaction' => ['void'], +'MongoDB\Driver\Session::endSession' => ['void'], +'MongoDB\Driver\Session::getClusterTime' => ['?object'], +'MongoDB\Driver\Session::getLogicalSessionId' => ['object'], +'MongoDB\Driver\Session::getOperationTime' => ['?MongoDB\BSON\Timestamp'], +'MongoDB\Driver\Session::getServer' => ['?MongoDB\Driver\Server'], +'MongoDB\Driver\Session::getTransactionOptions' => ['?array'], +'MongoDB\Driver\Session::getTransactionState' => ['string'], +'MongoDB\Driver\Session::isDirty' => ['bool'], +'MongoDB\Driver\Session::isInTransaction' => ['bool'], +'MongoDB\Driver\Session::startTransaction' => ['void', 'options=' => '?array'], +'MongoDB\Driver\TopologyDescription::getServers' => ['array'], +'MongoDB\Driver\TopologyDescription::getType' => ['string'], +'MongoDB\Driver\TopologyDescription::hasReadableServer' => ['bool', 'readPreference=' => '?MongoDB\Driver\ReadPreference'], +'MongoDB\Driver\TopologyDescription::hasWritableServer' => ['bool'], +'MongoDB\Driver\WriteConcern::__construct' => ['void', 'w' => 'string|int', 'wtimeout=' => '?int', 'journal=' => '?bool'], +'MongoDB\Driver\WriteConcern::getJournal' => ['?bool'], +'MongoDB\Driver\WriteConcern::getW' => ['string|int|null'], +'MongoDB\Driver\WriteConcern::getWtimeout' => ['int'], +'MongoDB\Driver\WriteConcern::isDefault' => ['bool'], +'MongoDB\Driver\WriteConcern::bsonSerialize' => ['object|array'], +'MongoDB\Driver\WriteConcern::serialize' => ['string'], +'MongoDB\Driver\WriteConcern::unserialize' => ['void', 'serialized' => 'string'], +'MongoDB\Driver\WriteConcernError::getCode' => ['int'], +'MongoDB\Driver\WriteConcernError::getInfo' => ['?object'], +'MongoDB\Driver\WriteConcernError::getMessage' => ['string'], +'MongoDB\Driver\WriteError::getCode' => ['int'], +'MongoDB\Driver\WriteError::getIndex' => ['int'], +'MongoDB\Driver\WriteError::getInfo' => ['?object'], +'MongoDB\Driver\WriteError::getMessage' => ['string'], +'MongoDB\Driver\WriteResult::getInsertedCount' => ['?int'], +'MongoDB\Driver\WriteResult::getMatchedCount' => ['?int'], +'MongoDB\Driver\WriteResult::getModifiedCount' => ['?int'], +'MongoDB\Driver\WriteResult::getDeletedCount' => ['?int'], +'MongoDB\Driver\WriteResult::getUpsertedCount' => ['?int'], +'MongoDB\Driver\WriteResult::getServer' => ['MongoDB\Driver\Server'], +'MongoDB\Driver\WriteResult::getUpsertedIds' => ['array'], +'MongoDB\Driver\WriteResult::getWriteConcernError' => ['?MongoDB\Driver\WriteConcernError'], +'MongoDB\Driver\WriteResult::getWriteErrors' => ['array'], +'MongoDB\Driver\WriteResult::isAcknowledged' => ['bool'], +'MongoDBRef::create' => ['array', 'collection'=>'string', 'id'=>'mixed', 'database='=>'string'], +'MongoDBRef::get' => ['?array', 'db'=>'MongoDB', 'ref'=>'array'], +'MongoDBRef::isRef' => ['bool', 'ref'=>'mixed'], +'MongoDeleteBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], +'MongoException::__clone' => ['void'], +'MongoException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'MongoException::__toString' => ['string'], +'MongoException::__wakeup' => ['void'], +'MongoException::getCode' => ['int'], +'MongoException::getFile' => ['string'], +'MongoException::getLine' => ['int'], +'MongoException::getMessage' => ['string'], +'MongoException::getPrevious' => ['Exception|Throwable'], +'MongoException::getTrace' => ['list\',args?:array}>'], +'MongoException::getTraceAsString' => ['string'], +'MongoGridFS::__construct' => ['void', 'db'=>'MongoDB', 'prefix='=>'string', 'chunks='=>'mixed'], +'MongoGridFS::__get' => ['MongoCollection', 'name'=>'string'], +'MongoGridFS::__toString' => ['string'], +'MongoGridFS::aggregate' => ['array', 'pipeline'=>'array', 'op'=>'array', 'pipelineOperators'=>'array'], +'MongoGridFS::aggregateCursor' => ['MongoCommandCursor', 'pipeline'=>'array', 'options'=>'array'], +'MongoGridFS::batchInsert' => ['mixed', 'a'=>'array', 'options='=>'array'], +'MongoGridFS::count' => ['int', 'query='=>'stdClass|array'], +'MongoGridFS::createDBRef' => ['array', 'a'=>'array'], +'MongoGridFS::createIndex' => ['array', 'keys'=>'array', 'options='=>'array'], +'MongoGridFS::delete' => ['bool', 'id'=>'mixed'], +'MongoGridFS::deleteIndex' => ['array', 'keys'=>'array|string'], +'MongoGridFS::deleteIndexes' => ['array'], +'MongoGridFS::distinct' => ['array|bool', 'key'=>'string', 'query='=>'?array'], +'MongoGridFS::drop' => ['array'], +'MongoGridFS::ensureIndex' => ['bool', 'keys'=>'array', 'options='=>'array'], +'MongoGridFS::find' => ['MongoGridFSCursor', 'query='=>'array', 'fields='=>'array'], +'MongoGridFS::findAndModify' => ['array', 'query'=>'array', 'update='=>'?array', 'fields='=>'?array', 'options='=>'?array'], +'MongoGridFS::findOne' => ['?MongoGridFSFile', 'query='=>'mixed', 'fields='=>'mixed'], +'MongoGridFS::get' => ['?MongoGridFSFile', 'id'=>'mixed'], +'MongoGridFS::getDBRef' => ['array', 'ref'=>'array'], +'MongoGridFS::getIndexInfo' => ['array'], +'MongoGridFS::getName' => ['string'], +'MongoGridFS::getReadPreference' => ['array'], +'MongoGridFS::getSlaveOkay' => ['bool'], +'MongoGridFS::group' => ['array', 'keys'=>'mixed', 'initial'=>'array', 'reduce'=>'MongoCode', 'condition='=>'array'], +'MongoGridFS::insert' => ['array|bool', 'a'=>'array|object', 'options='=>'array'], +'MongoGridFS::put' => ['mixed', 'filename'=>'string', 'extra='=>'array'], +'MongoGridFS::remove' => ['bool', 'criteria='=>'array', 'options='=>'array'], +'MongoGridFS::save' => ['array|bool', 'a'=>'array|object', 'options='=>'array'], +'MongoGridFS::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags'=>'array'], +'MongoGridFS::setSlaveOkay' => ['bool', 'ok='=>'bool'], +'MongoGridFS::storeBytes' => ['mixed', 'bytes'=>'string', 'extra='=>'array', 'options='=>'array'], +'MongoGridFS::storeFile' => ['mixed', 'filename'=>'string', 'extra='=>'array', 'options='=>'array'], +'MongoGridFS::storeUpload' => ['mixed', 'name'=>'string', 'filename='=>'string'], +'MongoGridFS::toIndexString' => ['string', 'keys'=>'mixed'], +'MongoGridFS::update' => ['bool', 'criteria'=>'array', 'newobj'=>'array', 'options='=>'array'], +'MongoGridFS::validate' => ['array', 'scan_data='=>'bool'], +'MongoGridFSCursor::__construct' => ['void', 'gridfs'=>'MongoGridFS', 'connection'=>'resource', 'ns'=>'string', 'query'=>'array', 'fields'=>'array'], +'MongoGridFSCursor::addOption' => ['MongoCursor', 'key'=>'string', 'value'=>'mixed'], +'MongoGridFSCursor::awaitData' => ['MongoCursor', 'wait='=>'bool'], +'MongoGridFSCursor::batchSize' => ['MongoCursor', 'batchSize'=>'int'], +'MongoGridFSCursor::count' => ['int', 'all='=>'bool'], +'MongoGridFSCursor::current' => ['MongoGridFSFile'], +'MongoGridFSCursor::dead' => ['bool'], +'MongoGridFSCursor::doQuery' => ['void'], +'MongoGridFSCursor::explain' => ['array'], +'MongoGridFSCursor::fields' => ['MongoCursor', 'f'=>'array'], +'MongoGridFSCursor::getNext' => ['MongoGridFSFile'], +'MongoGridFSCursor::getReadPreference' => ['array'], +'MongoGridFSCursor::hasNext' => ['bool'], +'MongoGridFSCursor::hint' => ['MongoCursor', 'key_pattern'=>'mixed'], +'MongoGridFSCursor::immortal' => ['MongoCursor', 'liveForever='=>'bool'], +'MongoGridFSCursor::info' => ['array'], +'MongoGridFSCursor::key' => ['string'], +'MongoGridFSCursor::limit' => ['MongoCursor', 'num'=>'int'], +'MongoGridFSCursor::maxTimeMS' => ['MongoCursor', 'ms'=>'int'], +'MongoGridFSCursor::next' => ['void'], +'MongoGridFSCursor::partial' => ['MongoCursor', 'okay='=>'bool'], +'MongoGridFSCursor::reset' => ['void'], +'MongoGridFSCursor::rewind' => ['void'], +'MongoGridFSCursor::setFlag' => ['MongoCursor', 'flag'=>'int', 'set='=>'bool'], +'MongoGridFSCursor::setReadPreference' => ['MongoCursor', 'read_preference'=>'string', 'tags'=>'array'], +'MongoGridFSCursor::skip' => ['MongoCursor', 'num'=>'int'], +'MongoGridFSCursor::slaveOkay' => ['MongoCursor', 'okay='=>'bool'], +'MongoGridFSCursor::snapshot' => ['MongoCursor'], +'MongoGridFSCursor::sort' => ['MongoCursor', 'fields'=>'array'], +'MongoGridFSCursor::tailable' => ['MongoCursor', 'tail='=>'bool'], +'MongoGridFSCursor::timeout' => ['MongoCursor', 'ms'=>'int'], +'MongoGridFSCursor::valid' => ['bool'], +'MongoGridfsFile::__construct' => ['void', 'gridfs'=>'MongoGridFS', 'file'=>'array'], +'MongoGridFSFile::getBytes' => ['string'], +'MongoGridFSFile::getFilename' => ['string'], +'MongoGridFSFile::getResource' => ['resource'], +'MongoGridFSFile::getSize' => ['int'], +'MongoGridFSFile::write' => ['int', 'filename='=>'string'], +'MongoId::__construct' => ['void', 'id='=>'string|MongoId'], +'MongoId::__set_state' => ['MongoId', 'props'=>'array'], +'MongoId::__toString' => ['string'], +'MongoId::getHostname' => ['string'], +'MongoId::getInc' => ['int'], +'MongoId::getPID' => ['int'], +'MongoId::getTimestamp' => ['int'], +'MongoId::isValid' => ['bool', 'value'=>'mixed'], +'MongoInsertBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], +'MongoInt32::__construct' => ['void', 'value'=>'string'], +'MongoInt32::__toString' => ['string'], +'MongoInt64::__construct' => ['void', 'value'=>'string'], +'MongoInt64::__toString' => ['string'], +'MongoLog::getCallback' => ['callable'], +'MongoLog::getLevel' => ['int'], +'MongoLog::getModule' => ['int'], +'MongoLog::setCallback' => ['void', 'log_function'=>'callable'], +'MongoLog::setLevel' => ['void', 'level'=>'int'], +'MongoLog::setModule' => ['void', 'module'=>'int'], +'MongoPool::getSize' => ['int'], +'MongoPool::info' => ['array'], +'MongoPool::setSize' => ['bool', 'size'=>'int'], +'MongoRegex::__construct' => ['void', 'regex'=>'string'], +'MongoRegex::__toString' => ['string'], +'MongoResultException::__clone' => ['void'], +'MongoResultException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'MongoResultException::__toString' => ['string'], +'MongoResultException::__wakeup' => ['void'], +'MongoResultException::getCode' => ['int'], +'MongoResultException::getDocument' => ['array'], +'MongoResultException::getFile' => ['string'], +'MongoResultException::getLine' => ['int'], +'MongoResultException::getMessage' => ['string'], +'MongoResultException::getPrevious' => ['Exception|Throwable'], +'MongoResultException::getTrace' => ['list\',args?:array}>'], +'MongoResultException::getTraceAsString' => ['string'], +'MongoTimestamp::__construct' => ['void', 'second='=>'int', 'inc='=>'int'], +'MongoTimestamp::__toString' => ['string'], +'MongoUpdateBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], +'MongoUpdateBatch::add' => ['bool', 'item'=>'array'], +'MongoUpdateBatch::execute' => ['array', 'write_options'=>'array'], +'MongoWriteBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'batch_type'=>'string', 'write_options'=>'array'], +'MongoWriteBatch::add' => ['bool', 'item'=>'array'], +'MongoWriteBatch::execute' => ['array', 'write_options'=>'array'], +'MongoWriteConcernException::__clone' => ['void'], +'MongoWriteConcernException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'MongoWriteConcernException::__toString' => ['string'], +'MongoWriteConcernException::__wakeup' => ['void'], +'MongoWriteConcernException::getCode' => ['int'], +'MongoWriteConcernException::getDocument' => ['array'], +'MongoWriteConcernException::getFile' => ['string'], +'MongoWriteConcernException::getLine' => ['int'], +'MongoWriteConcernException::getMessage' => ['string'], +'MongoWriteConcernException::getPrevious' => ['Exception|Throwable'], +'MongoWriteConcernException::getTrace' => ['list\',args?:array}>'], +'MongoWriteConcernException::getTraceAsString' => ['string'], +'monitor_custom_event' => ['void', 'class'=>'string', 'text'=>'string', 'severe='=>'int', 'user_data='=>'mixed'], +'monitor_httperror_event' => ['void', 'error_code'=>'int', 'url'=>'string', 'severe='=>'int'], +'monitor_license_info' => ['array'], +'monitor_pass_error' => ['void', 'errno'=>'int', 'errstr'=>'string', 'errfile'=>'string', 'errline'=>'int'], +'monitor_set_aggregation_hint' => ['void', 'hint'=>'string'], +'move_uploaded_file' => ['bool', 'from'=>'string', 'to'=>'string'], +'mqseries_back' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_begin' => ['void', 'hconn'=>'resource', 'beginoptions'=>'array', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_close' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'options'=>'int', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_cmit' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_conn' => ['void', 'qmanagername'=>'string', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_connx' => ['void', 'qmanagername'=>'string', 'connoptions'=>'array', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_disc' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_get' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'md'=>'array', 'gmo'=>'array', 'bufferlength'=>'int', 'msg'=>'string', 'data_length'=>'int', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_inq' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'selectorcount'=>'int', 'selectors'=>'array', 'intattrcount'=>'int', 'intattr'=>'resource', 'charattrlength'=>'int', 'charattr'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_open' => ['void', 'hconn'=>'resource', 'objdesc'=>'array', 'option'=>'int', 'hobj'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_put' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'md'=>'array', 'pmo'=>'array', 'message'=>'string', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_put1' => ['void', 'hconn'=>'resource', 'objdesc'=>'resource', 'msgdesc'=>'resource', 'pmo'=>'resource', 'buffer'=>'string', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_set' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'selectorcount'=>'int', 'selectors'=>'array', 'intattrcount'=>'int', 'intattrs'=>'array', 'charattrlength'=>'int', 'charattrs'=>'array', 'compcode'=>'resource', 'reason'=>'resource'], +'mqseries_strerror' => ['string', 'reason'=>'int'], +'ms_GetErrorObj' => ['errorObj'], +'ms_GetVersion' => ['string'], +'ms_GetVersionInt' => ['int'], +'ms_iogetStdoutBufferBytes' => ['int'], +'ms_iogetstdoutbufferstring' => ['void'], +'ms_ioinstallstdinfrombuffer' => ['void'], +'ms_ioinstallstdouttobuffer' => ['void'], +'ms_ioresethandlers' => ['void'], +'ms_iostripstdoutbuffercontentheaders' => ['void'], +'ms_iostripstdoutbuffercontenttype' => ['string'], +'ms_ResetErrorList' => ['void'], +'ms_TokenizeMap' => ['array', 'map_file_name'=>'string'], +'msession_connect' => ['bool', 'host'=>'string', 'port'=>'string'], +'msession_count' => ['int'], +'msession_create' => ['bool', 'session'=>'string', 'classname='=>'string', 'data='=>'string'], +'msession_destroy' => ['bool', 'name'=>'string'], +'msession_disconnect' => ['void'], +'msession_find' => ['array', 'name'=>'string', 'value'=>'string'], +'msession_get' => ['string', 'session'=>'string', 'name'=>'string', 'value'=>'string'], +'msession_get_array' => ['array', 'session'=>'string'], +'msession_get_data' => ['string', 'session'=>'string'], +'msession_inc' => ['string', 'session'=>'string', 'name'=>'string'], +'msession_list' => ['array'], +'msession_listvar' => ['array', 'name'=>'string'], +'msession_lock' => ['int', 'name'=>'string'], +'msession_plugin' => ['string', 'session'=>'string', 'value'=>'string', 'param='=>'string'], +'msession_randstr' => ['string', 'param'=>'int'], +'msession_set' => ['bool', 'session'=>'string', 'name'=>'string', 'value'=>'string'], +'msession_set_array' => ['void', 'session'=>'string', 'tuples'=>'array'], +'msession_set_data' => ['bool', 'session'=>'string', 'value'=>'string'], +'msession_timeout' => ['int', 'session'=>'string', 'param='=>'int'], +'msession_uniq' => ['string', 'param'=>'int', 'classname='=>'string', 'data='=>'string'], +'msession_unlock' => ['int', 'session'=>'string', 'key'=>'int'], +'msg_get_queue' => ['SysvMessageQueue|false', 'key'=>'int', 'permissions='=>'int'], +'msg_queue_exists' => ['bool', 'key'=>'int'], +'msg_receive' => ['bool', 'queue'=>'SysvMessageQueue', 'desired_message_type'=>'int', '&w_received_message_type'=>'int', 'max_message_size'=>'int', '&w_message'=>'mixed', 'unserialize='=>'bool', 'flags='=>'int', '&w_error_code='=>'int'], +'msg_remove_queue' => ['bool', 'queue'=>'SysvMessageQueue'], +'msg_send' => ['bool', 'queue'=>'SysvMessageQueue', 'message_type'=>'int', 'message'=>'mixed', 'serialize='=>'bool', 'blocking='=>'bool', '&w_error_code='=>'int'], +'msg_set_queue' => ['bool', 'queue'=>'SysvMessageQueue', 'data'=>'array'], +'msg_stat_queue' => ['array', 'queue'=>'SysvMessageQueue'], +'msgfmt_create' => ['?MessageFormatter', 'locale'=>'string', 'pattern'=>'string'], +'msgfmt_format' => ['string|false', 'formatter'=>'MessageFormatter', 'values'=>'array'], +'msgfmt_format_message' => ['string|false', 'locale'=>'string', 'pattern'=>'string', 'values'=>'array'], +'msgfmt_get_error_code' => ['int', 'formatter'=>'MessageFormatter'], +'msgfmt_get_error_message' => ['string', 'formatter'=>'MessageFormatter'], +'msgfmt_get_locale' => ['string', 'formatter'=>'MessageFormatter'], +'msgfmt_get_pattern' => ['string', 'formatter'=>'MessageFormatter'], +'msgfmt_parse' => ['array|false', 'formatter'=>'MessageFormatter', 'string'=>'string'], +'msgfmt_parse_message' => ['array|false', 'locale'=>'string', 'pattern'=>'string', 'message'=>'string'], +'msgfmt_set_pattern' => ['bool', 'formatter'=>'MessageFormatter', 'pattern'=>'string'], +'msql_affected_rows' => ['int', 'result'=>'resource'], +'msql_close' => ['bool', 'link_identifier='=>'?resource'], +'msql_connect' => ['resource', 'hostname='=>'string'], +'msql_create_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'msql_data_seek' => ['bool', 'result'=>'resource', 'row_number'=>'int'], +'msql_db_query' => ['resource', 'database'=>'string', 'query'=>'string', 'link_identifier='=>'?resource'], +'msql_drop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'msql_error' => ['string'], +'msql_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], +'msql_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], +'msql_fetch_object' => ['object', 'result'=>'resource'], +'msql_fetch_row' => ['array', 'result'=>'resource'], +'msql_field_flags' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'msql_field_len' => ['int', 'result'=>'resource', 'field_offset'=>'int'], +'msql_field_name' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'msql_field_seek' => ['bool', 'result'=>'resource', 'field_offset'=>'int'], +'msql_field_table' => ['int', 'result'=>'resource', 'field_offset'=>'int'], +'msql_field_type' => ['string', 'result'=>'resource', 'field_offset'=>'int'], +'msql_free_result' => ['bool', 'result'=>'resource'], +'msql_list_dbs' => ['resource', 'link_identifier='=>'?resource'], +'msql_list_fields' => ['resource', 'database'=>'string', 'tablename'=>'string', 'link_identifier='=>'?resource'], +'msql_list_tables' => ['resource', 'database'=>'string', 'link_identifier='=>'?resource'], +'msql_num_fields' => ['int', 'result'=>'resource'], +'msql_num_rows' => ['int', 'query_identifier'=>'resource'], +'msql_pconnect' => ['resource', 'hostname='=>'string'], +'msql_query' => ['resource', 'query'=>'string', 'link_identifier='=>'?resource'], +'msql_result' => ['string', 'result'=>'resource', 'row'=>'int', 'field='=>'mixed'], +'msql_select_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], +'mt_getrandmax' => ['int'], +'mt_rand' => ['int', 'min'=>'int', 'max'=>'int'], +'mt_rand\'1' => ['int'], +'mt_srand' => ['void', 'seed='=>'int', 'mode='=>'int'], +'MultipleIterator::__construct' => ['void', 'flags='=>'int'], +'MultipleIterator::attachIterator' => ['void', 'iterator'=>'Iterator', 'infos='=>'string'], +'MultipleIterator::containsIterator' => ['bool', 'iterator'=>'Iterator'], +'MultipleIterator::countIterators' => ['int'], +'MultipleIterator::current' => ['array|false'], +'MultipleIterator::detachIterator' => ['void', 'iterator'=>'Iterator'], +'MultipleIterator::getFlags' => ['int'], +'MultipleIterator::key' => ['array'], +'MultipleIterator::next' => ['void'], +'MultipleIterator::rewind' => ['void'], +'MultipleIterator::setFlags' => ['void', 'flags'=>'int'], +'MultipleIterator::valid' => ['bool'], +'Mutex::create' => ['long', 'lock='=>'bool'], +'Mutex::destroy' => ['bool', 'mutex'=>'long'], +'Mutex::lock' => ['bool', 'mutex'=>'long'], +'Mutex::trylock' => ['bool', 'mutex'=>'long'], +'Mutex::unlock' => ['bool', 'mutex'=>'long', 'destroy='=>'bool'], +'mysql_xdevapi\baseresult::getWarnings' => ['array'], +'mysql_xdevapi\baseresult::getWarningsCount' => ['integer'], +'mysql_xdevapi\collection::add' => ['mysql_xdevapi\CollectionAdd', 'document'=>'mixed'], +'mysql_xdevapi\collection::addOrReplaceOne' => ['mysql_xdevapi\Result', 'id'=>'string', 'doc'=>'string'], +'mysql_xdevapi\collection::count' => ['integer'], +'mysql_xdevapi\collection::createIndex' => ['void', 'index_name'=>'string', 'index_desc_json'=>'string'], +'mysql_xdevapi\collection::dropIndex' => ['bool', 'index_name'=>'string'], +'mysql_xdevapi\collection::existsInDatabase' => ['bool'], +'mysql_xdevapi\collection::find' => ['mysql_xdevapi\CollectionFind', 'search_condition='=>'string'], +'mysql_xdevapi\collection::getName' => ['string'], +'mysql_xdevapi\collection::getOne' => ['Document', 'id'=>'string'], +'mysql_xdevapi\collection::getSchema' => ['mysql_xdevapi\schema'], +'mysql_xdevapi\collection::getSession' => ['Session'], +'mysql_xdevapi\collection::modify' => ['mysql_xdevapi\CollectionModify', 'search_condition'=>'string'], +'mysql_xdevapi\collection::remove' => ['mysql_xdevapi\CollectionRemove', 'search_condition'=>'string'], +'mysql_xdevapi\collection::removeOne' => ['mysql_xdevapi\Result', 'id'=>'string'], +'mysql_xdevapi\collection::replaceOne' => ['mysql_xdevapi\Result', 'id'=>'string', 'doc'=>'string'], +'mysql_xdevapi\collectionadd::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\collectionfind::bind' => ['mysql_xdevapi\CollectionFind', 'placeholder_values'=>'array'], +'mysql_xdevapi\collectionfind::execute' => ['mysql_xdevapi\DocResult'], +'mysql_xdevapi\collectionfind::fields' => ['mysql_xdevapi\CollectionFind', 'projection'=>'string'], +'mysql_xdevapi\collectionfind::groupBy' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], +'mysql_xdevapi\collectionfind::having' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], +'mysql_xdevapi\collectionfind::limit' => ['mysql_xdevapi\CollectionFind', 'rows'=>'integer'], +'mysql_xdevapi\collectionfind::lockExclusive' => ['mysql_xdevapi\CollectionFind', 'lock_waiting_option='=>'integer'], +'mysql_xdevapi\collectionfind::lockShared' => ['mysql_xdevapi\CollectionFind', 'lock_waiting_option='=>'integer'], +'mysql_xdevapi\collectionfind::offset' => ['mysql_xdevapi\CollectionFind', 'position'=>'integer'], +'mysql_xdevapi\collectionfind::sort' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], +'mysql_xdevapi\collectionmodify::arrayAppend' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], +'mysql_xdevapi\collectionmodify::arrayInsert' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], +'mysql_xdevapi\collectionmodify::bind' => ['mysql_xdevapi\CollectionModify', 'placeholder_values'=>'array'], +'mysql_xdevapi\collectionmodify::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\collectionmodify::limit' => ['mysql_xdevapi\CollectionModify', 'rows'=>'integer'], +'mysql_xdevapi\collectionmodify::patch' => ['mysql_xdevapi\CollectionModify', 'document'=>'string'], +'mysql_xdevapi\collectionmodify::replace' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], +'mysql_xdevapi\collectionmodify::set' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], +'mysql_xdevapi\collectionmodify::skip' => ['mysql_xdevapi\CollectionModify', 'position'=>'integer'], +'mysql_xdevapi\collectionmodify::sort' => ['mysql_xdevapi\CollectionModify', 'sort_expr'=>'string'], +'mysql_xdevapi\collectionmodify::unset' => ['mysql_xdevapi\CollectionModify', 'fields'=>'array'], +'mysql_xdevapi\collectionremove::bind' => ['mysql_xdevapi\CollectionRemove', 'placeholder_values'=>'array'], +'mysql_xdevapi\collectionremove::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\collectionremove::limit' => ['mysql_xdevapi\CollectionRemove', 'rows'=>'integer'], +'mysql_xdevapi\collectionremove::sort' => ['mysql_xdevapi\CollectionRemove', 'sort_expr'=>'string'], +'mysql_xdevapi\columnresult::getCharacterSetName' => ['string'], +'mysql_xdevapi\columnresult::getCollationName' => ['string'], +'mysql_xdevapi\columnresult::getColumnLabel' => ['string'], +'mysql_xdevapi\columnresult::getColumnName' => ['string'], +'mysql_xdevapi\columnresult::getFractionalDigits' => ['integer'], +'mysql_xdevapi\columnresult::getLength' => ['integer'], +'mysql_xdevapi\columnresult::getSchemaName' => ['string'], +'mysql_xdevapi\columnresult::getTableLabel' => ['string'], +'mysql_xdevapi\columnresult::getTableName' => ['string'], +'mysql_xdevapi\columnresult::getType' => ['integer'], +'mysql_xdevapi\columnresult::isNumberSigned' => ['integer'], +'mysql_xdevapi\columnresult::isPadded' => ['integer'], +'mysql_xdevapi\crudoperationbindable::bind' => ['mysql_xdevapi\CrudOperationBindable', 'placeholder_values'=>'array'], +'mysql_xdevapi\crudoperationlimitable::limit' => ['mysql_xdevapi\CrudOperationLimitable', 'rows'=>'integer'], +'mysql_xdevapi\crudoperationskippable::skip' => ['mysql_xdevapi\CrudOperationSkippable', 'skip'=>'integer'], +'mysql_xdevapi\crudoperationsortable::sort' => ['mysql_xdevapi\CrudOperationSortable', 'sort_expr'=>'string'], +'mysql_xdevapi\databaseobject::existsInDatabase' => ['bool'], +'mysql_xdevapi\databaseobject::getName' => ['string'], +'mysql_xdevapi\databaseobject::getSession' => ['mysql_xdevapi\Session'], +'mysql_xdevapi\docresult::fetchAll' => ['Array'], +'mysql_xdevapi\docresult::fetchOne' => ['Object'], +'mysql_xdevapi\docresult::getWarnings' => ['Array'], +'mysql_xdevapi\docresult::getWarningsCount' => ['integer'], +'mysql_xdevapi\executable::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\getsession' => ['mysql_xdevapi\Session', 'uri'=>'string'], +'mysql_xdevapi\result::getAutoIncrementValue' => ['int'], +'mysql_xdevapi\result::getGeneratedIds' => ['ArrayOfInt'], +'mysql_xdevapi\result::getWarnings' => ['array'], +'mysql_xdevapi\result::getWarningsCount' => ['integer'], +'mysql_xdevapi\rowresult::fetchAll' => ['array'], +'mysql_xdevapi\rowresult::fetchOne' => ['object'], +'mysql_xdevapi\rowresult::getColumnCount' => ['integer'], +'mysql_xdevapi\rowresult::getColumnNames' => ['array'], +'mysql_xdevapi\rowresult::getColumns' => ['array'], +'mysql_xdevapi\rowresult::getWarnings' => ['array'], +'mysql_xdevapi\rowresult::getWarningsCount' => ['integer'], +'mysql_xdevapi\schema::createCollection' => ['mysql_xdevapi\Collection', 'name'=>'string'], +'mysql_xdevapi\schema::dropCollection' => ['bool', 'collection_name'=>'string'], +'mysql_xdevapi\schema::existsInDatabase' => ['bool'], +'mysql_xdevapi\schema::getCollection' => ['mysql_xdevapi\Collection', 'name'=>'string'], +'mysql_xdevapi\schema::getCollectionAsTable' => ['mysql_xdevapi\Table', 'name'=>'string'], +'mysql_xdevapi\schema::getCollections' => ['array'], +'mysql_xdevapi\schema::getName' => ['string'], +'mysql_xdevapi\schema::getSession' => ['mysql_xdevapi\Session'], +'mysql_xdevapi\schema::getTable' => ['mysql_xdevapi\Table', 'name'=>'string'], +'mysql_xdevapi\schema::getTables' => ['array'], +'mysql_xdevapi\schemaobject::getSchema' => ['mysql_xdevapi\Schema'], +'mysql_xdevapi\session::close' => ['bool'], +'mysql_xdevapi\session::commit' => ['Object'], +'mysql_xdevapi\session::createSchema' => ['mysql_xdevapi\Schema', 'schema_name'=>'string'], +'mysql_xdevapi\session::dropSchema' => ['bool', 'schema_name'=>'string'], +'mysql_xdevapi\session::executeSql' => ['Object', 'statement'=>'string'], +'mysql_xdevapi\session::generateUUID' => ['string'], +'mysql_xdevapi\session::getClientId' => ['integer'], +'mysql_xdevapi\session::getSchema' => ['mysql_xdevapi\Schema', 'schema_name'=>'string'], +'mysql_xdevapi\session::getSchemas' => ['array'], +'mysql_xdevapi\session::getServerVersion' => ['integer'], +'mysql_xdevapi\session::killClient' => ['object', 'client_id'=>'integer'], +'mysql_xdevapi\session::listClients' => ['array'], +'mysql_xdevapi\session::quoteName' => ['string', 'name'=>'string'], +'mysql_xdevapi\session::releaseSavepoint' => ['void', 'name'=>'string'], +'mysql_xdevapi\session::rollback' => ['void'], +'mysql_xdevapi\session::rollbackTo' => ['void', 'name'=>'string'], +'mysql_xdevapi\session::setSavepoint' => ['string', 'name='=>'string'], +'mysql_xdevapi\session::sql' => ['mysql_xdevapi\SqlStatement', 'query'=>'string'], +'mysql_xdevapi\session::startTransaction' => ['void'], +'mysql_xdevapi\sqlstatement::bind' => ['mysql_xdevapi\SqlStatement', 'param'=>'string'], +'mysql_xdevapi\sqlstatement::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\sqlstatement::getNextResult' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\sqlstatement::getResult' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\sqlstatement::hasMoreResults' => ['bool'], +'mysql_xdevapi\sqlstatementresult::fetchAll' => ['array'], +'mysql_xdevapi\sqlstatementresult::fetchOne' => ['object'], +'mysql_xdevapi\sqlstatementresult::getAffectedItemsCount' => ['integer'], +'mysql_xdevapi\sqlstatementresult::getColumnCount' => ['integer'], +'mysql_xdevapi\sqlstatementresult::getColumnNames' => ['array'], +'mysql_xdevapi\sqlstatementresult::getColumns' => ['Array'], +'mysql_xdevapi\sqlstatementresult::getGeneratedIds' => ['array'], +'mysql_xdevapi\sqlstatementresult::getLastInsertId' => ['String'], +'mysql_xdevapi\sqlstatementresult::getWarnings' => ['array'], +'mysql_xdevapi\sqlstatementresult::getWarningsCount' => ['integer'], +'mysql_xdevapi\sqlstatementresult::hasData' => ['bool'], +'mysql_xdevapi\sqlstatementresult::nextResult' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\statement::getNextResult' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\statement::getResult' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\statement::hasMoreResults' => ['bool'], +'mysql_xdevapi\table::count' => ['integer'], +'mysql_xdevapi\table::delete' => ['mysql_xdevapi\TableDelete'], +'mysql_xdevapi\table::existsInDatabase' => ['bool'], +'mysql_xdevapi\table::getName' => ['string'], +'mysql_xdevapi\table::getSchema' => ['mysql_xdevapi\Schema'], +'mysql_xdevapi\table::getSession' => ['mysql_xdevapi\Session'], +'mysql_xdevapi\table::insert' => ['mysql_xdevapi\TableInsert', 'columns'=>'mixed', '...args='=>'mixed'], +'mysql_xdevapi\table::isView' => ['bool'], +'mysql_xdevapi\table::select' => ['mysql_xdevapi\TableSelect', 'columns'=>'mixed', '...args='=>'mixed'], +'mysql_xdevapi\table::update' => ['mysql_xdevapi\TableUpdate'], +'mysql_xdevapi\tabledelete::bind' => ['mysql_xdevapi\TableDelete', 'placeholder_values'=>'array'], +'mysql_xdevapi\tabledelete::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\tabledelete::limit' => ['mysql_xdevapi\TableDelete', 'rows'=>'integer'], +'mysql_xdevapi\tabledelete::offset' => ['mysql_xdevapi\TableDelete', 'position'=>'integer'], +'mysql_xdevapi\tabledelete::orderby' => ['mysql_xdevapi\TableDelete', 'orderby_expr'=>'string'], +'mysql_xdevapi\tabledelete::where' => ['mysql_xdevapi\TableDelete', 'where_expr'=>'string'], +'mysql_xdevapi\tableinsert::execute' => ['mysql_xdevapi\Result'], +'mysql_xdevapi\tableinsert::values' => ['mysql_xdevapi\TableInsert', 'row_values'=>'array'], +'mysql_xdevapi\tableselect::bind' => ['mysql_xdevapi\TableSelect', 'placeholder_values'=>'array'], +'mysql_xdevapi\tableselect::execute' => ['mysql_xdevapi\RowResult'], +'mysql_xdevapi\tableselect::groupBy' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'mixed'], +'mysql_xdevapi\tableselect::having' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'string'], +'mysql_xdevapi\tableselect::limit' => ['mysql_xdevapi\TableSelect', 'rows'=>'integer'], +'mysql_xdevapi\tableselect::lockExclusive' => ['mysql_xdevapi\TableSelect', 'lock_waiting_option='=>'integer'], +'mysql_xdevapi\tableselect::lockShared' => ['mysql_xdevapi\TableSelect', 'lock_waiting_option='=>'integer'], +'mysql_xdevapi\tableselect::offset' => ['mysql_xdevapi\TableSelect', 'position'=>'integer'], +'mysql_xdevapi\tableselect::orderby' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'mixed', '...args='=>'mixed'], +'mysql_xdevapi\tableselect::where' => ['mysql_xdevapi\TableSelect', 'where_expr'=>'string'], +'mysql_xdevapi\tableupdate::bind' => ['mysql_xdevapi\TableUpdate', 'placeholder_values'=>'array'], +'mysql_xdevapi\tableupdate::execute' => ['mysql_xdevapi\TableUpdate'], +'mysql_xdevapi\tableupdate::limit' => ['mysql_xdevapi\TableUpdate', 'rows'=>'integer'], +'mysql_xdevapi\tableupdate::orderby' => ['mysql_xdevapi\TableUpdate', 'orderby_expr'=>'mixed', '...args='=>'mixed'], +'mysql_xdevapi\tableupdate::set' => ['mysql_xdevapi\TableUpdate', 'table_field'=>'string', 'expression_or_literal'=>'string'], +'mysql_xdevapi\tableupdate::where' => ['mysql_xdevapi\TableUpdate', 'where_expr'=>'string'], +'mysqli::__construct' => ['void', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], +'mysqli::autocommit' => ['bool', 'enable'=>'bool'], +'mysqli::begin_transaction' => ['bool', 'flags='=>'int', 'name='=>'?string'], +'mysqli::change_user' => ['bool', 'username'=>'string', 'password'=>'string', 'database'=>'?string'], +'mysqli::character_set_name' => ['string'], +'mysqli::close' => ['bool'], +'mysqli::commit' => ['bool', 'flags='=>'int', 'name='=>'?string'], +'mysqli::connect' => ['bool', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], +'mysqli::debug' => ['bool', 'options'=>'string'], +'mysqli::disable_reads_from_master' => ['bool'], +'mysqli::dump_debug_info' => ['bool'], +'mysqli::escape_string' => ['string', 'string'=>'string'], +'mysqli::execute_query' => ['mysqli_result|bool', 'query'=>'non-empty-string', 'params='=>'list|null'], +'mysqli::get_charset' => ['object'], +'mysqli::get_client_info' => ['string'], +'mysqli::get_connection_stats' => ['array'], +'mysqli::get_warnings' => ['mysqli_warning'], +'mysqli::init' => ['false|null'], +'mysqli::kill' => ['bool', 'process_id'=>'int'], +'mysqli::more_results' => ['bool'], +'mysqli::multi_query' => ['bool', 'query'=>'string'], +'mysqli::next_result' => ['bool'], +'mysqli::options' => ['bool', 'option'=>'int', 'value'=>'string|int'], +'mysqli::ping' => ['bool'], +'mysqli::poll' => ['int|false', '&w_read'=>'array', '&w_write'=>'array', '&w_error'=>'array', 'seconds'=>'int', 'microseconds='=>'int'], +'mysqli::prepare' => ['mysqli_stmt|false', 'query'=>'string'], +'mysqli::query' => ['bool|mysqli_result', 'query'=>'string', 'result_mode='=>'int'], +'mysqli::real_connect' => ['bool', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null', 'flags='=>'int'], +'mysqli::real_escape_string' => ['string', 'string'=>'string'], +'mysqli::real_query' => ['bool', 'query'=>'string'], +'mysqli::reap_async_query' => ['mysqli_result|false'], +'mysqli::refresh' => ['bool', 'flags'=>'int'], +'mysqli::release_savepoint' => ['bool', 'name'=>'string'], +'mysqli::rollback' => ['bool', 'flags='=>'int', 'name='=>'?string'], +'mysqli::rpl_query_type' => ['int', 'query'=>'string'], +'mysqli::savepoint' => ['bool', 'name'=>'string'], +'mysqli::select_db' => ['bool', 'database'=>'string'], +'mysqli::send_query' => ['bool', 'query'=>'string'], +'mysqli::set_charset' => ['bool', 'charset'=>'string'], +'mysqli::set_local_infile_default' => ['void'], +'mysqli::set_local_infile_handler' => ['bool', 'read_func='=>'callable'], +'mysqli::set_opt' => ['bool', 'option'=>'int', 'value'=>'string|int'], +'mysqli::ssl_set' => ['bool', 'key'=>'?string', 'certificate'=>'?string', 'ca_certificate'=>'?string', 'ca_path'=>'?string', 'cipher_algos'=>'?string'], +'mysqli::stat' => ['string|false'], +'mysqli::stmt_init' => ['mysqli_stmt'], +'mysqli::store_result' => ['mysqli_result|false', 'mode='=>'int'], +'mysqli::thread_safe' => ['bool'], +'mysqli::use_result' => ['mysqli_result|false'], +'mysqli_affected_rows' => ['int<-1, max>|numeric-string', 'mysql'=>'mysqli'], +'mysqli_autocommit' => ['bool', 'mysql'=>'mysqli', 'enable'=>'bool'], +'mysqli_begin_transaction' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], +'mysqli_change_user' => ['bool', 'mysql'=>'mysqli', 'username'=>'string', 'password'=>'string', 'database'=>'?string'], +'mysqli_character_set_name' => ['string', 'mysql'=>'mysqli'], +'mysqli_close' => ['true', 'mysql'=>'mysqli'], +'mysqli_commit' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], +'mysqli_connect' => ['mysqli|false', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], +'mysqli_connect_errno' => ['int'], +'mysqli_connect_error' => ['?string'], +'mysqli_data_seek' => ['bool', 'result'=>'mysqli_result', 'offset'=>'int'], +'mysqli_debug' => ['true', 'options'=>'string'], +'mysqli_disable_reads_from_master' => ['bool', 'link'=>'mysqli'], +'mysqli_disable_rpl_parse' => ['bool', 'link'=>'mysqli'], +'mysqli_driver::embedded_server_end' => ['void'], +'mysqli_driver::embedded_server_start' => ['bool', 'start'=>'int', 'arguments'=>'array', 'groups'=>'array'], +'mysqli_dump_debug_info' => ['bool', 'mysql'=>'mysqli'], +'mysqli_embedded_server_end' => ['void'], +'mysqli_embedded_server_start' => ['bool', 'start'=>'int', 'arguments'=>'array', 'groups'=>'array'], +'mysqli_enable_reads_from_master' => ['bool', 'link'=>'mysqli'], +'mysqli_enable_rpl_parse' => ['bool', 'link'=>'mysqli'], +'mysqli_errno' => ['int', 'mysql'=>'mysqli'], +'mysqli_error' => ['string', 'mysql'=>'mysqli'], +'mysqli_error_list' => ['array', 'mysql'=>'mysqli'], +'mysqli_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], +'mysqli_execute' => ['bool', 'statement'=>'mysqli_stmt', 'params='=>'list|null'], +'mysqli_execute_query' => ['mysqli_result|bool', 'mysql'=>'mysqli', 'query'=>'non-empty-string', 'params='=>'list|null'], +'mysqli_fetch_all' => ['list>', 'result'=>'mysqli_result', 'mode='=>'3'], +'mysqli_fetch_all\'1' => ['list>', 'result'=>'mysqli_result', 'mode='=>'1'], +'mysqli_fetch_all\'2' => ['list>', 'result'=>'mysqli_result', 'mode='=>'2'], +'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'3'], +'mysqli_fetch_array\'1' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'1'], +'mysqli_fetch_array\'2' => ['list|false|null', 'result'=>'mysqli_result', 'mode='=>'2'], +'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], +'mysqli_fetch_column' => ['null|int|float|string|false', 'result'=>'mysqli_result', 'column='=>'int'], +'mysqli_fetch_field' => ['object|false', 'result'=>'mysqli_result'], +'mysqli_fetch_field_direct' => ['object|false', 'result'=>'mysqli_result', 'index'=>'int'], +'mysqli_fetch_fields' => ['stdClass[]', 'result'=>'mysqli_result'], +'mysqli_fetch_lengths' => ['array|false', 'result'=>'mysqli_result'], +'mysqli_fetch_object' => ['object|false|null', 'result'=>'mysqli_result', 'class='=>'class-string', 'constructor_args='=>'array'], +'mysqli_fetch_row' => ['list|false|null', 'result'=>'mysqli_result'], +'mysqli_field_count' => ['int', 'mysql'=>'mysqli'], +'mysqli_field_seek' => ['bool', 'result'=>'mysqli_result', 'index'=>'int'], +'mysqli_field_tell' => ['int', 'result'=>'mysqli_result'], +'mysqli_free_result' => ['void', 'result'=>'mysqli_result'], +'mysqli_get_cache_stats' => ['array|false'], +'mysqli_get_charset' => ['?object', 'mysql'=>'mysqli'], +'mysqli_get_client_info' => ['string', 'mysql='=>'?mysqli'], +'mysqli_get_client_stats' => ['array'], +'mysqli_get_client_version' => ['int', 'link'=>'mysqli'], +'mysqli_get_connection_stats' => ['array', 'mysql'=>'mysqli'], +'mysqli_get_host_info' => ['string', 'mysql'=>'mysqli'], +'mysqli_get_links_stats' => ['array'], +'mysqli_get_proto_info' => ['int', 'mysql'=>'mysqli'], +'mysqli_get_server_info' => ['string', 'mysql'=>'mysqli'], +'mysqli_get_server_version' => ['int', 'mysql'=>'mysqli'], +'mysqli_get_warnings' => ['mysqli_warning', 'mysql'=>'mysqli'], +'mysqli_info' => ['?string', 'mysql'=>'mysqli'], +'mysqli_init' => ['mysqli|false'], +'mysqli_insert_id' => ['int|string', 'mysql'=>'mysqli'], +'mysqli_kill' => ['bool', 'mysql'=>'mysqli', 'process_id'=>'int'], +'mysqli_link_construct' => ['object'], +'mysqli_master_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], +'mysqli_more_results' => ['bool', 'mysql'=>'mysqli'], +'mysqli_multi_query' => ['bool', 'mysql'=>'mysqli', 'query'=>'string'], +'mysqli_next_result' => ['bool', 'mysql'=>'mysqli'], +'mysqli_num_fields' => ['int', 'result'=>'mysqli_result'], +'mysqli_num_rows' => ['int<0, max>|numeric-string', 'result'=>'mysqli_result'], +'mysqli_options' => ['bool', 'mysql'=>'mysqli', 'option'=>'int', 'value'=>'string|int'], +'mysqli_ping' => ['bool', 'mysql'=>'mysqli'], +'mysqli_poll' => ['int|false', 'read'=>'array', 'write'=>'array', 'error'=>'array', 'seconds'=>'int', 'microseconds='=>'int'], +'mysqli_prepare' => ['mysqli_stmt|false', 'mysql'=>'mysqli', 'query'=>'string'], +'mysqli_query' => ['mysqli_result|bool', 'mysql'=>'mysqli', 'query'=>'string', 'result_mode='=>'int'], +'mysqli_real_connect' => ['bool', 'mysql='=>'mysqli', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null', 'flags='=>'int'], +'mysqli_real_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], +'mysqli_real_query' => ['bool', 'mysql'=>'mysqli', 'query'=>'string'], +'mysqli_reap_async_query' => ['mysqli_result|false', 'mysql'=>'mysqli'], +'mysqli_refresh' => ['bool', 'mysql'=>'mysqli', 'flags'=>'int'], +'mysqli_release_savepoint' => ['bool', 'mysql'=>'mysqli', 'name'=>'string'], +'mysqli_report' => ['bool', 'flags'=>'int'], +'mysqli_result::__construct' => ['void', 'mysql'=>'mysqli', 'result_mode='=>'int'], +'mysqli_result::close' => ['void'], +'mysqli_result::data_seek' => ['bool', 'offset'=>'int'], +'mysqli_result::fetch_all' => ['list>', 'mode='=>'3'], +'mysqli_result::fetch_all\'1' => ['list>', 'mode='=>'1'], +'mysqli_result::fetch_all\'2' => ['list>', 'mode='=>'2'], +'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'3'], +'mysqli_result::fetch_array\'1' => ['array|false|null', 'mode='=>'1'], +'mysqli_result::fetch_array\'2' => ['list|false|null', 'mode='=>'2'], +'mysqli_result::fetch_assoc' => ['array|false|null'], +'mysqli_result::fetch_column' => ['null|int|float|string|false', 'column='=>'int'], +'mysqli_result::fetch_field' => ['object|false'], +'mysqli_result::fetch_field_direct' => ['object|false', 'index'=>'int'], +'mysqli_result::fetch_fields' => ['stdClass[]'], +'mysqli_result::fetch_object' => ['object|false|null', 'class='=>'class-string', 'constructor_args='=>'array'], +'mysqli_result::fetch_row' => ['list|false|null'], +'mysqli_result::field_seek' => ['bool', 'index'=>'int'], +'mysqli_result::free' => ['void'], +'mysqli_result::free_result' => ['void'], +'mysqli_rollback' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], +'mysqli_rpl_parse_enabled' => ['int', 'link'=>'mysqli'], +'mysqli_rpl_probe' => ['bool', 'link'=>'mysqli'], +'mysqli_rpl_query_type' => ['int', 'link'=>'mysqli', 'query'=>'string'], +'mysqli_savepoint' => ['bool', 'mysql'=>'mysqli', 'name'=>'string'], +'mysqli_savepoint_libmysql' => ['bool'], +'mysqli_select_db' => ['bool', 'mysql'=>'mysqli', 'database'=>'string'], +'mysqli_send_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], +'mysqli_set_charset' => ['bool', 'mysql'=>'mysqli', 'charset'=>'string'], +'mysqli_set_local_infile_default' => ['void', 'link'=>'mysqli'], +'mysqli_set_local_infile_handler' => ['bool', 'link'=>'mysqli', 'read_func'=>'callable'], +'mysqli_set_opt' => ['bool', 'mysql'=>'mysqli', 'option'=>'int', 'value'=>'string|int'], +'mysqli_slave_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], +'mysqli_sqlstate' => ['string', 'mysql'=>'mysqli'], +'mysqli_ssl_set' => ['true', 'mysql'=>'mysqli', 'key'=>'?string', 'certificate'=>'?string', 'ca_certificate'=>'?string', 'ca_path'=>'?string', 'cipher_algos'=>'?string'], +'mysqli_stat' => ['string|false', 'mysql'=>'mysqli'], +'mysqli_stmt::__construct' => ['void', 'mysql'=>'mysqli', 'query'=>'string'], +'mysqli_stmt::attr_get' => ['int', 'attribute'=>'int'], +'mysqli_stmt::attr_set' => ['bool', 'attribute'=>'int', 'value'=>'int'], +'mysqli_stmt::bind_param' => ['bool', 'types'=>'string', '&vars'=>'mixed', '&...args='=>'mixed'], +'mysqli_stmt::bind_result' => ['bool', '&w_var1'=>'', '&...w_vars='=>''], +'mysqli_stmt::close' => ['bool'], +'mysqli_stmt::data_seek' => ['void', 'offset'=>'int'], +'mysqli_stmt::execute' => ['bool', 'params='=>'list|null'], +'mysqli_stmt::fetch' => ['bool|null'], +'mysqli_stmt::free_result' => ['void'], +'mysqli_stmt::get_result' => ['mysqli_result|false'], +'mysqli_stmt::get_warnings' => ['object'], +'mysqli_stmt::more_results' => ['bool'], +'mysqli_stmt::next_result' => ['bool'], +'mysqli_stmt::num_rows' => ['int<0, max>|numeric-string'], +'mysqli_stmt::prepare' => ['bool', 'query'=>'string'], +'mysqli_stmt::reset' => ['bool'], +'mysqli_stmt::result_metadata' => ['mysqli_result|false'], +'mysqli_stmt::send_long_data' => ['bool', 'param_num'=>'int', 'data'=>'string'], +'mysqli_stmt::store_result' => ['bool'], +'mysqli_stmt_affected_rows' => ['int<-1, max>|numeric-string', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_attr_get' => ['int', 'statement'=>'mysqli_stmt', 'attribute'=>'int'], +'mysqli_stmt_attr_set' => ['bool', 'statement'=>'mysqli_stmt', 'attribute'=>'int', 'value'=>'int'], +'mysqli_stmt_bind_param' => ['bool', 'statement'=>'mysqli_stmt', 'types'=>'string', '&vars'=>'mixed', '&...args='=>'mixed'], +'mysqli_stmt_bind_result' => ['bool', 'statement'=>'mysqli_stmt', '&w_var1'=>'', '&...w_vars='=>''], +'mysqli_stmt_close' => ['true', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_data_seek' => ['void', 'statement'=>'mysqli_stmt', 'offset'=>'int'], +'mysqli_stmt_errno' => ['int', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_error' => ['string', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_error_list' => ['array', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_execute' => ['bool', 'statement'=>'mysqli_stmt', 'params='=>'list|null'], +'mysqli_stmt_fetch' => ['bool|null', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_field_count' => ['int', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_free_result' => ['void', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_get_result' => ['mysqli_result|false', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_get_warnings' => ['object', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_init' => ['mysqli_stmt', 'mysql'=>'mysqli'], +'mysqli_stmt_insert_id' => ['mixed', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_more_results' => ['bool', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_next_result' => ['bool', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_num_rows' => ['int', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_param_count' => ['int', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_prepare' => ['bool', 'statement'=>'mysqli_stmt', 'query'=>'string'], +'mysqli_stmt_reset' => ['bool', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_result_metadata' => ['mysqli_result|false', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_send_long_data' => ['bool', 'statement'=>'mysqli_stmt', 'param_num'=>'int', 'data'=>'string'], +'mysqli_stmt_sqlstate' => ['string', 'statement'=>'mysqli_stmt'], +'mysqli_stmt_store_result' => ['bool', 'statement'=>'mysqli_stmt'], +'mysqli_store_result' => ['mysqli_result|false', 'mysql'=>'mysqli', 'mode='=>'int'], +'mysqli_thread_id' => ['int', 'mysql'=>'mysqli'], +'mysqli_thread_safe' => ['bool'], +'mysqli_use_result' => ['mysqli_result|false', 'mysql'=>'mysqli'], +'mysqli_warning::__construct' => ['void'], +'mysqli_warning::next' => ['bool'], +'mysqli_warning_count' => ['int', 'mysql'=>'mysqli'], +'mysqlnd_memcache_get_config' => ['array', 'connection'=>'mixed'], +'mysqlnd_memcache_set' => ['bool', 'mysql_connection'=>'mixed', 'memcache_connection='=>'Memcached', 'pattern='=>'string', 'callback='=>'callable'], +'mysqlnd_ms_dump_servers' => ['array', 'connection'=>'mixed'], +'mysqlnd_ms_fabric_select_global' => ['array', 'connection'=>'mixed', 'table_name'=>'mixed'], +'mysqlnd_ms_fabric_select_shard' => ['array', 'connection'=>'mixed', 'table_name'=>'mixed', 'shard_key'=>'mixed'], +'mysqlnd_ms_get_last_gtid' => ['string', 'connection'=>'mixed'], +'mysqlnd_ms_get_last_used_connection' => ['array', 'connection'=>'mixed'], +'mysqlnd_ms_get_stats' => ['array'], +'mysqlnd_ms_match_wild' => ['bool', 'table_name'=>'string', 'wildcard'=>'string'], +'mysqlnd_ms_query_is_select' => ['int', 'query'=>'string'], +'mysqlnd_ms_set_qos' => ['bool', 'connection'=>'mixed', 'service_level'=>'int', 'service_level_option='=>'int', 'option_value='=>'mixed'], +'mysqlnd_ms_set_user_pick_server' => ['bool', 'function'=>'string'], +'mysqlnd_ms_xa_begin' => ['int', 'connection'=>'mixed', 'gtrid'=>'string', 'timeout='=>'int'], +'mysqlnd_ms_xa_commit' => ['int', 'connection'=>'mixed', 'gtrid'=>'string'], +'mysqlnd_ms_xa_gc' => ['int', 'connection'=>'mixed', 'gtrid='=>'string', 'ignore_max_retries='=>'bool'], +'mysqlnd_ms_xa_rollback' => ['int', 'connection'=>'mixed', 'gtrid'=>'string'], +'mysqlnd_qc_change_handler' => ['bool', 'handler'=>''], +'mysqlnd_qc_clear_cache' => ['bool'], +'mysqlnd_qc_get_available_handlers' => ['array'], +'mysqlnd_qc_get_cache_info' => ['array'], +'mysqlnd_qc_get_core_stats' => ['array'], +'mysqlnd_qc_get_handler' => ['array'], +'mysqlnd_qc_get_normalized_query_trace_log' => ['array'], +'mysqlnd_qc_get_query_trace_log' => ['array'], +'mysqlnd_qc_set_cache_condition' => ['bool', 'condition_type'=>'int', 'condition'=>'mixed', 'condition_option'=>'mixed'], +'mysqlnd_qc_set_is_select' => ['mixed', 'callback'=>'string'], +'mysqlnd_qc_set_storage_handler' => ['bool', 'handler'=>'string'], +'mysqlnd_qc_set_user_handlers' => ['bool', 'get_hash'=>'string', 'find_query_in_cache'=>'string', 'return_to_cache'=>'string', 'add_query_to_cache_if_not_exists'=>'string', 'query_is_select'=>'string', 'update_query_run_time_stats'=>'string', 'get_stats'=>'string', 'clear_cache'=>'string'], +'mysqlnd_uh_convert_to_mysqlnd' => ['resource', '&rw_mysql_connection'=>'mysqli'], +'mysqlnd_uh_set_connection_proxy' => ['bool', '&rw_connection_proxy'=>'MysqlndUhConnection', '&rw_mysqli_connection='=>'mysqli'], +'mysqlnd_uh_set_statement_proxy' => ['bool', '&rw_statement_proxy'=>'MysqlndUhStatement'], +'MysqlndUhConnection::__construct' => ['void'], +'MysqlndUhConnection::changeUser' => ['bool', 'connection'=>'mysqlnd_connection', 'user'=>'string', 'password'=>'string', 'database'=>'string', 'silent'=>'bool', 'passwd_len'=>'int'], +'MysqlndUhConnection::charsetName' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::close' => ['bool', 'connection'=>'mysqlnd_connection', 'close_type'=>'int'], +'MysqlndUhConnection::connect' => ['bool', 'connection'=>'mysqlnd_connection', 'host'=>'string', 'use'=>'string', 'password'=>'string', 'database'=>'string', 'port'=>'int', 'socket'=>'string', 'mysql_flags'=>'int'], +'MysqlndUhConnection::endPSession' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::escapeString' => ['string', 'connection'=>'mysqlnd_connection', 'escape_string'=>'string'], +'MysqlndUhConnection::getAffectedRows' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getErrorNumber' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getErrorString' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getFieldCount' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getHostInformation' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getLastInsertId' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getLastMessage' => ['void', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getProtocolInformation' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getServerInformation' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getServerStatistics' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getServerVersion' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getSqlstate' => ['string', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getStatistics' => ['array', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getThreadId' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::getWarningCount' => ['int', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::init' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::killConnection' => ['bool', 'connection'=>'mysqlnd_connection', 'pid'=>'int'], +'MysqlndUhConnection::listFields' => ['array', 'connection'=>'mysqlnd_connection', 'table'=>'string', 'achtung_wild'=>'string'], +'MysqlndUhConnection::listMethod' => ['void', 'connection'=>'mysqlnd_connection', 'query'=>'string', 'achtung_wild'=>'string', 'par1'=>'string'], +'MysqlndUhConnection::moreResults' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::nextResult' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::ping' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::query' => ['bool', 'connection'=>'mysqlnd_connection', 'query'=>'string'], +'MysqlndUhConnection::queryReadResultsetHeader' => ['bool', 'connection'=>'mysqlnd_connection', 'mysqlnd_stmt'=>'mysqlnd_statement'], +'MysqlndUhConnection::reapQuery' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::refreshServer' => ['bool', 'connection'=>'mysqlnd_connection', 'options'=>'int'], +'MysqlndUhConnection::restartPSession' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::selectDb' => ['bool', 'connection'=>'mysqlnd_connection', 'database'=>'string'], +'MysqlndUhConnection::sendClose' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::sendQuery' => ['bool', 'connection'=>'mysqlnd_connection', 'query'=>'string'], +'MysqlndUhConnection::serverDumpDebugInformation' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::setAutocommit' => ['bool', 'connection'=>'mysqlnd_connection', 'mode'=>'int'], +'MysqlndUhConnection::setCharset' => ['bool', 'connection'=>'mysqlnd_connection', 'charset'=>'string'], +'MysqlndUhConnection::setClientOption' => ['bool', 'connection'=>'mysqlnd_connection', 'option'=>'int', 'value'=>'int'], +'MysqlndUhConnection::setServerOption' => ['void', 'connection'=>'mysqlnd_connection', 'option'=>'int'], +'MysqlndUhConnection::shutdownServer' => ['void', 'MYSQLND_UH_RES_MYSQLND_NAME'=>'string', 'level'=>'string'], +'MysqlndUhConnection::simpleCommand' => ['bool', 'connection'=>'mysqlnd_connection', 'command'=>'int', 'arg'=>'string', 'ok_packet'=>'int', 'silent'=>'bool', 'ignore_upsert_status'=>'bool'], +'MysqlndUhConnection::simpleCommandHandleResponse' => ['bool', 'connection'=>'mysqlnd_connection', 'ok_packet'=>'int', 'silent'=>'bool', 'command'=>'int', 'ignore_upsert_status'=>'bool'], +'MysqlndUhConnection::sslSet' => ['bool', 'connection'=>'mysqlnd_connection', 'key'=>'string', 'cert'=>'string', 'ca'=>'string', 'capath'=>'string', 'cipher'=>'string'], +'MysqlndUhConnection::stmtInit' => ['resource', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::storeResult' => ['resource', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::txCommit' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::txRollback' => ['bool', 'connection'=>'mysqlnd_connection'], +'MysqlndUhConnection::useResult' => ['resource', 'connection'=>'mysqlnd_connection'], +'MysqlndUhPreparedStatement::__construct' => ['void'], +'MysqlndUhPreparedStatement::execute' => ['bool', 'statement'=>'mysqlnd_prepared_statement'], +'MysqlndUhPreparedStatement::prepare' => ['bool', 'statement'=>'mysqlnd_prepared_statement', 'query'=>'string'], +'natcasesort' => ['bool', '&rw_array'=>'array'], +'natsort' => ['bool', '&rw_array'=>'array'], +'net_get_interfaces' => ['array>|false'], +'newrelic_add_custom_parameter' => ['bool', 'key'=>'string', 'value'=>'bool|float|int|string'], +'newrelic_add_custom_tracer' => ['bool', 'function_name'=>'string'], +'newrelic_background_job' => ['void', 'flag='=>'bool'], +'newrelic_capture_params' => ['void', 'enable='=>'bool'], +'newrelic_custom_metric' => ['bool', 'metric_name'=>'string', 'value'=>'float'], +'newrelic_disable_autorum' => ['true'], +'newrelic_end_of_transaction' => ['void'], +'newrelic_end_transaction' => ['bool', 'ignore='=>'bool'], +'newrelic_get_browser_timing_footer' => ['string', 'include_tags='=>'bool'], +'newrelic_get_browser_timing_header' => ['string', 'include_tags='=>'bool'], +'newrelic_ignore_apdex' => ['void'], +'newrelic_ignore_transaction' => ['void'], +'newrelic_name_transaction' => ['bool', 'name'=>'string'], +'newrelic_notice_error' => ['void', 'message'=>'string', 'exception='=>'Exception|Throwable'], +'newrelic_notice_error\'1' => ['void', 'unused_1'=>'string', 'message'=>'string', 'unused_2'=>'string', 'unused_3'=>'int', 'unused_4='=>''], +'newrelic_record_custom_event' => ['void', 'name'=>'string', 'attributes'=>'array'], +'newrelic_record_datastore_segment' => ['mixed', 'func'=>'callable', 'parameters'=>'array'], +'newrelic_set_appname' => ['bool', 'name'=>'string', 'license='=>'string', 'xmit='=>'bool'], +'newrelic_set_user_attributes' => ['bool', 'user'=>'string', 'account'=>'string', 'product'=>'string'], +'newrelic_start_transaction' => ['bool', 'appname'=>'string', 'license='=>'string'], +'next' => ['mixed', '&r_array'=>'array|object'], +'ngettext' => ['string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int'], +'nl2br' => ['string', 'string'=>'string', 'use_xhtml='=>'bool'], +'nl_langinfo' => ['string|false', 'item'=>'int'], +'NoRewindIterator::__construct' => ['void', 'iterator'=>'Iterator'], +'NoRewindIterator::current' => ['mixed'], +'NoRewindIterator::getInnerIterator' => ['Iterator'], +'NoRewindIterator::key' => ['mixed'], +'NoRewindIterator::next' => ['void'], +'NoRewindIterator::rewind' => ['void'], +'NoRewindIterator::valid' => ['bool'], +'Normalizer::getRawDecomposition' => ['?string', 'string'=>'string', 'form='=>'int'], +'Normalizer::isNormalized' => ['bool', 'string'=>'string', 'form='=>'int'], +'Normalizer::normalize' => ['string|false', 'string'=>'string', 'form='=>'int'], +'normalizer_get_raw_decomposition' => ['string|null', 'string'=>'string', 'form='=>'int'], +'normalizer_is_normalized' => ['bool', 'string'=>'string', 'form='=>'int'], +'normalizer_normalize' => ['string|false', 'string'=>'string', 'form='=>'int'], +'notes_body' => ['array', 'server'=>'string', 'mailbox'=>'string', 'msg_number'=>'int'], +'notes_copy_db' => ['bool', 'from_database_name'=>'string', 'to_database_name'=>'string'], +'notes_create_db' => ['bool', 'database_name'=>'string'], +'notes_create_note' => ['bool', 'database_name'=>'string', 'form_name'=>'string'], +'notes_drop_db' => ['bool', 'database_name'=>'string'], +'notes_find_note' => ['int', 'database_name'=>'string', 'name'=>'string', 'type='=>'string'], +'notes_header_info' => ['object', 'server'=>'string', 'mailbox'=>'string', 'msg_number'=>'int'], +'notes_list_msgs' => ['bool', 'db'=>'string'], +'notes_mark_read' => ['bool', 'database_name'=>'string', 'user_name'=>'string', 'note_id'=>'string'], +'notes_mark_unread' => ['bool', 'database_name'=>'string', 'user_name'=>'string', 'note_id'=>'string'], +'notes_nav_create' => ['bool', 'database_name'=>'string', 'name'=>'string'], +'notes_search' => ['array', 'database_name'=>'string', 'keywords'=>'string'], +'notes_unread' => ['array', 'database_name'=>'string', 'user_name'=>'string'], +'notes_version' => ['float', 'database_name'=>'string'], +'nsapi_request_headers' => ['array'], +'nsapi_response_headers' => ['array'], +'nsapi_virtual' => ['bool', 'uri'=>'string'], +'nthmac' => ['string', 'clent'=>'string', 'data'=>'string'], +'number_format' => ['string', 'num'=>'float|int', 'decimals='=>'int', 'decimal_separator='=>'?string', 'thousands_separator='=>'?string'], +'NumberFormatter::__construct' => ['void', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], +'NumberFormatter::create' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], +'NumberFormatter::format' => ['string|false', 'num'=>'', 'type='=>'int'], +'NumberFormatter::formatCurrency' => ['string|false', 'num'=>'float', 'currency'=>'string'], +'NumberFormatter::getAttribute' => ['int|false', 'attr'=>'int'], +'NumberFormatter::getErrorCode' => ['int'], +'NumberFormatter::getErrorMessage' => ['string'], +'NumberFormatter::getLocale' => ['string', 'type='=>'int'], +'NumberFormatter::getPattern' => ['string|false'], +'NumberFormatter::getSymbol' => ['string|false', 'attr'=>'int'], +'NumberFormatter::getTextAttribute' => ['string|false', 'attr'=>'int'], +'NumberFormatter::parse' => ['float|false', 'string'=>'string', 'type='=>'int', '&rw_position='=>'int'], +'NumberFormatter::parseCurrency' => ['float|false', 'string'=>'string', '&w_currency'=>'string', '&rw_position='=>'int'], +'NumberFormatter::setAttribute' => ['bool', 'attr'=>'int', 'value'=>''], +'NumberFormatter::setPattern' => ['bool', 'pattern'=>'string'], +'NumberFormatter::setSymbol' => ['bool', 'attr'=>'int', 'symbol'=>'string'], +'NumberFormatter::setTextAttribute' => ['bool', 'attr'=>'int', 'value'=>'string'], +'numfmt_create' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], +'numfmt_format' => ['string|false', 'formatter'=>'NumberFormatter', 'num'=>'int|float', 'type='=>'int'], +'numfmt_format_currency' => ['string|false', 'formatter'=>'NumberFormatter', 'amount'=>'float', 'currency'=>'string'], +'numfmt_get_attribute' => ['int|false', 'formatter'=>'NumberFormatter', 'attribute'=>'int'], +'numfmt_get_error_code' => ['int', 'formatter'=>'NumberFormatter'], +'numfmt_get_error_message' => ['string', 'formatter'=>'NumberFormatter'], +'numfmt_get_locale' => ['string', 'formatter'=>'NumberFormatter', 'type='=>'int'], +'numfmt_get_pattern' => ['string|false', 'formatter'=>'NumberFormatter'], +'numfmt_get_symbol' => ['string|false', 'formatter'=>'NumberFormatter', 'symbol'=>'int'], +'numfmt_get_text_attribute' => ['string|false', 'formatter'=>'NumberFormatter', 'attribute'=>'int'], +'numfmt_parse' => ['float|int|false', 'formatter'=>'NumberFormatter', 'string'=>'string', 'type='=>'int', '&rw_offset='=>'int'], +'numfmt_parse_currency' => ['float|false', 'formatter'=>'NumberFormatter', 'string'=>'string', '&w_currency'=>'string', '&rw_offset='=>'int'], +'numfmt_set_attribute' => ['bool', 'formatter'=>'NumberFormatter', 'attribute'=>'int', 'value'=>'int'], +'numfmt_set_pattern' => ['bool', 'formatter'=>'NumberFormatter', 'pattern'=>'string'], +'numfmt_set_symbol' => ['bool', 'formatter'=>'NumberFormatter', 'symbol'=>'int', 'value'=>'string'], +'numfmt_set_text_attribute' => ['bool', 'formatter'=>'NumberFormatter', 'attribute'=>'int', 'value'=>'string'], +'OAuth::__construct' => ['void', 'consumer_key'=>'string', 'consumer_secret'=>'string', 'signature_method='=>'string', 'auth_type='=>'int'], +'OAuth::disableDebug' => ['bool'], +'OAuth::disableRedirects' => ['bool'], +'OAuth::disableSSLChecks' => ['bool'], +'OAuth::enableDebug' => ['bool'], +'OAuth::enableRedirects' => ['bool'], +'OAuth::enableSSLChecks' => ['bool'], +'OAuth::fetch' => ['mixed', 'protected_resource_url'=>'string', 'extra_parameters='=>'array', 'http_method='=>'string', 'http_headers='=>'array'], +'OAuth::generateSignature' => ['string', 'http_method'=>'string', 'url'=>'string', 'extra_parameters='=>'mixed'], +'OAuth::getAccessToken' => ['array|false', 'access_token_url'=>'string', 'auth_session_handle='=>'string', 'verifier_token='=>'string', 'http_method='=>'string'], +'OAuth::getCAPath' => ['array'], +'OAuth::getLastResponse' => ['string'], +'OAuth::getLastResponseHeaders' => ['string|false'], +'OAuth::getLastResponseInfo' => ['array'], +'OAuth::getRequestHeader' => ['string|false', 'http_method'=>'string', 'url'=>'string', 'extra_parameters='=>'mixed'], +'OAuth::getRequestToken' => ['array|false', 'request_token_url'=>'string', 'callback_url='=>'string', 'http_method='=>'string'], +'OAuth::setAuthType' => ['bool', 'auth_type'=>'int'], +'OAuth::setCAPath' => ['mixed', 'ca_path='=>'string', 'ca_info='=>'string'], +'OAuth::setNonce' => ['mixed', 'nonce'=>'string'], +'OAuth::setRequestEngine' => ['void', 'reqengine'=>'int'], +'OAuth::setRSACertificate' => ['mixed', 'cert'=>'string'], +'OAuth::setSSLChecks' => ['bool', 'sslcheck'=>'int'], +'OAuth::setTimeout' => ['void', 'timeout'=>'int'], +'OAuth::setTimestamp' => ['mixed', 'timestamp'=>'string'], +'OAuth::setToken' => ['bool', 'token'=>'string', 'token_secret'=>'string'], +'OAuth::setVersion' => ['bool', 'version'=>'string'], +'oauth_get_sbs' => ['string', 'http_method'=>'string', 'uri'=>'string', 'parameters'=>'array'], +'oauth_urlencode' => ['string', 'uri'=>'string'], +'OAuthProvider::__construct' => ['void', 'params_array='=>'array'], +'OAuthProvider::addRequiredParameter' => ['bool', 'req_params'=>'string'], +'OAuthProvider::callconsumerHandler' => ['void'], +'OAuthProvider::callTimestampNonceHandler' => ['void'], +'OAuthProvider::calltokenHandler' => ['void'], +'OAuthProvider::checkOAuthRequest' => ['void', 'uri='=>'string', 'method='=>'string'], +'OAuthProvider::consumerHandler' => ['void', 'callback_function'=>'callable'], +'OAuthProvider::generateToken' => ['string', 'size'=>'int', 'strong='=>'bool'], +'OAuthProvider::is2LeggedEndpoint' => ['void', 'params_array'=>'mixed'], +'OAuthProvider::isRequestTokenEndpoint' => ['void', 'will_issue_request_token'=>'bool'], +'OAuthProvider::removeRequiredParameter' => ['bool', 'req_params'=>'string'], +'OAuthProvider::reportProblem' => ['string', 'oauthexception'=>'string', 'send_headers='=>'bool'], +'OAuthProvider::setParam' => ['bool', 'param_key'=>'string', 'param_val='=>'mixed'], +'OAuthProvider::setRequestTokenPath' => ['bool', 'path'=>'string'], +'OAuthProvider::timestampNonceHandler' => ['void', 'callback_function'=>'callable'], +'OAuthProvider::tokenHandler' => ['void', 'callback_function'=>'callable'], +'ob_clean' => ['bool'], +'ob_deflatehandler' => ['string', 'data'=>'string', 'mode'=>'int'], +'ob_end_clean' => ['bool'], +'ob_end_flush' => ['bool'], +'ob_etaghandler' => ['string', 'data'=>'string', 'mode'=>'int'], +'ob_flush' => ['bool'], +'ob_get_clean' => ['string|false'], +'ob_get_contents' => ['string|false'], +'ob_get_flush' => ['string|false'], +'ob_get_length' => ['int|false'], +'ob_get_level' => ['int'], +'ob_get_status' => ['array', 'full_status='=>'bool'], +'ob_gzhandler' => ['string|false', 'data'=>'string', 'flags'=>'int'], +'ob_iconv_handler' => ['string', 'contents'=>'string', 'status'=>'int'], +'ob_implicit_flush' => ['void', 'enable='=>'bool'], +'ob_inflatehandler' => ['string', 'data'=>'string', 'mode'=>'int'], +'ob_list_handlers' => ['list'], +'ob_start' => ['bool', 'callback='=>'string|array|?callable', 'chunk_size='=>'int', 'flags='=>'int'], +'ob_tidyhandler' => ['string', 'input'=>'string', 'mode='=>'int'], +'oci_bind_array_by_name' => ['bool', 'statement'=>'resource', 'param'=>'string', '&rw_var'=>'array', 'max_array_length'=>'int', 'max_item_length='=>'int', 'type='=>'int'], +'oci_bind_by_name' => ['bool', 'statement'=>'resource', 'param'=>'string', '&rw_var'=>'mixed', 'max_length='=>'int', 'type='=>'int'], +'oci_cancel' => ['bool', 'statement'=>'resource'], +'oci_client_version' => ['string'], +'oci_close' => ['bool', 'connection'=>'resource'], +'OCICollection::append' => ['bool', 'value'=>'mixed'], +'OCICollection::assign' => ['bool', 'from'=>'OCI_Collection'], +'OCICollection::assignElem' => ['bool', 'index'=>'int', 'value'=>'mixed'], +'OCICollection::free' => ['bool'], +'OCICollection::getElem' => ['mixed', 'index'=>'int'], +'OCICollection::max' => ['int|false'], +'OCICollection::size' => ['int|false'], +'OCICollection::trim' => ['bool', 'num'=>'int'], +'oci_collection_append' => ['bool', 'collection'=>'string'], +'oci_collection_assign' => ['bool', 'to'=>'object'], +'oci_collection_element_assign' => ['bool', 'collection'=>'int', 'index'=>'string'], +'oci_collection_element_get' => ['string', 'collection'=>'int'], +'oci_collection_max' => ['int'], +'oci_collection_size' => ['int'], +'oci_collection_trim' => ['bool', 'collection'=>'int'], +'oci_commit' => ['bool', 'connection'=>'resource'], +'oci_connect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], +'oci_define_by_name' => ['bool', 'statement'=>'resource', 'column'=>'string', '&w_var'=>'mixed', 'type='=>'int'], +'oci_error' => ['array|false', 'connection_or_statement='=>'resource'], +'oci_execute' => ['bool', 'statement'=>'resource', 'mode='=>'int'], +'oci_fetch' => ['bool', 'statement'=>'resource'], +'oci_fetch_all' => ['int|false', 'statement'=>'resource', '&w_output'=>'array', 'offset='=>'int', 'limit='=>'int', 'flags='=>'int'], +'oci_fetch_array' => ['array|false', 'statement'=>'resource', 'mode='=>'int'], +'oci_fetch_assoc' => ['array|false', 'statement'=>'resource'], +'oci_fetch_object' => ['object|false', 'statement'=>'resource'], +'oci_fetch_row' => ['array|false', 'statement'=>'resource'], +'oci_field_is_null' => ['bool', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_name' => ['string|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_precision' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_scale' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_size' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_type' => ['mixed|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_field_type_raw' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_free_collection' => ['bool'], +'oci_free_cursor' => ['bool', 'statement'=>'resource'], +'oci_free_descriptor' => ['bool'], +'oci_free_statement' => ['bool', 'statement'=>'resource'], +'oci_get_implicit' => ['bool', 'stmt'=>''], +'oci_get_implicit_resultset' => ['resource|false', 'statement'=>'resource'], +'oci_internal_debug' => ['void', 'onoff'=>'bool'], +'OCILob::append' => ['bool', 'lob_from'=>'OCILob'], +'OCILob::close' => ['bool'], +'OCILob::eof' => ['bool'], +'OCILob::erase' => ['int|false', 'offset='=>'int', 'length='=>'int'], +'OCILob::export' => ['bool', 'filename'=>'string', 'start='=>'int', 'length='=>'int'], +'OCILob::flush' => ['bool', 'flag='=>'int'], +'OCILob::free' => ['bool'], +'OCILob::getbuffering' => ['bool'], +'OCILob::import' => ['bool', 'filename'=>'string'], +'OCILob::load' => ['string|false'], +'OCILob::read' => ['string|false', 'length'=>'int'], +'OCILob::rewind' => ['bool'], +'OCILob::save' => ['bool', 'data'=>'string', 'offset='=>'int'], +'OCILob::savefile' => ['bool', 'filename'=>''], +'OCILob::seek' => ['bool', 'offset'=>'int', 'whence='=>'int'], +'OCILob::setbuffering' => ['bool', 'on_off'=>'bool'], +'OCILob::size' => ['int|false'], +'OCILob::tell' => ['int|false'], +'OCILob::truncate' => ['bool', 'length='=>'int'], +'OCILob::write' => ['int|false', 'data'=>'string', 'length='=>'int'], +'OCILob::writeTemporary' => ['bool', 'data'=>'string', 'lob_type='=>'int'], +'OCILob::writetofile' => ['bool', 'filename'=>'', 'start'=>'', 'length'=>''], +'oci_lob_append' => ['bool', 'to'=>'object'], +'oci_lob_close' => ['bool'], +'oci_lob_copy' => ['bool', 'to'=>'OCILob', 'from'=>'OCILob', 'length='=>'int'], +'oci_lob_eof' => ['bool'], +'oci_lob_erase' => ['int', 'lob'=>'int', 'offset'=>'int'], +'oci_lob_export' => ['bool', 'lob'=>'string', 'filename'=>'int', 'offset'=>'int'], +'oci_lob_flush' => ['bool', 'lob'=>'int'], +'oci_lob_import' => ['bool', 'lob'=>'string'], +'oci_lob_is_equal' => ['bool', 'lob1'=>'OCILob', 'lob2'=>'OCILob'], +'oci_lob_load' => ['string'], +'oci_lob_read' => ['string', 'lob'=>'int'], +'oci_lob_rewind' => ['bool'], +'oci_lob_save' => ['bool', 'lob'=>'string', 'data'=>'int'], +'oci_lob_seek' => ['bool', 'lob'=>'int', 'offset'=>'int'], +'oci_lob_size' => ['int'], +'oci_lob_tell' => ['int'], +'oci_lob_truncate' => ['bool', 'lob'=>'int'], +'oci_lob_write' => ['int', 'lob'=>'string', 'data'=>'int'], +'oci_lob_write_temporary' => ['bool', 'value'=>'string', 'lob_type'=>'int'], +'oci_new_collection' => ['OCICollection|false', 'connection'=>'resource', 'type_name'=>'string', 'schema='=>'string'], +'oci_new_connect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], +'oci_new_cursor' => ['resource|false', 'connection'=>'resource'], +'oci_new_descriptor' => ['OCILob|false', 'connection'=>'resource', 'type='=>'int'], +'oci_num_fields' => ['int|false', 'statement'=>'resource'], +'oci_num_rows' => ['int|false', 'statement'=>'resource'], +'oci_parse' => ['resource|false', 'connection'=>'resource', 'sql'=>'string'], +'oci_password_change' => ['bool', 'connection'=>'resource', 'username'=>'string', 'old_password'=>'string', 'new_password'=>'string'], +'oci_pconnect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], +'oci_register_taf_callback' => ['bool', 'connection'=>'resource', 'callback='=>'callable'], +'oci_result' => ['mixed|false', 'statement'=>'resource', 'column'=>'mixed'], +'oci_rollback' => ['bool', 'connection'=>'resource'], +'oci_server_version' => ['string|false', 'connection'=>'resource'], +'oci_set_action' => ['bool', 'connection'=>'resource', 'action'=>'string'], +'oci_set_call_timeout' => ['bool', 'connection'=>'resource', 'timeout'=>'int'], +'oci_set_client_identifier' => ['bool', 'connection'=>'resource', 'client_id'=>'string'], +'oci_set_client_info' => ['bool', 'connection'=>'resource', 'client_info'=>'string'], +'oci_set_db_operation' => ['bool', 'connection'=>'resource', 'action'=>'string'], +'oci_set_edition' => ['bool', 'edition'=>'string'], +'oci_set_module_name' => ['bool', 'connection'=>'resource', 'name'=>'string'], +'oci_set_prefetch' => ['bool', 'statement'=>'resource', 'rows'=>'int'], +'oci_statement_type' => ['string|false', 'statement'=>'resource'], +'oci_unregister_taf_callback' => ['bool', 'connection'=>'resource'], +'ocifetchinto' => ['int|bool', 'statement'=>'resource', '&w_result'=>'array', 'mode='=>'int'], +'ocigetbufferinglob' => ['bool'], +'ocisetbufferinglob' => ['bool', 'lob'=>'bool'], +'octdec' => ['int|float', 'octal_string'=>'string'], +'odbc_autocommit' => ['int|bool', 'odbc'=>'resource', 'enable='=>'bool'], +'odbc_binmode' => ['bool', 'statement'=>'resource', 'mode'=>'int'], +'odbc_close' => ['void', 'odbc'=>'resource'], +'odbc_close_all' => ['void'], +'odbc_columnprivileges' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'column'=>'string'], +'odbc_columns' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'?string', 'table='=>'?string', 'column='=>'?string'], +'odbc_commit' => ['bool', 'odbc'=>'resource'], +'odbc_connect' => ['resource|false', 'dsn'=>'string', 'user'=>'string', 'password'=>'string', 'cursor_option='=>'int'], +'odbc_cursor' => ['string', 'statement'=>'resource'], +'odbc_data_source' => ['array|false', 'odbc'=>'resource', 'fetch_type'=>'int'], +'odbc_do' => ['resource', 'odbc'=>'resource', 'query'=>'string'], +'odbc_error' => ['string', 'odbc='=>'resource'], +'odbc_errormsg' => ['string', 'odbc='=>'resource'], +'odbc_exec' => ['resource', 'odbc'=>'resource', 'query'=>'string'], +'odbc_execute' => ['bool', 'statement'=>'resource', 'params='=>'array'], +'odbc_fetch_array' => ['array|false', 'statement'=>'resource', 'row='=>'int'], +'odbc_fetch_into' => ['int', 'statement'=>'resource', '&w_array'=>'array', 'row='=>'int'], +'odbc_fetch_object' => ['stdClass|false', 'statement'=>'resource', 'row='=>'int'], +'odbc_fetch_row' => ['bool', 'statement'=>'resource', 'row='=>'?int'], +'odbc_field_len' => ['int|false', 'statement'=>'resource', 'field'=>'int'], +'odbc_field_name' => ['string|false', 'statement'=>'resource', 'field'=>'int'], +'odbc_field_num' => ['int|false', 'statement'=>'resource', 'field'=>'string'], +'odbc_field_precision' => ['int', 'statement'=>'resource', 'field'=>'int'], +'odbc_field_scale' => ['int|false', 'statement'=>'resource', 'field'=>'int'], +'odbc_field_type' => ['string|false', 'statement'=>'resource', 'field'=>'int'], +'odbc_foreignkeys' => ['resource|false', 'odbc'=>'resource', 'pk_catalog'=>'?string', 'pk_schema'=>'string', 'pk_table'=>'string', 'fk_catalog'=>'string', 'fk_schema'=>'string', 'fk_table'=>'string'], +'odbc_free_result' => ['bool', 'statement'=>'resource'], +'odbc_gettypeinfo' => ['resource', 'odbc'=>'resource', 'data_type='=>'int'], +'odbc_longreadlen' => ['bool', 'statement'=>'resource', 'length'=>'int'], +'odbc_next_result' => ['bool', 'statement'=>'resource'], +'odbc_num_fields' => ['int', 'statement'=>'resource'], +'odbc_num_rows' => ['int', 'statement'=>'resource'], +'odbc_pconnect' => ['resource|false', 'dsn'=>'string', 'user'=>'string', 'password'=>'string', 'cursor_option='=>'int'], +'odbc_prepare' => ['resource|false', 'odbc'=>'resource', 'query'=>'string'], +'odbc_primarykeys' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string'], +'odbc_procedurecolumns' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'string', 'schema'=>'string', 'procedure'=>'string', 'column'=>'string'], +'odbc_procedures' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'string', 'schema'=>'string', 'procedure'=>'string'], +'odbc_result' => ['mixed|false', 'statement'=>'resource', 'field'=>'mixed'], +'odbc_result_all' => ['int|false', 'statement'=>'resource', 'format='=>'string'], +'odbc_rollback' => ['bool', 'odbc'=>'resource'], +'odbc_setoption' => ['bool', 'odbc'=>'resource', 'which'=>'int', 'option'=>'int', 'value'=>'int'], +'odbc_specialcolumns' => ['resource|false', 'odbc'=>'resource', 'type'=>'int', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'scope'=>'int', 'nullable'=>'int'], +'odbc_statistics' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'unique'=>'int', 'accuracy'=>'int'], +'odbc_tableprivileges' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string'], +'odbc_tables' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'?string', 'table='=>'?string', 'types='=>'?string'], +'opcache_compile_file' => ['bool', 'filename'=>'string'], +'opcache_get_configuration' => ['array'], +'opcache_get_status' => ['array|false', 'include_scripts='=>'bool'], +'opcache_invalidate' => ['bool', 'filename'=>'string', 'force='=>'bool'], +'opcache_is_script_cached' => ['bool', 'filename'=>'string'], +'opcache_reset' => ['bool'], +'openal_buffer_create' => ['resource'], +'openal_buffer_data' => ['bool', 'buffer'=>'resource', 'format'=>'int', 'data'=>'string', 'freq'=>'int'], +'openal_buffer_destroy' => ['bool', 'buffer'=>'resource'], +'openal_buffer_get' => ['int', 'buffer'=>'resource', 'property'=>'int'], +'openal_buffer_loadwav' => ['bool', 'buffer'=>'resource', 'wavfile'=>'string'], +'openal_context_create' => ['resource', 'device'=>'resource'], +'openal_context_current' => ['bool', 'context'=>'resource'], +'openal_context_destroy' => ['bool', 'context'=>'resource'], +'openal_context_process' => ['bool', 'context'=>'resource'], +'openal_context_suspend' => ['bool', 'context'=>'resource'], +'openal_device_close' => ['bool', 'device'=>'resource'], +'openal_device_open' => ['resource|false', 'device_desc='=>'string'], +'openal_listener_get' => ['mixed', 'property'=>'int'], +'openal_listener_set' => ['bool', 'property'=>'int', 'setting'=>'mixed'], +'openal_source_create' => ['resource'], +'openal_source_destroy' => ['bool', 'source'=>'resource'], +'openal_source_get' => ['mixed', 'source'=>'resource', 'property'=>'int'], +'openal_source_pause' => ['bool', 'source'=>'resource'], +'openal_source_play' => ['bool', 'source'=>'resource'], +'openal_source_rewind' => ['bool', 'source'=>'resource'], +'openal_source_set' => ['bool', 'source'=>'resource', 'property'=>'int', 'setting'=>'mixed'], +'openal_source_stop' => ['bool', 'source'=>'resource'], +'openal_stream' => ['resource', 'source'=>'resource', 'format'=>'int', 'rate'=>'int'], +'opendir' => ['resource|false', 'directory'=>'string', 'context='=>'resource'], +'openlog' => ['true', 'prefix'=>'string', 'flags'=>'int', 'facility'=>'int'], +'openssl_cipher_iv_length' => ['int|false', 'cipher_algo'=>'string'], +'openssl_cipher_key_length' => ['positive-int|false', 'cipher_algo'=>'non-empty-string'], +'openssl_csr_export' => ['bool', 'csr'=>'OpenSSLCertificateSigningRequest|string', '&w_output'=>'string', 'no_text='=>'bool'], +'openssl_csr_export_to_file' => ['bool', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'output_filename'=>'string', 'no_text='=>'bool'], +'openssl_csr_get_public_key' => ['OpenSSLAsymmetricKey|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'short_names='=>'bool'], +'openssl_csr_get_subject' => ['array|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'short_names='=>'bool'], +'openssl_csr_new' => ['OpenSSLCertificateSigningRequest|false', 'distinguished_names'=>'array', '&w_private_key'=>'OpenSSLAsymmetricKey', 'options='=>'array|null', 'extra_attributes='=>'array|null'], +'openssl_csr_sign' => ['OpenSSLCertificate|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'ca_certificate'=>'OpenSSLCertificate|string|null', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'days'=>'int', 'options='=>'array|null', 'serial='=>'int'], +'openssl_decrypt' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', 'tag='=>'?string', 'aad='=>'string'], +'openssl_dh_compute_key' => ['string|false', 'public_key'=>'string', 'private_key'=>'OpenSSLAsymmetricKey'], +'openssl_digest' => ['string|false', 'data'=>'string', 'digest_algo'=>'string', 'binary='=>'bool'], +'openssl_encrypt' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', '&w_tag='=>'string', 'aad='=>'string', 'tag_length='=>'int'], +'openssl_error_string' => ['string|false'], +'openssl_free_key' => ['void', 'key'=>'OpenSSLAsymmetricKey'], +'openssl_get_cert_locations' => ['array'], +'openssl_get_cipher_methods' => ['array', 'aliases='=>'bool'], +'openssl_get_curve_names' => ['list'], +'openssl_get_md_methods' => ['array', 'aliases='=>'bool'], +'openssl_get_privatekey' => ['OpenSSLAsymmetricKey|false', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase='=>'?string'], +'openssl_get_publickey' => ['OpenSSLAsymmetricKey|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], +'openssl_open' => ['bool', 'data'=>'string', '&w_output'=>'string', 'encrypted_key'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'cipher_algo'=>'string', 'iv='=>'string|null'], +'openssl_pbkdf2' => ['string|false', 'password'=>'string', 'salt'=>'string', 'key_length'=>'int', 'iterations'=>'int', 'digest_algo='=>'string'], +'openssl_pkcs12_export' => ['bool', 'certificate'=>'OpenSSLCertificate|string', '&w_output'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase'=>'string', 'options='=>'array'], +'openssl_pkcs12_export_to_file' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'output_filename'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase'=>'string', 'options='=>'array'], +'openssl_pkcs12_read' => ['bool', 'pkcs12'=>'string', '&w_certificates'=>'array', 'passphrase'=>'string'], +'openssl_pkcs7_decrypt' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|string', 'private_key='=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string|null'], +'openssl_pkcs7_encrypt' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|list|string', 'headers'=>'array|null', 'flags='=>'int', 'cipher_algo='=>'int'], +'openssl_pkcs7_read' => ['bool', 'input_filename'=>'string', '&w_certificates'=>'array'], +'openssl_pkcs7_sign' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'headers'=>'array|null', 'flags='=>'int', 'untrusted_certificates_filename='=>'string|null'], +'openssl_pkcs7_verify' => ['bool|int', 'input_filename'=>'string', 'flags'=>'int', 'signers_certificates_filename='=>'?string', 'ca_info='=>'array', 'untrusted_certificates_filename='=>'?string', 'content='=>'?string', 'output_filename='=>'?string'], +'openssl_pkey_derive' => ['string|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'key_length='=>'int'], +'openssl_pkey_export' => ['bool', 'key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', '&w_output'=>'string', 'passphrase='=>'string|null', 'options='=>'array|null'], +'openssl_pkey_export_to_file' => ['bool', 'key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'output_filename'=>'string', 'passphrase='=>'string|null', 'options='=>'array|null'], +'openssl_pkey_free' => ['void', 'key'=>'OpenSSLAsymmetricKey'], +'openssl_pkey_get_details' => ['array|false', 'key'=>'OpenSSLAsymmetricKey'], +'openssl_pkey_get_private' => ['OpenSSLAsymmetricKey|false', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string', 'passphrase='=>'?string'], +'openssl_pkey_get_public' => ['OpenSSLAsymmetricKey|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], +'openssl_pkey_new' => ['OpenSSLAsymmetricKey|false', 'options='=>'array|null'], +'openssl_private_decrypt' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], +'openssl_private_encrypt' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], +'openssl_public_decrypt' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], +'openssl_public_encrypt' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], +'openssl_random_pseudo_bytes' => ['string', 'length'=>'int', '&w_strong_result='=>'bool'], +'openssl_seal' => ['int|false', 'data'=>'string', '&w_sealed_data'=>'string', '&w_encrypted_keys'=>'array', 'public_key'=>'list', 'cipher_algo'=>'string', '&rw_iv='=>'string'], +'openssl_sign' => ['bool', 'data'=>'string', '&w_signature'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'algorithm='=>'int|string'], +'openssl_spki_export' => ['string|false', 'spki'=>'string'], +'openssl_spki_export_challenge' => ['string|false', 'spki'=>'string'], +'openssl_spki_new' => ['string|false', 'private_key'=>'OpenSSLAsymmetricKey', 'challenge'=>'string', 'digest_algo='=>'int'], +'openssl_spki_verify' => ['bool', 'spki'=>'string'], +'openssl_verify' => ['-1|0|1|false', 'data'=>'string', 'signature'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'algorithm='=>'int|string'], +'openssl_x509_check_private_key' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], +'openssl_x509_checkpurpose' => ['bool|int', 'certificate'=>'OpenSSLCertificate|string', 'purpose'=>'int', 'ca_info='=>'array', 'untrusted_certificates_file='=>'string|null'], +'openssl_x509_export' => ['bool', 'certificate'=>'OpenSSLCertificate|string', '&w_output'=>'string', 'no_text='=>'bool'], +'openssl_x509_export_to_file' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'output_filename'=>'string', 'no_text='=>'bool'], +'openssl_x509_fingerprint' => ['string|false', 'certificate'=>'OpenSSLCertificate|string', 'digest_algo='=>'string', 'binary='=>'bool'], +'openssl_x509_free' => ['void', 'certificate'=>'OpenSSLCertificate'], +'openssl_x509_parse' => ['array|false', 'certificate'=>'OpenSSLCertificate|string', 'short_names='=>'bool'], +'openssl_x509_read' => ['OpenSSLCertificate|false', 'certificate'=>'OpenSSLCertificate|string'], +'openssl_x509_verify' => ['int', 'certificate'=>'string|OpenSSLCertificate', 'public_key'=>'string|OpenSSLCertificate|OpenSSLAsymmetricKey|array'], +'ord' => ['int', 'character'=>'string'], +'OuterIterator::current' => ['mixed'], +'OuterIterator::getInnerIterator' => ['Iterator'], +'OuterIterator::key' => ['int|string'], +'OuterIterator::next' => ['void'], +'OuterIterator::rewind' => ['void'], +'OuterIterator::valid' => ['bool'], +'OutOfBoundsException::__clone' => ['void'], +'OutOfBoundsException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'OutOfBoundsException::__toString' => ['string'], +'OutOfBoundsException::getCode' => ['int'], +'OutOfBoundsException::getFile' => ['string'], +'OutOfBoundsException::getLine' => ['int'], +'OutOfBoundsException::getMessage' => ['string'], +'OutOfBoundsException::getPrevious' => ['?Throwable'], +'OutOfBoundsException::getTrace' => ['list\',args?:array}>'], +'OutOfBoundsException::getTraceAsString' => ['string'], +'OutOfRangeException::__clone' => ['void'], +'OutOfRangeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'OutOfRangeException::__toString' => ['string'], +'OutOfRangeException::getCode' => ['int'], +'OutOfRangeException::getFile' => ['string'], +'OutOfRangeException::getLine' => ['int'], +'OutOfRangeException::getMessage' => ['string'], +'OutOfRangeException::getPrevious' => ['?Throwable'], +'OutOfRangeException::getTrace' => ['list\',args?:array}>'], +'OutOfRangeException::getTraceAsString' => ['string'], +'output_add_rewrite_var' => ['bool', 'name'=>'string', 'value'=>'string'], +'output_cache_disable' => ['void'], +'output_cache_disable_compression' => ['void'], +'output_cache_exists' => ['bool', 'key'=>'string', 'lifetime'=>'int'], +'output_cache_fetch' => ['string', 'key'=>'string', 'function'=>'', 'lifetime'=>'int'], +'output_cache_get' => ['mixed|false', 'key'=>'string', 'lifetime'=>'int'], +'output_cache_output' => ['string', 'key'=>'string', 'function'=>'', 'lifetime'=>'int'], +'output_cache_put' => ['bool', 'key'=>'string', 'data'=>'mixed'], +'output_cache_remove' => ['bool', 'filename'=>''], +'output_cache_remove_key' => ['bool', 'key'=>'string'], +'output_cache_remove_url' => ['bool', 'url'=>'string'], +'output_cache_stop' => ['void'], +'output_reset_rewrite_vars' => ['bool'], +'outputformatObj::getOption' => ['string', 'property_name'=>'string'], +'outputformatObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'outputformatObj::setOption' => ['void', 'property_name'=>'string', 'new_value'=>'string'], +'outputformatObj::validate' => ['int'], +'OverflowException::__clone' => ['void'], +'OverflowException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'OverflowException::__toString' => ['string'], +'OverflowException::getCode' => ['int'], +'OverflowException::getFile' => ['string'], +'OverflowException::getLine' => ['int'], +'OverflowException::getMessage' => ['string'], +'OverflowException::getPrevious' => ['?Throwable'], +'OverflowException::getTrace' => ['list\',args?:array}>'], +'OverflowException::getTraceAsString' => ['string'], +'overload' => ['', 'class_name'=>'string'], +'override_function' => ['bool', 'function_name'=>'string', 'function_args'=>'string', 'function_code'=>'string'], +'OwsrequestObj::__construct' => ['void'], +'OwsrequestObj::addParameter' => ['int', 'name'=>'string', 'value'=>'string'], +'OwsrequestObj::getName' => ['string', 'index'=>'int'], +'OwsrequestObj::getValue' => ['string', 'index'=>'int'], +'OwsrequestObj::getValueByName' => ['string', 'name'=>'string'], +'OwsrequestObj::loadParams' => ['int'], +'OwsrequestObj::setParameter' => ['int', 'name'=>'string', 'value'=>'string'], +'pack' => ['string', 'format'=>'string', '...values='=>'mixed'], +'parallel\Future::done' => ['bool'], +'parallel\Future::select' => ['mixed', '&resolving'=>'parallel\Future[]', '&w_resolved'=>'parallel\Future[]', '&w_errored'=>'parallel\Future[]', '&w_timedout='=>'parallel\Future[]', 'timeout='=>'int'], +'parallel\Future::value' => ['mixed', 'timeout='=>'int'], +'parallel\Runtime::__construct' => ['void', 'arg'=>'string|array'], +'parallel\Runtime::__construct\'1' => ['void', 'bootstrap'=>'string', 'configuration'=>'array'], +'parallel\Runtime::close' => ['void'], +'parallel\Runtime::kill' => ['void'], +'parallel\Runtime::run' => ['?parallel\Future', 'closure'=>'Closure', 'args='=>'array'], +'ParentIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator'], +'ParentIterator::accept' => ['bool'], +'ParentIterator::getChildren' => ['?ParentIterator'], +'ParentIterator::hasChildren' => ['bool'], +'ParentIterator::next' => ['void'], +'ParentIterator::rewind' => ['void'], +'ParentIterator::valid' => ['bool'], +'Parle\Lexer::advance' => ['void'], +'Parle\Lexer::build' => ['void'], +'Parle\Lexer::callout' => ['void', 'id'=>'int', 'callback'=>'callable'], +'Parle\Lexer::consume' => ['void', 'data'=>'string'], +'Parle\Lexer::dump' => ['void'], +'Parle\Lexer::getToken' => ['Parle\Token'], +'Parle\Lexer::insertMacro' => ['void', 'name'=>'string', 'regex'=>'string'], +'Parle\Lexer::push' => ['void', 'regex'=>'string', 'id'=>'int'], +'Parle\Lexer::reset' => ['void', 'pos'=>'int'], +'Parle\Parser::advance' => ['void'], +'Parle\Parser::build' => ['void'], +'Parle\Parser::consume' => ['void', 'data'=>'string', 'lexer'=>'Parle\Lexer'], +'Parle\Parser::dump' => ['void'], +'Parle\Parser::errorInfo' => ['Parle\ErrorInfo'], +'Parle\Parser::left' => ['void', 'token'=>'string'], +'Parle\Parser::nonassoc' => ['void', 'token'=>'string'], +'Parle\Parser::precedence' => ['void', 'token'=>'string'], +'Parle\Parser::push' => ['int', 'name'=>'string', 'rule'=>'string'], +'Parle\Parser::reset' => ['void', 'tokenId'=>'int'], +'Parle\Parser::right' => ['void', 'token'=>'string'], +'Parle\Parser::sigil' => ['string', 'idx'=>'array'], +'Parle\Parser::token' => ['void', 'token'=>'string'], +'Parle\Parser::tokenId' => ['int', 'token'=>'string'], +'Parle\Parser::trace' => ['string'], +'Parle\Parser::validate' => ['bool', 'data'=>'string', 'lexer'=>'Parle\Lexer'], +'Parle\RLexer::advance' => ['void'], +'Parle\RLexer::build' => ['void'], +'Parle\RLexer::callout' => ['void', 'id'=>'int', 'callback'=>'callable'], +'Parle\RLexer::consume' => ['void', 'data'=>'string'], +'Parle\RLexer::dump' => ['void'], +'Parle\RLexer::getToken' => ['Parle\Token'], +'parle\rlexer::insertMacro' => ['void', 'name'=>'string', 'regex'=>'string'], +'Parle\RLexer::push' => ['void', 'state'=>'string', 'regex'=>'string', 'newState'=>'string'], +'Parle\RLexer::pushState' => ['int', 'state'=>'string'], +'Parle\RLexer::reset' => ['void', 'pos'=>'int'], +'Parle\RParser::advance' => ['void'], +'Parle\RParser::build' => ['void'], +'Parle\RParser::consume' => ['void', 'data'=>'string', 'lexer'=>'Parle\Lexer'], +'Parle\RParser::dump' => ['void'], +'Parle\RParser::errorInfo' => ['Parle\ErrorInfo'], +'Parle\RParser::left' => ['void', 'token'=>'string'], +'Parle\RParser::nonassoc' => ['void', 'token'=>'string'], +'Parle\RParser::precedence' => ['void', 'token'=>'string'], +'Parle\RParser::push' => ['int', 'name'=>'string', 'rule'=>'string'], +'Parle\RParser::reset' => ['void', 'tokenId'=>'int'], +'Parle\RParser::right' => ['void', 'token'=>'string'], +'Parle\RParser::sigil' => ['string', 'idx'=>'array'], +'Parle\RParser::token' => ['void', 'token'=>'string'], +'Parle\RParser::tokenId' => ['int', 'token'=>'string'], +'Parle\RParser::trace' => ['string'], +'Parle\RParser::validate' => ['bool', 'data'=>'string', 'lexer'=>'Parle\Lexer'], +'Parle\Stack::pop' => ['void'], +'Parle\Stack::push' => ['void', 'item'=>'mixed'], +'parse_ini_file' => ['array|false', 'filename'=>'string', 'process_sections='=>'bool', 'scanner_mode='=>'int'], +'parse_ini_string' => ['array|false', 'ini_string'=>'string', 'process_sections='=>'bool', 'scanner_mode='=>'int'], +'parse_str' => ['void', 'string'=>'string', '&w_result'=>'array'], +'parse_url' => ['int|string|array|null|false', 'url'=>'string', 'component='=>'int'], +'ParseError::__clone' => ['void'], +'ParseError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'ParseError::__toString' => ['string'], +'ParseError::getCode' => ['int'], +'ParseError::getFile' => ['string'], +'ParseError::getLine' => ['int'], +'ParseError::getMessage' => ['string'], +'ParseError::getPrevious' => ['?Throwable'], +'ParseError::getTrace' => ['list\',args?:array}>'], +'ParseError::getTraceAsString' => ['string'], +'parsekit_compile_file' => ['array', 'filename'=>'string', 'errors='=>'array', 'options='=>'int'], +'parsekit_compile_string' => ['array', 'phpcode'=>'string', 'errors='=>'array', 'options='=>'int'], +'parsekit_func_arginfo' => ['array', 'function'=>'mixed'], +'passthru' => ['void', 'command'=>'string', '&w_result_code='=>'int'], +'password_get_info' => ['array', 'hash'=>'string'], +'password_hash' => ['string', 'password'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], +'password_make_salt' => ['bool', 'password'=>'string', 'hash'=>'string'], +'password_needs_rehash' => ['bool', 'hash'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], +'password_verify' => ['bool', 'password'=>'string', 'hash'=>'string'], +'pathinfo' => ['array|string', 'path'=>'string', 'flags='=>'int'], +'pclose' => ['int', 'handle'=>'resource'], +'pcnlt_sigwaitinfo' => ['int', 'set'=>'array', '&w_siginfo'=>'array'], +'pcntl_alarm' => ['int', 'seconds'=>'int'], +'pcntl_async_signals' => ['bool', 'enable='=>'?bool'], +'pcntl_errno' => ['int'], +'pcntl_exec' => ['false', 'path'=>'string', 'args='=>'array', 'env_vars='=>'array'], +'pcntl_fork' => ['int'], +'pcntl_get_last_error' => ['int'], +'pcntl_getpriority' => ['int', 'process_id='=>'?int', 'mode='=>'int'], +'pcntl_setpriority' => ['bool', 'priority'=>'int', 'process_id='=>'?int', 'mode='=>'int'], +'pcntl_signal' => ['bool', 'signal'=>'int', 'handler'=>'callable():void|callable(int):void|callable(int,array):void|int', 'restart_syscalls='=>'bool'], +'pcntl_signal_dispatch' => ['bool'], +'pcntl_signal_get_handler' => ['int|string', 'signal'=>'int'], +'pcntl_sigprocmask' => ['bool', 'mode'=>'int', 'signals'=>'array', '&w_old_signals='=>'array'], +'pcntl_sigtimedwait' => ['int', 'signals'=>'array', '&w_info='=>'array', 'seconds='=>'int', 'nanoseconds='=>'int'], +'pcntl_sigwaitinfo' => ['int', 'signals'=>'array', '&w_info='=>'array'], +'pcntl_strerror' => ['string', 'error_code'=>'int'], +'pcntl_wait' => ['int', '&w_status'=>'int', 'flags='=>'int', '&w_resource_usage='=>'array'], +'pcntl_waitpid' => ['int', 'process_id'=>'int', '&w_status'=>'int', 'flags='=>'int', '&w_resource_usage='=>'array'], +'pcntl_wexitstatus' => ['int', 'status'=>'int'], +'pcntl_wifcontinued' => ['bool', 'status'=>'int'], +'pcntl_wifexited' => ['bool', 'status'=>'int'], +'pcntl_wifsignaled' => ['bool', 'status'=>'int'], +'pcntl_wifstopped' => ['bool', 'status'=>'int'], +'pcntl_wstopsig' => ['int', 'status'=>'int'], +'pcntl_wtermsig' => ['int', 'status'=>'int'], +'PDF_activate_item' => ['bool', 'pdfdoc'=>'resource', 'id'=>'int'], +'PDF_add_launchlink' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], +'PDF_add_locallink' => ['bool', 'pdfdoc'=>'resource', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'page'=>'int', 'dest'=>'string'], +'PDF_add_nameddest' => ['bool', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], +'PDF_add_note' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], +'PDF_add_pdflink' => ['bool', 'pdfdoc'=>'resource', 'bottom_left_x'=>'float', 'bottom_left_y'=>'float', 'up_right_x'=>'float', 'up_right_y'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], +'PDF_add_table_cell' => ['int', 'pdfdoc'=>'resource', 'table'=>'int', 'column'=>'int', 'row'=>'int', 'text'=>'string', 'optlist'=>'string'], +'PDF_add_textflow' => ['int', 'pdfdoc'=>'resource', 'textflow'=>'int', 'text'=>'string', 'optlist'=>'string'], +'PDF_add_thumbnail' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int'], +'PDF_add_weblink' => ['bool', 'pdfdoc'=>'resource', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'url'=>'string'], +'PDF_arc' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'PDF_arcn' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'PDF_attach_file' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'description'=>'string', 'author'=>'string', 'mimetype'=>'string', 'icon'=>'string'], +'PDF_begin_document' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string'], +'PDF_begin_font' => ['bool', 'pdfdoc'=>'resource', 'filename'=>'string', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float', 'optlist'=>'string'], +'PDF_begin_glyph' => ['bool', 'pdfdoc'=>'resource', 'glyphname'=>'string', 'wx'=>'float', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float'], +'PDF_begin_item' => ['int', 'pdfdoc'=>'resource', 'tag'=>'string', 'optlist'=>'string'], +'PDF_begin_layer' => ['bool', 'pdfdoc'=>'resource', 'layer'=>'int'], +'PDF_begin_page' => ['bool', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float'], +'PDF_begin_page_ext' => ['bool', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], +'PDF_begin_pattern' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], +'PDF_begin_template' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float'], +'PDF_begin_template_ext' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], +'PDF_circle' => ['bool', 'pdfdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float'], +'PDF_clip' => ['bool', 'p'=>'resource'], +'PDF_close' => ['bool', 'p'=>'resource'], +'PDF_close_image' => ['bool', 'p'=>'resource', 'image'=>'int'], +'PDF_close_pdi' => ['bool', 'p'=>'resource', 'doc'=>'int'], +'PDF_close_pdi_page' => ['bool', 'p'=>'resource', 'page'=>'int'], +'PDF_closepath' => ['bool', 'p'=>'resource'], +'PDF_closepath_fill_stroke' => ['bool', 'p'=>'resource'], +'PDF_closepath_stroke' => ['bool', 'p'=>'resource'], +'PDF_concat' => ['bool', 'p'=>'resource', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], +'PDF_continue_text' => ['bool', 'p'=>'resource', 'text'=>'string'], +'PDF_create_3dview' => ['int', 'pdfdoc'=>'resource', 'username'=>'string', 'optlist'=>'string'], +'PDF_create_action' => ['int', 'pdfdoc'=>'resource', 'type'=>'string', 'optlist'=>'string'], +'PDF_create_annotation' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'type'=>'string', 'optlist'=>'string'], +'PDF_create_bookmark' => ['int', 'pdfdoc'=>'resource', 'text'=>'string', 'optlist'=>'string'], +'PDF_create_field' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'name'=>'string', 'type'=>'string', 'optlist'=>'string'], +'PDF_create_fieldgroup' => ['bool', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], +'PDF_create_gstate' => ['int', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_create_pvf' => ['bool', 'pdfdoc'=>'resource', 'filename'=>'string', 'data'=>'string', 'optlist'=>'string'], +'PDF_create_textflow' => ['int', 'pdfdoc'=>'resource', 'text'=>'string', 'optlist'=>'string'], +'PDF_curveto' => ['bool', 'p'=>'resource', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'PDF_define_layer' => ['int', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], +'PDF_delete' => ['bool', 'pdfdoc'=>'resource'], +'PDF_delete_pvf' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string'], +'PDF_delete_table' => ['bool', 'pdfdoc'=>'resource', 'table'=>'int', 'optlist'=>'string'], +'PDF_delete_textflow' => ['bool', 'pdfdoc'=>'resource', 'textflow'=>'int'], +'PDF_encoding_set_char' => ['bool', 'pdfdoc'=>'resource', 'encoding'=>'string', 'slot'=>'int', 'glyphname'=>'string', 'uv'=>'int'], +'PDF_end_document' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_end_font' => ['bool', 'pdfdoc'=>'resource'], +'PDF_end_glyph' => ['bool', 'pdfdoc'=>'resource'], +'PDF_end_item' => ['bool', 'pdfdoc'=>'resource', 'id'=>'int'], +'PDF_end_layer' => ['bool', 'pdfdoc'=>'resource'], +'PDF_end_page' => ['bool', 'p'=>'resource'], +'PDF_end_page_ext' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_end_pattern' => ['bool', 'p'=>'resource'], +'PDF_end_template' => ['bool', 'p'=>'resource'], +'PDF_endpath' => ['bool', 'p'=>'resource'], +'PDF_fill' => ['bool', 'p'=>'resource'], +'PDF_fill_imageblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'image'=>'int', 'optlist'=>'string'], +'PDF_fill_pdfblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'contents'=>'int', 'optlist'=>'string'], +'PDF_fill_stroke' => ['bool', 'p'=>'resource'], +'PDF_fill_textblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'text'=>'string', 'optlist'=>'string'], +'PDF_findfont' => ['int', 'p'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'embed'=>'int'], +'PDF_fit_image' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDF_fit_pdi_page' => ['bool', 'pdfdoc'=>'resource', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDF_fit_table' => ['string', 'pdfdoc'=>'resource', 'table'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], +'PDF_fit_textflow' => ['string', 'pdfdoc'=>'resource', 'textflow'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], +'PDF_fit_textline' => ['bool', 'pdfdoc'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDF_get_apiname' => ['string', 'pdfdoc'=>'resource'], +'PDF_get_buffer' => ['string', 'p'=>'resource'], +'PDF_get_errmsg' => ['string', 'pdfdoc'=>'resource'], +'PDF_get_errnum' => ['int', 'pdfdoc'=>'resource'], +'PDF_get_majorversion' => ['int'], +'PDF_get_minorversion' => ['int'], +'PDF_get_parameter' => ['string', 'p'=>'resource', 'key'=>'string', 'modifier'=>'float'], +'PDF_get_pdi_parameter' => ['string', 'p'=>'resource', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], +'PDF_get_pdi_value' => ['float', 'p'=>'resource', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], +'PDF_get_value' => ['float', 'p'=>'resource', 'key'=>'string', 'modifier'=>'float'], +'PDF_info_font' => ['float', 'pdfdoc'=>'resource', 'font'=>'int', 'keyword'=>'string', 'optlist'=>'string'], +'PDF_info_matchbox' => ['float', 'pdfdoc'=>'resource', 'boxname'=>'string', 'num'=>'int', 'keyword'=>'string'], +'PDF_info_table' => ['float', 'pdfdoc'=>'resource', 'table'=>'int', 'keyword'=>'string'], +'PDF_info_textflow' => ['float', 'pdfdoc'=>'resource', 'textflow'=>'int', 'keyword'=>'string'], +'PDF_info_textline' => ['float', 'pdfdoc'=>'resource', 'text'=>'string', 'keyword'=>'string', 'optlist'=>'string'], +'PDF_initgraphics' => ['bool', 'p'=>'resource'], +'PDF_lineto' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], +'PDF_load_3ddata' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string'], +'PDF_load_font' => ['int', 'pdfdoc'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'optlist'=>'string'], +'PDF_load_iccprofile' => ['int', 'pdfdoc'=>'resource', 'profilename'=>'string', 'optlist'=>'string'], +'PDF_load_image' => ['int', 'pdfdoc'=>'resource', 'imagetype'=>'string', 'filename'=>'string', 'optlist'=>'string'], +'PDF_makespotcolor' => ['int', 'p'=>'resource', 'spotname'=>'string'], +'PDF_moveto' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], +'PDF_new' => ['resource'], +'PDF_open_ccitt' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'bitreverse'=>'int', 'k'=>'int', 'blackls1'=>'int'], +'PDF_open_file' => ['bool', 'p'=>'resource', 'filename'=>'string'], +'PDF_open_image' => ['int', 'p'=>'resource', 'imagetype'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], +'PDF_open_image_file' => ['int', 'p'=>'resource', 'imagetype'=>'string', 'filename'=>'string', 'stringparam'=>'string', 'intparam'=>'int'], +'PDF_open_memory_image' => ['int', 'p'=>'resource', 'image'=>'resource'], +'PDF_open_pdi' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string', 'length'=>'int'], +'PDF_open_pdi_document' => ['int', 'p'=>'resource', 'filename'=>'string', 'optlist'=>'string'], +'PDF_open_pdi_page' => ['int', 'p'=>'resource', 'doc'=>'int', 'pagenumber'=>'int', 'optlist'=>'string'], +'PDF_pcos_get_number' => ['float', 'p'=>'resource', 'doc'=>'int', 'path'=>'string'], +'PDF_pcos_get_stream' => ['string', 'p'=>'resource', 'doc'=>'int', 'optlist'=>'string', 'path'=>'string'], +'PDF_pcos_get_string' => ['string', 'p'=>'resource', 'doc'=>'int', 'path'=>'string'], +'PDF_place_image' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], +'PDF_place_pdi_page' => ['bool', 'pdfdoc'=>'resource', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'sx'=>'float', 'sy'=>'float'], +'PDF_process_pdi' => ['int', 'pdfdoc'=>'resource', 'doc'=>'int', 'page'=>'int', 'optlist'=>'string'], +'PDF_rect' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'PDF_restore' => ['bool', 'p'=>'resource'], +'PDF_resume_page' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_rotate' => ['bool', 'p'=>'resource', 'phi'=>'float'], +'PDF_save' => ['bool', 'p'=>'resource'], +'PDF_scale' => ['bool', 'p'=>'resource', 'sx'=>'float', 'sy'=>'float'], +'PDF_set_border_color' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDF_set_border_dash' => ['bool', 'pdfdoc'=>'resource', 'black'=>'float', 'white'=>'float'], +'PDF_set_border_style' => ['bool', 'pdfdoc'=>'resource', 'style'=>'string', 'width'=>'float'], +'PDF_set_gstate' => ['bool', 'pdfdoc'=>'resource', 'gstate'=>'int'], +'PDF_set_info' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], +'PDF_set_layer_dependency' => ['bool', 'pdfdoc'=>'resource', 'type'=>'string', 'optlist'=>'string'], +'PDF_set_parameter' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], +'PDF_set_text_pos' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], +'PDF_set_value' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'float'], +'PDF_setcolor' => ['bool', 'p'=>'resource', 'fstype'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], +'PDF_setdash' => ['bool', 'pdfdoc'=>'resource', 'b'=>'float', 'w'=>'float'], +'PDF_setdashpattern' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_setflat' => ['bool', 'pdfdoc'=>'resource', 'flatness'=>'float'], +'PDF_setfont' => ['bool', 'pdfdoc'=>'resource', 'font'=>'int', 'fontsize'=>'float'], +'PDF_setgray' => ['bool', 'p'=>'resource', 'g'=>'float'], +'PDF_setgray_fill' => ['bool', 'p'=>'resource', 'g'=>'float'], +'PDF_setgray_stroke' => ['bool', 'p'=>'resource', 'g'=>'float'], +'PDF_setlinecap' => ['bool', 'p'=>'resource', 'linecap'=>'int'], +'PDF_setlinejoin' => ['bool', 'p'=>'resource', 'value'=>'int'], +'PDF_setlinewidth' => ['bool', 'p'=>'resource', 'width'=>'float'], +'PDF_setmatrix' => ['bool', 'p'=>'resource', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], +'PDF_setmiterlimit' => ['bool', 'pdfdoc'=>'resource', 'miter'=>'float'], +'PDF_setrgbcolor' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDF_setrgbcolor_fill' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDF_setrgbcolor_stroke' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDF_shading' => ['int', 'pdfdoc'=>'resource', 'shtype'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], +'PDF_shading_pattern' => ['int', 'pdfdoc'=>'resource', 'shading'=>'int', 'optlist'=>'string'], +'PDF_shfill' => ['bool', 'pdfdoc'=>'resource', 'shading'=>'int'], +'PDF_show' => ['bool', 'pdfdoc'=>'resource', 'text'=>'string'], +'PDF_show_boxed' => ['int', 'p'=>'resource', 'text'=>'string', 'left'=>'float', 'top'=>'float', 'width'=>'float', 'height'=>'float', 'mode'=>'string', 'feature'=>'string'], +'PDF_show_xy' => ['bool', 'p'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float'], +'PDF_skew' => ['bool', 'p'=>'resource', 'alpha'=>'float', 'beta'=>'float'], +'PDF_stringwidth' => ['float', 'p'=>'resource', 'text'=>'string', 'font'=>'int', 'fontsize'=>'float'], +'PDF_stroke' => ['bool', 'p'=>'resource'], +'PDF_suspend_page' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], +'PDF_translate' => ['bool', 'p'=>'resource', 'tx'=>'float', 'ty'=>'float'], +'PDF_utf16_to_utf8' => ['string', 'pdfdoc'=>'resource', 'utf16string'=>'string'], +'PDF_utf32_to_utf16' => ['string', 'pdfdoc'=>'resource', 'utf32string'=>'string', 'ordering'=>'string'], +'PDF_utf8_to_utf16' => ['string', 'pdfdoc'=>'resource', 'utf8string'=>'string', 'ordering'=>'string'], +'PDFlib::activate_item' => ['bool', 'id'=>''], +'PDFlib::add_launchlink' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], +'PDFlib::add_locallink' => ['bool', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'page'=>'int', 'dest'=>'string'], +'PDFlib::add_nameddest' => ['bool', 'name'=>'string', 'optlist'=>'string'], +'PDFlib::add_note' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], +'PDFlib::add_pdflink' => ['bool', 'bottom_left_x'=>'float', 'bottom_left_y'=>'float', 'up_right_x'=>'float', 'up_right_y'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], +'PDFlib::add_table_cell' => ['int', 'table'=>'int', 'column'=>'int', 'row'=>'int', 'text'=>'string', 'optlist'=>'string'], +'PDFlib::add_textflow' => ['int', 'textflow'=>'int', 'text'=>'string', 'optlist'=>'string'], +'PDFlib::add_thumbnail' => ['bool', 'image'=>'int'], +'PDFlib::add_weblink' => ['bool', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'url'=>'string'], +'PDFlib::arc' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'PDFlib::arcn' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'PDFlib::attach_file' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'description'=>'string', 'author'=>'string', 'mimetype'=>'string', 'icon'=>'string'], +'PDFlib::begin_document' => ['int', 'filename'=>'string', 'optlist'=>'string'], +'PDFlib::begin_font' => ['bool', 'filename'=>'string', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float', 'optlist'=>'string'], +'PDFlib::begin_glyph' => ['bool', 'glyphname'=>'string', 'wx'=>'float', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float'], +'PDFlib::begin_item' => ['int', 'tag'=>'string', 'optlist'=>'string'], +'PDFlib::begin_layer' => ['bool', 'layer'=>'int'], +'PDFlib::begin_page' => ['bool', 'width'=>'float', 'height'=>'float'], +'PDFlib::begin_page_ext' => ['bool', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], +'PDFlib::begin_pattern' => ['int', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], +'PDFlib::begin_template' => ['int', 'width'=>'float', 'height'=>'float'], +'PDFlib::begin_template_ext' => ['int', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], +'PDFlib::circle' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float'], +'PDFlib::clip' => ['bool'], +'PDFlib::close' => ['bool'], +'PDFlib::close_image' => ['bool', 'image'=>'int'], +'PDFlib::close_pdi' => ['bool', 'doc'=>'int'], +'PDFlib::close_pdi_page' => ['bool', 'page'=>'int'], +'PDFlib::closepath' => ['bool'], +'PDFlib::closepath_fill_stroke' => ['bool'], +'PDFlib::closepath_stroke' => ['bool'], +'PDFlib::concat' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], +'PDFlib::continue_text' => ['bool', 'text'=>'string'], +'PDFlib::create_3dview' => ['int', 'username'=>'string', 'optlist'=>'string'], +'PDFlib::create_action' => ['int', 'type'=>'string', 'optlist'=>'string'], +'PDFlib::create_annotation' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'type'=>'string', 'optlist'=>'string'], +'PDFlib::create_bookmark' => ['int', 'text'=>'string', 'optlist'=>'string'], +'PDFlib::create_field' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'name'=>'string', 'type'=>'string', 'optlist'=>'string'], +'PDFlib::create_fieldgroup' => ['bool', 'name'=>'string', 'optlist'=>'string'], +'PDFlib::create_gstate' => ['int', 'optlist'=>'string'], +'PDFlib::create_pvf' => ['bool', 'filename'=>'string', 'data'=>'string', 'optlist'=>'string'], +'PDFlib::create_textflow' => ['int', 'text'=>'string', 'optlist'=>'string'], +'PDFlib::curveto' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'PDFlib::define_layer' => ['int', 'name'=>'string', 'optlist'=>'string'], +'PDFlib::delete' => ['bool'], +'PDFlib::delete_pvf' => ['int', 'filename'=>'string'], +'PDFlib::delete_table' => ['bool', 'table'=>'int', 'optlist'=>'string'], +'PDFlib::delete_textflow' => ['bool', 'textflow'=>'int'], +'PDFlib::encoding_set_char' => ['bool', 'encoding'=>'string', 'slot'=>'int', 'glyphname'=>'string', 'uv'=>'int'], +'PDFlib::end_document' => ['bool', 'optlist'=>'string'], +'PDFlib::end_font' => ['bool'], +'PDFlib::end_glyph' => ['bool'], +'PDFlib::end_item' => ['bool', 'id'=>'int'], +'PDFlib::end_layer' => ['bool'], +'PDFlib::end_page' => ['bool', 'p'=>''], +'PDFlib::end_page_ext' => ['bool', 'optlist'=>'string'], +'PDFlib::end_pattern' => ['bool', 'p'=>''], +'PDFlib::end_template' => ['bool', 'p'=>''], +'PDFlib::endpath' => ['bool', 'p'=>''], +'PDFlib::fill' => ['bool'], +'PDFlib::fill_imageblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'image'=>'int', 'optlist'=>'string'], +'PDFlib::fill_pdfblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'contents'=>'int', 'optlist'=>'string'], +'PDFlib::fill_stroke' => ['bool'], +'PDFlib::fill_textblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'text'=>'string', 'optlist'=>'string'], +'PDFlib::findfont' => ['int', 'fontname'=>'string', 'encoding'=>'string', 'embed'=>'int'], +'PDFlib::fit_image' => ['bool', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDFlib::fit_pdi_page' => ['bool', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDFlib::fit_table' => ['string', 'table'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], +'PDFlib::fit_textflow' => ['string', 'textflow'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], +'PDFlib::fit_textline' => ['bool', 'text'=>'string', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], +'PDFlib::get_apiname' => ['string'], +'PDFlib::get_buffer' => ['string'], +'PDFlib::get_errmsg' => ['string'], +'PDFlib::get_errnum' => ['int'], +'PDFlib::get_majorversion' => ['int'], +'PDFlib::get_minorversion' => ['int'], +'PDFlib::get_parameter' => ['string', 'key'=>'string', 'modifier'=>'float'], +'PDFlib::get_pdi_parameter' => ['string', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], +'PDFlib::get_pdi_value' => ['float', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], +'PDFlib::get_value' => ['float', 'key'=>'string', 'modifier'=>'float'], +'PDFlib::info_font' => ['float', 'font'=>'int', 'keyword'=>'string', 'optlist'=>'string'], +'PDFlib::info_matchbox' => ['float', 'boxname'=>'string', 'num'=>'int', 'keyword'=>'string'], +'PDFlib::info_table' => ['float', 'table'=>'int', 'keyword'=>'string'], +'PDFlib::info_textflow' => ['float', 'textflow'=>'int', 'keyword'=>'string'], +'PDFlib::info_textline' => ['float', 'text'=>'string', 'keyword'=>'string', 'optlist'=>'string'], +'PDFlib::initgraphics' => ['bool'], +'PDFlib::lineto' => ['bool', 'x'=>'float', 'y'=>'float'], +'PDFlib::load_3ddata' => ['int', 'filename'=>'string', 'optlist'=>'string'], +'PDFlib::load_font' => ['int', 'fontname'=>'string', 'encoding'=>'string', 'optlist'=>'string'], +'PDFlib::load_iccprofile' => ['int', 'profilename'=>'string', 'optlist'=>'string'], +'PDFlib::load_image' => ['int', 'imagetype'=>'string', 'filename'=>'string', 'optlist'=>'string'], +'PDFlib::makespotcolor' => ['int', 'spotname'=>'string'], +'PDFlib::moveto' => ['bool', 'x'=>'float', 'y'=>'float'], +'PDFlib::open_ccitt' => ['int', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'BitReverse'=>'int', 'k'=>'int', 'Blackls1'=>'int'], +'PDFlib::open_file' => ['bool', 'filename'=>'string'], +'PDFlib::open_image' => ['int', 'imagetype'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], +'PDFlib::open_image_file' => ['int', 'imagetype'=>'string', 'filename'=>'string', 'stringparam'=>'string', 'intparam'=>'int'], +'PDFlib::open_memory_image' => ['int', 'image'=>'resource'], +'PDFlib::open_pdi' => ['int', 'filename'=>'string', 'optlist'=>'string', 'length'=>'int'], +'PDFlib::open_pdi_document' => ['int', 'filename'=>'string', 'optlist'=>'string'], +'PDFlib::open_pdi_page' => ['int', 'doc'=>'int', 'pagenumber'=>'int', 'optlist'=>'string'], +'PDFlib::pcos_get_number' => ['float', 'doc'=>'int', 'path'=>'string'], +'PDFlib::pcos_get_stream' => ['string', 'doc'=>'int', 'optlist'=>'string', 'path'=>'string'], +'PDFlib::pcos_get_string' => ['string', 'doc'=>'int', 'path'=>'string'], +'PDFlib::place_image' => ['bool', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], +'PDFlib::place_pdi_page' => ['bool', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'sx'=>'float', 'sy'=>'float'], +'PDFlib::process_pdi' => ['int', 'doc'=>'int', 'page'=>'int', 'optlist'=>'string'], +'PDFlib::rect' => ['bool', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'PDFlib::restore' => ['bool', 'p'=>''], +'PDFlib::resume_page' => ['bool', 'optlist'=>'string'], +'PDFlib::rotate' => ['bool', 'phi'=>'float'], +'PDFlib::save' => ['bool', 'p'=>''], +'PDFlib::scale' => ['bool', 'sx'=>'float', 'sy'=>'float'], +'PDFlib::set_border_color' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDFlib::set_border_dash' => ['bool', 'black'=>'float', 'white'=>'float'], +'PDFlib::set_border_style' => ['bool', 'style'=>'string', 'width'=>'float'], +'PDFlib::set_gstate' => ['bool', 'gstate'=>'int'], +'PDFlib::set_info' => ['bool', 'key'=>'string', 'value'=>'string'], +'PDFlib::set_layer_dependency' => ['bool', 'type'=>'string', 'optlist'=>'string'], +'PDFlib::set_parameter' => ['bool', 'key'=>'string', 'value'=>'string'], +'PDFlib::set_text_pos' => ['bool', 'x'=>'float', 'y'=>'float'], +'PDFlib::set_value' => ['bool', 'key'=>'string', 'value'=>'float'], +'PDFlib::setcolor' => ['bool', 'fstype'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], +'PDFlib::setdash' => ['bool', 'b'=>'float', 'w'=>'float'], +'PDFlib::setdashpattern' => ['bool', 'optlist'=>'string'], +'PDFlib::setflat' => ['bool', 'flatness'=>'float'], +'PDFlib::setfont' => ['bool', 'font'=>'int', 'fontsize'=>'float'], +'PDFlib::setgray' => ['bool', 'g'=>'float'], +'PDFlib::setgray_fill' => ['bool', 'g'=>'float'], +'PDFlib::setgray_stroke' => ['bool', 'g'=>'float'], +'PDFlib::setlinecap' => ['bool', 'linecap'=>'int'], +'PDFlib::setlinejoin' => ['bool', 'value'=>'int'], +'PDFlib::setlinewidth' => ['bool', 'width'=>'float'], +'PDFlib::setmatrix' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], +'PDFlib::setmiterlimit' => ['bool', 'miter'=>'float'], +'PDFlib::setrgbcolor' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDFlib::setrgbcolor_fill' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDFlib::setrgbcolor_stroke' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'PDFlib::shading' => ['int', 'shtype'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], +'PDFlib::shading_pattern' => ['int', 'shading'=>'int', 'optlist'=>'string'], +'PDFlib::shfill' => ['bool', 'shading'=>'int'], +'PDFlib::show' => ['bool', 'text'=>'string'], +'PDFlib::show_boxed' => ['int', 'text'=>'string', 'left'=>'float', 'top'=>'float', 'width'=>'float', 'height'=>'float', 'mode'=>'string', 'feature'=>'string'], +'PDFlib::show_xy' => ['bool', 'text'=>'string', 'x'=>'float', 'y'=>'float'], +'PDFlib::skew' => ['bool', 'alpha'=>'float', 'beta'=>'float'], +'PDFlib::stringwidth' => ['float', 'text'=>'string', 'font'=>'int', 'fontsize'=>'float'], +'PDFlib::stroke' => ['bool', 'p'=>''], +'PDFlib::suspend_page' => ['bool', 'optlist'=>'string'], +'PDFlib::translate' => ['bool', 'tx'=>'float', 'ty'=>'float'], +'PDFlib::utf16_to_utf8' => ['string', 'utf16string'=>'string'], +'PDFlib::utf32_to_utf16' => ['string', 'utf32string'=>'string', 'ordering'=>'string'], +'PDFlib::utf8_to_utf16' => ['string', 'utf8string'=>'string', 'ordering'=>'string'], +'PDO::__construct' => ['void', 'dsn'=>'string', 'username='=>'?string', 'password='=>'?string', 'options='=>'?array'], +'PDO::__sleep' => ['list'], +'PDO::__wakeup' => ['void'], +'PDO::beginTransaction' => ['bool'], +'PDO::commit' => ['bool'], +'PDO::cubrid_schema' => ['array', 'schema_type'=>'int', 'table_name='=>'string', 'col_name='=>'string'], +'PDO::errorCode' => ['?string'], +'PDO::errorInfo' => ['array{0: ?string, 1: ?int, 2: ?string, 3?: mixed, 4?: mixed}'], +'PDO::exec' => ['int|false', 'statement'=>'string'], +'PDO::getAttribute' => ['mixed', 'attribute'=>'int'], +'PDO::getAvailableDrivers' => ['array'], +'PDO::inTransaction' => ['bool'], +'PDO::lastInsertId' => ['string', 'name='=>'string|null'], +'PDO::pgsqlCopyFromArray' => ['bool', 'table_name'=>'string', 'rows'=>'array', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], +'PDO::pgsqlCopyFromFile' => ['bool', 'table_name'=>'string', 'filename'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], +'PDO::pgsqlCopyToArray' => ['array', 'table_name'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], +'PDO::pgsqlCopyToFile' => ['bool', 'table_name'=>'string', 'filename'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], +'PDO::pgsqlGetNotify' => ['array{message:string,pid:int,payload?:string}|false', 'result_type='=>'PDO::FETCH_*', 'ms_timeout='=>'int'], +'PDO::pgsqlGetPid' => ['int'], +'PDO::pgsqlLOBCreate' => ['string'], +'PDO::pgsqlLOBOpen' => ['resource', 'oid'=>'string', 'mode='=>'string'], +'PDO::pgsqlLOBUnlink' => ['bool', 'oid'=>'string'], +'PDO::prepare' => ['PDOStatement|false', 'query'=>'string', 'options='=>'array'], +'PDO::query' => ['PDOStatement|false', 'query'=>'string'], +'PDO::query\'1' => ['PDOStatement|false', 'query'=>'string', 'fetch_column'=>'int', 'colno='=>'int'], +'PDO::query\'2' => ['PDOStatement|false', 'query'=>'string', 'fetch_class'=>'int', 'classname'=>'string', 'constructorArgs'=>'array'], +'PDO::query\'3' => ['PDOStatement|false', 'query'=>'string', 'fetch_into'=>'int', 'object'=>'object'], +'PDO::quote' => ['string|false', 'string'=>'string', 'type='=>'int'], +'PDO::rollBack' => ['bool'], +'PDO::setAttribute' => ['bool', 'attribute'=>'int', 'value'=>''], +'PDO::sqliteCreateAggregate' => ['bool', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], +'PDO::sqliteCreateCollation' => ['bool', 'name'=>'string', 'callback'=>'callable'], +'PDO::sqliteCreateFunction' => ['bool', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], +'pdo_drivers' => ['array'], +'PDOException::getCode' => ['int|string'], +'PDOException::getFile' => ['string'], +'PDOException::getLine' => ['int'], +'PDOException::getMessage' => ['string'], +'PDOException::getPrevious' => ['?Throwable'], +'PDOException::getTrace' => ['list\',args?:array}>'], +'PDOException::getTraceAsString' => ['string'], +'PDOStatement::__sleep' => ['list'], +'PDOStatement::__wakeup' => ['void'], +'PDOStatement::bindColumn' => ['bool', 'column'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int', 'maxLength='=>'int', 'driverOptions='=>'mixed'], +'PDOStatement::bindParam' => ['bool', 'param'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int', 'maxLength='=>'int', 'driverOptions='=>'mixed'], +'PDOStatement::bindValue' => ['bool', 'param'=>'string|int', 'value'=>'mixed', 'type='=>'int'], +'PDOStatement::closeCursor' => ['bool'], +'PDOStatement::columnCount' => ['int'], +'PDOStatement::debugDumpParams' => ['bool|null'], +'PDOStatement::errorCode' => ['string|null'], +'PDOStatement::errorInfo' => ['array{0: ?string, 1: ?int, 2: ?string, 3?: mixed, 4?: mixed}'], +'PDOStatement::execute' => ['bool', 'params='=>'?array'], +'PDOStatement::fetch' => ['mixed', 'mode='=>'int', 'cursorOrientation='=>'int', 'cursorOffset='=>'int'], +'PDOStatement::fetchAll' => ['array', 'mode='=>'int', '...args='=>'mixed'], +'PDOStatement::fetchColumn' => ['mixed', 'column='=>'int'], +'PDOStatement::fetchObject' => ['object|false', 'class='=>'?string', 'constructorArgs='=>'array'], +'PDOStatement::getAttribute' => ['mixed', 'name'=>'int'], +'PDOStatement::getColumnMeta' => ['array|false', 'column'=>'int'], +'PDOStatement::nextRowset' => ['bool'], +'PDOStatement::rowCount' => ['int'], +'PDOStatement::setAttribute' => ['bool', 'attribute'=>'int', 'value'=>'mixed'], +'PDOStatement::setFetchMode' => ['bool', 'mode'=>'int', '...args='=> 'mixed'], +'pfsockopen' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float'], +'pg_affected_rows' => ['int', 'result'=>'\PgSql\Result'], +'pg_cancel_query' => ['bool', 'connection'=>'\PgSql\Connection'], +'pg_client_encoding' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_close' => ['bool', 'connection='=>'?\PgSql\Connection'], +'pg_connect' => ['\PgSql\Connection|false', 'connection_string'=>'string', 'flags='=>'int'], +'pg_connect_poll' => ['int', 'connection'=>'\PgSql\Connection'], +'pg_connection_busy' => ['bool', 'connection'=>'\PgSql\Connection'], +'pg_connection_reset' => ['bool', 'connection'=>'\PgSql\Connection'], +'pg_connection_status' => ['int', 'connection'=>'\PgSql\Connection'], +'pg_consume_input' => ['bool', 'connection'=>'\PgSql\Connection'], +'pg_convert' => ['array|false', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'values'=>'array', 'flags='=>'int'], +'pg_copy_from' => ['bool', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'rows'=>'array', 'separator='=>'string', 'null_as='=>'string'], +'pg_copy_to' => ['array|false', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'separator='=>'string', 'null_as='=>'string'], +'pg_dbname' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_delete' => ['string|bool', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int'], +'pg_end_copy' => ['bool', 'connection='=>'?\PgSql\Connection'], +'pg_escape_bytea' => ['string', 'connection'=>'\PgSql\Connection', 'string'=>'string'], +'pg_escape_bytea\'1' => ['string', 'connection'=>'string'], +'pg_escape_identifier' => ['string|false', 'connection'=>'\PgSql\Connection', 'string'=>'string'], +'pg_escape_identifier\'1' => ['string|false', 'connection'=>'string'], +'pg_escape_literal' => ['string|false', 'connection'=>'\PgSql\Connection', 'string'=>'string'], +'pg_escape_literal\'1' => ['string|false', 'connection'=>'string'], +'pg_escape_string' => ['string', 'connection'=>'\PgSql\Connection', 'string'=>'string'], +'pg_escape_string\'1' => ['string', 'connection'=>'string'], +'pg_exec' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection', 'query'=>'string'], +'pg_exec\'1' => ['\PgSql\Result|false', 'connection'=>'string'], +'pg_execute' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection', 'statement_name'=>'string', 'params'=>'array'], +'pg_execute\'1' => ['\PgSql\Result|false', 'connection'=>'string', 'statement_name'=>'array'], +'pg_fetch_all' => ['array', 'result'=>'\PgSql\Result', 'mode='=>'int'], +'pg_fetch_all_columns' => ['array', 'result'=>'\PgSql\Result', 'field='=>'int'], +'pg_fetch_array' => ['array|false', 'result'=>'\PgSql\Result', 'row='=>'?int', 'mode='=>'int'], +'pg_fetch_assoc' => ['array|false', 'result'=>'\PgSql\Result', 'row='=>'?int'], +'pg_fetch_object' => ['object|false', 'result'=>'\PgSql\Result', 'row='=>'?int', 'class='=>'string', 'constructor_args='=>'array'], +'pg_fetch_result' => ['string|false|null', 'result'=>'\PgSql\Result', 'row'=>'string|int'], +'pg_fetch_result\'1' => ['string|false|null', 'result'=>'\PgSql\Result', 'row'=>'?int', 'field'=>'string|int'], +'pg_fetch_row' => ['array|false', 'result'=>'\PgSql\Result', 'row='=>'?int', 'mode='=>'int'], +'pg_field_is_null' => ['int|false', 'result'=>'\PgSql\Result', 'row'=>'string|int'], +'pg_field_is_null\'1' => ['int|false', 'result'=>'\PgSql\Result', 'row'=>'int', 'field'=>'string|int'], +'pg_field_name' => ['string', 'result'=>'\PgSql\Result', 'field'=>'int'], +'pg_field_num' => ['int', 'result'=>'\PgSql\Result', 'field'=>'string'], +'pg_field_prtlen' => ['int|false', 'result'=>'\PgSql\Result', 'row'=>'string|int'], +'pg_field_prtlen\'1' => ['int|false', 'result'=>'\PgSql\Result', 'row'=>'int', 'field'=>'string|int'], +'pg_field_size' => ['int', 'result'=>'\PgSql\Result', 'field'=>'int'], +'pg_field_table' => ['string|int|false', 'result'=>'\PgSql\Result', 'field'=>'int', 'oid_only='=>'bool'], +'pg_field_type' => ['string', 'result'=>'\PgSql\Result', 'field'=>'int'], +'pg_field_type_oid' => ['int|string', 'result'=>'\PgSql\Result', 'field'=>'int'], +'pg_flush' => ['int|bool', 'connection'=>'\PgSql\Connection'], +'pg_free_result' => ['bool', 'result'=>'\PgSql\Result'], +'pg_get_notify' => ['array|false', 'connection'=>'\PgSql\Connection', 'mode='=>'int'], +'pg_get_pid' => ['int', 'connection'=>'\PgSql\Connection'], +'pg_get_result' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection'], +'pg_host' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_insert' => ['\PgSql\Result|string|false', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'values'=>'array', 'flags='=>'int'], +'pg_last_error' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_last_notice' => ['string|array|bool', 'connection'=>'\PgSql\Connection', 'mode='=>'int'], +'pg_last_oid' => ['string|int|false', 'result'=>'\PgSql\Result'], +'pg_lo_close' => ['bool', 'lob'=>'\PgSql\Lob'], +'pg_lo_create' => ['int|string|false', 'connection='=>'\PgSql\Connection', 'oid='=>'int|string'], +'pg_lo_export' => ['bool', 'connection'=>'\PgSql\Connection', 'oid'=>'int|string', 'filename'=>'string'], +'pg_lo_export\'1' => ['bool', 'connection'=>'int|string', 'oid'=>'string'], +'pg_lo_import' => ['int|string|false', 'connection'=>'\PgSql\Connection', 'filename'=>'string', 'oid'=>'string|int'], +'pg_lo_import\'1' => ['int|string|false', 'connection'=>'string', 'filename'=>'string|int'], +'pg_lo_open' => ['\PgSql\Lob|false', 'connection'=>'\PgSql\Connection', 'oid'=>'int|string', 'mode'=>'string'], +'pg_lo_open\'1' => ['\PgSql\Lob|false', 'connection'=>'int|string', 'oid'=>'string'], +'pg_lo_read' => ['string|false', 'lob'=>'\PgSql\Lob', 'length='=>'int'], +'pg_lo_read_all' => ['int', 'lob'=>'\PgSql\Lob'], +'pg_lo_seek' => ['bool', 'lob'=>'\PgSql\Lob', 'offset'=>'int', 'whence='=>'int'], +'pg_lo_tell' => ['int', 'lob'=>'\PgSql\Lob'], +'pg_lo_truncate' => ['bool', 'lob'=>'\PgSql\Lob', 'size'=>'int'], +'pg_lo_unlink' => ['bool', 'connection'=>'\PgSql\Connection', 'oid'=>'int|string'], +'pg_lo_unlink\'1' => ['bool', 'connection'=>'int|string'], +'pg_lo_write' => ['int|false', 'lob'=>'\PgSql\Lob', 'data'=>'string', 'length='=>'?int'], +'pg_meta_data' => ['array|false', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'extended='=>'bool'], +'pg_num_fields' => ['int', 'result'=>'\PgSql\Result'], +'pg_num_rows' => ['int', 'result'=>'\PgSql\Result'], +'pg_options' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_parameter_status' => ['string|false', 'connection'=>'\PgSql\Connection', 'name'=>'string'], +'pg_parameter_status\'1' => ['string|false', 'connection'=>'string'], +'pg_pconnect' => ['\PgSql\Connection|false', 'connection_string'=>'string', 'flags='=>'int'], +'pg_ping' => ['bool', 'connection='=>'?\PgSql\Connection'], +'pg_port' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_prepare' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection', 'statement_name'=>'string', 'query'=>'string'], +'pg_prepare\'1' => ['\PgSql\Result|false', 'connection'=>'string', 'statement_name'=>'string'], +'pg_put_line' => ['bool', 'connection'=>'\PgSql\Connection', 'data'=>'string'], +'pg_put_line\'1' => ['bool', 'connection'=>'string'], +'pg_query' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection', 'query'=>'string'], +'pg_query\'1' => ['\PgSql\Result|false', 'connection'=>'string'], +'pg_query_params' => ['\PgSql\Result|false', 'connection'=>'\PgSql\Connection', 'query'=>'string', 'params'=>'array'], +'pg_query_params\'1' => ['\PgSql\Result|false', 'connection'=>'string', 'query'=>'array'], +'pg_result_error' => ['string|false', 'result'=>'\PgSql\Result'], +'pg_result_error_field' => ['string|false|null', 'result'=>'\PgSql\Result', 'field_code'=>'int'], +'pg_result_seek' => ['bool', 'result'=>'\PgSql\Result', 'row'=>'int'], +'pg_result_status' => ['string|int', 'result'=>'\PgSql\Result', 'mode='=>'int'], +'pg_select' => ['string|array|false', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int', 'mode='=>'int'], +'pg_send_execute' => ['bool|int', 'connection'=>'\PgSql\Connection', 'statement_name'=>'string', 'params'=>'array'], +'pg_send_prepare' => ['bool|int', 'connection'=>'\PgSql\Connection', 'statement_name'=>'string', 'query'=>'string'], +'pg_send_query' => ['bool|int', 'connection'=>'\PgSql\Connection', 'query'=>'string'], +'pg_send_query_params' => ['bool|int', 'connection'=>'\PgSql\Connection', 'query'=>'string', 'params'=>'array'], +'pg_set_client_encoding' => ['int', 'connection'=>'\PgSql\Connection', 'encoding'=>'string'], +'pg_set_client_encoding\'1' => ['int', 'connection'=>'string'], +'pg_set_error_verbosity' => ['int|false', 'connection'=>'\PgSql\Connection', 'verbosity'=>'int'], +'pg_set_error_verbosity\'1' => ['int|false', 'connection'=>'int'], +'pg_socket' => ['resource|false', 'connection'=>'\PgSql\Connection'], +'pg_trace' => ['bool', 'filename'=>'string', 'mode='=>'string', 'connection='=>'?\PgSql\Connection'], +'pg_transaction_status' => ['int', 'connection'=>'\PgSql\Connection'], +'pg_tty' => ['string', 'connection='=>'?\PgSql\Connection'], +'pg_unescape_bytea' => ['string', 'string'=>'string'], +'pg_untrace' => ['bool', 'connection='=>'?\PgSql\Connection'], +'pg_update' => ['string|bool', 'connection'=>'\PgSql\Connection', 'table_name'=>'string', 'values'=>'array', 'conditions'=>'array', 'flags='=>'int'], +'pg_version' => ['array', 'connection='=>'?\PgSql\Connection'], +'Phar::__construct' => ['void', 'fname'=>'string', 'flags='=>'int', 'alias='=>'string'], +'Phar::addEmptyDir' => ['void', 'dirname'=>'string'], +'Phar::addFile' => ['void', 'file'=>'string', 'localname='=>'string'], +'Phar::addFromString' => ['void', 'localname'=>'string', 'contents'=>'string'], +'Phar::apiVersion' => ['string'], +'Phar::buildFromDirectory' => ['array', 'base_dir'=>'string', 'regex='=>'string'], +'Phar::buildFromIterator' => ['array', 'iter'=>'Iterator', 'base_directory='=>'string'], +'Phar::canCompress' => ['bool', 'method='=>'int'], +'Phar::canWrite' => ['bool'], +'Phar::compress' => ['?Phar', 'compression'=>'int', 'extension='=>'?string'], +'Phar::compressAllFilesBZIP2' => ['bool'], +'Phar::compressAllFilesGZ' => ['bool'], +'Phar::compressFiles' => ['void', 'compression'=>'int'], +'Phar::convertToData' => ['?PharData', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], +'Phar::convertToExecutable' => ['?Phar', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], +'Phar::copy' => ['bool', 'oldfile'=>'string', 'newfile'=>'string'], +'Phar::count' => ['int'], +'Phar::createDefaultStub' => ['string', 'indexfile='=>'string', 'webindexfile='=>'string'], +'Phar::decompress' => ['?Phar', 'extension='=>'?string'], +'Phar::decompressFiles' => ['bool'], +'Phar::delete' => ['bool', 'entry'=>'string'], +'Phar::delMetadata' => ['bool'], +'Phar::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string|array|null', 'overwrite='=>'bool'], +'Phar::getAlias' => ['?string'], +'Phar::getMetadata' => ['mixed', 'unserializeOptions='=>'array'], +'Phar::getModified' => ['bool'], +'Phar::getPath' => ['string'], +'Phar::getSignature' => ['array{hash:string, hash_type:string}'], +'Phar::getStub' => ['string'], +'Phar::getSupportedCompression' => ['array'], +'Phar::getSupportedSignatures' => ['array'], +'Phar::getVersion' => ['string'], +'Phar::hasMetadata' => ['bool'], +'Phar::interceptFileFuncs' => ['void'], +'Phar::isBuffering' => ['bool'], +'Phar::isCompressed' => ['int|false'], +'Phar::isFileFormat' => ['bool', 'format'=>'int'], +'Phar::isValidPharFilename' => ['bool', 'filename'=>'string', 'executable='=>'bool'], +'Phar::isWritable' => ['bool'], +'Phar::loadPhar' => ['bool', 'filename'=>'string', 'alias='=>'?string'], +'Phar::mapPhar' => ['bool', 'alias='=>'string', 'dataoffset='=>'int'], +'Phar::mount' => ['void', 'pharpath'=>'string', 'externalpath'=>'string'], +'Phar::mungServer' => ['void', 'munglist'=>'array'], +'Phar::offsetExists' => ['bool', 'offset'=>'string'], +'Phar::offsetGet' => ['PharFileInfo', 'offset'=>'string'], +'Phar::offsetSet' => ['void', 'offset'=>'string', 'value'=>'string'], +'Phar::offsetUnset' => ['bool', 'offset'=>'string'], +'Phar::running' => ['string', 'retphar='=>'bool'], +'Phar::setAlias' => ['bool', 'alias'=>'string'], +'Phar::setDefaultStub' => ['bool', 'index='=>'string', 'webindex='=>'string'], +'Phar::setMetadata' => ['void', 'metadata'=>''], +'Phar::setSignatureAlgorithm' => ['void', 'sigtype'=>'int', 'privatekey='=>'string'], +'Phar::setStub' => ['bool', 'stub'=>'string', 'length='=>'int'], +'Phar::startBuffering' => ['void'], +'Phar::stopBuffering' => ['void'], +'Phar::uncompressAllFiles' => ['bool'], +'Phar::unlinkArchive' => ['bool', 'archive'=>'string'], +'Phar::webPhar' => ['', 'alias='=>'string', 'index='=>'string', 'f404='=>'string', 'mimetypes='=>'array', 'rewrites='=>'array'], +'PharData::__construct' => ['void', 'fname'=>'string', 'flags='=>'?int', 'alias='=>'?string', 'format='=>'int'], +'PharData::addEmptyDir' => ['bool', 'dirname'=>'string'], +'PharData::addFile' => ['void', 'file'=>'string', 'localname='=>'string'], +'PharData::addFromString' => ['bool', 'localname'=>'string', 'contents'=>'string'], +'PharData::buildFromDirectory' => ['array', 'base_dir'=>'string', 'regex='=>'string'], +'PharData::buildFromIterator' => ['array', 'iter'=>'Iterator', 'base_directory='=>'string'], +'PharData::compress' => ['?PharData', 'compression'=>'int', 'extension='=>'?string'], +'PharData::compressFiles' => ['void', 'compression'=>'int'], +'PharData::convertToData' => ['?PharData', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], +'PharData::convertToExecutable' => ['?Phar', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], +'PharData::copy' => ['bool', 'oldfile'=>'string', 'newfile'=>'string'], +'PharData::decompress' => ['?PharData', 'extension='=>'?string'], +'PharData::decompressFiles' => ['bool'], +'PharData::delete' => ['bool', 'entry'=>'string'], +'PharData::delMetadata' => ['bool'], +'PharData::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string|array|null', 'overwrite='=>'bool'], +'PharData::isWritable' => ['bool'], +'PharData::offsetExists' => ['bool', 'offset'=>'string'], +'PharData::offsetGet' => ['PharFileInfo', 'offset'=>'string'], +'PharData::offsetSet' => ['void', 'offset'=>'string', 'value'=>'string'], +'PharData::offsetUnset' => ['bool', 'offset'=>'string'], +'PharData::setAlias' => ['bool', 'alias'=>'string'], +'PharData::setDefaultStub' => ['bool', 'index='=>'string', 'webindex='=>'string'], +'phardata::setMetadata' => ['void', 'metadata'=>'mixed'], +'phardata::setSignatureAlgorithm' => ['void', 'sigtype'=>'int'], +'PharData::setStub' => ['bool', 'stub'=>'string', 'length='=>'int'], +'PharFileInfo::__construct' => ['void', 'entry'=>'string'], +'PharFileInfo::chmod' => ['void', 'permissions'=>'int'], +'PharFileInfo::compress' => ['bool', 'compression'=>'int'], +'PharFileInfo::decompress' => ['bool'], +'PharFileInfo::delMetadata' => ['bool'], +'PharFileInfo::getCompressedSize' => ['int'], +'PharFileInfo::getContent' => ['string'], +'PharFileInfo::getCRC32' => ['int'], +'PharFileInfo::getMetadata' => ['mixed', 'unserializeOptions='=>'array'], +'PharFileInfo::getPharFlags' => ['int'], +'PharFileInfo::hasMetadata' => ['bool'], +'PharFileInfo::isCompressed' => ['bool', 'compression_type='=>'int'], +'PharFileInfo::isCompressedBZIP2' => ['bool'], +'PharFileInfo::isCompressedGZ' => ['bool'], +'PharFileInfo::isCRCChecked' => ['bool'], +'PharFileInfo::setCompressedBZIP2' => ['bool'], +'PharFileInfo::setCompressedGZ' => ['bool'], +'PharFileInfo::setMetadata' => ['void', 'metadata'=>'mixed'], +'PharFileInfo::setUncompressed' => ['bool'], +'phdfs::__construct' => ['void', 'ip'=>'string', 'port'=>'string'], +'phdfs::__destruct' => ['void'], +'phdfs::connect' => ['bool'], +'phdfs::copy' => ['bool', 'source_file'=>'string', 'destination_file'=>'string'], +'phdfs::create_directory' => ['bool', 'path'=>'string'], +'phdfs::delete' => ['bool', 'path'=>'string'], +'phdfs::disconnect' => ['bool'], +'phdfs::exists' => ['bool', 'path'=>'string'], +'phdfs::file_info' => ['array', 'path'=>'string'], +'phdfs::list_directory' => ['array', 'path'=>'string'], +'phdfs::read' => ['string', 'path'=>'string', 'length='=>'string'], +'phdfs::rename' => ['bool', 'old_path'=>'string', 'new_path'=>'string'], +'phdfs::tell' => ['int', 'path'=>'string'], +'phdfs::write' => ['bool', 'path'=>'string', 'buffer'=>'string', 'mode='=>'string'], +'php_check_syntax' => ['bool', 'filename'=>'string', 'error_message='=>'string'], +'php_ini_loaded_file' => ['string|false'], +'php_ini_scanned_files' => ['string|false'], +'php_logo_guid' => ['string'], +'php_sapi_name' => ['string'], +'php_strip_whitespace' => ['string', 'filename'=>'string'], +'php_uname' => ['string', 'mode='=>'string'], +'php_user_filter::filter' => ['int', 'in'=>'resource', 'out'=>'resource', '&rw_consumed'=>'int', 'closing'=>'bool'], +'php_user_filter::onClose' => ['void'], +'php_user_filter::onCreate' => ['bool'], +'phpcredits' => ['true', 'flags='=>'int'], +'phpdbg_break_file' => ['void', 'file'=>'string', 'line'=>'int'], +'phpdbg_break_function' => ['void', 'function'=>'string'], +'phpdbg_break_method' => ['void', 'class'=>'string', 'method'=>'string'], +'phpdbg_break_next' => ['void'], +'phpdbg_clear' => ['void'], +'phpdbg_color' => ['void', 'element'=>'int', 'color'=>'string'], +'phpdbg_end_oplog' => ['array', 'options='=>'array'], +'phpdbg_exec' => ['mixed', 'context='=>'string'], +'phpdbg_get_executable' => ['array', 'options='=>'array'], +'phpdbg_prompt' => ['void', 'string'=>'string'], +'phpdbg_start_oplog' => ['void'], +'phpinfo' => ['true', 'flags='=>'int'], +'PhpToken::tokenize' => ['list', 'code'=>'string', 'flags='=>'int'], +'PhpToken::is' => ['bool', 'kind'=>'string|int|string[]|int[]'], +'PhpToken::isIgnorable' => ['bool'], +'PhpToken::getTokenName' => ['?string'], +'phpversion' => ['string|false', 'extension='=>'?string'], +'pht\AtomicInteger::__construct' => ['void', 'value='=>'int'], +'pht\AtomicInteger::dec' => ['void'], +'pht\AtomicInteger::get' => ['int'], +'pht\AtomicInteger::inc' => ['void'], +'pht\AtomicInteger::lock' => ['void'], +'pht\AtomicInteger::set' => ['void', 'value'=>'int'], +'pht\AtomicInteger::unlock' => ['void'], +'pht\HashTable::lock' => ['void'], +'pht\HashTable::size' => ['int'], +'pht\HashTable::unlock' => ['void'], +'pht\Queue::front' => ['mixed'], +'pht\Queue::lock' => ['void'], +'pht\Queue::pop' => ['mixed'], +'pht\Queue::push' => ['void', 'value'=>'mixed'], +'pht\Queue::size' => ['int'], +'pht\Queue::unlock' => ['void'], +'pht\Runnable::run' => ['void'], +'pht\thread::addClassTask' => ['void', 'className'=>'string', '...ctorArgs='=>'mixed'], +'pht\thread::addFileTask' => ['void', 'fileName'=>'string', '...globals='=>'mixed'], +'pht\thread::addFunctionTask' => ['void', 'func'=>'callable', '...funcArgs='=>'mixed'], +'pht\thread::join' => ['void'], +'pht\thread::start' => ['void'], +'pht\thread::taskCount' => ['int'], +'pht\threaded::lock' => ['void'], +'pht\threaded::unlock' => ['void'], +'pht\Vector::__construct' => ['void', 'size='=>'int', 'value='=>'mixed'], +'pht\Vector::deleteAt' => ['void', 'offset'=>'int'], +'pht\Vector::insertAt' => ['void', 'value'=>'mixed', 'offset'=>'int'], +'pht\Vector::lock' => ['void'], +'pht\Vector::pop' => ['mixed'], +'pht\Vector::push' => ['void', 'value'=>'mixed'], +'pht\Vector::resize' => ['void', 'size'=>'int', 'value='=>'mixed'], +'pht\Vector::shift' => ['mixed'], +'pht\Vector::size' => ['int'], +'pht\Vector::unlock' => ['void'], +'pht\Vector::unshift' => ['void', 'value'=>'mixed'], +'pht\Vector::updateAt' => ['void', 'value'=>'mixed', 'offset'=>'int'], +'pi' => ['float'], +'pointObj::__construct' => ['void'], +'pointObj::distanceToLine' => ['float', 'p1'=>'pointObj', 'p2'=>'pointObj'], +'pointObj::distanceToPoint' => ['float', 'poPoint'=>'pointObj'], +'pointObj::distanceToShape' => ['float', 'shape'=>'shapeObj'], +'pointObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj', 'class_index'=>'int', 'text'=>'string'], +'pointObj::ms_newPointObj' => ['pointObj'], +'pointObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], +'pointObj::setXY' => ['int', 'x'=>'float', 'y'=>'float', 'm'=>'float'], +'pointObj::setXYZ' => ['int', 'x'=>'float', 'y'=>'float', 'z'=>'float', 'm'=>'float'], +'Pool::__construct' => ['void', 'size'=>'int', 'class'=>'string', 'ctor='=>'array'], +'Pool::collect' => ['int', 'collector='=>'Callable'], +'Pool::resize' => ['void', 'size'=>'int'], +'Pool::shutdown' => ['void'], +'Pool::submit' => ['int', 'task'=>'Threaded'], +'Pool::submitTo' => ['int', 'worker'=>'int', 'task'=>'Threaded'], +'popen' => ['resource|false', 'command'=>'string', 'mode'=>'string'], +'pos' => ['mixed', 'array'=>'array'], +'posix_access' => ['bool', 'filename'=>'string', 'flags='=>'int'], +'posix_ctermid' => ['string|false'], +'posix_errno' => ['int'], +'posix_get_last_error' => ['int'], +'posix_getcwd' => ['string|false'], +'posix_getegid' => ['int'], +'posix_geteuid' => ['int'], +'posix_getgid' => ['int'], +'posix_getgrgid' => ['array{name: string, passwd: string, gid: int, members: list}|false', 'group_id'=>'int'], +'posix_getgrnam' => ['array{name: string, passwd: string, gid: int, members: list}|false', 'name'=>'string'], +'posix_getgroups' => ['list|false'], +'posix_getlogin' => ['string|false'], +'posix_getpgid' => ['int|false', 'process_id'=>'int'], +'posix_getpgrp' => ['int'], +'posix_getpid' => ['int'], +'posix_getppid' => ['int'], +'posix_getpwnam' => ['array{name: string, passwd: string, uid: int, gid: int, gecos: string, dir: string, shell: string}|false', 'username'=>'string'], +'posix_getpwuid' => ['array{name: string, passwd: string, uid: int, gid: int, gecos: string, dir: string, shell: string}|false', 'user_id'=>'int'], +'posix_getrlimit' => ['array{"soft core": string, "hard core": string, "soft data": string, "hard data": string, "soft stack": integer, "hard stack": string, "soft totalmem": string, "hard totalmem": string, "soft rss": string, "hard rss": string, "soft maxproc": integer, "hard maxproc": integer, "soft memlock": integer, "hard memlock": integer, "soft cpu": string, "hard cpu": string, "soft filesize": string, "hard filesize": string, "soft openfiles": integer, "hard openfiles": integer}|false'], +'posix_getsid' => ['int|false', 'process_id'=>'int'], +'posix_getuid' => ['int'], +'posix_initgroups' => ['bool', 'username'=>'string', 'group_id'=>'int'], +'posix_isatty' => ['bool', 'file_descriptor'=>'resource|int'], +'posix_kill' => ['bool', 'process_id'=>'int', 'signal'=>'int'], +'posix_mkfifo' => ['bool', 'filename'=>'string', 'permissions'=>'int'], +'posix_mknod' => ['bool', 'filename'=>'string', 'flags'=>'int', 'major='=>'int', 'minor='=>'int'], +'posix_setegid' => ['bool', 'group_id'=>'int'], +'posix_seteuid' => ['bool', 'user_id'=>'int'], +'posix_setgid' => ['bool', 'group_id'=>'int'], +'posix_setpgid' => ['bool', 'process_id'=>'int', 'process_group_id'=>'int'], +'posix_setrlimit' => ['bool', 'resource'=>'int', 'soft_limit'=>'int', 'hard_limit'=>'int'], +'posix_setsid' => ['int'], +'posix_setuid' => ['bool', 'user_id'=>'int'], +'posix_strerror' => ['string', 'error_code'=>'int'], +'posix_times' => ['array{ticks: int, utime: int, stime: int, cutime: int, cstime: int}|false'], +'posix_ttyname' => ['string|false', 'file_descriptor'=>'resource|int'], +'posix_uname' => ['array{sysname: string, nodename: string, release: string, version: string, machine: string, domainname: string}|false'], +'Postal\Expand::expand_address' => ['string[]', 'address'=>'string', 'options='=>'array'], +'Postal\Parser::parse_address' => ['array', 'address'=>'string', 'options='=>'array'], +'pow' => ['float|int', 'num'=>'int|float', 'exponent'=>'int|float'], +'preg_filter' => ['string|string[]|null', 'pattern'=>'string|string[]', 'replacement'=>'string|string[]', 'subject'=>'string|string[]', 'limit='=>'int', '&w_count='=>'int'], +'preg_grep' => ['array|false', 'pattern'=>'string', 'array'=>'array', 'flags='=>'int'], +'preg_last_error' => ['int'], +'preg_match' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'string[]', 'flags='=>'0', 'offset='=>'int'], +'preg_match\'1' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'array', 'flags='=>'int', 'offset='=>'int'], +'preg_match_all' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'array', 'flags='=>'int', 'offset='=>'int'], +'preg_quote' => ['string', 'str'=>'string', 'delimiter='=>'?string'], +'preg_replace' => ['string|string[]|null', 'pattern'=>'string|array', 'replacement'=>'string|array', 'subject'=>'string|array', 'limit='=>'int', '&w_count='=>'int'], +'preg_replace_callback' => ['string|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], +'preg_replace_callback\'1' => ['string[]|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], +'preg_replace_callback_array' => ['string|null', 'pattern'=>'array', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], +'preg_replace_callback_array\'1' => ['string[]|null', 'pattern'=>'array', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], +'preg_split' => ['list|false', 'pattern'=>'string', 'subject'=>'string', 'limit'=>'int', 'flags='=>'null'], +'preg_split\'1' => ['list|list>|false', 'pattern'=>'string', 'subject'=>'string', 'limit='=>'int', 'flags='=>'int'], +'prev' => ['mixed', '&r_array'=>'array|object'], +'print' => ['int', 'arg'=>'string'], +'print_r' => ['string', 'value'=>'mixed'], +'print_r\'1' => ['true', 'value'=>'mixed', 'return='=>'bool'], +'printf' => ['int', 'format'=>'string', '...values='=>'string|int|float'], +'proc_close' => ['int', 'process'=>'resource'], +'proc_get_status' => ['array{command: string, pid: int, running: bool, signaled: bool, stopped: bool, exitcode: int, termsig: int, stopsig: int}', 'process'=>'resource'], +'proc_nice' => ['bool', 'priority'=>'int'], +'proc_open' => ['resource|false', 'command'=>'string|array', 'descriptor_spec'=>'array', '&pipes'=>'resource[]', 'cwd='=>'?string', 'env_vars='=>'?array', 'options='=>'?array'], +'proc_terminate' => ['bool', 'process'=>'resource', 'signal='=>'int'], +'projectionObj::__construct' => ['void', 'projectionString'=>'string'], +'projectionObj::getUnits' => ['int'], +'projectionObj::ms_newProjectionObj' => ['projectionObj', 'projectionString'=>'string'], +'property_exists' => ['bool', 'object_or_class'=>'object|string', 'property'=>'string'], +'ps_add_bookmark' => ['int', 'psdoc'=>'resource', 'text'=>'string', 'parent='=>'int', 'open='=>'int'], +'ps_add_launchlink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], +'ps_add_locallink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'page'=>'int', 'dest'=>'string'], +'ps_add_note' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], +'ps_add_pdflink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], +'ps_add_weblink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'url'=>'string'], +'ps_arc' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'ps_arcn' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float', 'alpha'=>'float', 'beta'=>'float'], +'ps_begin_page' => ['bool', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float'], +'ps_begin_pattern' => ['int', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], +'ps_begin_template' => ['int', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float'], +'ps_circle' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float'], +'ps_clip' => ['bool', 'psdoc'=>'resource'], +'ps_close' => ['bool', 'psdoc'=>'resource'], +'ps_close_image' => ['void', 'psdoc'=>'resource', 'imageid'=>'int'], +'ps_closepath' => ['bool', 'psdoc'=>'resource'], +'ps_closepath_stroke' => ['bool', 'psdoc'=>'resource'], +'ps_continue_text' => ['bool', 'psdoc'=>'resource', 'text'=>'string'], +'ps_curveto' => ['bool', 'psdoc'=>'resource', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'ps_delete' => ['bool', 'psdoc'=>'resource'], +'ps_end_page' => ['bool', 'psdoc'=>'resource'], +'ps_end_pattern' => ['bool', 'psdoc'=>'resource'], +'ps_end_template' => ['bool', 'psdoc'=>'resource'], +'ps_fill' => ['bool', 'psdoc'=>'resource'], +'ps_fill_stroke' => ['bool', 'psdoc'=>'resource'], +'ps_findfont' => ['int', 'psdoc'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'embed='=>'bool'], +'ps_get_buffer' => ['string', 'psdoc'=>'resource'], +'ps_get_parameter' => ['string', 'psdoc'=>'resource', 'name'=>'string', 'modifier='=>'float'], +'ps_get_value' => ['float', 'psdoc'=>'resource', 'name'=>'string', 'modifier='=>'float'], +'ps_hyphenate' => ['array', 'psdoc'=>'resource', 'text'=>'string'], +'ps_include_file' => ['bool', 'psdoc'=>'resource', 'file'=>'string'], +'ps_lineto' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], +'ps_makespotcolor' => ['int', 'psdoc'=>'resource', 'name'=>'string', 'reserved='=>'int'], +'ps_moveto' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], +'ps_new' => ['resource'], +'ps_open_file' => ['bool', 'psdoc'=>'resource', 'filename='=>'string'], +'ps_open_image' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], +'ps_open_image_file' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'filename'=>'string', 'stringparam='=>'string', 'intparam='=>'int'], +'ps_open_memory_image' => ['int', 'psdoc'=>'resource', 'gd'=>'int'], +'ps_place_image' => ['bool', 'psdoc'=>'resource', 'imageid'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], +'ps_rect' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], +'ps_restore' => ['bool', 'psdoc'=>'resource'], +'ps_rotate' => ['bool', 'psdoc'=>'resource', 'rot'=>'float'], +'ps_save' => ['bool', 'psdoc'=>'resource'], +'ps_scale' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], +'ps_set_border_color' => ['bool', 'psdoc'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], +'ps_set_border_dash' => ['bool', 'psdoc'=>'resource', 'black'=>'float', 'white'=>'float'], +'ps_set_border_style' => ['bool', 'psdoc'=>'resource', 'style'=>'string', 'width'=>'float'], +'ps_set_info' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], +'ps_set_parameter' => ['bool', 'psdoc'=>'resource', 'name'=>'string', 'value'=>'string'], +'ps_set_text_pos' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], +'ps_set_value' => ['bool', 'psdoc'=>'resource', 'name'=>'string', 'value'=>'float'], +'ps_setcolor' => ['bool', 'psdoc'=>'resource', 'type'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], +'ps_setdash' => ['bool', 'psdoc'=>'resource', 'on'=>'float', 'off'=>'float'], +'ps_setflat' => ['bool', 'psdoc'=>'resource', 'value'=>'float'], +'ps_setfont' => ['bool', 'psdoc'=>'resource', 'fontid'=>'int', 'size'=>'float'], +'ps_setgray' => ['bool', 'psdoc'=>'resource', 'gray'=>'float'], +'ps_setlinecap' => ['bool', 'psdoc'=>'resource', 'type'=>'int'], +'ps_setlinejoin' => ['bool', 'psdoc'=>'resource', 'type'=>'int'], +'ps_setlinewidth' => ['bool', 'psdoc'=>'resource', 'width'=>'float'], +'ps_setmiterlimit' => ['bool', 'psdoc'=>'resource', 'value'=>'float'], +'ps_setoverprintmode' => ['bool', 'psdoc'=>'resource', 'mode'=>'int'], +'ps_setpolydash' => ['bool', 'psdoc'=>'resource', 'arr'=>'float'], +'ps_shading' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], +'ps_shading_pattern' => ['int', 'psdoc'=>'resource', 'shadingid'=>'int', 'optlist'=>'string'], +'ps_shfill' => ['bool', 'psdoc'=>'resource', 'shadingid'=>'int'], +'ps_show' => ['bool', 'psdoc'=>'resource', 'text'=>'string'], +'ps_show2' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'length'=>'int'], +'ps_show_boxed' => ['int', 'psdoc'=>'resource', 'text'=>'string', 'left'=>'float', 'bottom'=>'float', 'width'=>'float', 'height'=>'float', 'hmode'=>'string', 'feature='=>'string'], +'ps_show_xy' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float'], +'ps_show_xy2' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'length'=>'int', 'xcoor'=>'float', 'ycoor'=>'float'], +'ps_string_geometry' => ['array', 'psdoc'=>'resource', 'text'=>'string', 'fontid='=>'int', 'size='=>'float'], +'ps_stringwidth' => ['float', 'psdoc'=>'resource', 'text'=>'string', 'fontid='=>'int', 'size='=>'float'], +'ps_stroke' => ['bool', 'psdoc'=>'resource'], +'ps_symbol' => ['bool', 'psdoc'=>'resource', 'ord'=>'int'], +'ps_symbol_name' => ['string', 'psdoc'=>'resource', 'ord'=>'int', 'fontid='=>'int'], +'ps_symbol_width' => ['float', 'psdoc'=>'resource', 'ord'=>'int', 'fontid='=>'int', 'size='=>'float'], +'ps_translate' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], +'pspell_add_to_personal' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], +'pspell_add_to_session' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], +'pspell_check' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], +'pspell_clear_session' => ['bool', 'dictionary'=>'PSpell\Dictionary'], +'pspell_config_create' => ['PSpell\Config', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string'], +'pspell_config_data_dir' => ['bool', 'config'=>'PSpell\Config', 'directory'=>'string'], +'pspell_config_dict_dir' => ['bool', 'config'=>'PSpell\Config', 'directory'=>'string'], +'pspell_config_ignore' => ['bool', 'config'=>'PSpell\Config', 'min_length'=>'int'], +'pspell_config_mode' => ['bool', 'config'=>'PSpell\Config', 'mode'=>'int'], +'pspell_config_personal' => ['bool', 'config'=>'PSpell\Config', 'filename'=>'string'], +'pspell_config_repl' => ['bool', 'config'=>'PSpell\Config', 'filename'=>'string'], +'pspell_config_runtogether' => ['bool', 'config'=>'PSpell\Config', 'allow'=>'bool'], +'pspell_config_save_repl' => ['bool', 'config'=>'PSpell\Config', 'save'=>'bool'], +'pspell_new' => ['PSpell\Dictionary|false', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], +'pspell_new_config' => ['PSpell\Dictionary|false', 'config'=>'PSpell\Config'], +'pspell_new_personal' => ['PSpell\Dictionary|false', 'filename'=>'string', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], +'pspell_save_wordlist' => ['bool', 'dictionary'=>'PSpell\Dictionary'], +'pspell_store_replacement' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'misspelled'=>'string', 'correct'=>'string'], +'pspell_suggest' => ['array', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], +'putenv' => ['bool', 'assignment'=>'string'], +'px_close' => ['bool', 'pxdoc'=>'resource'], +'px_create_fp' => ['bool', 'pxdoc'=>'resource', 'file'=>'resource', 'fielddesc'=>'array'], +'px_date2string' => ['string', 'pxdoc'=>'resource', 'value'=>'int', 'format'=>'string'], +'px_delete' => ['bool', 'pxdoc'=>'resource'], +'px_delete_record' => ['bool', 'pxdoc'=>'resource', 'num'=>'int'], +'px_get_field' => ['array', 'pxdoc'=>'resource', 'fieldno'=>'int'], +'px_get_info' => ['array', 'pxdoc'=>'resource'], +'px_get_parameter' => ['string', 'pxdoc'=>'resource', 'name'=>'string'], +'px_get_record' => ['array', 'pxdoc'=>'resource', 'num'=>'int', 'mode='=>'int'], +'px_get_schema' => ['array', 'pxdoc'=>'resource', 'mode='=>'int'], +'px_get_value' => ['float', 'pxdoc'=>'resource', 'name'=>'string'], +'px_insert_record' => ['int', 'pxdoc'=>'resource', 'data'=>'array'], +'px_new' => ['resource'], +'px_numfields' => ['int', 'pxdoc'=>'resource'], +'px_numrecords' => ['int', 'pxdoc'=>'resource'], +'px_open_fp' => ['bool', 'pxdoc'=>'resource', 'file'=>'resource'], +'px_put_record' => ['bool', 'pxdoc'=>'resource', 'record'=>'array', 'recpos='=>'int'], +'px_retrieve_record' => ['array', 'pxdoc'=>'resource', 'num'=>'int', 'mode='=>'int'], +'px_set_blob_file' => ['bool', 'pxdoc'=>'resource', 'filename'=>'string'], +'px_set_parameter' => ['bool', 'pxdoc'=>'resource', 'name'=>'string', 'value'=>'string'], +'px_set_tablename' => ['void', 'pxdoc'=>'resource', 'name'=>'string'], +'px_set_targetencoding' => ['bool', 'pxdoc'=>'resource', 'encoding'=>'string'], +'px_set_value' => ['bool', 'pxdoc'=>'resource', 'name'=>'string', 'value'=>'float'], +'px_timestamp2string' => ['string', 'pxdoc'=>'resource', 'value'=>'float', 'format'=>'string'], +'px_update_record' => ['bool', 'pxdoc'=>'resource', 'data'=>'array', 'num'=>'int'], +'qdom_error' => ['string'], +'qdom_tree' => ['QDomDocument', 'doc'=>'string'], +'querymapObj::convertToString' => ['string'], +'querymapObj::free' => ['void'], +'querymapObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'querymapObj::updateFromString' => ['int', 'snippet'=>'string'], +'QuickHashIntHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], +'QuickHashIntHash::add' => ['bool', 'key'=>'int', 'value='=>'int'], +'QuickHashIntHash::delete' => ['bool', 'key'=>'int'], +'QuickHashIntHash::exists' => ['bool', 'key'=>'int'], +'QuickHashIntHash::get' => ['int', 'key'=>'int'], +'QuickHashIntHash::getSize' => ['int'], +'QuickHashIntHash::loadFromFile' => ['QuickHashIntHash', 'filename'=>'string', 'options='=>'int'], +'QuickHashIntHash::loadFromString' => ['QuickHashIntHash', 'contents'=>'string', 'options='=>'int'], +'QuickHashIntHash::saveToFile' => ['void', 'filename'=>'string'], +'QuickHashIntHash::saveToString' => ['string'], +'QuickHashIntHash::set' => ['bool', 'key'=>'int', 'value'=>'int'], +'QuickHashIntHash::update' => ['bool', 'key'=>'int', 'value'=>'int'], +'QuickHashIntSet::__construct' => ['void', 'size'=>'int', 'options='=>'int'], +'QuickHashIntSet::add' => ['bool', 'key'=>'int'], +'QuickHashIntSet::delete' => ['bool', 'key'=>'int'], +'QuickHashIntSet::exists' => ['bool', 'key'=>'int'], +'QuickHashIntSet::getSize' => ['int'], +'QuickHashIntSet::loadFromFile' => ['QuickHashIntSet', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashIntSet::loadFromString' => ['QuickHashIntSet', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashIntSet::saveToFile' => ['void', 'filename'=>'string'], +'QuickHashIntSet::saveToString' => ['string'], +'QuickHashIntStringHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], +'QuickHashIntStringHash::add' => ['bool', 'key'=>'int', 'value'=>'string'], +'QuickHashIntStringHash::delete' => ['bool', 'key'=>'int'], +'QuickHashIntStringHash::exists' => ['bool', 'key'=>'int'], +'QuickHashIntStringHash::get' => ['mixed', 'key'=>'int'], +'QuickHashIntStringHash::getSize' => ['int'], +'QuickHashIntStringHash::loadFromFile' => ['QuickHashIntStringHash', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashIntStringHash::loadFromString' => ['QuickHashIntStringHash', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashIntStringHash::saveToFile' => ['void', 'filename'=>'string'], +'QuickHashIntStringHash::saveToString' => ['string'], +'QuickHashIntStringHash::set' => ['int', 'key'=>'int', 'value'=>'string'], +'QuickHashIntStringHash::update' => ['bool', 'key'=>'int', 'value'=>'string'], +'QuickHashStringIntHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], +'QuickHashStringIntHash::add' => ['bool', 'key'=>'string', 'value'=>'int'], +'QuickHashStringIntHash::delete' => ['bool', 'key'=>'string'], +'QuickHashStringIntHash::exists' => ['bool', 'key'=>'string'], +'QuickHashStringIntHash::get' => ['mixed', 'key'=>'string'], +'QuickHashStringIntHash::getSize' => ['int'], +'QuickHashStringIntHash::loadFromFile' => ['QuickHashStringIntHash', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashStringIntHash::loadFromString' => ['QuickHashStringIntHash', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], +'QuickHashStringIntHash::saveToFile' => ['void', 'filename'=>'string'], +'QuickHashStringIntHash::saveToString' => ['string'], +'QuickHashStringIntHash::set' => ['int', 'key'=>'string', 'value'=>'int'], +'QuickHashStringIntHash::update' => ['bool', 'key'=>'string', 'value'=>'int'], +'quoted_printable_decode' => ['string', 'string'=>'string'], +'quoted_printable_encode' => ['string', 'string'=>'string'], +'quotemeta' => ['string', 'string'=>'string'], +'rad2deg' => ['float', 'num'=>'float'], +'radius_acct_open' => ['resource|false'], +'radius_add_server' => ['bool', 'radius_handle'=>'resource', 'hostname'=>'string', 'port'=>'int', 'secret'=>'string', 'timeout'=>'int', 'max_tries'=>'int'], +'radius_auth_open' => ['resource|false'], +'radius_close' => ['bool', 'radius_handle'=>'resource'], +'radius_config' => ['bool', 'radius_handle'=>'resource', 'file'=>'string'], +'radius_create_request' => ['bool', 'radius_handle'=>'resource', 'type'=>'int'], +'radius_cvt_addr' => ['string', 'data'=>'string'], +'radius_cvt_int' => ['int', 'data'=>'string'], +'radius_cvt_string' => ['string', 'data'=>'string'], +'radius_demangle' => ['string', 'radius_handle'=>'resource', 'mangled'=>'string'], +'radius_demangle_mppe_key' => ['string', 'radius_handle'=>'resource', 'mangled'=>'string'], +'radius_get_attr' => ['mixed', 'radius_handle'=>'resource'], +'radius_get_tagged_attr_data' => ['string', 'data'=>'string'], +'radius_get_tagged_attr_tag' => ['int', 'data'=>'string'], +'radius_get_vendor_attr' => ['array', 'data'=>'string'], +'radius_put_addr' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'addr'=>'string'], +'radius_put_attr' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'string'], +'radius_put_int' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'int'], +'radius_put_string' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'string'], +'radius_put_vendor_addr' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'addr'=>'string'], +'radius_put_vendor_attr' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'string'], +'radius_put_vendor_int' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'int'], +'radius_put_vendor_string' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'string'], +'radius_request_authenticator' => ['string', 'radius_handle'=>'resource'], +'radius_salt_encrypt_attr' => ['string', 'radius_handle'=>'resource', 'data'=>'string'], +'radius_send_request' => ['int|false', 'radius_handle'=>'resource'], +'radius_server_secret' => ['string', 'radius_handle'=>'resource'], +'radius_strerror' => ['string', 'radius_handle'=>'resource'], +'rand' => ['int', 'min'=>'int', 'max'=>'int'], +'rand\'1' => ['int'], +'random_bytes' => ['non-empty-string', 'length'=>'positive-int'], +'random_int' => ['int', 'min'=>'int', 'max'=>'int'], +'range' => ['array', 'start'=>'mixed', 'end'=>'mixed', 'step='=>'int|float'], +'RangeException::__clone' => ['void'], +'RangeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'RangeException::__toString' => ['string'], +'RangeException::getCode' => ['int'], +'RangeException::getFile' => ['string'], +'RangeException::getLine' => ['int'], +'RangeException::getMessage' => ['string'], +'RangeException::getPrevious' => ['?Throwable'], +'RangeException::getTrace' => ['list\',args?:array}>'], +'RangeException::getTraceAsString' => ['string'], +'rar_allow_broken_set' => ['bool', 'rarfile'=>'RarArchive', 'allow_broken'=>'bool'], +'rar_broken_is' => ['bool', 'rarfile'=>'rararchive'], +'rar_close' => ['bool', 'rarfile'=>'rararchive'], +'rar_comment_get' => ['string', 'rarfile'=>'rararchive'], +'rar_entry_get' => ['RarEntry', 'rarfile'=>'RarArchive', 'entryname'=>'string'], +'rar_list' => ['RarArchive', 'rarfile'=>'rararchive'], +'rar_open' => ['RarArchive', 'filename'=>'string', 'password='=>'string', 'volume_callback='=>'callable'], +'rar_solid_is' => ['bool', 'rarfile'=>'rararchive'], +'rar_wrapper_cache_stats' => ['string'], +'RarArchive::__toString' => ['string'], +'RarArchive::close' => ['bool'], +'RarArchive::getComment' => ['string|null'], +'RarArchive::getEntries' => ['RarEntry[]|false'], +'RarArchive::getEntry' => ['RarEntry|false', 'entryname'=>'string'], +'RarArchive::isBroken' => ['bool'], +'RarArchive::isSolid' => ['bool'], +'RarArchive::open' => ['RarArchive|false', 'filename'=>'string', 'password='=>'string', 'volume_callback='=>'callable'], +'RarArchive::setAllowBroken' => ['bool', 'allow_broken'=>'bool'], +'RarEntry::__toString' => ['string'], +'RarEntry::extract' => ['bool', 'dir'=>'string', 'filepath='=>'string', 'password='=>'string', 'extended_data='=>'bool'], +'RarEntry::getAttr' => ['int|false'], +'RarEntry::getCrc' => ['string|false'], +'RarEntry::getFileTime' => ['string|false'], +'RarEntry::getHostOs' => ['int|false'], +'RarEntry::getMethod' => ['int|false'], +'RarEntry::getName' => ['string|false'], +'RarEntry::getPackedSize' => ['int|false'], +'RarEntry::getStream' => ['resource|false', 'password='=>'string'], +'RarEntry::getUnpackedSize' => ['int|false'], +'RarEntry::getVersion' => ['int|false'], +'RarEntry::isDirectory' => ['bool'], +'RarEntry::isEncrypted' => ['bool'], +'RarException::getCode' => ['int'], +'RarException::getFile' => ['string'], +'RarException::getLine' => ['int'], +'RarException::getMessage' => ['string'], +'RarException::getPrevious' => ['Exception|Throwable'], +'RarException::getTrace' => ['list\',args?:array}>'], +'RarException::getTraceAsString' => ['string'], +'RarException::isUsingExceptions' => ['bool'], +'RarException::setUsingExceptions' => ['RarEntry', 'using_exceptions'=>'bool'], +'rawurldecode' => ['string', 'string'=>'string'], +'rawurlencode' => ['string', 'string'=>'string'], +'rd_kafka_err2str' => ['string', 'err'=>'int'], +'rd_kafka_errno' => ['int'], +'rd_kafka_errno2err' => ['int', 'errnox'=>'int'], +'rd_kafka_offset_tail' => ['int', 'cnt'=>'int'], +'RdKafka::addBrokers' => ['int', 'broker_list'=>'string'], +'RdKafka::flush' => ['int', 'timeout_ms'=>'int'], +'RdKafka::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], +'RdKafka::getOutQLen' => ['int'], +'RdKafka::newQueue' => ['RdKafka\Queue'], +'RdKafka::newTopic' => ['RdKafka\Topic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], +'RdKafka::poll' => ['void', 'timeout_ms'=>'int'], +'RdKafka::setLogLevel' => ['void', 'level'=>'int'], +'RdKafka\Conf::dump' => ['array'], +'RdKafka\Conf::set' => ['void', 'name'=>'string', 'value'=>'string'], +'RdKafka\Conf::setDefaultTopicConf' => ['void', 'topic_conf'=>'RdKafka\TopicConf'], +'RdKafka\Conf::setDrMsgCb' => ['void', 'callback'=>'callable'], +'RdKafka\Conf::setErrorCb' => ['void', 'callback'=>'callable'], +'RdKafka\Conf::setRebalanceCb' => ['void', 'callback'=>'callable'], +'RdKafka\Conf::setStatsCb' => ['void', 'callback'=>'callable'], +'RdKafka\Consumer::__construct' => ['void', 'conf='=>'?RdKafka\Conf'], +'RdKafka\Consumer::addBrokers' => ['int', 'broker_list'=>'string'], +'RdKafka\Consumer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], +'RdKafka\Consumer::getOutQLen' => ['int'], +'RdKafka\Consumer::newQueue' => ['RdKafka\Queue'], +'RdKafka\Consumer::newTopic' => ['RdKafka\ConsumerTopic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], +'RdKafka\Consumer::poll' => ['void', 'timeout_ms'=>'int'], +'RdKafka\Consumer::setLogLevel' => ['void', 'level'=>'int'], +'RdKafka\ConsumerTopic::__construct' => ['void'], +'RdKafka\ConsumerTopic::consume' => ['RdKafka\Message', 'partition'=>'int', 'timeout_ms'=>'int'], +'RdKafka\ConsumerTopic::consumeQueueStart' => ['void', 'partition'=>'int', 'offset'=>'int', 'queue'=>'RdKafka\Queue'], +'RdKafka\ConsumerTopic::consumeStart' => ['void', 'partition'=>'int', 'offset'=>'int'], +'RdKafka\ConsumerTopic::consumeStop' => ['void', 'partition'=>'int'], +'RdKafka\ConsumerTopic::getName' => ['string'], +'RdKafka\ConsumerTopic::offsetStore' => ['void', 'partition'=>'int', 'offset'=>'int'], +'RdKafka\KafkaConsumer::__construct' => ['void', 'conf'=>'RdKafka\Conf'], +'RdKafka\KafkaConsumer::assign' => ['void', 'topic_partitions='=>'RdKafka\TopicPartition[]|null'], +'RdKafka\KafkaConsumer::commit' => ['void', 'message_or_offsets='=>'RdKafka\Message|RdKafka\TopicPartition[]|null'], +'RdKafka\KafkaConsumer::commitAsync' => ['void', 'message_or_offsets='=>'RdKafka\Message|RdKafka\TopicPartition[]|null'], +'RdKafka\KafkaConsumer::consume' => ['RdKafka\Message', 'timeout_ms'=>'int'], +'RdKafka\KafkaConsumer::getAssignment' => ['RdKafka\TopicPartition[]'], +'RdKafka\KafkaConsumer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\KafkaConsumerTopic', 'timeout_ms'=>'int'], +'RdKafka\KafkaConsumer::getSubscription' => ['array'], +'RdKafka\KafkaConsumer::subscribe' => ['void', 'topics'=>'array'], +'RdKafka\KafkaConsumer::unsubscribe' => ['void'], +'RdKafka\KafkaConsumerTopic::getName' => ['string'], +'RdKafka\KafkaConsumerTopic::offsetStore' => ['void', 'partition'=>'int', 'offset'=>'int'], +'RdKafka\Message::errstr' => ['string'], +'RdKafka\Metadata::getBrokers' => ['RdKafka\Metadata\Collection'], +'RdKafka\Metadata::getOrigBrokerId' => ['int'], +'RdKafka\Metadata::getOrigBrokerName' => ['string'], +'RdKafka\Metadata::getTopics' => ['RdKafka\Metadata\Collection|RdKafka\Metadata\Topic[]'], +'RdKafka\Metadata\Collection::__construct' => ['void'], +'RdKafka\Metadata\Collection::count' => ['int'], +'RdKafka\Metadata\Collection::current' => ['mixed'], +'RdKafka\Metadata\Collection::key' => ['mixed'], +'RdKafka\Metadata\Collection::next' => ['void'], +'RdKafka\Metadata\Collection::rewind' => ['void'], +'RdKafka\Metadata\Collection::valid' => ['bool'], +'RdKafka\Metadata\Partition::getErr' => ['mixed'], +'RdKafka\Metadata\Partition::getId' => ['int'], +'RdKafka\Metadata\Partition::getIsrs' => ['mixed'], +'RdKafka\Metadata\Partition::getLeader' => ['mixed'], +'RdKafka\Metadata\Partition::getReplicas' => ['mixed'], +'RdKafka\Metadata\Topic::getErr' => ['mixed'], +'RdKafka\Metadata\Topic::getPartitions' => ['RdKafka\Metadata\Partition[]'], +'RdKafka\Metadata\Topic::getTopic' => ['string'], +'RdKafka\Producer::__construct' => ['void', 'conf='=>'?RdKafka\Conf'], +'RdKafka\Producer::addBrokers' => ['int', 'broker_list'=>'string'], +'RdKafka\Producer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], +'RdKafka\Producer::getOutQLen' => ['int'], +'RdKafka\Producer::newQueue' => ['RdKafka\Queue'], +'RdKafka\Producer::newTopic' => ['RdKafka\ProducerTopic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], +'RdKafka\Producer::poll' => ['void', 'timeout_ms'=>'int'], +'RdKafka\Producer::setLogLevel' => ['void', 'level'=>'int'], +'RdKafka\ProducerTopic::__construct' => ['void'], +'RdKafka\ProducerTopic::getName' => ['string'], +'RdKafka\ProducerTopic::produce' => ['void', 'partition'=>'int', 'msgflags'=>'int', 'payload'=>'string', 'key='=>'?string'], +'RdKafka\ProducerTopic::producev' => ['void', 'partition'=>'int', 'msgflags'=>'int', 'payload'=>'string', 'key='=>'?string', 'headers='=>'?array', 'timestamp_ms='=>'?int', 'opaque='=>'?string'], +'RdKafka\Queue::__construct' => ['void'], +'RdKafka\Queue::consume' => ['?RdKafka\Message', 'timeout_ms'=>'string'], +'RdKafka\Topic::getName' => ['string'], +'RdKafka\TopicConf::dump' => ['array'], +'RdKafka\TopicConf::set' => ['void', 'name'=>'string', 'value'=>'string'], +'RdKafka\TopicConf::setPartitioner' => ['void', 'partitioner'=>'int'], +'RdKafka\TopicPartition::__construct' => ['void', 'topic'=>'string', 'partition'=>'int', 'offset='=>'int'], +'RdKafka\TopicPartition::getOffset' => ['int'], +'RdKafka\TopicPartition::getPartition' => ['int'], +'RdKafka\TopicPartition::getTopic' => ['string'], +'RdKafka\TopicPartition::setOffset' => ['void', 'offset'=>'string'], +'RdKafka\TopicPartition::setPartition' => ['void', 'partition'=>'string'], +'RdKafka\TopicPartition::setTopic' => ['void', 'topic_name'=>'string'], +'readdir' => ['string|false', 'dir_handle='=>'resource'], +'readfile' => ['int|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], +'readgzfile' => ['int|false', 'filename'=>'string', 'use_include_path='=>'int'], +'readline' => ['string|false', 'prompt='=>'?string'], +'readline_add_history' => ['bool', 'prompt'=>'string'], +'readline_callback_handler_install' => ['bool', 'prompt'=>'string', 'callback'=>'callable'], +'readline_callback_handler_remove' => ['bool'], +'readline_callback_read_char' => ['void'], +'readline_clear_history' => ['bool'], +'readline_completion_function' => ['bool', 'callback'=>'callable'], +'readline_info' => ['mixed', 'var_name='=>'?string', 'value='=>'string|int|bool|null'], +'readline_list_history' => ['array'], +'readline_on_new_line' => ['void'], +'readline_read_history' => ['bool', 'filename='=>'?string'], +'readline_redisplay' => ['void'], +'readline_write_history' => ['bool', 'filename='=>'?string'], +'readlink' => ['string|false', 'path'=>'string'], +'realpath' => ['string|false', 'path'=>'string'], +'realpath_cache_get' => ['array'], +'realpath_cache_size' => ['int'], +'recode' => ['string', 'request'=>'string', 'string'=>'string'], +'recode_file' => ['bool', 'request'=>'string', 'input'=>'resource', 'output'=>'resource'], +'recode_string' => ['string|false', 'request'=>'string', 'string'=>'string'], +'rectObj::__construct' => ['void'], +'rectObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj', 'class_index'=>'int', 'text'=>'string'], +'rectObj::fit' => ['float', 'width'=>'int', 'height'=>'int'], +'rectObj::ms_newRectObj' => ['rectObj'], +'rectObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], +'rectObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'rectObj::setextent' => ['void', 'minx'=>'float', 'miny'=>'float', 'maxx'=>'float', 'maxy'=>'float'], +'RecursiveArrayIterator::__construct' => ['void', 'array='=>'array|object', 'flags='=>'int'], +'RecursiveArrayIterator::append' => ['void', 'value'=>'mixed'], +'RecursiveArrayIterator::asort' => ['void'], +'RecursiveArrayIterator::count' => ['int'], +'RecursiveArrayIterator::current' => ['mixed'], +'RecursiveArrayIterator::getArrayCopy' => ['array'], +'RecursiveArrayIterator::getChildren' => ['?RecursiveArrayIterator'], +'RecursiveArrayIterator::getFlags' => ['int'], +'RecursiveArrayIterator::hasChildren' => ['bool'], +'RecursiveArrayIterator::key' => ['string|int|null'], +'RecursiveArrayIterator::ksort' => ['void'], +'RecursiveArrayIterator::natcasesort' => ['true'], +'RecursiveArrayIterator::natsort' => ['true'], +'RecursiveArrayIterator::next' => ['void'], +'RecursiveArrayIterator::offsetExists' => ['void', 'index'=>'string'], +'RecursiveArrayIterator::offsetGet' => ['mixed', 'index'=>'string'], +'RecursiveArrayIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'string'], +'RecursiveArrayIterator::offsetUnset' => ['void', 'index'=>'string'], +'RecursiveArrayIterator::rewind' => ['void'], +'RecursiveArrayIterator::seek' => ['void', 'position'=>'int'], +'RecursiveArrayIterator::serialize' => ['string'], +'RecursiveArrayIterator::setFlags' => ['void', 'flags'=>'string'], +'RecursiveArrayIterator::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'RecursiveArrayIterator::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], +'RecursiveArrayIterator::unserialize' => ['string', 'serialized'=>'string'], +'RecursiveArrayIterator::valid' => ['bool'], +'RecursiveCachingIterator::__construct' => ['void', 'it'=>'Iterator', 'flags='=>'int'], +'RecursiveCachingIterator::__toString' => ['string'], +'RecursiveCachingIterator::count' => ['int'], +'RecursiveCachingIterator::current' => ['void'], +'RecursiveCachingIterator::getCache' => ['array'], +'RecursiveCachingIterator::getChildren' => ['?RecursiveCachingIterator'], +'RecursiveCachingIterator::getFlags' => ['int'], +'RecursiveCachingIterator::getInnerIterator' => ['Iterator'], +'RecursiveCachingIterator::hasChildren' => ['bool'], +'RecursiveCachingIterator::hasNext' => ['bool'], +'RecursiveCachingIterator::key' => ['bool|float|int|string'], +'RecursiveCachingIterator::next' => ['void'], +'RecursiveCachingIterator::offsetExists' => ['bool', 'index'=>'string'], +'RecursiveCachingIterator::offsetGet' => ['string', 'index'=>'string'], +'RecursiveCachingIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'string'], +'RecursiveCachingIterator::offsetUnset' => ['void', 'index'=>'string'], +'RecursiveCachingIterator::rewind' => ['void'], +'RecursiveCachingIterator::setFlags' => ['void', 'flags'=>'int'], +'RecursiveCachingIterator::valid' => ['bool'], +'RecursiveCallbackFilterIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator', 'func'=>'callable'], +'RecursiveCallbackFilterIterator::accept' => ['bool'], +'RecursiveCallbackFilterIterator::current' => ['mixed'], +'RecursiveCallbackFilterIterator::getChildren' => ['RecursiveCallbackFilterIterator'], +'RecursiveCallbackFilterIterator::getInnerIterator' => ['Iterator'], +'RecursiveCallbackFilterIterator::hasChildren' => ['bool'], +'RecursiveCallbackFilterIterator::key' => ['bool|float|int|string'], +'RecursiveCallbackFilterIterator::next' => ['void'], +'RecursiveCallbackFilterIterator::rewind' => ['void'], +'RecursiveCallbackFilterIterator::valid' => ['bool'], +'RecursiveDirectoryIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], +'RecursiveDirectoryIterator::__toString' => ['string'], +'RecursiveDirectoryIterator::current' => ['string|SplFileInfo|FilesystemIterator'], +'RecursiveDirectoryIterator::getATime' => ['int'], +'RecursiveDirectoryIterator::getBasename' => ['string', 'suffix='=>'string'], +'RecursiveDirectoryIterator::getChildren' => ['RecursiveDirectoryIterator'], +'RecursiveDirectoryIterator::getCTime' => ['int'], +'RecursiveDirectoryIterator::getExtension' => ['string'], +'RecursiveDirectoryIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], +'RecursiveDirectoryIterator::getFilename' => ['string'], +'RecursiveDirectoryIterator::getFlags' => ['int'], +'RecursiveDirectoryIterator::getGroup' => ['int'], +'RecursiveDirectoryIterator::getInode' => ['int'], +'RecursiveDirectoryIterator::getLinkTarget' => ['string'], +'RecursiveDirectoryIterator::getMTime' => ['int'], +'RecursiveDirectoryIterator::getOwner' => ['int'], +'RecursiveDirectoryIterator::getPath' => ['string'], +'RecursiveDirectoryIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], +'RecursiveDirectoryIterator::getPathname' => ['string'], +'RecursiveDirectoryIterator::getPerms' => ['int'], +'RecursiveDirectoryIterator::getRealPath' => ['string'], +'RecursiveDirectoryIterator::getSize' => ['int'], +'RecursiveDirectoryIterator::getSubPath' => ['string'], +'RecursiveDirectoryIterator::getSubPathname' => ['string'], +'RecursiveDirectoryIterator::getType' => ['string'], +'RecursiveDirectoryIterator::hasChildren' => ['bool', 'allow_links='=>'bool'], +'RecursiveDirectoryIterator::isDir' => ['bool'], +'RecursiveDirectoryIterator::isDot' => ['bool'], +'RecursiveDirectoryIterator::isExecutable' => ['bool'], +'RecursiveDirectoryIterator::isFile' => ['bool'], +'RecursiveDirectoryIterator::isLink' => ['bool'], +'RecursiveDirectoryIterator::isReadable' => ['bool'], +'RecursiveDirectoryIterator::isWritable' => ['bool'], +'RecursiveDirectoryIterator::key' => ['string'], +'RecursiveDirectoryIterator::next' => ['void'], +'RecursiveDirectoryIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], +'RecursiveDirectoryIterator::rewind' => ['void'], +'RecursiveDirectoryIterator::seek' => ['void', 'position'=>'int'], +'RecursiveDirectoryIterator::setFileClass' => ['void', 'class_name='=>'string'], +'RecursiveDirectoryIterator::setFlags' => ['void', 'flags='=>'int'], +'RecursiveDirectoryIterator::setInfoClass' => ['void', 'class_name='=>'string'], +'RecursiveDirectoryIterator::valid' => ['bool'], +'RecursiveFilterIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator'], +'RecursiveFilterIterator::accept' => ['bool'], +'RecursiveFilterIterator::current' => ['mixed'], +'RecursiveFilterIterator::getChildren' => ['?RecursiveFilterIterator'], +'RecursiveFilterIterator::getInnerIterator' => ['Iterator'], +'RecursiveFilterIterator::hasChildren' => ['bool'], +'RecursiveFilterIterator::key' => ['mixed'], +'RecursiveFilterIterator::next' => ['void'], +'RecursiveFilterIterator::rewind' => ['void'], +'RecursiveFilterIterator::valid' => ['bool'], +'RecursiveIterator::__construct' => ['void'], +'RecursiveIterator::current' => ['mixed'], +'RecursiveIterator::getChildren' => ['?RecursiveIterator'], +'RecursiveIterator::hasChildren' => ['bool'], +'RecursiveIterator::key' => ['int|string'], +'RecursiveIterator::next' => ['void'], +'RecursiveIterator::rewind' => ['void'], +'RecursiveIterator::valid' => ['bool'], +'RecursiveIteratorIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator|IteratorAggregate', 'mode='=>'int', 'flags='=>'int'], +'RecursiveIteratorIterator::beginChildren' => ['void'], +'RecursiveIteratorIterator::beginIteration' => ['void'], +'RecursiveIteratorIterator::callGetChildren' => ['?RecursiveIterator'], +'RecursiveIteratorIterator::callHasChildren' => ['bool'], +'RecursiveIteratorIterator::current' => ['mixed'], +'RecursiveIteratorIterator::endChildren' => ['void'], +'RecursiveIteratorIterator::endIteration' => ['void'], +'RecursiveIteratorIterator::getDepth' => ['int'], +'RecursiveIteratorIterator::getInnerIterator' => ['RecursiveIterator'], +'RecursiveIteratorIterator::getMaxDepth' => ['int|false'], +'RecursiveIteratorIterator::getSubIterator' => ['?RecursiveIterator', 'level='=>'?int'], +'RecursiveIteratorIterator::key' => ['mixed'], +'RecursiveIteratorIterator::next' => ['void'], +'RecursiveIteratorIterator::nextElement' => ['void'], +'RecursiveIteratorIterator::rewind' => ['void'], +'RecursiveIteratorIterator::setMaxDepth' => ['void', 'max_depth='=>'int'], +'RecursiveIteratorIterator::valid' => ['bool'], +'RecursiveRegexIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator', 'regex'=>'string', 'mode='=>'int', 'flags='=>'int', 'preg_flags='=>'int'], +'RecursiveRegexIterator::accept' => ['bool'], +'RecursiveRegexIterator::current' => ['mixed'], +'RecursiveRegexIterator::getChildren' => ['RecursiveRegexIterator'], +'RecursiveRegexIterator::getFlags' => ['int'], +'RecursiveRegexIterator::getInnerIterator' => ['Iterator'], +'RecursiveRegexIterator::getMode' => ['int'], +'RecursiveRegexIterator::getPregFlags' => ['int'], +'RecursiveRegexIterator::getRegex' => ['string'], +'RecursiveRegexIterator::hasChildren' => ['bool'], +'RecursiveRegexIterator::key' => ['mixed'], +'RecursiveRegexIterator::next' => ['void'], +'RecursiveRegexIterator::rewind' => ['void'], +'RecursiveRegexIterator::setFlags' => ['void', 'new_flags'=>'int'], +'RecursiveRegexIterator::setMode' => ['void', 'new_mode'=>'int'], +'RecursiveRegexIterator::setPregFlags' => ['void', 'new_flags'=>'int'], +'RecursiveRegexIterator::valid' => ['bool'], +'RecursiveTreeIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator|IteratorAggregate', 'flags='=>'int', 'cit_flags='=>'int', 'mode'=>'int'], +'RecursiveTreeIterator::beginChildren' => ['void'], +'RecursiveTreeIterator::beginIteration' => ['void'], +'RecursiveTreeIterator::callGetChildren' => ['?RecursiveIterator'], +'RecursiveTreeIterator::callHasChildren' => ['bool'], +'RecursiveTreeIterator::current' => ['string'], +'RecursiveTreeIterator::endChildren' => ['void'], +'RecursiveTreeIterator::endIteration' => ['void'], +'RecursiveTreeIterator::getDepth' => ['int'], +'RecursiveTreeIterator::getEntry' => ['string'], +'RecursiveTreeIterator::getInnerIterator' => ['RecursiveIterator'], +'RecursiveTreeIterator::getMaxDepth' => ['false|int'], +'RecursiveTreeIterator::getPostfix' => ['string'], +'RecursiveTreeIterator::getPrefix' => ['string'], +'RecursiveTreeIterator::getSubIterator' => ['?RecursiveIterator', 'level='=>'?int'], +'RecursiveTreeIterator::key' => ['string'], +'RecursiveTreeIterator::next' => ['void'], +'RecursiveTreeIterator::nextElement' => ['void'], +'RecursiveTreeIterator::rewind' => ['void'], +'RecursiveTreeIterator::setMaxDepth' => ['void', 'max_depth='=>'int'], +'RecursiveTreeIterator::setPostfix' => ['void', 'prefix'=>'string'], +'RecursiveTreeIterator::setPrefixPart' => ['void', 'part'=>'int', 'prefix'=>'string'], +'RecursiveTreeIterator::valid' => ['bool'], +'Redis::__construct' => ['void'], +'Redis::__destruct' => ['void'], +'Redis::_prefix' => ['string', 'value'=>'mixed'], +'Redis::_serialize' => ['mixed', 'value'=>'mixed'], +'Redis::_unserialize' => ['mixed', 'value'=>'string'], +'Redis::append' => ['int', 'key'=>'string', 'value'=>'string'], +'Redis::auth' => ['bool', 'password'=>'string'], +'Redis::bgRewriteAOF' => ['bool'], +'Redis::bgSave' => ['bool'], +'Redis::bitCount' => ['int', 'key'=>'string'], +'Redis::bitOp' => ['int', 'operation'=>'string', 'ret_key'=>'string', 'key'=>'string', '...other_keys='=>'string'], +'Redis::bitpos' => ['int', 'key'=>'string', 'bit'=>'int', 'start='=>'int', 'end='=>'int'], +'Redis::blPop' => ['array', 'keys'=>'string[]', 'timeout'=>'int'], +'Redis::blPop\'1' => ['array', 'key'=>'string', 'timeout_or_key'=>'int|string', '...extra_args'=>'int|string'], +'Redis::brPop' => ['array', 'keys'=>'string[]', 'timeout'=>'int'], +'Redis::brPop\'1' => ['array', 'key'=>'string', 'timeout_or_key'=>'int|string', '...extra_args'=>'int|string'], +'Redis::brpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string', 'timeout'=>'int'], +'Redis::clearLastError' => ['bool'], +'Redis::client' => ['mixed', 'command'=>'string', 'arg='=>'string'], +'Redis::close' => ['bool'], +'Redis::command' => ['', '...args'=>''], +'Redis::config' => ['string', 'operation'=>'string', 'key'=>'string', 'value='=>'string'], +'Redis::connect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'reserved='=>'null', 'retry_interval='=>'?int', 'read_timeout='=>'float'], +'Redis::dbSize' => ['int'], +'Redis::debug' => ['', 'key'=>''], +'Redis::decr' => ['int', 'key'=>'string'], +'Redis::decrBy' => ['int', 'key'=>'string', 'value'=>'int'], +'Redis::decrByFloat' => ['float', 'key'=>'string', 'value'=>'float'], +'Redis::del' => ['int', 'key'=>'string', '...args'=>'string'], +'Redis::del\'1' => ['int', 'key'=>'string[]'], +'Redis::delete' => ['int', 'key'=>'string', '...args'=>'string'], +'Redis::delete\'1' => ['int', 'key'=>'string[]'], +'Redis::discard' => [''], +'Redis::dump' => ['string|false', 'key'=>'string'], +'Redis::echo' => ['string', 'message'=>'string'], +'Redis::eval' => ['mixed', 'script'=>'', 'args='=>'', 'numKeys='=>''], +'Redis::evalSha' => ['mixed', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], +'Redis::evaluate' => ['mixed', 'script'=>'string', 'args='=>'array', 'numKeys='=>'int'], +'Redis::evaluateSha' => ['', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], +'Redis::exec' => ['array'], +'Redis::exists' => ['int', 'keys'=>'string|string[]'], +'Redis::exists\'1' => ['int', '...keys'=>'string'], +'Redis::expire' => ['bool', 'key'=>'string', 'ttl'=>'int'], +'Redis::expireAt' => ['bool', 'key'=>'string', 'expiry'=>'int'], +'Redis::flushAll' => ['bool', 'async='=>'bool'], +'Redis::flushDb' => ['bool', 'async='=>'bool'], +'Redis::geoAdd' => ['int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'member'=>'string', '...other_triples='=>'string|int|float'], +'Redis::geoDist' => ['float', 'key'=>'string', 'member1'=>'string', 'member2'=>'string', 'unit='=>'string'], +'Redis::geoHash' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'Redis::geoPos' => ['array', 'key'=>'string', 'member'=>'string', '...members='=>'string'], +'Redis::geoRadius' => ['array|int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'radius'=>'float', 'unit'=>'float', 'options='=>'array'], +'Redis::geoRadiusByMember' => ['array|int', 'key'=>'string', 'member'=>'string', 'radius'=>'float', 'units'=>'string', 'options='=>'array'], +'Redis::get' => ['string|false', 'key'=>'string'], +'Redis::getAuth' => ['string|false|null'], +'Redis::getBit' => ['int', 'key'=>'string', 'offset'=>'int'], +'Redis::getDBNum' => ['int|false'], +'Redis::getHost' => ['string|false'], +'Redis::getKeys' => ['array', 'pattern'=>'string'], +'Redis::getLastError' => ['?string'], +'Redis::getMode' => ['int'], +'Redis::getMultiple' => ['array', 'keys'=>'string[]'], +'Redis::getOption' => ['int', 'name'=>'int'], +'Redis::getPersistentID' => ['string|false|null'], +'Redis::getPort' => ['int|false'], +'Redis::getRange' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::getReadTimeout' => ['float|false'], +'Redis::getSet' => ['string', 'key'=>'string', 'string'=>'string'], +'Redis::getTimeout' => ['float|false'], +'Redis::hDel' => ['int|false', 'key'=>'string', 'hashKey1'=>'string', '...otherHashKeys='=>'string'], +'Redis::hExists' => ['bool', 'key'=>'string', 'hashKey'=>'string'], +'Redis::hGet' => ['string|false', 'key'=>'string', 'hashKey'=>'string'], +'Redis::hGetAll' => ['array', 'key'=>'string'], +'Redis::hIncrBy' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'int'], +'Redis::hIncrByFloat' => ['float', 'key'=>'string', 'field'=>'string', 'increment'=>'float'], +'Redis::hKeys' => ['array', 'key'=>'string'], +'Redis::hLen' => ['int|false', 'key'=>'string'], +'Redis::hMGet' => ['array', 'key'=>'string', 'hashKeys'=>'array'], +'Redis::hMSet' => ['bool', 'key'=>'string', 'hashKeys'=>'array'], +'Redis::hScan' => ['array', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], +'Redis::hSet' => ['int|false', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], +'Redis::hSetNx' => ['bool', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], +'Redis::hStrLen' => ['', 'key'=>'', 'member'=>''], +'Redis::hVals' => ['array', 'key'=>'string'], +'Redis::incr' => ['int', 'key'=>'string'], +'Redis::incrBy' => ['int', 'key'=>'string', 'value'=>'int'], +'Redis::incrByFloat' => ['float', 'key'=>'string', 'value'=>'float'], +'Redis::info' => ['array', 'option='=>'string'], +'Redis::isConnected' => ['bool'], +'Redis::keys' => ['array', 'pattern'=>'string'], +'Redis::lastSave' => ['int'], +'Redis::lGet' => ['string', 'key'=>'string', 'index'=>'int'], +'Redis::lGetRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::lIndex' => ['string|false', 'key'=>'string', 'index'=>'int'], +'Redis::lInsert' => ['int', 'key'=>'string', 'position'=>'int', 'pivot'=>'string', 'value'=>'string'], +'Redis::listTrim' => ['', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], +'Redis::lLen' => ['int|false', 'key'=>'string'], +'Redis::lPop' => ['string|false', 'key'=>'string'], +'Redis::lPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'Redis::lPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], +'Redis::lRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::lRem' => ['int|false', 'key'=>'string', 'value'=>'string', 'count'=>'int'], +'Redis::lRemove' => ['int', 'key'=>'string', 'value'=>'string', 'count'=>'int'], +'Redis::lSet' => ['bool', 'key'=>'string', 'index'=>'int', 'value'=>'string'], +'Redis::lSize' => ['int', 'key'=>'string'], +'Redis::lTrim' => ['array|false', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], +'Redis::mGet' => ['array', 'keys'=>'string[]'], +'Redis::migrate' => ['bool', 'host'=>'string', 'port'=>'int', 'key'=>'string|string[]', 'db'=>'int', 'timeout'=>'int', 'copy='=>'bool', 'replace='=>'bool'], +'Redis::move' => ['bool', 'key'=>'string', 'dbindex'=>'int'], +'Redis::mSet' => ['bool', 'pairs'=>'array'], +'Redis::mSetNx' => ['bool', 'pairs'=>'array'], +'Redis::multi' => ['Redis', 'mode='=>'int'], +'Redis::object' => ['string|long|false', 'info'=>'string', 'key'=>'string'], +'Redis::open' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'reserved='=>'null', 'retry_interval='=>'?int', 'read_timeout='=>'float'], +'Redis::pconnect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'persistent_id='=>'string', 'retry_interval='=>'?int'], +'Redis::persist' => ['bool', 'key'=>'string'], +'Redis::pExpire' => ['bool', 'key'=>'string', 'ttl'=>'int'], +'Redis::pexpireAt' => ['bool', 'key'=>'string', 'expiry'=>'int'], +'Redis::pfAdd' => ['bool', 'key'=>'string', 'elements'=>'array'], +'Redis::pfCount' => ['int', 'key'=>'array|string'], +'Redis::pfMerge' => ['bool', 'destkey'=>'string', 'sourcekeys'=>'array'], +'Redis::ping' => ['string'], +'Redis::pipeline' => ['Redis'], +'Redis::popen' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'persistent_id='=>'string', 'retry_interval='=>'?int'], +'Redis::psetex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'Redis::psubscribe' => ['', 'patterns'=>'array', 'callback'=>'array|string'], +'Redis::pttl' => ['int|false', 'key'=>'string'], +'Redis::publish' => ['int', 'channel'=>'string', 'message'=>'string'], +'Redis::pubsub' => ['array|int', 'keyword'=>'string', 'argument='=>'array|string'], +'Redis::punsubscribe' => ['', 'pattern'=>'string', '...other_patterns='=>'string'], +'Redis::randomKey' => ['string'], +'Redis::rawCommand' => ['mixed', 'command'=>'string', '...arguments='=>'mixed'], +'Redis::rename' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], +'Redis::renameKey' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], +'Redis::renameNx' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], +'Redis::resetStat' => ['bool'], +'Redis::restore' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'Redis::role' => ['array', 'nodeParams'=>'string|array{0:string,1:int}'], +'Redis::rPop' => ['string|false', 'key'=>'string'], +'Redis::rpoplpush' => ['string', 'srcKey'=>'string', 'dstKey'=>'string'], +'Redis::rPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'Redis::rPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], +'Redis::sAdd' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'Redis::sAddArray' => ['bool', 'key'=>'string', 'values'=>'array'], +'Redis::save' => ['bool'], +'Redis::scan' => ['array|false', '&rw_iterator'=>'?int', 'pattern='=>'?string', 'count='=>'?int'], +'Redis::sCard' => ['int', 'key'=>'string'], +'Redis::sContains' => ['', 'key'=>'string', 'value'=>'string'], +'Redis::script' => ['mixed', 'command'=>'string', '...args='=>'mixed'], +'Redis::sDiff' => ['array', 'key1'=>'string', '...other_keys='=>'string'], +'Redis::sDiffStore' => ['int|false', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], +'Redis::select' => ['bool', 'dbindex'=>'int'], +'Redis::sendEcho' => ['string', 'msg'=>'string'], +'Redis::set' => ['bool', 'key'=>'string', 'value'=>'mixed', 'options='=>'array'], +'Redis::set\'1' => ['bool', 'key'=>'string', 'value'=>'mixed', 'timeout='=>'int'], +'Redis::setBit' => ['int', 'key'=>'string', 'offset'=>'int', 'value'=>'int'], +'Redis::setEx' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'Redis::setNx' => ['bool', 'key'=>'string', 'value'=>'string'], +'Redis::setOption' => ['bool', 'name'=>'int', 'value'=>'mixed'], +'Redis::setRange' => ['int', 'key'=>'string', 'offset'=>'int', 'end'=>'int'], +'Redis::setTimeout' => ['', 'key'=>'string', 'ttl'=>'int'], +'Redis::sGetMembers' => ['', 'key'=>'string'], +'Redis::sInter' => ['array|false', 'key'=>'string', '...other_keys='=>'string'], +'Redis::sInterStore' => ['int|false', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], +'Redis::sIsMember' => ['bool', 'key'=>'string', 'value'=>'string'], +'Redis::slave' => ['bool', 'host'=>'string', 'port'=>'int'], +'Redis::slave\'1' => ['bool', 'host'=>'string', 'port'=>'int'], +'Redis::slaveof' => ['bool', 'host='=>'string', 'port='=>'int'], +'Redis::slowLog' => ['mixed', 'operation'=>'string', 'length='=>'int'], +'Redis::sMembers' => ['array', 'key'=>'string'], +'Redis::sMove' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string', 'member'=>'string'], +'Redis::sort' => ['array|int', 'key'=>'string', 'options='=>'array'], +'Redis::sortAsc' => ['array', 'key'=>'string', 'pattern='=>'string', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], +'Redis::sortAscAlpha' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], +'Redis::sortDesc' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], +'Redis::sortDescAlpha' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], +'Redis::sPop' => ['string|false', 'key'=>'string'], +'Redis::sRandMember' => ['array|string|false', 'key'=>'string', 'count='=>'int'], +'Redis::sRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], +'Redis::sRemove' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], +'Redis::sScan' => ['array|bool', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], +'Redis::sSize' => ['int', 'key'=>'string'], +'Redis::strLen' => ['int', 'key'=>'string'], +'Redis::subscribe' => ['mixed|null', 'channels'=>'array', 'callback'=>'string|array'], +'Redis::substr' => ['', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::sUnion' => ['array', 'key'=>'string', '...other_keys='=>'string'], +'Redis::sUnionStore' => ['int', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], +'Redis::swapdb' => ['bool', 'srcdb'=>'int', 'dstdb'=>'int'], +'Redis::time' => ['array'], +'Redis::ttl' => ['int|false', 'key'=>'string'], +'Redis::type' => ['int', 'key'=>'string'], +'Redis::unlink' => ['int', 'key'=>'string', '...args'=>'string'], +'Redis::unlink\'1' => ['int', 'key'=>'string[]'], +'Redis::unsubscribe' => ['', 'channel'=>'string', '...other_channels='=>'string'], +'Redis::unwatch' => [''], +'Redis::wait' => ['int', 'numSlaves'=>'int', 'timeout'=>'int'], +'Redis::watch' => ['void', 'key'=>'string', '...other_keys='=>'string'], +'Redis::xack' => ['', 'str_key'=>'string', 'str_group'=>'string', 'arr_ids'=>'array'], +'Redis::xadd' => ['', 'str_key'=>'string', 'str_id'=>'string', 'arr_fields'=>'array', 'i_maxlen='=>'', 'boo_approximate='=>''], +'Redis::xclaim' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_consumer'=>'string', 'i_min_idle'=>'', 'arr_ids'=>'array', 'arr_opts='=>'array'], +'Redis::xdel' => ['', 'str_key'=>'string', 'arr_ids'=>'array'], +'Redis::xgroup' => ['', 'str_operation'=>'string', 'str_key='=>'string', 'str_arg1='=>'', 'str_arg2='=>'', 'str_arg3='=>''], +'Redis::xinfo' => ['', 'str_cmd'=>'string', 'str_key='=>'string', 'str_group='=>'string'], +'Redis::xlen' => ['', 'key'=>''], +'Redis::xpending' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_start='=>'', 'str_end='=>'', 'i_count='=>'', 'str_consumer='=>'string'], +'Redis::xrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], +'Redis::xread' => ['', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], +'Redis::xreadgroup' => ['', 'str_group'=>'string', 'str_consumer'=>'string', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], +'Redis::xrevrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], +'Redis::xtrim' => ['', 'str_key'=>'string', 'i_maxlen'=>'', 'boo_approximate='=>''], +'Redis::zAdd' => ['int', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], +'Redis::zAdd\'1' => ['int', 'options'=>'array', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], +'Redis::zCard' => ['int', 'key'=>'string'], +'Redis::zCount' => ['int', 'key'=>'string', 'start'=>'string', 'end'=>'string'], +'Redis::zDelete' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'Redis::zDeleteRangeByRank' => ['', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::zDeleteRangeByScore' => ['', 'key'=>'string', 'start'=>'float', 'end'=>'float'], +'Redis::zIncrBy' => ['float', 'key'=>'string', 'value'=>'float', 'member'=>'string'], +'Redis::zInter' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'Redis::zInterStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'Redis::zLexCount' => ['int', 'key'=>'string', 'min'=>'string', 'max'=>'string'], +'Redis::zRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscores='=>'bool'], +'Redis::zRangeByLex' => ['array|false', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], +'Redis::zRangeByScore' => ['array', 'key'=>'string', 'start'=>'int|string', 'end'=>'int|string', 'options='=>'array'], +'Redis::zRank' => ['int', 'key'=>'string', 'member'=>'string'], +'Redis::zRem' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'Redis::zRemove' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'Redis::zRemoveRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::zRemoveRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], +'Redis::zRemRangeByLex' => ['int', 'key'=>'string', 'min'=>'string', 'max'=>'string'], +'Redis::zRemRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'Redis::zRemRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], +'Redis::zReverseRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], +'Redis::zRevRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], +'Redis::zRevRangeByLex' => ['array', 'key'=>'string', 'min'=>'string', 'max'=>'string', 'offset='=>'int', 'limit='=>'int'], +'Redis::zRevRangeByScore' => ['array', 'key'=>'string', 'start'=>'string', 'end'=>'string', 'options='=>'array'], +'Redis::zRevRank' => ['int', 'key'=>'string', 'member'=>'string'], +'Redis::zScan' => ['array|bool', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], +'Redis::zScore' => ['float|false', 'key'=>'string', 'member'=>'string'], +'Redis::zSize' => ['', 'key'=>'string'], +'Redis::zUnion' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'Redis::zUnionStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'RedisArray::__call' => ['mixed', 'function_name'=>'string', 'arguments'=>'array'], +'RedisArray::__construct' => ['void', 'name='=>'string', 'hosts='=>'?array', 'opts='=>'?array'], +'RedisArray::_continuum' => [''], +'RedisArray::_distributor' => [''], +'RedisArray::_function' => ['string'], +'RedisArray::_hosts' => ['array'], +'RedisArray::_instance' => ['', 'host'=>''], +'RedisArray::_rehash' => ['', 'callable='=>'callable'], +'RedisArray::_target' => ['string', 'key'=>'string'], +'RedisArray::bgsave' => [''], +'RedisArray::del' => ['bool', 'key'=>'string', '...args'=>'string'], +'RedisArray::delete' => ['bool', 'key'=>'string', '...args'=>'string'], +'RedisArray::delete\'1' => ['bool', 'key'=>'string[]'], +'RedisArray::discard' => [''], +'RedisArray::exec' => ['array'], +'RedisArray::flushAll' => ['bool', 'async='=>'bool'], +'RedisArray::flushDb' => ['bool', 'async='=>'bool'], +'RedisArray::getMultiple' => ['', 'keys'=>''], +'RedisArray::getOption' => ['', 'opt'=>''], +'RedisArray::info' => ['array'], +'RedisArray::keys' => ['array', 'pattern'=>''], +'RedisArray::mGet' => ['array', 'keys'=>'string[]'], +'RedisArray::mSet' => ['bool', 'pairs'=>'array'], +'RedisArray::multi' => ['RedisArray', 'host'=>'string', 'mode='=>'int'], +'RedisArray::ping' => ['string'], +'RedisArray::save' => ['bool'], +'RedisArray::select' => ['', 'index'=>''], +'RedisArray::setOption' => ['', 'opt'=>'', 'value'=>''], +'RedisArray::unlink' => ['int', 'key'=>'string', '...other_keys='=>'string'], +'RedisArray::unlink\'1' => ['int', 'key'=>'string[]'], +'RedisArray::unwatch' => [''], +'RedisCluster::__construct' => ['void', 'name'=>'?string', 'seeds='=>'string[]', 'timeout='=>'float', 'readTimeout='=>'float', 'persistent='=>'bool', 'auth='=>'?string'], +'RedisCluster::_masters' => ['array'], +'RedisCluster::_prefix' => ['string', 'value'=>'mixed'], +'RedisCluster::_redir' => [''], +'RedisCluster::_serialize' => ['mixed', 'value'=>'mixed'], +'RedisCluster::_unserialize' => ['mixed', 'value'=>'string'], +'RedisCluster::append' => ['int', 'key'=>'string', 'value'=>'string'], +'RedisCluster::bgrewriteaof' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::bgsave' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::bitCount' => ['int', 'key'=>'string'], +'RedisCluster::bitOp' => ['int', 'operation'=>'string', 'retKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], +'RedisCluster::bitpos' => ['int', 'key'=>'string', 'bit'=>'int', 'start='=>'int', 'end='=>'int'], +'RedisCluster::blPop' => ['array', 'keys'=>'array', 'timeout'=>'int'], +'RedisCluster::brPop' => ['array', 'keys'=>'array', 'timeout'=>'int'], +'RedisCluster::brpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string', 'timeout'=>'int'], +'RedisCluster::clearLastError' => ['bool'], +'RedisCluster::client' => ['', 'nodeParams'=>'string|array{0:string,1:int}', 'subCmd='=>'string', '...args='=>''], +'RedisCluster::close' => [''], +'RedisCluster::cluster' => ['mixed', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'arguments='=>'mixed'], +'RedisCluster::command' => ['array|bool'], +'RedisCluster::config' => ['array|bool', 'nodeParams'=>'string|array{0:string,1:int}', 'operation'=>'string', 'key'=>'string', 'value='=>'string'], +'RedisCluster::dbSize' => ['int', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::decr' => ['int', 'key'=>'string'], +'RedisCluster::decrBy' => ['int', 'key'=>'string', 'value'=>'int'], +'RedisCluster::del' => ['int', 'key'=>'string', '...other_keys='=>'string'], +'RedisCluster::del\'1' => ['int', 'key'=>'string[]'], +'RedisCluster::discard' => [''], +'RedisCluster::dump' => ['string|false', 'key'=>'string'], +'RedisCluster::echo' => ['string', 'nodeParams'=>'string|array{0:string,1:int}', 'msg'=>'string'], +'RedisCluster::eval' => ['mixed', 'script'=>'', 'args='=>'', 'numKeys='=>''], +'RedisCluster::evalSha' => ['mixed', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], +'RedisCluster::exec' => ['array|void'], +'RedisCluster::exists' => ['bool', 'key'=>'string'], +'RedisCluster::expire' => ['bool', 'key'=>'string', 'ttl'=>'int'], +'RedisCluster::expireAt' => ['bool', 'key'=>'string', 'timestamp'=>'int'], +'RedisCluster::flushAll' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}', 'async='=>'bool'], +'RedisCluster::flushDB' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}', 'async='=>'bool'], +'RedisCluster::geoAdd' => ['int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'member'=>'string', '...other_members='=>'float|string'], +'RedisCluster::geoDist' => ['', 'key'=>'string', 'member1'=>'string', 'member2'=>'string', 'unit='=>'string'], +'RedisCluster::geohash' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'RedisCluster::geopos' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], +'RedisCluster::geoRadius' => ['', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'radius'=>'float', 'radiusUnit'=>'string', 'options='=>'array'], +'RedisCluster::geoRadiusByMember' => ['string[]', 'key'=>'string', 'member'=>'string', 'radius'=>'float', 'radiusUnit'=>'string', 'options='=>'array'], +'RedisCluster::get' => ['string|false', 'key'=>'string'], +'RedisCluster::getBit' => ['int', 'key'=>'string', 'offset'=>'int'], +'RedisCluster::getLastError' => ['?string'], +'RedisCluster::getMode' => ['int'], +'RedisCluster::getOption' => ['int', 'option'=>'int'], +'RedisCluster::getRange' => ['string', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'RedisCluster::getSet' => ['string', 'key'=>'string', 'value'=>'string'], +'RedisCluster::hDel' => ['int|false', 'key'=>'string', 'hashKey'=>'string', '...other_hashKeys='=>'string[]'], +'RedisCluster::hExists' => ['bool', 'key'=>'string', 'hashKey'=>'string'], +'RedisCluster::hGet' => ['string|false', 'key'=>'string', 'hashKey'=>'string'], +'RedisCluster::hGetAll' => ['array', 'key'=>'string'], +'RedisCluster::hIncrBy' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'int'], +'RedisCluster::hIncrByFloat' => ['float', 'key'=>'string', 'field'=>'string', 'increment'=>'float'], +'RedisCluster::hKeys' => ['array', 'key'=>'string'], +'RedisCluster::hLen' => ['int|false', 'key'=>'string'], +'RedisCluster::hMGet' => ['array', 'key'=>'string', 'hashKeys'=>'array'], +'RedisCluster::hMSet' => ['bool', 'key'=>'string', 'hashKeys'=>'array'], +'RedisCluster::hScan' => ['array', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], +'RedisCluster::hSet' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], +'RedisCluster::hSetNx' => ['bool', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], +'RedisCluster::hStrlen' => ['int', 'key'=>'string', 'member'=>'string'], +'RedisCluster::hVals' => ['array', 'key'=>'string'], +'RedisCluster::incr' => ['int', 'key'=>'string'], +'RedisCluster::incrBy' => ['int', 'key'=>'string', 'value'=>'int'], +'RedisCluster::incrByFloat' => ['float', 'key'=>'string', 'increment'=>'float'], +'RedisCluster::info' => ['array', 'nodeParams'=>'string|array{0:string,1:int}', 'option='=>'string'], +'RedisCluster::keys' => ['array', 'pattern'=>'string'], +'RedisCluster::lastSave' => ['int', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::lGet' => ['', 'key'=>'string', 'index'=>'int'], +'RedisCluster::lIndex' => ['string|false', 'key'=>'string', 'index'=>'int'], +'RedisCluster::lInsert' => ['int', 'key'=>'string', 'position'=>'int', 'pivot'=>'string', 'value'=>'string'], +'RedisCluster::lLen' => ['int', 'key'=>'string'], +'RedisCluster::lPop' => ['string|false', 'key'=>'string'], +'RedisCluster::lPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'RedisCluster::lPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], +'RedisCluster::lRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'RedisCluster::lRem' => ['int|false', 'key'=>'string', 'value'=>'string', 'count'=>'int'], +'RedisCluster::lSet' => ['bool', 'key'=>'string', 'index'=>'int', 'value'=>'string'], +'RedisCluster::lTrim' => ['array|false', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], +'RedisCluster::mget' => ['array', 'array'=>'array'], +'RedisCluster::mset' => ['bool', 'array'=>'array'], +'RedisCluster::msetnx' => ['int', 'array'=>'array'], +'RedisCluster::multi' => ['Redis', 'mode='=>'int'], +'RedisCluster::object' => ['string|int|false', 'string'=>'string', 'key'=>'string'], +'RedisCluster::persist' => ['bool', 'key'=>'string'], +'RedisCluster::pExpire' => ['bool', 'key'=>'string', 'ttl'=>'int'], +'RedisCluster::pExpireAt' => ['bool', 'key'=>'string', 'timestamp'=>'int'], +'RedisCluster::pfAdd' => ['bool', 'key'=>'string', 'elements'=>'array'], +'RedisCluster::pfCount' => ['int', 'key'=>'string'], +'RedisCluster::pfMerge' => ['bool', 'destKey'=>'string', 'sourceKeys'=>'array'], +'RedisCluster::ping' => ['string', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::psetex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'RedisCluster::psubscribe' => ['mixed', 'patterns'=>'array', 'callback'=>'string'], +'RedisCluster::pttl' => ['int', 'key'=>'string'], +'RedisCluster::publish' => ['int', 'channel'=>'string', 'message'=>'string'], +'RedisCluster::pubsub' => ['array', 'nodeParams'=>'string', 'keyword'=>'string', '...argument='=>'string'], +'RedisCluster::punSubscribe' => ['', 'channels'=>'', 'callback'=>''], +'RedisCluster::randomKey' => ['string', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::rawCommand' => ['mixed', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'arguments='=>'mixed'], +'RedisCluster::rename' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string'], +'RedisCluster::renameNx' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string'], +'RedisCluster::restore' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'RedisCluster::role' => ['array'], +'RedisCluster::rPop' => ['string|false', 'key'=>'string'], +'RedisCluster::rpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string'], +'RedisCluster::rPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'RedisCluster::rPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], +'RedisCluster::sAdd' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], +'RedisCluster::sAddArray' => ['int|false', 'key'=>'string', 'valueArray'=>'array'], +'RedisCluster::save' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], +'RedisCluster::scan' => ['array|false', '&iterator'=>'int', 'nodeParams'=>'string|array{0:string,1:int}', 'pattern='=>'string', 'count='=>'int'], +'RedisCluster::sCard' => ['int', 'key'=>'string'], +'RedisCluster::script' => ['string|bool|array', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'script='=>'string', '...other_scripts='=>'string[]'], +'RedisCluster::sDiff' => ['list', 'key1'=>'string', 'key2'=>'string', '...other_keys='=>'string'], +'RedisCluster::sDiffStore' => ['int', 'dstKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], +'RedisCluster::set' => ['bool', 'key'=>'string', 'value'=>'string', 'timeout='=>'array|int'], +'RedisCluster::setBit' => ['int', 'key'=>'string', 'offset'=>'int', 'value'=>'bool|int'], +'RedisCluster::setex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], +'RedisCluster::setnx' => ['bool', 'key'=>'string', 'value'=>'string'], +'RedisCluster::setOption' => ['bool', 'option'=>'int', 'value'=>'string|int'], +'RedisCluster::setRange' => ['string', 'key'=>'string', 'offset'=>'int', 'value'=>'string'], +'RedisCluster::sInter' => ['list', 'key'=>'string', '...other_keys='=>'string'], +'RedisCluster::sInterStore' => ['int', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], +'RedisCluster::sIsMember' => ['bool', 'key'=>'string', 'value'=>'string'], +'RedisCluster::slowLog' => ['array|int|bool', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'length='=>'int'], +'RedisCluster::sMembers' => ['list', 'key'=>'string'], +'RedisCluster::sMove' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string', 'member'=>'string'], +'RedisCluster::sort' => ['array', 'key'=>'string', 'option='=>'array'], +'RedisCluster::sPop' => ['string', 'key'=>'string'], +'RedisCluster::sRandMember' => ['array|string', 'key'=>'string', 'count='=>'int'], +'RedisCluster::sRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], +'RedisCluster::sScan' => ['array|false', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'null', 'count='=>'int'], +'RedisCluster::strlen' => ['int', 'key'=>'string'], +'RedisCluster::subscribe' => ['mixed', 'channels'=>'array', 'callback'=>'string'], +'RedisCluster::sUnion' => ['list', 'key1'=>'string', '...other_keys='=>'string'], +'RedisCluster::sUnion\'1' => ['list', 'keys'=>'string[]'], +'RedisCluster::sUnionStore' => ['int', 'dstKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], +'RedisCluster::time' => ['array'], +'RedisCluster::ttl' => ['int', 'key'=>'string'], +'RedisCluster::type' => ['int', 'key'=>'string'], +'RedisCluster::unlink' => ['int', 'key'=>'string', '...other_keys='=>'string'], +'RedisCluster::unSubscribe' => ['', 'channels'=>'', '...other_channels='=>''], +'RedisCluster::unwatch' => [''], +'RedisCluster::watch' => ['void', 'key'=>'string', '...other_keys='=>'string'], +'RedisCluster::xack' => ['', 'str_key'=>'string', 'str_group'=>'string', 'arr_ids'=>'array'], +'RedisCluster::xadd' => ['', 'str_key'=>'string', 'str_id'=>'string', 'arr_fields'=>'array', 'i_maxlen='=>'', 'boo_approximate='=>''], +'RedisCluster::xclaim' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_consumer'=>'string', 'i_min_idle'=>'', 'arr_ids'=>'array', 'arr_opts='=>'array'], +'RedisCluster::xdel' => ['', 'str_key'=>'string', 'arr_ids'=>'array'], +'RedisCluster::xgroup' => ['', 'str_operation'=>'string', 'str_key='=>'string', 'str_arg1='=>'', 'str_arg2='=>'', 'str_arg3='=>''], +'RedisCluster::xinfo' => ['', 'str_cmd'=>'string', 'str_key='=>'string', 'str_group='=>'string'], +'RedisCluster::xlen' => ['', 'key'=>''], +'RedisCluster::xpending' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_start='=>'', 'str_end='=>'', 'i_count='=>'', 'str_consumer='=>'string'], +'RedisCluster::xrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], +'RedisCluster::xread' => ['', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], +'RedisCluster::xreadgroup' => ['', 'str_group'=>'string', 'str_consumer'=>'string', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], +'RedisCluster::xrevrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], +'RedisCluster::xtrim' => ['', 'str_key'=>'string', 'i_maxlen'=>'', 'boo_approximate='=>''], +'RedisCluster::zAdd' => ['int', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], +'RedisCluster::zCard' => ['int', 'key'=>'string'], +'RedisCluster::zCount' => ['int', 'key'=>'string', 'start'=>'string', 'end'=>'string'], +'RedisCluster::zIncrBy' => ['float', 'key'=>'string', 'value'=>'float', 'member'=>'string'], +'RedisCluster::zInterStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'RedisCluster::zLexCount' => ['int', 'key'=>'string', 'min'=>'int', 'max'=>'int'], +'RedisCluster::zRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscores='=>'bool'], +'RedisCluster::zRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], +'RedisCluster::zRangeByScore' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'options='=>'array'], +'RedisCluster::zRank' => ['int', 'key'=>'string', 'member'=>'string'], +'RedisCluster::zRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], +'RedisCluster::zRemRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int'], +'RedisCluster::zRemRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], +'RedisCluster::zRemRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], +'RedisCluster::zRevRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], +'RedisCluster::zRevRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], +'RedisCluster::zRevRangeByScore' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'options='=>'array'], +'RedisCluster::zRevRank' => ['int', 'key'=>'string', 'member'=>'string'], +'RedisCluster::zScan' => ['array|false', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], +'RedisCluster::zScore' => ['float', 'key'=>'string', 'member'=>'string'], +'RedisCluster::zUnionStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], +'Reflection::getModifierNames' => ['list', 'modifiers'=>'int'], +'ReflectionClass::__clone' => ['void'], +'ReflectionClass::__construct' => ['void', 'argument'=>'object|class-string'], +'ReflectionClass::__toString' => ['string'], +'ReflectionClass::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], +'ReflectionClass::getConstant' => ['mixed', 'name'=>'string'], +'ReflectionClass::getConstants' => ['array', 'filter=' => '?int'], +'ReflectionClass::getConstructor' => ['?ReflectionMethod'], +'ReflectionClass::getDefaultProperties' => ['array'], +'ReflectionClass::getDocComment' => ['string|false'], +'ReflectionClass::getEndLine' => ['int|false'], +'ReflectionClass::getExtension' => ['?ReflectionExtension'], +'ReflectionClass::getExtensionName' => ['string|false'], +'ReflectionClass::getFileName' => ['string|false'], +'ReflectionClass::getInterfaceNames' => ['list'], +'ReflectionClass::getInterfaces' => ['array'], +'ReflectionClass::getMethod' => ['ReflectionMethod', 'name'=>'string'], +'ReflectionClass::getMethods' => ['list', 'filter='=>'?int'], +'ReflectionClass::getModifiers' => ['int'], +'ReflectionClass::getName' => ['class-string'], +'ReflectionClass::getNamespaceName' => ['string'], +'ReflectionClass::getParentClass' => ['ReflectionClass|false'], +'ReflectionClass::getProperties' => ['list', 'filter='=>'?int'], +'ReflectionClass::getProperty' => ['ReflectionProperty', 'name'=>'string'], +'ReflectionClass::getReflectionConstant' => ['ReflectionClassConstant|false', 'name'=>'string'], +'ReflectionClass::getReflectionConstants' => ['list', 'filter='=>'?int'], +'ReflectionClass::getShortName' => ['string'], +'ReflectionClass::getStartLine' => ['int|false'], +'ReflectionClass::getStaticProperties' => ['array'], +'ReflectionClass::getStaticPropertyValue' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'ReflectionClass::getTraitAliases' => ['array'], +'ReflectionClass::getTraitNames' => ['list'], +'ReflectionClass::getTraits' => ['array'], +'ReflectionClass::hasConstant' => ['bool', 'name'=>'string'], +'ReflectionClass::hasMethod' => ['bool', 'name'=>'string'], +'ReflectionClass::hasProperty' => ['bool', 'name'=>'string'], +'ReflectionClass::implementsInterface' => ['bool', 'interface_name'=>'interface-string|ReflectionClass'], +'ReflectionClass::inNamespace' => ['bool'], +'ReflectionClass::isAbstract' => ['bool'], +'ReflectionClass::isAnonymous' => ['bool'], +'ReflectionClass::isCloneable' => ['bool'], +'ReflectionClass::isEnum' => ['bool'], +'ReflectionClass::isFinal' => ['bool'], +'ReflectionClass::isInstance' => ['bool', 'object'=>'object'], +'ReflectionClass::isInstantiable' => ['bool'], +'ReflectionClass::isInterface' => ['bool'], +'ReflectionClass::isInternal' => ['bool'], +'ReflectionClass::isIterable' => ['bool'], +'ReflectionClass::isIterateable' => ['bool'], +'ReflectionClass::isSubclassOf' => ['bool', 'class'=>'class-string|ReflectionClass'], +'ReflectionClass::isTrait' => ['bool'], +'ReflectionClass::isUserDefined' => ['bool'], +'ReflectionClass::newInstance' => ['object', '...args='=>'mixed'], +'ReflectionClass::newInstanceArgs' => ['object', 'args='=>'list|array'], +'ReflectionClass::newInstanceWithoutConstructor' => ['object'], +'ReflectionClass::setStaticPropertyValue' => ['void', 'name'=>'string', 'value'=>'mixed'], +'ReflectionClassConstant::__construct' => ['void', 'class'=>'mixed', 'name'=>'string'], +'ReflectionClassConstant::__toString' => ['string'], +'ReflectionClassConstant::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], +'ReflectionClassConstant::getDeclaringClass' => ['ReflectionClass'], +'ReflectionClassConstant::getDocComment' => ['string|false'], +'ReflectionClassConstant::getModifiers' => ['int'], +'ReflectionClassConstant::getName' => ['string'], +'ReflectionClassConstant::getValue' => ['scalar|array|null'], +'ReflectionClassConstant::isPrivate' => ['bool'], +'ReflectionClassConstant::isProtected' => ['bool'], +'ReflectionClassConstant::isPublic' => ['bool'], +'ReflectionEnum::getBackingType' => ['?ReflectionType'], +'ReflectionEnum::getCase' => ['ReflectionEnumUnitCase', 'name' => 'string'], +'ReflectionEnum::getCases' => ['list'], +'ReflectionEnum::hasCase' => ['bool', 'name' => 'string'], +'ReflectionEnum::isBacked' => ['bool'], +'ReflectionEnumUnitCase::getEnum' => ['ReflectionEnum'], +'ReflectionEnumUnitCase::getValue' => ['UnitEnum'], +'ReflectionEnumBackedCase::getBackingValue' => ['string|int'], +'ReflectionExtension::__clone' => ['void'], +'ReflectionExtension::__construct' => ['void', 'name'=>'string'], +'ReflectionExtension::__toString' => ['string'], +'ReflectionExtension::getClasses' => ['array'], +'ReflectionExtension::getClassNames' => ['list'], +'ReflectionExtension::getConstants' => ['array'], +'ReflectionExtension::getDependencies' => ['array'], +'ReflectionExtension::getFunctions' => ['array'], +'ReflectionExtension::getINIEntries' => ['array'], +'ReflectionExtension::getName' => ['string'], +'ReflectionExtension::getVersion' => ['?string'], +'ReflectionExtension::info' => ['void'], +'ReflectionExtension::isPersistent' => ['bool'], +'ReflectionExtension::isTemporary' => ['bool'], +'ReflectionFunction::__construct' => ['void', 'name'=>'callable-string|Closure'], +'ReflectionFunction::__toString' => ['string'], +'ReflectionFunction::getClosure' => ['Closure'], +'ReflectionFunction::getClosureScopeClass' => ['ReflectionClass'], +'ReflectionFunction::getClosureThis' => ['object'], +'ReflectionFunction::getDocComment' => ['string|false'], +'ReflectionFunction::getEndLine' => ['int|false'], +'ReflectionFunction::getExtension' => ['?ReflectionExtension'], +'ReflectionFunction::getExtensionName' => ['string|false'], +'ReflectionFunction::getFileName' => ['string|false'], +'ReflectionFunction::getName' => ['callable-string'], +'ReflectionFunction::getNamespaceName' => ['string'], +'ReflectionFunction::getNumberOfParameters' => ['int'], +'ReflectionFunction::getNumberOfRequiredParameters' => ['int'], +'ReflectionFunction::getParameters' => ['list'], +'ReflectionFunction::getReturnType' => ['?ReflectionType'], +'ReflectionFunction::getShortName' => ['string'], +'ReflectionFunction::getStartLine' => ['int|false'], +'ReflectionFunction::getStaticVariables' => ['array'], +'ReflectionFunction::hasReturnType' => ['bool'], +'ReflectionFunction::inNamespace' => ['bool'], +'ReflectionFunction::invoke' => ['mixed', '...args='=>'mixed'], +'ReflectionFunction::invokeArgs' => ['mixed', 'args'=>'array'], +'ReflectionFunction::isClosure' => ['bool'], +'ReflectionFunction::isDeprecated' => ['bool'], +'ReflectionFunction::isDisabled' => ['bool'], +'ReflectionFunction::isGenerator' => ['bool'], +'ReflectionFunction::isInternal' => ['bool'], +'ReflectionFunction::isUserDefined' => ['bool'], +'ReflectionFunction::isVariadic' => ['bool'], +'ReflectionFunction::returnsReference' => ['bool'], +'ReflectionFunctionAbstract::__clone' => ['void'], +'ReflectionFunctionAbstract::__toString' => ['string'], +'ReflectionFunctionAbstract::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], +'ReflectionFunctionAbstract::getClosureScopeClass' => ['ReflectionClass|null'], +'ReflectionFunctionAbstract::getClosureThis' => ['object|null'], +'ReflectionFunctionAbstract::getDocComment' => ['string|false'], +'ReflectionFunctionAbstract::getEndLine' => ['int|false'], +'ReflectionFunctionAbstract::getExtension' => ['?ReflectionExtension'], +'ReflectionFunctionAbstract::getExtensionName' => ['string|false'], +'ReflectionFunctionAbstract::getFileName' => ['string|false'], +'ReflectionFunctionAbstract::getName' => ['string'], +'ReflectionFunctionAbstract::getNamespaceName' => ['string'], +'ReflectionFunctionAbstract::getNumberOfParameters' => ['int'], +'ReflectionFunctionAbstract::getNumberOfRequiredParameters' => ['int'], +'ReflectionFunctionAbstract::getParameters' => ['list'], +'ReflectionFunctionAbstract::getReturnType' => ['?ReflectionType'], +'ReflectionFunctionAbstract::getShortName' => ['string'], +'ReflectionFunctionAbstract::getStartLine' => ['int|false'], +'ReflectionFunctionAbstract::getStaticVariables' => ['array'], +'ReflectionFunctionAbstract::getTentativeReturnType' => ['?ReflectionType'], +'ReflectionFunctionAbstract::hasReturnType' => ['bool'], +'ReflectionFunctionAbstract::hasTentativeReturnType' => ['bool'], +'ReflectionFunctionAbstract::inNamespace' => ['bool'], +'ReflectionFunctionAbstract::isClosure' => ['bool'], +'ReflectionFunctionAbstract::isDeprecated' => ['bool'], +'ReflectionFunctionAbstract::isGenerator' => ['bool'], +'ReflectionFunctionAbstract::isInternal' => ['bool'], +'ReflectionFunctionAbstract::isStatic' => ['bool'], +'ReflectionFunctionAbstract::isUserDefined' => ['bool'], +'ReflectionFunctionAbstract::isVariadic' => ['bool'], +'ReflectionFunctionAbstract::returnsReference' => ['bool'], +'ReflectionGenerator::__construct' => ['void', 'generator'=>'object'], +'ReflectionGenerator::getExecutingFile' => ['string'], +'ReflectionGenerator::getExecutingGenerator' => ['Generator'], +'ReflectionGenerator::getExecutingLine' => ['int'], +'ReflectionGenerator::getFunction' => ['ReflectionFunctionAbstract'], +'ReflectionGenerator::getThis' => ['?object'], +'ReflectionGenerator::getTrace' => ['array', 'options='=>'int'], +'ReflectionMethod::__construct' => ['void', 'class'=>'class-string|object', 'name'=>'string'], +'ReflectionMethod::__construct\'1' => ['void', 'class_method'=>'string'], +'ReflectionMethod::__toString' => ['string'], +'ReflectionMethod::getClosure' => ['Closure', 'object='=>'?object'], +'ReflectionMethod::getClosureScopeClass' => ['ReflectionClass'], +'ReflectionMethod::getClosureThis' => ['object'], +'ReflectionMethod::getDeclaringClass' => ['ReflectionClass'], +'ReflectionMethod::getDocComment' => ['false|string'], +'ReflectionMethod::getEndLine' => ['false|int'], +'ReflectionMethod::getExtension' => ['?ReflectionExtension'], +'ReflectionMethod::getExtensionName' => ['string|false'], +'ReflectionMethod::getFileName' => ['false|string'], +'ReflectionMethod::getModifiers' => ['int'], +'ReflectionMethod::getName' => ['string'], +'ReflectionMethod::getNamespaceName' => ['string'], +'ReflectionMethod::getNumberOfParameters' => ['int'], +'ReflectionMethod::getNumberOfRequiredParameters' => ['int'], +'ReflectionMethod::getParameters' => ['list<\ReflectionParameter>'], +'ReflectionMethod::getPrototype' => ['ReflectionMethod'], +'ReflectionMethod::getReturnType' => ['?ReflectionType'], +'ReflectionMethod::getShortName' => ['string'], +'ReflectionMethod::getStartLine' => ['false|int'], +'ReflectionMethod::getStaticVariables' => ['array'], +'ReflectionMethod::hasReturnType' => ['bool'], +'ReflectionMethod::inNamespace' => ['bool'], +'ReflectionMethod::invoke' => ['mixed', 'object'=>'?object', '...args='=>'mixed'], +'ReflectionMethod::invokeArgs' => ['mixed', 'object'=>'?object', 'args'=>'array'], +'ReflectionMethod::isAbstract' => ['bool'], +'ReflectionMethod::isClosure' => ['bool'], +'ReflectionMethod::isConstructor' => ['bool'], +'ReflectionMethod::isDeprecated' => ['bool'], +'ReflectionMethod::isDestructor' => ['bool'], +'ReflectionMethod::isFinal' => ['bool'], +'ReflectionMethod::isGenerator' => ['bool'], +'ReflectionMethod::isInternal' => ['bool'], +'ReflectionMethod::isPrivate' => ['bool'], +'ReflectionMethod::isProtected' => ['bool'], +'ReflectionMethod::isPublic' => ['bool'], +'ReflectionMethod::isUserDefined' => ['bool'], +'ReflectionMethod::isVariadic' => ['bool'], +'ReflectionMethod::returnsReference' => ['bool'], +'ReflectionMethod::setAccessible' => ['void', 'visible'=>'bool'], +'ReflectionNamedType::__clone' => ['void'], +'ReflectionNamedType::__toString' => ['string'], +'ReflectionNamedType::allowsNull' => ['bool'], +'ReflectionNamedType::getName' => ['string'], +'ReflectionNamedType::isBuiltin' => ['bool'], +'ReflectionObject::__clone' => ['void'], +'ReflectionObject::__construct' => ['void', 'argument'=>'object'], +'ReflectionObject::__toString' => ['string'], +'ReflectionObject::getConstant' => ['mixed', 'name'=>'string'], +'ReflectionObject::getConstants' => ['array'], +'ReflectionObject::getConstructor' => ['?ReflectionMethod'], +'ReflectionObject::getDefaultProperties' => ['array'], +'ReflectionObject::getDocComment' => ['false|string'], +'ReflectionObject::getEndLine' => ['false|int'], +'ReflectionObject::getExtension' => ['?ReflectionExtension'], +'ReflectionObject::getExtensionName' => ['false|string'], +'ReflectionObject::getFileName' => ['false|string'], +'ReflectionObject::getInterfaceNames' => ['class-string[]'], +'ReflectionObject::getInterfaces' => ['array'], +'ReflectionObject::getMethod' => ['ReflectionMethod', 'name'=>'string'], +'ReflectionObject::getMethods' => ['ReflectionMethod[]', 'filter='=>'?int'], +'ReflectionObject::getModifiers' => ['int'], +'ReflectionObject::getName' => ['string'], +'ReflectionObject::getNamespaceName' => ['string'], +'ReflectionObject::getParentClass' => ['ReflectionClass|false'], +'ReflectionObject::getProperties' => ['ReflectionProperty[]', 'filter='=>'?int'], +'ReflectionObject::getProperty' => ['ReflectionProperty', 'name'=>'string'], +'ReflectionObject::getReflectionConstant' => ['ReflectionClassConstant', 'name'=>'string'], +'ReflectionObject::getReflectionConstants' => ['list<\ReflectionClassConstant>'], +'ReflectionObject::getShortName' => ['string'], +'ReflectionObject::getStartLine' => ['false|int'], +'ReflectionObject::getStaticProperties' => ['ReflectionProperty[]'], +'ReflectionObject::getStaticPropertyValue' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'ReflectionObject::getTraitAliases' => ['array'], +'ReflectionObject::getTraitNames' => ['list'], +'ReflectionObject::getTraits' => ['array'], +'ReflectionObject::hasConstant' => ['bool', 'name'=>'string'], +'ReflectionObject::hasMethod' => ['bool', 'name'=>'string'], +'ReflectionObject::hasProperty' => ['bool', 'name'=>'string'], +'ReflectionObject::implementsInterface' => ['bool', 'interface_name'=>'ReflectionClass|string'], +'ReflectionObject::inNamespace' => ['bool'], +'ReflectionObject::isAbstract' => ['bool'], +'ReflectionObject::isAnonymous' => ['bool'], +'ReflectionObject::isCloneable' => ['bool'], +'ReflectionObject::isEnum' => ['bool'], +'ReflectionObject::isFinal' => ['bool'], +'ReflectionObject::isInstance' => ['bool', 'object'=>'object'], +'ReflectionObject::isInstantiable' => ['bool'], +'ReflectionObject::isInterface' => ['bool'], +'ReflectionObject::isInternal' => ['bool'], +'ReflectionObject::isIterable' => ['bool'], +'ReflectionObject::isIterateable' => ['bool'], +'ReflectionObject::isSubclassOf' => ['bool', 'class'=>'ReflectionClass|string'], +'ReflectionObject::isTrait' => ['bool'], +'ReflectionObject::isUserDefined' => ['bool'], +'ReflectionObject::newInstance' => ['object', 'args='=>'mixed', '...args='=>'array'], +'ReflectionObject::newInstanceArgs' => ['object', 'args='=>'list|array'], +'ReflectionObject::newInstanceWithoutConstructor' => ['object'], +'ReflectionObject::setStaticPropertyValue' => ['void', 'name'=>'string', 'value'=>'string'], +'ReflectionParameter::__clone' => ['void'], +'ReflectionParameter::__construct' => ['void', 'function'=>'', 'parameter'=>''], +'ReflectionParameter::__toString' => ['string'], +'ReflectionParameter::allowsNull' => ['bool'], +'ReflectionParameter::canBePassedByValue' => ['bool'], +'ReflectionParameter::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], +'ReflectionParameter::getClass' => ['?ReflectionClass'], +'ReflectionParameter::getDeclaringClass' => ['?ReflectionClass'], +'ReflectionParameter::getDeclaringFunction' => ['ReflectionFunctionAbstract'], +'ReflectionParameter::getDefaultValue' => ['mixed'], +'ReflectionParameter::getDefaultValueConstantName' => ['?string'], +'ReflectionParameter::getName' => ['string'], +'ReflectionParameter::getPosition' => ['int'], +'ReflectionParameter::getType' => ['?ReflectionType'], +'ReflectionParameter::hasType' => ['bool'], +'ReflectionParameter::isArray' => ['bool'], +'ReflectionParameter::isCallable' => ['bool'], +'ReflectionParameter::isDefaultValueAvailable' => ['bool'], +'ReflectionParameter::isDefaultValueConstant' => ['bool'], +'ReflectionParameter::isOptional' => ['bool'], +'ReflectionParameter::isPassedByReference' => ['bool'], +'ReflectionParameter::isVariadic' => ['bool'], +'ReflectionProperty::__clone' => ['void'], +'ReflectionProperty::__construct' => ['void', 'class'=>'', 'name'=>'string'], +'ReflectionProperty::__toString' => ['string'], +'ReflectionProperty::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], +'ReflectionProperty::getDeclaringClass' => ['ReflectionClass'], +'ReflectionProperty::getDocComment' => ['string|false'], +'ReflectionProperty::getModifiers' => ['int'], +'ReflectionProperty::getName' => ['string'], +'ReflectionProperty::getType' => ['?ReflectionType'], +'ReflectionProperty::getValue' => ['mixed', 'object='=>'null|object'], +'ReflectionProperty::hasType' => ['bool'], +'ReflectionProperty::isDefault' => ['bool'], +'ReflectionProperty::isPrivate' => ['bool'], +'ReflectionProperty::isProtected' => ['bool'], +'ReflectionProperty::isPublic' => ['bool'], +'ReflectionProperty::isStatic' => ['bool'], +'ReflectionProperty::setAccessible' => ['void', 'visible'=>'bool'], +'ReflectionProperty::setValue' => ['void', 'object'=>'null|object', 'value'=>''], +'ReflectionProperty::setValue\'1' => ['void', 'value'=>''], +'ReflectionType::__clone' => ['void'], +'ReflectionType::__toString' => ['string'], +'ReflectionType::allowsNull' => ['bool'], +'ReflectionUnionType::getTypes' => ['list'], +'ReflectionZendExtension::__clone' => ['void'], +'ReflectionZendExtension::__construct' => ['void', 'name'=>'string'], +'ReflectionZendExtension::__toString' => ['string'], +'ReflectionZendExtension::getAuthor' => ['string'], +'ReflectionZendExtension::getCopyright' => ['string'], +'ReflectionZendExtension::getName' => ['string'], +'ReflectionZendExtension::getURL' => ['string'], +'ReflectionZendExtension::getVersion' => ['string'], +'Reflector::__toString' => ['string'], +'Reflector::export' => ['?string'], +'RegexIterator::__construct' => ['void', 'iterator'=>'Iterator', 'regex'=>'string', 'mode='=>'int', 'flags='=>'int', 'preg_flags='=>'int'], +'RegexIterator::accept' => ['bool'], +'RegexIterator::current' => ['mixed'], +'RegexIterator::getFlags' => ['int'], +'RegexIterator::getInnerIterator' => ['Iterator'], +'RegexIterator::getMode' => ['int'], +'RegexIterator::getPregFlags' => ['int'], +'RegexIterator::getRegex' => ['string'], +'RegexIterator::key' => ['mixed'], +'RegexIterator::next' => ['void'], +'RegexIterator::rewind' => ['void'], +'RegexIterator::setFlags' => ['void', 'new_flags'=>'int'], +'RegexIterator::setMode' => ['void', 'new_mode'=>'int'], +'RegexIterator::setPregFlags' => ['void', 'new_flags'=>'int'], +'RegexIterator::valid' => ['bool'], +'register_event_handler' => ['bool', 'event_handler_func'=>'string', 'handler_register_name'=>'string', 'event_type_mask'=>'int'], +'register_shutdown_function' => ['void', 'callback'=>'callable', '...args='=>'mixed'], +'register_tick_function' => ['bool', 'callback'=>'callable():void', '...args='=>'mixed'], +'rename' => ['bool', 'from'=>'string', 'to'=>'string', 'context='=>'resource'], +'rename_function' => ['bool', 'original_name'=>'string', 'new_name'=>'string'], +'reset' => ['mixed|false', '&r_array'=>'array|object'], +'ResourceBundle::__construct' => ['void', 'locale'=>'string', 'bundlename'=>'string', 'fallback='=>'bool'], +'ResourceBundle::count' => ['int'], +'ResourceBundle::create' => ['?ResourceBundle', 'locale'=>'string', 'bundlename'=>'string', 'fallback='=>'bool'], +'ResourceBundle::get' => ['mixed', 'index'=>'string|int', 'fallback='=>'bool'], +'ResourceBundle::getErrorCode' => ['int'], +'ResourceBundle::getErrorMessage' => ['string'], +'ResourceBundle::getLocales' => ['array', 'bundlename'=>'string'], +'resourcebundle_count' => ['int', 'bundle'=>'ResourceBundle'], +'resourcebundle_create' => ['?ResourceBundle', 'locale'=>'?string', 'bundle'=>'?string', 'fallback='=>'bool'], +'resourcebundle_get' => ['mixed|null', 'bundle'=>'ResourceBundle', 'index'=>'string|int', 'fallback='=>'bool'], +'resourcebundle_get_error_code' => ['int', 'bundle'=>'ResourceBundle'], +'resourcebundle_get_error_message' => ['string', 'bundle'=>'ResourceBundle'], +'resourcebundle_locales' => ['array', 'bundle'=>'string'], +'restore_error_handler' => ['true'], +'restore_exception_handler' => ['true'], +'restore_include_path' => ['void'], +'rewind' => ['bool', 'stream'=>'resource'], +'rewinddir' => ['void', 'dir_handle='=>'resource'], +'rmdir' => ['bool', 'directory'=>'string', 'context='=>'resource'], +'round' => ['float', 'num'=>'float', 'precision='=>'int', 'mode='=>'0|positive-int'], +'rpm_close' => ['bool', 'rpmr'=>'resource'], +'rpm_get_tag' => ['mixed', 'rpmr'=>'resource', 'tagnum'=>'int'], +'rpm_is_valid' => ['bool', 'filename'=>'string'], +'rpm_open' => ['resource|false', 'filename'=>'string'], +'rpm_version' => ['string'], +'rpmaddtag' => ['bool', 'tag'=>'int'], +'rpmdbinfo' => ['array', 'nevr'=>'string', 'full='=>'bool'], +'rpmdbsearch' => ['array', 'pattern'=>'string', 'rpmtag='=>'int', 'rpmmire='=>'int', 'full='=>'bool'], +'rpminfo' => ['array', 'path'=>'string', 'full='=>'bool', 'error='=>'string'], +'rpmvercmp' => ['int', 'evr1'=>'string', 'evr2'=>'string'], +'rrd_create' => ['bool', 'filename'=>'string', 'options'=>'array'], +'rrd_disconnect' => ['void'], +'rrd_error' => ['string'], +'rrd_fetch' => ['array', 'filename'=>'string', 'options'=>'array'], +'rrd_first' => ['int|false', 'file'=>'string', 'raaindex='=>'int'], +'rrd_graph' => ['array|false', 'filename'=>'string', 'options'=>'array'], +'rrd_info' => ['array|false', 'filename'=>'string'], +'rrd_last' => ['int', 'filename'=>'string'], +'rrd_lastupdate' => ['array|false', 'filename'=>'string'], +'rrd_restore' => ['bool', 'xml_file'=>'string', 'rrd_file'=>'string', 'options='=>'array'], +'rrd_tune' => ['bool', 'filename'=>'string', 'options'=>'array'], +'rrd_update' => ['bool', 'filename'=>'string', 'options'=>'array'], +'rrd_version' => ['string'], +'rrd_xport' => ['array|false', 'options'=>'array'], +'rrdc_disconnect' => ['void'], +'RRDCreator::__construct' => ['void', 'path'=>'string', 'starttime='=>'string', 'step='=>'int'], +'RRDCreator::addArchive' => ['void', 'description'=>'string'], +'RRDCreator::addDataSource' => ['void', 'description'=>'string'], +'RRDCreator::save' => ['bool'], +'RRDGraph::__construct' => ['void', 'path'=>'string'], +'RRDGraph::save' => ['array|false'], +'RRDGraph::saveVerbose' => ['array|false'], +'RRDGraph::setOptions' => ['void', 'options'=>'array'], +'RRDUpdater::__construct' => ['void', 'path'=>'string'], +'RRDUpdater::update' => ['bool', 'values'=>'array', 'time='=>'string'], +'rsort' => ['bool', '&rw_array'=>'array', 'flags='=>'int'], +'rtrim' => ['string', 'string'=>'string', 'characters='=>'string'], +'runkit7_constant_add' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'new_visibility='=>'int'], +'runkit7_constant_redefine' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'new_visibility='=>'?int'], +'runkit7_constant_remove' => ['bool', 'constant_name'=>'string'], +'runkit7_function_add' => ['bool', 'function_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_doc_comment='=>'?string', 'return_by_reference='=>'?bool', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], +'runkit7_function_copy' => ['bool', 'source_name'=>'string', 'target_name'=>'string'], +'runkit7_function_redefine' => ['bool', 'function_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_doc_comment='=>'?string', 'return_by_reference='=>'?bool', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], +'runkit7_function_remove' => ['bool', 'function_name'=>'string'], +'runkit7_function_rename' => ['bool', 'source_name'=>'string', 'target_name'=>'string'], +'runkit7_import' => ['bool', 'filename'=>'string', 'flags='=>'?int'], +'runkit7_method_add' => ['bool', 'class_name'=>'string', 'method_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_flags='=>'int|null|string', 'flags_or_doc_comment='=>'int|null|string', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], +'runkit7_method_copy' => ['bool', 'destination_class'=>'string', 'destination_method'=>'string', 'source_class'=>'string', 'source_method='=>'?string'], +'runkit7_method_redefine' => ['bool', 'class_name'=>'string', 'method_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_flags='=>'int|null|string', 'flags_or_doc_comment='=>'int|null|string', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], +'runkit7_method_remove' => ['bool', 'class_name'=>'string', 'method_name'=>'string'], +'runkit7_method_rename' => ['bool', 'class_name'=>'string', 'source_method_name'=>'string', 'source_target_name'=>'string'], +'runkit7_superglobals' => ['array'], +'runkit7_zval_inspect' => ['array', 'value'=>'mixed'], +'runkit_class_adopt' => ['bool', 'classname'=>'string', 'parentname'=>'string'], +'runkit_class_emancipate' => ['bool', 'classname'=>'string'], +'runkit_constant_add' => ['bool', 'constname'=>'string', 'value'=>'mixed'], +'runkit_constant_redefine' => ['bool', 'constname'=>'string', 'newvalue'=>'mixed'], +'runkit_constant_remove' => ['bool', 'constname'=>'string'], +'runkit_function_add' => ['bool', 'funcname'=>'string', 'arglist'=>'string', 'code'=>'string', 'doccomment='=>'?string'], +'runkit_function_add\'1' => ['bool', 'funcname'=>'string', 'closure'=>'Closure', 'doccomment='=>'?string'], +'runkit_function_copy' => ['bool', 'funcname'=>'string', 'targetname'=>'string'], +'runkit_function_redefine' => ['bool', 'funcname'=>'string', 'arglist'=>'string', 'code'=>'string', 'doccomment='=>'?string'], +'runkit_function_redefine\'1' => ['bool', 'funcname'=>'string', 'closure'=>'Closure', 'doccomment='=>'?string'], +'runkit_function_remove' => ['bool', 'funcname'=>'string'], +'runkit_function_rename' => ['bool', 'funcname'=>'string', 'newname'=>'string'], +'runkit_import' => ['bool', 'filename'=>'string', 'flags='=>'int'], +'runkit_lint' => ['bool', 'code'=>'string'], +'runkit_lint_file' => ['bool', 'filename'=>'string'], +'runkit_method_add' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int', 'doccomment='=>'?string'], +'runkit_method_add\'1' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'closure'=>'Closure', 'flags='=>'int', 'doccomment='=>'?string'], +'runkit_method_copy' => ['bool', 'dclass'=>'string', 'dmethod'=>'string', 'sclass'=>'string', 'smethod='=>'string'], +'runkit_method_redefine' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int', 'doccomment='=>'?string'], +'runkit_method_redefine\'1' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'closure'=>'Closure', 'flags='=>'int', 'doccomment='=>'?string'], +'runkit_method_remove' => ['bool', 'classname'=>'string', 'methodname'=>'string'], +'runkit_method_rename' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'newname'=>'string'], +'runkit_return_value_used' => ['bool'], +'Runkit_Sandbox::__construct' => ['void', 'options='=>'array'], +'runkit_sandbox_output_handler' => ['mixed', 'sandbox'=>'object', 'callback='=>'mixed'], +'Runkit_Sandbox_Parent' => [''], +'Runkit_Sandbox_Parent::__construct' => ['void'], +'runkit_superglobals' => ['array'], +'runkit_zval_inspect' => ['array', 'value'=>'mixed'], +'RuntimeException::__clone' => ['void'], +'RuntimeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'RuntimeException::__toString' => ['string'], +'RuntimeException::getCode' => ['int'], +'RuntimeException::getFile' => ['string'], +'RuntimeException::getLine' => ['int'], +'RuntimeException::getMessage' => ['string'], +'RuntimeException::getPrevious' => ['?Throwable'], +'RuntimeException::getTrace' => ['list\',args?:array}>'], +'RuntimeException::getTraceAsString' => ['string'], +'SAMConnection::commit' => ['bool'], +'SAMConnection::connect' => ['bool', 'protocol'=>'string', 'properties='=>'array'], +'SAMConnection::disconnect' => ['bool'], +'SAMConnection::errno' => ['int'], +'SAMConnection::error' => ['string'], +'SAMConnection::isConnected' => ['bool'], +'SAMConnection::peek' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], +'SAMConnection::peekAll' => ['array', 'target'=>'string', 'properties='=>'array'], +'SAMConnection::receive' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], +'SAMConnection::remove' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], +'SAMConnection::rollback' => ['bool'], +'SAMConnection::send' => ['string', 'target'=>'string', 'msg'=>'sammessage', 'properties='=>'array'], +'SAMConnection::setDebug' => ['', 'switch'=>'bool'], +'SAMConnection::subscribe' => ['string', 'targettopic'=>'string'], +'SAMConnection::unsubscribe' => ['bool', 'subscriptionid'=>'string', 'targettopic='=>'string'], +'SAMMessage::body' => ['string'], +'SAMMessage::header' => ['object'], +'sapi_windows_cp_conv' => ['?string', 'in_codepage'=>'int|string', 'out_codepage'=>'int|string', 'subject'=>'string'], +'sapi_windows_cp_get' => ['int', 'kind='=>'string'], +'sapi_windows_cp_is_utf8' => ['bool'], +'sapi_windows_cp_set' => ['bool', 'codepage'=>'int'], +'sapi_windows_vt100_support' => ['bool', 'stream'=>'resource', 'enable='=>'?bool'], +'Saxon\SaxonProcessor::__construct' => ['void', 'license='=>'bool', 'cwd='=>'string'], +'Saxon\SaxonProcessor::createAtomicValue' => ['Saxon\XdmValue', 'primitive_type_val'=>'bool|float|int|string'], +'Saxon\SaxonProcessor::newSchemaValidator' => ['Saxon\SchemaValidator'], +'Saxon\SaxonProcessor::newXPathProcessor' => ['Saxon\XPathProcessor'], +'Saxon\SaxonProcessor::newXQueryProcessor' => ['Saxon\XQueryProcessor'], +'Saxon\SaxonProcessor::newXsltProcessor' => ['Saxon\XsltProcessor'], +'Saxon\SaxonProcessor::parseXmlFromFile' => ['Saxon\XdmNode', 'fileName'=>'string'], +'Saxon\SaxonProcessor::parseXmlFromString' => ['Saxon\XdmNode', 'value'=>'string'], +'Saxon\SaxonProcessor::registerPHPFunctions' => ['void', 'library'=>'string'], +'Saxon\SaxonProcessor::setConfigurationProperty' => ['void', 'name'=>'string', 'value'=>'string'], +'Saxon\SaxonProcessor::setcwd' => ['void', 'cwd'=>'string'], +'Saxon\SaxonProcessor::setResourceDirectory' => ['void', 'dir'=>'string'], +'Saxon\SaxonProcessor::version' => ['string'], +'Saxon\SchemaValidator::clearParameters' => ['void'], +'Saxon\SchemaValidator::clearProperties' => ['void'], +'Saxon\SchemaValidator::exceptionClear' => ['void'], +'Saxon\SchemaValidator::getErrorCode' => ['string', 'i'=>'int'], +'Saxon\SchemaValidator::getErrorMessage' => ['string', 'i'=>'int'], +'Saxon\SchemaValidator::getExceptionCount' => ['int'], +'Saxon\SchemaValidator::getValidationReport' => ['Saxon\XdmNode'], +'Saxon\SchemaValidator::registerSchemaFromFile' => ['void', 'fileName'=>'string'], +'Saxon\SchemaValidator::registerSchemaFromString' => ['void', 'schemaStr'=>'string'], +'Saxon\SchemaValidator::setOutputFile' => ['void', 'fileName'=>'string'], +'Saxon\SchemaValidator::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], +'Saxon\SchemaValidator::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], +'Saxon\SchemaValidator::setSourceNode' => ['void', 'node'=>'Saxon\XdmNode'], +'Saxon\SchemaValidator::validate' => ['void', 'filename='=>'?string'], +'Saxon\SchemaValidator::validateToNode' => ['Saxon\XdmNode', 'filename='=>'?string'], +'Saxon\XdmAtomicValue::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], +'Saxon\XdmAtomicValue::getAtomicValue' => ['?Saxon\XdmAtomicValue'], +'Saxon\XdmAtomicValue::getBooleanValue' => ['bool'], +'Saxon\XdmAtomicValue::getDoubleValue' => ['float'], +'Saxon\XdmAtomicValue::getHead' => ['Saxon\XdmItem'], +'Saxon\XdmAtomicValue::getLongValue' => ['int'], +'Saxon\XdmAtomicValue::getNodeValue' => ['?Saxon\XdmNode'], +'Saxon\XdmAtomicValue::getStringValue' => ['string'], +'Saxon\XdmAtomicValue::isAtomic' => ['true'], +'Saxon\XdmAtomicValue::isNode' => ['bool'], +'Saxon\XdmAtomicValue::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], +'Saxon\XdmAtomicValue::size' => ['int'], +'Saxon\XdmItem::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], +'Saxon\XdmItem::getAtomicValue' => ['?Saxon\XdmAtomicValue'], +'Saxon\XdmItem::getHead' => ['Saxon\XdmItem'], +'Saxon\XdmItem::getNodeValue' => ['?Saxon\XdmNode'], +'Saxon\XdmItem::getStringValue' => ['string'], +'Saxon\XdmItem::isAtomic' => ['bool'], +'Saxon\XdmItem::isNode' => ['bool'], +'Saxon\XdmItem::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], +'Saxon\XdmItem::size' => ['int'], +'Saxon\XdmNode::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], +'Saxon\XdmNode::getAtomicValue' => ['?Saxon\XdmAtomicValue'], +'Saxon\XdmNode::getAttributeCount' => ['int'], +'Saxon\XdmNode::getAttributeNode' => ['?Saxon\XdmNode', 'index'=>'int'], +'Saxon\XdmNode::getAttributeValue' => ['?string', 'index'=>'int'], +'Saxon\XdmNode::getChildCount' => ['int'], +'Saxon\XdmNode::getChildNode' => ['?Saxon\XdmNode', 'index'=>'int'], +'Saxon\XdmNode::getHead' => ['Saxon\XdmItem'], +'Saxon\XdmNode::getNodeKind' => ['int'], +'Saxon\XdmNode::getNodeName' => ['string'], +'Saxon\XdmNode::getNodeValue' => ['?Saxon\XdmNode'], +'Saxon\XdmNode::getParent' => ['?Saxon\XdmNode'], +'Saxon\XdmNode::getStringValue' => ['string'], +'Saxon\XdmNode::isAtomic' => ['false'], +'Saxon\XdmNode::isNode' => ['bool'], +'Saxon\XdmNode::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], +'Saxon\XdmNode::size' => ['int'], +'Saxon\XdmValue::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], +'Saxon\XdmValue::getHead' => ['Saxon\XdmItem'], +'Saxon\XdmValue::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], +'Saxon\XdmValue::size' => ['int'], +'Saxon\XPathProcessor::clearParameters' => ['void'], +'Saxon\XPathProcessor::clearProperties' => ['void'], +'Saxon\XPathProcessor::declareNamespace' => ['void', 'prefix'=>'', 'namespace'=>''], +'Saxon\XPathProcessor::effectiveBooleanValue' => ['bool', 'xpathStr'=>'string'], +'Saxon\XPathProcessor::evaluate' => ['Saxon\XdmValue', 'xpathStr'=>'string'], +'Saxon\XPathProcessor::evaluateSingle' => ['Saxon\XdmItem', 'xpathStr'=>'string'], +'Saxon\XPathProcessor::exceptionClear' => ['void'], +'Saxon\XPathProcessor::getErrorCode' => ['string', 'i'=>'int'], +'Saxon\XPathProcessor::getErrorMessage' => ['string', 'i'=>'int'], +'Saxon\XPathProcessor::getExceptionCount' => ['int'], +'Saxon\XPathProcessor::setBaseURI' => ['void', 'uri'=>'string'], +'Saxon\XPathProcessor::setContextFile' => ['void', 'fileName'=>'string'], +'Saxon\XPathProcessor::setContextItem' => ['void', 'item'=>'Saxon\XdmItem'], +'Saxon\XPathProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], +'Saxon\XPathProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], +'Saxon\XQueryProcessor::clearParameters' => ['void'], +'Saxon\XQueryProcessor::clearProperties' => ['void'], +'Saxon\XQueryProcessor::declareNamespace' => ['void', 'prefix'=>'string', 'namespace'=>'string'], +'Saxon\XQueryProcessor::exceptionClear' => ['void'], +'Saxon\XQueryProcessor::getErrorCode' => ['string', 'i'=>'int'], +'Saxon\XQueryProcessor::getErrorMessage' => ['string', 'i'=>'int'], +'Saxon\XQueryProcessor::getExceptionCount' => ['int'], +'Saxon\XQueryProcessor::runQueryToFile' => ['void', 'outfilename'=>'string'], +'Saxon\XQueryProcessor::runQueryToString' => ['?string'], +'Saxon\XQueryProcessor::runQueryToValue' => ['?Saxon\XdmValue'], +'Saxon\XQueryProcessor::setContextItem' => ['void', 'object'=>'Saxon\XdmAtomicValue|Saxon\XdmItem|Saxon\XdmNode|Saxon\XdmValue'], +'Saxon\XQueryProcessor::setContextItemFromFile' => ['void', 'fileName'=>'string'], +'Saxon\XQueryProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], +'Saxon\XQueryProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], +'Saxon\XQueryProcessor::setQueryBaseURI' => ['void', 'uri'=>'string'], +'Saxon\XQueryProcessor::setQueryContent' => ['void', 'string'=>'string'], +'Saxon\XQueryProcessor::setQueryFile' => ['void', 'filename'=>'string'], +'Saxon\XQueryProcessor::setQueryItem' => ['void', 'item'=>'Saxon\XdmItem'], +'Saxon\XsltProcessor::clearParameters' => ['void'], +'Saxon\XsltProcessor::clearProperties' => ['void'], +'Saxon\XsltProcessor::compileFromFile' => ['void', 'fileName'=>'string'], +'Saxon\XsltProcessor::compileFromString' => ['void', 'string'=>'string'], +'Saxon\XsltProcessor::compileFromValue' => ['void', 'node'=>'Saxon\XdmNode'], +'Saxon\XsltProcessor::exceptionClear' => ['void'], +'Saxon\XsltProcessor::getErrorCode' => ['string', 'i'=>'int'], +'Saxon\XsltProcessor::getErrorMessage' => ['string', 'i'=>'int'], +'Saxon\XsltProcessor::getExceptionCount' => ['int'], +'Saxon\XsltProcessor::setOutputFile' => ['void', 'fileName'=>'string'], +'Saxon\XsltProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], +'Saxon\XsltProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], +'Saxon\XsltProcessor::setSourceFromFile' => ['void', 'filename'=>'string'], +'Saxon\XsltProcessor::setSourceFromXdmValue' => ['void', 'value'=>'Saxon\XdmValue'], +'Saxon\XsltProcessor::transformFileToFile' => ['void', 'sourceFileName'=>'string', 'stylesheetFileName'=>'string', 'outputfileName'=>'string'], +'Saxon\XsltProcessor::transformFileToString' => ['?string', 'sourceFileName'=>'string', 'stylesheetFileName'=>'string'], +'Saxon\XsltProcessor::transformFileToValue' => ['Saxon\XdmValue', 'fileName'=>'string'], +'Saxon\XsltProcessor::transformToFile' => ['void'], +'Saxon\XsltProcessor::transformToString' => ['string'], +'Saxon\XsltProcessor::transformToValue' => ['?Saxon\XdmValue'], +'SCA::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], +'SCA::getService' => ['', 'target'=>'string', 'binding='=>'string', 'config='=>'array'], +'SCA_LocalProxy::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], +'SCA_SoapProxy::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], +'scalebarObj::convertToString' => ['string'], +'scalebarObj::free' => ['void'], +'scalebarObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'scalebarObj::setImageColor' => ['int', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'scalebarObj::updateFromString' => ['int', 'snippet'=>'string'], +'scandir' => ['list|false', 'directory'=>'string', 'sorting_order='=>'int', 'context='=>'resource'], +'SDO_DAS_ChangeSummary::beginLogging' => [''], +'SDO_DAS_ChangeSummary::endLogging' => [''], +'SDO_DAS_ChangeSummary::getChangedDataObjects' => ['SDO_List'], +'SDO_DAS_ChangeSummary::getChangeType' => ['int', 'dataobject'=>'sdo_dataobject'], +'SDO_DAS_ChangeSummary::getOldContainer' => ['SDO_DataObject', 'data_object'=>'sdo_dataobject'], +'SDO_DAS_ChangeSummary::getOldValues' => ['SDO_List', 'data_object'=>'sdo_dataobject'], +'SDO_DAS_ChangeSummary::isLogging' => ['bool'], +'SDO_DAS_DataFactory::addPropertyToType' => ['', 'parent_type_namespace_uri'=>'string', 'parent_type_name'=>'string', 'property_name'=>'string', 'type_namespace_uri'=>'string', 'type_name'=>'string', 'options='=>'array'], +'SDO_DAS_DataFactory::addType' => ['', 'type_namespace_uri'=>'string', 'type_name'=>'string', 'options='=>'array'], +'SDO_DAS_DataFactory::getDataFactory' => ['SDO_DAS_DataFactory'], +'SDO_DAS_DataObject::getChangeSummary' => ['SDO_DAS_ChangeSummary'], +'SDO_DAS_Relational::__construct' => ['void', 'database_metadata'=>'array', 'application_root_type='=>'string', 'sdo_containment_references_metadata='=>'array'], +'SDO_DAS_Relational::applyChanges' => ['', 'database_handle'=>'pdo', 'root_data_object'=>'sdodataobject'], +'SDO_DAS_Relational::createRootDataObject' => ['SDODataObject'], +'SDO_DAS_Relational::executePreparedQuery' => ['SDODataObject', 'database_handle'=>'pdo', 'prepared_statement'=>'pdostatement', 'value_list'=>'array', 'column_specifier='=>'array'], +'SDO_DAS_Relational::executeQuery' => ['SDODataObject', 'database_handle'=>'pdo', 'sql_statement'=>'string', 'column_specifier='=>'array'], +'SDO_DAS_Setting::getListIndex' => ['int'], +'SDO_DAS_Setting::getPropertyIndex' => ['int'], +'SDO_DAS_Setting::getPropertyName' => ['string'], +'SDO_DAS_Setting::getValue' => [''], +'SDO_DAS_Setting::isSet' => ['bool'], +'SDO_DAS_XML::addTypes' => ['', 'xsd_file'=>'string'], +'SDO_DAS_XML::create' => ['SDO_DAS_XML', 'xsd_file='=>'mixed', 'key='=>'string'], +'SDO_DAS_XML::createDataObject' => ['SDO_DataObject', 'namespace_uri'=>'string', 'type_name'=>'string'], +'SDO_DAS_XML::createDocument' => ['SDO_DAS_XML_Document', 'document_element_name'=>'string', 'document_element_namespace_uri'=>'string', 'dataobject='=>'sdo_dataobject'], +'SDO_DAS_XML::loadFile' => ['SDO_XMLDocument', 'xml_file'=>'string'], +'SDO_DAS_XML::loadString' => ['SDO_DAS_XML_Document', 'xml_string'=>'string'], +'SDO_DAS_XML::saveFile' => ['', 'xdoc'=>'sdo_xmldocument', 'xml_file'=>'string', 'indent='=>'int'], +'SDO_DAS_XML::saveString' => ['string', 'xdoc'=>'sdo_xmldocument', 'indent='=>'int'], +'SDO_DAS_XML_Document::getRootDataObject' => ['SDO_DataObject'], +'SDO_DAS_XML_Document::getRootElementName' => ['string'], +'SDO_DAS_XML_Document::getRootElementURI' => ['string'], +'SDO_DAS_XML_Document::setEncoding' => ['', 'encoding'=>'string'], +'SDO_DAS_XML_Document::setXMLDeclaration' => ['', 'xmldeclatation'=>'bool'], +'SDO_DAS_XML_Document::setXMLVersion' => ['', 'xmlversion'=>'string'], +'SDO_DataFactory::create' => ['void', 'type_namespace_uri'=>'string', 'type_name'=>'string'], +'SDO_DataObject::clear' => ['void'], +'SDO_DataObject::createDataObject' => ['SDO_DataObject', 'identifier'=>''], +'SDO_DataObject::getContainer' => ['SDO_DataObject'], +'SDO_DataObject::getSequence' => ['SDO_Sequence'], +'SDO_DataObject::getTypeName' => ['string'], +'SDO_DataObject::getTypeNamespaceURI' => ['string'], +'SDO_Exception::getCause' => [''], +'SDO_List::insert' => ['void', 'value'=>'mixed', 'index='=>'int'], +'SDO_Model_Property::getContainingType' => ['SDO_Model_Type'], +'SDO_Model_Property::getDefault' => [''], +'SDO_Model_Property::getName' => ['string'], +'SDO_Model_Property::getType' => ['SDO_Model_Type'], +'SDO_Model_Property::isContainment' => ['bool'], +'SDO_Model_Property::isMany' => ['bool'], +'SDO_Model_ReflectionDataObject::__construct' => ['void', 'data_object'=>'sdo_dataobject'], +'SDO_Model_ReflectionDataObject::export' => ['mixed', 'rdo'=>'sdo_model_reflectiondataobject', 'return='=>'bool'], +'SDO_Model_ReflectionDataObject::getContainmentProperty' => ['SDO_Model_Property'], +'SDO_Model_ReflectionDataObject::getInstanceProperties' => ['array'], +'SDO_Model_ReflectionDataObject::getType' => ['SDO_Model_Type'], +'SDO_Model_Type::getBaseType' => ['SDO_Model_Type'], +'SDO_Model_Type::getName' => ['string'], +'SDO_Model_Type::getNamespaceURI' => ['string'], +'SDO_Model_Type::getProperties' => ['array'], +'SDO_Model_Type::getProperty' => ['SDO_Model_Property', 'identifier'=>''], +'SDO_Model_Type::isAbstractType' => ['bool'], +'SDO_Model_Type::isDataType' => ['bool'], +'SDO_Model_Type::isInstance' => ['bool', 'data_object'=>'sdo_dataobject'], +'SDO_Model_Type::isOpenType' => ['bool'], +'SDO_Model_Type::isSequencedType' => ['bool'], +'SDO_Sequence::getProperty' => ['SDO_Model_Property', 'sequence_index'=>'int'], +'SDO_Sequence::insert' => ['void', 'value'=>'mixed', 'sequenceindex='=>'int', 'propertyidentifier='=>'mixed'], +'SDO_Sequence::move' => ['void', 'toindex'=>'int', 'fromindex'=>'int'], +'SeasLog::__destruct' => ['void'], +'SeasLog::alert' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::analyzerCount' => ['mixed', 'level'=>'string', 'log_path='=>'string', 'key_word='=>'string'], +'SeasLog::analyzerDetail' => ['mixed', 'level'=>'string', 'log_path='=>'string', 'key_word='=>'string', 'start='=>'int', 'limit='=>'int', 'order='=>'int'], +'SeasLog::closeLoggerStream' => ['bool', 'model'=>'int', 'logger'=>'string'], +'SeasLog::critical' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::debug' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::emergency' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::error' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::flushBuffer' => ['bool'], +'SeasLog::getBasePath' => ['string'], +'SeasLog::getBuffer' => ['array'], +'SeasLog::getBufferEnabled' => ['bool'], +'SeasLog::getDatetimeFormat' => ['string'], +'SeasLog::getLastLogger' => ['string'], +'SeasLog::getRequestID' => ['string'], +'SeasLog::getRequestVariable' => ['bool', 'key'=>'int'], +'SeasLog::info' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::log' => ['bool', 'level'=>'string', 'message='=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::notice' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'SeasLog::setBasePath' => ['bool', 'base_path'=>'string'], +'SeasLog::setDatetimeFormat' => ['bool', 'format'=>'string'], +'SeasLog::setLogger' => ['bool', 'logger'=>'string'], +'SeasLog::setRequestID' => ['bool', 'request_id'=>'string'], +'SeasLog::setRequestVariable' => ['bool', 'key'=>'int', 'value'=>'string'], +'SeasLog::warning' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], +'seaslog_get_author' => ['string'], +'seaslog_get_version' => ['string'], +'SeekableIterator::__construct' => ['void'], +'SeekableIterator::current' => ['mixed'], +'SeekableIterator::key' => ['int|string'], +'SeekableIterator::next' => ['void'], +'SeekableIterator::rewind' => ['void'], +'SeekableIterator::seek' => ['void', 'position'=>'int'], +'SeekableIterator::valid' => ['bool'], +'sem_acquire' => ['bool', 'semaphore'=>'SysvSemaphore', 'non_blocking='=>'bool'], +'sem_get' => ['SysvSemaphore|false', 'key'=>'int', 'max_acquire='=>'int', 'permissions='=>'int', 'auto_release='=>'bool'], +'sem_release' => ['bool', 'semaphore'=>'SysvSemaphore'], +'sem_remove' => ['bool', 'semaphore'=>'SysvSemaphore'], +'Serializable::__construct' => ['void'], +'Serializable::serialize' => ['?string'], +'Serializable::unserialize' => ['void', 'serialized'=>'string'], +'serialize' => ['string', 'value'=>'mixed'], +'ServerRequest::withInput' => ['ServerRequest', 'input'=>'mixed'], +'ServerRequest::withoutParams' => ['ServerRequest', 'params'=>'int|string'], +'ServerRequest::withParam' => ['ServerRequest', 'key'=>'int|string', 'value'=>'mixed'], +'ServerRequest::withParams' => ['ServerRequest', 'params'=>'mixed'], +'ServerRequest::withUrl' => ['ServerRequest', 'url'=>'array'], +'ServerResponse::addHeader' => ['void', 'label'=>'string', 'value'=>'string'], +'ServerResponse::date' => ['string', 'date'=>'string|DateTimeInterface'], +'ServerResponse::getHeader' => ['string', 'label'=>'string'], +'ServerResponse::getHeaders' => ['string[]'], +'ServerResponse::getStatus' => ['int'], +'ServerResponse::getVersion' => ['string'], +'ServerResponse::setHeader' => ['void', 'label'=>'string', 'value'=>'string'], +'ServerResponse::setStatus' => ['void', 'status'=>'int'], +'ServerResponse::setVersion' => ['void', 'version'=>'string'], +'session_abort' => ['bool'], +'session_cache_expire' => ['int', 'value='=>'?int'], +'session_cache_limiter' => ['string', 'value='=>'?string'], +'session_commit' => ['bool'], +'session_create_id' => ['string', 'prefix='=>'string'], +'session_decode' => ['bool', 'data'=>'string'], +'session_destroy' => ['bool'], +'session_encode' => ['string'], +'session_gc' => ['int|false'], +'session_get_cookie_params' => ['array'], +'session_id' => ['string|false', 'id='=>'?string'], +'session_is_registered' => ['bool', 'name'=>'string'], +'session_module_name' => ['string', 'module='=>'?string'], +'session_name' => ['string|false', 'name='=>'?string'], +'session_pgsql_add_error' => ['bool', 'error_level'=>'int', 'error_message='=>'string'], +'session_pgsql_get_error' => ['array', 'with_error_message='=>'bool'], +'session_pgsql_get_field' => ['string'], +'session_pgsql_reset' => ['bool'], +'session_pgsql_set_field' => ['bool', 'value'=>'string'], +'session_pgsql_status' => ['array'], +'session_regenerate_id' => ['bool', 'delete_old_session='=>'bool'], +'session_register' => ['bool', 'name'=>'mixed', '...args='=>'mixed'], +'session_register_shutdown' => ['void'], +'session_reset' => ['bool'], +'session_save_path' => ['string', 'path='=>'?string'], +'session_set_cookie_params' => ['bool', 'lifetime'=>'int', 'path='=>'?string', 'domain='=>'?string', 'secure='=>'?bool', 'httponly='=>'?bool'], +'session_set_cookie_params\'1' => ['bool', 'options'=>'array{lifetime?:?int,path?:?string,domain?:?string,secure?:?bool,httponly?:?bool,samesite?:?string}'], +'session_set_save_handler' => ['bool', 'open'=>'callable(string,string):bool', 'close'=>'callable():bool', 'read'=>'callable(string):string', 'write'=>'callable(string,string):bool', 'destroy'=>'callable(string):bool', 'gc'=>'callable(string):bool', 'create_sid='=>'callable():string', 'validate_sid='=>'callable(string):bool', 'update_timestamp='=>'callable(string):bool'], +'session_set_save_handler\'1' => ['bool', 'open'=>'SessionHandlerInterface', 'close='=>'bool'], +'session_start' => ['bool', 'options='=>'array'], +'session_status' => ['int'], +'session_unregister' => ['bool', 'name'=>'string'], +'session_unset' => ['bool'], +'session_write_close' => ['bool'], +'SessionHandler::close' => ['bool'], +'SessionHandler::create_sid' => ['string'], +'SessionHandler::destroy' => ['bool', 'id'=>'string'], +'SessionHandler::gc' => ['bool', 'maxlifetime'=>'int'], +'SessionHandler::open' => ['bool', 'save_path'=>'string', 'session_name'=>'string'], +'SessionHandler::read' => ['string', 'id'=>'string'], +'SessionHandler::write' => ['bool', 'id'=>'string', 'data'=>'string'], +'SessionHandlerInterface::close' => ['bool'], +'SessionHandlerInterface::destroy' => ['bool', 'id'=>'string'], +'SessionHandlerInterface::gc' => ['int|false', 'max_lifetime'=>'int'], +'SessionHandlerInterface::open' => ['bool', 'path'=>'string', 'name'=>'string'], +'SessionHandlerInterface::read' => ['string|false', 'id'=>'string'], +'SessionHandlerInterface::write' => ['bool', 'id'=>'string', 'data'=>'string'], +'SessionIdInterface::create_sid' => ['string'], +'SessionUpdateTimestampHandler::updateTimestamp' => ['bool', 'id'=>'string', 'data'=>'string'], +'SessionUpdateTimestampHandler::validateId' => ['char', 'id'=>'string'], +'SessionUpdateTimestampHandlerInterface::updateTimestamp' => ['bool', 'key'=>'string', 'value'=>'string'], +'SessionUpdateTimestampHandlerInterface::validateId' => ['bool', 'key'=>'string'], +'set_error_handler' => ['null|callable(int,string,string=,int=,array=):bool', 'callback'=>'null|callable(int,string,string=,int=,array=):bool', 'error_levels='=>'int'], +'set_exception_handler' => ['null|callable(Throwable):void', 'callback'=>'null|callable(Throwable):void'], +'set_file_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], +'set_include_path' => ['string|false', 'include_path'=>'string'], +'set_magic_quotes_runtime' => ['bool', 'new_setting'=>'bool'], +'set_time_limit' => ['bool', 'seconds'=>'int'], +'setcookie' => ['bool', 'name'=>'string', 'value='=>'string', 'expires='=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool', 'samesite='=>'string', 'url_encode='=>'int'], +'setcookie\'1' => ['bool', 'name'=>'string', 'value='=>'string', 'options='=>'array'], +'setLeftFill' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'setLine' => ['void', 'width'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'setlocale' => ['string|false', 'category'=>'int', 'locales'=>'string|0|null', '...rest='=>'string'], +'setlocale\'1' => ['string|false', 'category'=>'int', 'locales'=>'?array'], +'setproctitle' => ['void', 'title'=>'string'], +'setrawcookie' => ['bool', 'name'=>'string', 'value='=>'string', 'expires='=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool'], +'setrawcookie\'1' => ['bool', 'name'=>'string', 'value='=>'string', 'options='=>'array'], +'setRightFill' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'setthreadtitle' => ['bool', 'title'=>'string'], +'settype' => ['bool', '&rw_var'=>'mixed', 'type'=>'string'], +'sha1' => ['string', 'string'=>'string', 'binary='=>'bool'], +'sha1_file' => ['string|false', 'filename'=>'string', 'binary='=>'bool'], +'sha256' => ['string', 'string'=>'string', 'raw_output='=>'bool'], +'sha256_file' => ['string', 'filename'=>'string', 'raw_output='=>'bool'], +'shapefileObj::__construct' => ['void', 'filename'=>'string', 'type'=>'int'], +'shapefileObj::addPoint' => ['int', 'point'=>'pointObj'], +'shapefileObj::addShape' => ['int', 'shape'=>'shapeObj'], +'shapefileObj::free' => ['void'], +'shapefileObj::getExtent' => ['rectObj', 'i'=>'int'], +'shapefileObj::getPoint' => ['shapeObj', 'i'=>'int'], +'shapefileObj::getShape' => ['shapeObj', 'i'=>'int'], +'shapefileObj::getTransformed' => ['shapeObj', 'map'=>'mapObj', 'i'=>'int'], +'shapefileObj::ms_newShapefileObj' => ['shapefileObj', 'filename'=>'string', 'type'=>'int'], +'shapeObj::__construct' => ['void', 'type'=>'int'], +'shapeObj::add' => ['int', 'line'=>'lineObj'], +'shapeObj::boundary' => ['shapeObj'], +'shapeObj::contains' => ['bool', 'point'=>'pointObj'], +'shapeObj::containsShape' => ['int', 'shape2'=>'shapeObj'], +'shapeObj::convexhull' => ['shapeObj'], +'shapeObj::crosses' => ['int', 'shape'=>'shapeObj'], +'shapeObj::difference' => ['shapeObj', 'shape'=>'shapeObj'], +'shapeObj::disjoint' => ['int', 'shape'=>'shapeObj'], +'shapeObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj'], +'shapeObj::equals' => ['int', 'shape'=>'shapeObj'], +'shapeObj::free' => ['void'], +'shapeObj::getArea' => ['float'], +'shapeObj::getCentroid' => ['pointObj'], +'shapeObj::getLabelPoint' => ['pointObj'], +'shapeObj::getLength' => ['float'], +'shapeObj::getPointUsingMeasure' => ['pointObj', 'm'=>'float'], +'shapeObj::getValue' => ['string', 'layer'=>'layerObj', 'filedname'=>'string'], +'shapeObj::intersection' => ['shapeObj', 'shape'=>'shapeObj'], +'shapeObj::intersects' => ['bool', 'shape'=>'shapeObj'], +'shapeObj::line' => ['lineObj', 'i'=>'int'], +'shapeObj::ms_shapeObjFromWkt' => ['shapeObj', 'wkt'=>'string'], +'shapeObj::overlaps' => ['int', 'shape'=>'shapeObj'], +'shapeObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], +'shapeObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'shapeObj::setBounds' => ['int'], +'shapeObj::simplify' => ['shapeObj|null', 'tolerance'=>'float'], +'shapeObj::symdifference' => ['shapeObj', 'shape'=>'shapeObj'], +'shapeObj::topologyPreservingSimplify' => ['shapeObj|null', 'tolerance'=>'float'], +'shapeObj::touches' => ['int', 'shape'=>'shapeObj'], +'shapeObj::toWkt' => ['string'], +'shapeObj::union' => ['shapeObj', 'shape'=>'shapeObj'], +'shapeObj::within' => ['int', 'shape2'=>'shapeObj'], +'shell_exec' => ['string|false|null', 'command'=>'string'], +'shm_attach' => ['SysvSharedMemory|false', 'key'=>'int', 'size='=>'?int', 'permissions='=>'int'], +'shm_detach' => ['bool', 'shm'=>'SysvSharedMemory'], +'shm_get_var' => ['mixed', 'shm'=>'SysvSharedMemory', 'key'=>'int'], +'shm_has_var' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int'], +'shm_put_var' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int', 'value'=>'mixed'], +'shm_remove' => ['bool', 'shm'=>'SysvSharedMemory'], +'shm_remove_var' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int'], +'shmop_close' => ['void', 'shmop'=>'Shmop'], +'shmop_delete' => ['bool', 'shmop'=>'Shmop'], +'shmop_open' => ['Shmop|false', 'key'=>'int', 'mode'=>'string', 'permissions'=>'int', 'size'=>'int'], +'shmop_read' => ['string', 'shmop'=>'Shmop', 'offset'=>'int', 'size'=>'int'], +'shmop_size' => ['int', 'shmop'=>'Shmop'], +'shmop_write' => ['int', 'shmop'=>'Shmop', 'data'=>'string', 'offset'=>'int'], +'show_source' => ['string|bool', 'filename'=>'string', 'return='=>'bool'], +'shuffle' => ['true', '&rw_array'=>'array'], +'signeurlpaiement' => ['string', 'clent'=>'string', 'data'=>'string'], +'similar_text' => ['int', 'string1'=>'string', 'string2'=>'string', '&w_percent='=>'float'], +'simplexml_import_dom' => ['?SimpleXMLElement', 'node'=>'DOMNode', 'class_name='=>'?string'], +'simplexml_load_file' => ['SimpleXMLElement|false', 'filename'=>'string', 'class_name='=>'?string', 'options='=>'int', 'namespace_or_prefix='=>'string', 'is_prefix='=>'bool'], +'simplexml_load_string' => ['SimpleXMLElement|false', 'data'=>'string', 'class_name='=>'?string', 'options='=>'int', 'namespace_or_prefix='=>'string', 'is_prefix='=>'bool'], +'SimpleXMLElement::__construct' => ['void', 'data'=>'string', 'options='=>'int', 'data_is_url='=>'bool', 'ns='=>'string', 'is_prefix='=>'bool'], +'SimpleXMLElement::__get' => ['SimpleXMLElement', 'name'=>'string'], +'SimpleXMLElement::__toString' => ['string'], +'SimpleXMLElement::addAttribute' => ['void', 'name'=>'string', 'value='=>'string', 'ns='=>'string'], +'SimpleXMLElement::addChild' => ['SimpleXMLElement', 'name'=>'string', 'value='=>'string', 'ns='=>'string'], +'SimpleXMLElement::asXML' => ['string|bool', 'filename='=>'?string'], +'SimpleXMLElement::asXML\'1' => ['string|false'], +'SimpleXMLElement::attributes' => ['?SimpleXMLElement', 'ns='=>'string', 'is_prefix='=>'bool'], +'SimpleXMLElement::children' => ['SimpleXMLElement', 'ns='=>'string', 'is_prefix='=>'bool'], +'SimpleXMLElement::count' => ['int'], +'SimpleXMLElement::getDocNamespaces' => ['string[]', 'recursive='=>'bool', 'from_root='=>'bool'], +'SimpleXMLElement::getName' => ['string'], +'SimpleXMLElement::getNamespaces' => ['string[]', 'recursive='=>'bool'], +'SimpleXMLElement::offsetExists' => ['bool', 'offset'=>'int|string'], +'SimpleXMLElement::offsetGet' => ['SimpleXMLElement', 'offset'=>'int|string'], +'SimpleXMLElement::offsetSet' => ['void', 'offset'=>'int|string', 'value'=>'mixed'], +'SimpleXMLElement::offsetUnset' => ['void', 'offset'=>'int|string'], +'SimpleXMLElement::registerXPathNamespace' => ['bool', 'prefix'=>'string', 'ns'=>'string'], +'SimpleXMLElement::saveXML' => ['string|bool', 'filename='=>'?string'], +'SimpleXMLElement::xpath' => ['SimpleXMLElement[]|false', 'path'=>'string'], +'sin' => ['float', 'num'=>'float'], +'sinh' => ['float', 'num'=>'float'], +'sizeof' => ['int', 'value'=>'Countable|array', 'mode='=>'int'], +'sleep' => ['int', 'seconds'=>'0|positive-int'], +'snmp2_get' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp2_getnext' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp2_real_walk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp2_set' => ['bool', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'type'=>'string', 'value'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp2_walk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp3_get' => ['string|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp3_getnext' => ['string|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp3_real_walk' => ['array|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp3_set' => ['bool', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'type'=>'string', 'value'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmp3_walk' => ['array|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'SNMP::__construct' => ['void', 'version'=>'int', 'hostname'=>'string', 'community'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'SNMP::close' => ['bool'], +'SNMP::get' => ['array|string|false', 'objectId'=>'string|array', 'preserveKeys='=>'bool'], +'SNMP::getErrno' => ['int'], +'SNMP::getError' => ['string'], +'SNMP::getnext' => ['string|array|false', 'objectId'=>'string|array'], +'SNMP::set' => ['bool', 'objectId'=>'string|array', 'type'=>'string|array', 'value'=>'string|array'], +'SNMP::setSecurity' => ['bool', 'securityLevel'=>'string', 'authProtocol='=>'string', 'authPassphrase='=>'string', 'privacyProtocol='=>'string', 'privacyPassphrase='=>'string', 'contextName='=>'string', 'contextEngineId='=>'string'], +'SNMP::walk' => ['array|false', 'objectId'=>'string', 'suffixAsKey='=>'bool', 'maxRepetitions='=>'int', 'nonRepeaters='=>'int'], +'snmp_get_quick_print' => ['bool'], +'snmp_get_valueretrieval' => ['int'], +'snmp_read_mib' => ['bool', 'filename'=>'string'], +'snmp_set_enum_print' => ['true', 'enable'=>'bool'], +'snmp_set_oid_numeric_print' => ['true', 'format'=>'int'], +'snmp_set_oid_output_format' => ['true', 'format'=>'int'], +'snmp_set_quick_print' => ['bool', 'enable'=>'bool'], +'snmp_set_valueretrieval' => ['true', 'method'=>'int'], +'snmpget' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmpgetnext' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmprealwalk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmpset' => ['bool', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'type'=>'string|string[]', 'value'=>'string|string[]', 'timeout='=>'int', 'retries='=>'int'], +'snmpwalk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'snmpwalkoid' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], +'SoapClient::__call' => ['', 'function_name'=>'string', 'arguments'=>'array'], +'SoapClient::__construct' => ['void', 'wsdl'=>'mixed', 'options='=>'array|null'], +'SoapClient::__doRequest' => ['?string', 'request'=>'string', 'location'=>'string', 'action'=>'string', 'version'=>'int', 'one_way='=>'bool'], +'SoapClient::__getCookies' => ['array'], +'SoapClient::__getFunctions' => ['?array'], +'SoapClient::__getLastRequest' => ['?string'], +'SoapClient::__getLastRequestHeaders' => ['?string'], +'SoapClient::__getLastResponse' => ['?string'], +'SoapClient::__getLastResponseHeaders' => ['?string'], +'SoapClient::__getTypes' => ['?array'], +'SoapClient::__setCookie' => ['', 'name'=>'string', 'value='=>'string'], +'SoapClient::__setLocation' => ['string', 'new_location='=>'string'], +'SoapClient::__setSoapHeaders' => ['bool', 'soapheaders='=>''], +'SoapClient::__soapCall' => ['', 'function_name'=>'string', 'arguments'=>'array', 'options='=>'array', 'input_headers='=>'SoapHeader|array', '&w_output_headers='=>'array'], +'SoapClient::SoapClient' => ['object', 'wsdl'=>'mixed', 'options='=>'array|null'], +'SoapFault::__clone' => ['void'], +'SoapFault::__construct' => ['void', 'code'=>'array|string|null', 'string'=>'string', 'actor='=>'?string', 'details='=>'?mixed', 'name='=>'?string', 'headerFault='=>'?mixed'], +'SoapFault::__toString' => ['string'], +'SoapFault::__wakeup' => ['void'], +'SoapFault::getCode' => ['int'], +'SoapFault::getFile' => ['string'], +'SoapFault::getLine' => ['int'], +'SoapFault::getMessage' => ['string'], +'SoapFault::getPrevious' => ['?Exception|?Throwable'], +'SoapFault::getTrace' => ['list\',args?:array}>'], +'SoapFault::getTraceAsString' => ['string'], +'SoapFault::SoapFault' => ['object', 'faultcode'=>'string', 'faultstring'=>'string', 'faultactor='=>'?string', 'detail='=>'?mixed', 'faultname='=>'?string', 'headerfault='=>'?mixed'], +'SoapHeader::__construct' => ['void', 'namespace'=>'string', 'name'=>'string', 'data='=>'mixed', 'mustunderstand='=>'bool', 'actor='=>'string'], +'SoapHeader::SoapHeader' => ['object', 'namespace'=>'string', 'name'=>'string', 'data='=>'mixed', 'mustunderstand='=>'bool', 'actor='=>'string'], +'SoapParam::__construct' => ['void', 'data'=>'mixed', 'name'=>'string'], +'SoapParam::SoapParam' => ['object', 'data'=>'mixed', 'name'=>'string'], +'SoapServer::__construct' => ['void', 'wsdl'=>'?string', 'options='=>'array'], +'SoapServer::addFunction' => ['void', 'functions'=>'mixed'], +'SoapServer::addSoapHeader' => ['void', 'object'=>'SoapHeader'], +'SoapServer::fault' => ['void', 'code'=>'string', 'string'=>'string', 'actor='=>'string', 'details='=>'string', 'name='=>'string'], +'SoapServer::getFunctions' => ['array'], +'SoapServer::handle' => ['void', 'soap_request='=>'string'], +'SoapServer::setClass' => ['void', 'class_name'=>'string', '...args='=>'mixed'], +'SoapServer::setObject' => ['void', 'object'=>'object'], +'SoapServer::setPersistence' => ['void', 'mode'=>'int'], +'SoapServer::SoapServer' => ['object', 'wsdl'=>'?string', 'options='=>'array'], +'SoapVar::__construct' => ['void', 'data'=>'mixed', 'encoding'=>'int', 'type_name='=>'string|null', 'type_namespace='=>'string|null', 'node_name='=>'string|null', 'node_namespace='=>'string|null'], +'SoapVar::SoapVar' => ['object', 'data'=>'mixed', 'encoding'=>'int', 'type_name='=>'string|null', 'type_namespace='=>'string|null', 'node_name='=>'string|null', 'node_namespace='=>'string|null'], +'socket_accept' => ['Socket|false', 'socket'=>'Socket'], +'socket_addrinfo_bind' => ['Socket|false', 'address'=>'AddressInfo'], +'socket_addrinfo_connect' => ['Socket|false', 'address'=>'AddressInfo'], +'socket_addrinfo_explain' => ['array', 'address'=>'AddressInfo'], +'socket_addrinfo_lookup' => ['false|AddressInfo[]', 'host'=>'string', 'service='=>'?string', 'hints='=>'array'], +'socket_bind' => ['bool', 'socket'=>'Socket', 'address'=>'string', 'port='=>'int'], +'socket_clear_error' => ['void', 'socket='=>'?Socket'], +'socket_close' => ['void', 'socket'=>'Socket'], +'socket_cmsg_space' => ['?int', 'level'=>'int', 'type'=>'int', 'num='=>'int'], +'socket_connect' => ['bool', 'socket'=>'Socket', 'address'=>'string', 'port='=>'?int'], +'socket_create' => ['Socket|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], +'socket_create_listen' => ['Socket|false', 'port'=>'int', 'backlog='=>'int'], +'socket_create_pair' => ['bool', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int', '&w_pair'=>'Socket[]'], +'socket_export_stream' => ['resource|false', 'socket'=>'Socket'], +'socket_get_option' => ['array|int|false', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int'], +'socket_get_status' => ['array', 'stream'=>'Socket'], +'socket_getopt' => ['array|int|false', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int'], +'socket_getpeername' => ['bool', 'socket'=>'Socket', '&w_address'=>'string', '&w_port='=>'int'], +'socket_getsockname' => ['bool', 'socket'=>'Socket', '&w_address'=>'string', '&w_port='=>'int'], +'socket_import_stream' => ['Socket|false', 'stream'=>'resource'], +'socket_last_error' => ['int', 'socket='=>'?Socket'], +'socket_listen' => ['bool', 'socket'=>'Socket', 'backlog='=>'int'], +'socket_read' => ['string|false', 'socket'=>'Socket', 'length'=>'int', 'mode='=>'int'], +'socket_recv' => ['int|false', 'socket'=>'Socket', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int'], +'socket_recvfrom' => ['int|false', 'socket'=>'Socket', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int', '&w_address'=>'string', '&w_port='=>'int'], +'socket_recvmsg' => ['int|false', 'socket'=>'Socket', '&w_message'=>'array', 'flags='=>'int'], +'socket_select' => ['int|false', '&rw_read'=>'Socket[]|null', '&rw_write'=>'Socket[]|null', '&rw_except'=>'Socket[]|null', 'seconds'=>'int|null', 'microseconds='=>'int'], +'socket_send' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length'=>'int', 'flags'=>'int'], +'socket_sendmsg' => ['int|false', 'socket'=>'Socket', 'message'=>'array', 'flags='=>'int'], +'socket_sendto' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length'=>'int', 'flags'=>'int', 'address'=>'string', 'port='=>'?int'], +'socket_set_block' => ['bool', 'socket'=>'Socket'], +'socket_set_blocking' => ['bool', 'stream'=>'Socket', 'enable'=>'bool'], +'socket_set_nonblock' => ['bool', 'socket'=>'Socket'], +'socket_set_option' => ['bool', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], +'socket_set_timeout' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], +'socket_setopt' => ['bool', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], +'socket_shutdown' => ['bool', 'socket'=>'Socket', 'mode='=>'int'], +'socket_strerror' => ['string', 'error_code'=>'int'], +'socket_write' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length='=>'int|null'], +'socket_wsaprotocol_info_export' => ['string|false', 'socket'=>'Socket', 'process_id'=>'int'], +'socket_wsaprotocol_info_import' => ['Socket|false', 'info_id'=>'string'], +'socket_wsaprotocol_info_release' => ['bool', 'info_id'=>'string'], +'sodium_add' => ['void', '&rw_string1'=>'string', 'string2'=>'string'], +'sodium_base642bin' => ['string', 'string'=>'string', 'id'=>'int', 'ignore='=>'string'], +'sodium_bin2base64' => ['string', 'string'=>'string', 'id'=>'int'], +'sodium_bin2hex' => ['string', 'string'=>'string'], +'sodium_compare' => ['int', 'string1'=>'string', 'string2'=>'string'], +'sodium_crypto_aead_aes256gcm_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_aes256gcm_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_aes256gcm_is_available' => ['bool'], +'sodium_crypto_aead_aes256gcm_keygen' => ['non-empty-string'], +'sodium_crypto_aead_chacha20poly1305_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_chacha20poly1305_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_chacha20poly1305_ietf_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_chacha20poly1305_ietf_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_chacha20poly1305_ietf_keygen' => ['non-empty-string'], +'sodium_crypto_aead_chacha20poly1305_keygen' => ['non-empty-string'], +'sodium_crypto_aead_xchacha20poly1305_ietf_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_xchacha20poly1305_ietf_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_aead_xchacha20poly1305_ietf_keygen' => ['non-empty-string'], +'sodium_crypto_auth' => ['string', 'message'=>'string', 'key'=>'string'], +'sodium_crypto_auth_keygen' => ['non-empty-string'], +'sodium_crypto_auth_verify' => ['bool', 'mac'=>'string', 'message'=>'string', 'key'=>'string'], +'sodium_crypto_box' => ['string', 'message'=>'string', 'nonce'=>'string', 'key_pair'=>'string'], +'sodium_crypto_box_keypair' => ['string'], +'sodium_crypto_box_keypair_from_secretkey_and_publickey' => ['string', 'secret_key'=>'string', 'public_key'=>'string'], +'sodium_crypto_box_open' => ['string|false', 'ciphertext'=>'string', 'nonce'=>'string', 'key_pair'=>'string'], +'sodium_crypto_box_publickey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_box_publickey_from_secretkey' => ['string', 'secret_key'=>'string'], +'sodium_crypto_box_seal' => ['string', 'message'=>'string', 'public_key'=>'string'], +'sodium_crypto_box_seal_open' => ['string|false', 'ciphertext'=>'string', 'key_pair'=>'string'], +'sodium_crypto_box_secretkey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_box_seed_keypair' => ['string', 'seed'=>'string'], +'sodium_crypto_generichash' => ['string', 'message'=>'string', 'key='=>'string', 'length='=>'int'], +'sodium_crypto_generichash_final' => ['string', '&state'=>'string', 'length='=>'int'], +'sodium_crypto_generichash_init' => ['string', 'key='=>'string', 'length='=>'int'], +'sodium_crypto_generichash_keygen' => ['non-empty-string'], +'sodium_crypto_generichash_update' => ['true', '&rw_state'=>'string', 'message'=>'string'], +'sodium_crypto_kdf_derive_from_key' => ['string', 'subkey_length'=>'int', 'subkey_id'=>'int', 'context'=>'string', 'key'=>'string'], +'sodium_crypto_kdf_keygen' => ['non-empty-string'], +'sodium_crypto_kx_client_session_keys' => ['array', 'client_key_pair'=>'string', 'server_key'=>'string'], +'sodium_crypto_kx_keypair' => ['string'], +'sodium_crypto_kx_publickey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_kx_secretkey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_kx_seed_keypair' => ['string', 'seed'=>'string'], +'sodium_crypto_kx_server_session_keys' => ['array', 'server_key_pair'=>'string', 'client_key'=>'string'], +'sodium_crypto_pwhash' => ['string', 'length'=>'int', 'password'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int', 'algo='=>'int'], +'sodium_crypto_pwhash_scryptsalsa208sha256' => ['string', 'length'=>'int', 'password'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], +'sodium_crypto_pwhash_scryptsalsa208sha256_str' => ['string', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], +'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify' => ['bool', 'hash'=>'string', 'password'=>'string'], +'sodium_crypto_pwhash_str' => ['string', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], +'sodium_crypto_pwhash_str_needs_rehash' => ['bool', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], +'sodium_crypto_pwhash_str_verify' => ['bool', 'hash'=>'string', 'password'=>'string'], +'sodium_crypto_scalarmult' => ['string', 'n'=>'string', 'p'=>'string'], +'sodium_crypto_scalarmult_base' => ['string', 'secret_key'=>'string'], +'sodium_crypto_secretbox' => ['string', 'message'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_secretbox_keygen' => ['non-empty-string'], +'sodium_crypto_secretbox_open' => ['string|false', 'ciphertext'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_secretstream_xchacha20poly1305_init_pull' => ['string', 'header'=>'string', 'key'=>'string'], +'sodium_crypto_secretstream_xchacha20poly1305_init_push' => ['array', 'key'=>'string'], +'sodium_crypto_secretstream_xchacha20poly1305_keygen' => ['non-empty-string'], +'sodium_crypto_secretstream_xchacha20poly1305_pull' => ['array', '&r_state'=>'string', 'ciphertext'=>'string', 'additional_data='=>'string'], +'sodium_crypto_secretstream_xchacha20poly1305_push' => ['string', '&w_state'=>'string', 'message'=>'string', 'additional_data='=>'string', 'tag='=>'int'], +'sodium_crypto_secretstream_xchacha20poly1305_rekey' => ['void', '&w_state'=>'string'], +'sodium_crypto_shorthash' => ['string', 'message'=>'string', 'key'=>'string'], +'sodium_crypto_shorthash_keygen' => ['non-empty-string'], +'sodium_crypto_sign' => ['string', 'message'=>'string', 'secret_key'=>'string'], +'sodium_crypto_sign_detached' => ['string', 'message'=>'string', 'secret_key'=>'string'], +'sodium_crypto_sign_ed25519_pk_to_curve25519' => ['string', 'public_key'=>'string'], +'sodium_crypto_sign_ed25519_sk_to_curve25519' => ['string', 'secret_key'=>'string'], +'sodium_crypto_sign_keypair' => ['string'], +'sodium_crypto_sign_keypair_from_secretkey_and_publickey' => ['string', 'secret_key'=>'string', 'public_key'=>'string'], +'sodium_crypto_sign_open' => ['string|false', 'signed_message'=>'string', 'public_key'=>'string'], +'sodium_crypto_sign_publickey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_sign_publickey_from_secretkey' => ['string', 'secret_key'=>'string'], +'sodium_crypto_sign_secretkey' => ['string', 'key_pair'=>'string'], +'sodium_crypto_sign_seed_keypair' => ['string', 'seed'=>'string'], +'sodium_crypto_sign_verify_detached' => ['bool', 'signature'=>'string', 'message'=>'string', 'public_key'=>'string'], +'sodium_crypto_stream' => ['string', 'length'=>'int', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_stream_keygen' => ['non-empty-string'], +'sodium_crypto_stream_xor' => ['string', 'message'=>'string', 'nonce'=>'string', 'key'=>'string'], +'sodium_crypto_stream_xchacha20' => ['non-empty-string', 'length'=>'positive-int', 'nonce'=>'non-empty-string', 'key'=>'non-empty-string'], +'sodium_crypto_stream_xchacha20_keygen' => ['non-empty-string'], +'sodium_crypto_stream_xchacha20_xor' => ['string', 'message'=>'string', 'nonce'=>'non-empty-string', 'key'=>'non-empty-string'], +'sodium_crypto_stream_xchacha20_xor_ic' => ['string', 'message'=>'string', 'nonce'=>'non-empty-string', 'counter'=>'int', 'key'=>'non-empty-string'], +'sodium_hex2bin' => ['string', 'string'=>'string', 'ignore='=>'string'], +'sodium_increment' => ['void', '&rw_string'=>'string'], +'sodium_memcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], +'sodium_memzero' => ['void', '&w_string'=>'string'], +'sodium_pad' => ['string', 'string'=>'string', 'block_size'=>'int'], +'sodium_unpad' => ['string', 'string'=>'string', 'block_size'=>'int'], +'solid_fetch_prev' => ['bool', 'result_id'=>''], +'solr_get_version' => ['string|false'], +'SolrClient::__construct' => ['void', 'clientOptions'=>'array'], +'SolrClient::__destruct' => ['void'], +'SolrClient::addDocument' => ['SolrUpdateResponse', 'doc'=>'SolrInputDocument', 'allowdups='=>'bool', 'commitwithin='=>'int'], +'SolrClient::addDocuments' => ['SolrUpdateResponse', 'docs'=>'array', 'allowdups='=>'bool', 'commitwithin='=>'int'], +'SolrClient::commit' => ['SolrUpdateResponse', 'maxsegments='=>'int', 'waitflush='=>'bool', 'waitsearcher='=>'bool'], +'SolrClient::deleteById' => ['SolrUpdateResponse', 'id'=>'string'], +'SolrClient::deleteByIds' => ['SolrUpdateResponse', 'ids'=>'array'], +'SolrClient::deleteByQueries' => ['SolrUpdateResponse', 'queries'=>'array'], +'SolrClient::deleteByQuery' => ['SolrUpdateResponse', 'query'=>'string'], +'SolrClient::getById' => ['SolrQueryResponse', 'id'=>'string'], +'SolrClient::getByIds' => ['SolrQueryResponse', 'ids'=>'array'], +'SolrClient::getDebug' => ['string'], +'SolrClient::getOptions' => ['array'], +'SolrClient::optimize' => ['SolrUpdateResponse', 'maxsegments='=>'int', 'waitflush='=>'bool', 'waitsearcher='=>'bool'], +'SolrClient::ping' => ['SolrPingResponse'], +'SolrClient::query' => ['SolrQueryResponse', 'query'=>'SolrParams'], +'SolrClient::request' => ['SolrUpdateResponse', 'raw_request'=>'string'], +'SolrClient::rollback' => ['SolrUpdateResponse'], +'SolrClient::setResponseWriter' => ['void', 'responsewriter'=>'string'], +'SolrClient::setServlet' => ['bool', 'type'=>'int', 'value'=>'string'], +'SolrClient::system' => ['SolrGenericResponse'], +'SolrClient::threads' => ['SolrGenericResponse'], +'SolrClientException::__clone' => ['void'], +'SolrClientException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'SolrClientException::__toString' => ['string'], +'SolrClientException::__wakeup' => ['void'], +'SolrClientException::getCode' => ['int'], +'SolrClientException::getFile' => ['string'], +'SolrClientException::getInternalInfo' => ['array'], +'SolrClientException::getLine' => ['int'], +'SolrClientException::getMessage' => ['string'], +'SolrClientException::getPrevious' => ['?Exception|?Throwable'], +'SolrClientException::getTrace' => ['list\',args?:array}>'], +'SolrClientException::getTraceAsString' => ['string'], +'SolrCollapseFunction::__construct' => ['void', 'field'=>'string'], +'SolrCollapseFunction::__toString' => ['string'], +'SolrCollapseFunction::getField' => ['string'], +'SolrCollapseFunction::getHint' => ['string'], +'SolrCollapseFunction::getMax' => ['string'], +'SolrCollapseFunction::getMin' => ['string'], +'SolrCollapseFunction::getNullPolicy' => ['string'], +'SolrCollapseFunction::getSize' => ['int'], +'SolrCollapseFunction::setField' => ['SolrCollapseFunction', 'fieldName'=>'string'], +'SolrCollapseFunction::setHint' => ['SolrCollapseFunction', 'hint'=>'string'], +'SolrCollapseFunction::setMax' => ['SolrCollapseFunction', 'max'=>'string'], +'SolrCollapseFunction::setMin' => ['SolrCollapseFunction', 'min'=>'string'], +'SolrCollapseFunction::setNullPolicy' => ['SolrCollapseFunction', 'nullPolicy'=>'string'], +'SolrCollapseFunction::setSize' => ['SolrCollapseFunction', 'size'=>'int'], +'SolrDisMaxQuery::__construct' => ['void', 'q='=>'string'], +'SolrDisMaxQuery::__destruct' => ['void'], +'SolrDisMaxQuery::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrDisMaxQuery::addBigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], +'SolrDisMaxQuery::addBoostQuery' => ['SolrDisMaxQuery', 'field'=>'string', 'value'=>'string', 'boost='=>'string'], +'SolrDisMaxQuery::addExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrDisMaxQuery::addExpandSortField' => ['SolrQuery', 'field'=>'string', 'order'=>'string'], +'SolrDisMaxQuery::addFacetDateField' => ['SolrQuery', 'dateField'=>'string'], +'SolrDisMaxQuery::addFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::addFacetField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addFacetQuery' => ['SolrQuery', 'facetQuery'=>'string'], +'SolrDisMaxQuery::addField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrDisMaxQuery::addGroupField' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::addGroupFunction' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::addGroupQuery' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::addGroupSortField' => ['SolrQuery', 'field'=>'string', 'order'=>'int'], +'SolrDisMaxQuery::addHighlightField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addMltField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addMltQueryField' => ['SolrQuery', 'field'=>'string', 'boost'=>'float'], +'SolrDisMaxQuery::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrDisMaxQuery::addPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], +'SolrDisMaxQuery::addQueryField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost='=>'string'], +'SolrDisMaxQuery::addSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], +'SolrDisMaxQuery::addStatsFacet' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addStatsField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::addTrigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], +'SolrDisMaxQuery::addUserField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::collapse' => ['SolrQuery', 'collapseFunction'=>'SolrCollapseFunction'], +'SolrDisMaxQuery::get' => ['mixed', 'param_name'=>'string'], +'SolrDisMaxQuery::getExpand' => ['bool'], +'SolrDisMaxQuery::getExpandFilterQueries' => ['array'], +'SolrDisMaxQuery::getExpandQuery' => ['array'], +'SolrDisMaxQuery::getExpandRows' => ['int'], +'SolrDisMaxQuery::getExpandSortFields' => ['array'], +'SolrDisMaxQuery::getFacet' => ['bool'], +'SolrDisMaxQuery::getFacetDateEnd' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetDateFields' => ['array'], +'SolrDisMaxQuery::getFacetDateGap' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetDateHardEnd' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetDateOther' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetDateStart' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetFields' => ['array'], +'SolrDisMaxQuery::getFacetLimit' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetMethod' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetMinCount' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetMissing' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetOffset' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetPrefix' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getFacetQueries' => ['string'], +'SolrDisMaxQuery::getFacetSort' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getFields' => ['string'], +'SolrDisMaxQuery::getFilterQueries' => ['string'], +'SolrDisMaxQuery::getGroup' => ['bool'], +'SolrDisMaxQuery::getGroupCachePercent' => ['int'], +'SolrDisMaxQuery::getGroupFacet' => ['bool'], +'SolrDisMaxQuery::getGroupFields' => ['array'], +'SolrDisMaxQuery::getGroupFormat' => ['string'], +'SolrDisMaxQuery::getGroupFunctions' => ['array'], +'SolrDisMaxQuery::getGroupLimit' => ['int'], +'SolrDisMaxQuery::getGroupMain' => ['bool'], +'SolrDisMaxQuery::getGroupNGroups' => ['bool'], +'SolrDisMaxQuery::getGroupOffset' => ['bool'], +'SolrDisMaxQuery::getGroupQueries' => ['array'], +'SolrDisMaxQuery::getGroupSortFields' => ['array'], +'SolrDisMaxQuery::getGroupTruncate' => ['bool'], +'SolrDisMaxQuery::getHighlight' => ['bool'], +'SolrDisMaxQuery::getHighlightAlternateField' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightFields' => ['array'], +'SolrDisMaxQuery::getHighlightFormatter' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightFragmenter' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightFragsize' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightHighlightMultiTerm' => ['bool'], +'SolrDisMaxQuery::getHighlightMaxAlternateFieldLength' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightMaxAnalyzedChars' => ['int'], +'SolrDisMaxQuery::getHighlightMergeContiguous' => ['bool', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightRegexMaxAnalyzedChars' => ['int'], +'SolrDisMaxQuery::getHighlightRegexPattern' => ['string'], +'SolrDisMaxQuery::getHighlightRegexSlop' => ['float'], +'SolrDisMaxQuery::getHighlightRequireFieldMatch' => ['bool'], +'SolrDisMaxQuery::getHighlightSimplePost' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightSimplePre' => ['string', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightSnippets' => ['int', 'field_override'=>'string'], +'SolrDisMaxQuery::getHighlightUsePhraseHighlighter' => ['bool'], +'SolrDisMaxQuery::getMlt' => ['bool'], +'SolrDisMaxQuery::getMltBoost' => ['bool'], +'SolrDisMaxQuery::getMltCount' => ['int'], +'SolrDisMaxQuery::getMltFields' => ['array'], +'SolrDisMaxQuery::getMltMaxNumQueryTerms' => ['int'], +'SolrDisMaxQuery::getMltMaxNumTokens' => ['int'], +'SolrDisMaxQuery::getMltMaxWordLength' => ['int'], +'SolrDisMaxQuery::getMltMinDocFrequency' => ['int'], +'SolrDisMaxQuery::getMltMinTermFrequency' => ['int'], +'SolrDisMaxQuery::getMltMinWordLength' => ['int'], +'SolrDisMaxQuery::getMltQueryFields' => ['array'], +'SolrDisMaxQuery::getParam' => ['mixed', 'param_name'=>'string'], +'SolrDisMaxQuery::getParams' => ['array'], +'SolrDisMaxQuery::getPreparedParams' => ['array'], +'SolrDisMaxQuery::getQuery' => ['string'], +'SolrDisMaxQuery::getRows' => ['int'], +'SolrDisMaxQuery::getSortFields' => ['array'], +'SolrDisMaxQuery::getStart' => ['int'], +'SolrDisMaxQuery::getStats' => ['bool'], +'SolrDisMaxQuery::getStatsFacets' => ['array'], +'SolrDisMaxQuery::getStatsFields' => ['array'], +'SolrDisMaxQuery::getTerms' => ['bool'], +'SolrDisMaxQuery::getTermsField' => ['string'], +'SolrDisMaxQuery::getTermsIncludeLowerBound' => ['bool'], +'SolrDisMaxQuery::getTermsIncludeUpperBound' => ['bool'], +'SolrDisMaxQuery::getTermsLimit' => ['int'], +'SolrDisMaxQuery::getTermsLowerBound' => ['string'], +'SolrDisMaxQuery::getTermsMaxCount' => ['int'], +'SolrDisMaxQuery::getTermsMinCount' => ['int'], +'SolrDisMaxQuery::getTermsPrefix' => ['string'], +'SolrDisMaxQuery::getTermsReturnRaw' => ['bool'], +'SolrDisMaxQuery::getTermsSort' => ['int'], +'SolrDisMaxQuery::getTermsUpperBound' => ['string'], +'SolrDisMaxQuery::getTimeAllowed' => ['int'], +'SolrDisMaxQuery::removeBigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeBoostQuery' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrDisMaxQuery::removeExpandSortField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeFacetDateField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::removeFacetField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeFacetQuery' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::removeField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrDisMaxQuery::removeHighlightField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeMltField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeMltQueryField' => ['SolrQuery', 'queryField'=>'string'], +'SolrDisMaxQuery::removePhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeQueryField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeSortField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeStatsFacet' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::removeStatsField' => ['SolrQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeTrigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::removeUserField' => ['SolrDisMaxQuery', 'field'=>'string'], +'SolrDisMaxQuery::serialize' => ['string'], +'SolrDisMaxQuery::set' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrDisMaxQuery::setBigramPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], +'SolrDisMaxQuery::setBigramPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], +'SolrDisMaxQuery::setBoostFunction' => ['SolrDisMaxQuery', 'function'=>'string'], +'SolrDisMaxQuery::setBoostQuery' => ['SolrDisMaxQuery', 'q'=>'string'], +'SolrDisMaxQuery::setEchoHandler' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setEchoParams' => ['SolrQuery', 'type'=>'string'], +'SolrDisMaxQuery::setExpand' => ['SolrQuery', 'value'=>'bool'], +'SolrDisMaxQuery::setExpandQuery' => ['SolrQuery', 'q'=>'string'], +'SolrDisMaxQuery::setExpandRows' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setExplainOther' => ['SolrQuery', 'query'=>'string'], +'SolrDisMaxQuery::setFacet' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setFacetDateEnd' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetDateGap' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetDateHardEnd' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetDateStart' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetEnumCacheMinDefaultFrequency' => ['SolrQuery', 'frequency'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetLimit' => ['SolrQuery', 'limit'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetMethod' => ['SolrQuery', 'method'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetMinCount' => ['SolrQuery', 'mincount'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetMissing' => ['SolrQuery', 'flag'=>'bool', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetOffset' => ['SolrQuery', 'offset'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetPrefix' => ['SolrQuery', 'prefix'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setFacetSort' => ['SolrQuery', 'facetSort'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setGroup' => ['SolrQuery', 'value'=>'bool'], +'SolrDisMaxQuery::setGroupCachePercent' => ['SolrQuery', 'percent'=>'int'], +'SolrDisMaxQuery::setGroupFacet' => ['SolrQuery', 'value'=>'bool'], +'SolrDisMaxQuery::setGroupFormat' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::setGroupLimit' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setGroupMain' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::setGroupNGroups' => ['SolrQuery', 'value'=>'bool'], +'SolrDisMaxQuery::setGroupOffset' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setGroupTruncate' => ['SolrQuery', 'value'=>'bool'], +'SolrDisMaxQuery::setHighlight' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setHighlightAlternateField' => ['SolrQuery', 'field'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightFormatter' => ['SolrQuery', 'formatter'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightFragmenter' => ['SolrQuery', 'fragmenter'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightFragsize' => ['SolrQuery', 'size'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightHighlightMultiTerm' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setHighlightMaxAlternateFieldLength' => ['SolrQuery', 'fieldLength'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightMaxAnalyzedChars' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setHighlightMergeContiguous' => ['SolrQuery', 'flag'=>'bool', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightRegexMaxAnalyzedChars' => ['SolrQuery', 'maxAnalyzedChars'=>'int'], +'SolrDisMaxQuery::setHighlightRegexPattern' => ['SolrQuery', 'value'=>'string'], +'SolrDisMaxQuery::setHighlightRegexSlop' => ['SolrQuery', 'factor'=>'float'], +'SolrDisMaxQuery::setHighlightRequireFieldMatch' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setHighlightSimplePost' => ['SolrQuery', 'simplePost'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightSimplePre' => ['SolrQuery', 'simplePre'=>'string', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightSnippets' => ['SolrQuery', 'value'=>'int', 'field_override'=>'string'], +'SolrDisMaxQuery::setHighlightUsePhraseHighlighter' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setMinimumMatch' => ['SolrDisMaxQuery', 'value'=>'string'], +'SolrDisMaxQuery::setMlt' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setMltBoost' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setMltCount' => ['SolrQuery', 'count'=>'int'], +'SolrDisMaxQuery::setMltMaxNumQueryTerms' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setMltMaxNumTokens' => ['SolrQuery', 'value'=>'int'], +'SolrDisMaxQuery::setMltMaxWordLength' => ['SolrQuery', 'maxWordLength'=>'int'], +'SolrDisMaxQuery::setMltMinDocFrequency' => ['SolrQuery', 'minDocFrequency'=>'int'], +'SolrDisMaxQuery::setMltMinTermFrequency' => ['SolrQuery', 'minTermFrequency'=>'int'], +'SolrDisMaxQuery::setMltMinWordLength' => ['SolrQuery', 'minWordLength'=>'int'], +'SolrDisMaxQuery::setOmitHeader' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrDisMaxQuery::setPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], +'SolrDisMaxQuery::setPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], +'SolrDisMaxQuery::setQuery' => ['SolrQuery', 'query'=>'string'], +'SolrDisMaxQuery::setQueryAlt' => ['SolrDisMaxQuery', 'q'=>'string'], +'SolrDisMaxQuery::setQueryPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], +'SolrDisMaxQuery::setRows' => ['SolrQuery', 'rows'=>'int'], +'SolrDisMaxQuery::setShowDebugInfo' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setStart' => ['SolrQuery', 'start'=>'int'], +'SolrDisMaxQuery::setStats' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setTerms' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setTermsField' => ['SolrQuery', 'fieldname'=>'string'], +'SolrDisMaxQuery::setTermsIncludeLowerBound' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setTermsIncludeUpperBound' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setTermsLimit' => ['SolrQuery', 'limit'=>'int'], +'SolrDisMaxQuery::setTermsLowerBound' => ['SolrQuery', 'lowerBound'=>'string'], +'SolrDisMaxQuery::setTermsMaxCount' => ['SolrQuery', 'frequency'=>'int'], +'SolrDisMaxQuery::setTermsMinCount' => ['SolrQuery', 'frequency'=>'int'], +'SolrDisMaxQuery::setTermsPrefix' => ['SolrQuery', 'prefix'=>'string'], +'SolrDisMaxQuery::setTermsReturnRaw' => ['SolrQuery', 'flag'=>'bool'], +'SolrDisMaxQuery::setTermsSort' => ['SolrQuery', 'sortType'=>'int'], +'SolrDisMaxQuery::setTermsUpperBound' => ['SolrQuery', 'upperBound'=>'string'], +'SolrDisMaxQuery::setTieBreaker' => ['SolrDisMaxQuery', 'tieBreaker'=>'string'], +'SolrDisMaxQuery::setTimeAllowed' => ['SolrQuery', 'timeAllowed'=>'int'], +'SolrDisMaxQuery::setTrigramPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], +'SolrDisMaxQuery::setTrigramPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], +'SolrDisMaxQuery::setUserFields' => ['SolrDisMaxQuery', 'fields'=>'string'], +'SolrDisMaxQuery::toString' => ['string', 'url_encode='=>'bool'], +'SolrDisMaxQuery::unserialize' => ['void', 'serialized'=>'string'], +'SolrDisMaxQuery::useDisMaxQueryParser' => ['SolrDisMaxQuery'], +'SolrDisMaxQuery::useEDisMaxQueryParser' => ['SolrDisMaxQuery'], +'SolrDocument::__clone' => ['void'], +'SolrDocument::__construct' => ['void'], +'SolrDocument::__destruct' => ['void'], +'SolrDocument::__get' => ['SolrDocumentField', 'fieldname'=>'string'], +'SolrDocument::__isset' => ['bool', 'fieldname'=>'string'], +'SolrDocument::__set' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string'], +'SolrDocument::__unset' => ['bool', 'fieldname'=>'string'], +'SolrDocument::addField' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string'], +'SolrDocument::clear' => ['bool'], +'SolrDocument::current' => ['SolrDocumentField'], +'SolrDocument::deleteField' => ['bool', 'fieldname'=>'string'], +'SolrDocument::fieldExists' => ['bool', 'fieldname'=>'string'], +'SolrDocument::getChildDocuments' => ['SolrInputDocument[]'], +'SolrDocument::getChildDocumentsCount' => ['int'], +'SolrDocument::getField' => ['SolrDocumentField|false', 'fieldname'=>'string'], +'SolrDocument::getFieldCount' => ['int|false'], +'SolrDocument::getFieldNames' => ['array|false'], +'SolrDocument::getInputDocument' => ['SolrInputDocument'], +'SolrDocument::hasChildDocuments' => ['bool'], +'SolrDocument::key' => ['string'], +'SolrDocument::merge' => ['bool', 'sourcedoc'=>'solrdocument', 'overwrite='=>'bool'], +'SolrDocument::next' => ['void'], +'SolrDocument::offsetExists' => ['bool', 'fieldname'=>'string'], +'SolrDocument::offsetGet' => ['SolrDocumentField', 'fieldname'=>'string'], +'SolrDocument::offsetSet' => ['void', 'fieldname'=>'string', 'fieldvalue'=>'string'], +'SolrDocument::offsetUnset' => ['void', 'fieldname'=>'string'], +'SolrDocument::reset' => ['bool'], +'SolrDocument::rewind' => ['void'], +'SolrDocument::serialize' => ['string'], +'SolrDocument::sort' => ['bool', 'sortorderby'=>'int', 'sortdirection='=>'int'], +'SolrDocument::toArray' => ['array'], +'SolrDocument::unserialize' => ['void', 'serialized'=>'string'], +'SolrDocument::valid' => ['bool'], +'SolrDocumentField::__construct' => ['void'], +'SolrDocumentField::__destruct' => ['void'], +'SolrException::__clone' => ['void'], +'SolrException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'SolrException::__toString' => ['string'], +'SolrException::__wakeup' => ['void'], +'SolrException::getCode' => ['int'], +'SolrException::getFile' => ['string'], +'SolrException::getInternalInfo' => ['array'], +'SolrException::getLine' => ['int'], +'SolrException::getMessage' => ['string'], +'SolrException::getPrevious' => ['Exception|Throwable'], +'SolrException::getTrace' => ['list\',args?:array}>'], +'SolrException::getTraceAsString' => ['string'], +'SolrGenericResponse::__construct' => ['void'], +'SolrGenericResponse::__destruct' => ['void'], +'SolrGenericResponse::getDigestedResponse' => ['string'], +'SolrGenericResponse::getHttpStatus' => ['int'], +'SolrGenericResponse::getHttpStatusMessage' => ['string'], +'SolrGenericResponse::getRawRequest' => ['string'], +'SolrGenericResponse::getRawRequestHeaders' => ['string'], +'SolrGenericResponse::getRawResponse' => ['string'], +'SolrGenericResponse::getRawResponseHeaders' => ['string'], +'SolrGenericResponse::getRequestUrl' => ['string'], +'SolrGenericResponse::getResponse' => ['SolrObject'], +'SolrGenericResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], +'SolrGenericResponse::success' => ['bool'], +'SolrIllegalArgumentException::__clone' => ['void'], +'SolrIllegalArgumentException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'SolrIllegalArgumentException::__toString' => ['string'], +'SolrIllegalArgumentException::__wakeup' => ['void'], +'SolrIllegalArgumentException::getCode' => ['int'], +'SolrIllegalArgumentException::getFile' => ['string'], +'SolrIllegalArgumentException::getInternalInfo' => ['array'], +'SolrIllegalArgumentException::getLine' => ['int'], +'SolrIllegalArgumentException::getMessage' => ['string'], +'SolrIllegalArgumentException::getPrevious' => ['Exception|Throwable'], +'SolrIllegalArgumentException::getTrace' => ['list\',args?:array}>'], +'SolrIllegalArgumentException::getTraceAsString' => ['string'], +'SolrIllegalOperationException::__clone' => ['void'], +'SolrIllegalOperationException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'SolrIllegalOperationException::__toString' => ['string'], +'SolrIllegalOperationException::__wakeup' => ['void'], +'SolrIllegalOperationException::getCode' => ['int'], +'SolrIllegalOperationException::getFile' => ['string'], +'SolrIllegalOperationException::getInternalInfo' => ['array'], +'SolrIllegalOperationException::getLine' => ['int'], +'SolrIllegalOperationException::getMessage' => ['string'], +'SolrIllegalOperationException::getPrevious' => ['Exception|Throwable'], +'SolrIllegalOperationException::getTrace' => ['list\',args?:array}>'], +'SolrIllegalOperationException::getTraceAsString' => ['string'], +'SolrInputDocument::__clone' => ['void'], +'SolrInputDocument::__construct' => ['void'], +'SolrInputDocument::__destruct' => ['void'], +'SolrInputDocument::addChildDocument' => ['void', 'child'=>'SolrInputDocument'], +'SolrInputDocument::addChildDocuments' => ['void', 'docs'=>'array'], +'SolrInputDocument::addField' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string', 'fieldboostvalue='=>'float'], +'SolrInputDocument::clear' => ['bool'], +'SolrInputDocument::deleteField' => ['bool', 'fieldname'=>'string'], +'SolrInputDocument::fieldExists' => ['bool', 'fieldname'=>'string'], +'SolrInputDocument::getBoost' => ['float|false'], +'SolrInputDocument::getChildDocuments' => ['SolrInputDocument[]'], +'SolrInputDocument::getChildDocumentsCount' => ['int'], +'SolrInputDocument::getField' => ['SolrDocumentField|false', 'fieldname'=>'string'], +'SolrInputDocument::getFieldBoost' => ['float|false', 'fieldname'=>'string'], +'SolrInputDocument::getFieldCount' => ['int|false'], +'SolrInputDocument::getFieldNames' => ['array|false'], +'SolrInputDocument::hasChildDocuments' => ['bool'], +'SolrInputDocument::merge' => ['bool', 'sourcedoc'=>'SolrInputDocument', 'overwrite='=>'bool'], +'SolrInputDocument::reset' => ['bool'], +'SolrInputDocument::setBoost' => ['bool', 'documentboostvalue'=>'float'], +'SolrInputDocument::setFieldBoost' => ['bool', 'fieldname'=>'string', 'fieldboostvalue'=>'float'], +'SolrInputDocument::sort' => ['bool', 'sortorderby'=>'int', 'sortdirection='=>'int'], +'SolrInputDocument::toArray' => ['array|false'], +'SolrModifiableParams::__construct' => ['void'], +'SolrModifiableParams::__destruct' => ['void'], +'SolrModifiableParams::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrModifiableParams::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrModifiableParams::get' => ['mixed', 'param_name'=>'string'], +'SolrModifiableParams::getParam' => ['mixed', 'param_name'=>'string'], +'SolrModifiableParams::getParams' => ['array'], +'SolrModifiableParams::getPreparedParams' => ['array'], +'SolrModifiableParams::serialize' => ['string'], +'SolrModifiableParams::set' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrModifiableParams::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrModifiableParams::toString' => ['string', 'url_encode='=>'bool'], +'SolrModifiableParams::unserialize' => ['void', 'serialized'=>'string'], +'SolrObject::__construct' => ['void'], +'SolrObject::__destruct' => ['void'], +'SolrObject::getPropertyNames' => ['array'], +'SolrObject::offsetExists' => ['bool', 'property_name'=>'string'], +'SolrObject::offsetGet' => ['SolrDocumentField', 'property_name'=>'string'], +'SolrObject::offsetSet' => ['void', 'property_name'=>'string', 'property_value'=>'string'], +'SolrObject::offsetUnset' => ['void', 'property_name'=>'string'], +'SolrParams::__construct' => ['void'], +'SolrParams::add' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], +'SolrParams::addParam' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], +'SolrParams::get' => ['mixed', 'param_name'=>'string'], +'SolrParams::getParam' => ['mixed', 'param_name='=>'string'], +'SolrParams::getParams' => ['array'], +'SolrParams::getPreparedParams' => ['array'], +'SolrParams::serialize' => ['string'], +'SolrParams::set' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], +'SolrParams::setParam' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], +'SolrParams::toString' => ['string|false', 'url_encode='=>'bool'], +'SolrParams::unserialize' => ['void', 'serialized'=>'string'], +'SolrPingResponse::__construct' => ['void'], +'SolrPingResponse::__destruct' => ['void'], +'SolrPingResponse::getDigestedResponse' => ['string'], +'SolrPingResponse::getHttpStatus' => ['int'], +'SolrPingResponse::getHttpStatusMessage' => ['string'], +'SolrPingResponse::getRawRequest' => ['string'], +'SolrPingResponse::getRawRequestHeaders' => ['string'], +'SolrPingResponse::getRawResponse' => ['string'], +'SolrPingResponse::getRawResponseHeaders' => ['string'], +'SolrPingResponse::getRequestUrl' => ['string'], +'SolrPingResponse::getResponse' => ['string'], +'SolrPingResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], +'SolrPingResponse::success' => ['bool'], +'SolrQuery::__construct' => ['void', 'q='=>'string'], +'SolrQuery::__destruct' => ['void'], +'SolrQuery::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrQuery::addExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrQuery::addExpandSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'string'], +'SolrQuery::addFacetDateField' => ['SolrQuery', 'datefield'=>'string'], +'SolrQuery::addFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], +'SolrQuery::addFacetField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::addFacetQuery' => ['SolrQuery', 'facetquery'=>'string'], +'SolrQuery::addField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::addFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrQuery::addGroupField' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::addGroupFunction' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::addGroupQuery' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::addGroupSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], +'SolrQuery::addHighlightField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::addMltField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::addMltQueryField' => ['SolrQuery', 'field'=>'string', 'boost'=>'float'], +'SolrQuery::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], +'SolrQuery::addSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], +'SolrQuery::addStatsFacet' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::addStatsField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::collapse' => ['SolrQuery', 'collapseFunction'=>'SolrCollapseFunction'], +'SolrQuery::get' => ['mixed', 'param_name'=>'string'], +'SolrQuery::getExpand' => ['bool'], +'SolrQuery::getExpandFilterQueries' => ['array'], +'SolrQuery::getExpandQuery' => ['array'], +'SolrQuery::getExpandRows' => ['int'], +'SolrQuery::getExpandSortFields' => ['array'], +'SolrQuery::getFacet' => ['?bool'], +'SolrQuery::getFacetDateEnd' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetDateFields' => ['array'], +'SolrQuery::getFacetDateGap' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetDateHardEnd' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetDateOther' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetDateStart' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetFields' => ['array'], +'SolrQuery::getFacetLimit' => ['?int', 'field_override='=>'string'], +'SolrQuery::getFacetMethod' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetMinCount' => ['?int', 'field_override='=>'string'], +'SolrQuery::getFacetMissing' => ['?bool', 'field_override='=>'string'], +'SolrQuery::getFacetOffset' => ['?int', 'field_override='=>'string'], +'SolrQuery::getFacetPrefix' => ['?string', 'field_override='=>'string'], +'SolrQuery::getFacetQueries' => ['?array'], +'SolrQuery::getFacetSort' => ['int', 'field_override='=>'string'], +'SolrQuery::getFields' => ['?array'], +'SolrQuery::getFilterQueries' => ['?array'], +'SolrQuery::getGroup' => ['bool'], +'SolrQuery::getGroupCachePercent' => ['int'], +'SolrQuery::getGroupFacet' => ['bool'], +'SolrQuery::getGroupFields' => ['array'], +'SolrQuery::getGroupFormat' => ['string'], +'SolrQuery::getGroupFunctions' => ['array'], +'SolrQuery::getGroupLimit' => ['int'], +'SolrQuery::getGroupMain' => ['bool'], +'SolrQuery::getGroupNGroups' => ['bool'], +'SolrQuery::getGroupOffset' => ['int'], +'SolrQuery::getGroupQueries' => ['array'], +'SolrQuery::getGroupSortFields' => ['array'], +'SolrQuery::getGroupTruncate' => ['bool'], +'SolrQuery::getHighlight' => ['bool'], +'SolrQuery::getHighlightAlternateField' => ['?string', 'field_override='=>'string'], +'SolrQuery::getHighlightFields' => ['?array'], +'SolrQuery::getHighlightFormatter' => ['?string', 'field_override='=>'string'], +'SolrQuery::getHighlightFragmenter' => ['?string', 'field_override='=>'string'], +'SolrQuery::getHighlightFragsize' => ['?int', 'field_override='=>'string'], +'SolrQuery::getHighlightHighlightMultiTerm' => ['?bool'], +'SolrQuery::getHighlightMaxAlternateFieldLength' => ['?int', 'field_override='=>'string'], +'SolrQuery::getHighlightMaxAnalyzedChars' => ['?int'], +'SolrQuery::getHighlightMergeContiguous' => ['?bool', 'field_override='=>'string'], +'SolrQuery::getHighlightRegexMaxAnalyzedChars' => ['?int'], +'SolrQuery::getHighlightRegexPattern' => ['?string'], +'SolrQuery::getHighlightRegexSlop' => ['?float'], +'SolrQuery::getHighlightRequireFieldMatch' => ['?bool'], +'SolrQuery::getHighlightSimplePost' => ['?string', 'field_override='=>'string'], +'SolrQuery::getHighlightSimplePre' => ['?string', 'field_override='=>'string'], +'SolrQuery::getHighlightSnippets' => ['?int', 'field_override='=>'string'], +'SolrQuery::getHighlightUsePhraseHighlighter' => ['?bool'], +'SolrQuery::getMlt' => ['?bool'], +'SolrQuery::getMltBoost' => ['?bool'], +'SolrQuery::getMltCount' => ['?int'], +'SolrQuery::getMltFields' => ['?array'], +'SolrQuery::getMltMaxNumQueryTerms' => ['?int'], +'SolrQuery::getMltMaxNumTokens' => ['?int'], +'SolrQuery::getMltMaxWordLength' => ['?int'], +'SolrQuery::getMltMinDocFrequency' => ['?int'], +'SolrQuery::getMltMinTermFrequency' => ['?int'], +'SolrQuery::getMltMinWordLength' => ['?int'], +'SolrQuery::getMltQueryFields' => ['?array'], +'SolrQuery::getParam' => ['?mixed', 'param_name'=>'string'], +'SolrQuery::getParams' => ['?array'], +'SolrQuery::getPreparedParams' => ['?array'], +'SolrQuery::getQuery' => ['?string'], +'SolrQuery::getRows' => ['?int'], +'SolrQuery::getSortFields' => ['?array'], +'SolrQuery::getStart' => ['?int'], +'SolrQuery::getStats' => ['?bool'], +'SolrQuery::getStatsFacets' => ['?array'], +'SolrQuery::getStatsFields' => ['?array'], +'SolrQuery::getTerms' => ['?bool'], +'SolrQuery::getTermsField' => ['?string'], +'SolrQuery::getTermsIncludeLowerBound' => ['?bool'], +'SolrQuery::getTermsIncludeUpperBound' => ['?bool'], +'SolrQuery::getTermsLimit' => ['?int'], +'SolrQuery::getTermsLowerBound' => ['?string'], +'SolrQuery::getTermsMaxCount' => ['?int'], +'SolrQuery::getTermsMinCount' => ['?int'], +'SolrQuery::getTermsPrefix' => ['?string'], +'SolrQuery::getTermsReturnRaw' => ['?bool'], +'SolrQuery::getTermsSort' => ['?int'], +'SolrQuery::getTermsUpperBound' => ['?string'], +'SolrQuery::getTimeAllowed' => ['?int'], +'SolrQuery::removeExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrQuery::removeExpandSortField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeFacetDateField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], +'SolrQuery::removeFacetField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeFacetQuery' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::removeField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeFilterQuery' => ['SolrQuery', 'fq'=>'string'], +'SolrQuery::removeHighlightField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeMltField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeMltQueryField' => ['SolrQuery', 'queryfield'=>'string'], +'SolrQuery::removeSortField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::removeStatsFacet' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::removeStatsField' => ['SolrQuery', 'field'=>'string'], +'SolrQuery::serialize' => ['string'], +'SolrQuery::set' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrQuery::setEchoHandler' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setEchoParams' => ['SolrQuery', 'type'=>'string'], +'SolrQuery::setExpand' => ['SolrQuery', 'value'=>'bool'], +'SolrQuery::setExpandQuery' => ['SolrQuery', 'q'=>'string'], +'SolrQuery::setExpandRows' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setExplainOther' => ['SolrQuery', 'query'=>'string'], +'SolrQuery::setFacet' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setFacetDateEnd' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], +'SolrQuery::setFacetDateGap' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], +'SolrQuery::setFacetDateHardEnd' => ['SolrQuery', 'value'=>'bool', 'field_override='=>'string'], +'SolrQuery::setFacetDateStart' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], +'SolrQuery::setFacetEnumCacheMinDefaultFrequency' => ['SolrQuery', 'frequency'=>'int', 'field_override='=>'string'], +'SolrQuery::setFacetLimit' => ['SolrQuery', 'limit'=>'int', 'field_override='=>'string'], +'SolrQuery::setFacetMethod' => ['SolrQuery', 'method'=>'string', 'field_override='=>'string'], +'SolrQuery::setFacetMinCount' => ['SolrQuery', 'mincount'=>'int', 'field_override='=>'string'], +'SolrQuery::setFacetMissing' => ['SolrQuery', 'flag'=>'bool', 'field_override='=>'string'], +'SolrQuery::setFacetOffset' => ['SolrQuery', 'offset'=>'int', 'field_override='=>'string'], +'SolrQuery::setFacetPrefix' => ['SolrQuery', 'prefix'=>'string', 'field_override='=>'string'], +'SolrQuery::setFacetSort' => ['SolrQuery', 'facetsort'=>'int', 'field_override='=>'string'], +'SolrQuery::setGroup' => ['SolrQuery', 'value'=>'bool'], +'SolrQuery::setGroupCachePercent' => ['SolrQuery', 'percent'=>'int'], +'SolrQuery::setGroupFacet' => ['SolrQuery', 'value'=>'bool'], +'SolrQuery::setGroupFormat' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::setGroupLimit' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setGroupMain' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::setGroupNGroups' => ['SolrQuery', 'value'=>'bool'], +'SolrQuery::setGroupOffset' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setGroupTruncate' => ['SolrQuery', 'value'=>'bool'], +'SolrQuery::setHighlight' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setHighlightAlternateField' => ['SolrQuery', 'field'=>'string', 'field_override='=>'string'], +'SolrQuery::setHighlightFormatter' => ['SolrQuery', 'formatter'=>'string', 'field_override='=>'string'], +'SolrQuery::setHighlightFragmenter' => ['SolrQuery', 'fragmenter'=>'string', 'field_override='=>'string'], +'SolrQuery::setHighlightFragsize' => ['SolrQuery', 'size'=>'int', 'field_override='=>'string'], +'SolrQuery::setHighlightHighlightMultiTerm' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setHighlightMaxAlternateFieldLength' => ['SolrQuery', 'fieldlength'=>'int', 'field_override='=>'string'], +'SolrQuery::setHighlightMaxAnalyzedChars' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setHighlightMergeContiguous' => ['SolrQuery', 'flag'=>'bool', 'field_override='=>'string'], +'SolrQuery::setHighlightRegexMaxAnalyzedChars' => ['SolrQuery', 'maxanalyzedchars'=>'int'], +'SolrQuery::setHighlightRegexPattern' => ['SolrQuery', 'value'=>'string'], +'SolrQuery::setHighlightRegexSlop' => ['SolrQuery', 'factor'=>'float'], +'SolrQuery::setHighlightRequireFieldMatch' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setHighlightSimplePost' => ['SolrQuery', 'simplepost'=>'string', 'field_override='=>'string'], +'SolrQuery::setHighlightSimplePre' => ['SolrQuery', 'simplepre'=>'string', 'field_override='=>'string'], +'SolrQuery::setHighlightSnippets' => ['SolrQuery', 'value'=>'int', 'field_override='=>'string'], +'SolrQuery::setHighlightUsePhraseHighlighter' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setMlt' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setMltBoost' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setMltCount' => ['SolrQuery', 'count'=>'int'], +'SolrQuery::setMltMaxNumQueryTerms' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setMltMaxNumTokens' => ['SolrQuery', 'value'=>'int'], +'SolrQuery::setMltMaxWordLength' => ['SolrQuery', 'maxwordlength'=>'int'], +'SolrQuery::setMltMinDocFrequency' => ['SolrQuery', 'mindocfrequency'=>'int'], +'SolrQuery::setMltMinTermFrequency' => ['SolrQuery', 'mintermfrequency'=>'int'], +'SolrQuery::setMltMinWordLength' => ['SolrQuery', 'minwordlength'=>'int'], +'SolrQuery::setOmitHeader' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], +'SolrQuery::setQuery' => ['SolrQuery', 'query'=>'string'], +'SolrQuery::setRows' => ['SolrQuery', 'rows'=>'int'], +'SolrQuery::setShowDebugInfo' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setStart' => ['SolrQuery', 'start'=>'int'], +'SolrQuery::setStats' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setTerms' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setTermsField' => ['SolrQuery', 'fieldname'=>'string'], +'SolrQuery::setTermsIncludeLowerBound' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setTermsIncludeUpperBound' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setTermsLimit' => ['SolrQuery', 'limit'=>'int'], +'SolrQuery::setTermsLowerBound' => ['SolrQuery', 'lowerbound'=>'string'], +'SolrQuery::setTermsMaxCount' => ['SolrQuery', 'frequency'=>'int'], +'SolrQuery::setTermsMinCount' => ['SolrQuery', 'frequency'=>'int'], +'SolrQuery::setTermsPrefix' => ['SolrQuery', 'prefix'=>'string'], +'SolrQuery::setTermsReturnRaw' => ['SolrQuery', 'flag'=>'bool'], +'SolrQuery::setTermsSort' => ['SolrQuery', 'sorttype'=>'int'], +'SolrQuery::setTermsUpperBound' => ['SolrQuery', 'upperbound'=>'string'], +'SolrQuery::setTimeAllowed' => ['SolrQuery', 'timeallowed'=>'int'], +'SolrQuery::toString' => ['string', 'url_encode='=>'bool'], +'SolrQuery::unserialize' => ['void', 'serialized'=>'string'], +'SolrQueryResponse::__construct' => ['void'], +'SolrQueryResponse::__destruct' => ['void'], +'SolrQueryResponse::getDigestedResponse' => ['string'], +'SolrQueryResponse::getHttpStatus' => ['int'], +'SolrQueryResponse::getHttpStatusMessage' => ['string'], +'SolrQueryResponse::getRawRequest' => ['string'], +'SolrQueryResponse::getRawRequestHeaders' => ['string'], +'SolrQueryResponse::getRawResponse' => ['string'], +'SolrQueryResponse::getRawResponseHeaders' => ['string'], +'SolrQueryResponse::getRequestUrl' => ['string'], +'SolrQueryResponse::getResponse' => ['SolrObject'], +'SolrQueryResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], +'SolrQueryResponse::success' => ['bool'], +'SolrResponse::getDigestedResponse' => ['string'], +'SolrResponse::getHttpStatus' => ['int'], +'SolrResponse::getHttpStatusMessage' => ['string'], +'SolrResponse::getRawRequest' => ['string'], +'SolrResponse::getRawRequestHeaders' => ['string'], +'SolrResponse::getRawResponse' => ['string'], +'SolrResponse::getRawResponseHeaders' => ['string'], +'SolrResponse::getRequestUrl' => ['string'], +'SolrResponse::getResponse' => ['SolrObject'], +'SolrResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], +'SolrResponse::success' => ['bool'], +'SolrServerException::__clone' => ['void'], +'SolrServerException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'SolrServerException::__toString' => ['string'], +'SolrServerException::__wakeup' => ['void'], +'SolrServerException::getCode' => ['int'], +'SolrServerException::getFile' => ['string'], +'SolrServerException::getInternalInfo' => ['array'], +'SolrServerException::getLine' => ['int'], +'SolrServerException::getMessage' => ['string'], +'SolrServerException::getPrevious' => ['Exception|Throwable'], +'SolrServerException::getTrace' => ['list\',args?:array}>'], +'SolrServerException::getTraceAsString' => ['string'], +'SolrUpdateResponse::__construct' => ['void'], +'SolrUpdateResponse::__destruct' => ['void'], +'SolrUpdateResponse::getDigestedResponse' => ['string'], +'SolrUpdateResponse::getHttpStatus' => ['int'], +'SolrUpdateResponse::getHttpStatusMessage' => ['string'], +'SolrUpdateResponse::getRawRequest' => ['string'], +'SolrUpdateResponse::getRawRequestHeaders' => ['string'], +'SolrUpdateResponse::getRawResponse' => ['string'], +'SolrUpdateResponse::getRawResponseHeaders' => ['string'], +'SolrUpdateResponse::getRequestUrl' => ['string'], +'SolrUpdateResponse::getResponse' => ['SolrObject'], +'SolrUpdateResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], +'SolrUpdateResponse::success' => ['bool'], +'SolrUtils::digestXmlResponse' => ['SolrObject', 'xmlresponse'=>'string', 'parse_mode='=>'int'], +'SolrUtils::escapeQueryChars' => ['string|false', 'string'=>'string'], +'SolrUtils::getSolrVersion' => ['string'], +'SolrUtils::queryPhrase' => ['string', 'string'=>'string'], +'sort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], +'soundex' => ['string', 'string'=>'string'], +'SphinxClient::__construct' => ['void'], +'SphinxClient::addQuery' => ['int', 'query'=>'string', 'index='=>'string', 'comment='=>'string'], +'SphinxClient::buildExcerpts' => ['array', 'docs'=>'array', 'index'=>'string', 'words'=>'string', 'opts='=>'array'], +'SphinxClient::buildKeywords' => ['array', 'query'=>'string', 'index'=>'string', 'hits'=>'bool'], +'SphinxClient::close' => ['bool'], +'SphinxClient::escapeString' => ['string', 'string'=>'string'], +'SphinxClient::getLastError' => ['string'], +'SphinxClient::getLastWarning' => ['string'], +'SphinxClient::open' => ['bool'], +'SphinxClient::query' => ['array', 'query'=>'string', 'index='=>'string', 'comment='=>'string'], +'SphinxClient::resetFilters' => ['void'], +'SphinxClient::resetGroupBy' => ['void'], +'SphinxClient::runQueries' => ['array'], +'SphinxClient::setArrayResult' => ['bool', 'array_result'=>'bool'], +'SphinxClient::setConnectTimeout' => ['bool', 'timeout'=>'float'], +'SphinxClient::setFieldWeights' => ['bool', 'weights'=>'array'], +'SphinxClient::setFilter' => ['bool', 'attribute'=>'string', 'values'=>'array', 'exclude='=>'bool'], +'SphinxClient::setFilterFloatRange' => ['bool', 'attribute'=>'string', 'min'=>'float', 'max'=>'float', 'exclude='=>'bool'], +'SphinxClient::setFilterRange' => ['bool', 'attribute'=>'string', 'min'=>'int', 'max'=>'int', 'exclude='=>'bool'], +'SphinxClient::setGeoAnchor' => ['bool', 'attrlat'=>'string', 'attrlong'=>'string', 'latitude'=>'float', 'longitude'=>'float'], +'SphinxClient::setGroupBy' => ['bool', 'attribute'=>'string', 'func'=>'int', 'groupsort='=>'string'], +'SphinxClient::setGroupDistinct' => ['bool', 'attribute'=>'string'], +'SphinxClient::setIDRange' => ['bool', 'min'=>'int', 'max'=>'int'], +'SphinxClient::setIndexWeights' => ['bool', 'weights'=>'array'], +'SphinxClient::setLimits' => ['bool', 'offset'=>'int', 'limit'=>'int', 'max_matches='=>'int', 'cutoff='=>'int'], +'SphinxClient::setMatchMode' => ['bool', 'mode'=>'int'], +'SphinxClient::setMaxQueryTime' => ['bool', 'qtime'=>'int'], +'SphinxClient::setOverride' => ['bool', 'attribute'=>'string', 'type'=>'int', 'values'=>'array'], +'SphinxClient::setRankingMode' => ['bool', 'ranker'=>'int'], +'SphinxClient::setRetries' => ['bool', 'count'=>'int', 'delay='=>'int'], +'SphinxClient::setSelect' => ['bool', 'clause'=>'string'], +'SphinxClient::setServer' => ['bool', 'server'=>'string', 'port'=>'int'], +'SphinxClient::setSortMode' => ['bool', 'mode'=>'int', 'sortby='=>'string'], +'SphinxClient::status' => ['array'], +'SphinxClient::updateAttributes' => ['int', 'index'=>'string', 'attributes'=>'array', 'values'=>'array', 'mva='=>'bool'], +'spl_autoload' => ['void', 'class'=>'string', 'file_extensions='=>'?string'], +'spl_autoload_call' => ['void', 'class'=>'string'], +'spl_autoload_extensions' => ['string', 'file_extensions='=>'?string'], +'spl_autoload_functions' => ['list'], +'spl_autoload_register' => ['bool', 'callback='=>'callable(string):void|null', 'throw='=>'bool', 'prepend='=>'bool'], +'spl_autoload_unregister' => ['bool', 'callback'=>'callable(string):void'], +'spl_classes' => ['array'], +'spl_object_hash' => ['string', 'object'=>'object'], +'spl_object_id' => ['int', 'object'=>'object'], +'SplDoublyLinkedList::__construct' => ['void'], +'SplDoublyLinkedList::add' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], +'SplDoublyLinkedList::bottom' => ['mixed'], +'SplDoublyLinkedList::count' => ['int'], +'SplDoublyLinkedList::current' => ['mixed'], +'SplDoublyLinkedList::getIteratorMode' => ['int'], +'SplDoublyLinkedList::isEmpty' => ['bool'], +'SplDoublyLinkedList::key' => ['int'], +'SplDoublyLinkedList::next' => ['void'], +'SplDoublyLinkedList::offsetExists' => ['bool', 'index'=>'mixed'], +'SplDoublyLinkedList::offsetGet' => ['mixed', 'index'=>'mixed'], +'SplDoublyLinkedList::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], +'SplDoublyLinkedList::offsetUnset' => ['void', 'index'=>'mixed'], +'SplDoublyLinkedList::pop' => ['mixed'], +'SplDoublyLinkedList::prev' => ['void'], +'SplDoublyLinkedList::push' => ['void', 'value'=>'mixed'], +'SplDoublyLinkedList::rewind' => ['void'], +'SplDoublyLinkedList::serialize' => ['string'], +'SplDoublyLinkedList::setIteratorMode' => ['void', 'flags'=>'int'], +'SplDoublyLinkedList::shift' => ['mixed'], +'SplDoublyLinkedList::top' => ['mixed'], +'SplDoublyLinkedList::unserialize' => ['void', 'serialized'=>'string'], +'SplDoublyLinkedList::unshift' => ['void', 'value'=>'mixed'], +'SplDoublyLinkedList::valid' => ['bool'], +'SplEnum::__construct' => ['void', 'initial_value='=>'mixed', 'strict='=>'bool'], +'SplEnum::getConstList' => ['array', 'include_default='=>'bool'], +'SplFileInfo::__construct' => ['void', 'filename'=>'string'], +'SplFileInfo::__toString' => ['string'], +'SplFileInfo::__wakeup' => ['void'], +'SplFileInfo::getATime' => ['int|false'], +'SplFileInfo::getBasename' => ['string', 'suffix='=>'string'], +'SplFileInfo::getCTime' => ['int|false'], +'SplFileInfo::getExtension' => ['string'], +'SplFileInfo::getFileInfo' => ['SplFileInfo', 'class='=>'?string'], +'SplFileInfo::getFilename' => ['string'], +'SplFileInfo::getGroup' => ['int|false'], +'SplFileInfo::getInode' => ['int|false'], +'SplFileInfo::getLinkTarget' => ['string|false'], +'SplFileInfo::getMTime' => ['int|false'], +'SplFileInfo::getOwner' => ['int|false'], +'SplFileInfo::getPath' => ['string'], +'SplFileInfo::getPathInfo' => ['SplFileInfo|null', 'class='=>'?string'], +'SplFileInfo::getPathname' => ['string'], +'SplFileInfo::getPerms' => ['int|false'], +'SplFileInfo::getRealPath' => ['string|false'], +'SplFileInfo::getSize' => ['int|false'], +'SplFileInfo::getType' => ['string|false'], +'SplFileInfo::isDir' => ['bool'], +'SplFileInfo::isExecutable' => ['bool'], +'SplFileInfo::isFile' => ['bool'], +'SplFileInfo::isLink' => ['bool'], +'SplFileInfo::isReadable' => ['bool'], +'SplFileInfo::isWritable' => ['bool'], +'SplFileInfo::openFile' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], +'SplFileInfo::setFileClass' => ['void', 'class='=>'string'], +'SplFileInfo::setInfoClass' => ['void', 'class='=>'string'], +'SplFileObject::__construct' => ['void', 'filename'=>'string', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], +'SplFileObject::__toString' => ['string'], +'SplFileObject::current' => ['string|array|false'], +'SplFileObject::eof' => ['bool'], +'SplFileObject::fflush' => ['bool'], +'SplFileObject::fgetc' => ['string|false'], +'SplFileObject::fgetcsv' => ['list|array{0: null}|false', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'SplFileObject::fgets' => ['string'], +'SplFileObject::flock' => ['bool', 'operation'=>'int', '&w_wouldBlock='=>'int'], +'SplFileObject::fpassthru' => ['int'], +'SplFileObject::fputcsv' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string', 'eol='=>'string'], +'SplFileObject::fread' => ['string|false', 'length'=>'int'], +'SplFileObject::fscanf' => ['array|int', 'format'=>'string', '&...w_vars='=>'string|int|float'], +'SplFileObject::fseek' => ['int', 'offset'=>'int', 'whence='=>'int'], +'SplFileObject::fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}'], +'SplFileObject::ftell' => ['int|false'], +'SplFileObject::ftruncate' => ['bool', 'size'=>'int'], +'SplFileObject::fwrite' => ['int|false', 'data'=>'string', 'length='=>'int'], +'SplFileObject::getATime' => ['int|false'], +'SplFileObject::getBasename' => ['string', 'suffix='=>'string'], +'SplFileObject::getChildren' => ['null'], +'SplFileObject::getCsvControl' => ['array'], +'SplFileObject::getCTime' => ['int|false'], +'SplFileObject::getCurrentLine' => ['string'], +'SplFileObject::getExtension' => ['string'], +'SplFileObject::getFileInfo' => ['SplFileInfo', 'class='=>'?string'], +'SplFileObject::getFilename' => ['string'], +'SplFileObject::getFlags' => ['int'], +'SplFileObject::getGroup' => ['int|false'], +'SplFileObject::getInode' => ['int|false'], +'SplFileObject::getLinkTarget' => ['string|false'], +'SplFileObject::getMaxLineLen' => ['int'], +'SplFileObject::getMTime' => ['int|false'], +'SplFileObject::getOwner' => ['int|false'], +'SplFileObject::getPath' => ['string'], +'SplFileObject::getPathInfo' => ['SplFileInfo|null', 'class='=>'?string'], +'SplFileObject::getPathname' => ['string'], +'SplFileObject::getPerms' => ['int|false'], +'SplFileObject::getRealPath' => ['false|string'], +'SplFileObject::getSize' => ['int|false'], +'SplFileObject::getType' => ['string|false'], +'SplFileObject::hasChildren' => ['false'], +'SplFileObject::isDir' => ['bool'], +'SplFileObject::isExecutable' => ['bool'], +'SplFileObject::isFile' => ['bool'], +'SplFileObject::isLink' => ['bool'], +'SplFileObject::isReadable' => ['bool'], +'SplFileObject::isWritable' => ['bool'], +'SplFileObject::key' => ['int'], +'SplFileObject::next' => ['void'], +'SplFileObject::openFile' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], +'SplFileObject::rewind' => ['void'], +'SplFileObject::seek' => ['void', 'line'=>'int'], +'SplFileObject::setCsvControl' => ['void', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'SplFileObject::setFileClass' => ['void', 'class='=>'string'], +'SplFileObject::setFlags' => ['void', 'flags'=>'int'], +'SplFileObject::setInfoClass' => ['void', 'class='=>'string'], +'SplFileObject::setMaxLineLen' => ['void', 'maxLength'=>'int'], +'SplFileObject::valid' => ['bool'], +'SplFixedArray::__construct' => ['void', 'size='=>'int'], +'SplFixedArray::__wakeup' => ['void'], +'SplFixedArray::count' => ['int'], +'SplFixedArray::current' => ['mixed'], +'SplFixedArray::fromArray' => ['SplFixedArray', 'data'=>'array', 'save_indexes='=>'bool'], +'SplFixedArray::getSize' => ['int'], +'SplFixedArray::key' => ['int'], +'SplFixedArray::next' => ['void'], +'SplFixedArray::offsetExists' => ['bool', 'index'=>'int'], +'SplFixedArray::offsetGet' => ['mixed', 'index'=>'int'], +'SplFixedArray::offsetSet' => ['void', 'index'=>'int', 'newval'=>'mixed'], +'SplFixedArray::offsetUnset' => ['void', 'index'=>'int'], +'SplFixedArray::rewind' => ['void'], +'SplFixedArray::setSize' => ['bool', 'size'=>'int'], +'SplFixedArray::toArray' => ['array'], +'SplFixedArray::valid' => ['bool'], +'SplHeap::__construct' => ['void'], +'SplHeap::compare' => ['int', 'value1'=>'mixed', 'value2'=>'mixed'], +'SplHeap::count' => ['int'], +'SplHeap::current' => ['mixed'], +'SplHeap::extract' => ['mixed'], +'SplHeap::insert' => ['bool', 'value'=>'mixed'], +'SplHeap::isCorrupted' => ['bool'], +'SplHeap::isEmpty' => ['bool'], +'SplHeap::key' => ['int'], +'SplHeap::next' => ['void'], +'SplHeap::recoverFromCorruption' => ['true'], +'SplHeap::rewind' => ['void'], +'SplHeap::top' => ['mixed'], +'SplHeap::valid' => ['bool'], +'SplMaxHeap::__construct' => ['void'], +'SplMaxHeap::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], +'SplMinHeap::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], +'SplMinHeap::count' => ['int'], +'SplMinHeap::current' => ['mixed'], +'SplMinHeap::extract' => ['mixed'], +'SplMinHeap::insert' => ['true', 'value'=>'mixed'], +'SplMinHeap::isCorrupted' => ['bool'], +'SplMinHeap::isEmpty' => ['bool'], +'SplMinHeap::key' => ['int'], +'SplMinHeap::next' => ['void'], +'SplMinHeap::recoverFromCorruption' => ['true'], +'SplMinHeap::rewind' => ['void'], +'SplMinHeap::top' => ['mixed'], +'SplMinHeap::valid' => ['bool'], +'SplObjectStorage::__construct' => ['void'], +'SplObjectStorage::addAll' => ['void', 'os'=>'splobjectstorage'], +'SplObjectStorage::attach' => ['void', 'object'=>'object', 'inf='=>'mixed'], +'SplObjectStorage::contains' => ['bool', 'object'=>'object'], +'SplObjectStorage::count' => ['int'], +'SplObjectStorage::current' => ['object'], +'SplObjectStorage::detach' => ['void', 'object'=>'object'], +'SplObjectStorage::getHash' => ['string', 'object'=>'object'], +'SplObjectStorage::getInfo' => ['mixed'], +'SplObjectStorage::key' => ['int'], +'SplObjectStorage::next' => ['void'], +'SplObjectStorage::offsetExists' => ['bool', 'object'=>'object'], +'SplObjectStorage::offsetGet' => ['mixed', 'object'=>'object'], +'SplObjectStorage::offsetSet' => ['object', 'object'=>'object', 'data='=>'mixed'], +'SplObjectStorage::offsetUnset' => ['void', 'object'=>'object'], +'SplObjectStorage::removeAll' => ['void', 'os'=>'splobjectstorage'], +'SplObjectStorage::removeAllExcept' => ['void', 'os'=>'splobjectstorage'], +'SplObjectStorage::rewind' => ['void'], +'SplObjectStorage::serialize' => ['string'], +'SplObjectStorage::setInfo' => ['void', 'inf'=>'mixed'], +'SplObjectStorage::unserialize' => ['void', 'serialized'=>'string'], +'SplObjectStorage::valid' => ['bool'], +'SplObserver::update' => ['void', 'subject'=>'SplSubject'], +'SplPriorityQueue::__construct' => ['void'], +'SplPriorityQueue::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], +'SplPriorityQueue::count' => ['int'], +'SplPriorityQueue::current' => ['mixed'], +'SplPriorityQueue::extract' => ['mixed'], +'SplPriorityQueue::getExtractFlags' => ['int'], +'SplPriorityQueue::insert' => ['bool', 'value'=>'mixed', 'priority'=>'mixed'], +'SplPriorityQueue::isCorrupted' => ['bool'], +'SplPriorityQueue::isEmpty' => ['bool'], +'SplPriorityQueue::key' => ['int'], +'SplPriorityQueue::next' => ['void'], +'SplPriorityQueue::recoverFromCorruption' => ['void'], +'SplPriorityQueue::rewind' => ['void'], +'SplPriorityQueue::setExtractFlags' => ['int', 'flags'=>'int'], +'SplPriorityQueue::top' => ['mixed'], +'SplPriorityQueue::valid' => ['bool'], +'SplQueue::dequeue' => ['mixed'], +'SplQueue::enqueue' => ['void', 'value'=>'mixed'], +'SplQueue::getIteratorMode' => ['int'], +'SplQueue::isEmpty' => ['bool'], +'SplQueue::key' => ['int'], +'SplQueue::next' => ['void'], +'SplQueue::offsetExists' => ['bool', 'index'=>'mixed'], +'SplQueue::offsetGet' => ['mixed', 'index'=>'mixed'], +'SplQueue::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], +'SplQueue::offsetUnset' => ['void', 'index'=>'mixed'], +'SplQueue::pop' => ['mixed'], +'SplQueue::prev' => ['void'], +'SplQueue::push' => ['void', 'value'=>'mixed'], +'SplQueue::rewind' => ['void'], +'SplQueue::serialize' => ['string'], +'SplQueue::setIteratorMode' => ['int', 'mode'=>'int'], +'SplQueue::shift' => ['mixed'], +'SplQueue::top' => ['mixed'], +'SplQueue::unserialize' => ['void', 'serialized'=>'string'], +'SplQueue::unshift' => ['void', 'value'=>'mixed'], +'SplQueue::valid' => ['bool'], +'SplStack::__construct' => ['void'], +'SplStack::add' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], +'SplStack::bottom' => ['mixed'], +'SplStack::count' => ['int'], +'SplStack::current' => ['mixed'], +'SplStack::getIteratorMode' => ['int'], +'SplStack::isEmpty' => ['bool'], +'SplStack::key' => ['int'], +'SplStack::next' => ['void'], +'SplStack::offsetExists' => ['bool', 'index'=>'mixed'], +'SplStack::offsetGet' => ['mixed', 'index'=>'mixed'], +'SplStack::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], +'SplStack::offsetUnset' => ['void', 'index'=>'mixed'], +'SplStack::pop' => ['mixed'], +'SplStack::prev' => ['void'], +'SplStack::push' => ['void', 'value'=>'mixed'], +'SplStack::rewind' => ['void'], +'SplStack::serialize' => ['string'], +'SplStack::setIteratorMode' => ['int', 'mode'=>'int'], +'SplStack::shift' => ['mixed'], +'SplStack::top' => ['mixed'], +'SplStack::unserialize' => ['void', 'serialized'=>'string'], +'SplStack::unshift' => ['void', 'value'=>'mixed'], +'SplStack::valid' => ['bool'], +'SplSubject::attach' => ['void', 'observer'=>'SplObserver'], +'SplSubject::detach' => ['void', 'observer'=>'SplObserver'], +'SplSubject::notify' => ['void'], +'SplTempFileObject::__construct' => ['void', 'maxMemory='=>'int'], +'SplTempFileObject::__toString' => ['string'], +'SplTempFileObject::current' => ['string|array|false'], +'SplTempFileObject::eof' => ['bool'], +'SplTempFileObject::fflush' => ['bool'], +'SplTempFileObject::fgetc' => ['string|false'], +'SplTempFileObject::fgetcsv' => ['list|array{0: null}|false', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'SplTempFileObject::fgets' => ['string'], +'SplTempFileObject::flock' => ['bool', 'operation'=>'int', '&w_wouldBlock='=>'int'], +'SplTempFileObject::fpassthru' => ['int'], +'SplTempFileObject::fputcsv' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string'], +'SplTempFileObject::fread' => ['string|false', 'length'=>'int'], +'SplTempFileObject::fscanf' => ['array|int', 'format'=>'string', '&...w_vars='=>'string|int|float'], +'SplTempFileObject::fseek' => ['int', 'offset'=>'int', 'whence='=>'int'], +'SplTempFileObject::fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}'], +'SplTempFileObject::ftell' => ['int|false'], +'SplTempFileObject::ftruncate' => ['bool', 'size'=>'int'], +'SplTempFileObject::fwrite' => ['int|false', 'data'=>'string', 'length='=>'int'], +'SplTempFileObject::getATime' => ['int|false'], +'SplTempFileObject::getBasename' => ['string', 'suffix='=>'string'], +'SplTempFileObject::getChildren' => ['null'], +'SplTempFileObject::getCsvControl' => ['array'], +'SplTempFileObject::getCTime' => ['int|false'], +'SplTempFileObject::getCurrentLine' => ['string'], +'SplTempFileObject::getExtension' => ['string'], +'SplTempFileObject::getFileInfo' => ['SplFileInfo', 'class='=>'?string'], +'SplTempFileObject::getFilename' => ['string'], +'SplTempFileObject::getFlags' => ['int'], +'SplTempFileObject::getGroup' => ['int|false'], +'SplTempFileObject::getInode' => ['int|false'], +'SplTempFileObject::getLinkTarget' => ['string|false'], +'SplTempFileObject::getMaxLineLen' => ['int'], +'SplTempFileObject::getMTime' => ['int|false'], +'SplTempFileObject::getOwner' => ['int|false'], +'SplTempFileObject::getPath' => ['string'], +'SplTempFileObject::getPathInfo' => ['SplFileInfo|null', 'class='=>'?string'], +'SplTempFileObject::getPathname' => ['string'], +'SplTempFileObject::getPerms' => ['int|false'], +'SplTempFileObject::getRealPath' => ['false|string'], +'SplTempFileObject::getSize' => ['int|false'], +'SplTempFileObject::getType' => ['string|false'], +'SplTempFileObject::hasChildren' => ['false'], +'SplTempFileObject::isDir' => ['bool'], +'SplTempFileObject::isExecutable' => ['bool'], +'SplTempFileObject::isFile' => ['bool'], +'SplTempFileObject::isLink' => ['bool'], +'SplTempFileObject::isReadable' => ['bool'], +'SplTempFileObject::isWritable' => ['bool'], +'SplTempFileObject::key' => ['int'], +'SplTempFileObject::next' => ['void'], +'SplTempFileObject::openFile' => ['SplTempFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], +'SplTempFileObject::rewind' => ['void'], +'SplTempFileObject::seek' => ['void', 'line'=>'int'], +'SplTempFileObject::setCsvControl' => ['void', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'SplTempFileObject::setFileClass' => ['void', 'class='=>'string'], +'SplTempFileObject::setFlags' => ['void', 'flags'=>'int'], +'SplTempFileObject::setInfoClass' => ['void', 'class='=>'string'], +'SplTempFileObject::setMaxLineLen' => ['void', 'maxLength'=>'int'], +'SplTempFileObject::valid' => ['bool'], +'SplType::__construct' => ['void', 'initial_value='=>'mixed', 'strict='=>'bool'], +'Spoofchecker::__construct' => ['void'], +'Spoofchecker::areConfusable' => ['bool', 'string1'=>'string', 'string2'=>'string', '&w_errorCode='=>'int'], +'Spoofchecker::isSuspicious' => ['bool', 'string'=>'string', '&w_errorCode='=>'int'], +'Spoofchecker::setAllowedLocales' => ['void', 'locales'=>'string'], +'Spoofchecker::setChecks' => ['void', 'checks'=>'int'], +'Spoofchecker::setRestrictionLevel' => ['void', 'level'=>'int'], +'sprintf' => ['string', 'format'=>'string', '...values='=>'string|int|float'], +'SQLite3::__construct' => ['void', 'filename'=>'string', 'flags='=>'int', 'encryptionKey='=>'?string'], +'SQLite3::busyTimeout' => ['bool', 'milliseconds'=>'int'], +'SQLite3::changes' => ['int'], +'SQLite3::close' => ['bool'], +'SQLite3::createAggregate' => ['bool', 'name'=>'string', 'stepCallback'=>'callable', 'finalCallback'=>'callable', 'argCount='=>'int'], +'SQLite3::createCollation' => ['bool', 'name'=>'string', 'callback'=>'callable'], +'SQLite3::createFunction' => ['bool', 'name'=>'string', 'callback'=>'callable', 'argCount='=>'int', 'flags='=>'int'], +'SQLite3::enableExceptions' => ['bool', 'enable='=>'bool'], +'SQLite3::escapeString' => ['string', 'string'=>'string'], +'SQLite3::exec' => ['bool', 'query'=>'string'], +'SQLite3::lastErrorCode' => ['int'], +'SQLite3::lastErrorMsg' => ['string'], +'SQLite3::lastInsertRowID' => ['int'], +'SQLite3::loadExtension' => ['bool', 'name'=>'string'], +'SQLite3::open' => ['void', 'filename'=>'string', 'flags='=>'int', 'encryptionKey='=>'?string'], +'SQLite3::openBlob' => ['resource|false', 'table'=>'string', 'column'=>'string', 'rowid'=>'int', 'database='=>'string', 'flags='=>'int'], +'SQLite3::prepare' => ['SQLite3Stmt|false', 'query'=>'string'], +'SQLite3::query' => ['SQLite3Result|false', 'query'=>'string'], +'SQLite3::querySingle' => ['array|int|string|bool|float|null|false', 'query'=>'string', 'entireRow='=>'bool'], +'SQLite3::version' => ['array'], +'SQLite3Result::__construct' => ['void'], +'SQLite3Result::columnName' => ['string', 'column'=>'int'], +'SQLite3Result::columnType' => ['int', 'column'=>'int'], +'SQLite3Result::fetchArray' => ['array|false', 'mode='=>'int'], +'SQLite3Result::finalize' => ['bool'], +'SQLite3Result::numColumns' => ['int'], +'SQLite3Result::reset' => ['bool'], +'SQLite3Stmt::__construct' => ['void', 'sqlite3'=>'sqlite3', 'query'=>'string'], +'SQLite3Stmt::bindParam' => ['bool', 'param'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int'], +'SQLite3Stmt::bindValue' => ['bool', 'param'=>'string|int', 'value'=>'mixed', 'type='=>'int'], +'SQLite3Stmt::clear' => ['bool'], +'SQLite3Stmt::close' => ['bool'], +'SQLite3Stmt::execute' => ['false|SQLite3Result'], +'SQLite3Stmt::getSQL' => ['string', 'expand='=>'bool'], +'SQLite3Stmt::paramCount' => ['int'], +'SQLite3Stmt::readOnly' => ['bool'], +'SQLite3Stmt::reset' => ['bool'], +'sqlite_array_query' => ['array|false', 'dbhandle'=>'resource', 'query'=>'string', 'result_type='=>'int', 'decode_binary='=>'bool'], +'sqlite_busy_timeout' => ['void', 'dbhandle'=>'resource', 'milliseconds'=>'int'], +'sqlite_changes' => ['int', 'dbhandle'=>'resource'], +'sqlite_close' => ['void', 'dbhandle'=>'resource'], +'sqlite_column' => ['mixed', 'result'=>'resource', 'index_or_name'=>'mixed', 'decode_binary='=>'bool'], +'sqlite_create_aggregate' => ['void', 'dbhandle'=>'resource', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], +'sqlite_create_function' => ['void', 'dbhandle'=>'resource', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], +'sqlite_current' => ['array|false', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], +'sqlite_error_string' => ['string', 'error_code'=>'int'], +'sqlite_escape_string' => ['string', 'item'=>'string'], +'sqlite_exec' => ['bool', 'dbhandle'=>'resource', 'query'=>'string', 'error_msg='=>'string'], +'sqlite_factory' => ['SQLiteDatabase', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], +'sqlite_fetch_all' => ['array', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], +'sqlite_fetch_array' => ['array|false', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], +'sqlite_fetch_column_types' => ['array|false', 'table_name'=>'string', 'dbhandle'=>'resource', 'result_type='=>'int'], +'sqlite_fetch_object' => ['object', 'result'=>'resource', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], +'sqlite_fetch_single' => ['string', 'result'=>'resource', 'decode_binary='=>'bool'], +'sqlite_fetch_string' => ['string', 'result'=>'resource', 'decode_binary'=>'bool'], +'sqlite_field_name' => ['string', 'result'=>'resource', 'field_index'=>'int'], +'sqlite_has_more' => ['bool', 'result'=>'resource'], +'sqlite_has_prev' => ['bool', 'result'=>'resource'], +'sqlite_key' => ['int', 'result'=>'resource'], +'sqlite_last_error' => ['int', 'dbhandle'=>'resource'], +'sqlite_last_insert_rowid' => ['int', 'dbhandle'=>'resource'], +'sqlite_libencoding' => ['string'], +'sqlite_libversion' => ['string'], +'sqlite_next' => ['bool', 'result'=>'resource'], +'sqlite_num_fields' => ['int', 'result'=>'resource'], +'sqlite_num_rows' => ['int', 'result'=>'resource'], +'sqlite_open' => ['resource|false', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], +'sqlite_popen' => ['resource|false', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], +'sqlite_prev' => ['bool', 'result'=>'resource'], +'sqlite_query' => ['resource|false', 'dbhandle'=>'resource', 'query'=>'resource|string', 'result_type='=>'int', 'error_msg='=>'string'], +'sqlite_rewind' => ['bool', 'result'=>'resource'], +'sqlite_seek' => ['bool', 'result'=>'resource', 'rownum'=>'int'], +'sqlite_single_query' => ['array', 'db'=>'resource', 'query'=>'string', 'first_row_only='=>'bool', 'decode_binary='=>'bool'], +'sqlite_udf_decode_binary' => ['string', 'data'=>'string'], +'sqlite_udf_encode_binary' => ['string', 'data'=>'string'], +'sqlite_unbuffered_query' => ['SQLiteUnbuffered|false', 'dbhandle'=>'resource', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], +'sqlite_valid' => ['bool', 'result'=>'resource'], +'SQLiteDatabase::__construct' => ['void', 'filename'=>'', 'mode='=>'int|mixed', '&error_message'=>''], +'SQLiteDatabase::arrayQuery' => ['array', 'query'=>'string', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteDatabase::busyTimeout' => ['int', 'milliseconds'=>'int'], +'SQLiteDatabase::changes' => ['int'], +'SQLiteDatabase::createAggregate' => ['', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], +'SQLiteDatabase::createFunction' => ['', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], +'SQLiteDatabase::exec' => ['bool', 'query'=>'string', 'error_msg='=>'string'], +'SQLiteDatabase::fetchColumnTypes' => ['array', 'table_name'=>'string', 'result_type='=>'int'], +'SQLiteDatabase::lastError' => ['int'], +'SQLiteDatabase::lastInsertRowid' => ['int'], +'SQLiteDatabase::query' => ['SQLiteResult|false', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], +'SQLiteDatabase::queryExec' => ['bool', 'query'=>'string', '&w_error_msg='=>'string'], +'SQLiteDatabase::singleQuery' => ['array', 'query'=>'string', 'first_row_only='=>'bool', 'decode_binary='=>'bool'], +'SQLiteDatabase::unbufferedQuery' => ['SQLiteUnbuffered|false', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], +'SQLiteException::__clone' => ['void'], +'SQLiteException::__construct' => ['void', 'message'=>'', 'code'=>'', 'previous'=>''], +'SQLiteException::__toString' => ['string'], +'SQLiteException::__wakeup' => ['void'], +'SQLiteException::getCode' => ['int'], +'SQLiteException::getFile' => ['string'], +'SQLiteException::getLine' => ['int'], +'SQLiteException::getMessage' => ['string'], +'SQLiteException::getPrevious' => ['RuntimeException|Throwable|null'], +'SQLiteException::getTrace' => ['list\',args?:array}>'], +'SQLiteException::getTraceAsString' => ['string'], +'SQLiteResult::__construct' => ['void'], +'SQLiteResult::column' => ['mixed', 'index_or_name'=>'', 'decode_binary='=>'bool'], +'SQLiteResult::count' => ['int'], +'SQLiteResult::current' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteResult::fetch' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteResult::fetchAll' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteResult::fetchObject' => ['object', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], +'SQLiteResult::fetchSingle' => ['string', 'decode_binary='=>'bool'], +'SQLiteResult::fieldName' => ['string', 'field_index'=>'int'], +'SQLiteResult::hasPrev' => ['bool'], +'SQLiteResult::key' => ['mixed|null'], +'SQLiteResult::next' => ['bool'], +'SQLiteResult::numFields' => ['int'], +'SQLiteResult::numRows' => ['int'], +'SQLiteResult::prev' => ['bool'], +'SQLiteResult::rewind' => ['bool'], +'SQLiteResult::seek' => ['bool', 'rownum'=>'int'], +'SQLiteResult::valid' => ['bool'], +'SQLiteUnbuffered::column' => ['void', 'index_or_name'=>'', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::current' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::fetch' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::fetchAll' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::fetchObject' => ['object', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::fetchSingle' => ['string', 'decode_binary='=>'bool'], +'SQLiteUnbuffered::fieldName' => ['string', 'field_index'=>'int'], +'SQLiteUnbuffered::next' => ['bool'], +'SQLiteUnbuffered::numFields' => ['int'], +'SQLiteUnbuffered::valid' => ['bool'], +'sqlsrv_begin_transaction' => ['bool', 'conn'=>'resource'], +'sqlsrv_cancel' => ['bool', 'stmt'=>'resource'], +'sqlsrv_client_info' => ['array|false', 'conn'=>'resource'], +'sqlsrv_close' => ['bool', 'conn'=>'?resource'], +'sqlsrv_commit' => ['bool', 'conn'=>'resource'], +'sqlsrv_configure' => ['bool', 'setting'=>'string', 'value'=>'mixed'], +'sqlsrv_connect' => ['resource|false', 'serverName'=>'string', 'connectionInfo='=>'array'], +'sqlsrv_errors' => ['?array', 'errorsOrWarnings='=>'int'], +'sqlsrv_execute' => ['bool', 'stmt'=>'resource'], +'sqlsrv_fetch' => ['?bool', 'stmt'=>'resource', 'row='=>'int', 'offset='=>'int'], +'sqlsrv_fetch_array' => ['array|null|false', 'stmt'=>'resource', 'fetchType='=>'int', 'row='=>'int', 'offset='=>'int'], +'sqlsrv_fetch_object' => ['object|null|false', 'stmt'=>'resource', 'className='=>'string', 'ctorParams='=>'array', 'row='=>'int', 'offset='=>'int'], +'sqlsrv_field_metadata' => ['array|false', 'stmt'=>'resource'], +'sqlsrv_free_stmt' => ['bool', 'stmt'=>'resource'], +'sqlsrv_get_config' => ['mixed', 'setting'=>'string'], +'sqlsrv_get_field' => ['mixed', 'stmt'=>'resource', 'fieldIndex'=>'int', 'getAsType='=>'int'], +'sqlsrv_has_rows' => ['bool', 'stmt'=>'resource'], +'sqlsrv_next_result' => ['?bool', 'stmt'=>'resource'], +'sqlsrv_num_fields' => ['int|false', 'stmt'=>'resource'], +'sqlsrv_num_rows' => ['int|false', 'stmt'=>'resource'], +'sqlsrv_prepare' => ['resource|false', 'conn'=>'resource', 'sql'=>'string', 'params='=>'array', 'options='=>'array'], +'sqlsrv_query' => ['resource|false', 'conn'=>'resource', 'sql'=>'string', 'params='=>'array', 'options='=>'array'], +'sqlsrv_rollback' => ['bool', 'conn'=>'resource'], +'sqlsrv_rows_affected' => ['int|false', 'stmt'=>'resource'], +'sqlsrv_send_stream_data' => ['bool', 'stmt'=>'resource'], +'sqlsrv_server_info' => ['array', 'conn'=>'resource'], +'sqrt' => ['float', 'num'=>'float'], +'srand' => ['void', 'seed='=>'int', 'mode='=>'int'], +'sscanf' => ['list|int|null', 'string'=>'string', 'format'=>'string', '&...w_vars='=>'string|int|float|null'], +'ssdeep_fuzzy_compare' => ['int', 'signature1'=>'string', 'signature2'=>'string'], +'ssdeep_fuzzy_hash' => ['string', 'to_hash'=>'string'], +'ssdeep_fuzzy_hash_filename' => ['string', 'file_name'=>'string'], +'ssh2_auth_agent' => ['bool', 'session'=>'resource', 'username'=>'string'], +'ssh2_auth_hostbased_file' => ['bool', 'session'=>'resource', 'username'=>'string', 'hostname'=>'string', 'pubkeyfile'=>'string', 'privkeyfile'=>'string', 'passphrase='=>'string', 'local_username='=>'string'], +'ssh2_auth_none' => ['bool|string[]', 'session'=>'resource', 'username'=>'string'], +'ssh2_auth_password' => ['bool', 'session'=>'resource', 'username'=>'string', 'password'=>'string'], +'ssh2_auth_pubkey_file' => ['bool', 'session'=>'resource', 'username'=>'string', 'pubkeyfile'=>'string', 'privkeyfile'=>'string', 'passphrase='=>'string'], +'ssh2_connect' => ['resource|false', 'host'=>'string', 'port='=>'int', 'methods='=>'array', 'callbacks='=>'array'], +'ssh2_disconnect' => ['bool', 'session'=>'resource'], +'ssh2_exec' => ['resource|false', 'session'=>'resource', 'command'=>'string', 'pty='=>'string', 'env='=>'array', 'width='=>'int', 'height='=>'int', 'width_height_type='=>'int'], +'ssh2_fetch_stream' => ['resource|false', 'channel'=>'resource', 'streamid'=>'int'], +'ssh2_fingerprint' => ['string|false', 'session'=>'resource', 'flags='=>'int'], +'ssh2_forward_accept' => ['resource|false', 'listener'=>'resource'], +'ssh2_forward_listen' => ['resource|false', 'session'=>'resource', 'port'=>'int', 'host='=>'string', 'max_connections='=>'string'], +'ssh2_methods_negotiated' => ['array|false', 'session'=>'resource'], +'ssh2_poll' => ['int', '&polldes'=>'array', 'timeout='=>'int'], +'ssh2_publickey_add' => ['bool', 'pkey'=>'resource', 'algoname'=>'string', 'blob'=>'string', 'overwrite='=>'bool', 'attributes='=>'array'], +'ssh2_publickey_init' => ['resource|false', 'session'=>'resource'], +'ssh2_publickey_list' => ['array|false', 'pkey'=>'resource'], +'ssh2_publickey_remove' => ['bool', 'pkey'=>'resource', 'algoname'=>'string', 'blob'=>'string'], +'ssh2_scp_recv' => ['bool', 'session'=>'resource', 'remote_file'=>'string', 'local_file'=>'string'], +'ssh2_scp_send' => ['bool', 'session'=>'resource', 'local_file'=>'string', 'remote_file'=>'string', 'create_mode='=>'int'], +'ssh2_sftp' => ['resource|false', 'session'=>'resource'], +'ssh2_sftp_chmod' => ['bool', 'sftp'=>'resource', 'filename'=>'string', 'mode'=>'int'], +'ssh2_sftp_lstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'sftp'=>'resource', 'path'=>'string'], +'ssh2_sftp_mkdir' => ['bool', 'sftp'=>'resource', 'dirname'=>'string', 'mode='=>'int', 'recursive='=>'bool'], +'ssh2_sftp_readlink' => ['string|false', 'sftp'=>'resource', 'link'=>'string'], +'ssh2_sftp_realpath' => ['string|false', 'sftp'=>'resource', 'filename'=>'string'], +'ssh2_sftp_rename' => ['bool', 'sftp'=>'resource', 'from'=>'string', 'to'=>'string'], +'ssh2_sftp_rmdir' => ['bool', 'sftp'=>'resource', 'dirname'=>'string'], +'ssh2_sftp_stat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'sftp'=>'resource', 'path'=>'string'], +'ssh2_sftp_symlink' => ['bool', 'sftp'=>'resource', 'target'=>'string', 'link'=>'string'], +'ssh2_sftp_unlink' => ['bool', 'sftp'=>'resource', 'filename'=>'string'], +'ssh2_shell' => ['resource|false', 'session'=>'resource', 'termtype='=>'string', 'env='=>'array', 'width='=>'int', 'height='=>'int', 'width_height_type='=>'int'], +'ssh2_tunnel' => ['resource|false', 'session'=>'resource', 'host'=>'string', 'port'=>'int'], +'stat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'filename'=>'string'], +'stats_absolute_deviation' => ['float', 'a'=>'array'], +'stats_cdf_beta' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_binomial' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_cauchy' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_chisquare' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], +'stats_cdf_exponential' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], +'stats_cdf_f' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_gamma' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_laplace' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_logistic' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_negative_binomial' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_noncentral_chisquare' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_noncentral_f' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'par4'=>'float', 'which'=>'int'], +'stats_cdf_noncentral_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_normal' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_poisson' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], +'stats_cdf_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], +'stats_cdf_uniform' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_cdf_weibull' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_covariance' => ['float', 'a'=>'array', 'b'=>'array'], +'stats_den_uniform' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], +'stats_dens_beta' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], +'stats_dens_cauchy' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], +'stats_dens_chisquare' => ['float', 'x'=>'float', 'dfr'=>'float'], +'stats_dens_exponential' => ['float', 'x'=>'float', 'scale'=>'float'], +'stats_dens_f' => ['float', 'x'=>'float', 'dfr1'=>'float', 'dfr2'=>'float'], +'stats_dens_gamma' => ['float', 'x'=>'float', 'shape'=>'float', 'scale'=>'float'], +'stats_dens_laplace' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], +'stats_dens_logistic' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], +'stats_dens_negative_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], +'stats_dens_normal' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], +'stats_dens_pmf_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], +'stats_dens_pmf_hypergeometric' => ['float', 'n1'=>'float', 'n2'=>'float', 'N1'=>'float', 'N2'=>'float'], +'stats_dens_pmf_negative_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], +'stats_dens_pmf_poisson' => ['float', 'x'=>'float', 'lb'=>'float'], +'stats_dens_t' => ['float', 'x'=>'float', 'dfr'=>'float'], +'stats_dens_uniform' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], +'stats_dens_weibull' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], +'stats_harmonic_mean' => ['float', 'a'=>'array'], +'stats_kurtosis' => ['float', 'a'=>'array'], +'stats_rand_gen_beta' => ['float', 'a'=>'float', 'b'=>'float'], +'stats_rand_gen_chisquare' => ['float', 'df'=>'float'], +'stats_rand_gen_exponential' => ['float', 'av'=>'float'], +'stats_rand_gen_f' => ['float', 'dfn'=>'float', 'dfd'=>'float'], +'stats_rand_gen_funiform' => ['float', 'low'=>'float', 'high'=>'float'], +'stats_rand_gen_gamma' => ['float', 'a'=>'float', 'r'=>'float'], +'stats_rand_gen_ibinomial' => ['int', 'n'=>'int', 'pp'=>'float'], +'stats_rand_gen_ibinomial_negative' => ['int', 'n'=>'int', 'p'=>'float'], +'stats_rand_gen_int' => ['int'], +'stats_rand_gen_ipoisson' => ['int', 'mu'=>'float'], +'stats_rand_gen_iuniform' => ['int', 'low'=>'int', 'high'=>'int'], +'stats_rand_gen_noncenral_chisquare' => ['float', 'df'=>'float', 'xnonc'=>'float'], +'stats_rand_gen_noncentral_chisquare' => ['float', 'df'=>'float', 'xnonc'=>'float'], +'stats_rand_gen_noncentral_f' => ['float', 'dfn'=>'float', 'dfd'=>'float', 'xnonc'=>'float'], +'stats_rand_gen_noncentral_t' => ['float', 'df'=>'float', 'xnonc'=>'float'], +'stats_rand_gen_normal' => ['float', 'av'=>'float', 'sd'=>'float'], +'stats_rand_gen_t' => ['float', 'df'=>'float'], +'stats_rand_get_seeds' => ['array'], +'stats_rand_phrase_to_seeds' => ['array', 'phrase'=>'string'], +'stats_rand_ranf' => ['float'], +'stats_rand_setall' => ['void', 'iseed1'=>'int', 'iseed2'=>'int'], +'stats_skew' => ['float', 'a'=>'array'], +'stats_standard_deviation' => ['float', 'a'=>'array', 'sample='=>'bool'], +'stats_stat_binomial_coef' => ['float', 'x'=>'int', 'n'=>'int'], +'stats_stat_correlation' => ['float', 'array1'=>'array', 'array2'=>'array'], +'stats_stat_factorial' => ['float', 'n'=>'int'], +'stats_stat_gennch' => ['float', 'n'=>'int'], +'stats_stat_independent_t' => ['float', 'array1'=>'array', 'array2'=>'array'], +'stats_stat_innerproduct' => ['float', 'array1'=>'array', 'array2'=>'array'], +'stats_stat_noncentral_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], +'stats_stat_paired_t' => ['float', 'array1'=>'array', 'array2'=>'array'], +'stats_stat_percentile' => ['float', 'arr'=>'array', 'perc'=>'float'], +'stats_stat_powersum' => ['float', 'arr'=>'array', 'power'=>'float'], +'stats_variance' => ['float', 'a'=>'array', 'sample='=>'bool'], +'Stomp::__construct' => ['void', 'broker='=>'string', 'username='=>'string', 'password='=>'string', 'headers='=>'?array'], +'Stomp::abort' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], +'Stomp::ack' => ['bool', 'msg'=>'', 'headers='=>'?array'], +'Stomp::begin' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], +'Stomp::commit' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], +'Stomp::error' => ['string'], +'Stomp::getReadTimeout' => ['array'], +'Stomp::getSessionId' => ['string'], +'Stomp::hasFrame' => ['bool'], +'Stomp::readFrame' => ['array', 'class_name='=>'string'], +'Stomp::send' => ['bool', 'destination'=>'string', 'msg'=>'', 'headers='=>'?array'], +'Stomp::setReadTimeout' => ['void', 'seconds'=>'int', 'microseconds='=>'?int'], +'Stomp::subscribe' => ['bool', 'destination'=>'string', 'headers='=>'?array'], +'Stomp::unsubscribe' => ['bool', 'destination'=>'string', 'headers='=>'?array'], +'stomp_abort' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], +'stomp_ack' => ['bool', 'link'=>'resource', 'msg'=>'', 'headers='=>'?array'], +'stomp_begin' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], +'stomp_close' => ['bool', 'link'=>'resource'], +'stomp_commit' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], +'stomp_connect' => ['resource', 'link'=>'resource', 'broker='=>'string', 'username='=>'string', 'password='=>'string', 'headers='=>'?array'], +'stomp_connect_error' => ['string'], +'stomp_error' => ['string', 'link'=>'resource'], +'stomp_get_read_timeout' => ['array', 'link'=>'resource'], +'stomp_get_session_id' => ['string', 'link'=>'resource'], +'stomp_has_frame' => ['bool', 'link'=>'resource'], +'stomp_read_frame' => ['array', 'link'=>'resource', 'class_name='=>'string'], +'stomp_send' => ['bool', 'link'=>'resource', 'destination'=>'string', 'msg'=>'', 'headers='=>'?array'], +'stomp_set_read_timeout' => ['void', 'link'=>'resource', 'seconds'=>'int', 'microseconds='=>'?int'], +'stomp_subscribe' => ['bool', 'link'=>'resource', 'destination'=>'string', 'headers='=>'?array'], +'stomp_unsubscribe' => ['bool', 'link'=>'resource', 'destination'=>'string', 'headers='=>'?array'], +'stomp_version' => ['string'], +'StompException::getDetails' => ['string'], +'StompFrame::__construct' => ['void', 'command='=>'string', 'headers='=>'?array', 'body='=>'string'], +'str_contains' => ['bool', 'haystack'=>'string', 'needle'=>'string'], +'str_ends_with' => ['bool', 'haystack'=>'string', 'needle'=>'string'], +'str_getcsv' => ['non-empty-list', 'string'=>'string', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], +'str_ireplace' => ['string|string[]', 'search'=>'string|array', 'replace'=>'string|array', 'subject'=>'string|array', '&w_count='=>'int'], +'str_pad' => ['string', 'string'=>'string', 'length'=>'int', 'pad_string='=>'string', 'pad_type='=>'int'], +'str_repeat' => ['string', 'string'=>'string', 'times'=>'int'], +'str_replace' => ['string|string[]', 'search'=>'string|array', 'replace'=>'string|array', 'subject'=>'string|array', '&w_count='=>'int'], +'str_rot13' => ['string', 'string'=>'string'], +'str_shuffle' => ['string', 'string'=>'string'], +'str_split' => ['list', 'string'=>'string', 'length='=>'positive-int'], +'str_starts_with' => ['bool', 'haystack'=>'string', 'needle'=>'string'], +'str_word_count' => ['array|int', 'string'=>'string', 'format='=>'int', 'characters='=>'?string'], +'strcasecmp' => ['int', 'string1'=>'string', 'string2'=>'string'], +'strchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], +'strcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], +'strcoll' => ['int', 'string1'=>'string', 'string2'=>'string'], +'strcspn' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'?int'], +'stream_bucket_append' => ['void', 'brigade'=>'resource', 'bucket'=>'object'], +'stream_bucket_make_writeable' => ['?object', 'brigade'=>'resource'], +'stream_bucket_new' => ['object', 'stream'=>'resource', 'buffer'=>'string'], +'stream_bucket_prepend' => ['void', 'brigade'=>'resource', 'bucket'=>'object'], +'stream_context_create' => ['resource', 'options='=>'?array', 'params='=>'?array'], +'stream_context_get_default' => ['resource', 'options='=>'?array'], +'stream_context_get_options' => ['array', 'stream_or_context'=>'resource'], +'stream_context_get_params' => ['array', 'context'=>'resource'], +'stream_context_set_default' => ['resource', 'options'=>'array'], +'stream_context_set_option' => ['bool', 'context'=>'', 'wrapper_or_options'=>'string', 'option_name'=>'string', 'value'=>''], +'stream_context_set_option\'1' => ['bool', 'context'=>'', 'wrapper_or_options'=>'array'], +'stream_context_set_params' => ['bool', 'context'=>'resource', 'params'=>'array'], +'stream_copy_to_stream' => ['int|false', 'from'=>'resource', 'to'=>'resource', 'length='=>'?int', 'offset='=>'int'], +'stream_encoding' => ['bool', 'stream'=>'resource', 'encoding='=>'string'], +'stream_filter_append' => ['resource|false', 'stream'=>'resource', 'filter_name'=>'string', 'mode='=>'int', 'params='=>'mixed'], +'stream_filter_prepend' => ['resource|false', 'stream'=>'resource', 'filter_name'=>'string', 'mode='=>'int', 'params='=>'mixed'], +'stream_filter_register' => ['bool', 'filter_name'=>'string', 'class'=>'string'], +'stream_filter_remove' => ['bool', 'stream_filter'=>'resource'], +'stream_get_contents' => ['string|false', 'stream'=>'resource', 'length='=>'?int', 'offset='=>'int'], +'stream_get_filters' => ['array'], +'stream_get_line' => ['string|false', 'stream'=>'resource', 'length'=>'int', 'ending='=>'string'], +'stream_get_meta_data' => ['array{timed_out:bool,blocked:bool,eof:bool,unread_bytes:int,stream_type:string,wrapper_type:string,wrapper_data:mixed,mode:string,seekable:bool,uri:string,mediatype:string,crypto?:array{protocol:string,cipher_name:string,cipher_bits:int,cipher_version:string}}', 'stream'=>'resource'], +'stream_get_transports' => ['list'], +'stream_get_wrappers' => ['list'], +'stream_is_local' => ['bool', 'stream'=>'resource|string'], +'stream_isatty' => ['bool', 'stream'=>'resource'], +'stream_notification_callback' => ['callback', 'notification_code'=>'int', 'severity'=>'int', 'message'=>'string', 'message_code'=>'int', 'bytes_transferred'=>'int', 'bytes_max'=>'int'], +'stream_register_wrapper' => ['bool', 'protocol'=>'string', 'class'=>'string', 'flags='=>'int'], +'stream_resolve_include_path' => ['string|false', 'filename'=>'string'], +'stream_select' => ['int|false', '&rw_read'=>'?resource[]', '&rw_write'=>'?resource[]', '&rw_except'=>'?resource[]', 'seconds'=>'?int', 'microseconds='=>'?int'], +'stream_set_blocking' => ['bool', 'stream'=>'resource', 'enable'=>'bool'], +'stream_set_chunk_size' => ['int', 'stream'=>'resource', 'size'=>'int'], +'stream_set_read_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], +'stream_set_timeout' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], +'stream_set_write_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], +'stream_socket_accept' => ['resource|false', 'socket'=>'resource', 'timeout='=>'?float', '&w_peer_name='=>'string'], +'stream_socket_client' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float', 'flags='=>'int', 'context='=>'?resource'], +'stream_socket_enable_crypto' => ['int|bool', 'stream'=>'resource', 'enable'=>'bool', 'crypto_method='=>'?int', 'session_stream='=>'?resource'], +'stream_socket_get_name' => ['string', 'socket'=>'resource', 'remote'=>'bool'], +'stream_socket_pair' => ['resource[]|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], +'stream_socket_recvfrom' => ['string', 'socket'=>'resource', 'length'=>'int', 'flags='=>'int', '&w_address='=>'string'], +'stream_socket_sendto' => ['int', 'socket'=>'resource', 'data'=>'string', 'flags='=>'int', 'address='=>'string'], +'stream_socket_server' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'flags='=>'int', 'context='=>'resource'], +'stream_socket_shutdown' => ['bool', 'stream'=>'resource', 'mode'=>'int'], +'stream_supports_lock' => ['bool', 'stream'=>'resource'], +'stream_wrapper_register' => ['bool', 'protocol'=>'string', 'class'=>'string', 'flags='=>'int'], +'stream_wrapper_restore' => ['bool', 'protocol'=>'string'], +'stream_wrapper_unregister' => ['bool', 'protocol'=>'string'], +'streamWrapper::__construct' => ['void'], +'streamWrapper::__destruct' => ['void'], +'streamWrapper::dir_closedir' => ['bool'], +'streamWrapper::dir_opendir' => ['bool', 'path'=>'string', 'options'=>'int'], +'streamWrapper::dir_readdir' => ['string'], +'streamWrapper::dir_rewinddir' => ['bool'], +'streamWrapper::mkdir' => ['bool', 'path'=>'string', 'mode'=>'int', 'options'=>'int'], +'streamWrapper::rename' => ['bool', 'path_from'=>'string', 'path_to'=>'string'], +'streamWrapper::rmdir' => ['bool', 'path'=>'string', 'options'=>'int'], +'streamWrapper::stream_cast' => ['resource', 'cast_as'=>'int'], +'streamWrapper::stream_close' => ['void'], +'streamWrapper::stream_eof' => ['bool'], +'streamWrapper::stream_flush' => ['bool'], +'streamWrapper::stream_lock' => ['bool', 'operation'=>'mode'], +'streamWrapper::stream_metadata' => ['bool', 'path'=>'string', 'option'=>'int', 'value'=>'mixed'], +'streamWrapper::stream_open' => ['bool', 'path'=>'string', 'mode'=>'string', 'options'=>'int', 'opened_path'=>'string'], +'streamWrapper::stream_read' => ['string', 'count'=>'int'], +'streamWrapper::stream_seek' => ['bool', 'offset'=>'int', 'whence'=>'int'], +'streamWrapper::stream_set_option' => ['bool', 'option'=>'int', 'arg1'=>'int', 'arg2'=>'int'], +'streamWrapper::stream_stat' => ['array'], +'streamWrapper::stream_tell' => ['int'], +'streamWrapper::stream_truncate' => ['bool', 'new_size'=>'int'], +'streamWrapper::stream_write' => ['int', 'data'=>'string'], +'streamWrapper::unlink' => ['bool', 'path'=>'string'], +'streamWrapper::url_stat' => ['array', 'path'=>'string', 'flags'=>'int'], +'strftime' => ['string|false', 'format'=>'string', 'timestamp='=>'?int'], +'strip_tags' => ['string', 'string'=>'string', 'allowed_tags='=>'string|list|null'], +'stripcslashes' => ['string', 'string'=>'string'], +'stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'stripslashes' => ['string', 'string'=>'string'], +'stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], +'strlen' => ['0|positive-int', 'string'=>'string'], +'strnatcasecmp' => ['int', 'string1'=>'string', 'string2'=>'string'], +'strnatcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], +'strncasecmp' => ['int', 'string1'=>'string', 'string2'=>'string', 'length'=>'int'], +'strncmp' => ['int', 'string1'=>'string', 'string2'=>'string', 'length'=>'int'], +'strpbrk' => ['string|false', 'string'=>'string', 'characters'=>'string'], +'strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'strptime' => ['array|false', 'timestamp'=>'string', 'format'=>'string'], +'strrchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string'], +'strrev' => ['string', 'string'=>'string'], +'strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], +'strspn' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'?int'], +'strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], +'strtok' => ['string|false', 'string'=>'string', 'token'=>'string'], +'strtok\'1' => ['string|false', 'string'=>'string'], +'strtolower' => ['lowercase-string', 'string'=>'string'], +'strtotime' => ['int|false', 'datetime'=>'string', 'baseTimestamp='=>'?int'], +'strtoupper' => ['string', 'string'=>'string'], +'strtr' => ['string', 'string'=>'string', 'from'=>'string', 'to'=>'string'], +'strtr\'1' => ['string', 'string'=>'string', 'from'=>'array'], +'strval' => ['string', 'value'=>'mixed'], +'styleObj::__construct' => ['void', 'label'=>'labelObj', 'style'=>'styleObj'], +'styleObj::convertToString' => ['string'], +'styleObj::free' => ['void'], +'styleObj::getBinding' => ['string', 'stylebinding'=>'mixed'], +'styleObj::getGeomTransform' => ['string'], +'styleObj::ms_newStyleObj' => ['styleObj', 'class'=>'classObj', 'style'=>'styleObj'], +'styleObj::removeBinding' => ['int', 'stylebinding'=>'mixed'], +'styleObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'styleObj::setBinding' => ['int', 'stylebinding'=>'mixed', 'value'=>'string'], +'styleObj::setGeomTransform' => ['int', 'value'=>'string'], +'styleObj::updateFromString' => ['int', 'snippet'=>'string'], +'substr' => ['string', 'string'=>'string', 'offset'=>'int', 'length='=>'?int'], +'substr_compare' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset'=>'int', 'length='=>'?int', 'case_insensitive='=>'bool'], +'substr_count' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'length='=>'?int'], +'substr_replace' => ['string|string[]', 'string'=>'string|string[]', 'replace'=>'string|string[]', 'offset'=>'int|int[]', 'length='=>'int|int[]|null'], +'suhosin_encrypt_cookie' => ['string|false', 'name'=>'string', 'value'=>'string'], +'suhosin_get_raw_cookies' => ['array'], +'SVM::__construct' => ['void'], +'svm::crossvalidate' => ['float', 'problem'=>'array', 'number_of_folds'=>'int'], +'SVM::getOptions' => ['array'], +'SVM::setOptions' => ['bool', 'params'=>'array'], +'svm::train' => ['SVMModel', 'problem'=>'array', 'weights='=>'array'], +'SVMModel::__construct' => ['void', 'filename='=>'string'], +'SVMModel::checkProbabilityModel' => ['bool'], +'SVMModel::getLabels' => ['array'], +'SVMModel::getNrClass' => ['int'], +'SVMModel::getSvmType' => ['int'], +'SVMModel::getSvrProbability' => ['float'], +'SVMModel::load' => ['bool', 'filename'=>'string'], +'SVMModel::predict' => ['float', 'data'=>'array'], +'SVMModel::predict_probability' => ['float', 'data'=>'array'], +'SVMModel::save' => ['bool', 'filename'=>'string'], +'svn_add' => ['bool', 'path'=>'string', 'recursive='=>'bool', 'force='=>'bool'], +'svn_auth_get_parameter' => ['?string', 'key'=>'string'], +'svn_auth_set_parameter' => ['void', 'key'=>'string', 'value'=>'string'], +'svn_blame' => ['array', 'repository_url'=>'string', 'revision_no='=>'int'], +'svn_cat' => ['string', 'repos_url'=>'string', 'revision_no='=>'int'], +'svn_checkout' => ['bool', 'repos'=>'string', 'targetpath'=>'string', 'revision='=>'int', 'flags='=>'int'], +'svn_cleanup' => ['bool', 'workingdir'=>'string'], +'svn_client_version' => ['string'], +'svn_commit' => ['array', 'log'=>'string', 'targets'=>'array', 'dontrecurse='=>'bool'], +'svn_delete' => ['bool', 'path'=>'string', 'force='=>'bool'], +'svn_diff' => ['array', 'path1'=>'string', 'rev1'=>'int', 'path2'=>'string', 'rev2'=>'int'], +'svn_export' => ['bool', 'frompath'=>'string', 'topath'=>'string', 'working_copy='=>'bool', 'revision_no='=>'int'], +'svn_fs_abort_txn' => ['bool', 'txn'=>'resource'], +'svn_fs_apply_text' => ['resource', 'root'=>'resource', 'path'=>'string'], +'svn_fs_begin_txn2' => ['resource', 'repos'=>'resource', 'rev'=>'int'], +'svn_fs_change_node_prop' => ['bool', 'root'=>'resource', 'path'=>'string', 'name'=>'string', 'value'=>'string'], +'svn_fs_check_path' => ['int', 'fsroot'=>'resource', 'path'=>'string'], +'svn_fs_contents_changed' => ['bool', 'root1'=>'resource', 'path1'=>'string', 'root2'=>'resource', 'path2'=>'string'], +'svn_fs_copy' => ['bool', 'from_root'=>'resource', 'from_path'=>'string', 'to_root'=>'resource', 'to_path'=>'string'], +'svn_fs_delete' => ['bool', 'root'=>'resource', 'path'=>'string'], +'svn_fs_dir_entries' => ['array', 'fsroot'=>'resource', 'path'=>'string'], +'svn_fs_file_contents' => ['resource', 'fsroot'=>'resource', 'path'=>'string'], +'svn_fs_file_length' => ['int', 'fsroot'=>'resource', 'path'=>'string'], +'svn_fs_is_dir' => ['bool', 'root'=>'resource', 'path'=>'string'], +'svn_fs_is_file' => ['bool', 'root'=>'resource', 'path'=>'string'], +'svn_fs_make_dir' => ['bool', 'root'=>'resource', 'path'=>'string'], +'svn_fs_make_file' => ['bool', 'root'=>'resource', 'path'=>'string'], +'svn_fs_node_created_rev' => ['int', 'fsroot'=>'resource', 'path'=>'string'], +'svn_fs_node_prop' => ['string', 'fsroot'=>'resource', 'path'=>'string', 'propname'=>'string'], +'svn_fs_props_changed' => ['bool', 'root1'=>'resource', 'path1'=>'string', 'root2'=>'resource', 'path2'=>'string'], +'svn_fs_revision_prop' => ['string', 'fs'=>'resource', 'revnum'=>'int', 'propname'=>'string'], +'svn_fs_revision_root' => ['resource', 'fs'=>'resource', 'revnum'=>'int'], +'svn_fs_txn_root' => ['resource', 'txn'=>'resource'], +'svn_fs_youngest_rev' => ['int', 'fs'=>'resource'], +'svn_import' => ['bool', 'path'=>'string', 'url'=>'string', 'nonrecursive'=>'bool'], +'svn_log' => ['array', 'repos_url'=>'string', 'start_revision='=>'int', 'end_revision='=>'int', 'limit='=>'int', 'flags='=>'int'], +'svn_ls' => ['array', 'repos_url'=>'string', 'revision_no='=>'int', 'recurse='=>'bool', 'peg='=>'bool'], +'svn_mkdir' => ['bool', 'path'=>'string', 'log_message='=>'string'], +'svn_move' => ['mixed', 'src_path'=>'string', 'dst_path'=>'string', 'force='=>'bool'], +'svn_propget' => ['mixed', 'path'=>'string', 'property_name'=>'string', 'recurse='=>'bool', 'revision'=>'int'], +'svn_proplist' => ['mixed', 'path'=>'string', 'recurse='=>'bool', 'revision'=>'int'], +'svn_repos_create' => ['resource', 'path'=>'string', 'config='=>'array', 'fsconfig='=>'array'], +'svn_repos_fs' => ['resource', 'repos'=>'resource'], +'svn_repos_fs_begin_txn_for_commit' => ['resource', 'repos'=>'resource', 'rev'=>'int', 'author'=>'string', 'log_msg'=>'string'], +'svn_repos_fs_commit_txn' => ['int', 'txn'=>'resource'], +'svn_repos_hotcopy' => ['bool', 'repospath'=>'string', 'destpath'=>'string', 'cleanlogs'=>'bool'], +'svn_repos_open' => ['resource', 'path'=>'string'], +'svn_repos_recover' => ['bool', 'path'=>'string'], +'svn_revert' => ['bool', 'path'=>'string', 'recursive='=>'bool'], +'svn_status' => ['array', 'path'=>'string', 'flags='=>'int'], +'svn_update' => ['int|false', 'path'=>'string', 'revno='=>'int', 'recurse='=>'bool'], +'swf_actiongeturl' => ['', 'url'=>'string', 'target'=>'string'], +'swf_actiongotoframe' => ['', 'framenumber'=>'int'], +'swf_actiongotolabel' => ['', 'label'=>'string'], +'swf_actionnextframe' => [''], +'swf_actionplay' => [''], +'swf_actionprevframe' => [''], +'swf_actionsettarget' => ['', 'target'=>'string'], +'swf_actionstop' => [''], +'swf_actiontogglequality' => [''], +'swf_actionwaitforframe' => ['', 'framenumber'=>'int', 'skipcount'=>'int'], +'swf_addbuttonrecord' => ['', 'states'=>'int', 'shapeid'=>'int', 'depth'=>'int'], +'swf_addcolor' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], +'swf_closefile' => ['', 'return_file='=>'int'], +'swf_definebitmap' => ['', 'objid'=>'int', 'image_name'=>'string'], +'swf_definefont' => ['', 'fontid'=>'int', 'fontname'=>'string'], +'swf_defineline' => ['', 'objid'=>'int', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'width'=>'float'], +'swf_definepoly' => ['', 'objid'=>'int', 'coords'=>'array', 'npoints'=>'int', 'width'=>'float'], +'swf_definerect' => ['', 'objid'=>'int', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'width'=>'float'], +'swf_definetext' => ['', 'objid'=>'int', 'string'=>'string', 'docenter'=>'int'], +'swf_endbutton' => [''], +'swf_enddoaction' => [''], +'swf_endshape' => [''], +'swf_endsymbol' => [''], +'swf_fontsize' => ['', 'size'=>'float'], +'swf_fontslant' => ['', 'slant'=>'float'], +'swf_fonttracking' => ['', 'tracking'=>'float'], +'swf_getbitmapinfo' => ['array', 'bitmapid'=>'int'], +'swf_getfontinfo' => ['array'], +'swf_getframe' => ['int'], +'swf_labelframe' => ['', 'name'=>'string'], +'swf_lookat' => ['', 'view_x'=>'float', 'view_y'=>'float', 'view_z'=>'float', 'reference_x'=>'float', 'reference_y'=>'float', 'reference_z'=>'float', 'twist'=>'float'], +'swf_modifyobject' => ['', 'depth'=>'int', 'how'=>'int'], +'swf_mulcolor' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], +'swf_nextid' => ['int'], +'swf_oncondition' => ['', 'transition'=>'int'], +'swf_openfile' => ['', 'filename'=>'string', 'width'=>'float', 'height'=>'float', 'framerate'=>'float', 'r'=>'float', 'g'=>'float', 'b'=>'float'], +'swf_ortho' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float', 'zmin'=>'float', 'zmax'=>'float'], +'swf_ortho2' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float'], +'swf_perspective' => ['', 'fovy'=>'float', 'aspect'=>'float', 'near'=>'float', 'far'=>'float'], +'swf_placeobject' => ['', 'objid'=>'int', 'depth'=>'int'], +'swf_polarview' => ['', 'dist'=>'float', 'azimuth'=>'float', 'incidence'=>'float', 'twist'=>'float'], +'swf_popmatrix' => [''], +'swf_posround' => ['', 'round'=>'int'], +'swf_pushmatrix' => [''], +'swf_removeobject' => ['', 'depth'=>'int'], +'swf_rotate' => ['', 'angle'=>'float', 'axis'=>'string'], +'swf_scale' => ['', 'x'=>'float', 'y'=>'float', 'z'=>'float'], +'swf_setfont' => ['', 'fontid'=>'int'], +'swf_setframe' => ['', 'framenumber'=>'int'], +'swf_shapearc' => ['', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'ang1'=>'float', 'ang2'=>'float'], +'swf_shapecurveto' => ['', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], +'swf_shapecurveto3' => ['', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], +'swf_shapefillbitmapclip' => ['', 'bitmapid'=>'int'], +'swf_shapefillbitmaptile' => ['', 'bitmapid'=>'int'], +'swf_shapefilloff' => [''], +'swf_shapefillsolid' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], +'swf_shapelinesolid' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float', 'width'=>'float'], +'swf_shapelineto' => ['', 'x'=>'float', 'y'=>'float'], +'swf_shapemoveto' => ['', 'x'=>'float', 'y'=>'float'], +'swf_showframe' => [''], +'swf_startbutton' => ['', 'objid'=>'int', 'type'=>'int'], +'swf_startdoaction' => [''], +'swf_startshape' => ['', 'objid'=>'int'], +'swf_startsymbol' => ['', 'objid'=>'int'], +'swf_textwidth' => ['float', 'string'=>'string'], +'swf_translate' => ['', 'x'=>'float', 'y'=>'float', 'z'=>'float'], +'swf_viewport' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float'], +'SWFAction::__construct' => ['void', 'script'=>'string'], +'SWFBitmap::__construct' => ['void', 'file'=>'', 'alphafile='=>''], +'SWFBitmap::getHeight' => ['float'], +'SWFBitmap::getWidth' => ['float'], +'SWFButton::__construct' => ['void'], +'SWFButton::addAction' => ['void', 'action'=>'swfaction', 'flags'=>'int'], +'SWFButton::addASound' => ['SWFSoundInstance', 'sound'=>'swfsound', 'flags'=>'int'], +'SWFButton::addShape' => ['void', 'shape'=>'swfshape', 'flags'=>'int'], +'SWFButton::setAction' => ['void', 'action'=>'swfaction'], +'SWFButton::setDown' => ['void', 'shape'=>'swfshape'], +'SWFButton::setHit' => ['void', 'shape'=>'swfshape'], +'SWFButton::setMenu' => ['void', 'flag'=>'int'], +'SWFButton::setOver' => ['void', 'shape'=>'swfshape'], +'SWFButton::setUp' => ['void', 'shape'=>'swfshape'], +'SWFDisplayItem::addAction' => ['void', 'action'=>'swfaction', 'flags'=>'int'], +'SWFDisplayItem::addColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFDisplayItem::endMask' => ['void'], +'SWFDisplayItem::getRot' => ['float'], +'SWFDisplayItem::getX' => ['float'], +'SWFDisplayItem::getXScale' => ['float'], +'SWFDisplayItem::getXSkew' => ['float'], +'SWFDisplayItem::getY' => ['float'], +'SWFDisplayItem::getYScale' => ['float'], +'SWFDisplayItem::getYSkew' => ['float'], +'SWFDisplayItem::move' => ['void', 'dx'=>'float', 'dy'=>'float'], +'SWFDisplayItem::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], +'SWFDisplayItem::multColor' => ['void', 'red'=>'float', 'green'=>'float', 'blue'=>'float', 'a='=>'float'], +'SWFDisplayItem::remove' => ['void'], +'SWFDisplayItem::rotate' => ['void', 'angle'=>'float'], +'SWFDisplayItem::rotateTo' => ['void', 'angle'=>'float'], +'SWFDisplayItem::scale' => ['void', 'dx'=>'float', 'dy'=>'float'], +'SWFDisplayItem::scaleTo' => ['void', 'x'=>'float', 'y='=>'float'], +'SWFDisplayItem::setDepth' => ['void', 'depth'=>'int'], +'SWFDisplayItem::setMaskLevel' => ['void', 'level'=>'int'], +'SWFDisplayItem::setMatrix' => ['void', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], +'SWFDisplayItem::setName' => ['void', 'name'=>'string'], +'SWFDisplayItem::setRatio' => ['void', 'ratio'=>'float'], +'SWFDisplayItem::skewX' => ['void', 'ddegrees'=>'float'], +'SWFDisplayItem::skewXTo' => ['void', 'degrees'=>'float'], +'SWFDisplayItem::skewY' => ['void', 'ddegrees'=>'float'], +'SWFDisplayItem::skewYTo' => ['void', 'degrees'=>'float'], +'SWFFill::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], +'SWFFill::rotateTo' => ['void', 'angle'=>'float'], +'SWFFill::scaleTo' => ['void', 'x'=>'float', 'y='=>'float'], +'SWFFill::skewXTo' => ['void', 'x'=>'float'], +'SWFFill::skewYTo' => ['void', 'y'=>'float'], +'SWFFont::__construct' => ['void', 'filename'=>'string'], +'SWFFont::getAscent' => ['float'], +'SWFFont::getDescent' => ['float'], +'SWFFont::getLeading' => ['float'], +'SWFFont::getShape' => ['string', 'code'=>'int'], +'SWFFont::getUTF8Width' => ['float', 'string'=>'string'], +'SWFFont::getWidth' => ['float', 'string'=>'string'], +'SWFFontChar::addChars' => ['void', 'char'=>'string'], +'SWFFontChar::addUTF8Chars' => ['void', 'char'=>'string'], +'SWFGradient::__construct' => ['void'], +'SWFGradient::addEntry' => ['void', 'ratio'=>'float', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], +'SWFMorph::__construct' => ['void'], +'SWFMorph::getShape1' => ['SWFShape'], +'SWFMorph::getShape2' => ['SWFShape'], +'SWFMovie::__construct' => ['void', 'version='=>'int'], +'SWFMovie::add' => ['mixed', 'instance'=>'object'], +'SWFMovie::addExport' => ['void', 'char'=>'swfcharacter', 'name'=>'string'], +'SWFMovie::addFont' => ['mixed', 'font'=>'swffont'], +'SWFMovie::importChar' => ['SWFSprite', 'libswf'=>'string', 'name'=>'string'], +'SWFMovie::importFont' => ['SWFFontChar', 'libswf'=>'string', 'name'=>'string'], +'SWFMovie::labelFrame' => ['void', 'label'=>'string'], +'SWFMovie::namedAnchor' => [''], +'SWFMovie::nextFrame' => ['void'], +'SWFMovie::output' => ['int', 'compression='=>'int'], +'SWFMovie::protect' => [''], +'SWFMovie::remove' => ['void', 'instance'=>'object'], +'SWFMovie::save' => ['int', 'filename'=>'string', 'compression='=>'int'], +'SWFMovie::saveToFile' => ['int', 'x'=>'resource', 'compression='=>'int'], +'SWFMovie::setbackground' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], +'SWFMovie::setDimension' => ['void', 'width'=>'float', 'height'=>'float'], +'SWFMovie::setFrames' => ['void', 'number'=>'int'], +'SWFMovie::setRate' => ['void', 'rate'=>'float'], +'SWFMovie::startSound' => ['SWFSoundInstance', 'sound'=>'swfsound'], +'SWFMovie::stopSound' => ['void', 'sound'=>'swfsound'], +'SWFMovie::streamMP3' => ['int', 'mp3file'=>'mixed', 'skip='=>'float'], +'SWFMovie::writeExports' => ['void'], +'SWFPrebuiltClip::__construct' => ['void', 'file'=>''], +'SWFShape::__construct' => ['void'], +'SWFShape::addFill' => ['SWFFill', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int', 'bitmap='=>'swfbitmap', 'flags='=>'int', 'gradient='=>'swfgradient'], +'SWFShape::addFill\'1' => ['SWFFill', 'bitmap'=>'SWFBitmap', 'flags='=>'int'], +'SWFShape::addFill\'2' => ['SWFFill', 'gradient'=>'SWFGradient', 'flags='=>'int'], +'SWFShape::drawArc' => ['void', 'r'=>'float', 'startangle'=>'float', 'endangle'=>'float'], +'SWFShape::drawCircle' => ['void', 'r'=>'float'], +'SWFShape::drawCubic' => ['int', 'bx'=>'float', 'by'=>'float', 'cx'=>'float', 'cy'=>'float', 'dx'=>'float', 'dy'=>'float'], +'SWFShape::drawCubicTo' => ['int', 'bx'=>'float', 'by'=>'float', 'cx'=>'float', 'cy'=>'float', 'dx'=>'float', 'dy'=>'float'], +'SWFShape::drawCurve' => ['int', 'controldx'=>'float', 'controldy'=>'float', 'anchordx'=>'float', 'anchordy'=>'float', 'targetdx='=>'float', 'targetdy='=>'float'], +'SWFShape::drawCurveTo' => ['int', 'controlx'=>'float', 'controly'=>'float', 'anchorx'=>'float', 'anchory'=>'float', 'targetx='=>'float', 'targety='=>'float'], +'SWFShape::drawGlyph' => ['void', 'font'=>'swffont', 'character'=>'string', 'size='=>'int'], +'SWFShape::drawLine' => ['void', 'dx'=>'float', 'dy'=>'float'], +'SWFShape::drawLineTo' => ['void', 'x'=>'float', 'y'=>'float'], +'SWFShape::movePen' => ['void', 'dx'=>'float', 'dy'=>'float'], +'SWFShape::movePenTo' => ['void', 'x'=>'float', 'y'=>'float'], +'SWFShape::setLeftFill' => ['', 'fill'=>'swfgradient', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFShape::setLine' => ['', 'shape'=>'swfshape', 'width'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFShape::setRightFill' => ['', 'fill'=>'swfgradient', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFSound' => ['SWFSound', 'filename'=>'string', 'flags='=>'int'], +'SWFSound::__construct' => ['void', 'filename'=>'string', 'flags='=>'int'], +'SWFSoundInstance::loopCount' => ['void', 'point'=>'int'], +'SWFSoundInstance::loopInPoint' => ['void', 'point'=>'int'], +'SWFSoundInstance::loopOutPoint' => ['void', 'point'=>'int'], +'SWFSoundInstance::noMultiple' => ['void'], +'SWFSprite::__construct' => ['void'], +'SWFSprite::add' => ['void', 'object'=>'object'], +'SWFSprite::labelFrame' => ['void', 'label'=>'string'], +'SWFSprite::nextFrame' => ['void'], +'SWFSprite::remove' => ['void', 'object'=>'object'], +'SWFSprite::setFrames' => ['void', 'number'=>'int'], +'SWFSprite::startSound' => ['SWFSoundInstance', 'sount'=>'swfsound'], +'SWFSprite::stopSound' => ['void', 'sount'=>'swfsound'], +'SWFText::__construct' => ['void'], +'SWFText::addString' => ['void', 'string'=>'string'], +'SWFText::addUTF8String' => ['void', 'text'=>'string'], +'SWFText::getAscent' => ['float'], +'SWFText::getDescent' => ['float'], +'SWFText::getLeading' => ['float'], +'SWFText::getUTF8Width' => ['float', 'string'=>'string'], +'SWFText::getWidth' => ['float', 'string'=>'string'], +'SWFText::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], +'SWFText::setColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFText::setFont' => ['void', 'font'=>'swffont'], +'SWFText::setHeight' => ['void', 'height'=>'float'], +'SWFText::setSpacing' => ['void', 'spacing'=>'float'], +'SWFTextField::__construct' => ['void', 'flags='=>'int'], +'SWFTextField::addChars' => ['void', 'chars'=>'string'], +'SWFTextField::addString' => ['void', 'string'=>'string'], +'SWFTextField::align' => ['void', 'alignement'=>'int'], +'SWFTextField::setBounds' => ['void', 'width'=>'float', 'height'=>'float'], +'SWFTextField::setColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], +'SWFTextField::setFont' => ['void', 'font'=>'swffont'], +'SWFTextField::setHeight' => ['void', 'height'=>'float'], +'SWFTextField::setIndentation' => ['void', 'width'=>'float'], +'SWFTextField::setLeftMargin' => ['void', 'width'=>'float'], +'SWFTextField::setLineSpacing' => ['void', 'height'=>'float'], +'SWFTextField::setMargins' => ['void', 'left'=>'float', 'right'=>'float'], +'SWFTextField::setName' => ['void', 'name'=>'string'], +'SWFTextField::setPadding' => ['void', 'padding'=>'float'], +'SWFTextField::setRightMargin' => ['void', 'width'=>'float'], +'SWFVideoStream::__construct' => ['void', 'file='=>'string'], +'SWFVideoStream::getNumFrames' => ['int'], +'SWFVideoStream::setDimension' => ['void', 'x'=>'int', 'y'=>'int'], +'Swish::__construct' => ['void', 'index_names'=>'string'], +'Swish::getMetaList' => ['array', 'index_name'=>'string'], +'Swish::getPropertyList' => ['array', 'index_name'=>'string'], +'Swish::prepare' => ['object', 'query='=>'string'], +'Swish::query' => ['object', 'query'=>'string'], +'SwishResult::getMetaList' => ['array'], +'SwishResult::stem' => ['array', 'word'=>'string'], +'SwishResults::getParsedWords' => ['array', 'index_name'=>'string'], +'SwishResults::getRemovedStopwords' => ['array', 'index_name'=>'string'], +'SwishResults::nextResult' => ['object'], +'SwishResults::seekResult' => ['int', 'position'=>'int'], +'SwishSearch::execute' => ['object', 'query='=>'string'], +'SwishSearch::resetLimit' => [''], +'SwishSearch::setLimit' => ['', 'property'=>'string', 'low'=>'string', 'high'=>'string'], +'SwishSearch::setPhraseDelimiter' => ['', 'delimiter'=>'string'], +'SwishSearch::setSort' => ['', 'sort'=>'string'], +'SwishSearch::setStructure' => ['', 'structure'=>'int'], +'swoole\async::dnsLookup' => ['void', 'hostname'=>'string', 'callback'=>'callable'], +'swoole\async::read' => ['bool', 'filename'=>'string', 'callback'=>'callable', 'chunk_size='=>'integer', 'offset='=>'integer'], +'swoole\async::readFile' => ['void', 'filename'=>'string', 'callback'=>'callable'], +'swoole\async::set' => ['void', 'settings'=>'array'], +'swoole\async::write' => ['void', 'filename'=>'string', 'content'=>'string', 'offset='=>'integer', 'callback='=>'callable'], +'swoole\async::writeFile' => ['void', 'filename'=>'string', 'content'=>'string', 'callback='=>'callable', 'flags='=>'string'], +'swoole\atomic::add' => ['integer', 'add_value='=>'integer'], +'swoole\atomic::cmpset' => ['integer', 'cmp_value'=>'integer', 'new_value'=>'integer'], +'swoole\atomic::get' => ['integer'], +'swoole\atomic::set' => ['integer', 'value'=>'integer'], +'swoole\atomic::sub' => ['integer', 'sub_value='=>'integer'], +'swoole\buffer::__destruct' => ['void'], +'swoole\buffer::__toString' => ['string'], +'swoole\buffer::append' => ['integer', 'data'=>'string'], +'swoole\buffer::clear' => ['void'], +'swoole\buffer::expand' => ['integer', 'size'=>'integer'], +'swoole\buffer::read' => ['string', 'offset'=>'integer', 'length'=>'integer'], +'swoole\buffer::recycle' => ['void'], +'swoole\buffer::substr' => ['string', 'offset'=>'integer', 'length='=>'integer', 'remove='=>'bool'], +'swoole\buffer::write' => ['void', 'offset'=>'integer', 'data'=>'string'], +'swoole\channel::__destruct' => ['void'], +'swoole\channel::pop' => ['mixed'], +'swoole\channel::push' => ['bool', 'data'=>'string'], +'swoole\channel::stats' => ['array'], +'swoole\client::__destruct' => ['void'], +'swoole\client::close' => ['bool', 'force='=>'bool'], +'swoole\client::connect' => ['bool', 'host'=>'string', 'port='=>'integer', 'timeout='=>'integer', 'flag='=>'integer'], +'swoole\client::getpeername' => ['array'], +'swoole\client::getsockname' => ['array'], +'swoole\client::isConnected' => ['bool'], +'swoole\client::on' => ['void', 'event'=>'string', 'callback'=>'callable'], +'swoole\client::pause' => ['void'], +'swoole\client::pipe' => ['void', 'socket'=>'string'], +'swoole\client::recv' => ['void', 'size='=>'string', 'flag='=>'string'], +'swoole\client::resume' => ['void'], +'swoole\client::send' => ['integer', 'data'=>'string', 'flag='=>'string'], +'swoole\client::sendfile' => ['bool', 'filename'=>'string', 'offset='=>'int'], +'swoole\client::sendto' => ['bool', 'ip'=>'string', 'port'=>'integer', 'data'=>'string'], +'swoole\client::set' => ['void', 'settings'=>'array'], +'swoole\client::sleep' => ['void'], +'swoole\client::wakeup' => ['void'], +'swoole\connection\iterator::count' => ['int'], +'swoole\connection\iterator::current' => ['Connection'], +'swoole\connection\iterator::key' => ['int'], +'swoole\connection\iterator::next' => ['Connection'], +'swoole\connection\iterator::offsetExists' => ['bool', 'index'=>'int'], +'swoole\connection\iterator::offsetGet' => ['Connection', 'index'=>'string'], +'swoole\connection\iterator::offsetSet' => ['void', 'offset'=>'int', 'connection'=>'mixed'], +'swoole\connection\iterator::offsetUnset' => ['void', 'offset'=>'int'], +'swoole\connection\iterator::rewind' => ['void'], +'swoole\connection\iterator::valid' => ['bool'], +'swoole\coroutine::call_user_func' => ['mixed', 'callback'=>'callable', 'parameter='=>'mixed', '...args='=>'mixed'], +'swoole\coroutine::call_user_func_array' => ['mixed', 'callback'=>'callable', 'param_array'=>'array'], +'swoole\coroutine::cli_wait' => ['ReturnType'], +'swoole\coroutine::create' => ['ReturnType'], +'swoole\coroutine::getuid' => ['ReturnType'], +'swoole\coroutine::resume' => ['ReturnType'], +'swoole\coroutine::suspend' => ['ReturnType'], +'swoole\coroutine\client::__destruct' => ['ReturnType'], +'swoole\coroutine\client::close' => ['ReturnType'], +'swoole\coroutine\client::connect' => ['ReturnType'], +'swoole\coroutine\client::getpeername' => ['ReturnType'], +'swoole\coroutine\client::getsockname' => ['ReturnType'], +'swoole\coroutine\client::isConnected' => ['ReturnType'], +'swoole\coroutine\client::recv' => ['ReturnType'], +'swoole\coroutine\client::send' => ['ReturnType'], +'swoole\coroutine\client::sendfile' => ['ReturnType'], +'swoole\coroutine\client::sendto' => ['ReturnType'], +'swoole\coroutine\client::set' => ['ReturnType'], +'swoole\coroutine\http\client::__destruct' => ['ReturnType'], +'swoole\coroutine\http\client::addFile' => ['ReturnType'], +'swoole\coroutine\http\client::close' => ['ReturnType'], +'swoole\coroutine\http\client::execute' => ['ReturnType'], +'swoole\coroutine\http\client::get' => ['ReturnType'], +'swoole\coroutine\http\client::getDefer' => ['ReturnType'], +'swoole\coroutine\http\client::isConnected' => ['ReturnType'], +'swoole\coroutine\http\client::post' => ['ReturnType'], +'swoole\coroutine\http\client::recv' => ['ReturnType'], +'swoole\coroutine\http\client::set' => ['ReturnType'], +'swoole\coroutine\http\client::setCookies' => ['ReturnType'], +'swoole\coroutine\http\client::setData' => ['ReturnType'], +'swoole\coroutine\http\client::setDefer' => ['ReturnType'], +'swoole\coroutine\http\client::setHeaders' => ['ReturnType'], +'swoole\coroutine\http\client::setMethod' => ['ReturnType'], +'swoole\coroutine\mysql::__destruct' => ['ReturnType'], +'swoole\coroutine\mysql::close' => ['ReturnType'], +'swoole\coroutine\mysql::connect' => ['ReturnType'], +'swoole\coroutine\mysql::getDefer' => ['ReturnType'], +'swoole\coroutine\mysql::query' => ['ReturnType'], +'swoole\coroutine\mysql::recv' => ['ReturnType'], +'swoole\coroutine\mysql::setDefer' => ['ReturnType'], +'swoole\event::add' => ['bool', 'fd'=>'int', 'read_callback'=>'callable', 'write_callback='=>'callable', 'events='=>'string'], +'swoole\event::defer' => ['void', 'callback'=>'mixed'], +'swoole\event::del' => ['bool', 'fd'=>'string'], +'swoole\event::exit' => ['void'], +'swoole\event::set' => ['bool', 'fd'=>'int', 'read_callback='=>'string', 'write_callback='=>'string', 'events='=>'string'], +'swoole\event::wait' => ['void'], +'swoole\event::write' => ['void', 'fd'=>'string', 'data'=>'string'], +'swoole\http\client::__destruct' => ['void'], +'swoole\http\client::addFile' => ['void', 'path'=>'string', 'name'=>'string', 'type='=>'string', 'filename='=>'string', 'offset='=>'string'], +'swoole\http\client::close' => ['void'], +'swoole\http\client::download' => ['void', 'path'=>'string', 'file'=>'string', 'callback'=>'callable', 'offset='=>'integer'], +'swoole\http\client::execute' => ['void', 'path'=>'string', 'callback'=>'string'], +'swoole\http\client::get' => ['void', 'path'=>'string', 'callback'=>'callable'], +'swoole\http\client::isConnected' => ['bool'], +'swoole\http\client::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\http\client::post' => ['void', 'path'=>'string', 'data'=>'string', 'callback'=>'callable'], +'swoole\http\client::push' => ['void', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string'], +'swoole\http\client::set' => ['void', 'settings'=>'array'], +'swoole\http\client::setCookies' => ['void', 'cookies'=>'array'], +'swoole\http\client::setData' => ['ReturnType', 'data'=>'string'], +'swoole\http\client::setHeaders' => ['void', 'headers'=>'array'], +'swoole\http\client::setMethod' => ['void', 'method'=>'string'], +'swoole\http\client::upgrade' => ['void', 'path'=>'string', 'callback'=>'string'], +'swoole\http\request::__destruct' => ['void'], +'swoole\http\request::rawcontent' => ['string'], +'swoole\http\response::__destruct' => ['void'], +'swoole\http\response::cookie' => ['string', 'name'=>'string', 'value='=>'string', 'expires='=>'string', 'path='=>'string', 'domain='=>'string', 'secure='=>'string', 'httponly='=>'string'], +'swoole\http\response::end' => ['void', 'content='=>'string'], +'swoole\http\response::gzip' => ['ReturnType', 'compress_level='=>'string'], +'swoole\http\response::header' => ['void', 'key'=>'string', 'value'=>'string', 'ucwords='=>'string'], +'swoole\http\response::initHeader' => ['ReturnType'], +'swoole\http\response::rawcookie' => ['ReturnType', 'name'=>'string', 'value='=>'string', 'expires='=>'string', 'path='=>'string', 'domain='=>'string', 'secure='=>'string', 'httponly='=>'string'], +'swoole\http\response::sendfile' => ['ReturnType', 'filename'=>'string', 'offset='=>'int'], +'swoole\http\response::status' => ['ReturnType', 'http_code'=>'string'], +'swoole\http\response::write' => ['void', 'content'=>'string'], +'swoole\http\server::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\http\server::start' => ['void'], +'swoole\lock::__destruct' => ['void'], +'swoole\lock::lock' => ['void'], +'swoole\lock::lock_read' => ['void'], +'swoole\lock::trylock' => ['void'], +'swoole\lock::trylock_read' => ['void'], +'swoole\lock::unlock' => ['void'], +'swoole\mmap::open' => ['ReturnType', 'filename'=>'string', 'size='=>'string', 'offset='=>'string'], +'swoole\mysql::__destruct' => ['void'], +'swoole\mysql::close' => ['void'], +'swoole\mysql::connect' => ['void', 'server_config'=>'array', 'callback'=>'callable'], +'swoole\mysql::getBuffer' => ['ReturnType'], +'swoole\mysql::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\mysql::query' => ['ReturnType', 'sql'=>'string', 'callback'=>'callable'], +'swoole\process::__destruct' => ['void'], +'swoole\process::alarm' => ['void', 'interval_usec'=>'integer'], +'swoole\process::close' => ['void'], +'swoole\process::daemon' => ['void', 'nochdir='=>'bool', 'noclose='=>'bool'], +'swoole\process::exec' => ['ReturnType', 'exec_file'=>'string', 'args'=>'string'], +'swoole\process::exit' => ['void', 'exit_code='=>'string'], +'swoole\process::freeQueue' => ['void'], +'swoole\process::kill' => ['void', 'pid'=>'integer', 'signal_no='=>'string'], +'swoole\process::name' => ['void', 'process_name'=>'string'], +'swoole\process::pop' => ['mixed', 'maxsize='=>'integer'], +'swoole\process::push' => ['bool', 'data'=>'string'], +'swoole\process::read' => ['string', 'maxsize='=>'integer'], +'swoole\process::signal' => ['void', 'signal_no'=>'string', 'callback'=>'callable'], +'swoole\process::start' => ['void'], +'swoole\process::statQueue' => ['array'], +'swoole\process::useQueue' => ['bool', 'key'=>'integer', 'mode='=>'integer'], +'swoole\process::wait' => ['array', 'blocking='=>'bool'], +'swoole\process::write' => ['integer', 'data'=>'string'], +'swoole\redis\server::format' => ['ReturnType', 'type'=>'string', 'value='=>'string'], +'swoole\redis\server::setHandler' => ['ReturnType', 'command'=>'string', 'callback'=>'string', 'number_of_string_param='=>'string', 'type_of_array_param='=>'string'], +'swoole\redis\server::start' => ['ReturnType'], +'swoole\serialize::pack' => ['ReturnType', 'data'=>'string', 'is_fast='=>'int'], +'swoole\serialize::unpack' => ['ReturnType', 'data'=>'string', 'args='=>'string'], +'swoole\server::addlistener' => ['void', 'host'=>'string', 'port'=>'integer', 'socket_type'=>'string'], +'swoole\server::addProcess' => ['bool', 'process'=>'swoole_process'], +'swoole\server::after' => ['ReturnType', 'after_time_ms'=>'integer', 'callback'=>'callable', 'param='=>'string'], +'swoole\server::bind' => ['bool', 'fd'=>'integer', 'uid'=>'integer'], +'swoole\server::close' => ['bool', 'fd'=>'integer', 'reset='=>'bool'], +'swoole\server::confirm' => ['bool', 'fd'=>'integer'], +'swoole\server::connection_info' => ['array', 'fd'=>'integer', 'reactor_id='=>'integer'], +'swoole\server::connection_list' => ['array', 'start_fd'=>'integer', 'pagesize='=>'integer'], +'swoole\server::defer' => ['void', 'callback'=>'callable'], +'swoole\server::exist' => ['bool', 'fd'=>'integer'], +'swoole\server::finish' => ['void', 'data'=>'string'], +'swoole\server::getClientInfo' => ['ReturnType', 'fd'=>'integer', 'reactor_id='=>'integer'], +'swoole\server::getClientList' => ['array', 'start_fd'=>'integer', 'pagesize='=>'integer'], +'swoole\server::getLastError' => ['integer'], +'swoole\server::heartbeat' => ['mixed', 'if_close_connection'=>'bool'], +'swoole\server::listen' => ['bool', 'host'=>'string', 'port'=>'integer', 'socket_type'=>'string'], +'swoole\server::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\server::pause' => ['void', 'fd'=>'integer'], +'swoole\server::protect' => ['void', 'fd'=>'integer', 'is_protected='=>'bool'], +'swoole\server::reload' => ['bool'], +'swoole\server::resume' => ['void', 'fd'=>'integer'], +'swoole\server::send' => ['bool', 'fd'=>'integer', 'data'=>'string', 'reactor_id='=>'integer'], +'swoole\server::sendfile' => ['bool', 'fd'=>'integer', 'filename'=>'string', 'offset='=>'integer'], +'swoole\server::sendMessage' => ['bool', 'worker_id'=>'integer', 'data'=>'string'], +'swoole\server::sendto' => ['bool', 'ip'=>'string', 'port'=>'integer', 'data'=>'string', 'server_socket='=>'string'], +'swoole\server::sendwait' => ['bool', 'fd'=>'integer', 'data'=>'string'], +'swoole\server::set' => ['ReturnType', 'settings'=>'array'], +'swoole\server::shutdown' => ['void'], +'swoole\server::start' => ['void'], +'swoole\server::stats' => ['array'], +'swoole\server::stop' => ['bool', 'worker_id='=>'integer'], +'swoole\server::task' => ['mixed', 'data'=>'string', 'dst_worker_id='=>'integer', 'callback='=>'callable'], +'swoole\server::taskwait' => ['void', 'data'=>'string', 'timeout='=>'float', 'worker_id='=>'integer'], +'swoole\server::taskWaitMulti' => ['void', 'tasks'=>'array', 'timeout_ms='=>'double'], +'swoole\server::tick' => ['void', 'interval_ms'=>'integer', 'callback'=>'callable'], +'swoole\server\port::__destruct' => ['void'], +'swoole\server\port::on' => ['ReturnType', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\server\port::set' => ['void', 'settings'=>'array'], +'swoole\table::column' => ['ReturnType', 'name'=>'string', 'type'=>'string', 'size='=>'integer'], +'swoole\table::count' => ['integer'], +'swoole\table::create' => ['void'], +'swoole\table::current' => ['array'], +'swoole\table::decr' => ['ReturnType', 'key'=>'string', 'column'=>'string', 'decrby='=>'integer'], +'swoole\table::del' => ['void', 'key'=>'string'], +'swoole\table::destroy' => ['void'], +'swoole\table::exist' => ['bool', 'key'=>'string'], +'swoole\table::get' => ['integer', 'row_key'=>'string', 'column_key'=>'string'], +'swoole\table::incr' => ['void', 'key'=>'string', 'column'=>'string', 'incrby='=>'integer'], +'swoole\table::key' => ['string'], +'swoole\table::next' => ['ReturnType'], +'swoole\table::rewind' => ['void'], +'swoole\table::set' => ['VOID', 'key'=>'string', 'value'=>'array'], +'swoole\table::valid' => ['bool'], +'swoole\timer::after' => ['void', 'after_time_ms'=>'int', 'callback'=>'callable'], +'swoole\timer::clear' => ['void', 'timer_id'=>'integer'], +'swoole\timer::exists' => ['bool', 'timer_id'=>'integer'], +'swoole\timer::tick' => ['void', 'interval_ms'=>'integer', 'callback'=>'callable', 'param='=>'string'], +'swoole\websocket\server::exist' => ['bool', 'fd'=>'integer'], +'swoole\websocket\server::on' => ['ReturnType', 'event_name'=>'string', 'callback'=>'callable'], +'swoole\websocket\server::pack' => ['binary', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string', 'mask='=>'string'], +'swoole\websocket\server::push' => ['void', 'fd'=>'string', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string'], +'swoole\websocket\server::unpack' => ['string', 'data'=>'binary'], +'swoole_async_dns_lookup' => ['bool', 'hostname'=>'string', 'callback'=>'callable'], +'swoole_async_read' => ['bool', 'filename'=>'string', 'callback'=>'callable', 'chunk_size='=>'int', 'offset='=>'int'], +'swoole_async_readfile' => ['bool', 'filename'=>'string', 'callback'=>'string'], +'swoole_async_set' => ['void', 'settings'=>'array'], +'swoole_async_write' => ['bool', 'filename'=>'string', 'content'=>'string', 'offset='=>'int', 'callback='=>'callable'], +'swoole_async_writefile' => ['bool', 'filename'=>'string', 'content'=>'string', 'callback='=>'callable', 'flags='=>'int'], +'swoole_client_select' => ['int', 'read_array'=>'array', 'write_array'=>'array', 'error_array'=>'array', 'timeout='=>'float'], +'swoole_cpu_num' => ['int'], +'swoole_errno' => ['int'], +'swoole_event_add' => ['int', 'fd'=>'int', 'read_callback='=>'callable', 'write_callback='=>'callable', 'events='=>'int'], +'swoole_event_defer' => ['bool', 'callback'=>'callable'], +'swoole_event_del' => ['bool', 'fd'=>'int'], +'swoole_event_exit' => ['void'], +'swoole_event_set' => ['bool', 'fd'=>'int', 'read_callback='=>'callable', 'write_callback='=>'callable', 'events='=>'int'], +'swoole_event_wait' => ['void'], +'swoole_event_write' => ['bool', 'fd'=>'int', 'data'=>'string'], +'swoole_get_local_ip' => ['array'], +'swoole_last_error' => ['int'], +'swoole_load_module' => ['mixed', 'filename'=>'string'], +'swoole_select' => ['int', 'read_array'=>'array', 'write_array'=>'array', 'error_array'=>'array', 'timeout='=>'float'], +'swoole_set_process_name' => ['void', 'process_name'=>'string', 'size='=>'int'], +'swoole_strerror' => ['string', 'errno'=>'int', 'error_type='=>'int'], +'swoole_timer_after' => ['int', 'ms'=>'int', 'callback'=>'callable', 'param='=>'mixed'], +'swoole_timer_exists' => ['bool', 'timer_id'=>'int'], +'swoole_timer_tick' => ['int', 'ms'=>'int', 'callback'=>'callable', 'param='=>'mixed'], +'swoole_version' => ['string'], +'symbolObj::__construct' => ['void', 'map'=>'mapObj', 'symbolname'=>'string'], +'symbolObj::free' => ['void'], +'symbolObj::getPatternArray' => ['array'], +'symbolObj::getPointsArray' => ['array'], +'symbolObj::ms_newSymbolObj' => ['int', 'map'=>'mapObj', 'symbolname'=>'string'], +'symbolObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'symbolObj::setImagePath' => ['int', 'filename'=>'string'], +'symbolObj::setPattern' => ['int', 'int'=>'array'], +'symbolObj::setPoints' => ['int', 'double'=>'array'], +'symlink' => ['bool', 'target'=>'string', 'link'=>'string'], +'SyncEvent::__construct' => ['void', 'name='=>'string', 'manual='=>'bool'], +'SyncEvent::fire' => ['bool'], +'SyncEvent::reset' => ['bool'], +'SyncEvent::wait' => ['bool', 'wait='=>'int'], +'SyncMutex::__construct' => ['void', 'name='=>'string'], +'SyncMutex::lock' => ['bool', 'wait='=>'int'], +'SyncMutex::unlock' => ['bool', 'all='=>'bool'], +'SyncReaderWriter::__construct' => ['void', 'name='=>'string', 'autounlock='=>'bool'], +'SyncReaderWriter::readlock' => ['bool', 'wait='=>'int'], +'SyncReaderWriter::readunlock' => ['bool'], +'SyncReaderWriter::writelock' => ['bool', 'wait='=>'int'], +'SyncReaderWriter::writeunlock' => ['bool'], +'SyncSemaphore::__construct' => ['void', 'name='=>'string', 'initialval='=>'int', 'autounlock='=>'bool'], +'SyncSemaphore::lock' => ['bool', 'wait='=>'int'], +'SyncSemaphore::unlock' => ['bool', '&w_prevcount='=>'int'], +'SyncSharedMemory::__construct' => ['void', 'name'=>'string', 'size'=>'int'], +'SyncSharedMemory::first' => ['bool'], +'SyncSharedMemory::read' => ['string', 'start='=>'int', 'length='=>'int'], +'SyncSharedMemory::size' => ['int'], +'SyncSharedMemory::write' => ['int', 'string='=>'string', 'start='=>'int'], +'sys_get_temp_dir' => ['string'], +'sys_getloadavg' => ['array'], +'syslog' => ['true', 'priority'=>'int', 'message'=>'string'], +'system' => ['string|false', 'command'=>'string', '&w_result_code='=>'int'], +'taint' => ['bool', '&rw_string'=>'string', '&...w_other_strings='=>'string'], +'tan' => ['float', 'num'=>'float'], +'tanh' => ['float', 'num'=>'float'], +'tcpwrap_check' => ['bool', 'daemon'=>'string', 'address'=>'string', 'user='=>'string', 'nodns='=>'bool'], +'tempnam' => ['string|false', 'directory'=>'string', 'prefix'=>'string'], +'textdomain' => ['string', 'domain'=>'?string'], +'Thread::__construct' => ['void'], +'Thread::addRef' => ['void'], +'Thread::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], +'Thread::count' => ['int'], +'Thread::delRef' => ['void'], +'Thread::detach' => ['void'], +'Thread::extend' => ['bool', 'class'=>'string'], +'Thread::getCreatorId' => ['int'], +'Thread::getCurrentThread' => ['Thread'], +'Thread::getCurrentThreadId' => ['int'], +'Thread::getRefCount' => ['int'], +'Thread::getTerminationInfo' => ['array'], +'Thread::getThreadId' => ['int'], +'Thread::globally' => ['mixed'], +'Thread::isGarbage' => ['bool'], +'Thread::isJoined' => ['bool'], +'Thread::isRunning' => ['bool'], +'Thread::isStarted' => ['bool'], +'Thread::isTerminated' => ['bool'], +'Thread::isWaiting' => ['bool'], +'Thread::join' => ['bool'], +'Thread::kill' => ['void'], +'Thread::lock' => ['bool'], +'Thread::merge' => ['bool', 'from'=>'', 'overwrite='=>'mixed'], +'Thread::notify' => ['bool'], +'Thread::notifyOne' => ['bool'], +'Thread::offsetExists' => ['bool', 'offset'=>'mixed'], +'Thread::offsetGet' => ['mixed', 'offset'=>'mixed'], +'Thread::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'Thread::offsetUnset' => ['void', 'offset'=>'mixed'], +'Thread::pop' => ['bool'], +'Thread::run' => ['void'], +'Thread::setGarbage' => ['void'], +'Thread::shift' => ['bool'], +'Thread::start' => ['bool', 'options='=>'int'], +'Thread::synchronized' => ['mixed', 'block'=>'Closure', '_='=>'mixed'], +'Thread::unlock' => ['bool'], +'Thread::wait' => ['bool', 'timeout='=>'int'], +'Threaded::__construct' => ['void'], +'Threaded::addRef' => ['void'], +'Threaded::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], +'Threaded::count' => ['int'], +'Threaded::delRef' => ['void'], +'Threaded::extend' => ['bool', 'class'=>'string'], +'Threaded::from' => ['Threaded', 'run'=>'Closure', 'construct='=>'Closure', 'args='=>'array'], +'Threaded::getRefCount' => ['int'], +'Threaded::getTerminationInfo' => ['array'], +'Threaded::isGarbage' => ['bool'], +'Threaded::isRunning' => ['bool'], +'Threaded::isTerminated' => ['bool'], +'Threaded::isWaiting' => ['bool'], +'Threaded::lock' => ['bool'], +'Threaded::merge' => ['bool', 'from'=>'mixed', 'overwrite='=>'bool'], +'Threaded::notify' => ['bool'], +'Threaded::notifyOne' => ['bool'], +'Threaded::offsetExists' => ['bool', 'offset'=>'mixed'], +'Threaded::offsetGet' => ['mixed', 'offset'=>'mixed'], +'Threaded::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'Threaded::offsetUnset' => ['void', 'offset'=>'mixed'], +'Threaded::pop' => ['bool'], +'Threaded::run' => ['void'], +'Threaded::setGarbage' => ['void'], +'Threaded::shift' => ['mixed'], +'Threaded::synchronized' => ['mixed', 'block'=>'Closure', '...args='=>'mixed'], +'Threaded::unlock' => ['bool'], +'Threaded::wait' => ['bool', 'timeout='=>'int'], +'Throwable::__toString' => ['string'], +'Throwable::getCode' => ['int|string'], +'Throwable::getFile' => ['string'], +'Throwable::getLine' => ['int'], +'Throwable::getMessage' => ['string'], +'Throwable::getPrevious' => ['?Throwable'], +'Throwable::getTrace' => ['list\',args?:array}>'], +'Throwable::getTraceAsString' => ['string'], +'tidy::__construct' => ['void', 'filename='=>'?string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], +'tidy::body' => ['?tidyNode'], +'tidy::cleanRepair' => ['bool'], +'tidy::diagnose' => ['bool'], +'tidy::getConfig' => ['array'], +'tidy::getHtmlVer' => ['int'], +'tidy::getOpt' => ['string|int|bool', 'option'=>'string'], +'tidy::getOptDoc' => ['string', 'option'=>'string'], +'tidy::getRelease' => ['string'], +'tidy::getStatus' => ['int'], +'tidy::head' => ['?tidyNode'], +'tidy::html' => ['?tidyNode'], +'tidy::isXhtml' => ['bool'], +'tidy::isXml' => ['bool'], +'tidy::parseFile' => ['bool', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], +'tidy::parseString' => ['bool', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], +'tidy::repairFile' => ['string', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], +'tidy::repairString' => ['string', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], +'tidy::root' => ['?tidyNode'], +'tidy_access_count' => ['int', 'tidy'=>'tidy'], +'tidy_clean_repair' => ['bool', 'tidy'=>'tidy'], +'tidy_config_count' => ['int', 'tidy'=>'tidy'], +'tidy_diagnose' => ['bool', 'tidy'=>'tidy'], +'tidy_error_count' => ['int', 'tidy'=>'tidy'], +'tidy_get_body' => ['?tidyNode', 'tidy'=>'tidy'], +'tidy_get_config' => ['array', 'tidy'=>'tidy'], +'tidy_get_error_buffer' => ['string', 'tidy'=>'tidy'], +'tidy_get_head' => ['?tidyNode', 'tidy'=>'tidy'], +'tidy_get_html' => ['?tidyNode', 'tidy'=>'tidy'], +'tidy_get_html_ver' => ['int', 'tidy'=>'tidy'], +'tidy_get_opt_doc' => ['string', 'tidy'=>'tidy', 'option'=>'string'], +'tidy_get_output' => ['string', 'tidy'=>'tidy'], +'tidy_get_release' => ['string'], +'tidy_get_root' => ['?tidyNode', 'tidy'=>'tidy'], +'tidy_get_status' => ['int', 'tidy'=>'tidy'], +'tidy_getopt' => ['string|int|bool', 'tidy'=>'tidy', 'option'=>'string'], +'tidy_is_xhtml' => ['bool', 'tidy'=>'tidy'], +'tidy_is_xml' => ['bool', 'tidy'=>'tidy'], +'tidy_load_config' => ['void', 'filename'=>'string', 'encoding'=>'string'], +'tidy_parse_file' => ['tidy', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], +'tidy_parse_string' => ['tidy', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], +'tidy_repair_file' => ['string', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], +'tidy_repair_string' => ['string', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], +'tidy_reset_config' => ['bool'], +'tidy_save_config' => ['bool', 'filename'=>'string'], +'tidy_set_encoding' => ['bool', 'encoding'=>'string'], +'tidy_setopt' => ['bool', 'option'=>'string', 'value'=>'mixed'], +'tidy_warning_count' => ['int', 'tidy'=>'tidy'], +'tidyNode::__construct' => ['void'], +'tidyNode::getParent' => ['?tidyNode'], +'tidyNode::hasChildren' => ['bool'], +'tidyNode::hasSiblings' => ['bool'], +'tidyNode::isAsp' => ['bool'], +'tidyNode::isComment' => ['bool'], +'tidyNode::isHtml' => ['bool'], +'tidyNode::isJste' => ['bool'], +'tidyNode::isPhp' => ['bool'], +'tidyNode::isText' => ['bool'], +'time' => ['positive-int'], +'time_nanosleep' => ['array{0:0|positive-int,1:0|positive-int}|bool', 'seconds'=>'positive-int', 'nanoseconds'=>'positive-int'], +'time_sleep_until' => ['bool', 'timestamp'=>'float'], +'timezone_abbreviations_list' => ['array>'], +'timezone_identifiers_list' => ['list', 'timezoneGroup='=>'int', 'countryCode='=>'?string'], +'timezone_location_get' => ['array|false', 'object'=>'DateTimeZone'], +'timezone_name_from_abbr' => ['string|false', 'abbr'=>'string', 'utcOffset='=>'int', 'isDST='=>'int'], +'timezone_name_get' => ['string', 'object'=>'DateTimeZone'], +'timezone_offset_get' => ['int', 'object'=>'DateTimeZone', 'datetime'=>'DateTimeInterface'], +'timezone_open' => ['DateTimeZone|false', 'timezone'=>'string'], +'timezone_transitions_get' => ['list|false', 'object'=>'DateTimeZone', 'timestampBegin='=>'int', 'timestampEnd='=>'int'], +'timezone_version_get' => ['string'], +'tmpfile' => ['resource|false'], +'token_get_all' => ['list', 'code'=>'string', 'flags='=>'int'], +'token_name' => ['string', 'id'=>'int'], +'TokyoTyrant::__construct' => ['void', 'host='=>'string', 'port='=>'int', 'options='=>'array'], +'TokyoTyrant::add' => ['int|float', 'key'=>'string', 'increment'=>'float', 'type='=>'int'], +'TokyoTyrant::connect' => ['TokyoTyrant', 'host'=>'string', 'port='=>'int', 'options='=>'array'], +'TokyoTyrant::connectUri' => ['TokyoTyrant', 'uri'=>'string'], +'TokyoTyrant::copy' => ['TokyoTyrant', 'path'=>'string'], +'TokyoTyrant::ext' => ['string', 'name'=>'string', 'options'=>'int', 'key'=>'string', 'value'=>'string'], +'TokyoTyrant::fwmKeys' => ['array', 'prefix'=>'string', 'max_recs'=>'int'], +'TokyoTyrant::get' => ['array', 'keys'=>'mixed'], +'TokyoTyrant::getIterator' => ['TokyoTyrantIterator'], +'TokyoTyrant::num' => ['int'], +'TokyoTyrant::out' => ['string', 'keys'=>'mixed'], +'TokyoTyrant::put' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], +'TokyoTyrant::putCat' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], +'TokyoTyrant::putKeep' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], +'TokyoTyrant::putNr' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], +'TokyoTyrant::putShl' => ['mixed', 'key'=>'string', 'value'=>'string', 'width'=>'int'], +'TokyoTyrant::restore' => ['mixed', 'log_dir'=>'string', 'timestamp'=>'int', 'check_consistency='=>'bool'], +'TokyoTyrant::setMaster' => ['mixed', 'host'=>'string', 'port'=>'int', 'timestamp'=>'int', 'check_consistency='=>'bool'], +'TokyoTyrant::size' => ['int', 'key'=>'string'], +'TokyoTyrant::stat' => ['array'], +'TokyoTyrant::sync' => ['mixed'], +'TokyoTyrant::tune' => ['TokyoTyrant', 'timeout'=>'float', 'options='=>'int'], +'TokyoTyrant::vanish' => ['mixed'], +'TokyoTyrantIterator::__construct' => ['void', 'object'=>'mixed'], +'TokyoTyrantIterator::current' => ['mixed'], +'TokyoTyrantIterator::key' => ['mixed'], +'TokyoTyrantIterator::next' => ['mixed'], +'TokyoTyrantIterator::rewind' => ['void'], +'TokyoTyrantIterator::valid' => ['bool'], +'TokyoTyrantQuery::__construct' => ['void', 'table'=>'TokyoTyrantTable'], +'TokyoTyrantQuery::addCond' => ['mixed', 'name'=>'string', 'op'=>'int', 'expr'=>'string'], +'TokyoTyrantQuery::count' => ['int'], +'TokyoTyrantQuery::current' => ['array'], +'TokyoTyrantQuery::hint' => ['string'], +'TokyoTyrantQuery::key' => ['string'], +'TokyoTyrantQuery::metaSearch' => ['array', 'queries'=>'array', 'type'=>'int'], +'TokyoTyrantQuery::next' => ['array'], +'TokyoTyrantQuery::out' => ['TokyoTyrantQuery'], +'TokyoTyrantQuery::rewind' => ['bool'], +'TokyoTyrantQuery::search' => ['array'], +'TokyoTyrantQuery::setLimit' => ['mixed', 'max='=>'int', 'skip='=>'int'], +'TokyoTyrantQuery::setOrder' => ['mixed', 'name'=>'string', 'type'=>'int'], +'TokyoTyrantQuery::valid' => ['bool'], +'TokyoTyrantTable::add' => ['void', 'key'=>'string', 'increment'=>'mixed', 'type='=>'string'], +'TokyoTyrantTable::genUid' => ['int'], +'TokyoTyrantTable::get' => ['array', 'keys'=>'mixed'], +'TokyoTyrantTable::getIterator' => ['TokyoTyrantIterator'], +'TokyoTyrantTable::getQuery' => ['TokyoTyrantQuery'], +'TokyoTyrantTable::out' => ['void', 'keys'=>'mixed'], +'TokyoTyrantTable::put' => ['int', 'key'=>'string', 'columns'=>'array'], +'TokyoTyrantTable::putCat' => ['void', 'key'=>'string', 'columns'=>'array'], +'TokyoTyrantTable::putKeep' => ['void', 'key'=>'string', 'columns'=>'array'], +'TokyoTyrantTable::putNr' => ['void', 'keys'=>'mixed', 'value='=>'string'], +'TokyoTyrantTable::putShl' => ['void', 'key'=>'string', 'value'=>'string', 'width'=>'int'], +'TokyoTyrantTable::setIndex' => ['mixed', 'column'=>'string', 'type'=>'int'], +'touch' => ['bool', 'filename'=>'string', 'mtime='=>'?int', 'atime='=>'?int'], +'trader_acos' => ['array', 'real'=>'array'], +'trader_ad' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array'], +'trader_add' => ['array', 'real0'=>'array', 'real1'=>'array'], +'trader_adosc' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int'], +'trader_adx' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_adxr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_apo' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'mAType='=>'int'], +'trader_aroon' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], +'trader_aroonosc' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], +'trader_asin' => ['array', 'real'=>'array'], +'trader_atan' => ['array', 'real'=>'array'], +'trader_atr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_avgprice' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_bbands' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDevUp='=>'float', 'nbDevDn='=>'float', 'mAType='=>'int'], +'trader_beta' => ['array', 'real0'=>'array', 'real1'=>'array', 'timePeriod='=>'int'], +'trader_bop' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cci' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_cdl2crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3blackcrows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3inside' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3linestrike' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3outside' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3starsinsouth' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdl3whitesoldiers' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlabandonedbaby' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdladvanceblock' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlbelthold' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlbreakaway' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlclosingmarubozu' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlconcealbabyswall' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlcounterattack' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdldarkcloudcover' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdldoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdldojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdldragonflydoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlengulfing' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdleveningdojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdleveningstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdlgapsidesidewhite' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlgravestonedoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhammer' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhangingman' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlharami' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlharamicross' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhighwave' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhikkake' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhikkakemod' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlhomingpigeon' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlidentical3crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlinneck' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlinvertedhammer' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlkicking' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlkickingbylength' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlladderbottom' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdllongleggeddoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdllongline' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlmarubozu' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlmatchinglow' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlmathold' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdlmorningdojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdlmorningstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], +'trader_cdlonneck' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlpiercing' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlrickshawman' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlrisefall3methods' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlseparatinglines' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlshootingstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlshortline' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlspinningtop' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlstalledpattern' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlsticksandwich' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdltakuri' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdltasukigap' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlthrusting' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdltristar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlunique3river' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlupsidegap2crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_cdlxsidegap3methods' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_ceil' => ['array', 'real'=>'array'], +'trader_cmo' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_correl' => ['array', 'real0'=>'array', 'real1'=>'array', 'timePeriod='=>'int'], +'trader_cos' => ['array', 'real'=>'array'], +'trader_cosh' => ['array', 'real'=>'array'], +'trader_dema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_div' => ['array', 'real0'=>'array', 'real1'=>'array'], +'trader_dx' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_ema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_errno' => ['int'], +'trader_exp' => ['array', 'real'=>'array'], +'trader_floor' => ['array', 'real'=>'array'], +'trader_get_compat' => ['int'], +'trader_get_unstable_period' => ['int', 'functionId'=>'int'], +'trader_ht_dcperiod' => ['array', 'real'=>'array'], +'trader_ht_dcphase' => ['array', 'real'=>'array'], +'trader_ht_phasor' => ['array', 'real'=>'array'], +'trader_ht_sine' => ['array', 'real'=>'array'], +'trader_ht_trendline' => ['array', 'real'=>'array'], +'trader_ht_trendmode' => ['array', 'real'=>'array'], +'trader_kama' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_linearreg' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_linearreg_angle' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_linearreg_intercept' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_linearreg_slope' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_ln' => ['array', 'real'=>'array'], +'trader_log10' => ['array', 'real'=>'array'], +'trader_ma' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'mAType='=>'int'], +'trader_macd' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'signalPeriod='=>'int'], +'trader_macdext' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'fastMAType='=>'int', 'slowPeriod='=>'int', 'slowMAType='=>'int', 'signalPeriod='=>'int', 'signalMAType='=>'int'], +'trader_macdfix' => ['array', 'real'=>'array', 'signalPeriod='=>'int'], +'trader_mama' => ['array', 'real'=>'array', 'fastLimit='=>'float', 'slowLimit='=>'float'], +'trader_mavp' => ['array', 'real'=>'array', 'periods'=>'array', 'minPeriod='=>'int', 'maxPeriod='=>'int', 'mAType='=>'int'], +'trader_max' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_maxindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_medprice' => ['array', 'high'=>'array', 'low'=>'array'], +'trader_mfi' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array', 'timePeriod='=>'int'], +'trader_midpoint' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_midprice' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], +'trader_min' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_minindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_minmax' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_minmaxindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_minus_di' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_minus_dm' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], +'trader_mom' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_mult' => ['array', 'real0'=>'array', 'real1'=>'array'], +'trader_natr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_obv' => ['array', 'real'=>'array', 'volume'=>'array'], +'trader_plus_di' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_plus_dm' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], +'trader_ppo' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'mAType='=>'int'], +'trader_roc' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_rocp' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_rocr' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_rocr100' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_rsi' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_sar' => ['array', 'high'=>'array', 'low'=>'array', 'acceleration='=>'float', 'maximum='=>'float'], +'trader_sarext' => ['array', 'high'=>'array', 'low'=>'array', 'startValue='=>'float', 'offsetOnReverse='=>'float', 'accelerationInitLong='=>'float', 'accelerationLong='=>'float', 'accelerationMaxLong='=>'float', 'accelerationInitShort='=>'float', 'accelerationShort='=>'float', 'accelerationMaxShort='=>'float'], +'trader_set_compat' => ['void', 'compatId'=>'int'], +'trader_set_unstable_period' => ['void', 'functionId'=>'int', 'timePeriod'=>'int'], +'trader_sin' => ['array', 'real'=>'array'], +'trader_sinh' => ['array', 'real'=>'array'], +'trader_sma' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_sqrt' => ['array', 'real'=>'array'], +'trader_stddev' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDev='=>'float'], +'trader_stoch' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'fastK_Period='=>'int', 'slowK_Period='=>'int', 'slowK_MAType='=>'int', 'slowD_Period='=>'int', 'slowD_MAType='=>'int'], +'trader_stochf' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'fastK_Period='=>'int', 'fastD_Period='=>'int', 'fastD_MAType='=>'int'], +'trader_stochrsi' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'fastK_Period='=>'int', 'fastD_Period='=>'int', 'fastD_MAType='=>'int'], +'trader_sub' => ['array', 'real0'=>'array', 'real1'=>'array'], +'trader_sum' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_t3' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'vFactor='=>'float'], +'trader_tan' => ['array', 'real'=>'array'], +'trader_tanh' => ['array', 'real'=>'array'], +'trader_tema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_trange' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_trima' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_trix' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_tsf' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trader_typprice' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_ultosc' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod1='=>'int', 'timePeriod2='=>'int', 'timePeriod3='=>'int'], +'trader_var' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDev='=>'float'], +'trader_wclprice' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], +'trader_willr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], +'trader_wma' => ['array', 'real'=>'array', 'timePeriod='=>'int'], +'trait_exists' => ['bool', 'trait'=>'string', 'autoload='=>'bool'], +'Transliterator::create' => ['?Transliterator', 'id'=>'string', 'direction='=>'int'], +'Transliterator::createFromRules' => ['?Transliterator', 'rules'=>'string', 'direction='=>'int'], +'Transliterator::createInverse' => ['?Transliterator'], +'Transliterator::getErrorCode' => ['int'], +'Transliterator::getErrorMessage' => ['string'], +'Transliterator::listIDs' => ['array'], +'Transliterator::transliterate' => ['string|false', 'subject'=>'string', 'start='=>'int', 'end='=>'int'], +'transliterator_create' => ['?Transliterator', 'id'=>'string', 'direction='=>'int'], +'transliterator_create_from_rules' => ['?Transliterator', 'rules'=>'string', 'direction='=>'int'], +'transliterator_create_inverse' => ['?Transliterator', 'transliterator'=>'Transliterator'], +'transliterator_get_error_code' => ['int', 'transliterator'=>'Transliterator'], +'transliterator_get_error_message' => ['string', 'transliterator'=>'Transliterator'], +'transliterator_list_ids' => ['array'], +'transliterator_transliterate' => ['string|false', 'transliterator'=>'Transliterator|string', 'string'=>'string', 'start='=>'int', 'end='=>'int'], +'trigger_error' => ['bool', 'message'=>'string', 'error_level='=>'256|512|1024|16384'], +'trim' => ['string', 'string'=>'string', 'characters='=>'string'], +'TypeError::__clone' => ['void'], +'TypeError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'TypeError::__toString' => ['string'], +'TypeError::getCode' => ['int'], +'TypeError::getFile' => ['string'], +'TypeError::getLine' => ['int'], +'TypeError::getMessage' => ['string'], +'TypeError::getPrevious' => ['?Throwable'], +'TypeError::getTrace' => ['list\',args?:array}>'], +'TypeError::getTraceAsString' => ['string'], +'uasort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], +'ucfirst' => ['string', 'string'=>'string'], +'UConverter::__construct' => ['void', 'destination_encoding='=>'?string', 'source_encoding='=>'?string'], +'UConverter::convert' => ['string', 'string'=>'string', 'reverse='=>'bool'], +'UConverter::fromUCallback' => ['mixed', 'reason'=>'int', 'source'=>'string', 'codePoint'=>'string', '&w_error'=>'int'], +'UConverter::getAliases' => ['array|false|null', 'name'=>'string'], +'UConverter::getAvailable' => ['array'], +'UConverter::getDestinationEncoding' => ['string|false|null'], +'UConverter::getDestinationType' => ['int|false|null'], +'UConverter::getErrorCode' => ['int'], +'UConverter::getErrorMessage' => ['?string'], +'UConverter::getSourceEncoding' => ['string|false|null'], +'UConverter::getSourceType' => ['int|false|null'], +'UConverter::getStandards' => ['?array'], +'UConverter::getSubstChars' => ['string|false|null'], +'UConverter::reasonText' => ['string', 'reason='=>'int'], +'UConverter::setDestinationEncoding' => ['bool', 'encoding'=>'string'], +'UConverter::setSourceEncoding' => ['bool', 'encoding'=>'string'], +'UConverter::setSubstChars' => ['bool', 'chars'=>'string'], +'UConverter::toUCallback' => ['string|int|array|null', 'reason'=>'int', 'source'=>'string', 'codeUnits'=>'string', '&w_error'=>'int'], +'UConverter::transcode' => ['string', 'string'=>'string', 'toEncoding'=>'string', 'fromEncoding'=>'string', 'options='=>'?array'], +'ucwords' => ['string', 'string'=>'string', 'separators='=>'string'], +'udm_add_search_limit' => ['bool', 'agent'=>'resource', 'var'=>'int', 'value'=>'string'], +'udm_alloc_agent' => ['resource', 'dbaddr'=>'string', 'dbmode='=>'string'], +'udm_alloc_agent_array' => ['resource', 'databases'=>'array'], +'udm_api_version' => ['int'], +'udm_cat_list' => ['array', 'agent'=>'resource', 'category'=>'string'], +'udm_cat_path' => ['array', 'agent'=>'resource', 'category'=>'string'], +'udm_check_charset' => ['bool', 'agent'=>'resource', 'charset'=>'string'], +'udm_check_stored' => ['int', 'agent'=>'', 'link'=>'int', 'doc_id'=>'string'], +'udm_clear_search_limits' => ['bool', 'agent'=>'resource'], +'udm_close_stored' => ['int', 'agent'=>'', 'link'=>'int'], +'udm_crc32' => ['int', 'agent'=>'resource', 'string'=>'string'], +'udm_errno' => ['int', 'agent'=>'resource'], +'udm_error' => ['string', 'agent'=>'resource'], +'udm_find' => ['resource', 'agent'=>'resource', 'query'=>'string'], +'udm_free_agent' => ['int', 'agent'=>'resource'], +'udm_free_ispell_data' => ['bool', 'agent'=>'int'], +'udm_free_res' => ['bool', 'res'=>'resource'], +'udm_get_doc_count' => ['int', 'agent'=>'resource'], +'udm_get_res_field' => ['string', 'res'=>'resource', 'row'=>'int', 'field'=>'int'], +'udm_get_res_param' => ['string', 'res'=>'resource', 'param'=>'int'], +'udm_hash32' => ['int', 'agent'=>'resource', 'string'=>'string'], +'udm_load_ispell_data' => ['bool', 'agent'=>'resource', 'var'=>'int', 'val1'=>'string', 'val2'=>'string', 'flag'=>'int'], +'udm_open_stored' => ['int', 'agent'=>'', 'storedaddr'=>'string'], +'udm_set_agent_param' => ['bool', 'agent'=>'resource', 'var'=>'int', 'val'=>'string'], +'ui\area::onDraw' => ['', 'pen'=>'UI\Draw\Pen', 'areaSize'=>'UI\Size', 'clipPoint'=>'UI\Point', 'clipSize'=>'UI\Size'], +'ui\area::onKey' => ['', 'key'=>'string', 'ext'=>'int', 'flags'=>'int'], +'ui\area::onMouse' => ['', 'areaPoint'=>'UI\Point', 'areaSize'=>'UI\Size', 'flags'=>'int'], +'ui\area::redraw' => [''], +'ui\area::scrollTo' => ['', 'point'=>'UI\Point', 'size'=>'UI\Size'], +'ui\area::setSize' => ['', 'size'=>'UI\Size'], +'ui\control::destroy' => [''], +'ui\control::disable' => [''], +'ui\control::enable' => [''], +'ui\control::getParent' => ['UI\Control'], +'ui\control::getTopLevel' => ['int'], +'ui\control::hide' => [''], +'ui\control::isEnabled' => ['bool'], +'ui\control::isVisible' => ['bool'], +'ui\control::setParent' => ['', 'parent'=>'UI\Control'], +'ui\control::show' => [''], +'ui\controls\box::append' => ['int', 'control'=>'Control', 'stretchy='=>'bool'], +'ui\controls\box::delete' => ['bool', 'index'=>'int'], +'ui\controls\box::getOrientation' => ['int'], +'ui\controls\box::isPadded' => ['bool'], +'ui\controls\box::setPadded' => ['', 'padded'=>'bool'], +'ui\controls\button::getText' => ['string'], +'ui\controls\button::onClick' => [''], +'ui\controls\button::setText' => ['', 'text'=>'string'], +'ui\controls\check::getText' => ['string'], +'ui\controls\check::isChecked' => ['bool'], +'ui\controls\check::onToggle' => [''], +'ui\controls\check::setChecked' => ['', 'checked'=>'bool'], +'ui\controls\check::setText' => ['', 'text'=>'string'], +'ui\controls\colorbutton::getColor' => ['UI\Color'], +'ui\controls\colorbutton::onChange' => [''], +'ui\controls\combo::append' => ['', 'text'=>'string'], +'ui\controls\combo::getSelected' => ['int'], +'ui\controls\combo::onSelected' => [''], +'ui\controls\combo::setSelected' => ['', 'index'=>'int'], +'ui\controls\editablecombo::append' => ['', 'text'=>'string'], +'ui\controls\editablecombo::getText' => ['string'], +'ui\controls\editablecombo::onChange' => [''], +'ui\controls\editablecombo::setText' => ['', 'text'=>'string'], +'ui\controls\entry::getText' => ['string'], +'ui\controls\entry::isReadOnly' => ['bool'], +'ui\controls\entry::onChange' => [''], +'ui\controls\entry::setReadOnly' => ['', 'readOnly'=>'bool'], +'ui\controls\entry::setText' => ['', 'text'=>'string'], +'ui\controls\form::append' => ['int', 'label'=>'string', 'control'=>'UI\Control', 'stretchy='=>'bool'], +'ui\controls\form::delete' => ['bool', 'index'=>'int'], +'ui\controls\form::isPadded' => ['bool'], +'ui\controls\form::setPadded' => ['', 'padded'=>'bool'], +'ui\controls\grid::append' => ['', 'control'=>'UI\Control', 'left'=>'int', 'top'=>'int', 'xspan'=>'int', 'yspan'=>'int', 'hexpand'=>'bool', 'halign'=>'int', 'vexpand'=>'bool', 'valign'=>'int'], +'ui\controls\grid::isPadded' => ['bool'], +'ui\controls\grid::setPadded' => ['', 'padding'=>'bool'], +'ui\controls\group::append' => ['', 'control'=>'UI\Control'], +'ui\controls\group::getTitle' => ['string'], +'ui\controls\group::hasMargin' => ['bool'], +'ui\controls\group::setMargin' => ['', 'margin'=>'bool'], +'ui\controls\group::setTitle' => ['', 'title'=>'string'], +'ui\controls\label::getText' => ['string'], +'ui\controls\label::setText' => ['', 'text'=>'string'], +'ui\controls\multilineentry::append' => ['', 'text'=>'string'], +'ui\controls\multilineentry::getText' => ['string'], +'ui\controls\multilineentry::isReadOnly' => ['bool'], +'ui\controls\multilineentry::onChange' => [''], +'ui\controls\multilineentry::setReadOnly' => ['', 'readOnly'=>'bool'], +'ui\controls\multilineentry::setText' => ['', 'text'=>'string'], +'ui\controls\progress::getValue' => ['int'], +'ui\controls\progress::setValue' => ['', 'value'=>'int'], +'ui\controls\radio::append' => ['', 'text'=>'string'], +'ui\controls\radio::getSelected' => ['int'], +'ui\controls\radio::onSelected' => [''], +'ui\controls\radio::setSelected' => ['', 'index'=>'int'], +'ui\controls\slider::getValue' => ['int'], +'ui\controls\slider::onChange' => [''], +'ui\controls\slider::setValue' => ['', 'value'=>'int'], +'ui\controls\spin::getValue' => ['int'], +'ui\controls\spin::onChange' => [''], +'ui\controls\spin::setValue' => ['', 'value'=>'int'], +'ui\controls\tab::append' => ['int', 'name'=>'string', 'control'=>'UI\Control'], +'ui\controls\tab::delete' => ['bool', 'index'=>'int'], +'ui\controls\tab::hasMargin' => ['bool', 'page'=>'int'], +'ui\controls\tab::insertAt' => ['', 'name'=>'string', 'page'=>'int', 'control'=>'UI\Control'], +'ui\controls\tab::pages' => ['int'], +'ui\controls\tab::setMargin' => ['', 'page'=>'int', 'margin'=>'bool'], +'ui\draw\brush::getColor' => ['UI\Draw\Color'], +'ui\draw\brush\gradient::delStop' => ['int', 'index'=>'int'], +'ui\draw\color::getChannel' => ['float', 'channel'=>'int'], +'ui\draw\color::setChannel' => ['void', 'channel'=>'int', 'value'=>'float'], +'ui\draw\matrix::invert' => [''], +'ui\draw\matrix::isInvertible' => ['bool'], +'ui\draw\matrix::multiply' => ['UI\Draw\Matrix', 'matrix'=>'UI\Draw\Matrix'], +'ui\draw\matrix::rotate' => ['', 'point'=>'UI\Point', 'amount'=>'float'], +'ui\draw\matrix::scale' => ['', 'center'=>'UI\Point', 'point'=>'UI\Point'], +'ui\draw\matrix::skew' => ['', 'point'=>'UI\Point', 'amount'=>'UI\Point'], +'ui\draw\matrix::translate' => ['', 'point'=>'UI\Point'], +'ui\draw\path::addRectangle' => ['', 'point'=>'UI\Point', 'size'=>'UI\Size'], +'ui\draw\path::arcTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], +'ui\draw\path::bezierTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], +'ui\draw\path::closeFigure' => [''], +'ui\draw\path::end' => [''], +'ui\draw\path::lineTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], +'ui\draw\path::newFigure' => ['', 'point'=>'UI\Point'], +'ui\draw\path::newFigureWithArc' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], +'ui\draw\pen::clip' => ['', 'path'=>'UI\Draw\Path'], +'ui\draw\pen::restore' => [''], +'ui\draw\pen::save' => [''], +'ui\draw\pen::transform' => ['', 'matrix'=>'UI\Draw\Matrix'], +'ui\draw\pen::write' => ['', 'point'=>'UI\Point', 'layout'=>'UI\Draw\Text\Layout'], +'ui\draw\stroke::getCap' => ['int'], +'ui\draw\stroke::getJoin' => ['int'], +'ui\draw\stroke::getMiterLimit' => ['float'], +'ui\draw\stroke::getThickness' => ['float'], +'ui\draw\stroke::setCap' => ['', 'cap'=>'int'], +'ui\draw\stroke::setJoin' => ['', 'join'=>'int'], +'ui\draw\stroke::setMiterLimit' => ['', 'limit'=>'float'], +'ui\draw\stroke::setThickness' => ['', 'thickness'=>'float'], +'ui\draw\text\font::getAscent' => ['float'], +'ui\draw\text\font::getDescent' => ['float'], +'ui\draw\text\font::getLeading' => ['float'], +'ui\draw\text\font::getUnderlinePosition' => ['float'], +'ui\draw\text\font::getUnderlineThickness' => ['float'], +'ui\draw\text\font\descriptor::getFamily' => ['string'], +'ui\draw\text\font\descriptor::getItalic' => ['int'], +'ui\draw\text\font\descriptor::getSize' => ['float'], +'ui\draw\text\font\descriptor::getStretch' => ['int'], +'ui\draw\text\font\descriptor::getWeight' => ['int'], +'ui\draw\text\font\fontfamilies' => ['array'], +'ui\draw\text\layout::setWidth' => ['', 'width'=>'float'], +'ui\executor::kill' => ['void'], +'ui\executor::onExecute' => ['void'], +'ui\menu::append' => ['UI\MenuItem', 'name'=>'string', 'type='=>'string'], +'ui\menu::appendAbout' => ['UI\MenuItem', 'type='=>'string'], +'ui\menu::appendCheck' => ['UI\MenuItem', 'name'=>'string', 'type='=>'string'], +'ui\menu::appendPreferences' => ['UI\MenuItem', 'type='=>'string'], +'ui\menu::appendQuit' => ['UI\MenuItem', 'type='=>'string'], +'ui\menu::appendSeparator' => [''], +'ui\menuitem::disable' => [''], +'ui\menuitem::enable' => [''], +'ui\menuitem::isChecked' => ['bool'], +'ui\menuitem::onClick' => [''], +'ui\menuitem::setChecked' => ['', 'checked'=>'bool'], +'ui\point::getX' => ['float'], +'ui\point::getY' => ['float'], +'ui\point::setX' => ['', 'point'=>'float'], +'ui\point::setY' => ['', 'point'=>'float'], +'ui\quit' => ['void'], +'ui\run' => ['void', 'flags='=>'int'], +'ui\size::getHeight' => ['float'], +'ui\size::getWidth' => ['float'], +'ui\size::setHeight' => ['', 'size'=>'float'], +'ui\size::setWidth' => ['', 'size'=>'float'], +'ui\window::add' => ['', 'control'=>'UI\Control'], +'ui\window::error' => ['', 'title'=>'string', 'msg'=>'string'], +'ui\window::getSize' => ['UI\Size'], +'ui\window::getTitle' => ['string'], +'ui\window::hasBorders' => ['bool'], +'ui\window::hasMargin' => ['bool'], +'ui\window::isFullScreen' => ['bool'], +'ui\window::msg' => ['', 'title'=>'string', 'msg'=>'string'], +'ui\window::onClosing' => ['int'], +'ui\window::open' => ['string'], +'ui\window::save' => ['string'], +'ui\window::setBorders' => ['', 'borders'=>'bool'], +'ui\window::setFullScreen' => ['', 'full'=>'bool'], +'ui\window::setMargin' => ['', 'margin'=>'bool'], +'ui\window::setSize' => ['', 'size'=>'UI\Size'], +'ui\window::setTitle' => ['', 'title'=>'string'], +'uksort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], +'umask' => ['int', 'mask='=>'?int'], +'UnderflowException::__clone' => ['void'], +'UnderflowException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'UnderflowException::__toString' => ['string'], +'UnderflowException::getCode' => ['int'], +'UnderflowException::getFile' => ['string'], +'UnderflowException::getLine' => ['int'], +'UnderflowException::getMessage' => ['string'], +'UnderflowException::getPrevious' => ['?Throwable'], +'UnderflowException::getTrace' => ['list\',args?:array}>'], +'UnderflowException::getTraceAsString' => ['string'], +'UnexpectedValueException::__clone' => ['void'], +'UnexpectedValueException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], +'UnexpectedValueException::__toString' => ['string'], +'UnexpectedValueException::getCode' => ['int'], +'UnexpectedValueException::getFile' => ['string'], +'UnexpectedValueException::getLine' => ['int'], +'UnexpectedValueException::getMessage' => ['string'], +'UnexpectedValueException::getPrevious' => ['?Throwable'], +'UnexpectedValueException::getTrace' => ['list\',args?:array}>'], +'UnexpectedValueException::getTraceAsString' => ['string'], +'uniqid' => ['non-empty-string', 'prefix='=>'string', 'more_entropy='=>'bool'], +'unixtojd' => ['int', 'timestamp='=>'?int'], +'unlink' => ['bool', 'filename'=>'string', 'context='=>'resource'], +'unpack' => ['array|false', 'format'=>'string', 'string'=>'string', 'offset='=>'int'], +'unregister_tick_function' => ['void', 'callback'=>'callable'], +'unserialize' => ['mixed', 'data'=>'string', 'options='=>'array{allowed_classes?:string[]|bool}'], +'unset' => ['void', 'var='=>'mixed', '...args='=>'mixed'], +'untaint' => ['bool', '&rw_string'=>'string', '&...rw_strings='=>'string'], +'uopz_allow_exit' => ['void', 'allow'=>'bool'], +'uopz_backup' => ['void', 'class'=>'string', 'function'=>'string'], +'uopz_backup\'1' => ['void', 'function'=>'string'], +'uopz_compose' => ['void', 'name'=>'string', 'classes'=>'array', 'methods='=>'array', 'properties='=>'array', 'flags='=>'int'], +'uopz_copy' => ['Closure', 'class'=>'string', 'function'=>'string'], +'uopz_copy\'1' => ['Closure', 'function'=>'string'], +'uopz_delete' => ['void', 'class'=>'string', 'function'=>'string'], +'uopz_delete\'1' => ['void', 'function'=>'string'], +'uopz_extend' => ['bool', 'class'=>'string', 'parent'=>'string'], +'uopz_flags' => ['int', 'class'=>'string', 'function'=>'string', 'flags'=>'int'], +'uopz_flags\'1' => ['int', 'function'=>'string', 'flags'=>'int'], +'uopz_function' => ['void', 'class'=>'string', 'function'=>'string', 'handler'=>'Closure', 'modifiers='=>'int'], +'uopz_function\'1' => ['void', 'function'=>'string', 'handler'=>'Closure', 'modifiers='=>'int'], +'uopz_get_exit_status' => ['?int'], +'uopz_get_hook' => ['?Closure', 'class'=>'string', 'function'=>'string'], +'uopz_get_hook\'1' => ['?Closure', 'function'=>'string'], +'uopz_get_mock' => ['string|object|null', 'class'=>'string'], +'uopz_get_property' => ['mixed', 'class'=>'object|string', 'property'=>'string'], +'uopz_get_return' => ['mixed', 'class='=>'string', 'function='=>'string'], +'uopz_get_static' => ['?array', 'class'=>'string', 'function'=>'string'], +'uopz_implement' => ['bool', 'class'=>'string', 'interface'=>'string'], +'uopz_overload' => ['void', 'opcode'=>'int', 'callable'=>'Callable'], +'uopz_redefine' => ['bool', 'class'=>'string', 'constant'=>'string', 'value'=>'mixed'], +'uopz_redefine\'1' => ['bool', 'constant'=>'string', 'value'=>'mixed'], +'uopz_rename' => ['void', 'class'=>'string', 'function'=>'string', 'rename'=>'string'], +'uopz_rename\'1' => ['void', 'function'=>'string', 'rename'=>'string'], +'uopz_restore' => ['void', 'class'=>'string', 'function'=>'string'], +'uopz_restore\'1' => ['void', 'function'=>'string'], +'uopz_set_hook' => ['bool', 'class'=>'string', 'function'=>'string', 'hook'=>'Closure'], +'uopz_set_hook\'1' => ['bool', 'function'=>'string', 'hook'=>'Closure'], +'uopz_set_mock' => ['void', 'class'=>'string', 'mock'=>'object|string'], +'uopz_set_property' => ['void', 'class'=>'object|string', 'property'=>'string', 'value'=>'mixed'], +'uopz_set_return' => ['bool', 'class'=>'string', 'function'=>'string', 'value'=>'mixed', 'execute='=>'bool'], +'uopz_set_return\'1' => ['bool', 'function'=>'string', 'value'=>'mixed', 'execute='=>'bool'], +'uopz_set_static' => ['void', 'class'=>'string', 'function'=>'string', 'static'=>'array'], +'uopz_undefine' => ['bool', 'class'=>'string', 'constant'=>'string'], +'uopz_undefine\'1' => ['bool', 'constant'=>'string'], +'uopz_unset_hook' => ['bool', 'class'=>'string', 'function'=>'string'], +'uopz_unset_hook\'1' => ['bool', 'function'=>'string'], +'uopz_unset_mock' => ['void', 'class'=>'string'], +'uopz_unset_return' => ['bool', 'class='=>'string', 'function='=>'string'], +'uopz_unset_return\'1' => ['bool', 'function'=>'string'], +'urldecode' => ['string', 'string'=>'string'], +'urlencode' => ['string', 'string'=>'string'], +'use_soap_error_handler' => ['bool', 'enable='=>'bool'], +'user_error' => ['bool', 'message'=>'string', 'error_level='=>'int'], +'usleep' => ['void', 'microseconds'=>'positive-int|0'], +'usort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], +'utf8_decode' => ['string', 'string'=>'string'], +'utf8_encode' => ['string', 'string'=>'string'], +'V8Js::__construct' => ['void', 'object_name='=>'string', 'variables='=>'array', 'extensions='=>'array', 'report_uncaught_exceptions='=>'bool', 'snapshot_blob='=>'string'], +'V8Js::clearPendingException' => [''], +'V8Js::compileString' => ['resource', 'script'=>'', 'identifier='=>'string'], +'V8Js::createSnapshot' => ['false|string', 'embed_source'=>'string'], +'V8Js::executeScript' => ['', 'script'=>'resource', 'flags='=>'int', 'time_limit='=>'int', 'memory_limit='=>'int'], +'V8Js::executeString' => ['mixed', 'script'=>'string', 'identifier='=>'string', 'flags='=>'int'], +'V8Js::getExtensions' => ['string[]'], +'V8Js::getPendingException' => ['?V8JsException'], +'V8Js::registerExtension' => ['bool', 'extension_name'=>'string', 'script'=>'string', 'dependencies='=>'array', 'auto_enable='=>'bool'], +'V8Js::setAverageObjectSize' => ['', 'average_object_size'=>'int'], +'V8Js::setMemoryLimit' => ['', 'limit'=>'int'], +'V8Js::setModuleLoader' => ['', 'loader'=>'callable'], +'V8Js::setModuleNormaliser' => ['', 'normaliser'=>'callable'], +'V8Js::setTimeLimit' => ['', 'limit'=>'int'], +'V8JsException::getJsFileName' => ['string'], +'V8JsException::getJsLineNumber' => ['int'], +'V8JsException::getJsSourceLine' => ['int'], +'V8JsException::getJsTrace' => ['string'], +'V8JsScriptException::__clone' => ['void'], +'V8JsScriptException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'V8JsScriptException::__toString' => ['string'], +'V8JsScriptException::__wakeup' => ['void'], +'V8JsScriptException::getCode' => ['int'], +'V8JsScriptException::getFile' => ['string'], +'V8JsScriptException::getJsEndColumn' => ['int'], +'V8JsScriptException::getJsFileName' => ['string'], +'V8JsScriptException::getJsLineNumber' => ['int'], +'V8JsScriptException::getJsSourceLine' => ['string'], +'V8JsScriptException::getJsStartColumn' => ['int'], +'V8JsScriptException::getJsTrace' => ['string'], +'V8JsScriptException::getLine' => ['int'], +'V8JsScriptException::getMessage' => ['string'], +'V8JsScriptException::getPrevious' => ['Exception|Throwable'], +'V8JsScriptException::getTrace' => ['list\',args?:array}>'], +'V8JsScriptException::getTraceAsString' => ['string'], +'var_dump' => ['void', 'value'=>'mixed', '...values='=>'mixed'], +'var_export' => ['?string', 'value'=>'mixed', 'return='=>'bool'], +'VARIANT::__construct' => ['void', 'value='=>'mixed', 'type='=>'int', 'codepage='=>'int'], +'variant_abs' => ['mixed', 'value'=>'mixed'], +'variant_add' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_and' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_cast' => ['VARIANT', 'variant'=>'VARIANT', 'type'=>'int'], +'variant_cat' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_cmp' => ['int', 'left'=>'mixed', 'right'=>'mixed', 'locale_id='=>'int', 'flags='=>'int'], +'variant_date_from_timestamp' => ['VARIANT', 'timestamp'=>'int'], +'variant_date_to_timestamp' => ['int', 'variant'=>'VARIANT'], +'variant_div' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_eqv' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_fix' => ['mixed', 'value'=>'mixed'], +'variant_get_type' => ['int', 'variant'=>'VARIANT'], +'variant_idiv' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_imp' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_int' => ['mixed', 'value'=>'mixed'], +'variant_mod' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_mul' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_neg' => ['mixed', 'value'=>'mixed'], +'variant_not' => ['mixed', 'value'=>'mixed'], +'variant_or' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_pow' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_round' => ['mixed', 'value'=>'mixed', 'decimals'=>'int'], +'variant_set' => ['void', 'variant'=>'object', 'value'=>'mixed'], +'variant_set_type' => ['void', 'variant'=>'object', 'type'=>'int'], +'variant_sub' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'variant_xor' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], +'VarnishAdmin::__construct' => ['void', 'args='=>'array'], +'VarnishAdmin::auth' => ['bool'], +'VarnishAdmin::ban' => ['int', 'vcl_regex'=>'string'], +'VarnishAdmin::banUrl' => ['int', 'vcl_regex'=>'string'], +'VarnishAdmin::clearPanic' => ['int'], +'VarnishAdmin::connect' => ['bool'], +'VarnishAdmin::disconnect' => ['bool'], +'VarnishAdmin::getPanic' => ['string'], +'VarnishAdmin::getParams' => ['array'], +'VarnishAdmin::isRunning' => ['bool'], +'VarnishAdmin::setCompat' => ['void', 'compat'=>'int'], +'VarnishAdmin::setHost' => ['void', 'host'=>'string'], +'VarnishAdmin::setIdent' => ['void', 'ident'=>'string'], +'VarnishAdmin::setParam' => ['int', 'name'=>'string', 'value'=>'string|int'], +'VarnishAdmin::setPort' => ['void', 'port'=>'int'], +'VarnishAdmin::setSecret' => ['void', 'secret'=>'string'], +'VarnishAdmin::setTimeout' => ['void', 'timeout'=>'int'], +'VarnishAdmin::start' => ['int'], +'VarnishAdmin::stop' => ['int'], +'VarnishLog::__construct' => ['void', 'args='=>'array'], +'VarnishLog::getLine' => ['array'], +'VarnishLog::getTagName' => ['string', 'index'=>'int'], +'VarnishStat::__construct' => ['void', 'args='=>'array'], +'VarnishStat::getSnapshot' => ['array'], +'version_compare' => ['bool', 'version1'=>'string', 'version2'=>'string', 'operator'=>'\'<\'|\'lt\'|\'<=\'|\'le\'|\'>\'|\'gt\'|\'>=\'|\'ge\'|\'==\'|\'=\'|\'eq\'|\'!=\'|\'<>\'|\'ne\''], +'version_compare\'1' => ['int', 'version1'=>'string', 'version2'=>'string'], +'vfprintf' => ['int', 'stream'=>'resource', 'format'=>'string', 'values'=>'array'], +'virtual' => ['bool', 'uri'=>'string'], +'vpopmail_add_alias_domain' => ['bool', 'domain'=>'string', 'aliasdomain'=>'string'], +'vpopmail_add_alias_domain_ex' => ['bool', 'olddomain'=>'string', 'newdomain'=>'string'], +'vpopmail_add_domain' => ['bool', 'domain'=>'string', 'dir'=>'string', 'uid'=>'int', 'gid'=>'int'], +'vpopmail_add_domain_ex' => ['bool', 'domain'=>'string', 'passwd'=>'string', 'quota='=>'string', 'bounce='=>'string', 'apop='=>'bool'], +'vpopmail_add_user' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'gecos='=>'string', 'apop='=>'bool'], +'vpopmail_alias_add' => ['bool', 'user'=>'string', 'domain'=>'string', 'alias'=>'string'], +'vpopmail_alias_del' => ['bool', 'user'=>'string', 'domain'=>'string'], +'vpopmail_alias_del_domain' => ['bool', 'domain'=>'string'], +'vpopmail_alias_get' => ['array', 'alias'=>'string', 'domain'=>'string'], +'vpopmail_alias_get_all' => ['array', 'domain'=>'string'], +'vpopmail_auth_user' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'apop='=>'string'], +'vpopmail_del_domain' => ['bool', 'domain'=>'string'], +'vpopmail_del_domain_ex' => ['bool', 'domain'=>'string'], +'vpopmail_del_user' => ['bool', 'user'=>'string', 'domain'=>'string'], +'vpopmail_error' => ['string'], +'vpopmail_passwd' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'apop='=>'bool'], +'vpopmail_set_user_quota' => ['bool', 'user'=>'string', 'domain'=>'string', 'quota'=>'string'], +'vprintf' => ['int', 'format'=>'string', 'values'=>'array'], +'vsprintf' => ['string', 'format'=>'string', 'values'=>'array'], +'Vtiful\Kernel\Chart::__construct' => ['void', 'handle'=>'resource', 'type'=>'int'], +'Vtiful\Kernel\Chart::axisNameX' => ['Vtiful\Kernel\Chart', 'name'=>'string'], +'Vtiful\Kernel\Chart::axisNameY' => ['Vtiful\Kernel\Chart', 'name'=>'string'], +'Vtiful\Kernel\Chart::legendSetPosition' => ['Vtiful\Kernel\Chart', 'type'=>'int'], +'Vtiful\Kernel\Chart::series' => ['Vtiful\Kernel\Chart', 'value'=>'string', 'categories='=>'string'], +'Vtiful\Kernel\Chart::seriesName' => ['Vtiful\Kernel\Chart', 'value'=>'string'], +'Vtiful\Kernel\Chart::style' => ['Vtiful\Kernel\Chart', 'style'=>'int'], +'Vtiful\Kernel\Chart::title' => ['Vtiful\Kernel\Chart', 'title'=>'string'], +'Vtiful\Kernel\Chart::toResource' => ['resource'], +'Vtiful\Kernel\Excel::__construct' => ['void', 'config'=>'array'], +'Vtiful\Kernel\Excel::activateSheet' => ['bool', 'sheet_name'=>'string'], +'Vtiful\Kernel\Excel::addSheet' => ['Vtiful\Kernel\Excel', 'sheet_name='=>'?string'], +'Vtiful\Kernel\Excel::autoFilter' => ['Vtiful\Kernel\Excel', 'range'=>'string'], +'Vtiful\Kernel\Excel::checkoutSheet' => ['Vtiful\Kernel\Excel', 'sheet_name'=>'string'], +'Vtiful\Kernel\Excel::close' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::columnIndexFromString' => ['int', 'index'=>'string'], +'Vtiful\Kernel\Excel::constMemory' => ['Vtiful\Kernel\Excel', 'file_name'=>'string', 'sheet_name='=>'?string'], +'Vtiful\Kernel\Excel::data' => ['Vtiful\Kernel\Excel', 'data'=>'array'], +'Vtiful\Kernel\Excel::defaultFormat' => ['Vtiful\Kernel\Excel', 'format_handle'=>'resource'], +'Vtiful\Kernel\Excel::existSheet' => ['bool', 'sheet_name'=>'string'], +'Vtiful\Kernel\Excel::fileName' => ['Vtiful\Kernel\Excel', 'file_name'=>'string', 'sheet_name='=>'?string'], +'Vtiful\Kernel\Excel::freezePanes' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int'], +'Vtiful\Kernel\Excel::getHandle' => ['resource'], +'Vtiful\Kernel\Excel::getSheetData' => ['array|false'], +'Vtiful\Kernel\Excel::gridline' => ['Vtiful\Kernel\Excel', 'option='=>'int'], +'Vtiful\Kernel\Excel::header' => ['Vtiful\Kernel\Excel', 'header'=>'array', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::insertChart' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'chart_resource'=>'resource'], +'Vtiful\Kernel\Excel::insertComment' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'comment'=>'string'], +'Vtiful\Kernel\Excel::insertDate' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'timestamp'=>'int', 'format='=>'?string', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::insertFormula' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'formula'=>'string', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::insertImage' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'image'=>'string', 'width='=>'?float', 'height='=>'?float'], +'Vtiful\Kernel\Excel::insertText' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'data'=>'int|string|double', 'format='=>'?string', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::insertUrl' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'url'=>'string', 'text='=>'?string', 'tool_tip='=>'?string', 'format='=>'?resource'], +'Vtiful\Kernel\Excel::mergeCells' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'data'=>'string', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::nextCellCallback' => ['void', 'fci'=>'callable(int,int,mixed)', 'sheet_name='=>'?string'], +'Vtiful\Kernel\Excel::nextRow' => ['array|false', 'zv_type_t='=>'?array'], +'Vtiful\Kernel\Excel::openFile' => ['Vtiful\Kernel\Excel', 'zs_file_name'=>'string'], +'Vtiful\Kernel\Excel::openSheet' => ['Vtiful\Kernel\Excel', 'zs_sheet_name='=>'?string', 'zl_flag='=>'?int'], +'Vtiful\Kernel\Excel::output' => ['string'], +'Vtiful\Kernel\Excel::protection' => ['Vtiful\Kernel\Excel', 'password='=>'?string'], +'Vtiful\Kernel\Excel::putCSV' => ['bool', 'fp'=>'resource', 'delimiter_str='=>'?string', 'enclosure_str='=>'?string', 'escape_str='=>'?string'], +'Vtiful\Kernel\Excel::putCSVCallback' => ['bool', 'callback'=>'callable(array):array', 'fp'=>'resource', 'delimiter_str='=>'?string', 'enclosure_str='=>'?string', 'escape_str='=>'?string'], +'Vtiful\Kernel\Excel::setColumn' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'width'=>'float', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::setCurrentSheetHide' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::setCurrentSheetIsFirst' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::setGlobalType' => ['Vtiful\Kernel\Excel', 'zv_type_t'=>'int'], +'Vtiful\Kernel\Excel::setLandscape' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::setMargins' => ['Vtiful\Kernel\Excel', 'left='=>'?float', 'right='=>'?float', 'top='=>'?float', 'bottom='=>'?float'], +'Vtiful\Kernel\Excel::setPaper' => ['Vtiful\Kernel\Excel', 'paper'=>'int'], +'Vtiful\Kernel\Excel::setPortrait' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::setRow' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'height'=>'float', 'format_handle='=>'?resource'], +'Vtiful\Kernel\Excel::setSkipRows' => ['Vtiful\Kernel\Excel', 'zv_skip_t'=>'int'], +'Vtiful\Kernel\Excel::setType' => ['Vtiful\Kernel\Excel', 'zv_type_t'=>'array'], +'Vtiful\Kernel\Excel::sheetList' => ['array'], +'Vtiful\Kernel\Excel::showComment' => ['Vtiful\Kernel\Excel'], +'Vtiful\Kernel\Excel::stringFromColumnIndex' => ['string', 'index'=>'int'], +'Vtiful\Kernel\Excel::timestampFromDateDouble' => ['int', 'index'=>'?float'], +'Vtiful\Kernel\Excel::validation' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'validation_resource'=>'resource'], +'Vtiful\Kernel\Excel::zoom' => ['Vtiful\Kernel\Excel', 'scale'=>'int'], +'Vtiful\Kernel\Format::__construct' => ['void', 'handle'=>'resource'], +'Vtiful\Kernel\Format::align' => ['Vtiful\Kernel\Format', '...style'=>'int'], +'Vtiful\Kernel\Format::background' => ['Vtiful\Kernel\Format', 'color'=>'int', 'pattern='=>'int'], +'Vtiful\Kernel\Format::bold' => ['Vtiful\Kernel\Format'], +'Vtiful\Kernel\Format::border' => ['Vtiful\Kernel\Format', 'style'=>'int'], +'Vtiful\Kernel\Format::font' => ['Vtiful\Kernel\Format', 'font'=>'string'], +'Vtiful\Kernel\Format::fontColor' => ['Vtiful\Kernel\Format', 'color'=>'int'], +'Vtiful\Kernel\Format::fontSize' => ['Vtiful\Kernel\Format', 'size'=>'float'], +'Vtiful\Kernel\Format::italic' => ['Vtiful\Kernel\Format'], +'Vtiful\Kernel\Format::number' => ['Vtiful\Kernel\Format', 'format'=>'string'], +'Vtiful\Kernel\Format::strikeout' => ['Vtiful\Kernel\Format'], +'Vtiful\Kernel\Format::toResource' => ['resource'], +'Vtiful\Kernel\Format::underline' => ['Vtiful\Kernel\Format', 'style'=>'int'], +'Vtiful\Kernel\Format::unlocked' => ['Vtiful\Kernel\Format'], +'Vtiful\Kernel\Format::wrap' => ['Vtiful\Kernel\Format'], +'Vtiful\Kernel\Validation::__construct' => ['void'], +'Vtiful\Kernel\Validation::criteriaType' => ['?Vtiful\Kernel\Validation', 'type'=>'int'], +'Vtiful\Kernel\Validation::maximumFormula' => ['?Vtiful\Kernel\Validation', 'maximum_formula'=>'string'], +'Vtiful\Kernel\Validation::maximumNumber' => ['?Vtiful\Kernel\Validation', 'maximum_number'=>'float'], +'Vtiful\Kernel\Validation::minimumFormula' => ['?Vtiful\Kernel\Validation', 'minimum_formula'=>'string'], +'Vtiful\Kernel\Validation::minimumNumber' => ['?Vtiful\Kernel\Validation', 'minimum_number'=>'float'], +'Vtiful\Kernel\Validation::toResource' => ['resource'], +'Vtiful\Kernel\Validation::validationType' => ['?Vtiful\Kernel\Validation', 'type'=>'int'], +'Vtiful\Kernel\Validation::valueList' => ['?Vtiful\Kernel\Validation', 'value_list'=>'array'], +'Vtiful\Kernel\Validation::valueNumber' => ['?Vtiful\Kernel\Validation', 'value_number'=>'int'], +'w32api_deftype' => ['bool', 'typename'=>'string', 'member1_type'=>'string', 'member1_name'=>'string', '...args='=>'string'], +'w32api_init_dtype' => ['resource', 'typename'=>'string', 'value'=>'', '...args='=>''], +'w32api_invoke_function' => ['', 'funcname'=>'string', 'argument'=>'', '...args='=>''], +'w32api_register_function' => ['bool', 'library'=>'string', 'function_name'=>'string', 'return_type'=>'string'], +'w32api_set_call_method' => ['', 'method'=>'int'], +'wddx_add_vars' => ['bool', 'packet_id'=>'resource', 'var_names'=>'mixed', '...vars='=>'mixed'], +'wddx_deserialize' => ['mixed', 'packet'=>'string'], +'wddx_packet_end' => ['string', 'packet_id'=>'resource'], +'wddx_packet_start' => ['resource|false', 'comment='=>'string'], +'wddx_serialize_value' => ['string|false', 'value'=>'mixed', 'comment='=>'string'], +'wddx_serialize_vars' => ['string|false', 'var_name'=>'mixed', '...vars='=>'mixed'], +'WeakMap::__construct' => ['void'], +'WeakMap::count' => ['int'], +'WeakMap::current' => ['mixed'], +'WeakMap::key' => ['object'], +'WeakMap::next' => ['void'], +'WeakMap::offsetExists' => ['bool', 'object'=>'object'], +'WeakMap::offsetGet' => ['mixed', 'object'=>'object'], +'WeakMap::offsetSet' => ['void', 'object'=>'object', 'value'=>'mixed'], +'WeakMap::offsetUnset' => ['void', 'object'=>'object'], +'WeakMap::rewind' => ['void'], +'WeakMap::valid' => ['bool'], +'Weakref::acquire' => ['bool'], +'Weakref::get' => ['object'], +'Weakref::release' => ['bool'], +'Weakref::valid' => ['bool'], +'webObj::convertToString' => ['string'], +'webObj::free' => ['void'], +'webObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], +'webObj::updateFromString' => ['int', 'snippet'=>'string'], +'win32_continue_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], +'win32_create_service' => ['int|false', 'details'=>'array', 'machine='=>'string'], +'win32_delete_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], +'win32_get_last_control_message' => ['int'], +'win32_pause_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], +'win32_ps_list_procs' => ['array'], +'win32_ps_stat_mem' => ['array'], +'win32_ps_stat_proc' => ['array', 'pid='=>'int'], +'win32_query_service_status' => ['array|false|int', 'servicename'=>'string', 'machine='=>'string'], +'win32_send_custom_control' => ['int', 'servicename'=>'string', 'control'=>'int', 'machine='=>'string'], +'win32_set_service_exit_code' => ['int', 'exitCode='=>'int'], +'win32_set_service_exit_mode' => ['bool', 'gracefulMode='=>'bool'], +'win32_set_service_status' => ['bool|int', 'status'=>'int', 'checkpoint='=>'int'], +'win32_start_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], +'win32_start_service_ctrl_dispatcher' => ['bool|int', 'name'=>'string'], +'win32_stop_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], +'wincache_fcache_fileinfo' => ['array|false', 'summaryonly='=>'bool'], +'wincache_fcache_meminfo' => ['array|false'], +'wincache_lock' => ['bool', 'key'=>'string', 'isglobal='=>'bool'], +'wincache_ocache_fileinfo' => ['array|false', 'summaryonly='=>'bool'], +'wincache_ocache_meminfo' => ['array|false'], +'wincache_refresh_if_changed' => ['bool', 'files='=>'array'], +'wincache_rplist_fileinfo' => ['array|false', 'summaryonly='=>'bool'], +'wincache_rplist_meminfo' => ['array|false'], +'wincache_scache_info' => ['array|false', 'summaryonly='=>'bool'], +'wincache_scache_meminfo' => ['array|false'], +'wincache_ucache_add' => ['bool', 'key'=>'string', 'value'=>'mixed', 'ttl='=>'int'], +'wincache_ucache_add\'1' => ['bool', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'wincache_ucache_cas' => ['bool', 'key'=>'string', 'old_value'=>'int', 'new_value'=>'int'], +'wincache_ucache_clear' => ['bool'], +'wincache_ucache_dec' => ['int|false', 'key'=>'string', 'dec_by='=>'int', 'success='=>'bool'], +'wincache_ucache_delete' => ['bool', 'key'=>'mixed'], +'wincache_ucache_exists' => ['bool', 'key'=>'string'], +'wincache_ucache_get' => ['mixed', 'key'=>'mixed', '&w_success='=>'bool'], +'wincache_ucache_inc' => ['int|false', 'key'=>'string', 'inc_by='=>'int', 'success='=>'bool'], +'wincache_ucache_info' => ['array|false', 'summaryonly='=>'bool', 'key='=>'string'], +'wincache_ucache_meminfo' => ['array|false'], +'wincache_ucache_set' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int'], +'wincache_ucache_set\'1' => ['bool', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], +'wincache_unlock' => ['bool', 'key'=>'string'], +'wkhtmltox\image\converter::convert' => ['?string'], +'wkhtmltox\image\converter::getVersion' => ['string'], +'wkhtmltox\pdf\converter::add' => ['void', 'object'=>'wkhtmltox\PDF\Object'], +'wkhtmltox\pdf\converter::convert' => ['?string'], +'wkhtmltox\pdf\converter::getVersion' => ['string'], +'wordwrap' => ['string', 'string'=>'string', 'width='=>'int', 'break='=>'string', 'cut_long_words='=>'bool'], +'Worker::__construct' => ['void'], +'Worker::addRef' => ['void'], +'Worker::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], +'Worker::collect' => ['int', 'collector='=>'Callable'], +'Worker::count' => ['int'], +'Worker::delRef' => ['void'], +'Worker::detach' => ['void'], +'Worker::extend' => ['bool', 'class'=>'string'], +'Worker::getCreatorId' => ['int'], +'Worker::getCurrentThread' => ['Thread'], +'Worker::getCurrentThreadId' => ['int'], +'Worker::getRefCount' => ['int'], +'Worker::getStacked' => ['int'], +'Worker::getTerminationInfo' => ['array'], +'Worker::getThreadId' => ['int'], +'Worker::globally' => ['mixed'], +'Worker::isGarbage' => ['bool'], +'Worker::isJoined' => ['bool'], +'Worker::isRunning' => ['bool'], +'Worker::isShutdown' => ['bool'], +'Worker::isStarted' => ['bool'], +'Worker::isTerminated' => ['bool'], +'Worker::isWaiting' => ['bool'], +'Worker::isWorking' => ['bool'], +'Worker::join' => ['bool'], +'Worker::kill' => ['bool'], +'Worker::lock' => ['bool'], +'Worker::merge' => ['bool', 'from'=>'', 'overwrite='=>'mixed'], +'Worker::notify' => ['bool'], +'Worker::notifyOne' => ['bool'], +'Worker::offsetExists' => ['bool', 'offset'=>'mixed'], +'Worker::offsetGet' => ['mixed', 'offset'=>'mixed'], +'Worker::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], +'Worker::offsetUnset' => ['void', 'offset'=>'mixed'], +'Worker::pop' => ['bool'], +'Worker::run' => ['void'], +'Worker::setGarbage' => ['void'], +'Worker::shift' => ['bool'], +'Worker::shutdown' => ['bool'], +'Worker::stack' => ['int', '&rw_work'=>'Threaded'], +'Worker::start' => ['bool', 'options='=>'int'], +'Worker::synchronized' => ['mixed', 'block'=>'Closure', '_='=>'mixed'], +'Worker::unlock' => ['bool'], +'Worker::unstack' => ['int', '&rw_work='=>'Threaded'], +'Worker::wait' => ['bool', 'timeout='=>'int'], +'xattr_get' => ['string', 'filename'=>'string', 'name'=>'string', 'flags='=>'int'], +'xattr_list' => ['array', 'filename'=>'string', 'flags='=>'int'], +'xattr_remove' => ['bool', 'filename'=>'string', 'name'=>'string', 'flags='=>'int'], +'xattr_set' => ['bool', 'filename'=>'string', 'name'=>'string', 'value'=>'string', 'flags='=>'int'], +'xattr_supported' => ['bool', 'filename'=>'string', 'flags='=>'int'], +'xcache_asm' => ['string', 'filename'=>'string'], +'xcache_clear_cache' => ['void', 'type'=>'int', 'id='=>'int'], +'xcache_coredump' => ['string', 'op_type'=>'int'], +'xcache_count' => ['int', 'type'=>'int'], +'xcache_coverager_decode' => ['array', 'data'=>'string'], +'xcache_coverager_get' => ['array', 'clean='=>'bool'], +'xcache_coverager_start' => ['void', 'clean='=>'bool'], +'xcache_coverager_stop' => ['void', 'clean='=>'bool'], +'xcache_dasm_file' => ['string', 'filename'=>'string'], +'xcache_dasm_string' => ['string', 'code'=>'string'], +'xcache_dec' => ['int', 'name'=>'string', 'value='=>'int|mixed', 'ttl='=>'int'], +'xcache_decode' => ['bool', 'filename'=>'string'], +'xcache_encode' => ['string', 'filename'=>'string'], +'xcache_get' => ['mixed', 'name'=>'string'], +'xcache_get_data_type' => ['string', 'type'=>'int'], +'xcache_get_op_spec' => ['string', 'op_type'=>'int'], +'xcache_get_op_type' => ['string', 'op_type'=>'int'], +'xcache_get_opcode' => ['string', 'opcode'=>'int'], +'xcache_get_opcode_spec' => ['string', 'opcode'=>'int'], +'xcache_inc' => ['int', 'name'=>'string', 'value='=>'int|mixed', 'ttl='=>'int'], +'xcache_info' => ['array', 'type'=>'int', 'id'=>'int'], +'xcache_is_autoglobal' => ['string', 'name'=>'string'], +'xcache_isset' => ['bool', 'name'=>'string'], +'xcache_list' => ['array', 'type'=>'int', 'id'=>'int'], +'xcache_set' => ['bool', 'name'=>'string', 'value'=>'mixed', 'ttl='=>'int'], +'xcache_unset' => ['bool', 'name'=>'string'], +'xcache_unset_by_prefix' => ['bool', 'prefix'=>'string'], +'Xcom::__construct' => ['void', 'fabric_url='=>'string', 'fabric_token='=>'string', 'capability_token='=>'string'], +'Xcom::decode' => ['object', 'avro_msg'=>'string', 'json_schema'=>'string'], +'Xcom::encode' => ['string', 'data'=>'stdClass', 'avro_schema'=>'string'], +'Xcom::getDebugOutput' => ['string'], +'Xcom::getLastResponse' => ['string'], +'Xcom::getLastResponseInfo' => ['array'], +'Xcom::getOnboardingURL' => ['string', 'capability_name'=>'string', 'agreement_url'=>'string'], +'Xcom::send' => ['int', 'topic'=>'string', 'data'=>'mixed', 'json_schema='=>'string', 'http_headers='=>'array'], +'Xcom::sendAsync' => ['int', 'topic'=>'string', 'data'=>'mixed', 'json_schema='=>'string', 'http_headers='=>'array'], +'xdebug_break' => ['bool'], +'xdebug_call_class' => ['string', 'depth='=>'int'], +'xdebug_call_file' => ['string', 'depth='=>'int'], +'xdebug_call_function' => ['string', 'depth='=>'int'], +'xdebug_call_line' => ['int', 'depth='=>'int'], +'xdebug_clear_aggr_profiling_data' => ['bool'], +'xdebug_code_coverage_started' => ['bool'], +'xdebug_debug_zval' => ['void', '...varName'=>'string'], +'xdebug_debug_zval_stdout' => ['void', '...varName'=>'string'], +'xdebug_disable' => ['void'], +'xdebug_dump_aggr_profiling_data' => ['bool'], +'xdebug_dump_superglobals' => ['void'], +'xdebug_enable' => ['void'], +'xdebug_get_code_coverage' => ['array'], +'xdebug_get_collected_errors' => ['string', 'clean='=>'bool'], +'xdebug_get_declared_vars' => ['array'], +'xdebug_get_formatted_function_stack' => [''], +'xdebug_get_function_count' => ['int'], +'xdebug_get_function_stack' => ['array', 'message='=>'string', 'options='=>'int'], +'xdebug_get_headers' => ['array'], +'xdebug_get_monitored_functions' => ['array'], +'xdebug_get_profiler_filename' => ['string|false'], +'xdebug_get_stack_depth' => ['int'], +'xdebug_get_tracefile_name' => ['string'], +'xdebug_info' => ['mixed', 'category='=>'string'], +'xdebug_is_debugger_active' => ['bool'], +'xdebug_is_enabled' => ['bool'], +'xdebug_memory_usage' => ['int'], +'xdebug_peak_memory_usage' => ['int'], +'xdebug_print_function_stack' => ['array', 'message='=>'string', 'options='=>'int'], +'xdebug_set_filter' => ['void', 'group'=>'int', 'list_type'=>'int', 'configuration'=>'array'], +'xdebug_start_code_coverage' => ['void', 'options='=>'int'], +'xdebug_start_error_collection' => ['void'], +'xdebug_start_function_monitor' => ['void', 'list_of_functions_to_monitor'=>'string[]'], +'xdebug_start_trace' => ['void', 'trace_file'=>'', 'options='=>'int|mixed'], +'xdebug_stop_code_coverage' => ['void', 'cleanup='=>'bool'], +'xdebug_stop_error_collection' => ['void'], +'xdebug_stop_function_monitor' => ['void'], +'xdebug_stop_trace' => ['void'], +'xdebug_time_index' => ['float'], +'xdebug_var_dump' => ['void', '...var'=>''], +'xdiff_file_bdiff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], +'xdiff_file_bdiff_size' => ['int', 'file'=>'string'], +'xdiff_file_bpatch' => ['bool', 'file'=>'string', 'patch'=>'string', 'dest'=>'string'], +'xdiff_file_diff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string', 'context='=>'int', 'minimal='=>'bool'], +'xdiff_file_diff_binary' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], +'xdiff_file_merge3' => ['mixed', 'old_file'=>'string', 'new_file1'=>'string', 'new_file2'=>'string', 'dest'=>'string'], +'xdiff_file_patch' => ['mixed', 'file'=>'string', 'patch'=>'string', 'dest'=>'string', 'flags='=>'int'], +'xdiff_file_patch_binary' => ['bool', 'file'=>'string', 'patch'=>'string', 'dest'=>'string'], +'xdiff_file_rabdiff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], +'xdiff_string_bdiff' => ['string', 'old_data'=>'string', 'new_data'=>'string'], +'xdiff_string_bdiff_size' => ['int', 'patch'=>'string'], +'xdiff_string_bpatch' => ['string', 'string'=>'string', 'patch'=>'string'], +'xdiff_string_diff' => ['string', 'old_data'=>'string', 'new_data'=>'string', 'context='=>'int', 'minimal='=>'bool'], +'xdiff_string_diff_binary' => ['string', 'old_data'=>'string', 'new_data'=>'string'], +'xdiff_string_merge3' => ['mixed', 'old_data'=>'string', 'new_data1'=>'string', 'new_data2'=>'string', 'error='=>'string'], +'xdiff_string_patch' => ['string', 'string'=>'string', 'patch'=>'string', 'flags='=>'int', '&w_error='=>'string'], +'xdiff_string_patch_binary' => ['string', 'string'=>'string', 'patch'=>'string'], +'xdiff_string_rabdiff' => ['string', 'old_data'=>'string', 'new_data'=>'string'], +'xhprof_disable' => ['array'], +'xhprof_enable' => ['void', 'flags='=>'int', 'options='=>'array'], +'xhprof_sample_disable' => ['array'], +'xhprof_sample_enable' => ['void'], +'xlswriter_get_author' => ['string'], +'xlswriter_get_version' => ['string'], +'xml_error_string' => ['?string', 'error_code'=>'int'], +'xml_get_current_byte_index' => ['int', 'parser'=>'XMLParser'], +'xml_get_current_column_number' => ['int', 'parser'=>'XMLParser'], +'xml_get_current_line_number' => ['int', 'parser'=>'XMLParser'], +'xml_get_error_code' => ['int', 'parser'=>'XMLParser'], +'xml_parse' => ['int', 'parser'=>'XMLParser', 'data'=>'string', 'is_final='=>'bool'], +'xml_parse_into_struct' => ['int', 'parser'=>'XMLParser', 'data'=>'string', '&w_values'=>'array', '&w_index='=>'array'], +'xml_parser_create' => ['XMLParser', 'encoding='=>'?string'], +'xml_parser_create_ns' => ['XMLParser', 'encoding='=>'?string', 'separator='=>'string'], +'xml_parser_free' => ['bool', 'parser'=>'XMLParser'], +'xml_parser_get_option' => ['string', 'parser'=>'XMLParser', 'option'=>'int'], +'xml_parser_set_option' => ['bool', 'parser'=>'XMLParser', 'option'=>'int', 'value'=>'mixed'], +'xml_set_character_data_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_default_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_element_handler' => ['true', 'parser'=>'XMLParser', 'start_handler'=>'callable', 'end_handler'=>'callable'], +'xml_set_end_namespace_decl_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_external_entity_ref_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_notation_decl_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_object' => ['true', 'parser'=>'XMLParser', 'object'=>'object'], +'xml_set_processing_instruction_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_start_namespace_decl_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'xml_set_unparsed_entity_decl_handler' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], +'XMLDiff\Base::__construct' => ['void', 'nsname'=>'string'], +'XMLDiff\Base::diff' => ['mixed', 'from'=>'mixed', 'to'=>'mixed'], +'XMLDiff\Base::merge' => ['mixed', 'src'=>'mixed', 'diff'=>'mixed'], +'XMLDiff\DOM::diff' => ['DOMDocument', 'from'=>'DOMDocument', 'to'=>'DOMDocument'], +'XMLDiff\DOM::merge' => ['DOMDocument', 'src'=>'DOMDocument', 'diff'=>'DOMDocument'], +'XMLDiff\File::diff' => ['string', 'from'=>'string', 'to'=>'string'], +'XMLDiff\File::merge' => ['string', 'src'=>'string', 'diff'=>'string'], +'XMLDiff\Memory::diff' => ['string', 'from'=>'string', 'to'=>'string'], +'XMLDiff\Memory::merge' => ['string', 'src'=>'string', 'diff'=>'string'], +'XMLReader::close' => ['bool'], +'XMLReader::expand' => ['DOMNode|false', 'baseNode='=>'?DOMNode'], +'XMLReader::getAttribute' => ['?string', 'name'=>'string'], +'XMLReader::getAttributeNo' => ['?string', 'index'=>'int'], +'XMLReader::getAttributeNs' => ['?string', 'name'=>'string', 'namespaceuri'=>'string'], +'XMLReader::getParserProperty' => ['bool', 'property'=>'int'], +'XMLReader::isValid' => ['bool'], +'XMLReader::lookupNamespace' => ['?string', 'prefix'=>'string'], +'XMLReader::moveToAttribute' => ['bool', 'name'=>'string'], +'XMLReader::moveToAttributeNo' => ['bool', 'index'=>'int'], +'XMLReader::moveToAttributeNs' => ['bool', 'localname'=>'string', 'namespaceuri'=>'string'], +'XMLReader::moveToElement' => ['bool'], +'XMLReader::moveToFirstAttribute' => ['bool'], +'XMLReader::moveToNextAttribute' => ['bool'], +'XMLReader::next' => ['bool', 'localname='=>'string'], +'XMLReader::open' => ['bool', 'uri'=>'string', 'encoding='=>'?string', 'options='=>'int'], +'XMLReader::read' => ['bool'], +'XMLReader::readInnerXML' => ['string'], +'XMLReader::readOuterXML' => ['string'], +'XMLReader::readString' => ['string'], +'XMLReader::setParserProperty' => ['bool', 'property'=>'int', 'value'=>'bool'], +'XMLReader::setRelaxNGSchema' => ['bool', 'filename'=>'?string'], +'XMLReader::setRelaxNGSchemaSource' => ['bool', 'source'=>'?string'], +'XMLReader::setSchema' => ['bool', 'filename'=>'?string'], +'XMLReader::XML' => ['bool', 'source'=>'string', 'encoding='=>'?string', 'options='=>'int'], +'XMLWriter::endAttribute' => ['bool'], +'XMLWriter::endCdata' => ['bool'], +'XMLWriter::endComment' => ['bool'], +'XMLWriter::endDocument' => ['bool'], +'XMLWriter::endDtd' => ['bool'], +'XMLWriter::endDtdAttlist' => ['bool'], +'XMLWriter::endDtdElement' => ['bool'], +'XMLWriter::endDtdEntity' => ['bool'], +'XMLWriter::endElement' => ['bool'], +'XMLWriter::endPi' => ['bool'], +'XMLWriter::flush' => ['string|int', 'empty='=>'bool'], +'XMLWriter::fullEndElement' => ['bool'], +'XMLWriter::openMemory' => ['bool'], +'XMLWriter::openUri' => ['bool', 'uri'=>'string'], +'XMLWriter::outputMemory' => ['string', 'flush='=>'bool'], +'XMLWriter::setIndent' => ['bool', 'enable'=>'bool'], +'XMLWriter::setIndentString' => ['bool', 'indentation'=>'string'], +'XMLWriter::startAttribute' => ['bool', 'name'=>'string'], +'XMLWriter::startAttributeNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], +'XMLWriter::startCdata' => ['bool'], +'XMLWriter::startComment' => ['bool'], +'XMLWriter::startDocument' => ['bool', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], +'XMLWriter::startDtd' => ['bool', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], +'XMLWriter::startDtdAttlist' => ['bool', 'name'=>'string'], +'XMLWriter::startDtdElement' => ['bool', 'qualifiedName'=>'string'], +'XMLWriter::startDtdEntity' => ['bool', 'name'=>'string', 'isParam'=>'bool'], +'XMLWriter::startElement' => ['bool', 'name'=>'string'], +'XMLWriter::startElementNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], +'XMLWriter::startPi' => ['bool', 'target'=>'string'], +'XMLWriter::text' => ['bool', 'content'=>'string'], +'XMLWriter::writeAttribute' => ['bool', 'name'=>'string', 'value'=>'string'], +'XMLWriter::writeAttributeNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], +'XMLWriter::writeCdata' => ['bool', 'content'=>'string'], +'XMLWriter::writeComment' => ['bool', 'content'=>'string'], +'XMLWriter::writeDtd' => ['bool', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], +'XMLWriter::writeDtdAttlist' => ['bool', 'name'=>'string', 'content'=>'string'], +'XMLWriter::writeDtdElement' => ['bool', 'name'=>'string', 'content'=>'string'], +'XMLWriter::writeDtdEntity' => ['bool', 'name'=>'string', 'content'=>'string', 'isParam='=>'bool', 'publicId='=>'?string', 'systemId='=>'?string', 'notationData='=>'?string'], +'XMLWriter::writeElement' => ['bool', 'name'=>'string', 'content='=>'?string'], +'XMLWriter::writeElementNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'content='=>'?string'], +'XMLWriter::writePi' => ['bool', 'target'=>'string', 'content'=>'string'], +'XMLWriter::writeRaw' => ['bool', 'content'=>'string'], +'xmlwriter_end_attribute' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_cdata' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_comment' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_document' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_dtd' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_dtd_attlist' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_dtd_element' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_dtd_entity' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_element' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_end_pi' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_flush' => ['string|int', 'writer'=>'XMLWriter', 'empty='=>'bool'], +'xmlwriter_full_end_element' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_open_memory' => ['XMLWriter|false'], +'xmlwriter_open_uri' => ['XMLWriter|false', 'uri'=>'string'], +'xmlwriter_output_memory' => ['string', 'writer'=>'XMLWriter', 'flush='=>'bool'], +'xmlwriter_set_indent' => ['bool', 'writer'=>'XMLWriter', 'enable'=>'bool'], +'xmlwriter_set_indent_string' => ['bool', 'writer'=>'XMLWriter', 'indentation'=>'string'], +'xmlwriter_start_attribute' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], +'xmlwriter_start_attribute_ns' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], +'xmlwriter_start_cdata' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_start_comment' => ['bool', 'writer'=>'XMLWriter'], +'xmlwriter_start_document' => ['bool', 'writer'=>'XMLWriter', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], +'xmlwriter_start_dtd' => ['bool', 'writer'=>'XMLWriter', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], +'xmlwriter_start_dtd_attlist' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], +'xmlwriter_start_dtd_element' => ['bool', 'writer'=>'XMLWriter', 'qualifiedName'=>'string'], +'xmlwriter_start_dtd_entity' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'isParam'=>'bool'], +'xmlwriter_start_element' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], +'xmlwriter_start_element_ns' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], +'xmlwriter_start_pi' => ['bool', 'writer'=>'XMLWriter', 'target'=>'string'], +'xmlwriter_text' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], +'xmlwriter_write_attribute' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'value'=>'string'], +'xmlwriter_write_attribute_ns' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], +'xmlwriter_write_cdata' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], +'xmlwriter_write_comment' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], +'xmlwriter_write_dtd' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], +'xmlwriter_write_dtd_attlist' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string'], +'xmlwriter_write_dtd_element' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string'], +'xmlwriter_write_dtd_entity' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string', 'isParam='=>'bool', 'publicId='=>'?string', 'systemId='=>'?string', 'notationData='=>'?string'], +'xmlwriter_write_element' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content='=>'?string'], +'xmlwriter_write_element_ns' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'content='=>'?string'], +'xmlwriter_write_pi' => ['bool', 'writer'=>'XMLWriter', 'target'=>'string', 'content'=>'string'], +'xmlwriter_write_raw' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], +'xpath_new_context' => ['XPathContext', 'dom_document'=>'DOMDocument'], +'xpath_register_ns' => ['bool', 'xpath_context'=>'xpathcontext', 'prefix'=>'string', 'uri'=>'string'], +'xpath_register_ns_auto' => ['bool', 'xpath_context'=>'xpathcontext', 'context_node='=>'object'], +'xptr_new_context' => ['XPathContext'], +'XSLTProcessor::getParameter' => ['string|false', 'namespace'=>'string', 'name'=>'string'], +'XsltProcessor::getSecurityPrefs' => ['int'], +'XSLTProcessor::hasExsltSupport' => ['bool'], +'XSLTProcessor::importStylesheet' => ['bool', 'stylesheet'=>'object'], +'XSLTProcessor::registerPHPFunctions' => ['void', 'functions='=>'mixed'], +'XSLTProcessor::removeParameter' => ['bool', 'namespace'=>'string', 'name'=>'string'], +'XSLTProcessor::setParameter' => ['bool', 'namespace'=>'string', 'name'=>'string', 'value'=>'string'], +'XSLTProcessor::setParameter\'1' => ['bool', 'namespace'=>'string', 'options'=>'array'], +'XSLTProcessor::setProfiling' => ['bool', 'filename'=>'?string'], +'XsltProcessor::setSecurityPrefs' => ['int', 'preferences'=>'int'], +'XSLTProcessor::transformToDoc' => ['DOMDocument|false', 'document'=>'DOMNode'], +'XSLTProcessor::transformToURI' => ['int', 'document'=>'DOMDocument', 'uri'=>'string'], +'XSLTProcessor::transformToXML' => ['string|false', 'document'=>'DOMDocument'], +'yac::__construct' => ['void', 'prefix='=>'string'], +'yac::__get' => ['mixed', 'key'=>'string'], +'yac::__set' => ['mixed', 'key'=>'string', 'value'=>'mixed'], +'yac::delete' => ['bool', 'keys'=>'string|array', 'ttl='=>'int'], +'yac::dump' => ['mixed', 'num'=>'int'], +'yac::flush' => ['bool'], +'yac::get' => ['mixed', 'key'=>'string|array', 'cas='=>'int'], +'yac::info' => ['array'], +'Yaconf::get' => ['mixed', 'name'=>'string', 'default_value='=>'mixed'], +'Yaconf::has' => ['bool', 'name'=>'string'], +'Yaf\Action_Abstract::__clone' => ['void'], +'Yaf\Action_Abstract::__construct' => ['void', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract', 'view'=>'Yaf\View_Interface', 'invokeArgs='=>'?array'], +'Yaf\Action_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf\Action_Abstract::execute' => ['mixed'], +'Yaf\Action_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], +'Yaf\Action_Abstract::getController' => ['Yaf\Controller_Abstract'], +'Yaf\Action_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], +'Yaf\Action_Abstract::getInvokeArgs' => ['array'], +'Yaf\Action_Abstract::getModuleName' => ['string'], +'Yaf\Action_Abstract::getRequest' => ['Yaf\Request_Abstract'], +'Yaf\Action_Abstract::getResponse' => ['Yaf\Response_Abstract'], +'Yaf\Action_Abstract::getView' => ['Yaf\View_Interface'], +'Yaf\Action_Abstract::getViewpath' => ['string'], +'Yaf\Action_Abstract::init' => [''], +'Yaf\Action_Abstract::initView' => ['Yaf\Response_Abstract', 'options='=>'?array'], +'Yaf\Action_Abstract::redirect' => ['bool', 'url'=>'string'], +'Yaf\Action_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf\Action_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], +'Yaf\Application::__clone' => ['void'], +'Yaf\Application::__construct' => ['void', 'config'=>'array|string', 'envrion='=>'string'], +'Yaf\Application::__destruct' => ['void'], +'Yaf\Application::__sleep' => ['string[]'], +'Yaf\Application::__wakeup' => ['void'], +'Yaf\Application::app' => ['?Yaf\Application'], +'Yaf\Application::bootstrap' => ['Yaf\Application', 'bootstrap='=>'?Yaf\Bootstrap_Abstract'], +'Yaf\Application::clearLastError' => ['void'], +'Yaf\Application::environ' => ['string'], +'Yaf\Application::execute' => ['void', 'entry'=>'callable', '_='=>'string'], +'Yaf\Application::getAppDirectory' => ['string'], +'Yaf\Application::getConfig' => ['Yaf\Config_Abstract'], +'Yaf\Application::getDispatcher' => ['Yaf\Dispatcher'], +'Yaf\Application::getLastErrorMsg' => ['string'], +'Yaf\Application::getLastErrorNo' => ['int'], +'Yaf\Application::getModules' => ['array'], +'Yaf\Application::run' => ['void'], +'Yaf\Application::setAppDirectory' => ['Yaf\Application', 'directory'=>'string'], +'Yaf\Config\Ini::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], +'Yaf\Config\Ini::__get' => ['', 'name='=>'mixed'], +'Yaf\Config\Ini::__isset' => ['', 'name'=>'string'], +'Yaf\Config\Ini::__set' => ['void', 'name'=>'', 'value'=>''], +'Yaf\Config\Ini::count' => ['int'], +'Yaf\Config\Ini::current' => ['mixed'], +'Yaf\Config\Ini::get' => ['mixed', 'name='=>'mixed'], +'Yaf\Config\Ini::key' => ['int|string'], +'Yaf\Config\Ini::next' => ['void'], +'Yaf\Config\Ini::offsetExists' => ['bool', 'name'=>'mixed'], +'Yaf\Config\Ini::offsetGet' => ['mixed', 'name'=>'mixed'], +'Yaf\Config\Ini::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], +'Yaf\Config\Ini::offsetUnset' => ['void', 'name'=>'mixed'], +'Yaf\Config\Ini::readonly' => ['bool'], +'Yaf\Config\Ini::rewind' => ['void'], +'Yaf\Config\Ini::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], +'Yaf\Config\Ini::toArray' => ['array'], +'Yaf\Config\Ini::valid' => ['bool'], +'Yaf\Config\Simple::__construct' => ['void', 'array'=>'array', 'readonly='=>'string'], +'Yaf\Config\Simple::__get' => ['', 'name='=>'mixed'], +'Yaf\Config\Simple::__isset' => ['', 'name'=>'string'], +'Yaf\Config\Simple::__set' => ['void', 'name'=>'', 'value'=>''], +'Yaf\Config\Simple::count' => ['int'], +'Yaf\Config\Simple::current' => ['mixed'], +'Yaf\Config\Simple::get' => ['mixed', 'name='=>'mixed'], +'Yaf\Config\Simple::key' => ['int|string'], +'Yaf\Config\Simple::next' => ['void'], +'Yaf\Config\Simple::offsetExists' => ['bool', 'name'=>'mixed'], +'Yaf\Config\Simple::offsetGet' => ['mixed', 'name'=>'mixed'], +'Yaf\Config\Simple::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], +'Yaf\Config\Simple::offsetUnset' => ['void', 'name'=>'mixed'], +'Yaf\Config\Simple::readonly' => ['bool'], +'Yaf\Config\Simple::rewind' => ['void'], +'Yaf\Config\Simple::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], +'Yaf\Config\Simple::toArray' => ['array'], +'Yaf\Config\Simple::valid' => ['bool'], +'Yaf\Config_Abstract::__construct' => ['void'], +'Yaf\Config_Abstract::get' => ['mixed', 'name='=>'string'], +'Yaf\Config_Abstract::readonly' => ['bool'], +'Yaf\Config_Abstract::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], +'Yaf\Config_Abstract::toArray' => ['array'], +'Yaf\Controller_Abstract::__clone' => ['void'], +'Yaf\Controller_Abstract::__construct' => ['void', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract', 'view'=>'Yaf\View_Interface', 'invokeArgs='=>'?array'], +'Yaf\Controller_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf\Controller_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], +'Yaf\Controller_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], +'Yaf\Controller_Abstract::getInvokeArgs' => ['array'], +'Yaf\Controller_Abstract::getModuleName' => ['string'], +'Yaf\Controller_Abstract::getRequest' => ['Yaf\Request_Abstract'], +'Yaf\Controller_Abstract::getResponse' => ['Yaf\Response_Abstract'], +'Yaf\Controller_Abstract::getView' => ['Yaf\View_Interface'], +'Yaf\Controller_Abstract::getViewpath' => ['string'], +'Yaf\Controller_Abstract::init' => [''], +'Yaf\Controller_Abstract::initView' => ['Yaf\Response_Abstract', 'options='=>'?array'], +'Yaf\Controller_Abstract::redirect' => ['bool', 'url'=>'string'], +'Yaf\Controller_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf\Controller_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], +'Yaf\Dispatcher::__clone' => ['void'], +'Yaf\Dispatcher::__construct' => ['void'], +'Yaf\Dispatcher::__sleep' => ['list'], +'Yaf\Dispatcher::__wakeup' => ['void'], +'Yaf\Dispatcher::autoRender' => ['Yaf\Dispatcher', 'flag='=>'bool'], +'Yaf\Dispatcher::catchException' => ['Yaf\Dispatcher', 'flag='=>'bool'], +'Yaf\Dispatcher::disableView' => ['bool'], +'Yaf\Dispatcher::dispatch' => ['Yaf\Response_Abstract', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Dispatcher::enableView' => ['Yaf\Dispatcher'], +'Yaf\Dispatcher::flushInstantly' => ['Yaf\Dispatcher', 'flag='=>'bool'], +'Yaf\Dispatcher::getApplication' => ['Yaf\Application'], +'Yaf\Dispatcher::getInstance' => ['Yaf\Dispatcher'], +'Yaf\Dispatcher::getRequest' => ['Yaf\Request_Abstract'], +'Yaf\Dispatcher::getRouter' => ['Yaf\Router'], +'Yaf\Dispatcher::initView' => ['Yaf\View_Interface', 'templates_dir'=>'string', 'options='=>'?array'], +'Yaf\Dispatcher::registerPlugin' => ['Yaf\Dispatcher', 'plugin'=>'Yaf\Plugin_Abstract'], +'Yaf\Dispatcher::returnResponse' => ['Yaf\Dispatcher', 'flag'=>'bool'], +'Yaf\Dispatcher::setDefaultAction' => ['Yaf\Dispatcher', 'action'=>'string'], +'Yaf\Dispatcher::setDefaultController' => ['Yaf\Dispatcher', 'controller'=>'string'], +'Yaf\Dispatcher::setDefaultModule' => ['Yaf\Dispatcher', 'module'=>'string'], +'Yaf\Dispatcher::setErrorHandler' => ['Yaf\Dispatcher', 'callback'=>'callable', 'error_types'=>'int'], +'Yaf\Dispatcher::setRequest' => ['Yaf\Dispatcher', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Dispatcher::setView' => ['Yaf\Dispatcher', 'view'=>'Yaf\View_Interface'], +'Yaf\Dispatcher::throwException' => ['Yaf\Dispatcher', 'flag='=>'bool'], +'Yaf\Loader::__clone' => ['void'], +'Yaf\Loader::__construct' => ['void'], +'Yaf\Loader::__sleep' => ['list'], +'Yaf\Loader::__wakeup' => ['void'], +'Yaf\Loader::autoload' => ['bool', 'class_name'=>'string'], +'Yaf\Loader::clearLocalNamespace' => [''], +'Yaf\Loader::getInstance' => ['Yaf\Loader', 'local_library_path='=>'string', 'global_library_path='=>'string'], +'Yaf\Loader::getLibraryPath' => ['string', 'is_global='=>'bool'], +'Yaf\Loader::getLocalNamespace' => ['string'], +'Yaf\Loader::import' => ['bool', 'file'=>'string'], +'Yaf\Loader::isLocalName' => ['bool', 'class_name'=>'string'], +'Yaf\Loader::registerLocalNamespace' => ['bool', 'name_prefix'=>'string|string[]'], +'Yaf\Loader::setLibraryPath' => ['Yaf\Loader', 'directory'=>'string', 'global='=>'bool'], +'Yaf\Plugin_Abstract::dispatchLoopShutdown' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::dispatchLoopStartup' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::postDispatch' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::preDispatch' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::preResponse' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::routerShutdown' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Plugin_Abstract::routerStartup' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], +'Yaf\Registry::__clone' => ['void'], +'Yaf\Registry::__construct' => ['void'], +'Yaf\Registry::del' => ['bool|void', 'name'=>'string'], +'Yaf\Registry::get' => ['mixed', 'name'=>'string'], +'Yaf\Registry::has' => ['bool', 'name'=>'string'], +'Yaf\Registry::set' => ['bool', 'name'=>'string', 'value'=>'mixed'], +'Yaf\Request\Http::__clone' => ['void'], +'Yaf\Request\Http::__construct' => ['void', 'request_uri'=>'string', 'base_uri'=>'string'], +'Yaf\Request\Http::get' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf\Request\Http::getActionName' => ['string'], +'Yaf\Request\Http::getBaseUri' => ['string'], +'Yaf\Request\Http::getControllerName' => ['string'], +'Yaf\Request\Http::getCookie' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getException' => ['Yaf\Exception'], +'Yaf\Request\Http::getFiles' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getLanguage' => ['string'], +'Yaf\Request\Http::getMethod' => ['string'], +'Yaf\Request\Http::getModuleName' => ['string'], +'Yaf\Request\Http::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getParams' => ['array'], +'Yaf\Request\Http::getPost' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getQuery' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getRequest' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::getRequestUri' => ['string'], +'Yaf\Request\Http::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Http::isCli' => ['bool'], +'Yaf\Request\Http::isDispatched' => ['bool'], +'Yaf\Request\Http::isGet' => ['bool'], +'Yaf\Request\Http::isHead' => ['bool'], +'Yaf\Request\Http::isOptions' => ['bool'], +'Yaf\Request\Http::isPost' => ['bool'], +'Yaf\Request\Http::isPut' => ['bool'], +'Yaf\Request\Http::isRouted' => ['bool'], +'Yaf\Request\Http::isXmlHttpRequest' => ['bool'], +'Yaf\Request\Http::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], +'Yaf\Request\Http::setBaseUri' => ['bool', 'uri'=>'string'], +'Yaf\Request\Http::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], +'Yaf\Request\Http::setDispatched' => ['bool'], +'Yaf\Request\Http::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], +'Yaf\Request\Http::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], +'Yaf\Request\Http::setRequestUri' => ['', 'uri'=>'string'], +'Yaf\Request\Http::setRouted' => ['Yaf\Request_Abstract|bool'], +'Yaf\Request\Simple::__clone' => ['void'], +'Yaf\Request\Simple::__construct' => ['void', 'method'=>'string', 'controller'=>'string', 'action'=>'string', 'params='=>'string'], +'Yaf\Request\Simple::get' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf\Request\Simple::getActionName' => ['string'], +'Yaf\Request\Simple::getBaseUri' => ['string'], +'Yaf\Request\Simple::getControllerName' => ['string'], +'Yaf\Request\Simple::getCookie' => ['mixed', 'name='=>'string', 'default='=>'string'], +'Yaf\Request\Simple::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Simple::getException' => ['Yaf\Exception'], +'Yaf\Request\Simple::getFiles' => ['array', 'name='=>'mixed', 'default='=>'null'], +'Yaf\Request\Simple::getLanguage' => ['string'], +'Yaf\Request\Simple::getMethod' => ['string'], +'Yaf\Request\Simple::getModuleName' => ['string'], +'Yaf\Request\Simple::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'Yaf\Request\Simple::getParams' => ['array'], +'Yaf\Request\Simple::getPost' => ['mixed', 'name='=>'string', 'default='=>'string'], +'Yaf\Request\Simple::getQuery' => ['mixed', 'name='=>'string', 'default='=>'string'], +'Yaf\Request\Simple::getRequest' => ['mixed', 'name='=>'string', 'default='=>'string'], +'Yaf\Request\Simple::getRequestUri' => ['string'], +'Yaf\Request\Simple::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request\Simple::isCli' => ['bool'], +'Yaf\Request\Simple::isDispatched' => ['bool'], +'Yaf\Request\Simple::isGet' => ['bool'], +'Yaf\Request\Simple::isHead' => ['bool'], +'Yaf\Request\Simple::isOptions' => ['bool'], +'Yaf\Request\Simple::isPost' => ['bool'], +'Yaf\Request\Simple::isPut' => ['bool'], +'Yaf\Request\Simple::isRouted' => ['bool'], +'Yaf\Request\Simple::isXmlHttpRequest' => ['bool'], +'Yaf\Request\Simple::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], +'Yaf\Request\Simple::setBaseUri' => ['bool', 'uri'=>'string'], +'Yaf\Request\Simple::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], +'Yaf\Request\Simple::setDispatched' => ['bool'], +'Yaf\Request\Simple::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], +'Yaf\Request\Simple::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], +'Yaf\Request\Simple::setRequestUri' => ['', 'uri'=>'string'], +'Yaf\Request\Simple::setRouted' => ['Yaf\Request_Abstract|bool'], +'Yaf\Request_Abstract::getActionName' => ['string'], +'Yaf\Request_Abstract::getBaseUri' => ['string'], +'Yaf\Request_Abstract::getControllerName' => ['string'], +'Yaf\Request_Abstract::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request_Abstract::getException' => ['Yaf\Exception'], +'Yaf\Request_Abstract::getLanguage' => ['string'], +'Yaf\Request_Abstract::getMethod' => ['string'], +'Yaf\Request_Abstract::getModuleName' => ['string'], +'Yaf\Request_Abstract::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'Yaf\Request_Abstract::getParams' => ['array'], +'Yaf\Request_Abstract::getRequestUri' => ['string'], +'Yaf\Request_Abstract::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf\Request_Abstract::isCli' => ['bool'], +'Yaf\Request_Abstract::isDispatched' => ['bool'], +'Yaf\Request_Abstract::isGet' => ['bool'], +'Yaf\Request_Abstract::isHead' => ['bool'], +'Yaf\Request_Abstract::isOptions' => ['bool'], +'Yaf\Request_Abstract::isPost' => ['bool'], +'Yaf\Request_Abstract::isPut' => ['bool'], +'Yaf\Request_Abstract::isRouted' => ['bool'], +'Yaf\Request_Abstract::isXmlHttpRequest' => ['bool'], +'Yaf\Request_Abstract::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], +'Yaf\Request_Abstract::setBaseUri' => ['bool', 'uri'=>'string'], +'Yaf\Request_Abstract::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], +'Yaf\Request_Abstract::setDispatched' => ['bool'], +'Yaf\Request_Abstract::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], +'Yaf\Request_Abstract::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], +'Yaf\Request_Abstract::setRequestUri' => ['', 'uri'=>'string'], +'Yaf\Request_Abstract::setRouted' => ['Yaf\Request_Abstract|bool'], +'Yaf\Response\Cli::__clone' => ['void'], +'Yaf\Response\Cli::__construct' => ['void'], +'Yaf\Response\Cli::__destruct' => ['void'], +'Yaf\Response\Cli::__toString' => ['string'], +'Yaf\Response\Cli::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Cli::clearBody' => ['bool', 'key='=>'string'], +'Yaf\Response\Cli::getBody' => ['mixed', 'key='=>'?string'], +'Yaf\Response\Cli::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Cli::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Http::__clone' => ['void'], +'Yaf\Response\Http::__construct' => ['void'], +'Yaf\Response\Http::__destruct' => ['void'], +'Yaf\Response\Http::__toString' => ['string'], +'Yaf\Response\Http::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Http::clearBody' => ['bool', 'key='=>'string'], +'Yaf\Response\Http::clearHeaders' => ['Yaf\Response_Abstract|false', 'name='=>'string'], +'Yaf\Response\Http::getBody' => ['mixed', 'key='=>'?string'], +'Yaf\Response\Http::getHeader' => ['mixed', 'name='=>'string'], +'Yaf\Response\Http::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Http::response' => ['bool'], +'Yaf\Response\Http::setAllHeaders' => ['bool', 'headers'=>'array'], +'Yaf\Response\Http::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response\Http::setHeader' => ['bool', 'name'=>'string', 'value'=>'string', 'replace='=>'bool', 'response_code='=>'int'], +'Yaf\Response\Http::setRedirect' => ['bool', 'url'=>'string'], +'Yaf\Response_Abstract::__clone' => ['void'], +'Yaf\Response_Abstract::__construct' => ['void'], +'Yaf\Response_Abstract::__destruct' => ['void'], +'Yaf\Response_Abstract::__toString' => ['void'], +'Yaf\Response_Abstract::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response_Abstract::clearBody' => ['bool', 'key='=>'string'], +'Yaf\Response_Abstract::getBody' => ['mixed', 'key='=>'?string'], +'Yaf\Response_Abstract::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Response_Abstract::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf\Route\Map::__construct' => ['void', 'controller_prefer='=>'bool', 'delimiter='=>'string'], +'Yaf\Route\Map::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route\Map::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route\Regex::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'map='=>'?array', 'verify='=>'?array', 'reverse='=>'string'], +'Yaf\Route\Regex::addConfig' => ['Yaf\Router|bool', 'config'=>'Yaf\Config_Abstract'], +'Yaf\Route\Regex::addRoute' => ['Yaf\Router|bool', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], +'Yaf\Route\Regex::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route\Regex::getCurrentRoute' => ['string'], +'Yaf\Route\Regex::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], +'Yaf\Route\Regex::getRoutes' => ['Yaf\Route_Interface[]'], +'Yaf\Route\Regex::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route\Rewrite::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'verify='=>'?array', 'reverse='=>'string'], +'Yaf\Route\Rewrite::addConfig' => ['Yaf\Router|bool', 'config'=>'Yaf\Config_Abstract'], +'Yaf\Route\Rewrite::addRoute' => ['Yaf\Router|bool', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], +'Yaf\Route\Rewrite::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route\Rewrite::getCurrentRoute' => ['string'], +'Yaf\Route\Rewrite::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], +'Yaf\Route\Rewrite::getRoutes' => ['Yaf\Route_Interface[]'], +'Yaf\Route\Rewrite::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route\Simple::__construct' => ['void', 'module_name'=>'string', 'controller_name'=>'string', 'action_name'=>'string'], +'Yaf\Route\Simple::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route\Simple::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route\Supervar::__construct' => ['void', 'supervar_name'=>'string'], +'Yaf\Route\Supervar::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route\Supervar::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route_Interface::__construct' => ['Yaf\Route_Interface'], +'Yaf\Route_Interface::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route_Interface::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Route_Static::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], +'Yaf\Route_Static::match' => ['bool', 'uri'=>'string'], +'Yaf\Route_Static::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Router::__construct' => ['void'], +'Yaf\Router::addConfig' => ['Yaf\Router|false', 'config'=>'Yaf\Config_Abstract'], +'Yaf\Router::addRoute' => ['Yaf\Router|false', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], +'Yaf\Router::getCurrentRoute' => ['string'], +'Yaf\Router::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], +'Yaf\Router::getRoutes' => ['Yaf\Route_Interface[]'], +'Yaf\Router::route' => ['Yaf\Router|false', 'request'=>'Yaf\Request_Abstract'], +'Yaf\Session::__clone' => ['void'], +'Yaf\Session::__construct' => ['void'], +'Yaf\Session::__get' => ['void', 'name'=>''], +'Yaf\Session::__isset' => ['void', 'name'=>''], +'Yaf\Session::__set' => ['void', 'name'=>'', 'value'=>''], +'Yaf\Session::__sleep' => ['list'], +'Yaf\Session::__unset' => ['void', 'name'=>''], +'Yaf\Session::__wakeup' => ['void'], +'Yaf\Session::count' => ['int'], +'Yaf\Session::current' => ['mixed'], +'Yaf\Session::del' => ['Yaf\Session|false', 'name'=>'string'], +'Yaf\Session::get' => ['mixed', 'name'=>'string'], +'Yaf\Session::getInstance' => ['Yaf\Session'], +'Yaf\Session::has' => ['bool', 'name'=>'string'], +'Yaf\Session::key' => ['int|string'], +'Yaf\Session::next' => ['void'], +'Yaf\Session::offsetExists' => ['bool', 'name'=>'mixed'], +'Yaf\Session::offsetGet' => ['mixed', 'name'=>'mixed'], +'Yaf\Session::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], +'Yaf\Session::offsetUnset' => ['void', 'name'=>'mixed'], +'Yaf\Session::rewind' => ['void'], +'Yaf\Session::set' => ['Yaf\Session|false', 'name'=>'string', 'value'=>'mixed'], +'Yaf\Session::start' => ['Yaf\Session'], +'Yaf\Session::valid' => ['bool'], +'Yaf\View\Simple::__construct' => ['void', 'template_dir'=>'string', 'options='=>'?array'], +'Yaf\View\Simple::__get' => ['mixed', 'name='=>'null'], +'Yaf\View\Simple::__isset' => ['', 'name'=>'string'], +'Yaf\View\Simple::__set' => ['void', 'name'=>'string', 'value='=>'mixed'], +'Yaf\View\Simple::assign' => ['Yaf\View\Simple', 'name'=>'array|string', 'value='=>'mixed'], +'Yaf\View\Simple::assignRef' => ['Yaf\View\Simple', 'name'=>'string', '&value'=>'mixed'], +'Yaf\View\Simple::clear' => ['Yaf\View\Simple', 'name='=>'string'], +'Yaf\View\Simple::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'?array'], +'Yaf\View\Simple::eval' => ['bool|void', 'tpl_str'=>'string', 'vars='=>'?array'], +'Yaf\View\Simple::getScriptPath' => ['string'], +'Yaf\View\Simple::render' => ['string|void', 'tpl'=>'string', 'tpl_vars='=>'?array'], +'Yaf\View\Simple::setScriptPath' => ['Yaf\View\Simple', 'template_dir'=>'string'], +'Yaf\View_Interface::assign' => ['bool', 'name'=>'array|string', 'value'=>'mixed'], +'Yaf\View_Interface::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'?array'], +'Yaf\View_Interface::getScriptPath' => ['string'], +'Yaf\View_Interface::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'?array'], +'Yaf\View_Interface::setScriptPath' => ['void', 'template_dir'=>'string'], +'Yaf_Action_Abstract::__clone' => ['void'], +'Yaf_Action_Abstract::__construct' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract', 'view'=>'Yaf_View_Interface', 'invokeArgs='=>'?array'], +'Yaf_Action_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf_Action_Abstract::execute' => ['mixed', 'arg='=>'mixed', '...args='=>'mixed'], +'Yaf_Action_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], +'Yaf_Action_Abstract::getController' => ['Yaf_Controller_Abstract'], +'Yaf_Action_Abstract::getControllerName' => ['string'], +'Yaf_Action_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], +'Yaf_Action_Abstract::getInvokeArgs' => ['array'], +'Yaf_Action_Abstract::getModuleName' => ['string'], +'Yaf_Action_Abstract::getRequest' => ['Yaf_Request_Abstract'], +'Yaf_Action_Abstract::getResponse' => ['Yaf_Response_Abstract'], +'Yaf_Action_Abstract::getView' => ['Yaf_View_Interface'], +'Yaf_Action_Abstract::getViewpath' => ['string'], +'Yaf_Action_Abstract::init' => [''], +'Yaf_Action_Abstract::initView' => ['Yaf_Response_Abstract', 'options='=>'?array'], +'Yaf_Action_Abstract::redirect' => ['bool', 'url'=>'string'], +'Yaf_Action_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], +'Yaf_Action_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], +'Yaf_Application::__clone' => ['void'], +'Yaf_Application::__construct' => ['void', 'config'=>'mixed', 'envrion='=>'string'], +'Yaf_Application::__destruct' => ['void'], +'Yaf_Application::__sleep' => ['list'], +'Yaf_Application::__wakeup' => ['void'], +'Yaf_Application::app' => ['?Yaf_Application'], +'Yaf_Application::bootstrap' => ['Yaf_Application', 'bootstrap='=>'Yaf_Bootstrap_Abstract'], +'Yaf_Application::clearLastError' => ['Yaf_Application'], +'Yaf_Application::environ' => ['string'], +'Yaf_Application::execute' => ['void', 'entry'=>'callable', '...args'=>'string'], +'Yaf_Application::getAppDirectory' => ['Yaf_Application'], +'Yaf_Application::getConfig' => ['Yaf_Config_Abstract'], +'Yaf_Application::getDispatcher' => ['Yaf_Dispatcher'], +'Yaf_Application::getLastErrorMsg' => ['string'], +'Yaf_Application::getLastErrorNo' => ['int'], +'Yaf_Application::getModules' => ['array'], +'Yaf_Application::run' => ['void'], +'Yaf_Application::setAppDirectory' => ['Yaf_Application', 'directory'=>'string'], +'Yaf_Config_Abstract::__construct' => ['void'], +'Yaf_Config_Abstract::get' => ['mixed', 'name'=>'string', 'value'=>'mixed'], +'Yaf_Config_Abstract::readonly' => ['bool'], +'Yaf_Config_Abstract::set' => ['Yaf_Config_Abstract'], +'Yaf_Config_Abstract::toArray' => ['array'], +'Yaf_Config_Ini::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], +'Yaf_Config_Ini::__get' => ['void', 'name='=>'string'], +'Yaf_Config_Ini::__isset' => ['void', 'name'=>'string'], +'Yaf_Config_Ini::__set' => ['void', 'name'=>'string', 'value'=>'mixed'], +'Yaf_Config_Ini::count' => ['void'], +'Yaf_Config_Ini::current' => ['void'], +'Yaf_Config_Ini::get' => ['mixed', 'name='=>'mixed'], +'Yaf_Config_Ini::key' => ['void'], +'Yaf_Config_Ini::next' => ['void'], +'Yaf_Config_Ini::offsetExists' => ['void', 'name'=>'string'], +'Yaf_Config_Ini::offsetGet' => ['void', 'name'=>'string'], +'Yaf_Config_Ini::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], +'Yaf_Config_Ini::offsetUnset' => ['void', 'name'=>'string'], +'Yaf_Config_Ini::readonly' => ['void'], +'Yaf_Config_Ini::rewind' => ['void'], +'Yaf_Config_Ini::set' => ['Yaf_Config_Abstract', 'name'=>'string', 'value'=>'mixed'], +'Yaf_Config_Ini::toArray' => ['array'], +'Yaf_Config_Ini::valid' => ['void'], +'Yaf_Config_Simple::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], +'Yaf_Config_Simple::__get' => ['void', 'name='=>'string'], +'Yaf_Config_Simple::__isset' => ['void', 'name'=>'string'], +'Yaf_Config_Simple::__set' => ['void', 'name'=>'string', 'value'=>'string'], +'Yaf_Config_Simple::count' => ['void'], +'Yaf_Config_Simple::current' => ['void'], +'Yaf_Config_Simple::get' => ['mixed', 'name='=>'mixed'], +'Yaf_Config_Simple::key' => ['void'], +'Yaf_Config_Simple::next' => ['void'], +'Yaf_Config_Simple::offsetExists' => ['void', 'name'=>'string'], +'Yaf_Config_Simple::offsetGet' => ['void', 'name'=>'string'], +'Yaf_Config_Simple::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], +'Yaf_Config_Simple::offsetUnset' => ['void', 'name'=>'string'], +'Yaf_Config_Simple::readonly' => ['void'], +'Yaf_Config_Simple::rewind' => ['void'], +'Yaf_Config_Simple::set' => ['Yaf_Config_Abstract', 'name'=>'string', 'value'=>'mixed'], +'Yaf_Config_Simple::toArray' => ['array'], +'Yaf_Config_Simple::valid' => ['void'], +'Yaf_Controller_Abstract::__clone' => ['void'], +'Yaf_Controller_Abstract::__construct' => ['void'], +'Yaf_Controller_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'array'], +'Yaf_Controller_Abstract::forward' => ['void', 'action'=>'string', 'parameters='=>'array'], +'Yaf_Controller_Abstract::forward\'1' => ['void', 'controller'=>'string', 'action'=>'string', 'parameters='=>'array'], +'Yaf_Controller_Abstract::forward\'2' => ['void', 'module'=>'string', 'controller'=>'string', 'action'=>'string', 'parameters='=>'array'], +'Yaf_Controller_Abstract::getInvokeArg' => ['void', 'name'=>'string'], +'Yaf_Controller_Abstract::getInvokeArgs' => ['void'], +'Yaf_Controller_Abstract::getModuleName' => ['string'], +'Yaf_Controller_Abstract::getName' => ['string'], +'Yaf_Controller_Abstract::getRequest' => ['Yaf_Request_Abstract'], +'Yaf_Controller_Abstract::getResponse' => ['Yaf_Response_Abstract'], +'Yaf_Controller_Abstract::getView' => ['Yaf_View_Interface'], +'Yaf_Controller_Abstract::getViewpath' => ['void'], +'Yaf_Controller_Abstract::init' => ['void'], +'Yaf_Controller_Abstract::initView' => ['void', 'options='=>'array'], +'Yaf_Controller_Abstract::redirect' => ['bool', 'url'=>'string'], +'Yaf_Controller_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'array'], +'Yaf_Controller_Abstract::setViewpath' => ['void', 'view_directory'=>'string'], +'Yaf_Dispatcher::__clone' => ['void'], +'Yaf_Dispatcher::__construct' => ['void'], +'Yaf_Dispatcher::__sleep' => ['list'], +'Yaf_Dispatcher::__wakeup' => ['void'], +'Yaf_Dispatcher::autoRender' => ['Yaf_Dispatcher', 'flag='=>'bool'], +'Yaf_Dispatcher::catchException' => ['Yaf_Dispatcher', 'flag='=>'bool'], +'Yaf_Dispatcher::disableView' => ['bool'], +'Yaf_Dispatcher::dispatch' => ['Yaf_Response_Abstract', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Dispatcher::enableView' => ['Yaf_Dispatcher'], +'Yaf_Dispatcher::flushInstantly' => ['Yaf_Dispatcher', 'flag='=>'bool'], +'Yaf_Dispatcher::getApplication' => ['Yaf_Application'], +'Yaf_Dispatcher::getDefaultAction' => ['string'], +'Yaf_Dispatcher::getDefaultController' => ['string'], +'Yaf_Dispatcher::getDefaultModule' => ['string'], +'Yaf_Dispatcher::getInstance' => ['Yaf_Dispatcher'], +'Yaf_Dispatcher::getRequest' => ['Yaf_Request_Abstract'], +'Yaf_Dispatcher::getRouter' => ['Yaf_Router'], +'Yaf_Dispatcher::initView' => ['Yaf_View_Interface', 'templates_dir'=>'string', 'options='=>'array'], +'Yaf_Dispatcher::registerPlugin' => ['Yaf_Dispatcher', 'plugin'=>'Yaf_Plugin_Abstract'], +'Yaf_Dispatcher::returnResponse' => ['Yaf_Dispatcher', 'flag'=>'bool'], +'Yaf_Dispatcher::setDefaultAction' => ['Yaf_Dispatcher', 'action'=>'string'], +'Yaf_Dispatcher::setDefaultController' => ['Yaf_Dispatcher', 'controller'=>'string'], +'Yaf_Dispatcher::setDefaultModule' => ['Yaf_Dispatcher', 'module'=>'string'], +'Yaf_Dispatcher::setErrorHandler' => ['Yaf_Dispatcher', 'callback'=>'callable', 'error_types'=>'int'], +'Yaf_Dispatcher::setRequest' => ['Yaf_Dispatcher', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Dispatcher::setView' => ['Yaf_Dispatcher', 'view'=>'Yaf_View_Interface'], +'Yaf_Dispatcher::throwException' => ['Yaf_Dispatcher', 'flag='=>'bool'], +'Yaf_Exception::__construct' => ['void'], +'Yaf_Exception::getPrevious' => ['void'], +'Yaf_Loader::__clone' => ['void'], +'Yaf_Loader::__construct' => ['void'], +'Yaf_Loader::__sleep' => ['list'], +'Yaf_Loader::__wakeup' => ['void'], +'Yaf_Loader::autoload' => ['void'], +'Yaf_Loader::clearLocalNamespace' => ['void'], +'Yaf_Loader::getInstance' => ['Yaf_Loader'], +'Yaf_Loader::getLibraryPath' => ['Yaf_Loader', 'is_global='=>'bool'], +'Yaf_Loader::getLocalNamespace' => ['void'], +'Yaf_Loader::getNamespacePath' => ['string', 'namespaces'=>'string'], +'Yaf_Loader::import' => ['bool'], +'Yaf_Loader::isLocalName' => ['bool'], +'Yaf_Loader::registerLocalNamespace' => ['void', 'prefix'=>'mixed'], +'Yaf_Loader::registerNamespace' => ['bool', 'namespaces'=>'string|array', 'path='=>'string'], +'Yaf_Loader::setLibraryPath' => ['Yaf_Loader', 'directory'=>'string', 'is_global='=>'bool'], +'Yaf_Plugin_Abstract::dispatchLoopShutdown' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::dispatchLoopStartup' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::postDispatch' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::preDispatch' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::preResponse' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::routerShutdown' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Plugin_Abstract::routerStartup' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], +'Yaf_Registry::__clone' => ['void'], +'Yaf_Registry::__construct' => ['void'], +'Yaf_Registry::del' => ['void', 'name'=>'string'], +'Yaf_Registry::get' => ['mixed', 'name'=>'string'], +'Yaf_Registry::has' => ['bool', 'name'=>'string'], +'Yaf_Registry::set' => ['bool', 'name'=>'string', 'value'=>'string'], +'Yaf_Request_Abstract::clearParams' => ['bool'], +'Yaf_Request_Abstract::getActionName' => ['void'], +'Yaf_Request_Abstract::getBaseUri' => ['void'], +'Yaf_Request_Abstract::getControllerName' => ['void'], +'Yaf_Request_Abstract::getEnv' => ['void', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Abstract::getException' => ['void'], +'Yaf_Request_Abstract::getLanguage' => ['void'], +'Yaf_Request_Abstract::getMethod' => ['void'], +'Yaf_Request_Abstract::getModuleName' => ['void'], +'Yaf_Request_Abstract::getParam' => ['void', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Abstract::getParams' => ['void'], +'Yaf_Request_Abstract::getRequestUri' => ['void'], +'Yaf_Request_Abstract::getServer' => ['void', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Abstract::isCli' => ['void'], +'Yaf_Request_Abstract::isDispatched' => ['void'], +'Yaf_Request_Abstract::isGet' => ['void'], +'Yaf_Request_Abstract::isHead' => ['void'], +'Yaf_Request_Abstract::isOptions' => ['void'], +'Yaf_Request_Abstract::isPost' => ['void'], +'Yaf_Request_Abstract::isPut' => ['void'], +'Yaf_Request_Abstract::isRouted' => ['void'], +'Yaf_Request_Abstract::isXmlHttpRequest' => ['void'], +'Yaf_Request_Abstract::setActionName' => ['void', 'action'=>'string'], +'Yaf_Request_Abstract::setBaseUri' => ['bool', 'uir'=>'string'], +'Yaf_Request_Abstract::setControllerName' => ['void', 'controller'=>'string'], +'Yaf_Request_Abstract::setDispatched' => ['void'], +'Yaf_Request_Abstract::setModuleName' => ['void', 'module'=>'string'], +'Yaf_Request_Abstract::setParam' => ['void', 'name'=>'string', 'value='=>'string'], +'Yaf_Request_Abstract::setRequestUri' => ['void', 'uir'=>'string'], +'Yaf_Request_Abstract::setRouted' => ['void', 'flag='=>'string'], +'Yaf_Request_Http::__clone' => ['void'], +'Yaf_Request_Http::__construct' => ['void'], +'Yaf_Request_Http::get' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Http::getActionName' => ['string'], +'Yaf_Request_Http::getBaseUri' => ['string'], +'Yaf_Request_Http::getControllerName' => ['string'], +'Yaf_Request_Http::getCookie' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Http::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf_Request_Http::getException' => ['Yaf_Exception'], +'Yaf_Request_Http::getFiles' => ['void'], +'Yaf_Request_Http::getLanguage' => ['string'], +'Yaf_Request_Http::getMethod' => ['string'], +'Yaf_Request_Http::getModuleName' => ['string'], +'Yaf_Request_Http::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'Yaf_Request_Http::getParams' => ['array'], +'Yaf_Request_Http::getPost' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Http::getQuery' => ['mixed', 'name'=>'string', 'default='=>'string'], +'Yaf_Request_Http::getRaw' => ['mixed'], +'Yaf_Request_Http::getRequest' => ['void'], +'Yaf_Request_Http::getRequestUri' => ['string'], +'Yaf_Request_Http::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf_Request_Http::isCli' => ['bool'], +'Yaf_Request_Http::isDispatched' => ['bool'], +'Yaf_Request_Http::isGet' => ['bool'], +'Yaf_Request_Http::isHead' => ['bool'], +'Yaf_Request_Http::isOptions' => ['bool'], +'Yaf_Request_Http::isPost' => ['bool'], +'Yaf_Request_Http::isPut' => ['bool'], +'Yaf_Request_Http::isRouted' => ['bool'], +'Yaf_Request_Http::isXmlHttpRequest' => ['bool'], +'Yaf_Request_Http::setActionName' => ['Yaf_Request_Abstract|bool', 'action'=>'string'], +'Yaf_Request_Http::setBaseUri' => ['bool', 'uri'=>'string'], +'Yaf_Request_Http::setControllerName' => ['Yaf_Request_Abstract|bool', 'controller'=>'string'], +'Yaf_Request_Http::setDispatched' => ['bool'], +'Yaf_Request_Http::setModuleName' => ['Yaf_Request_Abstract|bool', 'module'=>'string'], +'Yaf_Request_Http::setParam' => ['Yaf_Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], +'Yaf_Request_Http::setRequestUri' => ['', 'uri'=>'string'], +'Yaf_Request_Http::setRouted' => ['Yaf_Request_Abstract|bool'], +'Yaf_Request_Simple::__clone' => ['void'], +'Yaf_Request_Simple::__construct' => ['void'], +'Yaf_Request_Simple::get' => ['void'], +'Yaf_Request_Simple::getActionName' => ['string'], +'Yaf_Request_Simple::getBaseUri' => ['string'], +'Yaf_Request_Simple::getControllerName' => ['string'], +'Yaf_Request_Simple::getCookie' => ['void'], +'Yaf_Request_Simple::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf_Request_Simple::getException' => ['Yaf_Exception'], +'Yaf_Request_Simple::getFiles' => ['void'], +'Yaf_Request_Simple::getLanguage' => ['string'], +'Yaf_Request_Simple::getMethod' => ['string'], +'Yaf_Request_Simple::getModuleName' => ['string'], +'Yaf_Request_Simple::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], +'Yaf_Request_Simple::getParams' => ['array'], +'Yaf_Request_Simple::getPost' => ['void'], +'Yaf_Request_Simple::getQuery' => ['void'], +'Yaf_Request_Simple::getRequest' => ['void'], +'Yaf_Request_Simple::getRequestUri' => ['string'], +'Yaf_Request_Simple::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], +'Yaf_Request_Simple::isCli' => ['bool'], +'Yaf_Request_Simple::isDispatched' => ['bool'], +'Yaf_Request_Simple::isGet' => ['bool'], +'Yaf_Request_Simple::isHead' => ['bool'], +'Yaf_Request_Simple::isOptions' => ['bool'], +'Yaf_Request_Simple::isPost' => ['bool'], +'Yaf_Request_Simple::isPut' => ['bool'], +'Yaf_Request_Simple::isRouted' => ['bool'], +'Yaf_Request_Simple::isXmlHttpRequest' => ['void'], +'Yaf_Request_Simple::setActionName' => ['Yaf_Request_Abstract|bool', 'action'=>'string'], +'Yaf_Request_Simple::setBaseUri' => ['bool', 'uri'=>'string'], +'Yaf_Request_Simple::setControllerName' => ['Yaf_Request_Abstract|bool', 'controller'=>'string'], +'Yaf_Request_Simple::setDispatched' => ['bool'], +'Yaf_Request_Simple::setModuleName' => ['Yaf_Request_Abstract|bool', 'module'=>'string'], +'Yaf_Request_Simple::setParam' => ['Yaf_Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], +'Yaf_Request_Simple::setRequestUri' => ['', 'uri'=>'string'], +'Yaf_Request_Simple::setRouted' => ['Yaf_Request_Abstract|bool'], +'Yaf_Response_Abstract::__clone' => ['void'], +'Yaf_Response_Abstract::__construct' => ['void'], +'Yaf_Response_Abstract::__destruct' => ['void'], +'Yaf_Response_Abstract::__toString' => ['string'], +'Yaf_Response_Abstract::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Abstract::clearBody' => ['bool', 'key='=>'string'], +'Yaf_Response_Abstract::clearHeaders' => ['void'], +'Yaf_Response_Abstract::getBody' => ['mixed', 'key='=>'string'], +'Yaf_Response_Abstract::getHeader' => ['void'], +'Yaf_Response_Abstract::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Abstract::response' => ['void'], +'Yaf_Response_Abstract::setAllHeaders' => ['void'], +'Yaf_Response_Abstract::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Abstract::setHeader' => ['void'], +'Yaf_Response_Abstract::setRedirect' => ['void'], +'Yaf_Response_Cli::__clone' => ['void'], +'Yaf_Response_Cli::__construct' => ['void'], +'Yaf_Response_Cli::__destruct' => ['void'], +'Yaf_Response_Cli::__toString' => ['string'], +'Yaf_Response_Cli::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Cli::clearBody' => ['bool', 'key='=>'string'], +'Yaf_Response_Cli::getBody' => ['mixed', 'key='=>'?string'], +'Yaf_Response_Cli::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Cli::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Http::__clone' => ['void'], +'Yaf_Response_Http::__construct' => ['void'], +'Yaf_Response_Http::__destruct' => ['void'], +'Yaf_Response_Http::__toString' => ['string'], +'Yaf_Response_Http::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Http::clearBody' => ['bool', 'key='=>'string'], +'Yaf_Response_Http::clearHeaders' => ['Yaf_Response_Abstract|false', 'name='=>'string'], +'Yaf_Response_Http::getBody' => ['mixed', 'key='=>'?string'], +'Yaf_Response_Http::getHeader' => ['mixed', 'name='=>'string'], +'Yaf_Response_Http::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Http::response' => ['bool'], +'Yaf_Response_Http::setAllHeaders' => ['bool', 'headers'=>'array'], +'Yaf_Response_Http::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], +'Yaf_Response_Http::setHeader' => ['bool', 'name'=>'string', 'value'=>'string', 'replace='=>'bool', 'response_code='=>'int'], +'Yaf_Response_Http::setRedirect' => ['bool', 'url'=>'string'], +'Yaf_Route_Interface::__construct' => ['void'], +'Yaf_Route_Interface::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Interface::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Map::__construct' => ['void', 'controller_prefer='=>'string', 'delimiter='=>'string'], +'Yaf_Route_Map::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Map::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Regex::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'map='=>'array', 'verify='=>'array', 'reverse='=>'string'], +'Yaf_Route_Regex::addConfig' => ['Yaf_Router|bool', 'config'=>'Yaf_Config_Abstract'], +'Yaf_Route_Regex::addRoute' => ['Yaf_Router|bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], +'Yaf_Route_Regex::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Regex::getCurrentRoute' => ['string'], +'Yaf_Route_Regex::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], +'Yaf_Route_Regex::getRoutes' => ['Yaf_Route_Interface[]'], +'Yaf_Route_Regex::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Rewrite::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'verify='=>'array'], +'Yaf_Route_Rewrite::addConfig' => ['Yaf_Router|bool', 'config'=>'Yaf_Config_Abstract'], +'Yaf_Route_Rewrite::addRoute' => ['Yaf_Router|bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], +'Yaf_Route_Rewrite::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Rewrite::getCurrentRoute' => ['string'], +'Yaf_Route_Rewrite::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], +'Yaf_Route_Rewrite::getRoutes' => ['Yaf_Route_Interface[]'], +'Yaf_Route_Rewrite::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Simple::__construct' => ['void', 'module_name'=>'string', 'controller_name'=>'string', 'action_name'=>'string'], +'Yaf_Route_Simple::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Simple::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Static::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Static::match' => ['void', 'uri'=>'string'], +'Yaf_Route_Static::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Route_Supervar::__construct' => ['void', 'supervar_name'=>'string'], +'Yaf_Route_Supervar::assemble' => ['string', 'info'=>'array', 'query='=>'array'], +'Yaf_Route_Supervar::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Router::__construct' => ['void'], +'Yaf_Router::addConfig' => ['bool', 'config'=>'Yaf_Config_Abstract'], +'Yaf_Router::addRoute' => ['bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], +'Yaf_Router::getCurrentRoute' => ['string'], +'Yaf_Router::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], +'Yaf_Router::getRoutes' => ['mixed'], +'Yaf_Router::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], +'Yaf_Session::__clone' => ['void'], +'Yaf_Session::__construct' => ['void'], +'Yaf_Session::__get' => ['void', 'name'=>'string'], +'Yaf_Session::__isset' => ['void', 'name'=>'string'], +'Yaf_Session::__set' => ['void', 'name'=>'string', 'value'=>'string'], +'Yaf_Session::__sleep' => ['list'], +'Yaf_Session::__unset' => ['void', 'name'=>'string'], +'Yaf_Session::__wakeup' => ['void'], +'Yaf_Session::count' => ['void'], +'Yaf_Session::current' => ['void'], +'Yaf_Session::del' => ['void', 'name'=>'string'], +'Yaf_Session::get' => ['mixed', 'name'=>'string'], +'Yaf_Session::getInstance' => ['void'], +'Yaf_Session::has' => ['void', 'name'=>'string'], +'Yaf_Session::key' => ['void'], +'Yaf_Session::next' => ['void'], +'Yaf_Session::offsetExists' => ['void', 'name'=>'string'], +'Yaf_Session::offsetGet' => ['void', 'name'=>'string'], +'Yaf_Session::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], +'Yaf_Session::offsetUnset' => ['void', 'name'=>'string'], +'Yaf_Session::rewind' => ['void'], +'Yaf_Session::set' => ['Yaf_Session|bool', 'name'=>'string', 'value'=>'mixed'], +'Yaf_Session::start' => ['void'], +'Yaf_Session::valid' => ['void'], +'Yaf_View_Interface::assign' => ['bool', 'name'=>'string', 'value='=>'string'], +'Yaf_View_Interface::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'array'], +'Yaf_View_Interface::getScriptPath' => ['string'], +'Yaf_View_Interface::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'array'], +'Yaf_View_Interface::setScriptPath' => ['void', 'template_dir'=>'string'], +'Yaf_View_Simple::__construct' => ['void', 'tempalte_dir'=>'string', 'options='=>'array'], +'Yaf_View_Simple::__get' => ['void', 'name='=>'string'], +'Yaf_View_Simple::__isset' => ['void', 'name'=>'string'], +'Yaf_View_Simple::__set' => ['void', 'name'=>'string', 'value'=>'mixed'], +'Yaf_View_Simple::assign' => ['bool', 'name'=>'string', 'value='=>'mixed'], +'Yaf_View_Simple::assignRef' => ['bool', 'name'=>'string', '&rw_value'=>'mixed'], +'Yaf_View_Simple::clear' => ['bool', 'name='=>'string'], +'Yaf_View_Simple::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'array'], +'Yaf_View_Simple::eval' => ['string', 'tpl_content'=>'string', 'tpl_vars='=>'array'], +'Yaf_View_Simple::getScriptPath' => ['string'], +'Yaf_View_Simple::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'array'], +'Yaf_View_Simple::setScriptPath' => ['bool', 'template_dir'=>'string'], +'yaml_emit' => ['string', 'data'=>'mixed', 'encoding='=>'int', 'linebreak='=>'int', 'callbacks='=>'array'], +'yaml_emit_file' => ['bool', 'filename'=>'string', 'data'=>'mixed', 'encoding='=>'int', 'linebreak='=>'int', 'callbacks='=>'array'], +'yaml_parse' => ['mixed|false', 'input'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], +'yaml_parse_file' => ['mixed|false', 'filename'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], +'yaml_parse_url' => ['mixed|false', 'url'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], +'Yar_Client::__call' => ['void', 'method'=>'string', 'parameters'=>'array'], +'Yar_Client::__construct' => ['void', 'url'=>'string'], +'Yar_Client::setOpt' => ['Yar_Client|false', 'name'=>'int', 'value'=>'mixed'], +'Yar_Client_Exception::__clone' => ['void'], +'Yar_Client_Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'Yar_Client_Exception::__toString' => ['string'], +'Yar_Client_Exception::__wakeup' => ['void'], +'Yar_Client_Exception::getCode' => ['int'], +'Yar_Client_Exception::getFile' => ['string'], +'Yar_Client_Exception::getLine' => ['int'], +'Yar_Client_Exception::getMessage' => ['string'], +'Yar_Client_Exception::getPrevious' => ['?Exception|?Throwable'], +'Yar_Client_Exception::getTrace' => ['list\',args?:array}>'], +'Yar_Client_Exception::getTraceAsString' => ['string'], +'Yar_Client_Exception::getType' => ['string'], +'Yar_Concurrent_Client::call' => ['int', 'uri'=>'string', 'method'=>'string', 'parameters'=>'array', 'callback='=>'callable'], +'Yar_Concurrent_Client::loop' => ['bool', 'callback='=>'callable', 'error_callback='=>'callable'], +'Yar_Concurrent_Client::reset' => ['bool'], +'Yar_Server::__construct' => ['void', 'object'=>'Object'], +'Yar_Server::handle' => ['bool'], +'Yar_Server_Exception::__clone' => ['void'], +'Yar_Server_Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], +'Yar_Server_Exception::__toString' => ['string'], +'Yar_Server_Exception::__wakeup' => ['void'], +'Yar_Server_Exception::getCode' => ['int'], +'Yar_Server_Exception::getFile' => ['string'], +'Yar_Server_Exception::getLine' => ['int'], +'Yar_Server_Exception::getMessage' => ['string'], +'Yar_Server_Exception::getPrevious' => ['?Exception|?Throwable'], +'Yar_Server_Exception::getTrace' => ['list\',args?:array}>'], +'Yar_Server_Exception::getTraceAsString' => ['string'], +'Yar_Server_Exception::getType' => ['string'], +'yaz_addinfo' => ['string', 'id'=>'resource'], +'yaz_ccl_conf' => ['void', 'id'=>'resource', 'config'=>'array'], +'yaz_ccl_parse' => ['bool', 'id'=>'resource', 'query'=>'string', '&w_result'=>'array'], +'yaz_close' => ['bool', 'id'=>'resource'], +'yaz_connect' => ['mixed', 'zurl'=>'string', 'options='=>'mixed'], +'yaz_database' => ['bool', 'id'=>'resource', 'databases'=>'string'], +'yaz_element' => ['bool', 'id'=>'resource', 'elementset'=>'string'], +'yaz_errno' => ['int', 'id'=>'resource'], +'yaz_error' => ['string', 'id'=>'resource'], +'yaz_es' => ['void', 'id'=>'resource', 'type'=>'string', 'args'=>'array'], +'yaz_es_result' => ['array', 'id'=>'resource'], +'yaz_get_option' => ['string', 'id'=>'resource', 'name'=>'string'], +'yaz_hits' => ['int', 'id'=>'resource', 'searchresult='=>'array'], +'yaz_itemorder' => ['void', 'id'=>'resource', 'args'=>'array'], +'yaz_present' => ['bool', 'id'=>'resource'], +'yaz_range' => ['void', 'id'=>'resource', 'start'=>'int', 'number'=>'int'], +'yaz_record' => ['string', 'id'=>'resource', 'pos'=>'int', 'type'=>'string'], +'yaz_scan' => ['void', 'id'=>'resource', 'type'=>'string', 'startterm'=>'string', 'flags='=>'array'], +'yaz_scan_result' => ['array', 'id'=>'resource', 'result='=>'array'], +'yaz_schema' => ['void', 'id'=>'resource', 'schema'=>'string'], +'yaz_search' => ['bool', 'id'=>'resource', 'type'=>'string', 'query'=>'string'], +'yaz_set_option' => ['', 'id'=>'', 'name'=>'string', 'value'=>'string', 'options'=>'array'], +'yaz_sort' => ['void', 'id'=>'resource', 'criteria'=>'string'], +'yaz_syntax' => ['void', 'id'=>'resource', 'syntax'=>'string'], +'yaz_wait' => ['mixed', '&rw_options='=>'array'], +'yp_all' => ['void', 'domain'=>'string', 'map'=>'string', 'callback'=>'string'], +'yp_cat' => ['array', 'domain'=>'string', 'map'=>'string'], +'yp_err_string' => ['string', 'errorcode'=>'int'], +'yp_errno' => ['int'], +'yp_first' => ['array', 'domain'=>'string', 'map'=>'string'], +'yp_get_default_domain' => ['string'], +'yp_master' => ['string', 'domain'=>'string', 'map'=>'string'], +'yp_match' => ['string', 'domain'=>'string', 'map'=>'string', 'key'=>'string'], +'yp_next' => ['array', 'domain'=>'string', 'map'=>'string', 'key'=>'string'], +'yp_order' => ['int', 'domain'=>'string', 'map'=>'string'], +'zem_get_extension_info_by_id' => [''], +'zem_get_extension_info_by_name' => [''], +'zem_get_extensions_info' => [''], +'zem_get_license_info' => [''], +'zend_current_obfuscation_level' => ['int'], +'zend_disk_cache_clear' => ['bool', 'namespace='=>'mixed|string'], +'zend_disk_cache_delete' => ['mixed|null', 'key'=>'string'], +'zend_disk_cache_fetch' => ['mixed|null', 'key'=>'string'], +'zend_disk_cache_store' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int|mixed'], +'zend_get_id' => ['array', 'all_ids='=>'all_ids|false'], +'zend_is_configuration_changed' => [''], +'zend_loader_current_file' => ['string'], +'zend_loader_enabled' => ['bool'], +'zend_loader_file_encoded' => ['bool'], +'zend_loader_file_licensed' => ['array'], +'zend_loader_install_license' => ['bool', 'license_file'=>'string', 'override'=>'bool'], +'zend_logo_guid' => ['string'], +'zend_obfuscate_class_name' => ['string', 'class_name'=>'string'], +'zend_obfuscate_function_name' => ['string', 'function_name'=>'string'], +'zend_optimizer_version' => ['string'], +'zend_runtime_obfuscate' => ['void'], +'zend_send_buffer' => ['null|false', 'buffer'=>'string', 'mime_type='=>'string', 'custom_headers='=>'string'], +'zend_send_file' => ['null|false', 'filename'=>'string', 'mime_type='=>'string', 'custom_headers='=>'string'], +'zend_set_configuration_changed' => [''], +'zend_shm_cache_clear' => ['bool', 'namespace='=>'mixed|string'], +'zend_shm_cache_delete' => ['mixed|null', 'key'=>'string'], +'zend_shm_cache_fetch' => ['mixed|null', 'key'=>'string'], +'zend_shm_cache_store' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int|mixed'], +'zend_thread_id' => ['int'], +'zend_version' => ['string'], +'ZendAPI_Job::addJobToQueue' => ['int', 'jobqueue_url'=>'string', 'password'=>'string'], +'ZendAPI_Job::getApplicationID' => [''], +'ZendAPI_Job::getEndTime' => [''], +'ZendAPI_Job::getGlobalVariables' => [''], +'ZendAPI_Job::getHost' => [''], +'ZendAPI_Job::getID' => [''], +'ZendAPI_Job::getInterval' => [''], +'ZendAPI_Job::getJobDependency' => [''], +'ZendAPI_Job::getJobName' => [''], +'ZendAPI_Job::getJobPriority' => [''], +'ZendAPI_Job::getJobStatus' => ['int'], +'ZendAPI_Job::getLastPerformedStatus' => ['int'], +'ZendAPI_Job::getOutput' => ['An'], +'ZendAPI_Job::getPreserved' => [''], +'ZendAPI_Job::getProperties' => ['array'], +'ZendAPI_Job::getScheduledTime' => [''], +'ZendAPI_Job::getScript' => [''], +'ZendAPI_Job::getTimeToNextRepeat' => ['int'], +'ZendAPI_Job::getUserVariables' => [''], +'ZendAPI_Job::setApplicationID' => ['', 'app_id'=>''], +'ZendAPI_Job::setGlobalVariables' => ['', 'vars'=>''], +'ZendAPI_Job::setJobDependency' => ['', 'job_id'=>''], +'ZendAPI_Job::setJobName' => ['', 'name'=>''], +'ZendAPI_Job::setJobPriority' => ['', 'priority'=>'int'], +'ZendAPI_Job::setPreserved' => ['', 'preserved'=>''], +'ZendAPI_Job::setRecurrenceData' => ['', 'interval'=>'', 'end_time='=>'mixed'], +'ZendAPI_Job::setScheduledTime' => ['', 'timestamp'=>''], +'ZendAPI_Job::setScript' => ['', 'script'=>''], +'ZendAPI_Job::setUserVariables' => ['', 'vars'=>''], +'ZendAPI_Job::ZendAPI_Job' => ['Job', 'script'=>'script'], +'ZendAPI_Queue::addJob' => ['int', '&job'=>'Job'], +'ZendAPI_Queue::getAllApplicationIDs' => ['array'], +'ZendAPI_Queue::getAllhosts' => ['array'], +'ZendAPI_Queue::getHistoricJobs' => ['array', 'status'=>'int', 'start_time'=>'', 'end_time'=>'', 'index'=>'int', 'count'=>'int', '&total'=>'int'], +'ZendAPI_Queue::getJob' => ['Job', 'job_id'=>'int'], +'ZendAPI_Queue::getJobsInQueue' => ['array', 'filter_options='=>'array', 'max_jobs='=>'int', 'with_globals_and_output='=>'bool'], +'ZendAPI_Queue::getLastError' => ['string'], +'ZendAPI_Queue::getNumOfJobsInQueue' => ['int', 'filter_options='=>'array'], +'ZendAPI_Queue::getStatistics' => ['array'], +'ZendAPI_Queue::isScriptExists' => ['bool', 'path'=>'string'], +'ZendAPI_Queue::isSuspend' => ['bool'], +'ZendAPI_Queue::login' => ['bool', 'password'=>'string', 'application_id='=>'int'], +'ZendAPI_Queue::removeJob' => ['bool', 'job_id'=>'array|int'], +'ZendAPI_Queue::requeueJob' => ['bool', 'job'=>'Job'], +'ZendAPI_Queue::resumeJob' => ['bool', 'job_id'=>'array|int'], +'ZendAPI_Queue::resumeQueue' => ['bool'], +'ZendAPI_Queue::setMaxHistoryTime' => ['bool'], +'ZendAPI_Queue::suspendJob' => ['bool', 'job_id'=>'array|int'], +'ZendAPI_Queue::suspendQueue' => ['bool'], +'ZendAPI_Queue::updateJob' => ['int', '&job'=>'Job'], +'ZendAPI_Queue::zendapi_queue' => ['ZendAPI_Queue', 'queue_url'=>'string'], +'zip_close' => ['void', 'zip'=>'resource'], +'zip_entry_close' => ['bool', 'zip_entry'=>'resource'], +'zip_entry_compressedsize' => ['int', 'zip_entry'=>'resource'], +'zip_entry_compressionmethod' => ['string', 'zip_entry'=>'resource'], +'zip_entry_filesize' => ['int', 'zip_entry'=>'resource'], +'zip_entry_name' => ['string', 'zip_entry'=>'resource'], +'zip_entry_open' => ['bool', 'zip_dp'=>'resource', 'zip_entry'=>'resource', 'mode='=>'string'], +'zip_entry_read' => ['string|false', 'zip_entry'=>'resource', 'len='=>'int'], +'zip_open' => ['resource|int|false', 'filename'=>'string'], +'zip_read' => ['resource', 'zip'=>'resource'], +'ZipArchive::addEmptyDir' => ['bool', 'dirname'=>'string', 'flags='=>'int'], +'ZipArchive::addFile' => ['bool', 'filepath'=>'string', 'entryname='=>'string', 'start='=>'int', 'length='=>'int', 'flags='=>'int'], +'ZipArchive::addFromString' => ['bool', 'name'=>'string', 'content'=>'string', 'flags='=>'int'], +'ZipArchive::addGlob' => ['array|false', 'pattern'=>'string', 'flags='=>'int', 'options='=>'array'], +'ZipArchive::addPattern' => ['array|false', 'pattern'=>'string', 'path='=>'string', 'options='=>'array'], +'ZipArchive::clearError' => ['void'], +'ZipArchive::close' => ['bool'], +'ZipArchive::count' => ['int'], +'ZipArchive::deleteIndex' => ['bool', 'index'=>'int'], +'ZipArchive::deleteName' => ['bool', 'name'=>'string'], +'ZipArchive::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string[]|string|null'], +'ZipArchive::getArchiveComment' => ['string|false', 'flags='=>'int'], +'ZipArchive::getCommentIndex' => ['string|false', 'index'=>'int', 'flags='=>'int'], +'ZipArchive::getCommentName' => ['string|false', 'name'=>'string', 'flags='=>'int'], +'ZipArchive::getExternalAttributesIndex' => ['bool', 'index'=>'int', '&w_opsys'=>'int', '&w_attr'=>'int', 'flags='=>'int'], +'ZipArchive::getExternalAttributesName' => ['bool', 'name'=>'string', '&w_opsys'=>'int', '&w_attr'=>'int', 'flags='=>'int'], +'ZipArchive::getFromIndex' => ['string|false', 'index'=>'int', 'len='=>'int', 'flags='=>'int'], +'ZipArchive::getFromName' => ['string|false', 'name'=>'string', 'len='=>'int', 'flags='=>'int'], +'ZipArchive::getNameIndex' => ['string|false', 'index'=>'int', 'flags='=>'int'], +'ZipArchive::getStatusString' => ['string'], +'ZipArchive::getStream' => ['resource|false', 'name'=>'string'], +'ZipArchive::getStreamIndex' => ['resource|false', 'index'=>'int', 'flags='=>'int'], +'ZipArchive::getStreamName' => ['resource|false', 'name'=>'string', 'flags='=>'int'], +'ZipArchive::isCompressionMethodSupported' => ['bool', 'method'=>'int', 'encode='=>'bool'], +'ZipArchive::isEncryptionMethodSupported' => ['bool', 'method'=>'int', 'encode='=>'bool'], +'ZipArchive::locateName' => ['int|false', 'name'=>'string', 'flags='=>'int'], +'ZipArchive::open' => ['int|bool', 'filename'=>'string', 'flags='=>'int'], +'ZipArchive::registerCancelCallback' => ['bool', 'callback'=>'callable'], +'ZipArchive::registerProgressCallback' => ['bool', 'rate'=>'float', 'callback'=>'callable'], +'ZipArchive::renameIndex' => ['bool', 'index'=>'int', 'new_name'=>'string'], +'ZipArchive::renameName' => ['bool', 'name'=>'string', 'new_name'=>'string'], +'ZipArchive::replaceFile' => ['bool', 'filepath'=>'string', 'index'=>'int', 'start='=>'int', 'length='=>'int', 'flags='=>'int'], +'ZipArchive::setArchiveComment' => ['bool', 'comment'=>'string'], +'ZipArchive::setCommentIndex' => ['bool', 'index'=>'int', 'comment'=>'string'], +'ZipArchive::setCommentName' => ['bool', 'name'=>'string', 'comment'=>'string'], +'ZipArchive::setCompressionIndex' => ['bool', 'index'=>'int', 'comp_method'=>'int', 'comp_flags='=>'int'], +'ZipArchive::setCompressionName' => ['bool', 'name'=>'string', 'comp_method'=>'int', 'comp_flags='=>'int'], +'ZipArchive::setEncryptionIndex' => ['bool', 'index'=>'int', 'method'=>'string', 'password='=>'?string'], +'ZipArchive::setEncryptionName' => ['bool', 'name'=>'string', 'method'=>'int', 'password='=>'?string'], +'ZipArchive::setExternalAttributesIndex' => ['bool', 'index'=>'int', 'opsys'=>'int', 'attr'=>'int', 'flags='=>'int'], +'ZipArchive::setExternalAttributesName' => ['bool', 'name'=>'string', 'opsys'=>'int', 'attr'=>'int', 'flags='=>'int'], +'ZipArchive::setMtimeIndex' => ['bool', 'index'=>'int', 'timestamp'=>'int', 'flags='=>'int'], +'ZipArchive::setMtimeName' => ['bool', 'name'=>'string', 'timestamp'=>'int', 'flags='=>'int'], +'ZipArchive::setPassword' => ['bool', 'password'=>'string'], +'ZipArchive::statIndex' => ['array|false', 'index'=>'int', 'flags='=>'int'], +'ZipArchive::statName' => ['array|false', 'name'=>'string', 'flags='=>'int'], +'ZipArchive::unchangeAll' => ['bool'], +'ZipArchive::unchangeArchive' => ['bool'], +'ZipArchive::unchangeIndex' => ['bool', 'index'=>'int'], +'ZipArchive::unchangeName' => ['bool', 'name'=>'string'], +'zlib_decode' => ['string|false', 'data'=>'string', 'max_length='=>'int'], +'zlib_encode' => ['string|false', 'data'=>'string', 'encoding'=>'int', 'level='=>'int'], +'zlib_get_coding_type' => ['string|false'], +'ZMQ::__construct' => ['void'], +'ZMQContext::__construct' => ['void', 'io_threads='=>'int', 'is_persistent='=>'bool'], +'ZMQContext::getOpt' => ['int|string', 'key'=>'string'], +'ZMQContext::getSocket' => ['ZMQSocket', 'type'=>'int', 'persistent_id='=>'string', 'on_new_socket='=>'callable'], +'ZMQContext::isPersistent' => ['bool'], +'ZMQContext::setOpt' => ['ZMQContext', 'key'=>'int', 'value'=>'mixed'], +'ZMQDevice::__construct' => ['void', 'frontend'=>'ZMQSocket', 'backend'=>'ZMQSocket', 'listener='=>'ZMQSocket'], +'ZMQDevice::getIdleTimeout' => ['ZMQDevice'], +'ZMQDevice::getTimerTimeout' => ['ZMQDevice'], +'ZMQDevice::run' => ['void'], +'ZMQDevice::setIdleCallback' => ['ZMQDevice', 'cb_func'=>'callable', 'timeout'=>'int', 'user_data='=>'mixed'], +'ZMQDevice::setIdleTimeout' => ['ZMQDevice', 'timeout'=>'int'], +'ZMQDevice::setTimerCallback' => ['ZMQDevice', 'cb_func'=>'callable', 'timeout'=>'int', 'user_data='=>'mixed'], +'ZMQDevice::setTimerTimeout' => ['ZMQDevice', 'timeout'=>'int'], +'ZMQPoll::add' => ['string', 'entry'=>'mixed', 'type'=>'int'], +'ZMQPoll::clear' => ['ZMQPoll'], +'ZMQPoll::count' => ['int'], +'ZMQPoll::getLastErrors' => ['array'], +'ZMQPoll::poll' => ['int', '&w_readable'=>'array', '&w_writable'=>'array', 'timeout='=>'int'], +'ZMQPoll::remove' => ['bool', 'item'=>'mixed'], +'ZMQSocket::__construct' => ['void', 'context'=>'ZMQContext', 'type'=>'int', 'persistent_id='=>'string', 'on_new_socket='=>'callable'], +'ZMQSocket::bind' => ['ZMQSocket', 'dsn'=>'string', 'force='=>'bool'], +'ZMQSocket::connect' => ['ZMQSocket', 'dsn'=>'string', 'force='=>'bool'], +'ZMQSocket::disconnect' => ['ZMQSocket', 'dsn'=>'string'], +'ZMQSocket::getEndpoints' => ['array'], +'ZMQSocket::getPersistentId' => ['?string'], +'ZMQSocket::getSocketType' => ['int'], +'ZMQSocket::getSockOpt' => ['int|string', 'key'=>'string'], +'ZMQSocket::isPersistent' => ['bool'], +'ZMQSocket::recv' => ['string', 'mode='=>'int'], +'ZMQSocket::recvMulti' => ['string[]', 'mode='=>'int'], +'ZMQSocket::send' => ['ZMQSocket', 'message'=>'array', 'mode='=>'int'], +'ZMQSocket::send\'1' => ['ZMQSocket', 'message'=>'string', 'mode='=>'int'], +'ZMQSocket::sendmulti' => ['ZMQSocket', 'message'=>'array', 'mode='=>'int'], +'ZMQSocket::setSockOpt' => ['ZMQSocket', 'key'=>'int', 'value'=>'mixed'], +'ZMQSocket::unbind' => ['ZMQSocket', 'dsn'=>'string'], +'Zookeeper::addAuth' => ['bool', 'scheme'=>'string', 'cert'=>'string', 'completion_cb='=>'callable'], +'Zookeeper::close' => ['void'], +'Zookeeper::connect' => ['void', 'host'=>'string', 'watcher_cb='=>'callable', 'recv_timeout='=>'int'], +'Zookeeper::create' => ['string', 'path'=>'string', 'value'=>'string', 'acls'=>'array', 'flags='=>'int'], +'Zookeeper::delete' => ['bool', 'path'=>'string', 'version='=>'int'], +'Zookeeper::exists' => ['bool', 'path'=>'string', 'watcher_cb='=>'callable'], +'Zookeeper::get' => ['string', 'path'=>'string', 'watcher_cb='=>'callable', 'stat='=>'array', 'max_size='=>'int'], +'Zookeeper::getAcl' => ['array', 'path'=>'string'], +'Zookeeper::getChildren' => ['array|false', 'path'=>'string', 'watcher_cb='=>'callable'], +'Zookeeper::getClientId' => ['int'], +'Zookeeper::getConfig' => ['ZookeeperConfig'], +'Zookeeper::getRecvTimeout' => ['int'], +'Zookeeper::getState' => ['int'], +'Zookeeper::isRecoverable' => ['bool'], +'Zookeeper::set' => ['bool', 'path'=>'string', 'value'=>'string', 'version='=>'int', 'stat='=>'array'], +'Zookeeper::setAcl' => ['bool', 'path'=>'string', 'version'=>'int', 'acl'=>'array'], +'Zookeeper::setDebugLevel' => ['bool', 'logLevel'=>'int'], +'Zookeeper::setDeterministicConnOrder' => ['bool', 'yesOrNo'=>'bool'], +'Zookeeper::setLogStream' => ['bool', 'stream'=>'resource'], +'Zookeeper::setWatcher' => ['bool', 'watcher_cb'=>'callable'], +'zookeeper_dispatch' => ['void'], +'ZookeeperConfig::add' => ['void', 'members'=>'string', 'version='=>'int', 'stat='=>'array'], +'ZookeeperConfig::get' => ['string', 'watcher_cb='=>'callable', 'stat='=>'array'], +'ZookeeperConfig::remove' => ['void', 'id_list'=>'string', 'version='=>'int', 'stat='=>'array'], +'ZookeeperConfig::set' => ['void', 'members'=>'string', 'version='=>'int', 'stat='=>'array'], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_71_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_71_delta.php new file mode 100644 index 00000000..93bb8cae --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_71_delta.php @@ -0,0 +1,76 @@ + [ + 'Closure::fromCallable' => ['Closure', 'callback'=>'callable'], + 'curl_multi_errno' => ['int|false', 'mh'=>'resource'], + 'curl_share_errno' => ['int|false', 'sh'=>'resource'], + 'curl_share_strerror' => ['?string', 'error_code'=>'int'], + 'getenv\'1' => ['array'], + 'hash_hkdf' => ['non-empty-string|false', 'algo'=>'string', 'key'=>'string', 'length='=>'int', 'info='=>'string', 'salt='=>'string'], + 'is_iterable' => ['bool', 'value'=>'mixed'], + 'openssl_get_curve_names' => ['list'], + 'pcntl_async_signals' => ['bool', 'enable='=>'bool'], + 'pcntl_signal_get_handler' => ['int|string', 'signal'=>'int'], + 'sapi_windows_cp_conv' => ['?string', 'in_codepage'=>'int|string', 'out_codepage'=>'int|string', 'subject'=>'string'], + 'sapi_windows_cp_get' => ['int', 'kind='=>'string'], + 'sapi_windows_cp_is_utf8' => ['bool'], + 'sapi_windows_cp_set' => ['bool', 'codepage'=>'int'], + 'session_create_id' => ['string', 'prefix='=>'string'], + 'session_gc' => ['int|false'], + ], + 'changed' => [ + 'DateTimeZone::listIdentifiers' => [ + 'old' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string'], + 'new' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string|null'], + ], + 'IntlDateFormatter::format' => [ + 'old' => ['string|false', 'value'=>'IntlCalendar|DateTime|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], + 'new' => ['string|false', 'value'=>'IntlCalendar|DateTimeInterface|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], + ], + 'SQLite3::createFunction' => [ + 'old' => ['bool', 'name'=>'string', 'callback'=>'callable', 'argCount='=>'int'], + 'new' => ['bool', 'name'=>'string', 'callback'=>'callable', 'argCount='=>'int', 'flags='=>'int'], + ], + 'get_headers' => [ + 'old' => ['array|false', 'url'=>'string', 'associative='=>'int'], + 'new' => ['array|false', 'url'=>'string', 'associative='=>'int', 'context='=>'?resource'], + ], + 'getopt' => [ + 'old' => ['array>|false', 'short_options'=>'string', 'long_options='=>'array'], + 'new' => ['array>|false', 'short_options'=>'string', 'long_options='=>'array', '&w_rest_index='=>'int'], + ], + 'pg_fetch_all' => [ + 'old' => ['array', 'result'=>'resource'], + 'new' => ['array', 'result'=>'resource', 'mode='=>'int'], + ], + 'pg_select' => [ + 'old' => ['string|array|false', 'connection'=>'resource', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int'], + 'new' => ['string|array|false', 'connection'=>'resource', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int', 'mode='=>'int'], + ], + 'timezone_identifiers_list' => [ + 'old' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string'], + 'new' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'?string'], + ], + 'unpack' => [ + 'old' => ['array', 'format'=>'string', 'string'=>'string'], + 'new' => ['array|false', 'format'=>'string', 'string'=>'string', 'offset='=>'int'], + ], + ], + 'removed' => [ + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_72_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_72_delta.php new file mode 100644 index 00000000..1956ee7c --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_72_delta.php @@ -0,0 +1,255 @@ + [ + 'DOMNodeList::count' => ['int'], + 'ReflectionClass::isIterable' => ['bool'], + 'ZipArchive::count' => ['int'], + 'ZipArchive::setEncryptionIndex' => ['bool', 'index'=>'int', 'method'=>'string', 'password='=>'string'], + 'ZipArchive::setEncryptionName' => ['bool', 'name'=>'string', 'method'=>'int', 'password='=>'string'], + 'ftp_append' => ['bool', 'ftp'=>'resource', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int'], + 'hash_hmac_algos' => ['list'], + 'imagebmp' => ['bool', 'image'=>'resource', 'file='=>'resource|string|null', 'compressed='=>'int'], + 'imagecreatefrombmp' => ['resource|false', 'filename'=>'string'], + 'imageopenpolygon' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points'=>'int', 'color'=>'int'], + 'imageresolution' => ['array|bool', 'image'=>'resource', 'resolution_x='=>'int', 'resolution_y='=>'int'], + 'imagesetclip' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int'], + 'ldap_exop' => ['resource|bool', 'ldap'=>'resource', 'request_oid'=>'string', 'request_data='=>'?string', 'controls='=>'array|null', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + 'ldap_exop_passwd' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string'], + 'ldap_exop_refresh' => ['int|false', 'ldap'=>'resource', 'dn'=>'string', 'ttl'=>'int'], + 'ldap_exop_whoami' => ['string|false', 'ldap'=>'resource'], + 'ldap_parse_exop' => ['bool', 'ldap'=>'resource', 'result'=>'resource', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + 'mb_chr' => ['non-empty-string|false', 'codepoint'=>'int', 'encoding='=>'string'], + 'mb_convert_encoding\'1' => ['array', 'string'=>'array', 'to_encoding'=>'string', 'from_encoding='=>'mixed'], + 'mb_ord' => ['int|false', 'string'=>'string', 'encoding='=>'string'], + 'mb_scrub' => ['string', 'string'=>'string', 'encoding='=>'string'], + 'oci_register_taf_callback' => ['bool', 'connection'=>'resource', 'callback='=>'callable'], + 'oci_unregister_taf_callback' => ['bool', 'connection'=>'resource'], + 'sapi_windows_vt100_support' => ['bool', 'stream'=>'resource', 'enable='=>'bool'], + 'socket_addrinfo_bind' => ['?resource', 'addrinfo'=>'resource'], + 'socket_addrinfo_connect' => ['resource', 'addrinfo'=>'resource'], + 'socket_addrinfo_explain' => ['array', 'addrinfo'=>'resource'], + 'socket_addrinfo_lookup' => ['resource[]', 'host'=>'string', 'service='=>'string', 'hints='=>'array'], + 'sodium_add' => ['void', '&rw_string1'=>'string', 'string2'=>'string'], + 'sodium_base642bin' => ['string', 'string'=>'string', 'id'=>'int', 'ignore='=>'string'], + 'sodium_bin2base64' => ['string', 'string'=>'string', 'id'=>'int'], + 'sodium_bin2hex' => ['string', 'string'=>'string'], + 'sodium_compare' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'sodium_crypto_aead_aes256gcm_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_aes256gcm_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_aes256gcm_is_available' => ['bool'], + 'sodium_crypto_aead_aes256gcm_keygen' => ['non-empty-string'], + 'sodium_crypto_aead_chacha20poly1305_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_chacha20poly1305_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_chacha20poly1305_ietf_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_chacha20poly1305_ietf_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_chacha20poly1305_ietf_keygen' => ['non-empty-string'], + 'sodium_crypto_aead_chacha20poly1305_keygen' => ['non-empty-string'], + 'sodium_crypto_aead_xchacha20poly1305_ietf_decrypt' => ['string|false', 'ciphertext'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_xchacha20poly1305_ietf_encrypt' => ['string', 'message'=>'string', 'additional_data'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_aead_xchacha20poly1305_ietf_keygen' => ['non-empty-string'], + 'sodium_crypto_auth' => ['string', 'message'=>'string', 'key'=>'string'], + 'sodium_crypto_auth_keygen' => ['non-empty-string'], + 'sodium_crypto_auth_verify' => ['bool', 'mac'=>'string', 'message'=>'string', 'key'=>'string'], + 'sodium_crypto_box' => ['string', 'message'=>'string', 'nonce'=>'string', 'key_pair'=>'string'], + 'sodium_crypto_box_keypair' => ['string'], + 'sodium_crypto_box_keypair_from_secretkey_and_publickey' => ['string', 'secret_key'=>'string', 'public_key'=>'string'], + 'sodium_crypto_box_open' => ['string|false', 'ciphertext'=>'string', 'nonce'=>'string', 'key_pair'=>'string'], + 'sodium_crypto_box_publickey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_box_publickey_from_secretkey' => ['string', 'secret_key'=>'string'], + 'sodium_crypto_box_seal' => ['string', 'message'=>'string', 'public_key'=>'string'], + 'sodium_crypto_box_seal_open' => ['string|false', 'ciphertext'=>'string', 'key_pair'=>'string'], + 'sodium_crypto_box_secretkey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_box_seed_keypair' => ['string', 'seed'=>'string'], + 'sodium_crypto_generichash' => ['string', 'message'=>'string', 'key='=>'string', 'length='=>'int'], + 'sodium_crypto_generichash_final' => ['string', '&state'=>'string', 'length='=>'int'], + 'sodium_crypto_generichash_init' => ['string', 'key='=>'string', 'length='=>'int'], + 'sodium_crypto_generichash_keygen' => ['non-empty-string'], + 'sodium_crypto_generichash_update' => ['true', '&rw_state'=>'string', 'message'=>'string'], + 'sodium_crypto_kdf_derive_from_key' => ['string', 'subkey_length'=>'int', 'subkey_id'=>'int', 'context'=>'string', 'key'=>'string'], + 'sodium_crypto_kdf_keygen' => ['non-empty-string'], + 'sodium_crypto_kx_client_session_keys' => ['array', 'client_key_pair'=>'string', 'server_key'=>'string'], + 'sodium_crypto_kx_keypair' => ['string'], + 'sodium_crypto_kx_publickey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_kx_secretkey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_kx_seed_keypair' => ['string', 'seed'=>'string'], + 'sodium_crypto_kx_server_session_keys' => ['array', 'server_key_pair'=>'string', 'client_key'=>'string'], + 'sodium_crypto_pwhash' => ['string', 'length'=>'int', 'password'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int', 'algo='=>'int'], + 'sodium_crypto_pwhash_scryptsalsa208sha256' => ['string', 'length'=>'int', 'password'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'sodium_crypto_pwhash_scryptsalsa208sha256_str' => ['string', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify' => ['bool', 'hash'=>'string', 'password'=>'string'], + 'sodium_crypto_pwhash_str' => ['string', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'sodium_crypto_pwhash_str_needs_rehash' => ['bool', 'password'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'sodium_crypto_pwhash_str_verify' => ['bool', 'hash'=>'string', 'password'=>'string'], + 'sodium_crypto_scalarmult' => ['string', 'n'=>'string', 'p'=>'string'], + 'sodium_crypto_scalarmult_base' => ['string', 'secret_key'=>'string'], + 'sodium_crypto_secretbox' => ['string', 'message'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_secretbox_keygen' => ['non-empty-string'], + 'sodium_crypto_secretbox_open' => ['string|false', 'ciphertext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_secretstream_xchacha20poly1305_init_pull' => ['string', 'header'=>'string', 'key'=>'string'], + 'sodium_crypto_secretstream_xchacha20poly1305_init_push' => ['array', 'key'=>'string'], + 'sodium_crypto_secretstream_xchacha20poly1305_keygen' => ['non-empty-string'], + 'sodium_crypto_secretstream_xchacha20poly1305_pull' => ['array', '&r_state'=>'string', 'ciphertext'=>'string', 'additional_data='=>'string'], + 'sodium_crypto_secretstream_xchacha20poly1305_push' => ['string', '&w_state'=>'string', 'message'=>'string', 'additional_data='=>'string', 'tag='=>'int'], + 'sodium_crypto_secretstream_xchacha20poly1305_rekey' => ['void', '&w_state'=>'string'], + 'sodium_crypto_shorthash' => ['string', 'message'=>'string', 'key'=>'string'], + 'sodium_crypto_shorthash_keygen' => ['non-empty-string'], + 'sodium_crypto_sign' => ['string', 'message'=>'string', 'secret_key'=>'string'], + 'sodium_crypto_sign_detached' => ['string', 'message'=>'string', 'secret_key'=>'string'], + 'sodium_crypto_sign_ed25519_pk_to_curve25519' => ['string', 'public_key'=>'string'], + 'sodium_crypto_sign_ed25519_sk_to_curve25519' => ['string', 'secret_key'=>'string'], + 'sodium_crypto_sign_keypair' => ['string'], + 'sodium_crypto_sign_keypair_from_secretkey_and_publickey' => ['string', 'secret_key'=>'string', 'public_key'=>'string'], + 'sodium_crypto_sign_open' => ['string|false', 'signed_message'=>'string', 'public_key'=>'string'], + 'sodium_crypto_sign_publickey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_sign_publickey_from_secretkey' => ['string', 'secret_key'=>'string'], + 'sodium_crypto_sign_secretkey' => ['string', 'key_pair'=>'string'], + 'sodium_crypto_sign_seed_keypair' => ['string', 'seed'=>'string'], + 'sodium_crypto_sign_verify_detached' => ['bool', 'signature'=>'string', 'message'=>'string', 'public_key'=>'string'], + 'sodium_crypto_stream' => ['string', 'length'=>'int', 'nonce'=>'string', 'key'=>'string'], + 'sodium_crypto_stream_keygen' => ['non-empty-string'], + 'sodium_crypto_stream_xor' => ['string', 'message'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'sodium_hex2bin' => ['string', 'string'=>'string', 'ignore='=>'string'], + 'sodium_increment' => ['void', '&rw_string'=>'string'], + 'sodium_memcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'sodium_memzero' => ['void', '&w_string'=>'string'], + 'sodium_pad' => ['string', 'string'=>'string', 'block_size'=>'int'], + 'sodium_unpad' => ['string', 'string'=>'string', 'block_size'=>'int'], + 'stream_isatty' => ['bool', 'stream'=>'resource'], + 'xdebug_info' => ['mixed', 'category='=>'string'], + ], + 'changed' => [ + 'ReflectionClass::getMethods' => [ + 'old' => ['list', 'filter='=>'int'], + 'new' => ['list', 'filter='=>'?int'], + ], + 'ReflectionClass::getProperties' => [ + 'old' => ['list', 'filter='=>'int'], + 'new' => ['list', 'filter='=>'?int'], + ], + 'ReflectionObject::getMethods' => [ + 'old' => ['ReflectionMethod[]', 'filter='=>'int'], + 'new' => ['ReflectionMethod[]', 'filter='=>'?int'], + ], + 'ReflectionObject::getProperties' => [ + 'old' => ['ReflectionProperty[]', 'filter='=>'int'], + 'new' => ['ReflectionProperty[]', 'filter='=>'?int'], + ], + 'SQLite3::openBlob' => [ + 'old' => ['resource|false', 'table'=>'string', 'column'=>'string', 'rowid'=>'int', 'dbname='=>'string'], + 'new' => ['resource|false', 'table'=>'string', 'column'=>'string', 'rowid'=>'int', 'database='=>'string', 'flags='=>'int'], + ], + 'hash_copy' => [ + 'old' => ['resource', 'context'=>'resource'], + 'new' => ['HashContext', 'context'=>'HashContext'], + ], + 'hash_final' => [ + 'old' => ['non-empty-string', 'context'=>'resource', 'raw_output='=>'bool'], + 'new' => ['non-empty-string', 'context'=>'HashContext', 'binary='=>'bool'], + ], + 'hash_init' => [ + 'old' => ['resource', 'algo'=>'string', 'options='=>'int', 'key='=>'string'], + 'new' => ['HashContext|false', 'algo'=>'string', 'flags='=>'int', 'key='=>'string'], + ], + 'hash_update' => [ + 'old' => ['bool', 'context'=>'resource', 'data'=>'string'], + 'new' => ['bool', 'context'=>'HashContext', 'data'=>'string'], + ], + 'hash_update_file' => [ + 'old' => ['bool', 'hcontext'=>'resource', 'filename'=>'string', 'scontext='=>'resource'], + 'new' => ['bool', 'context'=>'HashContext', 'filename'=>'string', 'stream_context='=>'resource'], + ], + 'hash_update_stream' => [ + 'old' => ['int', 'context'=>'resource', 'handle'=>'resource', 'length='=>'int'], + 'new' => ['int', 'context'=>'HashContext', 'stream'=>'resource', 'length='=>'int'], + ], + 'json_decode' => [ + 'old' => ['mixed', 'json'=>'string', 'associative='=>'bool', 'depth='=>'int', 'flags='=>'int'], + 'new' => ['mixed', 'json'=>'string', 'associative='=>'?bool', 'depth='=>'int', 'flags='=>'int'], + ], + 'mb_check_encoding' => [ + 'old' => ['bool', 'value='=>'string', 'encoding='=>'string'], + 'new' => ['bool', 'value='=>'array|string', 'encoding='=>'string'], + ], + 'preg_quote' => [ + 'old' => ['string', 'str'=>'string', 'delimiter='=>'string'], + 'new' => ['string', 'str'=>'string', 'delimiter='=>'?string'], + ], + ], + 'removed' => [ + 'Sodium\add' => ['void', '&left'=>'string', 'right'=>'string'], + 'Sodium\bin2hex' => ['string', 'binary'=>'string'], + 'Sodium\compare' => ['int', 'left'=>'string', 'right'=>'string'], + 'Sodium\crypto_aead_aes256gcm_decrypt' => ['string|false', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_aes256gcm_encrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_aes256gcm_is_available' => ['bool'], + 'Sodium\crypto_aead_chacha20poly1305_decrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_chacha20poly1305_encrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_auth' => ['string', 'msg'=>'string', 'key'=>'string'], + 'Sodium\crypto_auth_verify' => ['bool', 'mac'=>'string', 'msg'=>'string', 'key'=>'string'], + 'Sodium\crypto_box' => ['string', 'msg'=>'string', 'nonce'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_keypair' => ['string'], + 'Sodium\crypto_box_keypair_from_secretkey_and_publickey' => ['string', 'secretkey'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_box_open' => ['string', 'msg'=>'string', 'nonce'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_publickey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_box_publickey_from_secretkey' => ['string', 'secretkey'=>'string'], + 'Sodium\crypto_box_seal' => ['string', 'message'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_box_seal_open' => ['string', 'encrypted'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_secretkey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_box_seed_keypair' => ['string', 'seed'=>'string'], + 'Sodium\crypto_generichash' => ['string', 'input'=>'string', 'key='=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_final' => ['string', 'state'=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_init' => ['string', 'key='=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_update' => ['bool', '&hashState'=>'string', 'append'=>'string'], + 'Sodium\crypto_kx' => ['string', 'secretkey'=>'string', 'publickey'=>'string', 'client_publickey'=>'string', 'server_publickey'=>'string'], + 'Sodium\crypto_pwhash' => ['string', 'out_len'=>'int', 'passwd'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256' => ['string', 'out_len'=>'int', 'passwd'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256_str' => ['string', 'passwd'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256_str_verify' => ['bool', 'hash'=>'string', 'passwd'=>'string'], + 'Sodium\crypto_pwhash_str' => ['string', 'passwd'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_str_verify' => ['bool', 'hash'=>'string', 'passwd'=>'string'], + 'Sodium\crypto_scalarmult' => ['string', 'ecdhA'=>'string', 'ecdhB'=>'string'], + 'Sodium\crypto_scalarmult_base' => ['string', 'sk'=>'string'], + 'Sodium\crypto_secretbox' => ['string', 'plaintext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_secretbox_open' => ['string', 'ciphertext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_shorthash' => ['string', 'message'=>'string', 'key'=>'string'], + 'Sodium\crypto_sign' => ['string', 'message'=>'string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_detached' => ['string', 'message'=>'string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_ed25519_pk_to_curve25519' => ['string', 'sign_pk'=>'string'], + 'Sodium\crypto_sign_ed25519_sk_to_curve25519' => ['string', 'sign_sk'=>'string'], + 'Sodium\crypto_sign_keypair' => ['string'], + 'Sodium\crypto_sign_keypair_from_secretkey_and_publickey' => ['string', 'secretkey'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_sign_open' => ['string|false', 'signed_message'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_sign_publickey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_sign_publickey_from_secretkey' => ['string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_secretkey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_sign_seed_keypair' => ['string', 'seed'=>'string'], + 'Sodium\crypto_sign_verify_detached' => ['bool', 'signature'=>'string', 'msg'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_stream' => ['string', 'length'=>'int', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_stream_xor' => ['string', 'plaintext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\hex2bin' => ['string', 'hex'=>'string'], + 'Sodium\increment' => ['string', '&nonce'=>'string'], + 'Sodium\library_version_major' => ['int'], + 'Sodium\library_version_minor' => ['int'], + 'Sodium\memcmp' => ['int', 'left'=>'string', 'right'=>'string'], + 'Sodium\memzero' => ['void', '&target'=>'string'], + 'Sodium\randombytes_buf' => ['string', 'length'=>'int'], + 'Sodium\randombytes_random16' => ['int|string'], + 'Sodium\randombytes_uniform' => ['int', 'upperBoundNonInclusive'=>'int'], + 'Sodium\version_string' => ['string'], + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_73_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_73_delta.php new file mode 100644 index 00000000..568603b6 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_73_delta.php @@ -0,0 +1,118 @@ + [ + 'DateTime::createFromImmutable' => ['static', 'object'=>'DateTimeImmutable'], + 'JsonException::__clone' => ['void'], + 'JsonException::__construct' => ['void'], + 'JsonException::__toString' => ['string'], + 'JsonException::__wakeup' => ['void'], + 'JsonException::getCode' => ['int'], + 'JsonException::getFile' => ['string'], + 'JsonException::getLine' => ['int'], + 'JsonException::getMessage' => ['string'], + 'JsonException::getPrevious' => ['?Throwable'], + 'JsonException::getTrace' => ['list\',args?:array}>'], + 'JsonException::getTraceAsString' => ['string'], + 'Normalizer::getRawDecomposition' => ['?string', 'string'=>'string', 'form='=>'int'], + 'SplPriorityQueue::isCorrupted' => ['bool'], + 'array_key_first' => ['int|string|null', 'array'=>'array'], + 'array_key_last' => ['int|string|null', 'array'=>'array'], + 'fpm_get_status' => ['array|false'], + 'gc_status' => ['array{runs:int,collected:int,threshold:int,roots:int}'], + 'gmp_binomial' => ['GMP|false', 'n'=>'GMP|string|int', 'k'=>'int'], + 'gmp_kronecker' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_lcm' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_perfect_power' => ['bool', 'num'=>'GMP|string|int'], + 'hrtime' => ['array{0:int,1:int}|false', 'as_number='=>'false'], + 'hrtime\'1' => ['int|float|false', 'as_number='=>'true'], + 'is_countable' => ['bool', 'value'=>'mixed'], + 'normalizer_get_raw_decomposition' => ['string|null', 'string'=>'string', 'form='=>'int'], + 'net_get_interfaces' => ['array>|false'], + 'openssl_pkey_derive' => ['string|false', 'public_key'=>'mixed', 'private_key'=>'mixed', 'key_length='=>'?int'], + 'session_set_cookie_params\'1' => ['bool', 'options'=>'array{lifetime?:?int,path?:?string,domain?:?string,secure?:?bool,httponly?:?bool,samesite?:?string}'], + 'setcookie\'1' => ['bool', 'name'=>'string', 'value='=>'string', 'options='=>'array'], + 'setrawcookie\'1' => ['bool', 'name'=>'string', 'value='=>'string', 'options='=>'array'], + 'socket_wsaprotocol_info_export' => ['string|false', 'socket'=>'resource', 'process_id'=>'int'], + 'socket_wsaprotocol_info_import' => ['resource|false', 'info_id'=>'string'], + 'socket_wsaprotocol_info_release' => ['bool', 'info_id'=>'string'], + ], + 'changed' => [ + 'array_push' => [ + 'old' => ['int', '&rw_array'=>'array', '...values'=>'mixed'], + 'new' => ['int', '&rw_array'=>'array', '...values='=>'mixed'], + ], + 'array_unshift' => [ + 'old' => ['int', '&rw_array'=>'array', '...values'=>'mixed'], + 'new' => ['int', '&rw_array'=>'array', '...values='=>'mixed'], + ], + 'bcscale' => [ + 'old' => ['int', 'scale'=>'int'], + 'new' => ['int', 'scale='=>'int'], + ], + 'ldap_compare' => [ + 'old' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string'], + 'new' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'array'], + ], + 'ldap_delete' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'array'], + ], + 'ldap_exop_passwd' => [ + 'old' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string'], + 'new' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array'], + ], + 'ldap_list' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'new' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + ], + 'ldap_mod_add' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + ], + 'ldap_mod_del' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + ], + 'ldap_mod_replace' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + ], + 'ldap_modify' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + ], + 'ldap_modify_batch' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'array'], + ], + 'ldap_read' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'new' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + ], + 'ldap_rename' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'array'], + ], + 'ldap_search' => [ + 'old' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'new' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + ], + ], + 'removed' => [ + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_74_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_74_delta.php new file mode 100644 index 00000000..87872004 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_74_delta.php @@ -0,0 +1,91 @@ + [ + 'ReflectionProperty::getType' => ['?ReflectionType'], + 'mb_str_split' => ['list|false', 'string'=>'string', 'length='=>'positive-int', 'encoding='=>'string'], + 'openssl_x509_verify' => ['int', 'certificate'=>'string|resource', 'public_key'=>'string|array|resource'], + ], + 'changed' => [ + 'Locale::lookup' => [ + 'old' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'string'], + 'new' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'?string'], + ], + 'SplFileObject::fwrite' => [ + 'old' => ['int', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'data'=>'string', 'length='=>'int'], + ], + 'SplTempFileObject::fwrite' => [ + 'old' => ['int', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'data'=>'string', 'length='=>'int'], + ], + 'array_merge' => [ + 'old' => ['array', '...arrays'=>'array'], + 'new' => ['array', '...arrays='=>'array'], + ], + 'array_merge_recursive' => [ + 'old' => ['array', '...arrays'=>'array'], + 'new' => ['array', '...arrays='=>'array'], + ], + 'gzread' => [ + 'old' => ['string|0', 'stream'=>'resource', 'length'=>'int'], + 'new' => ['string|false', 'stream'=>'resource', 'length'=>'int'], + ], + 'locale_lookup' => [ + 'old' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'string'], + 'new' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'?string'], + ], + 'openssl_random_pseudo_bytes' => [ + 'old' => ['string|false', 'length'=>'int', '&w_strong_result='=>'bool'], + 'new' => ['string', 'length'=>'int', '&w_strong_result='=>'bool'], + ], + 'password_hash' => [ + 'old' => ['string|false', 'password'=>'string', 'algo'=>'int', 'options='=>'array'], + 'new' => ['string|false', 'password'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], + ], + 'password_needs_rehash' => [ + 'old' => ['bool', 'hash'=>'string', 'algo'=>'int', 'options='=>'array'], + 'new' => ['bool', 'hash'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], + ], + 'preg_replace_callback' => [ + 'old' => ['string|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int'], + 'new' => ['string|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], + ], + 'preg_replace_callback\'1' => [ + 'old' => ['string[]|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int'], + 'new' => ['string[]|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], + ], + 'preg_replace_callback_array' => [ + 'old' => ['string|null', 'pattern'=>'array', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int'], + 'new' => ['string|null', 'pattern'=>'array', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], + ], + 'preg_replace_callback_array\'1' => [ + 'old' => ['string[]|null', 'pattern'=>'array', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int'], + 'new' => ['string[]|null', 'pattern'=>'array', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int', 'flags='=>'int'], + ], + 'proc_open' => [ + 'old' => ['resource|false', 'command'=>'string', 'descriptor_spec'=>'array', '&pipes'=>'resource[]', 'cwd='=>'?string', 'env_vars='=>'?array', 'options='=>'?array'], + 'new' => ['resource|false', 'command'=>'string|array', 'descriptor_spec'=>'array', '&pipes'=>'resource[]', 'cwd='=>'?string', 'env_vars='=>'?array', 'options='=>'?array'], + ], + 'strip_tags' => [ + 'old' => ['string', 'string'=>'string', 'allowed_tags='=>'string'], + 'new' => ['string', 'string'=>'string', 'allowed_tags='=>'string|list'], + ], + ], + 'removed' => [ + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_80_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_80_delta.php new file mode 100644 index 00000000..b2cc5c42 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_80_delta.php @@ -0,0 +1,2798 @@ + [ + 'DateTime::createFromInterface' => ['static', 'object'=>'DateTimeInterface'], + 'DateTimeImmutable::createFromInterface' => ['static', 'object'=>'DateTimeInterface'], + 'PhpToken::getTokenName' => ['?string'], + 'PhpToken::is' => ['bool', 'kind'=>'string|int|string[]|int[]'], + 'PhpToken::isIgnorable' => ['bool'], + 'PhpToken::tokenize' => ['list', 'code'=>'string', 'flags='=>'int'], + 'ReflectionClass::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], + 'ReflectionClassConstant::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], + 'ReflectionFunctionAbstract::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], + 'ReflectionParameter::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], + 'ReflectionProperty::getAttributes' => ['list', 'name='=>'?string', 'flags='=>'int'], + 'ReflectionUnionType::getTypes' => ['list'], + 'fdiv' => ['float', 'num1'=>'float', 'num2'=>'float'], + 'get_debug_type' => ['string', 'value'=>'mixed'], + 'get_resource_id' => ['int', 'resource'=>'resource'], + 'imagegetinterpolation' => ['int', 'image'=>'GdImage'], + 'str_contains' => ['bool', 'haystack'=>'string', 'needle'=>'string'], + 'str_ends_with' => ['bool', 'haystack'=>'string', 'needle'=>'string'], + 'str_starts_with' => ['bool', 'haystack'=>'string', 'needle'=>'string'], + ], + 'changed' => [ + 'Collator::getStrength' => [ + 'old' => ['int|false'], + 'new' => ['int'], + ], + 'DateTime::diff' => [ + 'old' => ['DateInterval|false', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], + 'new' => ['DateInterval', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], + ], + 'DateTime::format' => [ + 'old' => ['string|false', 'format'=>'string'], + 'new' => ['string', 'format'=>'string'], + ], + 'DateTime::getTimestamp' => [ + 'old' => ['int|false'], + 'new' => ['int'], + ], + 'DateTime::setTime' => [ + 'old' => ['static|false', 'hour'=>'int', 'minute'=>'int', 'second='=>'int', 'microseconds='=>'int'], + 'new' => ['static', 'hour'=>'int', 'minute'=>'int', 'second='=>'int', 'microseconds='=>'int'], + ], + 'DateTimeInterface::getTimestamp' => [ + 'old' => ['int|false'], + 'new' => ['int'], + ], + 'DateTimeZone::getOffset' => [ + 'old' => ['int|false', 'datetime'=>'DateTimeInterface'], + 'new' => ['int', 'datetime'=>'DateTimeInterface'], + ], + 'DateTimeZone::listIdentifiers' => [ + 'old' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string|null'], + 'new' => ['list', 'timezoneGroup='=>'int', 'countryCode='=>'string|null'], + ], + 'Directory::close' => [ + 'old' => ['void', 'dir_handle='=>'resource'], + 'new' => ['void'], + ], + 'Directory::read' => [ + 'old' => ['string|false', 'dir_handle='=>'resource'], + 'new' => ['string|false'], + ], + 'Directory::rewind' => [ + 'old' => ['void', 'dir_handle='=>'resource'], + 'new' => ['void'], + ], + 'ErrorException::__construct' => [ + 'old' => ['void', 'message='=>'string', 'code='=>'int', 'severity='=>'int', 'filename='=>'string', 'line='=>'int', 'previous='=>'?Throwable'], + 'new' => ['void', 'message='=>'string', 'code='=>'int', 'severity='=>'int', 'filename='=>'?string', 'line='=>'?int', 'previous='=>'?Throwable'], + ], + 'finfo::__construct' => [ + 'old' => ['void', 'flags='=>'int', 'magic_database='=>'string'], + 'new' => ['void', 'flags='=>'int', 'magic_database='=>'?string'], + ], + 'IntlDateFormatter::__construct' => [ + 'old' => ['void', 'locale'=>'?string', 'datetype'=>'null|int', 'timetype'=>'null|int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'new' => ['void', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + ], + 'IntlDateFormatter::create' => [ + 'old' => ['?IntlDateFormatter', 'locale'=>'?string', 'datetype'=>'null|int', 'timetype'=>'null|int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'new' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + ], + 'IntlDateFormatter::format' => [ + 'old' => ['string|false', 'value'=>'IntlCalendar|DateTimeInterface|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], + 'new' => ['string|false', 'datetime'=>'IntlCalendar|DateTimeInterface|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], + ], + 'IntlDateFormatter::formatObject' => [ + 'old' => ['string|false', 'object'=>'IntlCalendar|DateTime', 'format='=>'array{0: int, 1: int}|int|string|null', 'locale='=>'?string'], + 'new' => ['string|false', 'datetime'=>'IntlCalendar|DateTimeInterface', 'format='=>'array{0: int, 1: int}|int|string|null', 'locale='=>'?string'], + ], + 'IntlDateFormatter::getCalendar' => [ + 'old' => ['int'], + 'new' => ['int|false'], + ], + 'IntlDateFormatter::getCalendarObject' => [ + 'old' => ['IntlCalendar'], + 'new' => ['IntlCalendar|false|null'], + ], + 'IntlDateFormatter::getDateType' => [ + 'old' => ['int'], + 'new' => ['int|false'], + ], + 'IntlDateFormatter::getLocale' => [ + 'old' => ['string', 'which='=>'int'], + 'new' => ['string|false', 'type='=>'int'], + ], + 'IntlDateFormatter::getPattern' => [ + 'old' => ['string'], + 'new' => ['string|false'], + ], + 'IntlDateFormatter::getTimeType' => [ + 'old' => ['int'], + 'new' => ['int|false'], + ], + 'IntlDateFormatter::getTimeZoneId' => [ + 'old' => ['string'], + 'new' => ['string|false'], + ], + 'IntlDateFormatter::localtime' => [ + 'old' => ['array', 'value'=>'string', '&rw_position='=>'int'], + 'new' => ['array|false', 'string'=>'string', '&rw_offset='=>'int'], + ], + 'IntlDateFormatter::parse' => [ + 'old' => ['int|float', 'value'=>'string', '&rw_position='=>'int'], + 'new' => ['int|float|false', 'string'=>'string', '&rw_offset='=>'int'], + ], + 'IntlDateFormatter::setCalendar' => [ + 'old' => ['bool', 'which'=>'IntlCalendar|int|null'], + 'new' => ['bool', 'calendar'=>'IntlCalendar|int|null'], + ], + 'IntlDateFormatter::setLenient' => [ + 'old' => ['bool', 'lenient'=>'bool'], + 'new' => ['void', 'lenient'=>'bool'], + ], + 'IntlDateFormatter::setTimeZone' => [ + 'old' => ['null|false', 'zone'=>'IntlTimeZone|DateTimeZone|string|null'], + 'new' => ['null|false', 'timezone'=>'IntlTimeZone|DateTimeZone|string|null'], + ], + 'Locale::getDisplayLanguage' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'Locale::getDisplayName' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'Locale::getDisplayRegion' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'Locale::getDisplayScript' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'Locale::getDisplayVariant' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'NumberFormatter::__construct' => [ + 'old' => ['void', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'new' => ['void', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], + ], + 'NumberFormatter::create' => [ + 'old' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'new' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], + ], + 'PDOStatement::debugDumpParams' => [ + 'old' => ['void'], + 'new' => ['bool|null'], + ], + 'PDOStatement::errorCode' => [ + 'old' => ['string'], + 'new' => ['string|null'], + ], + 'PDOStatement::execute' => [ + 'old' => ['bool', 'bound_input_params='=>'?array'], + 'new' => ['bool', 'params='=>'?array'], + ], + 'PDOStatement::fetch' => [ + 'old' => ['mixed', 'how='=>'int', 'orientation='=>'int', 'offset='=>'int'], + 'new' => ['mixed', 'mode='=>'int', 'cursorOrientation='=>'int', 'cursorOffset='=>'int'], + ], + 'PDOStatement::fetchAll' => [ + 'old' => ['array|false', 'how='=>'int', 'fetch_argument='=>'int|string|callable', 'ctor_args='=>'?array'], + 'new' => ['array', 'mode='=>'int', '...args='=>'mixed'], + ], + 'PDOStatement::fetchColumn' => [ + 'old' => ['string|int|float|bool|null', 'column_number='=>'int'], + 'new' => ['mixed', 'column='=>'int'], + ], + 'PDOStatement::setFetchMode' => [ + 'old' => ['bool', 'mode'=>'int'], + 'new' => ['bool', 'mode'=>'int', '...args='=>'mixed'], + ], + 'PharData::compress' => [ + 'old' => ['?PharData', 'compression'=>'int', 'extension='=>'string'], + 'new' => ['?PharData', 'compression'=>'int', 'extension='=>'?string'], + ], + 'PharData::convertToData' => [ + 'old' => ['?PharData', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'new' => ['?PharData', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], + ], + 'PharData::convertToExecutable' => [ + 'old' => ['?Phar', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'new' => ['?Phar', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], + ], + 'PharData::decompress' => [ + 'old' => ['?PharData', 'extension='=>'string'], + 'new' => ['?PharData', 'extension='=>'?string'], + ], + 'Phar::compress' => [ + 'old' => ['?Phar', 'compression'=>'int', 'extension='=>'string'], + 'new' => ['?Phar', 'compression'=>'int', 'extension='=>'?string'], + ], + 'Phar::convertToData' => [ + 'old' => ['?PharData', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'new' => ['?PharData', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], + ], + 'Phar::convertToExecutable' => [ + 'old' => ['?Phar', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'new' => ['?Phar', 'format='=>'?int', 'compression='=>'?int', 'extension='=>'?string'], + ], + 'Phar::decompress' => [ + 'old' => ['?Phar', 'extension='=>'string'], + 'new' => ['?Phar', 'extension='=>'?string'], + ], + 'Phar::getMetadata' => [ + 'old' => ['mixed'], + 'new' => ['mixed', 'unserializeOptions='=>'array'], + ], + 'PharFileInfo::getMetadata' => [ + 'old' => ['mixed'], + 'new' => ['mixed', 'unserializeOptions='=>'array'], + ], + 'RecursiveIteratorIterator::getSubIterator' => [ + 'old' => ['?RecursiveIterator', 'level='=>'int'], + 'new' => ['?RecursiveIterator', 'level='=>'?int'], + ], + 'RecursiveTreeIterator::getSubIterator' => [ + 'old' => ['?RecursiveIterator', 'level='=>'int'], + 'new' => ['?RecursiveIterator', 'level='=>'?int'], + ], + 'ReflectionClass::getConstants' => [ + 'old' => ['array'], + 'new' => ['array', 'filter='=>'?int'], + ], + 'ReflectionClass::getReflectionConstants' => [ + 'old' => ['list'], + 'new' => ['list', 'filter='=>'?int'], + ], + 'ReflectionClass::newInstanceArgs' => [ + 'old' => ['object', 'args='=>'list'], + 'new' => ['object', 'args='=>'list|array'], + ], + 'ReflectionMethod::getClosure' => [ + 'old' => ['?Closure', 'object='=>'object'], + 'new' => ['Closure', 'object='=>'?object'], + ], + 'ReflectionObject::newInstanceArgs' => [ + 'old' => ['object', 'args='=>'list'], + 'new' => ['object', 'args='=>'list|array'], + ], + 'ReflectionProperty::getValue' => [ + 'old' => ['mixed', 'object='=>'object'], + 'new' => ['mixed', 'object='=>'null|object'], + ], + 'SplFileInfo::getFileInfo' => [ + 'old' => ['SplFileInfo', 'class='=>'string'], + 'new' => ['SplFileInfo', 'class='=>'?string'], + ], + 'SplFileInfo::getPathInfo' => [ + 'old' => ['SplFileInfo|null', 'class='=>'string'], + 'new' => ['SplFileInfo|null', 'class='=>'?string'], + ], + 'SplFileInfo::openFile' => [ + 'old' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'new' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], + ], + 'SplFileObject::getFileInfo' => [ + 'old' => ['SplFileInfo', 'class='=>'string'], + 'new' => ['SplFileInfo', 'class='=>'?string'], + ], + 'SplFileObject::getPathInfo' => [ + 'old' => ['SplFileInfo|null', 'class='=>'string'], + 'new' => ['SplFileInfo|null', 'class='=>'?string'], + ], + 'SplFileObject::openFile' => [ + 'old' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'new' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], + ], + 'SplTempFileObject::getFileInfo' => [ + 'old' => ['SplFileInfo', 'class='=>'string'], + 'new' => ['SplFileInfo', 'class='=>'?string'], + ], + 'SplTempFileObject::getPathInfo' => [ + 'old' => ['SplFileInfo|null', 'class='=>'string'], + 'new' => ['SplFileInfo|null', 'class='=>'?string'], + ], + 'SplTempFileObject::openFile' => [ + 'old' => ['SplTempFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'new' => ['SplTempFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], + ], + 'tidy::__construct' => [ + 'old' => ['void', 'filename='=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'new' => ['void', 'filename='=>'?string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], + ], + 'tidy::parseFile' => [ + 'old' => ['bool', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'new' => ['bool', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], + ], + 'tidy::parseString' => [ + 'old' => ['bool', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'new' => ['bool', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], + ], + 'tidy::repairFile' => [ + 'old' => ['string', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'new' => ['string', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], + ], + 'tidy::repairString' => [ + 'old' => ['string', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], + ], + 'XMLWriter::flush' => [ + 'old' => ['string|int|false', 'empty='=>'bool'], + 'new' => ['string|int', 'empty='=>'bool'], + ], + 'SimpleXMLElement::asXML' => [ + 'old' => ['string|bool', 'filename'=>'string'], + 'new' => ['string|bool', 'filename='=>'?string'], + ], + 'SimpleXMLElement::saveXML' => [ + 'old' => ['string|bool', 'filename='=>'string'], + 'new' => ['string|bool', 'filename='=>'?string'], + ], + 'SoapClient::__doRequest' => [ + 'old' => ['?string', 'request'=>'string', 'location'=>'string', 'action'=>'string', 'version'=>'int', 'one_way='=>'int'], + 'new' => ['?string', 'request'=>'string', 'location'=>'string', 'action'=>'string', 'version'=>'int', 'one_way='=>'bool'], + ], + 'SplFileObject::fgets' => [ + 'old' => ['string|false'], + 'new' => ['string'], + ], + 'SplFileObject::getCurrentLine' => [ + 'old' => ['string|false'], + 'new' => ['string'], + ], + 'XMLWriter::startAttributeNs' => [ + 'old' => ['bool', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string'], + 'new' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + ], + 'XMLWriter::writeAttributeNs' => [ + 'old' => ['bool', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + 'new' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + ], + 'XMLWriter::writeDtdEntity' => [ + 'old' => ['bool', 'name'=>'string', 'content'=>'string', 'isParam'=>'bool', 'publicId'=>'string', 'systemId'=>'string', 'notationData'=>'string'], + 'new' => ['bool', 'name'=>'string', 'content'=>'string', 'isParam='=>'bool', 'publicId='=>'?string', 'systemId='=>'?string', 'notationData='=>'?string'], + ], + 'ZipArchive::getStatusString' => [ + 'old' => ['string|false'], + 'new' => ['string'], + ], + 'ZipArchive::setEncryptionIndex' => [ + 'old' => ['bool', 'index'=>'int', 'method'=>'string', 'password='=>'string'], + 'new' => ['bool', 'index'=>'int', 'method'=>'string', 'password='=>'?string'], + ], + 'ZipArchive::setEncryptionName' => [ + 'old' => ['bool', 'name'=>'string', 'method'=>'int', 'password='=>'string'], + 'new' => ['bool', 'name'=>'string', 'method'=>'int', 'password='=>'?string'], + ], + 'array_column' => [ + 'old' => ['array', 'array'=>'array', 'column_key'=>'mixed', 'index_key='=>'mixed'], + 'new' => ['array', 'array'=>'array', 'column_key'=>'int|string|null', 'index_key='=>'int|string|null'], + ], + 'array_combine' => [ + 'old' => ['associative-array|false', 'keys'=>'string[]|int[]', 'values'=>'array'], + 'new' => ['associative-array', 'keys'=>'string[]|int[]', 'values'=>'array'], + ], + 'array_diff' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_diff_assoc' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_diff_key' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_filter' => [ + 'old' => ['associative-array', 'array'=>'array', 'callback='=>'callable(mixed,mixed=):scalar', 'mode='=>'int'], + 'new' => ['associative-array', 'array'=>'array', 'callback='=>'callable(mixed,mixed=):scalar|null', 'mode='=>'int'], + ], + 'array_key_exists' => [ + 'old' => ['bool', 'key'=>'string|int', 'array'=>'array|object'], + 'new' => ['bool', 'key'=>'string|int', 'array'=>'array'], + ], + 'array_intersect' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_intersect_assoc' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_intersect_key' => [ + 'old' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'new' => ['associative-array', 'array'=>'array', '...arrays='=>'array'], + ], + 'array_splice' => [ + 'old' => ['array', '&rw_array'=>'array', 'offset'=>'int', 'length='=>'int', 'replacement='=>'array|string'], + 'new' => ['array', '&rw_array'=>'array', 'offset'=>'int', 'length='=>'?int', 'replacement='=>'array|string'], + ], + 'bcadd' => [ + 'old' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bccomp' => [ + 'old' => ['int', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['int', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcdiv' => [ + 'old' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcmod' => [ + 'old' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcmul' => [ + 'old' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcpow' => [ + 'old' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcpowmod' => [ + 'old' => ['numeric-string|false', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'modulus'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'modulus'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcscale' => [ + 'old' => ['int', 'scale='=>'int'], + 'new' => ['int', 'scale='=>'int|null'], + ], + 'bcsqrt' => [ + 'old' => ['numeric-string', 'num'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bcsub' => [ + 'old' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'new' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int|null'], + ], + 'bind_textdomain_codeset' => [ + 'old' => ['string', 'domain'=>'string', 'codeset'=>'string'], + 'new' => ['string', 'domain'=>'string', 'codeset'=>'?string'], + ], + 'bindtextdomain' => [ + 'old' => ['string', 'domain'=>'string', 'directory'=>'string'], + 'new' => ['string', 'domain'=>'string', 'directory'=>'?string'], + ], + 'bzdecompress' => [ + 'old' => ['string|int|false', 'data'=>'string', 'use_less_memory='=>'int'], + 'new' => ['string|int|false', 'data'=>'string', 'use_less_memory='=>'bool'], + ], + 'bzwrite' => [ + 'old' => ['int|false', 'bz'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'bz'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'collator_get_strength' => [ + 'old' => ['int|false', 'object'=>'collator'], + 'new' => ['int', 'object'=>'collator'], + ], + 'com_load_typelib' => [ + 'old' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'bool'], + 'new' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'true'], + ], + 'count' => [ + 'old' => ['int<0, max>', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], + 'new' => ['int<0, max>', 'value'=>'Countable|array', 'mode='=>'int'], + ], + 'count_chars' => [ + 'old' => ['array|false', 'input'=>'string', 'mode='=>'0|1|2'], + 'new' => ['array', 'input'=>'string', 'mode='=>'0|1|2'], + ], + 'count_chars\'1' => [ + 'old' => ['string|false', 'input'=>'string', 'mode='=>'3|4'], + 'new' => ['string', 'input'=>'string', 'mode='=>'3|4'], + ], + 'crypt' => [ + 'old' => ['string', 'string'=>'string', 'salt='=>'string'], + 'new' => ['string', 'string'=>'string', 'salt'=>'string'], + ], + 'curl_close' => [ + 'old' => ['void', 'ch'=>'resource'], + 'new' => ['void', 'handle'=>'CurlHandle'], + ], + 'curl_copy_handle' => [ + 'old' => ['resource', 'ch'=>'resource'], + 'new' => ['CurlHandle', 'handle'=>'CurlHandle'], + ], + 'curl_errno' => [ + 'old' => ['int', 'ch'=>'resource'], + 'new' => ['int', 'handle'=>'CurlHandle'], + ], + 'curl_error' => [ + 'old' => ['string', 'ch'=>'resource'], + 'new' => ['string', 'handle'=>'CurlHandle'], + ], + 'curl_escape' => [ + 'old' => ['string|false', 'ch'=>'resource', 'string'=>'string'], + 'new' => ['string|false', 'handle'=>'CurlHandle', 'string'=>'string'], + ], + 'curl_exec' => [ + 'old' => ['bool|string', 'ch'=>'resource'], + 'new' => ['bool|string', 'handle'=>'CurlHandle'], + ], + 'curl_file_create' => [ + 'old' => ['CURLFile', 'filename'=>'string', 'mimetype='=>'string', 'postfilename='=>'string'], + 'new' => ['CURLFile', 'filename'=>'string', 'mime_type='=>'string|null', 'posted_filename='=>'string|null'], + ], + 'curl_getinfo' => [ + 'old' => ['mixed', 'ch'=>'resource', 'option='=>'int'], + 'new' => ['mixed', 'handle'=>'CurlHandle', 'option='=>'?int'], + ], + 'curl_init' => [ + 'old' => ['resource|false', 'url='=>'string'], + 'new' => ['CurlHandle|false', 'url='=>'?string'], + ], + 'curl_multi_add_handle' => [ + 'old' => ['int', 'mh'=>'resource', 'ch'=>'resource'], + 'new' => ['int', 'multi_handle'=>'CurlMultiHandle', 'handle'=>'CurlHandle'], + ], + 'curl_multi_close' => [ + 'old' => ['void', 'mh'=>'resource'], + 'new' => ['void', 'multi_handle'=>'CurlMultiHandle'], + ], + 'curl_multi_errno' => [ + 'old' => ['int|false', 'mh'=>'resource'], + 'new' => ['int', 'multi_handle'=>'CurlMultiHandle'], + ], + 'curl_multi_exec' => [ + 'old' => ['int', 'mh'=>'resource', '&w_still_running'=>'int'], + 'new' => ['int', 'multi_handle'=>'CurlMultiHandle', '&w_still_running'=>'int'], + ], + 'curl_multi_getcontent' => [ + 'old' => ['string', 'ch'=>'resource'], + 'new' => ['string', 'handle'=>'CurlHandle'], + ], + 'curl_multi_info_read' => [ + 'old' => ['array|false', 'mh'=>'resource', '&w_msgs_in_queue='=>'int'], + 'new' => ['array|false', 'multi_handle'=>'CurlMultiHandle', '&w_queued_messages='=>'int'], + ], + 'curl_multi_init' => [ + 'old' => ['resource'], + 'new' => ['CurlMultiHandle'], + ], + 'curl_multi_remove_handle' => [ + 'old' => ['int', 'mh'=>'resource', 'ch'=>'resource'], + 'new' => ['int', 'multi_handle'=>'CurlMultiHandle', 'handle'=>'CurlHandle'], + ], + 'curl_multi_select' => [ + 'old' => ['int', 'mh'=>'resource', 'timeout='=>'float'], + 'new' => ['int', 'multi_handle'=>'CurlMultiHandle', 'timeout='=>'float'], + ], + 'curl_multi_setopt' => [ + 'old' => ['bool', 'mh'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'new' => ['bool', 'multi_handle'=>'CurlMultiHandle', 'option'=>'int', 'value'=>'mixed'], + ], + 'curl_pause' => [ + 'old' => ['int', 'ch'=>'resource', 'bitmask'=>'int'], + 'new' => ['int', 'handle'=>'CurlHandle', 'flags'=>'int'], + ], + 'curl_reset' => [ + 'old' => ['void', 'ch'=>'resource'], + 'new' => ['void', 'handle'=>'CurlHandle'], + ], + 'curl_setopt' => [ + 'old' => ['bool', 'ch'=>'resource', 'option'=>'int', 'value'=>'callable|mixed'], + 'new' => ['bool', 'handle'=>'CurlHandle', 'option'=>'int', 'value'=>'callable|mixed'], + ], + 'curl_setopt_array' => [ + 'old' => ['bool', 'ch'=>'resource', 'options'=>'array'], + 'new' => ['bool', 'handle'=>'CurlHandle', 'options'=>'array'], + ], + 'curl_share_close' => [ + 'old' => ['void', 'sh'=>'resource'], + 'new' => ['void', 'share_handle'=>'CurlShareHandle'], + ], + 'curl_share_errno' => [ + 'old' => ['int|false', 'sh'=>'resource'], + 'new' => ['int', 'share_handle'=>'CurlShareHandle'], + ], + 'curl_share_init' => [ + 'old' => ['resource'], + 'new' => ['CurlShareHandle'], + ], + 'curl_share_setopt' => [ + 'old' => ['bool', 'sh'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'new' => ['bool', 'share_handle'=>'CurlShareHandle', 'option'=>'int', 'value'=>'mixed'], + ], + 'curl_unescape' => [ + 'old' => ['string|false', 'ch'=>'resource', 'string'=>'string'], + 'new' => ['string|false', 'handle'=>'CurlHandle', 'string'=>'string'], + ], + 'date' => [ + 'old' => ['string', 'format'=>'string', 'timestamp='=>'int'], + 'new' => ['string', 'format'=>'string', 'timestamp='=>'?int'], + ], + 'date_add' => [ + 'old' => ['DateTime|false', 'object'=>'DateTime', 'interval'=>'DateInterval'], + 'new' => ['DateTime', 'object'=>'DateTime', 'interval'=>'DateInterval'], + ], + 'date_date_set' => [ + 'old' => ['DateTime|false', 'object'=>'DateTime', 'year'=>'int', 'month'=>'int', 'day'=>'int'], + 'new' => ['DateTime', 'object'=>'DateTime', 'year'=>'int', 'month'=>'int', 'day'=>'int'], + ], + 'date_diff' => [ + 'old' => ['DateInterval|false', 'baseObject'=>'DateTimeInterface', 'targetObject'=>'DateTimeInterface', 'absolute='=>'bool'], + 'new' => ['DateInterval', 'baseObject'=>'DateTimeInterface', 'targetObject'=>'DateTimeInterface', 'absolute='=>'bool'], + ], + 'date_format' => [ + 'old' => ['string|false', 'object'=>'DateTimeInterface', 'format'=>'string'], + 'new' => ['string', 'object'=>'DateTimeInterface', 'format'=>'string'], + ], + 'date_offset_get' => [ + 'old' => ['int|false', 'object'=>'DateTimeInterface'], + 'new' => ['int', 'object'=>'DateTimeInterface'], + ], + 'date_parse' => [ + 'old' => ['array|false', 'datetime'=>'string'], + 'new' => ['array', 'datetime'=>'string'], + ], + 'date_sub' => [ + 'old' => ['DateTime|false', 'object'=>'DateTime', 'interval'=>'DateInterval'], + 'new' => ['DateTime', 'object'=>'DateTime', 'interval'=>'DateInterval'], + ], + 'date_sun_info' => [ + 'old' => ['array|false', 'timestamp'=>'int', 'latitude'=>'float', 'longitude'=>'float'], + 'new' => ['array', 'timestamp'=>'int', 'latitude'=>'float', 'longitude'=>'float'], + ], + 'date_sunrise' => [ + 'old' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'float', 'longitude='=>'float', 'zenith='=>'float', 'utcOffset='=>'float'], + 'new' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'?float', 'longitude='=>'?float', 'zenith='=>'?float', 'utcOffset='=>'?float'], + ], + 'date_sunset' => [ + 'old' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'float', 'longitude='=>'float', 'zenith='=>'float', 'utcOffset='=>'float'], + 'new' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'?float', 'longitude='=>'?float', 'zenith='=>'?float', 'utcOffset='=>'?float'], + ], + 'date_time_set' => [ + 'old' => ['DateTime|false', 'object'=>'', 'hour'=>'', 'minute'=>'', 'second='=>'', 'microsecond='=>''], + 'new' => ['DateTime', 'object'=>'', 'hour'=>'', 'minute'=>'', 'second='=>'', 'microsecond='=>''], + ], + 'date_timestamp_set' => [ + 'old' => ['DateTime|false', 'object'=>'DateTime', 'timestamp'=>'int'], + 'new' => ['DateTime', 'object'=>'DateTime', 'timestamp'=>'int'], + ], + 'date_timezone_set' => [ + 'old' => ['DateTime|false', 'object'=>'DateTime', 'timezone'=>'DateTimeZone'], + 'new' => ['DateTime', 'object'=>'DateTime', 'timezone'=>'DateTimeZone'], + ], + 'datefmt_create' => [ + 'old' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'DateTimeZone|IntlTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'string'], + 'new' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'DateTimeZone|IntlTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + ], + 'deflate_add' => [ + 'old' => ['string|false', 'context'=>'resource', 'data'=>'string', 'flush_mode='=>'int'], + 'new' => ['string|false', 'context'=>'DeflateContext', 'data'=>'string', 'flush_mode='=>'int'], + ], + 'deflate_init' => [ + 'old' => ['resource|false', 'encoding'=>'int', 'options='=>'array'], + 'new' => ['DeflateContext|false', 'encoding'=>'int', 'options='=>'array'], + ], + 'dom_import_simplexml' => [ + 'old' => ['DOMElement|null', 'node'=>'SimpleXMLElement'], + 'new' => ['DOMElement', 'node'=>'SimpleXMLElement'], + ], + 'easter_date' => [ + 'old' => ['int', 'year='=>'int'], + 'new' => ['int', 'year='=>'?int'], + ], + 'easter_days' => [ + 'old' => ['int', 'year='=>'int', 'mode='=>'int'], + 'new' => ['int', 'year='=>'?int', 'mode='=>'int'], + ], + 'enchant_broker_describe' => [ + 'old' => ['array|false', 'broker'=>'resource'], + 'new' => ['array', 'broker'=>'EnchantBroker'], + ], + 'enchant_broker_dict_exists' => [ + 'old' => ['bool', 'broker'=>'resource', 'tag'=>'string'], + 'new' => ['bool', 'broker'=>'EnchantBroker', 'tag'=>'string'], + ], + 'enchant_broker_free' => [ + 'old' => ['bool', 'broker'=>'resource'], + 'new' => ['bool', 'broker'=>'EnchantBroker'], + ], + 'enchant_broker_free_dict' => [ + 'old' => ['bool', 'dictionary'=>'resource'], + 'new' => ['bool', 'dictionary'=>'EnchantBroker'], + ], + 'enchant_broker_get_dict_path' => [ + 'old' => ['string', 'broker'=>'resource', 'type'=>'int'], + 'new' => ['string', 'broker'=>'EnchantBroker', 'type'=>'int'], + ], + 'enchant_broker_get_error' => [ + 'old' => ['string|false', 'broker'=>'resource'], + 'new' => ['string|false', 'broker'=>'EnchantBroker'], + ], + 'enchant_broker_init' => [ + 'old' => ['resource|false'], + 'new' => ['EnchantBroker|false'], + ], + 'enchant_broker_list_dicts' => [ + 'old' => ['array|false', 'broker'=>'resource'], + 'new' => ['array', 'broker'=>'EnchantBroker'], + ], + 'enchant_broker_request_dict' => [ + 'old' => ['resource|false', 'broker'=>'resource', 'tag'=>'string'], + 'new' => ['EnchantDictionary|false', 'broker'=>'EnchantBroker', 'tag'=>'string'], + ], + 'enchant_broker_request_pwl_dict' => [ + 'old' => ['resource|false', 'broker'=>'resource', 'filename'=>'string'], + 'new' => ['EnchantDictionary|false', 'broker'=>'EnchantBroker', 'filename'=>'string'], + ], + 'enchant_broker_set_dict_path' => [ + 'old' => ['bool', 'broker'=>'resource', 'type'=>'int', 'path'=>'string'], + 'new' => ['bool', 'broker'=>'EnchantBroker', 'type'=>'int', 'path'=>'string'], + ], + 'enchant_broker_set_ordering' => [ + 'old' => ['bool', 'broker'=>'resource', 'tag'=>'string', 'ordering'=>'string'], + 'new' => ['bool', 'broker'=>'EnchantBroker', 'tag'=>'string', 'ordering'=>'string'], + ], + 'enchant_dict_add_to_personal' => [ + 'old' => ['void', 'dictionary'=>'resource', 'word'=>'string'], + 'new' => ['void', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], + ], + 'enchant_dict_add_to_session' => [ + 'old' => ['void', 'dictionary'=>'resource', 'word'=>'string'], + 'new' => ['void', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], + ], + 'enchant_dict_check' => [ + 'old' => ['bool', 'dictionary'=>'resource', 'word'=>'string'], + 'new' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], + ], + 'enchant_dict_describe' => [ + 'old' => ['array', 'dictionary'=>'resource'], + 'new' => ['array', 'dictionary'=>'EnchantDictionary'], + ], + 'enchant_dict_get_error' => [ + 'old' => ['string', 'dictionary'=>'resource'], + 'new' => ['string', 'dictionary'=>'EnchantDictionary'], + ], + 'enchant_dict_is_in_session' => [ + 'old' => ['bool', 'dictionary'=>'resource', 'word'=>'string'], + 'new' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], + ], + 'enchant_dict_quick_check' => [ + 'old' => ['bool', 'dictionary'=>'resource', 'word'=>'string', '&w_suggestions='=>'array'], + 'new' => ['bool', 'dictionary'=>'EnchantDictionary', 'word'=>'string', '&w_suggestions='=>'array'], + ], + 'enchant_dict_store_replacement' => [ + 'old' => ['void', 'dictionary'=>'resource', 'misspelled'=>'string', 'correct'=>'string'], + 'new' => ['void', 'dictionary'=>'EnchantDictionary', 'misspelled'=>'string', 'correct'=>'string'], + ], + 'enchant_dict_suggest' => [ + 'old' => ['array', 'dictionary'=>'resource', 'word'=>'string'], + 'new' => ['array', 'dictionary'=>'EnchantDictionary', 'word'=>'string'], + ], + 'error_log' => [ + 'old' => ['bool', 'message'=>'string', 'message_type='=>'int', 'destination='=>'string', 'additional_headers='=>'string'], + 'new' => ['bool', 'message'=>'string', 'message_type='=>'int', 'destination='=>'?string', 'additional_headers='=>'?string'], + ], + 'error_reporting' => [ + 'old' => ['int', 'error_level='=>'int'], + 'new' => ['int', 'error_level='=>'?int'], + ], + 'exif_read_data' => [ + 'old' => ['array|false', 'file'=>'string|resource', 'required_sections='=>'string', 'as_arrays='=>'bool', 'read_thumbnail='=>'bool'], + 'new' => ['array|false', 'file'=>'string|resource', 'required_sections='=>'?string', 'as_arrays='=>'bool', 'read_thumbnail='=>'bool'], + ], + 'explode' => [ + 'old' => ['list|false', 'separator'=>'string', 'string'=>'string', 'limit='=>'int'], + 'new' => ['list', 'separator'=>'string', 'string'=>'string', 'limit='=>'int'], + ], + 'fgetcsv' => [ + 'old' => ['list|array{0: null}|false', 'stream'=>'resource', 'length='=>'int', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'new' => ['list|array{0: null}|false', 'stream'=>'resource', 'length='=>'?int', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + ], + 'fgets' => [ + 'old' => ['string|false', 'stream'=>'resource', 'length='=>'int'], + 'new' => ['string|false', 'stream'=>'resource', 'length='=>'?int'], + ], + 'file_get_contents' => [ + 'old' => ['string|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'?resource', 'offset='=>'int', 'length='=>'int'], + 'new' => ['string|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'?resource', 'offset='=>'int', 'length='=>'?int'], + ], + 'finfo_open' => [ + 'old' => ['resource|false', 'flags='=>'int', 'magic_database='=>'string'], + 'new' => ['resource|false', 'flags='=>'int', 'magic_database='=>'?string'], + ], + 'fputs' => [ + 'old' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'fsockopen' => [ + 'old' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float'], + 'new' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float'], + ], + 'fwrite' => [ + 'old' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'get_class_methods' => [ + 'old' => ['list|null', 'object_or_class'=>'mixed'], + 'new' => ['list', 'object_or_class'=>'object|class-string'], + ], + 'get_headers' => [ + 'old' => ['array|false', 'url'=>'string', 'associative='=>'int', 'context='=>'?resource'], + 'new' => ['array|false', 'url'=>'string', 'associative='=>'bool', 'context='=>'?resource'], + ], + 'get_parent_class' => [ + 'old' => ['class-string|false', 'object_or_class='=>'mixed'], + 'new' => ['class-string|false', 'object_or_class='=>'object|class-string'], + ], + 'get_resources' => [ + 'old' => ['array', 'type='=>'string'], + 'new' => ['array', 'type='=>'?string'], + ], + 'getdate' => [ + 'old' => ['array{seconds: int<0, 59>, minutes: int<0, 59>, hours: int<0, 23>, mday: int<1, 31>, wday: int<0, 6>, mon: int<1, 12>, year: int, yday: int<0, 365>, weekday: "Monday"|"Tuesday"|"Wednesday"|"Thursday"|"Friday"|"Saturday"|"Sunday", month: "January"|"February"|"March"|"April"|"May"|"June"|"July"|"August"|"September"|"October"|"November"|"December", 0: int}', 'timestamp='=>'int'], + 'new' => ['array{seconds: int<0, 59>, minutes: int<0, 59>, hours: int<0, 23>, mday: int<1, 31>, wday: int<0, 6>, mon: int<1, 12>, year: int, yday: int<0, 365>, weekday: "Monday"|"Tuesday"|"Wednesday"|"Thursday"|"Friday"|"Saturday"|"Sunday", month: "January"|"February"|"March"|"April"|"May"|"June"|"July"|"August"|"September"|"October"|"November"|"December", 0: int}', 'timestamp='=>'?int'], + ], + 'gmdate' => [ + 'old' => ['string', 'format'=>'string', 'timestamp='=>'int'], + 'new' => ['string', 'format'=>'string', 'timestamp='=>'int|null'], + ], + 'gmmktime' => [ + 'old' => ['int|false', 'hour='=>'int', 'minute='=>'int', 'second='=>'int', 'month='=>'int', 'day='=>'int', 'year='=>'int'], + 'new' => ['int|false', 'hour'=>'int', 'minute='=>'int|null', 'second='=>'int|null', 'month='=>'int|null', 'day='=>'int|null', 'year='=>'int|null'], + ], + 'gmp_binomial' => [ + 'old' => ['GMP|false', 'n'=>'GMP|string|int', 'k'=>'int'], + 'new' => ['GMP', 'n'=>'GMP|string|int', 'k'=>'int'], + ], + 'gmp_export' => [ + 'old' => ['string|false', 'num'=>'GMP|string|int', 'word_size='=>'int', 'flags='=>'int'], + 'new' => ['string', 'num'=>'GMP|string|int', 'word_size='=>'int', 'flags='=>'int'], + ], + 'gmp_import' => [ + 'old' => ['GMP|false', 'data'=>'string', 'word_size='=>'int', 'flags='=>'int'], + 'new' => ['GMP', 'data'=>'string', 'word_size='=>'int', 'flags='=>'int'], + ], + 'gmstrftime' => [ + 'old' => ['string|false', 'format'=>'string', 'timestamp='=>'int'], + 'new' => ['string|false', 'format'=>'string', 'timestamp='=>'?int'], + ], + 'gzgets' => [ + 'old' => ['string|false', 'stream'=>'resource', 'length='=>'int'], + 'new' => ['string|false', 'stream'=>'resource', 'length='=>'?int'], + ], + 'gzputs' => [ + 'old' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'gzwrite' => [ + 'old' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'hash' => [ + 'old' => ['string|false', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool'], + 'new' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool'], + ], + 'hash_hmac' => [ + 'old' => ['non-empty-string|false', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], + 'new' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], + ], + 'hash_hmac_file' => [ + 'old' => ['non-empty-string|false', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], + 'new' => ['non-empty-string', 'algo'=>'string', 'filename'=>'string', 'key'=>'string', 'binary='=>'bool'], + ], + 'hash_init' => [ + 'old' => ['HashContext|false', 'algo'=>'string', 'flags='=>'int', 'key='=>'string'], + 'new' => ['HashContext', 'algo'=>'string', 'flags='=>'int', 'key='=>'string'], + ], + 'hash_hkdf' => [ + 'old' => ['non-empty-string|false', 'algo'=>'string', 'key'=>'string', 'length='=>'int', 'info='=>'string', 'salt='=>'string'], + 'new' => ['non-empty-string', 'algo'=>'string', 'key'=>'string', 'length='=>'int', 'info='=>'string', 'salt='=>'string'], + ], + 'hash_update_file' => [ + 'old' => ['bool', 'context'=>'HashContext', 'filename'=>'string', 'stream_context='=>'resource'], + 'new' => ['bool', 'context'=>'HashContext', 'filename'=>'string', 'stream_context='=>'?resource'], + ], + 'header_remove' => [ + 'old' => ['void', 'name='=>'string'], + 'new' => ['void', 'name='=>'?string'], + ], + 'html_entity_decode' => [ + 'old' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'?string'], + ], + 'htmlentities' => [ + 'old' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string', 'double_encode='=>'bool'], + 'new' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'?string', 'double_encode='=>'bool'], + ], + 'iconv_mime_decode' => [ + 'old' => ['string|false', 'string'=>'string', 'mode='=>'int', 'encoding='=>'string'], + 'new' => ['string|false', 'string'=>'string', 'mode='=>'int', 'encoding='=>'?string'], + ], + 'iconv_mime_decode_headers' => [ + 'old' => ['array|false', 'headers'=>'string', 'mode='=>'int', 'encoding='=>'string'], + 'new' => ['array|false', 'headers'=>'string', 'mode='=>'int', 'encoding='=>'?string'], + ], + 'iconv_strlen' => [ + 'old' => ['0|positive-int|false', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['0|positive-int|false', 'string'=>'string', 'encoding='=>'?string'], + ], + 'iconv_strpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'?string'], + ], + 'iconv_strrpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'?string'], + ], + 'iconv_substr' => [ + 'old' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'int', 'encoding='=>'string'], + 'new' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'?int', 'encoding='=>'?string'], + ], + 'idate' => [ + 'old' => ['int', 'format'=>'string', 'timestamp='=>'int'], + 'new' => ['int', 'format'=>'string', 'timestamp='=>'?int'], + ], + 'ignore_user_abort' => [ + 'old' => ['int', 'enable='=>'bool'], + 'new' => ['int', 'enable='=>'?bool'], + ], + 'imageaffine' => [ + 'old' => ['resource|false', 'src'=>'resource', 'affine'=>'array', 'clip='=>'array'], + 'new' => ['false|GdImage', 'image'=>'GdImage', 'affine'=>'array', 'clip='=>'?array'], + ], + 'imagealphablending' => [ + 'old' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'new' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], + ], + 'imageantialias' => [ + 'old' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'new' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], + ], + 'imagearc' => [ + 'old' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int'], + ], + 'imagebmp' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'resource|string|null', 'compressed='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'resource|string|null', 'compressed='=>'bool'], + ], + 'imagechar' => [ + 'old' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + ], + 'imagecharup' => [ + 'old' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + ], + 'imagecolorallocate' => [ + 'old' => ['int|false', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'new' => ['int|false', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + ], + 'imagecolorallocatealpha' => [ + 'old' => ['int|false', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'new' => ['int|false', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + ], + 'imagecolorat' => [ + 'old' => ['int|false', 'image'=>'resource', 'x'=>'int', 'y'=>'int'], + 'new' => ['int|false', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int'], + ], + 'imagecolorclosest' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + ], + 'imagecolorclosestalpha' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + ], + 'imagecolorclosesthwb' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + ], + 'imagecolordeallocate' => [ + 'old' => ['bool', 'image'=>'resource', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'color'=>'int'], + ], + 'imagecolorexact' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + ], + 'imagecolorexactalpha' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + ], + 'imagecolormatch' => [ + 'old' => ['bool', 'image1'=>'resource', 'image2'=>'resource'], + 'new' => ['bool', 'image1'=>'GdImage', 'image2'=>'GdImage'], + ], + 'imagecolorresolve' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + ], + 'imagecolorresolvealpha' => [ + 'old' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + ], + 'imagecolorset' => [ + 'old' => ['false|null', 'image'=>'resource', 'color'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], + 'new' => ['false|null', 'image'=>'GdImage', 'color'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], + ], + 'imagecolorsforindex' => [ + 'old' => ['array', 'image'=>'resource', 'color'=>'int'], + 'new' => ['array', 'image'=>'GdImage', 'color'=>'int'], + ], + 'imagecolorstotal' => [ + 'old' => ['int', 'image'=>'resource'], + 'new' => ['int', 'image'=>'GdImage'], + ], + 'imagecolortransparent' => [ + 'old' => ['int', 'image'=>'resource', 'color='=>'int'], + 'new' => ['int', 'image'=>'GdImage', 'color='=>'?int'], + ], + 'imageconvolution' => [ + 'old' => ['bool', 'image'=>'resource', 'matrix'=>'array', 'divisor'=>'float', 'offset'=>'float'], + 'new' => ['bool', 'image'=>'GdImage', 'matrix'=>'array', 'divisor'=>'float', 'offset'=>'float'], + ], + 'imagecopy' => [ + 'old' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'new' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + ], + 'imagecopymerge' => [ + 'old' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + 'new' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + ], + 'imagecopymergegray' => [ + 'old' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + 'new' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + ], + 'imagecopyresampled' => [ + 'old' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'new' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + ], + 'imagecopyresized' => [ + 'old' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'new' => ['bool', 'dst_image'=>'GdImage', 'src_image'=>'GdImage', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + ], + 'imagecreate' => [ + 'old' => ['resource|false', 'x_size'=>'int', 'y_size'=>'int'], + 'new' => ['false|GdImage', 'width'=>'int', 'height'=>'int'], + ], + 'imagecreatefrombmp' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromgd' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromgd2' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromgd2part' => [ + 'old' => ['resource|false', 'filename'=>'string', 'srcx'=>'int', 'srcy'=>'int', 'width'=>'int', 'height'=>'int'], + 'new' => ['false|GdImage', 'filename'=>'string', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int'], + ], + 'imagecreatefromgif' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromjpeg' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefrompng' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromstring' => [ + 'old' => ['resource|false', 'image'=>'string'], + 'new' => ['false|GdImage', 'data'=>'string'], + ], + 'imagecreatefromwbmp' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromwebp' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromxbm' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatefromxpm' => [ + 'old' => ['resource|false', 'filename'=>'string'], + 'new' => ['false|GdImage', 'filename'=>'string'], + ], + 'imagecreatetruecolor' => [ + 'old' => ['resource|false', 'x_size'=>'int', 'y_size'=>'int'], + 'new' => ['false|GdImage', 'width'=>'int', 'height'=>'int'], + ], + 'imagecrop' => [ + 'old' => ['resource|false', 'im'=>'resource', 'rect'=>'array'], + 'new' => ['false|GdImage', 'image'=>'GdImage', 'rectangle'=>'array'], + ], + 'imagecropauto' => [ + 'old' => ['resource|false', 'im'=>'resource', 'mode='=>'int', 'threshold='=>'float', 'color='=>'int'], + 'new' => ['false|GdImage', 'image'=>'GdImage', 'mode='=>'int', 'threshold='=>'float', 'color='=>'int'], + ], + 'imagedashedline' => [ + 'old' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + ], + 'imagedestroy' => [ + 'old' => ['bool', 'image'=>'resource'], + 'new' => ['bool', 'image'=>'GdImage'], + ], + 'imageellipse' => [ + 'old' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + ], + 'imagefill' => [ + 'old' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + ], + 'imagefilledarc' => [ + 'old' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int', 'style'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int', 'style'=>'int'], + ], + 'imagefilledellipse' => [ + 'old' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + ], + 'imagefilledpolygon' => [ + 'old' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + ], + 'imagefilledrectangle' => [ + 'old' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + ], + 'imagefilltoborder' => [ + 'old' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'border_color'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'border_color'=>'int', 'color'=>'int'], + ], + 'imagefilter' => [ + 'old' => ['bool', 'image'=>'resource', 'filter'=>'int', '...args='=>'array|int|float|bool'], + 'new' => ['bool', 'image'=>'GdImage', 'filter'=>'int', '...args='=>'array|int|float|bool'], + ], + 'imageflip' => [ + 'old' => ['bool', 'image'=>'resource', 'mode'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'mode'=>'int'], + ], + 'imagefttext' => [ + 'old' => ['array|false', 'image'=>'resource', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], + 'new' => ['array|false', 'image'=>'GdImage', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], + ], + 'imagegammacorrect' => [ + 'old' => ['bool', 'image'=>'resource', 'input_gamma'=>'float', 'output_gamma'=>'float'], + 'new' => ['bool', 'image'=>'GdImage', 'input_gamma'=>'float', 'output_gamma'=>'float'], + ], + 'imagegd' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null'], + ], + 'imagegd2' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'chunk_size='=>'int', 'mode='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'chunk_size='=>'int', 'mode='=>'int'], + ], + 'imagegetclip' => [ + 'old' => ['array|false', 'im'=>'resource'], + 'new' => ['array', 'image'=>'GdImage'], + ], + 'imagegif' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null'], + ], + 'imagegrabscreen' => [ + 'old' => ['false|resource'], + 'new' => ['false|GdImage'], + ], + 'imagegrabwindow' => [ + 'old' => ['false|resource', 'window_handle'=>'int', 'client_area='=>'int'], + 'new' => ['false|GdImage', 'handle'=>'int', 'client_area='=>'int'], + ], + 'imageinterlace' => [ + 'old' => ['int|false', 'image'=>'resource', 'enable='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'enable='=>'bool|null'], + ], + 'imageistruecolor' => [ + 'old' => ['bool', 'image'=>'resource'], + 'new' => ['bool', 'image'=>'GdImage'], + ], + 'imagejpeg' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int'], + ], + 'imagelayereffect' => [ + 'old' => ['bool', 'image'=>'resource', 'effect'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'effect'=>'int'], + ], + 'imageline' => [ + 'old' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + ], + 'imageopenpolygon' => [ + 'old' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points'=>'int', 'color'=>'int'], + ], + 'imagepalettecopy' => [ + 'old' => ['void', 'dst'=>'resource', 'src'=>'resource'], + 'new' => ['void', 'dst'=>'GdImage', 'src'=>'GdImage'], + ], + 'imagepalettetotruecolor' => [ + 'old' => ['bool', 'image'=>'resource'], + 'new' => ['bool', 'image'=>'GdImage'], + ], + 'imagepng' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int', 'filters='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int', 'filters='=>'int'], + ], + 'imagepolygon' => [ + 'old' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + ], + 'imagerectangle' => [ + 'old' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + ], + 'imageresolution' => [ + 'old' => ['array|bool', 'image'=>'resource', 'resolution_x='=>'int', 'resolution_y='=>'int'], + 'new' => ['array|bool', 'image'=>'GdImage', 'resolution_x='=>'?int', 'resolution_y='=>'?int'], + ], + 'imagerotate' => [ + 'old' => ['resource|false', 'src_im'=>'resource', 'angle'=>'float', 'bgdcolor'=>'int', 'ignoretransparent='=>'int'], + 'new' => ['false|GdImage', 'image'=>'GdImage', 'angle'=>'float', 'background_color'=>'int', 'ignore_transparent='=>'bool'], + ], + 'imagesavealpha' => [ + 'old' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'new' => ['bool', 'image'=>'GdImage', 'enable'=>'bool'], + ], + 'imagescale' => [ + 'old' => ['resource|false', 'im'=>'resource', 'new_width'=>'int', 'new_height='=>'int', 'method='=>'int'], + 'new' => ['false|GdImage', 'image'=>'GdImage', 'width'=>'int', 'height='=>'int', 'mode='=>'int'], + ], + 'imagesetbrush' => [ + 'old' => ['bool', 'image'=>'resource', 'brush'=>'resource'], + 'new' => ['bool', 'image'=>'GdImage', 'brush'=>'GdImage'], + ], + 'imagesetclip' => [ + 'old' => ['bool', 'image'=>'resource', 'x1'=>'int', 'x2'=>'int', 'y1'=>'int', 'y2'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x1'=>'int', 'x2'=>'int', 'y1'=>'int', 'y2'=>'int'], + ], + 'imagesetinterpolation' => [ + 'old' => ['bool', 'image'=>'resource', 'method='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'method='=>'int'], + ], + 'imagesetpixel' => [ + 'old' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + ], + 'imagesetstyle' => [ + 'old' => ['bool', 'image'=>'resource', 'style'=>'non-empty-array'], + 'new' => ['bool', 'image'=>'GdImage', 'style'=>'non-empty-array'], + ], + 'imagesetthickness' => [ + 'old' => ['bool', 'image'=>'resource', 'thickness'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'thickness'=>'int'], + ], + 'imagesettile' => [ + 'old' => ['bool', 'image'=>'resource', 'tile'=>'resource'], + 'new' => ['bool', 'image'=>'GdImage', 'tile'=>'GdImage'], + ], + 'imagestring' => [ + 'old' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + ], + 'imagestringup' => [ + 'old' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + ], + 'imagesx' => [ + 'old' => ['int', 'image'=>'resource'], + 'new' => ['int', 'image'=>'GdImage'], + ], + 'imagesy' => [ + 'old' => ['int', 'image'=>'resource'], + 'new' => ['int', 'image'=>'GdImage'], + ], + 'imagetruecolortopalette' => [ + 'old' => ['bool', 'image'=>'resource', 'dither'=>'bool', 'num_colors'=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'dither'=>'bool', 'num_colors'=>'int'], + ], + 'imagettfbbox' => [ + 'old' => ['false|array', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string'], + 'new' => ['false|array', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string', 'options='=>'array'], + ], + 'imagettftext' => [ + 'old' => ['false|array', 'image'=>'resource', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string'], + 'new' => ['false|array', 'image'=>'GdImage', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], + ], + 'imagewbmp' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'foreground_color='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'foreground_color='=>'?int'], + ], + 'imagewebp' => [ + 'old' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'file='=>'string|resource|null', 'quality='=>'int'], + ], + 'imagexbm' => [ + 'old' => ['bool', 'image'=>'resource', 'filename'=>'?string', 'foreground_color='=>'int'], + 'new' => ['bool', 'image'=>'GdImage', 'filename'=>'?string', 'foreground_color='=>'?int'], + ], + 'imap_append' => [ + 'old' => ['bool', 'imap'=>'resource', 'folder'=>'string', 'message'=>'string', 'options='=>'string', 'internal_date='=>'string'], + 'new' => ['bool', 'imap'=>'resource', 'folder'=>'string', 'message'=>'string', 'options='=>'?string', 'internal_date='=>'?string'], + ], + 'imap_headerinfo' => [ + 'old' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int', 'default_host='=>'string|null'], + 'new' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int'], + ], + 'imap_mail' => [ + 'old' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string', 'cc='=>'string', 'bcc='=>'string', 'return_path='=>'string'], + 'new' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'?string', 'cc='=>'?string', 'bcc='=>'?string', 'return_path='=>'?string'], + ], + 'imap_sort' => [ + 'old' => ['array|false', 'imap'=>'resource', 'criteria'=>'int', 'reverse'=>'int', 'flags='=>'int', 'search_criteria='=>'string', 'charset='=>'string'], + 'new' => ['array|false', 'imap'=>'resource', 'criteria'=>'int', 'reverse'=>'bool', 'flags='=>'int', 'search_criteria='=>'?string', 'charset='=>'?string'], + ], + 'inflate_add' => [ + 'old' => ['string|false', 'context'=>'resource', 'data'=>'string', 'flush_mode='=>'int'], + 'new' => ['string|false', 'context'=>'InflateContext', 'data'=>'string', 'flush_mode='=>'int'], + ], + 'inflate_get_read_len' => [ + 'old' => ['int', 'context'=>'resource'], + 'new' => ['int', 'context'=>'InflateContext'], + ], + 'inflate_get_status' => [ + 'old' => ['int', 'context'=>'resource'], + 'new' => ['int', 'context'=>'InflateContext'], + ], + 'inflate_init' => [ + 'old' => ['resource|false', 'encoding'=>'int', 'options='=>'array'], + 'new' => ['InflateContext|false', 'encoding'=>'int', 'options='=>'array'], + ], + 'jdtounix' => [ + 'old' => ['int|false', 'julian_day'=>'int'], + 'new' => ['int', 'julian_day'=>'int'], + ], + 'ldap_add' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_add_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_bind_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'?array'], + ], + 'ldap_compare' => [ + 'old' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'array'], + 'new' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'?array'], + ], + 'ldap_delete' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'?array'], + ], + 'ldap_delete_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'?array'], + ], + 'ldap_exop_passwd' => [ + 'old' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array'], + 'new' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array|null'], + ], + 'ldap_list' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_rename_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + ], + 'ldap_mod_add' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_add_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_del' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_del_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_replace' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_replace_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_modify' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_modify_batch' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'?array'], + ], + 'ldap_read' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_rename' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'array'], + 'new' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + ], + 'ldap_search' => [ + 'old' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'array'], + 'new' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_set_rebind_proc' => [ + 'old' => ['bool', 'ldap'=>'resource', 'callback'=>'callable'], + 'new' => ['bool', 'ldap'=>'resource', 'callback'=>'?callable'], + ], + 'ldap_sasl_bind' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn='=>'string', 'password='=>'string', 'mech='=>'string', 'realm='=>'string', 'authc_id='=>'string', 'authz_id='=>'string', 'props='=>'string'], + 'new' => ['bool', 'ldap'=>'resource', 'dn='=>'?string', 'password='=>'?string', 'mech='=>'?string', 'realm='=>'?string', 'authc_id='=>'?string', 'authz_id='=>'?string', 'props='=>'?string'], + ], + 'libxml_use_internal_errors' => [ + 'old' => ['bool', 'use_errors='=>'bool'], + 'new' => ['bool', 'use_errors='=>'?bool'], + ], + 'locale_get_display_language' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'locale_get_display_name' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'locale_get_display_region' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'locale_get_display_script' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'locale_get_display_variant' => [ + 'old' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'new' => ['string', 'locale'=>'string', 'displayLocale='=>'?string'], + ], + 'localtime' => [ + 'old' => ['array', 'timestamp='=>'int', 'associative='=>'bool'], + 'new' => ['array', 'timestamp='=>'?int', 'associative='=>'bool'], + ], + 'mb_check_encoding' => [ + 'old' => ['bool', 'value='=>'array|string', 'encoding='=>'string'], + 'new' => ['bool', 'value='=>'array|string|null', 'encoding='=>'string|null'], + ], + 'mb_chr' => [ + 'old' => ['non-empty-string|false', 'codepoint'=>'int', 'encoding='=>'string'], + 'new' => ['non-empty-string|false', 'codepoint'=>'int', 'encoding='=>'string|null'], + ], + 'mb_convert_case' => [ + 'old' => ['string', 'string'=>'string', 'mode'=>'int', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'mode'=>'int', 'encoding='=>'string|null'], + ], + 'mb_convert_encoding' => [ + 'old' => ['string|false', 'string'=>'string', 'to_encoding'=>'string', 'from_encoding='=>'mixed'], + 'new' => ['string|false', 'string'=>'string', 'to_encoding'=>'string', 'from_encoding='=>'array|string|null'], + ], + 'mb_convert_encoding\'1' => [ + 'old' => ['array', 'string'=>'array', 'to_encoding'=>'string', 'from_encoding='=>'mixed'], + 'new' => ['array', 'string'=>'array', 'to_encoding'=>'string', 'from_encoding='=>'array|string|null'], + ], + 'mb_convert_kana' => [ + 'old' => ['string', 'string'=>'string', 'mode='=>'string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'mode='=>'string', 'encoding='=>'string|null'], + ], + 'mb_decode_numericentity' => [ + 'old' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string|null'], + ], + 'mb_detect_encoding' => [ + 'old' => ['string|false', 'string'=>'string', 'encodings='=>'mixed', 'strict='=>'bool'], + 'new' => ['string|false', 'string'=>'string', 'encodings='=>'array|string|null', 'strict='=>'bool'], + ], + 'mb_detect_order' => [ + 'old' => ['bool|list', 'encoding='=>'mixed'], + 'new' => ['bool|list', 'encoding='=>'array|string|null'], + ], + 'mb_encode_mimeheader' => [ + 'old' => ['string', 'string'=>'string', 'charset='=>'string', 'transfer_encoding='=>'string', 'newline='=>'string', 'indent='=>'int'], + 'new' => ['string', 'string'=>'string', 'charset='=>'string|null', 'transfer_encoding='=>'string|null', 'newline='=>'string', 'indent='=>'int'], + ], + 'mb_encode_numericentity' => [ + 'old' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string', 'hex='=>'bool'], + 'new' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string|null', 'hex='=>'bool'], + ], + 'mb_encoding_aliases' => [ + 'old' => ['list|false', 'encoding'=>'string'], + 'new' => ['list', 'encoding'=>'string'], + ], + 'mb_ereg' => [ + 'old' => ['int|false', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], + 'new' => ['bool', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], + ], + 'mb_ereg_match' => [ + 'old' => ['bool', 'pattern'=>'string', 'string'=>'string', 'options='=>'string'], + 'new' => ['bool', 'pattern'=>'string', 'string'=>'string', 'options='=>'string|null'], + ], + 'mb_ereg_replace' => [ + 'old' => ['string|false', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string'], + 'new' => ['string|false|null', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string|null'], + ], + 'mb_ereg_replace_callback' => [ + 'old' => ['string|false|null', 'pattern'=>'string', 'callback'=>'callable', 'string'=>'string', 'options='=>'string'], + 'new' => ['string|false|null', 'pattern'=>'string', 'callback'=>'callable', 'string'=>'string', 'options='=>'string|null'], + ], + 'mb_ereg_search' => [ + 'old' => ['bool', 'pattern='=>'string', 'options='=>'string'], + 'new' => ['bool', 'pattern='=>'string|null', 'options='=>'string|null'], + ], + 'mb_ereg_search_init' => [ + 'old' => ['bool', 'string'=>'string', 'pattern='=>'string', 'options='=>'string'], + 'new' => ['bool', 'string'=>'string', 'pattern='=>'string|null', 'options='=>'string|null'], + ], + 'mb_ereg_search_pos' => [ + 'old' => ['int[]|false', 'pattern='=>'string', 'options='=>'string'], + 'new' => ['int[]|false', 'pattern='=>'string|null', 'options='=>'string|null'], + ], + 'mb_ereg_search_regs' => [ + 'old' => ['string[]|false', 'pattern='=>'string', 'options='=>'string'], + 'new' => ['string[]|false', 'pattern='=>'string|null', 'options='=>'string|null'], + ], + 'mb_eregi' => [ + 'old' => ['int|false', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array'], + 'new' => ['bool', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], + ], + 'mb_eregi_replace' => [ + 'old' => ['string|false', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string'], + 'new' => ['string|false|null', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string|null'], + ], + 'mb_http_input' => [ + 'old' => ['string|false', 'type='=>'string'], + 'new' => ['array|string|false', 'type='=>'string|null'], + ], + 'mb_http_output' => [ + 'old' => ['string|bool', 'encoding='=>'string'], + 'new' => ['string|bool', 'encoding='=>'string|null'], + ], + 'mb_internal_encoding' => [ + 'old' => ['string|bool', 'encoding='=>'string'], + 'new' => ['string|bool', 'encoding='=>'string|null'], + ], + 'mb_language' => [ + 'old' => ['string|bool', 'language='=>'string'], + 'new' => ['string|bool', 'language='=>'string|null'], + ], + 'mb_ord' => [ + 'old' => ['int|false', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['int|false', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_parse_str' => [ + 'old' => ['bool', 'string'=>'string', '&w_result='=>'array'], + 'new' => ['bool', 'string'=>'string', '&w_result'=>'array'], + ], + 'mb_regex_encoding' => [ + 'old' => ['string|bool', 'encoding='=>'string'], + 'new' => ['string|bool', 'encoding='=>'string|null'], + ], + 'mb_regex_set_options' => [ + 'old' => ['string', 'options='=>'string'], + 'new' => ['string', 'options='=>'string|null'], + ], + 'mb_scrub' => [ + 'old' => ['string', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_send_mail' => [ + 'old' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string'], + 'new' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string|null'], + ], + 'mb_str_split' => [ + 'old' => ['list|false', 'string'=>'string', 'length='=>'positive-int', 'encoding='=>'string'], + 'new' => ['list', 'string'=>'string', 'length='=>'positive-int', 'encoding='=>'string|null'], + ], + 'mb_strcut' => [ + 'old' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string|null'], + ], + 'mb_strimwidth' => [ + 'old' => ['string', 'string'=>'string', 'start'=>'int', 'width'=>'int', 'trim_marker='=>'string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'start'=>'int', 'width'=>'int', 'trim_marker='=>'string', 'encoding='=>'string|null'], + ], + 'mb_stripos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], + ], + 'mb_stristr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], + ], + 'mb_strlen' => [ + 'old' => ['0|positive-int', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['0|positive-int', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_strpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], + ], + 'mb_strrchr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], + ], + 'mb_strrichr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], + ], + 'mb_strripos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], + ], + 'mb_strrpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string|null'], + ], + 'mb_strstr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string|null'], + ], + 'mb_strtolower' => [ + 'old' => ['lowercase-string', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['lowercase-string', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_strtoupper' => [ + 'old' => ['string', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_strwidth' => [ + 'old' => ['int', 'string'=>'string', 'encoding='=>'string'], + 'new' => ['int', 'string'=>'string', 'encoding='=>'string|null'], + ], + 'mb_substitute_character' => [ + 'old' => ['bool|int|string', 'substitute_character='=>'mixed'], + 'new' => ['bool|int|string', 'substitute_character='=>'int|string|null'], + ], + 'mb_substr' => [ + 'old' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string|null'], + ], + 'mb_substr_count' => [ + 'old' => ['int', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string'], + 'new' => ['int', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string|null'], + ], + 'metaphone' => [ + 'old' => ['string|false', 'string'=>'string', 'max_phonemes='=>'int'], + 'new' => ['string', 'string'=>'string', 'max_phonemes='=>'int'], + ], + 'mhash' => [ + 'old' => ['string', 'algo'=>'int', 'data'=>'string', 'key='=>'string'], + 'new' => ['string', 'algo'=>'int', 'data'=>'string', 'key='=>'?string'], + ], + 'mktime' => [ + 'old' => ['int|false', 'hour='=>'int', 'minute='=>'int', 'second='=>'int', 'month='=>'int', 'day='=>'int', 'year='=>'int'], + 'new' => ['int|false', 'hour'=>'int', 'minute='=>'int|null', 'second='=>'int|null', 'month='=>'int|null', 'day='=>'int|null', 'year='=>'int|null'], + ], + 'msg_get_queue' => [ + 'old' => ['resource|false', 'key'=>'int', 'permissions='=>'int'], + 'new' => ['SysvMessageQueue|false', 'key'=>'int', 'permissions='=>'int'], + ], + 'msg_receive' => [ + 'old' => ['bool', 'queue'=>'resource', 'desired_message_type'=>'int', '&w_received_message_type'=>'int', 'max_message_size'=>'int', '&w_message'=>'mixed', 'unserialize='=>'bool', 'flags='=>'int', '&w_error_code='=>'int'], + 'new' => ['bool', 'queue'=>'SysvMessageQueue', 'desired_message_type'=>'int', '&w_received_message_type'=>'int', 'max_message_size'=>'int', '&w_message'=>'mixed', 'unserialize='=>'bool', 'flags='=>'int', '&w_error_code='=>'int'], + ], + 'msg_remove_queue' => [ + 'old' => ['bool', 'queue'=>'resource'], + 'new' => ['bool', 'queue'=>'SysvMessageQueue'], + ], + 'msg_send' => [ + 'old' => ['bool', 'queue'=>'resource', 'message_type'=>'int', 'message'=>'mixed', 'serialize='=>'bool', 'blocking='=>'bool', '&w_error_code='=>'int'], + 'new' => ['bool', 'queue'=>'SysvMessageQueue', 'message_type'=>'int', 'message'=>'mixed', 'serialize='=>'bool', 'blocking='=>'bool', '&w_error_code='=>'int'], + ], + 'msg_set_queue' => [ + 'old' => ['bool', 'queue'=>'resource', 'data'=>'array'], + 'new' => ['bool', 'queue'=>'SysvMessageQueue', 'data'=>'array'], + ], + 'msg_stat_queue' => [ + 'old' => ['array', 'queue'=>'resource'], + 'new' => ['array', 'queue'=>'SysvMessageQueue'], + ], + 'mysqli::__construct' => [ + 'old' => ['void', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'new' => ['void', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], + ], + 'mysqli::begin_transaction' => [ + 'old' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'flags='=>'int', 'name='=>'?string'], + ], + 'mysqli::commit' => [ + 'old' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'flags='=>'int', 'name='=>'?string'], + ], + 'mysqli::connect' => [ + 'old' => ['null|false', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'new' => ['null|false', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], + ], + 'mysqli::rollback' => [ + 'old' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'flags='=>'int', 'name='=>'?string'], + ], + 'mysqli_begin_transaction' => [ + 'old' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], + ], + 'mysqli_commit' => [ + 'old' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], + ], + 'mysqli_connect' => [ + 'old' => ['mysqli|false', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'new' => ['mysqli|false', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], + ], + 'mysqli_rollback' => [ + 'old' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'new' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'?string'], + ], + 'number_format' => [ + 'old' => ['string', 'num'=>'float|int', 'decimals='=>'int'], + 'new' => ['string', 'num'=>'float|int', 'decimals='=>'int', 'decimal_separator='=>'?string', 'thousands_separator='=>'?string'], + ], + 'numfmt_create' => [ + 'old' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'new' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'?string'], + ], + 'ob_implicit_flush' => [ + 'old' => ['void', 'enable='=>'int'], + 'new' => ['void', 'enable='=>'bool'], + ], + 'odbc_exec' => [ + 'old' => ['resource', 'odbc'=>'resource', 'query'=>'string', 'flags='=>'int'], + 'new' => ['resource', 'odbc'=>'resource', 'query'=>'string'], + ], + 'odbc_fetch_row' => [ + 'old' => ['bool', 'statement'=>'resource', 'row='=>'int'], + 'new' => ['bool', 'statement'=>'resource', 'row='=>'?int'], + ], + 'odbc_do' => [ + 'old' => ['resource', 'odbc'=>'resource', 'query'=>'string', 'flags='=>'int'], + 'new' => ['resource', 'odbc'=>'resource', 'query'=>'string'], + ], + 'odbc_tables' => [ + 'old' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'string', 'table='=>'string', 'types='=>'string'], + 'new' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'?string', 'table='=>'?string', 'types='=>'?string'], + ], + 'openssl_csr_export' => [ + 'old' => ['bool', 'csr'=>'string|resource', '&w_output'=>'string', 'no_text='=>'bool'], + 'new' => ['bool', 'csr'=>'OpenSSLCertificateSigningRequest|string', '&w_output'=>'string', 'no_text='=>'bool'], + ], + 'openssl_csr_export_to_file' => [ + 'old' => ['bool', 'csr'=>'string|resource', 'output_filename'=>'string', 'no_text='=>'bool'], + 'new' => ['bool', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'output_filename'=>'string', 'no_text='=>'bool'], + ], + 'openssl_csr_get_public_key' => [ + 'old' => ['resource|false', 'csr'=>'string|resource', 'short_names='=>'bool'], + 'new' => ['OpenSSLAsymmetricKey|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'short_names='=>'bool'], + ], + 'openssl_csr_get_subject' => [ + 'old' => ['array|false', 'csr'=>'string|resource', 'short_names='=>'bool'], + 'new' => ['array|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'short_names='=>'bool'], + ], + 'openssl_csr_new' => [ + 'old' => ['resource|false', 'distinguished_names'=>'array', '&w_private_key'=>'resource', 'options='=>'array', 'extra_attributes='=>'array'], + 'new' => ['OpenSSLCertificateSigningRequest|false', 'distinguished_names'=>'array', '&w_private_key'=>'OpenSSLAsymmetricKey', 'options='=>'array|null', 'extra_attributes='=>'array|null'], + ], + 'openssl_csr_sign' => [ + 'old' => ['resource|false', 'csr'=>'string|resource', 'ca_certificate'=>'string|resource|null', 'private_key'=>'string|resource|array', 'days'=>'int', 'options='=>'array', 'serial='=>'int'], + 'new' => ['OpenSSLCertificate|false', 'csr'=>'OpenSSLCertificateSigningRequest|string', 'ca_certificate'=>'OpenSSLCertificate|string|null', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'days'=>'int', 'options='=>'array|null', 'serial='=>'int'], + ], + 'openssl_dh_compute_key' => [ + 'old' => ['string|false', 'public_key'=>'string', 'private_key'=>'resource'], + 'new' => ['string|false', 'public_key'=>'string', 'private_key'=>'OpenSSLAsymmetricKey'], + ], + 'openssl_free_key' => [ + 'old' => ['void', 'key'=>'resource'], + 'new' => ['void', 'key'=>'OpenSSLAsymmetricKey'], + ], + 'openssl_get_privatekey' => [ + 'old' => ['resource|false', 'private_key'=>'string', 'passphrase='=>'string'], + 'new' => ['OpenSSLAsymmetricKey|false', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase='=>'?string'], + ], + 'openssl_get_publickey' => [ + 'old' => ['resource|false', 'public_key'=>'resource|string'], + 'new' => ['OpenSSLAsymmetricKey|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], + ], + 'openssl_open' => [ + 'old' => ['bool', 'data'=>'string', '&w_output'=>'string', 'encrypted_key'=>'string', 'private_key'=>'string|array|resource', 'cipher_algo='=>'string', 'iv='=>'string'], + 'new' => ['bool', 'data'=>'string', '&w_output'=>'string', 'encrypted_key'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'cipher_algo'=>'string', 'iv='=>'string|null'], + ], + 'openssl_pkcs12_export' => [ + 'old' => ['bool', 'certificate'=>'string|resource', '&w_output'=>'string', 'private_key'=>'string|array|resource', 'passphrase'=>'string', 'options='=>'array'], + 'new' => ['bool', 'certificate'=>'OpenSSLCertificate|string', '&w_output'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase'=>'string', 'options='=>'array'], + ], + 'openssl_pkcs12_export_to_file' => [ + 'old' => ['bool', 'certificate'=>'string|resource', 'output_filename'=>'string', 'private_key'=>'string|array|resource', 'passphrase'=>'string', 'options='=>'array'], + 'new' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'output_filename'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'passphrase'=>'string', 'options='=>'array'], + ], + 'openssl_pkcs7_decrypt' => [ + 'old' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource', 'private_key='=>'string|resource|array'], + 'new' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|string', 'private_key='=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string|null'], + ], + 'openssl_pkcs7_encrypt' => [ + 'old' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource|array', 'headers'=>'array', 'flags='=>'int', 'cipher_algo='=>'int'], + 'new' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|list|string', 'headers'=>'array|null', 'flags='=>'int', 'cipher_algo='=>'int'], + ], + 'openssl_pkcs7_sign' => [ + 'old' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource', 'private_key'=>'string|resource|array', 'headers'=>'array', 'flags='=>'int', 'untrusted_certificates_filename='=>'string'], + 'new' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'OpenSSLCertificate|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'headers'=>'array|null', 'flags='=>'int', 'untrusted_certificates_filename='=>'string|null'], + ], + 'openssl_pkcs7_verify' => [ + 'old' => ['bool|int', 'input_filename'=>'string', 'flags'=>'int', 'signers_certificates_filename='=>'string', 'ca_info='=>'array', 'untrusted_certificates_filename='=>'string', 'content='=>'string', 'output_filename='=>'string'], + 'new' => ['bool|int', 'input_filename'=>'string', 'flags'=>'int', 'signers_certificates_filename='=>'?string', 'ca_info='=>'array', 'untrusted_certificates_filename='=>'?string', 'content='=>'?string', 'output_filename='=>'?string'], + ], + 'openssl_pkey_derive' => [ + 'old' => ['string|false', 'public_key'=>'mixed', 'private_key'=>'mixed', 'key_length='=>'?int'], + 'new' => ['string|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'key_length='=>'int'], + ], + 'openssl_pkey_export' => [ + 'old' => ['bool', 'key'=>'resource', '&w_output'=>'string', 'passphrase='=>'string|null', 'options='=>'array'], + 'new' => ['bool', 'key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', '&w_output'=>'string', 'passphrase='=>'string|null', 'options='=>'array|null'], + ], + 'openssl_pkey_export_to_file' => [ + 'old' => ['bool', 'key'=>'resource|string|array', 'output_filename'=>'string', 'passphrase='=>'string|null', 'options='=>'array'], + 'new' => ['bool', 'key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'output_filename'=>'string', 'passphrase='=>'string|null', 'options='=>'array|null'], + ], + 'openssl_pkey_free' => [ + 'old' => ['void', 'key'=>'resource'], + 'new' => ['void', 'key'=>'OpenSSLAsymmetricKey'], + ], + 'openssl_pkey_get_details' => [ + 'old' => ['array|false', 'key'=>'resource'], + 'new' => ['array|false', 'key'=>'OpenSSLAsymmetricKey'], + ], + 'openssl_pkey_get_private' => [ + 'old' => ['resource|false', 'private_key'=>'string', 'passphrase='=>'string'], + 'new' => ['OpenSSLAsymmetricKey|false', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string', 'passphrase='=>'?string'], + ], + 'openssl_pkey_get_public' => [ + 'old' => ['resource|false', 'public_key'=>'resource|string'], + 'new' => ['OpenSSLAsymmetricKey|false', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], + ], + 'openssl_pkey_new' => [ + 'old' => ['resource|false', 'options='=>'array'], + 'new' => ['OpenSSLAsymmetricKey|false', 'options='=>'array|null'], + ], + 'openssl_private_decrypt' => [ + 'old' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'private_key'=>'string|resource|array', 'padding='=>'int'], + 'new' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], + ], + 'openssl_private_encrypt' => [ + 'old' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'private_key'=>'string|resource|array', 'padding='=>'int'], + 'new' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], + ], + 'openssl_public_decrypt' => [ + 'old' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'public_key'=>'string|resource', 'padding='=>'int'], + 'new' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], + ], + 'openssl_public_encrypt' => [ + 'old' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'public_key'=>'string|resource', 'padding='=>'int'], + 'new' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'padding='=>'int'], + ], + 'openssl_seal' => [ + 'old' => ['int|false', 'data'=>'string', '&w_sealed_data'=>'string', '&w_encrypted_keys'=>'array', 'public_key'=>'array', 'cipher_algo='=>'string', '&rw_iv='=>'string'], + 'new' => ['int|false', 'data'=>'string', '&w_sealed_data'=>'string', '&w_encrypted_keys'=>'array', 'public_key'=>'list', 'cipher_algo'=>'string', '&rw_iv='=>'string'], + ], + 'openssl_sign' => [ + 'old' => ['bool', 'data'=>'string', '&w_signature'=>'string', 'private_key'=>'resource|string', 'algorithm='=>'int|string'], + 'new' => ['bool', 'data'=>'string', '&w_signature'=>'string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'algorithm='=>'int|string'], + ], + 'openssl_spki_new' => [ + 'old' => ['?string', 'private_key'=>'resource', 'challenge'=>'string', 'digest_algo='=>'int'], + 'new' => ['string|false', 'private_key'=>'OpenSSLAsymmetricKey', 'challenge'=>'string', 'digest_algo='=>'int'], + ], + 'openssl_verify' => [ + 'old' => ['-1|0|1', 'data'=>'string', 'signature'=>'string', 'public_key'=>'resource|string', 'algorithm='=>'int|string'], + 'new' => ['-1|0|1|false', 'data'=>'string', 'signature'=>'string', 'public_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string', 'algorithm='=>'int|string'], + ], + 'openssl_x509_check_private_key' => [ + 'old' => ['bool', 'certificate'=>'string|resource', 'private_key'=>'string|resource|array'], + 'new' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'private_key'=>'OpenSSLAsymmetricKey|OpenSSLCertificate|array{OpenSSLAsymmetricKey|OpenSSLCertificate|string, string}|string'], + ], + 'openssl_x509_checkpurpose' => [ + 'old' => ['bool|int', 'certificate'=>'string|resource', 'purpose'=>'int', 'ca_info='=>'array', 'untrusted_certificates_file='=>'string'], + 'new' => ['bool|int', 'certificate'=>'OpenSSLCertificate|string', 'purpose'=>'int', 'ca_info='=>'array', 'untrusted_certificates_file='=>'string|null'], + ], + 'openssl_x509_export' => [ + 'old' => ['bool', 'certificate'=>'string|resource', '&w_output'=>'string', 'no_text='=>'bool'], + 'new' => ['bool', 'certificate'=>'OpenSSLCertificate|string', '&w_output'=>'string', 'no_text='=>'bool'], + ], + 'openssl_x509_export_to_file' => [ + 'old' => ['bool', 'certificate'=>'string|resource', 'output_filename'=>'string', 'no_text='=>'bool'], + 'new' => ['bool', 'certificate'=>'OpenSSLCertificate|string', 'output_filename'=>'string', 'no_text='=>'bool'], + ], + 'openssl_x509_fingerprint' => [ + 'old' => ['string|false', 'certificate'=>'string|resource', 'digest_algo='=>'string', 'binary='=>'bool'], + 'new' => ['string|false', 'certificate'=>'OpenSSLCertificate|string', 'digest_algo='=>'string', 'binary='=>'bool'], + ], + 'openssl_x509_free' => [ + 'old' => ['void', 'certificate'=>'resource'], + 'new' => ['void', 'certificate'=>'OpenSSLCertificate'], + ], + 'openssl_x509_parse' => [ + 'old' => ['array|false', 'certificate'=>'string|resource', 'short_names='=>'bool'], + 'new' => ['array|false', 'certificate'=>'OpenSSLCertificate|string', 'short_names='=>'bool'], + ], + 'openssl_x509_read' => [ + 'old' => ['resource|false', 'certificate'=>'string|resource'], + 'new' => ['OpenSSLCertificate|false', 'certificate'=>'OpenSSLCertificate|string'], + ], + 'openssl_x509_verify' => [ + 'old' => ['int', 'certificate'=>'string|resource', 'public_key'=>'string|array|resource'], + 'new' => ['int', 'certificate'=>'string|OpenSSLCertificate', 'public_key'=>'string|OpenSSLCertificate|OpenSSLAsymmetricKey|array'], + ], + 'pack' => [ + 'old' => ['string|false', 'format'=>'string', '...values='=>'mixed'], + 'new' => ['string', 'format'=>'string', '...values='=>'mixed'], + ], + 'parse_str' => [ + 'old' => ['void', 'string'=>'string', '&w_result='=>'array'], + 'new' => ['void', 'string'=>'string', '&w_result'=>'array'], + ], + 'password_hash' => [ + 'old' => ['string|false', 'password'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], + 'new' => ['string', 'password'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], + ], + 'pcntl_async_signals' => [ + 'old' => ['bool', 'enable='=>'bool'], + 'new' => ['bool', 'enable='=>'?bool'], + ], + 'pcntl_exec' => [ + 'old' => ['null|false', 'path'=>'string', 'args='=>'array', 'env_vars='=>'array'], + 'new' => ['false', 'path'=>'string', 'args='=>'array', 'env_vars='=>'array'], + ], + 'pcntl_getpriority' => [ + 'old' => ['int', 'process_id='=>'int', 'mode='=>'int'], + 'new' => ['int', 'process_id='=>'?int', 'mode='=>'int'], + ], + 'pcntl_setpriority' => [ + 'old' => ['bool', 'priority'=>'int', 'process_id='=>'int', 'mode='=>'int'], + 'new' => ['bool', 'priority'=>'int', 'process_id='=>'?int', 'mode='=>'int'], + ], + 'pfsockopen' => [ + 'old' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float'], + 'new' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float'], + ], + 'pg_client_encoding' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_close' => [ + 'old' => ['bool', 'connection='=>'resource'], + 'new' => ['bool', 'connection='=>'?resource'], + ], + 'pg_dbname' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_end_copy' => [ + 'old' => ['bool', 'connection='=>'resource'], + 'new' => ['bool', 'connection='=>'?resource'], + ], + 'pg_last_error' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_lo_write' => [ + 'old' => ['int|false', 'lob'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'lob'=>'resource', 'data'=>'string', 'length='=>'?int'], + ], + 'pg_options' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_ping' => [ + 'old' => ['bool', 'connection='=>'resource'], + 'new' => ['bool', 'connection='=>'?resource'], + ], + 'pg_port' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_trace' => [ + 'old' => ['bool', 'filename'=>'string', 'mode='=>'string', 'connection='=>'resource'], + 'new' => ['bool', 'filename'=>'string', 'mode='=>'string', 'connection='=>'?resource'], + ], + 'pg_tty' => [ + 'old' => ['string', 'connection='=>'resource'], + 'new' => ['string', 'connection='=>'?resource'], + ], + 'pg_untrace' => [ + 'old' => ['bool', 'connection='=>'resource'], + 'new' => ['bool', 'connection='=>'?resource'], + ], + 'pg_version' => [ + 'old' => ['array', 'connection='=>'resource'], + 'new' => ['array', 'connection='=>'?resource'], + ], + 'phpversion' => [ + 'old' => ['string|false', 'extension='=>'string'], + 'new' => ['string|false', 'extension='=>'?string'], + ], + 'proc_get_status' => [ + 'old' => ['array{command: string, pid: int, running: bool, signaled: bool, stopped: bool, exitcode: int, termsig: int, stopsig: int}|false', 'process'=>'resource'], + 'new' => ['array{command: string, pid: int, running: bool, signaled: bool, stopped: bool, exitcode: int, termsig: int, stopsig: int}', 'process'=>'resource'], + ], + 'readline_info' => [ + 'old' => ['mixed', 'var_name='=>'string', 'value='=>'string|int|bool'], + 'new' => ['mixed', 'var_name='=>'?string', 'value='=>'string|int|bool|null'], + ], + 'readline_read_history' => [ + 'old'=> ['bool', 'filename='=>'string'], + 'new'=> ['bool', 'filename='=>'?string'], + ], + 'readline_write_history' => [ + 'old' => ['bool', 'filename='=>'string'], + 'new' => ['bool', 'filename='=>'?string'], + ], + 'sapi_windows_vt100_support' => [ + 'old' => ['bool', 'stream'=>'resource', 'enable='=>'bool'], + 'new' => ['bool', 'stream'=>'resource', 'enable='=>'?bool'], + ], + 'sem_acquire' => [ + 'old' => ['bool', 'semaphore'=>'resource', 'non_blocking='=>'bool'], + 'new' => ['bool', 'semaphore'=>'SysvSemaphore', 'non_blocking='=>'bool'], + ], + 'sem_get' => [ + 'old' => ['resource|false', 'key'=>'int', 'max_acquire='=>'int', 'permissions='=>'int', 'auto_release='=>'bool'], + 'new' => ['SysvSemaphore|false', 'key'=>'int', 'max_acquire='=>'int', 'permissions='=>'int', 'auto_release='=>'bool'], + ], + 'sem_release' => [ + 'old' => ['bool', 'semaphore'=>'resource'], + 'new' => ['bool', 'semaphore'=>'SysvSemaphore'], + ], + 'sem_remove' => [ + 'old' => ['bool', 'semaphore'=>'resource'], + 'new' => ['bool', 'semaphore'=>'SysvSemaphore'], + ], + 'session_cache_expire' => [ + 'old' => ['int', 'value='=>'int'], + 'new' => ['int', 'value='=>'?int'], + ], + 'session_cache_limiter' => [ + 'old' => ['string', 'value='=>'string'], + 'new' => ['string', 'value='=>'?string'], + ], + 'session_id' => [ + 'old' => ['string|false', 'id='=>'string'], + 'new' => ['string|false', 'id='=>'?string'], + ], + 'session_module_name' => [ + 'old' => ['string', 'module='=>'string'], + 'new' => ['string', 'module='=>'?string'], + ], + 'session_name' => [ + 'old' => ['string|false', 'name='=>'string'], + 'new' => ['string|false', 'name='=>'?string'], + ], + 'session_save_path' => [ + 'old' => ['string', 'path='=>'string'], + 'new' => ['string', 'path='=>'?string'], + ], + 'session_set_cookie_params' => [ + 'old' => ['bool', 'lifetime'=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool'], + 'new' => ['bool', 'lifetime'=>'int', 'path='=>'?string', 'domain='=>'?string', 'secure='=>'?bool', 'httponly='=>'?bool'], + ], + 'shm_attach' => [ + 'old' => ['resource|false', 'key'=>'int', 'size='=>'int', 'permissions='=>'int'], + 'new' => ['SysvSharedMemory|false', 'key'=>'int', 'size='=>'?int', 'permissions='=>'int'], + ], + 'shm_detach' => [ + 'old' => ['bool', 'shm'=>'resource'], + 'new' => ['bool', 'shm'=>'SysvSharedMemory'], + ], + 'shm_get_var' => [ + 'old' => ['mixed', 'shm'=>'resource', 'key'=>'int'], + 'new' => ['mixed', 'shm'=>'SysvSharedMemory', 'key'=>'int'], + ], + 'shm_has_var' => [ + 'old' => ['bool', 'shm'=>'resource', 'key'=>'int'], + 'new' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int'], + ], + 'shm_put_var' => [ + 'old' => ['bool', 'shm'=>'resource', 'key'=>'int', 'value'=>'mixed'], + 'new' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int', 'value'=>'mixed'], + ], + 'shm_remove' => [ + 'old' => ['bool', 'shm'=>'resource'], + 'new' => ['bool', 'shm'=>'SysvSharedMemory'], + ], + 'shm_remove_var' => [ + 'old' => ['bool', 'shm'=>'resource', 'key'=>'int'], + 'new' => ['bool', 'shm'=>'SysvSharedMemory', 'key'=>'int'], + ], + 'shmop_close' => [ + 'old' => ['void', 'shmop'=>'resource'], + 'new' => ['void', 'shmop'=>'Shmop'], + ], + 'shmop_delete' => [ + 'old' => ['bool', 'shmop'=>'resource'], + 'new' => ['bool', 'shmop'=>'Shmop'], + ], + 'shmop_open' => [ + 'old' => ['resource|false', 'key'=>'int', 'mode'=>'string', 'permissions'=>'int', 'size'=>'int'], + 'new' => ['Shmop|false', 'key'=>'int', 'mode'=>'string', 'permissions'=>'int', 'size'=>'int'], + ], + 'shmop_read' => [ + 'old' => ['string|false', 'shmop'=>'resource', 'offset'=>'int', 'size'=>'int'], + 'new' => ['string', 'shmop'=>'Shmop', 'offset'=>'int', 'size'=>'int'], + ], + 'shmop_size' => [ + 'old' => ['int', 'shmop'=>'resource'], + 'new' => ['int', 'shmop'=>'Shmop'], + ], + 'shmop_write' => [ + 'old' => ['int|false', 'shmop'=>'resource', 'data'=>'string', 'offset'=>'int'], + 'new' => ['int', 'shmop'=>'Shmop', 'data'=>'string', 'offset'=>'int'], + ], + 'sleep' => [ + 'old' => ['int|false', 'seconds'=>'0|positive-int'], + 'new' => ['int', 'seconds'=>'0|positive-int'], + ], + 'socket_accept' => [ + 'old' => ['resource|false', 'socket'=>'resource'], + 'new' => ['Socket|false', 'socket'=>'Socket'], + ], + 'socket_addrinfo_bind' => [ + 'old' => ['?resource', 'addrinfo'=>'resource'], + 'new' => ['Socket|false', 'address'=>'AddressInfo'], + ], + 'socket_addrinfo_connect' => [ + 'old' => ['resource', 'addrinfo'=>'resource'], + 'new' => ['Socket|false', 'address'=>'AddressInfo'], + ], + 'socket_addrinfo_explain' => [ + 'old' => ['array', 'addrinfo'=>'resource'], + 'new' => ['array', 'address'=>'AddressInfo'], + ], + 'socket_addrinfo_lookup' => [ + 'old' => ['resource[]', 'host'=>'string', 'service='=>'string', 'hints='=>'array'], + 'new' => ['false|AddressInfo[]', 'host'=>'string', 'service='=>'?string', 'hints='=>'array'], + ], + 'socket_bind' => [ + 'old' => ['bool', 'socket'=>'resource', 'address'=>'string', 'port='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', 'address'=>'string', 'port='=>'int'], + ], + 'socket_clear_error' => [ + 'old' => ['void', 'socket='=>'resource'], + 'new' => ['void', 'socket='=>'?Socket'], + ], + 'socket_close' => [ + 'old' => ['void', 'socket'=>'resource'], + 'new' => ['void', 'socket'=>'Socket'], + ], + 'socket_connect' => [ + 'old' => ['bool', 'socket'=>'resource', 'address'=>'string', 'port='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', 'address'=>'string', 'port='=>'?int'], + ], + 'socket_create' => [ + 'old' => ['resource|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], + 'new' => ['Socket|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], + ], + 'socket_create_listen' => [ + 'old' => ['resource|false', 'port'=>'int', 'backlog='=>'int'], + 'new' => ['Socket|false', 'port'=>'int', 'backlog='=>'int'], + ], + 'socket_create_pair' => [ + 'old' => ['bool', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int', '&w_pair'=>'resource[]'], + 'new' => ['bool', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int', '&w_pair'=>'Socket[]'], + ], + 'socket_export_stream' => [ + 'old' => ['resource|false', 'socket'=>'resource'], + 'new' => ['resource|false', 'socket'=>'Socket'], + ], + 'socket_get_option' => [ + 'old' => ['array|int|false', 'socket'=>'resource', 'level'=>'int', 'option'=>'int'], + 'new' => ['array|int|false', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int'], + ], + 'socket_get_status' => [ + 'old' => ['array', 'stream'=>'resource'], + 'new' => ['array', 'stream'=>'Socket'], + ], + 'socket_getopt' => [ + 'old' => ['array|int|false', 'socket'=>'resource', 'level'=>'int', 'option'=>'int'], + 'new' => ['array|int|false', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int'], + ], + 'socket_getpeername' => [ + 'old' => ['bool', 'socket'=>'resource', '&w_address'=>'string', '&w_port='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', '&w_address'=>'string', '&w_port='=>'int'], + ], + 'socket_getsockname' => [ + 'old' => ['bool', 'socket'=>'resource', '&w_address'=>'string', '&w_port='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', '&w_address'=>'string', '&w_port='=>'int'], + ], + 'socket_import_stream' => [ + 'old' => ['resource|false', 'stream'=>'resource'], + 'new' => ['Socket|false', 'stream'=>'resource'], + ], + 'socket_last_error' => [ + 'old' => ['int', 'socket='=>'resource'], + 'new' => ['int', 'socket='=>'?Socket'], + ], + 'socket_listen' => [ + 'old' => ['bool', 'socket'=>'resource', 'backlog='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', 'backlog='=>'int'], + ], + 'socket_read' => [ + 'old' => ['string|false', 'socket'=>'resource', 'length'=>'int', 'mode='=>'int'], + 'new' => ['string|false', 'socket'=>'Socket', 'length'=>'int', 'mode='=>'int'], + ], + 'socket_recv' => [ + 'old' => ['int|false', 'socket'=>'resource', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int'], + ], + 'socket_recvfrom' => [ + 'old' => ['int|false', 'socket'=>'resource', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int', '&w_address'=>'string', '&w_port='=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int', '&w_address'=>'string', '&w_port='=>'int'], + ], + 'socket_recvmsg' => [ + 'old' => ['int|false', 'socket'=>'resource', '&w_message'=>'array', 'flags='=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', '&w_message'=>'array', 'flags='=>'int'], + ], + 'socket_select' => [ + 'old' => ['int|false', '&rw_read'=>'resource[]|null', '&rw_write'=>'resource[]|null', '&rw_except'=>'resource[]|null', 'seconds'=>'int|null', 'microseconds='=>'int'], + 'new' => ['int|false', '&rw_read'=>'Socket[]|null', '&rw_write'=>'Socket[]|null', '&rw_except'=>'Socket[]|null', 'seconds'=>'int|null', 'microseconds='=>'int'], + ], + 'socket_send' => [ + 'old' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length'=>'int', 'flags'=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length'=>'int', 'flags'=>'int'], + ], + 'socket_sendmsg' => [ + 'old' => ['int|false', 'socket'=>'resource', 'message'=>'array', 'flags='=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', 'message'=>'array', 'flags='=>'int'], + ], + 'socket_sendto' => [ + 'old' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length'=>'int', 'flags'=>'int', 'address'=>'string', 'port='=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length'=>'int', 'flags'=>'int', 'address'=>'string', 'port='=>'?int'], + ], + 'socket_set_block' => [ + 'old' => ['bool', 'socket'=>'resource'], + 'new' => ['bool', 'socket'=>'Socket'], + ], + 'socket_set_blocking' => [ + 'old' => ['bool', 'stream'=>'resource', 'enable'=>'bool'], + 'new' => ['bool', 'stream'=>'Socket', 'enable'=>'bool'], + ], + 'socket_set_nonblock' => [ + 'old' => ['bool', 'socket'=>'resource'], + 'new' => ['bool', 'socket'=>'Socket'], + ], + 'socket_set_option' => [ + 'old' => ['bool', 'socket'=>'resource', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + 'new' => ['bool', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + ], + 'socket_set_timeout' => [ + 'old' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], + 'new' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], + ], + 'socket_setopt' => [ + 'old' => ['bool', 'socket'=>'resource', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + 'new' => ['bool', 'socket'=>'Socket', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + ], + 'socket_shutdown' => [ + 'old' => ['bool', 'socket'=>'resource', 'mode='=>'int'], + 'new' => ['bool', 'socket'=>'Socket', 'mode='=>'int'], + ], + 'socket_write' => [ + 'old' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length='=>'int'], + 'new' => ['int|false', 'socket'=>'Socket', 'data'=>'string', 'length='=>'int|null'], + ], + 'socket_wsaprotocol_info_export' => [ + 'old' => ['string|false', 'socket'=>'resource', 'process_id'=>'int'], + 'new' => ['string|false', 'socket'=>'Socket', 'process_id'=>'int'], + ], + 'socket_wsaprotocol_info_import' => [ + 'old' => ['resource|false', 'info_id'=>'string'], + 'new' => ['Socket|false', 'info_id'=>'string'], + ], + 'spl_autoload' => [ + 'old' => ['void', 'class'=>'string', 'file_extensions='=>'string'], + 'new' => ['void', 'class'=>'string', 'file_extensions='=>'?string'], + ], + 'spl_autoload_extensions' => [ + 'old' => ['string', 'file_extensions='=>'string'], + 'new' => ['string', 'file_extensions='=>'?string'], + ], + 'spl_autoload_functions' => [ + 'old' => ['false|list'], + 'new' => ['list'], + ], + 'spl_autoload_register' => [ + 'old' => ['bool', 'callback='=>'callable(string):void', 'throw='=>'bool', 'prepend='=>'bool'], + 'new' => ['bool', 'callback='=>'callable(string):void|null', 'throw='=>'bool', 'prepend='=>'bool'], + ], + 'str_word_count' => [ + 'old' => ['array|int', 'string'=>'string', 'format='=>'int', 'characters='=>'string'], + 'new' => ['array|int', 'string'=>'string', 'format='=>'int', 'characters='=>'?string'], + ], + 'strchr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], + ], + 'strcspn' => [ + 'old' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'int'], + 'new' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'?int'], + ], + 'stream_context_create' => [ + 'old' => ['resource', 'options='=>'array', 'params='=>'array'], + 'new' => ['resource', 'options='=>'?array', 'params='=>'?array'], + ], + 'stream_context_get_default' => [ + 'old' => ['resource', 'options='=>'array'], + 'new' => ['resource', 'options='=>'?array'], + ], + 'stream_copy_to_stream' => [ + 'old' => ['int|false', 'from'=>'resource', 'to'=>'resource', 'length='=>'int', 'offset='=>'int'], + 'new' => ['int|false', 'from'=>'resource', 'to'=>'resource', 'length='=>'?int', 'offset='=>'int'], + ], + 'stream_get_contents' => [ + 'old' => ['string|false', 'stream'=>'resource', 'length='=>'int', 'offset='=>'int'], + 'new' => ['string|false', 'stream'=>'resource', 'length='=>'?int', 'offset='=>'int'], + ], + 'stream_set_chunk_size' => [ + 'old' => ['int|false', 'stream'=>'resource', 'size'=>'int'], + 'new' => ['int', 'stream'=>'resource', 'size'=>'int'], + ], + 'stream_socket_accept' => [ + 'old' => ['resource|false', 'socket'=>'resource', 'timeout='=>'float', '&w_peer_name='=>'string'], + 'new' => ['resource|false', 'socket'=>'resource', 'timeout='=>'?float', '&w_peer_name='=>'string'], + ], + 'stream_socket_client' => [ + 'old' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float', 'flags='=>'int', 'context='=>'resource'], + 'new' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'?float', 'flags='=>'int', 'context='=>'?resource'], + ], + 'stream_socket_enable_crypto' => [ + 'old' => ['int|bool', 'stream'=>'resource', 'enable'=>'bool', 'crypto_method='=>'?int', 'session_stream='=>'resource'], + 'new' => ['int|bool', 'stream'=>'resource', 'enable'=>'bool', 'crypto_method='=>'?int', 'session_stream='=>'?resource'], + ], + 'strftime' => [ + 'old' => ['string|false', 'format'=>'string', 'timestamp='=>'int'], + 'new' => ['string|false', 'format'=>'string', 'timestamp='=>'?int'], + ], + 'strip_tags' => [ + 'old' => ['string', 'string'=>'string', 'allowed_tags='=>'string|list'], + 'new' => ['string', 'string'=>'string', 'allowed_tags='=>'string|list|null'], + ], + 'stripos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + ], + 'stristr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], + ], + 'strpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + ], + 'strrchr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string'], + ], + 'strripos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + ], + 'strrpos' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'new' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + ], + 'strspn' => [ + 'old' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'int'], + 'new' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'?int'], + ], + 'strstr' => [ + 'old' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'new' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool'], + ], + 'strtotime' => [ + 'old' => ['int|false', 'datetime'=>'string', 'baseTimestamp='=>'int'], + 'new' => ['int|false', 'datetime'=>'string', 'baseTimestamp='=>'?int'], + ], + 'substr_compare' => [ + 'old' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset'=>'int', 'length='=>'int', 'case_insensitive='=>'bool'], + 'new' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset'=>'int', 'length='=>'?int', 'case_insensitive='=>'bool'], + ], + 'substr_count' => [ + 'old' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'length='=>'int'], + 'new' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'length='=>'?int'], + ], + 'substr' => [ + 'old' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'int'], + 'new' => ['string', 'string'=>'string', 'offset'=>'int', 'length='=>'?int'], + ], + 'substr_replace' => [ + 'old' => ['string|string[]', 'string'=>'string|string[]', 'replace'=>'string|string[]', 'offset'=>'int|int[]', 'length='=>'int|int[]'], + 'new' => ['string|string[]', 'string'=>'string|string[]', 'replace'=>'string|string[]', 'offset'=>'int|int[]', 'length='=>'int|int[]|null'], + ], + 'tidy_parse_file' => [ + 'old' => ['tidy', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'new' => ['tidy', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], + ], + 'tidy_parse_string' => [ + 'old' => ['tidy', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'new' => ['tidy', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], + ], + 'tidy_repair_file' => [ + 'old' => ['string', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'new' => ['string', 'filename'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string', 'useIncludePath='=>'bool'], + ], + 'tidy_repair_string' => [ + 'old' => ['string', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'new' => ['string', 'string'=>'string', 'config='=>'array|string|null', 'encoding='=>'?string'], + ], + 'timezone_identifiers_list' => [ + 'old' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'?string'], + 'new' => ['list', 'timezoneGroup='=>'int', 'countryCode='=>'?string'], + ], + 'timezone_offset_get' => [ + 'old' => ['int|false', 'object'=>'DateTimeZone', 'datetime'=>'DateTimeInterface'], + 'new' => ['int', 'object'=>'DateTimeZone', 'datetime'=>'DateTimeInterface'], + ], + 'touch' => [ + 'old' => ['bool', 'filename'=>'string', 'mtime='=>'int', 'atime='=>'int'], + 'new' => ['bool', 'filename'=>'string', 'mtime='=>'?int', 'atime='=>'?int'], + ], + 'umask' => [ + 'old' => ['int', 'mask='=>'int'], + 'new' => ['int', 'mask='=>'?int'], + ], + 'unixtojd' => [ + 'old' => ['int', 'timestamp='=>'int'], + 'new' => ['int', 'timestamp='=>'?int'], + ], + 'xml_get_current_byte_index' => [ + 'old' => ['int|false', 'parser'=>'resource'], + 'new' => ['int', 'parser'=>'XMLParser'], + ], + 'xml_get_current_column_number' => [ + 'old' => ['int|false', 'parser'=>'resource'], + 'new' => ['int', 'parser'=>'XMLParser'], + ], + 'xml_get_current_line_number' => [ + 'old' => ['int|false', 'parser'=>'resource'], + 'new' => ['int', 'parser'=>'XMLParser'], + ], + 'xml_get_error_code' => [ + 'old' => ['int|false', 'parser'=>'resource'], + 'new' => ['int', 'parser'=>'XMLParser'], + ], + 'xml_parse' => [ + 'old' => ['int', 'parser'=>'resource', 'data'=>'string', 'is_final='=>'bool'], + 'new' => ['int', 'parser'=>'XMLParser', 'data'=>'string', 'is_final='=>'bool'], + ], + 'xml_parse_into_struct' => [ + 'old' => ['int', 'parser'=>'resource', 'data'=>'string', '&w_values'=>'array', '&w_index='=>'array'], + 'new' => ['int', 'parser'=>'XMLParser', 'data'=>'string', '&w_values'=>'array', '&w_index='=>'array'], + ], + 'xml_parser_create' => [ + 'old' => ['resource', 'encoding='=>'string'], + 'new' => ['XMLParser', 'encoding='=>'?string'], + ], + 'xml_parser_create_ns' => [ + 'old' => ['resource', 'encoding='=>'string', 'separator='=>'string'], + 'new' => ['XMLParser', 'encoding='=>'?string', 'separator='=>'string'], + ], + 'xml_parser_free' => [ + 'old' => ['bool', 'parser'=>'resource'], + 'new' => ['bool', 'parser'=>'XMLParser'], + ], + 'xml_parser_get_option' => [ + 'old' => ['string|false', 'parser'=>'resource', 'option'=>'int'], + 'new' => ['string', 'parser'=>'XMLParser', 'option'=>'int'], + ], + 'xml_parser_set_option' => [ + 'old' => ['bool', 'parser'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'new' => ['bool', 'parser'=>'XMLParser', 'option'=>'int', 'value'=>'mixed'], + ], + 'xml_set_character_data_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_default_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_element_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'start_handler'=>'callable', 'end_handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'start_handler'=>'callable', 'end_handler'=>'callable'], + ], + 'xml_set_end_namespace_decl_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_external_entity_ref_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_notation_decl_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_object' => [ + 'old' => ['true', 'parser'=>'resource', 'object'=>'object'], + 'new' => ['true', 'parser'=>'XMLParser', 'object'=>'object'], + ], + 'xml_set_processing_instruction_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_start_namespace_decl_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xml_set_unparsed_entity_decl_handler' => [ + 'old' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'new' => ['true', 'parser'=>'XMLParser', 'handler'=>'callable'], + ], + 'xmlwriter_end_attribute' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_cdata' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_comment' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_document' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_dtd' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_dtd_attlist' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_dtd_element' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_dtd_entity' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_element' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_end_pi' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_flush' => [ + 'old' => ['string|int|false', 'writer'=>'resource', 'empty='=>'bool'], + 'new' => ['string|int', 'writer'=>'XMLWriter', 'empty='=>'bool'], + ], + 'xmlwriter_full_end_element' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_open_memory' => [ + 'old' => ['resource|false'], + 'new' => ['XMLWriter|false'], + ], + 'xmlwriter_open_uri' => [ + 'old' => ['resource|false', 'uri'=>'string'], + 'new' => ['XMLWriter|false', 'uri'=>'string'], + ], + 'xmlwriter_output_memory' => [ + 'old' => ['string', 'writer'=>'resource', 'flush='=>'bool'], + 'new' => ['string', 'writer'=>'XMLWriter', 'flush='=>'bool'], + ], + 'xmlwriter_set_indent' => [ + 'old' => ['bool', 'writer'=>'resource', 'enable'=>'bool'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'enable'=>'bool'], + ], + 'xmlwriter_set_indent_string' => [ + 'old' => ['bool', 'writer'=>'resource', 'indentation'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'indentation'=>'string'], + ], + 'xmlwriter_start_attribute' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], + ], + 'xmlwriter_start_attribute_ns' => [ + 'old' => ['bool', 'writer'=>'resource', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + ], + 'xmlwriter_start_cdata' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_start_comment' => [ + 'old' => ['bool', 'writer'=>'resource'], + 'new' => ['bool', 'writer'=>'XMLWriter'], + ], + 'xmlwriter_start_document' => [ + 'old' => ['bool', 'writer'=>'resource', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], + ], + 'xmlwriter_start_dtd' => [ + 'old' => ['bool', 'writer'=>'resource', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], + ], + 'xmlwriter_start_dtd_attlist' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], + ], + 'xmlwriter_start_dtd_element' => [ + 'old' => ['bool', 'writer'=>'resource', 'qualifiedName'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'qualifiedName'=>'string'], + ], + 'xmlwriter_start_dtd_entity' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'isParam'=>'bool'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'isParam'=>'bool'], + ], + 'xmlwriter_start_element' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string'], + ], + 'xmlwriter_start_element_ns' => [ + 'old' => ['bool', 'writer'=>'resource', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + ], + 'xmlwriter_start_pi' => [ + 'old' => ['bool', 'writer'=>'resource', 'target'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'target'=>'string'], + ], + 'xmlwriter_text' => [ + 'old' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], + ], + 'xmlwriter_write_attribute' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'value'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'value'=>'string'], + ], + 'xmlwriter_write_attribute_ns' => [ + 'old' => ['bool', 'writer'=>'resource', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + ], + 'xmlwriter_write_cdata' => [ + 'old' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], + ], + 'xmlwriter_write_comment' => [ + 'old' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], + ], + 'xmlwriter_write_dtd' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], + ], + 'xmlwriter_write_dtd_attlist' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string'], + ], + 'xmlwriter_write_dtd_element' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string'], + ], + 'xmlwriter_write_dtd_entity' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string', 'isParam'=>'bool', 'publicId'=>'string', 'systemId'=>'string', 'notationData'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content'=>'string', 'isParam='=>'bool', 'publicId='=>'?string', 'systemId='=>'?string', 'notationData='=>'?string'], + ], + 'xmlwriter_write_element' => [ + 'old' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'name'=>'string', 'content='=>'?string'], + ], + 'xmlwriter_write_element_ns' => [ + 'old' => ['bool', 'writer'=>'resource', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'string', 'content'=>'?string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'content='=>'?string'], + ], + 'xmlwriter_write_pi' => [ + 'old' => ['bool', 'writer'=>'resource', 'target'=>'string', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'target'=>'string', 'content'=>'string'], + ], + 'xmlwriter_write_raw' => [ + 'old' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'new' => ['bool', 'writer'=>'XMLWriter', 'content'=>'string'], + ], + 'ZipArchive::addEmptyDir' => [ + 'old' => ['bool', 'dirname'=>'string'], + 'new' => ['bool', 'dirname'=>'string', 'flags='=>'int'], + ], + 'ZipArchive::addFile' => [ + 'old' => ['bool', 'filepath'=>'string', 'entryname='=>'string', 'start='=>'int', 'length='=>'int'], + 'new' => ['bool', 'filepath'=>'string', 'entryname='=>'string', 'start='=>'int', 'length='=>'int', 'flags='=>'int'], + ], + 'ZipArchive::addFromString' => [ + 'old' => ['bool', 'name'=>'string', 'content'=>'string'], + 'new' => ['bool', 'name'=>'string', 'content'=>'string', 'flags='=>'int'], + ], + ], + 'removed' => [ + 'PDOStatement::setFetchMode\'1' => ['bool', 'fetch_column'=>'int', 'colno'=>'int'], + 'PDOStatement::setFetchMode\'2' => ['bool', 'fetch_class'=>'int', 'classname'=>'string', 'ctorargs'=>'array'], + 'PDOStatement::setFetchMode\'3' => ['bool', 'fetch_into'=>'int', 'object'=>'object'], + 'ReflectionType::isBuiltin' => ['bool'], + 'SplFileObject::fgetss' => ['string|false', 'allowable_tags='=>'string'], + 'create_function' => ['string', 'args'=>'string', 'code'=>'string'], + 'each' => ['array{0:int|string,key:int|string,1:mixed,value:mixed}', '&r_arr'=>'array'], + 'fgetss' => ['string|false', 'fp'=>'resource', 'length='=>'int', 'allowable_tags='=>'string'], + 'gmp_random' => ['GMP', 'limiter='=>'int'], + 'gzgetss' => ['string|false', 'zp'=>'resource', 'length'=>'int', 'allowable_tags='=>'string'], + 'image2wbmp' => ['bool', 'im'=>'resource', 'filename='=>'?string', 'threshold='=>'int'], + 'jpeg2wbmp' => ['bool', 'jpegname'=>'string', 'wbmpname'=>'string', 'dest_height'=>'int', 'dest_width'=>'int', 'threshold'=>'int'], + 'ldap_control_paged_result' => ['bool', 'link_identifier'=>'resource', 'pagesize'=>'int', 'iscritical='=>'bool', 'cookie='=>'string'], + 'ldap_control_paged_result_response' => ['bool', 'link_identifier'=>'resource', 'result_identifier'=>'resource', '&w_cookie'=>'string', '&w_estimated'=>'int'], + 'ldap_sort' => ['bool', 'link_identifier'=>'resource', 'result_identifier'=>'resource', 'sortfilter'=>'string'], + 'number_format\'1' => ['string', 'num'=>'float|int', 'decimals'=>'int', 'decimal_separator'=>'?string', 'thousands_separator'=>'?string'], + 'png2wbmp' => ['bool', 'pngname'=>'string', 'wbmpname'=>'string', 'dest_height'=>'int', 'dest_width'=>'int', 'threshold'=>'int'], + 'read_exif_data' => ['array', 'filename'=>'string', 'sections_needed='=>'string', 'sub_arrays='=>'bool', 'read_thumbnail='=>'bool'], + 'Reflection::export' => ['?string', 'r'=>'reflector', 'return='=>'bool'], + 'ReflectionClass::export' => ['?string', 'argument'=>'string|object', 'return='=>'bool'], + 'ReflectionClassConstant::export' => ['string', 'class'=>'mixed', 'name'=>'string', 'return='=>'bool'], + 'ReflectionExtension::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionFunction::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionFunctionAbstract::export' => ['?string'], + 'ReflectionMethod::export' => ['?string', 'class'=>'string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionObject::export' => ['?string', 'argument'=>'object', 'return='=>'bool'], + 'ReflectionParameter::export' => ['?string', 'function'=>'string', 'parameter'=>'string', 'return='=>'bool'], + 'ReflectionProperty::export' => ['?string', 'class'=>'mixed', 'name'=>'string', 'return='=>'bool'], + 'ReflectionZendExtension::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'SimpleXMLIterator::rewind' => ['void'], + 'SimpleXMLIterator::valid' => ['bool'], + 'SimpleXMLIterator::current' => ['?SimpleXMLIterator'], + 'SimpleXMLIterator::key' => ['string|false'], + 'SimpleXMLIterator::next' => ['void'], + 'SimpleXMLIterator::hasChildren' => ['bool'], + 'SimpleXMLIterator::getChildren' => ['?SimpleXMLIterator'], + 'SplTempFileObject::fgetss' => ['string', 'allowable_tags='=>'string'], + 'xmlrpc_decode' => ['mixed', 'xml'=>'string', 'encoding='=>'string'], + 'xmlrpc_decode_request' => ['?array', 'xml'=>'string', '&w_method'=>'string', 'encoding='=>'string'], + 'xmlrpc_encode' => ['string', 'value'=>'mixed'], + 'xmlrpc_encode_request' => ['string', 'method'=>'string', 'params'=>'mixed', 'output_options='=>'array'], + 'xmlrpc_get_type' => ['string', 'value'=>'mixed'], + 'xmlrpc_is_fault' => ['bool', 'arg'=>'array'], + 'xmlrpc_parse_method_descriptions' => ['array', 'xml'=>'string'], + 'xmlrpc_server_add_introspection_data' => ['int', 'server'=>'resource', 'desc'=>'array'], + 'xmlrpc_server_call_method' => ['string', 'server'=>'resource', 'xml'=>'string', 'user_data'=>'mixed', 'output_options='=>'array'], + 'xmlrpc_server_create' => ['resource'], + 'xmlrpc_server_destroy' => ['int', 'server'=>'resource'], + 'xmlrpc_server_register_introspection_callback' => ['bool', 'server'=>'resource', 'function'=>'string'], + 'xmlrpc_server_register_method' => ['bool', 'server'=>'resource', 'method_name'=>'string', 'function'=>'string'], + 'xmlrpc_set_type' => ['bool', '&rw_value'=>'string|DateTime', 'type'=>'string'], + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_81_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_81_delta.php new file mode 100644 index 00000000..6d76650b --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_81_delta.php @@ -0,0 +1,1194 @@ + [ + 'array_is_list' => ['bool', 'array' => 'array'], + 'enum_exists' => ['bool', 'enum' => 'string', 'autoload=' => 'bool'], + 'fsync' => ['bool', 'stream' => 'resource'], + 'fdatasync' => ['bool', 'stream' => 'resource'], + 'imageavif' => ['bool', 'image'=>'GdImage', 'file='=>'resource|string|null', 'quality='=>'int', 'speed='=>'int'], + 'imagecreatefromavif' => ['false|GdImage', 'filename'=>'string'], + 'mysqli_fetch_column' => ['null|int|float|string|false', 'result'=>'mysqli_result', 'column='=>'int'], + 'mysqli_result::fetch_column' => ['null|int|float|string|false', 'column='=>'int'], + 'CURLStringFile::__construct' => ['void', 'data'=>'string', 'postname'=>'string', 'mime='=>'string'], + 'Fiber::__construct' => ['void', 'callback'=>'callable'], + 'Fiber::start' => ['mixed', '...args'=>'mixed'], + 'Fiber::resume' => ['mixed', 'value='=>'null|mixed'], + 'Fiber::throw' => ['mixed', 'exception'=>'Throwable'], + 'Fiber::isStarted' => ['bool'], + 'Fiber::isSuspended' => ['bool'], + 'Fiber::isRunning' => ['bool'], + 'Fiber::isTerminated' => ['bool'], + 'Fiber::getReturn' => ['mixed'], + 'Fiber::getCurrent' => ['?self'], + 'Fiber::suspend' => ['mixed', 'value='=>'null|mixed'], + 'FiberError::__construct' => ['void'], + 'GMP::__serialize' => ['array'], + 'GMP::__unserialize' => ['void', 'data'=>'array'], + 'ReflectionClass::isEnum' => ['bool'], + 'ReflectionEnum::getBackingType' => ['?ReflectionType'], + 'ReflectionEnum::getCase' => ['ReflectionEnumUnitCase', 'name' => 'string'], + 'ReflectionEnum::getCases' => ['list'], + 'ReflectionEnum::hasCase' => ['bool', 'name' => 'string'], + 'ReflectionEnum::isBacked' => ['bool'], + 'ReflectionEnumUnitCase::getEnum' => ['ReflectionEnum'], + 'ReflectionEnumUnitCase::getValue' => ['UnitEnum'], + 'ReflectionEnumBackedCase::getBackingValue' => ['string|int'], + 'ReflectionFunctionAbstract::getTentativeReturnType' => ['?ReflectionType'], + 'ReflectionFunctionAbstract::hasTentativeReturnType' => ['bool'], + 'ReflectionFunctionAbstract::isStatic' => ['bool'], + 'ReflectionObject::isEnum' => ['bool'], + 'sodium_crypto_stream_xchacha20' => ['non-empty-string', 'length'=>'positive-int', 'nonce'=>'non-empty-string', 'key'=>'non-empty-string'], + 'sodium_crypto_stream_xchacha20_keygen' => ['non-empty-string'], + 'sodium_crypto_stream_xchacha20_xor' => ['string', 'message'=>'string', 'nonce'=>'non-empty-string', 'key'=>'non-empty-string'], + ], + + 'changed' => [ + 'DOMDocument::createComment' => [ + 'old' => ['DOMComment|false', 'data'=>'string'], + 'new' => ['DOMComment', 'data'=>'string'], + ], + 'DOMDocument::createDocumentFragment' => [ + 'old' => ['DOMDocumentFragment|false'], + 'new' => ['DOMDocumentFragment'], + ], + 'SplFileObject::fputcsv' => [ + 'old' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'new' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string'], + ], + 'SplTempFileObject::fputcsv' => [ + 'old' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'new' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string'], + ], + 'finfo_buffer' => [ + 'old' => ['string|false', 'finfo'=>'resource', 'string'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'new' => ['string|false', 'finfo'=>'finfo', 'string'=>'string', 'flags='=>'int', 'context='=>'resource'], + ], + 'finfo_close' => [ + 'old' => ['bool', 'finfo'=>'resource'], + 'new' => ['bool', 'finfo'=>'finfo'], + ], + 'finfo_file' => [ + 'old' => ['string|false', 'finfo'=>'resource', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'new' => ['string|false', 'finfo'=>'finfo', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], + ], + 'finfo_open' => [ + 'old' => ['resource|false', 'flags='=>'int', 'magic_database='=>'?string'], + 'new' => ['finfo|false', 'flags='=>'int', 'magic_database='=>'?string'], + ], + 'finfo_set_flags' => [ + 'old' => ['bool', 'finfo'=>'resource', 'flags'=>'int'], + 'new' => ['bool', 'finfo'=>'finfo', 'flags'=>'int'], + ], + 'fputcsv' => [ + 'old' => ['int|false', 'stream'=>'resource', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'new' => ['int|false', 'stream'=>'resource', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string', 'eol='=>'string'], + ], + 'ftp_connect' => [ + 'old' => ['resource|false', 'hostname' => 'string', 'port=' => 'int', 'timeout=' => 'int'], + 'new' => ['FTP\Connection|false', 'hostname' => 'string', 'port=' => 'int', 'timeout=' => 'int'], + ], + 'ftp_ssl_connect' => [ + 'old' => ['resource|false', 'hostname' => 'string', 'port=' => 'int', 'timeout=' => 'int'], + 'new' => ['FTP\Connection|false', 'hostname' => 'string', 'port=' => 'int', 'timeout=' => 'int'], + ], + 'ftp_login' => [ + 'old' => ['bool', 'ftp' => 'resource', 'username' => 'string', 'password' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'username' => 'string', 'password' => 'string'], + ], + 'ftp_pwd' => [ + 'old' => ['string|false', 'ftp' => 'resource'], + 'new' => ['string|false', 'ftp' => 'FTP\Connection'], + ], + 'ftp_cdup' => [ + 'old' => ['bool', 'ftp' => 'resource'], + 'new' => ['bool', 'ftp' => 'FTP\Connection'], + ], + 'ftp_chdir' => [ + 'old' => ['bool', 'ftp' => 'resource', 'directory' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'directory' => 'string'], + ], + 'ftp_exec' => [ + 'old' => ['bool', 'ftp' => 'resource', 'command' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'command' => 'string'], + ], + 'ftp_raw' => [ + 'old' => ['?array', 'ftp' => 'resource', 'command' => 'string'], + 'new' => ['?array', 'ftp' => 'FTP\Connection', 'command' => 'string'], + ], + 'ftp_mkdir' => [ + 'old' => ['string|false', 'ftp' => 'resource', 'directory' => 'string'], + 'new' => ['string|false', 'ftp' => 'FTP\Connection', 'directory' => 'string'], + ], + 'ftp_rmdir' => [ + 'old' => ['bool', 'ftp' => 'resource', 'directory' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'directory' => 'string'], + ], + 'ftp_chmod' => [ + 'old' => ['int|false', 'ftp' => 'resource', 'permissions' => 'int', 'filename' => 'string'], + 'new' => ['int|false', 'ftp' => 'FTP\Connection', 'permissions' => 'int', 'filename' => 'string'], + ], + 'ftp_alloc' => [ + 'old' => ['bool', 'ftp' => 'resource', 'size' => 'int', '&w_response=' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'size' => 'int', '&w_response=' => 'string'], + ], + 'ftp_nlist' => [ + 'old' => ['array|false', 'ftp' => 'resource', 'directory' => 'string'], + 'new' => ['array|false', 'ftp' => 'FTP\Connection', 'directory' => 'string'], + ], + 'ftp_rawlist' => [ + 'old' => ['array|false', 'ftp' => 'resource', 'directory' => 'string', 'recursive=' => 'bool'], + 'new' => ['array|false', 'ftp' => 'FTP\Connection', 'directory' => 'string', 'recursive=' => 'bool'], + ], + 'ftp_mlsd' => [ + 'old' => ['array|false', 'ftp' => 'resource', 'directory' => 'string'], + 'new' => ['array|false', 'ftp' => 'FTP\Connection', 'directory' => 'string'], + ], + 'ftp_systype' => [ + 'old' => ['string|false', 'ftp' => 'resource'], + 'new' => ['string|false', 'ftp' => 'FTP\Connection'], + ], + 'ftp_fget' => [ + 'old' => ['bool', 'ftp' => 'resource', 'stream' => 'resource', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'stream' => 'resource', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_nb_fget' => [ + 'old' => ['int', 'ftp' => 'resource', 'stream' => 'resource', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'stream' => 'resource', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_pasv' => [ + 'old' => ['bool', 'ftp' => 'resource', 'enable' => 'bool'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'enable' => 'bool'], + ], + 'ftp_get' => [ + 'old' => ['bool', 'ftp' => 'resource', 'local_filename' => 'string', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'local_filename' => 'string', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_nb_get' => [ + 'old' => ['int', 'ftp' => 'resource', 'local_filename' => 'string', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'local_filename' => 'string', 'remote_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_nb_continue' => [ + 'old' => ['int', 'ftp' => 'resource'], + 'new' => ['int', 'ftp' => 'FTP\Connection'], + ], + 'ftp_fput' => [ + 'old' => ['bool', 'ftp' => 'resource', 'remote_filename' => 'string', 'stream' => 'resource', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'remote_filename' => 'string', 'stream' => 'resource', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_nb_fput' => [ + 'old' => ['int', 'ftp' => 'resource', 'remote_filename' => 'string', 'stream' => 'resource', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'remote_filename' => 'string', 'stream' => 'resource', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_put' => [ + 'old' => ['bool', 'ftp' => 'resource', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_append' => [ + 'old' => ['bool', 'ftp' => 'resource', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int'], + ], + 'ftp_nb_put' => [ + 'old' => ['int', 'ftp' => 'resource', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'remote_filename' => 'string', 'local_filename' => 'string', 'mode=' => 'int', 'offset=' => 'int'], + ], + 'ftp_size' => [ + 'old' => ['int', 'ftp' => 'resource', 'filename' => 'string'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'filename' => 'string'], + ], + 'ftp_mdtm' => [ + 'old' => ['int', 'ftp' => 'resource', 'filename' => 'string'], + 'new' => ['int', 'ftp' => 'FTP\Connection', 'filename' => 'string'], + ], + 'ftp_rename' => [ + 'old' => ['bool', 'ftp' => 'resource', 'from' => 'string', 'to' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'from' => 'string', 'to' => 'string'], + ], + 'ftp_delete' => [ + 'old' => ['bool', 'ftp' => 'resource', 'filename' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'filename' => 'string'], + ], + 'ftp_site' => [ + 'old' => ['bool', 'ftp' => 'resource', 'command' => 'string'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'command' => 'string'], + ], + 'ftp_close' => [ + 'old' => ['bool', 'ftp' => 'resource'], + 'new' => ['bool', 'ftp' => 'FTP\Connection'], + ], + 'ftp_quit' => [ + 'old' => ['bool', 'ftp' => 'resource'], + 'new' => ['bool', 'ftp' => 'FTP\Connection'], + ], + 'ftp_set_option' => [ + 'old' => ['bool', 'ftp' => 'resource', 'option' => 'int', 'value' => 'mixed'], + 'new' => ['bool', 'ftp' => 'FTP\Connection', 'option' => 'int', 'value' => 'mixed'], + ], + 'ftp_get_option' => [ + 'old' => ['int|false', 'ftp' => 'resource', 'option' => 'int'], + 'new' => ['int|false', 'ftp' => 'FTP\Connection', 'option' => 'int'], + ], + 'hash' => [ + 'old' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool'], + 'new' => ['non-empty-string', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool', 'options='=>'array{seed:scalar}'], + ], + 'hash_file' => [ + 'old' => ['non-empty-string|false', 'algo'=>'string', 'filename'=>'string', 'binary='=>'bool'], + 'new' => ['non-empty-string|false', 'algo'=>'string', 'filename'=>'string', 'binary='=>'bool', 'options='=>'array{seed:scalar}'], + ], + 'hash_init' => [ + 'old' => ['HashContext', 'algo'=>'string', 'flags='=>'int', 'key='=>'string'], + 'new' => ['HashContext', 'algo'=>'string', 'flags='=>'int', 'key='=>'string', 'options='=>'array{seed:scalar}'], + ], + 'imageloadfont' => [ + 'old' => ['int|false', 'filename'=>'string'], + 'new' => ['GdFont|false', 'filename'=>'string'], + ], + 'imap_append' => [ + 'old' => ['bool', 'imap'=>'resource', 'folder'=>'string', 'message'=>'string', 'options='=>'?string', 'internal_date='=>'?string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'folder'=>'string', 'message'=>'string', 'options='=>'?string', 'internal_date='=>'?string'], + ], + 'imap_body' => [ + 'old' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'new' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], + ], + 'imap_bodystruct' => [ + 'old' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string'], + 'new' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string'], + ], + 'imap_check' => [ + 'old' => ['stdClass|false', 'imap'=>'resource'], + 'new' => ['stdClass|false', 'imap'=>'IMAP\Connection'], + ], + 'imap_clearflag_full' => [ + 'old' => ['bool', 'imap'=>'resource', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + ], + 'imap_close' => [ + 'old' => ['bool', 'imap'=>'resource', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'flags='=>'int'], + ], + 'imap_create' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_createmailbox' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_delete' => [ + 'old' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'flags='=>'int'], + ], + 'imap_deletemailbox' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_expunge' => [ + 'old' => ['bool', 'imap'=>'resource'], + 'new' => ['bool', 'imap'=>'IMAP\Connection'], + ], + 'imap_fetch_overview' => [ + 'old' => ['array|false', 'imap'=>'resource', 'sequence'=>'string', 'flags='=>'int'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flags='=>'int'], + ], + 'imap_fetchbody' => [ + 'old' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + 'new' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + ], + 'imap_fetchheader' => [ + 'old' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'new' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], + ], + 'imap_fetchmime' => [ + 'old' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + 'new' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + ], + 'imap_fetchstructure' => [ + 'old' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'new' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], + ], + 'imap_fetchtext' => [ + 'old' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'new' => ['string|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'flags='=>'int'], + ], + 'imap_gc' => [ + 'old' => ['bool', 'imap'=>'resource', 'flags'=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'flags'=>'int'], + ], + 'imap_get_quota' => [ + 'old' => ['array|false', 'imap'=>'resource', 'quota_root'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'quota_root'=>'string'], + ], + 'imap_get_quotaroot' => [ + 'old' => ['array|false', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_getacl' => [ + 'old' => ['array|false', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_getmailboxes' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_getsubscribed' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_headerinfo' => [ + 'old' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int'], + 'new' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int'], + ], + 'imap_headers' => [ + 'old' => ['array|false', 'imap'=>'resource'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection'], + ], + 'imap_list' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_listmailbox' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_listscan' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + ], + 'imap_listsubscribed' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_lsub' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string'], + ], + 'imap_mail_copy' => [ + 'old' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + ], + 'imap_mail_move' => [ + 'old' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + ], + 'imap_mailboxmsginfo' => [ + 'old' => ['stdClass', 'imap'=>'resource'], + 'new' => ['stdClass', 'imap'=>'IMAP\Connection'], + ], + 'imap_msgno' => [ + 'old' => ['int', 'imap'=>'resource', 'message_uid'=>'int'], + 'new' => ['int', 'imap'=>'IMAP\Connection', 'message_uid'=>'int'], + ], + 'imap_num_msg' => [ + 'old' => ['int|false', 'imap'=>'resource'], + 'new' => ['int|false', 'imap'=>'IMAP\Connection'], + ], + 'imap_num_recent' => [ + 'old' => ['int', 'imap'=>'resource'], + 'new' => ['int', 'imap'=>'IMAP\Connection'], + ], + 'imap_open' => [ + 'old' => ['resource|false', 'mailbox'=>'string', 'user'=>'string', 'password'=>'string', 'flags='=>'int', 'retries='=>'int', 'options='=>'array'], + 'new' => ['IMAP\Connection|false', 'mailbox'=>'string', 'user'=>'string', 'password'=>'string', 'flags='=>'int', 'retries='=>'int', 'options='=>'array'], + ], + 'imap_ping' => [ + 'old' => ['bool', 'imap'=>'resource'], + 'new' => ['bool', 'imap'=>'IMAP\Connection'], + ], + 'imap_rename' => [ + 'old' => ['bool', 'imap'=>'resource', 'from'=>'string', 'to'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'from'=>'string', 'to'=>'string'], + ], + 'imap_renamemailbox' => [ + 'old' => ['bool', 'imap'=>'resource', 'from'=>'string', 'to'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'from'=>'string', 'to'=>'string'], + ], + 'imap_reopen' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string', 'flags='=>'int', 'retries='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'flags='=>'int', 'retries='=>'int'], + ], + 'imap_savebody' => [ + 'old' => ['bool', 'imap'=>'resource', 'file'=>'string|resource', 'message_num'=>'int', 'section='=>'string', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'file'=>'string|resource', 'message_num'=>'int', 'section='=>'string', 'flags='=>'int'], + ], + 'imap_scan' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + ], + 'imap_scanmailbox' => [ + 'old' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + ], + 'imap_search' => [ + 'old' => ['array|false', 'imap'=>'resource', 'criteria'=>'string', 'flags='=>'int', 'charset='=>'string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'criteria'=>'string', 'flags='=>'int', 'charset='=>'string'], + ], + 'imap_set_quota' => [ + 'old' => ['bool', 'imap'=>'resource', 'quota_root'=>'string', 'mailbox_size'=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'quota_root'=>'string', 'mailbox_size'=>'int'], + ], + 'imap_setacl' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string', 'user_id'=>'string', 'rights'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'user_id'=>'string', 'rights'=>'string'], + ], + 'imap_setflag_full' => [ + 'old' => ['bool', 'imap'=>'resource', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + ], + 'imap_sort' => [ + 'old' => ['array|false', 'imap'=>'resource', 'criteria'=>'int', 'reverse'=>'bool', 'flags='=>'int', 'search_criteria='=>'?string', 'charset='=>'?string'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'criteria'=>'int', 'reverse'=>'bool', 'flags='=>'int', 'search_criteria='=>'?string', 'charset='=>'?string'], + ], + 'imap_status' => [ + 'old' => ['stdClass|false', 'imap'=>'resource', 'mailbox'=>'string', 'flags'=>'int'], + 'new' => ['stdClass|false', 'imap'=>'IMAP\Connection', 'mailbox'=>'string', 'flags'=>'int'], + ], + 'imap_subscribe' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'imap_thread' => [ + 'old' => ['array|false', 'imap'=>'resource', 'flags='=>'int'], + 'new' => ['array|false', 'imap'=>'IMAP\Connection', 'flags='=>'int'], + ], + 'imap_uid' => [ + 'old' => ['int|false', 'imap'=>'resource', 'message_num'=>'int'], + 'new' => ['int|false', 'imap'=>'IMAP\Connection', 'message_num'=>'int'], + ], + 'imap_undelete' => [ + 'old' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'flags='=>'int'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'message_nums'=>'string', 'flags='=>'int'], + ], + 'imap_unsubscribe' => [ + 'old' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'new' => ['bool', 'imap'=>'IMAP\Connection', 'mailbox'=>'string'], + ], + 'ini_alter' => [ + 'old' => ['string|false', 'option'=>'string', 'value'=>'string'], + 'new' => ['string|false', 'option'=>'string', 'value'=>'string|int|float|bool|null'], + ], + 'ini_set' => [ + 'old' => ['string|false', 'option'=>'string', 'value'=>'string'], + 'new' => ['string|false', 'option'=>'string', 'value'=>'string|int|float|bool|null'], + ], + 'IntlDateFormatter::__construct' => [ + 'old' => ['void', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'new' => ['void', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + ], + 'IntlDateFormatter::create' => [ + 'old' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'new' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType='=>'int', 'timeType='=>'int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + ], + 'ldap_add' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_add_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_bind' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn='=>'string|null', 'password='=>'string|null'], + ], + 'ldap_bind_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'?array'], + ], + 'ldap_close' => [ + 'old' => ['bool', 'ldap'=>'resource'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection'], + ], + 'ldap_compare' => [ + 'old' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'?array'], + 'new' => ['bool|int', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string', 'controls='=>'?array'], + ], + 'ldap_connect' => [ + 'old' => ['resource|false', 'uri='=>'?string', 'port='=>'int', 'wallet='=>'string', 'password='=>'string', 'auth_mode='=>'int'], + 'new' => ['LDAP\Connection|false', 'uri='=>'?string', 'port='=>'int', 'wallet='=>'string', 'password='=>'string', 'auth_mode='=>'int'], + ], + 'ldap_count_entries' => [ + 'old' => ['int', 'ldap'=>'resource', 'result'=>'resource'], + 'new' => ['int', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], + ], + 'ldap_delete' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'controls='=>'?array'], + ], + 'ldap_delete_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'controls='=>'?array'], + ], + 'ldap_errno' => [ + 'old' => ['int', 'ldap'=>'resource'], + 'new' => ['int', 'ldap'=>'LDAP\Connection'], + ], + 'ldap_error' => [ + 'old' => ['string', 'ldap'=>'resource'], + 'new' => ['string', 'ldap'=>'LDAP\Connection'], + ], + 'ldap_exop' => [ + 'old' => ['resource|bool', 'ldap'=>'resource', 'request_oid'=>'string', 'request_data='=>'?string', 'controls='=>'array|null', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + 'new' => ['LDAP\Result|bool', 'ldap'=>'LDAP\Connection', 'request_oid'=>'string', 'request_data='=>'?string', 'controls='=>'?array', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + ], + 'ldap_exop_passwd' => [ + 'old' => ['bool|string', 'ldap'=>'resource', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array|null'], + 'new' => ['bool|string', 'ldap'=>'LDAP\Connection', 'user='=>'string', 'old_password='=>'string', 'new_password='=>'string', '&w_controls='=>'array|null'], + ], + 'ldap_exop_refresh' => [ + 'old' => ['int|false', 'ldap'=>'resource', 'dn'=>'string', 'ttl'=>'int'], + 'new' => ['int|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'ttl'=>'int'], + ], + 'ldap_exop_whoami' => [ + 'old' => ['string|false', 'ldap'=>'resource'], + 'new' => ['string|false', 'ldap'=>'LDAP\Connection'], + ], + 'ldap_first_attribute' => [ + 'old' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_first_entry' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'result'=>'resource'], + 'new' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], + ], + 'ldap_first_reference' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'result'=>'resource'], + 'new' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], + ], + 'ldap_free_result' => [ + 'old' => ['bool', 'ldap'=>'resource'], + 'new' => ['bool', 'result'=>'LDAP\Result'], + ], + 'ldap_get_attributes' => [ + 'old' => ['array', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['array', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_get_dn' => [ + 'old' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_get_entries' => [ + 'old' => ['array|false', 'ldap'=>'resource', 'result'=>'resource'], + 'new' => ['array|false', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result'], + ], + 'ldap_get_option' => [ + 'old' => ['bool', 'ldap'=>'resource', 'option'=>'int', '&w_value='=>'array|string|int'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'option'=>'int', '&w_value='=>'array|string|int'], + ], + 'ldap_get_values' => [ + 'old' => ['array|false', 'ldap'=>'resource', 'entry'=>'resource', 'attribute'=>'string'], + 'new' => ['array|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', 'attribute'=>'string'], + ], + 'ldap_get_values_len' => [ + 'old' => ['array|false', 'ldap'=>'resource', 'entry'=>'resource', 'attribute'=>'string'], + 'new' => ['array|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', 'attribute'=>'string'], + ], + 'ldap_list' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + 'new' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_mod_add' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_add_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_del' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_del_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_replace' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_mod_replace_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_modify' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'entry'=>'array', 'controls='=>'?array'], + ], + 'ldap_modify_batch' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'modifications_info'=>'array', 'controls='=>'?array'], + ], + 'ldap_next_attribute' => [ + 'old' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['string|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_next_entry' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_next_reference' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'new' => ['LDAP\ResultEntry|false', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry'], + ], + 'ldap_parse_exop' => [ + 'old' => ['bool', 'ldap'=>'resource', 'result'=>'resource', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result', '&w_response_data='=>'string', '&w_response_oid='=>'string'], + ], + 'ldap_parse_reference' => [ + 'old' => ['bool', 'ldap'=>'resource', 'entry'=>'resource', '&w_referrals'=>'array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'entry'=>'LDAP\ResultEntry', '&w_referrals'=>'array'], + ], + 'ldap_parse_result' => [ + 'old' => ['bool', 'ldap'=>'resource', 'result'=>'resource', '&w_error_code'=>'int', '&w_matched_dn='=>'string', '&w_error_message='=>'string', '&w_referrals='=>'array', '&w_controls='=>'array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'result'=>'LDAP\Result', '&w_error_code'=>'int', '&w_matched_dn='=>'string', '&w_error_message='=>'string', '&w_referrals='=>'array', '&w_controls='=>'array'], + ], + 'ldap_read' => [ + 'old' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + 'new' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_rename' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + ], + 'ldap_rename_ext' => [ + 'old' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + 'new' => ['LDAP\Result|false', 'ldap'=>'LDAP\Connection', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'?array'], + ], + 'ldap_sasl_bind' => [ + 'old' => ['bool', 'ldap'=>'resource', 'dn='=>'?string', 'password='=>'?string', 'mech='=>'?string', 'realm='=>'?string', 'authc_id='=>'?string', 'authz_id='=>'?string', 'props='=>'?string'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'dn='=>'?string', 'password='=>'?string', 'mech='=>'?string', 'realm='=>'?string', 'authc_id='=>'?string', 'authz_id='=>'?string', 'props='=>'?string'], + ], + 'ldap_search' => [ + 'old' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + 'new' => ['LDAP\Result|LDAP\Result[]|false', 'ldap'=>'LDAP\Connection|LDAP\Connection[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int', 'controls='=>'?array'], + ], + 'ldap_set_option' => [ + 'old' => ['bool', 'ldap'=>'resource|null', 'option'=>'int', 'value'=>'mixed'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection|null', 'option'=>'int', 'value'=>'mixed'], + ], + 'ldap_set_rebind_proc' => [ + 'old' => ['bool', 'ldap'=>'resource', 'callback'=>'?callable'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection', 'callback'=>'?callable'], + ], + 'ldap_start_tls' => [ + 'old' => ['bool', 'ldap'=>'resource'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection'], + ], + 'ldap_unbind' => [ + 'old' => ['bool', 'ldap'=>'resource'], + 'new' => ['bool', 'ldap'=>'LDAP\Connection'], + ], + 'mysqli::connect' => [ + 'old' => ['null|false', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], + 'new' => ['bool', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null'], + ], + 'mysqli_execute' => [ + 'old' => ['bool', 'statement' => 'mysqli_stmt'], + 'new' => ['bool', 'statement' => 'mysqli_stmt', 'params=' => 'list|null'], + ], + 'mysqli_stmt_execute' => [ + 'old' => ['bool', 'statement' => 'mysqli_stmt'], + 'new' => ['bool', 'statement' => 'mysqli_stmt', 'params=' => 'list|null'], + ], + 'mysqli_stmt::execute' => [ + 'old' => ['bool'], + 'new' => ['bool', 'params=' => 'list|null'], + ], + 'openssl_decrypt' => [ + 'old' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', 'tag='=>'string', 'aad='=>'string'], + 'new' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', 'tag='=>'?string', 'aad='=>'string'], + ], + 'pg_affected_rows' => [ + 'old' => ['int', 'result' => 'resource'], + 'new' => ['int', 'result' => '\PgSql\Result'], + ], + 'pg_cancel_query' => [ + 'old' => ['bool', 'connection' => 'resource'], + 'new' => ['bool', 'connection' => '\PgSql\Connection'], + ], + 'pg_client_encoding' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_close' => [ + 'old' => ['bool', 'connection=' => '?resource'], + 'new' => ['bool', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_connect' => [ + 'old' => ['resource|false', 'connection_string' => 'string', 'flags=' => 'int'], + 'new' => ['\PgSql\Connection|false', 'connection_string' => 'string', 'flags=' => 'int'], + ], + 'pg_connect_poll' => [ + 'old' => ['int', 'connection' => 'resource'], + 'new' => ['int', 'connection' => '\PgSql\Connection'], + ], + 'pg_connection_busy' => [ + 'old' => ['bool', 'connection' => 'resource'], + 'new' => ['bool', 'connection' => '\PgSql\Connection'], + ], + 'pg_connection_reset' => [ + 'old' => ['bool', 'connection' => 'resource'], + 'new' => ['bool', 'connection' => '\PgSql\Connection'], + ], + 'pg_connection_status' => [ + 'old' => ['int', 'connection' => 'resource'], + 'new' => ['int', 'connection' => '\PgSql\Connection'], + ], + 'pg_consume_input' => [ + 'old' => ['bool', 'connection' => 'resource'], + 'new' => ['bool', 'connection' => '\PgSql\Connection'], + ], + 'pg_convert' => [ + 'old' => ['array|false', 'connection' => 'resource', 'table_name' => 'string', 'values' => 'array', 'flags=' => 'int'], + 'new' => ['array|false', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'values' => 'array', 'flags=' => 'int'], + ], + 'pg_copy_from' => [ + 'old' => ['bool', 'connection' => 'resource', 'table_name' => 'string', 'rows' => 'array', 'separator=' => 'string', 'null_as=' => 'string'], + 'new' => ['bool', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'rows' => 'array', 'separator=' => 'string', 'null_as=' => 'string'], + ], + 'pg_copy_to' => [ + 'old' => ['array|false', 'connection' => 'resource', 'table_name' => 'string', 'separator=' => 'string', 'null_as=' => 'string'], + 'new' => ['array|false', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'separator=' => 'string', 'null_as=' => 'string'], + ], + 'pg_dbname' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_delete' => [ + 'old' => ['string|bool', 'connection' => 'resource', 'table_name' => 'string', 'conditions' => 'array', 'flags=' => 'int'], + 'new' => ['string|bool', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'conditions' => 'array', 'flags=' => 'int'], + ], + 'pg_end_copy' => [ + 'old' => ['bool', 'connection=' => '?resource'], + 'new' => ['bool', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_escape_bytea' => [ + 'old' => ['string', 'connection' => 'resource', 'string' => 'string'], + 'new' => ['string', 'connection' => '\PgSql\Connection', 'string' => 'string'], + ], + 'pg_escape_identifier' => [ + 'old' => ['string|false', 'connection' => 'resource', 'string' => 'string'], + 'new' => ['string|false', 'connection' => '\PgSql\Connection', 'string' => 'string'], + ], + 'pg_escape_literal' => [ + 'old' => ['string|false', 'connection' => 'resource', 'string' => 'string'], + 'new' => ['string|false', 'connection' => '\PgSql\Connection', 'string' => 'string'], + ], + 'pg_escape_string' => [ + 'old' => ['string', 'connection' => 'resource', 'string' => 'string'], + 'new' => ['string', 'connection' => '\PgSql\Connection', 'string' => 'string'], + ], + 'pg_exec' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'query' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection', 'query' => 'string'], + ], + 'pg_exec\'1' => [ + 'old' => ['resource|false', 'connection' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => 'string'], + ], + 'pg_execute' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'statement_name' => 'string', 'params' => 'array'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection', 'statement_name' => 'string', 'params' => 'array'], + ], + 'pg_execute\'1' => [ + 'old' => ['resource|false', 'connection' => 'string', 'statement_name' => 'array'], + 'new' => ['\PgSql\Result|false', 'connection' => 'string', 'statement_name' => 'array'], + ], + 'pg_fetch_all' => [ + 'old' => ['array', 'result' => 'resource', 'mode=' => 'int'], + 'new' => ['array', 'result' => '\PgSql\Result', 'mode=' => 'int'], + ], + 'pg_fetch_all_columns' => [ + 'old' => ['array', 'result' => 'resource', 'field=' => 'int'], + 'new' => ['array', 'result' => '\PgSql\Result', 'field=' => 'int'], + ], + 'pg_fetch_array' => [ + 'old' => ['array|false', 'result' => 'resource', 'row=' => '?int', 'mode=' => 'int'], + 'new' => ['array|false', 'result' => '\PgSql\Result', 'row=' => '?int', 'mode=' => 'int'], + ], + 'pg_fetch_assoc' => [ + 'old' => ['array|false', 'result' => 'resource', 'row=' => '?int'], + 'new' => ['array|false', 'result' => '\PgSql\Result', 'row=' => '?int'], + ], + 'pg_fetch_object' => [ + 'old' => ['object|false', 'result' => 'resource', 'row=' => '?int', 'class=' => 'string', 'constructor_args=' => 'array'], + 'new' => ['object|false', 'result' => '\PgSql\Result', 'row=' => '?int', 'class=' => 'string', 'constructor_args=' => 'array'], + ], + 'pg_fetch_result' => [ + 'old' => ['string|false|null', 'result' => 'resource', 'row' => 'string|int'], + 'new' => ['string|false|null', 'result' => '\PgSql\Result', 'row' => 'string|int'], + ], + 'pg_fetch_result\'1' => [ + 'old' => ['string|false|null', 'result' => 'resource', 'row' => '?int', 'field' => 'string|int'], + 'new' => ['string|false|null', 'result' => '\PgSql\Result', 'row' => '?int', 'field' => 'string|int'], + ], + 'pg_fetch_row' => [ + 'old' => ['array|false', 'result' => 'resource', 'row=' => '?int', 'mode=' => 'int'], + 'new' => ['array|false', 'result' => '\PgSql\Result', 'row=' => '?int', 'mode=' => 'int'], + ], + 'pg_field_is_null' => [ + 'old' => ['int|false', 'result' => 'resource', 'row'=>'string|int'], + 'new' => ['int|false', 'result' => '\PgSql\Result', 'row'=>'string|int'], + ], + 'pg_field_is_null\'1' => [ + 'old' => ['int|false', 'result' => 'resource', 'row' => 'int', 'field' => 'string|int'], + 'new' => ['int|false', 'result' => '\PgSql\Result', 'row' => 'int', 'field' => 'string|int'], + ], + 'pg_field_name' => [ + 'old' => ['string', 'result' => 'resource', 'field' => 'int'], + 'new' => ['string', 'result' => '\PgSql\Result', 'field' => 'int'], + ], + 'pg_field_num' => [ + 'old' => ['int', 'result' => 'resource', 'field' => 'string'], + 'new' => ['int', 'result' => '\PgSql\Result', 'field' => 'string'], + ], + 'pg_field_prtlen' => [ + 'old' => ['int|false', 'result' => 'resource', 'row' => 'string|int'], + 'new' => ['int|false', 'result' => '\PgSql\Result', 'row' => 'string|int'], + ], + 'pg_field_prtlen\'1' => [ + 'old' => ['int|false', 'result' => 'resource', 'row' => 'int', 'field' => 'string|int'], + 'new' => ['int|false', 'result' => '\PgSql\Result', 'row' => 'int', 'field' => 'string|int'], + ], + 'pg_field_size' => [ + 'old' => ['int', 'result' => 'resource', 'field' => 'int'], + 'new' => ['int', 'result' => '\PgSql\Result', 'field' => 'int'], + ], + 'pg_field_table' => [ + 'old' => ['string|int|false', 'result' => 'resource', 'field' => 'int', 'oid_only=' => 'bool'], + 'new' => ['string|int|false', 'result' => '\PgSql\Result', 'field' => 'int', 'oid_only=' => 'bool'], + ], + 'pg_field_type' => [ + 'old' => ['string', 'result' => 'resource', 'field' => 'int'], + 'new' => ['string', 'result' => '\PgSql\Result', 'field' => 'int'], + ], + 'pg_field_type_oid' => [ + 'old' => ['int|string', 'result' => 'resource', 'field' => 'int'], + 'new' => ['int|string', 'result' => '\PgSql\Result', 'field' => 'int'], + ], + 'pg_flush' => [ + 'old' => ['int|bool', 'connection' => 'resource'], + 'new' => ['int|bool', 'connection' => '\PgSql\Connection'], + ], + 'pg_free_result' => [ + 'old' => ['bool', 'result' => 'resource'], + 'new' => ['bool', 'result' => '\PgSql\Result'], + ], + 'pg_get_notify' => [ + 'old' => ['array|false', 'connection' => 'resource', 'mode=' => 'int'], + 'new' => ['array|false', 'connection' => '\PgSql\Connection', 'mode=' => 'int'], + ], + 'pg_get_pid' => [ + 'old' => ['int', 'connection' => 'resource'], + 'new' => ['int', 'connection' => '\PgSql\Connection'], + ], + 'pg_get_result' => [ + 'old' => ['resource|false', 'connection' => 'resource'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection'], + ], + 'pg_host' => [ + 'old' => ['string', 'connection=' => 'resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_insert' => [ + 'old' => ['resource|string|false', 'connection' => 'resource', 'table_name' => 'string', 'values' => 'array', 'flags=' => 'int'], + 'new' => ['\PgSql\Result|string|false', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'values' => 'array', 'flags=' => 'int'], + ], + 'pg_last_error' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_last_notice' => [ + 'old' => ['string|array|bool', 'connection' => 'resource', 'mode=' => 'int'], + 'new' => ['string|array|bool', 'connection' => '\PgSql\Connection', 'mode=' => 'int'], + ], + 'pg_last_oid' => [ + 'old' => ['string|int|false', 'result' => 'resource'], + 'new' => ['string|int|false', 'result' => '\PgSql\Result'], + ], + 'pg_lo_close' => [ + 'old' => ['bool', 'lob' => 'resource'], + 'new' => ['bool', 'lob' => '\PgSql\Lob'], + ], + 'pg_lo_create' => [ + 'old' => ['int|string|false', 'connection=' => 'resource', 'oid=' => 'int|string'], + 'new' => ['int|string|false', 'connection=' => '\PgSql\Connection', 'oid=' => 'int|string'], + ], + 'pg_lo_export' => [ + 'old' => ['bool', 'connection' => 'resource', 'oid' => 'int|string', 'filename' => 'string'], + 'new' => ['bool', 'connection' => '\PgSql\Connection', 'oid' => 'int|string', 'filename' => 'string'], + ], + 'pg_lo_import' => [ + 'old' => ['int|string|false', 'connection' => 'resource', 'filename' => 'string', 'oid' => 'string|int'], + 'new' => ['int|string|false', 'connection' => '\PgSql\Connection', 'filename' => 'string', 'oid' => 'string|int'], + ], + 'pg_lo_open' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'oid' => 'int|string', 'mode' => 'string'], + 'new' => ['\PgSql\Lob|false', 'connection' => '\PgSql\Connection', 'oid' => 'int|string', 'mode' => 'string'], + ], + 'pg_lo_open\'1' => [ + 'old' => ['resource|false', 'connection' => 'int|string', 'oid' => 'string'], + 'new' => ['\PgSql\Lob|false', 'connection' => 'int|string', 'oid' => 'string'], + ], + 'pg_lo_read' => [ + 'old' => ['string|false', 'lob' => 'resource', 'length=' => 'int'], + 'new' => ['string|false', 'lob' => '\PgSql\Lob', 'length=' => 'int'], + ], + 'pg_lo_read_all' => [ + 'old' => ['int', 'lob' => 'resource'], + 'new' => ['int', 'lob' => '\PgSql\Lob'], + ], + 'pg_lo_seek' => [ + 'old' => ['bool', 'lob' => 'resource', 'offset' => 'int', 'whence=' => 'int'], + 'new' => ['bool', 'lob' => '\PgSql\Lob', 'offset' => 'int', 'whence=' => 'int'], + ], + 'pg_lo_tell' => [ + 'old' => ['int', 'lob' => 'resource'], + 'new' => ['int', 'lob' => '\PgSql\Lob'], + ], + 'pg_lo_truncate' => [ + 'old' => ['bool', 'lob' => 'resource', 'size' => 'int'], + 'new' => ['bool', 'lob' => '\PgSql\Lob', 'size' => 'int'], + ], + 'pg_lo_unlink' => [ + 'old' => ['bool', 'connection' => 'resource', 'oid' => 'int|string'], + 'new' => ['bool', 'connection' => '\PgSql\Connection', 'oid' => 'int|string'], + ], + 'pg_lo_write' => [ + 'old' => ['int|false', 'lob' => 'resource', 'data' => 'string', 'length=' => '?int'], + 'new' => ['int|false', 'lob' => '\PgSql\Lob', 'data' => 'string', 'length=' => '?int'], + ], + 'pg_meta_data' => [ + 'old' => ['array|false', 'connection' => 'resource', 'table_name' => 'string', 'extended=' => 'bool'], + 'new' => ['array|false', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'extended=' => 'bool'], + ], + 'pg_num_fields' => [ + 'old' => ['int', 'result' => 'resource'], + 'new' => ['int', 'result' => '\PgSql\Result'], + ], + 'pg_num_rows' => [ + 'old' => ['int', 'result' => 'resource'], + 'new' => ['int', 'result' => '\PgSql\Result'], + ], + 'pg_options' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_parameter_status' => [ + 'old' => ['string|false', 'connection' => 'resource', 'name' => 'string'], + 'new' => ['string|false', 'connection' => '\PgSql\Connection', 'name' => 'string'], + ], + 'pg_pconnect' => [ + 'old' => ['resource|false', 'connection_string' => 'string', 'flags=' => 'int'], + 'new' => ['\PgSql\Connection|false', 'connection_string' => 'string', 'flags=' => 'int'], + ], + 'pg_ping' => [ + 'old' => ['bool', 'connection=' => '?resource'], + 'new' => ['bool', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_port' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_prepare' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'statement_name' => 'string', 'query' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection', 'statement_name' => 'string', 'query' => 'string'], + ], + 'pg_prepare\'1' => [ + 'old' => ['resource|false', 'connection' => 'string', 'statement_name' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => 'string', 'statement_name' => 'string'], + ], + 'pg_put_line' => [ + 'old' => ['bool', 'connection' => 'resource', 'data' => 'string'], + 'new' => ['bool', 'connection' => '\PgSql\Connection', 'data' => 'string'], + ], + 'pg_query' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'query' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection', 'query' => 'string'], + ], + 'pg_query\'1' => [ + 'old' => ['resource|false', 'connection' => 'string'], + 'new' => ['\PgSql\Result|false', 'connection' => 'string'], + ], + 'pg_query_params' => [ + 'old' => ['resource|false', 'connection' => 'resource', 'query' => 'string', 'params' => 'array'], + 'new' => ['\PgSql\Result|false', 'connection' => '\PgSql\Connection', 'query' => 'string', 'params' => 'array'], + ], + 'pg_query_params\'1' => [ + 'old' => ['resource|false', 'connection' => 'string', 'query' => 'array'], + 'new' => ['\PgSql\Result|false', 'connection' => 'string', 'query' => 'array'], + ], + 'pg_result_error' => [ + 'old' => ['string|false', 'result' => 'resource'], + 'new' => ['string|false', 'result' => '\PgSql\Result'], + ], + 'pg_result_error_field' => [ + 'old' => ['string|false|null', 'result' => 'resource', 'field_code' => 'int'], + 'new' => ['string|false|null', 'result' => '\PgSql\Result', 'field_code' => 'int'], + ], + 'pg_result_seek' => [ + 'old' => ['bool', 'result' => 'resource', 'row' => 'int'], + 'new' => ['bool', 'result' => '\PgSql\Result', 'row' => 'int'], + ], + 'pg_result_status' => [ + 'old' => ['string|int', 'result' => 'resource', 'mode=' => 'int'], + 'new' => ['string|int', 'result' => '\PgSql\Result', 'mode=' => 'int'], + ], + 'pg_select' => [ + 'old' => ['string|array|false', 'connection' => 'resource', 'table_name' => 'string', 'conditions' => 'array', 'flags=' => 'int', 'mode='=>'int'], + 'new' => ['string|array|false', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'conditions' => 'array', 'flags=' => 'int', 'mode='=>'int'], + ], + 'pg_send_execute' => [ + 'old' => ['bool|int', 'connection' => 'resource', 'statement_name' => 'string', 'params' => 'array'], + 'new' => ['bool|int', 'connection' => '\PgSql\Connection', 'statement_name' => 'string', 'params' => 'array'], + ], + 'pg_send_prepare' => [ + 'old' => ['bool|int', 'connection' => 'resource', 'statement_name' => 'string', 'query' => 'string'], + 'new' => ['bool|int', 'connection' => '\PgSql\Connection', 'statement_name' => 'string', 'query' => 'string'], + ], + 'pg_send_query' => [ + 'old' => ['bool|int', 'connection' => 'resource', 'query' => 'string'], + 'new' => ['bool|int', 'connection' => '\PgSql\Connection', 'query' => 'string'], + ], + 'pg_send_query_params' => [ + 'old' => ['bool|int', 'connection' => 'resource', 'query' => 'string', 'params' => 'array'], + 'new' => ['bool|int', 'connection' => '\PgSql\Connection', 'query' => 'string', 'params' => 'array'], + ], + 'pg_set_client_encoding' => [ + 'old' => ['int', 'connection' => 'resource', 'encoding' => 'string'], + 'new' => ['int', 'connection' => '\PgSql\Connection', 'encoding' => 'string'], + ], + 'pg_set_error_verbosity' => [ + 'old' => ['int|false', 'connection' => 'resource', 'verbosity' => 'int'], + 'new' => ['int|false', 'connection' => '\PgSql\Connection', 'verbosity' => 'int'], + ], + 'pg_socket' => [ + 'old' => ['resource|false', 'connection' => 'resource'], + 'new' => ['resource|false', 'connection' => '\PgSql\Connection'], + ], + 'pg_trace' => [ + 'old' => ['bool', 'filename' => 'string', 'mode=' => 'string', 'connection=' => '?resource'], + 'new' => ['bool', 'filename' => 'string', 'mode=' => 'string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_transaction_status' => [ + 'old' => ['int', 'connection' => 'resource'], + 'new' => ['int', 'connection' => '\PgSql\Connection'], + ], + 'pg_tty' => [ + 'old' => ['string', 'connection=' => '?resource'], + 'new' => ['string', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_untrace' => [ + 'old' => ['bool', 'connection=' => '?resource'], + 'new' => ['bool', 'connection=' => '?\PgSql\Connection'], + ], + 'pg_update' => [ + 'old' => ['string|bool', 'connection' => 'resource', 'table_name' => 'string', 'values' => 'array', 'conditions' => 'array', 'flags=' => 'int'], + 'new' => ['string|bool', 'connection' => '\PgSql\Connection', 'table_name' => 'string', 'values' => 'array', 'conditions' => 'array', 'flags=' => 'int'], + ], + 'pg_version' => [ + 'old' => ['array', 'connection=' => '?resource'], + 'new' => ['array', 'connection=' => '?\PgSql\Connection'], + ], + 'pspell_add_to_personal' => [ + 'old' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], + ], + 'pspell_add_to_session' => [ + 'old' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], + ], + 'pspell_check' => [ + 'old' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], + ], + 'pspell_clear_session' => [ + 'old' => ['bool', 'dictionary'=>'int'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary'], + ], + 'pspell_config_create' => [ + 'old' => ['int', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string'], + 'new' => ['PSpell\Config', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string'], + ], + 'pspell_config_data_dir' => [ + 'old' => ['bool', 'config'=>'int', 'directory'=>'string'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'directory'=>'string'], + ], + 'pspell_config_dict_dir' => [ + 'old' => ['bool', 'config'=>'int', 'directory'=>'string'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'directory'=>'string'], + ], + 'pspell_config_ignore' => [ + 'old' => ['bool', 'config'=>'int', 'min_length'=>'int'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'min_length'=>'int'], + ], + 'pspell_config_mode' => [ + 'old' => ['bool', 'config'=>'int', 'mode'=>'int'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'mode'=>'int'], + ], + 'pspell_config_personal' => [ + 'old' => ['bool', 'config'=>'int', 'filename'=>'string'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'filename'=>'string'], + ], + 'pspell_config_repl' => [ + 'old' => ['bool', 'config'=>'int', 'filename'=>'string'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'filename'=>'string'], + ], + 'pspell_config_runtogether' => [ + 'old' => ['bool', 'config'=>'int', 'allow'=>'bool'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'allow'=>'bool'], + ], + 'pspell_config_save_repl' => [ + 'old' => ['bool', 'config'=>'int', 'save'=>'bool'], + 'new' => ['bool', 'config'=>'PSpell\Config', 'save'=>'bool'], + ], + 'pspell_new' => [ + 'old' => ['int|false', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + 'new' => ['PSpell\Dictionary|false', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + ], + 'pspell_new_config' => [ + 'old' => ['int|false', 'config'=>'int'], + 'new' => ['PSpell\Dictionary|false', 'config'=>'PSpell\Config'], + ], + 'pspell_new_personal' => [ + 'old' => ['int|false', 'filename'=>'string', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + 'new' => ['PSpell\Dictionary|false', 'filename'=>'string', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + ], + 'pspell_save_wordlist' => [ + 'old' => ['bool', 'dictionary'=>'int'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary'], + ], + 'pspell_store_replacement' => [ + 'old' => ['bool', 'dictionary'=>'int', 'misspelled'=>'string', 'correct'=>'string'], + 'new' => ['bool', 'dictionary'=>'PSpell\Dictionary', 'misspelled'=>'string', 'correct'=>'string'], + ], + 'pspell_suggest' => [ + 'old' => ['array', 'dictionary'=>'int', 'word'=>'string'], + 'new' => ['array', 'dictionary'=>'PSpell\Dictionary', 'word'=>'string'], + ], + 'stream_select' => [ + 'old' => ['int|false', '&rw_read'=>'?resource[]', '&rw_write'=>'?resource[]', '&rw_except'=>'?resource[]', 'seconds'=>'?int', 'microseconds='=>'int'], + 'new' => ['int|false', '&rw_read'=>'?resource[]', '&rw_write'=>'?resource[]', '&rw_except'=>'?resource[]', 'seconds'=>'?int', 'microseconds='=>'?int'], + ], + ], + + 'removed' => [ + 'ReflectionMethod::isStatic' => ['bool'], + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_82_delta.php b/vendor/vimeo/psalm/dictionaries/CallMap_82_delta.php new file mode 100644 index 00000000..555ea008 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_82_delta.php @@ -0,0 +1,52 @@ + [ + 'mysqli_execute_query' => ['mysqli_result|bool', 'mysql'=>'mysqli', 'query'=>'non-empty-string', 'params='=>'list|null'], + 'mysqli::execute_query' => ['mysqli_result|bool', 'query'=>'non-empty-string', 'params='=>'list|null'], + 'openssl_cipher_key_length' => ['positive-int|false', 'cipher_algo'=>'non-empty-string'], + 'curl_upkeep' => ['bool', 'handle'=>'CurlHandle'], + 'imap_is_open' => ['bool', 'imap'=>'IMAP\Connection'], + 'ini_parse_quantity' => ['int', 'shorthand'=>'non-empty-string'], + 'libxml_get_external_entity_loader' => ['(callable(string,string,array{directory:?string,intSubName:?string,extSubURI:?string,extSubSystem:?string}):(resource|string|null))|null'], + 'memory_reset_peak_usage' => ['void'], + 'sodium_crypto_stream_xchacha20_xor_ic' => ['string', 'message'=>'string', 'nonce'=>'non-empty-string', 'counter'=>'int', 'key'=>'non-empty-string'], + 'ZipArchive::clearError' => ['void'], + 'ZipArchive::getStreamIndex' => ['resource|false', 'index'=>'int', 'flags='=>'int'], + 'ZipArchive::getStreamName' => ['resource|false', 'name'=>'string', 'flags='=>'int'], + 'DateTimeInterface::__serialize' => ['array'], + 'DateTimeInterface::__unserialize' => ['void', 'data'=>'array'], + ], + + 'changed' => [ + 'dba_open' => [ + 'old' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'string', '...handler_params='=>'string'], + 'new' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'?string', 'permission='=>'int', 'map_size='=>'int', 'flags='=>'?int'], + ], + 'dba_popen' => [ + 'old' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'string', '...handler_params='=>'string'], + 'new' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'?string', 'permission='=>'int', 'map_size='=>'int', 'flags='=>'?int'], + ], + 'str_split' => [ + 'old' => ['non-empty-list', 'string'=>'string', 'length='=>'positive-int'], + 'new' => ['list', 'string'=>'string', 'length='=>'positive-int'], + ], + ], + + 'removed' => [ + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/CallMap_historical.php b/vendor/vimeo/psalm/dictionaries/CallMap_historical.php new file mode 100644 index 00000000..b5727394 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/CallMap_historical.php @@ -0,0 +1,15709 @@ + ['void', 'content_type='=>'string', 'content_encoding='=>'string', 'headers='=>'array', 'delivery_mode='=>'int', 'priority='=>'int', 'correlation_id='=>'string', 'reply_to='=>'string', 'expiration='=>'string', 'message_id='=>'string', 'timestamp='=>'int', 'type='=>'string', 'user_id='=>'string', 'app_id='=>'string', 'cluster_id='=>'string'], + 'AMQPBasicProperties::getAppId' => ['string'], + 'AMQPBasicProperties::getClusterId' => ['string'], + 'AMQPBasicProperties::getContentEncoding' => ['string'], + 'AMQPBasicProperties::getContentType' => ['string'], + 'AMQPBasicProperties::getCorrelationId' => ['string'], + 'AMQPBasicProperties::getDeliveryMode' => ['int'], + 'AMQPBasicProperties::getExpiration' => ['string'], + 'AMQPBasicProperties::getHeaders' => ['array'], + 'AMQPBasicProperties::getMessageId' => ['string'], + 'AMQPBasicProperties::getPriority' => ['int'], + 'AMQPBasicProperties::getReplyTo' => ['string'], + 'AMQPBasicProperties::getTimestamp' => ['string'], + 'AMQPBasicProperties::getType' => ['string'], + 'AMQPBasicProperties::getUserId' => ['string'], + 'AMQPChannel::__construct' => ['void', 'amqp_connection'=>'AMQPConnection'], + 'AMQPChannel::basicRecover' => ['', 'requeue='=>'bool'], + 'AMQPChannel::close' => [''], + 'AMQPChannel::commitTransaction' => ['bool'], + 'AMQPChannel::confirmSelect' => [''], + 'AMQPChannel::getChannelId' => ['int'], + 'AMQPChannel::getConnection' => ['AMQPConnection'], + 'AMQPChannel::getConsumers' => ['AMQPQueue[]'], + 'AMQPChannel::getPrefetchCount' => ['int'], + 'AMQPChannel::getPrefetchSize' => ['int'], + 'AMQPChannel::isConnected' => ['bool'], + 'AMQPChannel::qos' => ['bool', 'size'=>'int', 'count'=>'int'], + 'AMQPChannel::rollbackTransaction' => ['bool'], + 'AMQPChannel::setConfirmCallback' => ['', 'ack_callback='=>'?callable', 'nack_callback='=>'?callable'], + 'AMQPChannel::setPrefetchCount' => ['bool', 'count'=>'int'], + 'AMQPChannel::setPrefetchSize' => ['bool', 'size'=>'int'], + 'AMQPChannel::setReturnCallback' => ['', 'return_callback='=>'?callable'], + 'AMQPChannel::startTransaction' => ['bool'], + 'AMQPChannel::waitForBasicReturn' => ['', 'timeout='=>'float'], + 'AMQPChannel::waitForConfirm' => ['', 'timeout='=>'float'], + 'AMQPConnection::__construct' => ['void', 'credentials='=>'array'], + 'AMQPConnection::connect' => ['bool'], + 'AMQPConnection::disconnect' => ['bool'], + 'AMQPConnection::getCACert' => ['string'], + 'AMQPConnection::getCert' => ['string'], + 'AMQPConnection::getHeartbeatInterval' => ['int'], + 'AMQPConnection::getHost' => ['string'], + 'AMQPConnection::getKey' => ['string'], + 'AMQPConnection::getLogin' => ['string'], + 'AMQPConnection::getMaxChannels' => ['?int'], + 'AMQPConnection::getMaxFrameSize' => ['int'], + 'AMQPConnection::getPassword' => ['string'], + 'AMQPConnection::getPort' => ['int'], + 'AMQPConnection::getReadTimeout' => ['float'], + 'AMQPConnection::getTimeout' => ['float'], + 'AMQPConnection::getUsedChannels' => ['int'], + 'AMQPConnection::getVerify' => ['bool'], + 'AMQPConnection::getVhost' => ['string'], + 'AMQPConnection::getWriteTimeout' => ['float'], + 'AMQPConnection::isConnected' => ['bool'], + 'AMQPConnection::isPersistent' => ['?bool'], + 'AMQPConnection::pconnect' => ['bool'], + 'AMQPConnection::pdisconnect' => ['bool'], + 'AMQPConnection::preconnect' => ['bool'], + 'AMQPConnection::reconnect' => ['bool'], + 'AMQPConnection::setCACert' => ['', 'cacert'=>'string'], + 'AMQPConnection::setCert' => ['', 'cert'=>'string'], + 'AMQPConnection::setHost' => ['bool', 'host'=>'string'], + 'AMQPConnection::setKey' => ['', 'key'=>'string'], + 'AMQPConnection::setLogin' => ['bool', 'login'=>'string'], + 'AMQPConnection::setPassword' => ['bool', 'password'=>'string'], + 'AMQPConnection::setPort' => ['bool', 'port'=>'int'], + 'AMQPConnection::setReadTimeout' => ['bool', 'timeout'=>'int'], + 'AMQPConnection::setTimeout' => ['bool', 'timeout'=>'int'], + 'AMQPConnection::setVerify' => ['', 'verify'=>'bool'], + 'AMQPConnection::setVhost' => ['bool', 'vhost'=>'string'], + 'AMQPConnection::setWriteTimeout' => ['bool', 'timeout'=>'int'], + 'AMQPDecimal::__construct' => ['void', 'exponent'=>'', 'significand'=>''], + 'AMQPDecimal::getExponent' => ['int'], + 'AMQPDecimal::getSignificand' => ['int'], + 'AMQPEnvelope::__construct' => ['void'], + 'AMQPEnvelope::getAppId' => ['string'], + 'AMQPEnvelope::getBody' => ['string'], + 'AMQPEnvelope::getClusterId' => ['string'], + 'AMQPEnvelope::getConsumerTag' => ['string'], + 'AMQPEnvelope::getContentEncoding' => ['string'], + 'AMQPEnvelope::getContentType' => ['string'], + 'AMQPEnvelope::getCorrelationId' => ['string'], + 'AMQPEnvelope::getDeliveryMode' => ['int'], + 'AMQPEnvelope::getDeliveryTag' => ['string'], + 'AMQPEnvelope::getExchangeName' => ['string'], + 'AMQPEnvelope::getExpiration' => ['string'], + 'AMQPEnvelope::getHeader' => ['string|false', 'header_key'=>'string'], + 'AMQPEnvelope::getHeaders' => ['array'], + 'AMQPEnvelope::getMessageId' => ['string'], + 'AMQPEnvelope::getPriority' => ['int'], + 'AMQPEnvelope::getReplyTo' => ['string'], + 'AMQPEnvelope::getRoutingKey' => ['string'], + 'AMQPEnvelope::getTimeStamp' => ['string'], + 'AMQPEnvelope::getType' => ['string'], + 'AMQPEnvelope::getUserId' => ['string'], + 'AMQPEnvelope::hasHeader' => ['bool', 'header_key'=>'string'], + 'AMQPEnvelope::isRedelivery' => ['bool'], + 'AMQPExchange::__construct' => ['void', 'amqp_channel'=>'AMQPChannel'], + 'AMQPExchange::bind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], + 'AMQPExchange::declareExchange' => ['bool'], + 'AMQPExchange::delete' => ['bool', 'exchangeName='=>'string', 'flags='=>'int'], + 'AMQPExchange::getArgument' => ['int|string|false', 'key'=>'string'], + 'AMQPExchange::getArguments' => ['array'], + 'AMQPExchange::getChannel' => ['AMQPChannel'], + 'AMQPExchange::getConnection' => ['AMQPConnection'], + 'AMQPExchange::getFlags' => ['int'], + 'AMQPExchange::getName' => ['string'], + 'AMQPExchange::getType' => ['string'], + 'AMQPExchange::hasArgument' => ['bool', 'key'=>'string'], + 'AMQPExchange::publish' => ['bool', 'message'=>'string', 'routing_key='=>'string', 'flags='=>'int', 'attributes='=>'array'], + 'AMQPExchange::setArgument' => ['bool', 'key'=>'string', 'value'=>'int|string'], + 'AMQPExchange::setArguments' => ['bool', 'arguments'=>'array'], + 'AMQPExchange::setFlags' => ['bool', 'flags'=>'int'], + 'AMQPExchange::setName' => ['bool', 'exchange_name'=>'string'], + 'AMQPExchange::setType' => ['bool', 'exchange_type'=>'string'], + 'AMQPExchange::unbind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], + 'AMQPQueue::__construct' => ['void', 'amqp_channel'=>'AMQPChannel'], + 'AMQPQueue::ack' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], + 'AMQPQueue::bind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], + 'AMQPQueue::cancel' => ['bool', 'consumer_tag='=>'string'], + 'AMQPQueue::consume' => ['void', 'callback='=>'?callable', 'flags='=>'int', 'consumerTag='=>'string'], + 'AMQPQueue::declareQueue' => ['int'], + 'AMQPQueue::delete' => ['int', 'flags='=>'int'], + 'AMQPQueue::get' => ['AMQPEnvelope|false', 'flags='=>'int'], + 'AMQPQueue::getArgument' => ['int|string|false', 'key'=>'string'], + 'AMQPQueue::getArguments' => ['array'], + 'AMQPQueue::getChannel' => ['AMQPChannel'], + 'AMQPQueue::getConnection' => ['AMQPConnection'], + 'AMQPQueue::getConsumerTag' => ['?string'], + 'AMQPQueue::getFlags' => ['int'], + 'AMQPQueue::getName' => ['string'], + 'AMQPQueue::hasArgument' => ['bool', 'key'=>'string'], + 'AMQPQueue::nack' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], + 'AMQPQueue::purge' => ['bool'], + 'AMQPQueue::reject' => ['bool', 'delivery_tag'=>'string', 'flags='=>'int'], + 'AMQPQueue::setArgument' => ['bool', 'key'=>'string', 'value'=>'mixed'], + 'AMQPQueue::setArguments' => ['bool', 'arguments'=>'array'], + 'AMQPQueue::setFlags' => ['bool', 'flags'=>'int'], + 'AMQPQueue::setName' => ['bool', 'queue_name'=>'string'], + 'AMQPQueue::unbind' => ['bool', 'exchange_name'=>'string', 'routing_key='=>'string', 'arguments='=>'array'], + 'AMQPTimestamp::__construct' => ['void', 'timestamp'=>'string'], + 'AMQPTimestamp::__toString' => ['string'], + 'AMQPTimestamp::getTimestamp' => ['string'], + 'APCIterator::__construct' => ['void', 'cache'=>'string', 'search='=>'null|string|string[]', 'format='=>'int', 'chunk_size='=>'int', 'list='=>'int'], + 'APCIterator::current' => ['mixed|false'], + 'APCIterator::getTotalCount' => ['int|false'], + 'APCIterator::getTotalHits' => ['int|false'], + 'APCIterator::getTotalSize' => ['int|false'], + 'APCIterator::key' => ['string'], + 'APCIterator::next' => ['void'], + 'APCIterator::rewind' => ['void'], + 'APCIterator::valid' => ['bool'], + 'APCuIterator::__construct' => ['void', 'search='=>'string|string[]|null', 'format='=>'int', 'chunk_size='=>'int', 'list='=>'int'], + 'APCuIterator::current' => ['mixed'], + 'APCuIterator::getTotalCount' => ['int'], + 'APCuIterator::getTotalHits' => ['int'], + 'APCuIterator::getTotalSize' => ['int'], + 'APCuIterator::key' => ['string'], + 'APCuIterator::next' => ['void'], + 'APCuIterator::rewind' => ['void'], + 'APCuIterator::valid' => ['bool'], + 'AppendIterator::__construct' => ['void'], + 'AppendIterator::append' => ['void', 'iterator'=>'Iterator'], + 'AppendIterator::current' => ['mixed'], + 'AppendIterator::getArrayIterator' => ['ArrayIterator'], + 'AppendIterator::getInnerIterator' => ['Iterator'], + 'AppendIterator::getIteratorIndex' => ['int'], + 'AppendIterator::key' => ['int|string|float|bool'], + 'AppendIterator::next' => ['void'], + 'AppendIterator::rewind' => ['void'], + 'AppendIterator::valid' => ['bool'], + 'ArgumentCountError::__clone' => ['void'], + 'ArgumentCountError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'ArgumentCountError::__toString' => ['string'], + 'ArgumentCountError::__wakeup' => ['void'], + 'ArgumentCountError::getCode' => ['int'], + 'ArgumentCountError::getFile' => ['string'], + 'ArgumentCountError::getLine' => ['int'], + 'ArgumentCountError::getMessage' => ['string'], + 'ArgumentCountError::getPrevious' => ['?Throwable'], + 'ArgumentCountError::getTrace' => ['list\',args?:array}>'], + 'ArgumentCountError::getTraceAsString' => ['string'], + 'ArithmeticError::__clone' => ['void'], + 'ArithmeticError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'ArithmeticError::__toString' => ['string'], + 'ArithmeticError::__wakeup' => ['void'], + 'ArithmeticError::getCode' => ['int'], + 'ArithmeticError::getFile' => ['string'], + 'ArithmeticError::getLine' => ['int'], + 'ArithmeticError::getMessage' => ['string'], + 'ArithmeticError::getPrevious' => ['?Throwable'], + 'ArithmeticError::getTrace' => ['list\',args?:array}>'], + 'ArithmeticError::getTraceAsString' => ['string'], + 'ArrayAccess::offsetExists' => ['bool', 'offset'=>'mixed'], + 'ArrayAccess::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'ArrayAccess::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'ArrayAccess::offsetUnset' => ['void', 'offset'=>'mixed'], + 'ArrayIterator::__construct' => ['void', 'array='=>'array|object', 'flags='=>'int'], + 'ArrayIterator::append' => ['void', 'value'=>'mixed'], + 'ArrayIterator::asort' => ['void'], + 'ArrayIterator::count' => ['int'], + 'ArrayIterator::current' => ['mixed'], + 'ArrayIterator::getArrayCopy' => ['array'], + 'ArrayIterator::getFlags' => ['int'], + 'ArrayIterator::key' => ['int|string|null'], + 'ArrayIterator::ksort' => ['void'], + 'ArrayIterator::natcasesort' => ['true'], + 'ArrayIterator::natsort' => ['true'], + 'ArrayIterator::next' => ['void'], + 'ArrayIterator::offsetExists' => ['bool', 'index'=>'string|int'], + 'ArrayIterator::offsetGet' => ['mixed', 'index'=>'string|int'], + 'ArrayIterator::offsetSet' => ['void', 'index'=>'string|int', 'newval'=>'mixed'], + 'ArrayIterator::offsetUnset' => ['void', 'index'=>'string|int'], + 'ArrayIterator::rewind' => ['void'], + 'ArrayIterator::seek' => ['void', 'position'=>'int'], + 'ArrayIterator::serialize' => ['string'], + 'ArrayIterator::setFlags' => ['void', 'flags'=>'string'], + 'ArrayIterator::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'ArrayIterator::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'ArrayIterator::unserialize' => ['void', 'serialized'=>'string'], + 'ArrayIterator::valid' => ['bool'], + 'ArrayObject::__construct' => ['void', 'input='=>'array|object', 'flags='=>'int', 'iterator_class='=>'string'], + 'ArrayObject::append' => ['void', 'value'=>'mixed'], + 'ArrayObject::asort' => ['void'], + 'ArrayObject::count' => ['int'], + 'ArrayObject::exchangeArray' => ['array', 'ar'=>'mixed'], + 'ArrayObject::getArrayCopy' => ['array'], + 'ArrayObject::getFlags' => ['int'], + 'ArrayObject::getIterator' => ['ArrayIterator'], + 'ArrayObject::getIteratorClass' => ['string'], + 'ArrayObject::ksort' => ['void'], + 'ArrayObject::natcasesort' => ['true'], + 'ArrayObject::natsort' => ['true'], + 'ArrayObject::offsetExists' => ['bool', 'index'=>'int|string'], + 'ArrayObject::offsetGet' => ['mixed|null', 'index'=>'int|string'], + 'ArrayObject::offsetSet' => ['void', 'index'=>'int|string', 'newval'=>'mixed'], + 'ArrayObject::offsetUnset' => ['void', 'index'=>'int|string'], + 'ArrayObject::serialize' => ['string'], + 'ArrayObject::setFlags' => ['void', 'flags'=>'int'], + 'ArrayObject::setIteratorClass' => ['void', 'iterator_class'=>'string'], + 'ArrayObject::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'ArrayObject::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'ArrayObject::unserialize' => ['void', 'serialized'=>'string'], + 'BadFunctionCallException::__clone' => ['void'], + 'BadFunctionCallException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'BadFunctionCallException::__toString' => ['string'], + 'BadFunctionCallException::getCode' => ['int'], + 'BadFunctionCallException::getFile' => ['string'], + 'BadFunctionCallException::getLine' => ['int'], + 'BadFunctionCallException::getMessage' => ['string'], + 'BadFunctionCallException::getPrevious' => ['?Throwable'], + 'BadFunctionCallException::getTrace' => ['list\',args?:array}>'], + 'BadFunctionCallException::getTraceAsString' => ['string'], + 'BadMethodCallException::__clone' => ['void'], + 'BadMethodCallException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'BadMethodCallException::__toString' => ['string'], + 'BadMethodCallException::getCode' => ['int'], + 'BadMethodCallException::getFile' => ['string'], + 'BadMethodCallException::getLine' => ['int'], + 'BadMethodCallException::getMessage' => ['string'], + 'BadMethodCallException::getPrevious' => ['?Throwable'], + 'BadMethodCallException::getTrace' => ['list\',args?:array}>'], + 'BadMethodCallException::getTraceAsString' => ['string'], + 'COM::__call' => ['', 'name'=>'', 'args'=>''], + 'COM::__construct' => ['void', 'module_name'=>'string', 'server_name='=>'mixed', 'codepage='=>'int', 'typelib='=>'string'], + 'COM::__get' => ['', 'name'=>''], + 'COM::__set' => ['void', 'name'=>'', 'value'=>''], + 'COMPersistHelper::GetCurFile' => ['string'], + 'COMPersistHelper::GetCurFileName' => ['string'], + 'COMPersistHelper::GetMaxStreamSize' => ['int'], + 'COMPersistHelper::InitNew' => ['int'], + 'COMPersistHelper::LoadFromFile' => ['bool', 'filename'=>'string', 'flags'=>'int'], + 'COMPersistHelper::LoadFromStream' => ['', 'stream'=>''], + 'COMPersistHelper::SaveToFile' => ['bool', 'filename'=>'string', 'remember'=>'bool'], + 'COMPersistHelper::SaveToStream' => ['int', 'stream'=>''], + 'COMPersistHelper::__construct' => ['void', 'variant'=>'object'], + 'CURLFile::__construct' => ['void', 'filename'=>'string', 'mimetype='=>'string', 'postfilename='=>'string'], + 'CURLFile::__wakeup' => ['void'], + 'CURLFile::getFilename' => ['string'], + 'CURLFile::getMimeType' => ['string'], + 'CURLFile::getPostFilename' => ['string'], + 'CURLFile::setMimeType' => ['void', 'mime'=>'string'], + 'CURLFile::setPostFilename' => ['void', 'name'=>'string'], + 'CachingIterator::__construct' => ['void', 'iterator'=>'Iterator', 'flags='=>''], + 'CachingIterator::__toString' => ['string'], + 'CachingIterator::count' => ['int'], + 'CachingIterator::current' => ['mixed'], + 'CachingIterator::getCache' => ['array'], + 'CachingIterator::getFlags' => ['int'], + 'CachingIterator::getInnerIterator' => ['Iterator'], + 'CachingIterator::hasNext' => ['bool'], + 'CachingIterator::key' => ['int|string|float|bool'], + 'CachingIterator::next' => ['void'], + 'CachingIterator::offsetExists' => ['bool', 'index'=>'string'], + 'CachingIterator::offsetGet' => ['mixed', 'index'=>'string'], + 'CachingIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'mixed'], + 'CachingIterator::offsetUnset' => ['void', 'index'=>'string'], + 'CachingIterator::rewind' => ['void'], + 'CachingIterator::setFlags' => ['void', 'flags'=>'int'], + 'CachingIterator::valid' => ['bool'], + 'CallbackFilterIterator::__construct' => ['void', 'iterator'=>'Iterator', 'func'=>'callable(mixed):bool|callable(mixed,mixed):bool|callable(mixed,mixed,mixed):bool'], + 'CallbackFilterIterator::accept' => ['bool'], + 'CallbackFilterIterator::current' => ['mixed'], + 'CallbackFilterIterator::getInnerIterator' => ['Iterator'], + 'CallbackFilterIterator::key' => ['mixed'], + 'CallbackFilterIterator::next' => ['void'], + 'CallbackFilterIterator::rewind' => ['void'], + 'CallbackFilterIterator::valid' => ['bool'], + 'ClosedGeneratorException::__clone' => ['void'], + 'ClosedGeneratorException::__toString' => ['string'], + 'ClosedGeneratorException::getCode' => ['int'], + 'ClosedGeneratorException::getFile' => ['string'], + 'ClosedGeneratorException::getLine' => ['int'], + 'ClosedGeneratorException::getMessage' => ['string'], + 'ClosedGeneratorException::getPrevious' => ['?Throwable'], + 'ClosedGeneratorException::getTrace' => ['list\',args?:array}>'], + 'ClosedGeneratorException::getTraceAsString' => ['string'], + 'Closure::__construct' => ['void'], + 'Closure::__invoke' => ['', '...args='=>''], + 'Closure::bind' => ['?Closure', 'closure'=>'Closure', 'newThis'=>'?object', 'newScope='=>'object|string|null'], + 'Closure::bindTo' => ['?Closure', 'newThis'=>'?object', 'newScope='=>'object|string|null'], + 'Closure::call' => ['mixed', 'newThis'=>'object', '...args='=>'mixed'], + 'Collator::__construct' => ['void', 'locale'=>'string'], + 'Collator::asort' => ['bool', '&rw_arr'=>'array', 'sort_flag='=>'int'], + 'Collator::compare' => ['int|false', 'string1'=>'string', 'string2'=>'string'], + 'Collator::create' => ['?Collator', 'locale'=>'string'], + 'Collator::getAttribute' => ['int|false', 'attr'=>'int'], + 'Collator::getErrorCode' => ['int'], + 'Collator::getErrorMessage' => ['string'], + 'Collator::getLocale' => ['string', 'type'=>'int'], + 'Collator::getSortKey' => ['string|false', 'string'=>'string'], + 'Collator::getStrength' => ['int|false'], + 'Collator::setAttribute' => ['bool', 'attr'=>'int', 'value'=>'int'], + 'Collator::setStrength' => ['bool', 'strength'=>'int'], + 'Collator::sort' => ['bool', '&rw_arr'=>'array', 'sort_flags='=>'int'], + 'Collator::sortWithSortKeys' => ['bool', '&rw_arr'=>'array'], + 'Collectable::isGarbage' => ['bool'], + 'Collectable::setGarbage' => ['void'], + 'Cond::broadcast' => ['bool', 'condition'=>'long'], + 'Cond::create' => ['long'], + 'Cond::destroy' => ['bool', 'condition'=>'long'], + 'Cond::signal' => ['bool', 'condition'=>'long'], + 'Cond::wait' => ['bool', 'condition'=>'long', 'mutex'=>'long', 'timeout='=>'long'], + 'Couchbase\AnalyticsQuery::__construct' => ['void'], + 'Couchbase\AnalyticsQuery::fromString' => ['Couchbase\AnalyticsQuery', 'statement'=>'string'], + 'Couchbase\BooleanFieldSearchQuery::__construct' => ['void'], + 'Couchbase\BooleanFieldSearchQuery::boost' => ['Couchbase\BooleanFieldSearchQuery', 'boost'=>'float'], + 'Couchbase\BooleanFieldSearchQuery::field' => ['Couchbase\BooleanFieldSearchQuery', 'field'=>'string'], + 'Couchbase\BooleanFieldSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\BooleanSearchQuery::__construct' => ['void'], + 'Couchbase\BooleanSearchQuery::boost' => ['Couchbase\BooleanSearchQuery', 'boost'=>'float'], + 'Couchbase\BooleanSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\BooleanSearchQuery::must' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], + 'Couchbase\BooleanSearchQuery::mustNot' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], + 'Couchbase\BooleanSearchQuery::should' => ['Couchbase\BooleanSearchQuery', '...queries='=>'array'], + 'Couchbase\Bucket::__construct' => ['void'], + 'Couchbase\Bucket::__get' => ['int', 'name'=>'string'], + 'Couchbase\Bucket::__set' => ['int', 'name'=>'string', 'value'=>'int'], + 'Couchbase\Bucket::append' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\Bucket::counter' => ['Couchbase\Document|array', 'ids'=>'array|string', 'delta='=>'int', 'options='=>'array'], + 'Couchbase\Bucket::decryptFields' => ['array', 'document'=>'array', 'fieldOptions'=>'', 'prefix='=>'string'], + 'Couchbase\Bucket::diag' => ['array', 'reportId='=>'string'], + 'Couchbase\Bucket::encryptFields' => ['array', 'document'=>'array', 'fieldOptions'=>'', 'prefix='=>'string'], + 'Couchbase\Bucket::get' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], + 'Couchbase\Bucket::getAndLock' => ['Couchbase\Document|array', 'ids'=>'array|string', 'lockTime'=>'int', 'options='=>'array'], + 'Couchbase\Bucket::getAndTouch' => ['Couchbase\Document|array', 'ids'=>'array|string', 'expiry'=>'int', 'options='=>'array'], + 'Couchbase\Bucket::getFromReplica' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], + 'Couchbase\Bucket::getName' => ['string'], + 'Couchbase\Bucket::insert' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\Bucket::listExists' => ['bool', 'id'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::listGet' => ['mixed', 'id'=>'string', 'index'=>'int'], + 'Couchbase\Bucket::listPush' => ['', 'id'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::listRemove' => ['', 'id'=>'string', 'index'=>'int'], + 'Couchbase\Bucket::listSet' => ['', 'id'=>'string', 'index'=>'int', 'value'=>'mixed'], + 'Couchbase\Bucket::listShift' => ['', 'id'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::listSize' => ['int', 'id'=>'string'], + 'Couchbase\Bucket::lookupIn' => ['Couchbase\LookupInBuilder', 'id'=>'string'], + 'Couchbase\Bucket::manager' => ['Couchbase\BucketManager'], + 'Couchbase\Bucket::mapAdd' => ['', 'id'=>'string', 'key'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::mapGet' => ['mixed', 'id'=>'string', 'key'=>'string'], + 'Couchbase\Bucket::mapRemove' => ['', 'id'=>'string', 'key'=>'string'], + 'Couchbase\Bucket::mapSize' => ['int', 'id'=>'string'], + 'Couchbase\Bucket::mutateIn' => ['Couchbase\MutateInBuilder', 'id'=>'string', 'cas'=>'string'], + 'Couchbase\Bucket::ping' => ['array', 'services='=>'int', 'reportId='=>'string'], + 'Couchbase\Bucket::prepend' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\Bucket::query' => ['object', 'query'=>'Couchbase\AnalyticsQuery|Couchbase\N1qlQuery|Couchbase\SearchQuery|Couchbase\SpatialViewQuery|Couchbase\ViewQuery', 'jsonAsArray='=>'bool'], + 'Couchbase\Bucket::queueAdd' => ['', 'id'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::queueExists' => ['bool', 'id'=>'string', 'value'=>'mixed'], + 'Couchbase\Bucket::queueRemove' => ['mixed', 'id'=>'string'], + 'Couchbase\Bucket::queueSize' => ['int', 'id'=>'string'], + 'Couchbase\Bucket::remove' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], + 'Couchbase\Bucket::replace' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\Bucket::retrieveIn' => ['Couchbase\DocumentFragment', 'id'=>'string', '...paths='=>'array'], + 'Couchbase\Bucket::setAdd' => ['', 'id'=>'string', 'value'=>'bool|float|int|string'], + 'Couchbase\Bucket::setExists' => ['bool', 'id'=>'string', 'value'=>'bool|float|int|string'], + 'Couchbase\Bucket::setRemove' => ['', 'id'=>'string', 'value'=>'bool|float|int|string'], + 'Couchbase\Bucket::setSize' => ['int', 'id'=>'string'], + 'Couchbase\Bucket::setTranscoder' => ['', 'encoder'=>'callable', 'decoder'=>'callable'], + 'Couchbase\Bucket::touch' => ['Couchbase\Document|array', 'ids'=>'array|string', 'expiry'=>'int', 'options='=>'array'], + 'Couchbase\Bucket::unlock' => ['Couchbase\Document|array', 'ids'=>'array|string', 'options='=>'array'], + 'Couchbase\Bucket::upsert' => ['Couchbase\Document|array', 'ids'=>'array|string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\BucketManager::__construct' => ['void'], + 'Couchbase\BucketManager::createN1qlIndex' => ['', 'name'=>'string', 'fields'=>'array', 'whereClause='=>'string', 'ignoreIfExist='=>'bool', 'defer='=>'bool'], + 'Couchbase\BucketManager::createN1qlPrimaryIndex' => ['', 'customName='=>'string', 'ignoreIfExist='=>'bool', 'defer='=>'bool'], + 'Couchbase\BucketManager::dropN1qlIndex' => ['', 'name'=>'string', 'ignoreIfNotExist='=>'bool'], + 'Couchbase\BucketManager::dropN1qlPrimaryIndex' => ['', 'customName='=>'string', 'ignoreIfNotExist='=>'bool'], + 'Couchbase\BucketManager::flush' => [''], + 'Couchbase\BucketManager::getDesignDocument' => ['array', 'name'=>'string'], + 'Couchbase\BucketManager::info' => ['array'], + 'Couchbase\BucketManager::insertDesignDocument' => ['', 'name'=>'string', 'document'=>'array'], + 'Couchbase\BucketManager::listDesignDocuments' => ['array'], + 'Couchbase\BucketManager::listN1qlIndexes' => ['array'], + 'Couchbase\BucketManager::removeDesignDocument' => ['', 'name'=>'string'], + 'Couchbase\BucketManager::upsertDesignDocument' => ['', 'name'=>'string', 'document'=>'array'], + 'Couchbase\ClassicAuthenticator::bucket' => ['', 'name'=>'string', 'password'=>'string'], + 'Couchbase\ClassicAuthenticator::cluster' => ['', 'username'=>'string', 'password'=>'string'], + 'Couchbase\Cluster::__construct' => ['void', 'connstr'=>'string'], + 'Couchbase\Cluster::authenticate' => ['null', 'authenticator'=>'Couchbase\Authenticator'], + 'Couchbase\Cluster::authenticateAs' => ['null', 'username'=>'string', 'password'=>'string'], + 'Couchbase\Cluster::manager' => ['Couchbase\ClusterManager', 'username='=>'string', 'password='=>'string'], + 'Couchbase\Cluster::openBucket' => ['Couchbase\Bucket', 'name='=>'string', 'password='=>'string'], + 'Couchbase\ClusterManager::__construct' => ['void'], + 'Couchbase\ClusterManager::createBucket' => ['', 'name'=>'string', 'options='=>'array'], + 'Couchbase\ClusterManager::getUser' => ['array', 'username'=>'string', 'domain='=>'int'], + 'Couchbase\ClusterManager::info' => ['array'], + 'Couchbase\ClusterManager::listBuckets' => ['array'], + 'Couchbase\ClusterManager::listUsers' => ['array', 'domain='=>'int'], + 'Couchbase\ClusterManager::removeBucket' => ['', 'name'=>'string'], + 'Couchbase\ClusterManager::removeUser' => ['', 'name'=>'string', 'domain='=>'int'], + 'Couchbase\ClusterManager::upsertUser' => ['', 'name'=>'string', 'settings'=>'Couchbase\UserSettings', 'domain='=>'int'], + 'Couchbase\ConjunctionSearchQuery::__construct' => ['void'], + 'Couchbase\ConjunctionSearchQuery::boost' => ['Couchbase\ConjunctionSearchQuery', 'boost'=>'float'], + 'Couchbase\ConjunctionSearchQuery::every' => ['Couchbase\ConjunctionSearchQuery', '...queries='=>'array'], + 'Couchbase\ConjunctionSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\DateRangeSearchFacet::__construct' => ['void'], + 'Couchbase\DateRangeSearchFacet::addRange' => ['Couchbase\DateRangeSearchFacet', 'name'=>'string', 'start'=>'int|string', 'end'=>'int|string'], + 'Couchbase\DateRangeSearchFacet::jsonSerialize' => ['array'], + 'Couchbase\DateRangeSearchQuery::__construct' => ['void'], + 'Couchbase\DateRangeSearchQuery::boost' => ['Couchbase\DateRangeSearchQuery', 'boost'=>'float'], + 'Couchbase\DateRangeSearchQuery::dateTimeParser' => ['Couchbase\DateRangeSearchQuery', 'dateTimeParser'=>'string'], + 'Couchbase\DateRangeSearchQuery::end' => ['Couchbase\DateRangeSearchQuery', 'end'=>'int|string', 'inclusive='=>'bool'], + 'Couchbase\DateRangeSearchQuery::field' => ['Couchbase\DateRangeSearchQuery', 'field'=>'string'], + 'Couchbase\DateRangeSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\DateRangeSearchQuery::start' => ['Couchbase\DateRangeSearchQuery', 'start'=>'int|string', 'inclusive='=>'bool'], + 'Couchbase\DisjunctionSearchQuery::__construct' => ['void'], + 'Couchbase\DisjunctionSearchQuery::boost' => ['Couchbase\DisjunctionSearchQuery', 'boost'=>'float'], + 'Couchbase\DisjunctionSearchQuery::either' => ['Couchbase\DisjunctionSearchQuery', '...queries='=>'array'], + 'Couchbase\DisjunctionSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\DisjunctionSearchQuery::min' => ['Couchbase\DisjunctionSearchQuery', 'min'=>'int'], + 'Couchbase\DocIdSearchQuery::__construct' => ['void'], + 'Couchbase\DocIdSearchQuery::boost' => ['Couchbase\DocIdSearchQuery', 'boost'=>'float'], + 'Couchbase\DocIdSearchQuery::docIds' => ['Couchbase\DocIdSearchQuery', '...documentIds='=>'array'], + 'Couchbase\DocIdSearchQuery::field' => ['Couchbase\DocIdSearchQuery', 'field'=>'string'], + 'Couchbase\DocIdSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\GeoBoundingBoxSearchQuery::__construct' => ['void'], + 'Couchbase\GeoBoundingBoxSearchQuery::boost' => ['Couchbase\GeoBoundingBoxSearchQuery', 'boost'=>'float'], + 'Couchbase\GeoBoundingBoxSearchQuery::field' => ['Couchbase\GeoBoundingBoxSearchQuery', 'field'=>'string'], + 'Couchbase\GeoBoundingBoxSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\GeoDistanceSearchQuery::__construct' => ['void'], + 'Couchbase\GeoDistanceSearchQuery::boost' => ['Couchbase\GeoDistanceSearchQuery', 'boost'=>'float'], + 'Couchbase\GeoDistanceSearchQuery::field' => ['Couchbase\GeoDistanceSearchQuery', 'field'=>'string'], + 'Couchbase\GeoDistanceSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\LookupInBuilder::__construct' => ['void'], + 'Couchbase\LookupInBuilder::execute' => ['Couchbase\DocumentFragment'], + 'Couchbase\LookupInBuilder::exists' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], + 'Couchbase\LookupInBuilder::get' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], + 'Couchbase\LookupInBuilder::getCount' => ['Couchbase\LookupInBuilder', 'path'=>'string', 'options='=>'array'], + 'Couchbase\MatchAllSearchQuery::__construct' => ['void'], + 'Couchbase\MatchAllSearchQuery::boost' => ['Couchbase\MatchAllSearchQuery', 'boost'=>'float'], + 'Couchbase\MatchAllSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\MatchNoneSearchQuery::__construct' => ['void'], + 'Couchbase\MatchNoneSearchQuery::boost' => ['Couchbase\MatchNoneSearchQuery', 'boost'=>'float'], + 'Couchbase\MatchNoneSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\MatchPhraseSearchQuery::__construct' => ['void'], + 'Couchbase\MatchPhraseSearchQuery::analyzer' => ['Couchbase\MatchPhraseSearchQuery', 'analyzer'=>'string'], + 'Couchbase\MatchPhraseSearchQuery::boost' => ['Couchbase\MatchPhraseSearchQuery', 'boost'=>'float'], + 'Couchbase\MatchPhraseSearchQuery::field' => ['Couchbase\MatchPhraseSearchQuery', 'field'=>'string'], + 'Couchbase\MatchPhraseSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\MatchSearchQuery::__construct' => ['void'], + 'Couchbase\MatchSearchQuery::analyzer' => ['Couchbase\MatchSearchQuery', 'analyzer'=>'string'], + 'Couchbase\MatchSearchQuery::boost' => ['Couchbase\MatchSearchQuery', 'boost'=>'float'], + 'Couchbase\MatchSearchQuery::field' => ['Couchbase\MatchSearchQuery', 'field'=>'string'], + 'Couchbase\MatchSearchQuery::fuzziness' => ['Couchbase\MatchSearchQuery', 'fuzziness'=>'int'], + 'Couchbase\MatchSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\MatchSearchQuery::prefixLength' => ['Couchbase\MatchSearchQuery', 'prefixLength'=>'int'], + 'Couchbase\MutateInBuilder::__construct' => ['void'], + 'Couchbase\MutateInBuilder::arrayAddUnique' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::arrayAppend' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::arrayAppendAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::arrayInsert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\MutateInBuilder::arrayInsertAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array'], + 'Couchbase\MutateInBuilder::arrayPrepend' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::arrayPrependAll' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'values'=>'array', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::counter' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'delta'=>'int', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::execute' => ['Couchbase\DocumentFragment'], + 'Couchbase\MutateInBuilder::insert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::modeDocument' => ['', 'mode'=>'int'], + 'Couchbase\MutateInBuilder::remove' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'options='=>'array'], + 'Couchbase\MutateInBuilder::replace' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array'], + 'Couchbase\MutateInBuilder::upsert' => ['Couchbase\MutateInBuilder', 'path'=>'string', 'value'=>'mixed', 'options='=>'array|bool'], + 'Couchbase\MutateInBuilder::withExpiry' => ['Couchbase\MutateInBuilder', 'expiry'=>'Couchbase\expiry'], + 'Couchbase\MutationState::__construct' => ['void'], + 'Couchbase\MutationState::add' => ['', 'source'=>'Couchbase\Document|Couchbase\DocumentFragment|array'], + 'Couchbase\MutationState::from' => ['Couchbase\MutationState', 'source'=>'Couchbase\Document|Couchbase\DocumentFragment|array'], + 'Couchbase\MutationToken::__construct' => ['void'], + 'Couchbase\MutationToken::bucketName' => ['string'], + 'Couchbase\MutationToken::from' => ['', 'bucketName'=>'string', 'vbucketId'=>'int', 'vbucketUuid'=>'string', 'sequenceNumber'=>'string'], + 'Couchbase\MutationToken::sequenceNumber' => ['string'], + 'Couchbase\MutationToken::vbucketId' => ['int'], + 'Couchbase\MutationToken::vbucketUuid' => ['string'], + 'Couchbase\N1qlIndex::__construct' => ['void'], + 'Couchbase\N1qlQuery::__construct' => ['void'], + 'Couchbase\N1qlQuery::adhoc' => ['Couchbase\N1qlQuery', 'adhoc'=>'bool'], + 'Couchbase\N1qlQuery::consistency' => ['Couchbase\N1qlQuery', 'consistency'=>'int'], + 'Couchbase\N1qlQuery::consistentWith' => ['Couchbase\N1qlQuery', 'state'=>'Couchbase\MutationState'], + 'Couchbase\N1qlQuery::crossBucket' => ['Couchbase\N1qlQuery', 'crossBucket'=>'bool'], + 'Couchbase\N1qlQuery::fromString' => ['Couchbase\N1qlQuery', 'statement'=>'string'], + 'Couchbase\N1qlQuery::maxParallelism' => ['Couchbase\N1qlQuery', 'maxParallelism'=>'int'], + 'Couchbase\N1qlQuery::namedParams' => ['Couchbase\N1qlQuery', 'params'=>'array'], + 'Couchbase\N1qlQuery::pipelineBatch' => ['Couchbase\N1qlQuery', 'pipelineBatch'=>'int'], + 'Couchbase\N1qlQuery::pipelineCap' => ['Couchbase\N1qlQuery', 'pipelineCap'=>'int'], + 'Couchbase\N1qlQuery::positionalParams' => ['Couchbase\N1qlQuery', 'params'=>'array'], + 'Couchbase\N1qlQuery::profile' => ['', 'profileType'=>'string'], + 'Couchbase\N1qlQuery::readonly' => ['Couchbase\N1qlQuery', 'readonly'=>'bool'], + 'Couchbase\N1qlQuery::scanCap' => ['Couchbase\N1qlQuery', 'scanCap'=>'int'], + 'Couchbase\NumericRangeSearchFacet::__construct' => ['void'], + 'Couchbase\NumericRangeSearchFacet::addRange' => ['Couchbase\NumericRangeSearchFacet', 'name'=>'string', 'min'=>'float', 'max'=>'float'], + 'Couchbase\NumericRangeSearchFacet::jsonSerialize' => ['array'], + 'Couchbase\NumericRangeSearchQuery::__construct' => ['void'], + 'Couchbase\NumericRangeSearchQuery::boost' => ['Couchbase\NumericRangeSearchQuery', 'boost'=>'float'], + 'Couchbase\NumericRangeSearchQuery::field' => ['Couchbase\NumericRangeSearchQuery', 'field'=>'string'], + 'Couchbase\NumericRangeSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\NumericRangeSearchQuery::max' => ['Couchbase\NumericRangeSearchQuery', 'max'=>'float', 'inclusive='=>'bool'], + 'Couchbase\NumericRangeSearchQuery::min' => ['Couchbase\NumericRangeSearchQuery', 'min'=>'float', 'inclusive='=>'bool'], + 'Couchbase\PasswordAuthenticator::password' => ['Couchbase\PasswordAuthenticator', 'password'=>'string'], + 'Couchbase\PasswordAuthenticator::username' => ['Couchbase\PasswordAuthenticator', 'username'=>'string'], + 'Couchbase\PhraseSearchQuery::__construct' => ['void'], + 'Couchbase\PhraseSearchQuery::boost' => ['Couchbase\PhraseSearchQuery', 'boost'=>'float'], + 'Couchbase\PhraseSearchQuery::field' => ['Couchbase\PhraseSearchQuery', 'field'=>'string'], + 'Couchbase\PhraseSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\PrefixSearchQuery::__construct' => ['void'], + 'Couchbase\PrefixSearchQuery::boost' => ['Couchbase\PrefixSearchQuery', 'boost'=>'float'], + 'Couchbase\PrefixSearchQuery::field' => ['Couchbase\PrefixSearchQuery', 'field'=>'string'], + 'Couchbase\PrefixSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\QueryStringSearchQuery::__construct' => ['void'], + 'Couchbase\QueryStringSearchQuery::boost' => ['Couchbase\QueryStringSearchQuery', 'boost'=>'float'], + 'Couchbase\QueryStringSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\RegexpSearchQuery::__construct' => ['void'], + 'Couchbase\RegexpSearchQuery::boost' => ['Couchbase\RegexpSearchQuery', 'boost'=>'float'], + 'Couchbase\RegexpSearchQuery::field' => ['Couchbase\RegexpSearchQuery', 'field'=>'string'], + 'Couchbase\RegexpSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\SearchQuery::__construct' => ['void', 'indexName'=>'string', 'queryPart'=>'Couchbase\SearchQueryPart'], + 'Couchbase\SearchQuery::addFacet' => ['Couchbase\SearchQuery', 'name'=>'string', 'facet'=>'Couchbase\SearchFacet'], + 'Couchbase\SearchQuery::boolean' => ['Couchbase\BooleanSearchQuery'], + 'Couchbase\SearchQuery::booleanField' => ['Couchbase\BooleanFieldSearchQuery', 'value'=>'bool'], + 'Couchbase\SearchQuery::conjuncts' => ['Couchbase\ConjunctionSearchQuery', '...queries='=>'array'], + 'Couchbase\SearchQuery::consistentWith' => ['Couchbase\SearchQuery', 'state'=>'Couchbase\MutationState'], + 'Couchbase\SearchQuery::dateRange' => ['Couchbase\DateRangeSearchQuery'], + 'Couchbase\SearchQuery::dateRangeFacet' => ['Couchbase\DateRangeSearchFacet', 'field'=>'string', 'limit'=>'int'], + 'Couchbase\SearchQuery::disjuncts' => ['Couchbase\DisjunctionSearchQuery', '...queries='=>'array'], + 'Couchbase\SearchQuery::docId' => ['Couchbase\DocIdSearchQuery', '...documentIds='=>'array'], + 'Couchbase\SearchQuery::explain' => ['Couchbase\SearchQuery', 'explain'=>'bool'], + 'Couchbase\SearchQuery::fields' => ['Couchbase\SearchQuery', '...fields='=>'array'], + 'Couchbase\SearchQuery::geoBoundingBox' => ['Couchbase\GeoBoundingBoxSearchQuery', 'topLeftLongitude'=>'float', 'topLeftLatitude'=>'float', 'bottomRightLongitude'=>'float', 'bottomRightLatitude'=>'float'], + 'Couchbase\SearchQuery::geoDistance' => ['Couchbase\GeoDistanceSearchQuery', 'longitude'=>'float', 'latitude'=>'float', 'distance'=>'string'], + 'Couchbase\SearchQuery::highlight' => ['Couchbase\SearchQuery', 'style'=>'string', '...fields='=>'array'], + 'Couchbase\SearchQuery::jsonSerialize' => ['array'], + 'Couchbase\SearchQuery::limit' => ['Couchbase\SearchQuery', 'limit'=>'int'], + 'Couchbase\SearchQuery::match' => ['Couchbase\MatchSearchQuery', 'match'=>'string'], + 'Couchbase\SearchQuery::matchAll' => ['Couchbase\MatchAllSearchQuery'], + 'Couchbase\SearchQuery::matchNone' => ['Couchbase\MatchNoneSearchQuery'], + 'Couchbase\SearchQuery::matchPhrase' => ['Couchbase\MatchPhraseSearchQuery', '...terms='=>'array'], + 'Couchbase\SearchQuery::numericRange' => ['Couchbase\NumericRangeSearchQuery'], + 'Couchbase\SearchQuery::numericRangeFacet' => ['Couchbase\NumericRangeSearchFacet', 'field'=>'string', 'limit'=>'int'], + 'Couchbase\SearchQuery::prefix' => ['Couchbase\PrefixSearchQuery', 'prefix'=>'string'], + 'Couchbase\SearchQuery::queryString' => ['Couchbase\QueryStringSearchQuery', 'queryString'=>'string'], + 'Couchbase\SearchQuery::regexp' => ['Couchbase\RegexpSearchQuery', 'regexp'=>'string'], + 'Couchbase\SearchQuery::serverSideTimeout' => ['Couchbase\SearchQuery', 'serverSideTimeout'=>'int'], + 'Couchbase\SearchQuery::skip' => ['Couchbase\SearchQuery', 'skip'=>'int'], + 'Couchbase\SearchQuery::sort' => ['Couchbase\SearchQuery', '...sort='=>'array'], + 'Couchbase\SearchQuery::term' => ['Couchbase\TermSearchQuery', 'term'=>'string'], + 'Couchbase\SearchQuery::termFacet' => ['Couchbase\TermSearchFacet', 'field'=>'string', 'limit'=>'int'], + 'Couchbase\SearchQuery::termRange' => ['Couchbase\TermRangeSearchQuery'], + 'Couchbase\SearchQuery::wildcard' => ['Couchbase\WildcardSearchQuery', 'wildcard'=>'string'], + 'Couchbase\SearchSort::__construct' => ['void'], + 'Couchbase\SearchSort::field' => ['Couchbase\SearchSortField', 'field'=>'string'], + 'Couchbase\SearchSort::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], + 'Couchbase\SearchSort::id' => ['Couchbase\SearchSortId'], + 'Couchbase\SearchSort::score' => ['Couchbase\SearchSortScore'], + 'Couchbase\SearchSortField::__construct' => ['void'], + 'Couchbase\SearchSortField::descending' => ['Couchbase\SearchSortField', 'descending'=>'bool'], + 'Couchbase\SearchSortField::field' => ['Couchbase\SearchSortField', 'field'=>'string'], + 'Couchbase\SearchSortField::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], + 'Couchbase\SearchSortField::id' => ['Couchbase\SearchSortId'], + 'Couchbase\SearchSortField::jsonSerialize' => ['mixed'], + 'Couchbase\SearchSortField::missing' => ['', 'missing'=>'string'], + 'Couchbase\SearchSortField::mode' => ['', 'mode'=>'string'], + 'Couchbase\SearchSortField::score' => ['Couchbase\SearchSortScore'], + 'Couchbase\SearchSortField::type' => ['', 'type'=>'string'], + 'Couchbase\SearchSortGeoDistance::__construct' => ['void'], + 'Couchbase\SearchSortGeoDistance::descending' => ['Couchbase\SearchSortGeoDistance', 'descending'=>'bool'], + 'Couchbase\SearchSortGeoDistance::field' => ['Couchbase\SearchSortField', 'field'=>'string'], + 'Couchbase\SearchSortGeoDistance::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], + 'Couchbase\SearchSortGeoDistance::id' => ['Couchbase\SearchSortId'], + 'Couchbase\SearchSortGeoDistance::jsonSerialize' => ['mixed'], + 'Couchbase\SearchSortGeoDistance::score' => ['Couchbase\SearchSortScore'], + 'Couchbase\SearchSortGeoDistance::unit' => ['Couchbase\SearchSortGeoDistance', 'unit'=>'string'], + 'Couchbase\SearchSortId::__construct' => ['void'], + 'Couchbase\SearchSortId::descending' => ['Couchbase\SearchSortId', 'descending'=>'bool'], + 'Couchbase\SearchSortId::field' => ['Couchbase\SearchSortField', 'field'=>'string'], + 'Couchbase\SearchSortId::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], + 'Couchbase\SearchSortId::id' => ['Couchbase\SearchSortId'], + 'Couchbase\SearchSortId::jsonSerialize' => ['mixed'], + 'Couchbase\SearchSortId::score' => ['Couchbase\SearchSortScore'], + 'Couchbase\SearchSortScore::__construct' => ['void'], + 'Couchbase\SearchSortScore::descending' => ['Couchbase\SearchSortScore', 'descending'=>'bool'], + 'Couchbase\SearchSortScore::field' => ['Couchbase\SearchSortField', 'field'=>'string'], + 'Couchbase\SearchSortScore::geoDistance' => ['Couchbase\SearchSortGeoDistance', 'field'=>'string', 'longitude'=>'float', 'latitude'=>'float'], + 'Couchbase\SearchSortScore::id' => ['Couchbase\SearchSortId'], + 'Couchbase\SearchSortScore::jsonSerialize' => ['mixed'], + 'Couchbase\SearchSortScore::score' => ['Couchbase\SearchSortScore'], + 'Couchbase\SpatialViewQuery::__construct' => ['void'], + 'Couchbase\SpatialViewQuery::bbox' => ['Couchbase\SpatialViewQuery', 'bbox'=>'array'], + 'Couchbase\SpatialViewQuery::consistency' => ['Couchbase\SpatialViewQuery', 'consistency'=>'int'], + 'Couchbase\SpatialViewQuery::custom' => ['', 'customParameters'=>'array'], + 'Couchbase\SpatialViewQuery::encode' => ['array'], + 'Couchbase\SpatialViewQuery::endRange' => ['Couchbase\SpatialViewQuery', 'range'=>'array'], + 'Couchbase\SpatialViewQuery::limit' => ['Couchbase\SpatialViewQuery', 'limit'=>'int'], + 'Couchbase\SpatialViewQuery::order' => ['Couchbase\SpatialViewQuery', 'order'=>'int'], + 'Couchbase\SpatialViewQuery::skip' => ['Couchbase\SpatialViewQuery', 'skip'=>'int'], + 'Couchbase\SpatialViewQuery::startRange' => ['Couchbase\SpatialViewQuery', 'range'=>'array'], + 'Couchbase\TermRangeSearchQuery::__construct' => ['void'], + 'Couchbase\TermRangeSearchQuery::boost' => ['Couchbase\TermRangeSearchQuery', 'boost'=>'float'], + 'Couchbase\TermRangeSearchQuery::field' => ['Couchbase\TermRangeSearchQuery', 'field'=>'string'], + 'Couchbase\TermRangeSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\TermRangeSearchQuery::max' => ['Couchbase\TermRangeSearchQuery', 'max'=>'string', 'inclusive='=>'bool'], + 'Couchbase\TermRangeSearchQuery::min' => ['Couchbase\TermRangeSearchQuery', 'min'=>'string', 'inclusive='=>'bool'], + 'Couchbase\TermSearchFacet::__construct' => ['void'], + 'Couchbase\TermSearchFacet::jsonSerialize' => ['array'], + 'Couchbase\TermSearchQuery::__construct' => ['void'], + 'Couchbase\TermSearchQuery::boost' => ['Couchbase\TermSearchQuery', 'boost'=>'float'], + 'Couchbase\TermSearchQuery::field' => ['Couchbase\TermSearchQuery', 'field'=>'string'], + 'Couchbase\TermSearchQuery::fuzziness' => ['Couchbase\TermSearchQuery', 'fuzziness'=>'int'], + 'Couchbase\TermSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\TermSearchQuery::prefixLength' => ['Couchbase\TermSearchQuery', 'prefixLength'=>'int'], + 'Couchbase\UserSettings::fullName' => ['Couchbase\UserSettings', 'fullName'=>'string'], + 'Couchbase\UserSettings::password' => ['Couchbase\UserSettings', 'password'=>'string'], + 'Couchbase\UserSettings::role' => ['Couchbase\UserSettings', 'role'=>'string', 'bucket='=>'string'], + 'Couchbase\ViewQuery::__construct' => ['void'], + 'Couchbase\ViewQuery::consistency' => ['Couchbase\ViewQuery', 'consistency'=>'int'], + 'Couchbase\ViewQuery::custom' => ['Couchbase\ViewQuery', 'customParameters'=>'array'], + 'Couchbase\ViewQuery::encode' => ['array'], + 'Couchbase\ViewQuery::from' => ['Couchbase\ViewQuery', 'designDocumentName'=>'string', 'viewName'=>'string'], + 'Couchbase\ViewQuery::fromSpatial' => ['Couchbase\SpatialViewQuery', 'designDocumentName'=>'string', 'viewName'=>'string'], + 'Couchbase\ViewQuery::group' => ['Couchbase\ViewQuery', 'group'=>'bool'], + 'Couchbase\ViewQuery::groupLevel' => ['Couchbase\ViewQuery', 'groupLevel'=>'int'], + 'Couchbase\ViewQuery::idRange' => ['Couchbase\ViewQuery', 'startKeyDocumentId'=>'string', 'endKeyDocumentId'=>'string'], + 'Couchbase\ViewQuery::key' => ['Couchbase\ViewQuery', 'key'=>'mixed'], + 'Couchbase\ViewQuery::keys' => ['Couchbase\ViewQuery', 'keys'=>'array'], + 'Couchbase\ViewQuery::limit' => ['Couchbase\ViewQuery', 'limit'=>'int'], + 'Couchbase\ViewQuery::order' => ['Couchbase\ViewQuery', 'order'=>'int'], + 'Couchbase\ViewQuery::range' => ['Couchbase\ViewQuery', 'startKey'=>'mixed', 'endKey'=>'mixed', 'inclusiveEnd='=>'bool'], + 'Couchbase\ViewQuery::reduce' => ['Couchbase\ViewQuery', 'reduce'=>'bool'], + 'Couchbase\ViewQuery::skip' => ['Couchbase\ViewQuery', 'skip'=>'int'], + 'Couchbase\ViewQueryEncodable::encode' => ['array'], + 'Couchbase\WildcardSearchQuery::__construct' => ['void'], + 'Couchbase\WildcardSearchQuery::boost' => ['Couchbase\WildcardSearchQuery', 'boost'=>'float'], + 'Couchbase\WildcardSearchQuery::field' => ['Couchbase\WildcardSearchQuery', 'field'=>'string'], + 'Couchbase\WildcardSearchQuery::jsonSerialize' => ['array'], + 'Couchbase\basicDecoderV1' => ['mixed', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int', 'options'=>'array'], + 'Couchbase\basicEncoderV1' => ['array', 'value'=>'mixed', 'options'=>'array'], + 'Couchbase\defaultDecoder' => ['mixed', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int'], + 'Couchbase\defaultEncoder' => ['array', 'value'=>'mixed'], + 'Couchbase\fastlzCompress' => ['string', 'data'=>'string'], + 'Couchbase\fastlzDecompress' => ['string', 'data'=>'string'], + 'Couchbase\passthruDecoder' => ['string', 'bytes'=>'string', 'flags'=>'int', 'datatype'=>'int'], + 'Couchbase\passthruEncoder' => ['array', 'value'=>'string'], + 'Couchbase\zlibCompress' => ['string', 'data'=>'string'], + 'Couchbase\zlibDecompress' => ['string', 'data'=>'string'], + 'Countable::count' => ['int'], + 'DOMAttr::__construct' => ['void', 'name'=>'string', 'value='=>'string'], + 'DOMAttr::getLineNo' => ['int'], + 'DOMAttr::getNodePath' => ['?string'], + 'DOMAttr::hasAttributes' => ['bool'], + 'DOMAttr::hasChildNodes' => ['bool'], + 'DOMAttr::insertBefore' => ['DOMNode', 'newnode'=>'DOMNode', 'refnode='=>'DOMNode'], + 'DOMAttr::isDefaultNamespace' => ['bool', 'namespaceuri'=>'string'], + 'DOMAttr::isId' => ['bool'], + 'DOMAttr::isSameNode' => ['bool', 'node'=>'DOMNode'], + 'DOMAttr::isSupported' => ['bool', 'feature'=>'string', 'version'=>'string'], + 'DOMAttr::lookupNamespaceUri' => ['string|null', 'prefix'=>'string|null'], + 'DOMAttr::lookupPrefix' => ['string|null', 'namespaceuri'=>'string'], + 'DOMAttr::normalize' => ['void'], + 'DOMAttr::removeChild' => ['DOMNode', 'oldnode'=>'DOMNode'], + 'DOMAttr::replaceChild' => ['DOMNode', 'newnode'=>'DOMNode', 'oldnode'=>'DOMNode'], + 'DOMCdataSection::__construct' => ['void', 'value'=>'string'], + 'DOMCharacterData::appendData' => ['true', 'data'=>'string'], + 'DOMCharacterData::deleteData' => ['bool', 'offset'=>'int', 'count'=>'int'], + 'DOMCharacterData::insertData' => ['bool', 'offset'=>'int', 'data'=>'string'], + 'DOMCharacterData::replaceData' => ['bool', 'offset'=>'int', 'count'=>'int', 'data'=>'string'], + 'DOMCharacterData::substringData' => ['string', 'offset'=>'int', 'count'=>'int'], + 'DOMComment::__construct' => ['void', 'value='=>'string'], + 'DOMDocument::__construct' => ['void', 'version='=>'string', 'encoding='=>'string'], + 'DOMDocument::createAttribute' => ['DOMAttr|false', 'name'=>'string'], + 'DOMDocument::createAttributeNS' => ['DOMAttr|false', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string'], + 'DOMDocument::createCDATASection' => ['DOMCDATASection|false', 'data'=>'string'], + 'DOMDocument::createComment' => ['DOMComment|false', 'data'=>'string'], + 'DOMDocument::createDocumentFragment' => ['DOMDocumentFragment|false'], + 'DOMDocument::createElement' => ['DOMElement|false', 'name'=>'string', 'value='=>'string'], + 'DOMDocument::createElementNS' => ['DOMElement|false', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string', 'value='=>'string'], + 'DOMDocument::createEntityReference' => ['DOMEntityReference|false', 'name'=>'string'], + 'DOMDocument::createProcessingInstruction' => ['DOMProcessingInstruction|false', 'target'=>'string', 'data='=>'string'], + 'DOMDocument::createTextNode' => ['DOMText|false', 'content'=>'string'], + 'DOMDocument::getElementById' => ['?DOMElement', 'elementid'=>'string'], + 'DOMDocument::getElementsByTagName' => ['DOMNodeList', 'name'=>'string'], + 'DOMDocument::getElementsByTagNameNS' => ['DOMNodeList', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMDocument::importNode' => ['DOMNode|false', 'importednode'=>'DOMNode', 'deep='=>'bool'], + 'DOMDocument::load' => ['DOMDocument|bool', 'filename'=>'string', 'options='=>'int'], + 'DOMDocument::loadHTML' => ['bool', 'source'=>'non-empty-string', 'options='=>'int'], + 'DOMDocument::loadHTMLFile' => ['bool', 'filename'=>'string', 'options='=>'int'], + 'DOMDocument::loadXML' => ['DOMDocument|bool', 'source'=>'non-empty-string', 'options='=>'int'], + 'DOMDocument::normalizeDocument' => ['void'], + 'DOMDocument::registerNodeClass' => ['bool', 'baseclass'=>'string', 'extendedclass'=>'string'], + 'DOMDocument::relaxNGValidate' => ['bool', 'filename'=>'string'], + 'DOMDocument::relaxNGValidateSource' => ['bool', 'source'=>'string'], + 'DOMDocument::save' => ['int|false', 'filename'=>'string', 'options='=>'int'], + 'DOMDocument::saveHTML' => ['string|false', 'node='=>'?DOMNode'], + 'DOMDocument::saveHTMLFile' => ['int|false', 'filename'=>'string'], + 'DOMDocument::saveXML' => ['string|false', 'node='=>'?DOMNode', 'options='=>'int'], + 'DOMDocument::schemaValidate' => ['bool', 'filename'=>'string', 'flags='=>'int'], + 'DOMDocument::schemaValidateSource' => ['bool', 'source'=>'string', 'flags='=>'int'], + 'DOMDocument::validate' => ['bool'], + 'DOMDocument::xinclude' => ['int', 'options='=>'int'], + 'DOMDocumentFragment::__construct' => ['void'], + 'DOMDocumentFragment::appendXML' => ['bool', 'data'=>'string'], + 'DOMElement::__construct' => ['void', 'name'=>'string', 'value='=>'string', 'uri='=>'string'], + 'DOMElement::getAttribute' => ['string', 'name'=>'string'], + 'DOMElement::getAttributeNS' => ['string', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMElement::getAttributeNode' => ['DOMAttr', 'name'=>'string'], + 'DOMElement::getAttributeNodeNS' => ['DOMAttr', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMElement::getElementsByTagName' => ['DOMNodeList', 'name'=>'string'], + 'DOMElement::getElementsByTagNameNS' => ['DOMNodeList', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMElement::hasAttribute' => ['bool', 'name'=>'string'], + 'DOMElement::hasAttributeNS' => ['bool', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMElement::removeAttribute' => ['bool', 'name'=>'string'], + 'DOMElement::removeAttributeNS' => ['bool', 'namespaceuri'=>'string|null', 'localname'=>'string'], + 'DOMElement::removeAttributeNode' => ['bool', 'oldnode'=>'DOMAttr'], + 'DOMElement::setAttribute' => ['DOMAttr|false', 'name'=>'string', 'value'=>'string'], + 'DOMElement::setAttributeNS' => ['void', 'namespaceuri'=>'string|null', 'qualifiedname'=>'string', 'value'=>'string'], + 'DOMElement::setAttributeNode' => ['?DOMAttr', 'attr'=>'DOMAttr'], + 'DOMElement::setAttributeNodeNS' => ['DOMAttr', 'attr'=>'DOMAttr'], + 'DOMElement::setIdAttribute' => ['void', 'name'=>'string', 'isid'=>'bool'], + 'DOMElement::setIdAttributeNS' => ['void', 'namespaceuri'=>'string', 'localname'=>'string', 'isid'=>'bool'], + 'DOMElement::setIdAttributeNode' => ['void', 'attr'=>'DOMAttr', 'isid'=>'bool'], + 'DOMEntityReference::__construct' => ['void', 'name'=>'string'], + 'DOMImplementation::__construct' => ['void'], + 'DOMImplementation::createDocument' => ['DOMDocument', 'namespaceuri='=>'string', 'qualifiedname='=>'string', 'doctype='=>'DOMDocumentType'], + 'DOMImplementation::createDocumentType' => ['DOMDocumentType', 'qualifiedname='=>'string', 'publicid='=>'string', 'systemid='=>'string'], + 'DOMImplementation::hasFeature' => ['bool', 'feature'=>'string', 'version'=>'string'], + 'DOMNamedNodeMap::count' => ['int'], + 'DOMNamedNodeMap::getNamedItem' => ['?DOMNode', 'name'=>'string'], + 'DOMNamedNodeMap::getNamedItemNS' => ['?DOMNode', 'namespaceuri'=>'string', 'localname'=>'string'], + 'DOMNamedNodeMap::item' => ['?DOMNode', 'index'=>'int'], + 'DOMNode::C14N' => ['string', 'exclusive='=>'bool', 'with_comments='=>'bool', 'xpath='=>'array', 'ns_prefixes='=>'array'], + 'DOMNode::C14NFile' => ['int|false', 'uri='=>'string', 'exclusive='=>'bool', 'with_comments='=>'bool', 'xpath='=>'array', 'ns_prefixes='=>'array'], + 'DOMNode::appendChild' => ['DOMNode', 'newnode'=>'DOMNode'], + 'DOMNode::cloneNode' => ['DOMNode', 'deep='=>'bool'], + 'DOMNode::getLineNo' => ['int'], + 'DOMNode::getNodePath' => ['?string'], + 'DOMNode::hasAttributes' => ['bool'], + 'DOMNode::hasChildNodes' => ['bool'], + 'DOMNode::insertBefore' => ['DOMNode', 'newnode'=>'DOMNode', 'refnode='=>'DOMNode|null'], + 'DOMNode::isDefaultNamespace' => ['bool', 'namespaceuri'=>'string'], + 'DOMNode::isSameNode' => ['bool', 'node'=>'DOMNode'], + 'DOMNode::isSupported' => ['bool', 'feature'=>'string', 'version'=>'string'], + 'DOMNode::lookupNamespaceURI' => ['string|null', 'prefix'=>'string|null'], + 'DOMNode::lookupPrefix' => ['string|null', 'namespaceuri'=>'string'], + 'DOMNode::normalize' => ['void'], + 'DOMNode::removeChild' => ['DOMNode', 'oldnode'=>'DOMNode'], + 'DOMNode::replaceChild' => ['DOMNode|false', 'newnode'=>'DOMNode', 'oldnode'=>'DOMNode'], + 'DOMNodeList::item' => ['?DOMNode', 'index'=>'int'], + 'DOMProcessingInstruction::__construct' => ['void', 'name'=>'string', 'value'=>'string'], + 'DOMText::__construct' => ['void', 'value='=>'string'], + 'DOMText::isElementContentWhitespace' => ['bool'], + 'DOMText::isWhitespaceInElementContent' => ['bool'], + 'DOMText::splitText' => ['DOMText', 'offset'=>'int'], + 'DOMXPath::__construct' => ['void', 'doc'=>'DOMDocument'], + 'DOMXPath::evaluate' => ['mixed', 'expression'=>'string', 'contextnode='=>'?DOMNode', 'registernodens='=>'bool'], + 'DOMXPath::query' => ['DOMNodeList|false', 'expression'=>'string', 'contextnode='=>'DOMNode|null', 'registernodens='=>'bool'], + 'DOMXPath::registerNamespace' => ['bool', 'prefix'=>'string', 'namespaceuri'=>'string'], + 'DOMXPath::registerPhpFunctions' => ['void', 'restrict='=>'mixed'], + 'DOTNET::__call' => ['mixed', 'name'=>'string', 'args'=>''], + 'DOTNET::__construct' => ['void', 'assembly_name'=>'string', 'datatype_name'=>'string', 'codepage='=>'int'], + 'DOTNET::__get' => ['mixed', 'name'=>'string'], + 'DOTNET::__set' => ['void', 'name'=>'string', 'value'=>''], + 'DateInterval::__construct' => ['void', 'spec'=>'string'], + 'DateInterval::__set_state' => ['DateInterval', 'array'=>'array'], + 'DateInterval::__wakeup' => ['void'], + 'DateInterval::createFromDateString' => ['DateInterval|false', 'time'=>'string'], + 'DateInterval::format' => ['string', 'format'=>'string'], + 'DatePeriod::__construct' => ['void', 'start'=>'DateTimeInterface', 'interval'=>'DateInterval', 'recur'=>'int', 'options='=>'int'], + 'DatePeriod::__construct\'1' => ['void', 'start'=>'DateTimeInterface', 'interval'=>'DateInterval', 'end'=>'DateTimeInterface', 'options='=>'int'], + 'DatePeriod::__construct\'2' => ['void', 'iso'=>'string', 'options='=>'int'], + 'DatePeriod::__wakeup' => ['void'], + 'DatePeriod::getDateInterval' => ['DateInterval'], + 'DatePeriod::getEndDate' => ['?DateTimeInterface'], + 'DatePeriod::getStartDate' => ['DateTimeInterface'], + 'DateTime::__construct' => ['void', 'time='=>'string'], + 'DateTime::__construct\'1' => ['void', 'time'=>'?string', 'timezone'=>'?DateTimeZone'], + 'DateTime::__wakeup' => ['void'], + 'DateTime::add' => ['static', 'interval'=>'DateInterval'], + 'DateTime::createFromFormat' => ['static|false', 'format'=>'string', 'time'=>'string', 'timezone='=>'?DateTimeZone'], + 'DateTime::diff' => ['DateInterval|false', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], + 'DateTime::format' => ['string|false', 'format'=>'string'], + 'DateTime::getLastErrors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], + 'DateTime::getOffset' => ['int'], + 'DateTime::getTimestamp' => ['int|false'], + 'DateTime::getTimezone' => ['DateTimeZone|false'], + 'DateTime::modify' => ['static|false', 'modify'=>'string'], + 'DateTime::setDate' => ['static', 'year'=>'int', 'month'=>'int', 'day'=>'int'], + 'DateTime::setISODate' => ['static', 'year'=>'int', 'week'=>'int', 'day='=>'int'], + 'DateTime::setTime' => ['static|false', 'hour'=>'int', 'minute'=>'int', 'second='=>'int', 'microseconds='=>'int'], + 'DateTime::setTimestamp' => ['static', 'unixtimestamp'=>'int'], + 'DateTime::setTimezone' => ['static', 'timezone'=>'DateTimeZone'], + 'DateTime::sub' => ['static', 'interval'=>'DateInterval'], + 'DateTimeImmutable::__wakeup' => ['void'], + 'DateTimeImmutable::getLastErrors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], + 'DateTimeInterface::diff' => ['DateInterval', 'datetime2'=>'DateTimeInterface', 'absolute='=>'bool'], + 'DateTimeInterface::format' => ['string', 'format'=>'string'], + 'DateTimeInterface::getOffset' => ['int'], + 'DateTimeInterface::getTimestamp' => ['int|false'], + 'DateTimeInterface::getTimezone' => ['DateTimeZone|false'], + 'DateTimeZone::__construct' => ['void', 'timezone'=>'string'], + 'DateTimeZone::__set_state' => ['DateTimeZone', 'array'=>'array'], + 'DateTimeZone::__wakeup' => ['void'], + 'DateTimeZone::getLocation' => ['array|false'], + 'DateTimeZone::getName' => ['string'], + 'DateTimeZone::getOffset' => ['int|false', 'datetime'=>'DateTimeInterface'], + 'DateTimeZone::getTransitions' => ['list|false', 'timestamp_begin='=>'int', 'timestamp_end='=>'int'], + 'DateTimeZone::listAbbreviations' => ['array>'], + 'DateTimeZone::listIdentifiers' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string'], + 'Directory::close' => ['void', 'dir_handle='=>'resource'], + 'Directory::read' => ['string|false', 'dir_handle='=>'resource'], + 'Directory::rewind' => ['void', 'dir_handle='=>'resource'], + 'DirectoryIterator::__construct' => ['void', 'path'=>'string'], + 'DirectoryIterator::__toString' => ['string'], + 'DirectoryIterator::current' => ['DirectoryIterator'], + 'DirectoryIterator::getATime' => ['int'], + 'DirectoryIterator::getBasename' => ['string', 'suffix='=>'string'], + 'DirectoryIterator::getCTime' => ['int'], + 'DirectoryIterator::getExtension' => ['string'], + 'DirectoryIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'DirectoryIterator::getFilename' => ['string'], + 'DirectoryIterator::getGroup' => ['int'], + 'DirectoryIterator::getInode' => ['int'], + 'DirectoryIterator::getLinkTarget' => ['string'], + 'DirectoryIterator::getMTime' => ['int'], + 'DirectoryIterator::getOwner' => ['int'], + 'DirectoryIterator::getPath' => ['string'], + 'DirectoryIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'DirectoryIterator::getPathname' => ['string'], + 'DirectoryIterator::getPerms' => ['int'], + 'DirectoryIterator::getRealPath' => ['string'], + 'DirectoryIterator::getSize' => ['int'], + 'DirectoryIterator::getType' => ['string'], + 'DirectoryIterator::isDir' => ['bool'], + 'DirectoryIterator::isDot' => ['bool'], + 'DirectoryIterator::isExecutable' => ['bool'], + 'DirectoryIterator::isFile' => ['bool'], + 'DirectoryIterator::isLink' => ['bool'], + 'DirectoryIterator::isReadable' => ['bool'], + 'DirectoryIterator::isWritable' => ['bool'], + 'DirectoryIterator::key' => ['string'], + 'DirectoryIterator::next' => ['void'], + 'DirectoryIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], + 'DirectoryIterator::rewind' => ['void'], + 'DirectoryIterator::seek' => ['void', 'position'=>'int'], + 'DirectoryIterator::setFileClass' => ['void', 'class_name='=>'string'], + 'DirectoryIterator::setInfoClass' => ['void', 'class_name='=>'string'], + 'DirectoryIterator::valid' => ['bool'], + 'DomAttribute::name' => ['string'], + 'DomAttribute::set_value' => ['bool', 'content'=>'string'], + 'DomAttribute::specified' => ['bool'], + 'DomAttribute::value' => ['string'], + 'DomXsltStylesheet::process' => ['DomDocument', 'xml_doc'=>'DOMDocument', 'xslt_params='=>'array', 'is_xpath_param='=>'bool', 'profile_filename='=>'string'], + 'DomXsltStylesheet::result_dump_file' => ['string', 'xmldoc'=>'DOMDocument', 'filename'=>'string'], + 'DomXsltStylesheet::result_dump_mem' => ['string', 'xmldoc'=>'DOMDocument'], + 'DomainException::__clone' => ['void'], + 'DomainException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'DomainException::__toString' => ['string'], + 'DomainException::__wakeup' => ['void'], + 'DomainException::getCode' => ['int'], + 'DomainException::getFile' => ['string'], + 'DomainException::getLine' => ['int'], + 'DomainException::getMessage' => ['string'], + 'DomainException::getPrevious' => ['?Throwable'], + 'DomainException::getTrace' => ['list\',args?:array}>'], + 'DomainException::getTraceAsString' => ['string'], + 'Ds\Collection::clear' => ['void'], + 'Ds\Collection::copy' => ['Ds\Collection'], + 'Ds\Collection::isEmpty' => ['bool'], + 'Ds\Collection::toArray' => ['array'], + 'Ds\Deque::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Deque::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Deque::apply' => ['void', 'callback'=>'callable'], + 'Ds\Deque::capacity' => ['int'], + 'Ds\Deque::clear' => ['void'], + 'Ds\Deque::contains' => ['bool', '...values='=>'mixed'], + 'Ds\Deque::copy' => ['Ds\Deque'], + 'Ds\Deque::count' => ['int'], + 'Ds\Deque::filter' => ['Ds\Deque', 'callback='=>'callable'], + 'Ds\Deque::find' => ['mixed', 'value'=>'mixed'], + 'Ds\Deque::first' => ['mixed'], + 'Ds\Deque::get' => ['void', 'index'=>'int'], + 'Ds\Deque::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], + 'Ds\Deque::isEmpty' => ['bool'], + 'Ds\Deque::join' => ['string', 'glue='=>'string'], + 'Ds\Deque::jsonSerialize' => ['array'], + 'Ds\Deque::last' => ['mixed'], + 'Ds\Deque::map' => ['Ds\Deque', 'callback'=>'callable'], + 'Ds\Deque::merge' => ['Ds\Deque', 'values'=>'mixed'], + 'Ds\Deque::pop' => ['mixed'], + 'Ds\Deque::push' => ['void', '...values='=>'mixed'], + 'Ds\Deque::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], + 'Ds\Deque::remove' => ['mixed', 'index'=>'int'], + 'Ds\Deque::reverse' => ['void'], + 'Ds\Deque::reversed' => ['Ds\Deque'], + 'Ds\Deque::rotate' => ['void', 'rotations'=>'int'], + 'Ds\Deque::set' => ['void', 'index'=>'int', 'value'=>'mixed'], + 'Ds\Deque::shift' => ['mixed'], + 'Ds\Deque::slice' => ['Ds\Deque', 'index'=>'int', 'length='=>'?int'], + 'Ds\Deque::sort' => ['void', 'comparator='=>'callable'], + 'Ds\Deque::sorted' => ['Ds\Deque', 'comparator='=>'callable'], + 'Ds\Deque::sum' => ['int|float'], + 'Ds\Deque::toArray' => ['array'], + 'Ds\Deque::unshift' => ['void', '...values='=>'mixed'], + 'Ds\Hashable::equals' => ['bool', 'object'=>'mixed'], + 'Ds\Hashable::hash' => ['mixed'], + 'Ds\Map::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Map::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Map::apply' => ['void', 'callback'=>'callable'], + 'Ds\Map::capacity' => ['int'], + 'Ds\Map::clear' => ['void'], + 'Ds\Map::copy' => ['Ds\Map'], + 'Ds\Map::count' => ['int'], + 'Ds\Map::diff' => ['Ds\Map', 'map'=>'Ds\Map'], + 'Ds\Map::filter' => ['Ds\Map', 'callback='=>'callable'], + 'Ds\Map::first' => ['Ds\Pair'], + 'Ds\Map::get' => ['mixed', 'key'=>'mixed', 'default='=>'mixed'], + 'Ds\Map::hasKey' => ['bool', 'key'=>'mixed'], + 'Ds\Map::hasValue' => ['bool', 'value'=>'mixed'], + 'Ds\Map::intersect' => ['Ds\Map', 'map'=>'Ds\Map'], + 'Ds\Map::isEmpty' => ['bool'], + 'Ds\Map::jsonSerialize' => ['array'], + 'Ds\Map::keys' => ['Ds\Set'], + 'Ds\Map::ksort' => ['void', 'comparator='=>'callable'], + 'Ds\Map::ksorted' => ['Ds\Map', 'comparator='=>'callable'], + 'Ds\Map::last' => ['Ds\Pair'], + 'Ds\Map::map' => ['Ds\Map', 'callback'=>'callable'], + 'Ds\Map::merge' => ['Ds\Map', 'values'=>'mixed'], + 'Ds\Map::pairs' => ['Ds\Sequence'], + 'Ds\Map::put' => ['void', 'key'=>'mixed', 'value'=>'mixed'], + 'Ds\Map::putAll' => ['void', 'values'=>'mixed'], + 'Ds\Map::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], + 'Ds\Map::remove' => ['mixed', 'key'=>'mixed', 'default='=>'mixed'], + 'Ds\Map::reverse' => ['void'], + 'Ds\Map::reversed' => ['Ds\Map'], + 'Ds\Map::skip' => ['Ds\Pair', 'position'=>'int'], + 'Ds\Map::slice' => ['Ds\Map', 'index'=>'int', 'length='=>'?int'], + 'Ds\Map::sort' => ['void', 'comparator='=>'callable'], + 'Ds\Map::sorted' => ['Ds\Map', 'comparator='=>'callable'], + 'Ds\Map::sum' => ['int|float'], + 'Ds\Map::toArray' => ['array'], + 'Ds\Map::union' => ['Ds\Map', 'map'=>'Ds\Map'], + 'Ds\Map::values' => ['Ds\Sequence'], + 'Ds\Map::xor' => ['Ds\Map', 'map'=>'Ds\Map'], + 'Ds\Pair::__construct' => ['void', 'key='=>'mixed', 'value='=>'mixed'], + 'Ds\Pair::clear' => ['void'], + 'Ds\Pair::copy' => ['Ds\Pair'], + 'Ds\Pair::isEmpty' => ['bool'], + 'Ds\Pair::jsonSerialize' => ['array'], + 'Ds\Pair::toArray' => ['array'], + 'Ds\PriorityQueue::__construct' => ['void'], + 'Ds\PriorityQueue::allocate' => ['void', 'capacity'=>'int'], + 'Ds\PriorityQueue::capacity' => ['int'], + 'Ds\PriorityQueue::clear' => ['void'], + 'Ds\PriorityQueue::copy' => ['Ds\PriorityQueue'], + 'Ds\PriorityQueue::count' => ['int'], + 'Ds\PriorityQueue::isEmpty' => ['bool'], + 'Ds\PriorityQueue::jsonSerialize' => ['array'], + 'Ds\PriorityQueue::peek' => ['mixed'], + 'Ds\PriorityQueue::pop' => ['mixed'], + 'Ds\PriorityQueue::push' => ['void', 'value'=>'mixed', 'priority'=>'int'], + 'Ds\PriorityQueue::toArray' => ['array'], + 'Ds\Queue::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Queue::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Queue::capacity' => ['int'], + 'Ds\Queue::clear' => ['void'], + 'Ds\Queue::copy' => ['Ds\Queue'], + 'Ds\Queue::count' => ['int'], + 'Ds\Queue::isEmpty' => ['bool'], + 'Ds\Queue::jsonSerialize' => ['array'], + 'Ds\Queue::peek' => ['mixed'], + 'Ds\Queue::pop' => ['mixed'], + 'Ds\Queue::push' => ['void', '...values='=>'mixed'], + 'Ds\Queue::toArray' => ['array'], + 'Ds\Sequence::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Sequence::apply' => ['void', 'callback'=>'callable'], + 'Ds\Sequence::capacity' => ['int'], + 'Ds\Sequence::contains' => ['bool', '...values='=>'mixed'], + 'Ds\Sequence::filter' => ['Ds\Sequence', 'callback='=>'callable'], + 'Ds\Sequence::find' => ['mixed', 'value'=>'mixed'], + 'Ds\Sequence::first' => ['mixed'], + 'Ds\Sequence::get' => ['mixed', 'index'=>'int'], + 'Ds\Sequence::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], + 'Ds\Sequence::join' => ['string', 'glue='=>'string'], + 'Ds\Sequence::last' => ['void'], + 'Ds\Sequence::map' => ['Ds\Sequence', 'callback'=>'callable'], + 'Ds\Sequence::merge' => ['Ds\Sequence', 'values'=>'mixed'], + 'Ds\Sequence::pop' => ['mixed'], + 'Ds\Sequence::push' => ['void', '...values='=>'mixed'], + 'Ds\Sequence::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], + 'Ds\Sequence::remove' => ['mixed', 'index'=>'int'], + 'Ds\Sequence::reverse' => ['void'], + 'Ds\Sequence::reversed' => ['Ds\Sequence'], + 'Ds\Sequence::rotate' => ['void', 'rotations'=>'int'], + 'Ds\Sequence::set' => ['void', 'index'=>'int', 'value'=>'mixed'], + 'Ds\Sequence::shift' => ['mixed'], + 'Ds\Sequence::slice' => ['Ds\Sequence', 'index'=>'int', 'length='=>'?int'], + 'Ds\Sequence::sort' => ['void', 'comparator='=>'callable'], + 'Ds\Sequence::sorted' => ['Ds\Sequence', 'comparator='=>'callable'], + 'Ds\Sequence::sum' => ['int|float'], + 'Ds\Sequence::unshift' => ['void', '...values='=>'mixed'], + 'Ds\Set::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Set::add' => ['void', '...values='=>'mixed'], + 'Ds\Set::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Set::capacity' => ['int'], + 'Ds\Set::clear' => ['void'], + 'Ds\Set::contains' => ['bool', '...values='=>'mixed'], + 'Ds\Set::copy' => ['Ds\Set'], + 'Ds\Set::count' => ['int'], + 'Ds\Set::diff' => ['Ds\Set', 'set'=>'Ds\Set'], + 'Ds\Set::filter' => ['Ds\Set', 'callback='=>'callable'], + 'Ds\Set::first' => ['mixed'], + 'Ds\Set::get' => ['mixed', 'index'=>'int'], + 'Ds\Set::intersect' => ['Ds\Set', 'set'=>'Ds\Set'], + 'Ds\Set::isEmpty' => ['bool'], + 'Ds\Set::join' => ['string', 'glue='=>'string'], + 'Ds\Set::jsonSerialize' => ['array'], + 'Ds\Set::last' => ['mixed'], + 'Ds\Set::merge' => ['Ds\Set', 'values'=>'mixed'], + 'Ds\Set::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], + 'Ds\Set::remove' => ['void', '...values='=>'mixed'], + 'Ds\Set::reverse' => ['void'], + 'Ds\Set::reversed' => ['Ds\Set'], + 'Ds\Set::slice' => ['Ds\Set', 'index'=>'int', 'length='=>'?int'], + 'Ds\Set::sort' => ['void', 'comparator='=>'callable'], + 'Ds\Set::sorted' => ['Ds\Set', 'comparator='=>'callable'], + 'Ds\Set::sum' => ['int|float'], + 'Ds\Set::toArray' => ['array'], + 'Ds\Set::union' => ['Ds\Set', 'set'=>'Ds\Set'], + 'Ds\Set::xor' => ['Ds\Set', 'set'=>'Ds\Set'], + 'Ds\Stack::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Stack::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Stack::capacity' => ['int'], + 'Ds\Stack::clear' => ['void'], + 'Ds\Stack::copy' => ['Ds\Stack'], + 'Ds\Stack::count' => ['int'], + 'Ds\Stack::isEmpty' => ['bool'], + 'Ds\Stack::jsonSerialize' => ['array'], + 'Ds\Stack::peek' => ['mixed'], + 'Ds\Stack::pop' => ['mixed'], + 'Ds\Stack::push' => ['void', '...values='=>'mixed'], + 'Ds\Stack::toArray' => ['array'], + 'Ds\Vector::__construct' => ['void', 'values='=>'mixed'], + 'Ds\Vector::allocate' => ['void', 'capacity'=>'int'], + 'Ds\Vector::apply' => ['void', 'callback'=>'callable'], + 'Ds\Vector::capacity' => ['int'], + 'Ds\Vector::clear' => ['void'], + 'Ds\Vector::contains' => ['bool', '...values='=>'mixed'], + 'Ds\Vector::copy' => ['Ds\Vector'], + 'Ds\Vector::count' => ['int'], + 'Ds\Vector::filter' => ['Ds\Vector', 'callback='=>'callable'], + 'Ds\Vector::find' => ['mixed', 'value'=>'mixed'], + 'Ds\Vector::first' => ['mixed'], + 'Ds\Vector::get' => ['mixed', 'index'=>'int'], + 'Ds\Vector::insert' => ['void', 'index'=>'int', '...values='=>'mixed'], + 'Ds\Vector::isEmpty' => ['bool'], + 'Ds\Vector::join' => ['string', 'glue='=>'string'], + 'Ds\Vector::jsonSerialize' => ['array'], + 'Ds\Vector::last' => ['mixed'], + 'Ds\Vector::map' => ['Ds\Vector', 'callback'=>'callable'], + 'Ds\Vector::merge' => ['Ds\Vector', 'values'=>'mixed'], + 'Ds\Vector::pop' => ['mixed'], + 'Ds\Vector::push' => ['void', '...values='=>'mixed'], + 'Ds\Vector::reduce' => ['mixed', 'callback'=>'callable', 'initial='=>'mixed'], + 'Ds\Vector::remove' => ['mixed', 'index'=>'int'], + 'Ds\Vector::reverse' => ['void'], + 'Ds\Vector::reversed' => ['Ds\Vector'], + 'Ds\Vector::rotate' => ['void', 'rotations'=>'int'], + 'Ds\Vector::set' => ['void', 'index'=>'int', 'value'=>'mixed'], + 'Ds\Vector::shift' => ['mixed'], + 'Ds\Vector::slice' => ['Ds\Vector', 'index'=>'int', 'length='=>'?int'], + 'Ds\Vector::sort' => ['void', 'comparator='=>'callable'], + 'Ds\Vector::sorted' => ['Ds\Vector', 'comparator='=>'callable'], + 'Ds\Vector::sum' => ['int|float'], + 'Ds\Vector::toArray' => ['array'], + 'Ds\Vector::unshift' => ['void', '...values='=>'mixed'], + 'EmptyIterator::current' => ['never'], + 'EmptyIterator::key' => ['never'], + 'EmptyIterator::next' => ['void'], + 'EmptyIterator::rewind' => ['void'], + 'EmptyIterator::valid' => ['false'], + 'Error::__clone' => ['void'], + 'Error::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'Error::__toString' => ['string'], + 'Error::getCode' => ['int'], + 'Error::getFile' => ['string'], + 'Error::getLine' => ['int'], + 'Error::getMessage' => ['string'], + 'Error::getPrevious' => ['?Throwable'], + 'Error::getTrace' => ['list\',args?:array}>'], + 'Error::getTraceAsString' => ['string'], + 'ErrorException::__clone' => ['void'], + 'ErrorException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'severity='=>'int', 'filename='=>'string', 'line='=>'int', 'previous='=>'?Throwable'], + 'ErrorException::__toString' => ['string'], + 'ErrorException::getCode' => ['int'], + 'ErrorException::getFile' => ['string'], + 'ErrorException::getLine' => ['int'], + 'ErrorException::getMessage' => ['string'], + 'ErrorException::getPrevious' => ['?Throwable'], + 'ErrorException::getSeverity' => ['int'], + 'ErrorException::getTrace' => ['list\',args?:array}>'], + 'ErrorException::getTraceAsString' => ['string'], + 'Ev::backend' => ['int'], + 'Ev::depth' => ['int'], + 'Ev::embeddableBackends' => ['int'], + 'Ev::feedSignal' => ['void', 'signum'=>'int'], + 'Ev::feedSignalEvent' => ['void', 'signum'=>'int'], + 'Ev::iteration' => ['int'], + 'Ev::now' => ['float'], + 'Ev::nowUpdate' => ['void'], + 'Ev::recommendedBackends' => ['int'], + 'Ev::resume' => ['void'], + 'Ev::run' => ['void', 'flags='=>'int'], + 'Ev::sleep' => ['void', 'seconds'=>'float'], + 'Ev::stop' => ['void', 'how='=>'int'], + 'Ev::supportedBackends' => ['int'], + 'Ev::suspend' => ['void'], + 'Ev::time' => ['float'], + 'Ev::verify' => ['void'], + 'EvCheck::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvCheck::clear' => ['int'], + 'EvCheck::createStopped' => ['EvCheck', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvCheck::feed' => ['void', 'events'=>'int'], + 'EvCheck::getLoop' => ['EvLoop'], + 'EvCheck::invoke' => ['void', 'events'=>'int'], + 'EvCheck::keepAlive' => ['void', 'value'=>'bool'], + 'EvCheck::setCallback' => ['void', 'callback'=>'callable'], + 'EvCheck::start' => ['void'], + 'EvCheck::stop' => ['void'], + 'EvChild::__construct' => ['void', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvChild::clear' => ['int'], + 'EvChild::createStopped' => ['EvChild', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvChild::feed' => ['void', 'events'=>'int'], + 'EvChild::getLoop' => ['EvLoop'], + 'EvChild::invoke' => ['void', 'events'=>'int'], + 'EvChild::keepAlive' => ['void', 'value'=>'bool'], + 'EvChild::set' => ['void', 'pid'=>'int', 'trace'=>'bool'], + 'EvChild::setCallback' => ['void', 'callback'=>'callable'], + 'EvChild::start' => ['void'], + 'EvChild::stop' => ['void'], + 'EvEmbed::__construct' => ['void', 'other'=>'object', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvEmbed::clear' => ['int'], + 'EvEmbed::createStopped' => ['EvEmbed', 'other'=>'object', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvEmbed::feed' => ['void', 'events'=>'int'], + 'EvEmbed::getLoop' => ['EvLoop'], + 'EvEmbed::invoke' => ['void', 'events'=>'int'], + 'EvEmbed::keepAlive' => ['void', 'value'=>'bool'], + 'EvEmbed::set' => ['void', 'other'=>'object'], + 'EvEmbed::setCallback' => ['void', 'callback'=>'callable'], + 'EvEmbed::start' => ['void'], + 'EvEmbed::stop' => ['void'], + 'EvEmbed::sweep' => ['void'], + 'EvFork::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvFork::clear' => ['int'], + 'EvFork::createStopped' => ['EvFork', 'callback'=>'callable', 'data='=>'string', 'priority='=>'string'], + 'EvFork::feed' => ['void', 'events'=>'int'], + 'EvFork::getLoop' => ['EvLoop'], + 'EvFork::invoke' => ['void', 'events'=>'int'], + 'EvFork::keepAlive' => ['void', 'value'=>'bool'], + 'EvFork::setCallback' => ['void', 'callback'=>'callable'], + 'EvFork::start' => ['void'], + 'EvFork::stop' => ['void'], + 'EvIdle::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvIdle::clear' => ['int'], + 'EvIdle::createStopped' => ['EvIdle', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvIdle::feed' => ['void', 'events'=>'int'], + 'EvIdle::getLoop' => ['EvLoop'], + 'EvIdle::invoke' => ['void', 'events'=>'int'], + 'EvIdle::keepAlive' => ['void', 'value'=>'bool'], + 'EvIdle::setCallback' => ['void', 'callback'=>'callable'], + 'EvIdle::start' => ['void'], + 'EvIdle::stop' => ['void'], + 'EvIo::__construct' => ['void', 'fd'=>'mixed', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvIo::clear' => ['int'], + 'EvIo::createStopped' => ['EvIo', 'fd'=>'resource', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvIo::feed' => ['void', 'events'=>'int'], + 'EvIo::getLoop' => ['EvLoop'], + 'EvIo::invoke' => ['void', 'events'=>'int'], + 'EvIo::keepAlive' => ['void', 'value'=>'bool'], + 'EvIo::set' => ['void', 'fd'=>'resource', 'events'=>'int'], + 'EvIo::setCallback' => ['void', 'callback'=>'callable'], + 'EvIo::start' => ['void'], + 'EvIo::stop' => ['void'], + 'EvLoop::__construct' => ['void', 'flags='=>'int', 'data='=>'mixed', 'io_interval='=>'float', 'timeout_interval='=>'float'], + 'EvLoop::backend' => ['int'], + 'EvLoop::check' => ['EvCheck', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::child' => ['EvChild', 'pid'=>'int', 'trace'=>'bool', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::defaultLoop' => ['EvLoop', 'flags='=>'int', 'data='=>'mixed', 'io_interval='=>'float', 'timeout_interval='=>'float'], + 'EvLoop::embed' => ['EvEmbed', 'other'=>'EvLoop', 'callback='=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::fork' => ['EvFork', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::idle' => ['EvIdle', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::invokePending' => ['void'], + 'EvLoop::io' => ['EvIo', 'fd'=>'resource', 'events'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::loopFork' => ['void'], + 'EvLoop::now' => ['float'], + 'EvLoop::nowUpdate' => ['void'], + 'EvLoop::periodic' => ['EvPeriodic', 'offset'=>'float', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::prepare' => ['EvPrepare', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::resume' => ['void'], + 'EvLoop::run' => ['void', 'flags='=>'int'], + 'EvLoop::signal' => ['EvSignal', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::stat' => ['EvStat', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::stop' => ['void', 'how='=>'int'], + 'EvLoop::suspend' => ['void'], + 'EvLoop::timer' => ['EvTimer', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvLoop::verify' => ['void'], + 'EvPeriodic::__construct' => ['void', 'offset'=>'float', 'interval'=>'string', 'reschedule_cb'=>'callable', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvPeriodic::again' => ['void'], + 'EvPeriodic::at' => ['float'], + 'EvPeriodic::clear' => ['int'], + 'EvPeriodic::createStopped' => ['EvPeriodic', 'offset'=>'float', 'interval'=>'float', 'reschedule_cb'=>'callable', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvPeriodic::feed' => ['void', 'events'=>'int'], + 'EvPeriodic::getLoop' => ['EvLoop'], + 'EvPeriodic::invoke' => ['void', 'events'=>'int'], + 'EvPeriodic::keepAlive' => ['void', 'value'=>'bool'], + 'EvPeriodic::set' => ['void', 'offset'=>'float', 'interval'=>'float'], + 'EvPeriodic::setCallback' => ['void', 'callback'=>'callable'], + 'EvPeriodic::start' => ['void'], + 'EvPeriodic::stop' => ['void'], + 'EvPrepare::__construct' => ['void', 'callback'=>'string', 'data='=>'string', 'priority='=>'string'], + 'EvPrepare::clear' => ['int'], + 'EvPrepare::createStopped' => ['EvPrepare', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvPrepare::feed' => ['void', 'events'=>'int'], + 'EvPrepare::getLoop' => ['EvLoop'], + 'EvPrepare::invoke' => ['void', 'events'=>'int'], + 'EvPrepare::keepAlive' => ['void', 'value'=>'bool'], + 'EvPrepare::setCallback' => ['void', 'callback'=>'callable'], + 'EvPrepare::start' => ['void'], + 'EvPrepare::stop' => ['void'], + 'EvSignal::__construct' => ['void', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvSignal::clear' => ['int'], + 'EvSignal::createStopped' => ['EvSignal', 'signum'=>'int', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvSignal::feed' => ['void', 'events'=>'int'], + 'EvSignal::getLoop' => ['EvLoop'], + 'EvSignal::invoke' => ['void', 'events'=>'int'], + 'EvSignal::keepAlive' => ['void', 'value'=>'bool'], + 'EvSignal::set' => ['void', 'signum'=>'int'], + 'EvSignal::setCallback' => ['void', 'callback'=>'callable'], + 'EvSignal::start' => ['void'], + 'EvSignal::stop' => ['void'], + 'EvStat::__construct' => ['void', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvStat::attr' => ['array'], + 'EvStat::clear' => ['int'], + 'EvStat::createStopped' => ['EvStat', 'path'=>'string', 'interval'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvStat::feed' => ['void', 'events'=>'int'], + 'EvStat::getLoop' => ['EvLoop'], + 'EvStat::invoke' => ['void', 'events'=>'int'], + 'EvStat::keepAlive' => ['void', 'value'=>'bool'], + 'EvStat::prev' => ['array'], + 'EvStat::set' => ['void', 'path'=>'string', 'interval'=>'float'], + 'EvStat::setCallback' => ['void', 'callback'=>'callable'], + 'EvStat::start' => ['void'], + 'EvStat::stat' => ['bool'], + 'EvStat::stop' => ['void'], + 'EvTimer::__construct' => ['void', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvTimer::again' => ['void'], + 'EvTimer::clear' => ['int'], + 'EvTimer::createStopped' => ['EvTimer', 'after'=>'float', 'repeat'=>'float', 'callback'=>'callable', 'data='=>'mixed', 'priority='=>'int'], + 'EvTimer::feed' => ['void', 'events'=>'int'], + 'EvTimer::getLoop' => ['EvLoop'], + 'EvTimer::invoke' => ['void', 'events'=>'int'], + 'EvTimer::keepAlive' => ['void', 'value'=>'bool'], + 'EvTimer::set' => ['void', 'after'=>'float', 'repeat'=>'float'], + 'EvTimer::setCallback' => ['void', 'callback'=>'callable'], + 'EvTimer::start' => ['void'], + 'EvTimer::stop' => ['void'], + 'EvWatcher::__construct' => ['void'], + 'EvWatcher::clear' => ['int'], + 'EvWatcher::feed' => ['void', 'revents'=>'int'], + 'EvWatcher::getLoop' => ['EvLoop'], + 'EvWatcher::invoke' => ['void', 'revents'=>'int'], + 'EvWatcher::keepalive' => ['bool', 'value='=>'bool'], + 'EvWatcher::setCallback' => ['void', 'callback'=>'callable'], + 'EvWatcher::start' => ['void'], + 'EvWatcher::stop' => ['void'], + 'Event::__construct' => ['void', 'base'=>'EventBase', 'fd'=>'mixed', 'what'=>'int', 'cb'=>'callable', 'arg='=>'mixed'], + 'Event::add' => ['bool', 'timeout='=>'float'], + 'Event::addSignal' => ['bool', 'timeout='=>'float'], + 'Event::addTimer' => ['bool', 'timeout='=>'float'], + 'Event::del' => ['bool'], + 'Event::delSignal' => ['bool'], + 'Event::delTimer' => ['bool'], + 'Event::free' => ['void'], + 'Event::getSupportedMethods' => ['array'], + 'Event::pending' => ['bool', 'flags'=>'int'], + 'Event::set' => ['bool', 'base'=>'EventBase', 'fd'=>'mixed', 'what='=>'int', 'cb='=>'callable', 'arg='=>'mixed'], + 'Event::setPriority' => ['bool', 'priority'=>'int'], + 'Event::setTimer' => ['bool', 'base'=>'EventBase', 'cb'=>'callable', 'arg='=>'mixed'], + 'Event::signal' => ['Event', 'base'=>'EventBase', 'signum'=>'int', 'cb'=>'callable', 'arg='=>'mixed'], + 'Event::timer' => ['Event', 'base'=>'EventBase', 'cb'=>'callable', 'arg='=>'mixed'], + 'EventBase::__construct' => ['void', 'cfg='=>'EventConfig'], + 'EventBase::dispatch' => ['void'], + 'EventBase::exit' => ['bool', 'timeout='=>'float'], + 'EventBase::free' => ['void'], + 'EventBase::getFeatures' => ['int'], + 'EventBase::getMethod' => ['string', 'cfg='=>'EventConfig'], + 'EventBase::getTimeOfDayCached' => ['float'], + 'EventBase::gotExit' => ['bool'], + 'EventBase::gotStop' => ['bool'], + 'EventBase::loop' => ['bool', 'flags='=>'int'], + 'EventBase::priorityInit' => ['bool', 'n_priorities'=>'int'], + 'EventBase::reInit' => ['bool'], + 'EventBase::stop' => ['bool'], + 'EventBuffer::__construct' => ['void'], + 'EventBuffer::add' => ['bool', 'data'=>'string'], + 'EventBuffer::addBuffer' => ['bool', 'buf'=>'EventBuffer'], + 'EventBuffer::appendFrom' => ['int', 'buf'=>'EventBuffer', 'length'=>'int'], + 'EventBuffer::copyout' => ['int', '&w_data'=>'string', 'max_bytes'=>'int'], + 'EventBuffer::drain' => ['bool', 'length'=>'int'], + 'EventBuffer::enableLocking' => ['void'], + 'EventBuffer::expand' => ['bool', 'length'=>'int'], + 'EventBuffer::freeze' => ['bool', 'at_front'=>'bool'], + 'EventBuffer::lock' => ['void'], + 'EventBuffer::prepend' => ['bool', 'data'=>'string'], + 'EventBuffer::prependBuffer' => ['bool', 'buf'=>'EventBuffer'], + 'EventBuffer::pullup' => ['string', 'size'=>'int'], + 'EventBuffer::read' => ['string', 'max_bytes'=>'int'], + 'EventBuffer::readFrom' => ['int', 'fd'=>'mixed', 'howmuch'=>'int'], + 'EventBuffer::readLine' => ['string', 'eol_style'=>'int'], + 'EventBuffer::search' => ['mixed', 'what'=>'string', 'start='=>'int', 'end='=>'int'], + 'EventBuffer::searchEol' => ['mixed', 'start='=>'int', 'eol_style='=>'int'], + 'EventBuffer::substr' => ['string', 'start'=>'int', 'length='=>'int'], + 'EventBuffer::unfreeze' => ['bool', 'at_front'=>'bool'], + 'EventBuffer::unlock' => ['bool'], + 'EventBuffer::write' => ['int', 'fd'=>'mixed', 'howmuch='=>'int'], + 'EventBufferEvent::__construct' => ['void', 'base'=>'EventBase', 'socket='=>'mixed', 'options='=>'int', 'readcb='=>'callable', 'writecb='=>'callable', 'eventcb='=>'callable'], + 'EventBufferEvent::close' => ['void'], + 'EventBufferEvent::connect' => ['bool', 'addr'=>'string'], + 'EventBufferEvent::connectHost' => ['bool', 'dns_base'=>'EventDnsBase', 'hostname'=>'string', 'port'=>'int', 'family='=>'int'], + 'EventBufferEvent::createPair' => ['array', 'base'=>'EventBase', 'options='=>'int'], + 'EventBufferEvent::disable' => ['bool', 'events'=>'int'], + 'EventBufferEvent::enable' => ['bool', 'events'=>'int'], + 'EventBufferEvent::free' => ['void'], + 'EventBufferEvent::getDnsErrorString' => ['string'], + 'EventBufferEvent::getEnabled' => ['int'], + 'EventBufferEvent::getInput' => ['EventBuffer'], + 'EventBufferEvent::getOutput' => ['EventBuffer'], + 'EventBufferEvent::read' => ['string', 'size'=>'int'], + 'EventBufferEvent::readBuffer' => ['bool', 'buf'=>'EventBuffer'], + 'EventBufferEvent::setCallbacks' => ['void', 'readcb'=>'callable', 'writecb'=>'callable', 'eventcb'=>'callable', 'arg='=>'string'], + 'EventBufferEvent::setPriority' => ['bool', 'priority'=>'int'], + 'EventBufferEvent::setTimeouts' => ['bool', 'timeout_read'=>'float', 'timeout_write'=>'float'], + 'EventBufferEvent::setWatermark' => ['void', 'events'=>'int', 'lowmark'=>'int', 'highmark'=>'int'], + 'EventBufferEvent::sslError' => ['string'], + 'EventBufferEvent::sslFilter' => ['EventBufferEvent', 'base'=>'EventBase', 'underlying'=>'EventBufferEvent', 'ctx'=>'EventSslContext', 'state'=>'int', 'options='=>'int'], + 'EventBufferEvent::sslGetCipherInfo' => ['string'], + 'EventBufferEvent::sslGetCipherName' => ['string'], + 'EventBufferEvent::sslGetCipherVersion' => ['string'], + 'EventBufferEvent::sslGetProtocol' => ['string'], + 'EventBufferEvent::sslRenegotiate' => ['void'], + 'EventBufferEvent::sslSocket' => ['EventBufferEvent', 'base'=>'EventBase', 'socket'=>'mixed', 'ctx'=>'EventSslContext', 'state'=>'int', 'options='=>'int'], + 'EventBufferEvent::write' => ['bool', 'data'=>'string'], + 'EventBufferEvent::writeBuffer' => ['bool', 'buf'=>'EventBuffer'], + 'EventConfig::__construct' => ['void'], + 'EventConfig::avoidMethod' => ['bool', 'method'=>'string'], + 'EventConfig::requireFeatures' => ['bool', 'feature'=>'int'], + 'EventConfig::setMaxDispatchInterval' => ['void', 'max_interval'=>'int', 'max_callbacks'=>'int', 'min_priority'=>'int'], + 'EventDnsBase::__construct' => ['void', 'base'=>'EventBase', 'initialize'=>'bool'], + 'EventDnsBase::addNameserverIp' => ['bool', 'ip'=>'string'], + 'EventDnsBase::addSearch' => ['void', 'domain'=>'string'], + 'EventDnsBase::clearSearch' => ['void'], + 'EventDnsBase::countNameservers' => ['int'], + 'EventDnsBase::loadHosts' => ['bool', 'hosts'=>'string'], + 'EventDnsBase::parseResolvConf' => ['bool', 'flags'=>'int', 'filename'=>'string'], + 'EventDnsBase::setOption' => ['bool', 'option'=>'string', 'value'=>'string'], + 'EventDnsBase::setSearchNdots' => ['bool', 'ndots'=>'int'], + 'EventHttp::__construct' => ['void', 'base'=>'EventBase', 'ctx='=>'EventSslContext'], + 'EventHttp::accept' => ['bool', 'socket'=>'mixed'], + 'EventHttp::addServerAlias' => ['bool', 'alias'=>'string'], + 'EventHttp::bind' => ['void', 'address'=>'string', 'port'=>'int'], + 'EventHttp::removeServerAlias' => ['bool', 'alias'=>'string'], + 'EventHttp::setAllowedMethods' => ['void', 'methods'=>'int'], + 'EventHttp::setCallback' => ['void', 'path'=>'string', 'cb'=>'string', 'arg='=>'string'], + 'EventHttp::setDefaultCallback' => ['void', 'cb'=>'string', 'arg='=>'string'], + 'EventHttp::setMaxBodySize' => ['void', 'value'=>'int'], + 'EventHttp::setMaxHeadersSize' => ['void', 'value'=>'int'], + 'EventHttp::setTimeout' => ['void', 'value'=>'int'], + 'EventHttpConnection::__construct' => ['void', 'base'=>'EventBase', 'dns_base'=>'EventDnsBase', 'address'=>'string', 'port'=>'int', 'ctx='=>'EventSslContext'], + 'EventHttpConnection::getBase' => ['EventBase'], + 'EventHttpConnection::getPeer' => ['void', '&w_address'=>'string', '&w_port'=>'int'], + 'EventHttpConnection::makeRequest' => ['bool', 'req'=>'EventHttpRequest', 'type'=>'int', 'uri'=>'string'], + 'EventHttpConnection::setCloseCallback' => ['void', 'callback'=>'callable', 'data='=>'mixed'], + 'EventHttpConnection::setLocalAddress' => ['void', 'address'=>'string'], + 'EventHttpConnection::setLocalPort' => ['void', 'port'=>'int'], + 'EventHttpConnection::setMaxBodySize' => ['void', 'max_size'=>'string'], + 'EventHttpConnection::setMaxHeadersSize' => ['void', 'max_size'=>'string'], + 'EventHttpConnection::setRetries' => ['void', 'retries'=>'int'], + 'EventHttpConnection::setTimeout' => ['void', 'timeout'=>'int'], + 'EventHttpRequest::__construct' => ['void', 'callback'=>'callable', 'data='=>'mixed'], + 'EventHttpRequest::addHeader' => ['bool', 'key'=>'string', 'value'=>'string', 'type'=>'int'], + 'EventHttpRequest::cancel' => ['void'], + 'EventHttpRequest::clearHeaders' => ['void'], + 'EventHttpRequest::closeConnection' => ['void'], + 'EventHttpRequest::findHeader' => ['void', 'key'=>'string', 'type'=>'string'], + 'EventHttpRequest::free' => ['void'], + 'EventHttpRequest::getBufferEvent' => ['EventBufferEvent'], + 'EventHttpRequest::getCommand' => ['void'], + 'EventHttpRequest::getConnection' => ['EventHttpConnection'], + 'EventHttpRequest::getHost' => ['string'], + 'EventHttpRequest::getInputBuffer' => ['EventBuffer'], + 'EventHttpRequest::getInputHeaders' => ['array'], + 'EventHttpRequest::getOutputBuffer' => ['EventBuffer'], + 'EventHttpRequest::getOutputHeaders' => ['void'], + 'EventHttpRequest::getResponseCode' => ['int'], + 'EventHttpRequest::getUri' => ['string'], + 'EventHttpRequest::removeHeader' => ['void', 'key'=>'string', 'type'=>'string'], + 'EventHttpRequest::sendError' => ['void', 'error'=>'int', 'reason='=>'string'], + 'EventHttpRequest::sendReply' => ['void', 'code'=>'int', 'reason'=>'string', 'buf='=>'EventBuffer'], + 'EventHttpRequest::sendReplyChunk' => ['void', 'buf'=>'EventBuffer'], + 'EventHttpRequest::sendReplyEnd' => ['void'], + 'EventHttpRequest::sendReplyStart' => ['void', 'code'=>'int', 'reason'=>'string'], + 'EventListener::__construct' => ['void', 'base'=>'EventBase', 'cb'=>'callable', 'data'=>'mixed', 'flags'=>'int', 'backlog'=>'int', 'target'=>'mixed'], + 'EventListener::disable' => ['bool'], + 'EventListener::enable' => ['bool'], + 'EventListener::getBase' => ['void'], + 'EventListener::getSocketName' => ['bool', '&w_address'=>'string', '&w_port='=>'mixed'], + 'EventListener::setCallback' => ['void', 'cb'=>'callable', 'arg='=>'mixed'], + 'EventListener::setErrorCallback' => ['void', 'cb'=>'string'], + 'EventSslContext::__construct' => ['void', 'method'=>'string', 'options'=>'string'], + 'EventUtil::__construct' => ['void'], + 'EventUtil::getLastSocketErrno' => ['int', 'socket='=>'mixed'], + 'EventUtil::getLastSocketError' => ['string', 'socket='=>'mixed'], + 'EventUtil::getSocketFd' => ['int', 'socket'=>'mixed'], + 'EventUtil::getSocketName' => ['bool', 'socket'=>'mixed', '&w_address'=>'string', '&w_port='=>'mixed'], + 'EventUtil::setSocketOption' => ['bool', 'socket'=>'mixed', 'level'=>'int', 'optname'=>'int', 'optval'=>'mixed'], + 'EventUtil::sslRandPoll' => ['void'], + 'Exception::__clone' => ['void'], + 'Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'Exception::__toString' => ['string'], + 'Exception::getCode' => ['int|string'], + 'Exception::getFile' => ['string'], + 'Exception::getLine' => ['int'], + 'Exception::getMessage' => ['string'], + 'Exception::getPrevious' => ['?Throwable'], + 'Exception::getTrace' => ['list\',args?:array}>'], + 'Exception::getTraceAsString' => ['string'], + 'FANNConnection::__construct' => ['void', 'from_neuron'=>'int', 'to_neuron'=>'int', 'weight'=>'float'], + 'FANNConnection::getFromNeuron' => ['int'], + 'FANNConnection::getToNeuron' => ['int'], + 'FANNConnection::getWeight' => ['void'], + 'FANNConnection::setWeight' => ['bool', 'weight'=>'float'], + 'FilesystemIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], + 'FilesystemIterator::__toString' => ['string'], + 'FilesystemIterator::current' => ['SplFileInfo|FilesystemIterator|string'], + 'FilesystemIterator::getATime' => ['int'], + 'FilesystemIterator::getBasename' => ['string', 'suffix='=>'string'], + 'FilesystemIterator::getCTime' => ['int'], + 'FilesystemIterator::getExtension' => ['string'], + 'FilesystemIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'FilesystemIterator::getFilename' => ['string'], + 'FilesystemIterator::getFlags' => ['int'], + 'FilesystemIterator::getGroup' => ['int'], + 'FilesystemIterator::getInode' => ['int'], + 'FilesystemIterator::getLinkTarget' => ['string'], + 'FilesystemIterator::getMTime' => ['int'], + 'FilesystemIterator::getOwner' => ['int'], + 'FilesystemIterator::getPath' => ['string'], + 'FilesystemIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'FilesystemIterator::getPathname' => ['string'], + 'FilesystemIterator::getPerms' => ['int'], + 'FilesystemIterator::getRealPath' => ['string'], + 'FilesystemIterator::getSize' => ['int'], + 'FilesystemIterator::getType' => ['string'], + 'FilesystemIterator::isDir' => ['bool'], + 'FilesystemIterator::isDot' => ['bool'], + 'FilesystemIterator::isExecutable' => ['bool'], + 'FilesystemIterator::isFile' => ['bool'], + 'FilesystemIterator::isLink' => ['bool'], + 'FilesystemIterator::isReadable' => ['bool'], + 'FilesystemIterator::isWritable' => ['bool'], + 'FilesystemIterator::key' => ['string'], + 'FilesystemIterator::next' => ['void'], + 'FilesystemIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], + 'FilesystemIterator::rewind' => ['void'], + 'FilesystemIterator::seek' => ['void', 'position'=>'int'], + 'FilesystemIterator::setFileClass' => ['void', 'class_name='=>'string'], + 'FilesystemIterator::setFlags' => ['void', 'flags='=>'int'], + 'FilesystemIterator::setInfoClass' => ['void', 'class_name='=>'string'], + 'FilesystemIterator::valid' => ['bool'], + 'FilterIterator::__construct' => ['void', 'iterator'=>'Iterator'], + 'FilterIterator::accept' => ['bool'], + 'FilterIterator::current' => ['mixed'], + 'FilterIterator::getInnerIterator' => ['Iterator'], + 'FilterIterator::key' => ['mixed'], + 'FilterIterator::next' => ['void'], + 'FilterIterator::rewind' => ['void'], + 'FilterIterator::valid' => ['bool'], + 'GEOSGeometry::__toString' => ['string'], + 'GEOSGeometry::area' => ['float'], + 'GEOSGeometry::boundary' => ['GEOSGeometry'], + 'GEOSGeometry::buffer' => ['GEOSGeometry', 'dist'=>'float', 'styleArray='=>'array'], + 'GEOSGeometry::centroid' => ['GEOSGeometry'], + 'GEOSGeometry::checkValidity' => ['array{valid: bool, reason?: string, location?: GEOSGeometry}'], + 'GEOSGeometry::contains' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::convexHull' => ['GEOSGeometry'], + 'GEOSGeometry::coordinateDimension' => ['int'], + 'GEOSGeometry::coveredBy' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::covers' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::crosses' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::delaunayTriangulation' => ['GEOSGeometry', 'tolerance'=>'float', 'onlyEdges'=>'bool'], + 'GEOSGeometry::difference' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::dimension' => ['int'], + 'GEOSGeometry::disjoint' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::distance' => ['float', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::endPoint' => ['GEOSGeometry'], + 'GEOSGeometry::envelope' => ['GEOSGeometry'], + 'GEOSGeometry::equals' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::equalsExact' => ['bool', 'geom'=>'GEOSGeometry', 'tolerance'=>'float'], + 'GEOSGeometry::exteriorRing' => ['GEOSGeometry'], + 'GEOSGeometry::extractUniquePoints' => ['GEOSGeometry'], + 'GEOSGeometry::geometryN' => ['GEOSGeometry', 'num'=>'int'], + 'GEOSGeometry::getSRID' => ['int'], + 'GEOSGeometry::getX' => ['float'], + 'GEOSGeometry::getY' => ['float'], + 'GEOSGeometry::hasZ' => ['bool'], + 'GEOSGeometry::hausdorffDistance' => ['float', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::interiorRingN' => ['GEOSGeometry', 'num'=>'int'], + 'GEOSGeometry::interpolate' => ['GEOSGeometry', 'dist'=>'float', 'normalized'=>'bool'], + 'GEOSGeometry::intersection' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::intersects' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::isClosed' => ['bool'], + 'GEOSGeometry::isEmpty' => ['bool'], + 'GEOSGeometry::isRing' => ['bool'], + 'GEOSGeometry::isSimple' => ['bool'], + 'GEOSGeometry::length' => ['float'], + 'GEOSGeometry::node' => ['GEOSGeometry'], + 'GEOSGeometry::normalize' => ['GEOSGeometry'], + 'GEOSGeometry::numCoordinates' => ['int'], + 'GEOSGeometry::numGeometries' => ['int'], + 'GEOSGeometry::numInteriorRings' => ['int'], + 'GEOSGeometry::numPoints' => ['int'], + 'GEOSGeometry::offsetCurve' => ['GEOSGeometry', 'dist'=>'float', 'styleArray'=>'array'], + 'GEOSGeometry::overlaps' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::pointN' => ['GEOSGeometry', 'num'=>'int'], + 'GEOSGeometry::pointOnSurface' => ['GEOSGeometry'], + 'GEOSGeometry::project' => ['float', 'other'=>'GEOSGeometry', 'normalized'=>'bool'], + 'GEOSGeometry::relate' => ['string|bool', 'otherGeom'=>'GEOSGeometry', 'pattern'=>'string'], + 'GEOSGeometry::relateBoundaryNodeRule' => ['string', 'otherGeom'=>'GEOSGeometry', 'rule'=>'int'], + 'GEOSGeometry::setSRID' => ['void', 'srid'=>'int'], + 'GEOSGeometry::simplify' => ['GEOSGeometry', 'tolerance'=>'float', 'preserveTopology='=>'bool'], + 'GEOSGeometry::snapTo' => ['GEOSGeometry', 'geom'=>'GEOSGeometry', 'tolerance'=>'float'], + 'GEOSGeometry::startPoint' => ['GEOSGeometry'], + 'GEOSGeometry::symDifference' => ['GEOSGeometry', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::touches' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSGeometry::typeId' => ['int'], + 'GEOSGeometry::typeName' => ['string'], + 'GEOSGeometry::union' => ['GEOSGeometry', 'otherGeom='=>'GEOSGeometry'], + 'GEOSGeometry::voronoiDiagram' => ['GEOSGeometry', 'tolerance'=>'float', 'onlyEdges'=>'bool', 'extent'=>'GEOSGeometry|null'], + 'GEOSGeometry::within' => ['bool', 'geom'=>'GEOSGeometry'], + 'GEOSLineMerge' => ['array', 'geom'=>'GEOSGeometry'], + 'GEOSPolygonize' => ['array{rings: GEOSGeometry[], cut_edges?: GEOSGeometry[], dangles: GEOSGeometry[], invalid_rings: GEOSGeometry[]}', 'geom'=>'GEOSGeometry'], + 'GEOSRelateMatch' => ['bool', 'matrix'=>'string', 'pattern'=>'string'], + 'GEOSSharedPaths' => ['GEOSGeometry', 'geom1'=>'GEOSGeometry', 'geom2'=>'GEOSGeometry'], + 'GEOSVersion' => ['string'], + 'GEOSWKBReader::__construct' => ['void'], + 'GEOSWKBReader::read' => ['GEOSGeometry', 'wkb'=>'string'], + 'GEOSWKBReader::readHEX' => ['GEOSGeometry', 'wkb'=>'string'], + 'GEOSWKBWriter::__construct' => ['void'], + 'GEOSWKBWriter::getByteOrder' => ['int'], + 'GEOSWKBWriter::getIncludeSRID' => ['bool'], + 'GEOSWKBWriter::getOutputDimension' => ['int'], + 'GEOSWKBWriter::setByteOrder' => ['void', 'byteOrder'=>'int'], + 'GEOSWKBWriter::setIncludeSRID' => ['void', 'inc'=>'bool'], + 'GEOSWKBWriter::setOutputDimension' => ['void', 'dim'=>'int'], + 'GEOSWKBWriter::write' => ['string', 'geom'=>'GEOSGeometry'], + 'GEOSWKBWriter::writeHEX' => ['string', 'geom'=>'GEOSGeometry'], + 'GEOSWKTReader::__construct' => ['void'], + 'GEOSWKTReader::read' => ['GEOSGeometry', 'wkt'=>'string'], + 'GEOSWKTWriter::__construct' => ['void'], + 'GEOSWKTWriter::getOutputDimension' => ['int'], + 'GEOSWKTWriter::setOld3D' => ['void', 'val'=>'bool'], + 'GEOSWKTWriter::setOutputDimension' => ['void', 'dim'=>'int'], + 'GEOSWKTWriter::setRoundingPrecision' => ['void', 'prec'=>'int'], + 'GEOSWKTWriter::setTrim' => ['void', 'trim'=>'bool'], + 'GEOSWKTWriter::write' => ['string', 'geom'=>'GEOSGeometry'], + 'GMP::__construct' => ['void'], + 'GMP::__toString' => ['numeric-string'], + 'GearmanClient::__construct' => ['void'], + 'GearmanClient::addOptions' => ['bool', 'options'=>'int'], + 'GearmanClient::addServer' => ['bool', 'host='=>'string', 'port='=>'int'], + 'GearmanClient::addServers' => ['bool', 'servers='=>'string'], + 'GearmanClient::addTask' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskHigh' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskHighBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskLow' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskLowBackground' => ['GearmanTask|false', 'function_name'=>'string', 'workload'=>'string', 'context='=>'mixed', 'unique='=>'string'], + 'GearmanClient::addTaskStatus' => ['GearmanTask', 'job_handle'=>'string', 'context='=>'string'], + 'GearmanClient::clearCallbacks' => ['bool'], + 'GearmanClient::clone' => ['GearmanClient'], + 'GearmanClient::context' => ['string'], + 'GearmanClient::data' => ['string'], + 'GearmanClient::do' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doHigh' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doHighBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doJobHandle' => ['string'], + 'GearmanClient::doLow' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doLowBackground' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doNormal' => ['string', 'function_name'=>'string', 'workload'=>'string', 'unique='=>'string'], + 'GearmanClient::doStatus' => ['array'], + 'GearmanClient::echo' => ['bool', 'workload'=>'string'], + 'GearmanClient::error' => ['string'], + 'GearmanClient::getErrno' => ['int'], + 'GearmanClient::jobStatus' => ['array', 'job_handle'=>'string'], + 'GearmanClient::options' => [''], + 'GearmanClient::ping' => ['bool', 'workload'=>'string'], + 'GearmanClient::removeOptions' => ['bool', 'options'=>'int'], + 'GearmanClient::returnCode' => ['int'], + 'GearmanClient::runTasks' => ['bool'], + 'GearmanClient::setClientCallback' => ['void', 'callback'=>'callable'], + 'GearmanClient::setCompleteCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setContext' => ['bool', 'context'=>'string'], + 'GearmanClient::setCreatedCallback' => ['bool', 'callback'=>'string'], + 'GearmanClient::setData' => ['bool', 'data'=>'string'], + 'GearmanClient::setDataCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setExceptionCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setFailCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setOptions' => ['bool', 'options'=>'int'], + 'GearmanClient::setStatusCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setTimeout' => ['bool', 'timeout'=>'int'], + 'GearmanClient::setWarningCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::setWorkloadCallback' => ['bool', 'callback'=>'callable'], + 'GearmanClient::timeout' => ['int'], + 'GearmanClient::wait' => [''], + 'GearmanJob::__construct' => ['void'], + 'GearmanJob::complete' => ['bool', 'result'=>'string'], + 'GearmanJob::data' => ['bool', 'data'=>'string'], + 'GearmanJob::exception' => ['bool', 'exception'=>'string'], + 'GearmanJob::fail' => ['bool'], + 'GearmanJob::functionName' => ['string'], + 'GearmanJob::handle' => ['string'], + 'GearmanJob::returnCode' => ['int'], + 'GearmanJob::sendComplete' => ['bool', 'result'=>'string'], + 'GearmanJob::sendData' => ['bool', 'data'=>'string'], + 'GearmanJob::sendException' => ['bool', 'exception'=>'string'], + 'GearmanJob::sendFail' => ['bool'], + 'GearmanJob::sendStatus' => ['bool', 'numerator'=>'int', 'denominator'=>'int'], + 'GearmanJob::sendWarning' => ['bool', 'warning'=>'string'], + 'GearmanJob::setReturn' => ['bool', 'gearman_return_t'=>'string'], + 'GearmanJob::status' => ['bool', 'numerator'=>'int', 'denominator'=>'int'], + 'GearmanJob::unique' => ['string'], + 'GearmanJob::warning' => ['bool', 'warning'=>'string'], + 'GearmanJob::workload' => ['string'], + 'GearmanJob::workloadSize' => ['int'], + 'GearmanTask::__construct' => ['void'], + 'GearmanTask::create' => ['GearmanTask'], + 'GearmanTask::data' => ['string|false'], + 'GearmanTask::dataSize' => ['int|false'], + 'GearmanTask::function' => ['string'], + 'GearmanTask::functionName' => ['string'], + 'GearmanTask::isKnown' => ['bool'], + 'GearmanTask::isRunning' => ['bool'], + 'GearmanTask::jobHandle' => ['string'], + 'GearmanTask::recvData' => ['array|false', 'data_len'=>'int'], + 'GearmanTask::returnCode' => ['int'], + 'GearmanTask::sendData' => ['int', 'data'=>'string'], + 'GearmanTask::sendWorkload' => ['int|false', 'data'=>'string'], + 'GearmanTask::taskDenominator' => ['int|false'], + 'GearmanTask::taskNumerator' => ['int|false'], + 'GearmanTask::unique' => ['string|false'], + 'GearmanTask::uuid' => ['string'], + 'GearmanWorker::__construct' => ['void'], + 'GearmanWorker::addFunction' => ['bool', 'function_name'=>'string', 'function'=>'callable', 'context='=>'mixed', 'timeout='=>'int'], + 'GearmanWorker::addOptions' => ['bool', 'option'=>'int'], + 'GearmanWorker::addServer' => ['bool', 'host='=>'string', 'port='=>'int'], + 'GearmanWorker::addServers' => ['bool', 'servers'=>'string'], + 'GearmanWorker::clone' => ['void'], + 'GearmanWorker::echo' => ['bool', 'workload'=>'string'], + 'GearmanWorker::error' => ['string'], + 'GearmanWorker::getErrno' => ['int'], + 'GearmanWorker::grabJob' => [''], + 'GearmanWorker::options' => ['int'], + 'GearmanWorker::register' => ['bool', 'function_name'=>'string', 'timeout='=>'int'], + 'GearmanWorker::removeOptions' => ['bool', 'option'=>'int'], + 'GearmanWorker::returnCode' => ['int'], + 'GearmanWorker::setId' => ['bool', 'id'=>'string'], + 'GearmanWorker::setOptions' => ['bool', 'option'=>'int'], + 'GearmanWorker::setTimeout' => ['bool', 'timeout'=>'int'], + 'GearmanWorker::timeout' => ['int'], + 'GearmanWorker::unregister' => ['bool', 'function_name'=>'string'], + 'GearmanWorker::unregisterAll' => ['bool'], + 'GearmanWorker::wait' => ['bool'], + 'GearmanWorker::work' => ['bool'], + 'Gender\Gender::__construct' => ['void', 'dsn='=>'string'], + 'Gender\Gender::connect' => ['bool', 'dsn'=>'string'], + 'Gender\Gender::country' => ['array', 'country'=>'int'], + 'Gender\Gender::get' => ['int', 'name'=>'string', 'country='=>'int'], + 'Gender\Gender::isNick' => ['array', 'name0'=>'string', 'name1'=>'string', 'country='=>'int'], + 'Gender\Gender::similarNames' => ['array', 'name'=>'string', 'country='=>'int'], + 'Generator::__wakeup' => ['void'], + 'Generator::current' => ['mixed'], + 'Generator::getReturn' => ['mixed'], + 'Generator::key' => ['mixed'], + 'Generator::next' => ['void'], + 'Generator::rewind' => ['void'], + 'Generator::send' => ['mixed', 'value'=>'mixed'], + 'Generator::throw' => ['mixed', 'exception'=>'Throwable'], + 'Generator::valid' => ['bool'], + 'GlobIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], + 'GlobIterator::count' => ['int'], + 'GlobIterator::current' => ['FilesystemIterator|SplFileInfo|string'], + 'GlobIterator::getATime' => ['int'], + 'GlobIterator::getBasename' => ['string', 'suffix='=>'string'], + 'GlobIterator::getCTime' => ['int'], + 'GlobIterator::getExtension' => ['string'], + 'GlobIterator::getFileInfo' => ['SplFileInfo'], + 'GlobIterator::getFilename' => ['string'], + 'GlobIterator::getFlags' => ['int'], + 'GlobIterator::getGroup' => ['int'], + 'GlobIterator::getInode' => ['int'], + 'GlobIterator::getLinkTarget' => ['string|false'], + 'GlobIterator::getMTime' => ['int'], + 'GlobIterator::getOwner' => ['int'], + 'GlobIterator::getPath' => ['string'], + 'GlobIterator::getPathInfo' => ['?SplFileInfo'], + 'GlobIterator::getPathname' => ['string'], + 'GlobIterator::getPerms' => ['int'], + 'GlobIterator::getRealPath' => ['string|false'], + 'GlobIterator::getSize' => ['int'], + 'GlobIterator::getType' => ['string|false'], + 'GlobIterator::isDir' => ['bool'], + 'GlobIterator::isDot' => ['bool'], + 'GlobIterator::isExecutable' => ['bool'], + 'GlobIterator::isFile' => ['bool'], + 'GlobIterator::isLink' => ['bool'], + 'GlobIterator::isReadable' => ['bool'], + 'GlobIterator::isWritable' => ['bool'], + 'GlobIterator::key' => ['string'], + 'GlobIterator::next' => ['void'], + 'GlobIterator::openFile' => ['SplFileObject'], + 'GlobIterator::rewind' => ['void'], + 'GlobIterator::seek' => ['void', 'position'=>'int'], + 'GlobIterator::setFileClass' => ['void'], + 'GlobIterator::setFlags' => ['void', 'flags='=>'int'], + 'GlobIterator::setInfoClass' => ['void'], + 'GlobIterator::valid' => ['bool'], + 'Gmagick::__construct' => ['void', 'filename='=>'string'], + 'Gmagick::addimage' => ['Gmagick', 'gmagick'=>'gmagick'], + 'Gmagick::addnoiseimage' => ['Gmagick', 'noise'=>'int'], + 'Gmagick::annotateimage' => ['Gmagick', 'gmagickdraw'=>'gmagickdraw', 'x'=>'float', 'y'=>'float', 'angle'=>'float', 'text'=>'string'], + 'Gmagick::blurimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Gmagick::borderimage' => ['Gmagick', 'color'=>'gmagickpixel', 'width'=>'int', 'height'=>'int'], + 'Gmagick::charcoalimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float'], + 'Gmagick::chopimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Gmagick::clear' => ['Gmagick'], + 'Gmagick::commentimage' => ['Gmagick', 'comment'=>'string'], + 'Gmagick::compositeimage' => ['Gmagick', 'source'=>'gmagick', 'compose'=>'int', 'x'=>'int', 'y'=>'int'], + 'Gmagick::cropimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Gmagick::cropthumbnailimage' => ['Gmagick', 'width'=>'int', 'height'=>'int'], + 'Gmagick::current' => ['Gmagick'], + 'Gmagick::cyclecolormapimage' => ['Gmagick', 'displace'=>'int'], + 'Gmagick::deconstructimages' => ['Gmagick'], + 'Gmagick::despeckleimage' => ['Gmagick'], + 'Gmagick::destroy' => ['bool'], + 'Gmagick::drawimage' => ['Gmagick', 'gmagickdraw'=>'gmagickdraw'], + 'Gmagick::edgeimage' => ['Gmagick', 'radius'=>'float'], + 'Gmagick::embossimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float'], + 'Gmagick::enhanceimage' => ['Gmagick'], + 'Gmagick::equalizeimage' => ['Gmagick'], + 'Gmagick::flipimage' => ['Gmagick'], + 'Gmagick::flopimage' => ['Gmagick'], + 'Gmagick::frameimage' => ['Gmagick', 'color'=>'gmagickpixel', 'width'=>'int', 'height'=>'int', 'inner_bevel'=>'int', 'outer_bevel'=>'int'], + 'Gmagick::gammaimage' => ['Gmagick', 'gamma'=>'float'], + 'Gmagick::getcopyright' => ['string'], + 'Gmagick::getfilename' => ['string'], + 'Gmagick::getimagebackgroundcolor' => ['GmagickPixel'], + 'Gmagick::getimageblueprimary' => ['array'], + 'Gmagick::getimagebordercolor' => ['GmagickPixel'], + 'Gmagick::getimagechanneldepth' => ['int', 'channel_type'=>'int'], + 'Gmagick::getimagecolors' => ['int'], + 'Gmagick::getimagecolorspace' => ['int'], + 'Gmagick::getimagecompose' => ['int'], + 'Gmagick::getimagedelay' => ['int'], + 'Gmagick::getimagedepth' => ['int'], + 'Gmagick::getimagedispose' => ['int'], + 'Gmagick::getimageextrema' => ['array'], + 'Gmagick::getimagefilename' => ['string'], + 'Gmagick::getimageformat' => ['string'], + 'Gmagick::getimagegamma' => ['float'], + 'Gmagick::getimagegreenprimary' => ['array'], + 'Gmagick::getimageheight' => ['int'], + 'Gmagick::getimagehistogram' => ['array'], + 'Gmagick::getimageindex' => ['int'], + 'Gmagick::getimageinterlacescheme' => ['int'], + 'Gmagick::getimageiterations' => ['int'], + 'Gmagick::getimagematte' => ['int'], + 'Gmagick::getimagemattecolor' => ['GmagickPixel'], + 'Gmagick::getimageprofile' => ['string', 'name'=>'string'], + 'Gmagick::getimageredprimary' => ['array'], + 'Gmagick::getimagerenderingintent' => ['int'], + 'Gmagick::getimageresolution' => ['array'], + 'Gmagick::getimagescene' => ['int'], + 'Gmagick::getimagesignature' => ['string'], + 'Gmagick::getimagetype' => ['int'], + 'Gmagick::getimageunits' => ['int'], + 'Gmagick::getimagewhitepoint' => ['array'], + 'Gmagick::getimagewidth' => ['int'], + 'Gmagick::getpackagename' => ['string'], + 'Gmagick::getquantumdepth' => ['array'], + 'Gmagick::getreleasedate' => ['string'], + 'Gmagick::getsamplingfactors' => ['array'], + 'Gmagick::getsize' => ['array'], + 'Gmagick::getversion' => ['array'], + 'Gmagick::hasnextimage' => ['bool'], + 'Gmagick::haspreviousimage' => ['bool'], + 'Gmagick::implodeimage' => ['mixed', 'radius'=>'float'], + 'Gmagick::labelimage' => ['mixed', 'label'=>'string'], + 'Gmagick::levelimage' => ['mixed', 'blackpoint'=>'float', 'gamma'=>'float', 'whitepoint'=>'float', 'channel='=>'int'], + 'Gmagick::magnifyimage' => ['mixed'], + 'Gmagick::mapimage' => ['Gmagick', 'gmagick'=>'gmagick', 'dither'=>'bool'], + 'Gmagick::medianfilterimage' => ['void', 'radius'=>'float'], + 'Gmagick::minifyimage' => ['Gmagick'], + 'Gmagick::modulateimage' => ['Gmagick', 'brightness'=>'float', 'saturation'=>'float', 'hue'=>'float'], + 'Gmagick::motionblurimage' => ['Gmagick', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float'], + 'Gmagick::newimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'background'=>'string', 'format='=>'string'], + 'Gmagick::nextimage' => ['bool'], + 'Gmagick::normalizeimage' => ['Gmagick', 'channel='=>'int'], + 'Gmagick::oilpaintimage' => ['Gmagick', 'radius'=>'float'], + 'Gmagick::previousimage' => ['bool'], + 'Gmagick::profileimage' => ['Gmagick', 'name'=>'string', 'profile'=>'string'], + 'Gmagick::quantizeimage' => ['Gmagick', 'numcolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], + 'Gmagick::quantizeimages' => ['Gmagick', 'numcolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], + 'Gmagick::queryfontmetrics' => ['array', 'draw'=>'gmagickdraw', 'text'=>'string'], + 'Gmagick::queryfonts' => ['array', 'pattern='=>'string'], + 'Gmagick::queryformats' => ['array', 'pattern='=>'string'], + 'Gmagick::radialblurimage' => ['Gmagick', 'angle'=>'float', 'channel='=>'int'], + 'Gmagick::raiseimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int', 'raise'=>'bool'], + 'Gmagick::read' => ['Gmagick', 'filename'=>'string'], + 'Gmagick::readimage' => ['Gmagick', 'filename'=>'string'], + 'Gmagick::readimageblob' => ['Gmagick', 'imagecontents'=>'string', 'filename='=>'string'], + 'Gmagick::readimagefile' => ['Gmagick', 'fp'=>'resource', 'filename='=>'string'], + 'Gmagick::reducenoiseimage' => ['Gmagick', 'radius'=>'float'], + 'Gmagick::removeimage' => ['Gmagick'], + 'Gmagick::removeimageprofile' => ['string', 'name'=>'string'], + 'Gmagick::resampleimage' => ['Gmagick', 'xresolution'=>'float', 'yresolution'=>'float', 'filter'=>'int', 'blur'=>'float'], + 'Gmagick::resizeimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'filter'=>'int', 'blur'=>'float', 'fit='=>'bool'], + 'Gmagick::rollimage' => ['Gmagick', 'x'=>'int', 'y'=>'int'], + 'Gmagick::rotateimage' => ['Gmagick', 'color'=>'mixed', 'degrees'=>'float'], + 'Gmagick::scaleimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'fit='=>'bool'], + 'Gmagick::separateimagechannel' => ['Gmagick', 'channel'=>'int'], + 'Gmagick::setCompressionQuality' => ['Gmagick', 'quality'=>'int'], + 'Gmagick::setfilename' => ['Gmagick', 'filename'=>'string'], + 'Gmagick::setimagebackgroundcolor' => ['Gmagick', 'color'=>'gmagickpixel'], + 'Gmagick::setimageblueprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], + 'Gmagick::setimagebordercolor' => ['Gmagick', 'color'=>'gmagickpixel'], + 'Gmagick::setimagechanneldepth' => ['Gmagick', 'channel'=>'int', 'depth'=>'int'], + 'Gmagick::setimagecolorspace' => ['Gmagick', 'colorspace'=>'int'], + 'Gmagick::setimagecompose' => ['Gmagick', 'composite'=>'int'], + 'Gmagick::setimagedelay' => ['Gmagick', 'delay'=>'int'], + 'Gmagick::setimagedepth' => ['Gmagick', 'depth'=>'int'], + 'Gmagick::setimagedispose' => ['Gmagick', 'disposetype'=>'int'], + 'Gmagick::setimagefilename' => ['Gmagick', 'filename'=>'string'], + 'Gmagick::setimageformat' => ['Gmagick', 'imageformat'=>'string'], + 'Gmagick::setimagegamma' => ['Gmagick', 'gamma'=>'float'], + 'Gmagick::setimagegreenprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], + 'Gmagick::setimageindex' => ['Gmagick', 'index'=>'int'], + 'Gmagick::setimageinterlacescheme' => ['Gmagick', 'interlace'=>'int'], + 'Gmagick::setimageiterations' => ['Gmagick', 'iterations'=>'int'], + 'Gmagick::setimageprofile' => ['Gmagick', 'name'=>'string', 'profile'=>'string'], + 'Gmagick::setimageredprimary' => ['Gmagick', 'x'=>'float', 'y'=>'float'], + 'Gmagick::setimagerenderingintent' => ['Gmagick', 'rendering_intent'=>'int'], + 'Gmagick::setimageresolution' => ['Gmagick', 'xresolution'=>'float', 'yresolution'=>'float'], + 'Gmagick::setimagescene' => ['Gmagick', 'scene'=>'int'], + 'Gmagick::setimagetype' => ['Gmagick', 'imgtype'=>'int'], + 'Gmagick::setimageunits' => ['Gmagick', 'resolution'=>'int'], + 'Gmagick::setimagewhitepoint' => ['Gmagick', 'x'=>'float', 'y'=>'float'], + 'Gmagick::setsamplingfactors' => ['Gmagick', 'factors'=>'array'], + 'Gmagick::setsize' => ['Gmagick', 'columns'=>'int', 'rows'=>'int'], + 'Gmagick::shearimage' => ['Gmagick', 'color'=>'mixed', 'xshear'=>'float', 'yshear'=>'float'], + 'Gmagick::solarizeimage' => ['Gmagick', 'threshold'=>'int'], + 'Gmagick::spreadimage' => ['Gmagick', 'radius'=>'float'], + 'Gmagick::stripimage' => ['Gmagick'], + 'Gmagick::swirlimage' => ['Gmagick', 'degrees'=>'float'], + 'Gmagick::thumbnailimage' => ['Gmagick', 'width'=>'int', 'height'=>'int', 'fit='=>'bool'], + 'Gmagick::trimimage' => ['Gmagick', 'fuzz'=>'float'], + 'Gmagick::write' => ['Gmagick', 'filename'=>'string'], + 'Gmagick::writeimage' => ['Gmagick', 'filename'=>'string', 'all_frames='=>'bool'], + 'GmagickDraw::annotate' => ['GmagickDraw', 'x'=>'float', 'y'=>'float', 'text'=>'string'], + 'GmagickDraw::arc' => ['GmagickDraw', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float', 'sd'=>'float', 'ed'=>'float'], + 'GmagickDraw::bezier' => ['GmagickDraw', 'coordinate_array'=>'array'], + 'GmagickDraw::ellipse' => ['GmagickDraw', 'ox'=>'float', 'oy'=>'float', 'rx'=>'float', 'ry'=>'float', 'start'=>'float', 'end'=>'float'], + 'GmagickDraw::getfillcolor' => ['GmagickPixel'], + 'GmagickDraw::getfillopacity' => ['float'], + 'GmagickDraw::getfont' => ['string|false'], + 'GmagickDraw::getfontsize' => ['float'], + 'GmagickDraw::getfontstyle' => ['int'], + 'GmagickDraw::getfontweight' => ['int'], + 'GmagickDraw::getstrokecolor' => ['GmagickPixel'], + 'GmagickDraw::getstrokeopacity' => ['float'], + 'GmagickDraw::getstrokewidth' => ['float'], + 'GmagickDraw::gettextdecoration' => ['int'], + 'GmagickDraw::gettextencoding' => ['string|false'], + 'GmagickDraw::line' => ['GmagickDraw', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float'], + 'GmagickDraw::point' => ['GmagickDraw', 'x'=>'float', 'y'=>'float'], + 'GmagickDraw::polygon' => ['GmagickDraw', 'coordinates'=>'array'], + 'GmagickDraw::polyline' => ['GmagickDraw', 'coordinate_array'=>'array'], + 'GmagickDraw::rectangle' => ['GmagickDraw', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], + 'GmagickDraw::rotate' => ['GmagickDraw', 'degrees'=>'float'], + 'GmagickDraw::roundrectangle' => ['GmagickDraw', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'rx'=>'float', 'ry'=>'float'], + 'GmagickDraw::scale' => ['GmagickDraw', 'x'=>'float', 'y'=>'float'], + 'GmagickDraw::setfillcolor' => ['GmagickDraw', 'color'=>'string'], + 'GmagickDraw::setfillopacity' => ['GmagickDraw', 'fill_opacity'=>'float'], + 'GmagickDraw::setfont' => ['GmagickDraw', 'font'=>'string'], + 'GmagickDraw::setfontsize' => ['GmagickDraw', 'pointsize'=>'float'], + 'GmagickDraw::setfontstyle' => ['GmagickDraw', 'style'=>'int'], + 'GmagickDraw::setfontweight' => ['GmagickDraw', 'weight'=>'int'], + 'GmagickDraw::setstrokecolor' => ['GmagickDraw', 'color'=>'gmagickpixel'], + 'GmagickDraw::setstrokeopacity' => ['GmagickDraw', 'stroke_opacity'=>'float'], + 'GmagickDraw::setstrokewidth' => ['GmagickDraw', 'width'=>'float'], + 'GmagickDraw::settextdecoration' => ['GmagickDraw', 'decoration'=>'int'], + 'GmagickDraw::settextencoding' => ['GmagickDraw', 'encoding'=>'string'], + 'GmagickPixel::__construct' => ['void', 'color='=>'string'], + 'GmagickPixel::getcolor' => ['mixed', 'as_array='=>'bool', 'normalize_array='=>'bool'], + 'GmagickPixel::getcolorcount' => ['int'], + 'GmagickPixel::getcolorvalue' => ['float', 'color'=>'int'], + 'GmagickPixel::setcolor' => ['GmagickPixel', 'color'=>'string'], + 'GmagickPixel::setcolorvalue' => ['GmagickPixel', 'color'=>'int', 'value'=>'float'], + 'Grpc\Call::__construct' => ['void', 'channel'=>'Grpc\Channel', 'method'=>'string', 'absolute_deadline'=>'Grpc\Timeval', 'host_override='=>'mixed'], + 'Grpc\Call::cancel' => [''], + 'Grpc\Call::getPeer' => ['string'], + 'Grpc\Call::setCredentials' => ['int', 'creds_obj'=>'Grpc\CallCredentials'], + 'Grpc\Call::startBatch' => ['object', 'batch'=>'array'], + 'Grpc\CallCredentials::createComposite' => ['Grpc\CallCredentials', 'cred1'=>'Grpc\CallCredentials', 'cred2'=>'Grpc\CallCredentials'], + 'Grpc\CallCredentials::createFromPlugin' => ['Grpc\CallCredentials', 'callback'=>'Closure'], + 'Grpc\Channel::__construct' => ['void', 'target'=>'string', 'args='=>'array'], + 'Grpc\Channel::close' => [''], + 'Grpc\Channel::getConnectivityState' => ['int', 'try_to_connect='=>'bool'], + 'Grpc\Channel::getTarget' => ['string'], + 'Grpc\Channel::watchConnectivityState' => ['bool', 'last_state'=>'int', 'deadline_obj'=>'Grpc\Timeval'], + 'Grpc\ChannelCredentials::createComposite' => ['Grpc\ChannelCredentials', 'cred1'=>'Grpc\ChannelCredentials', 'cred2'=>'Grpc\CallCredentials'], + 'Grpc\ChannelCredentials::createDefault' => ['Grpc\ChannelCredentials'], + 'Grpc\ChannelCredentials::createInsecure' => ['null'], + 'Grpc\ChannelCredentials::createSsl' => ['Grpc\ChannelCredentials', 'pem_root_certs'=>'string', 'pem_private_key='=>'string', 'pem_cert_chain='=>'string'], + 'Grpc\ChannelCredentials::setDefaultRootsPem' => ['', 'pem_roots'=>'string'], + 'Grpc\Server::__construct' => ['void', 'args'=>'array'], + 'Grpc\Server::addHttp2Port' => ['bool', 'addr'=>'string'], + 'Grpc\Server::addSecureHttp2Port' => ['bool', 'addr'=>'string', 'creds_obj'=>'Grpc\ServerCredentials'], + 'Grpc\Server::requestCall' => ['', 'tag_new'=>'int', 'tag_cancel'=>'int'], + 'Grpc\Server::start' => [''], + 'Grpc\ServerCredentials::createSsl' => ['object', 'pem_root_certs'=>'string', 'pem_private_key'=>'string', 'pem_cert_chain'=>'string'], + 'Grpc\Timeval::__construct' => ['void', 'usec'=>'int'], + 'Grpc\Timeval::add' => ['Grpc\Timeval', 'other'=>'Grpc\Timeval'], + 'Grpc\Timeval::compare' => ['int', 'a'=>'Grpc\Timeval', 'b'=>'Grpc\Timeval'], + 'Grpc\Timeval::infFuture' => ['Grpc\Timeval'], + 'Grpc\Timeval::infPast' => ['Grpc\Timeval'], + 'Grpc\Timeval::now' => ['Grpc\Timeval'], + 'Grpc\Timeval::similar' => ['bool', 'a'=>'Grpc\Timeval', 'b'=>'Grpc\Timeval', 'threshold'=>'Grpc\Timeval'], + 'Grpc\Timeval::sleepUntil' => [''], + 'Grpc\Timeval::subtract' => ['Grpc\Timeval', 'other'=>'Grpc\Timeval'], + 'Grpc\Timeval::zero' => ['Grpc\Timeval'], + 'HRTime\PerformanceCounter::getElapsedTicks' => ['int'], + 'HRTime\PerformanceCounter::getFrequency' => ['int'], + 'HRTime\PerformanceCounter::getLastElapsedTicks' => ['int'], + 'HRTime\PerformanceCounter::getTicks' => ['int'], + 'HRTime\PerformanceCounter::getTicksSince' => ['int', 'start'=>'int'], + 'HRTime\PerformanceCounter::isRunning' => ['bool'], + 'HRTime\PerformanceCounter::start' => ['void'], + 'HRTime\PerformanceCounter::stop' => ['void'], + 'HRTime\StopWatch::getElapsedTicks' => ['int'], + 'HRTime\StopWatch::getElapsedTime' => ['float', 'unit='=>'int'], + 'HRTime\StopWatch::getLastElapsedTicks' => ['int'], + 'HRTime\StopWatch::getLastElapsedTime' => ['float', 'unit='=>'int'], + 'HRTime\StopWatch::isRunning' => ['bool'], + 'HRTime\StopWatch::start' => ['void'], + 'HRTime\StopWatch::stop' => ['void'], + 'HaruAnnotation::setBorderStyle' => ['bool', 'width'=>'float', 'dash_on'=>'int', 'dash_off'=>'int'], + 'HaruAnnotation::setHighlightMode' => ['bool', 'mode'=>'int'], + 'HaruAnnotation::setIcon' => ['bool', 'icon'=>'int'], + 'HaruAnnotation::setOpened' => ['bool', 'opened'=>'bool'], + 'HaruDestination::setFit' => ['bool'], + 'HaruDestination::setFitB' => ['bool'], + 'HaruDestination::setFitBH' => ['bool', 'top'=>'float'], + 'HaruDestination::setFitBV' => ['bool', 'left'=>'float'], + 'HaruDestination::setFitH' => ['bool', 'top'=>'float'], + 'HaruDestination::setFitR' => ['bool', 'left'=>'float', 'bottom'=>'float', 'right'=>'float', 'top'=>'float'], + 'HaruDestination::setFitV' => ['bool', 'left'=>'float'], + 'HaruDestination::setXYZ' => ['bool', 'left'=>'float', 'top'=>'float', 'zoom'=>'float'], + 'HaruDoc::__construct' => ['void'], + 'HaruDoc::addPage' => ['object'], + 'HaruDoc::addPageLabel' => ['bool', 'first_page'=>'int', 'style'=>'int', 'first_num'=>'int', 'prefix='=>'string'], + 'HaruDoc::createOutline' => ['object', 'title'=>'string', 'parent_outline='=>'object', 'encoder='=>'object'], + 'HaruDoc::getCurrentEncoder' => ['object'], + 'HaruDoc::getCurrentPage' => ['object'], + 'HaruDoc::getEncoder' => ['object', 'encoding'=>'string'], + 'HaruDoc::getFont' => ['object', 'fontname'=>'string', 'encoding='=>'string'], + 'HaruDoc::getInfoAttr' => ['string', 'type'=>'int'], + 'HaruDoc::getPageLayout' => ['int'], + 'HaruDoc::getPageMode' => ['int'], + 'HaruDoc::getStreamSize' => ['int'], + 'HaruDoc::insertPage' => ['object', 'page'=>'object'], + 'HaruDoc::loadJPEG' => ['object', 'filename'=>'string'], + 'HaruDoc::loadPNG' => ['object', 'filename'=>'string', 'deferred='=>'bool'], + 'HaruDoc::loadRaw' => ['object', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'color_space'=>'int'], + 'HaruDoc::loadTTC' => ['string', 'fontfile'=>'string', 'index'=>'int', 'embed='=>'bool'], + 'HaruDoc::loadTTF' => ['string', 'fontfile'=>'string', 'embed='=>'bool'], + 'HaruDoc::loadType1' => ['string', 'afmfile'=>'string', 'pfmfile='=>'string'], + 'HaruDoc::output' => ['bool'], + 'HaruDoc::readFromStream' => ['string', 'bytes'=>'int'], + 'HaruDoc::resetError' => ['bool'], + 'HaruDoc::resetStream' => ['bool'], + 'HaruDoc::save' => ['bool', 'file'=>'string'], + 'HaruDoc::saveToStream' => ['bool'], + 'HaruDoc::setCompressionMode' => ['bool', 'mode'=>'int'], + 'HaruDoc::setCurrentEncoder' => ['bool', 'encoding'=>'string'], + 'HaruDoc::setEncryptionMode' => ['bool', 'mode'=>'int', 'key_len='=>'int'], + 'HaruDoc::setInfoAttr' => ['bool', 'type'=>'int', 'info'=>'string'], + 'HaruDoc::setInfoDateAttr' => ['bool', 'type'=>'int', 'year'=>'int', 'month'=>'int', 'day'=>'int', 'hour'=>'int', 'min'=>'int', 'sec'=>'int', 'ind'=>'string', 'off_hour'=>'int', 'off_min'=>'int'], + 'HaruDoc::setOpenAction' => ['bool', 'destination'=>'object'], + 'HaruDoc::setPageLayout' => ['bool', 'layout'=>'int'], + 'HaruDoc::setPageMode' => ['bool', 'mode'=>'int'], + 'HaruDoc::setPagesConfiguration' => ['bool', 'page_per_pages'=>'int'], + 'HaruDoc::setPassword' => ['bool', 'owner_password'=>'string', 'user_password'=>'string'], + 'HaruDoc::setPermission' => ['bool', 'permission'=>'int'], + 'HaruDoc::useCNSEncodings' => ['bool'], + 'HaruDoc::useCNSFonts' => ['bool'], + 'HaruDoc::useCNTEncodings' => ['bool'], + 'HaruDoc::useCNTFonts' => ['bool'], + 'HaruDoc::useJPEncodings' => ['bool'], + 'HaruDoc::useJPFonts' => ['bool'], + 'HaruDoc::useKREncodings' => ['bool'], + 'HaruDoc::useKRFonts' => ['bool'], + 'HaruEncoder::getByteType' => ['int', 'text'=>'string', 'index'=>'int'], + 'HaruEncoder::getType' => ['int'], + 'HaruEncoder::getUnicode' => ['int', 'character'=>'int'], + 'HaruEncoder::getWritingMode' => ['int'], + 'HaruFont::getAscent' => ['int'], + 'HaruFont::getCapHeight' => ['int'], + 'HaruFont::getDescent' => ['int'], + 'HaruFont::getEncodingName' => ['string'], + 'HaruFont::getFontName' => ['string'], + 'HaruFont::getTextWidth' => ['array', 'text'=>'string'], + 'HaruFont::getUnicodeWidth' => ['int', 'character'=>'int'], + 'HaruFont::getXHeight' => ['int'], + 'HaruFont::measureText' => ['int', 'text'=>'string', 'width'=>'float', 'font_size'=>'float', 'char_space'=>'float', 'word_space'=>'float', 'word_wrap='=>'bool'], + 'HaruImage::getBitsPerComponent' => ['int'], + 'HaruImage::getColorSpace' => ['string'], + 'HaruImage::getHeight' => ['int'], + 'HaruImage::getSize' => ['array'], + 'HaruImage::getWidth' => ['int'], + 'HaruImage::setColorMask' => ['bool', 'rmin'=>'int', 'rmax'=>'int', 'gmin'=>'int', 'gmax'=>'int', 'bmin'=>'int', 'bmax'=>'int'], + 'HaruImage::setMaskImage' => ['bool', 'mask_image'=>'object'], + 'HaruOutline::setDestination' => ['bool', 'destination'=>'object'], + 'HaruOutline::setOpened' => ['bool', 'opened'=>'bool'], + 'HaruPage::arc' => ['bool', 'x'=>'float', 'y'=>'float', 'ray'=>'float', 'ang1'=>'float', 'ang2'=>'float'], + 'HaruPage::beginText' => ['bool'], + 'HaruPage::circle' => ['bool', 'x'=>'float', 'y'=>'float', 'ray'=>'float'], + 'HaruPage::closePath' => ['bool'], + 'HaruPage::concat' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], + 'HaruPage::createDestination' => ['object'], + 'HaruPage::createLinkAnnotation' => ['object', 'rectangle'=>'array', 'destination'=>'object'], + 'HaruPage::createTextAnnotation' => ['object', 'rectangle'=>'array', 'text'=>'string', 'encoder='=>'object'], + 'HaruPage::createURLAnnotation' => ['object', 'rectangle'=>'array', 'url'=>'string'], + 'HaruPage::curveTo' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'HaruPage::curveTo2' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'HaruPage::curveTo3' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'HaruPage::drawImage' => ['bool', 'image'=>'object', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'HaruPage::ellipse' => ['bool', 'x'=>'float', 'y'=>'float', 'xray'=>'float', 'yray'=>'float'], + 'HaruPage::endPath' => ['bool'], + 'HaruPage::endText' => ['bool'], + 'HaruPage::eoFillStroke' => ['bool', 'close_path='=>'bool'], + 'HaruPage::eofill' => ['bool'], + 'HaruPage::fill' => ['bool'], + 'HaruPage::fillStroke' => ['bool', 'close_path='=>'bool'], + 'HaruPage::getCMYKFill' => ['array'], + 'HaruPage::getCMYKStroke' => ['array'], + 'HaruPage::getCharSpace' => ['float'], + 'HaruPage::getCurrentFont' => ['object'], + 'HaruPage::getCurrentFontSize' => ['float'], + 'HaruPage::getCurrentPos' => ['array'], + 'HaruPage::getCurrentTextPos' => ['array'], + 'HaruPage::getDash' => ['array'], + 'HaruPage::getFillingColorSpace' => ['int'], + 'HaruPage::getFlatness' => ['float'], + 'HaruPage::getGMode' => ['int'], + 'HaruPage::getGrayFill' => ['float'], + 'HaruPage::getGrayStroke' => ['float'], + 'HaruPage::getHeight' => ['float'], + 'HaruPage::getHorizontalScaling' => ['float'], + 'HaruPage::getLineCap' => ['int'], + 'HaruPage::getLineJoin' => ['int'], + 'HaruPage::getLineWidth' => ['float'], + 'HaruPage::getMiterLimit' => ['float'], + 'HaruPage::getRGBFill' => ['array'], + 'HaruPage::getRGBStroke' => ['array'], + 'HaruPage::getStrokingColorSpace' => ['int'], + 'HaruPage::getTextLeading' => ['float'], + 'HaruPage::getTextMatrix' => ['array'], + 'HaruPage::getTextRenderingMode' => ['int'], + 'HaruPage::getTextRise' => ['float'], + 'HaruPage::getTextWidth' => ['float', 'text'=>'string'], + 'HaruPage::getTransMatrix' => ['array'], + 'HaruPage::getWidth' => ['float'], + 'HaruPage::getWordSpace' => ['float'], + 'HaruPage::lineTo' => ['bool', 'x'=>'float', 'y'=>'float'], + 'HaruPage::measureText' => ['int', 'text'=>'string', 'width'=>'float', 'wordwrap='=>'bool'], + 'HaruPage::moveTextPos' => ['bool', 'x'=>'float', 'y'=>'float', 'set_leading='=>'bool'], + 'HaruPage::moveTo' => ['bool', 'x'=>'float', 'y'=>'float'], + 'HaruPage::moveToNextLine' => ['bool'], + 'HaruPage::rectangle' => ['bool', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'HaruPage::setCMYKFill' => ['bool', 'c'=>'float', 'm'=>'float', 'y'=>'float', 'k'=>'float'], + 'HaruPage::setCMYKStroke' => ['bool', 'c'=>'float', 'm'=>'float', 'y'=>'float', 'k'=>'float'], + 'HaruPage::setCharSpace' => ['bool', 'char_space'=>'float'], + 'HaruPage::setDash' => ['bool', 'pattern'=>'array', 'phase'=>'int'], + 'HaruPage::setFlatness' => ['bool', 'flatness'=>'float'], + 'HaruPage::setFontAndSize' => ['bool', 'font'=>'object', 'size'=>'float'], + 'HaruPage::setGrayFill' => ['bool', 'value'=>'float'], + 'HaruPage::setGrayStroke' => ['bool', 'value'=>'float'], + 'HaruPage::setHeight' => ['bool', 'height'=>'float'], + 'HaruPage::setHorizontalScaling' => ['bool', 'scaling'=>'float'], + 'HaruPage::setLineCap' => ['bool', 'cap'=>'int'], + 'HaruPage::setLineJoin' => ['bool', 'join'=>'int'], + 'HaruPage::setLineWidth' => ['bool', 'width'=>'float'], + 'HaruPage::setMiterLimit' => ['bool', 'limit'=>'float'], + 'HaruPage::setRGBFill' => ['bool', 'r'=>'float', 'g'=>'float', 'b'=>'float'], + 'HaruPage::setRGBStroke' => ['bool', 'r'=>'float', 'g'=>'float', 'b'=>'float'], + 'HaruPage::setRotate' => ['bool', 'angle'=>'int'], + 'HaruPage::setSize' => ['bool', 'size'=>'int', 'direction'=>'int'], + 'HaruPage::setSlideShow' => ['bool', 'type'=>'int', 'disp_time'=>'float', 'trans_time'=>'float'], + 'HaruPage::setTextLeading' => ['bool', 'text_leading'=>'float'], + 'HaruPage::setTextMatrix' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], + 'HaruPage::setTextRenderingMode' => ['bool', 'mode'=>'int'], + 'HaruPage::setTextRise' => ['bool', 'rise'=>'float'], + 'HaruPage::setWidth' => ['bool', 'width'=>'float'], + 'HaruPage::setWordSpace' => ['bool', 'word_space'=>'float'], + 'HaruPage::showText' => ['bool', 'text'=>'string'], + 'HaruPage::showTextNextLine' => ['bool', 'text'=>'string', 'word_space='=>'float', 'char_space='=>'float'], + 'HaruPage::stroke' => ['bool', 'close_path='=>'bool'], + 'HaruPage::textOut' => ['bool', 'x'=>'float', 'y'=>'float', 'text'=>'string'], + 'HaruPage::textRect' => ['bool', 'left'=>'float', 'top'=>'float', 'right'=>'float', 'bottom'=>'float', 'text'=>'string', 'align='=>'int'], + 'HttpDeflateStream::__construct' => ['void', 'flags='=>'int'], + 'HttpDeflateStream::factory' => ['HttpDeflateStream', 'flags='=>'int', 'class_name='=>'string'], + 'HttpDeflateStream::finish' => ['string', 'data='=>'string'], + 'HttpDeflateStream::flush' => ['string|false', 'data='=>'string'], + 'HttpDeflateStream::update' => ['string|false', 'data'=>'string'], + 'HttpInflateStream::__construct' => ['void', 'flags='=>'int'], + 'HttpInflateStream::factory' => ['HttpInflateStream', 'flags='=>'int', 'class_name='=>'string'], + 'HttpInflateStream::finish' => ['string', 'data='=>'string'], + 'HttpInflateStream::flush' => ['string|false', 'data='=>'string'], + 'HttpInflateStream::update' => ['string|false', 'data'=>'string'], + 'HttpMessage::__construct' => ['void', 'message='=>'string'], + 'HttpMessage::__toString' => ['string'], + 'HttpMessage::addHeaders' => ['void', 'headers'=>'array', 'append='=>'bool'], + 'HttpMessage::count' => ['int'], + 'HttpMessage::current' => ['mixed'], + 'HttpMessage::detach' => ['HttpMessage'], + 'HttpMessage::factory' => ['?HttpMessage', 'raw_message='=>'string', 'class_name='=>'string'], + 'HttpMessage::fromEnv' => ['?HttpMessage', 'message_type'=>'int', 'class_name='=>'string'], + 'HttpMessage::fromString' => ['?HttpMessage', 'raw_message='=>'string', 'class_name='=>'string'], + 'HttpMessage::getBody' => ['string'], + 'HttpMessage::getHeader' => ['?string', 'header'=>'string'], + 'HttpMessage::getHeaders' => ['array'], + 'HttpMessage::getHttpVersion' => ['string'], + 'HttpMessage::getInfo' => [''], + 'HttpMessage::getParentMessage' => ['HttpMessage'], + 'HttpMessage::getRequestMethod' => ['string|false'], + 'HttpMessage::getRequestUrl' => ['string|false'], + 'HttpMessage::getResponseCode' => ['int'], + 'HttpMessage::getResponseStatus' => ['string'], + 'HttpMessage::getType' => ['int'], + 'HttpMessage::guessContentType' => ['string|false', 'magic_file'=>'string', 'magic_mode='=>'int'], + 'HttpMessage::key' => ['int|string'], + 'HttpMessage::next' => ['void'], + 'HttpMessage::prepend' => ['void', 'message'=>'HttpMessage', 'top='=>'bool'], + 'HttpMessage::reverse' => ['HttpMessage'], + 'HttpMessage::rewind' => ['void'], + 'HttpMessage::send' => ['bool'], + 'HttpMessage::serialize' => ['string'], + 'HttpMessage::setBody' => ['void', 'body'=>'string'], + 'HttpMessage::setHeaders' => ['void', 'headers'=>'array'], + 'HttpMessage::setHttpVersion' => ['bool', 'version'=>'string'], + 'HttpMessage::setInfo' => ['', 'http_info'=>''], + 'HttpMessage::setRequestMethod' => ['bool', 'method'=>'string'], + 'HttpMessage::setRequestUrl' => ['bool', 'url'=>'string'], + 'HttpMessage::setResponseCode' => ['bool', 'code'=>'int'], + 'HttpMessage::setResponseStatus' => ['bool', 'status'=>'string'], + 'HttpMessage::setType' => ['void', 'type'=>'int'], + 'HttpMessage::toMessageTypeObject' => ['HttpRequest|HttpResponse|null'], + 'HttpMessage::toString' => ['string', 'include_parent='=>'bool'], + 'HttpMessage::unserialize' => ['void', 'serialized'=>'string'], + 'HttpMessage::valid' => ['bool'], + 'HttpQueryString::__construct' => ['void', 'global='=>'bool', 'add='=>'mixed'], + 'HttpQueryString::__toString' => ['string'], + 'HttpQueryString::factory' => ['', 'global'=>'', 'params'=>'', 'class_name'=>''], + 'HttpQueryString::get' => ['mixed', 'key='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], + 'HttpQueryString::getArray' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::getBool' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::getFloat' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::getInt' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::getObject' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::getString' => ['', 'name'=>'', 'defval'=>'', 'delete'=>''], + 'HttpQueryString::mod' => ['HttpQueryString', 'params'=>'mixed'], + 'HttpQueryString::offsetExists' => ['bool', 'offset'=>'mixed'], + 'HttpQueryString::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'HttpQueryString::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'HttpQueryString::offsetUnset' => ['void', 'offset'=>'mixed'], + 'HttpQueryString::serialize' => ['string'], + 'HttpQueryString::set' => ['string', 'params'=>'mixed'], + 'HttpQueryString::singleton' => ['HttpQueryString', 'global='=>'bool'], + 'HttpQueryString::toArray' => ['array'], + 'HttpQueryString::toString' => ['string'], + 'HttpQueryString::unserialize' => ['void', 'serialized'=>'string'], + 'HttpQueryString::xlate' => ['bool', 'ie'=>'string', 'oe'=>'string'], + 'HttpRequest::__construct' => ['void', 'url='=>'string', 'request_method='=>'int', 'options='=>'array'], + 'HttpRequest::addBody' => ['', 'request_body_data'=>''], + 'HttpRequest::addCookies' => ['bool', 'cookies'=>'array'], + 'HttpRequest::addHeaders' => ['bool', 'headers'=>'array'], + 'HttpRequest::addPostFields' => ['bool', 'post_data'=>'array'], + 'HttpRequest::addPostFile' => ['bool', 'name'=>'string', 'file'=>'string', 'content_type='=>'string'], + 'HttpRequest::addPutData' => ['bool', 'put_data'=>'string'], + 'HttpRequest::addQueryData' => ['bool', 'query_params'=>'array'], + 'HttpRequest::addRawPostData' => ['bool', 'raw_post_data'=>'string'], + 'HttpRequest::addSslOptions' => ['bool', 'options'=>'array'], + 'HttpRequest::clearHistory' => ['void'], + 'HttpRequest::enableCookies' => ['bool'], + 'HttpRequest::encodeBody' => ['', 'fields'=>'', 'files'=>''], + 'HttpRequest::factory' => ['', 'url'=>'', 'method'=>'', 'options'=>'', 'class_name'=>''], + 'HttpRequest::flushCookies' => [''], + 'HttpRequest::get' => ['', 'url'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::getBody' => [''], + 'HttpRequest::getContentType' => ['string'], + 'HttpRequest::getCookies' => ['array'], + 'HttpRequest::getHeaders' => ['array'], + 'HttpRequest::getHistory' => ['HttpMessage'], + 'HttpRequest::getMethod' => ['int'], + 'HttpRequest::getOptions' => ['array'], + 'HttpRequest::getPostFields' => ['array'], + 'HttpRequest::getPostFiles' => ['array'], + 'HttpRequest::getPutData' => ['string'], + 'HttpRequest::getPutFile' => ['string'], + 'HttpRequest::getQueryData' => ['string'], + 'HttpRequest::getRawPostData' => ['string'], + 'HttpRequest::getRawRequestMessage' => ['string'], + 'HttpRequest::getRawResponseMessage' => ['string'], + 'HttpRequest::getRequestMessage' => ['HttpMessage'], + 'HttpRequest::getResponseBody' => ['string'], + 'HttpRequest::getResponseCode' => ['int'], + 'HttpRequest::getResponseCookies' => ['stdClass[]', 'flags='=>'int', 'allowed_extras='=>'array'], + 'HttpRequest::getResponseData' => ['array'], + 'HttpRequest::getResponseHeader' => ['mixed', 'name='=>'string'], + 'HttpRequest::getResponseInfo' => ['mixed', 'name='=>'string'], + 'HttpRequest::getResponseMessage' => ['HttpMessage'], + 'HttpRequest::getResponseStatus' => ['string'], + 'HttpRequest::getSslOptions' => ['array'], + 'HttpRequest::getUrl' => ['string'], + 'HttpRequest::head' => ['', 'url'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::methodExists' => ['', 'method'=>''], + 'HttpRequest::methodName' => ['', 'method_id'=>''], + 'HttpRequest::methodRegister' => ['', 'method_name'=>''], + 'HttpRequest::methodUnregister' => ['', 'method'=>''], + 'HttpRequest::postData' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::postFields' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::putData' => ['', 'url'=>'', 'data'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::putFile' => ['', 'url'=>'', 'file'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::putStream' => ['', 'url'=>'', 'stream'=>'', 'options'=>'', '&info'=>''], + 'HttpRequest::resetCookies' => ['bool', 'session_only='=>'bool'], + 'HttpRequest::send' => ['HttpMessage'], + 'HttpRequest::setBody' => ['bool', 'request_body_data='=>'string'], + 'HttpRequest::setContentType' => ['bool', 'content_type'=>'string'], + 'HttpRequest::setCookies' => ['bool', 'cookies='=>'array'], + 'HttpRequest::setHeaders' => ['bool', 'headers='=>'array'], + 'HttpRequest::setMethod' => ['bool', 'request_method'=>'int'], + 'HttpRequest::setOptions' => ['bool', 'options='=>'array'], + 'HttpRequest::setPostFields' => ['bool', 'post_data'=>'array'], + 'HttpRequest::setPostFiles' => ['bool', 'post_files'=>'array'], + 'HttpRequest::setPutData' => ['bool', 'put_data='=>'string'], + 'HttpRequest::setPutFile' => ['bool', 'file='=>'string'], + 'HttpRequest::setQueryData' => ['bool', 'query_data'=>'mixed'], + 'HttpRequest::setRawPostData' => ['bool', 'raw_post_data='=>'string'], + 'HttpRequest::setSslOptions' => ['bool', 'options='=>'array'], + 'HttpRequest::setUrl' => ['bool', 'url'=>'string'], + 'HttpRequestDataShare::__construct' => ['void'], + 'HttpRequestDataShare::__destruct' => ['void'], + 'HttpRequestDataShare::attach' => ['', 'request'=>'HttpRequest'], + 'HttpRequestDataShare::count' => ['int'], + 'HttpRequestDataShare::detach' => ['', 'request'=>'HttpRequest'], + 'HttpRequestDataShare::factory' => ['', 'global'=>'', 'class_name'=>''], + 'HttpRequestDataShare::reset' => [''], + 'HttpRequestDataShare::singleton' => ['', 'global'=>''], + 'HttpRequestPool::__construct' => ['void', 'request='=>'HttpRequest'], + 'HttpRequestPool::__destruct' => ['void'], + 'HttpRequestPool::attach' => ['bool', 'request'=>'HttpRequest'], + 'HttpRequestPool::count' => ['int'], + 'HttpRequestPool::current' => ['mixed'], + 'HttpRequestPool::detach' => ['bool', 'request'=>'HttpRequest'], + 'HttpRequestPool::enableEvents' => ['', 'enable'=>''], + 'HttpRequestPool::enablePipelining' => ['', 'enable'=>''], + 'HttpRequestPool::getAttachedRequests' => ['array'], + 'HttpRequestPool::getFinishedRequests' => ['array'], + 'HttpRequestPool::key' => ['int|string'], + 'HttpRequestPool::next' => ['void'], + 'HttpRequestPool::reset' => ['void'], + 'HttpRequestPool::rewind' => ['void'], + 'HttpRequestPool::send' => ['bool'], + 'HttpRequestPool::socketPerform' => ['bool'], + 'HttpRequestPool::socketSelect' => ['bool', 'timeout='=>'float'], + 'HttpRequestPool::valid' => ['bool'], + 'HttpResponse::capture' => ['void'], + 'HttpResponse::getBufferSize' => ['int'], + 'HttpResponse::getCache' => ['bool'], + 'HttpResponse::getCacheControl' => ['string'], + 'HttpResponse::getContentDisposition' => ['string'], + 'HttpResponse::getContentType' => ['string'], + 'HttpResponse::getData' => ['string'], + 'HttpResponse::getETag' => ['string'], + 'HttpResponse::getFile' => ['string'], + 'HttpResponse::getGzip' => ['bool'], + 'HttpResponse::getHeader' => ['mixed', 'name='=>'string'], + 'HttpResponse::getLastModified' => ['int'], + 'HttpResponse::getRequestBody' => ['string'], + 'HttpResponse::getRequestBodyStream' => ['resource'], + 'HttpResponse::getRequestHeaders' => ['array'], + 'HttpResponse::getStream' => ['resource'], + 'HttpResponse::getThrottleDelay' => ['float'], + 'HttpResponse::guessContentType' => ['string|false', 'magic_file'=>'string', 'magic_mode='=>'int'], + 'HttpResponse::redirect' => ['void', 'url='=>'string', 'params='=>'array', 'session='=>'bool', 'status='=>'int'], + 'HttpResponse::send' => ['bool', 'clean_ob='=>'bool'], + 'HttpResponse::setBufferSize' => ['bool', 'bytes'=>'int'], + 'HttpResponse::setCache' => ['bool', 'cache'=>'bool'], + 'HttpResponse::setCacheControl' => ['bool', 'control'=>'string', 'max_age='=>'int', 'must_revalidate='=>'bool'], + 'HttpResponse::setContentDisposition' => ['bool', 'filename'=>'string', 'inline='=>'bool'], + 'HttpResponse::setContentType' => ['bool', 'content_type'=>'string'], + 'HttpResponse::setData' => ['bool', 'data'=>'mixed'], + 'HttpResponse::setETag' => ['bool', 'etag'=>'string'], + 'HttpResponse::setFile' => ['bool', 'file'=>'string'], + 'HttpResponse::setGzip' => ['bool', 'gzip'=>'bool'], + 'HttpResponse::setHeader' => ['bool', 'name'=>'string', 'value='=>'mixed', 'replace='=>'bool'], + 'HttpResponse::setLastModified' => ['bool', 'timestamp'=>'int'], + 'HttpResponse::setStream' => ['bool', 'stream'=>'resource'], + 'HttpResponse::setThrottleDelay' => ['bool', 'seconds'=>'float'], + 'HttpResponse::status' => ['bool', 'status'=>'int'], + 'HttpUtil::buildCookie' => ['', 'cookie_array'=>''], + 'HttpUtil::buildStr' => ['', 'query'=>'', 'prefix'=>'', 'arg_sep'=>''], + 'HttpUtil::buildUrl' => ['', 'url'=>'', 'parts'=>'', 'flags'=>'', '&composed'=>''], + 'HttpUtil::chunkedDecode' => ['', 'encoded_string'=>''], + 'HttpUtil::date' => ['', 'timestamp'=>''], + 'HttpUtil::deflate' => ['', 'plain'=>'', 'flags'=>''], + 'HttpUtil::inflate' => ['', 'encoded'=>''], + 'HttpUtil::matchEtag' => ['', 'plain_etag'=>'', 'for_range'=>''], + 'HttpUtil::matchModified' => ['', 'last_modified'=>'', 'for_range'=>''], + 'HttpUtil::matchRequestHeader' => ['', 'header_name'=>'', 'header_value'=>'', 'case_sensitive'=>''], + 'HttpUtil::negotiateCharset' => ['', 'supported'=>'', '&result'=>''], + 'HttpUtil::negotiateContentType' => ['', 'supported'=>'', '&result'=>''], + 'HttpUtil::negotiateLanguage' => ['', 'supported'=>'', '&result'=>''], + 'HttpUtil::parseCookie' => ['', 'cookie_string'=>''], + 'HttpUtil::parseHeaders' => ['', 'headers_string'=>''], + 'HttpUtil::parseMessage' => ['', 'message_string'=>''], + 'HttpUtil::parseParams' => ['', 'param_string'=>'', 'flags'=>''], + 'HttpUtil::support' => ['', 'feature'=>''], + 'Imagick::__construct' => ['void', 'files='=>'string|string[]'], + 'Imagick::__toString' => ['string'], + 'Imagick::adaptiveBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Imagick::adaptiveResizeImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'bestfit='=>'bool'], + 'Imagick::adaptiveSharpenImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Imagick::adaptiveThresholdImage' => ['bool', 'width'=>'int', 'height'=>'int', 'offset'=>'int'], + 'Imagick::addImage' => ['bool', 'source'=>'Imagick'], + 'Imagick::addNoiseImage' => ['bool', 'noise_type'=>'int', 'channel='=>'int'], + 'Imagick::affineTransformImage' => ['bool', 'matrix'=>'ImagickDraw'], + 'Imagick::animateImages' => ['bool', 'x_server'=>'string'], + 'Imagick::annotateImage' => ['bool', 'draw_settings'=>'ImagickDraw', 'x'=>'float', 'y'=>'float', 'angle'=>'float', 'text'=>'string'], + 'Imagick::appendImages' => ['Imagick', 'stack'=>'bool'], + 'Imagick::autoGammaImage' => ['bool', 'channel='=>'int'], + 'Imagick::autoLevelImage' => ['void', 'CHANNEL='=>'string'], + 'Imagick::autoOrient' => ['bool'], + 'Imagick::averageImages' => ['Imagick'], + 'Imagick::blackThresholdImage' => ['bool', 'threshold'=>'mixed'], + 'Imagick::blueShiftImage' => ['void', 'factor='=>'float'], + 'Imagick::blurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Imagick::borderImage' => ['bool', 'bordercolor'=>'mixed', 'width'=>'int', 'height'=>'int'], + 'Imagick::brightnessContrastImage' => ['void', 'brightness'=>'string', 'contrast'=>'string', 'CHANNEL='=>'string'], + 'Imagick::charcoalImage' => ['bool', 'radius'=>'float', 'sigma'=>'float'], + 'Imagick::chopImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::clampImage' => ['void', 'CHANNEL='=>'string'], + 'Imagick::clear' => ['bool'], + 'Imagick::clipImage' => ['bool'], + 'Imagick::clipImagePath' => ['void', 'pathname'=>'string', 'inside'=>'string'], + 'Imagick::clipPathImage' => ['bool', 'pathname'=>'string', 'inside'=>'bool'], + 'Imagick::clone' => ['Imagick'], + 'Imagick::clutImage' => ['bool', 'lookup_table'=>'Imagick', 'channel='=>'float'], + 'Imagick::coalesceImages' => ['Imagick'], + 'Imagick::colorFloodfillImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int'], + 'Imagick::colorMatrixImage' => ['void', 'color_matrix'=>'string'], + 'Imagick::colorizeImage' => ['bool', 'colorize'=>'mixed', 'opacity'=>'mixed'], + 'Imagick::combineImages' => ['Imagick', 'channeltype'=>'int'], + 'Imagick::commentImage' => ['bool', 'comment'=>'string'], + 'Imagick::compareImageChannels' => ['array{Imagick, float}', 'image'=>'Imagick', 'channeltype'=>'int', 'metrictype'=>'int'], + 'Imagick::compareImageLayers' => ['Imagick', 'method'=>'int'], + 'Imagick::compareImages' => ['array{Imagick, float}', 'compare'=>'Imagick', 'metric'=>'int'], + 'Imagick::compositeImage' => ['bool', 'composite_object'=>'Imagick', 'composite'=>'int', 'x'=>'int', 'y'=>'int', 'channel='=>'int'], + 'Imagick::compositeImageGravity' => ['bool', 'Imagick'=>'Imagick', 'COMPOSITE_CONSTANT'=>'int', 'GRAVITY_CONSTANT'=>'int'], + 'Imagick::contrastImage' => ['bool', 'sharpen'=>'bool'], + 'Imagick::contrastStretchImage' => ['bool', 'black_point'=>'float', 'white_point'=>'float', 'channel='=>'int'], + 'Imagick::convolveImage' => ['bool', 'kernel'=>'array', 'channel='=>'int'], + 'Imagick::count' => ['void', 'mode='=>'string'], + 'Imagick::cropImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::cropThumbnailImage' => ['bool', 'width'=>'int', 'height'=>'int', 'legacy='=>'bool'], + 'Imagick::current' => ['Imagick'], + 'Imagick::cycleColormapImage' => ['bool', 'displace'=>'int'], + 'Imagick::decipherImage' => ['bool', 'passphrase'=>'string'], + 'Imagick::deconstructImages' => ['Imagick'], + 'Imagick::deleteImageArtifact' => ['bool', 'artifact'=>'string'], + 'Imagick::deleteImageProperty' => ['void', 'name'=>'string'], + 'Imagick::deskewImage' => ['bool', 'threshold'=>'float'], + 'Imagick::despeckleImage' => ['bool'], + 'Imagick::destroy' => ['bool'], + 'Imagick::displayImage' => ['bool', 'servername'=>'string'], + 'Imagick::displayImages' => ['bool', 'servername'=>'string'], + 'Imagick::distortImage' => ['bool', 'method'=>'int', 'arguments'=>'array', 'bestfit'=>'bool'], + 'Imagick::drawImage' => ['bool', 'draw'=>'ImagickDraw'], + 'Imagick::edgeImage' => ['bool', 'radius'=>'float'], + 'Imagick::embossImage' => ['bool', 'radius'=>'float', 'sigma'=>'float'], + 'Imagick::encipherImage' => ['bool', 'passphrase'=>'string'], + 'Imagick::enhanceImage' => ['bool'], + 'Imagick::equalizeImage' => ['bool'], + 'Imagick::evaluateImage' => ['bool', 'op'=>'int', 'constant'=>'float', 'channel='=>'int'], + 'Imagick::evaluateImages' => ['bool', 'EVALUATE_CONSTANT'=>'int'], + 'Imagick::exportImagePixels' => ['list', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int', 'map'=>'string', 'storage'=>'int'], + 'Imagick::extentImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::filter' => ['void', 'ImagickKernel'=>'ImagickKernel', 'CHANNEL='=>'int'], + 'Imagick::flattenImages' => ['Imagick'], + 'Imagick::flipImage' => ['bool'], + 'Imagick::floodFillPaintImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'target'=>'mixed', 'x'=>'int', 'y'=>'int', 'invert'=>'bool', 'channel='=>'int'], + 'Imagick::flopImage' => ['bool'], + 'Imagick::forwardFourierTransformimage' => ['void', 'magnitude'=>'bool'], + 'Imagick::frameImage' => ['bool', 'matte_color'=>'mixed', 'width'=>'int', 'height'=>'int', 'inner_bevel'=>'int', 'outer_bevel'=>'int'], + 'Imagick::functionImage' => ['bool', 'function'=>'int', 'arguments'=>'array', 'channel='=>'int'], + 'Imagick::fxImage' => ['Imagick', 'expression'=>'string', 'channel='=>'int'], + 'Imagick::gammaImage' => ['bool', 'gamma'=>'float', 'channel='=>'int'], + 'Imagick::gaussianBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Imagick::getColorspace' => ['int'], + 'Imagick::getCompression' => ['int'], + 'Imagick::getCompressionQuality' => ['int'], + 'Imagick::getConfigureOptions' => ['string'], + 'Imagick::getCopyright' => ['string'], + 'Imagick::getFeatures' => ['string'], + 'Imagick::getFilename' => ['string'], + 'Imagick::getFont' => ['string|false'], + 'Imagick::getFormat' => ['string'], + 'Imagick::getGravity' => ['int'], + 'Imagick::getHDRIEnabled' => ['int'], + 'Imagick::getHomeURL' => ['string'], + 'Imagick::getImage' => ['Imagick'], + 'Imagick::getImageAlphaChannel' => ['int'], + 'Imagick::getImageArtifact' => ['string', 'artifact'=>'string'], + 'Imagick::getImageAttribute' => ['string', 'key'=>'string'], + 'Imagick::getImageBackgroundColor' => ['ImagickPixel'], + 'Imagick::getImageBlob' => ['string'], + 'Imagick::getImageBluePrimary' => ['array{x:float, y:float}'], + 'Imagick::getImageBorderColor' => ['ImagickPixel'], + 'Imagick::getImageChannelDepth' => ['int', 'channel'=>'int'], + 'Imagick::getImageChannelDistortion' => ['float', 'reference'=>'Imagick', 'channel'=>'int', 'metric'=>'int'], + 'Imagick::getImageChannelDistortions' => ['float', 'reference'=>'Imagick', 'metric'=>'int', 'channel='=>'int'], + 'Imagick::getImageChannelExtrema' => ['array{minima:int, maxima:int}', 'channel'=>'int'], + 'Imagick::getImageChannelKurtosis' => ['array{kurtosis:float, skewness:float}', 'channel='=>'int'], + 'Imagick::getImageChannelMean' => ['array{mean:float, standardDeviation:float}', 'channel'=>'int'], + 'Imagick::getImageChannelRange' => ['array{minima:float, maxima:float}', 'channel'=>'int'], + 'Imagick::getImageChannelStatistics' => ['array'], + 'Imagick::getImageClipMask' => ['Imagick'], + 'Imagick::getImageColormapColor' => ['ImagickPixel', 'index'=>'int'], + 'Imagick::getImageColors' => ['int'], + 'Imagick::getImageColorspace' => ['int'], + 'Imagick::getImageCompose' => ['int'], + 'Imagick::getImageCompression' => ['int'], + 'Imagick::getImageCompressionQuality' => ['int'], + 'Imagick::getImageDelay' => ['int'], + 'Imagick::getImageDepth' => ['int'], + 'Imagick::getImageDispose' => ['int'], + 'Imagick::getImageDistortion' => ['float', 'reference'=>'magickwand', 'metric'=>'int'], + 'Imagick::getImageExtrema' => ['array{min:int, max:int}'], + 'Imagick::getImageFilename' => ['string'], + 'Imagick::getImageFormat' => ['string'], + 'Imagick::getImageGamma' => ['float'], + 'Imagick::getImageGeometry' => ['array{width:int, height:int}'], + 'Imagick::getImageGravity' => ['int'], + 'Imagick::getImageGreenPrimary' => ['array{x:float, y:float}'], + 'Imagick::getImageHeight' => ['int'], + 'Imagick::getImageHistogram' => ['list'], + 'Imagick::getImageIndex' => ['int'], + 'Imagick::getImageInterlaceScheme' => ['int'], + 'Imagick::getImageInterpolateMethod' => ['int'], + 'Imagick::getImageIterations' => ['int'], + 'Imagick::getImageLength' => ['int'], + 'Imagick::getImageMagickLicense' => ['string'], + 'Imagick::getImageMatte' => ['bool'], + 'Imagick::getImageMatteColor' => ['ImagickPixel'], + 'Imagick::getImageMimeType' => ['string'], + 'Imagick::getImageOrientation' => ['int'], + 'Imagick::getImagePage' => ['array{width:int, height:int, x:int, y:int}'], + 'Imagick::getImagePixelColor' => ['ImagickPixel', 'x'=>'int', 'y'=>'int'], + 'Imagick::getImageProfile' => ['string', 'name'=>'string'], + 'Imagick::getImageProfiles' => ['array', 'pattern='=>'string', 'only_names='=>'bool'], + 'Imagick::getImageProperties' => ['array', 'pattern='=>'string', 'only_names='=>'bool'], + 'Imagick::getImageProperty' => ['string|false', 'name'=>'string'], + 'Imagick::getImageRedPrimary' => ['array{x:float, y:float}'], + 'Imagick::getImageRegion' => ['Imagick', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::getImageRenderingIntent' => ['int'], + 'Imagick::getImageResolution' => ['array{x:float, y:float}'], + 'Imagick::getImageScene' => ['int'], + 'Imagick::getImageSignature' => ['string'], + 'Imagick::getImageSize' => ['int'], + 'Imagick::getImageTicksPerSecond' => ['int'], + 'Imagick::getImageTotalInkDensity' => ['float'], + 'Imagick::getImageType' => ['int'], + 'Imagick::getImageUnits' => ['int'], + 'Imagick::getImageVirtualPixelMethod' => ['int'], + 'Imagick::getImageWhitePoint' => ['array{x:float, y:float}'], + 'Imagick::getImageWidth' => ['int'], + 'Imagick::getImagesBlob' => ['string'], + 'Imagick::getInterlaceScheme' => ['int'], + 'Imagick::getIteratorIndex' => ['int'], + 'Imagick::getNumberImages' => ['int'], + 'Imagick::getOption' => ['string', 'key'=>'string'], + 'Imagick::getPackageName' => ['string'], + 'Imagick::getPage' => ['array{width:int, height:int, x:int, y:int}'], + 'Imagick::getPixelIterator' => ['ImagickPixelIterator'], + 'Imagick::getPixelRegionIterator' => ['ImagickPixelIterator', 'x'=>'int', 'y'=>'int', 'columns'=>'int', 'rows'=>'int'], + 'Imagick::getPointSize' => ['float'], + 'Imagick::getQuantum' => ['int'], + 'Imagick::getQuantumDepth' => ['array{quantumDepthLong:int, quantumDepthString:string}'], + 'Imagick::getQuantumRange' => ['array{quantumRangeLong:int, quantumRangeString:string}'], + 'Imagick::getRegistry' => ['string|false', 'key'=>'string'], + 'Imagick::getReleaseDate' => ['string'], + 'Imagick::getResource' => ['int', 'type'=>'int'], + 'Imagick::getResourceLimit' => ['int', 'type'=>'int'], + 'Imagick::getSamplingFactors' => ['array'], + 'Imagick::getSize' => ['array{columns:int, rows: int}'], + 'Imagick::getSizeOffset' => ['int'], + 'Imagick::getVersion' => ['array{versionNumber: int, versionString:string}'], + 'Imagick::haldClutImage' => ['bool', 'clut'=>'Imagick', 'channel='=>'int'], + 'Imagick::hasNextImage' => ['bool'], + 'Imagick::hasPreviousImage' => ['bool'], + 'Imagick::identifyFormat' => ['string|false', 'embedText'=>'string'], + 'Imagick::identifyImage' => ['array', 'appendrawoutput='=>'bool'], + 'Imagick::identifyImageType' => ['int'], + 'Imagick::implodeImage' => ['bool', 'radius'=>'float'], + 'Imagick::importImagePixels' => ['bool', 'x'=>'int', 'y'=>'int', 'width'=>'int', 'height'=>'int', 'map'=>'string', 'storage'=>'int', 'pixels'=>'list'], + 'Imagick::inverseFourierTransformImage' => ['void', 'complement'=>'string', 'magnitude'=>'string'], + 'Imagick::key' => ['int|string'], + 'Imagick::labelImage' => ['bool', 'label'=>'string'], + 'Imagick::levelImage' => ['bool', 'blackpoint'=>'float', 'gamma'=>'float', 'whitepoint'=>'float', 'channel='=>'int'], + 'Imagick::linearStretchImage' => ['bool', 'blackpoint'=>'float', 'whitepoint'=>'float'], + 'Imagick::liquidRescaleImage' => ['bool', 'width'=>'int', 'height'=>'int', 'delta_x'=>'float', 'rigidity'=>'float'], + 'Imagick::listRegistry' => ['array'], + 'Imagick::localContrastImage' => ['bool', 'radius'=>'float', 'strength'=>'float'], + 'Imagick::magnifyImage' => ['bool'], + 'Imagick::mapImage' => ['bool', 'map'=>'Imagick', 'dither'=>'bool'], + 'Imagick::matteFloodfillImage' => ['bool', 'alpha'=>'float', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int'], + 'Imagick::medianFilterImage' => ['bool', 'radius'=>'float'], + 'Imagick::mergeImageLayers' => ['Imagick', 'layer_method'=>'int'], + 'Imagick::minifyImage' => ['bool'], + 'Imagick::modulateImage' => ['bool', 'brightness'=>'float', 'saturation'=>'float', 'hue'=>'float'], + 'Imagick::montageImage' => ['Imagick', 'draw'=>'ImagickDraw', 'tile_geometry'=>'string', 'thumbnail_geometry'=>'string', 'mode'=>'int', 'frame'=>'string'], + 'Imagick::morphImages' => ['Imagick', 'number_frames'=>'int'], + 'Imagick::morphology' => ['void', 'morphologyMethod'=>'int', 'iterations'=>'int', 'ImagickKernel'=>'ImagickKernel', 'CHANNEL='=>'string'], + 'Imagick::mosaicImages' => ['Imagick'], + 'Imagick::motionBlurImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float', 'channel='=>'int'], + 'Imagick::negateImage' => ['bool', 'gray'=>'bool', 'channel='=>'int'], + 'Imagick::newImage' => ['bool', 'cols'=>'int', 'rows'=>'int', 'background'=>'mixed', 'format='=>'string'], + 'Imagick::newPseudoImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'pseudostring'=>'string'], + 'Imagick::next' => ['void'], + 'Imagick::nextImage' => ['bool'], + 'Imagick::normalizeImage' => ['bool', 'channel='=>'int'], + 'Imagick::oilPaintImage' => ['bool', 'radius'=>'float'], + 'Imagick::opaquePaintImage' => ['bool', 'target'=>'mixed', 'fill'=>'mixed', 'fuzz'=>'float', 'invert'=>'bool', 'channel='=>'int'], + 'Imagick::optimizeImageLayers' => ['bool'], + 'Imagick::orderedPosterizeImage' => ['bool', 'threshold_map'=>'string', 'channel='=>'int'], + 'Imagick::paintFloodfillImage' => ['bool', 'fill'=>'mixed', 'fuzz'=>'float', 'bordercolor'=>'mixed', 'x'=>'int', 'y'=>'int', 'channel='=>'int'], + 'Imagick::paintOpaqueImage' => ['bool', 'target'=>'mixed', 'fill'=>'mixed', 'fuzz'=>'float', 'channel='=>'int'], + 'Imagick::paintTransparentImage' => ['bool', 'target'=>'mixed', 'alpha'=>'float', 'fuzz'=>'float'], + 'Imagick::pingImage' => ['bool', 'filename'=>'string'], + 'Imagick::pingImageBlob' => ['bool', 'image'=>'string'], + 'Imagick::pingImageFile' => ['bool', 'filehandle'=>'resource', 'filename='=>'string'], + 'Imagick::polaroidImage' => ['bool', 'properties'=>'ImagickDraw', 'angle'=>'float'], + 'Imagick::posterizeImage' => ['bool', 'levels'=>'int', 'dither'=>'bool'], + 'Imagick::previewImages' => ['bool', 'preview'=>'int'], + 'Imagick::previousImage' => ['bool'], + 'Imagick::profileImage' => ['bool', 'name'=>'string', 'profile'=>'string'], + 'Imagick::quantizeImage' => ['bool', 'numbercolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], + 'Imagick::quantizeImages' => ['bool', 'numbercolors'=>'int', 'colorspace'=>'int', 'treedepth'=>'int', 'dither'=>'bool', 'measureerror'=>'bool'], + 'Imagick::queryFontMetrics' => ['array', 'properties'=>'ImagickDraw', 'text'=>'string', 'multiline='=>'bool'], + 'Imagick::queryFonts' => ['array', 'pattern='=>'string'], + 'Imagick::queryFormats' => ['list', 'pattern='=>'string'], + 'Imagick::radialBlurImage' => ['bool', 'angle'=>'float', 'channel='=>'int'], + 'Imagick::raiseImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int', 'raise'=>'bool'], + 'Imagick::randomThresholdImage' => ['bool', 'low'=>'float', 'high'=>'float', 'channel='=>'int'], + 'Imagick::readImage' => ['bool', 'filename'=>'string'], + 'Imagick::readImageBlob' => ['bool', 'image'=>'string', 'filename='=>'string'], + 'Imagick::readImageFile' => ['bool', 'filehandle'=>'resource', 'filename='=>'string'], + 'Imagick::readImages' => ['Imagick', 'filenames'=>'string'], + 'Imagick::recolorImage' => ['bool', 'matrix'=>'list'], + 'Imagick::reduceNoiseImage' => ['bool', 'radius'=>'float'], + 'Imagick::remapImage' => ['bool', 'replacement'=>'Imagick', 'dither'=>'int'], + 'Imagick::removeImage' => ['bool'], + 'Imagick::removeImageProfile' => ['string', 'name'=>'string'], + 'Imagick::render' => ['bool'], + 'Imagick::resampleImage' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float', 'filter'=>'int', 'blur'=>'float'], + 'Imagick::resetImagePage' => ['bool', 'page'=>'string'], + 'Imagick::resetIterator' => [''], + 'Imagick::resizeImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'filter'=>'int', 'blur'=>'float', 'bestfit='=>'bool'], + 'Imagick::rewind' => ['void'], + 'Imagick::rollImage' => ['bool', 'x'=>'int', 'y'=>'int'], + 'Imagick::rotateImage' => ['bool', 'background'=>'mixed', 'degrees'=>'float'], + 'Imagick::rotationalBlurImage' => ['void', 'angle'=>'string', 'CHANNEL='=>'string'], + 'Imagick::roundCorners' => ['bool', 'x_rounding'=>'float', 'y_rounding'=>'float', 'stroke_width='=>'float', 'displace='=>'float', 'size_correction='=>'float'], + 'Imagick::roundCornersImage' => ['', 'xRounding'=>'', 'yRounding'=>'', 'strokeWidth'=>'', 'displace'=>'', 'sizeCorrection'=>''], + 'Imagick::sampleImage' => ['bool', 'columns'=>'int', 'rows'=>'int'], + 'Imagick::scaleImage' => ['bool', 'cols'=>'int', 'rows'=>'int', 'bestfit='=>'bool'], + 'Imagick::segmentImage' => ['bool', 'colorspace'=>'int', 'cluster_threshold'=>'float', 'smooth_threshold'=>'float', 'verbose='=>'bool'], + 'Imagick::selectiveBlurImage' => ['void', 'radius'=>'float', 'sigma'=>'float', 'threshold'=>'float', 'CHANNEL'=>'int'], + 'Imagick::separateImageChannel' => ['bool', 'channel'=>'int'], + 'Imagick::sepiaToneImage' => ['bool', 'threshold'=>'float'], + 'Imagick::setAntiAlias' => ['int', 'antialias'=>'bool'], + 'Imagick::setBackgroundColor' => ['bool', 'background'=>'mixed'], + 'Imagick::setColorspace' => ['bool', 'colorspace'=>'int'], + 'Imagick::setCompression' => ['bool', 'compression'=>'int'], + 'Imagick::setCompressionQuality' => ['bool', 'quality'=>'int'], + 'Imagick::setFilename' => ['bool', 'filename'=>'string'], + 'Imagick::setFirstIterator' => ['bool'], + 'Imagick::setFont' => ['bool', 'font'=>'string'], + 'Imagick::setFormat' => ['bool', 'format'=>'string'], + 'Imagick::setGravity' => ['bool', 'gravity'=>'int'], + 'Imagick::setImage' => ['bool', 'replace'=>'Imagick'], + 'Imagick::setImageAlpha' => ['bool', 'alpha'=>'float'], + 'Imagick::setImageAlphaChannel' => ['bool', 'mode'=>'int'], + 'Imagick::setImageArtifact' => ['bool', 'artifact'=>'string', 'value'=>'string'], + 'Imagick::setImageAttribute' => ['void', 'key'=>'string', 'value'=>'string'], + 'Imagick::setImageBackgroundColor' => ['bool', 'background'=>'mixed'], + 'Imagick::setImageBias' => ['bool', 'bias'=>'float'], + 'Imagick::setImageBiasQuantum' => ['void', 'bias'=>'string'], + 'Imagick::setImageBluePrimary' => ['bool', 'x'=>'float', 'y'=>'float'], + 'Imagick::setImageBorderColor' => ['bool', 'border'=>'mixed'], + 'Imagick::setImageChannelDepth' => ['bool', 'channel'=>'int', 'depth'=>'int'], + 'Imagick::setImageChannelMask' => ['', 'channel'=>'int'], + 'Imagick::setImageClipMask' => ['bool', 'clip_mask'=>'Imagick'], + 'Imagick::setImageColormapColor' => ['bool', 'index'=>'int', 'color'=>'ImagickPixel'], + 'Imagick::setImageColorspace' => ['bool', 'colorspace'=>'int'], + 'Imagick::setImageCompose' => ['bool', 'compose'=>'int'], + 'Imagick::setImageCompression' => ['bool', 'compression'=>'int'], + 'Imagick::setImageCompressionQuality' => ['bool', 'quality'=>'int'], + 'Imagick::setImageDelay' => ['bool', 'delay'=>'int'], + 'Imagick::setImageDepth' => ['bool', 'depth'=>'int'], + 'Imagick::setImageDispose' => ['bool', 'dispose'=>'int'], + 'Imagick::setImageExtent' => ['bool', 'columns'=>'int', 'rows'=>'int'], + 'Imagick::setImageFilename' => ['bool', 'filename'=>'string'], + 'Imagick::setImageFormat' => ['bool', 'format'=>'string'], + 'Imagick::setImageGamma' => ['bool', 'gamma'=>'float'], + 'Imagick::setImageGravity' => ['bool', 'gravity'=>'int'], + 'Imagick::setImageGreenPrimary' => ['bool', 'x'=>'float', 'y'=>'float'], + 'Imagick::setImageIndex' => ['bool', 'index'=>'int'], + 'Imagick::setImageInterlaceScheme' => ['bool', 'interlace_scheme'=>'int'], + 'Imagick::setImageInterpolateMethod' => ['bool', 'method'=>'int'], + 'Imagick::setImageIterations' => ['bool', 'iterations'=>'int'], + 'Imagick::setImageMatte' => ['bool', 'matte'=>'bool'], + 'Imagick::setImageMatteColor' => ['bool', 'matte'=>'mixed'], + 'Imagick::setImageOpacity' => ['bool', 'opacity'=>'float'], + 'Imagick::setImageOrientation' => ['bool', 'orientation'=>'int'], + 'Imagick::setImagePage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::setImageProfile' => ['bool', 'name'=>'string', 'profile'=>'string'], + 'Imagick::setImageProgressMonitor' => ['', 'filename'=>''], + 'Imagick::setImageProperty' => ['bool', 'name'=>'string', 'value'=>'string'], + 'Imagick::setImageRedPrimary' => ['bool', 'x'=>'float', 'y'=>'float'], + 'Imagick::setImageRenderingIntent' => ['bool', 'rendering_intent'=>'int'], + 'Imagick::setImageResolution' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float'], + 'Imagick::setImageScene' => ['bool', 'scene'=>'int'], + 'Imagick::setImageTicksPerSecond' => ['bool', 'ticks_per_second'=>'int'], + 'Imagick::setImageType' => ['bool', 'image_type'=>'int'], + 'Imagick::setImageUnits' => ['bool', 'units'=>'int'], + 'Imagick::setImageVirtualPixelMethod' => ['bool', 'method'=>'int'], + 'Imagick::setImageWhitePoint' => ['bool', 'x'=>'float', 'y'=>'float'], + 'Imagick::setInterlaceScheme' => ['bool', 'interlace_scheme'=>'int'], + 'Imagick::setIteratorIndex' => ['bool', 'index'=>'int'], + 'Imagick::setLastIterator' => ['bool'], + 'Imagick::setOption' => ['bool', 'key'=>'string', 'value'=>'string'], + 'Imagick::setPage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::setPointSize' => ['bool', 'point_size'=>'float'], + 'Imagick::setProgressMonitor' => ['void', 'callback'=>'callable'], + 'Imagick::setRegistry' => ['void', 'key'=>'string', 'value'=>'string'], + 'Imagick::setResolution' => ['bool', 'x_resolution'=>'float', 'y_resolution'=>'float'], + 'Imagick::setResourceLimit' => ['bool', 'type'=>'int', 'limit'=>'int'], + 'Imagick::setSamplingFactors' => ['bool', 'factors'=>'list'], + 'Imagick::setSize' => ['bool', 'columns'=>'int', 'rows'=>'int'], + 'Imagick::setSizeOffset' => ['bool', 'columns'=>'int', 'rows'=>'int', 'offset'=>'int'], + 'Imagick::setType' => ['bool', 'image_type'=>'int'], + 'Imagick::shadeImage' => ['bool', 'gray'=>'bool', 'azimuth'=>'float', 'elevation'=>'float'], + 'Imagick::shadowImage' => ['bool', 'opacity'=>'float', 'sigma'=>'float', 'x'=>'int', 'y'=>'int'], + 'Imagick::sharpenImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'channel='=>'int'], + 'Imagick::shaveImage' => ['bool', 'columns'=>'int', 'rows'=>'int'], + 'Imagick::shearImage' => ['bool', 'background'=>'mixed', 'x_shear'=>'float', 'y_shear'=>'float'], + 'Imagick::sigmoidalContrastImage' => ['bool', 'sharpen'=>'bool', 'alpha'=>'float', 'beta'=>'float', 'channel='=>'int'], + 'Imagick::similarityImage' => ['Imagick', 'Imagick'=>'Imagick', '&bestMatch'=>'array', '&similarity'=>'float', 'similarity_threshold'=>'float', 'metric'=>'int'], + 'Imagick::sketchImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'angle'=>'float'], + 'Imagick::smushImages' => ['Imagick', 'stack'=>'string', 'offset'=>'string'], + 'Imagick::solarizeImage' => ['bool', 'threshold'=>'int'], + 'Imagick::sparseColorImage' => ['bool', 'sparse_method'=>'int', 'arguments'=>'array', 'channel='=>'int'], + 'Imagick::spliceImage' => ['bool', 'width'=>'int', 'height'=>'int', 'x'=>'int', 'y'=>'int'], + 'Imagick::spreadImage' => ['bool', 'radius'=>'float'], + 'Imagick::statisticImage' => ['void', 'type'=>'int', 'width'=>'int', 'height'=>'int', 'CHANNEL='=>'string'], + 'Imagick::steganoImage' => ['Imagick', 'watermark_wand'=>'Imagick', 'offset'=>'int'], + 'Imagick::stereoImage' => ['bool', 'offset_wand'=>'Imagick'], + 'Imagick::stripImage' => ['bool'], + 'Imagick::subImageMatch' => ['Imagick', 'Imagick'=>'Imagick', '&w_offset='=>'array', '&w_similarity='=>'float'], + 'Imagick::swirlImage' => ['bool', 'degrees'=>'float'], + 'Imagick::textureImage' => ['bool', 'texture_wand'=>'Imagick'], + 'Imagick::thresholdImage' => ['bool', 'threshold'=>'float', 'channel='=>'int'], + 'Imagick::thumbnailImage' => ['bool', 'columns'=>'int', 'rows'=>'int', 'bestfit='=>'bool', 'fill='=>'bool', 'legacy='=>'bool'], + 'Imagick::tintImage' => ['bool', 'tint'=>'mixed', 'opacity'=>'mixed'], + 'Imagick::transformImage' => ['Imagick', 'crop'=>'string', 'geometry'=>'string'], + 'Imagick::transformImageColorspace' => ['bool', 'colorspace'=>'int'], + 'Imagick::transparentPaintImage' => ['bool', 'target'=>'mixed', 'alpha'=>'float', 'fuzz'=>'float', 'invert'=>'bool'], + 'Imagick::transposeImage' => ['bool'], + 'Imagick::transverseImage' => ['bool'], + 'Imagick::trimImage' => ['bool', 'fuzz'=>'float'], + 'Imagick::uniqueImageColors' => ['bool'], + 'Imagick::unsharpMaskImage' => ['bool', 'radius'=>'float', 'sigma'=>'float', 'amount'=>'float', 'threshold'=>'float', 'channel='=>'int'], + 'Imagick::valid' => ['bool'], + 'Imagick::vignetteImage' => ['bool', 'blackpoint'=>'float', 'whitepoint'=>'float', 'x'=>'int', 'y'=>'int'], + 'Imagick::waveImage' => ['bool', 'amplitude'=>'float', 'length'=>'float'], + 'Imagick::whiteThresholdImage' => ['bool', 'threshold'=>'mixed'], + 'Imagick::writeImage' => ['bool', 'filename='=>'string'], + 'Imagick::writeImageFile' => ['bool', 'filehandle'=>'resource'], + 'Imagick::writeImages' => ['bool', 'filename'=>'string', 'adjoin'=>'bool'], + 'Imagick::writeImagesFile' => ['bool', 'filehandle'=>'resource'], + 'ImagickDraw::__construct' => ['void'], + 'ImagickDraw::affine' => ['bool', 'affine'=>'array'], + 'ImagickDraw::annotation' => ['bool', 'x'=>'float', 'y'=>'float', 'text'=>'string'], + 'ImagickDraw::arc' => ['bool', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float', 'sd'=>'float', 'ed'=>'float'], + 'ImagickDraw::bezier' => ['bool', 'coordinates'=>'list'], + 'ImagickDraw::circle' => ['bool', 'ox'=>'float', 'oy'=>'float', 'px'=>'float', 'py'=>'float'], + 'ImagickDraw::clear' => ['bool'], + 'ImagickDraw::clone' => ['ImagickDraw'], + 'ImagickDraw::color' => ['bool', 'x'=>'float', 'y'=>'float', 'paintmethod'=>'int'], + 'ImagickDraw::comment' => ['bool', 'comment'=>'string'], + 'ImagickDraw::composite' => ['bool', 'compose'=>'int', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float', 'compositewand'=>'Imagick'], + 'ImagickDraw::destroy' => ['bool'], + 'ImagickDraw::ellipse' => ['bool', 'ox'=>'float', 'oy'=>'float', 'rx'=>'float', 'ry'=>'float', 'start'=>'float', 'end'=>'float'], + 'ImagickDraw::getBorderColor' => ['ImagickPixel'], + 'ImagickDraw::getClipPath' => ['string|false'], + 'ImagickDraw::getClipRule' => ['int'], + 'ImagickDraw::getClipUnits' => ['int'], + 'ImagickDraw::getDensity' => ['?string'], + 'ImagickDraw::getFillColor' => ['ImagickPixel'], + 'ImagickDraw::getFillOpacity' => ['float'], + 'ImagickDraw::getFillRule' => ['int'], + 'ImagickDraw::getFont' => ['string|false'], + 'ImagickDraw::getFontFamily' => ['string|false'], + 'ImagickDraw::getFontResolution' => ['array'], + 'ImagickDraw::getFontSize' => ['float'], + 'ImagickDraw::getFontStretch' => ['int'], + 'ImagickDraw::getFontStyle' => ['int'], + 'ImagickDraw::getFontWeight' => ['int'], + 'ImagickDraw::getGravity' => ['int'], + 'ImagickDraw::getOpacity' => ['float'], + 'ImagickDraw::getStrokeAntialias' => ['bool'], + 'ImagickDraw::getStrokeColor' => ['ImagickPixel'], + 'ImagickDraw::getStrokeDashArray' => ['array'], + 'ImagickDraw::getStrokeDashOffset' => ['float'], + 'ImagickDraw::getStrokeLineCap' => ['int'], + 'ImagickDraw::getStrokeLineJoin' => ['int'], + 'ImagickDraw::getStrokeMiterLimit' => ['int'], + 'ImagickDraw::getStrokeOpacity' => ['float'], + 'ImagickDraw::getStrokeWidth' => ['float'], + 'ImagickDraw::getTextAlignment' => ['int'], + 'ImagickDraw::getTextAntialias' => ['bool'], + 'ImagickDraw::getTextDecoration' => ['int'], + 'ImagickDraw::getTextDirection' => ['bool'], + 'ImagickDraw::getTextEncoding' => ['string'], + 'ImagickDraw::getTextInterlineSpacing' => ['float'], + 'ImagickDraw::getTextInterwordSpacing' => ['float'], + 'ImagickDraw::getTextKerning' => ['float'], + 'ImagickDraw::getTextUnderColor' => ['ImagickPixel'], + 'ImagickDraw::getVectorGraphics' => ['string'], + 'ImagickDraw::line' => ['bool', 'sx'=>'float', 'sy'=>'float', 'ex'=>'float', 'ey'=>'float'], + 'ImagickDraw::matte' => ['bool', 'x'=>'float', 'y'=>'float', 'paintmethod'=>'int'], + 'ImagickDraw::pathClose' => ['bool'], + 'ImagickDraw::pathCurveToAbsolute' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToQuadraticBezierAbsolute' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToQuadraticBezierRelative' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToQuadraticBezierSmoothRelative' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToRelative' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToSmoothAbsolute' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathCurveToSmoothRelative' => ['bool', 'x2'=>'float', 'y2'=>'float', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathEllipticArcAbsolute' => ['bool', 'rx'=>'float', 'ry'=>'float', 'x_axis_rotation'=>'float', 'large_arc_flag'=>'bool', 'sweep_flag'=>'bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathEllipticArcRelative' => ['bool', 'rx'=>'float', 'ry'=>'float', 'x_axis_rotation'=>'float', 'large_arc_flag'=>'bool', 'sweep_flag'=>'bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathFinish' => ['bool'], + 'ImagickDraw::pathLineToAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathLineToHorizontalAbsolute' => ['bool', 'x'=>'float'], + 'ImagickDraw::pathLineToHorizontalRelative' => ['bool', 'x'=>'float'], + 'ImagickDraw::pathLineToRelative' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathLineToVerticalAbsolute' => ['bool', 'y'=>'float'], + 'ImagickDraw::pathLineToVerticalRelative' => ['bool', 'y'=>'float'], + 'ImagickDraw::pathMoveToAbsolute' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathMoveToRelative' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::pathStart' => ['bool'], + 'ImagickDraw::point' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::polygon' => ['bool', 'coordinates'=>'list'], + 'ImagickDraw::polyline' => ['bool', 'coordinates'=>'list'], + 'ImagickDraw::pop' => ['bool'], + 'ImagickDraw::popClipPath' => ['bool'], + 'ImagickDraw::popDefs' => ['bool'], + 'ImagickDraw::popPattern' => ['bool'], + 'ImagickDraw::push' => ['bool'], + 'ImagickDraw::pushClipPath' => ['bool', 'clip_mask_id'=>'string'], + 'ImagickDraw::pushDefs' => ['bool'], + 'ImagickDraw::pushPattern' => ['bool', 'pattern_id'=>'string', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'ImagickDraw::rectangle' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], + 'ImagickDraw::render' => ['bool'], + 'ImagickDraw::resetVectorGraphics' => ['void'], + 'ImagickDraw::rotate' => ['bool', 'degrees'=>'float'], + 'ImagickDraw::roundRectangle' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'rx'=>'float', 'ry'=>'float'], + 'ImagickDraw::scale' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::setBorderColor' => ['bool', 'color'=>'ImagickPixel|string'], + 'ImagickDraw::setClipPath' => ['bool', 'clip_mask'=>'string'], + 'ImagickDraw::setClipRule' => ['bool', 'fill_rule'=>'int'], + 'ImagickDraw::setClipUnits' => ['bool', 'clip_units'=>'int'], + 'ImagickDraw::setDensity' => ['bool', 'density_string'=>'string'], + 'ImagickDraw::setFillAlpha' => ['bool', 'opacity'=>'float'], + 'ImagickDraw::setFillColor' => ['bool', 'fill_pixel'=>'ImagickPixel|string'], + 'ImagickDraw::setFillOpacity' => ['bool', 'fillopacity'=>'float'], + 'ImagickDraw::setFillPatternURL' => ['bool', 'fill_url'=>'string'], + 'ImagickDraw::setFillRule' => ['bool', 'fill_rule'=>'int'], + 'ImagickDraw::setFont' => ['bool', 'font_name'=>'string'], + 'ImagickDraw::setFontFamily' => ['bool', 'font_family'=>'string'], + 'ImagickDraw::setFontResolution' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickDraw::setFontSize' => ['bool', 'pointsize'=>'float'], + 'ImagickDraw::setFontStretch' => ['bool', 'fontstretch'=>'int'], + 'ImagickDraw::setFontStyle' => ['bool', 'style'=>'int'], + 'ImagickDraw::setFontWeight' => ['bool', 'font_weight'=>'int'], + 'ImagickDraw::setGravity' => ['bool', 'gravity'=>'int'], + 'ImagickDraw::setOpacity' => ['void', 'opacity'=>'float'], + 'ImagickDraw::setResolution' => ['void', 'x_resolution'=>'float', 'y_resolution'=>'float'], + 'ImagickDraw::setStrokeAlpha' => ['bool', 'opacity'=>'float'], + 'ImagickDraw::setStrokeAntialias' => ['bool', 'stroke_antialias'=>'bool'], + 'ImagickDraw::setStrokeColor' => ['bool', 'stroke_pixel'=>'ImagickPixel|string'], + 'ImagickDraw::setStrokeDashArray' => ['bool', 'dasharray'=>'list'], + 'ImagickDraw::setStrokeDashOffset' => ['bool', 'dash_offset'=>'float'], + 'ImagickDraw::setStrokeLineCap' => ['bool', 'linecap'=>'int'], + 'ImagickDraw::setStrokeLineJoin' => ['bool', 'linejoin'=>'int'], + 'ImagickDraw::setStrokeMiterLimit' => ['bool', 'miterlimit'=>'int'], + 'ImagickDraw::setStrokeOpacity' => ['bool', 'stroke_opacity'=>'float'], + 'ImagickDraw::setStrokePatternURL' => ['bool', 'stroke_url'=>'string'], + 'ImagickDraw::setStrokeWidth' => ['bool', 'stroke_width'=>'float'], + 'ImagickDraw::setTextAlignment' => ['bool', 'alignment'=>'int'], + 'ImagickDraw::setTextAntialias' => ['bool', 'antialias'=>'bool'], + 'ImagickDraw::setTextDecoration' => ['bool', 'decoration'=>'int'], + 'ImagickDraw::setTextDirection' => ['bool', 'direction'=>'int'], + 'ImagickDraw::setTextEncoding' => ['bool', 'encoding'=>'string'], + 'ImagickDraw::setTextInterlineSpacing' => ['void', 'spacing'=>'float'], + 'ImagickDraw::setTextInterwordSpacing' => ['void', 'spacing'=>'float'], + 'ImagickDraw::setTextKerning' => ['void', 'kerning'=>'float'], + 'ImagickDraw::setTextUnderColor' => ['bool', 'under_color'=>'ImagickPixel|string'], + 'ImagickDraw::setVectorGraphics' => ['bool', 'xml'=>'string'], + 'ImagickDraw::setViewbox' => ['bool', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int'], + 'ImagickDraw::skewX' => ['bool', 'degrees'=>'float'], + 'ImagickDraw::skewY' => ['bool', 'degrees'=>'float'], + 'ImagickDraw::translate' => ['bool', 'x'=>'float', 'y'=>'float'], + 'ImagickKernel::addKernel' => ['void', 'ImagickKernel'=>'ImagickKernel'], + 'ImagickKernel::addUnityKernel' => ['void'], + 'ImagickKernel::fromBuiltin' => ['ImagickKernel', 'kernelType'=>'string', 'kernelString'=>'string'], + 'ImagickKernel::fromMatrix' => ['ImagickKernel', 'matrix'=>'list>', 'origin='=>'array'], + 'ImagickKernel::getMatrix' => ['list>'], + 'ImagickKernel::scale' => ['void'], + 'ImagickKernel::separate' => ['ImagickKernel[]'], + 'ImagickKernel::seperate' => ['void'], + 'ImagickPixel::__construct' => ['void', 'color='=>'string'], + 'ImagickPixel::clear' => ['bool'], + 'ImagickPixel::clone' => ['void'], + 'ImagickPixel::destroy' => ['bool'], + 'ImagickPixel::getColor' => ['array{r: int|float, g: int|float, b: int|float, a: int|float}', 'normalized='=>'0|1|2'], + 'ImagickPixel::getColorAsString' => ['string'], + 'ImagickPixel::getColorCount' => ['int'], + 'ImagickPixel::getColorQuantum' => ['mixed'], + 'ImagickPixel::getColorValue' => ['float', 'color'=>'int'], + 'ImagickPixel::getColorValueQuantum' => ['mixed'], + 'ImagickPixel::getHSL' => ['array{hue: float, saturation: float, luminosity: float}'], + 'ImagickPixel::getIndex' => ['int'], + 'ImagickPixel::isPixelSimilar' => ['bool', 'color'=>'ImagickPixel', 'fuzz'=>'float'], + 'ImagickPixel::isPixelSimilarQuantum' => ['bool', 'color'=>'string', 'fuzz='=>'string'], + 'ImagickPixel::isSimilar' => ['bool', 'color'=>'ImagickPixel', 'fuzz'=>'float'], + 'ImagickPixel::setColor' => ['bool', 'color'=>'string'], + 'ImagickPixel::setColorFromPixel' => ['bool', 'srcPixel'=>'ImagickPixel'], + 'ImagickPixel::setColorValue' => ['bool', 'color'=>'int', 'value'=>'float'], + 'ImagickPixel::setColorValueQuantum' => ['void', 'color'=>'int', 'value'=>'mixed'], + 'ImagickPixel::setHSL' => ['bool', 'hue'=>'float', 'saturation'=>'float', 'luminosity'=>'float'], + 'ImagickPixel::setIndex' => ['void', 'index'=>'int'], + 'ImagickPixel::setcolorcount' => ['void', 'colorCount'=>'string'], + 'ImagickPixelIterator::__construct' => ['void', 'wand'=>'Imagick'], + 'ImagickPixelIterator::clear' => ['bool'], + 'ImagickPixelIterator::current' => ['mixed'], + 'ImagickPixelIterator::destroy' => ['bool'], + 'ImagickPixelIterator::getCurrentIteratorRow' => ['array'], + 'ImagickPixelIterator::getIteratorRow' => ['int'], + 'ImagickPixelIterator::getNextIteratorRow' => ['array'], + 'ImagickPixelIterator::getPreviousIteratorRow' => ['array'], + 'ImagickPixelIterator::getpixeliterator' => ['', 'Imagick'=>'Imagick'], + 'ImagickPixelIterator::getpixelregioniterator' => ['', 'Imagick'=>'Imagick', 'x'=>'', 'y'=>'', 'columns'=>'', 'rows'=>''], + 'ImagickPixelIterator::key' => ['int|string'], + 'ImagickPixelIterator::newPixelIterator' => ['bool', 'wand'=>'Imagick'], + 'ImagickPixelIterator::newPixelRegionIterator' => ['bool', 'wand'=>'Imagick', 'x'=>'int', 'y'=>'int', 'columns'=>'int', 'rows'=>'int'], + 'ImagickPixelIterator::next' => ['void'], + 'ImagickPixelIterator::resetIterator' => ['bool'], + 'ImagickPixelIterator::rewind' => ['void'], + 'ImagickPixelIterator::setIteratorFirstRow' => ['bool'], + 'ImagickPixelIterator::setIteratorLastRow' => ['bool'], + 'ImagickPixelIterator::setIteratorRow' => ['bool', 'row'=>'int'], + 'ImagickPixelIterator::syncIterator' => ['bool'], + 'ImagickPixelIterator::valid' => ['bool'], + 'InfiniteIterator::__construct' => ['void', 'iterator'=>'Iterator'], + 'InfiniteIterator::current' => ['mixed'], + 'InfiniteIterator::getInnerIterator' => ['Iterator'], + 'InfiniteIterator::key' => ['bool|float|int|string'], + 'InfiniteIterator::next' => ['void'], + 'InfiniteIterator::rewind' => ['void'], + 'InfiniteIterator::valid' => ['bool'], + 'IntlBreakIterator::__construct' => ['void'], + 'IntlBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], + 'IntlBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlBreakIterator::current' => ['int'], + 'IntlBreakIterator::first' => ['int'], + 'IntlBreakIterator::following' => ['int', 'offset'=>'int'], + 'IntlBreakIterator::getErrorCode' => ['int'], + 'IntlBreakIterator::getErrorMessage' => ['string'], + 'IntlBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], + 'IntlBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'int'], + 'IntlBreakIterator::getText' => ['?string'], + 'IntlBreakIterator::isBoundary' => ['bool', 'offset'=>'int'], + 'IntlBreakIterator::last' => ['int'], + 'IntlBreakIterator::next' => ['int', 'offset='=>'?int'], + 'IntlBreakIterator::preceding' => ['int', 'offset'=>'int'], + 'IntlBreakIterator::previous' => ['int'], + 'IntlBreakIterator::setText' => ['?bool', 'text'=>'string'], + 'IntlCalendar::__construct' => ['void'], + 'IntlCalendar::add' => ['bool', 'field'=>'int', 'amount'=>'int'], + 'IntlCalendar::after' => ['bool', 'other'=>'IntlCalendar'], + 'IntlCalendar::before' => ['bool', 'other'=>'IntlCalendar'], + 'IntlCalendar::clear' => ['bool', 'field='=>'?int'], + 'IntlCalendar::createInstance' => ['IntlCalendar', 'timeZone='=>'mixed', 'locale='=>'string'], + 'IntlCalendar::equals' => ['bool', 'other'=>'IntlCalendar'], + 'IntlCalendar::fieldDifference' => ['int', 'when'=>'float', 'field'=>'int'], + 'IntlCalendar::fromDateTime' => ['IntlCalendar', 'dateTime'=>'DateTime|string'], + 'IntlCalendar::get' => ['int', 'field'=>'int'], + 'IntlCalendar::getActualMaximum' => ['int', 'field'=>'int'], + 'IntlCalendar::getActualMinimum' => ['int', 'field'=>'int'], + 'IntlCalendar::getAvailableLocales' => ['array'], + 'IntlCalendar::getDayOfWeekType' => ['int', 'dayOfWeek'=>'int'], + 'IntlCalendar::getErrorCode' => ['int'], + 'IntlCalendar::getErrorMessage' => ['string'], + 'IntlCalendar::getFirstDayOfWeek' => ['int'], + 'IntlCalendar::getGreatestMinimum' => ['int', 'field'=>'int'], + 'IntlCalendar::getKeywordValuesForLocale' => ['Iterator|false', 'key'=>'string', 'locale'=>'string', 'commonlyUsed'=>'bool'], + 'IntlCalendar::getLeastMaximum' => ['int', 'field'=>'int'], + 'IntlCalendar::getLocale' => ['string', 'localeType'=>'int'], + 'IntlCalendar::getMaximum' => ['int|false', 'field'=>'int'], + 'IntlCalendar::getMinimalDaysInFirstWeek' => ['int'], + 'IntlCalendar::getMinimum' => ['int', 'field'=>'int'], + 'IntlCalendar::getNow' => ['float'], + 'IntlCalendar::getRepeatedWallTimeOption' => ['int'], + 'IntlCalendar::getSkippedWallTimeOption' => ['int'], + 'IntlCalendar::getTime' => ['float'], + 'IntlCalendar::getTimeZone' => ['IntlTimeZone'], + 'IntlCalendar::getType' => ['string'], + 'IntlCalendar::getWeekendTransition' => ['int', 'dayOfWeek'=>'string'], + 'IntlCalendar::inDaylightTime' => ['bool'], + 'IntlCalendar::isEquivalentTo' => ['bool', 'other'=>'IntlCalendar'], + 'IntlCalendar::isLenient' => ['bool'], + 'IntlCalendar::isSet' => ['bool', 'field'=>'int'], + 'IntlCalendar::isWeekend' => ['bool', 'date='=>'?float'], + 'IntlCalendar::roll' => ['bool', 'field'=>'int', 'amountOrUpOrDown'=>'mixed'], + 'IntlCalendar::set' => ['bool', 'field'=>'int', 'value'=>'int'], + 'IntlCalendar::set\'1' => ['bool', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], + 'IntlCalendar::setFirstDayOfWeek' => ['bool', 'dayOfWeek'=>'int'], + 'IntlCalendar::setLenient' => ['bool', 'isLenient'=>'string'], + 'IntlCalendar::setMinimalDaysInFirstWeek' => ['bool', 'minimalDays'=>'int'], + 'IntlCalendar::setRepeatedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], + 'IntlCalendar::setSkippedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], + 'IntlCalendar::setTime' => ['bool', 'date'=>'float'], + 'IntlCalendar::setTimeZone' => ['bool', 'timeZone'=>'mixed'], + 'IntlCalendar::toDateTime' => ['DateTime|false'], + 'IntlChar::charAge' => ['array', 'char'=>'int|string'], + 'IntlChar::charDigitValue' => ['int', 'codepoint'=>'mixed'], + 'IntlChar::charDirection' => ['int', 'codepoint'=>'mixed'], + 'IntlChar::charFromName' => ['?int', 'name'=>'string', 'namechoice='=>'int'], + 'IntlChar::charMirror' => ['mixed', 'codepoint'=>'mixed'], + 'IntlChar::charName' => ['string', 'char'=>'int|string', 'namechoice='=>'int'], + 'IntlChar::charType' => ['int', 'codepoint'=>'mixed'], + 'IntlChar::chr' => ['string', 'codepoint'=>'mixed'], + 'IntlChar::digit' => ['int|false', 'char'=>'int|string', 'radix='=>'int'], + 'IntlChar::enumCharNames' => ['void', 'start'=>'mixed', 'limit'=>'mixed', 'callback'=>'callable', 'nameChoice='=>'int'], + 'IntlChar::enumCharTypes' => ['void', 'cb='=>'callable'], + 'IntlChar::foldCase' => ['int|string', 'char'=>'int|string', 'options='=>'int'], + 'IntlChar::forDigit' => ['int', 'digit'=>'int', 'radix'=>'int'], + 'IntlChar::getBidiPairedBracket' => ['mixed', 'codepoint'=>'mixed'], + 'IntlChar::getBlockCode' => ['int', 'char'=>'int|string'], + 'IntlChar::getCombiningClass' => ['int', 'codepoint'=>'mixed'], + 'IntlChar::getFC_NFKC_Closure' => ['string', 'char'=>'int|string'], + 'IntlChar::getIntPropertyMaxValue' => ['int', 'property'=>'int'], + 'IntlChar::getIntPropertyMinValue' => ['int', 'property'=>'int'], + 'IntlChar::getIntPropertyValue' => ['int', 'char'=>'int|string', 'property'=>'int'], + 'IntlChar::getNumericValue' => ['float', 'char'=>'int|string'], + 'IntlChar::getPropertyEnum' => ['int', 'alias'=>'string'], + 'IntlChar::getPropertyName' => ['string|false', 'property'=>'int', 'namechoice='=>'int'], + 'IntlChar::getPropertyValueEnum' => ['int', 'property'=>'int', 'name'=>'string'], + 'IntlChar::getPropertyValueName' => ['string|false', 'prop'=>'int', 'value'=>'int', 'namechoice='=>'int'], + 'IntlChar::getUnicodeVersion' => ['array'], + 'IntlChar::hasBinaryProperty' => ['bool', 'char'=>'int|string', 'property'=>'int'], + 'IntlChar::isIDIgnorable' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isIDPart' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isIDStart' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isISOControl' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isJavaIDPart' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isJavaIDStart' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isJavaSpaceChar' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isMirrored' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isUAlphabetic' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isULowercase' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isUUppercase' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isUWhiteSpace' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isWhitespace' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isalnum' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isalpha' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isbase' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isblank' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::iscntrl' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isdefined' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isdigit' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isgraph' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::islower' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isprint' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::ispunct' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isspace' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::istitle' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isupper' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::isxdigit' => ['bool', 'codepoint'=>'mixed'], + 'IntlChar::ord' => ['int', 'character'=>'mixed'], + 'IntlChar::tolower' => ['mixed', 'codepoint'=>'mixed'], + 'IntlChar::totitle' => ['mixed', 'codepoint'=>'mixed'], + 'IntlChar::toupper' => ['mixed', 'codepoint'=>'mixed'], + 'IntlCodePointBreakIterator::__construct' => ['void'], + 'IntlCodePointBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlCodePointBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], + 'IntlCodePointBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlCodePointBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlCodePointBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlCodePointBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlCodePointBreakIterator::current' => ['int'], + 'IntlCodePointBreakIterator::first' => ['int'], + 'IntlCodePointBreakIterator::following' => ['int', 'offset'=>'string'], + 'IntlCodePointBreakIterator::getErrorCode' => ['int'], + 'IntlCodePointBreakIterator::getErrorMessage' => ['string'], + 'IntlCodePointBreakIterator::getLastCodePoint' => ['int'], + 'IntlCodePointBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], + 'IntlCodePointBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'string'], + 'IntlCodePointBreakIterator::getText' => ['?string'], + 'IntlCodePointBreakIterator::isBoundary' => ['bool', 'offset'=>'string'], + 'IntlCodePointBreakIterator::last' => ['int'], + 'IntlCodePointBreakIterator::next' => ['int', 'offset='=>'string'], + 'IntlCodePointBreakIterator::preceding' => ['int', 'offset'=>'string'], + 'IntlCodePointBreakIterator::previous' => ['int'], + 'IntlCodePointBreakIterator::setText' => ['?bool', 'text'=>'string'], + 'IntlDateFormatter::__construct' => ['void', 'locale'=>'?string', 'datetype'=>'null|int', 'timetype'=>'null|int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'IntlDateFormatter::create' => ['?IntlDateFormatter', 'locale'=>'?string', 'datetype'=>'null|int', 'timetype'=>'null|int', 'timezone='=>'IntlTimeZone|DateTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'?string'], + 'IntlDateFormatter::format' => ['string|false', 'value'=>'IntlCalendar|DateTime|array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int}|array{tm_sec: int, tm_min: int, tm_hour: int, tm_mday: int, tm_mon: int, tm_year: int, tm_wday: int, tm_yday: int, tm_isdst: int}|string|int|float'], + 'IntlDateFormatter::formatObject' => ['string|false', 'object'=>'IntlCalendar|DateTime', 'format='=>'array{0: int, 1: int}|int|string|null', 'locale='=>'?string'], + 'IntlDateFormatter::getCalendar' => ['int'], + 'IntlDateFormatter::getCalendarObject' => ['IntlCalendar'], + 'IntlDateFormatter::getDateType' => ['int'], + 'IntlDateFormatter::getErrorCode' => ['int'], + 'IntlDateFormatter::getErrorMessage' => ['string'], + 'IntlDateFormatter::getLocale' => ['string', 'which='=>'int'], + 'IntlDateFormatter::getPattern' => ['string'], + 'IntlDateFormatter::getTimeType' => ['int'], + 'IntlDateFormatter::getTimeZone' => ['IntlTimeZone|false'], + 'IntlDateFormatter::getTimeZoneId' => ['string'], + 'IntlDateFormatter::isLenient' => ['bool'], + 'IntlDateFormatter::localtime' => ['array', 'value'=>'string', '&rw_position='=>'int'], + 'IntlDateFormatter::parse' => ['int|float', 'value'=>'string', '&rw_position='=>'int'], + 'IntlDateFormatter::setCalendar' => ['bool', 'which'=>'IntlCalendar|int|null'], + 'IntlDateFormatter::setLenient' => ['bool', 'lenient'=>'bool'], + 'IntlDateFormatter::setPattern' => ['bool', 'pattern'=>'string'], + 'IntlDateFormatter::setTimeZone' => ['null|false', 'zone'=>'IntlTimeZone|DateTimeZone|string|null'], + 'IntlException::__clone' => ['void'], + 'IntlException::__construct' => ['void'], + 'IntlException::__toString' => ['string'], + 'IntlException::__wakeup' => ['void'], + 'IntlException::getCode' => ['int'], + 'IntlException::getFile' => ['string'], + 'IntlException::getLine' => ['int'], + 'IntlException::getMessage' => ['string'], + 'IntlException::getPrevious' => ['?Throwable'], + 'IntlException::getTrace' => ['list\',args?:array}>'], + 'IntlException::getTraceAsString' => ['string'], + 'IntlGregorianCalendar::__construct' => ['void'], + 'IntlGregorianCalendar::add' => ['bool', 'field'=>'int', 'amount'=>'int'], + 'IntlGregorianCalendar::after' => ['bool', 'other'=>'IntlCalendar'], + 'IntlGregorianCalendar::before' => ['bool', 'other'=>'IntlCalendar'], + 'IntlGregorianCalendar::clear' => ['bool', 'field='=>'?int'], + 'IntlGregorianCalendar::createInstance' => ['IntlGregorianCalendar', 'timeZone='=>'mixed', 'locale='=>'string'], + 'IntlGregorianCalendar::equals' => ['bool', 'other'=>'IntlCalendar'], + 'IntlGregorianCalendar::fieldDifference' => ['int', 'when'=>'float', 'field'=>'int'], + 'IntlGregorianCalendar::fromDateTime' => ['IntlCalendar', 'dateTime'=>'DateTime|string'], + 'IntlGregorianCalendar::get' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getActualMaximum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getActualMinimum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getAvailableLocales' => ['array'], + 'IntlGregorianCalendar::getDayOfWeekType' => ['int', 'dayOfWeek'=>'int'], + 'IntlGregorianCalendar::getErrorCode' => ['int'], + 'IntlGregorianCalendar::getErrorMessage' => ['string'], + 'IntlGregorianCalendar::getFirstDayOfWeek' => ['int'], + 'IntlGregorianCalendar::getGreatestMinimum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getGregorianChange' => ['float'], + 'IntlGregorianCalendar::getKeywordValuesForLocale' => ['Iterator', 'key'=>'string', 'locale'=>'string', 'commonlyUsed'=>'bool'], + 'IntlGregorianCalendar::getLeastMaximum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getLocale' => ['string', 'localeType'=>'int'], + 'IntlGregorianCalendar::getMaximum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getMinimalDaysInFirstWeek' => ['int'], + 'IntlGregorianCalendar::getMinimum' => ['int', 'field'=>'int'], + 'IntlGregorianCalendar::getNow' => ['float'], + 'IntlGregorianCalendar::getRepeatedWallTimeOption' => ['int'], + 'IntlGregorianCalendar::getSkippedWallTimeOption' => ['int'], + 'IntlGregorianCalendar::getTime' => ['float'], + 'IntlGregorianCalendar::getTimeZone' => ['IntlTimeZone'], + 'IntlGregorianCalendar::getType' => ['string'], + 'IntlGregorianCalendar::getWeekendTransition' => ['int', 'dayOfWeek'=>'string'], + 'IntlGregorianCalendar::inDaylightTime' => ['bool'], + 'IntlGregorianCalendar::isEquivalentTo' => ['bool', 'other'=>'IntlCalendar'], + 'IntlGregorianCalendar::isLeapYear' => ['bool', 'year'=>'int'], + 'IntlGregorianCalendar::isLenient' => ['bool'], + 'IntlGregorianCalendar::isSet' => ['bool', 'field'=>'int'], + 'IntlGregorianCalendar::isWeekend' => ['bool', 'date='=>'float'], + 'IntlGregorianCalendar::roll' => ['bool', 'field'=>'int', 'amountOrUpOrDown'=>'mixed'], + 'IntlGregorianCalendar::set' => ['bool', 'field'=>'int', 'value'=>'int'], + 'IntlGregorianCalendar::set\'1' => ['bool', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], + 'IntlGregorianCalendar::setFirstDayOfWeek' => ['bool', 'dayOfWeek'=>'int'], + 'IntlGregorianCalendar::setGregorianChange' => ['bool', 'date'=>'float'], + 'IntlGregorianCalendar::setLenient' => ['bool', 'isLenient'=>'string'], + 'IntlGregorianCalendar::setMinimalDaysInFirstWeek' => ['bool', 'minimalDays'=>'int'], + 'IntlGregorianCalendar::setRepeatedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], + 'IntlGregorianCalendar::setSkippedWallTimeOption' => ['bool', 'wallTimeOption'=>'int'], + 'IntlGregorianCalendar::setTime' => ['bool', 'date'=>'float'], + 'IntlGregorianCalendar::setTimeZone' => ['bool', 'timeZone'=>'mixed'], + 'IntlGregorianCalendar::toDateTime' => ['DateTime'], + 'IntlIterator::__construct' => ['void'], + 'IntlIterator::current' => ['mixed'], + 'IntlIterator::key' => ['string'], + 'IntlIterator::next' => ['void'], + 'IntlIterator::rewind' => ['void'], + 'IntlIterator::valid' => ['bool'], + 'IntlPartsIterator::getBreakIterator' => ['IntlBreakIterator'], + 'IntlRuleBasedBreakIterator::__construct' => ['void', 'rules'=>'string', 'areCompiled='=>'string'], + 'IntlRuleBasedBreakIterator::createCharacterInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlRuleBasedBreakIterator::createCodePointInstance' => ['IntlCodePointBreakIterator'], + 'IntlRuleBasedBreakIterator::createLineInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlRuleBasedBreakIterator::createSentenceInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlRuleBasedBreakIterator::createTitleInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlRuleBasedBreakIterator::createWordInstance' => ['?IntlRuleBasedBreakIterator', 'locale='=>'?string'], + 'IntlRuleBasedBreakIterator::current' => ['int'], + 'IntlRuleBasedBreakIterator::first' => ['int'], + 'IntlRuleBasedBreakIterator::following' => ['int', 'offset'=>'int'], + 'IntlRuleBasedBreakIterator::getBinaryRules' => ['string'], + 'IntlRuleBasedBreakIterator::getErrorCode' => ['int'], + 'IntlRuleBasedBreakIterator::getErrorMessage' => ['string'], + 'IntlRuleBasedBreakIterator::getLocale' => ['string', 'locale_type'=>'string'], + 'IntlRuleBasedBreakIterator::getPartsIterator' => ['IntlPartsIterator', 'key_type='=>'int'], + 'IntlRuleBasedBreakIterator::getRuleStatus' => ['int'], + 'IntlRuleBasedBreakIterator::getRuleStatusVec' => ['array'], + 'IntlRuleBasedBreakIterator::getRules' => ['string'], + 'IntlRuleBasedBreakIterator::getText' => ['?string'], + 'IntlRuleBasedBreakIterator::isBoundary' => ['bool', 'offset'=>'int'], + 'IntlRuleBasedBreakIterator::last' => ['int'], + 'IntlRuleBasedBreakIterator::next' => ['int', 'offset='=>'?int'], + 'IntlRuleBasedBreakIterator::preceding' => ['int', 'offset'=>'int'], + 'IntlRuleBasedBreakIterator::previous' => ['int'], + 'IntlRuleBasedBreakIterator::setText' => ['?bool', 'text'=>'string'], + 'IntlTimeZone::countEquivalentIDs' => ['int|false', 'zoneId'=>'string'], + 'IntlTimeZone::createDefault' => ['IntlTimeZone'], + 'IntlTimeZone::createEnumeration' => ['IntlIterator|false', 'countryOrRawOffset='=>'mixed'], + 'IntlTimeZone::createTimeZone' => ['IntlTimeZone|false', 'zoneId'=>'string'], + 'IntlTimeZone::createTimeZoneIDEnumeration' => ['IntlIterator|false', 'zoneType'=>'int', 'region='=>'string', 'rawOffset='=>'int'], + 'IntlTimeZone::fromDateTimeZone' => ['?IntlTimeZone', 'zoneId'=>'DateTimeZone'], + 'IntlTimeZone::getCanonicalID' => ['string|false', 'zoneId'=>'string', '&w_isSystemID='=>'bool'], + 'IntlTimeZone::getDSTSavings' => ['int'], + 'IntlTimeZone::getDisplayName' => ['string|false', 'isDaylight='=>'bool', 'style='=>'int', 'locale='=>'string'], + 'IntlTimeZone::getEquivalentID' => ['string|false', 'zoneId'=>'string', 'index'=>'int'], + 'IntlTimeZone::getErrorCode' => ['int'], + 'IntlTimeZone::getErrorMessage' => ['string'], + 'IntlTimeZone::getGMT' => ['IntlTimeZone'], + 'IntlTimeZone::getID' => ['string'], + 'IntlTimeZone::getIDForWindowsID' => ['string', 'timezone'=>'string', 'region='=>'string'], + 'IntlTimeZone::getOffset' => ['int', 'date'=>'float', 'local'=>'bool', '&w_rawOffset'=>'int', '&w_dstOffset'=>'int'], + 'IntlTimeZone::getRawOffset' => ['int'], + 'IntlTimeZone::getRegion' => ['string|false', 'zoneId'=>'string'], + 'IntlTimeZone::getTZDataVersion' => ['string'], + 'IntlTimeZone::getUnknown' => ['IntlTimeZone'], + 'IntlTimeZone::getWindowsID' => ['string|false', 'timezone'=>'string'], + 'IntlTimeZone::hasSameRules' => ['bool', 'otherTimeZone'=>'IntlTimeZone'], + 'IntlTimeZone::toDateTimeZone' => ['DateTimeZone|false'], + 'IntlTimeZone::useDaylightTime' => ['bool'], + 'InvalidArgumentException::__clone' => ['void'], + 'InvalidArgumentException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'InvalidArgumentException::__toString' => ['string'], + 'InvalidArgumentException::getCode' => ['int'], + 'InvalidArgumentException::getFile' => ['string'], + 'InvalidArgumentException::getLine' => ['int'], + 'InvalidArgumentException::getMessage' => ['string'], + 'InvalidArgumentException::getPrevious' => ['?Throwable'], + 'InvalidArgumentException::getTrace' => ['list\',args?:array}>'], + 'InvalidArgumentException::getTraceAsString' => ['string'], + 'Iterator::current' => ['mixed'], + 'Iterator::key' => ['mixed'], + 'Iterator::next' => ['void'], + 'Iterator::rewind' => ['void'], + 'Iterator::valid' => ['bool'], + 'IteratorAggregate::getIterator' => ['Traversable'], + 'IteratorIterator::__construct' => ['void', 'it'=>'Traversable'], + 'IteratorIterator::current' => ['mixed'], + 'IteratorIterator::getInnerIterator' => ['Iterator'], + 'IteratorIterator::key' => ['mixed'], + 'IteratorIterator::next' => ['void'], + 'IteratorIterator::rewind' => ['void'], + 'IteratorIterator::valid' => ['bool'], + 'JavaException::getCause' => ['object'], + 'JsonIncrementalParser::__construct' => ['void', 'depth'=>'', 'options'=>''], + 'JsonIncrementalParser::get' => ['', 'options'=>''], + 'JsonIncrementalParser::getError' => [''], + 'JsonIncrementalParser::parse' => ['', 'json'=>''], + 'JsonIncrementalParser::parseFile' => ['', 'filename'=>''], + 'JsonIncrementalParser::reset' => [''], + 'JsonSerializable::jsonSerialize' => ['mixed'], + 'Judy::__construct' => ['void', 'judy_type'=>'int'], + 'Judy::__destruct' => ['void'], + 'Judy::byCount' => ['int', 'nth_index'=>'int'], + 'Judy::count' => ['int', 'index_start='=>'int', 'index_end='=>'int'], + 'Judy::first' => ['mixed', 'index='=>'mixed'], + 'Judy::firstEmpty' => ['mixed', 'index='=>'mixed'], + 'Judy::free' => ['int'], + 'Judy::getType' => ['int'], + 'Judy::last' => ['mixed', 'index='=>'string'], + 'Judy::lastEmpty' => ['mixed', 'index='=>'int'], + 'Judy::memoryUsage' => ['int'], + 'Judy::next' => ['mixed', 'index'=>'mixed'], + 'Judy::nextEmpty' => ['mixed', 'index'=>'mixed'], + 'Judy::offsetExists' => ['bool', 'offset'=>'mixed'], + 'Judy::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'Judy::offsetSet' => ['bool', 'offset'=>'mixed', 'value'=>'mixed'], + 'Judy::offsetUnset' => ['bool', 'offset'=>'mixed'], + 'Judy::prev' => ['mixed', 'index'=>'mixed'], + 'Judy::prevEmpty' => ['mixed', 'index'=>'mixed'], + 'Judy::size' => ['int'], + 'KTaglib_ID3v2_AttachedPictureFrame::getDescription' => ['string'], + 'KTaglib_ID3v2_AttachedPictureFrame::getMimeType' => ['string'], + 'KTaglib_ID3v2_AttachedPictureFrame::getType' => ['int'], + 'KTaglib_ID3v2_AttachedPictureFrame::savePicture' => ['bool', 'filename'=>'string'], + 'KTaglib_ID3v2_AttachedPictureFrame::setMimeType' => ['string', 'type'=>'string'], + 'KTaglib_ID3v2_AttachedPictureFrame::setPicture' => ['', 'filename'=>'string'], + 'KTaglib_ID3v2_AttachedPictureFrame::setType' => ['', 'type'=>'int'], + 'KTaglib_ID3v2_Frame::__toString' => ['string'], + 'KTaglib_ID3v2_Frame::getDescription' => ['string'], + 'KTaglib_ID3v2_Frame::getMimeType' => ['string'], + 'KTaglib_ID3v2_Frame::getSize' => ['int'], + 'KTaglib_ID3v2_Frame::getType' => ['int'], + 'KTaglib_ID3v2_Frame::savePicture' => ['bool', 'filename'=>'string'], + 'KTaglib_ID3v2_Frame::setMimeType' => ['string', 'type'=>'string'], + 'KTaglib_ID3v2_Frame::setPicture' => ['void', 'filename'=>'string'], + 'KTaglib_ID3v2_Frame::setType' => ['void', 'type'=>'int'], + 'KTaglib_ID3v2_Tag::addFrame' => ['bool', 'frame'=>'KTaglib_ID3v2_Frame'], + 'KTaglib_ID3v2_Tag::getFrameList' => ['array'], + 'KTaglib_MPEG_AudioProperties::getBitrate' => ['int'], + 'KTaglib_MPEG_AudioProperties::getChannels' => ['int'], + 'KTaglib_MPEG_AudioProperties::getLayer' => ['int'], + 'KTaglib_MPEG_AudioProperties::getLength' => ['int'], + 'KTaglib_MPEG_AudioProperties::getSampleBitrate' => ['int'], + 'KTaglib_MPEG_AudioProperties::getVersion' => ['int'], + 'KTaglib_MPEG_AudioProperties::isCopyrighted' => ['bool'], + 'KTaglib_MPEG_AudioProperties::isOriginal' => ['bool'], + 'KTaglib_MPEG_AudioProperties::isProtectionEnabled' => ['bool'], + 'KTaglib_MPEG_File::getAudioProperties' => ['KTaglib_MPEG_File'], + 'KTaglib_MPEG_File::getID3v1Tag' => ['KTaglib_ID3v1_Tag', 'create='=>'bool'], + 'KTaglib_MPEG_File::getID3v2Tag' => ['KTaglib_ID3v2_Tag', 'create='=>'bool'], + 'KTaglib_Tag::getAlbum' => ['string'], + 'KTaglib_Tag::getArtist' => ['string'], + 'KTaglib_Tag::getComment' => ['string'], + 'KTaglib_Tag::getGenre' => ['string'], + 'KTaglib_Tag::getTitle' => ['string'], + 'KTaglib_Tag::getTrack' => ['int'], + 'KTaglib_Tag::getYear' => ['int'], + 'KTaglib_Tag::isEmpty' => ['bool'], + 'Lapack::eigenValues' => ['array', 'a'=>'array', 'left='=>'array', 'right='=>'array'], + 'Lapack::identity' => ['array', 'n'=>'int'], + 'Lapack::leastSquaresByFactorisation' => ['array', 'a'=>'array', 'b'=>'array'], + 'Lapack::leastSquaresBySVD' => ['array', 'a'=>'array', 'b'=>'array'], + 'Lapack::pseudoInverse' => ['array', 'a'=>'array'], + 'Lapack::singularValues' => ['array', 'a'=>'array'], + 'Lapack::solveLinearEquation' => ['array', 'a'=>'array', 'b'=>'array'], + 'LengthException::__clone' => ['void'], + 'LengthException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'LengthException::__toString' => ['string'], + 'LengthException::getCode' => ['int'], + 'LengthException::getFile' => ['string'], + 'LengthException::getLine' => ['int'], + 'LengthException::getMessage' => ['string'], + 'LengthException::getPrevious' => ['?Throwable'], + 'LengthException::getTrace' => ['list\',args?:array}>'], + 'LengthException::getTraceAsString' => ['string'], + 'LevelDB::__construct' => ['void', 'name'=>'string', 'options='=>'array', 'read_options='=>'array', 'write_options='=>'array'], + 'LevelDB::close' => [''], + 'LevelDB::compactRange' => ['', 'start'=>'', 'limit'=>''], + 'LevelDB::delete' => ['bool', 'key'=>'string', 'write_options='=>'array'], + 'LevelDB::destroy' => ['', 'name'=>'', 'options='=>'array'], + 'LevelDB::get' => ['bool|string', 'key'=>'string', 'read_options='=>'array'], + 'LevelDB::getApproximateSizes' => ['', 'start'=>'', 'limit'=>''], + 'LevelDB::getIterator' => ['LevelDBIterator', 'options='=>'array'], + 'LevelDB::getProperty' => ['mixed', 'name'=>'string'], + 'LevelDB::getSnapshot' => ['LevelDBSnapshot'], + 'LevelDB::put' => ['', 'key'=>'string', 'value'=>'string', 'write_options='=>'array'], + 'LevelDB::repair' => ['', 'name'=>'', 'options='=>'array'], + 'LevelDB::set' => ['', 'key'=>'string', 'value'=>'string', 'write_options='=>'array'], + 'LevelDB::write' => ['', 'batch'=>'LevelDBWriteBatch', 'write_options='=>'array'], + 'LevelDBIterator::__construct' => ['void', 'db'=>'LevelDB', 'read_options='=>'array'], + 'LevelDBIterator::current' => ['mixed'], + 'LevelDBIterator::destroy' => [''], + 'LevelDBIterator::getError' => [''], + 'LevelDBIterator::key' => ['int|string'], + 'LevelDBIterator::last' => [''], + 'LevelDBIterator::next' => ['void'], + 'LevelDBIterator::prev' => [''], + 'LevelDBIterator::rewind' => ['void'], + 'LevelDBIterator::seek' => ['', 'key'=>''], + 'LevelDBIterator::valid' => ['bool'], + 'LevelDBSnapshot::__construct' => ['void', 'db'=>'LevelDB'], + 'LevelDBSnapshot::release' => [''], + 'LevelDBWriteBatch::__construct' => ['void', 'name'=>'', 'options='=>'array', 'read_options='=>'array', 'write_options='=>'array'], + 'LevelDBWriteBatch::clear' => [''], + 'LevelDBWriteBatch::delete' => ['', 'key'=>'', 'write_options='=>'array'], + 'LevelDBWriteBatch::put' => ['', 'key'=>'', 'value'=>'', 'write_options='=>'array'], + 'LevelDBWriteBatch::set' => ['', 'key'=>'', 'value'=>'', 'write_options='=>'array'], + 'LimitIterator::__construct' => ['void', 'iterator'=>'Iterator', 'offset='=>'int', 'count='=>'int'], + 'LimitIterator::current' => ['mixed'], + 'LimitIterator::getInnerIterator' => ['Iterator'], + 'LimitIterator::getPosition' => ['int'], + 'LimitIterator::key' => ['mixed'], + 'LimitIterator::next' => ['void'], + 'LimitIterator::rewind' => ['void'], + 'LimitIterator::seek' => ['int', 'position'=>'int'], + 'LimitIterator::valid' => ['bool'], + 'Locale::acceptFromHttp' => ['string|false', 'header'=>'string'], + 'Locale::canonicalize' => ['string', 'locale'=>'string'], + 'Locale::composeLocale' => ['string', 'subtags'=>'array'], + 'Locale::filterMatches' => ['?bool', 'languageTag'=>'string', 'locale'=>'string', 'canonicalize='=>'bool'], + 'Locale::getAllVariants' => ['array', 'locale'=>'string'], + 'Locale::getDefault' => ['string'], + 'Locale::getDisplayLanguage' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'Locale::getDisplayName' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'Locale::getDisplayRegion' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'Locale::getDisplayScript' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'Locale::getDisplayVariant' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'Locale::getKeywords' => ['array|false', 'locale'=>'string'], + 'Locale::getPrimaryLanguage' => ['string', 'locale'=>'string'], + 'Locale::getRegion' => ['string', 'locale'=>'string'], + 'Locale::getScript' => ['string', 'locale'=>'string'], + 'Locale::lookup' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'string'], + 'Locale::parseLocale' => ['array', 'locale'=>'string'], + 'Locale::setDefault' => ['bool', 'locale'=>'string'], + 'LogicException::__clone' => ['void'], + 'LogicException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'LogicException::__toString' => ['string'], + 'LogicException::getCode' => ['int'], + 'LogicException::getFile' => ['string'], + 'LogicException::getLine' => ['int'], + 'LogicException::getMessage' => ['string'], + 'LogicException::getPrevious' => ['?Throwable'], + 'LogicException::getTrace' => ['list\',args?:array}>'], + 'LogicException::getTraceAsString' => ['string'], + 'Lua::__call' => ['mixed', 'lua_func'=>'callable', 'args='=>'array', 'use_self='=>'int'], + 'Lua::__construct' => ['void', 'lua_script_file'=>'string'], + 'Lua::assign' => ['?Lua', 'name'=>'string', 'value'=>'mixed'], + 'Lua::call' => ['mixed', 'lua_func'=>'callable', 'args='=>'array', 'use_self='=>'int'], + 'Lua::eval' => ['mixed', 'statements'=>'string'], + 'Lua::getVersion' => ['string'], + 'Lua::include' => ['mixed', 'file'=>'string'], + 'Lua::registerCallback' => ['Lua|null|false', 'name'=>'string', 'function'=>'callable'], + 'LuaClosure::__invoke' => ['void', 'arg'=>'mixed', '...args='=>'mixed'], + 'Memcache::add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'Memcache::addServer' => ['bool', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable', 'timeoutms='=>'int'], + 'Memcache::append' => [''], + 'Memcache::cas' => [''], + 'Memcache::close' => ['bool'], + 'Memcache::connect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'Memcache::decrement' => ['int', 'key'=>'string', 'value='=>'int'], + 'Memcache::delete' => ['bool', 'key'=>'string', 'timeout='=>'int'], + 'Memcache::findServer' => [''], + 'Memcache::flush' => ['bool'], + 'Memcache::get' => ['string|array|false', 'key'=>'string', 'flags='=>'array', 'keys='=>'array'], + 'Memcache::get\'1' => ['array', 'key'=>'string[]', 'flags='=>'int[]'], + 'Memcache::getExtendedStats' => ['false|array>', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'Memcache::getServerStatus' => ['int', 'host'=>'string', 'port='=>'int'], + 'Memcache::getStats' => ['array', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'Memcache::getVersion' => ['string'], + 'Memcache::increment' => ['int', 'key'=>'string', 'value='=>'int'], + 'Memcache::pconnect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'Memcache::prepend' => ['string'], + 'Memcache::replace' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'Memcache::set' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'Memcache::setCompressThreshold' => ['bool', 'threshold'=>'int', 'min_savings='=>'float'], + 'Memcache::setFailureCallback' => [''], + 'Memcache::setServerParams' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable'], + 'MemcachePool::add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'MemcachePool::addServer' => ['bool', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'?callable', 'timeoutms='=>'int'], + 'MemcachePool::append' => [''], + 'MemcachePool::cas' => [''], + 'MemcachePool::close' => ['bool'], + 'MemcachePool::connect' => ['bool', 'host'=>'string', 'port'=>'int', 'timeout='=>'int'], + 'MemcachePool::decrement' => ['int|false', 'key'=>'', 'value='=>'int|mixed'], + 'MemcachePool::delete' => ['bool', 'key'=>'', 'timeout='=>'int|mixed'], + 'MemcachePool::findServer' => [''], + 'MemcachePool::flush' => ['bool'], + 'MemcachePool::get' => ['array|string|false', 'key'=>'array|string', '&flags='=>'array|int'], + 'MemcachePool::getExtendedStats' => ['false|array>', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'MemcachePool::getServerStatus' => ['int', 'host'=>'string', 'port='=>'int'], + 'MemcachePool::getStats' => ['array|false', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'MemcachePool::getVersion' => ['string|false'], + 'MemcachePool::increment' => ['int|false', 'key'=>'', 'value='=>'int|mixed'], + 'MemcachePool::prepend' => ['string'], + 'MemcachePool::replace' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'MemcachePool::set' => ['bool', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'MemcachePool::setCompressThreshold' => ['bool', 'thresold'=>'int', 'min_saving='=>'float'], + 'MemcachePool::setFailureCallback' => [''], + 'MemcachePool::setServerParams' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'?callable'], + 'Memcached::__construct' => ['void', 'persistent_id='=>'?string', 'callback='=>'?callable', 'connection_str='=>'?string'], + 'Memcached::add' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::addByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::addServer' => ['bool', 'host'=>'string', 'port'=>'int', 'weight='=>'int'], + 'Memcached::addServers' => ['bool', 'servers'=>'array'], + 'Memcached::append' => ['?bool', 'key'=>'string', 'value'=>'string'], + 'Memcached::appendByKey' => ['?bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'string'], + 'Memcached::cas' => ['bool', 'cas_token'=>'string|int|float', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::casByKey' => ['bool', 'cas_token'=>'string|int|float', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::decrement' => ['int|false', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], + 'Memcached::decrementByKey' => ['int|false', 'server_key'=>'string', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], + 'Memcached::delete' => ['bool', 'key'=>'string', 'time='=>'int'], + 'Memcached::deleteByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'time='=>'int'], + 'Memcached::deleteMulti' => ['array', 'keys'=>'array', 'time='=>'int'], + 'Memcached::deleteMultiByKey' => ['array', 'server_key'=>'string', 'keys'=>'array', 'time='=>'int'], + 'Memcached::fetch' => ['array|false'], + 'Memcached::fetchAll' => ['array|false'], + 'Memcached::flush' => ['bool', 'delay='=>'int'], + 'Memcached::flushBuffers' => ['bool'], + 'Memcached::get' => ['mixed|false', 'key'=>'string', 'cache_cb='=>'?callable', 'get_flags='=>'int'], + 'Memcached::getAllKeys' => ['array|false'], + 'Memcached::getByKey' => ['mixed|false', 'server_key'=>'string', 'key'=>'string', 'cache_cb='=>'?callable', 'get_flags='=>'int'], + 'Memcached::getDelayed' => ['bool', 'keys'=>'array', 'with_cas='=>'bool', 'value_cb='=>'?callable'], + 'Memcached::getDelayedByKey' => ['bool', 'server_key'=>'string', 'keys'=>'array', 'with_cas='=>'bool', 'value_cb='=>'?callable'], + 'Memcached::getLastDisconnectedServer' => ['array|false'], + 'Memcached::getLastErrorCode' => ['int'], + 'Memcached::getLastErrorErrno' => ['int'], + 'Memcached::getLastErrorMessage' => ['string'], + 'Memcached::getMulti' => ['array|false', 'keys'=>'array', 'get_flags='=>'int'], + 'Memcached::getMultiByKey' => ['array|false', 'server_key'=>'string', 'keys'=>'array', 'get_flags='=>'int'], + 'Memcached::getOption' => ['mixed|false', 'option'=>'int'], + 'Memcached::getResultCode' => ['int'], + 'Memcached::getResultMessage' => ['string'], + 'Memcached::getServerByKey' => ['array', 'server_key'=>'string'], + 'Memcached::getServerList' => ['array'], + 'Memcached::getStats' => ['false|array>', 'type='=>'?string'], + 'Memcached::getVersion' => ['array'], + 'Memcached::increment' => ['int|false', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], + 'Memcached::incrementByKey' => ['int|false', 'server_key'=>'string', 'key'=>'string', 'offset='=>'int', 'initial_value='=>'int', 'expiry='=>'int'], + 'Memcached::isPersistent' => ['bool'], + 'Memcached::isPristine' => ['bool'], + 'Memcached::prepend' => ['?bool', 'key'=>'string', 'value'=>'string'], + 'Memcached::prependByKey' => ['?bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'string'], + 'Memcached::quit' => ['bool'], + 'Memcached::replace' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::replaceByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::resetServerList' => ['bool'], + 'Memcached::set' => ['bool', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::setBucket' => ['bool', 'host_map'=>'array', 'forward_map'=>'?array', 'replicas'=>'int'], + 'Memcached::setByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'value'=>'mixed', 'expiration='=>'int'], + 'Memcached::setEncodingKey' => ['bool', 'key'=>'string'], + 'Memcached::setMulti' => ['bool', 'items'=>'array', 'expiration='=>'int'], + 'Memcached::setMultiByKey' => ['bool', 'server_key'=>'string', 'items'=>'array', 'expiration='=>'int'], + 'Memcached::setOption' => ['bool', 'option'=>'int', 'value'=>'mixed'], + 'Memcached::setOptions' => ['bool', 'options'=>'array'], + 'Memcached::setSaslAuthData' => ['bool', 'username'=>'string', 'password'=>'string'], + 'Memcached::touch' => ['bool', 'key'=>'string', 'expiration='=>'int'], + 'Memcached::touchByKey' => ['bool', 'server_key'=>'string', 'key'=>'string', 'expiration='=>'int'], + 'MessageFormatter::__construct' => ['void', 'locale'=>'string', 'pattern'=>'string'], + 'MessageFormatter::create' => ['MessageFormatter', 'locale'=>'string', 'pattern'=>'string'], + 'MessageFormatter::format' => ['false|string', 'args'=>'array'], + 'MessageFormatter::formatMessage' => ['false|string', 'locale'=>'string', 'pattern'=>'string', 'args'=>'array'], + 'MessageFormatter::getErrorCode' => ['int'], + 'MessageFormatter::getErrorMessage' => ['string'], + 'MessageFormatter::getLocale' => ['string'], + 'MessageFormatter::getPattern' => ['string'], + 'MessageFormatter::parse' => ['array|false', 'value'=>'string'], + 'MessageFormatter::parseMessage' => ['array|false', 'locale'=>'string', 'pattern'=>'string', 'source'=>'string'], + 'MessageFormatter::setPattern' => ['bool', 'pattern'=>'string'], + 'Mongo::__construct' => ['void', 'server='=>'string', 'options='=>'array', 'driver_options='=>'array'], + 'Mongo::__get' => ['MongoDB', 'dbname'=>'string'], + 'Mongo::__toString' => ['string'], + 'Mongo::close' => ['bool'], + 'Mongo::connect' => ['bool'], + 'Mongo::connectUtil' => ['bool'], + 'Mongo::dropDB' => ['array', 'db'=>'mixed'], + 'Mongo::forceError' => ['bool'], + 'Mongo::getConnections' => ['array'], + 'Mongo::getHosts' => ['array'], + 'Mongo::getPoolSize' => ['int'], + 'Mongo::getReadPreference' => ['array'], + 'Mongo::getSlave' => ['?string'], + 'Mongo::getSlaveOkay' => ['bool'], + 'Mongo::getWriteConcern' => ['array'], + 'Mongo::killCursor' => ['', 'server_hash'=>'string', 'id'=>'MongoInt64|int'], + 'Mongo::lastError' => ['?array'], + 'Mongo::listDBs' => ['array'], + 'Mongo::pairConnect' => ['bool'], + 'Mongo::pairPersistConnect' => ['bool', 'username='=>'string', 'password='=>'string'], + 'Mongo::persistConnect' => ['bool', 'username='=>'string', 'password='=>'string'], + 'Mongo::poolDebug' => ['array'], + 'Mongo::prevError' => ['array'], + 'Mongo::resetError' => ['array'], + 'Mongo::selectCollection' => ['MongoCollection', 'db'=>'string', 'collection'=>'string'], + 'Mongo::selectDB' => ['MongoDB', 'name'=>'string'], + 'Mongo::setPoolSize' => ['bool', 'size'=>'int'], + 'Mongo::setReadPreference' => ['bool', 'readPreference'=>'string', 'tags='=>'array'], + 'Mongo::setSlaveOkay' => ['bool', 'ok='=>'bool'], + 'Mongo::switchSlave' => ['string'], + 'MongoBinData::__construct' => ['void', 'data'=>'string', 'type='=>'int'], + 'MongoBinData::__toString' => ['string'], + 'MongoClient::__construct' => ['void', 'server='=>'string', 'options='=>'array', 'driver_options='=>'array'], + 'MongoClient::__get' => ['MongoDB', 'dbname'=>'string'], + 'MongoClient::__toString' => ['string'], + 'MongoClient::close' => ['bool', 'connection='=>'bool|string'], + 'MongoClient::connect' => ['bool'], + 'MongoClient::dropDB' => ['array', 'db'=>'mixed'], + 'MongoClient::getConnections' => ['array'], + 'MongoClient::getHosts' => ['array'], + 'MongoClient::getReadPreference' => ['array'], + 'MongoClient::getWriteConcern' => ['array'], + 'MongoClient::killCursor' => ['bool', 'server_hash'=>'string', 'id'=>'int|MongoInt64'], + 'MongoClient::listDBs' => ['array'], + 'MongoClient::selectCollection' => ['MongoCollection', 'db'=>'string', 'collection'=>'string'], + 'MongoClient::selectDB' => ['MongoDB', 'name'=>'string'], + 'MongoClient::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoClient::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], + 'MongoClient::switchSlave' => ['string'], + 'MongoCode::__construct' => ['void', 'code'=>'string', 'scope='=>'array'], + 'MongoCode::__toString' => ['string'], + 'MongoCollection::__construct' => ['void', 'db'=>'MongoDB', 'name'=>'string'], + 'MongoCollection::__get' => ['MongoCollection', 'name'=>'string'], + 'MongoCollection::__toString' => ['string'], + 'MongoCollection::aggregate' => ['array', 'op'=>'array', 'op='=>'array', '...args='=>'array'], + 'MongoCollection::aggregate\'1' => ['array', 'pipeline'=>'array', 'options='=>'array'], + 'MongoCollection::aggregateCursor' => ['MongoCommandCursor', 'command'=>'array', 'options='=>'array'], + 'MongoCollection::batchInsert' => ['array|bool', 'a'=>'array', 'options='=>'array'], + 'MongoCollection::count' => ['int', 'query='=>'array', 'limit='=>'int', 'skip='=>'int'], + 'MongoCollection::createDBRef' => ['array', 'a'=>'array'], + 'MongoCollection::createIndex' => ['array', 'keys'=>'array', 'options='=>'array'], + 'MongoCollection::deleteIndex' => ['array', 'keys'=>'string|array'], + 'MongoCollection::deleteIndexes' => ['array'], + 'MongoCollection::distinct' => ['array|false', 'key'=>'string', 'query='=>'array'], + 'MongoCollection::drop' => ['array'], + 'MongoCollection::ensureIndex' => ['bool', 'keys'=>'array', 'options='=>'array'], + 'MongoCollection::find' => ['MongoCursor', 'query='=>'array', 'fields='=>'array'], + 'MongoCollection::findAndModify' => ['array', 'query'=>'array', 'update='=>'array', 'fields='=>'array', 'options='=>'array'], + 'MongoCollection::findOne' => ['?array', 'query='=>'array', 'fields='=>'array'], + 'MongoCollection::getDBRef' => ['array', 'ref'=>'array'], + 'MongoCollection::getIndexInfo' => ['array'], + 'MongoCollection::getName' => ['string'], + 'MongoCollection::getReadPreference' => ['array'], + 'MongoCollection::getSlaveOkay' => ['bool'], + 'MongoCollection::getWriteConcern' => ['array'], + 'MongoCollection::group' => ['array', 'keys'=>'mixed', 'initial'=>'array', 'reduce'=>'MongoCode', 'options='=>'array'], + 'MongoCollection::insert' => ['bool|array', 'a'=>'array|object', 'options='=>'array'], + 'MongoCollection::parallelCollectionScan' => ['MongoCommandCursor[]', 'num_cursors'=>'int'], + 'MongoCollection::remove' => ['bool|array', 'criteria='=>'array', 'options='=>'array'], + 'MongoCollection::save' => ['bool|array', 'a'=>'array|object', 'options='=>'array'], + 'MongoCollection::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoCollection::setSlaveOkay' => ['bool', 'ok='=>'bool'], + 'MongoCollection::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], + 'MongoCollection::toIndexString' => ['string', 'keys'=>'mixed'], + 'MongoCollection::update' => ['bool', 'criteria'=>'array', 'newobj'=>'array', 'options='=>'array'], + 'MongoCollection::validate' => ['array', 'scan_data='=>'bool'], + 'MongoCommandCursor::__construct' => ['void', 'connection'=>'MongoClient', 'ns'=>'string', 'command'=>'array'], + 'MongoCommandCursor::batchSize' => ['MongoCommandCursor', 'batchSize'=>'int'], + 'MongoCommandCursor::createFromDocument' => ['MongoCommandCursor', 'connection'=>'MongoClient', 'hash'=>'string', 'document'=>'array'], + 'MongoCommandCursor::current' => ['array'], + 'MongoCommandCursor::dead' => ['bool'], + 'MongoCommandCursor::getReadPreference' => ['array'], + 'MongoCommandCursor::info' => ['array'], + 'MongoCommandCursor::key' => ['int'], + 'MongoCommandCursor::next' => ['void'], + 'MongoCommandCursor::rewind' => ['array'], + 'MongoCommandCursor::setReadPreference' => ['MongoCommandCursor', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoCommandCursor::timeout' => ['MongoCommandCursor', 'ms'=>'int'], + 'MongoCommandCursor::valid' => ['bool'], + 'MongoCursor::__construct' => ['void', 'connection'=>'MongoClient', 'ns'=>'string', 'query='=>'array', 'fields='=>'array'], + 'MongoCursor::addOption' => ['MongoCursor', 'key'=>'string', 'value'=>'mixed'], + 'MongoCursor::awaitData' => ['MongoCursor', 'wait='=>'bool'], + 'MongoCursor::batchSize' => ['MongoCursor', 'num'=>'int'], + 'MongoCursor::count' => ['int', 'foundonly='=>'bool'], + 'MongoCursor::current' => ['array'], + 'MongoCursor::dead' => ['bool'], + 'MongoCursor::doQuery' => ['void'], + 'MongoCursor::explain' => ['array'], + 'MongoCursor::fields' => ['MongoCursor', 'f'=>'array'], + 'MongoCursor::getNext' => ['array'], + 'MongoCursor::getReadPreference' => ['array'], + 'MongoCursor::hasNext' => ['bool'], + 'MongoCursor::hint' => ['MongoCursor', 'key_pattern'=>'string|array|object'], + 'MongoCursor::immortal' => ['MongoCursor', 'liveforever='=>'bool'], + 'MongoCursor::info' => ['array'], + 'MongoCursor::key' => ['string'], + 'MongoCursor::limit' => ['MongoCursor', 'num'=>'int'], + 'MongoCursor::maxTimeMS' => ['MongoCursor', 'ms'=>'int'], + 'MongoCursor::next' => ['array'], + 'MongoCursor::partial' => ['MongoCursor', 'okay='=>'bool'], + 'MongoCursor::reset' => ['void'], + 'MongoCursor::rewind' => ['void'], + 'MongoCursor::setFlag' => ['MongoCursor', 'flag'=>'int', 'set='=>'bool'], + 'MongoCursor::setReadPreference' => ['MongoCursor', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoCursor::skip' => ['MongoCursor', 'num'=>'int'], + 'MongoCursor::slaveOkay' => ['MongoCursor', 'okay='=>'bool'], + 'MongoCursor::snapshot' => ['MongoCursor'], + 'MongoCursor::sort' => ['MongoCursor', 'fields'=>'array'], + 'MongoCursor::tailable' => ['MongoCursor', 'tail='=>'bool'], + 'MongoCursor::timeout' => ['MongoCursor', 'ms'=>'int'], + 'MongoCursor::valid' => ['bool'], + 'MongoCursorException::__clone' => ['void'], + 'MongoCursorException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'MongoCursorException::__toString' => ['string'], + 'MongoCursorException::__wakeup' => ['void'], + 'MongoCursorException::getCode' => ['int'], + 'MongoCursorException::getFile' => ['string'], + 'MongoCursorException::getHost' => ['string'], + 'MongoCursorException::getLine' => ['int'], + 'MongoCursorException::getMessage' => ['string'], + 'MongoCursorException::getPrevious' => ['Exception|Throwable'], + 'MongoCursorException::getTrace' => ['list\',args?:array}>'], + 'MongoCursorException::getTraceAsString' => ['string'], + 'MongoCursorInterface::__construct' => ['void'], + 'MongoCursorInterface::batchSize' => ['MongoCursorInterface', 'batchSize'=>'int'], + 'MongoCursorInterface::current' => ['mixed'], + 'MongoCursorInterface::dead' => ['bool'], + 'MongoCursorInterface::getReadPreference' => ['array'], + 'MongoCursorInterface::info' => ['array'], + 'MongoCursorInterface::key' => ['int|string'], + 'MongoCursorInterface::next' => ['void'], + 'MongoCursorInterface::rewind' => ['void'], + 'MongoCursorInterface::setReadPreference' => ['MongoCursorInterface', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoCursorInterface::timeout' => ['MongoCursorInterface', 'ms'=>'int'], + 'MongoCursorInterface::valid' => ['bool'], + 'MongoDB::__construct' => ['void', 'conn'=>'MongoClient', 'name'=>'string'], + 'MongoDB::__get' => ['MongoCollection', 'name'=>'string'], + 'MongoDB::__toString' => ['string'], + 'MongoDB::authenticate' => ['array', 'username'=>'string', 'password'=>'string'], + 'MongoDB::command' => ['array', 'command'=>'array'], + 'MongoDB::createCollection' => ['MongoCollection', 'name'=>'string', 'capped='=>'bool', 'size='=>'int', 'max='=>'int'], + 'MongoDB::createDBRef' => ['array', 'collection'=>'string', 'a'=>'mixed'], + 'MongoDB::drop' => ['array'], + 'MongoDB::dropCollection' => ['array', 'coll'=>'MongoCollection|string'], + 'MongoDB::execute' => ['array', 'code'=>'MongoCode|string', 'args='=>'array'], + 'MongoDB::forceError' => ['bool'], + 'MongoDB::getCollectionInfo' => ['array', 'options='=>'array'], + 'MongoDB::getCollectionNames' => ['array', 'options='=>'array'], + 'MongoDB::getDBRef' => ['array', 'ref'=>'array'], + 'MongoDB::getGridFS' => ['MongoGridFS', 'prefix='=>'string'], + 'MongoDB::getProfilingLevel' => ['int'], + 'MongoDB::getReadPreference' => ['array'], + 'MongoDB::getSlaveOkay' => ['bool'], + 'MongoDB::getWriteConcern' => ['array'], + 'MongoDB::lastError' => ['array'], + 'MongoDB::listCollections' => ['array'], + 'MongoDB::prevError' => ['array'], + 'MongoDB::repair' => ['array', 'preserve_cloned_files='=>'bool', 'backup_original_files='=>'bool'], + 'MongoDB::resetError' => ['array'], + 'MongoDB::selectCollection' => ['MongoCollection', 'name'=>'string'], + 'MongoDB::setProfilingLevel' => ['int', 'level'=>'int'], + 'MongoDB::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags='=>'array'], + 'MongoDB::setSlaveOkay' => ['bool', 'ok='=>'bool'], + 'MongoDB::setWriteConcern' => ['bool', 'w'=>'mixed', 'wtimeout='=>'int'], + 'MongoDBRef::create' => ['array', 'collection'=>'string', 'id'=>'mixed', 'database='=>'string'], + 'MongoDBRef::get' => ['?array', 'db'=>'MongoDB', 'ref'=>'array'], + 'MongoDBRef::isRef' => ['bool', 'ref'=>'mixed'], + 'MongoDB\BSON\Binary::__construct' => ['void', 'data' => 'string', 'type' => 'int'], + 'MongoDB\BSON\Binary::getData' => ['string'], + 'MongoDB\BSON\Binary::getType' => ['int'], + 'MongoDB\BSON\Binary::__toString' => ['string'], + 'MongoDB\BSON\Binary::serialize' => ['string'], + 'MongoDB\BSON\Binary::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Binary::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\BinaryInterface::getData' => ['string'], + 'MongoDB\BSON\BinaryInterface::getType' => ['int'], + 'MongoDB\BSON\BinaryInterface::__toString' => ['string'], + 'MongoDB\BSON\DBPointer::__toString' => ['string'], + 'MongoDB\BSON\DBPointer::serialize' => ['string'], + 'MongoDB\BSON\DBPointer::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\DBPointer::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\Decimal128::__construct' => ['void', 'value' => 'string'], + 'MongoDB\BSON\Decimal128::__toString' => ['string'], + 'MongoDB\BSON\Decimal128::serialize' => ['string'], + 'MongoDB\BSON\Decimal128::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Decimal128::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\Decimal128Interface::__toString' => ['string'], + 'MongoDB\BSON\Int64::__toString' => ['string'], + 'MongoDB\BSON\Int64::serialize' => ['string'], + 'MongoDB\BSON\Int64::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Int64::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\Javascript::__construct' => ['void', 'code' => 'string', 'scope=' => 'object|array|null'], + 'MongoDB\BSON\Javascript::getCode' => ['string'], + 'MongoDB\BSON\Javascript::getScope' => ['?object'], + 'MongoDB\BSON\Javascript::__toString' => ['string'], + 'MongoDB\BSON\Javascript::serialize' => ['string'], + 'MongoDB\BSON\Javascript::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Javascript::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\JavascriptInterface::getCode' => ['string'], + 'MongoDB\BSON\JavascriptInterface::getScope' => ['?object'], + 'MongoDB\BSON\JavascriptInterface::__toString' => ['string'], + 'MongoDB\BSON\MaxKey::serialize' => ['string'], + 'MongoDB\BSON\MaxKey::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\MaxKey::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\MinKey::serialize' => ['string'], + 'MongoDB\BSON\MinKey::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\MinKey::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\ObjectId::__construct' => ['void', 'id=' => '?string'], + 'MongoDB\BSON\ObjectId::getTimestamp' => ['int'], + 'MongoDB\BSON\ObjectId::__toString' => ['string'], + 'MongoDB\BSON\ObjectId::serialize' => ['string'], + 'MongoDB\BSON\ObjectId::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\ObjectId::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\ObjectIdInterface::getTimestamp' => ['int'], + 'MongoDB\BSON\ObjectIdInterface::__toString' => ['string'], + 'MongoDB\BSON\Regex::__construct' => ['void', 'pattern' => 'string', 'flags=' => 'string'], + 'MongoDB\BSON\Regex::getPattern' => ['string'], + 'MongoDB\BSON\Regex::getFlags' => ['string'], + 'MongoDB\BSON\Regex::__toString' => ['string'], + 'MongoDB\BSON\Regex::serialize' => ['string'], + 'MongoDB\BSON\Regex::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Regex::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\RegexInterface::getPattern' => ['string'], + 'MongoDB\BSON\RegexInterface::getFlags' => ['string'], + 'MongoDB\BSON\RegexInterface::__toString' => ['string'], + 'MongoDB\BSON\Serializable::bsonSerialize' => ['object|array'], + 'MongoDB\BSON\Symbol::__toString' => ['string'], + 'MongoDB\BSON\Symbol::serialize' => ['string'], + 'MongoDB\BSON\Symbol::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Symbol::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\Timestamp::__construct' => ['void', 'increment' => 'string|int', 'timestamp' => 'string|int'], + 'MongoDB\BSON\Timestamp::getTimestamp' => ['int'], + 'MongoDB\BSON\Timestamp::getIncrement' => ['int'], + 'MongoDB\BSON\Timestamp::__toString' => ['string'], + 'MongoDB\BSON\Timestamp::serialize' => ['string'], + 'MongoDB\BSON\Timestamp::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Timestamp::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\TimestampInterface::getTimestamp' => ['int'], + 'MongoDB\BSON\TimestampInterface::getIncrement' => ['int'], + 'MongoDB\BSON\TimestampInterface::__toString' => ['string'], + 'MongoDB\BSON\UTCDateTime::__construct' => ['void', 'milliseconds=' => 'DateTimeInterface|string|int|float|null'], + 'MongoDB\BSON\UTCDateTime::toDateTime' => ['DateTime'], + 'MongoDB\BSON\UTCDateTime::__toString' => ['string'], + 'MongoDB\BSON\UTCDateTime::serialize' => ['string'], + 'MongoDB\BSON\UTCDateTime::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\UTCDateTime::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\UTCDateTimeInterface::toDateTime' => ['DateTime'], + 'MongoDB\BSON\UTCDateTimeInterface::__toString' => ['string'], + 'MongoDB\BSON\Undefined::__toString' => ['string'], + 'MongoDB\BSON\Undefined::serialize' => ['string'], + 'MongoDB\BSON\Undefined::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\BSON\Undefined::jsonSerialize' => ['mixed'], + 'MongoDB\BSON\Unserializable::bsonUnserialize' => ['void', 'data' => 'array'], + 'MongoDB\Driver\BulkWrite::__construct' => ['void', 'options=' => '?array'], + 'MongoDB\Driver\BulkWrite::count' => ['int'], + 'MongoDB\Driver\BulkWrite::delete' => ['void', 'filter' => 'object|array', 'deleteOptions=' => '?array'], + 'MongoDB\Driver\BulkWrite::insert' => ['mixed', 'document' => 'object|array'], + 'MongoDB\Driver\BulkWrite::update' => ['void', 'filter' => 'object|array', 'newObj' => 'object|array', 'updateOptions=' => '?array'], + 'MongoDB\Driver\ClientEncryption::__construct' => ['void', 'options' => 'array'], + 'MongoDB\Driver\ClientEncryption::addKeyAltName' => ['?object', 'keyId' => 'MongoDB\BSON\Binary', 'keyAltName' => 'string'], + 'MongoDB\Driver\ClientEncryption::createDataKey' => ['MongoDB\BSON\Binary', 'kmsProvider' => 'string', 'options=' => '?array'], + 'MongoDB\Driver\ClientEncryption::decrypt' => ['mixed', 'value' => 'MongoDB\BSON\Binary'], + 'MongoDB\Driver\ClientEncryption::deleteKey' => ['object', 'keyId' => 'MongoDB\BSON\Binary'], + 'MongoDB\Driver\ClientEncryption::encrypt' => ['MongoDB\BSON\Binary', 'value' => 'mixed', 'options=' => '?array'], + 'MongoDB\Driver\ClientEncryption::getKey' => ['?object', 'keyId' => 'MongoDB\BSON\Binary'], + 'MongoDB\Driver\ClientEncryption::getKeyByAltName' => ['?object', 'keyAltName' => 'string'], + 'MongoDB\Driver\ClientEncryption::getKeys' => ['MongoDB\Driver\Cursor'], + 'MongoDB\Driver\ClientEncryption::removeKeyAltName' => ['?object', 'keyId' => 'MongoDB\BSON\Binary', 'keyAltName' => 'string'], + 'MongoDB\Driver\ClientEncryption::rewrapManyDataKey' => ['object', 'filter' => 'object|array', 'options=' => '?array'], + 'MongoDB\Driver\Command::__construct' => ['void', 'document' => 'object|array', 'commandOptions=' => '?array'], + 'MongoDB\Driver\Cursor::current' => ['object|array|null'], + 'MongoDB\Driver\Cursor::getId' => ['MongoDB\Driver\CursorId'], + 'MongoDB\Driver\Cursor::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\Cursor::isDead' => ['bool'], + 'MongoDB\Driver\Cursor::key' => ['?int'], + 'MongoDB\Driver\Cursor::next' => ['void'], + 'MongoDB\Driver\Cursor::rewind' => ['void'], + 'MongoDB\Driver\Cursor::setTypeMap' => ['void', 'typemap' => 'array'], + 'MongoDB\Driver\Cursor::toArray' => ['array'], + 'MongoDB\Driver\Cursor::valid' => ['bool'], + 'MongoDB\Driver\CursorId::__toString' => ['string'], + 'MongoDB\Driver\CursorId::serialize' => ['string'], + 'MongoDB\Driver\CursorId::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\Driver\CursorInterface::getId' => ['MongoDB\Driver\CursorId'], + 'MongoDB\Driver\CursorInterface::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\CursorInterface::isDead' => ['bool'], + 'MongoDB\Driver\CursorInterface::setTypeMap' => ['void', 'typemap' => 'array'], + 'MongoDB\Driver\CursorInterface::toArray' => ['array'], + 'MongoDB\Driver\Exception\AuthenticationException::__toString' => ['string'], + 'MongoDB\Driver\Exception\BulkWriteException::__toString' => ['string'], + 'MongoDB\Driver\Exception\CommandException::getResultDocument' => ['object'], + 'MongoDB\Driver\Exception\CommandException::__toString' => ['string'], + 'MongoDB\Driver\Exception\ConnectionException::__toString' => ['string'], + 'MongoDB\Driver\Exception\ConnectionTimeoutException::__toString' => ['string'], + 'MongoDB\Driver\Exception\EncryptionException::__toString' => ['string'], + 'MongoDB\Driver\Exception\Exception::__toString' => ['string'], + 'MongoDB\Driver\Exception\ExecutionTimeoutException::__toString' => ['string'], + 'MongoDB\Driver\Exception\InvalidArgumentException::__toString' => ['string'], + 'MongoDB\Driver\Exception\LogicException::__toString' => ['string'], + 'MongoDB\Driver\Exception\RuntimeException::hasErrorLabel' => ['bool', 'errorLabel' => 'string'], + 'MongoDB\Driver\Exception\RuntimeException::__toString' => ['string'], + 'MongoDB\Driver\Exception\SSLConnectionException::__toString' => ['string'], + 'MongoDB\Driver\Exception\ServerException::__toString' => ['string'], + 'MongoDB\Driver\Exception\UnexpectedValueException::__toString' => ['string'], + 'MongoDB\Driver\Exception\WriteException::getWriteResult' => ['MongoDB\Driver\WriteResult'], + 'MongoDB\Driver\Exception\WriteException::__toString' => ['string'], + 'MongoDB\Driver\Manager::__construct' => ['void', 'uri=' => '?string', 'uriOptions=' => '?array', 'driverOptions=' => '?array'], + 'MongoDB\Driver\Manager::addSubscriber' => ['void', 'subscriber' => 'MongoDB\Driver\Monitoring\Subscriber'], + 'MongoDB\Driver\Manager::createClientEncryption' => ['MongoDB\Driver\ClientEncryption', 'options' => 'array'], + 'MongoDB\Driver\Manager::executeBulkWrite' => ['MongoDB\Driver\WriteResult', 'namespace' => 'string', 'bulk' => 'MongoDB\Driver\BulkWrite', 'options=' => 'MongoDB\Driver\WriteConcern|array|null'], + 'MongoDB\Driver\Manager::executeCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], + 'MongoDB\Driver\Manager::executeQuery' => ['MongoDB\Driver\Cursor', 'namespace' => 'string', 'query' => 'MongoDB\Driver\Query', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], + 'MongoDB\Driver\Manager::executeReadCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Manager::executeReadWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Manager::executeWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Manager::getEncryptedFieldsMap' => ['object|array|null'], + 'MongoDB\Driver\Manager::getReadConcern' => ['MongoDB\Driver\ReadConcern'], + 'MongoDB\Driver\Manager::getReadPreference' => ['MongoDB\Driver\ReadPreference'], + 'MongoDB\Driver\Manager::getServers' => ['array'], + 'MongoDB\Driver\Manager::getWriteConcern' => ['MongoDB\Driver\WriteConcern'], + 'MongoDB\Driver\Manager::removeSubscriber' => ['void', 'subscriber' => 'MongoDB\Driver\Monitoring\Subscriber'], + 'MongoDB\Driver\Manager::selectServer' => ['MongoDB\Driver\Server', 'readPreference=' => '?MongoDB\Driver\ReadPreference'], + 'MongoDB\Driver\Manager::startSession' => ['MongoDB\Driver\Session', 'options=' => '?array'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName' => ['string'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros' => ['int'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getError' => ['Exception'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getReply' => ['object'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId' => ['?int'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand' => ['object'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName' => ['string'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName' => ['string'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId' => ['?int'], + 'MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandStartedEvent'], + 'MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandSucceededEvent'], + 'MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\CommandFailedEvent'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName' => ['string'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros' => ['int'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply' => ['object'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId' => ['string'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId' => ['?MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId' => ['?int'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerChangedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerClosedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerOpeningEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded' => ['void', 'event' => 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyChangedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyClosedEvent'], + 'MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening' => ['void', 'event' => 'MongoDB\Driver\Monitoring\TopologyOpeningEvent'], + 'MongoDB\Driver\Monitoring\ServerChangedEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerChangedEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription' => ['MongoDB\Driver\ServerDescription'], + 'MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription' => ['MongoDB\Driver\ServerDescription'], + 'MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\ServerClosedEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerClosedEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros' => ['int'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError' => ['Exception'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited' => ['bool'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited' => ['bool'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros' => ['int'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply' => ['object'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited' => ['bool'], + 'MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort' => ['int'], + 'MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost' => ['string'], + 'MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription' => ['MongoDB\Driver\TopologyDescription'], + 'MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription' => ['MongoDB\Driver\TopologyDescription'], + 'MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId' => ['MongoDB\BSON\ObjectId'], + 'MongoDB\Driver\Query::__construct' => ['void', 'filter' => 'object|array', 'queryOptions=' => '?array'], + 'MongoDB\Driver\ReadConcern::__construct' => ['void', 'level=' => '?string'], + 'MongoDB\Driver\ReadConcern::getLevel' => ['?string'], + 'MongoDB\Driver\ReadConcern::isDefault' => ['bool'], + 'MongoDB\Driver\ReadConcern::bsonSerialize' => ['object|array'], + 'MongoDB\Driver\ReadConcern::serialize' => ['string'], + 'MongoDB\Driver\ReadConcern::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\Driver\ReadPreference::__construct' => ['void', 'mode' => 'string|int', 'tagSets=' => '?array', 'options=' => '?array'], + 'MongoDB\Driver\ReadPreference::getHedge' => ['?object'], + 'MongoDB\Driver\ReadPreference::getMaxStalenessSeconds' => ['int'], + 'MongoDB\Driver\ReadPreference::getMode' => ['int'], + 'MongoDB\Driver\ReadPreference::getModeString' => ['string'], + 'MongoDB\Driver\ReadPreference::getTagSets' => ['array'], + 'MongoDB\Driver\ReadPreference::bsonSerialize' => ['object|array'], + 'MongoDB\Driver\ReadPreference::serialize' => ['string'], + 'MongoDB\Driver\ReadPreference::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\Driver\Server::executeBulkWrite' => ['MongoDB\Driver\WriteResult', 'namespace' => 'string', 'bulkWrite' => 'MongoDB\Driver\BulkWrite', 'options=' => 'MongoDB\Driver\WriteConcern|array|null'], + 'MongoDB\Driver\Server::executeCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], + 'MongoDB\Driver\Server::executeQuery' => ['MongoDB\Driver\Cursor', 'namespace' => 'string', 'query' => 'MongoDB\Driver\Query', 'options=' => 'MongoDB\Driver\ReadPreference|array|null'], + 'MongoDB\Driver\Server::executeReadCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Server::executeReadWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Server::executeWriteCommand' => ['MongoDB\Driver\Cursor', 'db' => 'string', 'command' => 'MongoDB\Driver\Command', 'options=' => '?array'], + 'MongoDB\Driver\Server::getHost' => ['string'], + 'MongoDB\Driver\Server::getInfo' => ['array'], + 'MongoDB\Driver\Server::getLatency' => ['?int'], + 'MongoDB\Driver\Server::getPort' => ['int'], + 'MongoDB\Driver\Server::getServerDescription' => ['MongoDB\Driver\ServerDescription'], + 'MongoDB\Driver\Server::getTags' => ['array'], + 'MongoDB\Driver\Server::getType' => ['int'], + 'MongoDB\Driver\Server::isArbiter' => ['bool'], + 'MongoDB\Driver\Server::isHidden' => ['bool'], + 'MongoDB\Driver\Server::isPassive' => ['bool'], + 'MongoDB\Driver\Server::isPrimary' => ['bool'], + 'MongoDB\Driver\Server::isSecondary' => ['bool'], + 'MongoDB\Driver\ServerApi::__construct' => ['void', 'version' => 'string', 'strict=' => '?bool', 'deprecationErrors=' => '?bool'], + 'MongoDB\Driver\ServerApi::bsonSerialize' => ['object|array'], + 'MongoDB\Driver\ServerApi::serialize' => ['string'], + 'MongoDB\Driver\ServerApi::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\Driver\ServerDescription::getHelloResponse' => ['array'], + 'MongoDB\Driver\ServerDescription::getHost' => ['string'], + 'MongoDB\Driver\ServerDescription::getLastUpdateTime' => ['int'], + 'MongoDB\Driver\ServerDescription::getPort' => ['int'], + 'MongoDB\Driver\ServerDescription::getRoundTripTime' => ['?int'], + 'MongoDB\Driver\ServerDescription::getType' => ['string'], + 'MongoDB\Driver\Session::abortTransaction' => ['void'], + 'MongoDB\Driver\Session::advanceClusterTime' => ['void', 'clusterTime' => 'object|array'], + 'MongoDB\Driver\Session::advanceOperationTime' => ['void', 'operationTime' => 'MongoDB\BSON\TimestampInterface'], + 'MongoDB\Driver\Session::commitTransaction' => ['void'], + 'MongoDB\Driver\Session::endSession' => ['void'], + 'MongoDB\Driver\Session::getClusterTime' => ['?object'], + 'MongoDB\Driver\Session::getLogicalSessionId' => ['object'], + 'MongoDB\Driver\Session::getOperationTime' => ['?MongoDB\BSON\Timestamp'], + 'MongoDB\Driver\Session::getServer' => ['?MongoDB\Driver\Server'], + 'MongoDB\Driver\Session::getTransactionOptions' => ['?array'], + 'MongoDB\Driver\Session::getTransactionState' => ['string'], + 'MongoDB\Driver\Session::isDirty' => ['bool'], + 'MongoDB\Driver\Session::isInTransaction' => ['bool'], + 'MongoDB\Driver\Session::startTransaction' => ['void', 'options=' => '?array'], + 'MongoDB\Driver\TopologyDescription::getServers' => ['array'], + 'MongoDB\Driver\TopologyDescription::getType' => ['string'], + 'MongoDB\Driver\TopologyDescription::hasReadableServer' => ['bool', 'readPreference=' => '?MongoDB\Driver\ReadPreference'], + 'MongoDB\Driver\TopologyDescription::hasWritableServer' => ['bool'], + 'MongoDB\Driver\WriteConcern::__construct' => ['void', 'w' => 'string|int', 'wtimeout=' => '?int', 'journal=' => '?bool'], + 'MongoDB\Driver\WriteConcern::getJournal' => ['?bool'], + 'MongoDB\Driver\WriteConcern::getW' => ['string|int|null'], + 'MongoDB\Driver\WriteConcern::getWtimeout' => ['int'], + 'MongoDB\Driver\WriteConcern::isDefault' => ['bool'], + 'MongoDB\Driver\WriteConcern::bsonSerialize' => ['object|array'], + 'MongoDB\Driver\WriteConcern::serialize' => ['string'], + 'MongoDB\Driver\WriteConcern::unserialize' => ['void', 'serialized' => 'string'], + 'MongoDB\Driver\WriteConcernError::getCode' => ['int'], + 'MongoDB\Driver\WriteConcernError::getInfo' => ['?object'], + 'MongoDB\Driver\WriteConcernError::getMessage' => ['string'], + 'MongoDB\Driver\WriteError::getCode' => ['int'], + 'MongoDB\Driver\WriteError::getIndex' => ['int'], + 'MongoDB\Driver\WriteError::getInfo' => ['?object'], + 'MongoDB\Driver\WriteError::getMessage' => ['string'], + 'MongoDB\Driver\WriteResult::getInsertedCount' => ['?int'], + 'MongoDB\Driver\WriteResult::getMatchedCount' => ['?int'], + 'MongoDB\Driver\WriteResult::getModifiedCount' => ['?int'], + 'MongoDB\Driver\WriteResult::getDeletedCount' => ['?int'], + 'MongoDB\Driver\WriteResult::getUpsertedCount' => ['?int'], + 'MongoDB\Driver\WriteResult::getServer' => ['MongoDB\Driver\Server'], + 'MongoDB\Driver\WriteResult::getUpsertedIds' => ['array'], + 'MongoDB\Driver\WriteResult::getWriteConcernError' => ['?MongoDB\Driver\WriteConcernError'], + 'MongoDB\Driver\WriteResult::getWriteErrors' => ['array'], + 'MongoDB\Driver\WriteResult::isAcknowledged' => ['bool'], + 'MongoDate::__construct' => ['void', 'second='=>'int', 'usecond='=>'int'], + 'MongoDate::__toString' => ['string'], + 'MongoDate::toDateTime' => ['DateTime'], + 'MongoDeleteBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], + 'MongoException::__clone' => ['void'], + 'MongoException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'MongoException::__toString' => ['string'], + 'MongoException::__wakeup' => ['void'], + 'MongoException::getCode' => ['int'], + 'MongoException::getFile' => ['string'], + 'MongoException::getLine' => ['int'], + 'MongoException::getMessage' => ['string'], + 'MongoException::getPrevious' => ['Exception|Throwable'], + 'MongoException::getTrace' => ['list\',args?:array}>'], + 'MongoException::getTraceAsString' => ['string'], + 'MongoGridFS::__construct' => ['void', 'db'=>'MongoDB', 'prefix='=>'string', 'chunks='=>'mixed'], + 'MongoGridFS::__get' => ['MongoCollection', 'name'=>'string'], + 'MongoGridFS::__toString' => ['string'], + 'MongoGridFS::aggregate' => ['array', 'pipeline'=>'array', 'op'=>'array', 'pipelineOperators'=>'array'], + 'MongoGridFS::aggregateCursor' => ['MongoCommandCursor', 'pipeline'=>'array', 'options'=>'array'], + 'MongoGridFS::batchInsert' => ['mixed', 'a'=>'array', 'options='=>'array'], + 'MongoGridFS::count' => ['int', 'query='=>'stdClass|array'], + 'MongoGridFS::createDBRef' => ['array', 'a'=>'array'], + 'MongoGridFS::createIndex' => ['array', 'keys'=>'array', 'options='=>'array'], + 'MongoGridFS::delete' => ['bool', 'id'=>'mixed'], + 'MongoGridFS::deleteIndex' => ['array', 'keys'=>'array|string'], + 'MongoGridFS::deleteIndexes' => ['array'], + 'MongoGridFS::distinct' => ['array|bool', 'key'=>'string', 'query='=>'?array'], + 'MongoGridFS::drop' => ['array'], + 'MongoGridFS::ensureIndex' => ['bool', 'keys'=>'array', 'options='=>'array'], + 'MongoGridFS::find' => ['MongoGridFSCursor', 'query='=>'array', 'fields='=>'array'], + 'MongoGridFS::findAndModify' => ['array', 'query'=>'array', 'update='=>'?array', 'fields='=>'?array', 'options='=>'?array'], + 'MongoGridFS::findOne' => ['?MongoGridFSFile', 'query='=>'mixed', 'fields='=>'mixed'], + 'MongoGridFS::get' => ['?MongoGridFSFile', 'id'=>'mixed'], + 'MongoGridFS::getDBRef' => ['array', 'ref'=>'array'], + 'MongoGridFS::getIndexInfo' => ['array'], + 'MongoGridFS::getName' => ['string'], + 'MongoGridFS::getReadPreference' => ['array'], + 'MongoGridFS::getSlaveOkay' => ['bool'], + 'MongoGridFS::group' => ['array', 'keys'=>'mixed', 'initial'=>'array', 'reduce'=>'MongoCode', 'condition='=>'array'], + 'MongoGridFS::insert' => ['array|bool', 'a'=>'array|object', 'options='=>'array'], + 'MongoGridFS::put' => ['mixed', 'filename'=>'string', 'extra='=>'array'], + 'MongoGridFS::remove' => ['bool', 'criteria='=>'array', 'options='=>'array'], + 'MongoGridFS::save' => ['array|bool', 'a'=>'array|object', 'options='=>'array'], + 'MongoGridFS::setReadPreference' => ['bool', 'read_preference'=>'string', 'tags'=>'array'], + 'MongoGridFS::setSlaveOkay' => ['bool', 'ok='=>'bool'], + 'MongoGridFS::storeBytes' => ['mixed', 'bytes'=>'string', 'extra='=>'array', 'options='=>'array'], + 'MongoGridFS::storeFile' => ['mixed', 'filename'=>'string', 'extra='=>'array', 'options='=>'array'], + 'MongoGridFS::storeUpload' => ['mixed', 'name'=>'string', 'filename='=>'string'], + 'MongoGridFS::toIndexString' => ['string', 'keys'=>'mixed'], + 'MongoGridFS::update' => ['bool', 'criteria'=>'array', 'newobj'=>'array', 'options='=>'array'], + 'MongoGridFS::validate' => ['array', 'scan_data='=>'bool'], + 'MongoGridFSCursor::__construct' => ['void', 'gridfs'=>'MongoGridFS', 'connection'=>'resource', 'ns'=>'string', 'query'=>'array', 'fields'=>'array'], + 'MongoGridFSCursor::addOption' => ['MongoCursor', 'key'=>'string', 'value'=>'mixed'], + 'MongoGridFSCursor::awaitData' => ['MongoCursor', 'wait='=>'bool'], + 'MongoGridFSCursor::batchSize' => ['MongoCursor', 'batchSize'=>'int'], + 'MongoGridFSCursor::count' => ['int', 'all='=>'bool'], + 'MongoGridFSCursor::current' => ['MongoGridFSFile'], + 'MongoGridFSCursor::dead' => ['bool'], + 'MongoGridFSCursor::doQuery' => ['void'], + 'MongoGridFSCursor::explain' => ['array'], + 'MongoGridFSCursor::fields' => ['MongoCursor', 'f'=>'array'], + 'MongoGridFSCursor::getNext' => ['MongoGridFSFile'], + 'MongoGridFSCursor::getReadPreference' => ['array'], + 'MongoGridFSCursor::hasNext' => ['bool'], + 'MongoGridFSCursor::hint' => ['MongoCursor', 'key_pattern'=>'mixed'], + 'MongoGridFSCursor::immortal' => ['MongoCursor', 'liveForever='=>'bool'], + 'MongoGridFSCursor::info' => ['array'], + 'MongoGridFSCursor::key' => ['string'], + 'MongoGridFSCursor::limit' => ['MongoCursor', 'num'=>'int'], + 'MongoGridFSCursor::maxTimeMS' => ['MongoCursor', 'ms'=>'int'], + 'MongoGridFSCursor::next' => ['void'], + 'MongoGridFSCursor::partial' => ['MongoCursor', 'okay='=>'bool'], + 'MongoGridFSCursor::reset' => ['void'], + 'MongoGridFSCursor::rewind' => ['void'], + 'MongoGridFSCursor::setFlag' => ['MongoCursor', 'flag'=>'int', 'set='=>'bool'], + 'MongoGridFSCursor::setReadPreference' => ['MongoCursor', 'read_preference'=>'string', 'tags'=>'array'], + 'MongoGridFSCursor::skip' => ['MongoCursor', 'num'=>'int'], + 'MongoGridFSCursor::slaveOkay' => ['MongoCursor', 'okay='=>'bool'], + 'MongoGridFSCursor::snapshot' => ['MongoCursor'], + 'MongoGridFSCursor::sort' => ['MongoCursor', 'fields'=>'array'], + 'MongoGridFSCursor::tailable' => ['MongoCursor', 'tail='=>'bool'], + 'MongoGridFSCursor::timeout' => ['MongoCursor', 'ms'=>'int'], + 'MongoGridFSCursor::valid' => ['bool'], + 'MongoGridFSFile::getBytes' => ['string'], + 'MongoGridFSFile::getFilename' => ['string'], + 'MongoGridFSFile::getResource' => ['resource'], + 'MongoGridFSFile::getSize' => ['int'], + 'MongoGridFSFile::write' => ['int', 'filename='=>'string'], + 'MongoGridfsFile::__construct' => ['void', 'gridfs'=>'MongoGridFS', 'file'=>'array'], + 'MongoId::__construct' => ['void', 'id='=>'string|MongoId'], + 'MongoId::__set_state' => ['MongoId', 'props'=>'array'], + 'MongoId::__toString' => ['string'], + 'MongoId::getHostname' => ['string'], + 'MongoId::getInc' => ['int'], + 'MongoId::getPID' => ['int'], + 'MongoId::getTimestamp' => ['int'], + 'MongoId::isValid' => ['bool', 'value'=>'mixed'], + 'MongoInsertBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], + 'MongoInt32::__construct' => ['void', 'value'=>'string'], + 'MongoInt32::__toString' => ['string'], + 'MongoInt64::__construct' => ['void', 'value'=>'string'], + 'MongoInt64::__toString' => ['string'], + 'MongoLog::getCallback' => ['callable'], + 'MongoLog::getLevel' => ['int'], + 'MongoLog::getModule' => ['int'], + 'MongoLog::setCallback' => ['void', 'log_function'=>'callable'], + 'MongoLog::setLevel' => ['void', 'level'=>'int'], + 'MongoLog::setModule' => ['void', 'module'=>'int'], + 'MongoPool::getSize' => ['int'], + 'MongoPool::info' => ['array'], + 'MongoPool::setSize' => ['bool', 'size'=>'int'], + 'MongoRegex::__construct' => ['void', 'regex'=>'string'], + 'MongoRegex::__toString' => ['string'], + 'MongoResultException::__clone' => ['void'], + 'MongoResultException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'MongoResultException::__toString' => ['string'], + 'MongoResultException::__wakeup' => ['void'], + 'MongoResultException::getCode' => ['int'], + 'MongoResultException::getDocument' => ['array'], + 'MongoResultException::getFile' => ['string'], + 'MongoResultException::getLine' => ['int'], + 'MongoResultException::getMessage' => ['string'], + 'MongoResultException::getPrevious' => ['Exception|Throwable'], + 'MongoResultException::getTrace' => ['list\',args?:array}>'], + 'MongoResultException::getTraceAsString' => ['string'], + 'MongoTimestamp::__construct' => ['void', 'second='=>'int', 'inc='=>'int'], + 'MongoTimestamp::__toString' => ['string'], + 'MongoUpdateBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'write_options='=>'array'], + 'MongoUpdateBatch::add' => ['bool', 'item'=>'array'], + 'MongoUpdateBatch::execute' => ['array', 'write_options'=>'array'], + 'MongoWriteBatch::__construct' => ['void', 'collection'=>'MongoCollection', 'batch_type'=>'string', 'write_options'=>'array'], + 'MongoWriteBatch::add' => ['bool', 'item'=>'array'], + 'MongoWriteBatch::execute' => ['array', 'write_options'=>'array'], + 'MongoWriteConcernException::__clone' => ['void'], + 'MongoWriteConcernException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'MongoWriteConcernException::__toString' => ['string'], + 'MongoWriteConcernException::__wakeup' => ['void'], + 'MongoWriteConcernException::getCode' => ['int'], + 'MongoWriteConcernException::getDocument' => ['array'], + 'MongoWriteConcernException::getFile' => ['string'], + 'MongoWriteConcernException::getLine' => ['int'], + 'MongoWriteConcernException::getMessage' => ['string'], + 'MongoWriteConcernException::getPrevious' => ['Exception|Throwable'], + 'MongoWriteConcernException::getTrace' => ['list\',args?:array}>'], + 'MongoWriteConcernException::getTraceAsString' => ['string'], + 'MultipleIterator::__construct' => ['void', 'flags='=>'int'], + 'MultipleIterator::attachIterator' => ['void', 'iterator'=>'Iterator', 'infos='=>'string'], + 'MultipleIterator::containsIterator' => ['bool', 'iterator'=>'Iterator'], + 'MultipleIterator::countIterators' => ['int'], + 'MultipleIterator::current' => ['array|false'], + 'MultipleIterator::detachIterator' => ['void', 'iterator'=>'Iterator'], + 'MultipleIterator::getFlags' => ['int'], + 'MultipleIterator::key' => ['array'], + 'MultipleIterator::next' => ['void'], + 'MultipleIterator::rewind' => ['void'], + 'MultipleIterator::setFlags' => ['void', 'flags'=>'int'], + 'MultipleIterator::valid' => ['bool'], + 'Mutex::create' => ['long', 'lock='=>'bool'], + 'Mutex::destroy' => ['bool', 'mutex'=>'long'], + 'Mutex::lock' => ['bool', 'mutex'=>'long'], + 'Mutex::trylock' => ['bool', 'mutex'=>'long'], + 'Mutex::unlock' => ['bool', 'mutex'=>'long', 'destroy='=>'bool'], + 'MysqlndUhConnection::__construct' => ['void'], + 'MysqlndUhConnection::changeUser' => ['bool', 'connection'=>'mysqlnd_connection', 'user'=>'string', 'password'=>'string', 'database'=>'string', 'silent'=>'bool', 'passwd_len'=>'int'], + 'MysqlndUhConnection::charsetName' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::close' => ['bool', 'connection'=>'mysqlnd_connection', 'close_type'=>'int'], + 'MysqlndUhConnection::connect' => ['bool', 'connection'=>'mysqlnd_connection', 'host'=>'string', 'use'=>'string', 'password'=>'string', 'database'=>'string', 'port'=>'int', 'socket'=>'string', 'mysql_flags'=>'int'], + 'MysqlndUhConnection::endPSession' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::escapeString' => ['string', 'connection'=>'mysqlnd_connection', 'escape_string'=>'string'], + 'MysqlndUhConnection::getAffectedRows' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getErrorNumber' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getErrorString' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getFieldCount' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getHostInformation' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getLastInsertId' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getLastMessage' => ['void', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getProtocolInformation' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getServerInformation' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getServerStatistics' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getServerVersion' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getSqlstate' => ['string', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getStatistics' => ['array', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getThreadId' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::getWarningCount' => ['int', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::init' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::killConnection' => ['bool', 'connection'=>'mysqlnd_connection', 'pid'=>'int'], + 'MysqlndUhConnection::listFields' => ['array', 'connection'=>'mysqlnd_connection', 'table'=>'string', 'achtung_wild'=>'string'], + 'MysqlndUhConnection::listMethod' => ['void', 'connection'=>'mysqlnd_connection', 'query'=>'string', 'achtung_wild'=>'string', 'par1'=>'string'], + 'MysqlndUhConnection::moreResults' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::nextResult' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::ping' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::query' => ['bool', 'connection'=>'mysqlnd_connection', 'query'=>'string'], + 'MysqlndUhConnection::queryReadResultsetHeader' => ['bool', 'connection'=>'mysqlnd_connection', 'mysqlnd_stmt'=>'mysqlnd_statement'], + 'MysqlndUhConnection::reapQuery' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::refreshServer' => ['bool', 'connection'=>'mysqlnd_connection', 'options'=>'int'], + 'MysqlndUhConnection::restartPSession' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::selectDb' => ['bool', 'connection'=>'mysqlnd_connection', 'database'=>'string'], + 'MysqlndUhConnection::sendClose' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::sendQuery' => ['bool', 'connection'=>'mysqlnd_connection', 'query'=>'string'], + 'MysqlndUhConnection::serverDumpDebugInformation' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::setAutocommit' => ['bool', 'connection'=>'mysqlnd_connection', 'mode'=>'int'], + 'MysqlndUhConnection::setCharset' => ['bool', 'connection'=>'mysqlnd_connection', 'charset'=>'string'], + 'MysqlndUhConnection::setClientOption' => ['bool', 'connection'=>'mysqlnd_connection', 'option'=>'int', 'value'=>'int'], + 'MysqlndUhConnection::setServerOption' => ['void', 'connection'=>'mysqlnd_connection', 'option'=>'int'], + 'MysqlndUhConnection::shutdownServer' => ['void', 'MYSQLND_UH_RES_MYSQLND_NAME'=>'string', 'level'=>'string'], + 'MysqlndUhConnection::simpleCommand' => ['bool', 'connection'=>'mysqlnd_connection', 'command'=>'int', 'arg'=>'string', 'ok_packet'=>'int', 'silent'=>'bool', 'ignore_upsert_status'=>'bool'], + 'MysqlndUhConnection::simpleCommandHandleResponse' => ['bool', 'connection'=>'mysqlnd_connection', 'ok_packet'=>'int', 'silent'=>'bool', 'command'=>'int', 'ignore_upsert_status'=>'bool'], + 'MysqlndUhConnection::sslSet' => ['bool', 'connection'=>'mysqlnd_connection', 'key'=>'string', 'cert'=>'string', 'ca'=>'string', 'capath'=>'string', 'cipher'=>'string'], + 'MysqlndUhConnection::stmtInit' => ['resource', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::storeResult' => ['resource', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::txCommit' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::txRollback' => ['bool', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhConnection::useResult' => ['resource', 'connection'=>'mysqlnd_connection'], + 'MysqlndUhPreparedStatement::__construct' => ['void'], + 'MysqlndUhPreparedStatement::execute' => ['bool', 'statement'=>'mysqlnd_prepared_statement'], + 'MysqlndUhPreparedStatement::prepare' => ['bool', 'statement'=>'mysqlnd_prepared_statement', 'query'=>'string'], + 'NoRewindIterator::__construct' => ['void', 'iterator'=>'Iterator'], + 'NoRewindIterator::current' => ['mixed'], + 'NoRewindIterator::getInnerIterator' => ['Iterator'], + 'NoRewindIterator::key' => ['mixed'], + 'NoRewindIterator::next' => ['void'], + 'NoRewindIterator::rewind' => ['void'], + 'NoRewindIterator::valid' => ['bool'], + 'Normalizer::isNormalized' => ['bool', 'string'=>'string', 'form='=>'int'], + 'Normalizer::normalize' => ['string|false', 'string'=>'string', 'form='=>'int'], + 'NumberFormatter::__construct' => ['void', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'NumberFormatter::create' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'NumberFormatter::format' => ['string|false', 'num'=>'', 'type='=>'int'], + 'NumberFormatter::formatCurrency' => ['string|false', 'num'=>'float', 'currency'=>'string'], + 'NumberFormatter::getAttribute' => ['int|false', 'attr'=>'int'], + 'NumberFormatter::getErrorCode' => ['int'], + 'NumberFormatter::getErrorMessage' => ['string'], + 'NumberFormatter::getLocale' => ['string', 'type='=>'int'], + 'NumberFormatter::getPattern' => ['string|false'], + 'NumberFormatter::getSymbol' => ['string|false', 'attr'=>'int'], + 'NumberFormatter::getTextAttribute' => ['string|false', 'attr'=>'int'], + 'NumberFormatter::parse' => ['float|false', 'string'=>'string', 'type='=>'int', '&rw_position='=>'int'], + 'NumberFormatter::parseCurrency' => ['float|false', 'string'=>'string', '&w_currency'=>'string', '&rw_position='=>'int'], + 'NumberFormatter::setAttribute' => ['bool', 'attr'=>'int', 'value'=>''], + 'NumberFormatter::setPattern' => ['bool', 'pattern'=>'string'], + 'NumberFormatter::setSymbol' => ['bool', 'attr'=>'int', 'symbol'=>'string'], + 'NumberFormatter::setTextAttribute' => ['bool', 'attr'=>'int', 'value'=>'string'], + 'OAuth::__construct' => ['void', 'consumer_key'=>'string', 'consumer_secret'=>'string', 'signature_method='=>'string', 'auth_type='=>'int'], + 'OAuth::disableDebug' => ['bool'], + 'OAuth::disableRedirects' => ['bool'], + 'OAuth::disableSSLChecks' => ['bool'], + 'OAuth::enableDebug' => ['bool'], + 'OAuth::enableRedirects' => ['bool'], + 'OAuth::enableSSLChecks' => ['bool'], + 'OAuth::fetch' => ['mixed', 'protected_resource_url'=>'string', 'extra_parameters='=>'array', 'http_method='=>'string', 'http_headers='=>'array'], + 'OAuth::generateSignature' => ['string', 'http_method'=>'string', 'url'=>'string', 'extra_parameters='=>'mixed'], + 'OAuth::getAccessToken' => ['array|false', 'access_token_url'=>'string', 'auth_session_handle='=>'string', 'verifier_token='=>'string', 'http_method='=>'string'], + 'OAuth::getCAPath' => ['array'], + 'OAuth::getLastResponse' => ['string'], + 'OAuth::getLastResponseHeaders' => ['string|false'], + 'OAuth::getLastResponseInfo' => ['array'], + 'OAuth::getRequestHeader' => ['string|false', 'http_method'=>'string', 'url'=>'string', 'extra_parameters='=>'mixed'], + 'OAuth::getRequestToken' => ['array|false', 'request_token_url'=>'string', 'callback_url='=>'string', 'http_method='=>'string'], + 'OAuth::setAuthType' => ['bool', 'auth_type'=>'int'], + 'OAuth::setCAPath' => ['mixed', 'ca_path='=>'string', 'ca_info='=>'string'], + 'OAuth::setNonce' => ['mixed', 'nonce'=>'string'], + 'OAuth::setRSACertificate' => ['mixed', 'cert'=>'string'], + 'OAuth::setRequestEngine' => ['void', 'reqengine'=>'int'], + 'OAuth::setSSLChecks' => ['bool', 'sslcheck'=>'int'], + 'OAuth::setTimeout' => ['void', 'timeout'=>'int'], + 'OAuth::setTimestamp' => ['mixed', 'timestamp'=>'string'], + 'OAuth::setToken' => ['bool', 'token'=>'string', 'token_secret'=>'string'], + 'OAuth::setVersion' => ['bool', 'version'=>'string'], + 'OAuthProvider::__construct' => ['void', 'params_array='=>'array'], + 'OAuthProvider::addRequiredParameter' => ['bool', 'req_params'=>'string'], + 'OAuthProvider::callTimestampNonceHandler' => ['void'], + 'OAuthProvider::callconsumerHandler' => ['void'], + 'OAuthProvider::calltokenHandler' => ['void'], + 'OAuthProvider::checkOAuthRequest' => ['void', 'uri='=>'string', 'method='=>'string'], + 'OAuthProvider::consumerHandler' => ['void', 'callback_function'=>'callable'], + 'OAuthProvider::generateToken' => ['string', 'size'=>'int', 'strong='=>'bool'], + 'OAuthProvider::is2LeggedEndpoint' => ['void', 'params_array'=>'mixed'], + 'OAuthProvider::isRequestTokenEndpoint' => ['void', 'will_issue_request_token'=>'bool'], + 'OAuthProvider::removeRequiredParameter' => ['bool', 'req_params'=>'string'], + 'OAuthProvider::reportProblem' => ['string', 'oauthexception'=>'string', 'send_headers='=>'bool'], + 'OAuthProvider::setParam' => ['bool', 'param_key'=>'string', 'param_val='=>'mixed'], + 'OAuthProvider::setRequestTokenPath' => ['bool', 'path'=>'string'], + 'OAuthProvider::timestampNonceHandler' => ['void', 'callback_function'=>'callable'], + 'OAuthProvider::tokenHandler' => ['void', 'callback_function'=>'callable'], + 'OCICollection::append' => ['bool', 'value'=>'mixed'], + 'OCICollection::assign' => ['bool', 'from'=>'OCI_Collection'], + 'OCICollection::assignElem' => ['bool', 'index'=>'int', 'value'=>'mixed'], + 'OCICollection::free' => ['bool'], + 'OCICollection::getElem' => ['mixed', 'index'=>'int'], + 'OCICollection::max' => ['int|false'], + 'OCICollection::size' => ['int|false'], + 'OCICollection::trim' => ['bool', 'num'=>'int'], + 'OCILob::append' => ['bool', 'lob_from'=>'OCILob'], + 'OCILob::close' => ['bool'], + 'OCILob::eof' => ['bool'], + 'OCILob::erase' => ['int|false', 'offset='=>'int', 'length='=>'int'], + 'OCILob::export' => ['bool', 'filename'=>'string', 'start='=>'int', 'length='=>'int'], + 'OCILob::flush' => ['bool', 'flag='=>'int'], + 'OCILob::free' => ['bool'], + 'OCILob::getbuffering' => ['bool'], + 'OCILob::import' => ['bool', 'filename'=>'string'], + 'OCILob::load' => ['string|false'], + 'OCILob::read' => ['string|false', 'length'=>'int'], + 'OCILob::rewind' => ['bool'], + 'OCILob::save' => ['bool', 'data'=>'string', 'offset='=>'int'], + 'OCILob::savefile' => ['bool', 'filename'=>''], + 'OCILob::seek' => ['bool', 'offset'=>'int', 'whence='=>'int'], + 'OCILob::setbuffering' => ['bool', 'on_off'=>'bool'], + 'OCILob::size' => ['int|false'], + 'OCILob::tell' => ['int|false'], + 'OCILob::truncate' => ['bool', 'length='=>'int'], + 'OCILob::write' => ['int|false', 'data'=>'string', 'length='=>'int'], + 'OCILob::writeTemporary' => ['bool', 'data'=>'string', 'lob_type='=>'int'], + 'OCILob::writetofile' => ['bool', 'filename'=>'', 'start'=>'', 'length'=>''], + 'OutOfBoundsException::__clone' => ['void'], + 'OutOfBoundsException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'OutOfBoundsException::__toString' => ['string'], + 'OutOfBoundsException::getCode' => ['int'], + 'OutOfBoundsException::getFile' => ['string'], + 'OutOfBoundsException::getLine' => ['int'], + 'OutOfBoundsException::getMessage' => ['string'], + 'OutOfBoundsException::getPrevious' => ['?Throwable'], + 'OutOfBoundsException::getTrace' => ['list\',args?:array}>'], + 'OutOfBoundsException::getTraceAsString' => ['string'], + 'OutOfRangeException::__clone' => ['void'], + 'OutOfRangeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'OutOfRangeException::__toString' => ['string'], + 'OutOfRangeException::getCode' => ['int'], + 'OutOfRangeException::getFile' => ['string'], + 'OutOfRangeException::getLine' => ['int'], + 'OutOfRangeException::getMessage' => ['string'], + 'OutOfRangeException::getPrevious' => ['?Throwable'], + 'OutOfRangeException::getTrace' => ['list\',args?:array}>'], + 'OutOfRangeException::getTraceAsString' => ['string'], + 'OuterIterator::current' => ['mixed'], + 'OuterIterator::getInnerIterator' => ['Iterator'], + 'OuterIterator::key' => ['int|string'], + 'OuterIterator::next' => ['void'], + 'OuterIterator::rewind' => ['void'], + 'OuterIterator::valid' => ['bool'], + 'OverflowException::__clone' => ['void'], + 'OverflowException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'OverflowException::__toString' => ['string'], + 'OverflowException::getCode' => ['int'], + 'OverflowException::getFile' => ['string'], + 'OverflowException::getLine' => ['int'], + 'OverflowException::getMessage' => ['string'], + 'OverflowException::getPrevious' => ['?Throwable'], + 'OverflowException::getTrace' => ['list\',args?:array}>'], + 'OverflowException::getTraceAsString' => ['string'], + 'OwsrequestObj::__construct' => ['void'], + 'OwsrequestObj::addParameter' => ['int', 'name'=>'string', 'value'=>'string'], + 'OwsrequestObj::getName' => ['string', 'index'=>'int'], + 'OwsrequestObj::getValue' => ['string', 'index'=>'int'], + 'OwsrequestObj::getValueByName' => ['string', 'name'=>'string'], + 'OwsrequestObj::loadParams' => ['int'], + 'OwsrequestObj::setParameter' => ['int', 'name'=>'string', 'value'=>'string'], + 'PDF_activate_item' => ['bool', 'pdfdoc'=>'resource', 'id'=>'int'], + 'PDF_add_launchlink' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], + 'PDF_add_locallink' => ['bool', 'pdfdoc'=>'resource', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'page'=>'int', 'dest'=>'string'], + 'PDF_add_nameddest' => ['bool', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], + 'PDF_add_note' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], + 'PDF_add_pdflink' => ['bool', 'pdfdoc'=>'resource', 'bottom_left_x'=>'float', 'bottom_left_y'=>'float', 'up_right_x'=>'float', 'up_right_y'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], + 'PDF_add_table_cell' => ['int', 'pdfdoc'=>'resource', 'table'=>'int', 'column'=>'int', 'row'=>'int', 'text'=>'string', 'optlist'=>'string'], + 'PDF_add_textflow' => ['int', 'pdfdoc'=>'resource', 'textflow'=>'int', 'text'=>'string', 'optlist'=>'string'], + 'PDF_add_thumbnail' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int'], + 'PDF_add_weblink' => ['bool', 'pdfdoc'=>'resource', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'url'=>'string'], + 'PDF_arc' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'PDF_arcn' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'PDF_attach_file' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'description'=>'string', 'author'=>'string', 'mimetype'=>'string', 'icon'=>'string'], + 'PDF_begin_document' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string'], + 'PDF_begin_font' => ['bool', 'pdfdoc'=>'resource', 'filename'=>'string', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float', 'optlist'=>'string'], + 'PDF_begin_glyph' => ['bool', 'pdfdoc'=>'resource', 'glyphname'=>'string', 'wx'=>'float', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float'], + 'PDF_begin_item' => ['int', 'pdfdoc'=>'resource', 'tag'=>'string', 'optlist'=>'string'], + 'PDF_begin_layer' => ['bool', 'pdfdoc'=>'resource', 'layer'=>'int'], + 'PDF_begin_page' => ['bool', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float'], + 'PDF_begin_page_ext' => ['bool', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], + 'PDF_begin_pattern' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], + 'PDF_begin_template' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float'], + 'PDF_begin_template_ext' => ['int', 'pdfdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], + 'PDF_circle' => ['bool', 'pdfdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'r'=>'float'], + 'PDF_clip' => ['bool', 'p'=>'resource'], + 'PDF_close' => ['bool', 'p'=>'resource'], + 'PDF_close_image' => ['bool', 'p'=>'resource', 'image'=>'int'], + 'PDF_close_pdi' => ['bool', 'p'=>'resource', 'doc'=>'int'], + 'PDF_close_pdi_page' => ['bool', 'p'=>'resource', 'page'=>'int'], + 'PDF_closepath' => ['bool', 'p'=>'resource'], + 'PDF_closepath_fill_stroke' => ['bool', 'p'=>'resource'], + 'PDF_closepath_stroke' => ['bool', 'p'=>'resource'], + 'PDF_concat' => ['bool', 'p'=>'resource', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], + 'PDF_continue_text' => ['bool', 'p'=>'resource', 'text'=>'string'], + 'PDF_create_3dview' => ['int', 'pdfdoc'=>'resource', 'username'=>'string', 'optlist'=>'string'], + 'PDF_create_action' => ['int', 'pdfdoc'=>'resource', 'type'=>'string', 'optlist'=>'string'], + 'PDF_create_annotation' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'type'=>'string', 'optlist'=>'string'], + 'PDF_create_bookmark' => ['int', 'pdfdoc'=>'resource', 'text'=>'string', 'optlist'=>'string'], + 'PDF_create_field' => ['bool', 'pdfdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'name'=>'string', 'type'=>'string', 'optlist'=>'string'], + 'PDF_create_fieldgroup' => ['bool', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], + 'PDF_create_gstate' => ['int', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_create_pvf' => ['bool', 'pdfdoc'=>'resource', 'filename'=>'string', 'data'=>'string', 'optlist'=>'string'], + 'PDF_create_textflow' => ['int', 'pdfdoc'=>'resource', 'text'=>'string', 'optlist'=>'string'], + 'PDF_curveto' => ['bool', 'p'=>'resource', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'PDF_define_layer' => ['int', 'pdfdoc'=>'resource', 'name'=>'string', 'optlist'=>'string'], + 'PDF_delete' => ['bool', 'pdfdoc'=>'resource'], + 'PDF_delete_pvf' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string'], + 'PDF_delete_table' => ['bool', 'pdfdoc'=>'resource', 'table'=>'int', 'optlist'=>'string'], + 'PDF_delete_textflow' => ['bool', 'pdfdoc'=>'resource', 'textflow'=>'int'], + 'PDF_encoding_set_char' => ['bool', 'pdfdoc'=>'resource', 'encoding'=>'string', 'slot'=>'int', 'glyphname'=>'string', 'uv'=>'int'], + 'PDF_end_document' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_end_font' => ['bool', 'pdfdoc'=>'resource'], + 'PDF_end_glyph' => ['bool', 'pdfdoc'=>'resource'], + 'PDF_end_item' => ['bool', 'pdfdoc'=>'resource', 'id'=>'int'], + 'PDF_end_layer' => ['bool', 'pdfdoc'=>'resource'], + 'PDF_end_page' => ['bool', 'p'=>'resource'], + 'PDF_end_page_ext' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_end_pattern' => ['bool', 'p'=>'resource'], + 'PDF_end_template' => ['bool', 'p'=>'resource'], + 'PDF_endpath' => ['bool', 'p'=>'resource'], + 'PDF_fill' => ['bool', 'p'=>'resource'], + 'PDF_fill_imageblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'image'=>'int', 'optlist'=>'string'], + 'PDF_fill_pdfblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'contents'=>'int', 'optlist'=>'string'], + 'PDF_fill_stroke' => ['bool', 'p'=>'resource'], + 'PDF_fill_textblock' => ['int', 'pdfdoc'=>'resource', 'page'=>'int', 'blockname'=>'string', 'text'=>'string', 'optlist'=>'string'], + 'PDF_findfont' => ['int', 'p'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'embed'=>'int'], + 'PDF_fit_image' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDF_fit_pdi_page' => ['bool', 'pdfdoc'=>'resource', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDF_fit_table' => ['string', 'pdfdoc'=>'resource', 'table'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], + 'PDF_fit_textflow' => ['string', 'pdfdoc'=>'resource', 'textflow'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], + 'PDF_fit_textline' => ['bool', 'pdfdoc'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDF_get_apiname' => ['string', 'pdfdoc'=>'resource'], + 'PDF_get_buffer' => ['string', 'p'=>'resource'], + 'PDF_get_errmsg' => ['string', 'pdfdoc'=>'resource'], + 'PDF_get_errnum' => ['int', 'pdfdoc'=>'resource'], + 'PDF_get_majorversion' => ['int'], + 'PDF_get_minorversion' => ['int'], + 'PDF_get_parameter' => ['string', 'p'=>'resource', 'key'=>'string', 'modifier'=>'float'], + 'PDF_get_pdi_parameter' => ['string', 'p'=>'resource', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], + 'PDF_get_pdi_value' => ['float', 'p'=>'resource', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], + 'PDF_get_value' => ['float', 'p'=>'resource', 'key'=>'string', 'modifier'=>'float'], + 'PDF_info_font' => ['float', 'pdfdoc'=>'resource', 'font'=>'int', 'keyword'=>'string', 'optlist'=>'string'], + 'PDF_info_matchbox' => ['float', 'pdfdoc'=>'resource', 'boxname'=>'string', 'num'=>'int', 'keyword'=>'string'], + 'PDF_info_table' => ['float', 'pdfdoc'=>'resource', 'table'=>'int', 'keyword'=>'string'], + 'PDF_info_textflow' => ['float', 'pdfdoc'=>'resource', 'textflow'=>'int', 'keyword'=>'string'], + 'PDF_info_textline' => ['float', 'pdfdoc'=>'resource', 'text'=>'string', 'keyword'=>'string', 'optlist'=>'string'], + 'PDF_initgraphics' => ['bool', 'p'=>'resource'], + 'PDF_lineto' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], + 'PDF_load_3ddata' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string'], + 'PDF_load_font' => ['int', 'pdfdoc'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'optlist'=>'string'], + 'PDF_load_iccprofile' => ['int', 'pdfdoc'=>'resource', 'profilename'=>'string', 'optlist'=>'string'], + 'PDF_load_image' => ['int', 'pdfdoc'=>'resource', 'imagetype'=>'string', 'filename'=>'string', 'optlist'=>'string'], + 'PDF_makespotcolor' => ['int', 'p'=>'resource', 'spotname'=>'string'], + 'PDF_moveto' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], + 'PDF_new' => ['resource'], + 'PDF_open_ccitt' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'bitreverse'=>'int', 'k'=>'int', 'blackls1'=>'int'], + 'PDF_open_file' => ['bool', 'p'=>'resource', 'filename'=>'string'], + 'PDF_open_image' => ['int', 'p'=>'resource', 'imagetype'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], + 'PDF_open_image_file' => ['int', 'p'=>'resource', 'imagetype'=>'string', 'filename'=>'string', 'stringparam'=>'string', 'intparam'=>'int'], + 'PDF_open_memory_image' => ['int', 'p'=>'resource', 'image'=>'resource'], + 'PDF_open_pdi' => ['int', 'pdfdoc'=>'resource', 'filename'=>'string', 'optlist'=>'string', 'length'=>'int'], + 'PDF_open_pdi_document' => ['int', 'p'=>'resource', 'filename'=>'string', 'optlist'=>'string'], + 'PDF_open_pdi_page' => ['int', 'p'=>'resource', 'doc'=>'int', 'pagenumber'=>'int', 'optlist'=>'string'], + 'PDF_pcos_get_number' => ['float', 'p'=>'resource', 'doc'=>'int', 'path'=>'string'], + 'PDF_pcos_get_stream' => ['string', 'p'=>'resource', 'doc'=>'int', 'optlist'=>'string', 'path'=>'string'], + 'PDF_pcos_get_string' => ['string', 'p'=>'resource', 'doc'=>'int', 'path'=>'string'], + 'PDF_place_image' => ['bool', 'pdfdoc'=>'resource', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], + 'PDF_place_pdi_page' => ['bool', 'pdfdoc'=>'resource', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'sx'=>'float', 'sy'=>'float'], + 'PDF_process_pdi' => ['int', 'pdfdoc'=>'resource', 'doc'=>'int', 'page'=>'int', 'optlist'=>'string'], + 'PDF_rect' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'PDF_restore' => ['bool', 'p'=>'resource'], + 'PDF_resume_page' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_rotate' => ['bool', 'p'=>'resource', 'phi'=>'float'], + 'PDF_save' => ['bool', 'p'=>'resource'], + 'PDF_scale' => ['bool', 'p'=>'resource', 'sx'=>'float', 'sy'=>'float'], + 'PDF_set_border_color' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDF_set_border_dash' => ['bool', 'pdfdoc'=>'resource', 'black'=>'float', 'white'=>'float'], + 'PDF_set_border_style' => ['bool', 'pdfdoc'=>'resource', 'style'=>'string', 'width'=>'float'], + 'PDF_set_gstate' => ['bool', 'pdfdoc'=>'resource', 'gstate'=>'int'], + 'PDF_set_info' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], + 'PDF_set_layer_dependency' => ['bool', 'pdfdoc'=>'resource', 'type'=>'string', 'optlist'=>'string'], + 'PDF_set_parameter' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], + 'PDF_set_text_pos' => ['bool', 'p'=>'resource', 'x'=>'float', 'y'=>'float'], + 'PDF_set_value' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'float'], + 'PDF_setcolor' => ['bool', 'p'=>'resource', 'fstype'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], + 'PDF_setdash' => ['bool', 'pdfdoc'=>'resource', 'b'=>'float', 'w'=>'float'], + 'PDF_setdashpattern' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_setflat' => ['bool', 'pdfdoc'=>'resource', 'flatness'=>'float'], + 'PDF_setfont' => ['bool', 'pdfdoc'=>'resource', 'font'=>'int', 'fontsize'=>'float'], + 'PDF_setgray' => ['bool', 'p'=>'resource', 'g'=>'float'], + 'PDF_setgray_fill' => ['bool', 'p'=>'resource', 'g'=>'float'], + 'PDF_setgray_stroke' => ['bool', 'p'=>'resource', 'g'=>'float'], + 'PDF_setlinecap' => ['bool', 'p'=>'resource', 'linecap'=>'int'], + 'PDF_setlinejoin' => ['bool', 'p'=>'resource', 'value'=>'int'], + 'PDF_setlinewidth' => ['bool', 'p'=>'resource', 'width'=>'float'], + 'PDF_setmatrix' => ['bool', 'p'=>'resource', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], + 'PDF_setmiterlimit' => ['bool', 'pdfdoc'=>'resource', 'miter'=>'float'], + 'PDF_setrgbcolor' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDF_setrgbcolor_fill' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDF_setrgbcolor_stroke' => ['bool', 'p'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDF_shading' => ['int', 'pdfdoc'=>'resource', 'shtype'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], + 'PDF_shading_pattern' => ['int', 'pdfdoc'=>'resource', 'shading'=>'int', 'optlist'=>'string'], + 'PDF_shfill' => ['bool', 'pdfdoc'=>'resource', 'shading'=>'int'], + 'PDF_show' => ['bool', 'pdfdoc'=>'resource', 'text'=>'string'], + 'PDF_show_boxed' => ['int', 'p'=>'resource', 'text'=>'string', 'left'=>'float', 'top'=>'float', 'width'=>'float', 'height'=>'float', 'mode'=>'string', 'feature'=>'string'], + 'PDF_show_xy' => ['bool', 'p'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float'], + 'PDF_skew' => ['bool', 'p'=>'resource', 'alpha'=>'float', 'beta'=>'float'], + 'PDF_stringwidth' => ['float', 'p'=>'resource', 'text'=>'string', 'font'=>'int', 'fontsize'=>'float'], + 'PDF_stroke' => ['bool', 'p'=>'resource'], + 'PDF_suspend_page' => ['bool', 'pdfdoc'=>'resource', 'optlist'=>'string'], + 'PDF_translate' => ['bool', 'p'=>'resource', 'tx'=>'float', 'ty'=>'float'], + 'PDF_utf16_to_utf8' => ['string', 'pdfdoc'=>'resource', 'utf16string'=>'string'], + 'PDF_utf32_to_utf16' => ['string', 'pdfdoc'=>'resource', 'utf32string'=>'string', 'ordering'=>'string'], + 'PDF_utf8_to_utf16' => ['string', 'pdfdoc'=>'resource', 'utf8string'=>'string', 'ordering'=>'string'], + 'PDFlib::activate_item' => ['bool', 'id'=>''], + 'PDFlib::add_launchlink' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], + 'PDFlib::add_locallink' => ['bool', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'page'=>'int', 'dest'=>'string'], + 'PDFlib::add_nameddest' => ['bool', 'name'=>'string', 'optlist'=>'string'], + 'PDFlib::add_note' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], + 'PDFlib::add_pdflink' => ['bool', 'bottom_left_x'=>'float', 'bottom_left_y'=>'float', 'up_right_x'=>'float', 'up_right_y'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], + 'PDFlib::add_table_cell' => ['int', 'table'=>'int', 'column'=>'int', 'row'=>'int', 'text'=>'string', 'optlist'=>'string'], + 'PDFlib::add_textflow' => ['int', 'textflow'=>'int', 'text'=>'string', 'optlist'=>'string'], + 'PDFlib::add_thumbnail' => ['bool', 'image'=>'int'], + 'PDFlib::add_weblink' => ['bool', 'lowerleftx'=>'float', 'lowerlefty'=>'float', 'upperrightx'=>'float', 'upperrighty'=>'float', 'url'=>'string'], + 'PDFlib::arc' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'PDFlib::arcn' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'PDFlib::attach_file' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'description'=>'string', 'author'=>'string', 'mimetype'=>'string', 'icon'=>'string'], + 'PDFlib::begin_document' => ['int', 'filename'=>'string', 'optlist'=>'string'], + 'PDFlib::begin_font' => ['bool', 'filename'=>'string', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float', 'optlist'=>'string'], + 'PDFlib::begin_glyph' => ['bool', 'glyphname'=>'string', 'wx'=>'float', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float'], + 'PDFlib::begin_item' => ['int', 'tag'=>'string', 'optlist'=>'string'], + 'PDFlib::begin_layer' => ['bool', 'layer'=>'int'], + 'PDFlib::begin_page' => ['bool', 'width'=>'float', 'height'=>'float'], + 'PDFlib::begin_page_ext' => ['bool', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], + 'PDFlib::begin_pattern' => ['int', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], + 'PDFlib::begin_template' => ['int', 'width'=>'float', 'height'=>'float'], + 'PDFlib::begin_template_ext' => ['int', 'width'=>'float', 'height'=>'float', 'optlist'=>'string'], + 'PDFlib::circle' => ['bool', 'x'=>'float', 'y'=>'float', 'r'=>'float'], + 'PDFlib::clip' => ['bool'], + 'PDFlib::close' => ['bool'], + 'PDFlib::close_image' => ['bool', 'image'=>'int'], + 'PDFlib::close_pdi' => ['bool', 'doc'=>'int'], + 'PDFlib::close_pdi_page' => ['bool', 'page'=>'int'], + 'PDFlib::closepath' => ['bool'], + 'PDFlib::closepath_fill_stroke' => ['bool'], + 'PDFlib::closepath_stroke' => ['bool'], + 'PDFlib::concat' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], + 'PDFlib::continue_text' => ['bool', 'text'=>'string'], + 'PDFlib::create_3dview' => ['int', 'username'=>'string', 'optlist'=>'string'], + 'PDFlib::create_action' => ['int', 'type'=>'string', 'optlist'=>'string'], + 'PDFlib::create_annotation' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'type'=>'string', 'optlist'=>'string'], + 'PDFlib::create_bookmark' => ['int', 'text'=>'string', 'optlist'=>'string'], + 'PDFlib::create_field' => ['bool', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'name'=>'string', 'type'=>'string', 'optlist'=>'string'], + 'PDFlib::create_fieldgroup' => ['bool', 'name'=>'string', 'optlist'=>'string'], + 'PDFlib::create_gstate' => ['int', 'optlist'=>'string'], + 'PDFlib::create_pvf' => ['bool', 'filename'=>'string', 'data'=>'string', 'optlist'=>'string'], + 'PDFlib::create_textflow' => ['int', 'text'=>'string', 'optlist'=>'string'], + 'PDFlib::curveto' => ['bool', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'PDFlib::define_layer' => ['int', 'name'=>'string', 'optlist'=>'string'], + 'PDFlib::delete' => ['bool'], + 'PDFlib::delete_pvf' => ['int', 'filename'=>'string'], + 'PDFlib::delete_table' => ['bool', 'table'=>'int', 'optlist'=>'string'], + 'PDFlib::delete_textflow' => ['bool', 'textflow'=>'int'], + 'PDFlib::encoding_set_char' => ['bool', 'encoding'=>'string', 'slot'=>'int', 'glyphname'=>'string', 'uv'=>'int'], + 'PDFlib::end_document' => ['bool', 'optlist'=>'string'], + 'PDFlib::end_font' => ['bool'], + 'PDFlib::end_glyph' => ['bool'], + 'PDFlib::end_item' => ['bool', 'id'=>'int'], + 'PDFlib::end_layer' => ['bool'], + 'PDFlib::end_page' => ['bool', 'p'=>''], + 'PDFlib::end_page_ext' => ['bool', 'optlist'=>'string'], + 'PDFlib::end_pattern' => ['bool', 'p'=>''], + 'PDFlib::end_template' => ['bool', 'p'=>''], + 'PDFlib::endpath' => ['bool', 'p'=>''], + 'PDFlib::fill' => ['bool'], + 'PDFlib::fill_imageblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'image'=>'int', 'optlist'=>'string'], + 'PDFlib::fill_pdfblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'contents'=>'int', 'optlist'=>'string'], + 'PDFlib::fill_stroke' => ['bool'], + 'PDFlib::fill_textblock' => ['int', 'page'=>'int', 'blockname'=>'string', 'text'=>'string', 'optlist'=>'string'], + 'PDFlib::findfont' => ['int', 'fontname'=>'string', 'encoding'=>'string', 'embed'=>'int'], + 'PDFlib::fit_image' => ['bool', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDFlib::fit_pdi_page' => ['bool', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDFlib::fit_table' => ['string', 'table'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], + 'PDFlib::fit_textflow' => ['string', 'textflow'=>'int', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'optlist'=>'string'], + 'PDFlib::fit_textline' => ['bool', 'text'=>'string', 'x'=>'float', 'y'=>'float', 'optlist'=>'string'], + 'PDFlib::get_apiname' => ['string'], + 'PDFlib::get_buffer' => ['string'], + 'PDFlib::get_errmsg' => ['string'], + 'PDFlib::get_errnum' => ['int'], + 'PDFlib::get_majorversion' => ['int'], + 'PDFlib::get_minorversion' => ['int'], + 'PDFlib::get_parameter' => ['string', 'key'=>'string', 'modifier'=>'float'], + 'PDFlib::get_pdi_parameter' => ['string', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], + 'PDFlib::get_pdi_value' => ['float', 'key'=>'string', 'doc'=>'int', 'page'=>'int', 'reserved'=>'int'], + 'PDFlib::get_value' => ['float', 'key'=>'string', 'modifier'=>'float'], + 'PDFlib::info_font' => ['float', 'font'=>'int', 'keyword'=>'string', 'optlist'=>'string'], + 'PDFlib::info_matchbox' => ['float', 'boxname'=>'string', 'num'=>'int', 'keyword'=>'string'], + 'PDFlib::info_table' => ['float', 'table'=>'int', 'keyword'=>'string'], + 'PDFlib::info_textflow' => ['float', 'textflow'=>'int', 'keyword'=>'string'], + 'PDFlib::info_textline' => ['float', 'text'=>'string', 'keyword'=>'string', 'optlist'=>'string'], + 'PDFlib::initgraphics' => ['bool'], + 'PDFlib::lineto' => ['bool', 'x'=>'float', 'y'=>'float'], + 'PDFlib::load_3ddata' => ['int', 'filename'=>'string', 'optlist'=>'string'], + 'PDFlib::load_font' => ['int', 'fontname'=>'string', 'encoding'=>'string', 'optlist'=>'string'], + 'PDFlib::load_iccprofile' => ['int', 'profilename'=>'string', 'optlist'=>'string'], + 'PDFlib::load_image' => ['int', 'imagetype'=>'string', 'filename'=>'string', 'optlist'=>'string'], + 'PDFlib::makespotcolor' => ['int', 'spotname'=>'string'], + 'PDFlib::moveto' => ['bool', 'x'=>'float', 'y'=>'float'], + 'PDFlib::open_ccitt' => ['int', 'filename'=>'string', 'width'=>'int', 'height'=>'int', 'BitReverse'=>'int', 'k'=>'int', 'Blackls1'=>'int'], + 'PDFlib::open_file' => ['bool', 'filename'=>'string'], + 'PDFlib::open_image' => ['int', 'imagetype'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], + 'PDFlib::open_image_file' => ['int', 'imagetype'=>'string', 'filename'=>'string', 'stringparam'=>'string', 'intparam'=>'int'], + 'PDFlib::open_memory_image' => ['int', 'image'=>'resource'], + 'PDFlib::open_pdi' => ['int', 'filename'=>'string', 'optlist'=>'string', 'length'=>'int'], + 'PDFlib::open_pdi_document' => ['int', 'filename'=>'string', 'optlist'=>'string'], + 'PDFlib::open_pdi_page' => ['int', 'doc'=>'int', 'pagenumber'=>'int', 'optlist'=>'string'], + 'PDFlib::pcos_get_number' => ['float', 'doc'=>'int', 'path'=>'string'], + 'PDFlib::pcos_get_stream' => ['string', 'doc'=>'int', 'optlist'=>'string', 'path'=>'string'], + 'PDFlib::pcos_get_string' => ['string', 'doc'=>'int', 'path'=>'string'], + 'PDFlib::place_image' => ['bool', 'image'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], + 'PDFlib::place_pdi_page' => ['bool', 'page'=>'int', 'x'=>'float', 'y'=>'float', 'sx'=>'float', 'sy'=>'float'], + 'PDFlib::process_pdi' => ['int', 'doc'=>'int', 'page'=>'int', 'optlist'=>'string'], + 'PDFlib::rect' => ['bool', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'PDFlib::restore' => ['bool', 'p'=>''], + 'PDFlib::resume_page' => ['bool', 'optlist'=>'string'], + 'PDFlib::rotate' => ['bool', 'phi'=>'float'], + 'PDFlib::save' => ['bool', 'p'=>''], + 'PDFlib::scale' => ['bool', 'sx'=>'float', 'sy'=>'float'], + 'PDFlib::set_border_color' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDFlib::set_border_dash' => ['bool', 'black'=>'float', 'white'=>'float'], + 'PDFlib::set_border_style' => ['bool', 'style'=>'string', 'width'=>'float'], + 'PDFlib::set_gstate' => ['bool', 'gstate'=>'int'], + 'PDFlib::set_info' => ['bool', 'key'=>'string', 'value'=>'string'], + 'PDFlib::set_layer_dependency' => ['bool', 'type'=>'string', 'optlist'=>'string'], + 'PDFlib::set_parameter' => ['bool', 'key'=>'string', 'value'=>'string'], + 'PDFlib::set_text_pos' => ['bool', 'x'=>'float', 'y'=>'float'], + 'PDFlib::set_value' => ['bool', 'key'=>'string', 'value'=>'float'], + 'PDFlib::setcolor' => ['bool', 'fstype'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], + 'PDFlib::setdash' => ['bool', 'b'=>'float', 'w'=>'float'], + 'PDFlib::setdashpattern' => ['bool', 'optlist'=>'string'], + 'PDFlib::setflat' => ['bool', 'flatness'=>'float'], + 'PDFlib::setfont' => ['bool', 'font'=>'int', 'fontsize'=>'float'], + 'PDFlib::setgray' => ['bool', 'g'=>'float'], + 'PDFlib::setgray_fill' => ['bool', 'g'=>'float'], + 'PDFlib::setgray_stroke' => ['bool', 'g'=>'float'], + 'PDFlib::setlinecap' => ['bool', 'linecap'=>'int'], + 'PDFlib::setlinejoin' => ['bool', 'value'=>'int'], + 'PDFlib::setlinewidth' => ['bool', 'width'=>'float'], + 'PDFlib::setmatrix' => ['bool', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'e'=>'float', 'f'=>'float'], + 'PDFlib::setmiterlimit' => ['bool', 'miter'=>'float'], + 'PDFlib::setrgbcolor' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDFlib::setrgbcolor_fill' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDFlib::setrgbcolor_stroke' => ['bool', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'PDFlib::shading' => ['int', 'shtype'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], + 'PDFlib::shading_pattern' => ['int', 'shading'=>'int', 'optlist'=>'string'], + 'PDFlib::shfill' => ['bool', 'shading'=>'int'], + 'PDFlib::show' => ['bool', 'text'=>'string'], + 'PDFlib::show_boxed' => ['int', 'text'=>'string', 'left'=>'float', 'top'=>'float', 'width'=>'float', 'height'=>'float', 'mode'=>'string', 'feature'=>'string'], + 'PDFlib::show_xy' => ['bool', 'text'=>'string', 'x'=>'float', 'y'=>'float'], + 'PDFlib::skew' => ['bool', 'alpha'=>'float', 'beta'=>'float'], + 'PDFlib::stringwidth' => ['float', 'text'=>'string', 'font'=>'int', 'fontsize'=>'float'], + 'PDFlib::stroke' => ['bool', 'p'=>''], + 'PDFlib::suspend_page' => ['bool', 'optlist'=>'string'], + 'PDFlib::translate' => ['bool', 'tx'=>'float', 'ty'=>'float'], + 'PDFlib::utf16_to_utf8' => ['string', 'utf16string'=>'string'], + 'PDFlib::utf32_to_utf16' => ['string', 'utf32string'=>'string', 'ordering'=>'string'], + 'PDFlib::utf8_to_utf16' => ['string', 'utf8string'=>'string', 'ordering'=>'string'], + 'PDO::__construct' => ['void', 'dsn'=>'string', 'username='=>'?string', 'password='=>'?string', 'options='=>'?array'], + 'PDO::__sleep' => ['list'], + 'PDO::__wakeup' => ['void'], + 'PDO::beginTransaction' => ['bool'], + 'PDO::commit' => ['bool'], + 'PDO::cubrid_schema' => ['array', 'schema_type'=>'int', 'table_name='=>'string', 'col_name='=>'string'], + 'PDO::errorCode' => ['?string'], + 'PDO::errorInfo' => ['array{0: ?string, 1: ?int, 2: ?string, 3?: mixed, 4?: mixed}'], + 'PDO::exec' => ['int|false', 'statement'=>'string'], + 'PDO::getAttribute' => ['mixed', 'attribute'=>'int'], + 'PDO::getAvailableDrivers' => ['array'], + 'PDO::inTransaction' => ['bool'], + 'PDO::lastInsertId' => ['string', 'name='=>'string|null'], + 'PDO::pgsqlCopyFromArray' => ['bool', 'table_name'=>'string', 'rows'=>'array', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], + 'PDO::pgsqlCopyFromFile' => ['bool', 'table_name'=>'string', 'filename'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], + 'PDO::pgsqlCopyToArray' => ['array', 'table_name'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], + 'PDO::pgsqlCopyToFile' => ['bool', 'table_name'=>'string', 'filename'=>'string', 'delimiter'=>'string', 'null_as'=>'string', 'fields'=>'string'], + 'PDO::pgsqlGetNotify' => ['array{message:string,pid:int,payload?:string}|false', 'result_type='=>'PDO::FETCH_*', 'ms_timeout='=>'int'], + 'PDO::pgsqlGetPid' => ['int'], + 'PDO::pgsqlLOBCreate' => ['string'], + 'PDO::pgsqlLOBOpen' => ['resource', 'oid'=>'string', 'mode='=>'string'], + 'PDO::pgsqlLOBUnlink' => ['bool', 'oid'=>'string'], + 'PDO::prepare' => ['PDOStatement|false', 'query'=>'string', 'options='=>'array'], + 'PDO::query' => ['PDOStatement|false', 'query'=>'string'], + 'PDO::query\'1' => ['PDOStatement|false', 'query'=>'string', 'fetch_column'=>'int', 'colno='=>'int'], + 'PDO::query\'2' => ['PDOStatement|false', 'query'=>'string', 'fetch_class'=>'int', 'classname'=>'string', 'constructorArgs'=>'array'], + 'PDO::query\'3' => ['PDOStatement|false', 'query'=>'string', 'fetch_into'=>'int', 'object'=>'object'], + 'PDO::quote' => ['string|false', 'string'=>'string', 'type='=>'int'], + 'PDO::rollBack' => ['bool'], + 'PDO::setAttribute' => ['bool', 'attribute'=>'int', 'value'=>''], + 'PDO::sqliteCreateAggregate' => ['bool', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], + 'PDO::sqliteCreateCollation' => ['bool', 'name'=>'string', 'callback'=>'callable'], + 'PDO::sqliteCreateFunction' => ['bool', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], + 'PDOException::getCode' => ['int|string'], + 'PDOException::getFile' => ['string'], + 'PDOException::getLine' => ['int'], + 'PDOException::getMessage' => ['string'], + 'PDOException::getPrevious' => ['?Throwable'], + 'PDOException::getTrace' => ['list\',args?:array}>'], + 'PDOException::getTraceAsString' => ['string'], + 'PDOStatement::__sleep' => ['list'], + 'PDOStatement::__wakeup' => ['void'], + 'PDOStatement::bindColumn' => ['bool', 'column'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int', 'maxLength='=>'int', 'driverOptions='=>'mixed'], + 'PDOStatement::bindParam' => ['bool', 'param'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int', 'maxLength='=>'int', 'driverOptions='=>'mixed'], + 'PDOStatement::bindValue' => ['bool', 'param'=>'string|int', 'value'=>'mixed', 'type='=>'int'], + 'PDOStatement::closeCursor' => ['bool'], + 'PDOStatement::columnCount' => ['int'], + 'PDOStatement::debugDumpParams' => ['void'], + 'PDOStatement::errorCode' => ['string'], + 'PDOStatement::errorInfo' => ['array{0: ?string, 1: ?int, 2: ?string, 3?: mixed, 4?: mixed}'], + 'PDOStatement::execute' => ['bool', 'bound_input_params='=>'?array'], + 'PDOStatement::fetch' => ['mixed', 'how='=>'int', 'orientation='=>'int', 'offset='=>'int'], + 'PDOStatement::fetchAll' => ['array|false', 'how='=>'int', 'fetch_argument='=>'int|string|callable', 'ctor_args='=>'?array'], + 'PDOStatement::fetchColumn' => ['string|int|float|bool|null', 'column_number='=>'int'], + 'PDOStatement::fetchObject' => ['object|false', 'class='=>'?string', 'constructorArgs='=>'array'], + 'PDOStatement::getAttribute' => ['mixed', 'name'=>'int'], + 'PDOStatement::getColumnMeta' => ['array|false', 'column'=>'int'], + 'PDOStatement::nextRowset' => ['bool'], + 'PDOStatement::rowCount' => ['int'], + 'PDOStatement::setAttribute' => ['bool', 'attribute'=>'int', 'value'=>'mixed'], + 'PDOStatement::setFetchMode' => ['bool', 'mode'=>'int'], + 'PDOStatement::setFetchMode\'1' => ['bool', 'fetch_column'=>'int', 'colno'=>'int'], + 'PDOStatement::setFetchMode\'2' => ['bool', 'fetch_class'=>'int', 'classname'=>'string', 'ctorargs'=>'array'], + 'PDOStatement::setFetchMode\'3' => ['bool', 'fetch_into'=>'int', 'object'=>'object'], + 'ParentIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator'], + 'ParentIterator::accept' => ['bool'], + 'ParentIterator::getChildren' => ['?ParentIterator'], + 'ParentIterator::hasChildren' => ['bool'], + 'ParentIterator::next' => ['void'], + 'ParentIterator::rewind' => ['void'], + 'ParentIterator::valid' => ['bool'], + 'Parle\Lexer::advance' => ['void'], + 'Parle\Lexer::build' => ['void'], + 'Parle\Lexer::callout' => ['void', 'id'=>'int', 'callback'=>'callable'], + 'Parle\Lexer::consume' => ['void', 'data'=>'string'], + 'Parle\Lexer::dump' => ['void'], + 'Parle\Lexer::getToken' => ['Parle\Token'], + 'Parle\Lexer::insertMacro' => ['void', 'name'=>'string', 'regex'=>'string'], + 'Parle\Lexer::push' => ['void', 'regex'=>'string', 'id'=>'int'], + 'Parle\Lexer::reset' => ['void', 'pos'=>'int'], + 'Parle\Parser::advance' => ['void'], + 'Parle\Parser::build' => ['void'], + 'Parle\Parser::consume' => ['void', 'data'=>'string', 'lexer'=>'Parle\Lexer'], + 'Parle\Parser::dump' => ['void'], + 'Parle\Parser::errorInfo' => ['Parle\ErrorInfo'], + 'Parle\Parser::left' => ['void', 'token'=>'string'], + 'Parle\Parser::nonassoc' => ['void', 'token'=>'string'], + 'Parle\Parser::precedence' => ['void', 'token'=>'string'], + 'Parle\Parser::push' => ['int', 'name'=>'string', 'rule'=>'string'], + 'Parle\Parser::reset' => ['void', 'tokenId'=>'int'], + 'Parle\Parser::right' => ['void', 'token'=>'string'], + 'Parle\Parser::sigil' => ['string', 'idx'=>'array'], + 'Parle\Parser::token' => ['void', 'token'=>'string'], + 'Parle\Parser::tokenId' => ['int', 'token'=>'string'], + 'Parle\Parser::trace' => ['string'], + 'Parle\Parser::validate' => ['bool', 'data'=>'string', 'lexer'=>'Parle\Lexer'], + 'Parle\RLexer::advance' => ['void'], + 'Parle\RLexer::build' => ['void'], + 'Parle\RLexer::callout' => ['void', 'id'=>'int', 'callback'=>'callable'], + 'Parle\RLexer::consume' => ['void', 'data'=>'string'], + 'Parle\RLexer::dump' => ['void'], + 'Parle\RLexer::getToken' => ['Parle\Token'], + 'Parle\RLexer::push' => ['void', 'state'=>'string', 'regex'=>'string', 'newState'=>'string'], + 'Parle\RLexer::pushState' => ['int', 'state'=>'string'], + 'Parle\RLexer::reset' => ['void', 'pos'=>'int'], + 'Parle\RParser::advance' => ['void'], + 'Parle\RParser::build' => ['void'], + 'Parle\RParser::consume' => ['void', 'data'=>'string', 'lexer'=>'Parle\Lexer'], + 'Parle\RParser::dump' => ['void'], + 'Parle\RParser::errorInfo' => ['Parle\ErrorInfo'], + 'Parle\RParser::left' => ['void', 'token'=>'string'], + 'Parle\RParser::nonassoc' => ['void', 'token'=>'string'], + 'Parle\RParser::precedence' => ['void', 'token'=>'string'], + 'Parle\RParser::push' => ['int', 'name'=>'string', 'rule'=>'string'], + 'Parle\RParser::reset' => ['void', 'tokenId'=>'int'], + 'Parle\RParser::right' => ['void', 'token'=>'string'], + 'Parle\RParser::sigil' => ['string', 'idx'=>'array'], + 'Parle\RParser::token' => ['void', 'token'=>'string'], + 'Parle\RParser::tokenId' => ['int', 'token'=>'string'], + 'Parle\RParser::trace' => ['string'], + 'Parle\RParser::validate' => ['bool', 'data'=>'string', 'lexer'=>'Parle\Lexer'], + 'Parle\Stack::pop' => ['void'], + 'Parle\Stack::push' => ['void', 'item'=>'mixed'], + 'ParseError::__clone' => ['void'], + 'ParseError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'ParseError::__toString' => ['string'], + 'ParseError::getCode' => ['int'], + 'ParseError::getFile' => ['string'], + 'ParseError::getLine' => ['int'], + 'ParseError::getMessage' => ['string'], + 'ParseError::getPrevious' => ['?Throwable'], + 'ParseError::getTrace' => ['list\',args?:array}>'], + 'ParseError::getTraceAsString' => ['string'], + 'Phar::__construct' => ['void', 'fname'=>'string', 'flags='=>'int', 'alias='=>'string'], + 'Phar::addEmptyDir' => ['void', 'dirname'=>'string'], + 'Phar::addFile' => ['void', 'file'=>'string', 'localname='=>'string'], + 'Phar::addFromString' => ['void', 'localname'=>'string', 'contents'=>'string'], + 'Phar::apiVersion' => ['string'], + 'Phar::buildFromDirectory' => ['array', 'base_dir'=>'string', 'regex='=>'string'], + 'Phar::buildFromIterator' => ['array', 'iter'=>'Iterator', 'base_directory='=>'string'], + 'Phar::canCompress' => ['bool', 'method='=>'int'], + 'Phar::canWrite' => ['bool'], + 'Phar::compress' => ['?Phar', 'compression'=>'int', 'extension='=>'string'], + 'Phar::compressAllFilesBZIP2' => ['bool'], + 'Phar::compressAllFilesGZ' => ['bool'], + 'Phar::compressFiles' => ['void', 'compression'=>'int'], + 'Phar::convertToData' => ['?PharData', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'Phar::convertToExecutable' => ['?Phar', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'Phar::copy' => ['bool', 'oldfile'=>'string', 'newfile'=>'string'], + 'Phar::count' => ['int'], + 'Phar::createDefaultStub' => ['string', 'indexfile='=>'string', 'webindexfile='=>'string'], + 'Phar::decompress' => ['?Phar', 'extension='=>'string'], + 'Phar::decompressFiles' => ['bool'], + 'Phar::delMetadata' => ['bool'], + 'Phar::delete' => ['bool', 'entry'=>'string'], + 'Phar::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string|array|null', 'overwrite='=>'bool'], + 'Phar::getAlias' => ['?string'], + 'Phar::getMetadata' => ['mixed'], + 'Phar::getModified' => ['bool'], + 'Phar::getPath' => ['string'], + 'Phar::getSignature' => ['array{hash:string, hash_type:string}'], + 'Phar::getStub' => ['string'], + 'Phar::getSupportedCompression' => ['array'], + 'Phar::getSupportedSignatures' => ['array'], + 'Phar::getVersion' => ['string'], + 'Phar::hasMetadata' => ['bool'], + 'Phar::interceptFileFuncs' => ['void'], + 'Phar::isBuffering' => ['bool'], + 'Phar::isCompressed' => ['int|false'], + 'Phar::isFileFormat' => ['bool', 'format'=>'int'], + 'Phar::isValidPharFilename' => ['bool', 'filename'=>'string', 'executable='=>'bool'], + 'Phar::isWritable' => ['bool'], + 'Phar::loadPhar' => ['bool', 'filename'=>'string', 'alias='=>'?string'], + 'Phar::mapPhar' => ['bool', 'alias='=>'string', 'dataoffset='=>'int'], + 'Phar::mount' => ['void', 'pharpath'=>'string', 'externalpath'=>'string'], + 'Phar::mungServer' => ['void', 'munglist'=>'array'], + 'Phar::offsetExists' => ['bool', 'offset'=>'string'], + 'Phar::offsetGet' => ['PharFileInfo', 'offset'=>'string'], + 'Phar::offsetSet' => ['void', 'offset'=>'string', 'value'=>'string'], + 'Phar::offsetUnset' => ['bool', 'offset'=>'string'], + 'Phar::running' => ['string', 'retphar='=>'bool'], + 'Phar::setAlias' => ['bool', 'alias'=>'string'], + 'Phar::setDefaultStub' => ['bool', 'index='=>'string', 'webindex='=>'string'], + 'Phar::setMetadata' => ['void', 'metadata'=>''], + 'Phar::setSignatureAlgorithm' => ['void', 'sigtype'=>'int', 'privatekey='=>'string'], + 'Phar::setStub' => ['bool', 'stub'=>'string', 'length='=>'int'], + 'Phar::startBuffering' => ['void'], + 'Phar::stopBuffering' => ['void'], + 'Phar::uncompressAllFiles' => ['bool'], + 'Phar::unlinkArchive' => ['bool', 'archive'=>'string'], + 'Phar::webPhar' => ['', 'alias='=>'string', 'index='=>'string', 'f404='=>'string', 'mimetypes='=>'array', 'rewrites='=>'array'], + 'PharData::__construct' => ['void', 'fname'=>'string', 'flags='=>'?int', 'alias='=>'?string', 'format='=>'int'], + 'PharData::addEmptyDir' => ['bool', 'dirname'=>'string'], + 'PharData::addFile' => ['void', 'file'=>'string', 'localname='=>'string'], + 'PharData::addFromString' => ['bool', 'localname'=>'string', 'contents'=>'string'], + 'PharData::buildFromDirectory' => ['array', 'base_dir'=>'string', 'regex='=>'string'], + 'PharData::buildFromIterator' => ['array', 'iter'=>'Iterator', 'base_directory='=>'string'], + 'PharData::compress' => ['?PharData', 'compression'=>'int', 'extension='=>'string'], + 'PharData::compressFiles' => ['void', 'compression'=>'int'], + 'PharData::convertToData' => ['?PharData', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'PharData::convertToExecutable' => ['?Phar', 'format='=>'int', 'compression='=>'int', 'extension='=>'string'], + 'PharData::copy' => ['bool', 'oldfile'=>'string', 'newfile'=>'string'], + 'PharData::decompress' => ['?PharData', 'extension='=>'string'], + 'PharData::decompressFiles' => ['bool'], + 'PharData::delMetadata' => ['bool'], + 'PharData::delete' => ['bool', 'entry'=>'string'], + 'PharData::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string|array|null', 'overwrite='=>'bool'], + 'PharData::isWritable' => ['bool'], + 'PharData::offsetExists' => ['bool', 'offset'=>'string'], + 'PharData::offsetGet' => ['PharFileInfo', 'offset'=>'string'], + 'PharData::offsetSet' => ['void', 'offset'=>'string', 'value'=>'string'], + 'PharData::offsetUnset' => ['bool', 'offset'=>'string'], + 'PharData::setAlias' => ['bool', 'alias'=>'string'], + 'PharData::setDefaultStub' => ['bool', 'index='=>'string', 'webindex='=>'string'], + 'PharData::setStub' => ['bool', 'stub'=>'string', 'length='=>'int'], + 'PharFileInfo::__construct' => ['void', 'entry'=>'string'], + 'PharFileInfo::chmod' => ['void', 'permissions'=>'int'], + 'PharFileInfo::compress' => ['bool', 'compression'=>'int'], + 'PharFileInfo::decompress' => ['bool'], + 'PharFileInfo::delMetadata' => ['bool'], + 'PharFileInfo::getCRC32' => ['int'], + 'PharFileInfo::getCompressedSize' => ['int'], + 'PharFileInfo::getContent' => ['string'], + 'PharFileInfo::getMetadata' => ['mixed'], + 'PharFileInfo::getPharFlags' => ['int'], + 'PharFileInfo::hasMetadata' => ['bool'], + 'PharFileInfo::isCRCChecked' => ['bool'], + 'PharFileInfo::isCompressed' => ['bool', 'compression_type='=>'int'], + 'PharFileInfo::isCompressedBZIP2' => ['bool'], + 'PharFileInfo::isCompressedGZ' => ['bool'], + 'PharFileInfo::setCompressedBZIP2' => ['bool'], + 'PharFileInfo::setCompressedGZ' => ['bool'], + 'PharFileInfo::setMetadata' => ['void', 'metadata'=>'mixed'], + 'PharFileInfo::setUncompressed' => ['bool'], + 'Pool::__construct' => ['void', 'size'=>'int', 'class'=>'string', 'ctor='=>'array'], + 'Pool::collect' => ['int', 'collector='=>'Callable'], + 'Pool::resize' => ['void', 'size'=>'int'], + 'Pool::shutdown' => ['void'], + 'Pool::submit' => ['int', 'task'=>'Threaded'], + 'Pool::submitTo' => ['int', 'worker'=>'int', 'task'=>'Threaded'], + 'Postal\Expand::expand_address' => ['string[]', 'address'=>'string', 'options='=>'array'], + 'Postal\Parser::parse_address' => ['array', 'address'=>'string', 'options='=>'array'], + 'QuickHashIntHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], + 'QuickHashIntHash::add' => ['bool', 'key'=>'int', 'value='=>'int'], + 'QuickHashIntHash::delete' => ['bool', 'key'=>'int'], + 'QuickHashIntHash::exists' => ['bool', 'key'=>'int'], + 'QuickHashIntHash::get' => ['int', 'key'=>'int'], + 'QuickHashIntHash::getSize' => ['int'], + 'QuickHashIntHash::loadFromFile' => ['QuickHashIntHash', 'filename'=>'string', 'options='=>'int'], + 'QuickHashIntHash::loadFromString' => ['QuickHashIntHash', 'contents'=>'string', 'options='=>'int'], + 'QuickHashIntHash::saveToFile' => ['void', 'filename'=>'string'], + 'QuickHashIntHash::saveToString' => ['string'], + 'QuickHashIntHash::set' => ['bool', 'key'=>'int', 'value'=>'int'], + 'QuickHashIntHash::update' => ['bool', 'key'=>'int', 'value'=>'int'], + 'QuickHashIntSet::__construct' => ['void', 'size'=>'int', 'options='=>'int'], + 'QuickHashIntSet::add' => ['bool', 'key'=>'int'], + 'QuickHashIntSet::delete' => ['bool', 'key'=>'int'], + 'QuickHashIntSet::exists' => ['bool', 'key'=>'int'], + 'QuickHashIntSet::getSize' => ['int'], + 'QuickHashIntSet::loadFromFile' => ['QuickHashIntSet', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashIntSet::loadFromString' => ['QuickHashIntSet', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashIntSet::saveToFile' => ['void', 'filename'=>'string'], + 'QuickHashIntSet::saveToString' => ['string'], + 'QuickHashIntStringHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], + 'QuickHashIntStringHash::add' => ['bool', 'key'=>'int', 'value'=>'string'], + 'QuickHashIntStringHash::delete' => ['bool', 'key'=>'int'], + 'QuickHashIntStringHash::exists' => ['bool', 'key'=>'int'], + 'QuickHashIntStringHash::get' => ['mixed', 'key'=>'int'], + 'QuickHashIntStringHash::getSize' => ['int'], + 'QuickHashIntStringHash::loadFromFile' => ['QuickHashIntStringHash', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashIntStringHash::loadFromString' => ['QuickHashIntStringHash', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashIntStringHash::saveToFile' => ['void', 'filename'=>'string'], + 'QuickHashIntStringHash::saveToString' => ['string'], + 'QuickHashIntStringHash::set' => ['int', 'key'=>'int', 'value'=>'string'], + 'QuickHashIntStringHash::update' => ['bool', 'key'=>'int', 'value'=>'string'], + 'QuickHashStringIntHash::__construct' => ['void', 'size'=>'int', 'options='=>'int'], + 'QuickHashStringIntHash::add' => ['bool', 'key'=>'string', 'value'=>'int'], + 'QuickHashStringIntHash::delete' => ['bool', 'key'=>'string'], + 'QuickHashStringIntHash::exists' => ['bool', 'key'=>'string'], + 'QuickHashStringIntHash::get' => ['mixed', 'key'=>'string'], + 'QuickHashStringIntHash::getSize' => ['int'], + 'QuickHashStringIntHash::loadFromFile' => ['QuickHashStringIntHash', 'filename'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashStringIntHash::loadFromString' => ['QuickHashStringIntHash', 'contents'=>'string', 'size='=>'int', 'options='=>'int'], + 'QuickHashStringIntHash::saveToFile' => ['void', 'filename'=>'string'], + 'QuickHashStringIntHash::saveToString' => ['string'], + 'QuickHashStringIntHash::set' => ['int', 'key'=>'string', 'value'=>'int'], + 'QuickHashStringIntHash::update' => ['bool', 'key'=>'string', 'value'=>'int'], + 'RRDCreator::__construct' => ['void', 'path'=>'string', 'starttime='=>'string', 'step='=>'int'], + 'RRDCreator::addArchive' => ['void', 'description'=>'string'], + 'RRDCreator::addDataSource' => ['void', 'description'=>'string'], + 'RRDCreator::save' => ['bool'], + 'RRDGraph::__construct' => ['void', 'path'=>'string'], + 'RRDGraph::save' => ['array|false'], + 'RRDGraph::saveVerbose' => ['array|false'], + 'RRDGraph::setOptions' => ['void', 'options'=>'array'], + 'RRDUpdater::__construct' => ['void', 'path'=>'string'], + 'RRDUpdater::update' => ['bool', 'values'=>'array', 'time='=>'string'], + 'RangeException::__clone' => ['void'], + 'RangeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'RangeException::__toString' => ['string'], + 'RangeException::getCode' => ['int'], + 'RangeException::getFile' => ['string'], + 'RangeException::getLine' => ['int'], + 'RangeException::getMessage' => ['string'], + 'RangeException::getPrevious' => ['?Throwable'], + 'RangeException::getTrace' => ['list\',args?:array}>'], + 'RangeException::getTraceAsString' => ['string'], + 'RarArchive::__toString' => ['string'], + 'RarArchive::close' => ['bool'], + 'RarArchive::getComment' => ['string|null'], + 'RarArchive::getEntries' => ['RarEntry[]|false'], + 'RarArchive::getEntry' => ['RarEntry|false', 'entryname'=>'string'], + 'RarArchive::isBroken' => ['bool'], + 'RarArchive::isSolid' => ['bool'], + 'RarArchive::open' => ['RarArchive|false', 'filename'=>'string', 'password='=>'string', 'volume_callback='=>'callable'], + 'RarArchive::setAllowBroken' => ['bool', 'allow_broken'=>'bool'], + 'RarEntry::__toString' => ['string'], + 'RarEntry::extract' => ['bool', 'dir'=>'string', 'filepath='=>'string', 'password='=>'string', 'extended_data='=>'bool'], + 'RarEntry::getAttr' => ['int|false'], + 'RarEntry::getCrc' => ['string|false'], + 'RarEntry::getFileTime' => ['string|false'], + 'RarEntry::getHostOs' => ['int|false'], + 'RarEntry::getMethod' => ['int|false'], + 'RarEntry::getName' => ['string|false'], + 'RarEntry::getPackedSize' => ['int|false'], + 'RarEntry::getStream' => ['resource|false', 'password='=>'string'], + 'RarEntry::getUnpackedSize' => ['int|false'], + 'RarEntry::getVersion' => ['int|false'], + 'RarEntry::isDirectory' => ['bool'], + 'RarEntry::isEncrypted' => ['bool'], + 'RarException::getCode' => ['int'], + 'RarException::getFile' => ['string'], + 'RarException::getLine' => ['int'], + 'RarException::getMessage' => ['string'], + 'RarException::getPrevious' => ['Exception|Throwable'], + 'RarException::getTrace' => ['list\',args?:array}>'], + 'RarException::getTraceAsString' => ['string'], + 'RarException::isUsingExceptions' => ['bool'], + 'RarException::setUsingExceptions' => ['RarEntry', 'using_exceptions'=>'bool'], + 'RdKafka::addBrokers' => ['int', 'broker_list'=>'string'], + 'RdKafka::flush' => ['int', 'timeout_ms'=>'int'], + 'RdKafka::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], + 'RdKafka::getOutQLen' => ['int'], + 'RdKafka::newQueue' => ['RdKafka\Queue'], + 'RdKafka::newTopic' => ['RdKafka\Topic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], + 'RdKafka::poll' => ['void', 'timeout_ms'=>'int'], + 'RdKafka::setLogLevel' => ['void', 'level'=>'int'], + 'RdKafka\Conf::dump' => ['array'], + 'RdKafka\Conf::set' => ['void', 'name'=>'string', 'value'=>'string'], + 'RdKafka\Conf::setDefaultTopicConf' => ['void', 'topic_conf'=>'RdKafka\TopicConf'], + 'RdKafka\Conf::setDrMsgCb' => ['void', 'callback'=>'callable'], + 'RdKafka\Conf::setErrorCb' => ['void', 'callback'=>'callable'], + 'RdKafka\Conf::setRebalanceCb' => ['void', 'callback'=>'callable'], + 'RdKafka\Conf::setStatsCb' => ['void', 'callback'=>'callable'], + 'RdKafka\Consumer::__construct' => ['void', 'conf='=>'?RdKafka\Conf'], + 'RdKafka\Consumer::addBrokers' => ['int', 'broker_list'=>'string'], + 'RdKafka\Consumer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], + 'RdKafka\Consumer::getOutQLen' => ['int'], + 'RdKafka\Consumer::newQueue' => ['RdKafka\Queue'], + 'RdKafka\Consumer::newTopic' => ['RdKafka\ConsumerTopic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], + 'RdKafka\Consumer::poll' => ['void', 'timeout_ms'=>'int'], + 'RdKafka\Consumer::setLogLevel' => ['void', 'level'=>'int'], + 'RdKafka\ConsumerTopic::__construct' => ['void'], + 'RdKafka\ConsumerTopic::consume' => ['RdKafka\Message', 'partition'=>'int', 'timeout_ms'=>'int'], + 'RdKafka\ConsumerTopic::consumeQueueStart' => ['void', 'partition'=>'int', 'offset'=>'int', 'queue'=>'RdKafka\Queue'], + 'RdKafka\ConsumerTopic::consumeStart' => ['void', 'partition'=>'int', 'offset'=>'int'], + 'RdKafka\ConsumerTopic::consumeStop' => ['void', 'partition'=>'int'], + 'RdKafka\ConsumerTopic::getName' => ['string'], + 'RdKafka\ConsumerTopic::offsetStore' => ['void', 'partition'=>'int', 'offset'=>'int'], + 'RdKafka\KafkaConsumer::__construct' => ['void', 'conf'=>'RdKafka\Conf'], + 'RdKafka\KafkaConsumer::assign' => ['void', 'topic_partitions='=>'RdKafka\TopicPartition[]|null'], + 'RdKafka\KafkaConsumer::commit' => ['void', 'message_or_offsets='=>'RdKafka\Message|RdKafka\TopicPartition[]|null'], + 'RdKafka\KafkaConsumer::commitAsync' => ['void', 'message_or_offsets='=>'RdKafka\Message|RdKafka\TopicPartition[]|null'], + 'RdKafka\KafkaConsumer::consume' => ['RdKafka\Message', 'timeout_ms'=>'int'], + 'RdKafka\KafkaConsumer::getAssignment' => ['RdKafka\TopicPartition[]'], + 'RdKafka\KafkaConsumer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\KafkaConsumerTopic', 'timeout_ms'=>'int'], + 'RdKafka\KafkaConsumer::getSubscription' => ['array'], + 'RdKafka\KafkaConsumer::subscribe' => ['void', 'topics'=>'array'], + 'RdKafka\KafkaConsumer::unsubscribe' => ['void'], + 'RdKafka\KafkaConsumerTopic::getName' => ['string'], + 'RdKafka\KafkaConsumerTopic::offsetStore' => ['void', 'partition'=>'int', 'offset'=>'int'], + 'RdKafka\Message::errstr' => ['string'], + 'RdKafka\Metadata::getBrokers' => ['RdKafka\Metadata\Collection'], + 'RdKafka\Metadata::getOrigBrokerId' => ['int'], + 'RdKafka\Metadata::getOrigBrokerName' => ['string'], + 'RdKafka\Metadata::getTopics' => ['RdKafka\Metadata\Collection|RdKafka\Metadata\Topic[]'], + 'RdKafka\Metadata\Collection::__construct' => ['void'], + 'RdKafka\Metadata\Collection::count' => ['int'], + 'RdKafka\Metadata\Collection::current' => ['mixed'], + 'RdKafka\Metadata\Collection::key' => ['mixed'], + 'RdKafka\Metadata\Collection::next' => ['void'], + 'RdKafka\Metadata\Collection::rewind' => ['void'], + 'RdKafka\Metadata\Collection::valid' => ['bool'], + 'RdKafka\Metadata\Partition::getErr' => ['mixed'], + 'RdKafka\Metadata\Partition::getId' => ['int'], + 'RdKafka\Metadata\Partition::getIsrs' => ['mixed'], + 'RdKafka\Metadata\Partition::getLeader' => ['mixed'], + 'RdKafka\Metadata\Partition::getReplicas' => ['mixed'], + 'RdKafka\Metadata\Topic::getErr' => ['mixed'], + 'RdKafka\Metadata\Topic::getPartitions' => ['RdKafka\Metadata\Partition[]'], + 'RdKafka\Metadata\Topic::getTopic' => ['string'], + 'RdKafka\Producer::__construct' => ['void', 'conf='=>'?RdKafka\Conf'], + 'RdKafka\Producer::addBrokers' => ['int', 'broker_list'=>'string'], + 'RdKafka\Producer::getMetadata' => ['RdKafka\Metadata', 'all_topics'=>'bool', 'only_topic='=>'?RdKafka\Topic', 'timeout_ms'=>'int'], + 'RdKafka\Producer::getOutQLen' => ['int'], + 'RdKafka\Producer::newQueue' => ['RdKafka\Queue'], + 'RdKafka\Producer::newTopic' => ['RdKafka\ProducerTopic', 'topic_name'=>'string', 'topic_conf='=>'?RdKafka\TopicConf'], + 'RdKafka\Producer::poll' => ['void', 'timeout_ms'=>'int'], + 'RdKafka\Producer::setLogLevel' => ['void', 'level'=>'int'], + 'RdKafka\ProducerTopic::__construct' => ['void'], + 'RdKafka\ProducerTopic::getName' => ['string'], + 'RdKafka\ProducerTopic::produce' => ['void', 'partition'=>'int', 'msgflags'=>'int', 'payload'=>'string', 'key='=>'?string'], + 'RdKafka\ProducerTopic::producev' => ['void', 'partition'=>'int', 'msgflags'=>'int', 'payload'=>'string', 'key='=>'?string', 'headers='=>'?array', 'timestamp_ms='=>'?int', 'opaque='=>'?string'], + 'RdKafka\Queue::__construct' => ['void'], + 'RdKafka\Queue::consume' => ['?RdKafka\Message', 'timeout_ms'=>'string'], + 'RdKafka\Topic::getName' => ['string'], + 'RdKafka\TopicConf::dump' => ['array'], + 'RdKafka\TopicConf::set' => ['void', 'name'=>'string', 'value'=>'string'], + 'RdKafka\TopicConf::setPartitioner' => ['void', 'partitioner'=>'int'], + 'RdKafka\TopicPartition::__construct' => ['void', 'topic'=>'string', 'partition'=>'int', 'offset='=>'int'], + 'RdKafka\TopicPartition::getOffset' => ['int'], + 'RdKafka\TopicPartition::getPartition' => ['int'], + 'RdKafka\TopicPartition::getTopic' => ['string'], + 'RdKafka\TopicPartition::setOffset' => ['void', 'offset'=>'string'], + 'RdKafka\TopicPartition::setPartition' => ['void', 'partition'=>'string'], + 'RdKafka\TopicPartition::setTopic' => ['void', 'topic_name'=>'string'], + 'RecursiveArrayIterator::__construct' => ['void', 'array='=>'array|object', 'flags='=>'int'], + 'RecursiveArrayIterator::append' => ['void', 'value'=>'mixed'], + 'RecursiveArrayIterator::asort' => ['void'], + 'RecursiveArrayIterator::count' => ['int'], + 'RecursiveArrayIterator::current' => ['mixed'], + 'RecursiveArrayIterator::getArrayCopy' => ['array'], + 'RecursiveArrayIterator::getChildren' => ['?RecursiveArrayIterator'], + 'RecursiveArrayIterator::getFlags' => ['int'], + 'RecursiveArrayIterator::hasChildren' => ['bool'], + 'RecursiveArrayIterator::key' => ['string|int|null'], + 'RecursiveArrayIterator::ksort' => ['void'], + 'RecursiveArrayIterator::natcasesort' => ['true'], + 'RecursiveArrayIterator::natsort' => ['true'], + 'RecursiveArrayIterator::next' => ['void'], + 'RecursiveArrayIterator::offsetExists' => ['void', 'index'=>'string'], + 'RecursiveArrayIterator::offsetGet' => ['mixed', 'index'=>'string'], + 'RecursiveArrayIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'string'], + 'RecursiveArrayIterator::offsetUnset' => ['void', 'index'=>'string'], + 'RecursiveArrayIterator::rewind' => ['void'], + 'RecursiveArrayIterator::seek' => ['void', 'position'=>'int'], + 'RecursiveArrayIterator::serialize' => ['string'], + 'RecursiveArrayIterator::setFlags' => ['void', 'flags'=>'string'], + 'RecursiveArrayIterator::uasort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'RecursiveArrayIterator::uksort' => ['void', 'cmp_function'=>'callable(mixed,mixed):int'], + 'RecursiveArrayIterator::unserialize' => ['string', 'serialized'=>'string'], + 'RecursiveArrayIterator::valid' => ['bool'], + 'RecursiveCachingIterator::__construct' => ['void', 'it'=>'Iterator', 'flags='=>'int'], + 'RecursiveCachingIterator::__toString' => ['string'], + 'RecursiveCachingIterator::count' => ['int'], + 'RecursiveCachingIterator::current' => ['void'], + 'RecursiveCachingIterator::getCache' => ['array'], + 'RecursiveCachingIterator::getChildren' => ['?RecursiveCachingIterator'], + 'RecursiveCachingIterator::getFlags' => ['int'], + 'RecursiveCachingIterator::getInnerIterator' => ['Iterator'], + 'RecursiveCachingIterator::hasChildren' => ['bool'], + 'RecursiveCachingIterator::hasNext' => ['bool'], + 'RecursiveCachingIterator::key' => ['bool|float|int|string'], + 'RecursiveCachingIterator::next' => ['void'], + 'RecursiveCachingIterator::offsetExists' => ['bool', 'index'=>'string'], + 'RecursiveCachingIterator::offsetGet' => ['string', 'index'=>'string'], + 'RecursiveCachingIterator::offsetSet' => ['void', 'index'=>'string', 'newval'=>'string'], + 'RecursiveCachingIterator::offsetUnset' => ['void', 'index'=>'string'], + 'RecursiveCachingIterator::rewind' => ['void'], + 'RecursiveCachingIterator::setFlags' => ['void', 'flags'=>'int'], + 'RecursiveCachingIterator::valid' => ['bool'], + 'RecursiveCallbackFilterIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator', 'func'=>'callable'], + 'RecursiveCallbackFilterIterator::accept' => ['bool'], + 'RecursiveCallbackFilterIterator::current' => ['mixed'], + 'RecursiveCallbackFilterIterator::getChildren' => ['RecursiveCallbackFilterIterator'], + 'RecursiveCallbackFilterIterator::getInnerIterator' => ['Iterator'], + 'RecursiveCallbackFilterIterator::hasChildren' => ['bool'], + 'RecursiveCallbackFilterIterator::key' => ['bool|float|int|string'], + 'RecursiveCallbackFilterIterator::next' => ['void'], + 'RecursiveCallbackFilterIterator::rewind' => ['void'], + 'RecursiveCallbackFilterIterator::valid' => ['bool'], + 'RecursiveDirectoryIterator::__construct' => ['void', 'path'=>'string', 'flags='=>'int'], + 'RecursiveDirectoryIterator::__toString' => ['string'], + 'RecursiveDirectoryIterator::current' => ['string|SplFileInfo|FilesystemIterator'], + 'RecursiveDirectoryIterator::getATime' => ['int'], + 'RecursiveDirectoryIterator::getBasename' => ['string', 'suffix='=>'string'], + 'RecursiveDirectoryIterator::getCTime' => ['int'], + 'RecursiveDirectoryIterator::getChildren' => ['RecursiveDirectoryIterator'], + 'RecursiveDirectoryIterator::getExtension' => ['string'], + 'RecursiveDirectoryIterator::getFileInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'RecursiveDirectoryIterator::getFilename' => ['string'], + 'RecursiveDirectoryIterator::getFlags' => ['int'], + 'RecursiveDirectoryIterator::getGroup' => ['int'], + 'RecursiveDirectoryIterator::getInode' => ['int'], + 'RecursiveDirectoryIterator::getLinkTarget' => ['string'], + 'RecursiveDirectoryIterator::getMTime' => ['int'], + 'RecursiveDirectoryIterator::getOwner' => ['int'], + 'RecursiveDirectoryIterator::getPath' => ['string'], + 'RecursiveDirectoryIterator::getPathInfo' => ['SplFileInfo', 'class_name='=>'string'], + 'RecursiveDirectoryIterator::getPathname' => ['string'], + 'RecursiveDirectoryIterator::getPerms' => ['int'], + 'RecursiveDirectoryIterator::getRealPath' => ['string'], + 'RecursiveDirectoryIterator::getSize' => ['int'], + 'RecursiveDirectoryIterator::getSubPath' => ['string'], + 'RecursiveDirectoryIterator::getSubPathname' => ['string'], + 'RecursiveDirectoryIterator::getType' => ['string'], + 'RecursiveDirectoryIterator::hasChildren' => ['bool', 'allow_links='=>'bool'], + 'RecursiveDirectoryIterator::isDir' => ['bool'], + 'RecursiveDirectoryIterator::isDot' => ['bool'], + 'RecursiveDirectoryIterator::isExecutable' => ['bool'], + 'RecursiveDirectoryIterator::isFile' => ['bool'], + 'RecursiveDirectoryIterator::isLink' => ['bool'], + 'RecursiveDirectoryIterator::isReadable' => ['bool'], + 'RecursiveDirectoryIterator::isWritable' => ['bool'], + 'RecursiveDirectoryIterator::key' => ['string'], + 'RecursiveDirectoryIterator::next' => ['void'], + 'RecursiveDirectoryIterator::openFile' => ['SplFileObject', 'mode='=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], + 'RecursiveDirectoryIterator::rewind' => ['void'], + 'RecursiveDirectoryIterator::seek' => ['void', 'position'=>'int'], + 'RecursiveDirectoryIterator::setFileClass' => ['void', 'class_name='=>'string'], + 'RecursiveDirectoryIterator::setFlags' => ['void', 'flags='=>'int'], + 'RecursiveDirectoryIterator::setInfoClass' => ['void', 'class_name='=>'string'], + 'RecursiveDirectoryIterator::valid' => ['bool'], + 'RecursiveFilterIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator'], + 'RecursiveFilterIterator::accept' => ['bool'], + 'RecursiveFilterIterator::current' => ['mixed'], + 'RecursiveFilterIterator::getChildren' => ['?RecursiveFilterIterator'], + 'RecursiveFilterIterator::getInnerIterator' => ['Iterator'], + 'RecursiveFilterIterator::hasChildren' => ['bool'], + 'RecursiveFilterIterator::key' => ['mixed'], + 'RecursiveFilterIterator::next' => ['void'], + 'RecursiveFilterIterator::rewind' => ['void'], + 'RecursiveFilterIterator::valid' => ['bool'], + 'RecursiveIterator::__construct' => ['void'], + 'RecursiveIterator::current' => ['mixed'], + 'RecursiveIterator::getChildren' => ['?RecursiveIterator'], + 'RecursiveIterator::hasChildren' => ['bool'], + 'RecursiveIterator::key' => ['int|string'], + 'RecursiveIterator::next' => ['void'], + 'RecursiveIterator::rewind' => ['void'], + 'RecursiveIterator::valid' => ['bool'], + 'RecursiveIteratorIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator|IteratorAggregate', 'mode='=>'int', 'flags='=>'int'], + 'RecursiveIteratorIterator::beginChildren' => ['void'], + 'RecursiveIteratorIterator::beginIteration' => ['void'], + 'RecursiveIteratorIterator::callGetChildren' => ['?RecursiveIterator'], + 'RecursiveIteratorIterator::callHasChildren' => ['bool'], + 'RecursiveIteratorIterator::current' => ['mixed'], + 'RecursiveIteratorIterator::endChildren' => ['void'], + 'RecursiveIteratorIterator::endIteration' => ['void'], + 'RecursiveIteratorIterator::getDepth' => ['int'], + 'RecursiveIteratorIterator::getInnerIterator' => ['RecursiveIterator'], + 'RecursiveIteratorIterator::getMaxDepth' => ['int|false'], + 'RecursiveIteratorIterator::getSubIterator' => ['?RecursiveIterator', 'level='=>'int'], + 'RecursiveIteratorIterator::key' => ['mixed'], + 'RecursiveIteratorIterator::next' => ['void'], + 'RecursiveIteratorIterator::nextElement' => ['void'], + 'RecursiveIteratorIterator::rewind' => ['void'], + 'RecursiveIteratorIterator::setMaxDepth' => ['void', 'max_depth='=>'int'], + 'RecursiveIteratorIterator::valid' => ['bool'], + 'RecursiveRegexIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator', 'regex'=>'string', 'mode='=>'int', 'flags='=>'int', 'preg_flags='=>'int'], + 'RecursiveRegexIterator::accept' => ['bool'], + 'RecursiveRegexIterator::current' => ['mixed'], + 'RecursiveRegexIterator::getChildren' => ['RecursiveRegexIterator'], + 'RecursiveRegexIterator::getFlags' => ['int'], + 'RecursiveRegexIterator::getInnerIterator' => ['Iterator'], + 'RecursiveRegexIterator::getMode' => ['int'], + 'RecursiveRegexIterator::getPregFlags' => ['int'], + 'RecursiveRegexIterator::getRegex' => ['string'], + 'RecursiveRegexIterator::hasChildren' => ['bool'], + 'RecursiveRegexIterator::key' => ['mixed'], + 'RecursiveRegexIterator::next' => ['void'], + 'RecursiveRegexIterator::rewind' => ['void'], + 'RecursiveRegexIterator::setFlags' => ['void', 'new_flags'=>'int'], + 'RecursiveRegexIterator::setMode' => ['void', 'new_mode'=>'int'], + 'RecursiveRegexIterator::setPregFlags' => ['void', 'new_flags'=>'int'], + 'RecursiveRegexIterator::valid' => ['bool'], + 'RecursiveTreeIterator::__construct' => ['void', 'iterator'=>'RecursiveIterator|IteratorAggregate', 'flags='=>'int', 'cit_flags='=>'int', 'mode'=>'int'], + 'RecursiveTreeIterator::beginChildren' => ['void'], + 'RecursiveTreeIterator::beginIteration' => ['void'], + 'RecursiveTreeIterator::callGetChildren' => ['?RecursiveIterator'], + 'RecursiveTreeIterator::callHasChildren' => ['bool'], + 'RecursiveTreeIterator::current' => ['string'], + 'RecursiveTreeIterator::endChildren' => ['void'], + 'RecursiveTreeIterator::endIteration' => ['void'], + 'RecursiveTreeIterator::getDepth' => ['int'], + 'RecursiveTreeIterator::getEntry' => ['string'], + 'RecursiveTreeIterator::getInnerIterator' => ['RecursiveIterator'], + 'RecursiveTreeIterator::getMaxDepth' => ['false|int'], + 'RecursiveTreeIterator::getPostfix' => ['string'], + 'RecursiveTreeIterator::getPrefix' => ['string'], + 'RecursiveTreeIterator::getSubIterator' => ['?RecursiveIterator', 'level='=>'int'], + 'RecursiveTreeIterator::key' => ['string'], + 'RecursiveTreeIterator::next' => ['void'], + 'RecursiveTreeIterator::nextElement' => ['void'], + 'RecursiveTreeIterator::rewind' => ['void'], + 'RecursiveTreeIterator::setMaxDepth' => ['void', 'max_depth='=>'int'], + 'RecursiveTreeIterator::setPostfix' => ['void', 'prefix'=>'string'], + 'RecursiveTreeIterator::setPrefixPart' => ['void', 'part'=>'int', 'prefix'=>'string'], + 'RecursiveTreeIterator::valid' => ['bool'], + 'Redis::__construct' => ['void'], + 'Redis::__destruct' => ['void'], + 'Redis::_prefix' => ['string', 'value'=>'mixed'], + 'Redis::_serialize' => ['mixed', 'value'=>'mixed'], + 'Redis::_unserialize' => ['mixed', 'value'=>'string'], + 'Redis::append' => ['int', 'key'=>'string', 'value'=>'string'], + 'Redis::auth' => ['bool', 'password'=>'string'], + 'Redis::bgRewriteAOF' => ['bool'], + 'Redis::bgSave' => ['bool'], + 'Redis::bitCount' => ['int', 'key'=>'string'], + 'Redis::bitOp' => ['int', 'operation'=>'string', 'ret_key'=>'string', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::bitpos' => ['int', 'key'=>'string', 'bit'=>'int', 'start='=>'int', 'end='=>'int'], + 'Redis::blPop' => ['array', 'keys'=>'string[]', 'timeout'=>'int'], + 'Redis::blPop\'1' => ['array', 'key'=>'string', 'timeout_or_key'=>'int|string', '...extra_args'=>'int|string'], + 'Redis::brPop' => ['array', 'keys'=>'string[]', 'timeout'=>'int'], + 'Redis::brPop\'1' => ['array', 'key'=>'string', 'timeout_or_key'=>'int|string', '...extra_args'=>'int|string'], + 'Redis::brpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string', 'timeout'=>'int'], + 'Redis::clearLastError' => ['bool'], + 'Redis::client' => ['mixed', 'command'=>'string', 'arg='=>'string'], + 'Redis::close' => ['bool'], + 'Redis::command' => ['', '...args'=>''], + 'Redis::config' => ['string', 'operation'=>'string', 'key'=>'string', 'value='=>'string'], + 'Redis::connect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'reserved='=>'null', 'retry_interval='=>'?int', 'read_timeout='=>'float'], + 'Redis::dbSize' => ['int'], + 'Redis::debug' => ['', 'key'=>''], + 'Redis::decr' => ['int', 'key'=>'string'], + 'Redis::decrBy' => ['int', 'key'=>'string', 'value'=>'int'], + 'Redis::decrByFloat' => ['float', 'key'=>'string', 'value'=>'float'], + 'Redis::del' => ['int', 'key'=>'string', '...args'=>'string'], + 'Redis::del\'1' => ['int', 'key'=>'string[]'], + 'Redis::delete' => ['int', 'key'=>'string', '...args'=>'string'], + 'Redis::delete\'1' => ['int', 'key'=>'string[]'], + 'Redis::discard' => [''], + 'Redis::dump' => ['string|false', 'key'=>'string'], + 'Redis::echo' => ['string', 'message'=>'string'], + 'Redis::eval' => ['mixed', 'script'=>'', 'args='=>'', 'numKeys='=>''], + 'Redis::evalSha' => ['mixed', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], + 'Redis::evaluate' => ['mixed', 'script'=>'string', 'args='=>'array', 'numKeys='=>'int'], + 'Redis::evaluateSha' => ['', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], + 'Redis::exec' => ['array'], + 'Redis::exists' => ['int', 'keys'=>'string|string[]'], + 'Redis::exists\'1' => ['int', '...keys'=>'string'], + 'Redis::expire' => ['bool', 'key'=>'string', 'ttl'=>'int'], + 'Redis::expireAt' => ['bool', 'key'=>'string', 'expiry'=>'int'], + 'Redis::flushAll' => ['bool', 'async='=>'bool'], + 'Redis::flushDb' => ['bool', 'async='=>'bool'], + 'Redis::geoAdd' => ['int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'member'=>'string', '...other_triples='=>'string|int|float'], + 'Redis::geoDist' => ['float', 'key'=>'string', 'member1'=>'string', 'member2'=>'string', 'unit='=>'string'], + 'Redis::geoHash' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'Redis::geoPos' => ['array', 'key'=>'string', 'member'=>'string', '...members='=>'string'], + 'Redis::geoRadius' => ['array|int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'radius'=>'float', 'unit'=>'float', 'options='=>'array'], + 'Redis::geoRadiusByMember' => ['array|int', 'key'=>'string', 'member'=>'string', 'radius'=>'float', 'units'=>'string', 'options='=>'array'], + 'Redis::get' => ['string|false', 'key'=>'string'], + 'Redis::getAuth' => ['string|false|null'], + 'Redis::getBit' => ['int', 'key'=>'string', 'offset'=>'int'], + 'Redis::getDBNum' => ['int|false'], + 'Redis::getHost' => ['string|false'], + 'Redis::getKeys' => ['array', 'pattern'=>'string'], + 'Redis::getLastError' => ['?string'], + 'Redis::getMode' => ['int'], + 'Redis::getMultiple' => ['array', 'keys'=>'string[]'], + 'Redis::getOption' => ['int', 'name'=>'int'], + 'Redis::getPersistentID' => ['string|false|null'], + 'Redis::getPort' => ['int|false'], + 'Redis::getRange' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::getReadTimeout' => ['float|false'], + 'Redis::getSet' => ['string', 'key'=>'string', 'string'=>'string'], + 'Redis::getTimeout' => ['float|false'], + 'Redis::hDel' => ['int|false', 'key'=>'string', 'hashKey1'=>'string', '...otherHashKeys='=>'string'], + 'Redis::hExists' => ['bool', 'key'=>'string', 'hashKey'=>'string'], + 'Redis::hGet' => ['string|false', 'key'=>'string', 'hashKey'=>'string'], + 'Redis::hGetAll' => ['array', 'key'=>'string'], + 'Redis::hIncrBy' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'int'], + 'Redis::hIncrByFloat' => ['float', 'key'=>'string', 'field'=>'string', 'increment'=>'float'], + 'Redis::hKeys' => ['array', 'key'=>'string'], + 'Redis::hLen' => ['int|false', 'key'=>'string'], + 'Redis::hMGet' => ['array', 'key'=>'string', 'hashKeys'=>'array'], + 'Redis::hMSet' => ['bool', 'key'=>'string', 'hashKeys'=>'array'], + 'Redis::hScan' => ['array', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], + 'Redis::hSet' => ['int|false', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], + 'Redis::hSetNx' => ['bool', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], + 'Redis::hStrLen' => ['', 'key'=>'', 'member'=>''], + 'Redis::hVals' => ['array', 'key'=>'string'], + 'Redis::incr' => ['int', 'key'=>'string'], + 'Redis::incrBy' => ['int', 'key'=>'string', 'value'=>'int'], + 'Redis::incrByFloat' => ['float', 'key'=>'string', 'value'=>'float'], + 'Redis::info' => ['array', 'option='=>'string'], + 'Redis::isConnected' => ['bool'], + 'Redis::keys' => ['array', 'pattern'=>'string'], + 'Redis::lGet' => ['string', 'key'=>'string', 'index'=>'int'], + 'Redis::lGetRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::lIndex' => ['string|false', 'key'=>'string', 'index'=>'int'], + 'Redis::lInsert' => ['int', 'key'=>'string', 'position'=>'int', 'pivot'=>'string', 'value'=>'string'], + 'Redis::lLen' => ['int|false', 'key'=>'string'], + 'Redis::lPop' => ['string|false', 'key'=>'string'], + 'Redis::lPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'Redis::lPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], + 'Redis::lRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::lRem' => ['int|false', 'key'=>'string', 'value'=>'string', 'count'=>'int'], + 'Redis::lRemove' => ['int', 'key'=>'string', 'value'=>'string', 'count'=>'int'], + 'Redis::lSet' => ['bool', 'key'=>'string', 'index'=>'int', 'value'=>'string'], + 'Redis::lSize' => ['int', 'key'=>'string'], + 'Redis::lTrim' => ['array|false', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], + 'Redis::lastSave' => ['int'], + 'Redis::listTrim' => ['', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], + 'Redis::mGet' => ['array', 'keys'=>'string[]'], + 'Redis::mSet' => ['bool', 'pairs'=>'array'], + 'Redis::mSetNx' => ['bool', 'pairs'=>'array'], + 'Redis::migrate' => ['bool', 'host'=>'string', 'port'=>'int', 'key'=>'string|string[]', 'db'=>'int', 'timeout'=>'int', 'copy='=>'bool', 'replace='=>'bool'], + 'Redis::move' => ['bool', 'key'=>'string', 'dbindex'=>'int'], + 'Redis::multi' => ['Redis', 'mode='=>'int'], + 'Redis::object' => ['string|long|false', 'info'=>'string', 'key'=>'string'], + 'Redis::open' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'reserved='=>'null', 'retry_interval='=>'?int', 'read_timeout='=>'float'], + 'Redis::pExpire' => ['bool', 'key'=>'string', 'ttl'=>'int'], + 'Redis::pconnect' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'persistent_id='=>'string', 'retry_interval='=>'?int'], + 'Redis::persist' => ['bool', 'key'=>'string'], + 'Redis::pexpireAt' => ['bool', 'key'=>'string', 'expiry'=>'int'], + 'Redis::pfAdd' => ['bool', 'key'=>'string', 'elements'=>'array'], + 'Redis::pfCount' => ['int', 'key'=>'array|string'], + 'Redis::pfMerge' => ['bool', 'destkey'=>'string', 'sourcekeys'=>'array'], + 'Redis::ping' => ['string'], + 'Redis::pipeline' => ['Redis'], + 'Redis::popen' => ['bool', 'host'=>'string', 'port='=>'int', 'timeout='=>'float', 'persistent_id='=>'string', 'retry_interval='=>'?int'], + 'Redis::psetex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'Redis::psubscribe' => ['', 'patterns'=>'array', 'callback'=>'array|string'], + 'Redis::pttl' => ['int|false', 'key'=>'string'], + 'Redis::publish' => ['int', 'channel'=>'string', 'message'=>'string'], + 'Redis::pubsub' => ['array|int', 'keyword'=>'string', 'argument='=>'array|string'], + 'Redis::punsubscribe' => ['', 'pattern'=>'string', '...other_patterns='=>'string'], + 'Redis::rPop' => ['string|false', 'key'=>'string'], + 'Redis::rPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'Redis::rPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], + 'Redis::randomKey' => ['string'], + 'Redis::rawCommand' => ['mixed', 'command'=>'string', '...arguments='=>'mixed'], + 'Redis::rename' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], + 'Redis::renameKey' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], + 'Redis::renameNx' => ['bool', 'srckey'=>'string', 'dstkey'=>'string'], + 'Redis::resetStat' => ['bool'], + 'Redis::restore' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'Redis::role' => ['array', 'nodeParams'=>'string|array{0:string,1:int}'], + 'Redis::rpoplpush' => ['string', 'srcKey'=>'string', 'dstKey'=>'string'], + 'Redis::sAdd' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'Redis::sAddArray' => ['bool', 'key'=>'string', 'values'=>'array'], + 'Redis::sCard' => ['int', 'key'=>'string'], + 'Redis::sContains' => ['', 'key'=>'string', 'value'=>'string'], + 'Redis::sDiff' => ['array', 'key1'=>'string', '...other_keys='=>'string'], + 'Redis::sDiffStore' => ['int|false', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::sGetMembers' => ['', 'key'=>'string'], + 'Redis::sInter' => ['array|false', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::sInterStore' => ['int|false', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::sIsMember' => ['bool', 'key'=>'string', 'value'=>'string'], + 'Redis::sMembers' => ['array', 'key'=>'string'], + 'Redis::sMove' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string', 'member'=>'string'], + 'Redis::sPop' => ['string|false', 'key'=>'string'], + 'Redis::sRandMember' => ['array|string|false', 'key'=>'string', 'count='=>'int'], + 'Redis::sRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], + 'Redis::sRemove' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], + 'Redis::sScan' => ['array|bool', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], + 'Redis::sSize' => ['int', 'key'=>'string'], + 'Redis::sUnion' => ['array', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::sUnionStore' => ['int', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::save' => ['bool'], + 'Redis::scan' => ['array|false', '&rw_iterator'=>'?int', 'pattern='=>'?string', 'count='=>'?int'], + 'Redis::script' => ['mixed', 'command'=>'string', '...args='=>'mixed'], + 'Redis::select' => ['bool', 'dbindex'=>'int'], + 'Redis::sendEcho' => ['string', 'msg'=>'string'], + 'Redis::set' => ['bool', 'key'=>'string', 'value'=>'mixed', 'options='=>'array'], + 'Redis::set\'1' => ['bool', 'key'=>'string', 'value'=>'mixed', 'timeout='=>'int'], + 'Redis::setBit' => ['int', 'key'=>'string', 'offset'=>'int', 'value'=>'int'], + 'Redis::setEx' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'Redis::setNx' => ['bool', 'key'=>'string', 'value'=>'string'], + 'Redis::setOption' => ['bool', 'name'=>'int', 'value'=>'mixed'], + 'Redis::setRange' => ['int', 'key'=>'string', 'offset'=>'int', 'end'=>'int'], + 'Redis::setTimeout' => ['', 'key'=>'string', 'ttl'=>'int'], + 'Redis::slave' => ['bool', 'host'=>'string', 'port'=>'int'], + 'Redis::slave\'1' => ['bool', 'host'=>'string', 'port'=>'int'], + 'Redis::slaveof' => ['bool', 'host='=>'string', 'port='=>'int'], + 'Redis::slowLog' => ['mixed', 'operation'=>'string', 'length='=>'int'], + 'Redis::sort' => ['array|int', 'key'=>'string', 'options='=>'array'], + 'Redis::sortAsc' => ['array', 'key'=>'string', 'pattern='=>'string', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], + 'Redis::sortAscAlpha' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], + 'Redis::sortDesc' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], + 'Redis::sortDescAlpha' => ['array', 'key'=>'string', 'pattern='=>'', 'get='=>'string', 'start='=>'int', 'end='=>'int', 'getList='=>'bool'], + 'Redis::strLen' => ['int', 'key'=>'string'], + 'Redis::subscribe' => ['mixed|null', 'channels'=>'array', 'callback'=>'string|array'], + 'Redis::substr' => ['', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::swapdb' => ['bool', 'srcdb'=>'int', 'dstdb'=>'int'], + 'Redis::time' => ['array'], + 'Redis::ttl' => ['int|false', 'key'=>'string'], + 'Redis::type' => ['int', 'key'=>'string'], + 'Redis::unlink' => ['int', 'key'=>'string', '...args'=>'string'], + 'Redis::unlink\'1' => ['int', 'key'=>'string[]'], + 'Redis::unsubscribe' => ['', 'channel'=>'string', '...other_channels='=>'string'], + 'Redis::unwatch' => [''], + 'Redis::wait' => ['int', 'numSlaves'=>'int', 'timeout'=>'int'], + 'Redis::watch' => ['void', 'key'=>'string', '...other_keys='=>'string'], + 'Redis::xack' => ['', 'str_key'=>'string', 'str_group'=>'string', 'arr_ids'=>'array'], + 'Redis::xadd' => ['', 'str_key'=>'string', 'str_id'=>'string', 'arr_fields'=>'array', 'i_maxlen='=>'', 'boo_approximate='=>''], + 'Redis::xclaim' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_consumer'=>'string', 'i_min_idle'=>'', 'arr_ids'=>'array', 'arr_opts='=>'array'], + 'Redis::xdel' => ['', 'str_key'=>'string', 'arr_ids'=>'array'], + 'Redis::xgroup' => ['', 'str_operation'=>'string', 'str_key='=>'string', 'str_arg1='=>'', 'str_arg2='=>'', 'str_arg3='=>''], + 'Redis::xinfo' => ['', 'str_cmd'=>'string', 'str_key='=>'string', 'str_group='=>'string'], + 'Redis::xlen' => ['', 'key'=>''], + 'Redis::xpending' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_start='=>'', 'str_end='=>'', 'i_count='=>'', 'str_consumer='=>'string'], + 'Redis::xrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], + 'Redis::xread' => ['', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], + 'Redis::xreadgroup' => ['', 'str_group'=>'string', 'str_consumer'=>'string', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], + 'Redis::xrevrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], + 'Redis::xtrim' => ['', 'str_key'=>'string', 'i_maxlen'=>'', 'boo_approximate='=>''], + 'Redis::zAdd' => ['int', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], + 'Redis::zAdd\'1' => ['int', 'options'=>'array', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], + 'Redis::zCard' => ['int', 'key'=>'string'], + 'Redis::zCount' => ['int', 'key'=>'string', 'start'=>'string', 'end'=>'string'], + 'Redis::zDelete' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'Redis::zDeleteRangeByRank' => ['', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::zDeleteRangeByScore' => ['', 'key'=>'string', 'start'=>'float', 'end'=>'float'], + 'Redis::zIncrBy' => ['float', 'key'=>'string', 'value'=>'float', 'member'=>'string'], + 'Redis::zInter' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'Redis::zInterStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'Redis::zLexCount' => ['int', 'key'=>'string', 'min'=>'string', 'max'=>'string'], + 'Redis::zRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscores='=>'bool'], + 'Redis::zRangeByLex' => ['array|false', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], + 'Redis::zRangeByScore' => ['array', 'key'=>'string', 'start'=>'int|string', 'end'=>'int|string', 'options='=>'array'], + 'Redis::zRank' => ['int', 'key'=>'string', 'member'=>'string'], + 'Redis::zRem' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'Redis::zRemRangeByLex' => ['int', 'key'=>'string', 'min'=>'string', 'max'=>'string'], + 'Redis::zRemRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::zRemRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], + 'Redis::zRemove' => ['int', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'Redis::zRemoveRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'Redis::zRemoveRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], + 'Redis::zRevRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], + 'Redis::zRevRangeByLex' => ['array', 'key'=>'string', 'min'=>'string', 'max'=>'string', 'offset='=>'int', 'limit='=>'int'], + 'Redis::zRevRangeByScore' => ['array', 'key'=>'string', 'start'=>'string', 'end'=>'string', 'options='=>'array'], + 'Redis::zRevRank' => ['int', 'key'=>'string', 'member'=>'string'], + 'Redis::zReverseRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], + 'Redis::zScan' => ['array|bool', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], + 'Redis::zScore' => ['float|false', 'key'=>'string', 'member'=>'string'], + 'Redis::zSize' => ['', 'key'=>'string'], + 'Redis::zUnion' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'Redis::zUnionStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'RedisArray::__call' => ['mixed', 'function_name'=>'string', 'arguments'=>'array'], + 'RedisArray::__construct' => ['void', 'name='=>'string', 'hosts='=>'?array', 'opts='=>'?array'], + 'RedisArray::_continuum' => [''], + 'RedisArray::_distributor' => [''], + 'RedisArray::_function' => ['string'], + 'RedisArray::_hosts' => ['array'], + 'RedisArray::_instance' => ['', 'host'=>''], + 'RedisArray::_rehash' => ['', 'callable='=>'callable'], + 'RedisArray::_target' => ['string', 'key'=>'string'], + 'RedisArray::bgsave' => [''], + 'RedisArray::del' => ['bool', 'key'=>'string', '...args'=>'string'], + 'RedisArray::delete' => ['bool', 'key'=>'string', '...args'=>'string'], + 'RedisArray::delete\'1' => ['bool', 'key'=>'string[]'], + 'RedisArray::discard' => [''], + 'RedisArray::exec' => ['array'], + 'RedisArray::flushAll' => ['bool', 'async='=>'bool'], + 'RedisArray::flushDb' => ['bool', 'async='=>'bool'], + 'RedisArray::getMultiple' => ['', 'keys'=>''], + 'RedisArray::getOption' => ['', 'opt'=>''], + 'RedisArray::info' => ['array'], + 'RedisArray::keys' => ['array', 'pattern'=>''], + 'RedisArray::mGet' => ['array', 'keys'=>'string[]'], + 'RedisArray::mSet' => ['bool', 'pairs'=>'array'], + 'RedisArray::multi' => ['RedisArray', 'host'=>'string', 'mode='=>'int'], + 'RedisArray::ping' => ['string'], + 'RedisArray::save' => ['bool'], + 'RedisArray::select' => ['', 'index'=>''], + 'RedisArray::setOption' => ['', 'opt'=>'', 'value'=>''], + 'RedisArray::unlink' => ['int', 'key'=>'string', '...other_keys='=>'string'], + 'RedisArray::unlink\'1' => ['int', 'key'=>'string[]'], + 'RedisArray::unwatch' => [''], + 'RedisCluster::__construct' => ['void', 'name'=>'?string', 'seeds='=>'string[]', 'timeout='=>'float', 'readTimeout='=>'float', 'persistent='=>'bool', 'auth='=>'?string'], + 'RedisCluster::_masters' => ['array'], + 'RedisCluster::_prefix' => ['string', 'value'=>'mixed'], + 'RedisCluster::_redir' => [''], + 'RedisCluster::_serialize' => ['mixed', 'value'=>'mixed'], + 'RedisCluster::_unserialize' => ['mixed', 'value'=>'string'], + 'RedisCluster::append' => ['int', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::bgrewriteaof' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::bgsave' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::bitCount' => ['int', 'key'=>'string'], + 'RedisCluster::bitOp' => ['int', 'operation'=>'string', 'retKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], + 'RedisCluster::bitpos' => ['int', 'key'=>'string', 'bit'=>'int', 'start='=>'int', 'end='=>'int'], + 'RedisCluster::blPop' => ['array', 'keys'=>'array', 'timeout'=>'int'], + 'RedisCluster::brPop' => ['array', 'keys'=>'array', 'timeout'=>'int'], + 'RedisCluster::brpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string', 'timeout'=>'int'], + 'RedisCluster::clearLastError' => ['bool'], + 'RedisCluster::client' => ['', 'nodeParams'=>'string|array{0:string,1:int}', 'subCmd='=>'string', '...args='=>''], + 'RedisCluster::close' => [''], + 'RedisCluster::cluster' => ['mixed', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'arguments='=>'mixed'], + 'RedisCluster::command' => ['array|bool'], + 'RedisCluster::config' => ['array|bool', 'nodeParams'=>'string|array{0:string,1:int}', 'operation'=>'string', 'key'=>'string', 'value='=>'string'], + 'RedisCluster::dbSize' => ['int', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::decr' => ['int', 'key'=>'string'], + 'RedisCluster::decrBy' => ['int', 'key'=>'string', 'value'=>'int'], + 'RedisCluster::del' => ['int', 'key'=>'string', '...other_keys='=>'string'], + 'RedisCluster::del\'1' => ['int', 'key'=>'string[]'], + 'RedisCluster::discard' => [''], + 'RedisCluster::dump' => ['string|false', 'key'=>'string'], + 'RedisCluster::echo' => ['string', 'nodeParams'=>'string|array{0:string,1:int}', 'msg'=>'string'], + 'RedisCluster::eval' => ['mixed', 'script'=>'', 'args='=>'', 'numKeys='=>''], + 'RedisCluster::evalSha' => ['mixed', 'scriptSha'=>'string', 'args='=>'array', 'numKeys='=>'int'], + 'RedisCluster::exec' => ['array|void'], + 'RedisCluster::exists' => ['bool', 'key'=>'string'], + 'RedisCluster::expire' => ['bool', 'key'=>'string', 'ttl'=>'int'], + 'RedisCluster::expireAt' => ['bool', 'key'=>'string', 'timestamp'=>'int'], + 'RedisCluster::flushAll' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}', 'async='=>'bool'], + 'RedisCluster::flushDB' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}', 'async='=>'bool'], + 'RedisCluster::geoAdd' => ['int', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'member'=>'string', '...other_members='=>'float|string'], + 'RedisCluster::geoDist' => ['', 'key'=>'string', 'member1'=>'string', 'member2'=>'string', 'unit='=>'string'], + 'RedisCluster::geoRadius' => ['', 'key'=>'string', 'longitude'=>'float', 'latitude'=>'float', 'radius'=>'float', 'radiusUnit'=>'string', 'options='=>'array'], + 'RedisCluster::geoRadiusByMember' => ['string[]', 'key'=>'string', 'member'=>'string', 'radius'=>'float', 'radiusUnit'=>'string', 'options='=>'array'], + 'RedisCluster::geohash' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'RedisCluster::geopos' => ['array', 'key'=>'string', 'member'=>'string', '...other_members='=>'string'], + 'RedisCluster::get' => ['string|false', 'key'=>'string'], + 'RedisCluster::getBit' => ['int', 'key'=>'string', 'offset'=>'int'], + 'RedisCluster::getLastError' => ['?string'], + 'RedisCluster::getMode' => ['int'], + 'RedisCluster::getOption' => ['int', 'option'=>'int'], + 'RedisCluster::getRange' => ['string', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'RedisCluster::getSet' => ['string', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::hDel' => ['int|false', 'key'=>'string', 'hashKey'=>'string', '...other_hashKeys='=>'string[]'], + 'RedisCluster::hExists' => ['bool', 'key'=>'string', 'hashKey'=>'string'], + 'RedisCluster::hGet' => ['string|false', 'key'=>'string', 'hashKey'=>'string'], + 'RedisCluster::hGetAll' => ['array', 'key'=>'string'], + 'RedisCluster::hIncrBy' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'int'], + 'RedisCluster::hIncrByFloat' => ['float', 'key'=>'string', 'field'=>'string', 'increment'=>'float'], + 'RedisCluster::hKeys' => ['array', 'key'=>'string'], + 'RedisCluster::hLen' => ['int|false', 'key'=>'string'], + 'RedisCluster::hMGet' => ['array', 'key'=>'string', 'hashKeys'=>'array'], + 'RedisCluster::hMSet' => ['bool', 'key'=>'string', 'hashKeys'=>'array'], + 'RedisCluster::hScan' => ['array', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], + 'RedisCluster::hSet' => ['int', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], + 'RedisCluster::hSetNx' => ['bool', 'key'=>'string', 'hashKey'=>'string', 'value'=>'string'], + 'RedisCluster::hStrlen' => ['int', 'key'=>'string', 'member'=>'string'], + 'RedisCluster::hVals' => ['array', 'key'=>'string'], + 'RedisCluster::incr' => ['int', 'key'=>'string'], + 'RedisCluster::incrBy' => ['int', 'key'=>'string', 'value'=>'int'], + 'RedisCluster::incrByFloat' => ['float', 'key'=>'string', 'increment'=>'float'], + 'RedisCluster::info' => ['array', 'nodeParams'=>'string|array{0:string,1:int}', 'option='=>'string'], + 'RedisCluster::keys' => ['array', 'pattern'=>'string'], + 'RedisCluster::lGet' => ['', 'key'=>'string', 'index'=>'int'], + 'RedisCluster::lIndex' => ['string|false', 'key'=>'string', 'index'=>'int'], + 'RedisCluster::lInsert' => ['int', 'key'=>'string', 'position'=>'int', 'pivot'=>'string', 'value'=>'string'], + 'RedisCluster::lLen' => ['int', 'key'=>'string'], + 'RedisCluster::lPop' => ['string|false', 'key'=>'string'], + 'RedisCluster::lPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'RedisCluster::lPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::lRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'RedisCluster::lRem' => ['int|false', 'key'=>'string', 'value'=>'string', 'count'=>'int'], + 'RedisCluster::lSet' => ['bool', 'key'=>'string', 'index'=>'int', 'value'=>'string'], + 'RedisCluster::lTrim' => ['array|false', 'key'=>'string', 'start'=>'int', 'stop'=>'int'], + 'RedisCluster::lastSave' => ['int', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::mget' => ['array', 'array'=>'array'], + 'RedisCluster::mset' => ['bool', 'array'=>'array'], + 'RedisCluster::msetnx' => ['int', 'array'=>'array'], + 'RedisCluster::multi' => ['Redis', 'mode='=>'int'], + 'RedisCluster::object' => ['string|int|false', 'string'=>'string', 'key'=>'string'], + 'RedisCluster::pExpire' => ['bool', 'key'=>'string', 'ttl'=>'int'], + 'RedisCluster::pExpireAt' => ['bool', 'key'=>'string', 'timestamp'=>'int'], + 'RedisCluster::persist' => ['bool', 'key'=>'string'], + 'RedisCluster::pfAdd' => ['bool', 'key'=>'string', 'elements'=>'array'], + 'RedisCluster::pfCount' => ['int', 'key'=>'string'], + 'RedisCluster::pfMerge' => ['bool', 'destKey'=>'string', 'sourceKeys'=>'array'], + 'RedisCluster::ping' => ['string', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::psetex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'RedisCluster::psubscribe' => ['mixed', 'patterns'=>'array', 'callback'=>'string'], + 'RedisCluster::pttl' => ['int', 'key'=>'string'], + 'RedisCluster::publish' => ['int', 'channel'=>'string', 'message'=>'string'], + 'RedisCluster::pubsub' => ['array', 'nodeParams'=>'string', 'keyword'=>'string', '...argument='=>'string'], + 'RedisCluster::punSubscribe' => ['', 'channels'=>'', 'callback'=>''], + 'RedisCluster::rPop' => ['string|false', 'key'=>'string'], + 'RedisCluster::rPush' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'RedisCluster::rPushx' => ['int|false', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::randomKey' => ['string', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::rawCommand' => ['mixed', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'arguments='=>'mixed'], + 'RedisCluster::rename' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string'], + 'RedisCluster::renameNx' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string'], + 'RedisCluster::restore' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'RedisCluster::role' => ['array'], + 'RedisCluster::rpoplpush' => ['string|false', 'srcKey'=>'string', 'dstKey'=>'string'], + 'RedisCluster::sAdd' => ['int|false', 'key'=>'string', 'value1'=>'string', 'value2='=>'string', 'valueN='=>'string'], + 'RedisCluster::sAddArray' => ['int|false', 'key'=>'string', 'valueArray'=>'array'], + 'RedisCluster::sCard' => ['int', 'key'=>'string'], + 'RedisCluster::sDiff' => ['list', 'key1'=>'string', 'key2'=>'string', '...other_keys='=>'string'], + 'RedisCluster::sDiffStore' => ['int', 'dstKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], + 'RedisCluster::sInter' => ['list', 'key'=>'string', '...other_keys='=>'string'], + 'RedisCluster::sInterStore' => ['int', 'dstKey'=>'string', 'key'=>'string', '...other_keys='=>'string'], + 'RedisCluster::sIsMember' => ['bool', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::sMembers' => ['list', 'key'=>'string'], + 'RedisCluster::sMove' => ['bool', 'srcKey'=>'string', 'dstKey'=>'string', 'member'=>'string'], + 'RedisCluster::sPop' => ['string', 'key'=>'string'], + 'RedisCluster::sRandMember' => ['array|string', 'key'=>'string', 'count='=>'int'], + 'RedisCluster::sRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], + 'RedisCluster::sScan' => ['array|false', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'null', 'count='=>'int'], + 'RedisCluster::sUnion' => ['list', 'key1'=>'string', '...other_keys='=>'string'], + 'RedisCluster::sUnion\'1' => ['list', 'keys'=>'string[]'], + 'RedisCluster::sUnionStore' => ['int', 'dstKey'=>'string', 'key1'=>'string', '...other_keys='=>'string'], + 'RedisCluster::save' => ['bool', 'nodeParams'=>'string|array{0:string,1:int}'], + 'RedisCluster::scan' => ['array|false', '&iterator'=>'int', 'nodeParams'=>'string|array{0:string,1:int}', 'pattern='=>'string', 'count='=>'int'], + 'RedisCluster::script' => ['string|bool|array', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'script='=>'string', '...other_scripts='=>'string[]'], + 'RedisCluster::set' => ['bool', 'key'=>'string', 'value'=>'string', 'timeout='=>'array|int'], + 'RedisCluster::setBit' => ['int', 'key'=>'string', 'offset'=>'int', 'value'=>'bool|int'], + 'RedisCluster::setOption' => ['bool', 'option'=>'int', 'value'=>'string|int'], + 'RedisCluster::setRange' => ['string', 'key'=>'string', 'offset'=>'int', 'value'=>'string'], + 'RedisCluster::setex' => ['bool', 'key'=>'string', 'ttl'=>'int', 'value'=>'string'], + 'RedisCluster::setnx' => ['bool', 'key'=>'string', 'value'=>'string'], + 'RedisCluster::slowLog' => ['array|int|bool', 'nodeParams'=>'string|array{0:string,1:int}', 'command'=>'string', 'length='=>'int'], + 'RedisCluster::sort' => ['array', 'key'=>'string', 'option='=>'array'], + 'RedisCluster::strlen' => ['int', 'key'=>'string'], + 'RedisCluster::subscribe' => ['mixed', 'channels'=>'array', 'callback'=>'string'], + 'RedisCluster::time' => ['array'], + 'RedisCluster::ttl' => ['int', 'key'=>'string'], + 'RedisCluster::type' => ['int', 'key'=>'string'], + 'RedisCluster::unSubscribe' => ['', 'channels'=>'', '...other_channels='=>''], + 'RedisCluster::unlink' => ['int', 'key'=>'string', '...other_keys='=>'string'], + 'RedisCluster::unwatch' => [''], + 'RedisCluster::watch' => ['void', 'key'=>'string', '...other_keys='=>'string'], + 'RedisCluster::xack' => ['', 'str_key'=>'string', 'str_group'=>'string', 'arr_ids'=>'array'], + 'RedisCluster::xadd' => ['', 'str_key'=>'string', 'str_id'=>'string', 'arr_fields'=>'array', 'i_maxlen='=>'', 'boo_approximate='=>''], + 'RedisCluster::xclaim' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_consumer'=>'string', 'i_min_idle'=>'', 'arr_ids'=>'array', 'arr_opts='=>'array'], + 'RedisCluster::xdel' => ['', 'str_key'=>'string', 'arr_ids'=>'array'], + 'RedisCluster::xgroup' => ['', 'str_operation'=>'string', 'str_key='=>'string', 'str_arg1='=>'', 'str_arg2='=>'', 'str_arg3='=>''], + 'RedisCluster::xinfo' => ['', 'str_cmd'=>'string', 'str_key='=>'string', 'str_group='=>'string'], + 'RedisCluster::xlen' => ['', 'key'=>''], + 'RedisCluster::xpending' => ['', 'str_key'=>'string', 'str_group'=>'string', 'str_start='=>'', 'str_end='=>'', 'i_count='=>'', 'str_consumer='=>'string'], + 'RedisCluster::xrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], + 'RedisCluster::xread' => ['', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], + 'RedisCluster::xreadgroup' => ['', 'str_group'=>'string', 'str_consumer'=>'string', 'arr_streams'=>'array', 'i_count='=>'', 'i_block='=>''], + 'RedisCluster::xrevrange' => ['', 'str_key'=>'string', 'str_start'=>'', 'str_end'=>'', 'i_count='=>''], + 'RedisCluster::xtrim' => ['', 'str_key'=>'string', 'i_maxlen'=>'', 'boo_approximate='=>''], + 'RedisCluster::zAdd' => ['int', 'key'=>'string', 'score1'=>'float', 'value1'=>'string', 'score2='=>'float', 'value2='=>'string', 'scoreN='=>'float', 'valueN='=>'string'], + 'RedisCluster::zCard' => ['int', 'key'=>'string'], + 'RedisCluster::zCount' => ['int', 'key'=>'string', 'start'=>'string', 'end'=>'string'], + 'RedisCluster::zIncrBy' => ['float', 'key'=>'string', 'value'=>'float', 'member'=>'string'], + 'RedisCluster::zInterStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'RedisCluster::zLexCount' => ['int', 'key'=>'string', 'min'=>'int', 'max'=>'int'], + 'RedisCluster::zRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscores='=>'bool'], + 'RedisCluster::zRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], + 'RedisCluster::zRangeByScore' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'options='=>'array'], + 'RedisCluster::zRank' => ['int', 'key'=>'string', 'member'=>'string'], + 'RedisCluster::zRem' => ['int', 'key'=>'string', 'member1'=>'string', '...other_members='=>'string'], + 'RedisCluster::zRemRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int'], + 'RedisCluster::zRemRangeByRank' => ['int', 'key'=>'string', 'start'=>'int', 'end'=>'int'], + 'RedisCluster::zRemRangeByScore' => ['int', 'key'=>'string', 'start'=>'float|string', 'end'=>'float|string'], + 'RedisCluster::zRevRange' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'withscore='=>'bool'], + 'RedisCluster::zRevRangeByLex' => ['array', 'key'=>'string', 'min'=>'int', 'max'=>'int', 'offset='=>'int', 'limit='=>'int'], + 'RedisCluster::zRevRangeByScore' => ['array', 'key'=>'string', 'start'=>'int', 'end'=>'int', 'options='=>'array'], + 'RedisCluster::zRevRank' => ['int', 'key'=>'string', 'member'=>'string'], + 'RedisCluster::zScan' => ['array|false', 'key'=>'string', '&iterator'=>'int', 'pattern='=>'string', 'count='=>'int'], + 'RedisCluster::zScore' => ['float', 'key'=>'string', 'member'=>'string'], + 'RedisCluster::zUnionStore' => ['int', 'Output'=>'string', 'ZSetKeys'=>'array', 'Weights='=>'?array', 'aggregateFunction='=>'string'], + 'Reflection::export' => ['?string', 'r'=>'reflector', 'return='=>'bool'], + 'Reflection::getModifierNames' => ['list', 'modifiers'=>'int'], + 'ReflectionClass::__clone' => ['void'], + 'ReflectionClass::__construct' => ['void', 'argument'=>'object|class-string'], + 'ReflectionClass::__toString' => ['string'], + 'ReflectionClass::export' => ['?string', 'argument'=>'string|object', 'return='=>'bool'], + 'ReflectionClass::getConstant' => ['mixed', 'name'=>'string'], + 'ReflectionClass::getConstants' => ['array'], + 'ReflectionClass::getConstructor' => ['?ReflectionMethod'], + 'ReflectionClass::getDefaultProperties' => ['array'], + 'ReflectionClass::getDocComment' => ['string|false'], + 'ReflectionClass::getEndLine' => ['int|false'], + 'ReflectionClass::getExtension' => ['?ReflectionExtension'], + 'ReflectionClass::getExtensionName' => ['string|false'], + 'ReflectionClass::getFileName' => ['string|false'], + 'ReflectionClass::getInterfaceNames' => ['list'], + 'ReflectionClass::getInterfaces' => ['array'], + 'ReflectionClass::getMethod' => ['ReflectionMethod', 'name'=>'string'], + 'ReflectionClass::getMethods' => ['list', 'filter='=>'int'], + 'ReflectionClass::getModifiers' => ['int'], + 'ReflectionClass::getName' => ['class-string'], + 'ReflectionClass::getNamespaceName' => ['string'], + 'ReflectionClass::getParentClass' => ['ReflectionClass|false'], + 'ReflectionClass::getProperties' => ['list', 'filter='=>'int'], + 'ReflectionClass::getProperty' => ['ReflectionProperty', 'name'=>'string'], + 'ReflectionClass::getReflectionConstant' => ['ReflectionClassConstant|false', 'name'=>'string'], + 'ReflectionClass::getReflectionConstants' => ['list'], + 'ReflectionClass::getShortName' => ['string'], + 'ReflectionClass::getStartLine' => ['int|false'], + 'ReflectionClass::getStaticProperties' => ['array'], + 'ReflectionClass::getStaticPropertyValue' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'ReflectionClass::getTraitAliases' => ['array'], + 'ReflectionClass::getTraitNames' => ['list'], + 'ReflectionClass::getTraits' => ['array'], + 'ReflectionClass::hasConstant' => ['bool', 'name'=>'string'], + 'ReflectionClass::hasMethod' => ['bool', 'name'=>'string'], + 'ReflectionClass::hasProperty' => ['bool', 'name'=>'string'], + 'ReflectionClass::implementsInterface' => ['bool', 'interface_name'=>'interface-string|ReflectionClass'], + 'ReflectionClass::inNamespace' => ['bool'], + 'ReflectionClass::isAbstract' => ['bool'], + 'ReflectionClass::isAnonymous' => ['bool'], + 'ReflectionClass::isCloneable' => ['bool'], + 'ReflectionClass::isFinal' => ['bool'], + 'ReflectionClass::isInstance' => ['bool', 'object'=>'object'], + 'ReflectionClass::isInstantiable' => ['bool'], + 'ReflectionClass::isInterface' => ['bool'], + 'ReflectionClass::isInternal' => ['bool'], + 'ReflectionClass::isIterateable' => ['bool'], + 'ReflectionClass::isSubclassOf' => ['bool', 'class'=>'class-string|ReflectionClass'], + 'ReflectionClass::isTrait' => ['bool'], + 'ReflectionClass::isUserDefined' => ['bool'], + 'ReflectionClass::newInstance' => ['object', '...args='=>'mixed'], + 'ReflectionClass::newInstanceArgs' => ['object', 'args='=>'list'], + 'ReflectionClass::newInstanceWithoutConstructor' => ['object'], + 'ReflectionClass::setStaticPropertyValue' => ['void', 'name'=>'string', 'value'=>'mixed'], + 'ReflectionClassConstant::__construct' => ['void', 'class'=>'mixed', 'name'=>'string'], + 'ReflectionClassConstant::__toString' => ['string'], + 'ReflectionClassConstant::export' => ['string', 'class'=>'mixed', 'name'=>'string', 'return='=>'bool'], + 'ReflectionClassConstant::getDeclaringClass' => ['ReflectionClass'], + 'ReflectionClassConstant::getDocComment' => ['string|false'], + 'ReflectionClassConstant::getModifiers' => ['int'], + 'ReflectionClassConstant::getName' => ['string'], + 'ReflectionClassConstant::getValue' => ['scalar|array|null'], + 'ReflectionClassConstant::isPrivate' => ['bool'], + 'ReflectionClassConstant::isProtected' => ['bool'], + 'ReflectionClassConstant::isPublic' => ['bool'], + 'ReflectionExtension::__clone' => ['void'], + 'ReflectionExtension::__construct' => ['void', 'name'=>'string'], + 'ReflectionExtension::__toString' => ['string'], + 'ReflectionExtension::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionExtension::getClassNames' => ['list'], + 'ReflectionExtension::getClasses' => ['array'], + 'ReflectionExtension::getConstants' => ['array'], + 'ReflectionExtension::getDependencies' => ['array'], + 'ReflectionExtension::getFunctions' => ['array'], + 'ReflectionExtension::getINIEntries' => ['array'], + 'ReflectionExtension::getName' => ['string'], + 'ReflectionExtension::getVersion' => ['?string'], + 'ReflectionExtension::info' => ['void'], + 'ReflectionExtension::isPersistent' => ['bool'], + 'ReflectionExtension::isTemporary' => ['bool'], + 'ReflectionFunction::__construct' => ['void', 'name'=>'callable-string|Closure'], + 'ReflectionFunction::__toString' => ['string'], + 'ReflectionFunction::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionFunction::getClosure' => ['Closure'], + 'ReflectionFunction::getClosureScopeClass' => ['ReflectionClass'], + 'ReflectionFunction::getClosureThis' => ['object'], + 'ReflectionFunction::getDocComment' => ['string|false'], + 'ReflectionFunction::getEndLine' => ['int|false'], + 'ReflectionFunction::getExtension' => ['?ReflectionExtension'], + 'ReflectionFunction::getExtensionName' => ['string|false'], + 'ReflectionFunction::getFileName' => ['string|false'], + 'ReflectionFunction::getName' => ['callable-string'], + 'ReflectionFunction::getNamespaceName' => ['string'], + 'ReflectionFunction::getNumberOfParameters' => ['int'], + 'ReflectionFunction::getNumberOfRequiredParameters' => ['int'], + 'ReflectionFunction::getParameters' => ['list'], + 'ReflectionFunction::getReturnType' => ['?ReflectionType'], + 'ReflectionFunction::getShortName' => ['string'], + 'ReflectionFunction::getStartLine' => ['int|false'], + 'ReflectionFunction::getStaticVariables' => ['array'], + 'ReflectionFunction::hasReturnType' => ['bool'], + 'ReflectionFunction::inNamespace' => ['bool'], + 'ReflectionFunction::invoke' => ['mixed', '...args='=>'mixed'], + 'ReflectionFunction::invokeArgs' => ['mixed', 'args'=>'array'], + 'ReflectionFunction::isClosure' => ['bool'], + 'ReflectionFunction::isDeprecated' => ['bool'], + 'ReflectionFunction::isDisabled' => ['bool'], + 'ReflectionFunction::isGenerator' => ['bool'], + 'ReflectionFunction::isInternal' => ['bool'], + 'ReflectionFunction::isUserDefined' => ['bool'], + 'ReflectionFunction::isVariadic' => ['bool'], + 'ReflectionFunction::returnsReference' => ['bool'], + 'ReflectionFunctionAbstract::__clone' => ['void'], + 'ReflectionFunctionAbstract::__toString' => ['string'], + 'ReflectionFunctionAbstract::export' => ['?string'], + 'ReflectionFunctionAbstract::getClosureScopeClass' => ['ReflectionClass|null'], + 'ReflectionFunctionAbstract::getClosureThis' => ['object|null'], + 'ReflectionFunctionAbstract::getDocComment' => ['string|false'], + 'ReflectionFunctionAbstract::getEndLine' => ['int|false'], + 'ReflectionFunctionAbstract::getExtension' => ['?ReflectionExtension'], + 'ReflectionFunctionAbstract::getExtensionName' => ['string|false'], + 'ReflectionFunctionAbstract::getFileName' => ['string|false'], + 'ReflectionFunctionAbstract::getName' => ['string'], + 'ReflectionFunctionAbstract::getNamespaceName' => ['string'], + 'ReflectionFunctionAbstract::getNumberOfParameters' => ['int'], + 'ReflectionFunctionAbstract::getNumberOfRequiredParameters' => ['int'], + 'ReflectionFunctionAbstract::getParameters' => ['list'], + 'ReflectionFunctionAbstract::getReturnType' => ['?ReflectionType'], + 'ReflectionFunctionAbstract::getShortName' => ['string'], + 'ReflectionFunctionAbstract::getStartLine' => ['int|false'], + 'ReflectionFunctionAbstract::getStaticVariables' => ['array'], + 'ReflectionFunctionAbstract::hasReturnType' => ['bool'], + 'ReflectionFunctionAbstract::inNamespace' => ['bool'], + 'ReflectionFunctionAbstract::isClosure' => ['bool'], + 'ReflectionFunctionAbstract::isDeprecated' => ['bool'], + 'ReflectionFunctionAbstract::isGenerator' => ['bool'], + 'ReflectionFunctionAbstract::isInternal' => ['bool'], + 'ReflectionFunctionAbstract::isUserDefined' => ['bool'], + 'ReflectionFunctionAbstract::isVariadic' => ['bool'], + 'ReflectionFunctionAbstract::returnsReference' => ['bool'], + 'ReflectionGenerator::__construct' => ['void', 'generator'=>'object'], + 'ReflectionGenerator::getExecutingFile' => ['string'], + 'ReflectionGenerator::getExecutingGenerator' => ['Generator'], + 'ReflectionGenerator::getExecutingLine' => ['int'], + 'ReflectionGenerator::getFunction' => ['ReflectionFunctionAbstract'], + 'ReflectionGenerator::getThis' => ['?object'], + 'ReflectionGenerator::getTrace' => ['array', 'options='=>'int'], + 'ReflectionMethod::__construct' => ['void', 'class'=>'class-string|object', 'name'=>'string'], + 'ReflectionMethod::__construct\'1' => ['void', 'class_method'=>'string'], + 'ReflectionMethod::__toString' => ['string'], + 'ReflectionMethod::export' => ['?string', 'class'=>'string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionMethod::getClosure' => ['?Closure', 'object='=>'object'], + 'ReflectionMethod::getClosureScopeClass' => ['ReflectionClass'], + 'ReflectionMethod::getClosureThis' => ['object'], + 'ReflectionMethod::getDeclaringClass' => ['ReflectionClass'], + 'ReflectionMethod::getDocComment' => ['false|string'], + 'ReflectionMethod::getEndLine' => ['false|int'], + 'ReflectionMethod::getExtension' => ['?ReflectionExtension'], + 'ReflectionMethod::getExtensionName' => ['string|false'], + 'ReflectionMethod::getFileName' => ['false|string'], + 'ReflectionMethod::getModifiers' => ['int'], + 'ReflectionMethod::getName' => ['string'], + 'ReflectionMethod::getNamespaceName' => ['string'], + 'ReflectionMethod::getNumberOfParameters' => ['int'], + 'ReflectionMethod::getNumberOfRequiredParameters' => ['int'], + 'ReflectionMethod::getParameters' => ['list<\ReflectionParameter>'], + 'ReflectionMethod::getPrototype' => ['ReflectionMethod'], + 'ReflectionMethod::getReturnType' => ['?ReflectionType'], + 'ReflectionMethod::getShortName' => ['string'], + 'ReflectionMethod::getStartLine' => ['false|int'], + 'ReflectionMethod::getStaticVariables' => ['array'], + 'ReflectionMethod::hasReturnType' => ['bool'], + 'ReflectionMethod::inNamespace' => ['bool'], + 'ReflectionMethod::invoke' => ['mixed', 'object'=>'?object', '...args='=>'mixed'], + 'ReflectionMethod::invokeArgs' => ['mixed', 'object'=>'?object', 'args'=>'array'], + 'ReflectionMethod::isAbstract' => ['bool'], + 'ReflectionMethod::isClosure' => ['bool'], + 'ReflectionMethod::isConstructor' => ['bool'], + 'ReflectionMethod::isDeprecated' => ['bool'], + 'ReflectionMethod::isDestructor' => ['bool'], + 'ReflectionMethod::isFinal' => ['bool'], + 'ReflectionMethod::isGenerator' => ['bool'], + 'ReflectionMethod::isInternal' => ['bool'], + 'ReflectionMethod::isPrivate' => ['bool'], + 'ReflectionMethod::isProtected' => ['bool'], + 'ReflectionMethod::isPublic' => ['bool'], + 'ReflectionMethod::isStatic' => ['bool'], + 'ReflectionMethod::isUserDefined' => ['bool'], + 'ReflectionMethod::isVariadic' => ['bool'], + 'ReflectionMethod::returnsReference' => ['bool'], + 'ReflectionMethod::setAccessible' => ['void', 'visible'=>'bool'], + 'ReflectionNamedType::__clone' => ['void'], + 'ReflectionNamedType::__toString' => ['string'], + 'ReflectionNamedType::allowsNull' => ['bool'], + 'ReflectionNamedType::getName' => ['string'], + 'ReflectionNamedType::isBuiltin' => ['bool'], + 'ReflectionObject::__clone' => ['void'], + 'ReflectionObject::__construct' => ['void', 'argument'=>'object'], + 'ReflectionObject::__toString' => ['string'], + 'ReflectionObject::export' => ['?string', 'argument'=>'object', 'return='=>'bool'], + 'ReflectionObject::getConstant' => ['mixed', 'name'=>'string'], + 'ReflectionObject::getConstants' => ['array'], + 'ReflectionObject::getConstructor' => ['?ReflectionMethod'], + 'ReflectionObject::getDefaultProperties' => ['array'], + 'ReflectionObject::getDocComment' => ['false|string'], + 'ReflectionObject::getEndLine' => ['false|int'], + 'ReflectionObject::getExtension' => ['?ReflectionExtension'], + 'ReflectionObject::getExtensionName' => ['false|string'], + 'ReflectionObject::getFileName' => ['false|string'], + 'ReflectionObject::getInterfaceNames' => ['class-string[]'], + 'ReflectionObject::getInterfaces' => ['array'], + 'ReflectionObject::getMethod' => ['ReflectionMethod', 'name'=>'string'], + 'ReflectionObject::getMethods' => ['ReflectionMethod[]', 'filter='=>'int'], + 'ReflectionObject::getModifiers' => ['int'], + 'ReflectionObject::getName' => ['string'], + 'ReflectionObject::getNamespaceName' => ['string'], + 'ReflectionObject::getParentClass' => ['ReflectionClass|false'], + 'ReflectionObject::getProperties' => ['ReflectionProperty[]', 'filter='=>'int'], + 'ReflectionObject::getProperty' => ['ReflectionProperty', 'name'=>'string'], + 'ReflectionObject::getReflectionConstant' => ['ReflectionClassConstant', 'name'=>'string'], + 'ReflectionObject::getReflectionConstants' => ['list<\ReflectionClassConstant>'], + 'ReflectionObject::getShortName' => ['string'], + 'ReflectionObject::getStartLine' => ['false|int'], + 'ReflectionObject::getStaticProperties' => ['ReflectionProperty[]'], + 'ReflectionObject::getStaticPropertyValue' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'ReflectionObject::getTraitAliases' => ['array'], + 'ReflectionObject::getTraitNames' => ['list'], + 'ReflectionObject::getTraits' => ['array'], + 'ReflectionObject::hasConstant' => ['bool', 'name'=>'string'], + 'ReflectionObject::hasMethod' => ['bool', 'name'=>'string'], + 'ReflectionObject::hasProperty' => ['bool', 'name'=>'string'], + 'ReflectionObject::implementsInterface' => ['bool', 'interface_name'=>'ReflectionClass|string'], + 'ReflectionObject::inNamespace' => ['bool'], + 'ReflectionObject::isAbstract' => ['bool'], + 'ReflectionObject::isAnonymous' => ['bool'], + 'ReflectionObject::isCloneable' => ['bool'], + 'ReflectionObject::isFinal' => ['bool'], + 'ReflectionObject::isInstance' => ['bool', 'object'=>'object'], + 'ReflectionObject::isInstantiable' => ['bool'], + 'ReflectionObject::isInterface' => ['bool'], + 'ReflectionObject::isInternal' => ['bool'], + 'ReflectionObject::isIterable' => ['bool'], + 'ReflectionObject::isIterateable' => ['bool'], + 'ReflectionObject::isSubclassOf' => ['bool', 'class'=>'ReflectionClass|string'], + 'ReflectionObject::isTrait' => ['bool'], + 'ReflectionObject::isUserDefined' => ['bool'], + 'ReflectionObject::newInstance' => ['object', 'args='=>'mixed', '...args='=>'array'], + 'ReflectionObject::newInstanceArgs' => ['object', 'args='=>'list'], + 'ReflectionObject::newInstanceWithoutConstructor' => ['object'], + 'ReflectionObject::setStaticPropertyValue' => ['void', 'name'=>'string', 'value'=>'string'], + 'ReflectionParameter::__clone' => ['void'], + 'ReflectionParameter::__construct' => ['void', 'function'=>'', 'parameter'=>''], + 'ReflectionParameter::__toString' => ['string'], + 'ReflectionParameter::allowsNull' => ['bool'], + 'ReflectionParameter::canBePassedByValue' => ['bool'], + 'ReflectionParameter::export' => ['?string', 'function'=>'string', 'parameter'=>'string', 'return='=>'bool'], + 'ReflectionParameter::getClass' => ['?ReflectionClass'], + 'ReflectionParameter::getDeclaringClass' => ['?ReflectionClass'], + 'ReflectionParameter::getDeclaringFunction' => ['ReflectionFunctionAbstract'], + 'ReflectionParameter::getDefaultValue' => ['mixed'], + 'ReflectionParameter::getDefaultValueConstantName' => ['?string'], + 'ReflectionParameter::getName' => ['string'], + 'ReflectionParameter::getPosition' => ['int'], + 'ReflectionParameter::getType' => ['?ReflectionType'], + 'ReflectionParameter::hasType' => ['bool'], + 'ReflectionParameter::isArray' => ['bool'], + 'ReflectionParameter::isCallable' => ['bool'], + 'ReflectionParameter::isDefaultValueAvailable' => ['bool'], + 'ReflectionParameter::isDefaultValueConstant' => ['bool'], + 'ReflectionParameter::isOptional' => ['bool'], + 'ReflectionParameter::isPassedByReference' => ['bool'], + 'ReflectionParameter::isVariadic' => ['bool'], + 'ReflectionProperty::__clone' => ['void'], + 'ReflectionProperty::__construct' => ['void', 'class'=>'', 'name'=>'string'], + 'ReflectionProperty::__toString' => ['string'], + 'ReflectionProperty::export' => ['?string', 'class'=>'mixed', 'name'=>'string', 'return='=>'bool'], + 'ReflectionProperty::getDeclaringClass' => ['ReflectionClass'], + 'ReflectionProperty::getDocComment' => ['string|false'], + 'ReflectionProperty::getModifiers' => ['int'], + 'ReflectionProperty::getName' => ['string'], + 'ReflectionProperty::getValue' => ['mixed', 'object='=>'object'], + 'ReflectionProperty::hasType' => ['bool'], + 'ReflectionProperty::isDefault' => ['bool'], + 'ReflectionProperty::isPrivate' => ['bool'], + 'ReflectionProperty::isProtected' => ['bool'], + 'ReflectionProperty::isPublic' => ['bool'], + 'ReflectionProperty::isStatic' => ['bool'], + 'ReflectionProperty::setAccessible' => ['void', 'visible'=>'bool'], + 'ReflectionProperty::setValue' => ['void', 'object'=>'null|object', 'value'=>''], + 'ReflectionProperty::setValue\'1' => ['void', 'value'=>''], + 'ReflectionType::__clone' => ['void'], + 'ReflectionType::__toString' => ['string'], + 'ReflectionType::allowsNull' => ['bool'], + 'ReflectionType::isBuiltin' => ['bool'], + 'ReflectionZendExtension::__clone' => ['void'], + 'ReflectionZendExtension::__construct' => ['void', 'name'=>'string'], + 'ReflectionZendExtension::__toString' => ['string'], + 'ReflectionZendExtension::export' => ['?string', 'name'=>'string', 'return='=>'bool'], + 'ReflectionZendExtension::getAuthor' => ['string'], + 'ReflectionZendExtension::getCopyright' => ['string'], + 'ReflectionZendExtension::getName' => ['string'], + 'ReflectionZendExtension::getURL' => ['string'], + 'ReflectionZendExtension::getVersion' => ['string'], + 'Reflector::__toString' => ['string'], + 'Reflector::export' => ['?string'], + 'RegexIterator::__construct' => ['void', 'iterator'=>'Iterator', 'regex'=>'string', 'mode='=>'int', 'flags='=>'int', 'preg_flags='=>'int'], + 'RegexIterator::accept' => ['bool'], + 'RegexIterator::current' => ['mixed'], + 'RegexIterator::getFlags' => ['int'], + 'RegexIterator::getInnerIterator' => ['Iterator'], + 'RegexIterator::getMode' => ['int'], + 'RegexIterator::getPregFlags' => ['int'], + 'RegexIterator::getRegex' => ['string'], + 'RegexIterator::key' => ['mixed'], + 'RegexIterator::next' => ['void'], + 'RegexIterator::rewind' => ['void'], + 'RegexIterator::setFlags' => ['void', 'new_flags'=>'int'], + 'RegexIterator::setMode' => ['void', 'new_mode'=>'int'], + 'RegexIterator::setPregFlags' => ['void', 'new_flags'=>'int'], + 'RegexIterator::valid' => ['bool'], + 'ResourceBundle::__construct' => ['void', 'locale'=>'string', 'bundlename'=>'string', 'fallback='=>'bool'], + 'ResourceBundle::count' => ['int'], + 'ResourceBundle::create' => ['?ResourceBundle', 'locale'=>'string', 'bundlename'=>'string', 'fallback='=>'bool'], + 'ResourceBundle::get' => ['mixed', 'index'=>'string|int', 'fallback='=>'bool'], + 'ResourceBundle::getErrorCode' => ['int'], + 'ResourceBundle::getErrorMessage' => ['string'], + 'ResourceBundle::getLocales' => ['array', 'bundlename'=>'string'], + 'Runkit_Sandbox::__construct' => ['void', 'options='=>'array'], + 'Runkit_Sandbox_Parent' => [''], + 'Runkit_Sandbox_Parent::__construct' => ['void'], + 'RuntimeException::__clone' => ['void'], + 'RuntimeException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'RuntimeException::__toString' => ['string'], + 'RuntimeException::getCode' => ['int'], + 'RuntimeException::getFile' => ['string'], + 'RuntimeException::getLine' => ['int'], + 'RuntimeException::getMessage' => ['string'], + 'RuntimeException::getPrevious' => ['?Throwable'], + 'RuntimeException::getTrace' => ['list\',args?:array}>'], + 'RuntimeException::getTraceAsString' => ['string'], + 'SAMConnection::commit' => ['bool'], + 'SAMConnection::connect' => ['bool', 'protocol'=>'string', 'properties='=>'array'], + 'SAMConnection::disconnect' => ['bool'], + 'SAMConnection::errno' => ['int'], + 'SAMConnection::error' => ['string'], + 'SAMConnection::isConnected' => ['bool'], + 'SAMConnection::peek' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], + 'SAMConnection::peekAll' => ['array', 'target'=>'string', 'properties='=>'array'], + 'SAMConnection::receive' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], + 'SAMConnection::remove' => ['SAMMessage', 'target'=>'string', 'properties='=>'array'], + 'SAMConnection::rollback' => ['bool'], + 'SAMConnection::send' => ['string', 'target'=>'string', 'msg'=>'sammessage', 'properties='=>'array'], + 'SAMConnection::setDebug' => ['', 'switch'=>'bool'], + 'SAMConnection::subscribe' => ['string', 'targettopic'=>'string'], + 'SAMConnection::unsubscribe' => ['bool', 'subscriptionid'=>'string', 'targettopic='=>'string'], + 'SAMMessage::body' => ['string'], + 'SAMMessage::header' => ['object'], + 'SCA::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], + 'SCA::getService' => ['', 'target'=>'string', 'binding='=>'string', 'config='=>'array'], + 'SCA_LocalProxy::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], + 'SCA_SoapProxy::createDataObject' => ['SDO_DataObject', 'type_namespace_uri'=>'string', 'type_name'=>'string'], + 'SDO_DAS_ChangeSummary::beginLogging' => [''], + 'SDO_DAS_ChangeSummary::endLogging' => [''], + 'SDO_DAS_ChangeSummary::getChangeType' => ['int', 'dataobject'=>'sdo_dataobject'], + 'SDO_DAS_ChangeSummary::getChangedDataObjects' => ['SDO_List'], + 'SDO_DAS_ChangeSummary::getOldContainer' => ['SDO_DataObject', 'data_object'=>'sdo_dataobject'], + 'SDO_DAS_ChangeSummary::getOldValues' => ['SDO_List', 'data_object'=>'sdo_dataobject'], + 'SDO_DAS_ChangeSummary::isLogging' => ['bool'], + 'SDO_DAS_DataFactory::addPropertyToType' => ['', 'parent_type_namespace_uri'=>'string', 'parent_type_name'=>'string', 'property_name'=>'string', 'type_namespace_uri'=>'string', 'type_name'=>'string', 'options='=>'array'], + 'SDO_DAS_DataFactory::addType' => ['', 'type_namespace_uri'=>'string', 'type_name'=>'string', 'options='=>'array'], + 'SDO_DAS_DataFactory::getDataFactory' => ['SDO_DAS_DataFactory'], + 'SDO_DAS_DataObject::getChangeSummary' => ['SDO_DAS_ChangeSummary'], + 'SDO_DAS_Relational::__construct' => ['void', 'database_metadata'=>'array', 'application_root_type='=>'string', 'sdo_containment_references_metadata='=>'array'], + 'SDO_DAS_Relational::applyChanges' => ['', 'database_handle'=>'pdo', 'root_data_object'=>'sdodataobject'], + 'SDO_DAS_Relational::createRootDataObject' => ['SDODataObject'], + 'SDO_DAS_Relational::executePreparedQuery' => ['SDODataObject', 'database_handle'=>'pdo', 'prepared_statement'=>'pdostatement', 'value_list'=>'array', 'column_specifier='=>'array'], + 'SDO_DAS_Relational::executeQuery' => ['SDODataObject', 'database_handle'=>'pdo', 'sql_statement'=>'string', 'column_specifier='=>'array'], + 'SDO_DAS_Setting::getListIndex' => ['int'], + 'SDO_DAS_Setting::getPropertyIndex' => ['int'], + 'SDO_DAS_Setting::getPropertyName' => ['string'], + 'SDO_DAS_Setting::getValue' => [''], + 'SDO_DAS_Setting::isSet' => ['bool'], + 'SDO_DAS_XML::addTypes' => ['', 'xsd_file'=>'string'], + 'SDO_DAS_XML::create' => ['SDO_DAS_XML', 'xsd_file='=>'mixed', 'key='=>'string'], + 'SDO_DAS_XML::createDataObject' => ['SDO_DataObject', 'namespace_uri'=>'string', 'type_name'=>'string'], + 'SDO_DAS_XML::createDocument' => ['SDO_DAS_XML_Document', 'document_element_name'=>'string', 'document_element_namespace_uri'=>'string', 'dataobject='=>'sdo_dataobject'], + 'SDO_DAS_XML::loadFile' => ['SDO_XMLDocument', 'xml_file'=>'string'], + 'SDO_DAS_XML::loadString' => ['SDO_DAS_XML_Document', 'xml_string'=>'string'], + 'SDO_DAS_XML::saveFile' => ['', 'xdoc'=>'sdo_xmldocument', 'xml_file'=>'string', 'indent='=>'int'], + 'SDO_DAS_XML::saveString' => ['string', 'xdoc'=>'sdo_xmldocument', 'indent='=>'int'], + 'SDO_DAS_XML_Document::getRootDataObject' => ['SDO_DataObject'], + 'SDO_DAS_XML_Document::getRootElementName' => ['string'], + 'SDO_DAS_XML_Document::getRootElementURI' => ['string'], + 'SDO_DAS_XML_Document::setEncoding' => ['', 'encoding'=>'string'], + 'SDO_DAS_XML_Document::setXMLDeclaration' => ['', 'xmldeclatation'=>'bool'], + 'SDO_DAS_XML_Document::setXMLVersion' => ['', 'xmlversion'=>'string'], + 'SDO_DataFactory::create' => ['void', 'type_namespace_uri'=>'string', 'type_name'=>'string'], + 'SDO_DataObject::clear' => ['void'], + 'SDO_DataObject::createDataObject' => ['SDO_DataObject', 'identifier'=>''], + 'SDO_DataObject::getContainer' => ['SDO_DataObject'], + 'SDO_DataObject::getSequence' => ['SDO_Sequence'], + 'SDO_DataObject::getTypeName' => ['string'], + 'SDO_DataObject::getTypeNamespaceURI' => ['string'], + 'SDO_Exception::getCause' => [''], + 'SDO_List::insert' => ['void', 'value'=>'mixed', 'index='=>'int'], + 'SDO_Model_Property::getContainingType' => ['SDO_Model_Type'], + 'SDO_Model_Property::getDefault' => [''], + 'SDO_Model_Property::getName' => ['string'], + 'SDO_Model_Property::getType' => ['SDO_Model_Type'], + 'SDO_Model_Property::isContainment' => ['bool'], + 'SDO_Model_Property::isMany' => ['bool'], + 'SDO_Model_ReflectionDataObject::__construct' => ['void', 'data_object'=>'sdo_dataobject'], + 'SDO_Model_ReflectionDataObject::export' => ['mixed', 'rdo'=>'sdo_model_reflectiondataobject', 'return='=>'bool'], + 'SDO_Model_ReflectionDataObject::getContainmentProperty' => ['SDO_Model_Property'], + 'SDO_Model_ReflectionDataObject::getInstanceProperties' => ['array'], + 'SDO_Model_ReflectionDataObject::getType' => ['SDO_Model_Type'], + 'SDO_Model_Type::getBaseType' => ['SDO_Model_Type'], + 'SDO_Model_Type::getName' => ['string'], + 'SDO_Model_Type::getNamespaceURI' => ['string'], + 'SDO_Model_Type::getProperties' => ['array'], + 'SDO_Model_Type::getProperty' => ['SDO_Model_Property', 'identifier'=>''], + 'SDO_Model_Type::isAbstractType' => ['bool'], + 'SDO_Model_Type::isDataType' => ['bool'], + 'SDO_Model_Type::isInstance' => ['bool', 'data_object'=>'sdo_dataobject'], + 'SDO_Model_Type::isOpenType' => ['bool'], + 'SDO_Model_Type::isSequencedType' => ['bool'], + 'SDO_Sequence::getProperty' => ['SDO_Model_Property', 'sequence_index'=>'int'], + 'SDO_Sequence::insert' => ['void', 'value'=>'mixed', 'sequenceindex='=>'int', 'propertyidentifier='=>'mixed'], + 'SDO_Sequence::move' => ['void', 'toindex'=>'int', 'fromindex'=>'int'], + 'SNMP::__construct' => ['void', 'version'=>'int', 'hostname'=>'string', 'community'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'SNMP::close' => ['bool'], + 'SNMP::get' => ['array|string|false', 'objectId'=>'string|array', 'preserveKeys='=>'bool'], + 'SNMP::getErrno' => ['int'], + 'SNMP::getError' => ['string'], + 'SNMP::getnext' => ['string|array|false', 'objectId'=>'string|array'], + 'SNMP::set' => ['bool', 'objectId'=>'string|array', 'type'=>'string|array', 'value'=>'string|array'], + 'SNMP::setSecurity' => ['bool', 'securityLevel'=>'string', 'authProtocol='=>'string', 'authPassphrase='=>'string', 'privacyProtocol='=>'string', 'privacyPassphrase='=>'string', 'contextName='=>'string', 'contextEngineId='=>'string'], + 'SNMP::walk' => ['array|false', 'objectId'=>'string', 'suffixAsKey='=>'bool', 'maxRepetitions='=>'int', 'nonRepeaters='=>'int'], + 'SQLite3::__construct' => ['void', 'filename'=>'string', 'flags='=>'int', 'encryptionKey='=>'?string'], + 'SQLite3::busyTimeout' => ['bool', 'milliseconds'=>'int'], + 'SQLite3::changes' => ['int'], + 'SQLite3::close' => ['bool'], + 'SQLite3::createAggregate' => ['bool', 'name'=>'string', 'stepCallback'=>'callable', 'finalCallback'=>'callable', 'argCount='=>'int'], + 'SQLite3::createCollation' => ['bool', 'name'=>'string', 'callback'=>'callable'], + 'SQLite3::createFunction' => ['bool', 'name'=>'string', 'callback'=>'callable', 'argCount='=>'int'], + 'SQLite3::enableExceptions' => ['bool', 'enable='=>'bool'], + 'SQLite3::escapeString' => ['string', 'string'=>'string'], + 'SQLite3::exec' => ['bool', 'query'=>'string'], + 'SQLite3::lastErrorCode' => ['int'], + 'SQLite3::lastErrorMsg' => ['string'], + 'SQLite3::lastInsertRowID' => ['int'], + 'SQLite3::loadExtension' => ['bool', 'name'=>'string'], + 'SQLite3::open' => ['void', 'filename'=>'string', 'flags='=>'int', 'encryptionKey='=>'?string'], + 'SQLite3::openBlob' => ['resource|false', 'table'=>'string', 'column'=>'string', 'rowid'=>'int', 'dbname='=>'string'], + 'SQLite3::prepare' => ['SQLite3Stmt|false', 'query'=>'string'], + 'SQLite3::query' => ['SQLite3Result|false', 'query'=>'string'], + 'SQLite3::querySingle' => ['array|int|string|bool|float|null|false', 'query'=>'string', 'entireRow='=>'bool'], + 'SQLite3::version' => ['array'], + 'SQLite3Result::__construct' => ['void'], + 'SQLite3Result::columnName' => ['string', 'column'=>'int'], + 'SQLite3Result::columnType' => ['int', 'column'=>'int'], + 'SQLite3Result::fetchArray' => ['array|false', 'mode='=>'int'], + 'SQLite3Result::finalize' => ['bool'], + 'SQLite3Result::numColumns' => ['int'], + 'SQLite3Result::reset' => ['bool'], + 'SQLite3Stmt::__construct' => ['void', 'sqlite3'=>'sqlite3', 'query'=>'string'], + 'SQLite3Stmt::bindParam' => ['bool', 'param'=>'string|int', '&rw_var'=>'mixed', 'type='=>'int'], + 'SQLite3Stmt::bindValue' => ['bool', 'param'=>'string|int', 'value'=>'mixed', 'type='=>'int'], + 'SQLite3Stmt::clear' => ['bool'], + 'SQLite3Stmt::close' => ['bool'], + 'SQLite3Stmt::execute' => ['false|SQLite3Result'], + 'SQLite3Stmt::getSQL' => ['string', 'expand='=>'bool'], + 'SQLite3Stmt::paramCount' => ['int'], + 'SQLite3Stmt::readOnly' => ['bool'], + 'SQLite3Stmt::reset' => ['bool'], + 'SQLiteDatabase::__construct' => ['void', 'filename'=>'', 'mode='=>'int|mixed', '&error_message'=>''], + 'SQLiteDatabase::arrayQuery' => ['array', 'query'=>'string', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteDatabase::busyTimeout' => ['int', 'milliseconds'=>'int'], + 'SQLiteDatabase::changes' => ['int'], + 'SQLiteDatabase::createAggregate' => ['', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], + 'SQLiteDatabase::createFunction' => ['', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], + 'SQLiteDatabase::exec' => ['bool', 'query'=>'string', 'error_msg='=>'string'], + 'SQLiteDatabase::fetchColumnTypes' => ['array', 'table_name'=>'string', 'result_type='=>'int'], + 'SQLiteDatabase::lastError' => ['int'], + 'SQLiteDatabase::lastInsertRowid' => ['int'], + 'SQLiteDatabase::query' => ['SQLiteResult|false', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], + 'SQLiteDatabase::queryExec' => ['bool', 'query'=>'string', '&w_error_msg='=>'string'], + 'SQLiteDatabase::singleQuery' => ['array', 'query'=>'string', 'first_row_only='=>'bool', 'decode_binary='=>'bool'], + 'SQLiteDatabase::unbufferedQuery' => ['SQLiteUnbuffered|false', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], + 'SQLiteException::__clone' => ['void'], + 'SQLiteException::__construct' => ['void', 'message'=>'', 'code'=>'', 'previous'=>''], + 'SQLiteException::__toString' => ['string'], + 'SQLiteException::__wakeup' => ['void'], + 'SQLiteException::getCode' => ['int'], + 'SQLiteException::getFile' => ['string'], + 'SQLiteException::getLine' => ['int'], + 'SQLiteException::getMessage' => ['string'], + 'SQLiteException::getPrevious' => ['RuntimeException|Throwable|null'], + 'SQLiteException::getTrace' => ['list\',args?:array}>'], + 'SQLiteException::getTraceAsString' => ['string'], + 'SQLiteResult::__construct' => ['void'], + 'SQLiteResult::column' => ['mixed', 'index_or_name'=>'', 'decode_binary='=>'bool'], + 'SQLiteResult::count' => ['int'], + 'SQLiteResult::current' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteResult::fetch' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteResult::fetchAll' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteResult::fetchObject' => ['object', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], + 'SQLiteResult::fetchSingle' => ['string', 'decode_binary='=>'bool'], + 'SQLiteResult::fieldName' => ['string', 'field_index'=>'int'], + 'SQLiteResult::hasPrev' => ['bool'], + 'SQLiteResult::key' => ['mixed|null'], + 'SQLiteResult::next' => ['bool'], + 'SQLiteResult::numFields' => ['int'], + 'SQLiteResult::numRows' => ['int'], + 'SQLiteResult::prev' => ['bool'], + 'SQLiteResult::rewind' => ['bool'], + 'SQLiteResult::seek' => ['bool', 'rownum'=>'int'], + 'SQLiteResult::valid' => ['bool'], + 'SQLiteUnbuffered::column' => ['void', 'index_or_name'=>'', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::current' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::fetch' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::fetchAll' => ['array', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::fetchObject' => ['object', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::fetchSingle' => ['string', 'decode_binary='=>'bool'], + 'SQLiteUnbuffered::fieldName' => ['string', 'field_index'=>'int'], + 'SQLiteUnbuffered::next' => ['bool'], + 'SQLiteUnbuffered::numFields' => ['int'], + 'SQLiteUnbuffered::valid' => ['bool'], + 'SVM::__construct' => ['void'], + 'SVM::getOptions' => ['array'], + 'SVM::setOptions' => ['bool', 'params'=>'array'], + 'SVMModel::__construct' => ['void', 'filename='=>'string'], + 'SVMModel::checkProbabilityModel' => ['bool'], + 'SVMModel::getLabels' => ['array'], + 'SVMModel::getNrClass' => ['int'], + 'SVMModel::getSvmType' => ['int'], + 'SVMModel::getSvrProbability' => ['float'], + 'SVMModel::load' => ['bool', 'filename'=>'string'], + 'SVMModel::predict' => ['float', 'data'=>'array'], + 'SVMModel::predict_probability' => ['float', 'data'=>'array'], + 'SVMModel::save' => ['bool', 'filename'=>'string'], + 'SWFAction::__construct' => ['void', 'script'=>'string'], + 'SWFBitmap::__construct' => ['void', 'file'=>'', 'alphafile='=>''], + 'SWFBitmap::getHeight' => ['float'], + 'SWFBitmap::getWidth' => ['float'], + 'SWFButton::__construct' => ['void'], + 'SWFButton::addASound' => ['SWFSoundInstance', 'sound'=>'swfsound', 'flags'=>'int'], + 'SWFButton::addAction' => ['void', 'action'=>'swfaction', 'flags'=>'int'], + 'SWFButton::addShape' => ['void', 'shape'=>'swfshape', 'flags'=>'int'], + 'SWFButton::setAction' => ['void', 'action'=>'swfaction'], + 'SWFButton::setDown' => ['void', 'shape'=>'swfshape'], + 'SWFButton::setHit' => ['void', 'shape'=>'swfshape'], + 'SWFButton::setMenu' => ['void', 'flag'=>'int'], + 'SWFButton::setOver' => ['void', 'shape'=>'swfshape'], + 'SWFButton::setUp' => ['void', 'shape'=>'swfshape'], + 'SWFDisplayItem::addAction' => ['void', 'action'=>'swfaction', 'flags'=>'int'], + 'SWFDisplayItem::addColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFDisplayItem::endMask' => ['void'], + 'SWFDisplayItem::getRot' => ['float'], + 'SWFDisplayItem::getX' => ['float'], + 'SWFDisplayItem::getXScale' => ['float'], + 'SWFDisplayItem::getXSkew' => ['float'], + 'SWFDisplayItem::getY' => ['float'], + 'SWFDisplayItem::getYScale' => ['float'], + 'SWFDisplayItem::getYSkew' => ['float'], + 'SWFDisplayItem::move' => ['void', 'dx'=>'float', 'dy'=>'float'], + 'SWFDisplayItem::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], + 'SWFDisplayItem::multColor' => ['void', 'red'=>'float', 'green'=>'float', 'blue'=>'float', 'a='=>'float'], + 'SWFDisplayItem::remove' => ['void'], + 'SWFDisplayItem::rotate' => ['void', 'angle'=>'float'], + 'SWFDisplayItem::rotateTo' => ['void', 'angle'=>'float'], + 'SWFDisplayItem::scale' => ['void', 'dx'=>'float', 'dy'=>'float'], + 'SWFDisplayItem::scaleTo' => ['void', 'x'=>'float', 'y='=>'float'], + 'SWFDisplayItem::setDepth' => ['void', 'depth'=>'int'], + 'SWFDisplayItem::setMaskLevel' => ['void', 'level'=>'int'], + 'SWFDisplayItem::setMatrix' => ['void', 'a'=>'float', 'b'=>'float', 'c'=>'float', 'd'=>'float', 'x'=>'float', 'y'=>'float'], + 'SWFDisplayItem::setName' => ['void', 'name'=>'string'], + 'SWFDisplayItem::setRatio' => ['void', 'ratio'=>'float'], + 'SWFDisplayItem::skewX' => ['void', 'ddegrees'=>'float'], + 'SWFDisplayItem::skewXTo' => ['void', 'degrees'=>'float'], + 'SWFDisplayItem::skewY' => ['void', 'ddegrees'=>'float'], + 'SWFDisplayItem::skewYTo' => ['void', 'degrees'=>'float'], + 'SWFFill::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], + 'SWFFill::rotateTo' => ['void', 'angle'=>'float'], + 'SWFFill::scaleTo' => ['void', 'x'=>'float', 'y='=>'float'], + 'SWFFill::skewXTo' => ['void', 'x'=>'float'], + 'SWFFill::skewYTo' => ['void', 'y'=>'float'], + 'SWFFont::__construct' => ['void', 'filename'=>'string'], + 'SWFFont::getAscent' => ['float'], + 'SWFFont::getDescent' => ['float'], + 'SWFFont::getLeading' => ['float'], + 'SWFFont::getShape' => ['string', 'code'=>'int'], + 'SWFFont::getUTF8Width' => ['float', 'string'=>'string'], + 'SWFFont::getWidth' => ['float', 'string'=>'string'], + 'SWFFontChar::addChars' => ['void', 'char'=>'string'], + 'SWFFontChar::addUTF8Chars' => ['void', 'char'=>'string'], + 'SWFGradient::__construct' => ['void'], + 'SWFGradient::addEntry' => ['void', 'ratio'=>'float', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], + 'SWFMorph::__construct' => ['void'], + 'SWFMorph::getShape1' => ['SWFShape'], + 'SWFMorph::getShape2' => ['SWFShape'], + 'SWFMovie::__construct' => ['void', 'version='=>'int'], + 'SWFMovie::add' => ['mixed', 'instance'=>'object'], + 'SWFMovie::addExport' => ['void', 'char'=>'swfcharacter', 'name'=>'string'], + 'SWFMovie::addFont' => ['mixed', 'font'=>'swffont'], + 'SWFMovie::importChar' => ['SWFSprite', 'libswf'=>'string', 'name'=>'string'], + 'SWFMovie::importFont' => ['SWFFontChar', 'libswf'=>'string', 'name'=>'string'], + 'SWFMovie::labelFrame' => ['void', 'label'=>'string'], + 'SWFMovie::namedAnchor' => [''], + 'SWFMovie::nextFrame' => ['void'], + 'SWFMovie::output' => ['int', 'compression='=>'int'], + 'SWFMovie::protect' => [''], + 'SWFMovie::remove' => ['void', 'instance'=>'object'], + 'SWFMovie::save' => ['int', 'filename'=>'string', 'compression='=>'int'], + 'SWFMovie::saveToFile' => ['int', 'x'=>'resource', 'compression='=>'int'], + 'SWFMovie::setDimension' => ['void', 'width'=>'float', 'height'=>'float'], + 'SWFMovie::setFrames' => ['void', 'number'=>'int'], + 'SWFMovie::setRate' => ['void', 'rate'=>'float'], + 'SWFMovie::setbackground' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'SWFMovie::startSound' => ['SWFSoundInstance', 'sound'=>'swfsound'], + 'SWFMovie::stopSound' => ['void', 'sound'=>'swfsound'], + 'SWFMovie::streamMP3' => ['int', 'mp3file'=>'mixed', 'skip='=>'float'], + 'SWFMovie::writeExports' => ['void'], + 'SWFPrebuiltClip::__construct' => ['void', 'file'=>''], + 'SWFShape::__construct' => ['void'], + 'SWFShape::addFill' => ['SWFFill', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int', 'bitmap='=>'swfbitmap', 'flags='=>'int', 'gradient='=>'swfgradient'], + 'SWFShape::addFill\'1' => ['SWFFill', 'bitmap'=>'SWFBitmap', 'flags='=>'int'], + 'SWFShape::addFill\'2' => ['SWFFill', 'gradient'=>'SWFGradient', 'flags='=>'int'], + 'SWFShape::drawArc' => ['void', 'r'=>'float', 'startangle'=>'float', 'endangle'=>'float'], + 'SWFShape::drawCircle' => ['void', 'r'=>'float'], + 'SWFShape::drawCubic' => ['int', 'bx'=>'float', 'by'=>'float', 'cx'=>'float', 'cy'=>'float', 'dx'=>'float', 'dy'=>'float'], + 'SWFShape::drawCubicTo' => ['int', 'bx'=>'float', 'by'=>'float', 'cx'=>'float', 'cy'=>'float', 'dx'=>'float', 'dy'=>'float'], + 'SWFShape::drawCurve' => ['int', 'controldx'=>'float', 'controldy'=>'float', 'anchordx'=>'float', 'anchordy'=>'float', 'targetdx='=>'float', 'targetdy='=>'float'], + 'SWFShape::drawCurveTo' => ['int', 'controlx'=>'float', 'controly'=>'float', 'anchorx'=>'float', 'anchory'=>'float', 'targetx='=>'float', 'targety='=>'float'], + 'SWFShape::drawGlyph' => ['void', 'font'=>'swffont', 'character'=>'string', 'size='=>'int'], + 'SWFShape::drawLine' => ['void', 'dx'=>'float', 'dy'=>'float'], + 'SWFShape::drawLineTo' => ['void', 'x'=>'float', 'y'=>'float'], + 'SWFShape::movePen' => ['void', 'dx'=>'float', 'dy'=>'float'], + 'SWFShape::movePenTo' => ['void', 'x'=>'float', 'y'=>'float'], + 'SWFShape::setLeftFill' => ['', 'fill'=>'swfgradient', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFShape::setLine' => ['', 'shape'=>'swfshape', 'width'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFShape::setRightFill' => ['', 'fill'=>'swfgradient', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFSound' => ['SWFSound', 'filename'=>'string', 'flags='=>'int'], + 'SWFSound::__construct' => ['void', 'filename'=>'string', 'flags='=>'int'], + 'SWFSoundInstance::loopCount' => ['void', 'point'=>'int'], + 'SWFSoundInstance::loopInPoint' => ['void', 'point'=>'int'], + 'SWFSoundInstance::loopOutPoint' => ['void', 'point'=>'int'], + 'SWFSoundInstance::noMultiple' => ['void'], + 'SWFSprite::__construct' => ['void'], + 'SWFSprite::add' => ['void', 'object'=>'object'], + 'SWFSprite::labelFrame' => ['void', 'label'=>'string'], + 'SWFSprite::nextFrame' => ['void'], + 'SWFSprite::remove' => ['void', 'object'=>'object'], + 'SWFSprite::setFrames' => ['void', 'number'=>'int'], + 'SWFSprite::startSound' => ['SWFSoundInstance', 'sount'=>'swfsound'], + 'SWFSprite::stopSound' => ['void', 'sount'=>'swfsound'], + 'SWFText::__construct' => ['void'], + 'SWFText::addString' => ['void', 'string'=>'string'], + 'SWFText::addUTF8String' => ['void', 'text'=>'string'], + 'SWFText::getAscent' => ['float'], + 'SWFText::getDescent' => ['float'], + 'SWFText::getLeading' => ['float'], + 'SWFText::getUTF8Width' => ['float', 'string'=>'string'], + 'SWFText::getWidth' => ['float', 'string'=>'string'], + 'SWFText::moveTo' => ['void', 'x'=>'float', 'y'=>'float'], + 'SWFText::setColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFText::setFont' => ['void', 'font'=>'swffont'], + 'SWFText::setHeight' => ['void', 'height'=>'float'], + 'SWFText::setSpacing' => ['void', 'spacing'=>'float'], + 'SWFTextField::__construct' => ['void', 'flags='=>'int'], + 'SWFTextField::addChars' => ['void', 'chars'=>'string'], + 'SWFTextField::addString' => ['void', 'string'=>'string'], + 'SWFTextField::align' => ['void', 'alignement'=>'int'], + 'SWFTextField::setBounds' => ['void', 'width'=>'float', 'height'=>'float'], + 'SWFTextField::setColor' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'SWFTextField::setFont' => ['void', 'font'=>'swffont'], + 'SWFTextField::setHeight' => ['void', 'height'=>'float'], + 'SWFTextField::setIndentation' => ['void', 'width'=>'float'], + 'SWFTextField::setLeftMargin' => ['void', 'width'=>'float'], + 'SWFTextField::setLineSpacing' => ['void', 'height'=>'float'], + 'SWFTextField::setMargins' => ['void', 'left'=>'float', 'right'=>'float'], + 'SWFTextField::setName' => ['void', 'name'=>'string'], + 'SWFTextField::setPadding' => ['void', 'padding'=>'float'], + 'SWFTextField::setRightMargin' => ['void', 'width'=>'float'], + 'SWFVideoStream::__construct' => ['void', 'file='=>'string'], + 'SWFVideoStream::getNumFrames' => ['int'], + 'SWFVideoStream::setDimension' => ['void', 'x'=>'int', 'y'=>'int'], + 'Saxon\SaxonProcessor::__construct' => ['void', 'license='=>'bool', 'cwd='=>'string'], + 'Saxon\SaxonProcessor::createAtomicValue' => ['Saxon\XdmValue', 'primitive_type_val'=>'bool|float|int|string'], + 'Saxon\SaxonProcessor::newSchemaValidator' => ['Saxon\SchemaValidator'], + 'Saxon\SaxonProcessor::newXPathProcessor' => ['Saxon\XPathProcessor'], + 'Saxon\SaxonProcessor::newXQueryProcessor' => ['Saxon\XQueryProcessor'], + 'Saxon\SaxonProcessor::newXsltProcessor' => ['Saxon\XsltProcessor'], + 'Saxon\SaxonProcessor::parseXmlFromFile' => ['Saxon\XdmNode', 'fileName'=>'string'], + 'Saxon\SaxonProcessor::parseXmlFromString' => ['Saxon\XdmNode', 'value'=>'string'], + 'Saxon\SaxonProcessor::registerPHPFunctions' => ['void', 'library'=>'string'], + 'Saxon\SaxonProcessor::setConfigurationProperty' => ['void', 'name'=>'string', 'value'=>'string'], + 'Saxon\SaxonProcessor::setResourceDirectory' => ['void', 'dir'=>'string'], + 'Saxon\SaxonProcessor::setcwd' => ['void', 'cwd'=>'string'], + 'Saxon\SaxonProcessor::version' => ['string'], + 'Saxon\SchemaValidator::clearParameters' => ['void'], + 'Saxon\SchemaValidator::clearProperties' => ['void'], + 'Saxon\SchemaValidator::exceptionClear' => ['void'], + 'Saxon\SchemaValidator::getErrorCode' => ['string', 'i'=>'int'], + 'Saxon\SchemaValidator::getErrorMessage' => ['string', 'i'=>'int'], + 'Saxon\SchemaValidator::getExceptionCount' => ['int'], + 'Saxon\SchemaValidator::getValidationReport' => ['Saxon\XdmNode'], + 'Saxon\SchemaValidator::registerSchemaFromFile' => ['void', 'fileName'=>'string'], + 'Saxon\SchemaValidator::registerSchemaFromString' => ['void', 'schemaStr'=>'string'], + 'Saxon\SchemaValidator::setOutputFile' => ['void', 'fileName'=>'string'], + 'Saxon\SchemaValidator::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], + 'Saxon\SchemaValidator::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], + 'Saxon\SchemaValidator::setSourceNode' => ['void', 'node'=>'Saxon\XdmNode'], + 'Saxon\SchemaValidator::validate' => ['void', 'filename='=>'?string'], + 'Saxon\SchemaValidator::validateToNode' => ['Saxon\XdmNode', 'filename='=>'?string'], + 'Saxon\XPathProcessor::clearParameters' => ['void'], + 'Saxon\XPathProcessor::clearProperties' => ['void'], + 'Saxon\XPathProcessor::declareNamespace' => ['void', 'prefix'=>'', 'namespace'=>''], + 'Saxon\XPathProcessor::effectiveBooleanValue' => ['bool', 'xpathStr'=>'string'], + 'Saxon\XPathProcessor::evaluate' => ['Saxon\XdmValue', 'xpathStr'=>'string'], + 'Saxon\XPathProcessor::evaluateSingle' => ['Saxon\XdmItem', 'xpathStr'=>'string'], + 'Saxon\XPathProcessor::exceptionClear' => ['void'], + 'Saxon\XPathProcessor::getErrorCode' => ['string', 'i'=>'int'], + 'Saxon\XPathProcessor::getErrorMessage' => ['string', 'i'=>'int'], + 'Saxon\XPathProcessor::getExceptionCount' => ['int'], + 'Saxon\XPathProcessor::setBaseURI' => ['void', 'uri'=>'string'], + 'Saxon\XPathProcessor::setContextFile' => ['void', 'fileName'=>'string'], + 'Saxon\XPathProcessor::setContextItem' => ['void', 'item'=>'Saxon\XdmItem'], + 'Saxon\XPathProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], + 'Saxon\XPathProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], + 'Saxon\XQueryProcessor::clearParameters' => ['void'], + 'Saxon\XQueryProcessor::clearProperties' => ['void'], + 'Saxon\XQueryProcessor::declareNamespace' => ['void', 'prefix'=>'string', 'namespace'=>'string'], + 'Saxon\XQueryProcessor::exceptionClear' => ['void'], + 'Saxon\XQueryProcessor::getErrorCode' => ['string', 'i'=>'int'], + 'Saxon\XQueryProcessor::getErrorMessage' => ['string', 'i'=>'int'], + 'Saxon\XQueryProcessor::getExceptionCount' => ['int'], + 'Saxon\XQueryProcessor::runQueryToFile' => ['void', 'outfilename'=>'string'], + 'Saxon\XQueryProcessor::runQueryToString' => ['?string'], + 'Saxon\XQueryProcessor::runQueryToValue' => ['?Saxon\XdmValue'], + 'Saxon\XQueryProcessor::setContextItem' => ['void', 'object'=>'Saxon\XdmAtomicValue|Saxon\XdmItem|Saxon\XdmNode|Saxon\XdmValue'], + 'Saxon\XQueryProcessor::setContextItemFromFile' => ['void', 'fileName'=>'string'], + 'Saxon\XQueryProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], + 'Saxon\XQueryProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], + 'Saxon\XQueryProcessor::setQueryBaseURI' => ['void', 'uri'=>'string'], + 'Saxon\XQueryProcessor::setQueryContent' => ['void', 'string'=>'string'], + 'Saxon\XQueryProcessor::setQueryFile' => ['void', 'filename'=>'string'], + 'Saxon\XQueryProcessor::setQueryItem' => ['void', 'item'=>'Saxon\XdmItem'], + 'Saxon\XdmAtomicValue::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], + 'Saxon\XdmAtomicValue::getAtomicValue' => ['?Saxon\XdmAtomicValue'], + 'Saxon\XdmAtomicValue::getBooleanValue' => ['bool'], + 'Saxon\XdmAtomicValue::getDoubleValue' => ['float'], + 'Saxon\XdmAtomicValue::getHead' => ['Saxon\XdmItem'], + 'Saxon\XdmAtomicValue::getLongValue' => ['int'], + 'Saxon\XdmAtomicValue::getNodeValue' => ['?Saxon\XdmNode'], + 'Saxon\XdmAtomicValue::getStringValue' => ['string'], + 'Saxon\XdmAtomicValue::isAtomic' => ['true'], + 'Saxon\XdmAtomicValue::isNode' => ['bool'], + 'Saxon\XdmAtomicValue::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], + 'Saxon\XdmAtomicValue::size' => ['int'], + 'Saxon\XdmItem::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], + 'Saxon\XdmItem::getAtomicValue' => ['?Saxon\XdmAtomicValue'], + 'Saxon\XdmItem::getHead' => ['Saxon\XdmItem'], + 'Saxon\XdmItem::getNodeValue' => ['?Saxon\XdmNode'], + 'Saxon\XdmItem::getStringValue' => ['string'], + 'Saxon\XdmItem::isAtomic' => ['bool'], + 'Saxon\XdmItem::isNode' => ['bool'], + 'Saxon\XdmItem::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], + 'Saxon\XdmItem::size' => ['int'], + 'Saxon\XdmNode::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], + 'Saxon\XdmNode::getAtomicValue' => ['?Saxon\XdmAtomicValue'], + 'Saxon\XdmNode::getAttributeCount' => ['int'], + 'Saxon\XdmNode::getAttributeNode' => ['?Saxon\XdmNode', 'index'=>'int'], + 'Saxon\XdmNode::getAttributeValue' => ['?string', 'index'=>'int'], + 'Saxon\XdmNode::getChildCount' => ['int'], + 'Saxon\XdmNode::getChildNode' => ['?Saxon\XdmNode', 'index'=>'int'], + 'Saxon\XdmNode::getHead' => ['Saxon\XdmItem'], + 'Saxon\XdmNode::getNodeKind' => ['int'], + 'Saxon\XdmNode::getNodeName' => ['string'], + 'Saxon\XdmNode::getNodeValue' => ['?Saxon\XdmNode'], + 'Saxon\XdmNode::getParent' => ['?Saxon\XdmNode'], + 'Saxon\XdmNode::getStringValue' => ['string'], + 'Saxon\XdmNode::isAtomic' => ['false'], + 'Saxon\XdmNode::isNode' => ['bool'], + 'Saxon\XdmNode::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], + 'Saxon\XdmNode::size' => ['int'], + 'Saxon\XdmValue::addXdmItem' => ['', 'item'=>'Saxon\XdmItem'], + 'Saxon\XdmValue::getHead' => ['Saxon\XdmItem'], + 'Saxon\XdmValue::itemAt' => ['Saxon\XdmItem', 'index'=>'int'], + 'Saxon\XdmValue::size' => ['int'], + 'Saxon\XsltProcessor::clearParameters' => ['void'], + 'Saxon\XsltProcessor::clearProperties' => ['void'], + 'Saxon\XsltProcessor::compileFromFile' => ['void', 'fileName'=>'string'], + 'Saxon\XsltProcessor::compileFromString' => ['void', 'string'=>'string'], + 'Saxon\XsltProcessor::compileFromValue' => ['void', 'node'=>'Saxon\XdmNode'], + 'Saxon\XsltProcessor::exceptionClear' => ['void'], + 'Saxon\XsltProcessor::getErrorCode' => ['string', 'i'=>'int'], + 'Saxon\XsltProcessor::getErrorMessage' => ['string', 'i'=>'int'], + 'Saxon\XsltProcessor::getExceptionCount' => ['int'], + 'Saxon\XsltProcessor::setOutputFile' => ['void', 'fileName'=>'string'], + 'Saxon\XsltProcessor::setParameter' => ['void', 'name'=>'string', 'value'=>'Saxon\XdmValue'], + 'Saxon\XsltProcessor::setProperty' => ['void', 'name'=>'string', 'value'=>'string'], + 'Saxon\XsltProcessor::setSourceFromFile' => ['void', 'filename'=>'string'], + 'Saxon\XsltProcessor::setSourceFromXdmValue' => ['void', 'value'=>'Saxon\XdmValue'], + 'Saxon\XsltProcessor::transformFileToFile' => ['void', 'sourceFileName'=>'string', 'stylesheetFileName'=>'string', 'outputfileName'=>'string'], + 'Saxon\XsltProcessor::transformFileToString' => ['?string', 'sourceFileName'=>'string', 'stylesheetFileName'=>'string'], + 'Saxon\XsltProcessor::transformFileToValue' => ['Saxon\XdmValue', 'fileName'=>'string'], + 'Saxon\XsltProcessor::transformToFile' => ['void'], + 'Saxon\XsltProcessor::transformToString' => ['string'], + 'Saxon\XsltProcessor::transformToValue' => ['?Saxon\XdmValue'], + 'SeasLog::__destruct' => ['void'], + 'SeasLog::alert' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::analyzerCount' => ['mixed', 'level'=>'string', 'log_path='=>'string', 'key_word='=>'string'], + 'SeasLog::analyzerDetail' => ['mixed', 'level'=>'string', 'log_path='=>'string', 'key_word='=>'string', 'start='=>'int', 'limit='=>'int', 'order='=>'int'], + 'SeasLog::closeLoggerStream' => ['bool', 'model'=>'int', 'logger'=>'string'], + 'SeasLog::critical' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::debug' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::emergency' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::error' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::flushBuffer' => ['bool'], + 'SeasLog::getBasePath' => ['string'], + 'SeasLog::getBuffer' => ['array'], + 'SeasLog::getBufferEnabled' => ['bool'], + 'SeasLog::getDatetimeFormat' => ['string'], + 'SeasLog::getLastLogger' => ['string'], + 'SeasLog::getRequestID' => ['string'], + 'SeasLog::getRequestVariable' => ['bool', 'key'=>'int'], + 'SeasLog::info' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::log' => ['bool', 'level'=>'string', 'message='=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::notice' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeasLog::setBasePath' => ['bool', 'base_path'=>'string'], + 'SeasLog::setDatetimeFormat' => ['bool', 'format'=>'string'], + 'SeasLog::setLogger' => ['bool', 'logger'=>'string'], + 'SeasLog::setRequestID' => ['bool', 'request_id'=>'string'], + 'SeasLog::setRequestVariable' => ['bool', 'key'=>'int', 'value'=>'string'], + 'SeasLog::warning' => ['bool', 'message'=>'string', 'content='=>'array', 'logger='=>'string'], + 'SeekableIterator::__construct' => ['void'], + 'SeekableIterator::current' => ['mixed'], + 'SeekableIterator::key' => ['int|string'], + 'SeekableIterator::next' => ['void'], + 'SeekableIterator::rewind' => ['void'], + 'SeekableIterator::seek' => ['void', 'position'=>'int'], + 'SeekableIterator::valid' => ['bool'], + 'Serializable::__construct' => ['void'], + 'Serializable::serialize' => ['?string'], + 'Serializable::unserialize' => ['void', 'serialized'=>'string'], + 'ServerRequest::withInput' => ['ServerRequest', 'input'=>'mixed'], + 'ServerRequest::withParam' => ['ServerRequest', 'key'=>'int|string', 'value'=>'mixed'], + 'ServerRequest::withParams' => ['ServerRequest', 'params'=>'mixed'], + 'ServerRequest::withUrl' => ['ServerRequest', 'url'=>'array'], + 'ServerRequest::withoutParams' => ['ServerRequest', 'params'=>'int|string'], + 'ServerResponse::addHeader' => ['void', 'label'=>'string', 'value'=>'string'], + 'ServerResponse::date' => ['string', 'date'=>'string|DateTimeInterface'], + 'ServerResponse::getHeader' => ['string', 'label'=>'string'], + 'ServerResponse::getHeaders' => ['string[]'], + 'ServerResponse::getStatus' => ['int'], + 'ServerResponse::getVersion' => ['string'], + 'ServerResponse::setHeader' => ['void', 'label'=>'string', 'value'=>'string'], + 'ServerResponse::setStatus' => ['void', 'status'=>'int'], + 'ServerResponse::setVersion' => ['void', 'version'=>'string'], + 'SessionHandler::close' => ['bool'], + 'SessionHandler::create_sid' => ['string'], + 'SessionHandler::destroy' => ['bool', 'id'=>'string'], + 'SessionHandler::gc' => ['bool', 'maxlifetime'=>'int'], + 'SessionHandler::open' => ['bool', 'save_path'=>'string', 'session_name'=>'string'], + 'SessionHandler::read' => ['string', 'id'=>'string'], + 'SessionHandler::write' => ['bool', 'id'=>'string', 'data'=>'string'], + 'SessionHandlerInterface::close' => ['bool'], + 'SessionHandlerInterface::destroy' => ['bool', 'id'=>'string'], + 'SessionHandlerInterface::gc' => ['int|false', 'max_lifetime'=>'int'], + 'SessionHandlerInterface::open' => ['bool', 'path'=>'string', 'name'=>'string'], + 'SessionHandlerInterface::read' => ['string|false', 'id'=>'string'], + 'SessionHandlerInterface::write' => ['bool', 'id'=>'string', 'data'=>'string'], + 'SessionIdInterface::create_sid' => ['string'], + 'SessionUpdateTimestampHandler::updateTimestamp' => ['bool', 'id'=>'string', 'data'=>'string'], + 'SessionUpdateTimestampHandler::validateId' => ['char', 'id'=>'string'], + 'SessionUpdateTimestampHandlerInterface::updateTimestamp' => ['bool', 'key'=>'string', 'value'=>'string'], + 'SessionUpdateTimestampHandlerInterface::validateId' => ['bool', 'key'=>'string'], + 'SimpleXMLElement::__construct' => ['void', 'data'=>'string', 'options='=>'int', 'data_is_url='=>'bool', 'ns='=>'string', 'is_prefix='=>'bool'], + 'SimpleXMLElement::__get' => ['SimpleXMLElement', 'name'=>'string'], + 'SimpleXMLElement::__toString' => ['string'], + 'SimpleXMLElement::addAttribute' => ['void', 'name'=>'string', 'value='=>'string', 'ns='=>'string'], + 'SimpleXMLElement::addChild' => ['SimpleXMLElement', 'name'=>'string', 'value='=>'string', 'ns='=>'string'], + 'SimpleXMLElement::asXML' => ['string|bool', 'filename'=>'string'], + 'SimpleXMLElement::asXML\'1' => ['string|false'], + 'SimpleXMLElement::attributes' => ['?SimpleXMLElement', 'ns='=>'string', 'is_prefix='=>'bool'], + 'SimpleXMLElement::children' => ['SimpleXMLElement', 'ns='=>'string', 'is_prefix='=>'bool'], + 'SimpleXMLElement::count' => ['int'], + 'SimpleXMLElement::getDocNamespaces' => ['string[]', 'recursive='=>'bool', 'from_root='=>'bool'], + 'SimpleXMLElement::getName' => ['string'], + 'SimpleXMLElement::getNamespaces' => ['string[]', 'recursive='=>'bool'], + 'SimpleXMLElement::offsetExists' => ['bool', 'offset'=>'int|string'], + 'SimpleXMLElement::offsetGet' => ['SimpleXMLElement', 'offset'=>'int|string'], + 'SimpleXMLElement::offsetSet' => ['void', 'offset'=>'int|string', 'value'=>'mixed'], + 'SimpleXMLElement::offsetUnset' => ['void', 'offset'=>'int|string'], + 'SimpleXMLElement::registerXPathNamespace' => ['bool', 'prefix'=>'string', 'ns'=>'string'], + 'SimpleXMLElement::saveXML' => ['string|bool', 'filename='=>'string'], + 'SimpleXMLElement::xpath' => ['SimpleXMLElement[]|false', 'path'=>'string'], + 'SimpleXMLIterator::current' => ['?SimpleXMLIterator'], + 'SimpleXMLIterator::getChildren' => ['?SimpleXMLIterator'], + 'SimpleXMLIterator::hasChildren' => ['bool'], + 'SimpleXMLIterator::key' => ['string|false'], + 'SimpleXMLIterator::next' => ['void'], + 'SimpleXMLIterator::rewind' => ['void'], + 'SimpleXMLIterator::valid' => ['bool'], + 'SoapClient::SoapClient' => ['object', 'wsdl'=>'mixed', 'options='=>'array|null'], + 'SoapClient::__call' => ['', 'function_name'=>'string', 'arguments'=>'array'], + 'SoapClient::__construct' => ['void', 'wsdl'=>'mixed', 'options='=>'array|null'], + 'SoapClient::__doRequest' => ['?string', 'request'=>'string', 'location'=>'string', 'action'=>'string', 'version'=>'int', 'one_way='=>'int'], + 'SoapClient::__getCookies' => ['array'], + 'SoapClient::__getFunctions' => ['?array'], + 'SoapClient::__getLastRequest' => ['?string'], + 'SoapClient::__getLastRequestHeaders' => ['?string'], + 'SoapClient::__getLastResponse' => ['?string'], + 'SoapClient::__getLastResponseHeaders' => ['?string'], + 'SoapClient::__getTypes' => ['?array'], + 'SoapClient::__setCookie' => ['', 'name'=>'string', 'value='=>'string'], + 'SoapClient::__setLocation' => ['string', 'new_location='=>'string'], + 'SoapClient::__setSoapHeaders' => ['bool', 'soapheaders='=>''], + 'SoapClient::__soapCall' => ['', 'function_name'=>'string', 'arguments'=>'array', 'options='=>'array', 'input_headers='=>'SoapHeader|array', '&w_output_headers='=>'array'], + 'SoapFault::SoapFault' => ['object', 'faultcode'=>'string', 'faultstring'=>'string', 'faultactor='=>'?string', 'detail='=>'?mixed', 'faultname='=>'?string', 'headerfault='=>'?mixed'], + 'SoapFault::__clone' => ['void'], + 'SoapFault::__construct' => ['void', 'code'=>'array|string|null', 'string'=>'string', 'actor='=>'?string', 'details='=>'?mixed', 'name='=>'?string', 'headerFault='=>'?mixed'], + 'SoapFault::__toString' => ['string'], + 'SoapFault::__wakeup' => ['void'], + 'SoapFault::getCode' => ['int'], + 'SoapFault::getFile' => ['string'], + 'SoapFault::getLine' => ['int'], + 'SoapFault::getMessage' => ['string'], + 'SoapFault::getPrevious' => ['?Exception|?Throwable'], + 'SoapFault::getTrace' => ['list\',args?:array}>'], + 'SoapFault::getTraceAsString' => ['string'], + 'SoapHeader::SoapHeader' => ['object', 'namespace'=>'string', 'name'=>'string', 'data='=>'mixed', 'mustunderstand='=>'bool', 'actor='=>'string'], + 'SoapHeader::__construct' => ['void', 'namespace'=>'string', 'name'=>'string', 'data='=>'mixed', 'mustunderstand='=>'bool', 'actor='=>'string'], + 'SoapParam::SoapParam' => ['object', 'data'=>'mixed', 'name'=>'string'], + 'SoapParam::__construct' => ['void', 'data'=>'mixed', 'name'=>'string'], + 'SoapServer::SoapServer' => ['object', 'wsdl'=>'?string', 'options='=>'array'], + 'SoapServer::__construct' => ['void', 'wsdl'=>'?string', 'options='=>'array'], + 'SoapServer::addFunction' => ['void', 'functions'=>'mixed'], + 'SoapServer::addSoapHeader' => ['void', 'object'=>'SoapHeader'], + 'SoapServer::fault' => ['void', 'code'=>'string', 'string'=>'string', 'actor='=>'string', 'details='=>'string', 'name='=>'string'], + 'SoapServer::getFunctions' => ['array'], + 'SoapServer::handle' => ['void', 'soap_request='=>'string'], + 'SoapServer::setClass' => ['void', 'class_name'=>'string', '...args='=>'mixed'], + 'SoapServer::setObject' => ['void', 'object'=>'object'], + 'SoapServer::setPersistence' => ['void', 'mode'=>'int'], + 'SoapVar::SoapVar' => ['object', 'data'=>'mixed', 'encoding'=>'int', 'type_name='=>'string|null', 'type_namespace='=>'string|null', 'node_name='=>'string|null', 'node_namespace='=>'string|null'], + 'SoapVar::__construct' => ['void', 'data'=>'mixed', 'encoding'=>'int', 'type_name='=>'string|null', 'type_namespace='=>'string|null', 'node_name='=>'string|null', 'node_namespace='=>'string|null'], + 'Sodium\add' => ['void', '&left'=>'string', 'right'=>'string'], + 'Sodium\bin2hex' => ['string', 'binary'=>'string'], + 'Sodium\compare' => ['int', 'left'=>'string', 'right'=>'string'], + 'Sodium\crypto_aead_aes256gcm_decrypt' => ['string|false', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_aes256gcm_encrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_aes256gcm_is_available' => ['bool'], + 'Sodium\crypto_aead_chacha20poly1305_decrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_aead_chacha20poly1305_encrypt' => ['string', 'msg'=>'string', 'nonce'=>'string', 'key'=>'string', 'ad='=>'string'], + 'Sodium\crypto_auth' => ['string', 'msg'=>'string', 'key'=>'string'], + 'Sodium\crypto_auth_verify' => ['bool', 'mac'=>'string', 'msg'=>'string', 'key'=>'string'], + 'Sodium\crypto_box' => ['string', 'msg'=>'string', 'nonce'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_keypair' => ['string'], + 'Sodium\crypto_box_keypair_from_secretkey_and_publickey' => ['string', 'secretkey'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_box_open' => ['string', 'msg'=>'string', 'nonce'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_publickey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_box_publickey_from_secretkey' => ['string', 'secretkey'=>'string'], + 'Sodium\crypto_box_seal' => ['string', 'message'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_box_seal_open' => ['string', 'encrypted'=>'string', 'keypair'=>'string'], + 'Sodium\crypto_box_secretkey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_box_seed_keypair' => ['string', 'seed'=>'string'], + 'Sodium\crypto_generichash' => ['string', 'input'=>'string', 'key='=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_final' => ['string', 'state'=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_init' => ['string', 'key='=>'string', 'length='=>'int'], + 'Sodium\crypto_generichash_update' => ['bool', '&hashState'=>'string', 'append'=>'string'], + 'Sodium\crypto_kx' => ['string', 'secretkey'=>'string', 'publickey'=>'string', 'client_publickey'=>'string', 'server_publickey'=>'string'], + 'Sodium\crypto_pwhash' => ['string', 'out_len'=>'int', 'passwd'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256' => ['string', 'out_len'=>'int', 'passwd'=>'string', 'salt'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256_str' => ['string', 'passwd'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_scryptsalsa208sha256_str_verify' => ['bool', 'hash'=>'string', 'passwd'=>'string'], + 'Sodium\crypto_pwhash_str' => ['string', 'passwd'=>'string', 'opslimit'=>'int', 'memlimit'=>'int'], + 'Sodium\crypto_pwhash_str_verify' => ['bool', 'hash'=>'string', 'passwd'=>'string'], + 'Sodium\crypto_scalarmult' => ['string', 'ecdhA'=>'string', 'ecdhB'=>'string'], + 'Sodium\crypto_scalarmult_base' => ['string', 'sk'=>'string'], + 'Sodium\crypto_secretbox' => ['string', 'plaintext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_secretbox_open' => ['string', 'ciphertext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_shorthash' => ['string', 'message'=>'string', 'key'=>'string'], + 'Sodium\crypto_sign' => ['string', 'message'=>'string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_detached' => ['string', 'message'=>'string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_ed25519_pk_to_curve25519' => ['string', 'sign_pk'=>'string'], + 'Sodium\crypto_sign_ed25519_sk_to_curve25519' => ['string', 'sign_sk'=>'string'], + 'Sodium\crypto_sign_keypair' => ['string'], + 'Sodium\crypto_sign_keypair_from_secretkey_and_publickey' => ['string', 'secretkey'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_sign_open' => ['string|false', 'signed_message'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_sign_publickey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_sign_publickey_from_secretkey' => ['string', 'secretkey'=>'string'], + 'Sodium\crypto_sign_secretkey' => ['string', 'keypair'=>'string'], + 'Sodium\crypto_sign_seed_keypair' => ['string', 'seed'=>'string'], + 'Sodium\crypto_sign_verify_detached' => ['bool', 'signature'=>'string', 'msg'=>'string', 'publickey'=>'string'], + 'Sodium\crypto_stream' => ['string', 'length'=>'int', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\crypto_stream_xor' => ['string', 'plaintext'=>'string', 'nonce'=>'string', 'key'=>'string'], + 'Sodium\hex2bin' => ['string', 'hex'=>'string'], + 'Sodium\increment' => ['string', '&nonce'=>'string'], + 'Sodium\library_version_major' => ['int'], + 'Sodium\library_version_minor' => ['int'], + 'Sodium\memcmp' => ['int', 'left'=>'string', 'right'=>'string'], + 'Sodium\memzero' => ['void', '&target'=>'string'], + 'Sodium\randombytes_buf' => ['string', 'length'=>'int'], + 'Sodium\randombytes_random16' => ['int|string'], + 'Sodium\randombytes_uniform' => ['int', 'upperBoundNonInclusive'=>'int'], + 'Sodium\version_string' => ['string'], + 'SolrClient::__construct' => ['void', 'clientOptions'=>'array'], + 'SolrClient::__destruct' => ['void'], + 'SolrClient::addDocument' => ['SolrUpdateResponse', 'doc'=>'SolrInputDocument', 'allowdups='=>'bool', 'commitwithin='=>'int'], + 'SolrClient::addDocuments' => ['SolrUpdateResponse', 'docs'=>'array', 'allowdups='=>'bool', 'commitwithin='=>'int'], + 'SolrClient::commit' => ['SolrUpdateResponse', 'maxsegments='=>'int', 'waitflush='=>'bool', 'waitsearcher='=>'bool'], + 'SolrClient::deleteById' => ['SolrUpdateResponse', 'id'=>'string'], + 'SolrClient::deleteByIds' => ['SolrUpdateResponse', 'ids'=>'array'], + 'SolrClient::deleteByQueries' => ['SolrUpdateResponse', 'queries'=>'array'], + 'SolrClient::deleteByQuery' => ['SolrUpdateResponse', 'query'=>'string'], + 'SolrClient::getById' => ['SolrQueryResponse', 'id'=>'string'], + 'SolrClient::getByIds' => ['SolrQueryResponse', 'ids'=>'array'], + 'SolrClient::getDebug' => ['string'], + 'SolrClient::getOptions' => ['array'], + 'SolrClient::optimize' => ['SolrUpdateResponse', 'maxsegments='=>'int', 'waitflush='=>'bool', 'waitsearcher='=>'bool'], + 'SolrClient::ping' => ['SolrPingResponse'], + 'SolrClient::query' => ['SolrQueryResponse', 'query'=>'SolrParams'], + 'SolrClient::request' => ['SolrUpdateResponse', 'raw_request'=>'string'], + 'SolrClient::rollback' => ['SolrUpdateResponse'], + 'SolrClient::setResponseWriter' => ['void', 'responsewriter'=>'string'], + 'SolrClient::setServlet' => ['bool', 'type'=>'int', 'value'=>'string'], + 'SolrClient::system' => ['SolrGenericResponse'], + 'SolrClient::threads' => ['SolrGenericResponse'], + 'SolrClientException::__clone' => ['void'], + 'SolrClientException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'SolrClientException::__toString' => ['string'], + 'SolrClientException::__wakeup' => ['void'], + 'SolrClientException::getCode' => ['int'], + 'SolrClientException::getFile' => ['string'], + 'SolrClientException::getInternalInfo' => ['array'], + 'SolrClientException::getLine' => ['int'], + 'SolrClientException::getMessage' => ['string'], + 'SolrClientException::getPrevious' => ['?Exception|?Throwable'], + 'SolrClientException::getTrace' => ['list\',args?:array}>'], + 'SolrClientException::getTraceAsString' => ['string'], + 'SolrCollapseFunction::__construct' => ['void', 'field'=>'string'], + 'SolrCollapseFunction::__toString' => ['string'], + 'SolrCollapseFunction::getField' => ['string'], + 'SolrCollapseFunction::getHint' => ['string'], + 'SolrCollapseFunction::getMax' => ['string'], + 'SolrCollapseFunction::getMin' => ['string'], + 'SolrCollapseFunction::getNullPolicy' => ['string'], + 'SolrCollapseFunction::getSize' => ['int'], + 'SolrCollapseFunction::setField' => ['SolrCollapseFunction', 'fieldName'=>'string'], + 'SolrCollapseFunction::setHint' => ['SolrCollapseFunction', 'hint'=>'string'], + 'SolrCollapseFunction::setMax' => ['SolrCollapseFunction', 'max'=>'string'], + 'SolrCollapseFunction::setMin' => ['SolrCollapseFunction', 'min'=>'string'], + 'SolrCollapseFunction::setNullPolicy' => ['SolrCollapseFunction', 'nullPolicy'=>'string'], + 'SolrCollapseFunction::setSize' => ['SolrCollapseFunction', 'size'=>'int'], + 'SolrDisMaxQuery::__construct' => ['void', 'q='=>'string'], + 'SolrDisMaxQuery::__destruct' => ['void'], + 'SolrDisMaxQuery::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrDisMaxQuery::addBigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], + 'SolrDisMaxQuery::addBoostQuery' => ['SolrDisMaxQuery', 'field'=>'string', 'value'=>'string', 'boost='=>'string'], + 'SolrDisMaxQuery::addExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrDisMaxQuery::addExpandSortField' => ['SolrQuery', 'field'=>'string', 'order'=>'string'], + 'SolrDisMaxQuery::addFacetDateField' => ['SolrQuery', 'dateField'=>'string'], + 'SolrDisMaxQuery::addFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::addFacetField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addFacetQuery' => ['SolrQuery', 'facetQuery'=>'string'], + 'SolrDisMaxQuery::addField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrDisMaxQuery::addGroupField' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::addGroupFunction' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::addGroupQuery' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::addGroupSortField' => ['SolrQuery', 'field'=>'string', 'order'=>'int'], + 'SolrDisMaxQuery::addHighlightField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addMltField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addMltQueryField' => ['SolrQuery', 'field'=>'string', 'boost'=>'float'], + 'SolrDisMaxQuery::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrDisMaxQuery::addPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], + 'SolrDisMaxQuery::addQueryField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost='=>'string'], + 'SolrDisMaxQuery::addSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], + 'SolrDisMaxQuery::addStatsFacet' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addStatsField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::addTrigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string', 'boost'=>'string', 'slop='=>'string'], + 'SolrDisMaxQuery::addUserField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::collapse' => ['SolrQuery', 'collapseFunction'=>'SolrCollapseFunction'], + 'SolrDisMaxQuery::get' => ['mixed', 'param_name'=>'string'], + 'SolrDisMaxQuery::getExpand' => ['bool'], + 'SolrDisMaxQuery::getExpandFilterQueries' => ['array'], + 'SolrDisMaxQuery::getExpandQuery' => ['array'], + 'SolrDisMaxQuery::getExpandRows' => ['int'], + 'SolrDisMaxQuery::getExpandSortFields' => ['array'], + 'SolrDisMaxQuery::getFacet' => ['bool'], + 'SolrDisMaxQuery::getFacetDateEnd' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetDateFields' => ['array'], + 'SolrDisMaxQuery::getFacetDateGap' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetDateHardEnd' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetDateOther' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetDateStart' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetFields' => ['array'], + 'SolrDisMaxQuery::getFacetLimit' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetMethod' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetMinCount' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetMissing' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetOffset' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetPrefix' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFacetQueries' => ['string'], + 'SolrDisMaxQuery::getFacetSort' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getFields' => ['string'], + 'SolrDisMaxQuery::getFilterQueries' => ['string'], + 'SolrDisMaxQuery::getGroup' => ['bool'], + 'SolrDisMaxQuery::getGroupCachePercent' => ['int'], + 'SolrDisMaxQuery::getGroupFacet' => ['bool'], + 'SolrDisMaxQuery::getGroupFields' => ['array'], + 'SolrDisMaxQuery::getGroupFormat' => ['string'], + 'SolrDisMaxQuery::getGroupFunctions' => ['array'], + 'SolrDisMaxQuery::getGroupLimit' => ['int'], + 'SolrDisMaxQuery::getGroupMain' => ['bool'], + 'SolrDisMaxQuery::getGroupNGroups' => ['bool'], + 'SolrDisMaxQuery::getGroupOffset' => ['bool'], + 'SolrDisMaxQuery::getGroupQueries' => ['array'], + 'SolrDisMaxQuery::getGroupSortFields' => ['array'], + 'SolrDisMaxQuery::getGroupTruncate' => ['bool'], + 'SolrDisMaxQuery::getHighlight' => ['bool'], + 'SolrDisMaxQuery::getHighlightAlternateField' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightFields' => ['array'], + 'SolrDisMaxQuery::getHighlightFormatter' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightFragmenter' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightFragsize' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightHighlightMultiTerm' => ['bool'], + 'SolrDisMaxQuery::getHighlightMaxAlternateFieldLength' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightMaxAnalyzedChars' => ['int'], + 'SolrDisMaxQuery::getHighlightMergeContiguous' => ['bool', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightRegexMaxAnalyzedChars' => ['int'], + 'SolrDisMaxQuery::getHighlightRegexPattern' => ['string'], + 'SolrDisMaxQuery::getHighlightRegexSlop' => ['float'], + 'SolrDisMaxQuery::getHighlightRequireFieldMatch' => ['bool'], + 'SolrDisMaxQuery::getHighlightSimplePost' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightSimplePre' => ['string', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightSnippets' => ['int', 'field_override'=>'string'], + 'SolrDisMaxQuery::getHighlightUsePhraseHighlighter' => ['bool'], + 'SolrDisMaxQuery::getMlt' => ['bool'], + 'SolrDisMaxQuery::getMltBoost' => ['bool'], + 'SolrDisMaxQuery::getMltCount' => ['int'], + 'SolrDisMaxQuery::getMltFields' => ['array'], + 'SolrDisMaxQuery::getMltMaxNumQueryTerms' => ['int'], + 'SolrDisMaxQuery::getMltMaxNumTokens' => ['int'], + 'SolrDisMaxQuery::getMltMaxWordLength' => ['int'], + 'SolrDisMaxQuery::getMltMinDocFrequency' => ['int'], + 'SolrDisMaxQuery::getMltMinTermFrequency' => ['int'], + 'SolrDisMaxQuery::getMltMinWordLength' => ['int'], + 'SolrDisMaxQuery::getMltQueryFields' => ['array'], + 'SolrDisMaxQuery::getParam' => ['mixed', 'param_name'=>'string'], + 'SolrDisMaxQuery::getParams' => ['array'], + 'SolrDisMaxQuery::getPreparedParams' => ['array'], + 'SolrDisMaxQuery::getQuery' => ['string'], + 'SolrDisMaxQuery::getRows' => ['int'], + 'SolrDisMaxQuery::getSortFields' => ['array'], + 'SolrDisMaxQuery::getStart' => ['int'], + 'SolrDisMaxQuery::getStats' => ['bool'], + 'SolrDisMaxQuery::getStatsFacets' => ['array'], + 'SolrDisMaxQuery::getStatsFields' => ['array'], + 'SolrDisMaxQuery::getTerms' => ['bool'], + 'SolrDisMaxQuery::getTermsField' => ['string'], + 'SolrDisMaxQuery::getTermsIncludeLowerBound' => ['bool'], + 'SolrDisMaxQuery::getTermsIncludeUpperBound' => ['bool'], + 'SolrDisMaxQuery::getTermsLimit' => ['int'], + 'SolrDisMaxQuery::getTermsLowerBound' => ['string'], + 'SolrDisMaxQuery::getTermsMaxCount' => ['int'], + 'SolrDisMaxQuery::getTermsMinCount' => ['int'], + 'SolrDisMaxQuery::getTermsPrefix' => ['string'], + 'SolrDisMaxQuery::getTermsReturnRaw' => ['bool'], + 'SolrDisMaxQuery::getTermsSort' => ['int'], + 'SolrDisMaxQuery::getTermsUpperBound' => ['string'], + 'SolrDisMaxQuery::getTimeAllowed' => ['int'], + 'SolrDisMaxQuery::removeBigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeBoostQuery' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrDisMaxQuery::removeExpandSortField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeFacetDateField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::removeFacetField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeFacetQuery' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::removeField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrDisMaxQuery::removeHighlightField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeMltField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeMltQueryField' => ['SolrQuery', 'queryField'=>'string'], + 'SolrDisMaxQuery::removePhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeQueryField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeSortField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeStatsFacet' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::removeStatsField' => ['SolrQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeTrigramPhraseField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::removeUserField' => ['SolrDisMaxQuery', 'field'=>'string'], + 'SolrDisMaxQuery::serialize' => ['string'], + 'SolrDisMaxQuery::set' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrDisMaxQuery::setBigramPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], + 'SolrDisMaxQuery::setBigramPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], + 'SolrDisMaxQuery::setBoostFunction' => ['SolrDisMaxQuery', 'function'=>'string'], + 'SolrDisMaxQuery::setBoostQuery' => ['SolrDisMaxQuery', 'q'=>'string'], + 'SolrDisMaxQuery::setEchoHandler' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setEchoParams' => ['SolrQuery', 'type'=>'string'], + 'SolrDisMaxQuery::setExpand' => ['SolrQuery', 'value'=>'bool'], + 'SolrDisMaxQuery::setExpandQuery' => ['SolrQuery', 'q'=>'string'], + 'SolrDisMaxQuery::setExpandRows' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setExplainOther' => ['SolrQuery', 'query'=>'string'], + 'SolrDisMaxQuery::setFacet' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setFacetDateEnd' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetDateGap' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetDateHardEnd' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetDateStart' => ['SolrQuery', 'value'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetEnumCacheMinDefaultFrequency' => ['SolrQuery', 'frequency'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetLimit' => ['SolrQuery', 'limit'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetMethod' => ['SolrQuery', 'method'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetMinCount' => ['SolrQuery', 'mincount'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetMissing' => ['SolrQuery', 'flag'=>'bool', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetOffset' => ['SolrQuery', 'offset'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetPrefix' => ['SolrQuery', 'prefix'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setFacetSort' => ['SolrQuery', 'facetSort'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setGroup' => ['SolrQuery', 'value'=>'bool'], + 'SolrDisMaxQuery::setGroupCachePercent' => ['SolrQuery', 'percent'=>'int'], + 'SolrDisMaxQuery::setGroupFacet' => ['SolrQuery', 'value'=>'bool'], + 'SolrDisMaxQuery::setGroupFormat' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::setGroupLimit' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setGroupMain' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::setGroupNGroups' => ['SolrQuery', 'value'=>'bool'], + 'SolrDisMaxQuery::setGroupOffset' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setGroupTruncate' => ['SolrQuery', 'value'=>'bool'], + 'SolrDisMaxQuery::setHighlight' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setHighlightAlternateField' => ['SolrQuery', 'field'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightFormatter' => ['SolrQuery', 'formatter'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightFragmenter' => ['SolrQuery', 'fragmenter'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightFragsize' => ['SolrQuery', 'size'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightHighlightMultiTerm' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setHighlightMaxAlternateFieldLength' => ['SolrQuery', 'fieldLength'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightMaxAnalyzedChars' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setHighlightMergeContiguous' => ['SolrQuery', 'flag'=>'bool', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightRegexMaxAnalyzedChars' => ['SolrQuery', 'maxAnalyzedChars'=>'int'], + 'SolrDisMaxQuery::setHighlightRegexPattern' => ['SolrQuery', 'value'=>'string'], + 'SolrDisMaxQuery::setHighlightRegexSlop' => ['SolrQuery', 'factor'=>'float'], + 'SolrDisMaxQuery::setHighlightRequireFieldMatch' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setHighlightSimplePost' => ['SolrQuery', 'simplePost'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightSimplePre' => ['SolrQuery', 'simplePre'=>'string', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightSnippets' => ['SolrQuery', 'value'=>'int', 'field_override'=>'string'], + 'SolrDisMaxQuery::setHighlightUsePhraseHighlighter' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setMinimumMatch' => ['SolrDisMaxQuery', 'value'=>'string'], + 'SolrDisMaxQuery::setMlt' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setMltBoost' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setMltCount' => ['SolrQuery', 'count'=>'int'], + 'SolrDisMaxQuery::setMltMaxNumQueryTerms' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setMltMaxNumTokens' => ['SolrQuery', 'value'=>'int'], + 'SolrDisMaxQuery::setMltMaxWordLength' => ['SolrQuery', 'maxWordLength'=>'int'], + 'SolrDisMaxQuery::setMltMinDocFrequency' => ['SolrQuery', 'minDocFrequency'=>'int'], + 'SolrDisMaxQuery::setMltMinTermFrequency' => ['SolrQuery', 'minTermFrequency'=>'int'], + 'SolrDisMaxQuery::setMltMinWordLength' => ['SolrQuery', 'minWordLength'=>'int'], + 'SolrDisMaxQuery::setOmitHeader' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrDisMaxQuery::setPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], + 'SolrDisMaxQuery::setPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], + 'SolrDisMaxQuery::setQuery' => ['SolrQuery', 'query'=>'string'], + 'SolrDisMaxQuery::setQueryAlt' => ['SolrDisMaxQuery', 'q'=>'string'], + 'SolrDisMaxQuery::setQueryPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], + 'SolrDisMaxQuery::setRows' => ['SolrQuery', 'rows'=>'int'], + 'SolrDisMaxQuery::setShowDebugInfo' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setStart' => ['SolrQuery', 'start'=>'int'], + 'SolrDisMaxQuery::setStats' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setTerms' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setTermsField' => ['SolrQuery', 'fieldname'=>'string'], + 'SolrDisMaxQuery::setTermsIncludeLowerBound' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setTermsIncludeUpperBound' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setTermsLimit' => ['SolrQuery', 'limit'=>'int'], + 'SolrDisMaxQuery::setTermsLowerBound' => ['SolrQuery', 'lowerBound'=>'string'], + 'SolrDisMaxQuery::setTermsMaxCount' => ['SolrQuery', 'frequency'=>'int'], + 'SolrDisMaxQuery::setTermsMinCount' => ['SolrQuery', 'frequency'=>'int'], + 'SolrDisMaxQuery::setTermsPrefix' => ['SolrQuery', 'prefix'=>'string'], + 'SolrDisMaxQuery::setTermsReturnRaw' => ['SolrQuery', 'flag'=>'bool'], + 'SolrDisMaxQuery::setTermsSort' => ['SolrQuery', 'sortType'=>'int'], + 'SolrDisMaxQuery::setTermsUpperBound' => ['SolrQuery', 'upperBound'=>'string'], + 'SolrDisMaxQuery::setTieBreaker' => ['SolrDisMaxQuery', 'tieBreaker'=>'string'], + 'SolrDisMaxQuery::setTimeAllowed' => ['SolrQuery', 'timeAllowed'=>'int'], + 'SolrDisMaxQuery::setTrigramPhraseFields' => ['SolrDisMaxQuery', 'fields'=>'string'], + 'SolrDisMaxQuery::setTrigramPhraseSlop' => ['SolrDisMaxQuery', 'slop'=>'string'], + 'SolrDisMaxQuery::setUserFields' => ['SolrDisMaxQuery', 'fields'=>'string'], + 'SolrDisMaxQuery::toString' => ['string', 'url_encode='=>'bool'], + 'SolrDisMaxQuery::unserialize' => ['void', 'serialized'=>'string'], + 'SolrDisMaxQuery::useDisMaxQueryParser' => ['SolrDisMaxQuery'], + 'SolrDisMaxQuery::useEDisMaxQueryParser' => ['SolrDisMaxQuery'], + 'SolrDocument::__clone' => ['void'], + 'SolrDocument::__construct' => ['void'], + 'SolrDocument::__destruct' => ['void'], + 'SolrDocument::__get' => ['SolrDocumentField', 'fieldname'=>'string'], + 'SolrDocument::__isset' => ['bool', 'fieldname'=>'string'], + 'SolrDocument::__set' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string'], + 'SolrDocument::__unset' => ['bool', 'fieldname'=>'string'], + 'SolrDocument::addField' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string'], + 'SolrDocument::clear' => ['bool'], + 'SolrDocument::current' => ['SolrDocumentField'], + 'SolrDocument::deleteField' => ['bool', 'fieldname'=>'string'], + 'SolrDocument::fieldExists' => ['bool', 'fieldname'=>'string'], + 'SolrDocument::getChildDocuments' => ['SolrInputDocument[]'], + 'SolrDocument::getChildDocumentsCount' => ['int'], + 'SolrDocument::getField' => ['SolrDocumentField|false', 'fieldname'=>'string'], + 'SolrDocument::getFieldCount' => ['int|false'], + 'SolrDocument::getFieldNames' => ['array|false'], + 'SolrDocument::getInputDocument' => ['SolrInputDocument'], + 'SolrDocument::hasChildDocuments' => ['bool'], + 'SolrDocument::key' => ['string'], + 'SolrDocument::merge' => ['bool', 'sourcedoc'=>'solrdocument', 'overwrite='=>'bool'], + 'SolrDocument::next' => ['void'], + 'SolrDocument::offsetExists' => ['bool', 'fieldname'=>'string'], + 'SolrDocument::offsetGet' => ['SolrDocumentField', 'fieldname'=>'string'], + 'SolrDocument::offsetSet' => ['void', 'fieldname'=>'string', 'fieldvalue'=>'string'], + 'SolrDocument::offsetUnset' => ['void', 'fieldname'=>'string'], + 'SolrDocument::reset' => ['bool'], + 'SolrDocument::rewind' => ['void'], + 'SolrDocument::serialize' => ['string'], + 'SolrDocument::sort' => ['bool', 'sortorderby'=>'int', 'sortdirection='=>'int'], + 'SolrDocument::toArray' => ['array'], + 'SolrDocument::unserialize' => ['void', 'serialized'=>'string'], + 'SolrDocument::valid' => ['bool'], + 'SolrDocumentField::__construct' => ['void'], + 'SolrDocumentField::__destruct' => ['void'], + 'SolrException::__clone' => ['void'], + 'SolrException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'SolrException::__toString' => ['string'], + 'SolrException::__wakeup' => ['void'], + 'SolrException::getCode' => ['int'], + 'SolrException::getFile' => ['string'], + 'SolrException::getInternalInfo' => ['array'], + 'SolrException::getLine' => ['int'], + 'SolrException::getMessage' => ['string'], + 'SolrException::getPrevious' => ['Exception|Throwable'], + 'SolrException::getTrace' => ['list\',args?:array}>'], + 'SolrException::getTraceAsString' => ['string'], + 'SolrGenericResponse::__construct' => ['void'], + 'SolrGenericResponse::__destruct' => ['void'], + 'SolrGenericResponse::getDigestedResponse' => ['string'], + 'SolrGenericResponse::getHttpStatus' => ['int'], + 'SolrGenericResponse::getHttpStatusMessage' => ['string'], + 'SolrGenericResponse::getRawRequest' => ['string'], + 'SolrGenericResponse::getRawRequestHeaders' => ['string'], + 'SolrGenericResponse::getRawResponse' => ['string'], + 'SolrGenericResponse::getRawResponseHeaders' => ['string'], + 'SolrGenericResponse::getRequestUrl' => ['string'], + 'SolrGenericResponse::getResponse' => ['SolrObject'], + 'SolrGenericResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], + 'SolrGenericResponse::success' => ['bool'], + 'SolrIllegalArgumentException::__clone' => ['void'], + 'SolrIllegalArgumentException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'SolrIllegalArgumentException::__toString' => ['string'], + 'SolrIllegalArgumentException::__wakeup' => ['void'], + 'SolrIllegalArgumentException::getCode' => ['int'], + 'SolrIllegalArgumentException::getFile' => ['string'], + 'SolrIllegalArgumentException::getInternalInfo' => ['array'], + 'SolrIllegalArgumentException::getLine' => ['int'], + 'SolrIllegalArgumentException::getMessage' => ['string'], + 'SolrIllegalArgumentException::getPrevious' => ['Exception|Throwable'], + 'SolrIllegalArgumentException::getTrace' => ['list\',args?:array}>'], + 'SolrIllegalArgumentException::getTraceAsString' => ['string'], + 'SolrIllegalOperationException::__clone' => ['void'], + 'SolrIllegalOperationException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'SolrIllegalOperationException::__toString' => ['string'], + 'SolrIllegalOperationException::__wakeup' => ['void'], + 'SolrIllegalOperationException::getCode' => ['int'], + 'SolrIllegalOperationException::getFile' => ['string'], + 'SolrIllegalOperationException::getInternalInfo' => ['array'], + 'SolrIllegalOperationException::getLine' => ['int'], + 'SolrIllegalOperationException::getMessage' => ['string'], + 'SolrIllegalOperationException::getPrevious' => ['Exception|Throwable'], + 'SolrIllegalOperationException::getTrace' => ['list\',args?:array}>'], + 'SolrIllegalOperationException::getTraceAsString' => ['string'], + 'SolrInputDocument::__clone' => ['void'], + 'SolrInputDocument::__construct' => ['void'], + 'SolrInputDocument::__destruct' => ['void'], + 'SolrInputDocument::addChildDocument' => ['void', 'child'=>'SolrInputDocument'], + 'SolrInputDocument::addChildDocuments' => ['void', 'docs'=>'array'], + 'SolrInputDocument::addField' => ['bool', 'fieldname'=>'string', 'fieldvalue'=>'string', 'fieldboostvalue='=>'float'], + 'SolrInputDocument::clear' => ['bool'], + 'SolrInputDocument::deleteField' => ['bool', 'fieldname'=>'string'], + 'SolrInputDocument::fieldExists' => ['bool', 'fieldname'=>'string'], + 'SolrInputDocument::getBoost' => ['float|false'], + 'SolrInputDocument::getChildDocuments' => ['SolrInputDocument[]'], + 'SolrInputDocument::getChildDocumentsCount' => ['int'], + 'SolrInputDocument::getField' => ['SolrDocumentField|false', 'fieldname'=>'string'], + 'SolrInputDocument::getFieldBoost' => ['float|false', 'fieldname'=>'string'], + 'SolrInputDocument::getFieldCount' => ['int|false'], + 'SolrInputDocument::getFieldNames' => ['array|false'], + 'SolrInputDocument::hasChildDocuments' => ['bool'], + 'SolrInputDocument::merge' => ['bool', 'sourcedoc'=>'SolrInputDocument', 'overwrite='=>'bool'], + 'SolrInputDocument::reset' => ['bool'], + 'SolrInputDocument::setBoost' => ['bool', 'documentboostvalue'=>'float'], + 'SolrInputDocument::setFieldBoost' => ['bool', 'fieldname'=>'string', 'fieldboostvalue'=>'float'], + 'SolrInputDocument::sort' => ['bool', 'sortorderby'=>'int', 'sortdirection='=>'int'], + 'SolrInputDocument::toArray' => ['array|false'], + 'SolrModifiableParams::__construct' => ['void'], + 'SolrModifiableParams::__destruct' => ['void'], + 'SolrModifiableParams::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrModifiableParams::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrModifiableParams::get' => ['mixed', 'param_name'=>'string'], + 'SolrModifiableParams::getParam' => ['mixed', 'param_name'=>'string'], + 'SolrModifiableParams::getParams' => ['array'], + 'SolrModifiableParams::getPreparedParams' => ['array'], + 'SolrModifiableParams::serialize' => ['string'], + 'SolrModifiableParams::set' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrModifiableParams::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrModifiableParams::toString' => ['string', 'url_encode='=>'bool'], + 'SolrModifiableParams::unserialize' => ['void', 'serialized'=>'string'], + 'SolrObject::__construct' => ['void'], + 'SolrObject::__destruct' => ['void'], + 'SolrObject::getPropertyNames' => ['array'], + 'SolrObject::offsetExists' => ['bool', 'property_name'=>'string'], + 'SolrObject::offsetGet' => ['SolrDocumentField', 'property_name'=>'string'], + 'SolrObject::offsetSet' => ['void', 'property_name'=>'string', 'property_value'=>'string'], + 'SolrObject::offsetUnset' => ['void', 'property_name'=>'string'], + 'SolrParams::__construct' => ['void'], + 'SolrParams::add' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], + 'SolrParams::addParam' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], + 'SolrParams::get' => ['mixed', 'param_name'=>'string'], + 'SolrParams::getParam' => ['mixed', 'param_name='=>'string'], + 'SolrParams::getParams' => ['array'], + 'SolrParams::getPreparedParams' => ['array'], + 'SolrParams::serialize' => ['string'], + 'SolrParams::set' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], + 'SolrParams::setParam' => ['SolrParams|false', 'name'=>'string', 'value'=>'string'], + 'SolrParams::toString' => ['string|false', 'url_encode='=>'bool'], + 'SolrParams::unserialize' => ['void', 'serialized'=>'string'], + 'SolrPingResponse::__construct' => ['void'], + 'SolrPingResponse::__destruct' => ['void'], + 'SolrPingResponse::getDigestedResponse' => ['string'], + 'SolrPingResponse::getHttpStatus' => ['int'], + 'SolrPingResponse::getHttpStatusMessage' => ['string'], + 'SolrPingResponse::getRawRequest' => ['string'], + 'SolrPingResponse::getRawRequestHeaders' => ['string'], + 'SolrPingResponse::getRawResponse' => ['string'], + 'SolrPingResponse::getRawResponseHeaders' => ['string'], + 'SolrPingResponse::getRequestUrl' => ['string'], + 'SolrPingResponse::getResponse' => ['string'], + 'SolrPingResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], + 'SolrPingResponse::success' => ['bool'], + 'SolrQuery::__construct' => ['void', 'q='=>'string'], + 'SolrQuery::__destruct' => ['void'], + 'SolrQuery::add' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrQuery::addExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrQuery::addExpandSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'string'], + 'SolrQuery::addFacetDateField' => ['SolrQuery', 'datefield'=>'string'], + 'SolrQuery::addFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], + 'SolrQuery::addFacetField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::addFacetQuery' => ['SolrQuery', 'facetquery'=>'string'], + 'SolrQuery::addField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::addFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrQuery::addGroupField' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::addGroupFunction' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::addGroupQuery' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::addGroupSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], + 'SolrQuery::addHighlightField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::addMltField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::addMltQueryField' => ['SolrQuery', 'field'=>'string', 'boost'=>'float'], + 'SolrQuery::addParam' => ['SolrParams', 'name'=>'string', 'value'=>'string'], + 'SolrQuery::addSortField' => ['SolrQuery', 'field'=>'string', 'order='=>'int'], + 'SolrQuery::addStatsFacet' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::addStatsField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::collapse' => ['SolrQuery', 'collapseFunction'=>'SolrCollapseFunction'], + 'SolrQuery::get' => ['mixed', 'param_name'=>'string'], + 'SolrQuery::getExpand' => ['bool'], + 'SolrQuery::getExpandFilterQueries' => ['array'], + 'SolrQuery::getExpandQuery' => ['array'], + 'SolrQuery::getExpandRows' => ['int'], + 'SolrQuery::getExpandSortFields' => ['array'], + 'SolrQuery::getFacet' => ['?bool'], + 'SolrQuery::getFacetDateEnd' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetDateFields' => ['array'], + 'SolrQuery::getFacetDateGap' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetDateHardEnd' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetDateOther' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetDateStart' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetFields' => ['array'], + 'SolrQuery::getFacetLimit' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getFacetMethod' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetMinCount' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getFacetMissing' => ['?bool', 'field_override='=>'string'], + 'SolrQuery::getFacetOffset' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getFacetPrefix' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getFacetQueries' => ['?array'], + 'SolrQuery::getFacetSort' => ['int', 'field_override='=>'string'], + 'SolrQuery::getFields' => ['?array'], + 'SolrQuery::getFilterQueries' => ['?array'], + 'SolrQuery::getGroup' => ['bool'], + 'SolrQuery::getGroupCachePercent' => ['int'], + 'SolrQuery::getGroupFacet' => ['bool'], + 'SolrQuery::getGroupFields' => ['array'], + 'SolrQuery::getGroupFormat' => ['string'], + 'SolrQuery::getGroupFunctions' => ['array'], + 'SolrQuery::getGroupLimit' => ['int'], + 'SolrQuery::getGroupMain' => ['bool'], + 'SolrQuery::getGroupNGroups' => ['bool'], + 'SolrQuery::getGroupOffset' => ['int'], + 'SolrQuery::getGroupQueries' => ['array'], + 'SolrQuery::getGroupSortFields' => ['array'], + 'SolrQuery::getGroupTruncate' => ['bool'], + 'SolrQuery::getHighlight' => ['bool'], + 'SolrQuery::getHighlightAlternateField' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getHighlightFields' => ['?array'], + 'SolrQuery::getHighlightFormatter' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getHighlightFragmenter' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getHighlightFragsize' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getHighlightHighlightMultiTerm' => ['?bool'], + 'SolrQuery::getHighlightMaxAlternateFieldLength' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getHighlightMaxAnalyzedChars' => ['?int'], + 'SolrQuery::getHighlightMergeContiguous' => ['?bool', 'field_override='=>'string'], + 'SolrQuery::getHighlightRegexMaxAnalyzedChars' => ['?int'], + 'SolrQuery::getHighlightRegexPattern' => ['?string'], + 'SolrQuery::getHighlightRegexSlop' => ['?float'], + 'SolrQuery::getHighlightRequireFieldMatch' => ['?bool'], + 'SolrQuery::getHighlightSimplePost' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getHighlightSimplePre' => ['?string', 'field_override='=>'string'], + 'SolrQuery::getHighlightSnippets' => ['?int', 'field_override='=>'string'], + 'SolrQuery::getHighlightUsePhraseHighlighter' => ['?bool'], + 'SolrQuery::getMlt' => ['?bool'], + 'SolrQuery::getMltBoost' => ['?bool'], + 'SolrQuery::getMltCount' => ['?int'], + 'SolrQuery::getMltFields' => ['?array'], + 'SolrQuery::getMltMaxNumQueryTerms' => ['?int'], + 'SolrQuery::getMltMaxNumTokens' => ['?int'], + 'SolrQuery::getMltMaxWordLength' => ['?int'], + 'SolrQuery::getMltMinDocFrequency' => ['?int'], + 'SolrQuery::getMltMinTermFrequency' => ['?int'], + 'SolrQuery::getMltMinWordLength' => ['?int'], + 'SolrQuery::getMltQueryFields' => ['?array'], + 'SolrQuery::getParam' => ['?mixed', 'param_name'=>'string'], + 'SolrQuery::getParams' => ['?array'], + 'SolrQuery::getPreparedParams' => ['?array'], + 'SolrQuery::getQuery' => ['?string'], + 'SolrQuery::getRows' => ['?int'], + 'SolrQuery::getSortFields' => ['?array'], + 'SolrQuery::getStart' => ['?int'], + 'SolrQuery::getStats' => ['?bool'], + 'SolrQuery::getStatsFacets' => ['?array'], + 'SolrQuery::getStatsFields' => ['?array'], + 'SolrQuery::getTerms' => ['?bool'], + 'SolrQuery::getTermsField' => ['?string'], + 'SolrQuery::getTermsIncludeLowerBound' => ['?bool'], + 'SolrQuery::getTermsIncludeUpperBound' => ['?bool'], + 'SolrQuery::getTermsLimit' => ['?int'], + 'SolrQuery::getTermsLowerBound' => ['?string'], + 'SolrQuery::getTermsMaxCount' => ['?int'], + 'SolrQuery::getTermsMinCount' => ['?int'], + 'SolrQuery::getTermsPrefix' => ['?string'], + 'SolrQuery::getTermsReturnRaw' => ['?bool'], + 'SolrQuery::getTermsSort' => ['?int'], + 'SolrQuery::getTermsUpperBound' => ['?string'], + 'SolrQuery::getTimeAllowed' => ['?int'], + 'SolrQuery::removeExpandFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrQuery::removeExpandSortField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeFacetDateField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeFacetDateOther' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], + 'SolrQuery::removeFacetField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeFacetQuery' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::removeField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeFilterQuery' => ['SolrQuery', 'fq'=>'string'], + 'SolrQuery::removeHighlightField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeMltField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeMltQueryField' => ['SolrQuery', 'queryfield'=>'string'], + 'SolrQuery::removeSortField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::removeStatsFacet' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::removeStatsField' => ['SolrQuery', 'field'=>'string'], + 'SolrQuery::serialize' => ['string'], + 'SolrQuery::set' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrQuery::setEchoHandler' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setEchoParams' => ['SolrQuery', 'type'=>'string'], + 'SolrQuery::setExpand' => ['SolrQuery', 'value'=>'bool'], + 'SolrQuery::setExpandQuery' => ['SolrQuery', 'q'=>'string'], + 'SolrQuery::setExpandRows' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setExplainOther' => ['SolrQuery', 'query'=>'string'], + 'SolrQuery::setFacet' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setFacetDateEnd' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], + 'SolrQuery::setFacetDateGap' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], + 'SolrQuery::setFacetDateHardEnd' => ['SolrQuery', 'value'=>'bool', 'field_override='=>'string'], + 'SolrQuery::setFacetDateStart' => ['SolrQuery', 'value'=>'string', 'field_override='=>'string'], + 'SolrQuery::setFacetEnumCacheMinDefaultFrequency' => ['SolrQuery', 'frequency'=>'int', 'field_override='=>'string'], + 'SolrQuery::setFacetLimit' => ['SolrQuery', 'limit'=>'int', 'field_override='=>'string'], + 'SolrQuery::setFacetMethod' => ['SolrQuery', 'method'=>'string', 'field_override='=>'string'], + 'SolrQuery::setFacetMinCount' => ['SolrQuery', 'mincount'=>'int', 'field_override='=>'string'], + 'SolrQuery::setFacetMissing' => ['SolrQuery', 'flag'=>'bool', 'field_override='=>'string'], + 'SolrQuery::setFacetOffset' => ['SolrQuery', 'offset'=>'int', 'field_override='=>'string'], + 'SolrQuery::setFacetPrefix' => ['SolrQuery', 'prefix'=>'string', 'field_override='=>'string'], + 'SolrQuery::setFacetSort' => ['SolrQuery', 'facetsort'=>'int', 'field_override='=>'string'], + 'SolrQuery::setGroup' => ['SolrQuery', 'value'=>'bool'], + 'SolrQuery::setGroupCachePercent' => ['SolrQuery', 'percent'=>'int'], + 'SolrQuery::setGroupFacet' => ['SolrQuery', 'value'=>'bool'], + 'SolrQuery::setGroupFormat' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::setGroupLimit' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setGroupMain' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::setGroupNGroups' => ['SolrQuery', 'value'=>'bool'], + 'SolrQuery::setGroupOffset' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setGroupTruncate' => ['SolrQuery', 'value'=>'bool'], + 'SolrQuery::setHighlight' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setHighlightAlternateField' => ['SolrQuery', 'field'=>'string', 'field_override='=>'string'], + 'SolrQuery::setHighlightFormatter' => ['SolrQuery', 'formatter'=>'string', 'field_override='=>'string'], + 'SolrQuery::setHighlightFragmenter' => ['SolrQuery', 'fragmenter'=>'string', 'field_override='=>'string'], + 'SolrQuery::setHighlightFragsize' => ['SolrQuery', 'size'=>'int', 'field_override='=>'string'], + 'SolrQuery::setHighlightHighlightMultiTerm' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setHighlightMaxAlternateFieldLength' => ['SolrQuery', 'fieldlength'=>'int', 'field_override='=>'string'], + 'SolrQuery::setHighlightMaxAnalyzedChars' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setHighlightMergeContiguous' => ['SolrQuery', 'flag'=>'bool', 'field_override='=>'string'], + 'SolrQuery::setHighlightRegexMaxAnalyzedChars' => ['SolrQuery', 'maxanalyzedchars'=>'int'], + 'SolrQuery::setHighlightRegexPattern' => ['SolrQuery', 'value'=>'string'], + 'SolrQuery::setHighlightRegexSlop' => ['SolrQuery', 'factor'=>'float'], + 'SolrQuery::setHighlightRequireFieldMatch' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setHighlightSimplePost' => ['SolrQuery', 'simplepost'=>'string', 'field_override='=>'string'], + 'SolrQuery::setHighlightSimplePre' => ['SolrQuery', 'simplepre'=>'string', 'field_override='=>'string'], + 'SolrQuery::setHighlightSnippets' => ['SolrQuery', 'value'=>'int', 'field_override='=>'string'], + 'SolrQuery::setHighlightUsePhraseHighlighter' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setMlt' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setMltBoost' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setMltCount' => ['SolrQuery', 'count'=>'int'], + 'SolrQuery::setMltMaxNumQueryTerms' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setMltMaxNumTokens' => ['SolrQuery', 'value'=>'int'], + 'SolrQuery::setMltMaxWordLength' => ['SolrQuery', 'maxwordlength'=>'int'], + 'SolrQuery::setMltMinDocFrequency' => ['SolrQuery', 'mindocfrequency'=>'int'], + 'SolrQuery::setMltMinTermFrequency' => ['SolrQuery', 'mintermfrequency'=>'int'], + 'SolrQuery::setMltMinWordLength' => ['SolrQuery', 'minwordlength'=>'int'], + 'SolrQuery::setOmitHeader' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setParam' => ['SolrParams', 'name'=>'string', 'value'=>''], + 'SolrQuery::setQuery' => ['SolrQuery', 'query'=>'string'], + 'SolrQuery::setRows' => ['SolrQuery', 'rows'=>'int'], + 'SolrQuery::setShowDebugInfo' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setStart' => ['SolrQuery', 'start'=>'int'], + 'SolrQuery::setStats' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setTerms' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setTermsField' => ['SolrQuery', 'fieldname'=>'string'], + 'SolrQuery::setTermsIncludeLowerBound' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setTermsIncludeUpperBound' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setTermsLimit' => ['SolrQuery', 'limit'=>'int'], + 'SolrQuery::setTermsLowerBound' => ['SolrQuery', 'lowerbound'=>'string'], + 'SolrQuery::setTermsMaxCount' => ['SolrQuery', 'frequency'=>'int'], + 'SolrQuery::setTermsMinCount' => ['SolrQuery', 'frequency'=>'int'], + 'SolrQuery::setTermsPrefix' => ['SolrQuery', 'prefix'=>'string'], + 'SolrQuery::setTermsReturnRaw' => ['SolrQuery', 'flag'=>'bool'], + 'SolrQuery::setTermsSort' => ['SolrQuery', 'sorttype'=>'int'], + 'SolrQuery::setTermsUpperBound' => ['SolrQuery', 'upperbound'=>'string'], + 'SolrQuery::setTimeAllowed' => ['SolrQuery', 'timeallowed'=>'int'], + 'SolrQuery::toString' => ['string', 'url_encode='=>'bool'], + 'SolrQuery::unserialize' => ['void', 'serialized'=>'string'], + 'SolrQueryResponse::__construct' => ['void'], + 'SolrQueryResponse::__destruct' => ['void'], + 'SolrQueryResponse::getDigestedResponse' => ['string'], + 'SolrQueryResponse::getHttpStatus' => ['int'], + 'SolrQueryResponse::getHttpStatusMessage' => ['string'], + 'SolrQueryResponse::getRawRequest' => ['string'], + 'SolrQueryResponse::getRawRequestHeaders' => ['string'], + 'SolrQueryResponse::getRawResponse' => ['string'], + 'SolrQueryResponse::getRawResponseHeaders' => ['string'], + 'SolrQueryResponse::getRequestUrl' => ['string'], + 'SolrQueryResponse::getResponse' => ['SolrObject'], + 'SolrQueryResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], + 'SolrQueryResponse::success' => ['bool'], + 'SolrResponse::getDigestedResponse' => ['string'], + 'SolrResponse::getHttpStatus' => ['int'], + 'SolrResponse::getHttpStatusMessage' => ['string'], + 'SolrResponse::getRawRequest' => ['string'], + 'SolrResponse::getRawRequestHeaders' => ['string'], + 'SolrResponse::getRawResponse' => ['string'], + 'SolrResponse::getRawResponseHeaders' => ['string'], + 'SolrResponse::getRequestUrl' => ['string'], + 'SolrResponse::getResponse' => ['SolrObject'], + 'SolrResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], + 'SolrResponse::success' => ['bool'], + 'SolrServerException::__clone' => ['void'], + 'SolrServerException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'SolrServerException::__toString' => ['string'], + 'SolrServerException::__wakeup' => ['void'], + 'SolrServerException::getCode' => ['int'], + 'SolrServerException::getFile' => ['string'], + 'SolrServerException::getInternalInfo' => ['array'], + 'SolrServerException::getLine' => ['int'], + 'SolrServerException::getMessage' => ['string'], + 'SolrServerException::getPrevious' => ['Exception|Throwable'], + 'SolrServerException::getTrace' => ['list\',args?:array}>'], + 'SolrServerException::getTraceAsString' => ['string'], + 'SolrUpdateResponse::__construct' => ['void'], + 'SolrUpdateResponse::__destruct' => ['void'], + 'SolrUpdateResponse::getDigestedResponse' => ['string'], + 'SolrUpdateResponse::getHttpStatus' => ['int'], + 'SolrUpdateResponse::getHttpStatusMessage' => ['string'], + 'SolrUpdateResponse::getRawRequest' => ['string'], + 'SolrUpdateResponse::getRawRequestHeaders' => ['string'], + 'SolrUpdateResponse::getRawResponse' => ['string'], + 'SolrUpdateResponse::getRawResponseHeaders' => ['string'], + 'SolrUpdateResponse::getRequestUrl' => ['string'], + 'SolrUpdateResponse::getResponse' => ['SolrObject'], + 'SolrUpdateResponse::setParseMode' => ['bool', 'parser_mode='=>'int'], + 'SolrUpdateResponse::success' => ['bool'], + 'SolrUtils::digestXmlResponse' => ['SolrObject', 'xmlresponse'=>'string', 'parse_mode='=>'int'], + 'SolrUtils::escapeQueryChars' => ['string|false', 'string'=>'string'], + 'SolrUtils::getSolrVersion' => ['string'], + 'SolrUtils::queryPhrase' => ['string', 'string'=>'string'], + 'SphinxClient::__construct' => ['void'], + 'SphinxClient::addQuery' => ['int', 'query'=>'string', 'index='=>'string', 'comment='=>'string'], + 'SphinxClient::buildExcerpts' => ['array', 'docs'=>'array', 'index'=>'string', 'words'=>'string', 'opts='=>'array'], + 'SphinxClient::buildKeywords' => ['array', 'query'=>'string', 'index'=>'string', 'hits'=>'bool'], + 'SphinxClient::close' => ['bool'], + 'SphinxClient::escapeString' => ['string', 'string'=>'string'], + 'SphinxClient::getLastError' => ['string'], + 'SphinxClient::getLastWarning' => ['string'], + 'SphinxClient::open' => ['bool'], + 'SphinxClient::query' => ['array', 'query'=>'string', 'index='=>'string', 'comment='=>'string'], + 'SphinxClient::resetFilters' => ['void'], + 'SphinxClient::resetGroupBy' => ['void'], + 'SphinxClient::runQueries' => ['array'], + 'SphinxClient::setArrayResult' => ['bool', 'array_result'=>'bool'], + 'SphinxClient::setConnectTimeout' => ['bool', 'timeout'=>'float'], + 'SphinxClient::setFieldWeights' => ['bool', 'weights'=>'array'], + 'SphinxClient::setFilter' => ['bool', 'attribute'=>'string', 'values'=>'array', 'exclude='=>'bool'], + 'SphinxClient::setFilterFloatRange' => ['bool', 'attribute'=>'string', 'min'=>'float', 'max'=>'float', 'exclude='=>'bool'], + 'SphinxClient::setFilterRange' => ['bool', 'attribute'=>'string', 'min'=>'int', 'max'=>'int', 'exclude='=>'bool'], + 'SphinxClient::setGeoAnchor' => ['bool', 'attrlat'=>'string', 'attrlong'=>'string', 'latitude'=>'float', 'longitude'=>'float'], + 'SphinxClient::setGroupBy' => ['bool', 'attribute'=>'string', 'func'=>'int', 'groupsort='=>'string'], + 'SphinxClient::setGroupDistinct' => ['bool', 'attribute'=>'string'], + 'SphinxClient::setIDRange' => ['bool', 'min'=>'int', 'max'=>'int'], + 'SphinxClient::setIndexWeights' => ['bool', 'weights'=>'array'], + 'SphinxClient::setLimits' => ['bool', 'offset'=>'int', 'limit'=>'int', 'max_matches='=>'int', 'cutoff='=>'int'], + 'SphinxClient::setMatchMode' => ['bool', 'mode'=>'int'], + 'SphinxClient::setMaxQueryTime' => ['bool', 'qtime'=>'int'], + 'SphinxClient::setOverride' => ['bool', 'attribute'=>'string', 'type'=>'int', 'values'=>'array'], + 'SphinxClient::setRankingMode' => ['bool', 'ranker'=>'int'], + 'SphinxClient::setRetries' => ['bool', 'count'=>'int', 'delay='=>'int'], + 'SphinxClient::setSelect' => ['bool', 'clause'=>'string'], + 'SphinxClient::setServer' => ['bool', 'server'=>'string', 'port'=>'int'], + 'SphinxClient::setSortMode' => ['bool', 'mode'=>'int', 'sortby='=>'string'], + 'SphinxClient::status' => ['array'], + 'SphinxClient::updateAttributes' => ['int', 'index'=>'string', 'attributes'=>'array', 'values'=>'array', 'mva='=>'bool'], + 'SplDoublyLinkedList::__construct' => ['void'], + 'SplDoublyLinkedList::add' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], + 'SplDoublyLinkedList::bottom' => ['mixed'], + 'SplDoublyLinkedList::count' => ['int'], + 'SplDoublyLinkedList::current' => ['mixed'], + 'SplDoublyLinkedList::getIteratorMode' => ['int'], + 'SplDoublyLinkedList::isEmpty' => ['bool'], + 'SplDoublyLinkedList::key' => ['int'], + 'SplDoublyLinkedList::next' => ['void'], + 'SplDoublyLinkedList::offsetExists' => ['bool', 'index'=>'mixed'], + 'SplDoublyLinkedList::offsetGet' => ['mixed', 'index'=>'mixed'], + 'SplDoublyLinkedList::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], + 'SplDoublyLinkedList::offsetUnset' => ['void', 'index'=>'mixed'], + 'SplDoublyLinkedList::pop' => ['mixed'], + 'SplDoublyLinkedList::prev' => ['void'], + 'SplDoublyLinkedList::push' => ['void', 'value'=>'mixed'], + 'SplDoublyLinkedList::rewind' => ['void'], + 'SplDoublyLinkedList::serialize' => ['string'], + 'SplDoublyLinkedList::setIteratorMode' => ['void', 'flags'=>'int'], + 'SplDoublyLinkedList::shift' => ['mixed'], + 'SplDoublyLinkedList::top' => ['mixed'], + 'SplDoublyLinkedList::unserialize' => ['void', 'serialized'=>'string'], + 'SplDoublyLinkedList::unshift' => ['void', 'value'=>'mixed'], + 'SplDoublyLinkedList::valid' => ['bool'], + 'SplEnum::__construct' => ['void', 'initial_value='=>'mixed', 'strict='=>'bool'], + 'SplEnum::getConstList' => ['array', 'include_default='=>'bool'], + 'SplFileInfo::__construct' => ['void', 'filename'=>'string'], + 'SplFileInfo::__toString' => ['string'], + 'SplFileInfo::__wakeup' => ['void'], + 'SplFileInfo::getATime' => ['int|false'], + 'SplFileInfo::getBasename' => ['string', 'suffix='=>'string'], + 'SplFileInfo::getCTime' => ['int|false'], + 'SplFileInfo::getExtension' => ['string'], + 'SplFileInfo::getFileInfo' => ['SplFileInfo', 'class='=>'string'], + 'SplFileInfo::getFilename' => ['string'], + 'SplFileInfo::getGroup' => ['int|false'], + 'SplFileInfo::getInode' => ['int|false'], + 'SplFileInfo::getLinkTarget' => ['string|false'], + 'SplFileInfo::getMTime' => ['int|false'], + 'SplFileInfo::getOwner' => ['int|false'], + 'SplFileInfo::getPath' => ['string'], + 'SplFileInfo::getPathInfo' => ['SplFileInfo|null', 'class='=>'string'], + 'SplFileInfo::getPathname' => ['string'], + 'SplFileInfo::getPerms' => ['int|false'], + 'SplFileInfo::getRealPath' => ['string|false'], + 'SplFileInfo::getSize' => ['int|false'], + 'SplFileInfo::getType' => ['string|false'], + 'SplFileInfo::isDir' => ['bool'], + 'SplFileInfo::isExecutable' => ['bool'], + 'SplFileInfo::isFile' => ['bool'], + 'SplFileInfo::isLink' => ['bool'], + 'SplFileInfo::isReadable' => ['bool'], + 'SplFileInfo::isWritable' => ['bool'], + 'SplFileInfo::openFile' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'SplFileInfo::setFileClass' => ['void', 'class='=>'string'], + 'SplFileInfo::setInfoClass' => ['void', 'class='=>'string'], + 'SplFileObject::__construct' => ['void', 'filename'=>'string', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'?resource'], + 'SplFileObject::__toString' => ['string'], + 'SplFileObject::current' => ['string|array|false'], + 'SplFileObject::eof' => ['bool'], + 'SplFileObject::fflush' => ['bool'], + 'SplFileObject::fgetc' => ['string|false'], + 'SplFileObject::fgetcsv' => ['list|array{0: null}|false', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplFileObject::fgets' => ['string|false'], + 'SplFileObject::fgetss' => ['string|false', 'allowable_tags='=>'string'], + 'SplFileObject::flock' => ['bool', 'operation'=>'int', '&w_wouldBlock='=>'int'], + 'SplFileObject::fpassthru' => ['int'], + 'SplFileObject::fputcsv' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplFileObject::fread' => ['string|false', 'length'=>'int'], + 'SplFileObject::fscanf' => ['array|int', 'format'=>'string', '&...w_vars='=>'string|int|float'], + 'SplFileObject::fseek' => ['int', 'offset'=>'int', 'whence='=>'int'], + 'SplFileObject::fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}'], + 'SplFileObject::ftell' => ['int|false'], + 'SplFileObject::ftruncate' => ['bool', 'size'=>'int'], + 'SplFileObject::fwrite' => ['int', 'data'=>'string', 'length='=>'int'], + 'SplFileObject::getATime' => ['int|false'], + 'SplFileObject::getBasename' => ['string', 'suffix='=>'string'], + 'SplFileObject::getCTime' => ['int|false'], + 'SplFileObject::getChildren' => ['null'], + 'SplFileObject::getCsvControl' => ['array'], + 'SplFileObject::getCurrentLine' => ['string|false'], + 'SplFileObject::getExtension' => ['string'], + 'SplFileObject::getFileInfo' => ['SplFileInfo', 'class='=>'string'], + 'SplFileObject::getFilename' => ['string'], + 'SplFileObject::getFlags' => ['int'], + 'SplFileObject::getGroup' => ['int|false'], + 'SplFileObject::getInode' => ['int|false'], + 'SplFileObject::getLinkTarget' => ['string|false'], + 'SplFileObject::getMaxLineLen' => ['int'], + 'SplFileObject::getMTime' => ['int|false'], + 'SplFileObject::getOwner' => ['int|false'], + 'SplFileObject::getPath' => ['string'], + 'SplFileObject::getPathInfo' => ['SplFileInfo|null', 'class='=>'string'], + 'SplFileObject::getPathname' => ['string'], + 'SplFileObject::getPerms' => ['int|false'], + 'SplFileObject::getRealPath' => ['false|string'], + 'SplFileObject::getSize' => ['int|false'], + 'SplFileObject::getType' => ['string|false'], + 'SplFileObject::hasChildren' => ['false'], + 'SplFileObject::isDir' => ['bool'], + 'SplFileObject::isExecutable' => ['bool'], + 'SplFileObject::isFile' => ['bool'], + 'SplFileObject::isLink' => ['bool'], + 'SplFileObject::isReadable' => ['bool'], + 'SplFileObject::isWritable' => ['bool'], + 'SplFileObject::key' => ['int'], + 'SplFileObject::next' => ['void'], + 'SplFileObject::openFile' => ['SplFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'SplFileObject::rewind' => ['void'], + 'SplFileObject::seek' => ['void', 'line'=>'int'], + 'SplFileObject::setCsvControl' => ['void', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplFileObject::setFileClass' => ['void', 'class='=>'string'], + 'SplFileObject::setFlags' => ['void', 'flags'=>'int'], + 'SplFileObject::setInfoClass' => ['void', 'class='=>'string'], + 'SplFileObject::setMaxLineLen' => ['void', 'maxLength'=>'int'], + 'SplFileObject::valid' => ['bool'], + 'SplFixedArray::__construct' => ['void', 'size='=>'int'], + 'SplFixedArray::__wakeup' => ['void'], + 'SplFixedArray::count' => ['int'], + 'SplFixedArray::current' => ['mixed'], + 'SplFixedArray::fromArray' => ['SplFixedArray', 'data'=>'array', 'save_indexes='=>'bool'], + 'SplFixedArray::getSize' => ['int'], + 'SplFixedArray::key' => ['int'], + 'SplFixedArray::next' => ['void'], + 'SplFixedArray::offsetExists' => ['bool', 'index'=>'int'], + 'SplFixedArray::offsetGet' => ['mixed', 'index'=>'int'], + 'SplFixedArray::offsetSet' => ['void', 'index'=>'int', 'newval'=>'mixed'], + 'SplFixedArray::offsetUnset' => ['void', 'index'=>'int'], + 'SplFixedArray::rewind' => ['void'], + 'SplFixedArray::setSize' => ['bool', 'size'=>'int'], + 'SplFixedArray::toArray' => ['array'], + 'SplFixedArray::valid' => ['bool'], + 'SplHeap::__construct' => ['void'], + 'SplHeap::compare' => ['int', 'value1'=>'mixed', 'value2'=>'mixed'], + 'SplHeap::count' => ['int'], + 'SplHeap::current' => ['mixed'], + 'SplHeap::extract' => ['mixed'], + 'SplHeap::insert' => ['bool', 'value'=>'mixed'], + 'SplHeap::isCorrupted' => ['bool'], + 'SplHeap::isEmpty' => ['bool'], + 'SplHeap::key' => ['int'], + 'SplHeap::next' => ['void'], + 'SplHeap::recoverFromCorruption' => ['true'], + 'SplHeap::rewind' => ['void'], + 'SplHeap::top' => ['mixed'], + 'SplHeap::valid' => ['bool'], + 'SplMaxHeap::__construct' => ['void'], + 'SplMaxHeap::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], + 'SplMinHeap::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], + 'SplMinHeap::count' => ['int'], + 'SplMinHeap::current' => ['mixed'], + 'SplMinHeap::extract' => ['mixed'], + 'SplMinHeap::insert' => ['true', 'value'=>'mixed'], + 'SplMinHeap::isCorrupted' => ['bool'], + 'SplMinHeap::isEmpty' => ['bool'], + 'SplMinHeap::key' => ['int'], + 'SplMinHeap::next' => ['void'], + 'SplMinHeap::recoverFromCorruption' => ['true'], + 'SplMinHeap::rewind' => ['void'], + 'SplMinHeap::top' => ['mixed'], + 'SplMinHeap::valid' => ['bool'], + 'SplObjectStorage::__construct' => ['void'], + 'SplObjectStorage::addAll' => ['void', 'os'=>'splobjectstorage'], + 'SplObjectStorage::attach' => ['void', 'object'=>'object', 'inf='=>'mixed'], + 'SplObjectStorage::contains' => ['bool', 'object'=>'object'], + 'SplObjectStorage::count' => ['int'], + 'SplObjectStorage::current' => ['object'], + 'SplObjectStorage::detach' => ['void', 'object'=>'object'], + 'SplObjectStorage::getHash' => ['string', 'object'=>'object'], + 'SplObjectStorage::getInfo' => ['mixed'], + 'SplObjectStorage::key' => ['int'], + 'SplObjectStorage::next' => ['void'], + 'SplObjectStorage::offsetExists' => ['bool', 'object'=>'object'], + 'SplObjectStorage::offsetGet' => ['mixed', 'object'=>'object'], + 'SplObjectStorage::offsetSet' => ['object', 'object'=>'object', 'data='=>'mixed'], + 'SplObjectStorage::offsetUnset' => ['void', 'object'=>'object'], + 'SplObjectStorage::removeAll' => ['void', 'os'=>'splobjectstorage'], + 'SplObjectStorage::removeAllExcept' => ['void', 'os'=>'splobjectstorage'], + 'SplObjectStorage::rewind' => ['void'], + 'SplObjectStorage::serialize' => ['string'], + 'SplObjectStorage::setInfo' => ['void', 'inf'=>'mixed'], + 'SplObjectStorage::unserialize' => ['void', 'serialized'=>'string'], + 'SplObjectStorage::valid' => ['bool'], + 'SplObserver::update' => ['void', 'subject'=>'SplSubject'], + 'SplPriorityQueue::__construct' => ['void'], + 'SplPriorityQueue::compare' => ['int', 'a'=>'mixed', 'b'=>'mixed'], + 'SplPriorityQueue::count' => ['int'], + 'SplPriorityQueue::current' => ['mixed'], + 'SplPriorityQueue::extract' => ['mixed'], + 'SplPriorityQueue::getExtractFlags' => ['int'], + 'SplPriorityQueue::insert' => ['bool', 'value'=>'mixed', 'priority'=>'mixed'], + 'SplPriorityQueue::isEmpty' => ['bool'], + 'SplPriorityQueue::key' => ['int'], + 'SplPriorityQueue::next' => ['void'], + 'SplPriorityQueue::recoverFromCorruption' => ['void'], + 'SplPriorityQueue::rewind' => ['void'], + 'SplPriorityQueue::setExtractFlags' => ['int', 'flags'=>'int'], + 'SplPriorityQueue::top' => ['mixed'], + 'SplPriorityQueue::valid' => ['bool'], + 'SplQueue::dequeue' => ['mixed'], + 'SplQueue::enqueue' => ['void', 'value'=>'mixed'], + 'SplQueue::getIteratorMode' => ['int'], + 'SplQueue::isEmpty' => ['bool'], + 'SplQueue::key' => ['int'], + 'SplQueue::next' => ['void'], + 'SplQueue::offsetExists' => ['bool', 'index'=>'mixed'], + 'SplQueue::offsetGet' => ['mixed', 'index'=>'mixed'], + 'SplQueue::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], + 'SplQueue::offsetUnset' => ['void', 'index'=>'mixed'], + 'SplQueue::pop' => ['mixed'], + 'SplQueue::prev' => ['void'], + 'SplQueue::push' => ['void', 'value'=>'mixed'], + 'SplQueue::rewind' => ['void'], + 'SplQueue::serialize' => ['string'], + 'SplQueue::setIteratorMode' => ['int', 'mode'=>'int'], + 'SplQueue::shift' => ['mixed'], + 'SplQueue::top' => ['mixed'], + 'SplQueue::unserialize' => ['void', 'serialized'=>'string'], + 'SplQueue::unshift' => ['void', 'value'=>'mixed'], + 'SplQueue::valid' => ['bool'], + 'SplStack::__construct' => ['void'], + 'SplStack::add' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], + 'SplStack::bottom' => ['mixed'], + 'SplStack::count' => ['int'], + 'SplStack::current' => ['mixed'], + 'SplStack::getIteratorMode' => ['int'], + 'SplStack::isEmpty' => ['bool'], + 'SplStack::key' => ['int'], + 'SplStack::next' => ['void'], + 'SplStack::offsetExists' => ['bool', 'index'=>'mixed'], + 'SplStack::offsetGet' => ['mixed', 'index'=>'mixed'], + 'SplStack::offsetSet' => ['void', 'index'=>'mixed', 'newval'=>'mixed'], + 'SplStack::offsetUnset' => ['void', 'index'=>'mixed'], + 'SplStack::pop' => ['mixed'], + 'SplStack::prev' => ['void'], + 'SplStack::push' => ['void', 'value'=>'mixed'], + 'SplStack::rewind' => ['void'], + 'SplStack::serialize' => ['string'], + 'SplStack::setIteratorMode' => ['int', 'mode'=>'int'], + 'SplStack::shift' => ['mixed'], + 'SplStack::top' => ['mixed'], + 'SplStack::unserialize' => ['void', 'serialized'=>'string'], + 'SplStack::unshift' => ['void', 'value'=>'mixed'], + 'SplStack::valid' => ['bool'], + 'SplSubject::attach' => ['void', 'observer'=>'SplObserver'], + 'SplSubject::detach' => ['void', 'observer'=>'SplObserver'], + 'SplSubject::notify' => ['void'], + 'SplTempFileObject::__construct' => ['void', 'maxMemory='=>'int'], + 'SplTempFileObject::__toString' => ['string'], + 'SplTempFileObject::current' => ['string|array|false'], + 'SplTempFileObject::eof' => ['bool'], + 'SplTempFileObject::fflush' => ['bool'], + 'SplTempFileObject::fgetc' => ['string|false'], + 'SplTempFileObject::fgetcsv' => ['list|array{0: null}|false', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplTempFileObject::fgets' => ['string'], + 'SplTempFileObject::fgetss' => ['string', 'allowable_tags='=>'string'], + 'SplTempFileObject::flock' => ['bool', 'operation'=>'int', '&w_wouldBlock='=>'int'], + 'SplTempFileObject::fpassthru' => ['int'], + 'SplTempFileObject::fputcsv' => ['int|false', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplTempFileObject::fread' => ['string|false', 'length'=>'int'], + 'SplTempFileObject::fscanf' => ['array|int', 'format'=>'string', '&...w_vars='=>'string|int|float'], + 'SplTempFileObject::fseek' => ['int', 'offset'=>'int', 'whence='=>'int'], + 'SplTempFileObject::fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}'], + 'SplTempFileObject::ftell' => ['int|false'], + 'SplTempFileObject::ftruncate' => ['bool', 'size'=>'int'], + 'SplTempFileObject::fwrite' => ['int', 'data'=>'string', 'length='=>'int'], + 'SplTempFileObject::getATime' => ['int|false'], + 'SplTempFileObject::getBasename' => ['string', 'suffix='=>'string'], + 'SplTempFileObject::getCTime' => ['int|false'], + 'SplTempFileObject::getChildren' => ['null'], + 'SplTempFileObject::getCsvControl' => ['array'], + 'SplTempFileObject::getCurrentLine' => ['string'], + 'SplTempFileObject::getExtension' => ['string'], + 'SplTempFileObject::getFileInfo' => ['SplFileInfo', 'class='=>'string'], + 'SplTempFileObject::getFilename' => ['string'], + 'SplTempFileObject::getFlags' => ['int'], + 'SplTempFileObject::getGroup' => ['int|false'], + 'SplTempFileObject::getInode' => ['int|false'], + 'SplTempFileObject::getLinkTarget' => ['string|false'], + 'SplTempFileObject::getMaxLineLen' => ['int'], + 'SplTempFileObject::getMTime' => ['int|false'], + 'SplTempFileObject::getOwner' => ['int|false'], + 'SplTempFileObject::getPath' => ['string'], + 'SplTempFileObject::getPathInfo' => ['SplFileInfo|null', 'class='=>'string'], + 'SplTempFileObject::getPathname' => ['string'], + 'SplTempFileObject::getPerms' => ['int|false'], + 'SplTempFileObject::getRealPath' => ['false|string'], + 'SplTempFileObject::getSize' => ['int|false'], + 'SplTempFileObject::getType' => ['string|false'], + 'SplTempFileObject::hasChildren' => ['false'], + 'SplTempFileObject::isDir' => ['bool'], + 'SplTempFileObject::isExecutable' => ['bool'], + 'SplTempFileObject::isFile' => ['bool'], + 'SplTempFileObject::isLink' => ['bool'], + 'SplTempFileObject::isReadable' => ['bool'], + 'SplTempFileObject::isWritable' => ['bool'], + 'SplTempFileObject::key' => ['int'], + 'SplTempFileObject::next' => ['void'], + 'SplTempFileObject::openFile' => ['SplTempFileObject', 'mode='=>'string', 'useIncludePath='=>'bool', 'context='=>'resource'], + 'SplTempFileObject::rewind' => ['void'], + 'SplTempFileObject::seek' => ['void', 'line'=>'int'], + 'SplTempFileObject::setCsvControl' => ['void', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'SplTempFileObject::setFileClass' => ['void', 'class='=>'string'], + 'SplTempFileObject::setFlags' => ['void', 'flags'=>'int'], + 'SplTempFileObject::setInfoClass' => ['void', 'class='=>'string'], + 'SplTempFileObject::setMaxLineLen' => ['void', 'maxLength'=>'int'], + 'SplTempFileObject::valid' => ['bool'], + 'SplType::__construct' => ['void', 'initial_value='=>'mixed', 'strict='=>'bool'], + 'Spoofchecker::__construct' => ['void'], + 'Spoofchecker::areConfusable' => ['bool', 'string1'=>'string', 'string2'=>'string', '&w_errorCode='=>'int'], + 'Spoofchecker::isSuspicious' => ['bool', 'string'=>'string', '&w_errorCode='=>'int'], + 'Spoofchecker::setAllowedLocales' => ['void', 'locales'=>'string'], + 'Spoofchecker::setChecks' => ['void', 'checks'=>'int'], + 'Spoofchecker::setRestrictionLevel' => ['void', 'level'=>'int'], + 'Stomp::__construct' => ['void', 'broker='=>'string', 'username='=>'string', 'password='=>'string', 'headers='=>'?array'], + 'Stomp::abort' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], + 'Stomp::ack' => ['bool', 'msg'=>'', 'headers='=>'?array'], + 'Stomp::begin' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], + 'Stomp::commit' => ['bool', 'transaction_id'=>'string', 'headers='=>'?array'], + 'Stomp::error' => ['string'], + 'Stomp::getReadTimeout' => ['array'], + 'Stomp::getSessionId' => ['string'], + 'Stomp::hasFrame' => ['bool'], + 'Stomp::readFrame' => ['array', 'class_name='=>'string'], + 'Stomp::send' => ['bool', 'destination'=>'string', 'msg'=>'', 'headers='=>'?array'], + 'Stomp::setReadTimeout' => ['void', 'seconds'=>'int', 'microseconds='=>'?int'], + 'Stomp::subscribe' => ['bool', 'destination'=>'string', 'headers='=>'?array'], + 'Stomp::unsubscribe' => ['bool', 'destination'=>'string', 'headers='=>'?array'], + 'StompException::getDetails' => ['string'], + 'StompFrame::__construct' => ['void', 'command='=>'string', 'headers='=>'?array', 'body='=>'string'], + 'Swish::__construct' => ['void', 'index_names'=>'string'], + 'Swish::getMetaList' => ['array', 'index_name'=>'string'], + 'Swish::getPropertyList' => ['array', 'index_name'=>'string'], + 'Swish::prepare' => ['object', 'query='=>'string'], + 'Swish::query' => ['object', 'query'=>'string'], + 'SwishResult::getMetaList' => ['array'], + 'SwishResult::stem' => ['array', 'word'=>'string'], + 'SwishResults::getParsedWords' => ['array', 'index_name'=>'string'], + 'SwishResults::getRemovedStopwords' => ['array', 'index_name'=>'string'], + 'SwishResults::nextResult' => ['object'], + 'SwishResults::seekResult' => ['int', 'position'=>'int'], + 'SwishSearch::execute' => ['object', 'query='=>'string'], + 'SwishSearch::resetLimit' => [''], + 'SwishSearch::setLimit' => ['', 'property'=>'string', 'low'=>'string', 'high'=>'string'], + 'SwishSearch::setPhraseDelimiter' => ['', 'delimiter'=>'string'], + 'SwishSearch::setSort' => ['', 'sort'=>'string'], + 'SwishSearch::setStructure' => ['', 'structure'=>'int'], + 'SyncEvent::__construct' => ['void', 'name='=>'string', 'manual='=>'bool'], + 'SyncEvent::fire' => ['bool'], + 'SyncEvent::reset' => ['bool'], + 'SyncEvent::wait' => ['bool', 'wait='=>'int'], + 'SyncMutex::__construct' => ['void', 'name='=>'string'], + 'SyncMutex::lock' => ['bool', 'wait='=>'int'], + 'SyncMutex::unlock' => ['bool', 'all='=>'bool'], + 'SyncReaderWriter::__construct' => ['void', 'name='=>'string', 'autounlock='=>'bool'], + 'SyncReaderWriter::readlock' => ['bool', 'wait='=>'int'], + 'SyncReaderWriter::readunlock' => ['bool'], + 'SyncReaderWriter::writelock' => ['bool', 'wait='=>'int'], + 'SyncReaderWriter::writeunlock' => ['bool'], + 'SyncSemaphore::__construct' => ['void', 'name='=>'string', 'initialval='=>'int', 'autounlock='=>'bool'], + 'SyncSemaphore::lock' => ['bool', 'wait='=>'int'], + 'SyncSemaphore::unlock' => ['bool', '&w_prevcount='=>'int'], + 'SyncSharedMemory::__construct' => ['void', 'name'=>'string', 'size'=>'int'], + 'SyncSharedMemory::first' => ['bool'], + 'SyncSharedMemory::read' => ['string', 'start='=>'int', 'length='=>'int'], + 'SyncSharedMemory::size' => ['int'], + 'SyncSharedMemory::write' => ['int', 'string='=>'string', 'start='=>'int'], + 'Thread::__construct' => ['void'], + 'Thread::addRef' => ['void'], + 'Thread::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], + 'Thread::count' => ['int'], + 'Thread::delRef' => ['void'], + 'Thread::detach' => ['void'], + 'Thread::extend' => ['bool', 'class'=>'string'], + 'Thread::getCreatorId' => ['int'], + 'Thread::getCurrentThread' => ['Thread'], + 'Thread::getCurrentThreadId' => ['int'], + 'Thread::getRefCount' => ['int'], + 'Thread::getTerminationInfo' => ['array'], + 'Thread::getThreadId' => ['int'], + 'Thread::globally' => ['mixed'], + 'Thread::isGarbage' => ['bool'], + 'Thread::isJoined' => ['bool'], + 'Thread::isRunning' => ['bool'], + 'Thread::isStarted' => ['bool'], + 'Thread::isTerminated' => ['bool'], + 'Thread::isWaiting' => ['bool'], + 'Thread::join' => ['bool'], + 'Thread::kill' => ['void'], + 'Thread::lock' => ['bool'], + 'Thread::merge' => ['bool', 'from'=>'', 'overwrite='=>'mixed'], + 'Thread::notify' => ['bool'], + 'Thread::notifyOne' => ['bool'], + 'Thread::offsetExists' => ['bool', 'offset'=>'mixed'], + 'Thread::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'Thread::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'Thread::offsetUnset' => ['void', 'offset'=>'mixed'], + 'Thread::pop' => ['bool'], + 'Thread::run' => ['void'], + 'Thread::setGarbage' => ['void'], + 'Thread::shift' => ['bool'], + 'Thread::start' => ['bool', 'options='=>'int'], + 'Thread::synchronized' => ['mixed', 'block'=>'Closure', '_='=>'mixed'], + 'Thread::unlock' => ['bool'], + 'Thread::wait' => ['bool', 'timeout='=>'int'], + 'Threaded::__construct' => ['void'], + 'Threaded::addRef' => ['void'], + 'Threaded::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], + 'Threaded::count' => ['int'], + 'Threaded::delRef' => ['void'], + 'Threaded::extend' => ['bool', 'class'=>'string'], + 'Threaded::from' => ['Threaded', 'run'=>'Closure', 'construct='=>'Closure', 'args='=>'array'], + 'Threaded::getRefCount' => ['int'], + 'Threaded::getTerminationInfo' => ['array'], + 'Threaded::isGarbage' => ['bool'], + 'Threaded::isRunning' => ['bool'], + 'Threaded::isTerminated' => ['bool'], + 'Threaded::isWaiting' => ['bool'], + 'Threaded::lock' => ['bool'], + 'Threaded::merge' => ['bool', 'from'=>'mixed', 'overwrite='=>'bool'], + 'Threaded::notify' => ['bool'], + 'Threaded::notifyOne' => ['bool'], + 'Threaded::offsetExists' => ['bool', 'offset'=>'mixed'], + 'Threaded::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'Threaded::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'Threaded::offsetUnset' => ['void', 'offset'=>'mixed'], + 'Threaded::pop' => ['bool'], + 'Threaded::run' => ['void'], + 'Threaded::setGarbage' => ['void'], + 'Threaded::shift' => ['mixed'], + 'Threaded::synchronized' => ['mixed', 'block'=>'Closure', '...args='=>'mixed'], + 'Threaded::unlock' => ['bool'], + 'Threaded::wait' => ['bool', 'timeout='=>'int'], + 'Throwable::__toString' => ['string'], + 'Throwable::getCode' => ['int|string'], + 'Throwable::getFile' => ['string'], + 'Throwable::getLine' => ['int'], + 'Throwable::getMessage' => ['string'], + 'Throwable::getPrevious' => ['?Throwable'], + 'Throwable::getTrace' => ['list\',args?:array}>'], + 'Throwable::getTraceAsString' => ['string'], + 'TokyoTyrant::__construct' => ['void', 'host='=>'string', 'port='=>'int', 'options='=>'array'], + 'TokyoTyrant::add' => ['int|float', 'key'=>'string', 'increment'=>'float', 'type='=>'int'], + 'TokyoTyrant::connect' => ['TokyoTyrant', 'host'=>'string', 'port='=>'int', 'options='=>'array'], + 'TokyoTyrant::connectUri' => ['TokyoTyrant', 'uri'=>'string'], + 'TokyoTyrant::copy' => ['TokyoTyrant', 'path'=>'string'], + 'TokyoTyrant::ext' => ['string', 'name'=>'string', 'options'=>'int', 'key'=>'string', 'value'=>'string'], + 'TokyoTyrant::fwmKeys' => ['array', 'prefix'=>'string', 'max_recs'=>'int'], + 'TokyoTyrant::get' => ['array', 'keys'=>'mixed'], + 'TokyoTyrant::getIterator' => ['TokyoTyrantIterator'], + 'TokyoTyrant::num' => ['int'], + 'TokyoTyrant::out' => ['string', 'keys'=>'mixed'], + 'TokyoTyrant::put' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], + 'TokyoTyrant::putCat' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], + 'TokyoTyrant::putKeep' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], + 'TokyoTyrant::putNr' => ['TokyoTyrant', 'keys'=>'mixed', 'value='=>'string'], + 'TokyoTyrant::putShl' => ['mixed', 'key'=>'string', 'value'=>'string', 'width'=>'int'], + 'TokyoTyrant::restore' => ['mixed', 'log_dir'=>'string', 'timestamp'=>'int', 'check_consistency='=>'bool'], + 'TokyoTyrant::setMaster' => ['mixed', 'host'=>'string', 'port'=>'int', 'timestamp'=>'int', 'check_consistency='=>'bool'], + 'TokyoTyrant::size' => ['int', 'key'=>'string'], + 'TokyoTyrant::stat' => ['array'], + 'TokyoTyrant::sync' => ['mixed'], + 'TokyoTyrant::tune' => ['TokyoTyrant', 'timeout'=>'float', 'options='=>'int'], + 'TokyoTyrant::vanish' => ['mixed'], + 'TokyoTyrantIterator::__construct' => ['void', 'object'=>'mixed'], + 'TokyoTyrantIterator::current' => ['mixed'], + 'TokyoTyrantIterator::key' => ['mixed'], + 'TokyoTyrantIterator::next' => ['mixed'], + 'TokyoTyrantIterator::rewind' => ['void'], + 'TokyoTyrantIterator::valid' => ['bool'], + 'TokyoTyrantQuery::__construct' => ['void', 'table'=>'TokyoTyrantTable'], + 'TokyoTyrantQuery::addCond' => ['mixed', 'name'=>'string', 'op'=>'int', 'expr'=>'string'], + 'TokyoTyrantQuery::count' => ['int'], + 'TokyoTyrantQuery::current' => ['array'], + 'TokyoTyrantQuery::hint' => ['string'], + 'TokyoTyrantQuery::key' => ['string'], + 'TokyoTyrantQuery::metaSearch' => ['array', 'queries'=>'array', 'type'=>'int'], + 'TokyoTyrantQuery::next' => ['array'], + 'TokyoTyrantQuery::out' => ['TokyoTyrantQuery'], + 'TokyoTyrantQuery::rewind' => ['bool'], + 'TokyoTyrantQuery::search' => ['array'], + 'TokyoTyrantQuery::setLimit' => ['mixed', 'max='=>'int', 'skip='=>'int'], + 'TokyoTyrantQuery::setOrder' => ['mixed', 'name'=>'string', 'type'=>'int'], + 'TokyoTyrantQuery::valid' => ['bool'], + 'TokyoTyrantTable::add' => ['void', 'key'=>'string', 'increment'=>'mixed', 'type='=>'string'], + 'TokyoTyrantTable::genUid' => ['int'], + 'TokyoTyrantTable::get' => ['array', 'keys'=>'mixed'], + 'TokyoTyrantTable::getIterator' => ['TokyoTyrantIterator'], + 'TokyoTyrantTable::getQuery' => ['TokyoTyrantQuery'], + 'TokyoTyrantTable::out' => ['void', 'keys'=>'mixed'], + 'TokyoTyrantTable::put' => ['int', 'key'=>'string', 'columns'=>'array'], + 'TokyoTyrantTable::putCat' => ['void', 'key'=>'string', 'columns'=>'array'], + 'TokyoTyrantTable::putKeep' => ['void', 'key'=>'string', 'columns'=>'array'], + 'TokyoTyrantTable::putNr' => ['void', 'keys'=>'mixed', 'value='=>'string'], + 'TokyoTyrantTable::putShl' => ['void', 'key'=>'string', 'value'=>'string', 'width'=>'int'], + 'TokyoTyrantTable::setIndex' => ['mixed', 'column'=>'string', 'type'=>'int'], + 'Transliterator::create' => ['?Transliterator', 'id'=>'string', 'direction='=>'int'], + 'Transliterator::createFromRules' => ['?Transliterator', 'rules'=>'string', 'direction='=>'int'], + 'Transliterator::createInverse' => ['?Transliterator'], + 'Transliterator::getErrorCode' => ['int'], + 'Transliterator::getErrorMessage' => ['string'], + 'Transliterator::listIDs' => ['array'], + 'Transliterator::transliterate' => ['string|false', 'subject'=>'string', 'start='=>'int', 'end='=>'int'], + 'TypeError::__clone' => ['void'], + 'TypeError::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'TypeError::__toString' => ['string'], + 'TypeError::getCode' => ['int'], + 'TypeError::getFile' => ['string'], + 'TypeError::getLine' => ['int'], + 'TypeError::getMessage' => ['string'], + 'TypeError::getPrevious' => ['?Throwable'], + 'TypeError::getTrace' => ['list\',args?:array}>'], + 'TypeError::getTraceAsString' => ['string'], + 'UConverter::__construct' => ['void', 'destination_encoding='=>'?string', 'source_encoding='=>'?string'], + 'UConverter::convert' => ['string', 'string'=>'string', 'reverse='=>'bool'], + 'UConverter::fromUCallback' => ['mixed', 'reason'=>'int', 'source'=>'string', 'codePoint'=>'string', '&w_error'=>'int'], + 'UConverter::getAliases' => ['array|false|null', 'name'=>'string'], + 'UConverter::getAvailable' => ['array'], + 'UConverter::getDestinationEncoding' => ['string|false|null'], + 'UConverter::getDestinationType' => ['int|false|null'], + 'UConverter::getErrorCode' => ['int'], + 'UConverter::getErrorMessage' => ['?string'], + 'UConverter::getSourceEncoding' => ['string|false|null'], + 'UConverter::getSourceType' => ['int|false|null'], + 'UConverter::getStandards' => ['?array'], + 'UConverter::getSubstChars' => ['string|false|null'], + 'UConverter::reasonText' => ['string', 'reason='=>'int'], + 'UConverter::setDestinationEncoding' => ['bool', 'encoding'=>'string'], + 'UConverter::setSourceEncoding' => ['bool', 'encoding'=>'string'], + 'UConverter::setSubstChars' => ['bool', 'chars'=>'string'], + 'UConverter::toUCallback' => ['string|int|array|null', 'reason'=>'int', 'source'=>'string', 'codeUnits'=>'string', '&w_error'=>'int'], + 'UConverter::transcode' => ['string', 'string'=>'string', 'toEncoding'=>'string', 'fromEncoding'=>'string', 'options='=>'?array'], + 'UnderflowException::__clone' => ['void'], + 'UnderflowException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'UnderflowException::__toString' => ['string'], + 'UnderflowException::getCode' => ['int'], + 'UnderflowException::getFile' => ['string'], + 'UnderflowException::getLine' => ['int'], + 'UnderflowException::getMessage' => ['string'], + 'UnderflowException::getPrevious' => ['?Throwable'], + 'UnderflowException::getTrace' => ['list\',args?:array}>'], + 'UnderflowException::getTraceAsString' => ['string'], + 'UnexpectedValueException::__clone' => ['void'], + 'UnexpectedValueException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Throwable'], + 'UnexpectedValueException::__toString' => ['string'], + 'UnexpectedValueException::getCode' => ['int'], + 'UnexpectedValueException::getFile' => ['string'], + 'UnexpectedValueException::getLine' => ['int'], + 'UnexpectedValueException::getMessage' => ['string'], + 'UnexpectedValueException::getPrevious' => ['?Throwable'], + 'UnexpectedValueException::getTrace' => ['list\',args?:array}>'], + 'UnexpectedValueException::getTraceAsString' => ['string'], + 'V8Js::__construct' => ['void', 'object_name='=>'string', 'variables='=>'array', 'extensions='=>'array', 'report_uncaught_exceptions='=>'bool', 'snapshot_blob='=>'string'], + 'V8Js::clearPendingException' => [''], + 'V8Js::compileString' => ['resource', 'script'=>'', 'identifier='=>'string'], + 'V8Js::createSnapshot' => ['false|string', 'embed_source'=>'string'], + 'V8Js::executeScript' => ['', 'script'=>'resource', 'flags='=>'int', 'time_limit='=>'int', 'memory_limit='=>'int'], + 'V8Js::executeString' => ['mixed', 'script'=>'string', 'identifier='=>'string', 'flags='=>'int'], + 'V8Js::getExtensions' => ['string[]'], + 'V8Js::getPendingException' => ['?V8JsException'], + 'V8Js::registerExtension' => ['bool', 'extension_name'=>'string', 'script'=>'string', 'dependencies='=>'array', 'auto_enable='=>'bool'], + 'V8Js::setAverageObjectSize' => ['', 'average_object_size'=>'int'], + 'V8Js::setMemoryLimit' => ['', 'limit'=>'int'], + 'V8Js::setModuleLoader' => ['', 'loader'=>'callable'], + 'V8Js::setModuleNormaliser' => ['', 'normaliser'=>'callable'], + 'V8Js::setTimeLimit' => ['', 'limit'=>'int'], + 'V8JsException::getJsFileName' => ['string'], + 'V8JsException::getJsLineNumber' => ['int'], + 'V8JsException::getJsSourceLine' => ['int'], + 'V8JsException::getJsTrace' => ['string'], + 'V8JsScriptException::__clone' => ['void'], + 'V8JsScriptException::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'V8JsScriptException::__toString' => ['string'], + 'V8JsScriptException::__wakeup' => ['void'], + 'V8JsScriptException::getCode' => ['int'], + 'V8JsScriptException::getFile' => ['string'], + 'V8JsScriptException::getJsEndColumn' => ['int'], + 'V8JsScriptException::getJsFileName' => ['string'], + 'V8JsScriptException::getJsLineNumber' => ['int'], + 'V8JsScriptException::getJsSourceLine' => ['string'], + 'V8JsScriptException::getJsStartColumn' => ['int'], + 'V8JsScriptException::getJsTrace' => ['string'], + 'V8JsScriptException::getLine' => ['int'], + 'V8JsScriptException::getMessage' => ['string'], + 'V8JsScriptException::getPrevious' => ['Exception|Throwable'], + 'V8JsScriptException::getTrace' => ['list\',args?:array}>'], + 'V8JsScriptException::getTraceAsString' => ['string'], + 'VARIANT::__construct' => ['void', 'value='=>'mixed', 'type='=>'int', 'codepage='=>'int'], + 'VarnishAdmin::__construct' => ['void', 'args='=>'array'], + 'VarnishAdmin::auth' => ['bool'], + 'VarnishAdmin::ban' => ['int', 'vcl_regex'=>'string'], + 'VarnishAdmin::banUrl' => ['int', 'vcl_regex'=>'string'], + 'VarnishAdmin::clearPanic' => ['int'], + 'VarnishAdmin::connect' => ['bool'], + 'VarnishAdmin::disconnect' => ['bool'], + 'VarnishAdmin::getPanic' => ['string'], + 'VarnishAdmin::getParams' => ['array'], + 'VarnishAdmin::isRunning' => ['bool'], + 'VarnishAdmin::setCompat' => ['void', 'compat'=>'int'], + 'VarnishAdmin::setHost' => ['void', 'host'=>'string'], + 'VarnishAdmin::setIdent' => ['void', 'ident'=>'string'], + 'VarnishAdmin::setParam' => ['int', 'name'=>'string', 'value'=>'string|int'], + 'VarnishAdmin::setPort' => ['void', 'port'=>'int'], + 'VarnishAdmin::setSecret' => ['void', 'secret'=>'string'], + 'VarnishAdmin::setTimeout' => ['void', 'timeout'=>'int'], + 'VarnishAdmin::start' => ['int'], + 'VarnishAdmin::stop' => ['int'], + 'VarnishLog::__construct' => ['void', 'args='=>'array'], + 'VarnishLog::getLine' => ['array'], + 'VarnishLog::getTagName' => ['string', 'index'=>'int'], + 'VarnishStat::__construct' => ['void', 'args='=>'array'], + 'VarnishStat::getSnapshot' => ['array'], + 'Vtiful\Kernel\Chart::__construct' => ['void', 'handle'=>'resource', 'type'=>'int'], + 'Vtiful\Kernel\Chart::axisNameX' => ['Vtiful\Kernel\Chart', 'name'=>'string'], + 'Vtiful\Kernel\Chart::axisNameY' => ['Vtiful\Kernel\Chart', 'name'=>'string'], + 'Vtiful\Kernel\Chart::legendSetPosition' => ['Vtiful\Kernel\Chart', 'type'=>'int'], + 'Vtiful\Kernel\Chart::series' => ['Vtiful\Kernel\Chart', 'value'=>'string', 'categories='=>'string'], + 'Vtiful\Kernel\Chart::seriesName' => ['Vtiful\Kernel\Chart', 'value'=>'string'], + 'Vtiful\Kernel\Chart::style' => ['Vtiful\Kernel\Chart', 'style'=>'int'], + 'Vtiful\Kernel\Chart::title' => ['Vtiful\Kernel\Chart', 'title'=>'string'], + 'Vtiful\Kernel\Chart::toResource' => ['resource'], + 'Vtiful\Kernel\Excel::__construct' => ['void', 'config'=>'array'], + 'Vtiful\Kernel\Excel::activateSheet' => ['bool', 'sheet_name'=>'string'], + 'Vtiful\Kernel\Excel::addSheet' => ['Vtiful\Kernel\Excel', 'sheet_name='=>'?string'], + 'Vtiful\Kernel\Excel::autoFilter' => ['Vtiful\Kernel\Excel', 'range'=>'string'], + 'Vtiful\Kernel\Excel::checkoutSheet' => ['Vtiful\Kernel\Excel', 'sheet_name'=>'string'], + 'Vtiful\Kernel\Excel::close' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::columnIndexFromString' => ['int', 'index'=>'string'], + 'Vtiful\Kernel\Excel::constMemory' => ['Vtiful\Kernel\Excel', 'file_name'=>'string', 'sheet_name='=>'?string'], + 'Vtiful\Kernel\Excel::data' => ['Vtiful\Kernel\Excel', 'data'=>'array'], + 'Vtiful\Kernel\Excel::defaultFormat' => ['Vtiful\Kernel\Excel', 'format_handle'=>'resource'], + 'Vtiful\Kernel\Excel::existSheet' => ['bool', 'sheet_name'=>'string'], + 'Vtiful\Kernel\Excel::fileName' => ['Vtiful\Kernel\Excel', 'file_name'=>'string', 'sheet_name='=>'?string'], + 'Vtiful\Kernel\Excel::freezePanes' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int'], + 'Vtiful\Kernel\Excel::getHandle' => ['resource'], + 'Vtiful\Kernel\Excel::getSheetData' => ['array|false'], + 'Vtiful\Kernel\Excel::gridline' => ['Vtiful\Kernel\Excel', 'option='=>'int'], + 'Vtiful\Kernel\Excel::header' => ['Vtiful\Kernel\Excel', 'header'=>'array', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::insertChart' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'chart_resource'=>'resource'], + 'Vtiful\Kernel\Excel::insertComment' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'comment'=>'string'], + 'Vtiful\Kernel\Excel::insertDate' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'timestamp'=>'int', 'format='=>'?string', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::insertFormula' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'formula'=>'string', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::insertImage' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'image'=>'string', 'width='=>'?float', 'height='=>'?float'], + 'Vtiful\Kernel\Excel::insertText' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'data'=>'int|string|double', 'format='=>'?string', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::insertUrl' => ['Vtiful\Kernel\Excel', 'row'=>'int', 'column'=>'int', 'url'=>'string', 'text='=>'?string', 'tool_tip='=>'?string', 'format='=>'?resource'], + 'Vtiful\Kernel\Excel::mergeCells' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'data'=>'string', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::nextCellCallback' => ['void', 'fci'=>'callable(int,int,mixed)', 'sheet_name='=>'?string'], + 'Vtiful\Kernel\Excel::nextRow' => ['array|false', 'zv_type_t='=>'?array'], + 'Vtiful\Kernel\Excel::openFile' => ['Vtiful\Kernel\Excel', 'zs_file_name'=>'string'], + 'Vtiful\Kernel\Excel::openSheet' => ['Vtiful\Kernel\Excel', 'zs_sheet_name='=>'?string', 'zl_flag='=>'?int'], + 'Vtiful\Kernel\Excel::output' => ['string'], + 'Vtiful\Kernel\Excel::protection' => ['Vtiful\Kernel\Excel', 'password='=>'?string'], + 'Vtiful\Kernel\Excel::putCSV' => ['bool', 'fp'=>'resource', 'delimiter_str='=>'?string', 'enclosure_str='=>'?string', 'escape_str='=>'?string'], + 'Vtiful\Kernel\Excel::putCSVCallback' => ['bool', 'callback'=>'callable(array):array', 'fp'=>'resource', 'delimiter_str='=>'?string', 'enclosure_str='=>'?string', 'escape_str='=>'?string'], + 'Vtiful\Kernel\Excel::setColumn' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'width'=>'float', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::setCurrentSheetHide' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::setCurrentSheetIsFirst' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::setGlobalType' => ['Vtiful\Kernel\Excel', 'zv_type_t'=>'int'], + 'Vtiful\Kernel\Excel::setLandscape' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::setMargins' => ['Vtiful\Kernel\Excel', 'left='=>'?float', 'right='=>'?float', 'top='=>'?float', 'bottom='=>'?float'], + 'Vtiful\Kernel\Excel::setPaper' => ['Vtiful\Kernel\Excel', 'paper'=>'int'], + 'Vtiful\Kernel\Excel::setPortrait' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::setRow' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'height'=>'float', 'format_handle='=>'?resource'], + 'Vtiful\Kernel\Excel::setSkipRows' => ['Vtiful\Kernel\Excel', 'zv_skip_t'=>'int'], + 'Vtiful\Kernel\Excel::setType' => ['Vtiful\Kernel\Excel', 'zv_type_t'=>'array'], + 'Vtiful\Kernel\Excel::sheetList' => ['array'], + 'Vtiful\Kernel\Excel::showComment' => ['Vtiful\Kernel\Excel'], + 'Vtiful\Kernel\Excel::stringFromColumnIndex' => ['string', 'index'=>'int'], + 'Vtiful\Kernel\Excel::timestampFromDateDouble' => ['int', 'index'=>'?float'], + 'Vtiful\Kernel\Excel::validation' => ['Vtiful\Kernel\Excel', 'range'=>'string', 'validation_resource'=>'resource'], + 'Vtiful\Kernel\Excel::zoom' => ['Vtiful\Kernel\Excel', 'scale'=>'int'], + 'Vtiful\Kernel\Format::__construct' => ['void', 'handle'=>'resource'], + 'Vtiful\Kernel\Format::align' => ['Vtiful\Kernel\Format', '...style'=>'int'], + 'Vtiful\Kernel\Format::background' => ['Vtiful\Kernel\Format', 'color'=>'int', 'pattern='=>'int'], + 'Vtiful\Kernel\Format::bold' => ['Vtiful\Kernel\Format'], + 'Vtiful\Kernel\Format::border' => ['Vtiful\Kernel\Format', 'style'=>'int'], + 'Vtiful\Kernel\Format::font' => ['Vtiful\Kernel\Format', 'font'=>'string'], + 'Vtiful\Kernel\Format::fontColor' => ['Vtiful\Kernel\Format', 'color'=>'int'], + 'Vtiful\Kernel\Format::fontSize' => ['Vtiful\Kernel\Format', 'size'=>'float'], + 'Vtiful\Kernel\Format::italic' => ['Vtiful\Kernel\Format'], + 'Vtiful\Kernel\Format::number' => ['Vtiful\Kernel\Format', 'format'=>'string'], + 'Vtiful\Kernel\Format::strikeout' => ['Vtiful\Kernel\Format'], + 'Vtiful\Kernel\Format::toResource' => ['resource'], + 'Vtiful\Kernel\Format::underline' => ['Vtiful\Kernel\Format', 'style'=>'int'], + 'Vtiful\Kernel\Format::unlocked' => ['Vtiful\Kernel\Format'], + 'Vtiful\Kernel\Format::wrap' => ['Vtiful\Kernel\Format'], + 'Vtiful\Kernel\Validation::__construct' => ['void'], + 'Vtiful\Kernel\Validation::criteriaType' => ['?Vtiful\Kernel\Validation', 'type'=>'int'], + 'Vtiful\Kernel\Validation::maximumFormula' => ['?Vtiful\Kernel\Validation', 'maximum_formula'=>'string'], + 'Vtiful\Kernel\Validation::maximumNumber' => ['?Vtiful\Kernel\Validation', 'maximum_number'=>'float'], + 'Vtiful\Kernel\Validation::minimumFormula' => ['?Vtiful\Kernel\Validation', 'minimum_formula'=>'string'], + 'Vtiful\Kernel\Validation::minimumNumber' => ['?Vtiful\Kernel\Validation', 'minimum_number'=>'float'], + 'Vtiful\Kernel\Validation::toResource' => ['resource'], + 'Vtiful\Kernel\Validation::validationType' => ['?Vtiful\Kernel\Validation', 'type'=>'int'], + 'Vtiful\Kernel\Validation::valueList' => ['?Vtiful\Kernel\Validation', 'value_list'=>'array'], + 'Vtiful\Kernel\Validation::valueNumber' => ['?Vtiful\Kernel\Validation', 'value_number'=>'int'], + 'WeakMap::__construct' => ['void'], + 'WeakMap::count' => ['int'], + 'WeakMap::current' => ['mixed'], + 'WeakMap::key' => ['object'], + 'WeakMap::next' => ['void'], + 'WeakMap::offsetExists' => ['bool', 'object'=>'object'], + 'WeakMap::offsetGet' => ['mixed', 'object'=>'object'], + 'WeakMap::offsetSet' => ['void', 'object'=>'object', 'value'=>'mixed'], + 'WeakMap::offsetUnset' => ['void', 'object'=>'object'], + 'WeakMap::rewind' => ['void'], + 'WeakMap::valid' => ['bool'], + 'Weakref::acquire' => ['bool'], + 'Weakref::get' => ['object'], + 'Weakref::release' => ['bool'], + 'Weakref::valid' => ['bool'], + 'Worker::__construct' => ['void'], + 'Worker::addRef' => ['void'], + 'Worker::chunk' => ['array', 'size'=>'int', 'preserve'=>'bool'], + 'Worker::collect' => ['int', 'collector='=>'Callable'], + 'Worker::count' => ['int'], + 'Worker::delRef' => ['void'], + 'Worker::detach' => ['void'], + 'Worker::extend' => ['bool', 'class'=>'string'], + 'Worker::getCreatorId' => ['int'], + 'Worker::getCurrentThread' => ['Thread'], + 'Worker::getCurrentThreadId' => ['int'], + 'Worker::getRefCount' => ['int'], + 'Worker::getStacked' => ['int'], + 'Worker::getTerminationInfo' => ['array'], + 'Worker::getThreadId' => ['int'], + 'Worker::globally' => ['mixed'], + 'Worker::isGarbage' => ['bool'], + 'Worker::isJoined' => ['bool'], + 'Worker::isRunning' => ['bool'], + 'Worker::isShutdown' => ['bool'], + 'Worker::isStarted' => ['bool'], + 'Worker::isTerminated' => ['bool'], + 'Worker::isWaiting' => ['bool'], + 'Worker::isWorking' => ['bool'], + 'Worker::join' => ['bool'], + 'Worker::kill' => ['bool'], + 'Worker::lock' => ['bool'], + 'Worker::merge' => ['bool', 'from'=>'', 'overwrite='=>'mixed'], + 'Worker::notify' => ['bool'], + 'Worker::notifyOne' => ['bool'], + 'Worker::offsetExists' => ['bool', 'offset'=>'mixed'], + 'Worker::offsetGet' => ['mixed', 'offset'=>'mixed'], + 'Worker::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'Worker::offsetUnset' => ['void', 'offset'=>'mixed'], + 'Worker::pop' => ['bool'], + 'Worker::run' => ['void'], + 'Worker::setGarbage' => ['void'], + 'Worker::shift' => ['bool'], + 'Worker::shutdown' => ['bool'], + 'Worker::stack' => ['int', '&rw_work'=>'Threaded'], + 'Worker::start' => ['bool', 'options='=>'int'], + 'Worker::synchronized' => ['mixed', 'block'=>'Closure', '_='=>'mixed'], + 'Worker::unlock' => ['bool'], + 'Worker::unstack' => ['int', '&rw_work='=>'Threaded'], + 'Worker::wait' => ['bool', 'timeout='=>'int'], + 'XMLDiff\Base::__construct' => ['void', 'nsname'=>'string'], + 'XMLDiff\Base::diff' => ['mixed', 'from'=>'mixed', 'to'=>'mixed'], + 'XMLDiff\Base::merge' => ['mixed', 'src'=>'mixed', 'diff'=>'mixed'], + 'XMLDiff\DOM::diff' => ['DOMDocument', 'from'=>'DOMDocument', 'to'=>'DOMDocument'], + 'XMLDiff\DOM::merge' => ['DOMDocument', 'src'=>'DOMDocument', 'diff'=>'DOMDocument'], + 'XMLDiff\File::diff' => ['string', 'from'=>'string', 'to'=>'string'], + 'XMLDiff\File::merge' => ['string', 'src'=>'string', 'diff'=>'string'], + 'XMLDiff\Memory::diff' => ['string', 'from'=>'string', 'to'=>'string'], + 'XMLDiff\Memory::merge' => ['string', 'src'=>'string', 'diff'=>'string'], + 'XMLReader::XML' => ['bool', 'source'=>'string', 'encoding='=>'?string', 'options='=>'int'], + 'XMLReader::close' => ['bool'], + 'XMLReader::expand' => ['DOMNode|false', 'baseNode='=>'?DOMNode'], + 'XMLReader::getAttribute' => ['?string', 'name'=>'string'], + 'XMLReader::getAttributeNo' => ['?string', 'index'=>'int'], + 'XMLReader::getAttributeNs' => ['?string', 'name'=>'string', 'namespaceuri'=>'string'], + 'XMLReader::getParserProperty' => ['bool', 'property'=>'int'], + 'XMLReader::isValid' => ['bool'], + 'XMLReader::lookupNamespace' => ['?string', 'prefix'=>'string'], + 'XMLReader::moveToAttribute' => ['bool', 'name'=>'string'], + 'XMLReader::moveToAttributeNo' => ['bool', 'index'=>'int'], + 'XMLReader::moveToAttributeNs' => ['bool', 'localname'=>'string', 'namespaceuri'=>'string'], + 'XMLReader::moveToElement' => ['bool'], + 'XMLReader::moveToFirstAttribute' => ['bool'], + 'XMLReader::moveToNextAttribute' => ['bool'], + 'XMLReader::next' => ['bool', 'localname='=>'string'], + 'XMLReader::open' => ['bool', 'uri'=>'string', 'encoding='=>'?string', 'options='=>'int'], + 'XMLReader::read' => ['bool'], + 'XMLReader::readInnerXML' => ['string'], + 'XMLReader::readOuterXML' => ['string'], + 'XMLReader::readString' => ['string'], + 'XMLReader::setParserProperty' => ['bool', 'property'=>'int', 'value'=>'bool'], + 'XMLReader::setRelaxNGSchema' => ['bool', 'filename'=>'?string'], + 'XMLReader::setRelaxNGSchemaSource' => ['bool', 'source'=>'?string'], + 'XMLReader::setSchema' => ['bool', 'filename'=>'?string'], + 'XMLWriter::endAttribute' => ['bool'], + 'XMLWriter::endCdata' => ['bool'], + 'XMLWriter::endComment' => ['bool'], + 'XMLWriter::endDocument' => ['bool'], + 'XMLWriter::endDtd' => ['bool'], + 'XMLWriter::endDtdAttlist' => ['bool'], + 'XMLWriter::endDtdElement' => ['bool'], + 'XMLWriter::endDtdEntity' => ['bool'], + 'XMLWriter::endElement' => ['bool'], + 'XMLWriter::endPi' => ['bool'], + 'XMLWriter::flush' => ['string|int|false', 'empty='=>'bool'], + 'XMLWriter::fullEndElement' => ['bool'], + 'XMLWriter::openMemory' => ['bool'], + 'XMLWriter::openUri' => ['bool', 'uri'=>'string'], + 'XMLWriter::outputMemory' => ['string', 'flush='=>'bool'], + 'XMLWriter::setIndent' => ['bool', 'enable'=>'bool'], + 'XMLWriter::setIndentString' => ['bool', 'indentation'=>'string'], + 'XMLWriter::startAttribute' => ['bool', 'name'=>'string'], + 'XMLWriter::startAttributeNs' => ['bool', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string'], + 'XMLWriter::startCdata' => ['bool'], + 'XMLWriter::startComment' => ['bool'], + 'XMLWriter::startDocument' => ['bool', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], + 'XMLWriter::startDtd' => ['bool', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], + 'XMLWriter::startDtdAttlist' => ['bool', 'name'=>'string'], + 'XMLWriter::startDtdElement' => ['bool', 'qualifiedName'=>'string'], + 'XMLWriter::startDtdEntity' => ['bool', 'name'=>'string', 'isParam'=>'bool'], + 'XMLWriter::startElement' => ['bool', 'name'=>'string'], + 'XMLWriter::startElementNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + 'XMLWriter::startPi' => ['bool', 'target'=>'string'], + 'XMLWriter::text' => ['bool', 'content'=>'string'], + 'XMLWriter::writeAttribute' => ['bool', 'name'=>'string', 'value'=>'string'], + 'XMLWriter::writeAttributeNs' => ['bool', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + 'XMLWriter::writeCdata' => ['bool', 'content'=>'string'], + 'XMLWriter::writeComment' => ['bool', 'content'=>'string'], + 'XMLWriter::writeDtd' => ['bool', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], + 'XMLWriter::writeDtdAttlist' => ['bool', 'name'=>'string', 'content'=>'string'], + 'XMLWriter::writeDtdElement' => ['bool', 'name'=>'string', 'content'=>'string'], + 'XMLWriter::writeDtdEntity' => ['bool', 'name'=>'string', 'content'=>'string', 'isParam'=>'bool', 'publicId'=>'string', 'systemId'=>'string', 'notationData'=>'string'], + 'XMLWriter::writeElement' => ['bool', 'name'=>'string', 'content='=>'?string'], + 'XMLWriter::writeElementNs' => ['bool', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string', 'content='=>'?string'], + 'XMLWriter::writePi' => ['bool', 'target'=>'string', 'content'=>'string'], + 'XMLWriter::writeRaw' => ['bool', 'content'=>'string'], + 'XSLTProcessor::getParameter' => ['string|false', 'namespace'=>'string', 'name'=>'string'], + 'XSLTProcessor::hasExsltSupport' => ['bool'], + 'XSLTProcessor::importStylesheet' => ['bool', 'stylesheet'=>'object'], + 'XSLTProcessor::registerPHPFunctions' => ['void', 'functions='=>'mixed'], + 'XSLTProcessor::removeParameter' => ['bool', 'namespace'=>'string', 'name'=>'string'], + 'XSLTProcessor::setParameter' => ['bool', 'namespace'=>'string', 'name'=>'string', 'value'=>'string'], + 'XSLTProcessor::setParameter\'1' => ['bool', 'namespace'=>'string', 'options'=>'array'], + 'XSLTProcessor::setProfiling' => ['bool', 'filename'=>'?string'], + 'XSLTProcessor::transformToDoc' => ['DOMDocument|false', 'document'=>'DOMNode'], + 'XSLTProcessor::transformToURI' => ['int', 'document'=>'DOMDocument', 'uri'=>'string'], + 'XSLTProcessor::transformToXML' => ['string|false', 'document'=>'DOMDocument'], + 'Xcom::__construct' => ['void', 'fabric_url='=>'string', 'fabric_token='=>'string', 'capability_token='=>'string'], + 'Xcom::decode' => ['object', 'avro_msg'=>'string', 'json_schema'=>'string'], + 'Xcom::encode' => ['string', 'data'=>'stdClass', 'avro_schema'=>'string'], + 'Xcom::getDebugOutput' => ['string'], + 'Xcom::getLastResponse' => ['string'], + 'Xcom::getLastResponseInfo' => ['array'], + 'Xcom::getOnboardingURL' => ['string', 'capability_name'=>'string', 'agreement_url'=>'string'], + 'Xcom::send' => ['int', 'topic'=>'string', 'data'=>'mixed', 'json_schema='=>'string', 'http_headers='=>'array'], + 'Xcom::sendAsync' => ['int', 'topic'=>'string', 'data'=>'mixed', 'json_schema='=>'string', 'http_headers='=>'array'], + 'XsltProcessor::getSecurityPrefs' => ['int'], + 'XsltProcessor::setSecurityPrefs' => ['int', 'preferences'=>'int'], + 'Yaconf::get' => ['mixed', 'name'=>'string', 'default_value='=>'mixed'], + 'Yaconf::has' => ['bool', 'name'=>'string'], + 'Yaf\Action_Abstract::__clone' => ['void'], + 'Yaf\Action_Abstract::__construct' => ['void', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract', 'view'=>'Yaf\View_Interface', 'invokeArgs='=>'?array'], + 'Yaf\Action_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf\Action_Abstract::execute' => ['mixed'], + 'Yaf\Action_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], + 'Yaf\Action_Abstract::getController' => ['Yaf\Controller_Abstract'], + 'Yaf\Action_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], + 'Yaf\Action_Abstract::getInvokeArgs' => ['array'], + 'Yaf\Action_Abstract::getModuleName' => ['string'], + 'Yaf\Action_Abstract::getRequest' => ['Yaf\Request_Abstract'], + 'Yaf\Action_Abstract::getResponse' => ['Yaf\Response_Abstract'], + 'Yaf\Action_Abstract::getView' => ['Yaf\View_Interface'], + 'Yaf\Action_Abstract::getViewpath' => ['string'], + 'Yaf\Action_Abstract::init' => [''], + 'Yaf\Action_Abstract::initView' => ['Yaf\Response_Abstract', 'options='=>'?array'], + 'Yaf\Action_Abstract::redirect' => ['bool', 'url'=>'string'], + 'Yaf\Action_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf\Action_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], + 'Yaf\Application::__clone' => ['void'], + 'Yaf\Application::__construct' => ['void', 'config'=>'array|string', 'envrion='=>'string'], + 'Yaf\Application::__destruct' => ['void'], + 'Yaf\Application::__sleep' => ['string[]'], + 'Yaf\Application::__wakeup' => ['void'], + 'Yaf\Application::app' => ['?Yaf\Application'], + 'Yaf\Application::bootstrap' => ['Yaf\Application', 'bootstrap='=>'?Yaf\Bootstrap_Abstract'], + 'Yaf\Application::clearLastError' => ['void'], + 'Yaf\Application::environ' => ['string'], + 'Yaf\Application::execute' => ['void', 'entry'=>'callable', '_='=>'string'], + 'Yaf\Application::getAppDirectory' => ['string'], + 'Yaf\Application::getConfig' => ['Yaf\Config_Abstract'], + 'Yaf\Application::getDispatcher' => ['Yaf\Dispatcher'], + 'Yaf\Application::getLastErrorMsg' => ['string'], + 'Yaf\Application::getLastErrorNo' => ['int'], + 'Yaf\Application::getModules' => ['array'], + 'Yaf\Application::run' => ['void'], + 'Yaf\Application::setAppDirectory' => ['Yaf\Application', 'directory'=>'string'], + 'Yaf\Config\Ini::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], + 'Yaf\Config\Ini::__get' => ['', 'name='=>'mixed'], + 'Yaf\Config\Ini::__isset' => ['', 'name'=>'string'], + 'Yaf\Config\Ini::__set' => ['void', 'name'=>'', 'value'=>''], + 'Yaf\Config\Ini::count' => ['int'], + 'Yaf\Config\Ini::current' => ['mixed'], + 'Yaf\Config\Ini::get' => ['mixed', 'name='=>'mixed'], + 'Yaf\Config\Ini::key' => ['int|string'], + 'Yaf\Config\Ini::next' => ['void'], + 'Yaf\Config\Ini::offsetExists' => ['bool', 'name'=>'mixed'], + 'Yaf\Config\Ini::offsetGet' => ['mixed', 'name'=>'mixed'], + 'Yaf\Config\Ini::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], + 'Yaf\Config\Ini::offsetUnset' => ['void', 'name'=>'mixed'], + 'Yaf\Config\Ini::readonly' => ['bool'], + 'Yaf\Config\Ini::rewind' => ['void'], + 'Yaf\Config\Ini::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], + 'Yaf\Config\Ini::toArray' => ['array'], + 'Yaf\Config\Ini::valid' => ['bool'], + 'Yaf\Config\Simple::__construct' => ['void', 'array'=>'array', 'readonly='=>'string'], + 'Yaf\Config\Simple::__get' => ['', 'name='=>'mixed'], + 'Yaf\Config\Simple::__isset' => ['', 'name'=>'string'], + 'Yaf\Config\Simple::__set' => ['void', 'name'=>'', 'value'=>''], + 'Yaf\Config\Simple::count' => ['int'], + 'Yaf\Config\Simple::current' => ['mixed'], + 'Yaf\Config\Simple::get' => ['mixed', 'name='=>'mixed'], + 'Yaf\Config\Simple::key' => ['int|string'], + 'Yaf\Config\Simple::next' => ['void'], + 'Yaf\Config\Simple::offsetExists' => ['bool', 'name'=>'mixed'], + 'Yaf\Config\Simple::offsetGet' => ['mixed', 'name'=>'mixed'], + 'Yaf\Config\Simple::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], + 'Yaf\Config\Simple::offsetUnset' => ['void', 'name'=>'mixed'], + 'Yaf\Config\Simple::readonly' => ['bool'], + 'Yaf\Config\Simple::rewind' => ['void'], + 'Yaf\Config\Simple::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], + 'Yaf\Config\Simple::toArray' => ['array'], + 'Yaf\Config\Simple::valid' => ['bool'], + 'Yaf\Config_Abstract::__construct' => ['void'], + 'Yaf\Config_Abstract::get' => ['mixed', 'name='=>'string'], + 'Yaf\Config_Abstract::readonly' => ['bool'], + 'Yaf\Config_Abstract::set' => ['Yaf\Config_Abstract', 'name'=>'string', 'value'=>'mixed'], + 'Yaf\Config_Abstract::toArray' => ['array'], + 'Yaf\Controller_Abstract::__clone' => ['void'], + 'Yaf\Controller_Abstract::__construct' => ['void', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract', 'view'=>'Yaf\View_Interface', 'invokeArgs='=>'?array'], + 'Yaf\Controller_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf\Controller_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], + 'Yaf\Controller_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], + 'Yaf\Controller_Abstract::getInvokeArgs' => ['array'], + 'Yaf\Controller_Abstract::getModuleName' => ['string'], + 'Yaf\Controller_Abstract::getRequest' => ['Yaf\Request_Abstract'], + 'Yaf\Controller_Abstract::getResponse' => ['Yaf\Response_Abstract'], + 'Yaf\Controller_Abstract::getView' => ['Yaf\View_Interface'], + 'Yaf\Controller_Abstract::getViewpath' => ['string'], + 'Yaf\Controller_Abstract::init' => [''], + 'Yaf\Controller_Abstract::initView' => ['Yaf\Response_Abstract', 'options='=>'?array'], + 'Yaf\Controller_Abstract::redirect' => ['bool', 'url'=>'string'], + 'Yaf\Controller_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf\Controller_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], + 'Yaf\Dispatcher::__clone' => ['void'], + 'Yaf\Dispatcher::__construct' => ['void'], + 'Yaf\Dispatcher::__sleep' => ['list'], + 'Yaf\Dispatcher::__wakeup' => ['void'], + 'Yaf\Dispatcher::autoRender' => ['Yaf\Dispatcher', 'flag='=>'bool'], + 'Yaf\Dispatcher::catchException' => ['Yaf\Dispatcher', 'flag='=>'bool'], + 'Yaf\Dispatcher::disableView' => ['bool'], + 'Yaf\Dispatcher::dispatch' => ['Yaf\Response_Abstract', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Dispatcher::enableView' => ['Yaf\Dispatcher'], + 'Yaf\Dispatcher::flushInstantly' => ['Yaf\Dispatcher', 'flag='=>'bool'], + 'Yaf\Dispatcher::getApplication' => ['Yaf\Application'], + 'Yaf\Dispatcher::getInstance' => ['Yaf\Dispatcher'], + 'Yaf\Dispatcher::getRequest' => ['Yaf\Request_Abstract'], + 'Yaf\Dispatcher::getRouter' => ['Yaf\Router'], + 'Yaf\Dispatcher::initView' => ['Yaf\View_Interface', 'templates_dir'=>'string', 'options='=>'?array'], + 'Yaf\Dispatcher::registerPlugin' => ['Yaf\Dispatcher', 'plugin'=>'Yaf\Plugin_Abstract'], + 'Yaf\Dispatcher::returnResponse' => ['Yaf\Dispatcher', 'flag'=>'bool'], + 'Yaf\Dispatcher::setDefaultAction' => ['Yaf\Dispatcher', 'action'=>'string'], + 'Yaf\Dispatcher::setDefaultController' => ['Yaf\Dispatcher', 'controller'=>'string'], + 'Yaf\Dispatcher::setDefaultModule' => ['Yaf\Dispatcher', 'module'=>'string'], + 'Yaf\Dispatcher::setErrorHandler' => ['Yaf\Dispatcher', 'callback'=>'callable', 'error_types'=>'int'], + 'Yaf\Dispatcher::setRequest' => ['Yaf\Dispatcher', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Dispatcher::setView' => ['Yaf\Dispatcher', 'view'=>'Yaf\View_Interface'], + 'Yaf\Dispatcher::throwException' => ['Yaf\Dispatcher', 'flag='=>'bool'], + 'Yaf\Loader::__clone' => ['void'], + 'Yaf\Loader::__construct' => ['void'], + 'Yaf\Loader::__sleep' => ['list'], + 'Yaf\Loader::__wakeup' => ['void'], + 'Yaf\Loader::autoload' => ['bool', 'class_name'=>'string'], + 'Yaf\Loader::clearLocalNamespace' => [''], + 'Yaf\Loader::getInstance' => ['Yaf\Loader', 'local_library_path='=>'string', 'global_library_path='=>'string'], + 'Yaf\Loader::getLibraryPath' => ['string', 'is_global='=>'bool'], + 'Yaf\Loader::getLocalNamespace' => ['string'], + 'Yaf\Loader::import' => ['bool', 'file'=>'string'], + 'Yaf\Loader::isLocalName' => ['bool', 'class_name'=>'string'], + 'Yaf\Loader::registerLocalNamespace' => ['bool', 'name_prefix'=>'string|string[]'], + 'Yaf\Loader::setLibraryPath' => ['Yaf\Loader', 'directory'=>'string', 'global='=>'bool'], + 'Yaf\Plugin_Abstract::dispatchLoopShutdown' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::dispatchLoopStartup' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::postDispatch' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::preDispatch' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::preResponse' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::routerShutdown' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Plugin_Abstract::routerStartup' => ['bool', 'request'=>'Yaf\Request_Abstract', 'response'=>'Yaf\Response_Abstract'], + 'Yaf\Registry::__clone' => ['void'], + 'Yaf\Registry::__construct' => ['void'], + 'Yaf\Registry::del' => ['bool|void', 'name'=>'string'], + 'Yaf\Registry::get' => ['mixed', 'name'=>'string'], + 'Yaf\Registry::has' => ['bool', 'name'=>'string'], + 'Yaf\Registry::set' => ['bool', 'name'=>'string', 'value'=>'mixed'], + 'Yaf\Request\Http::__clone' => ['void'], + 'Yaf\Request\Http::__construct' => ['void', 'request_uri'=>'string', 'base_uri'=>'string'], + 'Yaf\Request\Http::get' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf\Request\Http::getActionName' => ['string'], + 'Yaf\Request\Http::getBaseUri' => ['string'], + 'Yaf\Request\Http::getControllerName' => ['string'], + 'Yaf\Request\Http::getCookie' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getException' => ['Yaf\Exception'], + 'Yaf\Request\Http::getFiles' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getLanguage' => ['string'], + 'Yaf\Request\Http::getMethod' => ['string'], + 'Yaf\Request\Http::getModuleName' => ['string'], + 'Yaf\Request\Http::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getParams' => ['array'], + 'Yaf\Request\Http::getPost' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getQuery' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getRequest' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::getRequestUri' => ['string'], + 'Yaf\Request\Http::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Http::isCli' => ['bool'], + 'Yaf\Request\Http::isDispatched' => ['bool'], + 'Yaf\Request\Http::isGet' => ['bool'], + 'Yaf\Request\Http::isHead' => ['bool'], + 'Yaf\Request\Http::isOptions' => ['bool'], + 'Yaf\Request\Http::isPost' => ['bool'], + 'Yaf\Request\Http::isPut' => ['bool'], + 'Yaf\Request\Http::isRouted' => ['bool'], + 'Yaf\Request\Http::isXmlHttpRequest' => ['bool'], + 'Yaf\Request\Http::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], + 'Yaf\Request\Http::setBaseUri' => ['bool', 'uri'=>'string'], + 'Yaf\Request\Http::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], + 'Yaf\Request\Http::setDispatched' => ['bool'], + 'Yaf\Request\Http::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], + 'Yaf\Request\Http::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], + 'Yaf\Request\Http::setRequestUri' => ['', 'uri'=>'string'], + 'Yaf\Request\Http::setRouted' => ['Yaf\Request_Abstract|bool'], + 'Yaf\Request\Simple::__clone' => ['void'], + 'Yaf\Request\Simple::__construct' => ['void', 'method'=>'string', 'controller'=>'string', 'action'=>'string', 'params='=>'string'], + 'Yaf\Request\Simple::get' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf\Request\Simple::getActionName' => ['string'], + 'Yaf\Request\Simple::getBaseUri' => ['string'], + 'Yaf\Request\Simple::getControllerName' => ['string'], + 'Yaf\Request\Simple::getCookie' => ['mixed', 'name='=>'string', 'default='=>'string'], + 'Yaf\Request\Simple::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Simple::getException' => ['Yaf\Exception'], + 'Yaf\Request\Simple::getFiles' => ['array', 'name='=>'mixed', 'default='=>'null'], + 'Yaf\Request\Simple::getLanguage' => ['string'], + 'Yaf\Request\Simple::getMethod' => ['string'], + 'Yaf\Request\Simple::getModuleName' => ['string'], + 'Yaf\Request\Simple::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'Yaf\Request\Simple::getParams' => ['array'], + 'Yaf\Request\Simple::getPost' => ['mixed', 'name='=>'string', 'default='=>'string'], + 'Yaf\Request\Simple::getQuery' => ['mixed', 'name='=>'string', 'default='=>'string'], + 'Yaf\Request\Simple::getRequest' => ['mixed', 'name='=>'string', 'default='=>'string'], + 'Yaf\Request\Simple::getRequestUri' => ['string'], + 'Yaf\Request\Simple::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request\Simple::isCli' => ['bool'], + 'Yaf\Request\Simple::isDispatched' => ['bool'], + 'Yaf\Request\Simple::isGet' => ['bool'], + 'Yaf\Request\Simple::isHead' => ['bool'], + 'Yaf\Request\Simple::isOptions' => ['bool'], + 'Yaf\Request\Simple::isPost' => ['bool'], + 'Yaf\Request\Simple::isPut' => ['bool'], + 'Yaf\Request\Simple::isRouted' => ['bool'], + 'Yaf\Request\Simple::isXmlHttpRequest' => ['bool'], + 'Yaf\Request\Simple::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], + 'Yaf\Request\Simple::setBaseUri' => ['bool', 'uri'=>'string'], + 'Yaf\Request\Simple::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], + 'Yaf\Request\Simple::setDispatched' => ['bool'], + 'Yaf\Request\Simple::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], + 'Yaf\Request\Simple::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], + 'Yaf\Request\Simple::setRequestUri' => ['', 'uri'=>'string'], + 'Yaf\Request\Simple::setRouted' => ['Yaf\Request_Abstract|bool'], + 'Yaf\Request_Abstract::getActionName' => ['string'], + 'Yaf\Request_Abstract::getBaseUri' => ['string'], + 'Yaf\Request_Abstract::getControllerName' => ['string'], + 'Yaf\Request_Abstract::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request_Abstract::getException' => ['Yaf\Exception'], + 'Yaf\Request_Abstract::getLanguage' => ['string'], + 'Yaf\Request_Abstract::getMethod' => ['string'], + 'Yaf\Request_Abstract::getModuleName' => ['string'], + 'Yaf\Request_Abstract::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'Yaf\Request_Abstract::getParams' => ['array'], + 'Yaf\Request_Abstract::getRequestUri' => ['string'], + 'Yaf\Request_Abstract::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf\Request_Abstract::isCli' => ['bool'], + 'Yaf\Request_Abstract::isDispatched' => ['bool'], + 'Yaf\Request_Abstract::isGet' => ['bool'], + 'Yaf\Request_Abstract::isHead' => ['bool'], + 'Yaf\Request_Abstract::isOptions' => ['bool'], + 'Yaf\Request_Abstract::isPost' => ['bool'], + 'Yaf\Request_Abstract::isPut' => ['bool'], + 'Yaf\Request_Abstract::isRouted' => ['bool'], + 'Yaf\Request_Abstract::isXmlHttpRequest' => ['bool'], + 'Yaf\Request_Abstract::setActionName' => ['Yaf\Request_Abstract|bool', 'action'=>'string'], + 'Yaf\Request_Abstract::setBaseUri' => ['bool', 'uri'=>'string'], + 'Yaf\Request_Abstract::setControllerName' => ['Yaf\Request_Abstract|bool', 'controller'=>'string'], + 'Yaf\Request_Abstract::setDispatched' => ['bool'], + 'Yaf\Request_Abstract::setModuleName' => ['Yaf\Request_Abstract|bool', 'module'=>'string'], + 'Yaf\Request_Abstract::setParam' => ['Yaf\Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], + 'Yaf\Request_Abstract::setRequestUri' => ['', 'uri'=>'string'], + 'Yaf\Request_Abstract::setRouted' => ['Yaf\Request_Abstract|bool'], + 'Yaf\Response\Cli::__clone' => ['void'], + 'Yaf\Response\Cli::__construct' => ['void'], + 'Yaf\Response\Cli::__destruct' => ['void'], + 'Yaf\Response\Cli::__toString' => ['string'], + 'Yaf\Response\Cli::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Cli::clearBody' => ['bool', 'key='=>'string'], + 'Yaf\Response\Cli::getBody' => ['mixed', 'key='=>'?string'], + 'Yaf\Response\Cli::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Cli::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Http::__clone' => ['void'], + 'Yaf\Response\Http::__construct' => ['void'], + 'Yaf\Response\Http::__destruct' => ['void'], + 'Yaf\Response\Http::__toString' => ['string'], + 'Yaf\Response\Http::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Http::clearBody' => ['bool', 'key='=>'string'], + 'Yaf\Response\Http::clearHeaders' => ['Yaf\Response_Abstract|false', 'name='=>'string'], + 'Yaf\Response\Http::getBody' => ['mixed', 'key='=>'?string'], + 'Yaf\Response\Http::getHeader' => ['mixed', 'name='=>'string'], + 'Yaf\Response\Http::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Http::response' => ['bool'], + 'Yaf\Response\Http::setAllHeaders' => ['bool', 'headers'=>'array'], + 'Yaf\Response\Http::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response\Http::setHeader' => ['bool', 'name'=>'string', 'value'=>'string', 'replace='=>'bool', 'response_code='=>'int'], + 'Yaf\Response\Http::setRedirect' => ['bool', 'url'=>'string'], + 'Yaf\Response_Abstract::__clone' => ['void'], + 'Yaf\Response_Abstract::__construct' => ['void'], + 'Yaf\Response_Abstract::__destruct' => ['void'], + 'Yaf\Response_Abstract::__toString' => ['void'], + 'Yaf\Response_Abstract::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response_Abstract::clearBody' => ['bool', 'key='=>'string'], + 'Yaf\Response_Abstract::getBody' => ['mixed', 'key='=>'?string'], + 'Yaf\Response_Abstract::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Response_Abstract::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf\Route\Map::__construct' => ['void', 'controller_prefer='=>'bool', 'delimiter='=>'string'], + 'Yaf\Route\Map::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route\Map::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route\Regex::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'map='=>'?array', 'verify='=>'?array', 'reverse='=>'string'], + 'Yaf\Route\Regex::addConfig' => ['Yaf\Router|bool', 'config'=>'Yaf\Config_Abstract'], + 'Yaf\Route\Regex::addRoute' => ['Yaf\Router|bool', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], + 'Yaf\Route\Regex::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route\Regex::getCurrentRoute' => ['string'], + 'Yaf\Route\Regex::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], + 'Yaf\Route\Regex::getRoutes' => ['Yaf\Route_Interface[]'], + 'Yaf\Route\Regex::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route\Rewrite::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'verify='=>'?array', 'reverse='=>'string'], + 'Yaf\Route\Rewrite::addConfig' => ['Yaf\Router|bool', 'config'=>'Yaf\Config_Abstract'], + 'Yaf\Route\Rewrite::addRoute' => ['Yaf\Router|bool', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], + 'Yaf\Route\Rewrite::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route\Rewrite::getCurrentRoute' => ['string'], + 'Yaf\Route\Rewrite::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], + 'Yaf\Route\Rewrite::getRoutes' => ['Yaf\Route_Interface[]'], + 'Yaf\Route\Rewrite::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route\Simple::__construct' => ['void', 'module_name'=>'string', 'controller_name'=>'string', 'action_name'=>'string'], + 'Yaf\Route\Simple::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route\Simple::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route\Supervar::__construct' => ['void', 'supervar_name'=>'string'], + 'Yaf\Route\Supervar::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route\Supervar::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route_Interface::__construct' => ['Yaf\Route_Interface'], + 'Yaf\Route_Interface::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route_Interface::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Route_Static::assemble' => ['bool', 'info'=>'array', 'query='=>'?array'], + 'Yaf\Route_Static::match' => ['bool', 'uri'=>'string'], + 'Yaf\Route_Static::route' => ['bool', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Router::__construct' => ['void'], + 'Yaf\Router::addConfig' => ['Yaf\Router|false', 'config'=>'Yaf\Config_Abstract'], + 'Yaf\Router::addRoute' => ['Yaf\Router|false', 'name'=>'string', 'route'=>'Yaf\Route_Interface'], + 'Yaf\Router::getCurrentRoute' => ['string'], + 'Yaf\Router::getRoute' => ['Yaf\Route_Interface', 'name'=>'string'], + 'Yaf\Router::getRoutes' => ['Yaf\Route_Interface[]'], + 'Yaf\Router::route' => ['Yaf\Router|false', 'request'=>'Yaf\Request_Abstract'], + 'Yaf\Session::__clone' => ['void'], + 'Yaf\Session::__construct' => ['void'], + 'Yaf\Session::__get' => ['void', 'name'=>''], + 'Yaf\Session::__isset' => ['void', 'name'=>''], + 'Yaf\Session::__set' => ['void', 'name'=>'', 'value'=>''], + 'Yaf\Session::__sleep' => ['list'], + 'Yaf\Session::__unset' => ['void', 'name'=>''], + 'Yaf\Session::__wakeup' => ['void'], + 'Yaf\Session::count' => ['int'], + 'Yaf\Session::current' => ['mixed'], + 'Yaf\Session::del' => ['Yaf\Session|false', 'name'=>'string'], + 'Yaf\Session::get' => ['mixed', 'name'=>'string'], + 'Yaf\Session::getInstance' => ['Yaf\Session'], + 'Yaf\Session::has' => ['bool', 'name'=>'string'], + 'Yaf\Session::key' => ['int|string'], + 'Yaf\Session::next' => ['void'], + 'Yaf\Session::offsetExists' => ['bool', 'name'=>'mixed'], + 'Yaf\Session::offsetGet' => ['mixed', 'name'=>'mixed'], + 'Yaf\Session::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], + 'Yaf\Session::offsetUnset' => ['void', 'name'=>'mixed'], + 'Yaf\Session::rewind' => ['void'], + 'Yaf\Session::set' => ['Yaf\Session|false', 'name'=>'string', 'value'=>'mixed'], + 'Yaf\Session::start' => ['Yaf\Session'], + 'Yaf\Session::valid' => ['bool'], + 'Yaf\View\Simple::__construct' => ['void', 'template_dir'=>'string', 'options='=>'?array'], + 'Yaf\View\Simple::__get' => ['mixed', 'name='=>'null'], + 'Yaf\View\Simple::__isset' => ['', 'name'=>'string'], + 'Yaf\View\Simple::__set' => ['void', 'name'=>'string', 'value='=>'mixed'], + 'Yaf\View\Simple::assign' => ['Yaf\View\Simple', 'name'=>'array|string', 'value='=>'mixed'], + 'Yaf\View\Simple::assignRef' => ['Yaf\View\Simple', 'name'=>'string', '&value'=>'mixed'], + 'Yaf\View\Simple::clear' => ['Yaf\View\Simple', 'name='=>'string'], + 'Yaf\View\Simple::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'?array'], + 'Yaf\View\Simple::eval' => ['bool|void', 'tpl_str'=>'string', 'vars='=>'?array'], + 'Yaf\View\Simple::getScriptPath' => ['string'], + 'Yaf\View\Simple::render' => ['string|void', 'tpl'=>'string', 'tpl_vars='=>'?array'], + 'Yaf\View\Simple::setScriptPath' => ['Yaf\View\Simple', 'template_dir'=>'string'], + 'Yaf\View_Interface::assign' => ['bool', 'name'=>'array|string', 'value'=>'mixed'], + 'Yaf\View_Interface::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'?array'], + 'Yaf\View_Interface::getScriptPath' => ['string'], + 'Yaf\View_Interface::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'?array'], + 'Yaf\View_Interface::setScriptPath' => ['void', 'template_dir'=>'string'], + 'Yaf_Action_Abstract::__clone' => ['void'], + 'Yaf_Action_Abstract::__construct' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract', 'view'=>'Yaf_View_Interface', 'invokeArgs='=>'?array'], + 'Yaf_Action_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf_Action_Abstract::execute' => ['mixed', 'arg='=>'mixed', '...args='=>'mixed'], + 'Yaf_Action_Abstract::forward' => ['bool', 'module'=>'string', 'controller='=>'string', 'action='=>'string', 'parameters='=>'?array'], + 'Yaf_Action_Abstract::getController' => ['Yaf_Controller_Abstract'], + 'Yaf_Action_Abstract::getControllerName' => ['string'], + 'Yaf_Action_Abstract::getInvokeArg' => ['mixed|null', 'name'=>'string'], + 'Yaf_Action_Abstract::getInvokeArgs' => ['array'], + 'Yaf_Action_Abstract::getModuleName' => ['string'], + 'Yaf_Action_Abstract::getRequest' => ['Yaf_Request_Abstract'], + 'Yaf_Action_Abstract::getResponse' => ['Yaf_Response_Abstract'], + 'Yaf_Action_Abstract::getView' => ['Yaf_View_Interface'], + 'Yaf_Action_Abstract::getViewpath' => ['string'], + 'Yaf_Action_Abstract::init' => [''], + 'Yaf_Action_Abstract::initView' => ['Yaf_Response_Abstract', 'options='=>'?array'], + 'Yaf_Action_Abstract::redirect' => ['bool', 'url'=>'string'], + 'Yaf_Action_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'?array'], + 'Yaf_Action_Abstract::setViewpath' => ['bool', 'view_directory'=>'string'], + 'Yaf_Application::__clone' => ['void'], + 'Yaf_Application::__construct' => ['void', 'config'=>'mixed', 'envrion='=>'string'], + 'Yaf_Application::__destruct' => ['void'], + 'Yaf_Application::__sleep' => ['list'], + 'Yaf_Application::__wakeup' => ['void'], + 'Yaf_Application::app' => ['?Yaf_Application'], + 'Yaf_Application::bootstrap' => ['Yaf_Application', 'bootstrap='=>'Yaf_Bootstrap_Abstract'], + 'Yaf_Application::clearLastError' => ['Yaf_Application'], + 'Yaf_Application::environ' => ['string'], + 'Yaf_Application::execute' => ['void', 'entry'=>'callable', '...args'=>'string'], + 'Yaf_Application::getAppDirectory' => ['Yaf_Application'], + 'Yaf_Application::getConfig' => ['Yaf_Config_Abstract'], + 'Yaf_Application::getDispatcher' => ['Yaf_Dispatcher'], + 'Yaf_Application::getLastErrorMsg' => ['string'], + 'Yaf_Application::getLastErrorNo' => ['int'], + 'Yaf_Application::getModules' => ['array'], + 'Yaf_Application::run' => ['void'], + 'Yaf_Application::setAppDirectory' => ['Yaf_Application', 'directory'=>'string'], + 'Yaf_Config_Abstract::__construct' => ['void'], + 'Yaf_Config_Abstract::get' => ['mixed', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_Config_Abstract::readonly' => ['bool'], + 'Yaf_Config_Abstract::set' => ['Yaf_Config_Abstract'], + 'Yaf_Config_Abstract::toArray' => ['array'], + 'Yaf_Config_Ini::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], + 'Yaf_Config_Ini::__get' => ['void', 'name='=>'string'], + 'Yaf_Config_Ini::__isset' => ['void', 'name'=>'string'], + 'Yaf_Config_Ini::__set' => ['void', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_Config_Ini::count' => ['void'], + 'Yaf_Config_Ini::current' => ['void'], + 'Yaf_Config_Ini::get' => ['mixed', 'name='=>'mixed'], + 'Yaf_Config_Ini::key' => ['void'], + 'Yaf_Config_Ini::next' => ['void'], + 'Yaf_Config_Ini::offsetExists' => ['void', 'name'=>'string'], + 'Yaf_Config_Ini::offsetGet' => ['void', 'name'=>'string'], + 'Yaf_Config_Ini::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], + 'Yaf_Config_Ini::offsetUnset' => ['void', 'name'=>'string'], + 'Yaf_Config_Ini::readonly' => ['void'], + 'Yaf_Config_Ini::rewind' => ['void'], + 'Yaf_Config_Ini::set' => ['Yaf_Config_Abstract', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_Config_Ini::toArray' => ['array'], + 'Yaf_Config_Ini::valid' => ['void'], + 'Yaf_Config_Simple::__construct' => ['void', 'config_file'=>'string', 'section='=>'string'], + 'Yaf_Config_Simple::__get' => ['void', 'name='=>'string'], + 'Yaf_Config_Simple::__isset' => ['void', 'name'=>'string'], + 'Yaf_Config_Simple::__set' => ['void', 'name'=>'string', 'value'=>'string'], + 'Yaf_Config_Simple::count' => ['void'], + 'Yaf_Config_Simple::current' => ['void'], + 'Yaf_Config_Simple::get' => ['mixed', 'name='=>'mixed'], + 'Yaf_Config_Simple::key' => ['void'], + 'Yaf_Config_Simple::next' => ['void'], + 'Yaf_Config_Simple::offsetExists' => ['void', 'name'=>'string'], + 'Yaf_Config_Simple::offsetGet' => ['void', 'name'=>'string'], + 'Yaf_Config_Simple::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], + 'Yaf_Config_Simple::offsetUnset' => ['void', 'name'=>'string'], + 'Yaf_Config_Simple::readonly' => ['void'], + 'Yaf_Config_Simple::rewind' => ['void'], + 'Yaf_Config_Simple::set' => ['Yaf_Config_Abstract', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_Config_Simple::toArray' => ['array'], + 'Yaf_Config_Simple::valid' => ['void'], + 'Yaf_Controller_Abstract::__clone' => ['void'], + 'Yaf_Controller_Abstract::__construct' => ['void'], + 'Yaf_Controller_Abstract::display' => ['bool', 'tpl'=>'string', 'parameters='=>'array'], + 'Yaf_Controller_Abstract::forward' => ['void', 'action'=>'string', 'parameters='=>'array'], + 'Yaf_Controller_Abstract::forward\'1' => ['void', 'controller'=>'string', 'action'=>'string', 'parameters='=>'array'], + 'Yaf_Controller_Abstract::forward\'2' => ['void', 'module'=>'string', 'controller'=>'string', 'action'=>'string', 'parameters='=>'array'], + 'Yaf_Controller_Abstract::getInvokeArg' => ['void', 'name'=>'string'], + 'Yaf_Controller_Abstract::getInvokeArgs' => ['void'], + 'Yaf_Controller_Abstract::getModuleName' => ['string'], + 'Yaf_Controller_Abstract::getName' => ['string'], + 'Yaf_Controller_Abstract::getRequest' => ['Yaf_Request_Abstract'], + 'Yaf_Controller_Abstract::getResponse' => ['Yaf_Response_Abstract'], + 'Yaf_Controller_Abstract::getView' => ['Yaf_View_Interface'], + 'Yaf_Controller_Abstract::getViewpath' => ['void'], + 'Yaf_Controller_Abstract::init' => ['void'], + 'Yaf_Controller_Abstract::initView' => ['void', 'options='=>'array'], + 'Yaf_Controller_Abstract::redirect' => ['bool', 'url'=>'string'], + 'Yaf_Controller_Abstract::render' => ['string', 'tpl'=>'string', 'parameters='=>'array'], + 'Yaf_Controller_Abstract::setViewpath' => ['void', 'view_directory'=>'string'], + 'Yaf_Dispatcher::__clone' => ['void'], + 'Yaf_Dispatcher::__construct' => ['void'], + 'Yaf_Dispatcher::__sleep' => ['list'], + 'Yaf_Dispatcher::__wakeup' => ['void'], + 'Yaf_Dispatcher::autoRender' => ['Yaf_Dispatcher', 'flag='=>'bool'], + 'Yaf_Dispatcher::catchException' => ['Yaf_Dispatcher', 'flag='=>'bool'], + 'Yaf_Dispatcher::disableView' => ['bool'], + 'Yaf_Dispatcher::dispatch' => ['Yaf_Response_Abstract', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Dispatcher::enableView' => ['Yaf_Dispatcher'], + 'Yaf_Dispatcher::flushInstantly' => ['Yaf_Dispatcher', 'flag='=>'bool'], + 'Yaf_Dispatcher::getApplication' => ['Yaf_Application'], + 'Yaf_Dispatcher::getDefaultAction' => ['string'], + 'Yaf_Dispatcher::getDefaultController' => ['string'], + 'Yaf_Dispatcher::getDefaultModule' => ['string'], + 'Yaf_Dispatcher::getInstance' => ['Yaf_Dispatcher'], + 'Yaf_Dispatcher::getRequest' => ['Yaf_Request_Abstract'], + 'Yaf_Dispatcher::getRouter' => ['Yaf_Router'], + 'Yaf_Dispatcher::initView' => ['Yaf_View_Interface', 'templates_dir'=>'string', 'options='=>'array'], + 'Yaf_Dispatcher::registerPlugin' => ['Yaf_Dispatcher', 'plugin'=>'Yaf_Plugin_Abstract'], + 'Yaf_Dispatcher::returnResponse' => ['Yaf_Dispatcher', 'flag'=>'bool'], + 'Yaf_Dispatcher::setDefaultAction' => ['Yaf_Dispatcher', 'action'=>'string'], + 'Yaf_Dispatcher::setDefaultController' => ['Yaf_Dispatcher', 'controller'=>'string'], + 'Yaf_Dispatcher::setDefaultModule' => ['Yaf_Dispatcher', 'module'=>'string'], + 'Yaf_Dispatcher::setErrorHandler' => ['Yaf_Dispatcher', 'callback'=>'callable', 'error_types'=>'int'], + 'Yaf_Dispatcher::setRequest' => ['Yaf_Dispatcher', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Dispatcher::setView' => ['Yaf_Dispatcher', 'view'=>'Yaf_View_Interface'], + 'Yaf_Dispatcher::throwException' => ['Yaf_Dispatcher', 'flag='=>'bool'], + 'Yaf_Exception::__construct' => ['void'], + 'Yaf_Exception::getPrevious' => ['void'], + 'Yaf_Loader::__clone' => ['void'], + 'Yaf_Loader::__construct' => ['void'], + 'Yaf_Loader::__sleep' => ['list'], + 'Yaf_Loader::__wakeup' => ['void'], + 'Yaf_Loader::autoload' => ['void'], + 'Yaf_Loader::clearLocalNamespace' => ['void'], + 'Yaf_Loader::getInstance' => ['Yaf_Loader'], + 'Yaf_Loader::getLibraryPath' => ['Yaf_Loader', 'is_global='=>'bool'], + 'Yaf_Loader::getLocalNamespace' => ['void'], + 'Yaf_Loader::getNamespacePath' => ['string', 'namespaces'=>'string'], + 'Yaf_Loader::import' => ['bool'], + 'Yaf_Loader::isLocalName' => ['bool'], + 'Yaf_Loader::registerLocalNamespace' => ['void', 'prefix'=>'mixed'], + 'Yaf_Loader::registerNamespace' => ['bool', 'namespaces'=>'string|array', 'path='=>'string'], + 'Yaf_Loader::setLibraryPath' => ['Yaf_Loader', 'directory'=>'string', 'is_global='=>'bool'], + 'Yaf_Plugin_Abstract::dispatchLoopShutdown' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::dispatchLoopStartup' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::postDispatch' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::preDispatch' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::preResponse' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::routerShutdown' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Plugin_Abstract::routerStartup' => ['void', 'request'=>'Yaf_Request_Abstract', 'response'=>'Yaf_Response_Abstract'], + 'Yaf_Registry::__clone' => ['void'], + 'Yaf_Registry::__construct' => ['void'], + 'Yaf_Registry::del' => ['void', 'name'=>'string'], + 'Yaf_Registry::get' => ['mixed', 'name'=>'string'], + 'Yaf_Registry::has' => ['bool', 'name'=>'string'], + 'Yaf_Registry::set' => ['bool', 'name'=>'string', 'value'=>'string'], + 'Yaf_Request_Abstract::clearParams' => ['bool'], + 'Yaf_Request_Abstract::getActionName' => ['void'], + 'Yaf_Request_Abstract::getBaseUri' => ['void'], + 'Yaf_Request_Abstract::getControllerName' => ['void'], + 'Yaf_Request_Abstract::getEnv' => ['void', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Abstract::getException' => ['void'], + 'Yaf_Request_Abstract::getLanguage' => ['void'], + 'Yaf_Request_Abstract::getMethod' => ['void'], + 'Yaf_Request_Abstract::getModuleName' => ['void'], + 'Yaf_Request_Abstract::getParam' => ['void', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Abstract::getParams' => ['void'], + 'Yaf_Request_Abstract::getRequestUri' => ['void'], + 'Yaf_Request_Abstract::getServer' => ['void', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Abstract::isCli' => ['void'], + 'Yaf_Request_Abstract::isDispatched' => ['void'], + 'Yaf_Request_Abstract::isGet' => ['void'], + 'Yaf_Request_Abstract::isHead' => ['void'], + 'Yaf_Request_Abstract::isOptions' => ['void'], + 'Yaf_Request_Abstract::isPost' => ['void'], + 'Yaf_Request_Abstract::isPut' => ['void'], + 'Yaf_Request_Abstract::isRouted' => ['void'], + 'Yaf_Request_Abstract::isXmlHttpRequest' => ['void'], + 'Yaf_Request_Abstract::setActionName' => ['void', 'action'=>'string'], + 'Yaf_Request_Abstract::setBaseUri' => ['bool', 'uir'=>'string'], + 'Yaf_Request_Abstract::setControllerName' => ['void', 'controller'=>'string'], + 'Yaf_Request_Abstract::setDispatched' => ['void'], + 'Yaf_Request_Abstract::setModuleName' => ['void', 'module'=>'string'], + 'Yaf_Request_Abstract::setParam' => ['void', 'name'=>'string', 'value='=>'string'], + 'Yaf_Request_Abstract::setRequestUri' => ['void', 'uir'=>'string'], + 'Yaf_Request_Abstract::setRouted' => ['void', 'flag='=>'string'], + 'Yaf_Request_Http::__clone' => ['void'], + 'Yaf_Request_Http::__construct' => ['void'], + 'Yaf_Request_Http::get' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Http::getActionName' => ['string'], + 'Yaf_Request_Http::getBaseUri' => ['string'], + 'Yaf_Request_Http::getControllerName' => ['string'], + 'Yaf_Request_Http::getCookie' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Http::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf_Request_Http::getException' => ['Yaf_Exception'], + 'Yaf_Request_Http::getFiles' => ['void'], + 'Yaf_Request_Http::getLanguage' => ['string'], + 'Yaf_Request_Http::getMethod' => ['string'], + 'Yaf_Request_Http::getModuleName' => ['string'], + 'Yaf_Request_Http::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'Yaf_Request_Http::getParams' => ['array'], + 'Yaf_Request_Http::getPost' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Http::getQuery' => ['mixed', 'name'=>'string', 'default='=>'string'], + 'Yaf_Request_Http::getRaw' => ['mixed'], + 'Yaf_Request_Http::getRequest' => ['void'], + 'Yaf_Request_Http::getRequestUri' => ['string'], + 'Yaf_Request_Http::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf_Request_Http::isCli' => ['bool'], + 'Yaf_Request_Http::isDispatched' => ['bool'], + 'Yaf_Request_Http::isGet' => ['bool'], + 'Yaf_Request_Http::isHead' => ['bool'], + 'Yaf_Request_Http::isOptions' => ['bool'], + 'Yaf_Request_Http::isPost' => ['bool'], + 'Yaf_Request_Http::isPut' => ['bool'], + 'Yaf_Request_Http::isRouted' => ['bool'], + 'Yaf_Request_Http::isXmlHttpRequest' => ['bool'], + 'Yaf_Request_Http::setActionName' => ['Yaf_Request_Abstract|bool', 'action'=>'string'], + 'Yaf_Request_Http::setBaseUri' => ['bool', 'uri'=>'string'], + 'Yaf_Request_Http::setControllerName' => ['Yaf_Request_Abstract|bool', 'controller'=>'string'], + 'Yaf_Request_Http::setDispatched' => ['bool'], + 'Yaf_Request_Http::setModuleName' => ['Yaf_Request_Abstract|bool', 'module'=>'string'], + 'Yaf_Request_Http::setParam' => ['Yaf_Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], + 'Yaf_Request_Http::setRequestUri' => ['', 'uri'=>'string'], + 'Yaf_Request_Http::setRouted' => ['Yaf_Request_Abstract|bool'], + 'Yaf_Request_Simple::__clone' => ['void'], + 'Yaf_Request_Simple::__construct' => ['void'], + 'Yaf_Request_Simple::get' => ['void'], + 'Yaf_Request_Simple::getActionName' => ['string'], + 'Yaf_Request_Simple::getBaseUri' => ['string'], + 'Yaf_Request_Simple::getControllerName' => ['string'], + 'Yaf_Request_Simple::getCookie' => ['void'], + 'Yaf_Request_Simple::getEnv' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf_Request_Simple::getException' => ['Yaf_Exception'], + 'Yaf_Request_Simple::getFiles' => ['void'], + 'Yaf_Request_Simple::getLanguage' => ['string'], + 'Yaf_Request_Simple::getMethod' => ['string'], + 'Yaf_Request_Simple::getModuleName' => ['string'], + 'Yaf_Request_Simple::getParam' => ['mixed', 'name'=>'string', 'default='=>'mixed'], + 'Yaf_Request_Simple::getParams' => ['array'], + 'Yaf_Request_Simple::getPost' => ['void'], + 'Yaf_Request_Simple::getQuery' => ['void'], + 'Yaf_Request_Simple::getRequest' => ['void'], + 'Yaf_Request_Simple::getRequestUri' => ['string'], + 'Yaf_Request_Simple::getServer' => ['mixed', 'name='=>'string', 'default='=>'mixed'], + 'Yaf_Request_Simple::isCli' => ['bool'], + 'Yaf_Request_Simple::isDispatched' => ['bool'], + 'Yaf_Request_Simple::isGet' => ['bool'], + 'Yaf_Request_Simple::isHead' => ['bool'], + 'Yaf_Request_Simple::isOptions' => ['bool'], + 'Yaf_Request_Simple::isPost' => ['bool'], + 'Yaf_Request_Simple::isPut' => ['bool'], + 'Yaf_Request_Simple::isRouted' => ['bool'], + 'Yaf_Request_Simple::isXmlHttpRequest' => ['void'], + 'Yaf_Request_Simple::setActionName' => ['Yaf_Request_Abstract|bool', 'action'=>'string'], + 'Yaf_Request_Simple::setBaseUri' => ['bool', 'uri'=>'string'], + 'Yaf_Request_Simple::setControllerName' => ['Yaf_Request_Abstract|bool', 'controller'=>'string'], + 'Yaf_Request_Simple::setDispatched' => ['bool'], + 'Yaf_Request_Simple::setModuleName' => ['Yaf_Request_Abstract|bool', 'module'=>'string'], + 'Yaf_Request_Simple::setParam' => ['Yaf_Request_Abstract|bool', 'name'=>'array|string', 'value='=>'string'], + 'Yaf_Request_Simple::setRequestUri' => ['', 'uri'=>'string'], + 'Yaf_Request_Simple::setRouted' => ['Yaf_Request_Abstract|bool'], + 'Yaf_Response_Abstract::__clone' => ['void'], + 'Yaf_Response_Abstract::__construct' => ['void'], + 'Yaf_Response_Abstract::__destruct' => ['void'], + 'Yaf_Response_Abstract::__toString' => ['string'], + 'Yaf_Response_Abstract::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Abstract::clearBody' => ['bool', 'key='=>'string'], + 'Yaf_Response_Abstract::clearHeaders' => ['void'], + 'Yaf_Response_Abstract::getBody' => ['mixed', 'key='=>'string'], + 'Yaf_Response_Abstract::getHeader' => ['void'], + 'Yaf_Response_Abstract::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Abstract::response' => ['void'], + 'Yaf_Response_Abstract::setAllHeaders' => ['void'], + 'Yaf_Response_Abstract::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Abstract::setHeader' => ['void'], + 'Yaf_Response_Abstract::setRedirect' => ['void'], + 'Yaf_Response_Cli::__clone' => ['void'], + 'Yaf_Response_Cli::__construct' => ['void'], + 'Yaf_Response_Cli::__destruct' => ['void'], + 'Yaf_Response_Cli::__toString' => ['string'], + 'Yaf_Response_Cli::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Cli::clearBody' => ['bool', 'key='=>'string'], + 'Yaf_Response_Cli::getBody' => ['mixed', 'key='=>'?string'], + 'Yaf_Response_Cli::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Cli::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Http::__clone' => ['void'], + 'Yaf_Response_Http::__construct' => ['void'], + 'Yaf_Response_Http::__destruct' => ['void'], + 'Yaf_Response_Http::__toString' => ['string'], + 'Yaf_Response_Http::appendBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Http::clearBody' => ['bool', 'key='=>'string'], + 'Yaf_Response_Http::clearHeaders' => ['Yaf_Response_Abstract|false', 'name='=>'string'], + 'Yaf_Response_Http::getBody' => ['mixed', 'key='=>'?string'], + 'Yaf_Response_Http::getHeader' => ['mixed', 'name='=>'string'], + 'Yaf_Response_Http::prependBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Http::response' => ['bool'], + 'Yaf_Response_Http::setAllHeaders' => ['bool', 'headers'=>'array'], + 'Yaf_Response_Http::setBody' => ['bool', 'content'=>'string', 'key='=>'string'], + 'Yaf_Response_Http::setHeader' => ['bool', 'name'=>'string', 'value'=>'string', 'replace='=>'bool', 'response_code='=>'int'], + 'Yaf_Response_Http::setRedirect' => ['bool', 'url'=>'string'], + 'Yaf_Route_Interface::__construct' => ['void'], + 'Yaf_Route_Interface::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Interface::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Map::__construct' => ['void', 'controller_prefer='=>'string', 'delimiter='=>'string'], + 'Yaf_Route_Map::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Map::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Regex::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'map='=>'array', 'verify='=>'array', 'reverse='=>'string'], + 'Yaf_Route_Regex::addConfig' => ['Yaf_Router|bool', 'config'=>'Yaf_Config_Abstract'], + 'Yaf_Route_Regex::addRoute' => ['Yaf_Router|bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], + 'Yaf_Route_Regex::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Regex::getCurrentRoute' => ['string'], + 'Yaf_Route_Regex::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], + 'Yaf_Route_Regex::getRoutes' => ['Yaf_Route_Interface[]'], + 'Yaf_Route_Regex::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Rewrite::__construct' => ['void', 'match'=>'string', 'route'=>'array', 'verify='=>'array'], + 'Yaf_Route_Rewrite::addConfig' => ['Yaf_Router|bool', 'config'=>'Yaf_Config_Abstract'], + 'Yaf_Route_Rewrite::addRoute' => ['Yaf_Router|bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], + 'Yaf_Route_Rewrite::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Rewrite::getCurrentRoute' => ['string'], + 'Yaf_Route_Rewrite::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], + 'Yaf_Route_Rewrite::getRoutes' => ['Yaf_Route_Interface[]'], + 'Yaf_Route_Rewrite::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Simple::__construct' => ['void', 'module_name'=>'string', 'controller_name'=>'string', 'action_name'=>'string'], + 'Yaf_Route_Simple::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Simple::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Static::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Static::match' => ['void', 'uri'=>'string'], + 'Yaf_Route_Static::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Route_Supervar::__construct' => ['void', 'supervar_name'=>'string'], + 'Yaf_Route_Supervar::assemble' => ['string', 'info'=>'array', 'query='=>'array'], + 'Yaf_Route_Supervar::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Router::__construct' => ['void'], + 'Yaf_Router::addConfig' => ['bool', 'config'=>'Yaf_Config_Abstract'], + 'Yaf_Router::addRoute' => ['bool', 'name'=>'string', 'route'=>'Yaf_Route_Interface'], + 'Yaf_Router::getCurrentRoute' => ['string'], + 'Yaf_Router::getRoute' => ['Yaf_Route_Interface', 'name'=>'string'], + 'Yaf_Router::getRoutes' => ['mixed'], + 'Yaf_Router::route' => ['bool', 'request'=>'Yaf_Request_Abstract'], + 'Yaf_Session::__clone' => ['void'], + 'Yaf_Session::__construct' => ['void'], + 'Yaf_Session::__get' => ['void', 'name'=>'string'], + 'Yaf_Session::__isset' => ['void', 'name'=>'string'], + 'Yaf_Session::__set' => ['void', 'name'=>'string', 'value'=>'string'], + 'Yaf_Session::__sleep' => ['list'], + 'Yaf_Session::__unset' => ['void', 'name'=>'string'], + 'Yaf_Session::__wakeup' => ['void'], + 'Yaf_Session::count' => ['void'], + 'Yaf_Session::current' => ['void'], + 'Yaf_Session::del' => ['void', 'name'=>'string'], + 'Yaf_Session::get' => ['mixed', 'name'=>'string'], + 'Yaf_Session::getInstance' => ['void'], + 'Yaf_Session::has' => ['void', 'name'=>'string'], + 'Yaf_Session::key' => ['void'], + 'Yaf_Session::next' => ['void'], + 'Yaf_Session::offsetExists' => ['void', 'name'=>'string'], + 'Yaf_Session::offsetGet' => ['void', 'name'=>'string'], + 'Yaf_Session::offsetSet' => ['void', 'name'=>'string', 'value'=>'string'], + 'Yaf_Session::offsetUnset' => ['void', 'name'=>'string'], + 'Yaf_Session::rewind' => ['void'], + 'Yaf_Session::set' => ['Yaf_Session|bool', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_Session::start' => ['void'], + 'Yaf_Session::valid' => ['void'], + 'Yaf_View_Interface::assign' => ['bool', 'name'=>'string', 'value='=>'string'], + 'Yaf_View_Interface::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'array'], + 'Yaf_View_Interface::getScriptPath' => ['string'], + 'Yaf_View_Interface::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'array'], + 'Yaf_View_Interface::setScriptPath' => ['void', 'template_dir'=>'string'], + 'Yaf_View_Simple::__construct' => ['void', 'tempalte_dir'=>'string', 'options='=>'array'], + 'Yaf_View_Simple::__get' => ['void', 'name='=>'string'], + 'Yaf_View_Simple::__isset' => ['void', 'name'=>'string'], + 'Yaf_View_Simple::__set' => ['void', 'name'=>'string', 'value'=>'mixed'], + 'Yaf_View_Simple::assign' => ['bool', 'name'=>'string', 'value='=>'mixed'], + 'Yaf_View_Simple::assignRef' => ['bool', 'name'=>'string', '&rw_value'=>'mixed'], + 'Yaf_View_Simple::clear' => ['bool', 'name='=>'string'], + 'Yaf_View_Simple::display' => ['bool', 'tpl'=>'string', 'tpl_vars='=>'array'], + 'Yaf_View_Simple::eval' => ['string', 'tpl_content'=>'string', 'tpl_vars='=>'array'], + 'Yaf_View_Simple::getScriptPath' => ['string'], + 'Yaf_View_Simple::render' => ['string', 'tpl'=>'string', 'tpl_vars='=>'array'], + 'Yaf_View_Simple::setScriptPath' => ['bool', 'template_dir'=>'string'], + 'Yar_Client::__call' => ['void', 'method'=>'string', 'parameters'=>'array'], + 'Yar_Client::__construct' => ['void', 'url'=>'string'], + 'Yar_Client::setOpt' => ['Yar_Client|false', 'name'=>'int', 'value'=>'mixed'], + 'Yar_Client_Exception::__clone' => ['void'], + 'Yar_Client_Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'Yar_Client_Exception::__toString' => ['string'], + 'Yar_Client_Exception::__wakeup' => ['void'], + 'Yar_Client_Exception::getCode' => ['int'], + 'Yar_Client_Exception::getFile' => ['string'], + 'Yar_Client_Exception::getLine' => ['int'], + 'Yar_Client_Exception::getMessage' => ['string'], + 'Yar_Client_Exception::getPrevious' => ['?Exception|?Throwable'], + 'Yar_Client_Exception::getTrace' => ['list\',args?:array}>'], + 'Yar_Client_Exception::getTraceAsString' => ['string'], + 'Yar_Client_Exception::getType' => ['string'], + 'Yar_Concurrent_Client::call' => ['int', 'uri'=>'string', 'method'=>'string', 'parameters'=>'array', 'callback='=>'callable'], + 'Yar_Concurrent_Client::loop' => ['bool', 'callback='=>'callable', 'error_callback='=>'callable'], + 'Yar_Concurrent_Client::reset' => ['bool'], + 'Yar_Server::__construct' => ['void', 'object'=>'Object'], + 'Yar_Server::handle' => ['bool'], + 'Yar_Server_Exception::__clone' => ['void'], + 'Yar_Server_Exception::__construct' => ['void', 'message='=>'string', 'code='=>'int', 'previous='=>'?Exception|?Throwable'], + 'Yar_Server_Exception::__toString' => ['string'], + 'Yar_Server_Exception::__wakeup' => ['void'], + 'Yar_Server_Exception::getCode' => ['int'], + 'Yar_Server_Exception::getFile' => ['string'], + 'Yar_Server_Exception::getLine' => ['int'], + 'Yar_Server_Exception::getMessage' => ['string'], + 'Yar_Server_Exception::getPrevious' => ['?Exception|?Throwable'], + 'Yar_Server_Exception::getTrace' => ['list\',args?:array}>'], + 'Yar_Server_Exception::getTraceAsString' => ['string'], + 'Yar_Server_Exception::getType' => ['string'], + 'ZMQ::__construct' => ['void'], + 'ZMQContext::__construct' => ['void', 'io_threads='=>'int', 'is_persistent='=>'bool'], + 'ZMQContext::getOpt' => ['int|string', 'key'=>'string'], + 'ZMQContext::getSocket' => ['ZMQSocket', 'type'=>'int', 'persistent_id='=>'string', 'on_new_socket='=>'callable'], + 'ZMQContext::isPersistent' => ['bool'], + 'ZMQContext::setOpt' => ['ZMQContext', 'key'=>'int', 'value'=>'mixed'], + 'ZMQDevice::__construct' => ['void', 'frontend'=>'ZMQSocket', 'backend'=>'ZMQSocket', 'listener='=>'ZMQSocket'], + 'ZMQDevice::getIdleTimeout' => ['ZMQDevice'], + 'ZMQDevice::getTimerTimeout' => ['ZMQDevice'], + 'ZMQDevice::run' => ['void'], + 'ZMQDevice::setIdleCallback' => ['ZMQDevice', 'cb_func'=>'callable', 'timeout'=>'int', 'user_data='=>'mixed'], + 'ZMQDevice::setIdleTimeout' => ['ZMQDevice', 'timeout'=>'int'], + 'ZMQDevice::setTimerCallback' => ['ZMQDevice', 'cb_func'=>'callable', 'timeout'=>'int', 'user_data='=>'mixed'], + 'ZMQDevice::setTimerTimeout' => ['ZMQDevice', 'timeout'=>'int'], + 'ZMQPoll::add' => ['string', 'entry'=>'mixed', 'type'=>'int'], + 'ZMQPoll::clear' => ['ZMQPoll'], + 'ZMQPoll::count' => ['int'], + 'ZMQPoll::getLastErrors' => ['array'], + 'ZMQPoll::poll' => ['int', '&w_readable'=>'array', '&w_writable'=>'array', 'timeout='=>'int'], + 'ZMQPoll::remove' => ['bool', 'item'=>'mixed'], + 'ZMQSocket::__construct' => ['void', 'context'=>'ZMQContext', 'type'=>'int', 'persistent_id='=>'string', 'on_new_socket='=>'callable'], + 'ZMQSocket::bind' => ['ZMQSocket', 'dsn'=>'string', 'force='=>'bool'], + 'ZMQSocket::connect' => ['ZMQSocket', 'dsn'=>'string', 'force='=>'bool'], + 'ZMQSocket::disconnect' => ['ZMQSocket', 'dsn'=>'string'], + 'ZMQSocket::getEndpoints' => ['array'], + 'ZMQSocket::getPersistentId' => ['?string'], + 'ZMQSocket::getSockOpt' => ['int|string', 'key'=>'string'], + 'ZMQSocket::getSocketType' => ['int'], + 'ZMQSocket::isPersistent' => ['bool'], + 'ZMQSocket::recv' => ['string', 'mode='=>'int'], + 'ZMQSocket::recvMulti' => ['string[]', 'mode='=>'int'], + 'ZMQSocket::send' => ['ZMQSocket', 'message'=>'array', 'mode='=>'int'], + 'ZMQSocket::send\'1' => ['ZMQSocket', 'message'=>'string', 'mode='=>'int'], + 'ZMQSocket::sendmulti' => ['ZMQSocket', 'message'=>'array', 'mode='=>'int'], + 'ZMQSocket::setSockOpt' => ['ZMQSocket', 'key'=>'int', 'value'=>'mixed'], + 'ZMQSocket::unbind' => ['ZMQSocket', 'dsn'=>'string'], + 'ZendAPI_Job::ZendAPI_Job' => ['Job', 'script'=>'script'], + 'ZendAPI_Job::addJobToQueue' => ['int', 'jobqueue_url'=>'string', 'password'=>'string'], + 'ZendAPI_Job::getApplicationID' => [''], + 'ZendAPI_Job::getEndTime' => [''], + 'ZendAPI_Job::getGlobalVariables' => [''], + 'ZendAPI_Job::getHost' => [''], + 'ZendAPI_Job::getID' => [''], + 'ZendAPI_Job::getInterval' => [''], + 'ZendAPI_Job::getJobDependency' => [''], + 'ZendAPI_Job::getJobName' => [''], + 'ZendAPI_Job::getJobPriority' => [''], + 'ZendAPI_Job::getJobStatus' => ['int'], + 'ZendAPI_Job::getLastPerformedStatus' => ['int'], + 'ZendAPI_Job::getOutput' => ['An'], + 'ZendAPI_Job::getPreserved' => [''], + 'ZendAPI_Job::getProperties' => ['array'], + 'ZendAPI_Job::getScheduledTime' => [''], + 'ZendAPI_Job::getScript' => [''], + 'ZendAPI_Job::getTimeToNextRepeat' => ['int'], + 'ZendAPI_Job::getUserVariables' => [''], + 'ZendAPI_Job::setApplicationID' => ['', 'app_id'=>''], + 'ZendAPI_Job::setGlobalVariables' => ['', 'vars'=>''], + 'ZendAPI_Job::setJobDependency' => ['', 'job_id'=>''], + 'ZendAPI_Job::setJobName' => ['', 'name'=>''], + 'ZendAPI_Job::setJobPriority' => ['', 'priority'=>'int'], + 'ZendAPI_Job::setPreserved' => ['', 'preserved'=>''], + 'ZendAPI_Job::setRecurrenceData' => ['', 'interval'=>'', 'end_time='=>'mixed'], + 'ZendAPI_Job::setScheduledTime' => ['', 'timestamp'=>''], + 'ZendAPI_Job::setScript' => ['', 'script'=>''], + 'ZendAPI_Job::setUserVariables' => ['', 'vars'=>''], + 'ZendAPI_Queue::addJob' => ['int', '&job'=>'Job'], + 'ZendAPI_Queue::getAllApplicationIDs' => ['array'], + 'ZendAPI_Queue::getAllhosts' => ['array'], + 'ZendAPI_Queue::getHistoricJobs' => ['array', 'status'=>'int', 'start_time'=>'', 'end_time'=>'', 'index'=>'int', 'count'=>'int', '&total'=>'int'], + 'ZendAPI_Queue::getJob' => ['Job', 'job_id'=>'int'], + 'ZendAPI_Queue::getJobsInQueue' => ['array', 'filter_options='=>'array', 'max_jobs='=>'int', 'with_globals_and_output='=>'bool'], + 'ZendAPI_Queue::getLastError' => ['string'], + 'ZendAPI_Queue::getNumOfJobsInQueue' => ['int', 'filter_options='=>'array'], + 'ZendAPI_Queue::getStatistics' => ['array'], + 'ZendAPI_Queue::isScriptExists' => ['bool', 'path'=>'string'], + 'ZendAPI_Queue::isSuspend' => ['bool'], + 'ZendAPI_Queue::login' => ['bool', 'password'=>'string', 'application_id='=>'int'], + 'ZendAPI_Queue::removeJob' => ['bool', 'job_id'=>'array|int'], + 'ZendAPI_Queue::requeueJob' => ['bool', 'job'=>'Job'], + 'ZendAPI_Queue::resumeJob' => ['bool', 'job_id'=>'array|int'], + 'ZendAPI_Queue::resumeQueue' => ['bool'], + 'ZendAPI_Queue::setMaxHistoryTime' => ['bool'], + 'ZendAPI_Queue::suspendJob' => ['bool', 'job_id'=>'array|int'], + 'ZendAPI_Queue::suspendQueue' => ['bool'], + 'ZendAPI_Queue::updateJob' => ['int', '&job'=>'Job'], + 'ZendAPI_Queue::zendapi_queue' => ['ZendAPI_Queue', 'queue_url'=>'string'], + 'ZipArchive::addEmptyDir' => ['bool', 'dirname'=>'string'], + 'ZipArchive::addFile' => ['bool', 'filepath'=>'string', 'entryname='=>'string', 'start='=>'int', 'length='=>'int'], + 'ZipArchive::addFromString' => ['bool', 'name'=>'string', 'content'=>'string'], + 'ZipArchive::addGlob' => ['array|false', 'pattern'=>'string', 'flags='=>'int', 'options='=>'array'], + 'ZipArchive::addPattern' => ['array|false', 'pattern'=>'string', 'path='=>'string', 'options='=>'array'], + 'ZipArchive::close' => ['bool'], + 'ZipArchive::deleteIndex' => ['bool', 'index'=>'int'], + 'ZipArchive::deleteName' => ['bool', 'name'=>'string'], + 'ZipArchive::extractTo' => ['bool', 'pathto'=>'string', 'files='=>'string[]|string|null'], + 'ZipArchive::getArchiveComment' => ['string|false', 'flags='=>'int'], + 'ZipArchive::getCommentIndex' => ['string|false', 'index'=>'int', 'flags='=>'int'], + 'ZipArchive::getCommentName' => ['string|false', 'name'=>'string', 'flags='=>'int'], + 'ZipArchive::getExternalAttributesIndex' => ['bool', 'index'=>'int', '&w_opsys'=>'int', '&w_attr'=>'int', 'flags='=>'int'], + 'ZipArchive::getExternalAttributesName' => ['bool', 'name'=>'string', '&w_opsys'=>'int', '&w_attr'=>'int', 'flags='=>'int'], + 'ZipArchive::getFromIndex' => ['string|false', 'index'=>'int', 'len='=>'int', 'flags='=>'int'], + 'ZipArchive::getFromName' => ['string|false', 'name'=>'string', 'len='=>'int', 'flags='=>'int'], + 'ZipArchive::getNameIndex' => ['string|false', 'index'=>'int', 'flags='=>'int'], + 'ZipArchive::getStatusString' => ['string|false'], + 'ZipArchive::getStream' => ['resource|false', 'name'=>'string'], + 'ZipArchive::isCompressionMethodSupported' => ['bool', 'method'=>'int', 'encode='=>'bool'], + 'ZipArchive::isEncryptionMethodSupported' => ['bool', 'method'=>'int', 'encode='=>'bool'], + 'ZipArchive::locateName' => ['int|false', 'name'=>'string', 'flags='=>'int'], + 'ZipArchive::open' => ['int|bool', 'filename'=>'string', 'flags='=>'int'], + 'ZipArchive::registerCancelCallback' => ['bool', 'callback'=>'callable'], + 'ZipArchive::registerProgressCallback' => ['bool', 'rate'=>'float', 'callback'=>'callable'], + 'ZipArchive::renameIndex' => ['bool', 'index'=>'int', 'new_name'=>'string'], + 'ZipArchive::renameName' => ['bool', 'name'=>'string', 'new_name'=>'string'], + 'ZipArchive::replaceFile' => ['bool', 'filepath'=>'string', 'index'=>'int', 'start='=>'int', 'length='=>'int', 'flags='=>'int'], + 'ZipArchive::setArchiveComment' => ['bool', 'comment'=>'string'], + 'ZipArchive::setCommentIndex' => ['bool', 'index'=>'int', 'comment'=>'string'], + 'ZipArchive::setCommentName' => ['bool', 'name'=>'string', 'comment'=>'string'], + 'ZipArchive::setCompressionIndex' => ['bool', 'index'=>'int', 'comp_method'=>'int', 'comp_flags='=>'int'], + 'ZipArchive::setCompressionName' => ['bool', 'name'=>'string', 'comp_method'=>'int', 'comp_flags='=>'int'], + 'ZipArchive::setExternalAttributesIndex' => ['bool', 'index'=>'int', 'opsys'=>'int', 'attr'=>'int', 'flags='=>'int'], + 'ZipArchive::setExternalAttributesName' => ['bool', 'name'=>'string', 'opsys'=>'int', 'attr'=>'int', 'flags='=>'int'], + 'ZipArchive::setMtimeIndex' => ['bool', 'index'=>'int', 'timestamp'=>'int', 'flags='=>'int'], + 'ZipArchive::setMtimeName' => ['bool', 'name'=>'string', 'timestamp'=>'int', 'flags='=>'int'], + 'ZipArchive::setPassword' => ['bool', 'password'=>'string'], + 'ZipArchive::statIndex' => ['array|false', 'index'=>'int', 'flags='=>'int'], + 'ZipArchive::statName' => ['array|false', 'name'=>'string', 'flags='=>'int'], + 'ZipArchive::unchangeAll' => ['bool'], + 'ZipArchive::unchangeArchive' => ['bool'], + 'ZipArchive::unchangeIndex' => ['bool', 'index'=>'int'], + 'ZipArchive::unchangeName' => ['bool', 'name'=>'string'], + 'Zookeeper::addAuth' => ['bool', 'scheme'=>'string', 'cert'=>'string', 'completion_cb='=>'callable'], + 'Zookeeper::close' => ['void'], + 'Zookeeper::connect' => ['void', 'host'=>'string', 'watcher_cb='=>'callable', 'recv_timeout='=>'int'], + 'Zookeeper::create' => ['string', 'path'=>'string', 'value'=>'string', 'acls'=>'array', 'flags='=>'int'], + 'Zookeeper::delete' => ['bool', 'path'=>'string', 'version='=>'int'], + 'Zookeeper::exists' => ['bool', 'path'=>'string', 'watcher_cb='=>'callable'], + 'Zookeeper::get' => ['string', 'path'=>'string', 'watcher_cb='=>'callable', 'stat='=>'array', 'max_size='=>'int'], + 'Zookeeper::getAcl' => ['array', 'path'=>'string'], + 'Zookeeper::getChildren' => ['array|false', 'path'=>'string', 'watcher_cb='=>'callable'], + 'Zookeeper::getClientId' => ['int'], + 'Zookeeper::getConfig' => ['ZookeeperConfig'], + 'Zookeeper::getRecvTimeout' => ['int'], + 'Zookeeper::getState' => ['int'], + 'Zookeeper::isRecoverable' => ['bool'], + 'Zookeeper::set' => ['bool', 'path'=>'string', 'value'=>'string', 'version='=>'int', 'stat='=>'array'], + 'Zookeeper::setAcl' => ['bool', 'path'=>'string', 'version'=>'int', 'acl'=>'array'], + 'Zookeeper::setDebugLevel' => ['bool', 'logLevel'=>'int'], + 'Zookeeper::setDeterministicConnOrder' => ['bool', 'yesOrNo'=>'bool'], + 'Zookeeper::setLogStream' => ['bool', 'stream'=>'resource'], + 'Zookeeper::setWatcher' => ['bool', 'watcher_cb'=>'callable'], + 'ZookeeperConfig::add' => ['void', 'members'=>'string', 'version='=>'int', 'stat='=>'array'], + 'ZookeeperConfig::get' => ['string', 'watcher_cb='=>'callable', 'stat='=>'array'], + 'ZookeeperConfig::remove' => ['void', 'id_list'=>'string', 'version='=>'int', 'stat='=>'array'], + 'ZookeeperConfig::set' => ['void', 'members'=>'string', 'version='=>'int', 'stat='=>'array'], + '_' => ['string', 'message'=>'string'], + '__halt_compiler' => ['void'], + 'abs' => ['0|positive-int', 'num'=>'int'], + 'abs\'1' => ['float', 'num'=>'float'], + 'abs\'2' => ['numeric', 'num'=>'numeric'], + 'accelerator_get_configuration' => ['array'], + 'accelerator_get_scripts' => ['array'], + 'accelerator_get_status' => ['array', 'fetch_scripts'=>'bool'], + 'accelerator_reset' => [''], + 'accelerator_set_status' => ['void', 'status'=>'bool'], + 'acos' => ['float', 'num'=>'float'], + 'acosh' => ['float', 'num'=>'float'], + 'addcslashes' => ['string', 'string'=>'string', 'characters'=>'string'], + 'addslashes' => ['string', 'string'=>'string'], + 'apache_child_terminate' => ['bool'], + 'apache_get_modules' => ['array'], + 'apache_get_version' => ['string|false'], + 'apache_getenv' => ['string|false', 'variable'=>'string', 'walk_to_top='=>'bool'], + 'apache_lookup_uri' => ['object', 'filename'=>'string'], + 'apache_note' => ['string|false', 'note_name'=>'string', 'note_value='=>'string'], + 'apache_request_headers' => ['array|false'], + 'apache_reset_timeout' => ['bool'], + 'apache_response_headers' => ['array|false'], + 'apache_setenv' => ['bool', 'variable'=>'string', 'value'=>'string', 'walk_to_top='=>'bool'], + 'apc_add' => ['bool', 'key'=>'string', 'var'=>'mixed', 'ttl='=>'int'], + 'apc_add\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'apc_bin_dump' => ['string|false|null', 'files='=>'array', 'user_vars='=>'array'], + 'apc_bin_dumpfile' => ['int|false', 'files'=>'array', 'user_vars'=>'array', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'apc_bin_load' => ['bool', 'data'=>'string', 'flags='=>'int'], + 'apc_bin_loadfile' => ['bool', 'filename'=>'string', 'context='=>'resource', 'flags='=>'int'], + 'apc_cache_info' => ['array|false', 'cache_type='=>'string', 'limited='=>'bool'], + 'apc_cas' => ['bool', 'key'=>'string', 'old'=>'int', 'new'=>'int'], + 'apc_clear_cache' => ['bool', 'cache_type='=>'string'], + 'apc_compile_file' => ['bool', 'filename'=>'string', 'atomic='=>'bool'], + 'apc_dec' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool'], + 'apc_define_constants' => ['bool', 'key'=>'string', 'constants'=>'array', 'case_sensitive='=>'bool'], + 'apc_delete' => ['bool', 'key'=>'string|string[]|APCIterator'], + 'apc_delete_file' => ['bool|string[]', 'keys'=>'mixed'], + 'apc_exists' => ['bool', 'keys'=>'string'], + 'apc_exists\'1' => ['array', 'keys'=>'string[]'], + 'apc_fetch' => ['mixed|false', 'key'=>'string', '&w_success='=>'bool'], + 'apc_fetch\'1' => ['array|false', 'key'=>'string[]', '&w_success='=>'bool'], + 'apc_inc' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool'], + 'apc_load_constants' => ['bool', 'key'=>'string', 'case_sensitive='=>'bool'], + 'apc_sma_info' => ['array|false', 'limited='=>'bool'], + 'apc_store' => ['bool', 'key'=>'string', 'var'=>'', 'ttl='=>'int'], + 'apc_store\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'apcu_add' => ['bool', 'key'=>'string', 'var'=>'', 'ttl='=>'int'], + 'apcu_add\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'apcu_cache_info' => ['array|false', 'limited='=>'bool'], + 'apcu_cas' => ['bool', 'key'=>'string', 'old'=>'int', 'new'=>'int'], + 'apcu_clear_cache' => ['bool'], + 'apcu_dec' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool', 'ttl='=>'int'], + 'apcu_delete' => ['bool', 'key'=>'string|APCuIterator'], + 'apcu_delete\'1' => ['list', 'key'=>'string[]'], + 'apcu_enabled' => ['bool'], + 'apcu_entry' => ['mixed', 'key'=>'string', 'generator'=>'callable(string):mixed', 'ttl='=>'int'], + 'apcu_exists' => ['bool', 'keys'=>'string'], + 'apcu_exists\'1' => ['array', 'keys'=>'string[]'], + 'apcu_fetch' => ['mixed|false', 'key'=>'string', '&w_success='=>'bool'], + 'apcu_fetch\'1' => ['array|false', 'key'=>'string[]', '&w_success='=>'bool'], + 'apcu_inc' => ['int|false', 'key'=>'string', 'step='=>'int', '&w_success='=>'bool', 'ttl='=>'int'], + 'apcu_key_info' => ['?array', 'key'=>'string'], + 'apcu_sma_info' => ['array|false', 'limited='=>'bool'], + 'apcu_store' => ['bool', 'key'=>'string', 'var='=>'', 'ttl='=>'int'], + 'apcu_store\'1' => ['array', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'apd_breakpoint' => ['bool', 'debug_level'=>'int'], + 'apd_callstack' => ['array'], + 'apd_clunk' => ['void', 'warning'=>'string', 'delimiter='=>'string'], + 'apd_continue' => ['bool', 'debug_level'=>'int'], + 'apd_croak' => ['void', 'warning'=>'string', 'delimiter='=>'string'], + 'apd_dump_function_table' => ['void'], + 'apd_dump_persistent_resources' => ['array'], + 'apd_dump_regular_resources' => ['array'], + 'apd_echo' => ['bool', 'output'=>'string'], + 'apd_get_active_symbols' => ['array'], + 'apd_set_pprof_trace' => ['string', 'dump_directory='=>'string', 'fragment='=>'string'], + 'apd_set_session' => ['void', 'debug_level'=>'int'], + 'apd_set_session_trace' => ['void', 'debug_level'=>'int', 'dump_directory='=>'string'], + 'apd_set_session_trace_socket' => ['bool', 'tcp_server'=>'string', 'socket_type'=>'int', 'port'=>'int', 'debug_level'=>'int'], + 'array_change_key_case' => ['associative-array', 'array'=>'array', 'case='=>'int'], + 'array_chunk' => ['list', 'array'=>'array', 'length'=>'int', 'preserve_keys='=>'bool'], + 'array_column' => ['array', 'array'=>'array', 'column_key'=>'mixed', 'index_key='=>'mixed'], + 'array_combine' => ['associative-array|false', 'keys'=>'string[]|int[]', 'values'=>'array'], + 'array_count_values' => ['associative-array', 'array'=>'array'], + 'array_diff' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_diff_assoc' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_diff_key' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_diff_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int'], + 'array_diff_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_diff_ukey' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_comp_func'=>'callable(mixed,mixed):int'], + 'array_diff_ukey\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_fill' => ['array', 'start_index'=>'int', 'count'=>'int', 'value'=>'mixed'], + 'array_fill_keys' => ['array', 'keys'=>'array', 'value'=>'mixed'], + 'array_filter' => ['associative-array', 'array'=>'array', 'callback='=>'callable(mixed,mixed=):scalar', 'mode='=>'int'], + 'array_flip' => ['associative-array|associative-array', 'array'=>'array'], + 'array_intersect' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_intersect_assoc' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_intersect_key' => ['associative-array', 'array'=>'array', '...arrays'=>'array'], + 'array_intersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_compare_func'=>'callable(mixed,mixed):int'], + 'array_intersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest'=>'array|callable(mixed,mixed):int'], + 'array_intersect_ukey' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_compare_func'=>'callable(mixed,mixed):int'], + 'array_intersect_ukey\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest'=>'array|callable(mixed,mixed):int'], + 'array_key_exists' => ['bool', 'key'=>'string|int', 'array'=>'array|object'], + 'array_keys' => ['list', 'array'=>'array', 'filter_value='=>'mixed', 'strict='=>'bool'], + 'array_map' => ['array', 'callback'=>'?callable', 'array'=>'array', '...arrays='=>'array'], + 'array_merge' => ['array', '...arrays'=>'array'], + 'array_merge_recursive' => ['array', '...arrays'=>'array'], + 'array_multisort' => ['bool', '&rw_array'=>'array', 'rest='=>'array|int', 'array1_sort_flags='=>'array|int', '...args='=>'array|int'], + 'array_pad' => ['array', 'array'=>'array', 'length'=>'int', 'value'=>'mixed'], + 'array_pop' => ['mixed', '&rw_array'=>'array'], + 'array_product' => ['int|float', 'array'=>'array'], + 'array_push' => ['int', '&rw_array'=>'array', '...values'=>'mixed'], + 'array_rand' => ['int|string|array|array', 'array'=>'non-empty-array', 'num'=>'int'], + 'array_rand\'1' => ['int|string', 'array'=>'array'], + 'array_reduce' => ['mixed', 'array'=>'array', 'callback'=>'callable(mixed,mixed):mixed', 'initial='=>'mixed'], + 'array_replace' => ['array', 'array'=>'array', '...replacements='=>'array'], + 'array_replace_recursive' => ['array', 'array'=>'array', '...replacements='=>'array'], + 'array_reverse' => ['array', 'array'=>'array', 'preserve_keys='=>'bool'], + 'array_search' => ['int|string|false', 'needle'=>'mixed', 'haystack'=>'array', 'strict='=>'bool'], + 'array_shift' => ['mixed|null', '&rw_array'=>'array'], + 'array_slice' => ['array', 'array'=>'array', 'offset'=>'int', 'length='=>'?int', 'preserve_keys='=>'bool'], + 'array_splice' => ['array', '&rw_array'=>'array', 'offset'=>'int', 'length='=>'int', 'replacement='=>'array|string'], + 'array_sum' => ['int|float', 'array'=>'array'], + 'array_udiff' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int'], + 'array_udiff\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_udiff_assoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'key_comp_func'=>'callable(mixed,mixed):int'], + 'array_udiff_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_udiff_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_comp_func'=>'callable(mixed,mixed):int', 'key_comp_func'=>'callable(mixed,mixed):int'], + 'array_udiff_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_uintersect' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int'], + 'array_uintersect\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_uintersect_assoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int'], + 'array_uintersect_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_uintersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int', 'key_compare_func'=>'callable(mixed,mixed):int'], + 'array_uintersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'], + 'array_unique' => ['array', 'array'=>'array', 'flags='=>'0'], + 'array_unique\'1' => ['array', 'array'=>'array', 'flags='=>'1'], + 'array_unique\'2' => ['array', 'array'=>'array', 'flags='=>'2|5'], + 'array_unshift' => ['int', '&rw_array'=>'array', '...values'=>'mixed'], + 'array_values' => ['list', 'array'=>'array'], + 'array_walk' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'], + 'array_walk\'1' => ['bool', '&rw_array'=>'object', 'callback'=>'callable', 'arg='=>'mixed'], + 'array_walk_recursive' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'], + 'array_walk_recursive\'1' => ['bool', '&rw_array'=>'object', 'callback'=>'callable', 'arg='=>'mixed'], + 'arsort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], + 'asin' => ['float', 'num'=>'float'], + 'asinh' => ['float', 'num'=>'float'], + 'asort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], + 'assert' => ['bool', 'assertion'=>'string|bool|int', 'description='=>'string|Throwable|null'], + 'assert_options' => ['mixed|false', 'option'=>'int', 'value='=>'mixed'], + 'ast\Node::__construct' => ['void', 'kind='=>'int', 'flags='=>'int', 'children='=>'ast\Node\Decl[]|ast\Node[]|int[]|string[]|float[]|bool[]|null[]', 'start_line='=>'int'], + 'ast\get_kind_name' => ['string', 'kind'=>'int'], + 'ast\get_metadata' => ['array'], + 'ast\get_supported_versions' => ['array', 'exclude_deprecated='=>'bool'], + 'ast\kind_uses_flags' => ['bool', 'kind'=>'int'], + 'ast\parse_code' => ['ast\Node', 'code'=>'string', 'version'=>'int', 'filename='=>'string'], + 'ast\parse_file' => ['ast\Node', 'filename'=>'string', 'version'=>'int'], + 'atan' => ['float', 'num'=>'float'], + 'atan2' => ['float', 'y'=>'float', 'x'=>'float'], + 'atanh' => ['float', 'num'=>'float'], + 'base64_decode' => ['string|false', 'string'=>'string', 'strict='=>'bool'], + 'base64_encode' => ['string', 'string'=>'string'], + 'base_convert' => ['string', 'num'=>'string', 'from_base'=>'int', 'to_base'=>'int'], + 'basename' => ['string', 'path'=>'string', 'suffix='=>'string'], + 'bbcode_add_element' => ['bool', 'bbcode_container'=>'resource', 'tag_name'=>'string', 'tag_rules'=>'array'], + 'bbcode_add_smiley' => ['bool', 'bbcode_container'=>'resource', 'smiley'=>'string', 'replace_by'=>'string'], + 'bbcode_create' => ['resource', 'bbcode_initial_tags='=>'array'], + 'bbcode_destroy' => ['bool', 'bbcode_container'=>'resource'], + 'bbcode_parse' => ['string', 'bbcode_container'=>'resource', 'to_parse'=>'string'], + 'bbcode_set_arg_parser' => ['bool', 'bbcode_container'=>'resource', 'bbcode_arg_parser'=>'resource'], + 'bbcode_set_flags' => ['bool', 'bbcode_container'=>'resource', 'flags'=>'int', 'mode='=>'int'], + 'bcadd' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bccomp' => ['int', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bcdiv' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bcmod' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bcmul' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bcompiler_load' => ['bool', 'filename'=>'string'], + 'bcompiler_load_exe' => ['bool', 'filename'=>'string'], + 'bcompiler_parse_class' => ['bool', 'class'=>'string', 'callback'=>'string'], + 'bcompiler_read' => ['bool', 'filehandle'=>'resource'], + 'bcompiler_write_class' => ['bool', 'filehandle'=>'resource', 'classname'=>'string', 'extends='=>'string'], + 'bcompiler_write_constant' => ['bool', 'filehandle'=>'resource', 'constantname'=>'string'], + 'bcompiler_write_exe_footer' => ['bool', 'filehandle'=>'resource', 'startpos'=>'int'], + 'bcompiler_write_file' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], + 'bcompiler_write_footer' => ['bool', 'filehandle'=>'resource'], + 'bcompiler_write_function' => ['bool', 'filehandle'=>'resource', 'functionname'=>'string'], + 'bcompiler_write_functions_from_file' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], + 'bcompiler_write_header' => ['bool', 'filehandle'=>'resource', 'write_ver='=>'string'], + 'bcompiler_write_included_filename' => ['bool', 'filehandle'=>'resource', 'filename'=>'string'], + 'bcpow' => ['numeric-string', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'scale='=>'int'], + 'bcpowmod' => ['numeric-string|false', 'num'=>'numeric-string', 'exponent'=>'numeric-string', 'modulus'=>'numeric-string', 'scale='=>'int'], + 'bcscale' => ['int', 'scale'=>'int'], + 'bcsqrt' => ['numeric-string', 'num'=>'numeric-string', 'scale='=>'int'], + 'bcsub' => ['numeric-string', 'num1'=>'numeric-string', 'num2'=>'numeric-string', 'scale='=>'int'], + 'bin2hex' => ['string', 'string'=>'string'], + 'bind_textdomain_codeset' => ['string', 'domain'=>'string', 'codeset'=>'string'], + 'bindec' => ['float|int', 'binary_string'=>'string'], + 'bindtextdomain' => ['string', 'domain'=>'string', 'directory'=>'string'], + 'birdstep_autocommit' => ['bool', 'index'=>'int'], + 'birdstep_close' => ['bool', 'id'=>'int'], + 'birdstep_commit' => ['bool', 'index'=>'int'], + 'birdstep_connect' => ['int', 'server'=>'string', 'user'=>'string', 'pass'=>'string'], + 'birdstep_exec' => ['int', 'index'=>'int', 'exec_str'=>'string'], + 'birdstep_fetch' => ['bool', 'index'=>'int'], + 'birdstep_fieldname' => ['string', 'index'=>'int', 'col'=>'int'], + 'birdstep_fieldnum' => ['int', 'index'=>'int'], + 'birdstep_freeresult' => ['bool', 'index'=>'int'], + 'birdstep_off_autocommit' => ['bool', 'index'=>'int'], + 'birdstep_result' => ['', 'index'=>'int', 'col'=>''], + 'birdstep_rollback' => ['bool', 'index'=>'int'], + 'blenc_encrypt' => ['string', 'plaintext'=>'string', 'encodedfile'=>'string', 'encryption_key='=>'string'], + 'boolval' => ['bool', 'value'=>'mixed'], + 'bson_decode' => ['array', 'bson'=>'string'], + 'bson_encode' => ['string', 'anything'=>'mixed'], + 'bzclose' => ['bool', 'bz'=>'resource'], + 'bzcompress' => ['string|int', 'data'=>'string', 'block_size='=>'int', 'work_factor='=>'int'], + 'bzdecompress' => ['string|int|false', 'data'=>'string', 'use_less_memory='=>'int'], + 'bzerrno' => ['int', 'bz'=>'resource'], + 'bzerror' => ['array', 'bz'=>'resource'], + 'bzerrstr' => ['string', 'bz'=>'resource'], + 'bzflush' => ['bool', 'bz'=>'resource'], + 'bzopen' => ['resource|false', 'file'=>'string|resource', 'mode'=>'string'], + 'bzread' => ['string|false', 'bz'=>'resource', 'length='=>'int'], + 'bzwrite' => ['int|false', 'bz'=>'resource', 'data'=>'string', 'length='=>'int'], + 'cal_days_in_month' => ['int', 'calendar'=>'int', 'month'=>'int', 'year'=>'int'], + 'cal_from_jd' => ['array{date:string,month:int,day:int,year:int,dow:int,abbrevdayname:string,dayname:string,abbrevmonth:string,monthname:string}', 'julian_day'=>'int', 'calendar'=>'int'], + 'cal_info' => ['array', 'calendar='=>'int'], + 'cal_to_jd' => ['int', 'calendar'=>'int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'calcul_hmac' => ['string', 'clent'=>'string', 'siretcode'=>'string', 'price'=>'string', 'reference'=>'string', 'validity'=>'string', 'taxation'=>'string', 'devise'=>'string', 'language'=>'string'], + 'calculhmac' => ['string', 'clent'=>'string', 'data'=>'string'], + 'call_user_func' => ['mixed|false', 'callback'=>'callable', '...args='=>'mixed'], + 'call_user_func_array' => ['mixed|false', 'callback'=>'callable', 'args'=>'list'], + 'call_user_method' => ['mixed', 'method_name'=>'string', 'object'=>'object', 'parameter='=>'mixed', '...args='=>'mixed'], + 'call_user_method_array' => ['mixed', 'method_name'=>'string', 'object'=>'object', 'params'=>'list'], + 'ceil' => ['float', 'num'=>'float'], + 'chdb::__construct' => ['void', 'pathname'=>'string'], + 'chdb::get' => ['string', 'key'=>'string'], + 'chdb_create' => ['bool', 'pathname'=>'string', 'data'=>'array'], + 'chdir' => ['bool', 'directory'=>'string'], + 'checkdate' => ['bool', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'checkdnsrr' => ['bool', 'hostname'=>'string', 'type='=>'string'], + 'chgrp' => ['bool', 'filename'=>'string', 'group'=>'string|int'], + 'chmod' => ['bool', 'filename'=>'string', 'permissions'=>'int'], + 'chop' => ['string', 'string'=>'string', 'characters='=>'string'], + 'chown' => ['bool', 'filename'=>'string', 'user'=>'string|int'], + 'chr' => ['non-empty-string', 'codepoint'=>'int'], + 'chroot' => ['bool', 'directory'=>'string'], + 'chunk_split' => ['string', 'string'=>'string', 'length='=>'int', 'separator='=>'string'], + 'classObj::__construct' => ['void', 'layer'=>'layerObj', 'class'=>'classObj'], + 'classObj::addLabel' => ['int', 'label'=>'labelObj'], + 'classObj::convertToString' => ['string'], + 'classObj::createLegendIcon' => ['imageObj', 'width'=>'int', 'height'=>'int'], + 'classObj::deletestyle' => ['int', 'index'=>'int'], + 'classObj::drawLegendIcon' => ['int', 'width'=>'int', 'height'=>'int', 'im'=>'imageObj', 'dstX'=>'int', 'dstY'=>'int'], + 'classObj::free' => ['void'], + 'classObj::getExpressionString' => ['string'], + 'classObj::getLabel' => ['labelObj', 'index'=>'int'], + 'classObj::getMetaData' => ['int', 'name'=>'string'], + 'classObj::getStyle' => ['styleObj', 'index'=>'int'], + 'classObj::getTextString' => ['string'], + 'classObj::movestyledown' => ['int', 'index'=>'int'], + 'classObj::movestyleup' => ['int', 'index'=>'int'], + 'classObj::ms_newClassObj' => ['classObj', 'layer'=>'layerObj', 'class'=>'classObj'], + 'classObj::removeLabel' => ['labelObj', 'index'=>'int'], + 'classObj::removeMetaData' => ['int', 'name'=>'string'], + 'classObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'classObj::setExpression' => ['int', 'expression'=>'string'], + 'classObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], + 'classObj::settext' => ['int', 'text'=>'string'], + 'classObj::updateFromString' => ['int', 'snippet'=>'string'], + 'class_alias' => ['bool', 'class'=>'string', 'alias'=>'string', 'autoload='=>'bool'], + 'class_exists' => ['bool', 'class'=>'string', 'autoload='=>'bool'], + 'class_implements' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], + 'class_parents' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], + 'class_uses' => ['array|false', 'object_or_class'=>'object|string', 'autoload='=>'bool'], + 'classkit_import' => ['array', 'filename'=>'string'], + 'classkit_method_add' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int'], + 'classkit_method_copy' => ['bool', 'dclass'=>'string', 'dmethod'=>'string', 'sclass'=>'string', 'smethod='=>'string'], + 'classkit_method_redefine' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int'], + 'classkit_method_remove' => ['bool', 'classname'=>'string', 'methodname'=>'string'], + 'classkit_method_rename' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'newname'=>'string'], + 'clearstatcache' => ['void', 'clear_realpath_cache='=>'bool', 'filename='=>'string'], + 'cli_get_process_title' => ['?string'], + 'cli_set_process_title' => ['bool', 'title'=>'string'], + 'closedir' => ['void', 'dir_handle='=>'resource'], + 'closelog' => ['true'], + 'clusterObj::convertToString' => ['string'], + 'clusterObj::getFilterString' => ['string'], + 'clusterObj::getGroupString' => ['string'], + 'clusterObj::setFilter' => ['int', 'expression'=>'string'], + 'clusterObj::setGroup' => ['int', 'expression'=>'string'], + 'collator_asort' => ['bool', 'object'=>'collator', '&rw_array'=>'array', 'flags='=>'int'], + 'collator_compare' => ['int', 'object'=>'collator', 'string1'=>'string', 'string2'=>'string'], + 'collator_create' => ['?Collator', 'locale'=>'string'], + 'collator_get_attribute' => ['int|false', 'object'=>'collator', 'attribute'=>'int'], + 'collator_get_error_code' => ['int', 'object'=>'collator'], + 'collator_get_error_message' => ['string', 'object'=>'collator'], + 'collator_get_locale' => ['string', 'object'=>'collator', 'type'=>'int'], + 'collator_get_sort_key' => ['string', 'object'=>'collator', 'string'=>'string'], + 'collator_get_strength' => ['int|false', 'object'=>'collator'], + 'collator_set_attribute' => ['bool', 'object'=>'collator', 'attribute'=>'int', 'value'=>'int'], + 'collator_set_strength' => ['bool', 'object'=>'collator', 'strength'=>'int'], + 'collator_sort' => ['bool', 'object'=>'collator', '&rw_array'=>'array', 'flags='=>'int'], + 'collator_sort_with_sort_keys' => ['bool', 'object'=>'collator', '&rw_array'=>'array'], + 'colorObj::setHex' => ['int', 'hex'=>'string'], + 'colorObj::toHex' => ['string'], + 'com_addref' => [''], + 'com_create_guid' => ['string'], + 'com_event_sink' => ['bool', 'variant'=>'VARIANT', 'sink_object'=>'object', 'sink_interface='=>'mixed'], + 'com_get_active_object' => ['VARIANT', 'prog_id'=>'string', 'codepage='=>'int'], + 'com_isenum' => ['bool', 'com_module'=>'variant'], + 'com_load_typelib' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'bool'], + 'com_message_pump' => ['bool', 'timeout_milliseconds='=>'int'], + 'com_print_typeinfo' => ['bool', 'variant'=>'object', 'dispatch_interface='=>'string', 'display_sink='=>'bool'], + 'commonmark\cql::__invoke' => ['', 'root'=>'CommonMark\Node', 'handler'=>'callable'], + 'commonmark\interfaces\ivisitable::accept' => ['void', 'visitor'=>'CommonMark\Interfaces\IVisitor'], + 'commonmark\interfaces\ivisitor::enter' => ['?int|IVisitable', 'visitable'=>'IVisitable'], + 'commonmark\interfaces\ivisitor::leave' => ['?int|IVisitable', 'visitable'=>'IVisitable'], + 'commonmark\node::accept' => ['void', 'visitor'=>'CommonMark\Interfaces\IVisitor'], + 'commonmark\node::appendChild' => ['CommonMark\Node', 'child'=>'CommonMark\Node'], + 'commonmark\node::insertAfter' => ['CommonMark\Node', 'sibling'=>'CommonMark\Node'], + 'commonmark\node::insertBefore' => ['CommonMark\Node', 'sibling'=>'CommonMark\Node'], + 'commonmark\node::prependChild' => ['CommonMark\Node', 'child'=>'CommonMark\Node'], + 'commonmark\node::replace' => ['CommonMark\Node', 'target'=>'CommonMark\Node'], + 'commonmark\node::unlink' => ['void'], + 'commonmark\parse' => ['CommonMark\Node', 'content'=>'string', 'options='=>'int'], + 'commonmark\parser::finish' => ['CommonMark\Node'], + 'commonmark\parser::parse' => ['void', 'buffer'=>'string'], + 'commonmark\render' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], + 'commonmark\render\html' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int'], + 'commonmark\render\latex' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], + 'commonmark\render\man' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int', 'width='=>'int'], + 'commonmark\render\xml' => ['string', 'node'=>'CommonMark\Node', 'options='=>'int'], + 'compact' => ['array', 'var_name'=>'string|array', '...var_names='=>'string|array'], + 'componere\abstract\definition::addInterface' => ['Componere\Abstract\Definition', 'interface'=>'string'], + 'componere\abstract\definition::addMethod' => ['Componere\Abstract\Definition', 'name'=>'string', 'method'=>'Componere\Method'], + 'componere\abstract\definition::addTrait' => ['Componere\Abstract\Definition', 'trait'=>'string'], + 'componere\abstract\definition::getReflector' => ['ReflectionClass'], + 'componere\cast' => ['object', 'arg1'=>'string', 'object'=>'object'], + 'componere\cast_by_ref' => ['object', 'arg1'=>'string', 'object'=>'object'], + 'componere\definition::addConstant' => ['Componere\Definition', 'name'=>'string', 'value'=>'Componere\Value'], + 'componere\definition::addProperty' => ['Componere\Definition', 'name'=>'string', 'value'=>'Componere\Value'], + 'componere\definition::getClosure' => ['Closure', 'name'=>'string'], + 'componere\definition::getClosures' => ['Closure[]'], + 'componere\definition::isRegistered' => ['bool'], + 'componere\definition::register' => ['void'], + 'componere\method::getReflector' => ['ReflectionMethod'], + 'componere\method::setPrivate' => ['Method'], + 'componere\method::setProtected' => ['Method'], + 'componere\method::setStatic' => ['Method'], + 'componere\patch::apply' => ['void'], + 'componere\patch::derive' => ['Componere\Patch', 'instance'=>'object'], + 'componere\patch::getClosure' => ['Closure', 'name'=>'string'], + 'componere\patch::getClosures' => ['Closure[]'], + 'componere\patch::isApplied' => ['bool'], + 'componere\patch::revert' => ['void'], + 'componere\value::hasDefault' => ['bool'], + 'componere\value::isPrivate' => ['bool'], + 'componere\value::isProtected' => ['bool'], + 'componere\value::isStatic' => ['bool'], + 'componere\value::setPrivate' => ['Value'], + 'componere\value::setProtected' => ['Value'], + 'componere\value::setStatic' => ['Value'], + 'confirm_pdo_ibm_compiled' => [''], + 'connection_aborted' => ['int'], + 'connection_status' => ['int'], + 'connection_timeout' => ['int'], + 'constant' => ['mixed', 'name'=>'string'], + 'convert_cyr_string' => ['string', 'string'=>'string', 'from'=>'string', 'to'=>'string'], + 'convert_uudecode' => ['string', 'string'=>'string'], + 'convert_uuencode' => ['string', 'string'=>'string'], + 'copy' => ['bool', 'from'=>'string', 'to'=>'string', 'context='=>'resource'], + 'cos' => ['float', 'num'=>'float'], + 'cosh' => ['float', 'num'=>'float'], + 'count' => ['int<0, max>', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], + 'count_chars' => ['array|false', 'input'=>'string', 'mode='=>'0|1|2'], + 'count_chars\'1' => ['string|false', 'input'=>'string', 'mode='=>'3|4'], + 'crack_check' => ['bool', 'dictionary'=>'', 'password'=>'string'], + 'crack_closedict' => ['bool', 'dictionary='=>'resource'], + 'crack_getlastmessage' => ['string'], + 'crack_opendict' => ['resource|false', 'dictionary'=>'string'], + 'crash' => [''], + 'crc32' => ['int', 'string'=>'string'], + 'create_function' => ['string', 'args'=>'string', 'code'=>'string'], + 'crypt' => ['string', 'string'=>'string', 'salt='=>'string'], + 'ctype_alnum' => ['bool', 'text'=>'string|int'], + 'ctype_alpha' => ['bool', 'text'=>'string|int'], + 'ctype_cntrl' => ['bool', 'text'=>'string|int'], + 'ctype_digit' => ['bool', 'text'=>'string|int'], + 'ctype_graph' => ['bool', 'text'=>'string|int'], + 'ctype_lower' => ['bool', 'text'=>'string|int'], + 'ctype_print' => ['bool', 'text'=>'string|int'], + 'ctype_punct' => ['bool', 'text'=>'string|int'], + 'ctype_space' => ['bool', 'text'=>'string|int'], + 'ctype_upper' => ['bool', 'text'=>'string|int'], + 'ctype_xdigit' => ['bool', 'text'=>'string|int'], + 'cubrid_affected_rows' => ['int', 'req_identifier='=>''], + 'cubrid_bind' => ['bool', 'req_identifier'=>'resource', 'bind_param'=>'int', 'bind_value'=>'mixed', 'bind_value_type='=>'string'], + 'cubrid_client_encoding' => ['string', 'conn_identifier='=>''], + 'cubrid_close' => ['bool', 'conn_identifier='=>''], + 'cubrid_close_prepare' => ['bool', 'req_identifier'=>'resource'], + 'cubrid_close_request' => ['bool', 'req_identifier'=>'resource'], + 'cubrid_col_get' => ['array', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string'], + 'cubrid_col_size' => ['int', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string'], + 'cubrid_column_names' => ['array', 'req_identifier'=>'resource'], + 'cubrid_column_types' => ['array', 'req_identifier'=>'resource'], + 'cubrid_commit' => ['bool', 'conn_identifier'=>'resource'], + 'cubrid_connect' => ['resource', 'host'=>'string', 'port'=>'int', 'dbname'=>'string', 'userid='=>'string', 'passwd='=>'string'], + 'cubrid_connect_with_url' => ['resource', 'conn_url'=>'string', 'userid='=>'string', 'passwd='=>'string'], + 'cubrid_current_oid' => ['string', 'req_identifier'=>'resource'], + 'cubrid_data_seek' => ['bool', 'req_identifier'=>'', 'row_number'=>'int'], + 'cubrid_db_name' => ['string', 'result'=>'array', 'index'=>'int'], + 'cubrid_db_parameter' => ['array', 'conn_identifier'=>'resource'], + 'cubrid_disconnect' => ['bool', 'conn_identifier'=>'resource'], + 'cubrid_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], + 'cubrid_errno' => ['int', 'conn_identifier='=>''], + 'cubrid_error' => ['string', 'connection='=>''], + 'cubrid_error_code' => ['int'], + 'cubrid_error_code_facility' => ['int'], + 'cubrid_error_msg' => ['string'], + 'cubrid_execute' => ['bool', 'conn_identifier'=>'', 'sql'=>'string', 'option='=>'int', 'request_identifier='=>''], + 'cubrid_fetch' => ['mixed', 'result'=>'resource', 'type='=>'int'], + 'cubrid_fetch_array' => ['array', 'result'=>'resource', 'type='=>'int'], + 'cubrid_fetch_assoc' => ['array', 'result'=>'resource'], + 'cubrid_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], + 'cubrid_fetch_lengths' => ['array', 'result'=>'resource'], + 'cubrid_fetch_object' => ['object', 'result'=>'resource', 'class_name='=>'string', 'params='=>'array'], + 'cubrid_fetch_row' => ['array', 'result'=>'resource'], + 'cubrid_field_flags' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'cubrid_field_len' => ['int', 'result'=>'resource', 'field_offset'=>'int'], + 'cubrid_field_name' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'cubrid_field_seek' => ['bool', 'result'=>'resource', 'field_offset='=>'int'], + 'cubrid_field_table' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'cubrid_field_type' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'cubrid_free_result' => ['bool', 'req_identifier'=>'resource'], + 'cubrid_get' => ['mixed', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr='=>'mixed'], + 'cubrid_get_autocommit' => ['bool', 'conn_identifier'=>'resource'], + 'cubrid_get_charset' => ['string', 'conn_identifier'=>'resource'], + 'cubrid_get_class_name' => ['string', 'conn_identifier'=>'resource', 'oid'=>'string'], + 'cubrid_get_client_info' => ['string'], + 'cubrid_get_db_parameter' => ['array', 'conn_identifier'=>'resource'], + 'cubrid_get_query_timeout' => ['int', 'req_identifier'=>'resource'], + 'cubrid_get_server_info' => ['string', 'conn_identifier'=>'resource'], + 'cubrid_insert_id' => ['string', 'conn_identifier='=>'resource'], + 'cubrid_is_instance' => ['int', 'conn_identifier'=>'resource', 'oid'=>'string'], + 'cubrid_list_dbs' => ['array', 'conn_identifier'=>'resource'], + 'cubrid_load_from_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string', 'file_name'=>'string'], + 'cubrid_lob2_bind' => ['bool', 'req_identifier'=>'resource', 'bind_index'=>'int', 'bind_value'=>'mixed', 'bind_value_type='=>'string'], + 'cubrid_lob2_close' => ['bool', 'lob_identifier'=>'resource'], + 'cubrid_lob2_export' => ['bool', 'lob_identifier'=>'resource', 'file_name'=>'string'], + 'cubrid_lob2_import' => ['bool', 'lob_identifier'=>'resource', 'file_name'=>'string'], + 'cubrid_lob2_new' => ['resource', 'conn_identifier='=>'resource', 'type='=>'string'], + 'cubrid_lob2_read' => ['string', 'lob_identifier'=>'resource', 'length'=>'int'], + 'cubrid_lob2_seek' => ['bool', 'lob_identifier'=>'resource', 'offset'=>'int', 'origin='=>'int'], + 'cubrid_lob2_seek64' => ['bool', 'lob_identifier'=>'resource', 'offset'=>'string', 'origin='=>'int'], + 'cubrid_lob2_size' => ['int', 'lob_identifier'=>'resource'], + 'cubrid_lob2_size64' => ['string', 'lob_identifier'=>'resource'], + 'cubrid_lob2_tell' => ['int', 'lob_identifier'=>'resource'], + 'cubrid_lob2_tell64' => ['string', 'lob_identifier'=>'resource'], + 'cubrid_lob2_write' => ['bool', 'lob_identifier'=>'resource', 'buf'=>'string'], + 'cubrid_lob_close' => ['bool', 'lob_identifier_array'=>'array'], + 'cubrid_lob_export' => ['bool', 'conn_identifier'=>'resource', 'lob_identifier'=>'resource', 'path_name'=>'string'], + 'cubrid_lob_get' => ['array', 'conn_identifier'=>'resource', 'sql'=>'string'], + 'cubrid_lob_send' => ['bool', 'conn_identifier'=>'resource', 'lob_identifier'=>'resource'], + 'cubrid_lob_size' => ['string', 'lob_identifier'=>'resource'], + 'cubrid_lock_read' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], + 'cubrid_lock_write' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string'], + 'cubrid_move_cursor' => ['int', 'req_identifier'=>'resource', 'offset'=>'int', 'origin='=>'int'], + 'cubrid_new_glo' => ['string', 'conn_identifier'=>'', 'class_name'=>'string', 'file_name'=>'string'], + 'cubrid_next_result' => ['bool', 'result'=>'resource'], + 'cubrid_num_cols' => ['int', 'req_identifier'=>'resource'], + 'cubrid_num_fields' => ['int', 'result'=>'resource'], + 'cubrid_num_rows' => ['int', 'req_identifier'=>'resource'], + 'cubrid_pconnect' => ['resource', 'host'=>'string', 'port'=>'int', 'dbname'=>'string', 'userid='=>'string', 'passwd='=>'string'], + 'cubrid_pconnect_with_url' => ['resource', 'conn_url'=>'string', 'userid='=>'string', 'passwd='=>'string'], + 'cubrid_ping' => ['bool', 'conn_identifier='=>''], + 'cubrid_prepare' => ['resource', 'conn_identifier'=>'resource', 'prepare_stmt'=>'string', 'option='=>'int'], + 'cubrid_put' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr='=>'string', 'value='=>'mixed'], + 'cubrid_query' => ['resource', 'query'=>'string', 'conn_identifier='=>''], + 'cubrid_real_escape_string' => ['string', 'unescaped_string'=>'string', 'conn_identifier='=>''], + 'cubrid_result' => ['string', 'result'=>'resource', 'row'=>'int', 'field='=>''], + 'cubrid_rollback' => ['bool', 'conn_identifier'=>'resource'], + 'cubrid_save_to_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string', 'file_name'=>'string'], + 'cubrid_schema' => ['array', 'conn_identifier'=>'resource', 'schema_type'=>'int', 'class_name='=>'string', 'attr_name='=>'string'], + 'cubrid_send_glo' => ['int', 'conn_identifier'=>'', 'oid'=>'string'], + 'cubrid_seq_add' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'seq_element'=>'string'], + 'cubrid_seq_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int'], + 'cubrid_seq_insert' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int', 'seq_element'=>'string'], + 'cubrid_seq_put' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'index'=>'int', 'seq_element'=>'string'], + 'cubrid_set_add' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'set_element'=>'string'], + 'cubrid_set_autocommit' => ['bool', 'conn_identifier'=>'resource', 'mode'=>'bool'], + 'cubrid_set_db_parameter' => ['bool', 'conn_identifier'=>'resource', 'param_type'=>'int', 'param_value'=>'int'], + 'cubrid_set_drop' => ['bool', 'conn_identifier'=>'resource', 'oid'=>'string', 'attr_name'=>'string', 'set_element'=>'string'], + 'cubrid_set_query_timeout' => ['bool', 'req_identifier'=>'resource', 'timeout'=>'int'], + 'cubrid_unbuffered_query' => ['resource', 'query'=>'string', 'conn_identifier='=>''], + 'cubrid_version' => ['string'], + 'curl_close' => ['void', 'ch'=>'resource'], + 'curl_copy_handle' => ['resource', 'ch'=>'resource'], + 'curl_errno' => ['int', 'ch'=>'resource'], + 'curl_error' => ['string', 'ch'=>'resource'], + 'curl_escape' => ['string|false', 'ch'=>'resource', 'string'=>'string'], + 'curl_exec' => ['bool|string', 'ch'=>'resource'], + 'curl_file_create' => ['CURLFile', 'filename'=>'string', 'mimetype='=>'string', 'postfilename='=>'string'], + 'curl_getinfo' => ['mixed', 'ch'=>'resource', 'option='=>'int'], + 'curl_init' => ['resource|false', 'url='=>'string'], + 'curl_multi_add_handle' => ['int', 'mh'=>'resource', 'ch'=>'resource'], + 'curl_multi_close' => ['void', 'mh'=>'resource'], + 'curl_multi_exec' => ['int', 'mh'=>'resource', '&w_still_running'=>'int'], + 'curl_multi_getcontent' => ['string', 'ch'=>'resource'], + 'curl_multi_info_read' => ['array|false', 'mh'=>'resource', '&w_msgs_in_queue='=>'int'], + 'curl_multi_init' => ['resource'], + 'curl_multi_remove_handle' => ['int', 'mh'=>'resource', 'ch'=>'resource'], + 'curl_multi_select' => ['int', 'mh'=>'resource', 'timeout='=>'float'], + 'curl_multi_setopt' => ['bool', 'mh'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'curl_multi_strerror' => ['?string', 'error_code'=>'int'], + 'curl_pause' => ['int', 'ch'=>'resource', 'bitmask'=>'int'], + 'curl_reset' => ['void', 'ch'=>'resource'], + 'curl_setopt' => ['bool', 'ch'=>'resource', 'option'=>'int', 'value'=>'callable|mixed'], + 'curl_setopt_array' => ['bool', 'ch'=>'resource', 'options'=>'array'], + 'curl_share_close' => ['void', 'sh'=>'resource'], + 'curl_share_init' => ['resource'], + 'curl_share_setopt' => ['bool', 'sh'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'curl_strerror' => ['?string', 'error_code'=>'int'], + 'curl_unescape' => ['string|false', 'ch'=>'resource', 'string'=>'string'], + 'curl_version' => ['array', 'version='=>'int'], + 'current' => ['mixed|false', 'array'=>'array|object'], + 'cyrus_authenticate' => ['void', 'connection'=>'resource', 'mechlist='=>'string', 'service='=>'string', 'user='=>'string', 'minssf='=>'int', 'maxssf='=>'int', 'authname='=>'string', 'password='=>'string'], + 'cyrus_bind' => ['bool', 'connection'=>'resource', 'callbacks'=>'array'], + 'cyrus_close' => ['bool', 'connection'=>'resource'], + 'cyrus_connect' => ['resource', 'host='=>'string', 'port='=>'string', 'flags='=>'int'], + 'cyrus_query' => ['array', 'connection'=>'resource', 'query'=>'string'], + 'cyrus_unbind' => ['bool', 'connection'=>'resource', 'trigger_name'=>'string'], + 'date' => ['string', 'format'=>'string', 'timestamp='=>'int'], + 'date_add' => ['DateTime|false', 'object'=>'DateTime', 'interval'=>'DateInterval'], + 'date_create' => ['DateTime|false', 'datetime='=>'string', 'timezone='=>'?DateTimeZone'], + 'date_create_from_format' => ['DateTime|false', 'format'=>'string', 'datetime'=>'string', 'timezone='=>'?\DateTimeZone'], + 'date_create_immutable' => ['DateTimeImmutable|false', 'datetime='=>'string', 'timezone='=>'?DateTimeZone'], + 'date_create_immutable_from_format' => ['DateTimeImmutable|false', 'format'=>'string', 'datetime'=>'string', 'timezone='=>'?DateTimeZone'], + 'date_date_set' => ['DateTime|false', 'object'=>'DateTime', 'year'=>'int', 'month'=>'int', 'day'=>'int'], + 'date_default_timezone_get' => ['string'], + 'date_default_timezone_set' => ['bool', 'timezoneId'=>'string'], + 'date_diff' => ['DateInterval|false', 'baseObject'=>'DateTimeInterface', 'targetObject'=>'DateTimeInterface', 'absolute='=>'bool'], + 'date_format' => ['string|false', 'object'=>'DateTimeInterface', 'format'=>'string'], + 'date_get_last_errors' => ['array{warning_count:int,warnings:array,error_count:int,errors:array}|false'], + 'date_interval_create_from_date_string' => ['DateInterval', 'datetime'=>'string'], + 'date_interval_format' => ['string', 'object'=>'DateInterval', 'format'=>'string'], + 'date_isodate_set' => ['DateTime|false', 'object'=>'DateTime', 'year'=>'int', 'week'=>'int', 'dayOfWeek='=>'int|mixed'], + 'date_modify' => ['DateTime|false', 'object'=>'DateTime', 'modifier'=>'string'], + 'date_offset_get' => ['int|false', 'object'=>'DateTimeInterface'], + 'date_parse' => ['array|false', 'datetime'=>'string'], + 'date_parse_from_format' => ['array', 'format'=>'string', 'datetime'=>'string'], + 'date_sub' => ['DateTime|false', 'object'=>'DateTime', 'interval'=>'DateInterval'], + 'date_sun_info' => ['array|false', 'timestamp'=>'int', 'latitude'=>'float', 'longitude'=>'float'], + 'date_sunrise' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'float', 'longitude='=>'float', 'zenith='=>'float', 'utcOffset='=>'float'], + 'date_sunset' => ['string|int|float|false', 'timestamp'=>'int', 'returnFormat='=>'int', 'latitude='=>'float', 'longitude='=>'float', 'zenith='=>'float', 'utcOffset='=>'float'], + 'date_time_set' => ['DateTime|false', 'object'=>'', 'hour'=>'', 'minute'=>'', 'second='=>'', 'microsecond='=>''], + 'date_timestamp_get' => ['int', 'object'=>'DateTimeInterface'], + 'date_timestamp_set' => ['DateTime|false', 'object'=>'DateTime', 'timestamp'=>'int'], + 'date_timezone_get' => ['DateTimeZone|false', 'object'=>'DateTimeInterface'], + 'date_timezone_set' => ['DateTime|false', 'object'=>'DateTime', 'timezone'=>'DateTimeZone'], + 'datefmt_create' => ['?IntlDateFormatter', 'locale'=>'?string', 'dateType'=>'int', 'timeType'=>'int', 'timezone='=>'DateTimeZone|IntlTimeZone|string|null', 'calendar='=>'IntlCalendar|int|null', 'pattern='=>'string'], + 'datefmt_format' => ['string|false', 'formatter'=>'IntlDateFormatter', 'datetime'=>'DateTime|IntlCalendar|array|int'], + 'datefmt_format_object' => ['string|false', 'datetime'=>'object', 'format='=>'mixed', 'locale='=>'?string'], + 'datefmt_get_calendar' => ['int', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_calendar_object' => ['IntlCalendar|false|null', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_datetype' => ['int', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_error_code' => ['int', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_error_message' => ['string', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_locale' => ['string|false', 'formatter'=>'IntlDateFormatter', 'type='=>'int'], + 'datefmt_get_pattern' => ['string', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_timetype' => ['int', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_timezone' => ['IntlTimeZone|false', 'formatter'=>'IntlDateFormatter'], + 'datefmt_get_timezone_id' => ['string|false', 'formatter'=>'IntlDateFormatter'], + 'datefmt_is_lenient' => ['bool', 'formatter'=>'IntlDateFormatter'], + 'datefmt_localtime' => ['array|false', 'formatter'=>'IntlDateFormatter', 'string'=>'string', '&rw_offset='=>'int'], + 'datefmt_parse' => ['int|false', 'formatter'=>'IntlDateFormatter', 'string'=>'string', '&rw_offset='=>'int'], + 'datefmt_set_calendar' => ['bool', 'formatter'=>'IntlDateFormatter', 'calendar'=>'IntlCalendar|int|null'], + 'datefmt_set_lenient' => ['void', 'formatter'=>'IntlDateFormatter', 'lenient'=>'bool'], + 'datefmt_set_pattern' => ['bool', 'formatter'=>'IntlDateFormatter', 'pattern'=>'string'], + 'datefmt_set_timezone' => ['false|null', 'formatter'=>'IntlDateFormatter', 'timezone'=>'IntlTimeZone|DateTimeZone|string|null'], + 'db2_autocommit' => ['mixed', 'connection'=>'resource', 'value='=>'int'], + 'db2_bind_param' => ['bool', 'stmt'=>'resource', 'parameter_number'=>'int', 'variable_name'=>'string', 'parameter_type='=>'int', 'data_type='=>'int', 'precision='=>'int', 'scale='=>'int'], + 'db2_client_info' => ['object|false', 'connection'=>'resource'], + 'db2_close' => ['bool', 'connection'=>'resource'], + 'db2_column_privileges' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'column_name='=>'string'], + 'db2_columns' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'column_name='=>'string'], + 'db2_commit' => ['bool', 'connection'=>'resource'], + 'db2_conn_error' => ['string', 'connection='=>'resource'], + 'db2_conn_errormsg' => ['string', 'connection='=>'resource'], + 'db2_connect' => ['resource|false', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'options='=>'array'], + 'db2_cursor_type' => ['int', 'stmt'=>'resource'], + 'db2_escape_string' => ['string', 'string_literal'=>'string'], + 'db2_exec' => ['resource|false', 'connection'=>'resource', 'statement'=>'string', 'options='=>'array'], + 'db2_execute' => ['bool', 'stmt'=>'resource', 'parameters='=>'array'], + 'db2_fetch_array' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], + 'db2_fetch_assoc' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], + 'db2_fetch_both' => ['array|false', 'stmt'=>'resource', 'row_number='=>'int'], + 'db2_fetch_object' => ['object|false', 'stmt'=>'resource', 'row_number='=>'int'], + 'db2_fetch_row' => ['bool', 'stmt'=>'resource', 'row_number='=>'int'], + 'db2_field_display_size' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_name' => ['string|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_num' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_precision' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_scale' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_type' => ['string|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_field_width' => ['int|false', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_foreign_keys' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string'], + 'db2_free_result' => ['bool', 'stmt'=>'resource'], + 'db2_free_stmt' => ['bool', 'stmt'=>'resource'], + 'db2_get_option' => ['string|false', 'resource'=>'resource', 'option'=>'string'], + 'db2_last_insert_id' => ['string', 'resource'=>'resource'], + 'db2_lob_read' => ['string|false', 'stmt'=>'resource', 'colnum'=>'int', 'length'=>'int'], + 'db2_next_result' => ['resource|false', 'stmt'=>'resource'], + 'db2_num_fields' => ['int|false', 'stmt'=>'resource'], + 'db2_num_rows' => ['int', 'stmt'=>'resource'], + 'db2_pclose' => ['bool', 'resource'=>'resource'], + 'db2_pconnect' => ['resource|false', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'options='=>'array'], + 'db2_prepare' => ['resource|false', 'connection'=>'resource', 'statement'=>'string', 'options='=>'array'], + 'db2_primary_keys' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string'], + 'db2_primarykeys' => [''], + 'db2_procedure_columns' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'procedure'=>'string', 'parameter'=>'string'], + 'db2_procedurecolumns' => [''], + 'db2_procedures' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'procedure'=>'string'], + 'db2_result' => ['mixed', 'stmt'=>'resource', 'column'=>'mixed'], + 'db2_rollback' => ['bool', 'connection'=>'resource'], + 'db2_server_info' => ['object|false', 'connection'=>'resource'], + 'db2_set_option' => ['bool', 'resource'=>'resource', 'options'=>'array', 'type'=>'int'], + 'db2_setoption' => [''], + 'db2_special_columns' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string', 'scope'=>'int'], + 'db2_specialcolumns' => [''], + 'db2_statistics' => ['resource|false', 'connection'=>'resource', 'qualifier'=>'string', 'schema'=>'string', 'table_name'=>'string', 'unique'=>'bool'], + 'db2_stmt_error' => ['string', 'stmt='=>'resource'], + 'db2_stmt_errormsg' => ['string', 'stmt='=>'resource'], + 'db2_table_privileges' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string'], + 'db2_tableprivileges' => [''], + 'db2_tables' => ['resource|false', 'connection'=>'resource', 'qualifier='=>'string', 'schema='=>'string', 'table_name='=>'string', 'table_type='=>'string'], + 'dba_close' => ['void', 'dba'=>'resource'], + 'dba_delete' => ['bool', 'key'=>'string', 'dba'=>'resource'], + 'dba_exists' => ['bool', 'key'=>'string', 'dba'=>'resource'], + 'dba_fetch' => ['string|false', 'key'=>'string', 'skip'=>'int', 'dba'=>'resource'], + 'dba_fetch\'1' => ['string|false', 'key'=>'string', 'skip'=>'resource'], + 'dba_firstkey' => ['string', 'dba'=>'resource'], + 'dba_handlers' => ['array', 'full_info='=>'bool'], + 'dba_insert' => ['bool', 'key'=>'string', 'value'=>'string', 'dba'=>'resource'], + 'dba_key_split' => ['array|false', 'key'=>'string|false|null'], + 'dba_list' => ['array'], + 'dba_nextkey' => ['string', 'dba'=>'resource'], + 'dba_open' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'string', '...handler_params='=>'string'], + 'dba_optimize' => ['bool', 'dba'=>'resource'], + 'dba_popen' => ['resource', 'path'=>'string', 'mode'=>'string', 'handler='=>'string', '...handler_params='=>'string'], + 'dba_replace' => ['bool', 'key'=>'string', 'value'=>'string', 'dba'=>'resource'], + 'dba_sync' => ['bool', 'dba'=>'resource'], + 'dbase_add_record' => ['bool', 'dbase_identifier'=>'resource', 'record'=>'array'], + 'dbase_close' => ['bool', 'dbase_identifier'=>'resource'], + 'dbase_create' => ['resource|false', 'filename'=>'string', 'fields'=>'array'], + 'dbase_delete_record' => ['bool', 'dbase_identifier'=>'resource', 'record_number'=>'int'], + 'dbase_get_header_info' => ['array', 'dbase_identifier'=>'resource'], + 'dbase_get_record' => ['array', 'dbase_identifier'=>'resource', 'record_number'=>'int'], + 'dbase_get_record_with_names' => ['array', 'dbase_identifier'=>'resource', 'record_number'=>'int'], + 'dbase_numfields' => ['int', 'dbase_identifier'=>'resource'], + 'dbase_numrecords' => ['int', 'dbase_identifier'=>'resource'], + 'dbase_open' => ['resource|false', 'filename'=>'string', 'mode'=>'int'], + 'dbase_pack' => ['bool', 'dbase_identifier'=>'resource'], + 'dbase_replace_record' => ['bool', 'dbase_identifier'=>'resource', 'record'=>'array', 'record_number'=>'int'], + 'dbplus_add' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_aql' => ['resource', 'query'=>'string', 'server='=>'string', 'dbpath='=>'string'], + 'dbplus_chdir' => ['string', 'newdir='=>'string'], + 'dbplus_close' => ['mixed', 'relation'=>'resource'], + 'dbplus_curr' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_errcode' => ['string', 'errno='=>'int'], + 'dbplus_errno' => ['int'], + 'dbplus_find' => ['int', 'relation'=>'resource', 'constraints'=>'array', 'tuple'=>'mixed'], + 'dbplus_first' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_flush' => ['int', 'relation'=>'resource'], + 'dbplus_freealllocks' => ['int'], + 'dbplus_freelock' => ['int', 'relation'=>'resource', 'tuple'=>'string'], + 'dbplus_freerlocks' => ['int', 'relation'=>'resource'], + 'dbplus_getlock' => ['int', 'relation'=>'resource', 'tuple'=>'string'], + 'dbplus_getunique' => ['int', 'relation'=>'resource', 'uniqueid'=>'int'], + 'dbplus_info' => ['int', 'relation'=>'resource', 'key'=>'string', 'result'=>'array'], + 'dbplus_last' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_lockrel' => ['int', 'relation'=>'resource'], + 'dbplus_next' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_open' => ['resource', 'name'=>'string'], + 'dbplus_prev' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_rchperm' => ['int', 'relation'=>'resource', 'mask'=>'int', 'user'=>'string', 'group'=>'string'], + 'dbplus_rcreate' => ['resource', 'name'=>'string', 'domlist'=>'mixed', 'overwrite='=>'bool'], + 'dbplus_rcrtexact' => ['mixed', 'name'=>'string', 'relation'=>'resource', 'overwrite='=>'bool'], + 'dbplus_rcrtlike' => ['mixed', 'name'=>'string', 'relation'=>'resource', 'overwrite='=>'int'], + 'dbplus_resolve' => ['array', 'relation_name'=>'string'], + 'dbplus_restorepos' => ['int', 'relation'=>'resource', 'tuple'=>'array'], + 'dbplus_rkeys' => ['mixed', 'relation'=>'resource', 'domlist'=>'mixed'], + 'dbplus_ropen' => ['resource', 'name'=>'string'], + 'dbplus_rquery' => ['resource', 'query'=>'string', 'dbpath='=>'string'], + 'dbplus_rrename' => ['int', 'relation'=>'resource', 'name'=>'string'], + 'dbplus_rsecindex' => ['mixed', 'relation'=>'resource', 'domlist'=>'mixed', 'type'=>'int'], + 'dbplus_runlink' => ['int', 'relation'=>'resource'], + 'dbplus_rzap' => ['int', 'relation'=>'resource'], + 'dbplus_savepos' => ['int', 'relation'=>'resource'], + 'dbplus_setindex' => ['int', 'relation'=>'resource', 'idx_name'=>'string'], + 'dbplus_setindexbynumber' => ['int', 'relation'=>'resource', 'idx_number'=>'int'], + 'dbplus_sql' => ['resource', 'query'=>'string', 'server='=>'string', 'dbpath='=>'string'], + 'dbplus_tcl' => ['string', 'sid'=>'int', 'script'=>'string'], + 'dbplus_tremove' => ['int', 'relation'=>'resource', 'tuple'=>'array', 'current='=>'array'], + 'dbplus_undo' => ['int', 'relation'=>'resource'], + 'dbplus_undoprepare' => ['int', 'relation'=>'resource'], + 'dbplus_unlockrel' => ['int', 'relation'=>'resource'], + 'dbplus_unselect' => ['int', 'relation'=>'resource'], + 'dbplus_update' => ['int', 'relation'=>'resource', 'old'=>'array', 'new'=>'array'], + 'dbplus_xlockrel' => ['int', 'relation'=>'resource'], + 'dbplus_xunlockrel' => ['int', 'relation'=>'resource'], + 'dbx_close' => ['int', 'link_identifier'=>'object'], + 'dbx_compare' => ['int', 'row_a'=>'array', 'row_b'=>'array', 'column_key'=>'string', 'flags='=>'int'], + 'dbx_connect' => ['object', 'module'=>'mixed', 'host'=>'string', 'database'=>'string', 'username'=>'string', 'password'=>'string', 'persistent='=>'int'], + 'dbx_error' => ['string', 'link_identifier'=>'object'], + 'dbx_escape_string' => ['string', 'link_identifier'=>'object', 'text'=>'string'], + 'dbx_fetch_row' => ['mixed', 'result_identifier'=>'object'], + 'dbx_query' => ['mixed', 'link_identifier'=>'object', 'sql_statement'=>'string', 'flags='=>'int'], + 'dbx_sort' => ['bool', 'result'=>'object', 'user_compare_function'=>'string'], + 'dcgettext' => ['string', 'domain'=>'string', 'message'=>'string', 'category'=>'int'], + 'dcngettext' => ['string', 'domain'=>'string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int', 'category'=>'int'], + 'deaggregate' => ['', 'object'=>'object', 'class_name='=>'string'], + 'debug_backtrace' => ['list', 'options='=>'int', 'limit='=>'int'], + 'debug_print_backtrace' => ['void', 'options='=>'int', 'limit='=>'int'], + 'debug_zval_dump' => ['void', 'value'=>'mixed', '...values='=>'mixed'], + 'debugger_connect' => [''], + 'debugger_connector_pid' => [''], + 'debugger_get_server_start_time' => [''], + 'debugger_print' => [''], + 'debugger_start_debug' => [''], + 'decbin' => ['string', 'num'=>'int'], + 'dechex' => ['string', 'num'=>'int'], + 'decoct' => ['string', 'num'=>'int'], + 'define' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'case_insensitive='=>'bool'], + 'define_syslog_variables' => ['void'], + 'defined' => ['bool', 'constant_name'=>'string'], + 'deflate_add' => ['string|false', 'context'=>'resource', 'data'=>'string', 'flush_mode='=>'int'], + 'deflate_init' => ['resource|false', 'encoding'=>'int', 'options='=>'array'], + 'deg2rad' => ['float', 'num'=>'float'], + 'dgettext' => ['string', 'domain'=>'string', 'message'=>'string'], + 'dio_close' => ['void', 'fd'=>'resource'], + 'dio_fcntl' => ['mixed', 'fd'=>'resource', 'cmd'=>'int', 'args='=>'mixed'], + 'dio_open' => ['resource|false', 'filename'=>'string', 'flags'=>'int', 'mode='=>'int'], + 'dio_read' => ['string', 'fd'=>'resource', 'length='=>'int'], + 'dio_seek' => ['int', 'fd'=>'resource', 'pos'=>'int', 'whence='=>'int'], + 'dio_stat' => ['?array', 'fd'=>'resource'], + 'dio_tcsetattr' => ['bool', 'fd'=>'resource', 'options'=>'array'], + 'dio_truncate' => ['bool', 'fd'=>'resource', 'offset'=>'int'], + 'dio_write' => ['int', 'fd'=>'resource', 'data'=>'string', 'length='=>'int'], + 'dir' => ['Directory|false', 'directory'=>'string', 'context='=>'resource'], + 'dirname' => ['string', 'path'=>'string', 'levels='=>'int'], + 'disk_free_space' => ['float|false', 'directory'=>'string'], + 'disk_total_space' => ['float|false', 'directory'=>'string'], + 'diskfreespace' => ['float|false', 'directory'=>'string'], + 'display_disabled_function' => [''], + 'dl' => ['bool', 'extension_filename'=>'string'], + 'dngettext' => ['string', 'domain'=>'string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int'], + 'dns_check_record' => ['bool', 'hostname'=>'string', 'type='=>'string'], + 'dns_get_mx' => ['bool', 'hostname'=>'string', '&w_hosts'=>'array', '&w_weights='=>'array'], + 'dns_get_record' => ['list|false', 'hostname'=>'string', 'type='=>'int', '&w_authoritative_name_servers='=>'array', '&w_additional_records='=>'array', 'raw='=>'bool'], + 'dom_document_relaxNG_validate_file' => ['bool', 'filename'=>'string'], + 'dom_document_relaxNG_validate_xml' => ['bool', 'source'=>'string'], + 'dom_document_schema_validate' => ['bool', 'source'=>'string', 'flags'=>'int'], + 'dom_document_schema_validate_file' => ['bool', 'filename'=>'string', 'flags'=>'int'], + 'dom_document_xinclude' => ['int', 'options'=>'int'], + 'dom_import_simplexml' => ['DOMElement|null', 'node'=>'SimpleXMLElement'], + 'dom_xpath_evaluate' => ['', 'expr'=>'string', 'context'=>'DOMNode', 'registernodens'=>'bool'], + 'dom_xpath_query' => ['DOMNodeList', 'expr'=>'string', 'context'=>'DOMNode', 'registernodens'=>'bool'], + 'dom_xpath_register_ns' => ['bool', 'prefix'=>'string', 'uri'=>'string'], + 'dom_xpath_register_php_functions' => [''], + 'domxml_new_doc' => ['DomDocument', 'version'=>'string'], + 'domxml_open_file' => ['DomDocument', 'filename'=>'string', 'mode='=>'int', 'error='=>'array'], + 'domxml_open_mem' => ['DomDocument', 'string'=>'string', 'mode='=>'int', 'error='=>'array'], + 'domxml_version' => ['string'], + 'domxml_xmltree' => ['DomDocument', 'string'=>'string'], + 'domxml_xslt_stylesheet' => ['DomXsltStylesheet', 'xsl_buf'=>'string'], + 'domxml_xslt_stylesheet_doc' => ['DomXsltStylesheet', 'xsl_doc'=>'DOMDocument'], + 'domxml_xslt_stylesheet_file' => ['DomXsltStylesheet', 'xsl_file'=>'string'], + 'domxml_xslt_version' => ['int'], + 'dotnet_load' => ['int', 'assembly_name'=>'string', 'datatype_name='=>'string', 'codepage='=>'int'], + 'doubleval' => ['float', 'value'=>'mixed'], + 'each' => ['array{0:int|string,key:int|string,1:mixed,value:mixed}', '&r_arr'=>'array'], + 'easter_date' => ['int', 'year='=>'int'], + 'easter_days' => ['int', 'year='=>'int', 'mode='=>'int'], + 'echo' => ['void', 'arg1'=>'string', '...args='=>'string'], + 'eio_busy' => ['resource', 'delay'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_cancel' => ['void', 'req'=>'resource'], + 'eio_chmod' => ['resource', 'path'=>'string', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_chown' => ['resource', 'path'=>'string', 'uid'=>'int', 'gid='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_close' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_custom' => ['resource', 'execute'=>'callable', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_dup2' => ['resource', 'fd'=>'mixed', 'fd2'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_event_loop' => ['bool'], + 'eio_fallocate' => ['resource', 'fd'=>'mixed', 'mode'=>'int', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_fchmod' => ['resource', 'fd'=>'mixed', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_fchown' => ['resource', 'fd'=>'mixed', 'uid'=>'int', 'gid='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_fdatasync' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_fstat' => ['resource', 'fd'=>'mixed', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_fstatvfs' => ['resource', 'fd'=>'mixed', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_fsync' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_ftruncate' => ['resource', 'fd'=>'mixed', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_futime' => ['resource', 'fd'=>'mixed', 'atime'=>'float', 'mtime'=>'float', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_get_event_stream' => ['mixed'], + 'eio_get_last_error' => ['string', 'req'=>'resource'], + 'eio_grp' => ['resource', 'callback'=>'callable', 'data='=>'string'], + 'eio_grp_add' => ['void', 'grp'=>'resource', 'req'=>'resource'], + 'eio_grp_cancel' => ['void', 'grp'=>'resource'], + 'eio_grp_limit' => ['void', 'grp'=>'resource', 'limit'=>'int'], + 'eio_init' => ['void'], + 'eio_link' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_lstat' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_mkdir' => ['resource', 'path'=>'string', 'mode'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_mknod' => ['resource', 'path'=>'string', 'mode'=>'int', 'dev'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_nop' => ['resource', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_npending' => ['int'], + 'eio_nready' => ['int'], + 'eio_nreqs' => ['int'], + 'eio_nthreads' => ['int'], + 'eio_open' => ['resource', 'path'=>'string', 'flags'=>'int', 'mode'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_poll' => ['int'], + 'eio_read' => ['resource', 'fd'=>'mixed', 'length'=>'int', 'offset'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_readahead' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_readdir' => ['resource', 'path'=>'string', 'flags'=>'int', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], + 'eio_readlink' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], + 'eio_realpath' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'string'], + 'eio_rename' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_rmdir' => ['resource', 'path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_seek' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'whence'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_sendfile' => ['resource', 'out_fd'=>'mixed', 'in_fd'=>'mixed', 'offset'=>'int', 'length'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'string'], + 'eio_set_max_idle' => ['void', 'nthreads'=>'int'], + 'eio_set_max_parallel' => ['void', 'nthreads'=>'int'], + 'eio_set_max_poll_reqs' => ['void', 'nreqs'=>'int'], + 'eio_set_max_poll_time' => ['void', 'nseconds'=>'float'], + 'eio_set_min_parallel' => ['void', 'nthreads'=>'string'], + 'eio_stat' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_statvfs' => ['resource', 'path'=>'string', 'pri'=>'int', 'callback'=>'callable', 'data='=>'mixed'], + 'eio_symlink' => ['resource', 'path'=>'string', 'new_path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_sync' => ['resource', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_sync_file_range' => ['resource', 'fd'=>'mixed', 'offset'=>'int', 'nbytes'=>'int', 'flags'=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_syncfs' => ['resource', 'fd'=>'mixed', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_truncate' => ['resource', 'path'=>'string', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_unlink' => ['resource', 'path'=>'string', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_utime' => ['resource', 'path'=>'string', 'atime'=>'float', 'mtime'=>'float', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'eio_write' => ['resource', 'fd'=>'mixed', 'string'=>'string', 'length='=>'int', 'offset='=>'int', 'pri='=>'int', 'callback='=>'callable', 'data='=>'mixed'], + 'empty' => ['bool', 'value'=>'mixed'], + 'enchant_broker_describe' => ['array|false', 'broker'=>'resource'], + 'enchant_broker_dict_exists' => ['bool', 'broker'=>'resource', 'tag'=>'string'], + 'enchant_broker_free' => ['bool', 'broker'=>'resource'], + 'enchant_broker_free_dict' => ['bool', 'dictionary'=>'resource'], + 'enchant_broker_get_dict_path' => ['string', 'broker'=>'resource', 'type'=>'int'], + 'enchant_broker_get_error' => ['string|false', 'broker'=>'resource'], + 'enchant_broker_init' => ['resource|false'], + 'enchant_broker_list_dicts' => ['array|false', 'broker'=>'resource'], + 'enchant_broker_request_dict' => ['resource|false', 'broker'=>'resource', 'tag'=>'string'], + 'enchant_broker_request_pwl_dict' => ['resource|false', 'broker'=>'resource', 'filename'=>'string'], + 'enchant_broker_set_dict_path' => ['bool', 'broker'=>'resource', 'type'=>'int', 'path'=>'string'], + 'enchant_broker_set_ordering' => ['bool', 'broker'=>'resource', 'tag'=>'string', 'ordering'=>'string'], + 'enchant_dict_add_to_personal' => ['void', 'dictionary'=>'resource', 'word'=>'string'], + 'enchant_dict_add_to_session' => ['void', 'dictionary'=>'resource', 'word'=>'string'], + 'enchant_dict_check' => ['bool', 'dictionary'=>'resource', 'word'=>'string'], + 'enchant_dict_describe' => ['array', 'dictionary'=>'resource'], + 'enchant_dict_get_error' => ['string', 'dictionary'=>'resource'], + 'enchant_dict_is_in_session' => ['bool', 'dictionary'=>'resource', 'word'=>'string'], + 'enchant_dict_quick_check' => ['bool', 'dictionary'=>'resource', 'word'=>'string', '&w_suggestions='=>'array'], + 'enchant_dict_store_replacement' => ['void', 'dictionary'=>'resource', 'misspelled'=>'string', 'correct'=>'string'], + 'enchant_dict_suggest' => ['array', 'dictionary'=>'resource', 'word'=>'string'], + 'end' => ['mixed|false', '&r_array'=>'array|object'], + 'error_clear_last' => ['void'], + 'error_get_last' => ['?array{type:int,message:string,file:string,line:int}'], + 'error_log' => ['bool', 'message'=>'string', 'message_type='=>'int', 'destination='=>'string', 'additional_headers='=>'string'], + 'error_reporting' => ['int', 'error_level='=>'int'], + 'escapeshellarg' => ['string', 'arg'=>'string'], + 'escapeshellcmd' => ['string', 'command'=>'string'], + 'eval' => ['mixed', 'code_str'=>'string'], + 'event_add' => ['bool', 'event'=>'resource', 'timeout='=>'int'], + 'event_base_free' => ['void', 'event_base'=>'resource'], + 'event_base_loop' => ['int', 'event_base'=>'resource', 'flags='=>'int'], + 'event_base_loopbreak' => ['bool', 'event_base'=>'resource'], + 'event_base_loopexit' => ['bool', 'event_base'=>'resource', 'timeout='=>'int'], + 'event_base_new' => ['resource|false'], + 'event_base_priority_init' => ['bool', 'event_base'=>'resource', 'npriorities'=>'int'], + 'event_base_reinit' => ['bool', 'event_base'=>'resource'], + 'event_base_set' => ['bool', 'event'=>'resource', 'event_base'=>'resource'], + 'event_buffer_base_set' => ['bool', 'bevent'=>'resource', 'event_base'=>'resource'], + 'event_buffer_disable' => ['bool', 'bevent'=>'resource', 'events'=>'int'], + 'event_buffer_enable' => ['bool', 'bevent'=>'resource', 'events'=>'int'], + 'event_buffer_fd_set' => ['void', 'bevent'=>'resource', 'fd'=>'resource'], + 'event_buffer_free' => ['void', 'bevent'=>'resource'], + 'event_buffer_new' => ['resource|false', 'stream'=>'resource', 'readcb'=>'callable|null', 'writecb'=>'callable|null', 'errorcb'=>'callable', 'arg='=>'mixed'], + 'event_buffer_priority_set' => ['bool', 'bevent'=>'resource', 'priority'=>'int'], + 'event_buffer_read' => ['string', 'bevent'=>'resource', 'data_size'=>'int'], + 'event_buffer_set_callback' => ['bool', 'event'=>'resource', 'readcb'=>'mixed', 'writecb'=>'mixed', 'errorcb'=>'mixed', 'arg='=>'mixed'], + 'event_buffer_timeout_set' => ['void', 'bevent'=>'resource', 'read_timeout'=>'int', 'write_timeout'=>'int'], + 'event_buffer_watermark_set' => ['void', 'bevent'=>'resource', 'events'=>'int', 'lowmark'=>'int', 'highmark'=>'int'], + 'event_buffer_write' => ['bool', 'bevent'=>'resource', 'data'=>'string', 'data_size='=>'int'], + 'event_del' => ['bool', 'event'=>'resource'], + 'event_free' => ['void', 'event'=>'resource'], + 'event_new' => ['resource|false'], + 'event_priority_set' => ['bool', 'event'=>'resource', 'priority'=>'int'], + 'event_set' => ['bool', 'event'=>'resource', 'fd'=>'int|resource', 'events'=>'int', 'callback'=>'callable', 'arg='=>'mixed'], + 'event_timer_add' => ['bool', 'event'=>'resource', 'timeout='=>'int'], + 'event_timer_del' => ['bool', 'event'=>'resource'], + 'event_timer_new' => ['resource|false'], + 'event_timer_pending' => ['bool', 'event'=>'resource', 'timeout='=>'int'], + 'event_timer_set' => ['bool', 'event'=>'resource', 'callback'=>'callable', 'arg='=>'mixed'], + 'exec' => ['string|false', 'command'=>'string', '&w_output='=>'array', '&w_result_code='=>'int'], + 'exif_imagetype' => ['int|false', 'filename'=>'string'], + 'exif_read_data' => ['array|false', 'file'=>'string|resource', 'required_sections='=>'string', 'as_arrays='=>'bool', 'read_thumbnail='=>'bool'], + 'exif_tagname' => ['string|false', 'index'=>'int'], + 'exif_thumbnail' => ['string|false', 'file'=>'string', '&w_width='=>'int', '&w_height='=>'int', '&w_image_type='=>'int'], + 'exit' => ['', 'status'=>'string|int'], + 'exp' => ['float', 'num'=>'float'], + 'expect_expectl' => ['int', 'expect'=>'resource', 'cases'=>'array', 'match='=>'array'], + 'expect_popen' => ['resource|false', 'command'=>'string'], + 'explode' => ['list|false', 'separator'=>'string', 'string'=>'string', 'limit='=>'int'], + 'expm1' => ['float', 'num'=>'float'], + 'extension_loaded' => ['bool', 'extension'=>'string'], + 'extract' => ['int', '&rw_array'=>'array', 'flags='=>'int', 'prefix='=>'string'], + 'ezmlm_hash' => ['int', 'addr'=>'string'], + 'fam_cancel_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], + 'fam_close' => ['void', 'fam'=>'resource'], + 'fam_monitor_collection' => ['resource', 'fam'=>'resource', 'dirname'=>'string', 'depth'=>'int', 'mask'=>'string'], + 'fam_monitor_directory' => ['resource', 'fam'=>'resource', 'dirname'=>'string'], + 'fam_monitor_file' => ['resource', 'fam'=>'resource', 'filename'=>'string'], + 'fam_next_event' => ['array', 'fam'=>'resource'], + 'fam_open' => ['resource|false', 'appname='=>'string'], + 'fam_pending' => ['int', 'fam'=>'resource'], + 'fam_resume_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], + 'fam_suspend_monitor' => ['bool', 'fam'=>'resource', 'fam_monitor'=>'resource'], + 'fann_cascadetrain_on_data' => ['bool', 'ann'=>'resource', 'data'=>'resource', 'max_neurons'=>'int', 'neurons_between_reports'=>'int', 'desired_error'=>'float'], + 'fann_cascadetrain_on_file' => ['bool', 'ann'=>'resource', 'filename'=>'string', 'max_neurons'=>'int', 'neurons_between_reports'=>'int', 'desired_error'=>'float'], + 'fann_clear_scaling_params' => ['bool', 'ann'=>'resource'], + 'fann_copy' => ['resource|false', 'ann'=>'resource'], + 'fann_create_from_file' => ['resource', 'configuration_file'=>'string'], + 'fann_create_shortcut' => ['resource|false', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], + 'fann_create_shortcut_array' => ['resource|false', 'num_layers'=>'int', 'layers'=>'array'], + 'fann_create_sparse' => ['resource|false', 'connection_rate'=>'float', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], + 'fann_create_sparse_array' => ['resource|false', 'connection_rate'=>'float', 'num_layers'=>'int', 'layers'=>'array'], + 'fann_create_standard' => ['resource|false', 'num_layers'=>'int', 'num_neurons1'=>'int', 'num_neurons2'=>'int', '...args='=>'int'], + 'fann_create_standard_array' => ['resource|false', 'num_layers'=>'int', 'layers'=>'array'], + 'fann_create_train' => ['resource', 'num_data'=>'int', 'num_input'=>'int', 'num_output'=>'int'], + 'fann_create_train_from_callback' => ['resource', 'num_data'=>'int', 'num_input'=>'int', 'num_output'=>'int', 'user_function'=>'callable'], + 'fann_descale_input' => ['bool', 'ann'=>'resource', 'input_vector'=>'array'], + 'fann_descale_output' => ['bool', 'ann'=>'resource', 'output_vector'=>'array'], + 'fann_descale_train' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], + 'fann_destroy' => ['bool', 'ann'=>'resource'], + 'fann_destroy_train' => ['bool', 'train_data'=>'resource'], + 'fann_duplicate_train_data' => ['resource', 'data'=>'resource'], + 'fann_get_MSE' => ['float|false', 'ann'=>'resource'], + 'fann_get_activation_function' => ['int|false', 'ann'=>'resource', 'layer'=>'int', 'neuron'=>'int'], + 'fann_get_activation_steepness' => ['float|false', 'ann'=>'resource', 'layer'=>'int', 'neuron'=>'int'], + 'fann_get_bias_array' => ['array', 'ann'=>'resource'], + 'fann_get_bit_fail' => ['int|false', 'ann'=>'resource'], + 'fann_get_bit_fail_limit' => ['float|false', 'ann'=>'resource'], + 'fann_get_cascade_activation_functions' => ['array|false', 'ann'=>'resource'], + 'fann_get_cascade_activation_functions_count' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_activation_steepnesses' => ['array|false', 'ann'=>'resource'], + 'fann_get_cascade_activation_steepnesses_count' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_candidate_change_fraction' => ['float|false', 'ann'=>'resource'], + 'fann_get_cascade_candidate_limit' => ['float|false', 'ann'=>'resource'], + 'fann_get_cascade_candidate_stagnation_epochs' => ['float|false', 'ann'=>'resource'], + 'fann_get_cascade_max_cand_epochs' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_max_out_epochs' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_min_cand_epochs' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_min_out_epochs' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_num_candidate_groups' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_num_candidates' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_output_change_fraction' => ['float|false', 'ann'=>'resource'], + 'fann_get_cascade_output_stagnation_epochs' => ['int|false', 'ann'=>'resource'], + 'fann_get_cascade_weight_multiplier' => ['float|false', 'ann'=>'resource'], + 'fann_get_connection_array' => ['array', 'ann'=>'resource'], + 'fann_get_connection_rate' => ['float|false', 'ann'=>'resource'], + 'fann_get_errno' => ['int|false', 'errdat'=>'resource'], + 'fann_get_errstr' => ['string|false', 'errdat'=>'resource'], + 'fann_get_layer_array' => ['array', 'ann'=>'resource'], + 'fann_get_learning_momentum' => ['float|false', 'ann'=>'resource'], + 'fann_get_learning_rate' => ['float|false', 'ann'=>'resource'], + 'fann_get_network_type' => ['int|false', 'ann'=>'resource'], + 'fann_get_num_input' => ['int|false', 'ann'=>'resource'], + 'fann_get_num_layers' => ['int|false', 'ann'=>'resource'], + 'fann_get_num_output' => ['int|false', 'ann'=>'resource'], + 'fann_get_quickprop_decay' => ['float|false', 'ann'=>'resource'], + 'fann_get_quickprop_mu' => ['float|false', 'ann'=>'resource'], + 'fann_get_rprop_decrease_factor' => ['float|false', 'ann'=>'resource'], + 'fann_get_rprop_delta_max' => ['float|false', 'ann'=>'resource'], + 'fann_get_rprop_delta_min' => ['float|false', 'ann'=>'resource'], + 'fann_get_rprop_delta_zero' => ['float|false', 'ann'=>'resource'], + 'fann_get_rprop_increase_factor' => ['float|false', 'ann'=>'resource'], + 'fann_get_sarprop_step_error_shift' => ['float|false', 'ann'=>'resource'], + 'fann_get_sarprop_step_error_threshold_factor' => ['float|false', 'ann'=>'resource'], + 'fann_get_sarprop_temperature' => ['float|false', 'ann'=>'resource'], + 'fann_get_sarprop_weight_decay_shift' => ['float|false', 'ann'=>'resource'], + 'fann_get_total_connections' => ['int|false', 'ann'=>'resource'], + 'fann_get_total_neurons' => ['int|false', 'ann'=>'resource'], + 'fann_get_train_error_function' => ['int|false', 'ann'=>'resource'], + 'fann_get_train_stop_function' => ['int|false', 'ann'=>'resource'], + 'fann_get_training_algorithm' => ['int|false', 'ann'=>'resource'], + 'fann_init_weights' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], + 'fann_length_train_data' => ['int|false', 'data'=>'resource'], + 'fann_merge_train_data' => ['resource|false', 'data1'=>'resource', 'data2'=>'resource'], + 'fann_num_input_train_data' => ['int|false', 'data'=>'resource'], + 'fann_num_output_train_data' => ['int|false', 'data'=>'resource'], + 'fann_print_error' => ['void', 'errdat'=>'string'], + 'fann_randomize_weights' => ['bool', 'ann'=>'resource', 'min_weight'=>'float', 'max_weight'=>'float'], + 'fann_read_train_from_file' => ['resource', 'filename'=>'string'], + 'fann_reset_MSE' => ['bool', 'ann'=>'string'], + 'fann_reset_errno' => ['void', 'errdat'=>'resource'], + 'fann_reset_errstr' => ['void', 'errdat'=>'resource'], + 'fann_run' => ['array|false', 'ann'=>'resource', 'input'=>'array'], + 'fann_save' => ['bool', 'ann'=>'resource', 'configuration_file'=>'string'], + 'fann_save_train' => ['bool', 'data'=>'resource', 'file_name'=>'string'], + 'fann_scale_input' => ['bool', 'ann'=>'resource', 'input_vector'=>'array'], + 'fann_scale_input_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], + 'fann_scale_output' => ['bool', 'ann'=>'resource', 'output_vector'=>'array'], + 'fann_scale_output_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], + 'fann_scale_train' => ['bool', 'ann'=>'resource', 'train_data'=>'resource'], + 'fann_scale_train_data' => ['bool', 'train_data'=>'resource', 'new_min'=>'float', 'new_max'=>'float'], + 'fann_set_activation_function' => ['bool', 'ann'=>'resource', 'activation_function'=>'int', 'layer'=>'int', 'neuron'=>'int'], + 'fann_set_activation_function_hidden' => ['bool', 'ann'=>'resource', 'activation_function'=>'int'], + 'fann_set_activation_function_layer' => ['bool', 'ann'=>'resource', 'activation_function'=>'int', 'layer'=>'int'], + 'fann_set_activation_function_output' => ['bool', 'ann'=>'resource', 'activation_function'=>'int'], + 'fann_set_activation_steepness' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float', 'layer'=>'int', 'neuron'=>'int'], + 'fann_set_activation_steepness_hidden' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float'], + 'fann_set_activation_steepness_layer' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float', 'layer'=>'int'], + 'fann_set_activation_steepness_output' => ['bool', 'ann'=>'resource', 'activation_steepness'=>'float'], + 'fann_set_bit_fail_limit' => ['bool', 'ann'=>'resource', 'bit_fail_limit'=>'float'], + 'fann_set_callback' => ['bool', 'ann'=>'resource', 'callback'=>'callable'], + 'fann_set_cascade_activation_functions' => ['bool', 'ann'=>'resource', 'cascade_activation_functions'=>'array'], + 'fann_set_cascade_activation_steepnesses' => ['bool', 'ann'=>'resource', 'cascade_activation_steepnesses_count'=>'array'], + 'fann_set_cascade_candidate_change_fraction' => ['bool', 'ann'=>'resource', 'cascade_candidate_change_fraction'=>'float'], + 'fann_set_cascade_candidate_limit' => ['bool', 'ann'=>'resource', 'cascade_candidate_limit'=>'float'], + 'fann_set_cascade_candidate_stagnation_epochs' => ['bool', 'ann'=>'resource', 'cascade_candidate_stagnation_epochs'=>'int'], + 'fann_set_cascade_max_cand_epochs' => ['bool', 'ann'=>'resource', 'cascade_max_cand_epochs'=>'int'], + 'fann_set_cascade_max_out_epochs' => ['bool', 'ann'=>'resource', 'cascade_max_out_epochs'=>'int'], + 'fann_set_cascade_min_cand_epochs' => ['bool', 'ann'=>'resource', 'cascade_min_cand_epochs'=>'int'], + 'fann_set_cascade_min_out_epochs' => ['bool', 'ann'=>'resource', 'cascade_min_out_epochs'=>'int'], + 'fann_set_cascade_num_candidate_groups' => ['bool', 'ann'=>'resource', 'cascade_num_candidate_groups'=>'int'], + 'fann_set_cascade_output_change_fraction' => ['bool', 'ann'=>'resource', 'cascade_output_change_fraction'=>'float'], + 'fann_set_cascade_output_stagnation_epochs' => ['bool', 'ann'=>'resource', 'cascade_output_stagnation_epochs'=>'int'], + 'fann_set_cascade_weight_multiplier' => ['bool', 'ann'=>'resource', 'cascade_weight_multiplier'=>'float'], + 'fann_set_error_log' => ['void', 'errdat'=>'resource', 'log_file'=>'string'], + 'fann_set_input_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_input_min'=>'float', 'new_input_max'=>'float'], + 'fann_set_learning_momentum' => ['bool', 'ann'=>'resource', 'learning_momentum'=>'float'], + 'fann_set_learning_rate' => ['bool', 'ann'=>'resource', 'learning_rate'=>'float'], + 'fann_set_output_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_output_min'=>'float', 'new_output_max'=>'float'], + 'fann_set_quickprop_decay' => ['bool', 'ann'=>'resource', 'quickprop_decay'=>'float'], + 'fann_set_quickprop_mu' => ['bool', 'ann'=>'resource', 'quickprop_mu'=>'float'], + 'fann_set_rprop_decrease_factor' => ['bool', 'ann'=>'resource', 'rprop_decrease_factor'=>'float'], + 'fann_set_rprop_delta_max' => ['bool', 'ann'=>'resource', 'rprop_delta_max'=>'float'], + 'fann_set_rprop_delta_min' => ['bool', 'ann'=>'resource', 'rprop_delta_min'=>'float'], + 'fann_set_rprop_delta_zero' => ['bool', 'ann'=>'resource', 'rprop_delta_zero'=>'float'], + 'fann_set_rprop_increase_factor' => ['bool', 'ann'=>'resource', 'rprop_increase_factor'=>'float'], + 'fann_set_sarprop_step_error_shift' => ['bool', 'ann'=>'resource', 'sarprop_step_error_shift'=>'float'], + 'fann_set_sarprop_step_error_threshold_factor' => ['bool', 'ann'=>'resource', 'sarprop_step_error_threshold_factor'=>'float'], + 'fann_set_sarprop_temperature' => ['bool', 'ann'=>'resource', 'sarprop_temperature'=>'float'], + 'fann_set_sarprop_weight_decay_shift' => ['bool', 'ann'=>'resource', 'sarprop_weight_decay_shift'=>'float'], + 'fann_set_scaling_params' => ['bool', 'ann'=>'resource', 'train_data'=>'resource', 'new_input_min'=>'float', 'new_input_max'=>'float', 'new_output_min'=>'float', 'new_output_max'=>'float'], + 'fann_set_train_error_function' => ['bool', 'ann'=>'resource', 'error_function'=>'int'], + 'fann_set_train_stop_function' => ['bool', 'ann'=>'resource', 'stop_function'=>'int'], + 'fann_set_training_algorithm' => ['bool', 'ann'=>'resource', 'training_algorithm'=>'int'], + 'fann_set_weight' => ['bool', 'ann'=>'resource', 'from_neuron'=>'int', 'to_neuron'=>'int', 'weight'=>'float'], + 'fann_set_weight_array' => ['bool', 'ann'=>'resource', 'connections'=>'array'], + 'fann_shuffle_train_data' => ['bool', 'train_data'=>'resource'], + 'fann_subset_train_data' => ['resource', 'data'=>'resource', 'pos'=>'int', 'length'=>'int'], + 'fann_test' => ['bool', 'ann'=>'resource', 'input'=>'array', 'desired_output'=>'array'], + 'fann_test_data' => ['float|false', 'ann'=>'resource', 'data'=>'resource'], + 'fann_train' => ['bool', 'ann'=>'resource', 'input'=>'array', 'desired_output'=>'array'], + 'fann_train_epoch' => ['float|false', 'ann'=>'resource', 'data'=>'resource'], + 'fann_train_on_data' => ['bool', 'ann'=>'resource', 'data'=>'resource', 'max_epochs'=>'int', 'epochs_between_reports'=>'int', 'desired_error'=>'float'], + 'fann_train_on_file' => ['bool', 'ann'=>'resource', 'filename'=>'string', 'max_epochs'=>'int', 'epochs_between_reports'=>'int', 'desired_error'=>'float'], + 'fastcgi_finish_request' => ['bool'], + 'fbsql_affected_rows' => ['int', 'link_identifier='=>'?resource'], + 'fbsql_autocommit' => ['bool', 'link_identifier'=>'resource', 'onoff='=>'bool'], + 'fbsql_blob_size' => ['int', 'blob_handle'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_change_user' => ['bool', 'user'=>'string', 'password'=>'string', 'database='=>'string', 'link_identifier='=>'?resource'], + 'fbsql_clob_size' => ['int', 'clob_handle'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_close' => ['bool', 'link_identifier='=>'?resource'], + 'fbsql_commit' => ['bool', 'link_identifier='=>'?resource'], + 'fbsql_connect' => ['resource', 'hostname='=>'string', 'username='=>'string', 'password='=>'string'], + 'fbsql_create_blob' => ['string', 'blob_data'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_create_clob' => ['string', 'clob_data'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_create_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource', 'database_options='=>'string'], + 'fbsql_data_seek' => ['bool', 'result'=>'resource', 'row_number'=>'int'], + 'fbsql_database' => ['string', 'link_identifier'=>'resource', 'database='=>'string'], + 'fbsql_database_password' => ['string', 'link_identifier'=>'resource', 'database_password='=>'string'], + 'fbsql_db_query' => ['resource', 'database'=>'string', 'query'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_db_status' => ['int', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_drop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_errno' => ['int', 'link_identifier='=>'?resource'], + 'fbsql_error' => ['string', 'link_identifier='=>'?resource'], + 'fbsql_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], + 'fbsql_fetch_assoc' => ['array', 'result'=>'resource'], + 'fbsql_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_fetch_lengths' => ['array', 'result'=>'resource'], + 'fbsql_fetch_object' => ['object', 'result'=>'resource'], + 'fbsql_fetch_row' => ['array', 'result'=>'resource'], + 'fbsql_field_flags' => ['string', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_field_len' => ['int', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_field_name' => ['string', 'result'=>'resource', 'field_index='=>'int'], + 'fbsql_field_seek' => ['bool', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_field_table' => ['string', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_field_type' => ['string', 'result'=>'resource', 'field_offset='=>'int'], + 'fbsql_free_result' => ['bool', 'result'=>'resource'], + 'fbsql_get_autostart_info' => ['array', 'link_identifier='=>'?resource'], + 'fbsql_hostname' => ['string', 'link_identifier'=>'resource', 'host_name='=>'string'], + 'fbsql_insert_id' => ['int', 'link_identifier='=>'?resource'], + 'fbsql_list_dbs' => ['resource', 'link_identifier='=>'?resource'], + 'fbsql_list_fields' => ['resource', 'database_name'=>'string', 'table_name'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_list_tables' => ['resource', 'database'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_next_result' => ['bool', 'result'=>'resource'], + 'fbsql_num_fields' => ['int', 'result'=>'resource'], + 'fbsql_num_rows' => ['int', 'result'=>'resource'], + 'fbsql_password' => ['string', 'link_identifier'=>'resource', 'password='=>'string'], + 'fbsql_pconnect' => ['resource', 'hostname='=>'string', 'username='=>'string', 'password='=>'string'], + 'fbsql_query' => ['resource', 'query'=>'string', 'link_identifier='=>'?resource', 'batch_size='=>'int'], + 'fbsql_read_blob' => ['string', 'blob_handle'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_read_clob' => ['string', 'clob_handle'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_result' => ['mixed', 'result'=>'resource', 'row='=>'int', 'field='=>'mixed'], + 'fbsql_rollback' => ['bool', 'link_identifier='=>'?resource'], + 'fbsql_rows_fetched' => ['int', 'result'=>'resource'], + 'fbsql_select_db' => ['bool', 'database_name='=>'string', 'link_identifier='=>'?resource'], + 'fbsql_set_characterset' => ['void', 'link_identifier'=>'resource', 'characterset'=>'int', 'in_out_both='=>'int'], + 'fbsql_set_lob_mode' => ['bool', 'result'=>'resource', 'lob_mode'=>'int'], + 'fbsql_set_password' => ['bool', 'link_identifier'=>'resource', 'user'=>'string', 'password'=>'string', 'old_password'=>'string'], + 'fbsql_set_transaction' => ['void', 'link_identifier'=>'resource', 'locking'=>'int', 'isolation'=>'int'], + 'fbsql_start_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource', 'database_options='=>'string'], + 'fbsql_stop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'fbsql_table_name' => ['string', 'result'=>'resource', 'index'=>'int'], + 'fbsql_username' => ['string', 'link_identifier'=>'resource', 'username='=>'string'], + 'fbsql_warnings' => ['bool', 'onoff='=>'bool'], + 'fclose' => ['bool', 'stream'=>'resource'], + 'fdf_add_doc_javascript' => ['bool', 'fdf_document'=>'resource', 'script_name'=>'string', 'script_code'=>'string'], + 'fdf_add_template' => ['bool', 'fdf_document'=>'resource', 'newpage'=>'int', 'filename'=>'string', 'template'=>'string', 'rename'=>'int'], + 'fdf_close' => ['void', 'fdf_document'=>'resource'], + 'fdf_create' => ['resource'], + 'fdf_enum_values' => ['bool', 'fdf_document'=>'resource', 'function'=>'callable', 'userdata='=>'mixed'], + 'fdf_errno' => ['int'], + 'fdf_error' => ['string', 'error_code='=>'int'], + 'fdf_get_ap' => ['bool', 'fdf_document'=>'resource', 'field'=>'string', 'face'=>'int', 'filename'=>'string'], + 'fdf_get_attachment' => ['array', 'fdf_document'=>'resource', 'fieldname'=>'string', 'savepath'=>'string'], + 'fdf_get_encoding' => ['string', 'fdf_document'=>'resource'], + 'fdf_get_file' => ['string', 'fdf_document'=>'resource'], + 'fdf_get_flags' => ['int', 'fdf_document'=>'resource', 'fieldname'=>'string', 'whichflags'=>'int'], + 'fdf_get_opt' => ['mixed', 'fdf_document'=>'resource', 'fieldname'=>'string', 'element='=>'int'], + 'fdf_get_status' => ['string', 'fdf_document'=>'resource'], + 'fdf_get_value' => ['mixed', 'fdf_document'=>'resource', 'fieldname'=>'string', 'which='=>'int'], + 'fdf_get_version' => ['string', 'fdf_document='=>'resource'], + 'fdf_header' => ['void'], + 'fdf_next_field_name' => ['string', 'fdf_document'=>'resource', 'fieldname='=>'string'], + 'fdf_open' => ['resource|false', 'filename'=>'string'], + 'fdf_open_string' => ['resource', 'fdf_data'=>'string'], + 'fdf_remove_item' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'item'=>'int'], + 'fdf_save' => ['bool', 'fdf_document'=>'resource', 'filename='=>'string'], + 'fdf_save_string' => ['string', 'fdf_document'=>'resource'], + 'fdf_set_ap' => ['bool', 'fdf_document'=>'resource', 'field_name'=>'string', 'face'=>'int', 'filename'=>'string', 'page_number'=>'int'], + 'fdf_set_encoding' => ['bool', 'fdf_document'=>'resource', 'encoding'=>'string'], + 'fdf_set_file' => ['bool', 'fdf_document'=>'resource', 'url'=>'string', 'target_frame='=>'string'], + 'fdf_set_flags' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'whichflags'=>'int', 'newflags'=>'int'], + 'fdf_set_javascript_action' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'trigger'=>'int', 'script'=>'string'], + 'fdf_set_on_import_javascript' => ['bool', 'fdf_document'=>'resource', 'script'=>'string', 'before_data_import'=>'bool'], + 'fdf_set_opt' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'element'=>'int', 'string1'=>'string', 'string2'=>'string'], + 'fdf_set_status' => ['bool', 'fdf_document'=>'resource', 'status'=>'string'], + 'fdf_set_submit_form_action' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'trigger'=>'int', 'script'=>'string', 'flags'=>'int'], + 'fdf_set_target_frame' => ['bool', 'fdf_document'=>'resource', 'frame_name'=>'string'], + 'fdf_set_value' => ['bool', 'fdf_document'=>'resource', 'fieldname'=>'string', 'value'=>'mixed', 'isname='=>'int'], + 'fdf_set_version' => ['bool', 'fdf_document'=>'resource', 'version'=>'string'], + 'feof' => ['bool', 'stream'=>'resource'], + 'fflush' => ['bool', 'stream'=>'resource'], + 'ffmpeg_animated_gif::__construct' => ['void', 'output_file_path'=>'string', 'width'=>'int', 'height'=>'int', 'frame_rate'=>'int', 'loop_count='=>'int'], + 'ffmpeg_animated_gif::addFrame' => ['', 'frame_to_add'=>'ffmpeg_frame'], + 'ffmpeg_frame::__construct' => ['void', 'gd_image'=>'resource'], + 'ffmpeg_frame::crop' => ['', 'crop_top'=>'int', 'crop_bottom='=>'int', 'crop_left='=>'int', 'crop_right='=>'int'], + 'ffmpeg_frame::getHeight' => ['int'], + 'ffmpeg_frame::getPTS' => ['int'], + 'ffmpeg_frame::getPresentationTimestamp' => ['int'], + 'ffmpeg_frame::getWidth' => ['int'], + 'ffmpeg_frame::resize' => ['', 'width'=>'int', 'height'=>'int', 'crop_top='=>'int', 'crop_bottom='=>'int', 'crop_left='=>'int', 'crop_right='=>'int'], + 'ffmpeg_frame::toGDImage' => ['resource'], + 'ffmpeg_movie::__construct' => ['void', 'path_to_media'=>'string', 'persistent'=>'bool'], + 'ffmpeg_movie::getArtist' => ['string'], + 'ffmpeg_movie::getAudioBitRate' => ['int'], + 'ffmpeg_movie::getAudioChannels' => ['int'], + 'ffmpeg_movie::getAudioCodec' => ['string'], + 'ffmpeg_movie::getAudioSampleRate' => ['int'], + 'ffmpeg_movie::getAuthor' => ['string'], + 'ffmpeg_movie::getBitRate' => ['int'], + 'ffmpeg_movie::getComment' => ['string'], + 'ffmpeg_movie::getCopyright' => ['string'], + 'ffmpeg_movie::getDuration' => ['int'], + 'ffmpeg_movie::getFilename' => ['string'], + 'ffmpeg_movie::getFrame' => ['ffmpeg_frame|false', 'framenumber'=>'int'], + 'ffmpeg_movie::getFrameCount' => ['int'], + 'ffmpeg_movie::getFrameHeight' => ['int'], + 'ffmpeg_movie::getFrameNumber' => ['int'], + 'ffmpeg_movie::getFrameRate' => ['int'], + 'ffmpeg_movie::getFrameWidth' => ['int'], + 'ffmpeg_movie::getGenre' => ['string'], + 'ffmpeg_movie::getNextKeyFrame' => ['ffmpeg_frame|false'], + 'ffmpeg_movie::getPixelFormat' => [''], + 'ffmpeg_movie::getTitle' => ['string'], + 'ffmpeg_movie::getTrackNumber' => ['int|string'], + 'ffmpeg_movie::getVideoBitRate' => ['int'], + 'ffmpeg_movie::getVideoCodec' => ['string'], + 'ffmpeg_movie::getYear' => ['int|string'], + 'ffmpeg_movie::hasAudio' => ['bool'], + 'ffmpeg_movie::hasVideo' => ['bool'], + 'fgetc' => ['string|false', 'stream'=>'resource'], + 'fgetcsv' => ['list|array{0: null}|false', 'stream'=>'resource', 'length='=>'int', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'fgets' => ['string|false', 'stream'=>'resource', 'length='=>'int'], + 'fgetss' => ['string|false', 'fp'=>'resource', 'length='=>'int', 'allowable_tags='=>'string'], + 'file' => ['list|false', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'file_exists' => ['bool', 'filename'=>'string'], + 'file_get_contents' => ['string|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'?resource', 'offset='=>'int', 'length='=>'int'], + 'file_put_contents' => ['int|false', 'filename'=>'string', 'data'=>'string|resource|array', 'flags='=>'int', 'context='=>'resource'], + 'fileatime' => ['int|false', 'filename'=>'string'], + 'filectime' => ['int|false', 'filename'=>'string'], + 'filegroup' => ['int|false', 'filename'=>'string'], + 'fileinode' => ['int|false', 'filename'=>'string'], + 'filemtime' => ['int|false', 'filename'=>'string'], + 'fileowner' => ['int|false', 'filename'=>'string'], + 'fileperms' => ['int|false', 'filename'=>'string'], + 'filepro' => ['bool', 'directory'=>'string'], + 'filepro_fieldcount' => ['int'], + 'filepro_fieldname' => ['string', 'field_number'=>'int'], + 'filepro_fieldtype' => ['string', 'field_number'=>'int'], + 'filepro_fieldwidth' => ['int', 'field_number'=>'int'], + 'filepro_retrieve' => ['string', 'row_number'=>'int', 'field_number'=>'int'], + 'filepro_rowcount' => ['int'], + 'filesize' => ['int|false', 'filename'=>'string'], + 'filetype' => ['string|false', 'filename'=>'string'], + 'filter_has_var' => ['bool', 'input_type'=>'int', 'var_name'=>'string'], + 'filter_id' => ['int|false', 'name'=>'string'], + 'filter_input' => ['mixed|false', 'type'=>'int', 'var_name'=>'string', 'filter='=>'int', 'options='=>'array|int'], + 'filter_input_array' => ['array|false|null', 'type'=>'int', 'options='=>'int|array', 'add_empty='=>'bool'], + 'filter_list' => ['array'], + 'filter_var' => ['mixed|false', 'value'=>'mixed', 'filter='=>'int', 'options='=>'array|int'], + 'filter_var_array' => ['array|false|null', 'array'=>'array', 'options='=>'array|int', 'add_empty='=>'bool'], + 'finfo::__construct' => ['void', 'flags='=>'int', 'magic_database='=>'string'], + 'finfo::buffer' => ['string|false', 'string'=>'string', 'flags='=>'int', 'context='=>'?resource'], + 'finfo::file' => ['string|false', 'filename'=>'string', 'flags='=>'int', 'context='=>'?resource'], + 'finfo::set_flags' => ['bool', 'flags'=>'int'], + 'finfo_buffer' => ['string|false', 'finfo'=>'resource', 'string'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'finfo_close' => ['bool', 'finfo'=>'resource'], + 'finfo_file' => ['string|false', 'finfo'=>'resource', 'filename'=>'string', 'flags='=>'int', 'context='=>'resource'], + 'finfo_open' => ['resource|false', 'flags='=>'int', 'magic_database='=>'string'], + 'finfo_set_flags' => ['bool', 'finfo'=>'resource', 'flags'=>'int'], + 'floatval' => ['float', 'value'=>'mixed'], + 'flock' => ['bool', 'stream'=>'resource', 'operation'=>'int', '&w_would_block='=>'int'], + 'floor' => ['float', 'num'=>'float'], + 'flush' => ['void'], + 'fmod' => ['float', 'num1'=>'float', 'num2'=>'float'], + 'fnmatch' => ['bool', 'pattern'=>'string', 'filename'=>'string', 'flags='=>'int'], + 'fopen' => ['resource|false', 'filename'=>'string', 'mode'=>'string', 'use_include_path='=>'bool', 'context='=>'resource|null'], + 'forward_static_call' => ['mixed|false', 'callback'=>'callable', '...args='=>'mixed'], + 'forward_static_call_array' => ['mixed|false', 'callback'=>'callable', 'args'=>'list'], + 'fpassthru' => ['int', 'stream'=>'resource'], + 'fprintf' => ['int', 'stream'=>'resource', 'format'=>'string', '...values='=>'string|int|float'], + 'fputcsv' => ['int|false', 'stream'=>'resource', 'fields'=>'array', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'fputs' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'fread' => ['string|false', 'stream'=>'resource', 'length'=>'int'], + 'frenchtojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'fribidi_log2vis' => ['string', 'string'=>'string', 'direction'=>'string', 'charset'=>'int'], + 'fscanf' => ['list', 'stream'=>'resource', 'format'=>'string'], + 'fscanf\'1' => ['int', 'stream'=>'resource', 'format'=>'string', '&...w_vars='=>'string|int|float'], + 'fseek' => ['int', 'stream'=>'resource', 'offset'=>'int', 'whence='=>'int'], + 'fsockopen' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float'], + 'fstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'stream'=>'resource'], + 'ftell' => ['int|false', 'stream'=>'resource'], + 'ftok' => ['int', 'filename'=>'string', 'project_id'=>'string'], + 'ftp_alloc' => ['bool', 'ftp'=>'resource', 'size'=>'int', '&w_response='=>'string'], + 'ftp_cdup' => ['bool', 'ftp'=>'resource'], + 'ftp_chdir' => ['bool', 'ftp'=>'resource', 'directory'=>'string'], + 'ftp_chmod' => ['int|false', 'ftp'=>'resource', 'permissions'=>'int', 'filename'=>'string'], + 'ftp_close' => ['bool', 'ftp'=>'resource'], + 'ftp_connect' => ['resource|false', 'hostname'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'ftp_delete' => ['bool', 'ftp'=>'resource', 'filename'=>'string'], + 'ftp_exec' => ['bool', 'ftp'=>'resource', 'command'=>'string'], + 'ftp_fget' => ['bool', 'ftp'=>'resource', 'stream'=>'resource', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_fput' => ['bool', 'ftp'=>'resource', 'remote_filename'=>'string', 'stream'=>'resource', 'mode='=>'int', 'offset='=>'int'], + 'ftp_get' => ['bool', 'ftp'=>'resource', 'local_filename'=>'string', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_get_option' => ['int|false', 'ftp'=>'resource', 'option'=>'int'], + 'ftp_login' => ['bool', 'ftp'=>'resource', 'username'=>'string', 'password'=>'string'], + 'ftp_mdtm' => ['int', 'ftp'=>'resource', 'filename'=>'string'], + 'ftp_mkdir' => ['string|false', 'ftp'=>'resource', 'directory'=>'string'], + 'ftp_mlsd' => ['array|false', 'ftp'=>'resource', 'directory'=>'string'], + 'ftp_nb_continue' => ['int', 'ftp'=>'resource'], + 'ftp_nb_fget' => ['int', 'ftp'=>'resource', 'stream'=>'resource', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_nb_fput' => ['int', 'ftp'=>'resource', 'remote_filename'=>'string', 'stream'=>'resource', 'mode='=>'int', 'offset='=>'int'], + 'ftp_nb_get' => ['int', 'ftp'=>'resource', 'local_filename'=>'string', 'remote_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_nb_put' => ['int', 'ftp'=>'resource', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_nlist' => ['array|false', 'ftp'=>'resource', 'directory'=>'string'], + 'ftp_pasv' => ['bool', 'ftp'=>'resource', 'enable'=>'bool'], + 'ftp_put' => ['bool', 'ftp'=>'resource', 'remote_filename'=>'string', 'local_filename'=>'string', 'mode='=>'int', 'offset='=>'int'], + 'ftp_pwd' => ['string|false', 'ftp'=>'resource'], + 'ftp_quit' => ['bool', 'ftp'=>'resource'], + 'ftp_raw' => ['?array', 'ftp'=>'resource', 'command'=>'string'], + 'ftp_rawlist' => ['array|false', 'ftp'=>'resource', 'directory'=>'string', 'recursive='=>'bool'], + 'ftp_rename' => ['bool', 'ftp'=>'resource', 'from'=>'string', 'to'=>'string'], + 'ftp_rmdir' => ['bool', 'ftp'=>'resource', 'directory'=>'string'], + 'ftp_set_option' => ['bool', 'ftp'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'ftp_site' => ['bool', 'ftp'=>'resource', 'command'=>'string'], + 'ftp_size' => ['int', 'ftp'=>'resource', 'filename'=>'string'], + 'ftp_ssl_connect' => ['resource|false', 'hostname'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'ftp_systype' => ['string|false', 'ftp'=>'resource'], + 'ftruncate' => ['bool', 'stream'=>'resource', 'size'=>'int'], + 'func_get_arg' => ['mixed|false', 'position'=>'int'], + 'func_get_args' => ['list'], + 'func_num_args' => ['int'], + 'function_exists' => ['bool', 'function'=>'string'], + 'fwrite' => ['int|false', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'gc_collect_cycles' => ['int'], + 'gc_disable' => ['void'], + 'gc_enable' => ['void'], + 'gc_enabled' => ['bool'], + 'gc_mem_caches' => ['int'], + 'gd_info' => ['array'], + 'gearman_bugreport' => [''], + 'gearman_client_add_options' => ['', 'client_object'=>'', 'option'=>''], + 'gearman_client_add_server' => ['', 'client_object'=>'', 'host'=>'', 'port'=>''], + 'gearman_client_add_servers' => ['', 'client_object'=>'', 'servers'=>''], + 'gearman_client_add_task' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_high' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_high_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_low' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_low_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'context'=>'', 'unique'=>''], + 'gearman_client_add_task_status' => ['', 'client_object'=>'', 'job_handle'=>'', 'context'=>''], + 'gearman_client_clear_fn' => ['', 'client_object'=>''], + 'gearman_client_clone' => ['', 'client_object'=>''], + 'gearman_client_context' => ['', 'client_object'=>''], + 'gearman_client_create' => ['', 'client_object'=>''], + 'gearman_client_do' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_high' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_high_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_job_handle' => ['', 'client_object'=>''], + 'gearman_client_do_low' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_low_background' => ['', 'client_object'=>'', 'function_name'=>'', 'workload'=>'', 'unique'=>''], + 'gearman_client_do_normal' => ['', 'client_object'=>'', 'function_name'=>'string', 'workload'=>'string', 'unique'=>'string'], + 'gearman_client_do_status' => ['', 'client_object'=>''], + 'gearman_client_echo' => ['', 'client_object'=>'', 'workload'=>''], + 'gearman_client_errno' => ['', 'client_object'=>''], + 'gearman_client_error' => ['', 'client_object'=>''], + 'gearman_client_job_status' => ['', 'client_object'=>'', 'job_handle'=>''], + 'gearman_client_options' => ['', 'client_object'=>''], + 'gearman_client_remove_options' => ['', 'client_object'=>'', 'option'=>''], + 'gearman_client_return_code' => ['', 'client_object'=>''], + 'gearman_client_run_tasks' => ['', 'data'=>''], + 'gearman_client_set_complete_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_context' => ['', 'client_object'=>'', 'context'=>''], + 'gearman_client_set_created_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_data_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_exception_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_fail_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_options' => ['', 'client_object'=>'', 'option'=>''], + 'gearman_client_set_status_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_timeout' => ['', 'client_object'=>'', 'timeout'=>''], + 'gearman_client_set_warning_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_set_workload_fn' => ['', 'client_object'=>'', 'callback'=>''], + 'gearman_client_timeout' => ['', 'client_object'=>''], + 'gearman_client_wait' => ['', 'client_object'=>''], + 'gearman_job_function_name' => ['', 'job_object'=>''], + 'gearman_job_handle' => ['string'], + 'gearman_job_return_code' => ['', 'job_object'=>''], + 'gearman_job_send_complete' => ['', 'job_object'=>'', 'result'=>''], + 'gearman_job_send_data' => ['', 'job_object'=>'', 'data'=>''], + 'gearman_job_send_exception' => ['', 'job_object'=>'', 'exception'=>''], + 'gearman_job_send_fail' => ['', 'job_object'=>''], + 'gearman_job_send_status' => ['', 'job_object'=>'', 'numerator'=>'', 'denominator'=>''], + 'gearman_job_send_warning' => ['', 'job_object'=>'', 'warning'=>''], + 'gearman_job_status' => ['array', 'job_handle'=>'string'], + 'gearman_job_unique' => ['', 'job_object'=>''], + 'gearman_job_workload' => ['', 'job_object'=>''], + 'gearman_job_workload_size' => ['', 'job_object'=>''], + 'gearman_task_data' => ['', 'task_object'=>''], + 'gearman_task_data_size' => ['', 'task_object'=>''], + 'gearman_task_denominator' => ['', 'task_object'=>''], + 'gearman_task_function_name' => ['', 'task_object'=>''], + 'gearman_task_is_known' => ['', 'task_object'=>''], + 'gearman_task_is_running' => ['', 'task_object'=>''], + 'gearman_task_job_handle' => ['', 'task_object'=>''], + 'gearman_task_numerator' => ['', 'task_object'=>''], + 'gearman_task_recv_data' => ['', 'task_object'=>'', 'data_len'=>''], + 'gearman_task_return_code' => ['', 'task_object'=>''], + 'gearman_task_send_workload' => ['', 'task_object'=>'', 'data'=>''], + 'gearman_task_unique' => ['', 'task_object'=>''], + 'gearman_verbose_name' => ['', 'verbose'=>''], + 'gearman_version' => [''], + 'gearman_worker_add_function' => ['', 'worker_object'=>'', 'function_name'=>'', 'function'=>'', 'data'=>'', 'timeout'=>''], + 'gearman_worker_add_options' => ['', 'worker_object'=>'', 'option'=>''], + 'gearman_worker_add_server' => ['', 'worker_object'=>'', 'host'=>'', 'port'=>''], + 'gearman_worker_add_servers' => ['', 'worker_object'=>'', 'servers'=>''], + 'gearman_worker_clone' => ['', 'worker_object'=>''], + 'gearman_worker_create' => [''], + 'gearman_worker_echo' => ['', 'worker_object'=>'', 'workload'=>''], + 'gearman_worker_errno' => ['', 'worker_object'=>''], + 'gearman_worker_error' => ['', 'worker_object'=>''], + 'gearman_worker_grab_job' => ['', 'worker_object'=>''], + 'gearman_worker_options' => ['', 'worker_object'=>''], + 'gearman_worker_register' => ['', 'worker_object'=>'', 'function_name'=>'', 'timeout'=>''], + 'gearman_worker_remove_options' => ['', 'worker_object'=>'', 'option'=>''], + 'gearman_worker_return_code' => ['', 'worker_object'=>''], + 'gearman_worker_set_options' => ['', 'worker_object'=>'', 'option'=>''], + 'gearman_worker_set_timeout' => ['', 'worker_object'=>'', 'timeout'=>''], + 'gearman_worker_timeout' => ['', 'worker_object'=>''], + 'gearman_worker_unregister' => ['', 'worker_object'=>'', 'function_name'=>''], + 'gearman_worker_unregister_all' => ['', 'worker_object'=>''], + 'gearman_worker_wait' => ['', 'worker_object'=>''], + 'gearman_worker_work' => ['', 'worker_object'=>''], + 'geoip_asnum_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_continent_code_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_country_code3_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_country_code_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_country_name_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_database_info' => ['string', 'database='=>'int'], + 'geoip_db_avail' => ['bool', 'database'=>'int'], + 'geoip_db_filename' => ['string', 'database'=>'int'], + 'geoip_db_get_all_info' => ['array'], + 'geoip_domain_by_name' => ['string', 'hostname'=>'string'], + 'geoip_id_by_name' => ['int', 'hostname'=>'string'], + 'geoip_isp_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_netspeedcell_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_org_by_name' => ['string|false', 'hostname'=>'string'], + 'geoip_record_by_name' => ['array|false', 'hostname'=>'string'], + 'geoip_region_by_name' => ['array|false', 'hostname'=>'string'], + 'geoip_region_name_by_code' => ['string|false', 'country_code'=>'string', 'region_code'=>'string'], + 'geoip_setup_custom_directory' => ['void', 'path'=>'string'], + 'geoip_time_zone_by_country_and_region' => ['string|false', 'country_code'=>'string', 'region_code='=>'string'], + 'get_browser' => ['array|object|false', 'user_agent='=>'?string', 'return_array='=>'bool'], + 'get_call_stack' => [''], + 'get_called_class' => ['class-string'], + 'get_cfg_var' => ['string|false', 'option'=>'string'], + 'get_class' => ['class-string', 'object='=>'object'], + 'get_class_methods' => ['list|null', 'object_or_class'=>'mixed'], + 'get_class_vars' => ['array', 'class'=>'string'], + 'get_current_user' => ['string'], + 'get_declared_classes' => ['list'], + 'get_declared_interfaces' => ['list'], + 'get_declared_traits' => ['list'], + 'get_defined_constants' => ['array', 'categorize='=>'bool'], + 'get_defined_functions' => ['array{internal: list, user: list}', 'exclude_disabled='=>'bool'], + 'get_defined_vars' => ['array'], + 'get_extension_funcs' => ['list|false', 'extension'=>'string'], + 'get_headers' => ['array|false', 'url'=>'string', 'associative='=>'int'], + 'get_html_translation_table' => ['array', 'table='=>'int', 'flags='=>'int', 'encoding='=>'string'], + 'get_include_path' => ['string'], + 'get_included_files' => ['list'], + 'get_loaded_extensions' => ['list', 'zend_extensions='=>'bool'], + 'get_magic_quotes_gpc' => ['int|false'], + 'get_magic_quotes_runtime' => ['int|false'], + 'get_meta_tags' => ['array', 'filename'=>'string', 'use_include_path='=>'bool'], + 'get_object_vars' => ['array', 'object'=>'object'], + 'get_parent_class' => ['class-string|false', 'object_or_class='=>'mixed'], + 'get_required_files' => ['list'], + 'get_resource_type' => ['string', 'resource'=>'resource'], + 'get_resources' => ['array', 'type='=>'string'], + 'getallheaders' => ['array|false'], + 'getcwd' => ['string|false'], + 'getdate' => ['array{seconds: int<0, 59>, minutes: int<0, 59>, hours: int<0, 23>, mday: int<1, 31>, wday: int<0, 6>, mon: int<1, 12>, year: int, yday: int<0, 365>, weekday: "Monday"|"Tuesday"|"Wednesday"|"Thursday"|"Friday"|"Saturday"|"Sunday", month: "January"|"February"|"March"|"April"|"May"|"June"|"July"|"August"|"September"|"October"|"November"|"December", 0: int}', 'timestamp='=>'int'], + 'getenv' => ['string|false', 'name'=>'string', 'local_only='=>'bool'], + 'gethostbyaddr' => ['string|false', 'ip'=>'string'], + 'gethostbyname' => ['string', 'hostname'=>'string'], + 'gethostbynamel' => ['list|false', 'hostname'=>'string'], + 'gethostname' => ['string|false'], + 'getimagesize' => ['array|false', 'filename'=>'string', '&w_image_info='=>'array'], + 'getimagesizefromstring' => ['array|false', 'string'=>'string', '&w_image_info='=>'array'], + 'getlastmod' => ['int|false'], + 'getmxrr' => ['bool', 'hostname'=>'string', '&w_hosts'=>'array', '&w_weights='=>'array'], + 'getmygid' => ['int|false'], + 'getmyinode' => ['int|false'], + 'getmypid' => ['int|false'], + 'getmyuid' => ['int|false'], + 'getopt' => ['array>|false', 'short_options'=>'string', 'long_options='=>'array'], + 'getprotobyname' => ['int|false', 'protocol'=>'string'], + 'getprotobynumber' => ['string', 'protocol'=>'int'], + 'getrandmax' => ['int'], + 'getrusage' => ['array', 'mode='=>'int'], + 'getservbyname' => ['int|false', 'service'=>'string', 'protocol'=>'string'], + 'getservbyport' => ['string|false', 'port'=>'int', 'protocol'=>'string'], + 'gettext' => ['string', 'message'=>'string'], + 'gettimeofday' => ['array'], + 'gettimeofday\'1' => ['float', 'as_float='=>'true'], + 'gettype' => ['string', 'value'=>'mixed'], + 'glob' => ['list|false', 'pattern'=>'string', 'flags='=>'int'], + 'gmdate' => ['string', 'format'=>'string', 'timestamp='=>'int'], + 'gmmktime' => ['int|false', 'hour='=>'int', 'minute='=>'int', 'second='=>'int', 'month='=>'int', 'day='=>'int', 'year='=>'int'], + 'gmp_abs' => ['GMP', 'num'=>'GMP|string|int'], + 'gmp_add' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_and' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_clrbit' => ['void', 'num'=>'GMP', 'index'=>'int'], + 'gmp_cmp' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_com' => ['GMP', 'num'=>'GMP|string|int'], + 'gmp_div' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], + 'gmp_div_q' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], + 'gmp_div_qr' => ['array{0: GMP, 1: GMP}', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], + 'gmp_div_r' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int', 'rounding_mode='=>'int'], + 'gmp_divexact' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_export' => ['string|false', 'num'=>'GMP|string|int', 'word_size='=>'int', 'flags='=>'int'], + 'gmp_fact' => ['GMP', 'num'=>'int'], + 'gmp_gcd' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_gcdext' => ['array', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_hamdist' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_import' => ['GMP|false', 'data'=>'string', 'word_size='=>'int', 'flags='=>'int'], + 'gmp_init' => ['GMP', 'num'=>'int|string', 'base='=>'int'], + 'gmp_intval' => ['int', 'num'=>'GMP|string|int'], + 'gmp_invert' => ['GMP|false', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_jacobi' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_legendre' => ['int', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_mod' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_mul' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_neg' => ['GMP', 'num'=>'GMP|string|int'], + 'gmp_nextprime' => ['GMP', 'num'=>'GMP|string|int'], + 'gmp_or' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_perfect_square' => ['bool', 'num'=>'GMP|string|int'], + 'gmp_popcount' => ['int', 'num'=>'GMP|string|int'], + 'gmp_pow' => ['GMP', 'num'=>'GMP|string|int', 'exponent'=>'int'], + 'gmp_powm' => ['GMP', 'num'=>'GMP|string|int', 'exponent'=>'GMP|string|int', 'modulus'=>'GMP|string|int'], + 'gmp_prob_prime' => ['int', 'num'=>'GMP|string|int', 'repetitions='=>'int'], + 'gmp_random' => ['GMP', 'limiter='=>'int'], + 'gmp_random_bits' => ['GMP', 'bits'=>'int'], + 'gmp_random_range' => ['GMP', 'min'=>'GMP|string|int', 'max'=>'GMP|string|int'], + 'gmp_random_seed' => ['void', 'seed'=>'GMP|string|int'], + 'gmp_root' => ['GMP', 'num'=>'GMP|string|int', 'nth'=>'int'], + 'gmp_rootrem' => ['array{0: GMP, 1: GMP}', 'num'=>'GMP|string|int', 'nth'=>'int'], + 'gmp_scan0' => ['int', 'num1'=>'GMP|string|int', 'start'=>'int'], + 'gmp_scan1' => ['int', 'num1'=>'GMP|string|int', 'start'=>'int'], + 'gmp_setbit' => ['void', 'num'=>'GMP', 'index'=>'int', 'value='=>'bool'], + 'gmp_sign' => ['int', 'num'=>'GMP|string|int'], + 'gmp_sqrt' => ['GMP', 'num'=>'GMP|string|int'], + 'gmp_sqrtrem' => ['array{0: GMP, 1: GMP}', 'num'=>'GMP|string|int'], + 'gmp_strval' => ['numeric-string', 'num'=>'GMP|string|int', 'base='=>'int'], + 'gmp_sub' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmp_testbit' => ['bool', 'num'=>'GMP|string|int', 'index'=>'int'], + 'gmp_xor' => ['GMP', 'num1'=>'GMP|string|int', 'num2'=>'GMP|string|int'], + 'gmstrftime' => ['string|false', 'format'=>'string', 'timestamp='=>'int'], + 'gnupg::adddecryptkey' => ['bool', 'fingerprint'=>'string', 'passphrase'=>'string'], + 'gnupg::addencryptkey' => ['bool', 'fingerprint'=>'string'], + 'gnupg::addsignkey' => ['bool', 'fingerprint'=>'string', 'passphrase='=>'string'], + 'gnupg::cleardecryptkeys' => ['bool'], + 'gnupg::clearencryptkeys' => ['bool'], + 'gnupg::clearsignkeys' => ['bool'], + 'gnupg::decrypt' => ['string|false', 'text'=>'string'], + 'gnupg::decryptverify' => ['array|false', 'text'=>'string', '&plaintext'=>'string'], + 'gnupg::encrypt' => ['string|false', 'plaintext'=>'string'], + 'gnupg::encryptsign' => ['string|false', 'plaintext'=>'string'], + 'gnupg::export' => ['string|false', 'fingerprint'=>'string'], + 'gnupg::geterror' => ['string|false'], + 'gnupg::getprotocol' => ['int'], + 'gnupg::import' => ['array|false', 'keydata'=>'string'], + 'gnupg::keyinfo' => ['array', 'pattern'=>'string'], + 'gnupg::setarmor' => ['bool', 'armor'=>'int'], + 'gnupg::seterrormode' => ['void', 'errormode'=>'int'], + 'gnupg::setsignmode' => ['bool', 'signmode'=>'int'], + 'gnupg::sign' => ['string|false', 'plaintext'=>'string'], + 'gnupg::verify' => ['array|false', 'signed_text'=>'string', 'signature'=>'string', '&plaintext='=>'string'], + 'gnupg_adddecryptkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string', 'passphrase'=>'string'], + 'gnupg_addencryptkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string'], + 'gnupg_addsignkey' => ['bool', 'identifier'=>'resource', 'fingerprint'=>'string', 'passphrase='=>'string'], + 'gnupg_cleardecryptkeys' => ['bool', 'identifier'=>'resource'], + 'gnupg_clearencryptkeys' => ['bool', 'identifier'=>'resource'], + 'gnupg_clearsignkeys' => ['bool', 'identifier'=>'resource'], + 'gnupg_decrypt' => ['string', 'identifier'=>'resource', 'text'=>'string'], + 'gnupg_decryptverify' => ['array', 'identifier'=>'resource', 'text'=>'string', 'plaintext'=>'string'], + 'gnupg_encrypt' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], + 'gnupg_encryptsign' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], + 'gnupg_export' => ['string', 'identifier'=>'resource', 'fingerprint'=>'string'], + 'gnupg_geterror' => ['string', 'identifier'=>'resource'], + 'gnupg_getprotocol' => ['int', 'identifier'=>'resource'], + 'gnupg_import' => ['array', 'identifier'=>'resource', 'keydata'=>'string'], + 'gnupg_init' => ['resource'], + 'gnupg_keyinfo' => ['array', 'identifier'=>'resource', 'pattern'=>'string'], + 'gnupg_setarmor' => ['bool', 'identifier'=>'resource', 'armor'=>'int'], + 'gnupg_seterrormode' => ['void', 'identifier'=>'resource', 'errormode'=>'int'], + 'gnupg_setsignmode' => ['bool', 'identifier'=>'resource', 'signmode'=>'int'], + 'gnupg_sign' => ['string', 'identifier'=>'resource', 'plaintext'=>'string'], + 'gnupg_verify' => ['array', 'identifier'=>'resource', 'signed_text'=>'string', 'signature'=>'string', 'plaintext='=>'string'], + 'gopher_parsedir' => ['array', 'dirent'=>'string'], + 'grapheme_extract' => ['string|false', 'haystack'=>'string', 'size'=>'int', 'type='=>'int', 'offset='=>'int', '&w_next='=>'int'], + 'grapheme_stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + 'grapheme_stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'beforeNeedle='=>'bool'], + 'grapheme_strlen' => ['0|positive-int|false|null', 'string'=>'string'], + 'grapheme_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + 'grapheme_strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + 'grapheme_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int'], + 'grapheme_strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'beforeNeedle='=>'bool'], + 'grapheme_substr' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'?int'], + 'gregoriantojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'gridObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'gupnp_context_get_host_ip' => ['string', 'context'=>'resource'], + 'gupnp_context_get_port' => ['int', 'context'=>'resource'], + 'gupnp_context_get_subscription_timeout' => ['int', 'context'=>'resource'], + 'gupnp_context_host_path' => ['bool', 'context'=>'resource', 'local_path'=>'string', 'server_path'=>'string'], + 'gupnp_context_new' => ['resource', 'host_ip='=>'string', 'port='=>'int'], + 'gupnp_context_set_subscription_timeout' => ['void', 'context'=>'resource', 'timeout'=>'int'], + 'gupnp_context_timeout_add' => ['bool', 'context'=>'resource', 'timeout'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], + 'gupnp_context_unhost_path' => ['bool', 'context'=>'resource', 'server_path'=>'string'], + 'gupnp_control_point_browse_start' => ['bool', 'cpoint'=>'resource'], + 'gupnp_control_point_browse_stop' => ['bool', 'cpoint'=>'resource'], + 'gupnp_control_point_callback_set' => ['bool', 'cpoint'=>'resource', 'signal'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], + 'gupnp_control_point_new' => ['resource', 'context'=>'resource', 'target'=>'string'], + 'gupnp_device_action_callback_set' => ['bool', 'root_device'=>'resource', 'signal'=>'int', 'action_name'=>'string', 'callback'=>'mixed', 'arg='=>'mixed'], + 'gupnp_device_info_get' => ['array', 'root_device'=>'resource'], + 'gupnp_device_info_get_service' => ['resource', 'root_device'=>'resource', 'type'=>'string'], + 'gupnp_root_device_get_available' => ['bool', 'root_device'=>'resource'], + 'gupnp_root_device_get_relative_location' => ['string', 'root_device'=>'resource'], + 'gupnp_root_device_new' => ['resource', 'context'=>'resource', 'location'=>'string', 'description_dir'=>'string'], + 'gupnp_root_device_set_available' => ['bool', 'root_device'=>'resource', 'available'=>'bool'], + 'gupnp_root_device_start' => ['bool', 'root_device'=>'resource'], + 'gupnp_root_device_stop' => ['bool', 'root_device'=>'resource'], + 'gupnp_service_action_get' => ['mixed', 'action'=>'resource', 'name'=>'string', 'type'=>'int'], + 'gupnp_service_action_return' => ['bool', 'action'=>'resource'], + 'gupnp_service_action_return_error' => ['bool', 'action'=>'resource', 'error_code'=>'int', 'error_description='=>'string'], + 'gupnp_service_action_set' => ['bool', 'action'=>'resource', 'name'=>'string', 'type'=>'int', 'value'=>'mixed'], + 'gupnp_service_freeze_notify' => ['bool', 'service'=>'resource'], + 'gupnp_service_info_get' => ['array', 'proxy'=>'resource'], + 'gupnp_service_info_get_introspection' => ['mixed', 'proxy'=>'resource', 'callback='=>'mixed', 'arg='=>'mixed'], + 'gupnp_service_introspection_get_state_variable' => ['array', 'introspection'=>'resource', 'variable_name'=>'string'], + 'gupnp_service_notify' => ['bool', 'service'=>'resource', 'name'=>'string', 'type'=>'int', 'value'=>'mixed'], + 'gupnp_service_proxy_action_get' => ['mixed', 'proxy'=>'resource', 'action'=>'string', 'name'=>'string', 'type'=>'int'], + 'gupnp_service_proxy_action_set' => ['bool', 'proxy'=>'resource', 'action'=>'string', 'name'=>'string', 'value'=>'mixed', 'type'=>'int'], + 'gupnp_service_proxy_add_notify' => ['bool', 'proxy'=>'resource', 'value'=>'string', 'type'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], + 'gupnp_service_proxy_callback_set' => ['bool', 'proxy'=>'resource', 'signal'=>'int', 'callback'=>'mixed', 'arg='=>'mixed'], + 'gupnp_service_proxy_get_subscribed' => ['bool', 'proxy'=>'resource'], + 'gupnp_service_proxy_remove_notify' => ['bool', 'proxy'=>'resource', 'value'=>'string'], + 'gupnp_service_proxy_send_action' => ['array', 'proxy'=>'resource', 'action'=>'string', 'in_params'=>'array', 'out_params'=>'array'], + 'gupnp_service_proxy_set_subscribed' => ['bool', 'proxy'=>'resource', 'subscribed'=>'bool'], + 'gupnp_service_thaw_notify' => ['bool', 'service'=>'resource'], + 'gzclose' => ['bool', 'stream'=>'resource'], + 'gzcompress' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], + 'gzdecode' => ['string|false', 'data'=>'string', 'max_length='=>'int'], + 'gzdeflate' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], + 'gzencode' => ['string|false', 'data'=>'string', 'level='=>'int', 'encoding='=>'int'], + 'gzeof' => ['bool', 'stream'=>'resource'], + 'gzfile' => ['list', 'filename'=>'string', 'use_include_path='=>'int'], + 'gzgetc' => ['string|false', 'stream'=>'resource'], + 'gzgets' => ['string|false', 'stream'=>'resource', 'length='=>'int'], + 'gzgetss' => ['string|false', 'zp'=>'resource', 'length'=>'int', 'allowable_tags='=>'string'], + 'gzinflate' => ['string|false', 'data'=>'string', 'max_length='=>'int'], + 'gzopen' => ['resource|false', 'filename'=>'string', 'mode'=>'string', 'use_include_path='=>'int'], + 'gzpassthru' => ['int', 'stream'=>'resource'], + 'gzputs' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'gzread' => ['string|0', 'stream'=>'resource', 'length'=>'int'], + 'gzrewind' => ['bool', 'stream'=>'resource'], + 'gzseek' => ['int', 'stream'=>'resource', 'offset'=>'int', 'whence='=>'int'], + 'gztell' => ['int|false', 'stream'=>'resource'], + 'gzuncompress' => ['string|false', 'data'=>'string', 'max_length='=>'int'], + 'gzwrite' => ['int', 'stream'=>'resource', 'data'=>'string', 'length='=>'int'], + 'hash' => ['string|false', 'algo'=>'string', 'data'=>'string', 'binary='=>'bool'], + 'hashTableObj::clear' => ['void'], + 'hashTableObj::get' => ['string', 'key'=>'string'], + 'hashTableObj::nextkey' => ['string', 'previousKey'=>'string'], + 'hashTableObj::remove' => ['int', 'key'=>'string'], + 'hashTableObj::set' => ['int', 'key'=>'string', 'value'=>'string'], + 'hash_algos' => ['list'], + 'hash_copy' => ['resource', 'context'=>'resource'], + 'hash_equals' => ['bool', 'known_string'=>'string', 'user_string'=>'string'], + 'hash_file' => ['non-empty-string|false', 'algo'=>'string', 'filename'=>'string', 'binary='=>'bool'], + 'hash_final' => ['non-empty-string', 'context'=>'resource', 'raw_output='=>'bool'], + 'hash_hmac' => ['non-empty-string|false', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], + 'hash_hmac_file' => ['non-empty-string|false', 'algo'=>'string', 'data'=>'string', 'key'=>'string', 'binary='=>'bool'], + 'hash_init' => ['resource', 'algo'=>'string', 'options='=>'int', 'key='=>'string'], + 'hash_pbkdf2' => ['non-empty-string', 'algo'=>'string', 'password'=>'string', 'salt'=>'string', 'iterations'=>'int', 'length='=>'int', 'binary='=>'bool'], + 'hash_update' => ['bool', 'context'=>'resource', 'data'=>'string'], + 'hash_update_file' => ['bool', 'hcontext'=>'resource', 'filename'=>'string', 'scontext='=>'resource'], + 'hash_update_stream' => ['int', 'context'=>'resource', 'handle'=>'resource', 'length='=>'int'], + 'header' => ['void', 'header'=>'string', 'replace='=>'bool', 'response_code='=>'int'], + 'header_register_callback' => ['bool', 'callback'=>'callable():void'], + 'header_remove' => ['void', 'name='=>'string'], + 'headers_list' => ['list'], + 'headers_sent' => ['bool', '&w_filename='=>'string', '&w_line='=>'int'], + 'hebrev' => ['string', 'string'=>'string', 'max_chars_per_line='=>'int'], + 'hebrevc' => ['string', 'string'=>'string', 'max_chars_per_line='=>'int'], + 'hex2bin' => ['string|false', 'string'=>'string'], + 'hexdec' => ['int|float', 'hex_string'=>'string'], + 'highlight_file' => ['string|bool', 'filename'=>'string', 'return='=>'bool'], + 'highlight_string' => ['string|bool', 'string'=>'string', 'return='=>'bool'], + 'html_entity_decode' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string'], + 'htmlentities' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string', 'double_encode='=>'bool'], + 'htmlspecialchars' => ['string', 'string'=>'string', 'flags='=>'int', 'encoding='=>'string|null', 'double_encode='=>'bool'], + 'htmlspecialchars_decode' => ['string', 'string'=>'string', 'flags='=>'int'], + 'http\Client::__construct' => ['void', 'driver='=>'string', 'persistent_handle_id='=>'string'], + 'http\Client::addCookies' => ['http\Client', 'cookies='=>'?array'], + 'http\Client::addSslOptions' => ['http\Client', 'ssl_options='=>'?array'], + 'http\Client::attach' => ['void', 'observer'=>'SplObserver'], + 'http\Client::configure' => ['http\Client', 'settings'=>'array'], + 'http\Client::count' => ['int'], + 'http\Client::dequeue' => ['http\Client', 'request'=>'http\Client\Request'], + 'http\Client::detach' => ['void', 'observer'=>'SplObserver'], + 'http\Client::enableEvents' => ['http\Client', 'enable='=>'mixed'], + 'http\Client::enablePipelining' => ['http\Client', 'enable='=>'mixed'], + 'http\Client::enqueue' => ['http\Client', 'request'=>'http\Client\Request', 'callable='=>'mixed'], + 'http\Client::getAvailableConfiguration' => ['array'], + 'http\Client::getAvailableDrivers' => ['array'], + 'http\Client::getAvailableOptions' => ['array'], + 'http\Client::getCookies' => ['array'], + 'http\Client::getHistory' => ['http\Message'], + 'http\Client::getObservers' => ['SplObjectStorage'], + 'http\Client::getOptions' => ['array'], + 'http\Client::getProgressInfo' => ['null|object', 'request'=>'http\Client\Request'], + 'http\Client::getResponse' => ['http\Client\Response|null', 'request='=>'?http\Client\Request'], + 'http\Client::getSslOptions' => ['array'], + 'http\Client::getTransferInfo' => ['object', 'request'=>'http\Client\Request'], + 'http\Client::notify' => ['void', 'request='=>'?http\Client\Request'], + 'http\Client::once' => ['bool'], + 'http\Client::requeue' => ['http\Client', 'request'=>'http\Client\Request', 'callable='=>'mixed'], + 'http\Client::reset' => ['http\Client'], + 'http\Client::send' => ['http\Client'], + 'http\Client::setCookies' => ['http\Client', 'cookies='=>'?array'], + 'http\Client::setDebug' => ['http\Client', 'callback'=>'callable'], + 'http\Client::setOptions' => ['http\Client', 'options='=>'?array'], + 'http\Client::setSslOptions' => ['http\Client', 'ssl_option='=>'?array'], + 'http\Client::wait' => ['bool', 'timeout='=>'mixed'], + 'http\Client\Curl\User::init' => ['', 'run'=>'callable'], + 'http\Client\Curl\User::once' => [''], + 'http\Client\Curl\User::send' => [''], + 'http\Client\Curl\User::socket' => ['', 'socket'=>'resource', 'action'=>'int'], + 'http\Client\Curl\User::timer' => ['', 'timeout_ms'=>'int'], + 'http\Client\Curl\User::wait' => ['', 'timeout_ms='=>'mixed'], + 'http\Client\Request::__construct' => ['void', 'method='=>'mixed', 'url='=>'mixed', 'headers='=>'?array', 'body='=>'?http\Message\Body'], + 'http\Client\Request::__toString' => ['string'], + 'http\Client\Request::addBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Client\Request::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], + 'http\Client\Request::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], + 'http\Client\Request::addQuery' => ['http\Client\Request', 'query_data'=>'mixed'], + 'http\Client\Request::addSslOptions' => ['http\Client\Request', 'ssl_options='=>'?array'], + 'http\Client\Request::count' => ['int'], + 'http\Client\Request::current' => ['mixed'], + 'http\Client\Request::detach' => ['http\Message'], + 'http\Client\Request::getBody' => ['http\Message\Body'], + 'http\Client\Request::getContentType' => ['null|string'], + 'http\Client\Request::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], + 'http\Client\Request::getHeaders' => ['array'], + 'http\Client\Request::getHttpVersion' => ['string'], + 'http\Client\Request::getInfo' => ['null|string'], + 'http\Client\Request::getOptions' => ['array'], + 'http\Client\Request::getParentMessage' => ['http\Message'], + 'http\Client\Request::getQuery' => ['null|string'], + 'http\Client\Request::getRequestMethod' => ['false|string'], + 'http\Client\Request::getRequestUrl' => ['false|string'], + 'http\Client\Request::getResponseCode' => ['false|int'], + 'http\Client\Request::getResponseStatus' => ['false|string'], + 'http\Client\Request::getSslOptions' => ['array'], + 'http\Client\Request::getType' => ['int'], + 'http\Client\Request::isMultipart' => ['bool', '&boundary='=>'mixed'], + 'http\Client\Request::key' => ['int|string'], + 'http\Client\Request::next' => ['void'], + 'http\Client\Request::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], + 'http\Client\Request::reverse' => ['http\Message'], + 'http\Client\Request::rewind' => ['void'], + 'http\Client\Request::serialize' => ['string'], + 'http\Client\Request::setBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Client\Request::setContentType' => ['http\Client\Request', 'content_type'=>'string'], + 'http\Client\Request::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], + 'http\Client\Request::setHeaders' => ['http\Message', 'headers'=>'array'], + 'http\Client\Request::setHttpVersion' => ['http\Message', 'http_version'=>'string'], + 'http\Client\Request::setInfo' => ['http\Message', 'http_info'=>'string'], + 'http\Client\Request::setOptions' => ['http\Client\Request', 'options='=>'?array'], + 'http\Client\Request::setQuery' => ['http\Client\Request', 'query_data='=>'mixed'], + 'http\Client\Request::setRequestMethod' => ['http\Message', 'request_method'=>'string'], + 'http\Client\Request::setRequestUrl' => ['http\Message', 'url'=>'string'], + 'http\Client\Request::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], + 'http\Client\Request::setResponseStatus' => ['http\Message', 'response_status'=>'string'], + 'http\Client\Request::setSslOptions' => ['http\Client\Request', 'ssl_options='=>'?array'], + 'http\Client\Request::setType' => ['http\Message', 'type'=>'int'], + 'http\Client\Request::splitMultipartBody' => ['http\Message'], + 'http\Client\Request::toCallback' => ['http\Message', 'callback'=>'callable'], + 'http\Client\Request::toStream' => ['http\Message', 'stream'=>'resource'], + 'http\Client\Request::toString' => ['string', 'include_parent='=>'mixed'], + 'http\Client\Request::unserialize' => ['void', 'serialized'=>'string'], + 'http\Client\Request::valid' => ['bool'], + 'http\Client\Response::__construct' => ['Iterator'], + 'http\Client\Response::__toString' => ['string'], + 'http\Client\Response::addBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Client\Response::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], + 'http\Client\Response::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], + 'http\Client\Response::count' => ['int'], + 'http\Client\Response::current' => ['mixed'], + 'http\Client\Response::detach' => ['http\Message'], + 'http\Client\Response::getBody' => ['http\Message\Body'], + 'http\Client\Response::getCookies' => ['array', 'flags='=>'mixed', 'allowed_extras='=>'mixed'], + 'http\Client\Response::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], + 'http\Client\Response::getHeaders' => ['array'], + 'http\Client\Response::getHttpVersion' => ['string'], + 'http\Client\Response::getInfo' => ['null|string'], + 'http\Client\Response::getParentMessage' => ['http\Message'], + 'http\Client\Response::getRequestMethod' => ['false|string'], + 'http\Client\Response::getRequestUrl' => ['false|string'], + 'http\Client\Response::getResponseCode' => ['false|int'], + 'http\Client\Response::getResponseStatus' => ['false|string'], + 'http\Client\Response::getTransferInfo' => ['mixed|object', 'element='=>'mixed'], + 'http\Client\Response::getType' => ['int'], + 'http\Client\Response::isMultipart' => ['bool', '&boundary='=>'mixed'], + 'http\Client\Response::key' => ['int|string'], + 'http\Client\Response::next' => ['void'], + 'http\Client\Response::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], + 'http\Client\Response::reverse' => ['http\Message'], + 'http\Client\Response::rewind' => ['void'], + 'http\Client\Response::serialize' => ['string'], + 'http\Client\Response::setBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Client\Response::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], + 'http\Client\Response::setHeaders' => ['http\Message', 'headers'=>'array'], + 'http\Client\Response::setHttpVersion' => ['http\Message', 'http_version'=>'string'], + 'http\Client\Response::setInfo' => ['http\Message', 'http_info'=>'string'], + 'http\Client\Response::setRequestMethod' => ['http\Message', 'request_method'=>'string'], + 'http\Client\Response::setRequestUrl' => ['http\Message', 'url'=>'string'], + 'http\Client\Response::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], + 'http\Client\Response::setResponseStatus' => ['http\Message', 'response_status'=>'string'], + 'http\Client\Response::setType' => ['http\Message', 'type'=>'int'], + 'http\Client\Response::splitMultipartBody' => ['http\Message'], + 'http\Client\Response::toCallback' => ['http\Message', 'callback'=>'callable'], + 'http\Client\Response::toStream' => ['http\Message', 'stream'=>'resource'], + 'http\Client\Response::toString' => ['string', 'include_parent='=>'mixed'], + 'http\Client\Response::unserialize' => ['void', 'serialized'=>'string'], + 'http\Client\Response::valid' => ['bool'], + 'http\Cookie::__construct' => ['void', 'cookie_string='=>'mixed', 'parser_flags='=>'int', 'allowed_extras='=>'array'], + 'http\Cookie::__toString' => ['string'], + 'http\Cookie::addCookie' => ['http\Cookie', 'cookie_name'=>'string', 'cookie_value'=>'string'], + 'http\Cookie::addCookies' => ['http\Cookie', 'cookies'=>'array'], + 'http\Cookie::addExtra' => ['http\Cookie', 'extra_name'=>'string', 'extra_value'=>'string'], + 'http\Cookie::addExtras' => ['http\Cookie', 'extras'=>'array'], + 'http\Cookie::getCookie' => ['null|string', 'name'=>'string'], + 'http\Cookie::getCookies' => ['array'], + 'http\Cookie::getDomain' => ['string'], + 'http\Cookie::getExpires' => ['int'], + 'http\Cookie::getExtra' => ['string', 'name'=>'string'], + 'http\Cookie::getExtras' => ['array'], + 'http\Cookie::getFlags' => ['int'], + 'http\Cookie::getMaxAge' => ['int'], + 'http\Cookie::getPath' => ['string'], + 'http\Cookie::setCookie' => ['http\Cookie', 'cookie_name'=>'string', 'cookie_value='=>'mixed'], + 'http\Cookie::setCookies' => ['http\Cookie', 'cookies='=>'mixed'], + 'http\Cookie::setDomain' => ['http\Cookie', 'value='=>'mixed'], + 'http\Cookie::setExpires' => ['http\Cookie', 'value='=>'mixed'], + 'http\Cookie::setExtra' => ['http\Cookie', 'extra_name'=>'string', 'extra_value='=>'mixed'], + 'http\Cookie::setExtras' => ['http\Cookie', 'extras='=>'mixed'], + 'http\Cookie::setFlags' => ['http\Cookie', 'value='=>'mixed'], + 'http\Cookie::setMaxAge' => ['http\Cookie', 'value='=>'mixed'], + 'http\Cookie::setPath' => ['http\Cookie', 'value='=>'mixed'], + 'http\Cookie::toArray' => ['array'], + 'http\Cookie::toString' => ['string'], + 'http\Encoding\Stream::__construct' => ['void', 'flags='=>'mixed'], + 'http\Encoding\Stream::done' => ['bool'], + 'http\Encoding\Stream::finish' => ['string'], + 'http\Encoding\Stream::flush' => ['string'], + 'http\Encoding\Stream::update' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Debrotli::__construct' => ['void', 'flags='=>'int'], + 'http\Encoding\Stream\Debrotli::decode' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Debrotli::done' => ['bool'], + 'http\Encoding\Stream\Debrotli::finish' => ['string'], + 'http\Encoding\Stream\Debrotli::flush' => ['string'], + 'http\Encoding\Stream\Debrotli::update' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Dechunk::__construct' => ['void', 'flags='=>'mixed'], + 'http\Encoding\Stream\Dechunk::decode' => ['false|string', 'data'=>'string', '&decoded_len='=>'mixed'], + 'http\Encoding\Stream\Dechunk::done' => ['bool'], + 'http\Encoding\Stream\Dechunk::finish' => ['string'], + 'http\Encoding\Stream\Dechunk::flush' => ['string'], + 'http\Encoding\Stream\Dechunk::update' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Deflate::__construct' => ['void', 'flags='=>'mixed'], + 'http\Encoding\Stream\Deflate::done' => ['bool'], + 'http\Encoding\Stream\Deflate::encode' => ['string', 'data'=>'string', 'flags='=>'mixed'], + 'http\Encoding\Stream\Deflate::finish' => ['string'], + 'http\Encoding\Stream\Deflate::flush' => ['string'], + 'http\Encoding\Stream\Deflate::update' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Enbrotli::__construct' => ['void', 'flags='=>'int'], + 'http\Encoding\Stream\Enbrotli::done' => ['bool'], + 'http\Encoding\Stream\Enbrotli::encode' => ['string', 'data'=>'string', 'flags='=>'int'], + 'http\Encoding\Stream\Enbrotli::finish' => ['string'], + 'http\Encoding\Stream\Enbrotli::flush' => ['string'], + 'http\Encoding\Stream\Enbrotli::update' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Inflate::__construct' => ['void', 'flags='=>'mixed'], + 'http\Encoding\Stream\Inflate::decode' => ['string', 'data'=>'string'], + 'http\Encoding\Stream\Inflate::done' => ['bool'], + 'http\Encoding\Stream\Inflate::finish' => ['string'], + 'http\Encoding\Stream\Inflate::flush' => ['string'], + 'http\Encoding\Stream\Inflate::update' => ['string', 'data'=>'string'], + 'http\Env::getRequestBody' => ['http\Message\Body', 'body_class_name='=>'mixed'], + 'http\Env::getRequestHeader' => ['array|null|string', 'header_name='=>'mixed'], + 'http\Env::getResponseCode' => ['int'], + 'http\Env::getResponseHeader' => ['array|null|string', 'header_name='=>'mixed'], + 'http\Env::getResponseStatusForAllCodes' => ['array'], + 'http\Env::getResponseStatusForCode' => ['string', 'code'=>'int'], + 'http\Env::negotiate' => ['null|string', 'params'=>'string', 'supported'=>'array', 'primary_type_separator='=>'mixed', '&result_array='=>'mixed'], + 'http\Env::negotiateCharset' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], + 'http\Env::negotiateContentType' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], + 'http\Env::negotiateEncoding' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], + 'http\Env::negotiateLanguage' => ['null|string', 'supported'=>'array', '&result_array='=>'mixed'], + 'http\Env::setResponseCode' => ['bool', 'code'=>'int'], + 'http\Env::setResponseHeader' => ['bool', 'header_name'=>'string', 'header_value='=>'mixed', 'response_code='=>'mixed', 'replace_header='=>'mixed'], + 'http\Env\Request::__construct' => ['void'], + 'http\Env\Request::__toString' => ['string'], + 'http\Env\Request::addBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Env\Request::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], + 'http\Env\Request::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], + 'http\Env\Request::count' => ['int'], + 'http\Env\Request::current' => ['mixed'], + 'http\Env\Request::detach' => ['http\Message'], + 'http\Env\Request::getBody' => ['http\Message\Body'], + 'http\Env\Request::getCookie' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], + 'http\Env\Request::getFiles' => ['array'], + 'http\Env\Request::getForm' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], + 'http\Env\Request::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], + 'http\Env\Request::getHeaders' => ['array'], + 'http\Env\Request::getHttpVersion' => ['string'], + 'http\Env\Request::getInfo' => ['null|string'], + 'http\Env\Request::getParentMessage' => ['http\Message'], + 'http\Env\Request::getQuery' => ['mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool'], + 'http\Env\Request::getRequestMethod' => ['false|string'], + 'http\Env\Request::getRequestUrl' => ['false|string'], + 'http\Env\Request::getResponseCode' => ['false|int'], + 'http\Env\Request::getResponseStatus' => ['false|string'], + 'http\Env\Request::getType' => ['int'], + 'http\Env\Request::isMultipart' => ['bool', '&boundary='=>'mixed'], + 'http\Env\Request::key' => ['int|string'], + 'http\Env\Request::next' => ['void'], + 'http\Env\Request::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], + 'http\Env\Request::reverse' => ['http\Message'], + 'http\Env\Request::rewind' => ['void'], + 'http\Env\Request::serialize' => ['string'], + 'http\Env\Request::setBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Env\Request::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], + 'http\Env\Request::setHeaders' => ['http\Message', 'headers'=>'array'], + 'http\Env\Request::setHttpVersion' => ['http\Message', 'http_version'=>'string'], + 'http\Env\Request::setInfo' => ['http\Message', 'http_info'=>'string'], + 'http\Env\Request::setRequestMethod' => ['http\Message', 'request_method'=>'string'], + 'http\Env\Request::setRequestUrl' => ['http\Message', 'url'=>'string'], + 'http\Env\Request::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], + 'http\Env\Request::setResponseStatus' => ['http\Message', 'response_status'=>'string'], + 'http\Env\Request::setType' => ['http\Message', 'type'=>'int'], + 'http\Env\Request::splitMultipartBody' => ['http\Message'], + 'http\Env\Request::toCallback' => ['http\Message', 'callback'=>'callable'], + 'http\Env\Request::toStream' => ['http\Message', 'stream'=>'resource'], + 'http\Env\Request::toString' => ['string', 'include_parent='=>'mixed'], + 'http\Env\Request::unserialize' => ['void', 'serialized'=>'string'], + 'http\Env\Request::valid' => ['bool'], + 'http\Env\Response::__construct' => ['void'], + 'http\Env\Response::__invoke' => ['bool', 'data'=>'string', 'ob_flags='=>'int'], + 'http\Env\Response::__toString' => ['string'], + 'http\Env\Response::addBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Env\Response::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], + 'http\Env\Response::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], + 'http\Env\Response::count' => ['int'], + 'http\Env\Response::current' => ['mixed'], + 'http\Env\Response::detach' => ['http\Message'], + 'http\Env\Response::getBody' => ['http\Message\Body'], + 'http\Env\Response::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], + 'http\Env\Response::getHeaders' => ['array'], + 'http\Env\Response::getHttpVersion' => ['string'], + 'http\Env\Response::getInfo' => ['?string'], + 'http\Env\Response::getParentMessage' => ['http\Message'], + 'http\Env\Response::getRequestMethod' => ['false|string'], + 'http\Env\Response::getRequestUrl' => ['false|string'], + 'http\Env\Response::getResponseCode' => ['false|int'], + 'http\Env\Response::getResponseStatus' => ['false|string'], + 'http\Env\Response::getType' => ['int'], + 'http\Env\Response::isCachedByETag' => ['int', 'header_name='=>'string'], + 'http\Env\Response::isCachedByLastModified' => ['int', 'header_name='=>'string'], + 'http\Env\Response::isMultipart' => ['bool', '&boundary='=>'mixed'], + 'http\Env\Response::key' => ['int|string'], + 'http\Env\Response::next' => ['void'], + 'http\Env\Response::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], + 'http\Env\Response::reverse' => ['http\Message'], + 'http\Env\Response::rewind' => ['void'], + 'http\Env\Response::send' => ['bool', 'stream='=>'resource'], + 'http\Env\Response::serialize' => ['string'], + 'http\Env\Response::setBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Env\Response::setCacheControl' => ['http\Env\Response', 'cache_control'=>'string'], + 'http\Env\Response::setContentDisposition' => ['http\Env\Response', 'disposition_params'=>'array'], + 'http\Env\Response::setContentEncoding' => ['http\Env\Response', 'content_encoding'=>'int'], + 'http\Env\Response::setContentType' => ['http\Env\Response', 'content_type'=>'string'], + 'http\Env\Response::setCookie' => ['http\Env\Response', 'cookie'=>'mixed'], + 'http\Env\Response::setEnvRequest' => ['http\Env\Response', 'env_request'=>'http\Message'], + 'http\Env\Response::setEtag' => ['http\Env\Response', 'etag'=>'string'], + 'http\Env\Response::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], + 'http\Env\Response::setHeaders' => ['http\Message', 'headers'=>'array'], + 'http\Env\Response::setHttpVersion' => ['http\Message', 'http_version'=>'string'], + 'http\Env\Response::setInfo' => ['http\Message', 'http_info'=>'string'], + 'http\Env\Response::setLastModified' => ['http\Env\Response', 'last_modified'=>'int'], + 'http\Env\Response::setRequestMethod' => ['http\Message', 'request_method'=>'string'], + 'http\Env\Response::setRequestUrl' => ['http\Message', 'url'=>'string'], + 'http\Env\Response::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], + 'http\Env\Response::setResponseStatus' => ['http\Message', 'response_status'=>'string'], + 'http\Env\Response::setThrottleRate' => ['http\Env\Response', 'chunk_size'=>'int', 'delay='=>'float|int'], + 'http\Env\Response::setType' => ['http\Message', 'type'=>'int'], + 'http\Env\Response::splitMultipartBody' => ['http\Message'], + 'http\Env\Response::toCallback' => ['http\Message', 'callback'=>'callable'], + 'http\Env\Response::toStream' => ['http\Message', 'stream'=>'resource'], + 'http\Env\Response::toString' => ['string', 'include_parent='=>'mixed'], + 'http\Env\Response::unserialize' => ['void', 'serialized'=>'string'], + 'http\Env\Response::valid' => ['bool'], + 'http\Header::__construct' => ['void', 'name='=>'mixed', 'value='=>'mixed'], + 'http\Header::__toString' => ['string'], + 'http\Header::getParams' => ['http\Params', 'param_sep='=>'mixed', 'arg_sep='=>'mixed', 'val_sep='=>'mixed', 'flags='=>'mixed'], + 'http\Header::match' => ['bool', 'value'=>'string', 'flags='=>'mixed'], + 'http\Header::negotiate' => ['null|string', 'supported'=>'array', '&result='=>'mixed'], + 'http\Header::parse' => ['array|false', 'string'=>'string', 'header_class='=>'mixed'], + 'http\Header::serialize' => ['string'], + 'http\Header::toString' => ['string'], + 'http\Header::unserialize' => ['void', 'serialized'=>'string'], + 'http\Header\Parser::getState' => ['int'], + 'http\Header\Parser::parse' => ['int', 'data'=>'string', 'flags'=>'int', '&headers'=>'array'], + 'http\Header\Parser::stream' => ['int', 'stream'=>'resource', 'flags'=>'int', '&headers'=>'array'], + 'http\Message::__construct' => ['void', 'message='=>'mixed', 'greedy='=>'bool'], + 'http\Message::__toString' => ['string'], + 'http\Message::addBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Message::addHeader' => ['http\Message', 'header'=>'string', 'value'=>'mixed'], + 'http\Message::addHeaders' => ['http\Message', 'headers'=>'array', 'append='=>'mixed'], + 'http\Message::count' => ['int'], + 'http\Message::current' => ['mixed'], + 'http\Message::detach' => ['http\Message'], + 'http\Message::getBody' => ['http\Message\Body'], + 'http\Message::getHeader' => ['http\Header|mixed', 'header'=>'string', 'into_class='=>'mixed'], + 'http\Message::getHeaders' => ['array'], + 'http\Message::getHttpVersion' => ['string'], + 'http\Message::getInfo' => ['null|string'], + 'http\Message::getParentMessage' => ['http\Message'], + 'http\Message::getRequestMethod' => ['false|string'], + 'http\Message::getRequestUrl' => ['false|string'], + 'http\Message::getResponseCode' => ['false|int'], + 'http\Message::getResponseStatus' => ['false|string'], + 'http\Message::getType' => ['int'], + 'http\Message::isMultipart' => ['bool', '&boundary='=>'mixed'], + 'http\Message::key' => ['int|string'], + 'http\Message::next' => ['void'], + 'http\Message::prepend' => ['http\Message', 'message'=>'http\Message', 'top='=>'mixed'], + 'http\Message::reverse' => ['http\Message'], + 'http\Message::rewind' => ['void'], + 'http\Message::serialize' => ['string'], + 'http\Message::setBody' => ['http\Message', 'body'=>'http\Message\Body'], + 'http\Message::setHeader' => ['http\Message', 'header'=>'string', 'value='=>'mixed'], + 'http\Message::setHeaders' => ['http\Message', 'headers'=>'array'], + 'http\Message::setHttpVersion' => ['http\Message', 'http_version'=>'string'], + 'http\Message::setInfo' => ['http\Message', 'http_info'=>'string'], + 'http\Message::setRequestMethod' => ['http\Message', 'request_method'=>'string'], + 'http\Message::setRequestUrl' => ['http\Message', 'url'=>'string'], + 'http\Message::setResponseCode' => ['http\Message', 'response_code'=>'int', 'strict='=>'mixed'], + 'http\Message::setResponseStatus' => ['http\Message', 'response_status'=>'string'], + 'http\Message::setType' => ['http\Message', 'type'=>'int'], + 'http\Message::splitMultipartBody' => ['http\Message'], + 'http\Message::toCallback' => ['http\Message', 'callback'=>'callable'], + 'http\Message::toStream' => ['http\Message', 'stream'=>'resource'], + 'http\Message::toString' => ['string', 'include_parent='=>'mixed'], + 'http\Message::unserialize' => ['void', 'serialized'=>'string'], + 'http\Message::valid' => ['bool'], + 'http\Message\Body::__construct' => ['void', 'stream='=>'resource'], + 'http\Message\Body::__toString' => ['string'], + 'http\Message\Body::addForm' => ['http\Message\Body', 'fields='=>'?array', 'files='=>'?array'], + 'http\Message\Body::addPart' => ['http\Message\Body', 'message'=>'http\Message'], + 'http\Message\Body::append' => ['http\Message\Body', 'string'=>'string'], + 'http\Message\Body::etag' => ['false|string'], + 'http\Message\Body::getBoundary' => ['null|string'], + 'http\Message\Body::getResource' => ['resource'], + 'http\Message\Body::serialize' => ['string'], + 'http\Message\Body::stat' => ['int|object', 'field='=>'mixed'], + 'http\Message\Body::toCallback' => ['http\Message\Body', 'callback'=>'callable', 'offset='=>'mixed', 'maxlen='=>'mixed'], + 'http\Message\Body::toStream' => ['http\Message\Body', 'stream'=>'resource', 'offset='=>'mixed', 'maxlen='=>'mixed'], + 'http\Message\Body::toString' => ['string'], + 'http\Message\Body::unserialize' => ['void', 'serialized'=>'string'], + 'http\Message\Parser::getState' => ['int'], + 'http\Message\Parser::parse' => ['int', 'data'=>'string', 'flags'=>'int', '&message'=>'http\Message'], + 'http\Message\Parser::stream' => ['int', 'stream'=>'resource', 'flags'=>'int', '&message'=>'http\Message'], + 'http\Params::__construct' => ['void', 'params='=>'mixed', 'param_sep='=>'mixed', 'arg_sep='=>'mixed', 'val_sep='=>'mixed', 'flags='=>'mixed'], + 'http\Params::__toString' => ['string'], + 'http\Params::offsetExists' => ['bool', 'name'=>'mixed'], + 'http\Params::offsetGet' => ['mixed', 'name'=>'mixed'], + 'http\Params::offsetSet' => ['void', 'name'=>'mixed', 'value'=>'mixed'], + 'http\Params::offsetUnset' => ['void', 'name'=>'mixed'], + 'http\Params::toArray' => ['array'], + 'http\Params::toString' => ['string'], + 'http\QueryString::__construct' => ['void', 'querystring'=>'string'], + 'http\QueryString::__toString' => ['string'], + 'http\QueryString::get' => ['http\QueryString|string|mixed', 'name='=>'string', 'type='=>'mixed', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getArray' => ['array|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getBool' => ['bool|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getFloat' => ['float|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getGlobalInstance' => ['http\QueryString'], + 'http\QueryString::getInt' => ['int|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getIterator' => ['IteratorAggregate'], + 'http\QueryString::getObject' => ['object|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::getString' => ['string|mixed', 'name'=>'string', 'defval='=>'mixed', 'delete='=>'bool|false'], + 'http\QueryString::mod' => ['http\QueryString', 'params='=>'mixed'], + 'http\QueryString::offsetExists' => ['bool', 'offset'=>'mixed'], + 'http\QueryString::offsetGet' => ['mixed|null', 'offset'=>'mixed'], + 'http\QueryString::offsetSet' => ['void', 'offset'=>'mixed', 'value'=>'mixed'], + 'http\QueryString::offsetUnset' => ['void', 'offset'=>'mixed'], + 'http\QueryString::serialize' => ['string'], + 'http\QueryString::set' => ['http\QueryString', 'params'=>'mixed'], + 'http\QueryString::toArray' => ['array'], + 'http\QueryString::toString' => ['string'], + 'http\QueryString::unserialize' => ['void', 'serialized'=>'string'], + 'http\QueryString::xlate' => ['http\QueryString'], + 'http\Url::__construct' => ['void', 'old_url='=>'mixed', 'new_url='=>'mixed', 'flags='=>'int'], + 'http\Url::__toString' => ['string'], + 'http\Url::mod' => ['http\Url', 'parts'=>'mixed', 'flags='=>'float|int|mixed'], + 'http\Url::toArray' => ['string[]'], + 'http\Url::toString' => ['string'], + 'http_build_cookie' => ['string', 'cookie'=>'array'], + 'http_build_query' => ['string', 'data'=>'array|object', 'numeric_prefix='=>'string', 'arg_separator='=>'?string', 'encoding_type='=>'int'], + 'http_build_str' => ['string', 'query'=>'array', 'prefix='=>'?string', 'arg_separator='=>'string'], + 'http_build_url' => ['string', 'url='=>'string|array', 'parts='=>'string|array', 'flags='=>'int', 'new_url='=>'array'], + 'http_cache_etag' => ['bool', 'etag='=>'string'], + 'http_cache_last_modified' => ['bool', 'timestamp_or_expires='=>'int'], + 'http_chunked_decode' => ['string|false', 'encoded'=>'string'], + 'http_date' => ['string', 'timestamp='=>'int'], + 'http_deflate' => ['?string', 'data'=>'string', 'flags='=>'int'], + 'http_get' => ['string', 'url'=>'string', 'options='=>'array', 'info='=>'array'], + 'http_get_request_body' => ['?string'], + 'http_get_request_body_stream' => ['?resource'], + 'http_get_request_headers' => ['array'], + 'http_head' => ['string', 'url'=>'string', 'options='=>'array', 'info='=>'array'], + 'http_inflate' => ['?string', 'data'=>'string'], + 'http_match_etag' => ['bool', 'etag'=>'string', 'for_range='=>'bool'], + 'http_match_modified' => ['bool', 'timestamp='=>'int', 'for_range='=>'bool'], + 'http_match_request_header' => ['bool', 'header'=>'string', 'value'=>'string', 'match_case='=>'bool'], + 'http_negotiate_charset' => ['string', 'supported'=>'array', 'result='=>'array'], + 'http_negotiate_content_type' => ['string', 'supported'=>'array', 'result='=>'array'], + 'http_negotiate_language' => ['string', 'supported'=>'array', 'result='=>'array'], + 'http_parse_cookie' => ['stdClass|false', 'cookie'=>'string', 'flags='=>'int', 'allowed_extras='=>'array'], + 'http_parse_headers' => ['array|false', 'header'=>'string'], + 'http_parse_message' => ['object', 'message'=>'string'], + 'http_parse_params' => ['stdClass', 'param'=>'string', 'flags='=>'int'], + 'http_persistent_handles_clean' => ['string', 'ident='=>'string'], + 'http_persistent_handles_count' => ['stdClass|false'], + 'http_persistent_handles_ident' => ['string|false', 'ident='=>'string'], + 'http_post_data' => ['string', 'url'=>'string', 'data'=>'string', 'options='=>'array', 'info='=>'array'], + 'http_post_fields' => ['string', 'url'=>'string', 'data'=>'array', 'files='=>'array', 'options='=>'array', 'info='=>'array'], + 'http_put_data' => ['string', 'url'=>'string', 'data'=>'string', 'options='=>'array', 'info='=>'array'], + 'http_put_file' => ['string', 'url'=>'string', 'file'=>'string', 'options='=>'array', 'info='=>'array'], + 'http_put_stream' => ['string', 'url'=>'string', 'stream'=>'resource', 'options='=>'array', 'info='=>'array'], + 'http_redirect' => ['int|false', 'url='=>'string', 'params='=>'array', 'session='=>'bool', 'status='=>'int'], + 'http_request' => ['string', 'method'=>'int', 'url'=>'string', 'body='=>'string', 'options='=>'array', 'info='=>'array'], + 'http_request_body_encode' => ['string|false', 'fields'=>'array', 'files'=>'array'], + 'http_request_method_exists' => ['bool', 'method'=>'mixed'], + 'http_request_method_name' => ['string|false', 'method'=>'int'], + 'http_request_method_register' => ['int|false', 'method'=>'string'], + 'http_request_method_unregister' => ['bool', 'method'=>'mixed'], + 'http_response_code' => ['int|bool', 'response_code='=>'int'], + 'http_send_content_disposition' => ['bool', 'filename'=>'string', 'inline='=>'bool'], + 'http_send_content_type' => ['bool', 'content_type='=>'string'], + 'http_send_data' => ['bool', 'data'=>'string'], + 'http_send_file' => ['bool', 'file'=>'string'], + 'http_send_last_modified' => ['bool', 'timestamp='=>'int'], + 'http_send_status' => ['bool', 'status'=>'int'], + 'http_send_stream' => ['bool', 'stream'=>'resource'], + 'http_support' => ['int', 'feature='=>'int'], + 'http_throttle' => ['void', 'sec'=>'float', 'bytes='=>'int'], + 'hw_Array2Objrec' => ['string', 'object_array'=>'array'], + 'hw_Children' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_ChildrenObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_Close' => ['bool', 'connection'=>'int'], + 'hw_Connect' => ['int', 'host'=>'string', 'port'=>'int', 'username='=>'string', 'password='=>'string'], + 'hw_Deleteobject' => ['bool', 'connection'=>'int', 'object_to_delete'=>'int'], + 'hw_DocByAnchor' => ['int', 'connection'=>'int', 'anchorid'=>'int'], + 'hw_DocByAnchorObj' => ['string', 'connection'=>'int', 'anchorid'=>'int'], + 'hw_Document_Attributes' => ['string', 'hw_document'=>'int'], + 'hw_Document_BodyTag' => ['string', 'hw_document'=>'int', 'prefix='=>'string'], + 'hw_Document_Content' => ['string', 'hw_document'=>'int'], + 'hw_Document_SetContent' => ['bool', 'hw_document'=>'int', 'content'=>'string'], + 'hw_Document_Size' => ['int', 'hw_document'=>'int'], + 'hw_EditText' => ['bool', 'connection'=>'int', 'hw_document'=>'int'], + 'hw_Error' => ['int', 'connection'=>'int'], + 'hw_ErrorMsg' => ['string', 'connection'=>'int'], + 'hw_Free_Document' => ['bool', 'hw_document'=>'int'], + 'hw_GetAnchors' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetAnchorsObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetAndLock' => ['string', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetChildColl' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetChildCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetChildDocColl' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetChildDocCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetObject' => ['', 'connection'=>'int', 'objectid'=>'', 'query='=>'string'], + 'hw_GetObjectByQuery' => ['array', 'connection'=>'int', 'query'=>'string', 'max_hits'=>'int'], + 'hw_GetObjectByQueryColl' => ['array', 'connection'=>'int', 'objectid'=>'int', 'query'=>'string', 'max_hits'=>'int'], + 'hw_GetObjectByQueryCollObj' => ['array', 'connection'=>'int', 'objectid'=>'int', 'query'=>'string', 'max_hits'=>'int'], + 'hw_GetObjectByQueryObj' => ['array', 'connection'=>'int', 'query'=>'string', 'max_hits'=>'int'], + 'hw_GetParents' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetParentsObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetRemote' => ['int', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetSrcByDestObj' => ['array', 'connection'=>'int', 'objectid'=>'int'], + 'hw_GetText' => ['int', 'connection'=>'int', 'objectid'=>'int', 'prefix='=>''], + 'hw_Identify' => ['string', 'link'=>'int', 'username'=>'string', 'password'=>'string'], + 'hw_InCollections' => ['array', 'connection'=>'int', 'object_id_array'=>'array', 'collection_id_array'=>'array', 'return_collections'=>'int'], + 'hw_Info' => ['string', 'connection'=>'int'], + 'hw_InsColl' => ['int', 'connection'=>'int', 'objectid'=>'int', 'object_array'=>'array'], + 'hw_InsDoc' => ['int', 'connection'=>'', 'parentid'=>'int', 'object_record'=>'string', 'text='=>'string'], + 'hw_InsertDocument' => ['int', 'connection'=>'int', 'parent_id'=>'int', 'hw_document'=>'int'], + 'hw_InsertObject' => ['int', 'connection'=>'int', 'object_rec'=>'string', 'parameter'=>'string'], + 'hw_Modifyobject' => ['bool', 'connection'=>'int', 'object_to_change'=>'int', 'remove'=>'array', 'add'=>'array', 'mode='=>'int'], + 'hw_New_Document' => ['int', 'object_record'=>'string', 'document_data'=>'string', 'document_size'=>'int'], + 'hw_Output_Document' => ['bool', 'hw_document'=>'int'], + 'hw_PipeDocument' => ['int', 'connection'=>'int', 'objectid'=>'int', 'url_prefixes='=>'array'], + 'hw_Root' => ['int'], + 'hw_Unlock' => ['bool', 'connection'=>'int', 'objectid'=>'int'], + 'hw_Who' => ['array', 'connection'=>'int'], + 'hw_api::checkin' => ['bool', 'parameter'=>'array'], + 'hw_api::checkout' => ['bool', 'parameter'=>'array'], + 'hw_api::children' => ['array', 'parameter'=>'array'], + 'hw_api::content' => ['HW_API_Content', 'parameter'=>'array'], + 'hw_api::copy' => ['hw_api_content', 'parameter'=>'array'], + 'hw_api::dbstat' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::dcstat' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::dstanchors' => ['array', 'parameter'=>'array'], + 'hw_api::dstofsrcanchor' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::find' => ['array', 'parameter'=>'array'], + 'hw_api::ftstat' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::hwstat' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::identify' => ['bool', 'parameter'=>'array'], + 'hw_api::info' => ['array', 'parameter'=>'array'], + 'hw_api::insert' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::insertanchor' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::insertcollection' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::insertdocument' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::link' => ['bool', 'parameter'=>'array'], + 'hw_api::lock' => ['bool', 'parameter'=>'array'], + 'hw_api::move' => ['bool', 'parameter'=>'array'], + 'hw_api::object' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::objectbyanchor' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::parents' => ['array', 'parameter'=>'array'], + 'hw_api::remove' => ['bool', 'parameter'=>'array'], + 'hw_api::replace' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::setcommittedversion' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::srcanchors' => ['array', 'parameter'=>'array'], + 'hw_api::srcsofdst' => ['array', 'parameter'=>'array'], + 'hw_api::unlock' => ['bool', 'parameter'=>'array'], + 'hw_api::user' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api::userlist' => ['array', 'parameter'=>'array'], + 'hw_api_attribute' => ['HW_API_Attribute', 'name='=>'string', 'value='=>'string'], + 'hw_api_attribute::key' => ['string'], + 'hw_api_attribute::langdepvalue' => ['string', 'language'=>'string'], + 'hw_api_attribute::value' => ['string'], + 'hw_api_attribute::values' => ['array'], + 'hw_api_content' => ['HW_API_Content', 'content'=>'string', 'mimetype'=>'string'], + 'hw_api_content::mimetype' => ['string'], + 'hw_api_content::read' => ['string', 'buffer'=>'string', 'length'=>'int'], + 'hw_api_error::count' => ['int'], + 'hw_api_error::reason' => ['HW_API_Reason'], + 'hw_api_object' => ['hw_api_object', 'parameter'=>'array'], + 'hw_api_object::assign' => ['bool', 'parameter'=>'array'], + 'hw_api_object::attreditable' => ['bool', 'parameter'=>'array'], + 'hw_api_object::count' => ['int', 'parameter'=>'array'], + 'hw_api_object::insert' => ['bool', 'attribute'=>'hw_api_attribute'], + 'hw_api_object::remove' => ['bool', 'name'=>'string'], + 'hw_api_object::title' => ['string', 'parameter'=>'array'], + 'hw_api_object::value' => ['string', 'name'=>'string'], + 'hw_api_reason::description' => ['string'], + 'hw_api_reason::type' => ['HW_API_Reason'], + 'hw_changeobject' => ['bool', 'link'=>'int', 'objid'=>'int', 'attributes'=>'array'], + 'hw_connection_info' => ['', 'link'=>'int'], + 'hw_cp' => ['int', 'connection'=>'int', 'object_id_array'=>'array', 'destination_id'=>'int'], + 'hw_dummy' => ['string', 'link'=>'int', 'id'=>'int', 'msgid'=>'int'], + 'hw_getrellink' => ['string', 'link'=>'int', 'rootid'=>'int', 'sourceid'=>'int', 'destid'=>'int'], + 'hw_getremotechildren' => ['', 'connection'=>'int', 'object_record'=>'string'], + 'hw_getusername' => ['string', 'connection'=>'int'], + 'hw_insertanchors' => ['bool', 'hwdoc'=>'int', 'anchorecs'=>'array', 'dest'=>'array', 'urlprefixes='=>'array'], + 'hw_mapid' => ['int', 'connection'=>'int', 'server_id'=>'int', 'object_id'=>'int'], + 'hw_mv' => ['int', 'connection'=>'int', 'object_id_array'=>'array', 'source_id'=>'int', 'destination_id'=>'int'], + 'hw_objrec2array' => ['array', 'object_record'=>'string', 'format='=>'array'], + 'hw_pConnect' => ['int', 'host'=>'string', 'port'=>'int', 'username='=>'string', 'password='=>'string'], + 'hw_setlinkroot' => ['int', 'link'=>'int', 'rootid'=>'int'], + 'hw_stat' => ['string', 'link'=>'int'], + 'hwapi_attribute_new' => ['HW_API_Attribute', 'name='=>'string', 'value='=>'string'], + 'hwapi_content_new' => ['HW_API_Content', 'content'=>'string', 'mimetype'=>'string'], + 'hwapi_hgcsp' => ['HW_API', 'hostname'=>'string', 'port='=>'int'], + 'hwapi_object_new' => ['hw_api_object', 'parameter'=>'array'], + 'hypot' => ['float', 'x'=>'float', 'y'=>'float'], + 'ibase_add_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password'=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], + 'ibase_affected_rows' => ['int', 'link_identifier='=>'resource'], + 'ibase_backup' => ['mixed', 'service_handle'=>'resource', 'source_db'=>'string', 'dest_file'=>'string', 'options='=>'int', 'verbose='=>'bool'], + 'ibase_blob_add' => ['void', 'blob_handle'=>'resource', 'data'=>'string'], + 'ibase_blob_cancel' => ['bool', 'blob_handle'=>'resource'], + 'ibase_blob_close' => ['string|bool', 'blob_handle'=>'resource'], + 'ibase_blob_create' => ['resource', 'link_identifier='=>'resource'], + 'ibase_blob_echo' => ['bool', 'link_identifier'=>'', 'blob_id'=>'string'], + 'ibase_blob_echo\'1' => ['bool', 'blob_id'=>'string'], + 'ibase_blob_get' => ['string|false', 'blob_handle'=>'resource', 'length'=>'int'], + 'ibase_blob_import' => ['string|false', 'link_identifier'=>'resource', 'file_handle'=>'resource'], + 'ibase_blob_info' => ['array', 'link_identifier'=>'resource', 'blob_id'=>'string'], + 'ibase_blob_info\'1' => ['array', 'blob_id'=>'string'], + 'ibase_blob_open' => ['resource|false', 'link_identifier'=>'', 'blob_id'=>'string'], + 'ibase_blob_open\'1' => ['resource', 'blob_id'=>'string'], + 'ibase_close' => ['bool', 'link_identifier='=>'resource'], + 'ibase_commit' => ['bool', 'link_identifier='=>'resource'], + 'ibase_commit_ret' => ['bool', 'link_identifier='=>'resource'], + 'ibase_connect' => ['resource|false', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'charset='=>'string', 'buffers='=>'int', 'dialect='=>'int', 'role='=>'string'], + 'ibase_db_info' => ['string', 'service_handle'=>'resource', 'db'=>'string', 'action'=>'int', 'argument='=>'int'], + 'ibase_delete_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password='=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], + 'ibase_drop_db' => ['bool', 'link_identifier='=>'resource'], + 'ibase_errcode' => ['int|false'], + 'ibase_errmsg' => ['string|false'], + 'ibase_execute' => ['resource|false', 'query'=>'resource', 'bind_arg='=>'mixed', '...args='=>'mixed'], + 'ibase_fetch_assoc' => ['array|false', 'result'=>'resource', 'fetch_flags='=>'int'], + 'ibase_fetch_object' => ['object|false', 'result'=>'resource', 'fetch_flags='=>'int'], + 'ibase_fetch_row' => ['array|false', 'result'=>'resource', 'fetch_flags='=>'int'], + 'ibase_field_info' => ['array', 'query_result'=>'resource', 'field_number'=>'int'], + 'ibase_free_event_handler' => ['bool', 'event'=>'resource'], + 'ibase_free_query' => ['bool', 'query'=>'resource'], + 'ibase_free_result' => ['bool', 'result'=>'resource'], + 'ibase_gen_id' => ['int|string', 'generator'=>'string', 'increment='=>'int', 'link_identifier='=>'resource'], + 'ibase_maintain_db' => ['bool', 'service_handle'=>'resource', 'db'=>'string', 'action'=>'int', 'argument='=>'int'], + 'ibase_modify_user' => ['bool', 'service_handle'=>'resource', 'user_name'=>'string', 'password'=>'string', 'first_name='=>'string', 'middle_name='=>'string', 'last_name='=>'string'], + 'ibase_name_result' => ['bool', 'result'=>'resource', 'name'=>'string'], + 'ibase_num_fields' => ['int', 'query_result'=>'resource'], + 'ibase_num_params' => ['int', 'query'=>'resource'], + 'ibase_num_rows' => ['int', 'result_identifier'=>''], + 'ibase_param_info' => ['array', 'query'=>'resource', 'field_number'=>'int'], + 'ibase_pconnect' => ['resource|false', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'charset='=>'string', 'buffers='=>'int', 'dialect='=>'int', 'role='=>'string'], + 'ibase_prepare' => ['resource|false', 'link_identifier'=>'', 'query'=>'string', 'trans_identifier'=>''], + 'ibase_query' => ['resource|false', 'link_identifier='=>'resource', 'string='=>'string', 'bind_arg='=>'int', '...args='=>''], + 'ibase_restore' => ['mixed', 'service_handle'=>'resource', 'source_file'=>'string', 'dest_db'=>'string', 'options='=>'int', 'verbose='=>'bool'], + 'ibase_rollback' => ['bool', 'link_identifier='=>'resource'], + 'ibase_rollback_ret' => ['bool', 'link_identifier='=>'resource'], + 'ibase_server_info' => ['string', 'service_handle'=>'resource', 'action'=>'int'], + 'ibase_service_attach' => ['resource', 'host'=>'string', 'dba_username'=>'string', 'dba_password'=>'string'], + 'ibase_service_detach' => ['bool', 'service_handle'=>'resource'], + 'ibase_set_event_handler' => ['resource', 'link_identifier'=>'', 'callback'=>'callable', 'event='=>'string', '...args='=>''], + 'ibase_set_event_handler\'1' => ['resource', 'callback'=>'callable', 'event'=>'string', '...args'=>''], + 'ibase_timefmt' => ['bool', 'format'=>'string', 'columntype='=>'int'], + 'ibase_trans' => ['resource|false', 'trans_args='=>'int', 'link_identifier='=>'', '...args='=>''], + 'ibase_wait_event' => ['string', 'link_identifier'=>'', 'event='=>'string', '...args='=>''], + 'ibase_wait_event\'1' => ['string', 'event'=>'string', '...args'=>''], + 'iconv' => ['string|false', 'from_encoding'=>'string', 'to_encoding'=>'string', 'string'=>'string'], + 'iconv_get_encoding' => ['array|string|false', 'type='=>'string'], + 'iconv_mime_decode' => ['string|false', 'string'=>'string', 'mode='=>'int', 'encoding='=>'string'], + 'iconv_mime_decode_headers' => ['array|false', 'headers'=>'string', 'mode='=>'int', 'encoding='=>'string'], + 'iconv_mime_encode' => ['string|false', 'field_name'=>'string', 'field_value'=>'string', 'options='=>'array'], + 'iconv_set_encoding' => ['bool', 'type'=>'string', 'encoding'=>'string'], + 'iconv_strlen' => ['0|positive-int|false', 'string'=>'string', 'encoding='=>'string'], + 'iconv_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'iconv_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string'], + 'iconv_substr' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'int', 'encoding='=>'string'], + 'id3_get_frame_long_name' => ['string', 'frameid'=>'string'], + 'id3_get_frame_short_name' => ['string', 'frameid'=>'string'], + 'id3_get_genre_id' => ['int', 'genre'=>'string'], + 'id3_get_genre_list' => ['array'], + 'id3_get_genre_name' => ['string', 'genre_id'=>'int'], + 'id3_get_tag' => ['array', 'filename'=>'string', 'version='=>'int'], + 'id3_get_version' => ['int', 'filename'=>'string'], + 'id3_remove_tag' => ['bool', 'filename'=>'string', 'version='=>'int'], + 'id3_set_tag' => ['bool', 'filename'=>'string', 'tag'=>'array', 'version='=>'int'], + 'idate' => ['int', 'format'=>'string', 'timestamp='=>'int'], + 'idn_strerror' => ['string', 'errorcode'=>'int'], + 'idn_to_ascii' => ['string|false', 'domain'=>'string', 'flags='=>'int', 'variant='=>'int', '&w_idna_info='=>'array'], + 'idn_to_utf8' => ['string|false', 'domain'=>'string', 'flags='=>'int', 'variant='=>'int', '&w_idna_info='=>'array'], + 'ifx_affected_rows' => ['int', 'result_id'=>'resource'], + 'ifx_blobinfile_mode' => ['bool', 'mode'=>'int'], + 'ifx_byteasvarchar' => ['bool', 'mode'=>'int'], + 'ifx_close' => ['bool', 'link_identifier='=>'resource'], + 'ifx_connect' => ['resource', 'database='=>'string', 'userid='=>'string', 'password='=>'string'], + 'ifx_copy_blob' => ['int', 'bid'=>'int'], + 'ifx_create_blob' => ['int', 'type'=>'int', 'mode'=>'int', 'param'=>'string'], + 'ifx_create_char' => ['int', 'param'=>'string'], + 'ifx_do' => ['bool', 'result_id'=>'resource'], + 'ifx_error' => ['string', 'link_identifier='=>'resource'], + 'ifx_errormsg' => ['string', 'errorcode='=>'int'], + 'ifx_fetch_row' => ['array', 'result_id'=>'resource', 'position='=>'mixed'], + 'ifx_fieldproperties' => ['array', 'result_id'=>'resource'], + 'ifx_fieldtypes' => ['array', 'result_id'=>'resource'], + 'ifx_free_blob' => ['bool', 'bid'=>'int'], + 'ifx_free_char' => ['bool', 'bid'=>'int'], + 'ifx_free_result' => ['bool', 'result_id'=>'resource'], + 'ifx_get_blob' => ['string', 'bid'=>'int'], + 'ifx_get_char' => ['string', 'bid'=>'int'], + 'ifx_getsqlca' => ['array', 'result_id'=>'resource'], + 'ifx_htmltbl_result' => ['int', 'result_id'=>'resource', 'html_table_options='=>'string'], + 'ifx_nullformat' => ['bool', 'mode'=>'int'], + 'ifx_num_fields' => ['int', 'result_id'=>'resource'], + 'ifx_num_rows' => ['int', 'result_id'=>'resource'], + 'ifx_pconnect' => ['resource', 'database='=>'string', 'userid='=>'string', 'password='=>'string'], + 'ifx_prepare' => ['resource', 'query'=>'string', 'link_identifier'=>'resource', 'cursor_def='=>'int', 'blobidarray='=>'mixed'], + 'ifx_query' => ['resource', 'query'=>'string', 'link_identifier'=>'resource', 'cursor_type='=>'int', 'blobidarray='=>'mixed'], + 'ifx_textasvarchar' => ['bool', 'mode'=>'int'], + 'ifx_update_blob' => ['bool', 'bid'=>'int', 'content'=>'string'], + 'ifx_update_char' => ['bool', 'bid'=>'int', 'content'=>'string'], + 'ifxus_close_slob' => ['bool', 'bid'=>'int'], + 'ifxus_create_slob' => ['int', 'mode'=>'int'], + 'ifxus_free_slob' => ['bool', 'bid'=>'int'], + 'ifxus_open_slob' => ['int', 'bid'=>'int', 'mode'=>'int'], + 'ifxus_read_slob' => ['string', 'bid'=>'int', 'nbytes'=>'int'], + 'ifxus_seek_slob' => ['int', 'bid'=>'int', 'mode'=>'int', 'offset'=>'int'], + 'ifxus_tell_slob' => ['int', 'bid'=>'int'], + 'ifxus_write_slob' => ['int', 'bid'=>'int', 'content'=>'string'], + 'igbinary_serialize' => ['string|false', 'value'=>'mixed'], + 'igbinary_unserialize' => ['mixed', 'str'=>'string'], + 'ignore_user_abort' => ['int', 'enable='=>'bool'], + 'iis_add_server' => ['int', 'path'=>'string', 'comment'=>'string', 'server_ip'=>'string', 'port'=>'int', 'host_name'=>'string', 'rights'=>'int', 'start_server'=>'int'], + 'iis_get_dir_security' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string'], + 'iis_get_script_map' => ['string', 'server_instance'=>'int', 'virtual_path'=>'string', 'script_extension'=>'string'], + 'iis_get_server_by_comment' => ['int', 'comment'=>'string'], + 'iis_get_server_by_path' => ['int', 'path'=>'string'], + 'iis_get_server_rights' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string'], + 'iis_get_service_state' => ['int', 'service_id'=>'string'], + 'iis_remove_server' => ['int', 'server_instance'=>'int'], + 'iis_set_app_settings' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'application_scope'=>'string'], + 'iis_set_dir_security' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'directory_flags'=>'int'], + 'iis_set_script_map' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'script_extension'=>'string', 'engine_path'=>'string', 'allow_scripting'=>'int'], + 'iis_set_server_rights' => ['int', 'server_instance'=>'int', 'virtual_path'=>'string', 'directory_flags'=>'int'], + 'iis_start_server' => ['int', 'server_instance'=>'int'], + 'iis_start_service' => ['int', 'service_id'=>'string'], + 'iis_stop_server' => ['int', 'server_instance'=>'int'], + 'iis_stop_service' => ['int', 'service_id'=>'string'], + 'image2wbmp' => ['bool', 'im'=>'resource', 'filename='=>'?string', 'threshold='=>'int'], + 'imageObj::pasteImage' => ['void', 'srcImg'=>'imageObj', 'transparentColorHex'=>'int', 'dstX'=>'int', 'dstY'=>'int', 'angle'=>'int'], + 'imageObj::saveImage' => ['int', 'filename'=>'string', 'oMap'=>'mapObj'], + 'imageObj::saveWebImage' => ['string'], + 'image_type_to_extension' => ['string', 'image_type'=>'int', 'include_dot='=>'bool'], + 'image_type_to_mime_type' => ['string', 'image_type'=>'int'], + 'imageaffine' => ['resource|false', 'src'=>'resource', 'affine'=>'array', 'clip='=>'array'], + 'imageaffinematrixconcat' => ['array{0:float,1:float,2:float,3:float,4:float,5:float}|false', 'matrix1'=>'array', 'matrix2'=>'array'], + 'imageaffinematrixget' => ['array{0:float,1:float,2:float,3:float,4:float,5:float}|false', 'type'=>'int', 'options'=>'array|float'], + 'imagealphablending' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'imageantialias' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'imagearc' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int'], + 'imagechar' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + 'imagecharup' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'char'=>'string', 'color'=>'int'], + 'imagecolorallocate' => ['int|false', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'imagecolorallocatealpha' => ['int|false', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'imagecolorat' => ['int|false', 'image'=>'resource', 'x'=>'int', 'y'=>'int'], + 'imagecolorclosest' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'imagecolorclosestalpha' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'imagecolorclosesthwb' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'imagecolordeallocate' => ['bool', 'image'=>'resource', 'color'=>'int'], + 'imagecolorexact' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'imagecolorexactalpha' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'imagecolormatch' => ['bool', 'image1'=>'resource', 'image2'=>'resource'], + 'imagecolorresolve' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'imagecolorresolvealpha' => ['int', 'image'=>'resource', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha'=>'int'], + 'imagecolorset' => ['false|null', 'image'=>'resource', 'color'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'alpha='=>'int'], + 'imagecolorsforindex' => ['array', 'image'=>'resource', 'color'=>'int'], + 'imagecolorstotal' => ['int', 'image'=>'resource'], + 'imagecolortransparent' => ['int', 'image'=>'resource', 'color='=>'int'], + 'imageconvolution' => ['bool', 'image'=>'resource', 'matrix'=>'array', 'divisor'=>'float', 'offset'=>'float'], + 'imagecopy' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'imagecopymerge' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + 'imagecopymergegray' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'src_width'=>'int', 'src_height'=>'int', 'pct'=>'int'], + 'imagecopyresampled' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'imagecopyresized' => ['bool', 'dst_image'=>'resource', 'src_image'=>'resource', 'dst_x'=>'int', 'dst_y'=>'int', 'src_x'=>'int', 'src_y'=>'int', 'dst_width'=>'int', 'dst_height'=>'int', 'src_width'=>'int', 'src_height'=>'int'], + 'imagecreate' => ['resource|false', 'x_size'=>'int', 'y_size'=>'int'], + 'imagecreatefromgd' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromgd2' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromgd2part' => ['resource|false', 'filename'=>'string', 'srcx'=>'int', 'srcy'=>'int', 'width'=>'int', 'height'=>'int'], + 'imagecreatefromgif' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromjpeg' => ['resource|false', 'filename'=>'string'], + 'imagecreatefrompng' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromstring' => ['resource|false', 'image'=>'string'], + 'imagecreatefromwbmp' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromwebp' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromxbm' => ['resource|false', 'filename'=>'string'], + 'imagecreatefromxpm' => ['resource|false', 'filename'=>'string'], + 'imagecreatetruecolor' => ['resource|false', 'x_size'=>'int', 'y_size'=>'int'], + 'imagecrop' => ['resource|false', 'im'=>'resource', 'rect'=>'array'], + 'imagecropauto' => ['resource|false', 'im'=>'resource', 'mode='=>'int', 'threshold='=>'float', 'color='=>'int'], + 'imagedashedline' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'imagedestroy' => ['bool', 'image'=>'resource'], + 'imageellipse' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + 'imagefill' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + 'imagefilledarc' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'start_angle'=>'int', 'end_angle'=>'int', 'color'=>'int', 'style'=>'int'], + 'imagefilledellipse' => ['bool', 'image'=>'resource', 'center_x'=>'int', 'center_y'=>'int', 'width'=>'int', 'height'=>'int', 'color'=>'int'], + 'imagefilledpolygon' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + 'imagefilledrectangle' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'imagefilltoborder' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'border_color'=>'int', 'color'=>'int'], + 'imagefilter' => ['bool', 'image'=>'resource', 'filter'=>'int', '...args='=>'array|int|float|bool'], + 'imageflip' => ['bool', 'image'=>'resource', 'mode'=>'int'], + 'imagefontheight' => ['int', 'font'=>'int'], + 'imagefontwidth' => ['int', 'font'=>'int'], + 'imageftbbox' => ['array|false', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string', 'options='=>'array'], + 'imagefttext' => ['array|false', 'image'=>'resource', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string', 'options='=>'array'], + 'imagegammacorrect' => ['bool', 'image'=>'resource', 'input_gamma'=>'float', 'output_gamma'=>'float'], + 'imagegd' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null'], + 'imagegd2' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'chunk_size='=>'int', 'mode='=>'int'], + 'imagegetclip' => ['array|false', 'im'=>'resource'], + 'imagegif' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null'], + 'imagegrabscreen' => ['false|resource'], + 'imagegrabwindow' => ['false|resource', 'window_handle'=>'int', 'client_area='=>'int'], + 'imageinterlace' => ['int|false', 'image'=>'resource', 'enable='=>'int'], + 'imageistruecolor' => ['bool', 'image'=>'resource'], + 'imagejpeg' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int'], + 'imagelayereffect' => ['bool', 'image'=>'resource', 'effect'=>'int'], + 'imageline' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'imageloadfont' => ['int|false', 'filename'=>'string'], + 'imagepalettecopy' => ['void', 'dst'=>'resource', 'src'=>'resource'], + 'imagepalettetotruecolor' => ['bool', 'image'=>'resource'], + 'imagepng' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int', 'filters='=>'int'], + 'imagepolygon' => ['bool', 'image'=>'resource', 'points'=>'array', 'num_points_or_color'=>'int', 'color'=>'int'], + 'imagerectangle' => ['bool', 'image'=>'resource', 'x1'=>'int', 'y1'=>'int', 'x2'=>'int', 'y2'=>'int', 'color'=>'int'], + 'imagerotate' => ['resource|false', 'src_im'=>'resource', 'angle'=>'float', 'bgdcolor'=>'int', 'ignoretransparent='=>'int'], + 'imagesavealpha' => ['bool', 'image'=>'resource', 'enable'=>'bool'], + 'imagescale' => ['resource|false', 'im'=>'resource', 'new_width'=>'int', 'new_height='=>'int', 'method='=>'int'], + 'imagesetbrush' => ['bool', 'image'=>'resource', 'brush'=>'resource'], + 'imagesetinterpolation' => ['bool', 'image'=>'resource', 'method='=>'int'], + 'imagesetpixel' => ['bool', 'image'=>'resource', 'x'=>'int', 'y'=>'int', 'color'=>'int'], + 'imagesetstyle' => ['bool', 'image'=>'resource', 'style'=>'non-empty-array'], + 'imagesetthickness' => ['bool', 'image'=>'resource', 'thickness'=>'int'], + 'imagesettile' => ['bool', 'image'=>'resource', 'tile'=>'resource'], + 'imagestring' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + 'imagestringup' => ['bool', 'image'=>'resource', 'font'=>'int', 'x'=>'int', 'y'=>'int', 'string'=>'string', 'color'=>'int'], + 'imagesx' => ['int', 'image'=>'resource'], + 'imagesy' => ['int', 'image'=>'resource'], + 'imagetruecolortopalette' => ['bool', 'image'=>'resource', 'dither'=>'bool', 'num_colors'=>'int'], + 'imagettfbbox' => ['false|array', 'size'=>'float', 'angle'=>'float', 'font_filename'=>'string', 'string'=>'string'], + 'imagettftext' => ['false|array', 'image'=>'resource', 'size'=>'float', 'angle'=>'float', 'x'=>'int', 'y'=>'int', 'color'=>'int', 'font_filename'=>'string', 'text'=>'string'], + 'imagetypes' => ['int'], + 'imagewbmp' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'foreground_color='=>'int'], + 'imagewebp' => ['bool', 'image'=>'resource', 'file='=>'string|resource|null', 'quality='=>'int'], + 'imagexbm' => ['bool', 'image'=>'resource', 'filename'=>'?string', 'foreground_color='=>'int'], + 'imap_8bit' => ['string|false', 'string'=>'string'], + 'imap_alerts' => ['array|false'], + 'imap_append' => ['bool', 'imap'=>'resource', 'folder'=>'string', 'message'=>'string', 'options='=>'string', 'internal_date='=>'string'], + 'imap_base64' => ['string|false', 'string'=>'string'], + 'imap_binary' => ['string|false', 'string'=>'string'], + 'imap_body' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'imap_bodystruct' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string'], + 'imap_check' => ['stdClass|false', 'imap'=>'resource'], + 'imap_clearflag_full' => ['bool', 'imap'=>'resource', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + 'imap_close' => ['bool', 'imap'=>'resource', 'flags='=>'int'], + 'imap_create' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_createmailbox' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_delete' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'flags='=>'int'], + 'imap_deletemailbox' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_errors' => ['array|false'], + 'imap_expunge' => ['bool', 'imap'=>'resource'], + 'imap_fetch_overview' => ['array|false', 'imap'=>'resource', 'sequence'=>'string', 'flags='=>'int'], + 'imap_fetchbody' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + 'imap_fetchheader' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'imap_fetchmime' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'section'=>'string', 'flags='=>'int'], + 'imap_fetchstructure' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'imap_fetchtext' => ['string|false', 'imap'=>'resource', 'message_num'=>'int', 'flags='=>'int'], + 'imap_gc' => ['bool', 'imap'=>'resource', 'flags'=>'int'], + 'imap_get_quota' => ['array|false', 'imap'=>'resource', 'quota_root'=>'string'], + 'imap_get_quotaroot' => ['array|false', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_getacl' => ['array|false', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_getmailboxes' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_getsubscribed' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_header' => ['stdClass|false', 'stream_id'=>'resource', 'msg_no'=>'int', 'from_length='=>'int', 'subject_length='=>'int', 'default_host='=>'string'], + 'imap_headerinfo' => ['stdClass|false', 'imap'=>'resource', 'message_num'=>'int', 'from_length='=>'int', 'subject_length='=>'int', 'default_host='=>'string|null'], + 'imap_headers' => ['array|false', 'imap'=>'resource'], + 'imap_last_error' => ['string|false'], + 'imap_list' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_listmailbox' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_listscan' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'imap_listsubscribed' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_lsub' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string'], + 'imap_mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string', 'cc='=>'string', 'bcc='=>'string', 'return_path='=>'string'], + 'imap_mail_compose' => ['string|false', 'envelope'=>'array', 'bodies'=>'array'], + 'imap_mail_copy' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + 'imap_mail_move' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'mailbox'=>'string', 'flags='=>'int'], + 'imap_mailboxmsginfo' => ['stdClass', 'imap'=>'resource'], + 'imap_mime_header_decode' => ['array|false', 'string'=>'string'], + 'imap_msgno' => ['int', 'imap'=>'resource', 'message_uid'=>'int'], + 'imap_mutf7_to_utf8' => ['string|false', 'string'=>'string'], + 'imap_num_msg' => ['int|false', 'imap'=>'resource'], + 'imap_num_recent' => ['int', 'imap'=>'resource'], + 'imap_open' => ['resource|false', 'mailbox'=>'string', 'user'=>'string', 'password'=>'string', 'flags='=>'int', 'retries='=>'int', 'options='=>'array'], + 'imap_ping' => ['bool', 'imap'=>'resource'], + 'imap_qprint' => ['string|false', 'string'=>'string'], + 'imap_rename' => ['bool', 'imap'=>'resource', 'from'=>'string', 'to'=>'string'], + 'imap_renamemailbox' => ['bool', 'imap'=>'resource', 'from'=>'string', 'to'=>'string'], + 'imap_reopen' => ['bool', 'imap'=>'resource', 'mailbox'=>'string', 'flags='=>'int', 'retries='=>'int'], + 'imap_rfc822_parse_adrlist' => ['array', 'string'=>'string', 'default_hostname'=>'string'], + 'imap_rfc822_parse_headers' => ['stdClass', 'headers'=>'string', 'default_hostname='=>'string'], + 'imap_rfc822_write_address' => ['string|false', 'mailbox'=>'string', 'hostname'=>'string', 'personal'=>'string'], + 'imap_savebody' => ['bool', 'imap'=>'resource', 'file'=>'string|resource', 'message_num'=>'int', 'section='=>'string', 'flags='=>'int'], + 'imap_scan' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'imap_scanmailbox' => ['array|false', 'imap'=>'resource', 'reference'=>'string', 'pattern'=>'string', 'content'=>'string'], + 'imap_search' => ['array|false', 'imap'=>'resource', 'criteria'=>'string', 'flags='=>'int', 'charset='=>'string'], + 'imap_set_quota' => ['bool', 'imap'=>'resource', 'quota_root'=>'string', 'mailbox_size'=>'int'], + 'imap_setacl' => ['bool', 'imap'=>'resource', 'mailbox'=>'string', 'user_id'=>'string', 'rights'=>'string'], + 'imap_setflag_full' => ['bool', 'imap'=>'resource', 'sequence'=>'string', 'flag'=>'string', 'options='=>'int'], + 'imap_sort' => ['array|false', 'imap'=>'resource', 'criteria'=>'int', 'reverse'=>'int', 'flags='=>'int', 'search_criteria='=>'string', 'charset='=>'string'], + 'imap_status' => ['stdClass|false', 'imap'=>'resource', 'mailbox'=>'string', 'flags'=>'int'], + 'imap_subscribe' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_thread' => ['array|false', 'imap'=>'resource', 'flags='=>'int'], + 'imap_timeout' => ['int|bool', 'timeout_type'=>'int', 'timeout='=>'int'], + 'imap_uid' => ['int|false', 'imap'=>'resource', 'message_num'=>'int'], + 'imap_undelete' => ['bool', 'imap'=>'resource', 'message_nums'=>'string', 'flags='=>'int'], + 'imap_unsubscribe' => ['bool', 'imap'=>'resource', 'mailbox'=>'string'], + 'imap_utf7_decode' => ['string|false', 'string'=>'string'], + 'imap_utf7_encode' => ['string', 'string'=>'string'], + 'imap_utf8' => ['string', 'mime_encoded_text'=>'string'], + 'imap_utf8_to_mutf7' => ['string|false', 'string'=>'string'], + 'implode' => ['string', 'separator'=>'string', 'array'=>'array'], + 'implode\'1' => ['string', 'separator'=>'array'], + 'import_request_variables' => ['bool', 'types'=>'string', 'prefix='=>'string'], + 'in_array' => ['bool', 'needle'=>'mixed', 'haystack'=>'array', 'strict='=>'bool'], + 'inclued_get_data' => ['array'], + 'inet_ntop' => ['string|false', 'ip'=>'string'], + 'inet_pton' => ['string|false', 'ip'=>'string'], + 'inflate_add' => ['string|false', 'context'=>'resource', 'data'=>'string', 'flush_mode='=>'int'], + 'inflate_get_read_len' => ['int', 'context'=>'resource'], + 'inflate_get_status' => ['int', 'context'=>'resource'], + 'inflate_init' => ['resource|false', 'encoding'=>'int', 'options='=>'array'], + 'ingres_autocommit' => ['bool', 'link'=>'resource'], + 'ingres_autocommit_state' => ['bool', 'link'=>'resource'], + 'ingres_charset' => ['string', 'link'=>'resource'], + 'ingres_close' => ['bool', 'link'=>'resource'], + 'ingres_commit' => ['bool', 'link'=>'resource'], + 'ingres_connect' => ['resource', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'options='=>'array'], + 'ingres_cursor' => ['string', 'result'=>'resource'], + 'ingres_errno' => ['int', 'link='=>'resource'], + 'ingres_error' => ['string', 'link='=>'resource'], + 'ingres_errsqlstate' => ['string', 'link='=>'resource'], + 'ingres_escape_string' => ['string', 'link'=>'resource', 'source_string'=>'string'], + 'ingres_execute' => ['bool', 'result'=>'resource', 'params='=>'array', 'types='=>'string'], + 'ingres_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], + 'ingres_fetch_assoc' => ['array', 'result'=>'resource'], + 'ingres_fetch_object' => ['object', 'result'=>'resource', 'result_type='=>'int'], + 'ingres_fetch_proc_return' => ['int', 'result'=>'resource'], + 'ingres_fetch_row' => ['array', 'result'=>'resource'], + 'ingres_field_length' => ['int', 'result'=>'resource', 'index'=>'int'], + 'ingres_field_name' => ['string', 'result'=>'resource', 'index'=>'int'], + 'ingres_field_nullable' => ['bool', 'result'=>'resource', 'index'=>'int'], + 'ingres_field_precision' => ['int', 'result'=>'resource', 'index'=>'int'], + 'ingres_field_scale' => ['int', 'result'=>'resource', 'index'=>'int'], + 'ingres_field_type' => ['string', 'result'=>'resource', 'index'=>'int'], + 'ingres_free_result' => ['bool', 'result'=>'resource'], + 'ingres_next_error' => ['bool', 'link='=>'resource'], + 'ingres_num_fields' => ['int', 'result'=>'resource'], + 'ingres_num_rows' => ['int', 'result'=>'resource'], + 'ingres_pconnect' => ['resource', 'database='=>'string', 'username='=>'string', 'password='=>'string', 'options='=>'array'], + 'ingres_prepare' => ['mixed', 'link'=>'resource', 'query'=>'string'], + 'ingres_query' => ['mixed', 'link'=>'resource', 'query'=>'string', 'params='=>'array', 'types='=>'string'], + 'ingres_result_seek' => ['bool', 'result'=>'resource', 'position'=>'int'], + 'ingres_rollback' => ['bool', 'link'=>'resource'], + 'ingres_set_environment' => ['bool', 'link'=>'resource', 'options'=>'array'], + 'ingres_unbuffered_query' => ['mixed', 'link'=>'resource', 'query'=>'string', 'params='=>'array', 'types='=>'string'], + 'ini_alter' => ['string|false', 'option'=>'string', 'value'=>'string'], + 'ini_get' => ['string|false', 'option'=>'string'], + 'ini_get_all' => ['array|false', 'extension='=>'?string', 'details='=>'bool'], + 'ini_restore' => ['void', 'option'=>'string'], + 'ini_set' => ['string|false', 'option'=>'string', 'value'=>'string'], + 'inotify_add_watch' => ['int', 'inotify_instance'=>'resource', 'pathname'=>'string', 'mask'=>'int'], + 'inotify_init' => ['resource|false'], + 'inotify_queue_len' => ['int', 'inotify_instance'=>'resource'], + 'inotify_read' => ['array|false', 'inotify_instance'=>'resource'], + 'inotify_rm_watch' => ['bool', 'inotify_instance'=>'resource', 'watch_descriptor'=>'int'], + 'intdiv' => ['int', 'num1'=>'int', 'num2'=>'int'], + 'interface_exists' => ['bool', 'interface'=>'string', 'autoload='=>'bool'], + 'intl_error_name' => ['string', 'errorCode'=>'int'], + 'intl_get_error_code' => ['int'], + 'intl_get_error_message' => ['string'], + 'intl_is_failure' => ['bool', 'errorCode'=>'int'], + 'intlcal_add' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int', 'value'=>'int'], + 'intlcal_after' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], + 'intlcal_before' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], + 'intlcal_clear' => ['bool', 'calendar'=>'IntlCalendar', 'field='=>'?int'], + 'intlcal_create_instance' => ['?IntlCalendar', 'timezone='=>'mixed', 'locale='=>'?string'], + 'intlcal_equals' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], + 'intlcal_field_difference' => ['int', 'calendar'=>'IntlCalendar', 'timestamp'=>'float', 'field'=>'int'], + 'intlcal_from_date_time' => ['IntlCalendar', 'datetime'=>'DateTime|string'], + 'intlcal_get' => ['int|false', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_actual_maximum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_actual_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_available_locales' => ['array'], + 'intlcal_get_day_of_week_type' => ['int', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'int'], + 'intlcal_get_first_day_of_week' => ['int', 'calendar'=>'IntlCalendar'], + 'intlcal_get_greatest_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_keyword_values_for_locale' => ['IntlIterator|false', 'keyword'=>'string', 'locale'=>'string', 'onlyCommon'=>'bool'], + 'intlcal_get_least_maximum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_locale' => ['string', 'calendar'=>'IntlCalendar', 'type'=>'int'], + 'intlcal_get_maximum' => ['int|false', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_minimal_days_in_first_week' => ['int', 'calendar'=>'IntlCalendar'], + 'intlcal_get_minimum' => ['int', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_get_now' => ['float'], + 'intlcal_get_repeated_wall_time_option' => ['int', 'calendar'=>'IntlCalendar'], + 'intlcal_get_skipped_wall_time_option' => ['int', 'calendar'=>'IntlCalendar'], + 'intlcal_get_time' => ['float', 'calendar'=>'IntlCalendar'], + 'intlcal_get_time_zone' => ['IntlTimeZone', 'calendar'=>'IntlCalendar'], + 'intlcal_get_type' => ['string', 'calendar'=>'IntlCalendar'], + 'intlcal_get_weekend_transition' => ['int', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'string'], + 'intlcal_in_daylight_time' => ['bool', 'calendar'=>'IntlCalendar'], + 'intlcal_is_equivalent_to' => ['bool', 'calendar'=>'IntlCalendar', 'other'=>'IntlCalendar'], + 'intlcal_is_lenient' => ['bool', 'calendar'=>'IntlCalendar'], + 'intlcal_is_set' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int'], + 'intlcal_is_weekend' => ['bool', 'calendar'=>'IntlCalendar', 'timestamp='=>'?float'], + 'intlcal_roll' => ['bool', 'calendar'=>'IntlCalendar', 'field'=>'int', 'value'=>'mixed'], + 'intlcal_set' => ['bool', 'calendar'=>'IntlCalendar', 'year'=>'int', 'month'=>'int'], + 'intlcal_set\'1' => ['bool', 'calendar'=>'IntlCalendar', 'year'=>'int', 'month'=>'int', 'dayOfMonth='=>'int', 'hour='=>'int', 'minute='=>'int', 'second='=>'int'], + 'intlcal_set_first_day_of_week' => ['bool', 'calendar'=>'IntlCalendar', 'dayOfWeek'=>'int'], + 'intlcal_set_lenient' => ['bool', 'calendar'=>'IntlCalendar', 'lenient'=>'bool'], + 'intlcal_set_repeated_wall_time_option' => ['bool', 'calendar'=>'IntlCalendar', 'option'=>'int'], + 'intlcal_set_skipped_wall_time_option' => ['bool', 'calendar'=>'IntlCalendar', 'option'=>'int'], + 'intlcal_set_time' => ['bool', 'calendar'=>'IntlCalendar', 'timestamp'=>'float'], + 'intlcal_set_time_zone' => ['bool', 'calendar'=>'IntlCalendar', 'timezone'=>'mixed'], + 'intlcal_to_date_time' => ['DateTime|false', 'calendar'=>'IntlCalendar'], + 'intlgregcal_create_instance' => ['IntlGregorianCalendar', 'timezoneOrYear='=>'mixed', 'localeOrMonth='=>'string'], + 'intlgregcal_get_gregorian_change' => ['float', 'calendar'=>'IntlGregorianCalendar'], + 'intlgregcal_is_leap_year' => ['bool', 'calendar'=>'int'], + 'intlgregcal_set_gregorian_change' => ['bool', 'calendar'=>'IntlGregorianCalendar', 'timestamp'=>'float'], + 'intltz_count_equivalent_ids' => ['int', 'timezoneId'=>'string'], + 'intltz_create_enumeration' => ['IntlIterator', 'countryOrRawOffset'=>'mixed'], + 'intltz_create_time_zone' => ['?IntlTimeZone', 'timezoneId'=>'string'], + 'intltz_from_date_time_zone' => ['?IntlTimeZone', 'timezone'=>'DateTimeZone'], + 'intltz_getGMT' => ['IntlTimeZone'], + 'intltz_get_canonical_id' => ['string', 'timezoneId'=>'string', '&isSystemId'=>'bool'], + 'intltz_get_display_name' => ['string', 'timezone'=>'IntlTimeZone', 'dst'=>'bool', 'style'=>'int', 'locale'=>'string'], + 'intltz_get_dst_savings' => ['int', 'timezone'=>'IntlTimeZone'], + 'intltz_get_equivalent_id' => ['string', 'timezoneId'=>'string', 'offset'=>'int'], + 'intltz_get_error_code' => ['int', 'timezone'=>'IntlTimeZone'], + 'intltz_get_error_message' => ['string', 'timezone'=>'IntlTimeZone'], + 'intltz_get_id' => ['string', 'timezone'=>'IntlTimeZone'], + 'intltz_get_offset' => ['bool', 'timezone'=>'IntlTimeZone', 'timestamp'=>'float', 'local'=>'bool', '&rawOffset'=>'int', '&dstOffset'=>'int'], + 'intltz_get_raw_offset' => ['int', 'timezone'=>'IntlTimeZone'], + 'intltz_get_tz_data_version' => ['string', 'object'=>'IntlTimeZone'], + 'intltz_has_same_rules' => ['bool', 'timezone'=>'IntlTimeZone', 'other'=>'IntlTimeZone'], + 'intltz_to_date_time_zone' => ['DateTimeZone', 'timezone'=>'IntlTimeZone'], + 'intltz_use_daylight_time' => ['bool', 'timezone'=>'IntlTimeZone'], + 'intlz_create_default' => ['IntlTimeZone'], + 'intval' => ['int', 'value'=>'mixed', 'base='=>'int'], + 'ip2long' => ['int|false', 'ip'=>'string'], + 'iptcembed' => ['string|bool', 'iptc_data'=>'string', 'filename'=>'string', 'spool='=>'int'], + 'iptcparse' => ['array|false', 'iptc_block'=>'string'], + 'is_a' => ['bool', 'object_or_class'=>'mixed', 'class'=>'string', 'allow_string='=>'bool'], + 'is_array' => ['bool', 'value'=>'mixed'], + 'is_bool' => ['bool', 'value'=>'mixed'], + 'is_callable' => ['bool', 'value'=>'callable|mixed', 'syntax_only='=>'bool', '&w_callable_name='=>'string'], + 'is_dir' => ['bool', 'filename'=>'string'], + 'is_double' => ['bool', 'value'=>'mixed'], + 'is_executable' => ['bool', 'filename'=>'string'], + 'is_file' => ['bool', 'filename'=>'string'], + 'is_finite' => ['bool', 'num'=>'float'], + 'is_float' => ['bool', 'value'=>'mixed'], + 'is_infinite' => ['bool', 'num'=>'float'], + 'is_int' => ['bool', 'value'=>'mixed'], + 'is_integer' => ['bool', 'value'=>'mixed'], + 'is_link' => ['bool', 'filename'=>'string'], + 'is_long' => ['bool', 'value'=>'mixed'], + 'is_nan' => ['bool', 'num'=>'float'], + 'is_null' => ['bool', 'value'=>'mixed'], + 'is_numeric' => ['bool', 'value'=>'mixed'], + 'is_object' => ['bool', 'value'=>'mixed'], + 'is_readable' => ['bool', 'filename'=>'string'], + 'is_real' => ['bool', 'value'=>'mixed'], + 'is_resource' => ['bool', 'value'=>'mixed'], + 'is_scalar' => ['bool', 'value'=>'mixed'], + 'is_soap_fault' => ['bool', 'object'=>'mixed'], + 'is_string' => ['bool', 'value'=>'mixed'], + 'is_subclass_of' => ['bool', 'object_or_class'=>'object|string', 'class'=>'class-string', 'allow_string='=>'bool'], + 'is_tainted' => ['bool', 'string'=>'string'], + 'is_uploaded_file' => ['bool', 'filename'=>'string'], + 'is_writable' => ['bool', 'filename'=>'string'], + 'is_writeable' => ['bool', 'filename'=>'string'], + 'isset' => ['bool', 'value'=>'mixed', '...rest='=>'mixed'], + 'iterator_apply' => ['0|positive-int', 'iterator'=>'Traversable', 'callback'=>'callable(mixed):bool', 'args='=>'?array'], + 'iterator_count' => ['0|positive-int', 'iterator'=>'Traversable'], + 'iterator_to_array' => ['array', 'iterator'=>'Traversable', 'preserve_keys='=>'bool'], + 'java_last_exception_clear' => ['void'], + 'java_last_exception_get' => ['object'], + 'java_reload' => ['array', 'new_jarpath'=>'string'], + 'java_require' => ['array', 'new_classpath'=>'string'], + 'java_set_encoding' => ['array', 'encoding'=>'string'], + 'java_set_ignore_case' => ['void', 'ignore'=>'bool'], + 'java_throw_exceptions' => ['void', 'throw'=>'bool'], + 'jddayofweek' => ['string|int', 'julian_day'=>'int', 'mode='=>'int'], + 'jdmonthname' => ['string', 'julian_day'=>'int', 'mode'=>'int'], + 'jdtofrench' => ['string', 'julian_day'=>'int'], + 'jdtogregorian' => ['string', 'julian_day'=>'int'], + 'jdtojewish' => ['string', 'julian_day'=>'int', 'hebrew='=>'bool', 'flags='=>'int'], + 'jdtojulian' => ['string', 'julian_day'=>'int'], + 'jdtounix' => ['int|false', 'julian_day'=>'int'], + 'jewishtojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'jobqueue_license_info' => ['array'], + 'join' => ['string', 'separator'=>'string', 'array'=>'array'], + 'join\'1' => ['string', 'separator'=>'array'], + 'jpeg2wbmp' => ['bool', 'jpegname'=>'string', 'wbmpname'=>'string', 'dest_height'=>'int', 'dest_width'=>'int', 'threshold'=>'int'], + 'json_decode' => ['mixed', 'json'=>'string', 'associative='=>'bool', 'depth='=>'int', 'flags='=>'int'], + 'json_encode' => ['non-empty-string|false', 'value'=>'mixed', 'flags='=>'int', 'depth='=>'int'], + 'json_last_error' => ['int'], + 'json_last_error_msg' => ['string'], + 'judy_type' => ['int', 'array'=>'judy'], + 'judy_version' => ['string'], + 'juliantojd' => ['int', 'month'=>'int', 'day'=>'int', 'year'=>'int'], + 'kadm5_chpass_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'password'=>'string'], + 'kadm5_create_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'password='=>'string', 'options='=>'array'], + 'kadm5_delete_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string'], + 'kadm5_destroy' => ['bool', 'handle'=>'resource'], + 'kadm5_flush' => ['bool', 'handle'=>'resource'], + 'kadm5_get_policies' => ['array', 'handle'=>'resource'], + 'kadm5_get_principal' => ['array', 'handle'=>'resource', 'principal'=>'string'], + 'kadm5_get_principals' => ['array', 'handle'=>'resource'], + 'kadm5_init_with_password' => ['resource', 'admin_server'=>'string', 'realm'=>'string', 'principal'=>'string', 'password'=>'string'], + 'kadm5_modify_principal' => ['bool', 'handle'=>'resource', 'principal'=>'string', 'options'=>'array'], + 'key' => ['int|string|null', 'array'=>'array|object'], + 'key_exists' => ['bool', 'key'=>'string|int', 'array'=>'array'], + 'krsort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], + 'ksort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], + 'labelObj::__construct' => ['void'], + 'labelObj::convertToString' => ['string'], + 'labelObj::deleteStyle' => ['int', 'index'=>'int'], + 'labelObj::free' => ['void'], + 'labelObj::getBinding' => ['string', 'labelbinding'=>'mixed'], + 'labelObj::getExpressionString' => ['string'], + 'labelObj::getStyle' => ['styleObj', 'index'=>'int'], + 'labelObj::getTextString' => ['string'], + 'labelObj::moveStyleDown' => ['int', 'index'=>'int'], + 'labelObj::moveStyleUp' => ['int', 'index'=>'int'], + 'labelObj::removeBinding' => ['int', 'labelbinding'=>'mixed'], + 'labelObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'labelObj::setBinding' => ['int', 'labelbinding'=>'mixed', 'value'=>'string'], + 'labelObj::setExpression' => ['int', 'expression'=>'string'], + 'labelObj::setText' => ['int', 'text'=>'string'], + 'labelObj::updateFromString' => ['int', 'snippet'=>'string'], + 'labelcacheObj::freeCache' => ['bool'], + 'layerObj::addFeature' => ['int', 'shape'=>'shapeObj'], + 'layerObj::applySLD' => ['int', 'sldxml'=>'string', 'namedlayer'=>'string'], + 'layerObj::applySLDURL' => ['int', 'sldurl'=>'string', 'namedlayer'=>'string'], + 'layerObj::clearProcessing' => ['void'], + 'layerObj::close' => ['void'], + 'layerObj::convertToString' => ['string'], + 'layerObj::draw' => ['int', 'image'=>'imageObj'], + 'layerObj::drawQuery' => ['int', 'image'=>'imageObj'], + 'layerObj::free' => ['void'], + 'layerObj::generateSLD' => ['string'], + 'layerObj::getClass' => ['classObj', 'classIndex'=>'int'], + 'layerObj::getClassIndex' => ['int', 'shape'=>'', 'classgroup'=>'', 'numclasses'=>''], + 'layerObj::getExtent' => ['rectObj'], + 'layerObj::getFilterString' => ['?string'], + 'layerObj::getGridIntersectionCoordinates' => ['array'], + 'layerObj::getItems' => ['array'], + 'layerObj::getMetaData' => ['int', 'name'=>'string'], + 'layerObj::getNumResults' => ['int'], + 'layerObj::getProcessing' => ['array'], + 'layerObj::getProjection' => ['string'], + 'layerObj::getResult' => ['resultObj', 'index'=>'int'], + 'layerObj::getResultsBounds' => ['rectObj'], + 'layerObj::getShape' => ['shapeObj', 'result'=>'resultObj'], + 'layerObj::getWMSFeatureInfoURL' => ['string', 'clickX'=>'int', 'clickY'=>'int', 'featureCount'=>'int', 'infoFormat'=>'string'], + 'layerObj::isVisible' => ['bool'], + 'layerObj::moveclassdown' => ['int', 'index'=>'int'], + 'layerObj::moveclassup' => ['int', 'index'=>'int'], + 'layerObj::ms_newLayerObj' => ['layerObj', 'map'=>'mapObj', 'layer'=>'layerObj'], + 'layerObj::nextShape' => ['shapeObj'], + 'layerObj::open' => ['int'], + 'layerObj::queryByAttributes' => ['int', 'qitem'=>'string', 'qstring'=>'string', 'mode'=>'int'], + 'layerObj::queryByFeatures' => ['int', 'slayer'=>'int'], + 'layerObj::queryByPoint' => ['int', 'point'=>'pointObj', 'mode'=>'int', 'buffer'=>'float'], + 'layerObj::queryByRect' => ['int', 'rect'=>'rectObj'], + 'layerObj::queryByShape' => ['int', 'shape'=>'shapeObj'], + 'layerObj::removeClass' => ['?classObj', 'index'=>'int'], + 'layerObj::removeMetaData' => ['int', 'name'=>'string'], + 'layerObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'layerObj::setConnectionType' => ['int', 'connectiontype'=>'int', 'plugin_library'=>'string'], + 'layerObj::setFilter' => ['int', 'expression'=>'string'], + 'layerObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], + 'layerObj::setProjection' => ['int', 'proj_params'=>'string'], + 'layerObj::setWKTProjection' => ['int', 'proj_params'=>'string'], + 'layerObj::updateFromString' => ['int', 'snippet'=>'string'], + 'lcfirst' => ['string', 'string'=>'string'], + 'lcg_value' => ['float'], + 'lchgrp' => ['bool', 'filename'=>'string', 'group'=>'string|int'], + 'lchown' => ['bool', 'filename'=>'string', 'user'=>'string|int'], + 'ldap_8859_to_t61' => ['string', 'value'=>'string'], + 'ldap_add' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'ldap_add_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'ldap_bind' => ['bool', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null'], + 'ldap_bind_ext' => ['resource|false', 'ldap'=>'resource', 'dn='=>'string|null', 'password='=>'string|null', 'controls='=>'array'], + 'ldap_close' => ['bool', 'ldap'=>'resource'], + 'ldap_compare' => ['bool|int', 'ldap'=>'resource', 'dn'=>'string', 'attribute'=>'string', 'value'=>'string'], + 'ldap_connect' => ['resource|false', 'uri='=>'?string', 'port='=>'int', 'wallet='=>'string', 'password='=>'string', 'auth_mode='=>'int'], + 'ldap_control_paged_result' => ['bool', 'link_identifier'=>'resource', 'pagesize'=>'int', 'iscritical='=>'bool', 'cookie='=>'string'], + 'ldap_control_paged_result_response' => ['bool', 'link_identifier'=>'resource', 'result_identifier'=>'resource', '&w_cookie'=>'string', '&w_estimated'=>'int'], + 'ldap_count_entries' => ['int', 'ldap'=>'resource', 'result'=>'resource'], + 'ldap_delete' => ['bool', 'ldap'=>'resource', 'dn'=>'string'], + 'ldap_delete_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'controls='=>'array'], + 'ldap_dn2ufn' => ['string', 'dn'=>'string'], + 'ldap_err2str' => ['string', 'errno'=>'int'], + 'ldap_errno' => ['int', 'ldap'=>'resource'], + 'ldap_error' => ['string', 'ldap'=>'resource'], + 'ldap_escape' => ['string', 'value'=>'string', 'ignore='=>'string', 'flags='=>'int'], + 'ldap_explode_dn' => ['array|false', 'dn'=>'string', 'with_attrib'=>'int'], + 'ldap_first_attribute' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_first_entry' => ['resource|false', 'ldap'=>'resource', 'result'=>'resource'], + 'ldap_first_reference' => ['resource|false', 'ldap'=>'resource', 'result'=>'resource'], + 'ldap_free_result' => ['bool', 'ldap'=>'resource'], + 'ldap_get_attributes' => ['array', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_get_dn' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_get_entries' => ['array|false', 'ldap'=>'resource', 'result'=>'resource'], + 'ldap_get_option' => ['bool', 'ldap'=>'resource', 'option'=>'int', '&w_value='=>'array|string|int'], + 'ldap_get_values' => ['array|false', 'ldap'=>'resource', 'entry'=>'resource', 'attribute'=>'string'], + 'ldap_get_values_len' => ['array|false', 'ldap'=>'resource', 'entry'=>'resource', 'attribute'=>'string'], + 'ldap_list' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'ldap_mod_add' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'ldap_mod_add_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'ldap_mod_del' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'ldap_mod_del_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'ldap_mod_replace' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'ldap_mod_replace_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array', 'controls='=>'array'], + 'ldap_modify' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'entry'=>'array'], + 'ldap_modify_batch' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'modifications_info'=>'array'], + 'ldap_next_attribute' => ['string|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_next_entry' => ['resource|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_next_reference' => ['resource|false', 'ldap'=>'resource', 'entry'=>'resource'], + 'ldap_parse_reference' => ['bool', 'ldap'=>'resource', 'entry'=>'resource', '&w_referrals'=>'array'], + 'ldap_parse_result' => ['bool', 'ldap'=>'resource', 'result'=>'resource', '&w_error_code'=>'int', '&w_matched_dn='=>'string', '&w_error_message='=>'string', '&w_referrals='=>'array', '&w_controls='=>'array'], + 'ldap_read' => ['resource|false', 'ldap'=>'resource|array', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'ldap_rename' => ['bool', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool'], + 'ldap_rename_ext' => ['resource|false', 'ldap'=>'resource', 'dn'=>'string', 'new_rdn'=>'string', 'new_parent'=>'string', 'delete_old_rdn'=>'bool', 'controls='=>'array'], + 'ldap_sasl_bind' => ['bool', 'ldap'=>'resource', 'dn='=>'string', 'password='=>'string', 'mech='=>'string', 'realm='=>'string', 'authc_id='=>'string', 'authz_id='=>'string', 'props='=>'string'], + 'ldap_search' => ['resource|false', 'ldap'=>'resource|resource[]', 'base'=>'string', 'filter'=>'string', 'attributes='=>'array', 'attributes_only='=>'int', 'sizelimit='=>'int', 'timelimit='=>'int', 'deref='=>'int'], + 'ldap_set_option' => ['bool', 'ldap'=>'resource|null', 'option'=>'int', 'value'=>'mixed'], + 'ldap_set_rebind_proc' => ['bool', 'ldap'=>'resource', 'callback'=>'callable'], + 'ldap_sort' => ['bool', 'link_identifier'=>'resource', 'result_identifier'=>'resource', 'sortfilter'=>'string'], + 'ldap_start_tls' => ['bool', 'ldap'=>'resource'], + 'ldap_t61_to_8859' => ['string', 'value'=>'string'], + 'ldap_unbind' => ['bool', 'ldap'=>'resource'], + 'leak' => ['', 'num_bytes'=>'int'], + 'leak_variable' => ['', 'variable'=>'', 'leak_data'=>'bool'], + 'legendObj::convertToString' => ['string'], + 'legendObj::free' => ['void'], + 'legendObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'legendObj::updateFromString' => ['int', 'snippet'=>'string'], + 'levenshtein' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'levenshtein\'1' => ['int', 'string1'=>'string', 'string2'=>'string', 'insertion_cost'=>'int', 'repetition_cost'=>'int', 'deletion_cost'=>'int'], + 'libxml_clear_errors' => ['void'], + 'libxml_disable_entity_loader' => ['bool', 'disable='=>'bool'], + 'libxml_get_errors' => ['list'], + 'libxml_get_last_error' => ['LibXMLError|false'], + 'libxml_set_external_entity_loader' => ['bool', 'resolver_function'=>'(callable(string,string,array{directory:?string,intSubName:?string,extSubURI:?string,extSubSystem:?string}):(resource|string|null))|null'], + 'libxml_set_streams_context' => ['void', 'context'=>'resource'], + 'libxml_use_internal_errors' => ['bool', 'use_errors='=>'bool'], + 'lineObj::__construct' => ['void'], + 'lineObj::add' => ['int', 'point'=>'pointObj'], + 'lineObj::addXY' => ['int', 'x'=>'float', 'y'=>'float', 'm'=>'float'], + 'lineObj::addXYZ' => ['int', 'x'=>'float', 'y'=>'float', 'z'=>'float', 'm'=>'float'], + 'lineObj::ms_newLineObj' => ['lineObj'], + 'lineObj::point' => ['pointObj', 'i'=>'int'], + 'lineObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], + 'link' => ['bool', 'target'=>'string', 'link'=>'string'], + 'linkinfo' => ['int|false', 'path'=>'string'], + 'litespeed_request_headers' => ['array'], + 'litespeed_response_headers' => ['array'], + 'locale_accept_from_http' => ['string|false', 'header'=>'string'], + 'locale_canonicalize' => ['?string', 'locale'=>'string'], + 'locale_compose' => ['string|false', 'subtags'=>'array'], + 'locale_filter_matches' => ['?bool', 'languageTag'=>'string', 'locale'=>'string', 'canonicalize='=>'bool'], + 'locale_get_all_variants' => ['?array', 'locale'=>'string'], + 'locale_get_default' => ['string'], + 'locale_get_display_language' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'locale_get_display_name' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'locale_get_display_region' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'locale_get_display_script' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'locale_get_display_variant' => ['string', 'locale'=>'string', 'displayLocale='=>'string'], + 'locale_get_keywords' => ['array|false|null', 'locale'=>'string'], + 'locale_get_primary_language' => ['?string', 'locale'=>'string'], + 'locale_get_region' => ['?string', 'locale'=>'string'], + 'locale_get_script' => ['?string', 'locale'=>'string'], + 'locale_lookup' => ['?string', 'languageTag'=>'array', 'locale'=>'string', 'canonicalize='=>'bool', 'defaultLocale='=>'string'], + 'locale_parse' => ['?array', 'locale'=>'string'], + 'locale_set_default' => ['bool', 'locale'=>'string'], + 'localeconv' => ['array'], + 'localtime' => ['array', 'timestamp='=>'int', 'associative='=>'bool'], + 'log' => ['float', 'num'=>'float', 'base='=>'float'], + 'log10' => ['float', 'num'=>'float'], + 'log1p' => ['float', 'num'=>'float'], + 'long2ip' => ['string', 'ip'=>'int'], + 'lstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'filename'=>'string'], + 'ltrim' => ['string', 'string'=>'string', 'characters='=>'string'], + 'lzf_compress' => ['string', 'data'=>'string'], + 'lzf_decompress' => ['string', 'data'=>'string'], + 'lzf_optimized_for' => ['int'], + 'magic_quotes_runtime' => ['bool', 'new_setting'=>'bool'], + 'mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string'], + 'mailparse_determine_best_xfer_encoding' => ['string', 'fp'=>'resource'], + 'mailparse_msg_create' => ['resource'], + 'mailparse_msg_extract_part' => ['void', 'mimemail'=>'resource', 'msgbody'=>'string', 'callbackfunc='=>'callable'], + 'mailparse_msg_extract_part_file' => ['string', 'mimemail'=>'resource', 'filename'=>'mixed', 'callbackfunc='=>'callable'], + 'mailparse_msg_extract_whole_part_file' => ['string', 'mimemail'=>'resource', 'filename'=>'string', 'callbackfunc='=>'callable'], + 'mailparse_msg_free' => ['bool', 'mimemail'=>'resource'], + 'mailparse_msg_get_part' => ['resource', 'mimemail'=>'resource', 'mimesection'=>'string'], + 'mailparse_msg_get_part_data' => ['array', 'mimemail'=>'resource'], + 'mailparse_msg_get_structure' => ['array', 'mimemail'=>'resource'], + 'mailparse_msg_parse' => ['bool', 'mimemail'=>'resource', 'data'=>'string'], + 'mailparse_msg_parse_file' => ['resource|false', 'filename'=>'string'], + 'mailparse_rfc822_parse_addresses' => ['array', 'addresses'=>'string'], + 'mailparse_stream_encode' => ['bool', 'sourcefp'=>'resource', 'destfp'=>'resource', 'encoding'=>'string'], + 'mailparse_uudecode_all' => ['array', 'fp'=>'resource'], + 'mapObj::__construct' => ['void', 'map_file_name'=>'string', 'new_map_path'=>'string'], + 'mapObj::appendOutputFormat' => ['int', 'outputFormat'=>'outputformatObj'], + 'mapObj::applySLD' => ['int', 'sldxml'=>'string'], + 'mapObj::applySLDURL' => ['int', 'sldurl'=>'string'], + 'mapObj::applyconfigoptions' => ['int'], + 'mapObj::convertToString' => ['string'], + 'mapObj::draw' => ['?imageObj'], + 'mapObj::drawLabelCache' => ['int', 'image'=>'imageObj'], + 'mapObj::drawLegend' => ['imageObj'], + 'mapObj::drawQuery' => ['?imageObj'], + 'mapObj::drawReferenceMap' => ['imageObj'], + 'mapObj::drawScaleBar' => ['imageObj'], + 'mapObj::embedLegend' => ['int', 'image'=>'imageObj'], + 'mapObj::embedScalebar' => ['int', 'image'=>'imageObj'], + 'mapObj::free' => ['void'], + 'mapObj::generateSLD' => ['string'], + 'mapObj::getAllGroupNames' => ['array'], + 'mapObj::getAllLayerNames' => ['array'], + 'mapObj::getColorbyIndex' => ['colorObj', 'iCloIndex'=>'int'], + 'mapObj::getConfigOption' => ['string', 'key'=>'string'], + 'mapObj::getLabel' => ['labelcacheMemberObj', 'index'=>'int'], + 'mapObj::getLayer' => ['layerObj', 'index'=>'int'], + 'mapObj::getLayerByName' => ['layerObj', 'layer_name'=>'string'], + 'mapObj::getLayersDrawingOrder' => ['array'], + 'mapObj::getLayersIndexByGroup' => ['array', 'groupname'=>'string'], + 'mapObj::getMetaData' => ['int', 'name'=>'string'], + 'mapObj::getNumSymbols' => ['int'], + 'mapObj::getOutputFormat' => ['?outputformatObj', 'index'=>'int'], + 'mapObj::getProjection' => ['string'], + 'mapObj::getSymbolByName' => ['int', 'symbol_name'=>'string'], + 'mapObj::getSymbolObjectById' => ['symbolObj', 'symbolid'=>'int'], + 'mapObj::loadMapContext' => ['int', 'filename'=>'string', 'unique_layer_name'=>'bool'], + 'mapObj::loadOWSParameters' => ['int', 'request'=>'OwsrequestObj', 'version'=>'string'], + 'mapObj::moveLayerDown' => ['int', 'layerindex'=>'int'], + 'mapObj::moveLayerUp' => ['int', 'layerindex'=>'int'], + 'mapObj::ms_newMapObjFromString' => ['mapObj', 'map_file_string'=>'string', 'new_map_path'=>'string'], + 'mapObj::offsetExtent' => ['int', 'x'=>'float', 'y'=>'float'], + 'mapObj::owsDispatch' => ['int', 'request'=>'OwsrequestObj'], + 'mapObj::prepareImage' => ['imageObj'], + 'mapObj::prepareQuery' => ['void'], + 'mapObj::processLegendTemplate' => ['string', 'params'=>'array'], + 'mapObj::processQueryTemplate' => ['string', 'params'=>'array', 'generateimages'=>'bool'], + 'mapObj::processTemplate' => ['string', 'params'=>'array', 'generateimages'=>'bool'], + 'mapObj::queryByFeatures' => ['int', 'slayer'=>'int'], + 'mapObj::queryByIndex' => ['int', 'layerindex'=>'', 'tileindex'=>'', 'shapeindex'=>'', 'addtoquery'=>''], + 'mapObj::queryByPoint' => ['int', 'point'=>'pointObj', 'mode'=>'int', 'buffer'=>'float'], + 'mapObj::queryByRect' => ['int', 'rect'=>'rectObj'], + 'mapObj::queryByShape' => ['int', 'shape'=>'shapeObj'], + 'mapObj::removeLayer' => ['layerObj', 'nIndex'=>'int'], + 'mapObj::removeMetaData' => ['int', 'name'=>'string'], + 'mapObj::removeOutputFormat' => ['int', 'name'=>'string'], + 'mapObj::save' => ['int', 'filename'=>'string'], + 'mapObj::saveMapContext' => ['int', 'filename'=>'string'], + 'mapObj::saveQuery' => ['int', 'filename'=>'string', 'results'=>'int'], + 'mapObj::scaleExtent' => ['int', 'zoomfactor'=>'float', 'minscaledenom'=>'float', 'maxscaledenom'=>'float'], + 'mapObj::selectOutputFormat' => ['int', 'type'=>'string'], + 'mapObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'mapObj::setCenter' => ['int', 'center'=>'pointObj'], + 'mapObj::setConfigOption' => ['int', 'key'=>'string', 'value'=>'string'], + 'mapObj::setExtent' => ['void', 'minx'=>'float', 'miny'=>'float', 'maxx'=>'float', 'maxy'=>'float'], + 'mapObj::setFontSet' => ['int', 'fileName'=>'string'], + 'mapObj::setMetaData' => ['int', 'name'=>'string', 'value'=>'string'], + 'mapObj::setProjection' => ['int', 'proj_params'=>'string', 'bSetUnitsAndExtents'=>'bool'], + 'mapObj::setRotation' => ['int', 'rotation_angle'=>'float'], + 'mapObj::setSize' => ['int', 'width'=>'int', 'height'=>'int'], + 'mapObj::setSymbolSet' => ['int', 'fileName'=>'string'], + 'mapObj::setWKTProjection' => ['int', 'proj_params'=>'string', 'bSetUnitsAndExtents'=>'bool'], + 'mapObj::zoomPoint' => ['int', 'nZoomFactor'=>'int', 'oPixelPos'=>'pointObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj'], + 'mapObj::zoomRectangle' => ['int', 'oPixelExt'=>'rectObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj'], + 'mapObj::zoomScale' => ['int', 'nScaleDenom'=>'float', 'oPixelPos'=>'pointObj', 'nImageWidth'=>'int', 'nImageHeight'=>'int', 'oGeorefExt'=>'rectObj', 'oMaxGeorefExt'=>'rectObj'], + 'max' => ['mixed', 'value'=>'non-empty-array'], + 'max\'1' => ['mixed', 'value'=>'', 'values'=>'', '...args='=>''], + 'mb_check_encoding' => ['bool', 'value='=>'string', 'encoding='=>'string'], + 'mb_convert_case' => ['string', 'string'=>'string', 'mode'=>'int', 'encoding='=>'string'], + 'mb_convert_encoding' => ['string|false', 'string'=>'string', 'to_encoding'=>'string', 'from_encoding='=>'mixed'], + 'mb_convert_kana' => ['string', 'string'=>'string', 'mode='=>'string', 'encoding='=>'string'], + 'mb_convert_variables' => ['string|false', 'to_encoding'=>'string', 'from_encoding'=>'array|string', '&rw_var'=>'string|array|object', '&...rw_vars='=>'string|array|object'], + 'mb_decode_mimeheader' => ['string', 'string'=>'string'], + 'mb_decode_numericentity' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string'], + 'mb_detect_encoding' => ['string|false', 'string'=>'string', 'encodings='=>'mixed', 'strict='=>'bool'], + 'mb_detect_order' => ['bool|list', 'encoding='=>'mixed'], + 'mb_encode_mimeheader' => ['string', 'string'=>'string', 'charset='=>'string', 'transfer_encoding='=>'string', 'newline='=>'string', 'indent='=>'int'], + 'mb_encode_numericentity' => ['string', 'string'=>'string', 'map'=>'array', 'encoding='=>'string', 'hex='=>'bool'], + 'mb_encoding_aliases' => ['list|false', 'encoding'=>'string'], + 'mb_ereg' => ['int|false', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array|null'], + 'mb_ereg_match' => ['bool', 'pattern'=>'string', 'string'=>'string', 'options='=>'string'], + 'mb_ereg_replace' => ['string|false', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string'], + 'mb_ereg_replace_callback' => ['string|false|null', 'pattern'=>'string', 'callback'=>'callable', 'string'=>'string', 'options='=>'string'], + 'mb_ereg_search' => ['bool', 'pattern='=>'string', 'options='=>'string'], + 'mb_ereg_search_getpos' => ['int'], + 'mb_ereg_search_getregs' => ['string[]|false'], + 'mb_ereg_search_init' => ['bool', 'string'=>'string', 'pattern='=>'string', 'options='=>'string'], + 'mb_ereg_search_pos' => ['int[]|false', 'pattern='=>'string', 'options='=>'string'], + 'mb_ereg_search_regs' => ['string[]|false', 'pattern='=>'string', 'options='=>'string'], + 'mb_ereg_search_setpos' => ['bool', 'offset'=>'int'], + 'mb_eregi' => ['int|false', 'pattern'=>'string', 'string'=>'string', '&w_matches='=>'array'], + 'mb_eregi_replace' => ['string|false', 'pattern'=>'string', 'replacement'=>'string', 'string'=>'string', 'options='=>'string'], + 'mb_get_info' => ['array|string|int|false', 'type='=>'string'], + 'mb_http_input' => ['string|false', 'type='=>'string'], + 'mb_http_output' => ['string|bool', 'encoding='=>'string'], + 'mb_internal_encoding' => ['string|bool', 'encoding='=>'string'], + 'mb_language' => ['string|bool', 'language='=>'string'], + 'mb_list_encodings' => ['list'], + 'mb_output_handler' => ['string', 'string'=>'string', 'status'=>'int'], + 'mb_parse_str' => ['bool', 'string'=>'string', '&w_result='=>'array'], + 'mb_preferred_mime_name' => ['string|false', 'encoding'=>'string'], + 'mb_regex_encoding' => ['string|bool', 'encoding='=>'string'], + 'mb_regex_set_options' => ['string', 'options='=>'string'], + 'mb_send_mail' => ['bool', 'to'=>'string', 'subject'=>'string', 'message'=>'string', 'additional_headers='=>'string|array', 'additional_params='=>'string'], + 'mb_split' => ['list|false', 'pattern'=>'string', 'string'=>'string', 'limit='=>'int'], + 'mb_strcut' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string'], + 'mb_strimwidth' => ['string', 'string'=>'string', 'start'=>'int', 'width'=>'int', 'trim_marker='=>'string', 'encoding='=>'string'], + 'mb_stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'mb_stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'mb_strlen' => ['0|positive-int', 'string'=>'string', 'encoding='=>'string'], + 'mb_strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'mb_strrchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'mb_strrichr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'mb_strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'mb_strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'encoding='=>'string'], + 'mb_strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string', 'before_needle='=>'bool', 'encoding='=>'string'], + 'mb_strtolower' => ['lowercase-string', 'string'=>'string', 'encoding='=>'string'], + 'mb_strtoupper' => ['string', 'string'=>'string', 'encoding='=>'string'], + 'mb_strwidth' => ['int', 'string'=>'string', 'encoding='=>'string'], + 'mb_substitute_character' => ['bool|int|string', 'substitute_character='=>'mixed'], + 'mb_substr' => ['string', 'string'=>'string', 'start'=>'int', 'length='=>'?int', 'encoding='=>'string'], + 'mb_substr_count' => ['int', 'haystack'=>'string', 'needle'=>'string', 'encoding='=>'string'], + 'mcrypt_cbc' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], + 'mcrypt_cfb' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], + 'mcrypt_create_iv' => ['string|false', 'size'=>'int', 'source='=>'int'], + 'mcrypt_decrypt' => ['string', 'cipher'=>'string', 'key'=>'string', 'data'=>'string', 'mode'=>'string', 'iv='=>'string'], + 'mcrypt_ecb' => ['string', 'cipher'=>'string|int', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], + 'mcrypt_enc_get_algorithms_name' => ['string', 'td'=>'resource'], + 'mcrypt_enc_get_block_size' => ['int', 'td'=>'resource'], + 'mcrypt_enc_get_iv_size' => ['int', 'td'=>'resource'], + 'mcrypt_enc_get_key_size' => ['int', 'td'=>'resource'], + 'mcrypt_enc_get_modes_name' => ['string', 'td'=>'resource'], + 'mcrypt_enc_get_supported_key_sizes' => ['array', 'td'=>'resource'], + 'mcrypt_enc_is_block_algorithm' => ['bool', 'td'=>'resource'], + 'mcrypt_enc_is_block_algorithm_mode' => ['bool', 'td'=>'resource'], + 'mcrypt_enc_is_block_mode' => ['bool', 'td'=>'resource'], + 'mcrypt_enc_self_test' => ['int|false', 'td'=>'resource'], + 'mcrypt_encrypt' => ['string', 'cipher'=>'string', 'key'=>'string', 'data'=>'string', 'mode'=>'string', 'iv='=>'string'], + 'mcrypt_generic' => ['string', 'td'=>'resource', 'data'=>'string'], + 'mcrypt_generic_deinit' => ['bool', 'td'=>'resource'], + 'mcrypt_generic_end' => ['bool', 'td'=>'resource'], + 'mcrypt_generic_init' => ['int|false', 'td'=>'resource', 'key'=>'string', 'iv'=>'string'], + 'mcrypt_get_block_size' => ['int', 'cipher'=>'int|string', 'module'=>'string'], + 'mcrypt_get_cipher_name' => ['string|false', 'cipher'=>'int|string'], + 'mcrypt_get_iv_size' => ['int|false', 'cipher'=>'int|string', 'module'=>'string'], + 'mcrypt_get_key_size' => ['int', 'cipher'=>'int|string', 'module'=>'string'], + 'mcrypt_list_algorithms' => ['array', 'lib_dir='=>'string'], + 'mcrypt_list_modes' => ['array', 'lib_dir='=>'string'], + 'mcrypt_module_close' => ['bool', 'td'=>'resource'], + 'mcrypt_module_get_algo_block_size' => ['int', 'algorithm'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_get_algo_key_size' => ['int', 'algorithm'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_get_supported_key_sizes' => ['array', 'algorithm'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_is_block_algorithm' => ['bool', 'algorithm'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_is_block_algorithm_mode' => ['bool', 'mode'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_is_block_mode' => ['bool', 'mode'=>'string', 'lib_dir='=>'string'], + 'mcrypt_module_open' => ['resource|false', 'cipher'=>'string', 'cipher_directory'=>'string', 'mode'=>'string', 'mode_directory'=>'string'], + 'mcrypt_module_self_test' => ['bool', 'algorithm'=>'string', 'lib_dir='=>'string'], + 'mcrypt_ofb' => ['string', 'cipher'=>'int|string', 'key'=>'string', 'data'=>'string', 'mode'=>'int', 'iv='=>'string'], + 'md5' => ['non-falsy-string', 'string'=>'string', 'binary='=>'bool'], + 'md5_file' => ['non-falsy-string|false', 'filename'=>'string', 'binary='=>'bool'], + 'mdecrypt_generic' => ['string', 'td'=>'resource', 'data'=>'string'], + 'memcache_add' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'memcache_add_server' => ['bool', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int', 'persistent='=>'bool', 'weight='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable', 'timeoutms='=>'int'], + 'memcache_append' => ['', 'memcache_obj'=>'Memcache'], + 'memcache_cas' => ['', 'memcache_obj'=>'Memcache'], + 'memcache_close' => ['bool', 'memcache_obj'=>'Memcache'], + 'memcache_connect' => ['Memcache|false', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'memcache_debug' => ['bool', 'on_off'=>'bool'], + 'memcache_decrement' => ['int', 'memcache_obj'=>'Memcache', 'key'=>'string', 'value='=>'int'], + 'memcache_delete' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'timeout='=>'int'], + 'memcache_flush' => ['bool', 'memcache_obj'=>'Memcache'], + 'memcache_get' => ['string', 'memcache_obj'=>'Memcache', 'key'=>'string', 'flags='=>'int'], + 'memcache_get\'1' => ['array', 'memcache_obj'=>'Memcache', 'key'=>'string[]', 'flags='=>'int[]'], + 'memcache_get_extended_stats' => ['array', 'memcache_obj'=>'Memcache', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'memcache_get_server_status' => ['int', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int'], + 'memcache_get_stats' => ['array', 'memcache_obj'=>'Memcache', 'type='=>'string', 'slabid='=>'int', 'limit='=>'int'], + 'memcache_get_version' => ['string', 'memcache_obj'=>'Memcache'], + 'memcache_increment' => ['int', 'memcache_obj'=>'Memcache', 'key'=>'string', 'value='=>'int'], + 'memcache_pconnect' => ['Memcache|false', 'host'=>'string', 'port='=>'int', 'timeout='=>'int'], + 'memcache_prepend' => ['string', 'memcache_obj'=>'Memcache'], + 'memcache_replace' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'memcache_set' => ['bool', 'memcache_obj'=>'Memcache', 'key'=>'string', 'var'=>'mixed', 'flag='=>'int', 'expire='=>'int'], + 'memcache_set_compress_threshold' => ['bool', 'memcache_obj'=>'Memcache', 'threshold'=>'int', 'min_savings='=>'float'], + 'memcache_set_failure_callback' => ['', 'memcache_obj'=>'Memcache'], + 'memcache_set_server_params' => ['bool', 'memcache_obj'=>'Memcache', 'host'=>'string', 'port='=>'int', 'timeout='=>'int', 'retry_interval='=>'int', 'status='=>'bool', 'failure_callback='=>'callable'], + 'memory_get_peak_usage' => ['int', 'real_usage='=>'bool'], + 'memory_get_usage' => ['int', 'real_usage='=>'bool'], + 'metaphone' => ['string|false', 'string'=>'string', 'max_phonemes='=>'int'], + 'method_exists' => ['bool', 'object_or_class'=>'object|class-string|interface-string|enum-string', 'method'=>'string'], + 'mhash' => ['string', 'algo'=>'int', 'data'=>'string', 'key='=>'string'], + 'mhash_count' => ['int'], + 'mhash_get_block_size' => ['int|false', 'algo'=>'int'], + 'mhash_get_hash_name' => ['string|false', 'algo'=>'int'], + 'mhash_keygen_s2k' => ['string|false', 'algo'=>'int', 'password'=>'string', 'salt'=>'string', 'length'=>'int'], + 'microtime' => ['string', 'as_float='=>'false'], + 'microtime\'1' => ['float', 'as_float='=>'true'], + 'mime_content_type' => ['string|false', 'filename'=>'string|resource'], + 'min' => ['mixed', 'value'=>'non-empty-array'], + 'min\'1' => ['mixed', 'value'=>'', 'values'=>'', '...args='=>''], + 'ming_keypress' => ['int', 'char'=>'string'], + 'ming_setcubicthreshold' => ['void', 'threshold'=>'int'], + 'ming_setscale' => ['void', 'scale'=>'float'], + 'ming_setswfcompression' => ['void', 'level'=>'int'], + 'ming_useconstants' => ['void', 'use'=>'int'], + 'ming_useswfversion' => ['void', 'version'=>'int'], + 'mkdir' => ['bool', 'directory'=>'string', 'permissions='=>'int', 'recursive='=>'bool', 'context='=>'resource'], + 'mktime' => ['int|false', 'hour='=>'int', 'minute='=>'int', 'second='=>'int', 'month='=>'int', 'day='=>'int', 'year='=>'int'], + 'money_format' => ['string', 'format'=>'string', 'value'=>'float'], + 'monitor_custom_event' => ['void', 'class'=>'string', 'text'=>'string', 'severe='=>'int', 'user_data='=>'mixed'], + 'monitor_httperror_event' => ['void', 'error_code'=>'int', 'url'=>'string', 'severe='=>'int'], + 'monitor_license_info' => ['array'], + 'monitor_pass_error' => ['void', 'errno'=>'int', 'errstr'=>'string', 'errfile'=>'string', 'errline'=>'int'], + 'monitor_set_aggregation_hint' => ['void', 'hint'=>'string'], + 'move_uploaded_file' => ['bool', 'from'=>'string', 'to'=>'string'], + 'mqseries_back' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_begin' => ['void', 'hconn'=>'resource', 'beginoptions'=>'array', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_close' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'options'=>'int', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_cmit' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_conn' => ['void', 'qmanagername'=>'string', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_connx' => ['void', 'qmanagername'=>'string', 'connoptions'=>'array', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_disc' => ['void', 'hconn'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_get' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'md'=>'array', 'gmo'=>'array', 'bufferlength'=>'int', 'msg'=>'string', 'data_length'=>'int', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_inq' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'selectorcount'=>'int', 'selectors'=>'array', 'intattrcount'=>'int', 'intattr'=>'resource', 'charattrlength'=>'int', 'charattr'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_open' => ['void', 'hconn'=>'resource', 'objdesc'=>'array', 'option'=>'int', 'hobj'=>'resource', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_put' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'md'=>'array', 'pmo'=>'array', 'message'=>'string', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_put1' => ['void', 'hconn'=>'resource', 'objdesc'=>'resource', 'msgdesc'=>'resource', 'pmo'=>'resource', 'buffer'=>'string', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_set' => ['void', 'hconn'=>'resource', 'hobj'=>'resource', 'selectorcount'=>'int', 'selectors'=>'array', 'intattrcount'=>'int', 'intattrs'=>'array', 'charattrlength'=>'int', 'charattrs'=>'array', 'compcode'=>'resource', 'reason'=>'resource'], + 'mqseries_strerror' => ['string', 'reason'=>'int'], + 'ms_GetErrorObj' => ['errorObj'], + 'ms_GetVersion' => ['string'], + 'ms_GetVersionInt' => ['int'], + 'ms_ResetErrorList' => ['void'], + 'ms_TokenizeMap' => ['array', 'map_file_name'=>'string'], + 'ms_iogetStdoutBufferBytes' => ['int'], + 'ms_iogetstdoutbufferstring' => ['void'], + 'ms_ioinstallstdinfrombuffer' => ['void'], + 'ms_ioinstallstdouttobuffer' => ['void'], + 'ms_ioresethandlers' => ['void'], + 'ms_iostripstdoutbuffercontentheaders' => ['void'], + 'ms_iostripstdoutbuffercontenttype' => ['string'], + 'msession_connect' => ['bool', 'host'=>'string', 'port'=>'string'], + 'msession_count' => ['int'], + 'msession_create' => ['bool', 'session'=>'string', 'classname='=>'string', 'data='=>'string'], + 'msession_destroy' => ['bool', 'name'=>'string'], + 'msession_disconnect' => ['void'], + 'msession_find' => ['array', 'name'=>'string', 'value'=>'string'], + 'msession_get' => ['string', 'session'=>'string', 'name'=>'string', 'value'=>'string'], + 'msession_get_array' => ['array', 'session'=>'string'], + 'msession_get_data' => ['string', 'session'=>'string'], + 'msession_inc' => ['string', 'session'=>'string', 'name'=>'string'], + 'msession_list' => ['array'], + 'msession_listvar' => ['array', 'name'=>'string'], + 'msession_lock' => ['int', 'name'=>'string'], + 'msession_plugin' => ['string', 'session'=>'string', 'value'=>'string', 'param='=>'string'], + 'msession_randstr' => ['string', 'param'=>'int'], + 'msession_set' => ['bool', 'session'=>'string', 'name'=>'string', 'value'=>'string'], + 'msession_set_array' => ['void', 'session'=>'string', 'tuples'=>'array'], + 'msession_set_data' => ['bool', 'session'=>'string', 'value'=>'string'], + 'msession_timeout' => ['int', 'session'=>'string', 'param='=>'int'], + 'msession_uniq' => ['string', 'param'=>'int', 'classname='=>'string', 'data='=>'string'], + 'msession_unlock' => ['int', 'session'=>'string', 'key'=>'int'], + 'msg_get_queue' => ['resource|false', 'key'=>'int', 'permissions='=>'int'], + 'msg_queue_exists' => ['bool', 'key'=>'int'], + 'msg_receive' => ['bool', 'queue'=>'resource', 'desired_message_type'=>'int', '&w_received_message_type'=>'int', 'max_message_size'=>'int', '&w_message'=>'mixed', 'unserialize='=>'bool', 'flags='=>'int', '&w_error_code='=>'int'], + 'msg_remove_queue' => ['bool', 'queue'=>'resource'], + 'msg_send' => ['bool', 'queue'=>'resource', 'message_type'=>'int', 'message'=>'mixed', 'serialize='=>'bool', 'blocking='=>'bool', '&w_error_code='=>'int'], + 'msg_set_queue' => ['bool', 'queue'=>'resource', 'data'=>'array'], + 'msg_stat_queue' => ['array', 'queue'=>'resource'], + 'msgfmt_create' => ['?MessageFormatter', 'locale'=>'string', 'pattern'=>'string'], + 'msgfmt_format' => ['string|false', 'formatter'=>'MessageFormatter', 'values'=>'array'], + 'msgfmt_format_message' => ['string|false', 'locale'=>'string', 'pattern'=>'string', 'values'=>'array'], + 'msgfmt_get_error_code' => ['int', 'formatter'=>'MessageFormatter'], + 'msgfmt_get_error_message' => ['string', 'formatter'=>'MessageFormatter'], + 'msgfmt_get_locale' => ['string', 'formatter'=>'MessageFormatter'], + 'msgfmt_get_pattern' => ['string', 'formatter'=>'MessageFormatter'], + 'msgfmt_parse' => ['array|false', 'formatter'=>'MessageFormatter', 'string'=>'string'], + 'msgfmt_parse_message' => ['array|false', 'locale'=>'string', 'pattern'=>'string', 'message'=>'string'], + 'msgfmt_set_pattern' => ['bool', 'formatter'=>'MessageFormatter', 'pattern'=>'string'], + 'msql_affected_rows' => ['int', 'result'=>'resource'], + 'msql_close' => ['bool', 'link_identifier='=>'?resource'], + 'msql_connect' => ['resource', 'hostname='=>'string'], + 'msql_create_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'msql_data_seek' => ['bool', 'result'=>'resource', 'row_number'=>'int'], + 'msql_db_query' => ['resource', 'database'=>'string', 'query'=>'string', 'link_identifier='=>'?resource'], + 'msql_drop_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'msql_error' => ['string'], + 'msql_fetch_array' => ['array', 'result'=>'resource', 'result_type='=>'int'], + 'msql_fetch_field' => ['object', 'result'=>'resource', 'field_offset='=>'int'], + 'msql_fetch_object' => ['object', 'result'=>'resource'], + 'msql_fetch_row' => ['array', 'result'=>'resource'], + 'msql_field_flags' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_field_len' => ['int', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_field_name' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_field_seek' => ['bool', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_field_table' => ['int', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_field_type' => ['string', 'result'=>'resource', 'field_offset'=>'int'], + 'msql_free_result' => ['bool', 'result'=>'resource'], + 'msql_list_dbs' => ['resource', 'link_identifier='=>'?resource'], + 'msql_list_fields' => ['resource', 'database'=>'string', 'tablename'=>'string', 'link_identifier='=>'?resource'], + 'msql_list_tables' => ['resource', 'database'=>'string', 'link_identifier='=>'?resource'], + 'msql_num_fields' => ['int', 'result'=>'resource'], + 'msql_num_rows' => ['int', 'query_identifier'=>'resource'], + 'msql_pconnect' => ['resource', 'hostname='=>'string'], + 'msql_query' => ['resource', 'query'=>'string', 'link_identifier='=>'?resource'], + 'msql_result' => ['string', 'result'=>'resource', 'row'=>'int', 'field='=>'mixed'], + 'msql_select_db' => ['bool', 'database_name'=>'string', 'link_identifier='=>'?resource'], + 'mt_getrandmax' => ['int'], + 'mt_rand' => ['int', 'min'=>'int', 'max'=>'int'], + 'mt_rand\'1' => ['int'], + 'mt_srand' => ['void', 'seed='=>'int', 'mode='=>'int'], + 'mysql_xdevapi\baseresult::getWarnings' => ['array'], + 'mysql_xdevapi\baseresult::getWarningsCount' => ['integer'], + 'mysql_xdevapi\collection::add' => ['mysql_xdevapi\CollectionAdd', 'document'=>'mixed'], + 'mysql_xdevapi\collection::addOrReplaceOne' => ['mysql_xdevapi\Result', 'id'=>'string', 'doc'=>'string'], + 'mysql_xdevapi\collection::count' => ['integer'], + 'mysql_xdevapi\collection::createIndex' => ['void', 'index_name'=>'string', 'index_desc_json'=>'string'], + 'mysql_xdevapi\collection::dropIndex' => ['bool', 'index_name'=>'string'], + 'mysql_xdevapi\collection::existsInDatabase' => ['bool'], + 'mysql_xdevapi\collection::find' => ['mysql_xdevapi\CollectionFind', 'search_condition='=>'string'], + 'mysql_xdevapi\collection::getName' => ['string'], + 'mysql_xdevapi\collection::getOne' => ['Document', 'id'=>'string'], + 'mysql_xdevapi\collection::getSchema' => ['mysql_xdevapi\schema'], + 'mysql_xdevapi\collection::getSession' => ['Session'], + 'mysql_xdevapi\collection::modify' => ['mysql_xdevapi\CollectionModify', 'search_condition'=>'string'], + 'mysql_xdevapi\collection::remove' => ['mysql_xdevapi\CollectionRemove', 'search_condition'=>'string'], + 'mysql_xdevapi\collection::removeOne' => ['mysql_xdevapi\Result', 'id'=>'string'], + 'mysql_xdevapi\collection::replaceOne' => ['mysql_xdevapi\Result', 'id'=>'string', 'doc'=>'string'], + 'mysql_xdevapi\collectionadd::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\collectionfind::bind' => ['mysql_xdevapi\CollectionFind', 'placeholder_values'=>'array'], + 'mysql_xdevapi\collectionfind::execute' => ['mysql_xdevapi\DocResult'], + 'mysql_xdevapi\collectionfind::fields' => ['mysql_xdevapi\CollectionFind', 'projection'=>'string'], + 'mysql_xdevapi\collectionfind::groupBy' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], + 'mysql_xdevapi\collectionfind::having' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], + 'mysql_xdevapi\collectionfind::limit' => ['mysql_xdevapi\CollectionFind', 'rows'=>'integer'], + 'mysql_xdevapi\collectionfind::lockExclusive' => ['mysql_xdevapi\CollectionFind', 'lock_waiting_option='=>'integer'], + 'mysql_xdevapi\collectionfind::lockShared' => ['mysql_xdevapi\CollectionFind', 'lock_waiting_option='=>'integer'], + 'mysql_xdevapi\collectionfind::offset' => ['mysql_xdevapi\CollectionFind', 'position'=>'integer'], + 'mysql_xdevapi\collectionfind::sort' => ['mysql_xdevapi\CollectionFind', 'sort_expr'=>'string'], + 'mysql_xdevapi\collectionmodify::arrayAppend' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], + 'mysql_xdevapi\collectionmodify::arrayInsert' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], + 'mysql_xdevapi\collectionmodify::bind' => ['mysql_xdevapi\CollectionModify', 'placeholder_values'=>'array'], + 'mysql_xdevapi\collectionmodify::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\collectionmodify::limit' => ['mysql_xdevapi\CollectionModify', 'rows'=>'integer'], + 'mysql_xdevapi\collectionmodify::patch' => ['mysql_xdevapi\CollectionModify', 'document'=>'string'], + 'mysql_xdevapi\collectionmodify::replace' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], + 'mysql_xdevapi\collectionmodify::set' => ['mysql_xdevapi\CollectionModify', 'collection_field'=>'string', 'expression_or_literal'=>'string'], + 'mysql_xdevapi\collectionmodify::skip' => ['mysql_xdevapi\CollectionModify', 'position'=>'integer'], + 'mysql_xdevapi\collectionmodify::sort' => ['mysql_xdevapi\CollectionModify', 'sort_expr'=>'string'], + 'mysql_xdevapi\collectionmodify::unset' => ['mysql_xdevapi\CollectionModify', 'fields'=>'array'], + 'mysql_xdevapi\collectionremove::bind' => ['mysql_xdevapi\CollectionRemove', 'placeholder_values'=>'array'], + 'mysql_xdevapi\collectionremove::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\collectionremove::limit' => ['mysql_xdevapi\CollectionRemove', 'rows'=>'integer'], + 'mysql_xdevapi\collectionremove::sort' => ['mysql_xdevapi\CollectionRemove', 'sort_expr'=>'string'], + 'mysql_xdevapi\columnresult::getCharacterSetName' => ['string'], + 'mysql_xdevapi\columnresult::getCollationName' => ['string'], + 'mysql_xdevapi\columnresult::getColumnLabel' => ['string'], + 'mysql_xdevapi\columnresult::getColumnName' => ['string'], + 'mysql_xdevapi\columnresult::getFractionalDigits' => ['integer'], + 'mysql_xdevapi\columnresult::getLength' => ['integer'], + 'mysql_xdevapi\columnresult::getSchemaName' => ['string'], + 'mysql_xdevapi\columnresult::getTableLabel' => ['string'], + 'mysql_xdevapi\columnresult::getTableName' => ['string'], + 'mysql_xdevapi\columnresult::getType' => ['integer'], + 'mysql_xdevapi\columnresult::isNumberSigned' => ['integer'], + 'mysql_xdevapi\columnresult::isPadded' => ['integer'], + 'mysql_xdevapi\crudoperationbindable::bind' => ['mysql_xdevapi\CrudOperationBindable', 'placeholder_values'=>'array'], + 'mysql_xdevapi\crudoperationlimitable::limit' => ['mysql_xdevapi\CrudOperationLimitable', 'rows'=>'integer'], + 'mysql_xdevapi\crudoperationskippable::skip' => ['mysql_xdevapi\CrudOperationSkippable', 'skip'=>'integer'], + 'mysql_xdevapi\crudoperationsortable::sort' => ['mysql_xdevapi\CrudOperationSortable', 'sort_expr'=>'string'], + 'mysql_xdevapi\databaseobject::existsInDatabase' => ['bool'], + 'mysql_xdevapi\databaseobject::getName' => ['string'], + 'mysql_xdevapi\databaseobject::getSession' => ['mysql_xdevapi\Session'], + 'mysql_xdevapi\docresult::fetchAll' => ['Array'], + 'mysql_xdevapi\docresult::fetchOne' => ['Object'], + 'mysql_xdevapi\docresult::getWarnings' => ['Array'], + 'mysql_xdevapi\docresult::getWarningsCount' => ['integer'], + 'mysql_xdevapi\executable::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\getsession' => ['mysql_xdevapi\Session', 'uri'=>'string'], + 'mysql_xdevapi\result::getAutoIncrementValue' => ['int'], + 'mysql_xdevapi\result::getGeneratedIds' => ['ArrayOfInt'], + 'mysql_xdevapi\result::getWarnings' => ['array'], + 'mysql_xdevapi\result::getWarningsCount' => ['integer'], + 'mysql_xdevapi\rowresult::fetchAll' => ['array'], + 'mysql_xdevapi\rowresult::fetchOne' => ['object'], + 'mysql_xdevapi\rowresult::getColumnCount' => ['integer'], + 'mysql_xdevapi\rowresult::getColumnNames' => ['array'], + 'mysql_xdevapi\rowresult::getColumns' => ['array'], + 'mysql_xdevapi\rowresult::getWarnings' => ['array'], + 'mysql_xdevapi\rowresult::getWarningsCount' => ['integer'], + 'mysql_xdevapi\schema::createCollection' => ['mysql_xdevapi\Collection', 'name'=>'string'], + 'mysql_xdevapi\schema::dropCollection' => ['bool', 'collection_name'=>'string'], + 'mysql_xdevapi\schema::existsInDatabase' => ['bool'], + 'mysql_xdevapi\schema::getCollection' => ['mysql_xdevapi\Collection', 'name'=>'string'], + 'mysql_xdevapi\schema::getCollectionAsTable' => ['mysql_xdevapi\Table', 'name'=>'string'], + 'mysql_xdevapi\schema::getCollections' => ['array'], + 'mysql_xdevapi\schema::getName' => ['string'], + 'mysql_xdevapi\schema::getSession' => ['mysql_xdevapi\Session'], + 'mysql_xdevapi\schema::getTable' => ['mysql_xdevapi\Table', 'name'=>'string'], + 'mysql_xdevapi\schema::getTables' => ['array'], + 'mysql_xdevapi\schemaobject::getSchema' => ['mysql_xdevapi\Schema'], + 'mysql_xdevapi\session::close' => ['bool'], + 'mysql_xdevapi\session::commit' => ['Object'], + 'mysql_xdevapi\session::createSchema' => ['mysql_xdevapi\Schema', 'schema_name'=>'string'], + 'mysql_xdevapi\session::dropSchema' => ['bool', 'schema_name'=>'string'], + 'mysql_xdevapi\session::executeSql' => ['Object', 'statement'=>'string'], + 'mysql_xdevapi\session::generateUUID' => ['string'], + 'mysql_xdevapi\session::getClientId' => ['integer'], + 'mysql_xdevapi\session::getSchema' => ['mysql_xdevapi\Schema', 'schema_name'=>'string'], + 'mysql_xdevapi\session::getSchemas' => ['array'], + 'mysql_xdevapi\session::getServerVersion' => ['integer'], + 'mysql_xdevapi\session::killClient' => ['object', 'client_id'=>'integer'], + 'mysql_xdevapi\session::listClients' => ['array'], + 'mysql_xdevapi\session::quoteName' => ['string', 'name'=>'string'], + 'mysql_xdevapi\session::releaseSavepoint' => ['void', 'name'=>'string'], + 'mysql_xdevapi\session::rollback' => ['void'], + 'mysql_xdevapi\session::rollbackTo' => ['void', 'name'=>'string'], + 'mysql_xdevapi\session::setSavepoint' => ['string', 'name='=>'string'], + 'mysql_xdevapi\session::sql' => ['mysql_xdevapi\SqlStatement', 'query'=>'string'], + 'mysql_xdevapi\session::startTransaction' => ['void'], + 'mysql_xdevapi\sqlstatement::bind' => ['mysql_xdevapi\SqlStatement', 'param'=>'string'], + 'mysql_xdevapi\sqlstatement::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\sqlstatement::getNextResult' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\sqlstatement::getResult' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\sqlstatement::hasMoreResults' => ['bool'], + 'mysql_xdevapi\sqlstatementresult::fetchAll' => ['array'], + 'mysql_xdevapi\sqlstatementresult::fetchOne' => ['object'], + 'mysql_xdevapi\sqlstatementresult::getAffectedItemsCount' => ['integer'], + 'mysql_xdevapi\sqlstatementresult::getColumnCount' => ['integer'], + 'mysql_xdevapi\sqlstatementresult::getColumnNames' => ['array'], + 'mysql_xdevapi\sqlstatementresult::getColumns' => ['Array'], + 'mysql_xdevapi\sqlstatementresult::getGeneratedIds' => ['array'], + 'mysql_xdevapi\sqlstatementresult::getLastInsertId' => ['String'], + 'mysql_xdevapi\sqlstatementresult::getWarnings' => ['array'], + 'mysql_xdevapi\sqlstatementresult::getWarningsCount' => ['integer'], + 'mysql_xdevapi\sqlstatementresult::hasData' => ['bool'], + 'mysql_xdevapi\sqlstatementresult::nextResult' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\statement::getNextResult' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\statement::getResult' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\statement::hasMoreResults' => ['bool'], + 'mysql_xdevapi\table::count' => ['integer'], + 'mysql_xdevapi\table::delete' => ['mysql_xdevapi\TableDelete'], + 'mysql_xdevapi\table::existsInDatabase' => ['bool'], + 'mysql_xdevapi\table::getName' => ['string'], + 'mysql_xdevapi\table::getSchema' => ['mysql_xdevapi\Schema'], + 'mysql_xdevapi\table::getSession' => ['mysql_xdevapi\Session'], + 'mysql_xdevapi\table::insert' => ['mysql_xdevapi\TableInsert', 'columns'=>'mixed', '...args='=>'mixed'], + 'mysql_xdevapi\table::isView' => ['bool'], + 'mysql_xdevapi\table::select' => ['mysql_xdevapi\TableSelect', 'columns'=>'mixed', '...args='=>'mixed'], + 'mysql_xdevapi\table::update' => ['mysql_xdevapi\TableUpdate'], + 'mysql_xdevapi\tabledelete::bind' => ['mysql_xdevapi\TableDelete', 'placeholder_values'=>'array'], + 'mysql_xdevapi\tabledelete::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\tabledelete::limit' => ['mysql_xdevapi\TableDelete', 'rows'=>'integer'], + 'mysql_xdevapi\tabledelete::offset' => ['mysql_xdevapi\TableDelete', 'position'=>'integer'], + 'mysql_xdevapi\tabledelete::orderby' => ['mysql_xdevapi\TableDelete', 'orderby_expr'=>'string'], + 'mysql_xdevapi\tabledelete::where' => ['mysql_xdevapi\TableDelete', 'where_expr'=>'string'], + 'mysql_xdevapi\tableinsert::execute' => ['mysql_xdevapi\Result'], + 'mysql_xdevapi\tableinsert::values' => ['mysql_xdevapi\TableInsert', 'row_values'=>'array'], + 'mysql_xdevapi\tableselect::bind' => ['mysql_xdevapi\TableSelect', 'placeholder_values'=>'array'], + 'mysql_xdevapi\tableselect::execute' => ['mysql_xdevapi\RowResult'], + 'mysql_xdevapi\tableselect::groupBy' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'mixed'], + 'mysql_xdevapi\tableselect::having' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'string'], + 'mysql_xdevapi\tableselect::limit' => ['mysql_xdevapi\TableSelect', 'rows'=>'integer'], + 'mysql_xdevapi\tableselect::lockExclusive' => ['mysql_xdevapi\TableSelect', 'lock_waiting_option='=>'integer'], + 'mysql_xdevapi\tableselect::lockShared' => ['mysql_xdevapi\TableSelect', 'lock_waiting_option='=>'integer'], + 'mysql_xdevapi\tableselect::offset' => ['mysql_xdevapi\TableSelect', 'position'=>'integer'], + 'mysql_xdevapi\tableselect::orderby' => ['mysql_xdevapi\TableSelect', 'sort_expr'=>'mixed', '...args='=>'mixed'], + 'mysql_xdevapi\tableselect::where' => ['mysql_xdevapi\TableSelect', 'where_expr'=>'string'], + 'mysql_xdevapi\tableupdate::bind' => ['mysql_xdevapi\TableUpdate', 'placeholder_values'=>'array'], + 'mysql_xdevapi\tableupdate::execute' => ['mysql_xdevapi\TableUpdate'], + 'mysql_xdevapi\tableupdate::limit' => ['mysql_xdevapi\TableUpdate', 'rows'=>'integer'], + 'mysql_xdevapi\tableupdate::orderby' => ['mysql_xdevapi\TableUpdate', 'orderby_expr'=>'mixed', '...args='=>'mixed'], + 'mysql_xdevapi\tableupdate::set' => ['mysql_xdevapi\TableUpdate', 'table_field'=>'string', 'expression_or_literal'=>'string'], + 'mysql_xdevapi\tableupdate::where' => ['mysql_xdevapi\TableUpdate', 'where_expr'=>'string'], + 'mysqli::__construct' => ['void', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'mysqli::autocommit' => ['bool', 'enable'=>'bool'], + 'mysqli::begin_transaction' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'mysqli::change_user' => ['bool', 'username'=>'string', 'password'=>'string', 'database'=>'?string'], + 'mysqli::character_set_name' => ['string'], + 'mysqli::close' => ['bool'], + 'mysqli::commit' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'mysqli::connect' => ['null|false', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'mysqli::debug' => ['bool', 'options'=>'string'], + 'mysqli::disable_reads_from_master' => ['bool'], + 'mysqli::dump_debug_info' => ['bool'], + 'mysqli::escape_string' => ['string', 'string'=>'string'], + 'mysqli::get_charset' => ['object'], + 'mysqli::get_client_info' => ['string'], + 'mysqli::get_connection_stats' => ['array'], + 'mysqli::get_warnings' => ['mysqli_warning'], + 'mysqli::init' => ['false|null'], + 'mysqli::kill' => ['bool', 'process_id'=>'int'], + 'mysqli::more_results' => ['bool'], + 'mysqli::multi_query' => ['bool', 'query'=>'string'], + 'mysqli::next_result' => ['bool'], + 'mysqli::options' => ['bool', 'option'=>'int', 'value'=>'string|int'], + 'mysqli::ping' => ['bool'], + 'mysqli::poll' => ['int|false', '&w_read'=>'array', '&w_write'=>'array', '&w_error'=>'array', 'seconds'=>'int', 'microseconds='=>'int'], + 'mysqli::prepare' => ['mysqli_stmt|false', 'query'=>'string'], + 'mysqli::query' => ['bool|mysqli_result', 'query'=>'string', 'result_mode='=>'int'], + 'mysqli::real_connect' => ['bool', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null', 'flags='=>'int'], + 'mysqli::real_escape_string' => ['string', 'string'=>'string'], + 'mysqli::real_query' => ['bool', 'query'=>'string'], + 'mysqli::reap_async_query' => ['mysqli_result|false'], + 'mysqli::refresh' => ['bool', 'flags'=>'int'], + 'mysqli::release_savepoint' => ['bool', 'name'=>'string'], + 'mysqli::rollback' => ['bool', 'flags='=>'int', 'name='=>'string'], + 'mysqli::rpl_query_type' => ['int', 'query'=>'string'], + 'mysqli::savepoint' => ['bool', 'name'=>'string'], + 'mysqli::select_db' => ['bool', 'database'=>'string'], + 'mysqli::send_query' => ['bool', 'query'=>'string'], + 'mysqli::set_charset' => ['bool', 'charset'=>'string'], + 'mysqli::set_local_infile_default' => ['void'], + 'mysqli::set_local_infile_handler' => ['bool', 'read_func='=>'callable'], + 'mysqli::set_opt' => ['bool', 'option'=>'int', 'value'=>'string|int'], + 'mysqli::ssl_set' => ['bool', 'key'=>'?string', 'certificate'=>'?string', 'ca_certificate'=>'?string', 'ca_path'=>'?string', 'cipher_algos'=>'?string'], + 'mysqli::stat' => ['string|false'], + 'mysqli::stmt_init' => ['mysqli_stmt'], + 'mysqli::store_result' => ['mysqli_result|false', 'mode='=>'int'], + 'mysqli::thread_safe' => ['bool'], + 'mysqli::use_result' => ['mysqli_result|false'], + 'mysqli_affected_rows' => ['int<-1, max>|numeric-string', 'mysql'=>'mysqli'], + 'mysqli_autocommit' => ['bool', 'mysql'=>'mysqli', 'enable'=>'bool'], + 'mysqli_begin_transaction' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'mysqli_change_user' => ['bool', 'mysql'=>'mysqli', 'username'=>'string', 'password'=>'string', 'database'=>'?string'], + 'mysqli_character_set_name' => ['string', 'mysql'=>'mysqli'], + 'mysqli_close' => ['true', 'mysql'=>'mysqli'], + 'mysqli_commit' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'mysqli_connect' => ['mysqli|false', 'hostname='=>'string', 'username='=>'string', 'password='=>'string', 'database='=>'string', 'port='=>'int', 'socket='=>'string'], + 'mysqli_connect_errno' => ['int'], + 'mysqli_connect_error' => ['?string'], + 'mysqli_data_seek' => ['bool', 'result'=>'mysqli_result', 'offset'=>'int'], + 'mysqli_debug' => ['true', 'options'=>'string'], + 'mysqli_disable_reads_from_master' => ['bool', 'link'=>'mysqli'], + 'mysqli_disable_rpl_parse' => ['bool', 'link'=>'mysqli'], + 'mysqli_driver::embedded_server_end' => ['void'], + 'mysqli_driver::embedded_server_start' => ['bool', 'start'=>'int', 'arguments'=>'array', 'groups'=>'array'], + 'mysqli_dump_debug_info' => ['bool', 'mysql'=>'mysqli'], + 'mysqli_embedded_server_end' => ['void'], + 'mysqli_embedded_server_start' => ['bool', 'start'=>'int', 'arguments'=>'array', 'groups'=>'array'], + 'mysqli_enable_reads_from_master' => ['bool', 'link'=>'mysqli'], + 'mysqli_enable_rpl_parse' => ['bool', 'link'=>'mysqli'], + 'mysqli_errno' => ['int', 'mysql'=>'mysqli'], + 'mysqli_error' => ['string', 'mysql'=>'mysqli'], + 'mysqli_error_list' => ['array', 'mysql'=>'mysqli'], + 'mysqli_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], + 'mysqli_execute' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_fetch_all' => ['list>', 'result'=>'mysqli_result', 'mode='=>'3'], + 'mysqli_fetch_all\'1' => ['list>', 'result'=>'mysqli_result', 'mode='=>'1'], + 'mysqli_fetch_all\'2' => ['list>', 'result'=>'mysqli_result', 'mode='=>'2'], + 'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'3'], + 'mysqli_fetch_array\'1' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'1'], + 'mysqli_fetch_array\'2' => ['list|false|null', 'result'=>'mysqli_result', 'mode='=>'2'], + 'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], + 'mysqli_fetch_field' => ['object|false', 'result'=>'mysqli_result'], + 'mysqli_fetch_field_direct' => ['object|false', 'result'=>'mysqli_result', 'index'=>'int'], + 'mysqli_fetch_fields' => ['stdClass[]', 'result'=>'mysqli_result'], + 'mysqli_fetch_lengths' => ['array|false', 'result'=>'mysqli_result'], + 'mysqli_fetch_object' => ['object|false|null', 'result'=>'mysqli_result', 'class='=>'class-string', 'constructor_args='=>'array'], + 'mysqli_fetch_row' => ['list|false|null', 'result'=>'mysqli_result'], + 'mysqli_field_count' => ['int', 'mysql'=>'mysqli'], + 'mysqli_field_seek' => ['bool', 'result'=>'mysqli_result', 'index'=>'int'], + 'mysqli_field_tell' => ['int', 'result'=>'mysqli_result'], + 'mysqli_free_result' => ['void', 'result'=>'mysqli_result'], + 'mysqli_get_cache_stats' => ['array|false'], + 'mysqli_get_charset' => ['?object', 'mysql'=>'mysqli'], + 'mysqli_get_client_info' => ['string', 'mysql='=>'?mysqli'], + 'mysqli_get_client_stats' => ['array'], + 'mysqli_get_client_version' => ['int', 'link'=>'mysqli'], + 'mysqli_get_connection_stats' => ['array', 'mysql'=>'mysqli'], + 'mysqli_get_host_info' => ['string', 'mysql'=>'mysqli'], + 'mysqli_get_links_stats' => ['array'], + 'mysqli_get_proto_info' => ['int', 'mysql'=>'mysqli'], + 'mysqli_get_server_info' => ['string', 'mysql'=>'mysqli'], + 'mysqli_get_server_version' => ['int', 'mysql'=>'mysqli'], + 'mysqli_get_warnings' => ['mysqli_warning', 'mysql'=>'mysqli'], + 'mysqli_info' => ['?string', 'mysql'=>'mysqli'], + 'mysqli_init' => ['mysqli|false'], + 'mysqli_insert_id' => ['int|string', 'mysql'=>'mysqli'], + 'mysqli_kill' => ['bool', 'mysql'=>'mysqli', 'process_id'=>'int'], + 'mysqli_link_construct' => ['object'], + 'mysqli_master_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], + 'mysqli_more_results' => ['bool', 'mysql'=>'mysqli'], + 'mysqli_multi_query' => ['bool', 'mysql'=>'mysqli', 'query'=>'string'], + 'mysqli_next_result' => ['bool', 'mysql'=>'mysqli'], + 'mysqli_num_fields' => ['int', 'result'=>'mysqli_result'], + 'mysqli_num_rows' => ['int<0, max>|numeric-string', 'result'=>'mysqli_result'], + 'mysqli_options' => ['bool', 'mysql'=>'mysqli', 'option'=>'int', 'value'=>'string|int'], + 'mysqli_ping' => ['bool', 'mysql'=>'mysqli'], + 'mysqli_poll' => ['int|false', 'read'=>'array', 'write'=>'array', 'error'=>'array', 'seconds'=>'int', 'microseconds='=>'int'], + 'mysqli_prepare' => ['mysqli_stmt|false', 'mysql'=>'mysqli', 'query'=>'string'], + 'mysqli_query' => ['mysqli_result|bool', 'mysql'=>'mysqli', 'query'=>'string', 'result_mode='=>'int'], + 'mysqli_real_connect' => ['bool', 'mysql='=>'mysqli', 'hostname='=>'string|null', 'username='=>'string|null', 'password='=>'string|null', 'database='=>'string|null', 'port='=>'int|null', 'socket='=>'string|null', 'flags='=>'int'], + 'mysqli_real_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], + 'mysqli_real_query' => ['bool', 'mysql'=>'mysqli', 'query'=>'string'], + 'mysqli_reap_async_query' => ['mysqli_result|false', 'mysql'=>'mysqli'], + 'mysqli_refresh' => ['bool', 'mysql'=>'mysqli', 'flags'=>'int'], + 'mysqli_release_savepoint' => ['bool', 'mysql'=>'mysqli', 'name'=>'string'], + 'mysqli_report' => ['bool', 'flags'=>'int'], + 'mysqli_result::__construct' => ['void', 'mysql'=>'mysqli', 'result_mode='=>'int'], + 'mysqli_result::close' => ['void'], + 'mysqli_result::data_seek' => ['bool', 'offset'=>'int'], + 'mysqli_result::fetch_all' => ['list>', 'mode='=>'3'], + 'mysqli_result::fetch_all\'1' => ['list>', 'mode='=>'1'], + 'mysqli_result::fetch_all\'2' => ['list>', 'mode='=>'2'], + 'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'3'], + 'mysqli_result::fetch_array\'1' => ['array|false|null', 'mode='=>'1'], + 'mysqli_result::fetch_array\'2' => ['list|false|null', 'mode='=>'2'], + 'mysqli_result::fetch_assoc' => ['array|false|null'], + 'mysqli_result::fetch_field' => ['object|false'], + 'mysqli_result::fetch_field_direct' => ['object|false', 'index'=>'int'], + 'mysqli_result::fetch_fields' => ['stdClass[]'], + 'mysqli_result::fetch_object' => ['object|false|null', 'class='=>'class-string', 'constructor_args='=>'array'], + 'mysqli_result::fetch_row' => ['list|false|null'], + 'mysqli_result::field_seek' => ['bool', 'index'=>'int'], + 'mysqli_result::free' => ['void'], + 'mysqli_result::free_result' => ['void'], + 'mysqli_rollback' => ['bool', 'mysql'=>'mysqli', 'flags='=>'int', 'name='=>'string'], + 'mysqli_rpl_parse_enabled' => ['int', 'link'=>'mysqli'], + 'mysqli_rpl_probe' => ['bool', 'link'=>'mysqli'], + 'mysqli_rpl_query_type' => ['int', 'link'=>'mysqli', 'query'=>'string'], + 'mysqli_savepoint' => ['bool', 'mysql'=>'mysqli', 'name'=>'string'], + 'mysqli_savepoint_libmysql' => ['bool'], + 'mysqli_select_db' => ['bool', 'mysql'=>'mysqli', 'database'=>'string'], + 'mysqli_send_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], + 'mysqli_set_charset' => ['bool', 'mysql'=>'mysqli', 'charset'=>'string'], + 'mysqli_set_local_infile_default' => ['void', 'link'=>'mysqli'], + 'mysqli_set_local_infile_handler' => ['bool', 'link'=>'mysqli', 'read_func'=>'callable'], + 'mysqli_set_opt' => ['bool', 'mysql'=>'mysqli', 'option'=>'int', 'value'=>'string|int'], + 'mysqli_slave_query' => ['bool', 'link'=>'mysqli', 'query'=>'string'], + 'mysqli_sqlstate' => ['string', 'mysql'=>'mysqli'], + 'mysqli_ssl_set' => ['true', 'mysql'=>'mysqli', 'key'=>'?string', 'certificate'=>'?string', 'ca_certificate'=>'?string', 'ca_path'=>'?string', 'cipher_algos'=>'?string'], + 'mysqli_stat' => ['string|false', 'mysql'=>'mysqli'], + 'mysqli_stmt::__construct' => ['void', 'mysql'=>'mysqli', 'query'=>'string'], + 'mysqli_stmt::attr_get' => ['int', 'attribute'=>'int'], + 'mysqli_stmt::attr_set' => ['bool', 'attribute'=>'int', 'value'=>'int'], + 'mysqli_stmt::bind_param' => ['bool', 'types'=>'string', '&vars'=>'mixed', '&...args='=>'mixed'], + 'mysqli_stmt::bind_result' => ['bool', '&w_var1'=>'', '&...w_vars='=>''], + 'mysqli_stmt::close' => ['bool'], + 'mysqli_stmt::data_seek' => ['void', 'offset'=>'int'], + 'mysqli_stmt::execute' => ['bool'], + 'mysqli_stmt::fetch' => ['bool|null'], + 'mysqli_stmt::free_result' => ['void'], + 'mysqli_stmt::get_result' => ['mysqli_result|false'], + 'mysqli_stmt::get_warnings' => ['object'], + 'mysqli_stmt::more_results' => ['bool'], + 'mysqli_stmt::next_result' => ['bool'], + 'mysqli_stmt::num_rows' => ['int<0, max>|numeric-string'], + 'mysqli_stmt::prepare' => ['bool', 'query'=>'string'], + 'mysqli_stmt::reset' => ['bool'], + 'mysqli_stmt::result_metadata' => ['mysqli_result|false'], + 'mysqli_stmt::send_long_data' => ['bool', 'param_num'=>'int', 'data'=>'string'], + 'mysqli_stmt::store_result' => ['bool'], + 'mysqli_stmt_affected_rows' => ['int<-1, max>|numeric-string', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_attr_get' => ['int', 'statement'=>'mysqli_stmt', 'attribute'=>'int'], + 'mysqli_stmt_attr_set' => ['bool', 'statement'=>'mysqli_stmt', 'attribute'=>'int', 'value'=>'int'], + 'mysqli_stmt_bind_param' => ['bool', 'statement'=>'mysqli_stmt', 'types'=>'string', '&vars'=>'mixed', '&...args='=>'mixed'], + 'mysqli_stmt_bind_result' => ['bool', 'statement'=>'mysqli_stmt', '&w_var1'=>'', '&...w_vars='=>''], + 'mysqli_stmt_close' => ['true', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_data_seek' => ['void', 'statement'=>'mysqli_stmt', 'offset'=>'int'], + 'mysqli_stmt_errno' => ['int', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_error' => ['string', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_error_list' => ['array', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_execute' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_fetch' => ['bool|null', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_field_count' => ['int', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_free_result' => ['void', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_get_result' => ['mysqli_result|false', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_get_warnings' => ['object', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_init' => ['mysqli_stmt', 'mysql'=>'mysqli'], + 'mysqli_stmt_insert_id' => ['mixed', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_more_results' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_next_result' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_num_rows' => ['int', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_param_count' => ['int', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_prepare' => ['bool', 'statement'=>'mysqli_stmt', 'query'=>'string'], + 'mysqli_stmt_reset' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_result_metadata' => ['mysqli_result|false', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_send_long_data' => ['bool', 'statement'=>'mysqli_stmt', 'param_num'=>'int', 'data'=>'string'], + 'mysqli_stmt_sqlstate' => ['string', 'statement'=>'mysqli_stmt'], + 'mysqli_stmt_store_result' => ['bool', 'statement'=>'mysqli_stmt'], + 'mysqli_store_result' => ['mysqli_result|false', 'mysql'=>'mysqli', 'mode='=>'int'], + 'mysqli_thread_id' => ['int', 'mysql'=>'mysqli'], + 'mysqli_thread_safe' => ['bool'], + 'mysqli_use_result' => ['mysqli_result|false', 'mysql'=>'mysqli'], + 'mysqli_warning::__construct' => ['void'], + 'mysqli_warning::next' => ['bool'], + 'mysqli_warning_count' => ['int', 'mysql'=>'mysqli'], + 'mysqlnd_memcache_get_config' => ['array', 'connection'=>'mixed'], + 'mysqlnd_memcache_set' => ['bool', 'mysql_connection'=>'mixed', 'memcache_connection='=>'Memcached', 'pattern='=>'string', 'callback='=>'callable'], + 'mysqlnd_ms_dump_servers' => ['array', 'connection'=>'mixed'], + 'mysqlnd_ms_fabric_select_global' => ['array', 'connection'=>'mixed', 'table_name'=>'mixed'], + 'mysqlnd_ms_fabric_select_shard' => ['array', 'connection'=>'mixed', 'table_name'=>'mixed', 'shard_key'=>'mixed'], + 'mysqlnd_ms_get_last_gtid' => ['string', 'connection'=>'mixed'], + 'mysqlnd_ms_get_last_used_connection' => ['array', 'connection'=>'mixed'], + 'mysqlnd_ms_get_stats' => ['array'], + 'mysqlnd_ms_match_wild' => ['bool', 'table_name'=>'string', 'wildcard'=>'string'], + 'mysqlnd_ms_query_is_select' => ['int', 'query'=>'string'], + 'mysqlnd_ms_set_qos' => ['bool', 'connection'=>'mixed', 'service_level'=>'int', 'service_level_option='=>'int', 'option_value='=>'mixed'], + 'mysqlnd_ms_set_user_pick_server' => ['bool', 'function'=>'string'], + 'mysqlnd_ms_xa_begin' => ['int', 'connection'=>'mixed', 'gtrid'=>'string', 'timeout='=>'int'], + 'mysqlnd_ms_xa_commit' => ['int', 'connection'=>'mixed', 'gtrid'=>'string'], + 'mysqlnd_ms_xa_gc' => ['int', 'connection'=>'mixed', 'gtrid='=>'string', 'ignore_max_retries='=>'bool'], + 'mysqlnd_ms_xa_rollback' => ['int', 'connection'=>'mixed', 'gtrid'=>'string'], + 'mysqlnd_qc_change_handler' => ['bool', 'handler'=>''], + 'mysqlnd_qc_clear_cache' => ['bool'], + 'mysqlnd_qc_get_available_handlers' => ['array'], + 'mysqlnd_qc_get_cache_info' => ['array'], + 'mysqlnd_qc_get_core_stats' => ['array'], + 'mysqlnd_qc_get_handler' => ['array'], + 'mysqlnd_qc_get_normalized_query_trace_log' => ['array'], + 'mysqlnd_qc_get_query_trace_log' => ['array'], + 'mysqlnd_qc_set_cache_condition' => ['bool', 'condition_type'=>'int', 'condition'=>'mixed', 'condition_option'=>'mixed'], + 'mysqlnd_qc_set_is_select' => ['mixed', 'callback'=>'string'], + 'mysqlnd_qc_set_storage_handler' => ['bool', 'handler'=>'string'], + 'mysqlnd_qc_set_user_handlers' => ['bool', 'get_hash'=>'string', 'find_query_in_cache'=>'string', 'return_to_cache'=>'string', 'add_query_to_cache_if_not_exists'=>'string', 'query_is_select'=>'string', 'update_query_run_time_stats'=>'string', 'get_stats'=>'string', 'clear_cache'=>'string'], + 'mysqlnd_uh_convert_to_mysqlnd' => ['resource', '&rw_mysql_connection'=>'mysqli'], + 'mysqlnd_uh_set_connection_proxy' => ['bool', '&rw_connection_proxy'=>'MysqlndUhConnection', '&rw_mysqli_connection='=>'mysqli'], + 'mysqlnd_uh_set_statement_proxy' => ['bool', '&rw_statement_proxy'=>'MysqlndUhStatement'], + 'natcasesort' => ['bool', '&rw_array'=>'array'], + 'natsort' => ['bool', '&rw_array'=>'array'], + 'newrelic_add_custom_parameter' => ['bool', 'key'=>'string', 'value'=>'bool|float|int|string'], + 'newrelic_add_custom_tracer' => ['bool', 'function_name'=>'string'], + 'newrelic_background_job' => ['void', 'flag='=>'bool'], + 'newrelic_capture_params' => ['void', 'enable='=>'bool'], + 'newrelic_custom_metric' => ['bool', 'metric_name'=>'string', 'value'=>'float'], + 'newrelic_disable_autorum' => ['true'], + 'newrelic_end_of_transaction' => ['void'], + 'newrelic_end_transaction' => ['bool', 'ignore='=>'bool'], + 'newrelic_get_browser_timing_footer' => ['string', 'include_tags='=>'bool'], + 'newrelic_get_browser_timing_header' => ['string', 'include_tags='=>'bool'], + 'newrelic_ignore_apdex' => ['void'], + 'newrelic_ignore_transaction' => ['void'], + 'newrelic_name_transaction' => ['bool', 'name'=>'string'], + 'newrelic_notice_error' => ['void', 'message'=>'string', 'exception='=>'Exception|Throwable'], + 'newrelic_notice_error\'1' => ['void', 'unused_1'=>'string', 'message'=>'string', 'unused_2'=>'string', 'unused_3'=>'int', 'unused_4='=>''], + 'newrelic_record_custom_event' => ['void', 'name'=>'string', 'attributes'=>'array'], + 'newrelic_record_datastore_segment' => ['mixed', 'func'=>'callable', 'parameters'=>'array'], + 'newrelic_set_appname' => ['bool', 'name'=>'string', 'license='=>'string', 'xmit='=>'bool'], + 'newrelic_set_user_attributes' => ['bool', 'user'=>'string', 'account'=>'string', 'product'=>'string'], + 'newrelic_start_transaction' => ['bool', 'appname'=>'string', 'license='=>'string'], + 'next' => ['mixed', '&r_array'=>'array|object'], + 'ngettext' => ['string', 'singular'=>'string', 'plural'=>'string', 'count'=>'int'], + 'nl2br' => ['string', 'string'=>'string', 'use_xhtml='=>'bool'], + 'nl_langinfo' => ['string|false', 'item'=>'int'], + 'normalizer_is_normalized' => ['bool', 'string'=>'string', 'form='=>'int'], + 'normalizer_normalize' => ['string|false', 'string'=>'string', 'form='=>'int'], + 'notes_body' => ['array', 'server'=>'string', 'mailbox'=>'string', 'msg_number'=>'int'], + 'notes_copy_db' => ['bool', 'from_database_name'=>'string', 'to_database_name'=>'string'], + 'notes_create_db' => ['bool', 'database_name'=>'string'], + 'notes_create_note' => ['bool', 'database_name'=>'string', 'form_name'=>'string'], + 'notes_drop_db' => ['bool', 'database_name'=>'string'], + 'notes_find_note' => ['int', 'database_name'=>'string', 'name'=>'string', 'type='=>'string'], + 'notes_header_info' => ['object', 'server'=>'string', 'mailbox'=>'string', 'msg_number'=>'int'], + 'notes_list_msgs' => ['bool', 'db'=>'string'], + 'notes_mark_read' => ['bool', 'database_name'=>'string', 'user_name'=>'string', 'note_id'=>'string'], + 'notes_mark_unread' => ['bool', 'database_name'=>'string', 'user_name'=>'string', 'note_id'=>'string'], + 'notes_nav_create' => ['bool', 'database_name'=>'string', 'name'=>'string'], + 'notes_search' => ['array', 'database_name'=>'string', 'keywords'=>'string'], + 'notes_unread' => ['array', 'database_name'=>'string', 'user_name'=>'string'], + 'notes_version' => ['float', 'database_name'=>'string'], + 'nsapi_request_headers' => ['array'], + 'nsapi_response_headers' => ['array'], + 'nsapi_virtual' => ['bool', 'uri'=>'string'], + 'nthmac' => ['string', 'clent'=>'string', 'data'=>'string'], + 'number_format' => ['string', 'num'=>'float|int', 'decimals='=>'int'], + 'number_format\'1' => ['string', 'num'=>'float|int', 'decimals'=>'int', 'decimal_separator'=>'?string', 'thousands_separator'=>'?string'], + 'numfmt_create' => ['NumberFormatter|null', 'locale'=>'string', 'style'=>'int', 'pattern='=>'string'], + 'numfmt_format' => ['string|false', 'formatter'=>'NumberFormatter', 'num'=>'int|float', 'type='=>'int'], + 'numfmt_format_currency' => ['string|false', 'formatter'=>'NumberFormatter', 'amount'=>'float', 'currency'=>'string'], + 'numfmt_get_attribute' => ['int|false', 'formatter'=>'NumberFormatter', 'attribute'=>'int'], + 'numfmt_get_error_code' => ['int', 'formatter'=>'NumberFormatter'], + 'numfmt_get_error_message' => ['string', 'formatter'=>'NumberFormatter'], + 'numfmt_get_locale' => ['string', 'formatter'=>'NumberFormatter', 'type='=>'int'], + 'numfmt_get_pattern' => ['string|false', 'formatter'=>'NumberFormatter'], + 'numfmt_get_symbol' => ['string|false', 'formatter'=>'NumberFormatter', 'symbol'=>'int'], + 'numfmt_get_text_attribute' => ['string|false', 'formatter'=>'NumberFormatter', 'attribute'=>'int'], + 'numfmt_parse' => ['float|int|false', 'formatter'=>'NumberFormatter', 'string'=>'string', 'type='=>'int', '&rw_offset='=>'int'], + 'numfmt_parse_currency' => ['float|false', 'formatter'=>'NumberFormatter', 'string'=>'string', '&w_currency'=>'string', '&rw_offset='=>'int'], + 'numfmt_set_attribute' => ['bool', 'formatter'=>'NumberFormatter', 'attribute'=>'int', 'value'=>'int'], + 'numfmt_set_pattern' => ['bool', 'formatter'=>'NumberFormatter', 'pattern'=>'string'], + 'numfmt_set_symbol' => ['bool', 'formatter'=>'NumberFormatter', 'symbol'=>'int', 'value'=>'string'], + 'numfmt_set_text_attribute' => ['bool', 'formatter'=>'NumberFormatter', 'attribute'=>'int', 'value'=>'string'], + 'oauth_get_sbs' => ['string', 'http_method'=>'string', 'uri'=>'string', 'parameters'=>'array'], + 'oauth_urlencode' => ['string', 'uri'=>'string'], + 'ob_clean' => ['bool'], + 'ob_deflatehandler' => ['string', 'data'=>'string', 'mode'=>'int'], + 'ob_end_clean' => ['bool'], + 'ob_end_flush' => ['bool'], + 'ob_etaghandler' => ['string', 'data'=>'string', 'mode'=>'int'], + 'ob_flush' => ['bool'], + 'ob_get_clean' => ['string|false'], + 'ob_get_contents' => ['string|false'], + 'ob_get_flush' => ['string|false'], + 'ob_get_length' => ['int|false'], + 'ob_get_level' => ['int'], + 'ob_get_status' => ['array', 'full_status='=>'bool'], + 'ob_gzhandler' => ['string|false', 'data'=>'string', 'flags'=>'int'], + 'ob_iconv_handler' => ['string', 'contents'=>'string', 'status'=>'int'], + 'ob_implicit_flush' => ['void', 'enable='=>'int'], + 'ob_inflatehandler' => ['string', 'data'=>'string', 'mode'=>'int'], + 'ob_list_handlers' => ['list'], + 'ob_start' => ['bool', 'callback='=>'string|array|?callable', 'chunk_size='=>'int', 'flags='=>'int'], + 'ob_tidyhandler' => ['string', 'input'=>'string', 'mode='=>'int'], + 'oci_bind_array_by_name' => ['bool', 'statement'=>'resource', 'param'=>'string', '&rw_var'=>'array', 'max_array_length'=>'int', 'max_item_length='=>'int', 'type='=>'int'], + 'oci_bind_by_name' => ['bool', 'statement'=>'resource', 'param'=>'string', '&rw_var'=>'mixed', 'max_length='=>'int', 'type='=>'int'], + 'oci_cancel' => ['bool', 'statement'=>'resource'], + 'oci_client_version' => ['string'], + 'oci_close' => ['bool', 'connection'=>'resource'], + 'oci_collection_append' => ['bool', 'collection'=>'string'], + 'oci_collection_assign' => ['bool', 'to'=>'object'], + 'oci_collection_element_assign' => ['bool', 'collection'=>'int', 'index'=>'string'], + 'oci_collection_element_get' => ['string', 'collection'=>'int'], + 'oci_collection_max' => ['int'], + 'oci_collection_size' => ['int'], + 'oci_collection_trim' => ['bool', 'collection'=>'int'], + 'oci_commit' => ['bool', 'connection'=>'resource'], + 'oci_connect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], + 'oci_define_by_name' => ['bool', 'statement'=>'resource', 'column'=>'string', '&w_var'=>'mixed', 'type='=>'int'], + 'oci_error' => ['array|false', 'connection_or_statement='=>'resource'], + 'oci_execute' => ['bool', 'statement'=>'resource', 'mode='=>'int'], + 'oci_fetch' => ['bool', 'statement'=>'resource'], + 'oci_fetch_all' => ['int|false', 'statement'=>'resource', '&w_output'=>'array', 'offset='=>'int', 'limit='=>'int', 'flags='=>'int'], + 'oci_fetch_array' => ['array|false', 'statement'=>'resource', 'mode='=>'int'], + 'oci_fetch_assoc' => ['array|false', 'statement'=>'resource'], + 'oci_fetch_object' => ['object|false', 'statement'=>'resource'], + 'oci_fetch_row' => ['array|false', 'statement'=>'resource'], + 'oci_field_is_null' => ['bool', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_name' => ['string|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_precision' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_scale' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_size' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_type' => ['mixed|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_field_type_raw' => ['int|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_free_collection' => ['bool'], + 'oci_free_cursor' => ['bool', 'statement'=>'resource'], + 'oci_free_descriptor' => ['bool'], + 'oci_free_statement' => ['bool', 'statement'=>'resource'], + 'oci_get_implicit' => ['bool', 'stmt'=>''], + 'oci_get_implicit_resultset' => ['resource|false', 'statement'=>'resource'], + 'oci_internal_debug' => ['void', 'onoff'=>'bool'], + 'oci_lob_append' => ['bool', 'to'=>'object'], + 'oci_lob_close' => ['bool'], + 'oci_lob_copy' => ['bool', 'to'=>'OCILob', 'from'=>'OCILob', 'length='=>'int'], + 'oci_lob_eof' => ['bool'], + 'oci_lob_erase' => ['int', 'lob'=>'int', 'offset'=>'int'], + 'oci_lob_export' => ['bool', 'lob'=>'string', 'filename'=>'int', 'offset'=>'int'], + 'oci_lob_flush' => ['bool', 'lob'=>'int'], + 'oci_lob_import' => ['bool', 'lob'=>'string'], + 'oci_lob_is_equal' => ['bool', 'lob1'=>'OCILob', 'lob2'=>'OCILob'], + 'oci_lob_load' => ['string'], + 'oci_lob_read' => ['string', 'lob'=>'int'], + 'oci_lob_rewind' => ['bool'], + 'oci_lob_save' => ['bool', 'lob'=>'string', 'data'=>'int'], + 'oci_lob_seek' => ['bool', 'lob'=>'int', 'offset'=>'int'], + 'oci_lob_size' => ['int'], + 'oci_lob_tell' => ['int'], + 'oci_lob_truncate' => ['bool', 'lob'=>'int'], + 'oci_lob_write' => ['int', 'lob'=>'string', 'data'=>'int'], + 'oci_lob_write_temporary' => ['bool', 'value'=>'string', 'lob_type'=>'int'], + 'oci_new_collection' => ['OCICollection|false', 'connection'=>'resource', 'type_name'=>'string', 'schema='=>'string'], + 'oci_new_connect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], + 'oci_new_cursor' => ['resource|false', 'connection'=>'resource'], + 'oci_new_descriptor' => ['OCILob|false', 'connection'=>'resource', 'type='=>'int'], + 'oci_num_fields' => ['int|false', 'statement'=>'resource'], + 'oci_num_rows' => ['int|false', 'statement'=>'resource'], + 'oci_parse' => ['resource|false', 'connection'=>'resource', 'sql'=>'string'], + 'oci_password_change' => ['bool', 'connection'=>'resource', 'username'=>'string', 'old_password'=>'string', 'new_password'=>'string'], + 'oci_pconnect' => ['resource|false', 'username'=>'string', 'password'=>'string', 'connection_string='=>'string', 'encoding='=>'string', 'session_mode='=>'int'], + 'oci_result' => ['mixed|false', 'statement'=>'resource', 'column'=>'mixed'], + 'oci_rollback' => ['bool', 'connection'=>'resource'], + 'oci_server_version' => ['string|false', 'connection'=>'resource'], + 'oci_set_action' => ['bool', 'connection'=>'resource', 'action'=>'string'], + 'oci_set_call_timeout' => ['bool', 'connection'=>'resource', 'timeout'=>'int'], + 'oci_set_client_identifier' => ['bool', 'connection'=>'resource', 'client_id'=>'string'], + 'oci_set_client_info' => ['bool', 'connection'=>'resource', 'client_info'=>'string'], + 'oci_set_db_operation' => ['bool', 'connection'=>'resource', 'action'=>'string'], + 'oci_set_edition' => ['bool', 'edition'=>'string'], + 'oci_set_module_name' => ['bool', 'connection'=>'resource', 'name'=>'string'], + 'oci_set_prefetch' => ['bool', 'statement'=>'resource', 'rows'=>'int'], + 'oci_statement_type' => ['string|false', 'statement'=>'resource'], + 'ocifetchinto' => ['int|bool', 'statement'=>'resource', '&w_result'=>'array', 'mode='=>'int'], + 'ocigetbufferinglob' => ['bool'], + 'ocisetbufferinglob' => ['bool', 'lob'=>'bool'], + 'octdec' => ['int|float', 'octal_string'=>'string'], + 'odbc_autocommit' => ['int|bool', 'odbc'=>'resource', 'enable='=>'bool'], + 'odbc_binmode' => ['bool', 'statement'=>'resource', 'mode'=>'int'], + 'odbc_close' => ['void', 'odbc'=>'resource'], + 'odbc_close_all' => ['void'], + 'odbc_columnprivileges' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'column'=>'string'], + 'odbc_columns' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'?string', 'table='=>'?string', 'column='=>'?string'], + 'odbc_commit' => ['bool', 'odbc'=>'resource'], + 'odbc_connect' => ['resource|false', 'dsn'=>'string', 'user'=>'string', 'password'=>'string', 'cursor_option='=>'int'], + 'odbc_cursor' => ['string', 'statement'=>'resource'], + 'odbc_data_source' => ['array|false', 'odbc'=>'resource', 'fetch_type'=>'int'], + 'odbc_do' => ['resource', 'odbc'=>'resource', 'query'=>'string', 'flags='=>'int'], + 'odbc_error' => ['string', 'odbc='=>'resource'], + 'odbc_errormsg' => ['string', 'odbc='=>'resource'], + 'odbc_exec' => ['resource', 'odbc'=>'resource', 'query'=>'string', 'flags='=>'int'], + 'odbc_execute' => ['bool', 'statement'=>'resource', 'params='=>'array'], + 'odbc_fetch_array' => ['array|false', 'statement'=>'resource', 'row='=>'int'], + 'odbc_fetch_into' => ['int', 'statement'=>'resource', '&w_array'=>'array', 'row='=>'int'], + 'odbc_fetch_object' => ['stdClass|false', 'statement'=>'resource', 'row='=>'int'], + 'odbc_fetch_row' => ['bool', 'statement'=>'resource', 'row='=>'int'], + 'odbc_field_len' => ['int|false', 'statement'=>'resource', 'field'=>'int'], + 'odbc_field_name' => ['string|false', 'statement'=>'resource', 'field'=>'int'], + 'odbc_field_num' => ['int|false', 'statement'=>'resource', 'field'=>'string'], + 'odbc_field_precision' => ['int', 'statement'=>'resource', 'field'=>'int'], + 'odbc_field_scale' => ['int|false', 'statement'=>'resource', 'field'=>'int'], + 'odbc_field_type' => ['string|false', 'statement'=>'resource', 'field'=>'int'], + 'odbc_foreignkeys' => ['resource|false', 'odbc'=>'resource', 'pk_catalog'=>'?string', 'pk_schema'=>'string', 'pk_table'=>'string', 'fk_catalog'=>'string', 'fk_schema'=>'string', 'fk_table'=>'string'], + 'odbc_free_result' => ['bool', 'statement'=>'resource'], + 'odbc_gettypeinfo' => ['resource', 'odbc'=>'resource', 'data_type='=>'int'], + 'odbc_longreadlen' => ['bool', 'statement'=>'resource', 'length'=>'int'], + 'odbc_next_result' => ['bool', 'statement'=>'resource'], + 'odbc_num_fields' => ['int', 'statement'=>'resource'], + 'odbc_num_rows' => ['int', 'statement'=>'resource'], + 'odbc_pconnect' => ['resource|false', 'dsn'=>'string', 'user'=>'string', 'password'=>'string', 'cursor_option='=>'int'], + 'odbc_prepare' => ['resource|false', 'odbc'=>'resource', 'query'=>'string'], + 'odbc_primarykeys' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string'], + 'odbc_procedurecolumns' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'string', 'schema'=>'string', 'procedure'=>'string', 'column'=>'string'], + 'odbc_procedures' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'string', 'schema'=>'string', 'procedure'=>'string'], + 'odbc_result' => ['mixed|false', 'statement'=>'resource', 'field'=>'mixed'], + 'odbc_result_all' => ['int|false', 'statement'=>'resource', 'format='=>'string'], + 'odbc_rollback' => ['bool', 'odbc'=>'resource'], + 'odbc_setoption' => ['bool', 'odbc'=>'resource', 'which'=>'int', 'option'=>'int', 'value'=>'int'], + 'odbc_specialcolumns' => ['resource|false', 'odbc'=>'resource', 'type'=>'int', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'scope'=>'int', 'nullable'=>'int'], + 'odbc_statistics' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string', 'unique'=>'int', 'accuracy'=>'int'], + 'odbc_tableprivileges' => ['resource|false', 'odbc'=>'resource', 'catalog'=>'?string', 'schema'=>'string', 'table'=>'string'], + 'odbc_tables' => ['resource|false', 'odbc'=>'resource', 'catalog='=>'?string', 'schema='=>'string', 'table='=>'string', 'types='=>'string'], + 'opcache_compile_file' => ['bool', 'filename'=>'string'], + 'opcache_get_configuration' => ['array'], + 'opcache_get_status' => ['array|false', 'include_scripts='=>'bool'], + 'opcache_invalidate' => ['bool', 'filename'=>'string', 'force='=>'bool'], + 'opcache_is_script_cached' => ['bool', 'filename'=>'string'], + 'opcache_reset' => ['bool'], + 'openal_buffer_create' => ['resource'], + 'openal_buffer_data' => ['bool', 'buffer'=>'resource', 'format'=>'int', 'data'=>'string', 'freq'=>'int'], + 'openal_buffer_destroy' => ['bool', 'buffer'=>'resource'], + 'openal_buffer_get' => ['int', 'buffer'=>'resource', 'property'=>'int'], + 'openal_buffer_loadwav' => ['bool', 'buffer'=>'resource', 'wavfile'=>'string'], + 'openal_context_create' => ['resource', 'device'=>'resource'], + 'openal_context_current' => ['bool', 'context'=>'resource'], + 'openal_context_destroy' => ['bool', 'context'=>'resource'], + 'openal_context_process' => ['bool', 'context'=>'resource'], + 'openal_context_suspend' => ['bool', 'context'=>'resource'], + 'openal_device_close' => ['bool', 'device'=>'resource'], + 'openal_device_open' => ['resource|false', 'device_desc='=>'string'], + 'openal_listener_get' => ['mixed', 'property'=>'int'], + 'openal_listener_set' => ['bool', 'property'=>'int', 'setting'=>'mixed'], + 'openal_source_create' => ['resource'], + 'openal_source_destroy' => ['bool', 'source'=>'resource'], + 'openal_source_get' => ['mixed', 'source'=>'resource', 'property'=>'int'], + 'openal_source_pause' => ['bool', 'source'=>'resource'], + 'openal_source_play' => ['bool', 'source'=>'resource'], + 'openal_source_rewind' => ['bool', 'source'=>'resource'], + 'openal_source_set' => ['bool', 'source'=>'resource', 'property'=>'int', 'setting'=>'mixed'], + 'openal_source_stop' => ['bool', 'source'=>'resource'], + 'openal_stream' => ['resource', 'source'=>'resource', 'format'=>'int', 'rate'=>'int'], + 'opendir' => ['resource|false', 'directory'=>'string', 'context='=>'resource'], + 'openlog' => ['true', 'prefix'=>'string', 'flags'=>'int', 'facility'=>'int'], + 'openssl_cipher_iv_length' => ['int|false', 'cipher_algo'=>'string'], + 'openssl_csr_export' => ['bool', 'csr'=>'string|resource', '&w_output'=>'string', 'no_text='=>'bool'], + 'openssl_csr_export_to_file' => ['bool', 'csr'=>'string|resource', 'output_filename'=>'string', 'no_text='=>'bool'], + 'openssl_csr_get_public_key' => ['resource|false', 'csr'=>'string|resource', 'short_names='=>'bool'], + 'openssl_csr_get_subject' => ['array|false', 'csr'=>'string|resource', 'short_names='=>'bool'], + 'openssl_csr_new' => ['resource|false', 'distinguished_names'=>'array', '&w_private_key'=>'resource', 'options='=>'array', 'extra_attributes='=>'array'], + 'openssl_csr_sign' => ['resource|false', 'csr'=>'string|resource', 'ca_certificate'=>'string|resource|null', 'private_key'=>'string|resource|array', 'days'=>'int', 'options='=>'array', 'serial='=>'int'], + 'openssl_decrypt' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', 'tag='=>'string', 'aad='=>'string'], + 'openssl_dh_compute_key' => ['string|false', 'public_key'=>'string', 'private_key'=>'resource'], + 'openssl_digest' => ['string|false', 'data'=>'string', 'digest_algo'=>'string', 'binary='=>'bool'], + 'openssl_encrypt' => ['string|false', 'data'=>'string', 'cipher_algo'=>'string', 'passphrase'=>'string', 'options='=>'int', 'iv='=>'string', '&w_tag='=>'string', 'aad='=>'string', 'tag_length='=>'int'], + 'openssl_error_string' => ['string|false'], + 'openssl_free_key' => ['void', 'key'=>'resource'], + 'openssl_get_cert_locations' => ['array'], + 'openssl_get_cipher_methods' => ['array', 'aliases='=>'bool'], + 'openssl_get_md_methods' => ['array', 'aliases='=>'bool'], + 'openssl_get_privatekey' => ['resource|false', 'private_key'=>'string', 'passphrase='=>'string'], + 'openssl_get_publickey' => ['resource|false', 'public_key'=>'resource|string'], + 'openssl_open' => ['bool', 'data'=>'string', '&w_output'=>'string', 'encrypted_key'=>'string', 'private_key'=>'string|array|resource', 'cipher_algo='=>'string', 'iv='=>'string'], + 'openssl_pbkdf2' => ['string|false', 'password'=>'string', 'salt'=>'string', 'key_length'=>'int', 'iterations'=>'int', 'digest_algo='=>'string'], + 'openssl_pkcs12_export' => ['bool', 'certificate'=>'string|resource', '&w_output'=>'string', 'private_key'=>'string|array|resource', 'passphrase'=>'string', 'options='=>'array'], + 'openssl_pkcs12_export_to_file' => ['bool', 'certificate'=>'string|resource', 'output_filename'=>'string', 'private_key'=>'string|array|resource', 'passphrase'=>'string', 'options='=>'array'], + 'openssl_pkcs12_read' => ['bool', 'pkcs12'=>'string', '&w_certificates'=>'array', 'passphrase'=>'string'], + 'openssl_pkcs7_decrypt' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource', 'private_key='=>'string|resource|array'], + 'openssl_pkcs7_encrypt' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource|array', 'headers'=>'array', 'flags='=>'int', 'cipher_algo='=>'int'], + 'openssl_pkcs7_read' => ['bool', 'input_filename'=>'string', '&w_certificates'=>'array'], + 'openssl_pkcs7_sign' => ['bool', 'input_filename'=>'string', 'output_filename'=>'string', 'certificate'=>'string|resource', 'private_key'=>'string|resource|array', 'headers'=>'array', 'flags='=>'int', 'untrusted_certificates_filename='=>'string'], + 'openssl_pkcs7_verify' => ['bool|int', 'input_filename'=>'string', 'flags'=>'int', 'signers_certificates_filename='=>'string', 'ca_info='=>'array', 'untrusted_certificates_filename='=>'string', 'content='=>'string', 'output_filename='=>'string'], + 'openssl_pkey_export' => ['bool', 'key'=>'resource', '&w_output'=>'string', 'passphrase='=>'string|null', 'options='=>'array'], + 'openssl_pkey_export_to_file' => ['bool', 'key'=>'resource|string|array', 'output_filename'=>'string', 'passphrase='=>'string|null', 'options='=>'array'], + 'openssl_pkey_free' => ['void', 'key'=>'resource'], + 'openssl_pkey_get_details' => ['array|false', 'key'=>'resource'], + 'openssl_pkey_get_private' => ['resource|false', 'private_key'=>'string', 'passphrase='=>'string'], + 'openssl_pkey_get_public' => ['resource|false', 'public_key'=>'resource|string'], + 'openssl_pkey_new' => ['resource|false', 'options='=>'array'], + 'openssl_private_decrypt' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'private_key'=>'string|resource|array', 'padding='=>'int'], + 'openssl_private_encrypt' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'private_key'=>'string|resource|array', 'padding='=>'int'], + 'openssl_public_decrypt' => ['bool', 'data'=>'string', '&w_decrypted_data'=>'string', 'public_key'=>'string|resource', 'padding='=>'int'], + 'openssl_public_encrypt' => ['bool', 'data'=>'string', '&w_encrypted_data'=>'string', 'public_key'=>'string|resource', 'padding='=>'int'], + 'openssl_random_pseudo_bytes' => ['string|false', 'length'=>'int', '&w_strong_result='=>'bool'], + 'openssl_seal' => ['int|false', 'data'=>'string', '&w_sealed_data'=>'string', '&w_encrypted_keys'=>'array', 'public_key'=>'array', 'cipher_algo='=>'string', '&rw_iv='=>'string'], + 'openssl_sign' => ['bool', 'data'=>'string', '&w_signature'=>'string', 'private_key'=>'resource|string', 'algorithm='=>'int|string'], + 'openssl_spki_export' => ['string|false', 'spki'=>'string'], + 'openssl_spki_export_challenge' => ['string|false', 'spki'=>'string'], + 'openssl_spki_new' => ['?string', 'private_key'=>'resource', 'challenge'=>'string', 'digest_algo='=>'int'], + 'openssl_spki_verify' => ['bool', 'spki'=>'string'], + 'openssl_verify' => ['-1|0|1', 'data'=>'string', 'signature'=>'string', 'public_key'=>'resource|string', 'algorithm='=>'int|string'], + 'openssl_x509_check_private_key' => ['bool', 'certificate'=>'string|resource', 'private_key'=>'string|resource|array'], + 'openssl_x509_checkpurpose' => ['bool|int', 'certificate'=>'string|resource', 'purpose'=>'int', 'ca_info='=>'array', 'untrusted_certificates_file='=>'string'], + 'openssl_x509_export' => ['bool', 'certificate'=>'string|resource', '&w_output'=>'string', 'no_text='=>'bool'], + 'openssl_x509_export_to_file' => ['bool', 'certificate'=>'string|resource', 'output_filename'=>'string', 'no_text='=>'bool'], + 'openssl_x509_fingerprint' => ['string|false', 'certificate'=>'string|resource', 'digest_algo='=>'string', 'binary='=>'bool'], + 'openssl_x509_free' => ['void', 'certificate'=>'resource'], + 'openssl_x509_parse' => ['array|false', 'certificate'=>'string|resource', 'short_names='=>'bool'], + 'openssl_x509_read' => ['resource|false', 'certificate'=>'string|resource'], + 'ord' => ['int', 'character'=>'string'], + 'output_add_rewrite_var' => ['bool', 'name'=>'string', 'value'=>'string'], + 'output_cache_disable' => ['void'], + 'output_cache_disable_compression' => ['void'], + 'output_cache_exists' => ['bool', 'key'=>'string', 'lifetime'=>'int'], + 'output_cache_fetch' => ['string', 'key'=>'string', 'function'=>'', 'lifetime'=>'int'], + 'output_cache_get' => ['mixed|false', 'key'=>'string', 'lifetime'=>'int'], + 'output_cache_output' => ['string', 'key'=>'string', 'function'=>'', 'lifetime'=>'int'], + 'output_cache_put' => ['bool', 'key'=>'string', 'data'=>'mixed'], + 'output_cache_remove' => ['bool', 'filename'=>''], + 'output_cache_remove_key' => ['bool', 'key'=>'string'], + 'output_cache_remove_url' => ['bool', 'url'=>'string'], + 'output_cache_stop' => ['void'], + 'output_reset_rewrite_vars' => ['bool'], + 'outputformatObj::getOption' => ['string', 'property_name'=>'string'], + 'outputformatObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'outputformatObj::setOption' => ['void', 'property_name'=>'string', 'new_value'=>'string'], + 'outputformatObj::validate' => ['int'], + 'overload' => ['', 'class_name'=>'string'], + 'override_function' => ['bool', 'function_name'=>'string', 'function_args'=>'string', 'function_code'=>'string'], + 'pack' => ['string|false', 'format'=>'string', '...values='=>'mixed'], + 'parallel\Future::done' => ['bool'], + 'parallel\Future::select' => ['mixed', '&resolving'=>'parallel\Future[]', '&w_resolved'=>'parallel\Future[]', '&w_errored'=>'parallel\Future[]', '&w_timedout='=>'parallel\Future[]', 'timeout='=>'int'], + 'parallel\Future::value' => ['mixed', 'timeout='=>'int'], + 'parallel\Runtime::__construct' => ['void', 'arg'=>'string|array'], + 'parallel\Runtime::__construct\'1' => ['void', 'bootstrap'=>'string', 'configuration'=>'array'], + 'parallel\Runtime::close' => ['void'], + 'parallel\Runtime::kill' => ['void'], + 'parallel\Runtime::run' => ['?parallel\Future', 'closure'=>'Closure', 'args='=>'array'], + 'parle\rlexer::insertMacro' => ['void', 'name'=>'string', 'regex'=>'string'], + 'parse_ini_file' => ['array|false', 'filename'=>'string', 'process_sections='=>'bool', 'scanner_mode='=>'int'], + 'parse_ini_string' => ['array|false', 'ini_string'=>'string', 'process_sections='=>'bool', 'scanner_mode='=>'int'], + 'parse_str' => ['void', 'string'=>'string', '&w_result='=>'array'], + 'parse_url' => ['int|string|array|null|false', 'url'=>'string', 'component='=>'int'], + 'parsekit_compile_file' => ['array', 'filename'=>'string', 'errors='=>'array', 'options='=>'int'], + 'parsekit_compile_string' => ['array', 'phpcode'=>'string', 'errors='=>'array', 'options='=>'int'], + 'parsekit_func_arginfo' => ['array', 'function'=>'mixed'], + 'passthru' => ['void', 'command'=>'string', '&w_result_code='=>'int'], + 'password_get_info' => ['array', 'hash'=>'string'], + 'password_hash' => ['string|false', 'password'=>'string', 'algo'=>'int', 'options='=>'array'], + 'password_make_salt' => ['bool', 'password'=>'string', 'hash'=>'string'], + 'password_needs_rehash' => ['bool', 'hash'=>'string', 'algo'=>'int', 'options='=>'array'], + 'password_verify' => ['bool', 'password'=>'string', 'hash'=>'string'], + 'pathinfo' => ['array|string', 'path'=>'string', 'flags='=>'int'], + 'pclose' => ['int', 'handle'=>'resource'], + 'pcnlt_sigwaitinfo' => ['int', 'set'=>'array', '&w_siginfo'=>'array'], + 'pcntl_alarm' => ['int', 'seconds'=>'int'], + 'pcntl_errno' => ['int'], + 'pcntl_exec' => ['null|false', 'path'=>'string', 'args='=>'array', 'env_vars='=>'array'], + 'pcntl_fork' => ['int'], + 'pcntl_get_last_error' => ['int'], + 'pcntl_getpriority' => ['int', 'process_id='=>'int', 'mode='=>'int'], + 'pcntl_setpriority' => ['bool', 'priority'=>'int', 'process_id='=>'int', 'mode='=>'int'], + 'pcntl_signal' => ['bool', 'signal'=>'int', 'handler'=>'callable():void|callable(int):void|callable(int,array):void|int', 'restart_syscalls='=>'bool'], + 'pcntl_signal_dispatch' => ['bool'], + 'pcntl_sigprocmask' => ['bool', 'mode'=>'int', 'signals'=>'array', '&w_old_signals='=>'array'], + 'pcntl_sigtimedwait' => ['int', 'signals'=>'array', '&w_info='=>'array', 'seconds='=>'int', 'nanoseconds='=>'int'], + 'pcntl_sigwaitinfo' => ['int', 'signals'=>'array', '&w_info='=>'array'], + 'pcntl_strerror' => ['string', 'error_code'=>'int'], + 'pcntl_wait' => ['int', '&w_status'=>'int', 'flags='=>'int', '&w_resource_usage='=>'array'], + 'pcntl_waitpid' => ['int', 'process_id'=>'int', '&w_status'=>'int', 'flags='=>'int', '&w_resource_usage='=>'array'], + 'pcntl_wexitstatus' => ['int', 'status'=>'int'], + 'pcntl_wifcontinued' => ['bool', 'status'=>'int'], + 'pcntl_wifexited' => ['bool', 'status'=>'int'], + 'pcntl_wifsignaled' => ['bool', 'status'=>'int'], + 'pcntl_wifstopped' => ['bool', 'status'=>'int'], + 'pcntl_wstopsig' => ['int', 'status'=>'int'], + 'pcntl_wtermsig' => ['int', 'status'=>'int'], + 'pdo_drivers' => ['array'], + 'pfsockopen' => ['resource|false', 'hostname'=>'string', 'port='=>'int', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float'], + 'pg_affected_rows' => ['int', 'result'=>'resource'], + 'pg_cancel_query' => ['bool', 'connection'=>'resource'], + 'pg_client_encoding' => ['string', 'connection='=>'resource'], + 'pg_close' => ['bool', 'connection='=>'resource'], + 'pg_connect' => ['resource|false', 'connection_string'=>'string', 'flags='=>'int'], + 'pg_connect_poll' => ['int', 'connection'=>'resource'], + 'pg_connection_busy' => ['bool', 'connection'=>'resource'], + 'pg_connection_reset' => ['bool', 'connection'=>'resource'], + 'pg_connection_status' => ['int', 'connection'=>'resource'], + 'pg_consume_input' => ['bool', 'connection'=>'resource'], + 'pg_convert' => ['array|false', 'connection'=>'resource', 'table_name'=>'string', 'values'=>'array', 'flags='=>'int'], + 'pg_copy_from' => ['bool', 'connection'=>'resource', 'table_name'=>'string', 'rows'=>'array', 'separator='=>'string', 'null_as='=>'string'], + 'pg_copy_to' => ['array|false', 'connection'=>'resource', 'table_name'=>'string', 'separator='=>'string', 'null_as='=>'string'], + 'pg_dbname' => ['string', 'connection='=>'resource'], + 'pg_delete' => ['string|bool', 'connection'=>'resource', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int'], + 'pg_end_copy' => ['bool', 'connection='=>'resource'], + 'pg_escape_bytea' => ['string', 'connection'=>'resource', 'string'=>'string'], + 'pg_escape_bytea\'1' => ['string', 'connection'=>'string'], + 'pg_escape_identifier' => ['string|false', 'connection'=>'resource', 'string'=>'string'], + 'pg_escape_identifier\'1' => ['string|false', 'connection'=>'string'], + 'pg_escape_literal' => ['string|false', 'connection'=>'resource', 'string'=>'string'], + 'pg_escape_literal\'1' => ['string|false', 'connection'=>'string'], + 'pg_escape_string' => ['string', 'connection'=>'resource', 'string'=>'string'], + 'pg_escape_string\'1' => ['string', 'connection'=>'string'], + 'pg_exec' => ['resource|false', 'connection'=>'resource', 'query'=>'string'], + 'pg_exec\'1' => ['resource|false', 'connection'=>'string'], + 'pg_execute' => ['resource|false', 'connection'=>'resource', 'statement_name'=>'string', 'params'=>'array'], + 'pg_execute\'1' => ['resource|false', 'connection'=>'string', 'statement_name'=>'array'], + 'pg_fetch_all' => ['array', 'result'=>'resource'], + 'pg_fetch_all_columns' => ['array', 'result'=>'resource', 'field='=>'int'], + 'pg_fetch_array' => ['array|false', 'result'=>'resource', 'row='=>'?int', 'mode='=>'int'], + 'pg_fetch_assoc' => ['array|false', 'result'=>'resource', 'row='=>'?int'], + 'pg_fetch_object' => ['object|false', 'result'=>'resource', 'row='=>'?int', 'class='=>'string', 'constructor_args='=>'array'], + 'pg_fetch_result' => ['string|false|null', 'result'=>'resource', 'row'=>'string|int'], + 'pg_fetch_result\'1' => ['string|false|null', 'result'=>'resource', 'row'=>'?int', 'field'=>'string|int'], + 'pg_fetch_row' => ['array|false', 'result'=>'resource', 'row='=>'?int', 'mode='=>'int'], + 'pg_field_is_null' => ['int|false', 'result'=>'resource', 'row'=>'string|int'], + 'pg_field_is_null\'1' => ['int|false', 'result'=>'resource', 'row'=>'int', 'field'=>'string|int'], + 'pg_field_name' => ['string', 'result'=>'resource', 'field'=>'int'], + 'pg_field_num' => ['int', 'result'=>'resource', 'field'=>'string'], + 'pg_field_prtlen' => ['int|false', 'result'=>'resource', 'row'=>'string|int'], + 'pg_field_prtlen\'1' => ['int|false', 'result'=>'resource', 'row'=>'int', 'field'=>'string|int'], + 'pg_field_size' => ['int', 'result'=>'resource', 'field'=>'int'], + 'pg_field_table' => ['string|int|false', 'result'=>'resource', 'field'=>'int', 'oid_only='=>'bool'], + 'pg_field_type' => ['string', 'result'=>'resource', 'field'=>'int'], + 'pg_field_type_oid' => ['int|string', 'result'=>'resource', 'field'=>'int'], + 'pg_flush' => ['int|bool', 'connection'=>'resource'], + 'pg_free_result' => ['bool', 'result'=>'resource'], + 'pg_get_notify' => ['array|false', 'connection'=>'resource', 'mode='=>'int'], + 'pg_get_pid' => ['int', 'connection'=>'resource'], + 'pg_get_result' => ['resource|false', 'connection'=>'resource'], + 'pg_host' => ['string', 'connection='=>'resource'], + 'pg_insert' => ['resource|string|false', 'connection'=>'resource', 'table_name'=>'string', 'values'=>'array', 'flags='=>'int'], + 'pg_last_error' => ['string', 'connection='=>'resource'], + 'pg_last_notice' => ['string|array|bool', 'connection'=>'resource', 'mode='=>'int'], + 'pg_last_oid' => ['string|int|false', 'result'=>'resource'], + 'pg_lo_close' => ['bool', 'lob'=>'resource'], + 'pg_lo_create' => ['int|string|false', 'connection='=>'resource', 'oid='=>'int|string'], + 'pg_lo_export' => ['bool', 'connection'=>'resource', 'oid'=>'int|string', 'filename'=>'string'], + 'pg_lo_export\'1' => ['bool', 'connection'=>'int|string', 'oid'=>'string'], + 'pg_lo_import' => ['int|string|false', 'connection'=>'resource', 'filename'=>'string', 'oid'=>'string|int'], + 'pg_lo_import\'1' => ['int|string|false', 'connection'=>'string', 'filename'=>'string|int'], + 'pg_lo_open' => ['resource|false', 'connection'=>'resource', 'oid'=>'int|string', 'mode'=>'string'], + 'pg_lo_open\'1' => ['resource|false', 'connection'=>'int|string', 'oid'=>'string'], + 'pg_lo_read' => ['string|false', 'lob'=>'resource', 'length='=>'int'], + 'pg_lo_read_all' => ['int', 'lob'=>'resource'], + 'pg_lo_seek' => ['bool', 'lob'=>'resource', 'offset'=>'int', 'whence='=>'int'], + 'pg_lo_tell' => ['int', 'lob'=>'resource'], + 'pg_lo_truncate' => ['bool', 'lob'=>'resource', 'size'=>'int'], + 'pg_lo_unlink' => ['bool', 'connection'=>'resource', 'oid'=>'int|string'], + 'pg_lo_unlink\'1' => ['bool', 'connection'=>'int|string'], + 'pg_lo_write' => ['int|false', 'lob'=>'resource', 'data'=>'string', 'length='=>'int'], + 'pg_meta_data' => ['array|false', 'connection'=>'resource', 'table_name'=>'string', 'extended='=>'bool'], + 'pg_num_fields' => ['int', 'result'=>'resource'], + 'pg_num_rows' => ['int', 'result'=>'resource'], + 'pg_options' => ['string', 'connection='=>'resource'], + 'pg_parameter_status' => ['string|false', 'connection'=>'resource', 'name'=>'string'], + 'pg_parameter_status\'1' => ['string|false', 'connection'=>'string'], + 'pg_pconnect' => ['resource|false', 'connection_string'=>'string', 'flags='=>'int'], + 'pg_ping' => ['bool', 'connection='=>'resource'], + 'pg_port' => ['string', 'connection='=>'resource'], + 'pg_prepare' => ['resource|false', 'connection'=>'resource', 'statement_name'=>'string', 'query'=>'string'], + 'pg_prepare\'1' => ['resource|false', 'connection'=>'string', 'statement_name'=>'string'], + 'pg_put_line' => ['bool', 'connection'=>'resource', 'data'=>'string'], + 'pg_put_line\'1' => ['bool', 'connection'=>'string'], + 'pg_query' => ['resource|false', 'connection'=>'resource', 'query'=>'string'], + 'pg_query\'1' => ['resource|false', 'connection'=>'string'], + 'pg_query_params' => ['resource|false', 'connection'=>'resource', 'query'=>'string', 'params'=>'array'], + 'pg_query_params\'1' => ['resource|false', 'connection'=>'string', 'query'=>'array'], + 'pg_result_error' => ['string|false', 'result'=>'resource'], + 'pg_result_error_field' => ['string|false|null', 'result'=>'resource', 'field_code'=>'int'], + 'pg_result_seek' => ['bool', 'result'=>'resource', 'row'=>'int'], + 'pg_result_status' => ['string|int', 'result'=>'resource', 'mode='=>'int'], + 'pg_select' => ['string|array|false', 'connection'=>'resource', 'table_name'=>'string', 'conditions'=>'array', 'flags='=>'int'], + 'pg_send_execute' => ['bool|int', 'connection'=>'resource', 'statement_name'=>'string', 'params'=>'array'], + 'pg_send_prepare' => ['bool|int', 'connection'=>'resource', 'statement_name'=>'string', 'query'=>'string'], + 'pg_send_query' => ['bool|int', 'connection'=>'resource', 'query'=>'string'], + 'pg_send_query_params' => ['bool|int', 'connection'=>'resource', 'query'=>'string', 'params'=>'array'], + 'pg_set_client_encoding' => ['int', 'connection'=>'resource', 'encoding'=>'string'], + 'pg_set_client_encoding\'1' => ['int', 'connection'=>'string'], + 'pg_set_error_verbosity' => ['int|false', 'connection'=>'resource', 'verbosity'=>'int'], + 'pg_set_error_verbosity\'1' => ['int|false', 'connection'=>'int'], + 'pg_socket' => ['resource|false', 'connection'=>'resource'], + 'pg_trace' => ['bool', 'filename'=>'string', 'mode='=>'string', 'connection='=>'resource'], + 'pg_transaction_status' => ['int', 'connection'=>'resource'], + 'pg_tty' => ['string', 'connection='=>'resource'], + 'pg_unescape_bytea' => ['string', 'string'=>'string'], + 'pg_untrace' => ['bool', 'connection='=>'resource'], + 'pg_update' => ['string|bool', 'connection'=>'resource', 'table_name'=>'string', 'values'=>'array', 'conditions'=>'array', 'flags='=>'int'], + 'pg_version' => ['array', 'connection='=>'resource'], + 'phardata::setMetadata' => ['void', 'metadata'=>'mixed'], + 'phardata::setSignatureAlgorithm' => ['void', 'sigtype'=>'int'], + 'phdfs::__construct' => ['void', 'ip'=>'string', 'port'=>'string'], + 'phdfs::__destruct' => ['void'], + 'phdfs::connect' => ['bool'], + 'phdfs::copy' => ['bool', 'source_file'=>'string', 'destination_file'=>'string'], + 'phdfs::create_directory' => ['bool', 'path'=>'string'], + 'phdfs::delete' => ['bool', 'path'=>'string'], + 'phdfs::disconnect' => ['bool'], + 'phdfs::exists' => ['bool', 'path'=>'string'], + 'phdfs::file_info' => ['array', 'path'=>'string'], + 'phdfs::list_directory' => ['array', 'path'=>'string'], + 'phdfs::read' => ['string', 'path'=>'string', 'length='=>'string'], + 'phdfs::rename' => ['bool', 'old_path'=>'string', 'new_path'=>'string'], + 'phdfs::tell' => ['int', 'path'=>'string'], + 'phdfs::write' => ['bool', 'path'=>'string', 'buffer'=>'string', 'mode='=>'string'], + 'php_check_syntax' => ['bool', 'filename'=>'string', 'error_message='=>'string'], + 'php_ini_loaded_file' => ['string|false'], + 'php_ini_scanned_files' => ['string|false'], + 'php_logo_guid' => ['string'], + 'php_sapi_name' => ['string'], + 'php_strip_whitespace' => ['string', 'filename'=>'string'], + 'php_uname' => ['string', 'mode='=>'string'], + 'php_user_filter::filter' => ['int', 'in'=>'resource', 'out'=>'resource', '&rw_consumed'=>'int', 'closing'=>'bool'], + 'php_user_filter::onClose' => ['void'], + 'php_user_filter::onCreate' => ['bool'], + 'phpcredits' => ['true', 'flags='=>'int'], + 'phpdbg_break_file' => ['void', 'file'=>'string', 'line'=>'int'], + 'phpdbg_break_function' => ['void', 'function'=>'string'], + 'phpdbg_break_method' => ['void', 'class'=>'string', 'method'=>'string'], + 'phpdbg_break_next' => ['void'], + 'phpdbg_clear' => ['void'], + 'phpdbg_color' => ['void', 'element'=>'int', 'color'=>'string'], + 'phpdbg_end_oplog' => ['array', 'options='=>'array'], + 'phpdbg_exec' => ['mixed', 'context='=>'string'], + 'phpdbg_get_executable' => ['array', 'options='=>'array'], + 'phpdbg_prompt' => ['void', 'string'=>'string'], + 'phpdbg_start_oplog' => ['void'], + 'phpinfo' => ['true', 'flags='=>'int'], + 'phpversion' => ['string|false', 'extension='=>'string'], + 'pht\AtomicInteger::__construct' => ['void', 'value='=>'int'], + 'pht\AtomicInteger::dec' => ['void'], + 'pht\AtomicInteger::get' => ['int'], + 'pht\AtomicInteger::inc' => ['void'], + 'pht\AtomicInteger::lock' => ['void'], + 'pht\AtomicInteger::set' => ['void', 'value'=>'int'], + 'pht\AtomicInteger::unlock' => ['void'], + 'pht\HashTable::lock' => ['void'], + 'pht\HashTable::size' => ['int'], + 'pht\HashTable::unlock' => ['void'], + 'pht\Queue::front' => ['mixed'], + 'pht\Queue::lock' => ['void'], + 'pht\Queue::pop' => ['mixed'], + 'pht\Queue::push' => ['void', 'value'=>'mixed'], + 'pht\Queue::size' => ['int'], + 'pht\Queue::unlock' => ['void'], + 'pht\Runnable::run' => ['void'], + 'pht\Vector::__construct' => ['void', 'size='=>'int', 'value='=>'mixed'], + 'pht\Vector::deleteAt' => ['void', 'offset'=>'int'], + 'pht\Vector::insertAt' => ['void', 'value'=>'mixed', 'offset'=>'int'], + 'pht\Vector::lock' => ['void'], + 'pht\Vector::pop' => ['mixed'], + 'pht\Vector::push' => ['void', 'value'=>'mixed'], + 'pht\Vector::resize' => ['void', 'size'=>'int', 'value='=>'mixed'], + 'pht\Vector::shift' => ['mixed'], + 'pht\Vector::size' => ['int'], + 'pht\Vector::unlock' => ['void'], + 'pht\Vector::unshift' => ['void', 'value'=>'mixed'], + 'pht\Vector::updateAt' => ['void', 'value'=>'mixed', 'offset'=>'int'], + 'pht\thread::addClassTask' => ['void', 'className'=>'string', '...ctorArgs='=>'mixed'], + 'pht\thread::addFileTask' => ['void', 'fileName'=>'string', '...globals='=>'mixed'], + 'pht\thread::addFunctionTask' => ['void', 'func'=>'callable', '...funcArgs='=>'mixed'], + 'pht\thread::join' => ['void'], + 'pht\thread::start' => ['void'], + 'pht\thread::taskCount' => ['int'], + 'pht\threaded::lock' => ['void'], + 'pht\threaded::unlock' => ['void'], + 'pi' => ['float'], + 'png2wbmp' => ['bool', 'pngname'=>'string', 'wbmpname'=>'string', 'dest_height'=>'int', 'dest_width'=>'int', 'threshold'=>'int'], + 'pointObj::__construct' => ['void'], + 'pointObj::distanceToLine' => ['float', 'p1'=>'pointObj', 'p2'=>'pointObj'], + 'pointObj::distanceToPoint' => ['float', 'poPoint'=>'pointObj'], + 'pointObj::distanceToShape' => ['float', 'shape'=>'shapeObj'], + 'pointObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj', 'class_index'=>'int', 'text'=>'string'], + 'pointObj::ms_newPointObj' => ['pointObj'], + 'pointObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], + 'pointObj::setXY' => ['int', 'x'=>'float', 'y'=>'float', 'm'=>'float'], + 'pointObj::setXYZ' => ['int', 'x'=>'float', 'y'=>'float', 'z'=>'float', 'm'=>'float'], + 'popen' => ['resource|false', 'command'=>'string', 'mode'=>'string'], + 'pos' => ['mixed', 'array'=>'array'], + 'posix_access' => ['bool', 'filename'=>'string', 'flags='=>'int'], + 'posix_ctermid' => ['string|false'], + 'posix_errno' => ['int'], + 'posix_get_last_error' => ['int'], + 'posix_getcwd' => ['string|false'], + 'posix_getegid' => ['int'], + 'posix_geteuid' => ['int'], + 'posix_getgid' => ['int'], + 'posix_getgrgid' => ['array{name: string, passwd: string, gid: int, members: list}|false', 'group_id'=>'int'], + 'posix_getgrnam' => ['array{name: string, passwd: string, gid: int, members: list}|false', 'name'=>'string'], + 'posix_getgroups' => ['list|false'], + 'posix_getlogin' => ['string|false'], + 'posix_getpgid' => ['int|false', 'process_id'=>'int'], + 'posix_getpgrp' => ['int'], + 'posix_getpid' => ['int'], + 'posix_getppid' => ['int'], + 'posix_getpwnam' => ['array{name: string, passwd: string, uid: int, gid: int, gecos: string, dir: string, shell: string}|false', 'username'=>'string'], + 'posix_getpwuid' => ['array{name: string, passwd: string, uid: int, gid: int, gecos: string, dir: string, shell: string}|false', 'user_id'=>'int'], + 'posix_getrlimit' => ['array{"soft core": string, "hard core": string, "soft data": string, "hard data": string, "soft stack": integer, "hard stack": string, "soft totalmem": string, "hard totalmem": string, "soft rss": string, "hard rss": string, "soft maxproc": integer, "hard maxproc": integer, "soft memlock": integer, "hard memlock": integer, "soft cpu": string, "hard cpu": string, "soft filesize": string, "hard filesize": string, "soft openfiles": integer, "hard openfiles": integer}|false'], + 'posix_getsid' => ['int|false', 'process_id'=>'int'], + 'posix_getuid' => ['int'], + 'posix_initgroups' => ['bool', 'username'=>'string', 'group_id'=>'int'], + 'posix_isatty' => ['bool', 'file_descriptor'=>'resource|int'], + 'posix_kill' => ['bool', 'process_id'=>'int', 'signal'=>'int'], + 'posix_mkfifo' => ['bool', 'filename'=>'string', 'permissions'=>'int'], + 'posix_mknod' => ['bool', 'filename'=>'string', 'flags'=>'int', 'major='=>'int', 'minor='=>'int'], + 'posix_setegid' => ['bool', 'group_id'=>'int'], + 'posix_seteuid' => ['bool', 'user_id'=>'int'], + 'posix_setgid' => ['bool', 'group_id'=>'int'], + 'posix_setpgid' => ['bool', 'process_id'=>'int', 'process_group_id'=>'int'], + 'posix_setrlimit' => ['bool', 'resource'=>'int', 'soft_limit'=>'int', 'hard_limit'=>'int'], + 'posix_setsid' => ['int'], + 'posix_setuid' => ['bool', 'user_id'=>'int'], + 'posix_strerror' => ['string', 'error_code'=>'int'], + 'posix_times' => ['array{ticks: int, utime: int, stime: int, cutime: int, cstime: int}|false'], + 'posix_ttyname' => ['string|false', 'file_descriptor'=>'resource|int'], + 'posix_uname' => ['array{sysname: string, nodename: string, release: string, version: string, machine: string, domainname: string}|false'], + 'pow' => ['float|int', 'num'=>'int|float', 'exponent'=>'int|float'], + 'preg_filter' => ['string|string[]|null', 'pattern'=>'string|string[]', 'replacement'=>'string|string[]', 'subject'=>'string|string[]', 'limit='=>'int', '&w_count='=>'int'], + 'preg_grep' => ['array|false', 'pattern'=>'string', 'array'=>'array', 'flags='=>'int'], + 'preg_last_error' => ['int'], + 'preg_match' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'string[]', 'flags='=>'0', 'offset='=>'int'], + 'preg_match\'1' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'array', 'flags='=>'int', 'offset='=>'int'], + 'preg_match_all' => ['int|false', 'pattern'=>'string', 'subject'=>'string', '&w_matches='=>'array', 'flags='=>'int', 'offset='=>'int'], + 'preg_quote' => ['string', 'str'=>'string', 'delimiter='=>'string'], + 'preg_replace' => ['string|string[]|null', 'pattern'=>'string|array', 'replacement'=>'string|array', 'subject'=>'string|array', 'limit='=>'int', '&w_count='=>'int'], + 'preg_replace_callback' => ['string|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int'], + 'preg_replace_callback\'1' => ['string[]|null', 'pattern'=>'string|array', 'callback'=>'callable(string[]):string', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int'], + 'preg_replace_callback_array' => ['string|null', 'pattern'=>'array', 'subject'=>'string', 'limit='=>'int', '&w_count='=>'int'], + 'preg_replace_callback_array\'1' => ['string[]|null', 'pattern'=>'array', 'subject'=>'string[]', 'limit='=>'int', '&w_count='=>'int'], + 'preg_split' => ['list|false', 'pattern'=>'string', 'subject'=>'string', 'limit'=>'int', 'flags='=>'null'], + 'preg_split\'1' => ['list|list>|false', 'pattern'=>'string', 'subject'=>'string', 'limit='=>'int', 'flags='=>'int'], + 'prev' => ['mixed', '&r_array'=>'array|object'], + 'print' => ['int', 'arg'=>'string'], + 'print_r' => ['string', 'value'=>'mixed'], + 'print_r\'1' => ['true', 'value'=>'mixed', 'return='=>'bool'], + 'printf' => ['int', 'format'=>'string', '...values='=>'string|int|float'], + 'proc_close' => ['int', 'process'=>'resource'], + 'proc_get_status' => ['array{command: string, pid: int, running: bool, signaled: bool, stopped: bool, exitcode: int, termsig: int, stopsig: int}|false', 'process'=>'resource'], + 'proc_nice' => ['bool', 'priority'=>'int'], + 'proc_open' => ['resource|false', 'command'=>'string', 'descriptor_spec'=>'array', '&pipes'=>'resource[]', 'cwd='=>'?string', 'env_vars='=>'?array', 'options='=>'?array'], + 'proc_terminate' => ['bool', 'process'=>'resource', 'signal='=>'int'], + 'projectionObj::__construct' => ['void', 'projectionString'=>'string'], + 'projectionObj::getUnits' => ['int'], + 'projectionObj::ms_newProjectionObj' => ['projectionObj', 'projectionString'=>'string'], + 'property_exists' => ['bool', 'object_or_class'=>'object|string', 'property'=>'string'], + 'ps_add_bookmark' => ['int', 'psdoc'=>'resource', 'text'=>'string', 'parent='=>'int', 'open='=>'int'], + 'ps_add_launchlink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string'], + 'ps_add_locallink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'page'=>'int', 'dest'=>'string'], + 'ps_add_note' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'contents'=>'string', 'title'=>'string', 'icon'=>'string', 'open'=>'int'], + 'ps_add_pdflink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'filename'=>'string', 'page'=>'int', 'dest'=>'string'], + 'ps_add_weblink' => ['bool', 'psdoc'=>'resource', 'llx'=>'float', 'lly'=>'float', 'urx'=>'float', 'ury'=>'float', 'url'=>'string'], + 'ps_arc' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'ps_arcn' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float', 'alpha'=>'float', 'beta'=>'float'], + 'ps_begin_page' => ['bool', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float'], + 'ps_begin_pattern' => ['int', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float', 'xstep'=>'float', 'ystep'=>'float', 'painttype'=>'int'], + 'ps_begin_template' => ['int', 'psdoc'=>'resource', 'width'=>'float', 'height'=>'float'], + 'ps_circle' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'radius'=>'float'], + 'ps_clip' => ['bool', 'psdoc'=>'resource'], + 'ps_close' => ['bool', 'psdoc'=>'resource'], + 'ps_close_image' => ['void', 'psdoc'=>'resource', 'imageid'=>'int'], + 'ps_closepath' => ['bool', 'psdoc'=>'resource'], + 'ps_closepath_stroke' => ['bool', 'psdoc'=>'resource'], + 'ps_continue_text' => ['bool', 'psdoc'=>'resource', 'text'=>'string'], + 'ps_curveto' => ['bool', 'psdoc'=>'resource', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'ps_delete' => ['bool', 'psdoc'=>'resource'], + 'ps_end_page' => ['bool', 'psdoc'=>'resource'], + 'ps_end_pattern' => ['bool', 'psdoc'=>'resource'], + 'ps_end_template' => ['bool', 'psdoc'=>'resource'], + 'ps_fill' => ['bool', 'psdoc'=>'resource'], + 'ps_fill_stroke' => ['bool', 'psdoc'=>'resource'], + 'ps_findfont' => ['int', 'psdoc'=>'resource', 'fontname'=>'string', 'encoding'=>'string', 'embed='=>'bool'], + 'ps_get_buffer' => ['string', 'psdoc'=>'resource'], + 'ps_get_parameter' => ['string', 'psdoc'=>'resource', 'name'=>'string', 'modifier='=>'float'], + 'ps_get_value' => ['float', 'psdoc'=>'resource', 'name'=>'string', 'modifier='=>'float'], + 'ps_hyphenate' => ['array', 'psdoc'=>'resource', 'text'=>'string'], + 'ps_include_file' => ['bool', 'psdoc'=>'resource', 'file'=>'string'], + 'ps_lineto' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], + 'ps_makespotcolor' => ['int', 'psdoc'=>'resource', 'name'=>'string', 'reserved='=>'int'], + 'ps_moveto' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], + 'ps_new' => ['resource'], + 'ps_open_file' => ['bool', 'psdoc'=>'resource', 'filename='=>'string'], + 'ps_open_image' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'source'=>'string', 'data'=>'string', 'length'=>'int', 'width'=>'int', 'height'=>'int', 'components'=>'int', 'bpc'=>'int', 'params'=>'string'], + 'ps_open_image_file' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'filename'=>'string', 'stringparam='=>'string', 'intparam='=>'int'], + 'ps_open_memory_image' => ['int', 'psdoc'=>'resource', 'gd'=>'int'], + 'ps_place_image' => ['bool', 'psdoc'=>'resource', 'imageid'=>'int', 'x'=>'float', 'y'=>'float', 'scale'=>'float'], + 'ps_rect' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float', 'width'=>'float', 'height'=>'float'], + 'ps_restore' => ['bool', 'psdoc'=>'resource'], + 'ps_rotate' => ['bool', 'psdoc'=>'resource', 'rot'=>'float'], + 'ps_save' => ['bool', 'psdoc'=>'resource'], + 'ps_scale' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], + 'ps_set_border_color' => ['bool', 'psdoc'=>'resource', 'red'=>'float', 'green'=>'float', 'blue'=>'float'], + 'ps_set_border_dash' => ['bool', 'psdoc'=>'resource', 'black'=>'float', 'white'=>'float'], + 'ps_set_border_style' => ['bool', 'psdoc'=>'resource', 'style'=>'string', 'width'=>'float'], + 'ps_set_info' => ['bool', 'p'=>'resource', 'key'=>'string', 'value'=>'string'], + 'ps_set_parameter' => ['bool', 'psdoc'=>'resource', 'name'=>'string', 'value'=>'string'], + 'ps_set_text_pos' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], + 'ps_set_value' => ['bool', 'psdoc'=>'resource', 'name'=>'string', 'value'=>'float'], + 'ps_setcolor' => ['bool', 'psdoc'=>'resource', 'type'=>'string', 'colorspace'=>'string', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float'], + 'ps_setdash' => ['bool', 'psdoc'=>'resource', 'on'=>'float', 'off'=>'float'], + 'ps_setflat' => ['bool', 'psdoc'=>'resource', 'value'=>'float'], + 'ps_setfont' => ['bool', 'psdoc'=>'resource', 'fontid'=>'int', 'size'=>'float'], + 'ps_setgray' => ['bool', 'psdoc'=>'resource', 'gray'=>'float'], + 'ps_setlinecap' => ['bool', 'psdoc'=>'resource', 'type'=>'int'], + 'ps_setlinejoin' => ['bool', 'psdoc'=>'resource', 'type'=>'int'], + 'ps_setlinewidth' => ['bool', 'psdoc'=>'resource', 'width'=>'float'], + 'ps_setmiterlimit' => ['bool', 'psdoc'=>'resource', 'value'=>'float'], + 'ps_setoverprintmode' => ['bool', 'psdoc'=>'resource', 'mode'=>'int'], + 'ps_setpolydash' => ['bool', 'psdoc'=>'resource', 'arr'=>'float'], + 'ps_shading' => ['int', 'psdoc'=>'resource', 'type'=>'string', 'x0'=>'float', 'y0'=>'float', 'x1'=>'float', 'y1'=>'float', 'c1'=>'float', 'c2'=>'float', 'c3'=>'float', 'c4'=>'float', 'optlist'=>'string'], + 'ps_shading_pattern' => ['int', 'psdoc'=>'resource', 'shadingid'=>'int', 'optlist'=>'string'], + 'ps_shfill' => ['bool', 'psdoc'=>'resource', 'shadingid'=>'int'], + 'ps_show' => ['bool', 'psdoc'=>'resource', 'text'=>'string'], + 'ps_show2' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'length'=>'int'], + 'ps_show_boxed' => ['int', 'psdoc'=>'resource', 'text'=>'string', 'left'=>'float', 'bottom'=>'float', 'width'=>'float', 'height'=>'float', 'hmode'=>'string', 'feature='=>'string'], + 'ps_show_xy' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'x'=>'float', 'y'=>'float'], + 'ps_show_xy2' => ['bool', 'psdoc'=>'resource', 'text'=>'string', 'length'=>'int', 'xcoor'=>'float', 'ycoor'=>'float'], + 'ps_string_geometry' => ['array', 'psdoc'=>'resource', 'text'=>'string', 'fontid='=>'int', 'size='=>'float'], + 'ps_stringwidth' => ['float', 'psdoc'=>'resource', 'text'=>'string', 'fontid='=>'int', 'size='=>'float'], + 'ps_stroke' => ['bool', 'psdoc'=>'resource'], + 'ps_symbol' => ['bool', 'psdoc'=>'resource', 'ord'=>'int'], + 'ps_symbol_name' => ['string', 'psdoc'=>'resource', 'ord'=>'int', 'fontid='=>'int'], + 'ps_symbol_width' => ['float', 'psdoc'=>'resource', 'ord'=>'int', 'fontid='=>'int', 'size='=>'float'], + 'ps_translate' => ['bool', 'psdoc'=>'resource', 'x'=>'float', 'y'=>'float'], + 'pspell_add_to_personal' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'pspell_add_to_session' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'pspell_check' => ['bool', 'dictionary'=>'int', 'word'=>'string'], + 'pspell_clear_session' => ['bool', 'dictionary'=>'int'], + 'pspell_config_create' => ['int', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string'], + 'pspell_config_data_dir' => ['bool', 'config'=>'int', 'directory'=>'string'], + 'pspell_config_dict_dir' => ['bool', 'config'=>'int', 'directory'=>'string'], + 'pspell_config_ignore' => ['bool', 'config'=>'int', 'min_length'=>'int'], + 'pspell_config_mode' => ['bool', 'config'=>'int', 'mode'=>'int'], + 'pspell_config_personal' => ['bool', 'config'=>'int', 'filename'=>'string'], + 'pspell_config_repl' => ['bool', 'config'=>'int', 'filename'=>'string'], + 'pspell_config_runtogether' => ['bool', 'config'=>'int', 'allow'=>'bool'], + 'pspell_config_save_repl' => ['bool', 'config'=>'int', 'save'=>'bool'], + 'pspell_new' => ['int|false', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + 'pspell_new_config' => ['int|false', 'config'=>'int'], + 'pspell_new_personal' => ['int|false', 'filename'=>'string', 'language'=>'string', 'spelling='=>'string', 'jargon='=>'string', 'encoding='=>'string', 'mode='=>'int'], + 'pspell_save_wordlist' => ['bool', 'dictionary'=>'int'], + 'pspell_store_replacement' => ['bool', 'dictionary'=>'int', 'misspelled'=>'string', 'correct'=>'string'], + 'pspell_suggest' => ['array', 'dictionary'=>'int', 'word'=>'string'], + 'putenv' => ['bool', 'assignment'=>'string'], + 'px_close' => ['bool', 'pxdoc'=>'resource'], + 'px_create_fp' => ['bool', 'pxdoc'=>'resource', 'file'=>'resource', 'fielddesc'=>'array'], + 'px_date2string' => ['string', 'pxdoc'=>'resource', 'value'=>'int', 'format'=>'string'], + 'px_delete' => ['bool', 'pxdoc'=>'resource'], + 'px_delete_record' => ['bool', 'pxdoc'=>'resource', 'num'=>'int'], + 'px_get_field' => ['array', 'pxdoc'=>'resource', 'fieldno'=>'int'], + 'px_get_info' => ['array', 'pxdoc'=>'resource'], + 'px_get_parameter' => ['string', 'pxdoc'=>'resource', 'name'=>'string'], + 'px_get_record' => ['array', 'pxdoc'=>'resource', 'num'=>'int', 'mode='=>'int'], + 'px_get_schema' => ['array', 'pxdoc'=>'resource', 'mode='=>'int'], + 'px_get_value' => ['float', 'pxdoc'=>'resource', 'name'=>'string'], + 'px_insert_record' => ['int', 'pxdoc'=>'resource', 'data'=>'array'], + 'px_new' => ['resource'], + 'px_numfields' => ['int', 'pxdoc'=>'resource'], + 'px_numrecords' => ['int', 'pxdoc'=>'resource'], + 'px_open_fp' => ['bool', 'pxdoc'=>'resource', 'file'=>'resource'], + 'px_put_record' => ['bool', 'pxdoc'=>'resource', 'record'=>'array', 'recpos='=>'int'], + 'px_retrieve_record' => ['array', 'pxdoc'=>'resource', 'num'=>'int', 'mode='=>'int'], + 'px_set_blob_file' => ['bool', 'pxdoc'=>'resource', 'filename'=>'string'], + 'px_set_parameter' => ['bool', 'pxdoc'=>'resource', 'name'=>'string', 'value'=>'string'], + 'px_set_tablename' => ['void', 'pxdoc'=>'resource', 'name'=>'string'], + 'px_set_targetencoding' => ['bool', 'pxdoc'=>'resource', 'encoding'=>'string'], + 'px_set_value' => ['bool', 'pxdoc'=>'resource', 'name'=>'string', 'value'=>'float'], + 'px_timestamp2string' => ['string', 'pxdoc'=>'resource', 'value'=>'float', 'format'=>'string'], + 'px_update_record' => ['bool', 'pxdoc'=>'resource', 'data'=>'array', 'num'=>'int'], + 'qdom_error' => ['string'], + 'qdom_tree' => ['QDomDocument', 'doc'=>'string'], + 'querymapObj::convertToString' => ['string'], + 'querymapObj::free' => ['void'], + 'querymapObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'querymapObj::updateFromString' => ['int', 'snippet'=>'string'], + 'quoted_printable_decode' => ['string', 'string'=>'string'], + 'quoted_printable_encode' => ['string', 'string'=>'string'], + 'quotemeta' => ['string', 'string'=>'string'], + 'rad2deg' => ['float', 'num'=>'float'], + 'radius_acct_open' => ['resource|false'], + 'radius_add_server' => ['bool', 'radius_handle'=>'resource', 'hostname'=>'string', 'port'=>'int', 'secret'=>'string', 'timeout'=>'int', 'max_tries'=>'int'], + 'radius_auth_open' => ['resource|false'], + 'radius_close' => ['bool', 'radius_handle'=>'resource'], + 'radius_config' => ['bool', 'radius_handle'=>'resource', 'file'=>'string'], + 'radius_create_request' => ['bool', 'radius_handle'=>'resource', 'type'=>'int'], + 'radius_cvt_addr' => ['string', 'data'=>'string'], + 'radius_cvt_int' => ['int', 'data'=>'string'], + 'radius_cvt_string' => ['string', 'data'=>'string'], + 'radius_demangle' => ['string', 'radius_handle'=>'resource', 'mangled'=>'string'], + 'radius_demangle_mppe_key' => ['string', 'radius_handle'=>'resource', 'mangled'=>'string'], + 'radius_get_attr' => ['mixed', 'radius_handle'=>'resource'], + 'radius_get_tagged_attr_data' => ['string', 'data'=>'string'], + 'radius_get_tagged_attr_tag' => ['int', 'data'=>'string'], + 'radius_get_vendor_attr' => ['array', 'data'=>'string'], + 'radius_put_addr' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'addr'=>'string'], + 'radius_put_attr' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'string'], + 'radius_put_int' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'int'], + 'radius_put_string' => ['bool', 'radius_handle'=>'resource', 'type'=>'int', 'value'=>'string'], + 'radius_put_vendor_addr' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'addr'=>'string'], + 'radius_put_vendor_attr' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'string'], + 'radius_put_vendor_int' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'int'], + 'radius_put_vendor_string' => ['bool', 'radius_handle'=>'resource', 'vendor'=>'int', 'type'=>'int', 'value'=>'string'], + 'radius_request_authenticator' => ['string', 'radius_handle'=>'resource'], + 'radius_salt_encrypt_attr' => ['string', 'radius_handle'=>'resource', 'data'=>'string'], + 'radius_send_request' => ['int|false', 'radius_handle'=>'resource'], + 'radius_server_secret' => ['string', 'radius_handle'=>'resource'], + 'radius_strerror' => ['string', 'radius_handle'=>'resource'], + 'rand' => ['int', 'min'=>'int', 'max'=>'int'], + 'rand\'1' => ['int'], + 'random_bytes' => ['non-empty-string', 'length'=>'positive-int'], + 'random_int' => ['int', 'min'=>'int', 'max'=>'int'], + 'range' => ['array', 'start'=>'mixed', 'end'=>'mixed', 'step='=>'int|float'], + 'rar_allow_broken_set' => ['bool', 'rarfile'=>'RarArchive', 'allow_broken'=>'bool'], + 'rar_broken_is' => ['bool', 'rarfile'=>'rararchive'], + 'rar_close' => ['bool', 'rarfile'=>'rararchive'], + 'rar_comment_get' => ['string', 'rarfile'=>'rararchive'], + 'rar_entry_get' => ['RarEntry', 'rarfile'=>'RarArchive', 'entryname'=>'string'], + 'rar_list' => ['RarArchive', 'rarfile'=>'rararchive'], + 'rar_open' => ['RarArchive', 'filename'=>'string', 'password='=>'string', 'volume_callback='=>'callable'], + 'rar_solid_is' => ['bool', 'rarfile'=>'rararchive'], + 'rar_wrapper_cache_stats' => ['string'], + 'rawurldecode' => ['string', 'string'=>'string'], + 'rawurlencode' => ['string', 'string'=>'string'], + 'rd_kafka_err2str' => ['string', 'err'=>'int'], + 'rd_kafka_errno' => ['int'], + 'rd_kafka_errno2err' => ['int', 'errnox'=>'int'], + 'rd_kafka_offset_tail' => ['int', 'cnt'=>'int'], + 'read_exif_data' => ['array', 'filename'=>'string', 'sections_needed='=>'string', 'sub_arrays='=>'bool', 'read_thumbnail='=>'bool'], + 'readdir' => ['string|false', 'dir_handle='=>'resource'], + 'readfile' => ['int|false', 'filename'=>'string', 'use_include_path='=>'bool', 'context='=>'resource'], + 'readgzfile' => ['int|false', 'filename'=>'string', 'use_include_path='=>'int'], + 'readline' => ['string|false', 'prompt='=>'?string'], + 'readline_add_history' => ['bool', 'prompt'=>'string'], + 'readline_callback_handler_install' => ['bool', 'prompt'=>'string', 'callback'=>'callable'], + 'readline_callback_handler_remove' => ['bool'], + 'readline_callback_read_char' => ['void'], + 'readline_clear_history' => ['bool'], + 'readline_completion_function' => ['bool', 'callback'=>'callable'], + 'readline_info' => ['mixed', 'var_name='=>'string', 'value='=>'string|int|bool'], + 'readline_list_history' => ['array'], + 'readline_on_new_line' => ['void'], + 'readline_read_history' => ['bool', 'filename='=>'string'], + 'readline_redisplay' => ['void'], + 'readline_write_history' => ['bool', 'filename='=>'string'], + 'readlink' => ['string|false', 'path'=>'string'], + 'realpath' => ['string|false', 'path'=>'string'], + 'realpath_cache_get' => ['array'], + 'realpath_cache_size' => ['int'], + 'recode' => ['string', 'request'=>'string', 'string'=>'string'], + 'recode_file' => ['bool', 'request'=>'string', 'input'=>'resource', 'output'=>'resource'], + 'recode_string' => ['string|false', 'request'=>'string', 'string'=>'string'], + 'rectObj::__construct' => ['void'], + 'rectObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj', 'class_index'=>'int', 'text'=>'string'], + 'rectObj::fit' => ['float', 'width'=>'int', 'height'=>'int'], + 'rectObj::ms_newRectObj' => ['rectObj'], + 'rectObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], + 'rectObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'rectObj::setextent' => ['void', 'minx'=>'float', 'miny'=>'float', 'maxx'=>'float', 'maxy'=>'float'], + 'register_event_handler' => ['bool', 'event_handler_func'=>'string', 'handler_register_name'=>'string', 'event_type_mask'=>'int'], + 'register_shutdown_function' => ['void', 'callback'=>'callable', '...args='=>'mixed'], + 'register_tick_function' => ['bool', 'callback'=>'callable():void', '...args='=>'mixed'], + 'rename' => ['bool', 'from'=>'string', 'to'=>'string', 'context='=>'resource'], + 'rename_function' => ['bool', 'original_name'=>'string', 'new_name'=>'string'], + 'reset' => ['mixed|false', '&r_array'=>'array|object'], + 'resourcebundle_count' => ['int', 'bundle'=>'ResourceBundle'], + 'resourcebundle_create' => ['?ResourceBundle', 'locale'=>'?string', 'bundle'=>'?string', 'fallback='=>'bool'], + 'resourcebundle_get' => ['mixed|null', 'bundle'=>'ResourceBundle', 'index'=>'string|int', 'fallback='=>'bool'], + 'resourcebundle_get_error_code' => ['int', 'bundle'=>'ResourceBundle'], + 'resourcebundle_get_error_message' => ['string', 'bundle'=>'ResourceBundle'], + 'resourcebundle_locales' => ['array', 'bundle'=>'string'], + 'restore_error_handler' => ['true'], + 'restore_exception_handler' => ['true'], + 'restore_include_path' => ['void'], + 'rewind' => ['bool', 'stream'=>'resource'], + 'rewinddir' => ['void', 'dir_handle='=>'resource'], + 'rmdir' => ['bool', 'directory'=>'string', 'context='=>'resource'], + 'round' => ['float', 'num'=>'float', 'precision='=>'int', 'mode='=>'0|positive-int'], + 'rpm_close' => ['bool', 'rpmr'=>'resource'], + 'rpm_get_tag' => ['mixed', 'rpmr'=>'resource', 'tagnum'=>'int'], + 'rpm_is_valid' => ['bool', 'filename'=>'string'], + 'rpm_open' => ['resource|false', 'filename'=>'string'], + 'rpm_version' => ['string'], + 'rpmaddtag' => ['bool', 'tag'=>'int'], + 'rpmdbinfo' => ['array', 'nevr'=>'string', 'full='=>'bool'], + 'rpmdbsearch' => ['array', 'pattern'=>'string', 'rpmtag='=>'int', 'rpmmire='=>'int', 'full='=>'bool'], + 'rpminfo' => ['array', 'path'=>'string', 'full='=>'bool', 'error='=>'string'], + 'rpmvercmp' => ['int', 'evr1'=>'string', 'evr2'=>'string'], + 'rrd_create' => ['bool', 'filename'=>'string', 'options'=>'array'], + 'rrd_disconnect' => ['void'], + 'rrd_error' => ['string'], + 'rrd_fetch' => ['array', 'filename'=>'string', 'options'=>'array'], + 'rrd_first' => ['int|false', 'file'=>'string', 'raaindex='=>'int'], + 'rrd_graph' => ['array|false', 'filename'=>'string', 'options'=>'array'], + 'rrd_info' => ['array|false', 'filename'=>'string'], + 'rrd_last' => ['int', 'filename'=>'string'], + 'rrd_lastupdate' => ['array|false', 'filename'=>'string'], + 'rrd_restore' => ['bool', 'xml_file'=>'string', 'rrd_file'=>'string', 'options='=>'array'], + 'rrd_tune' => ['bool', 'filename'=>'string', 'options'=>'array'], + 'rrd_update' => ['bool', 'filename'=>'string', 'options'=>'array'], + 'rrd_version' => ['string'], + 'rrd_xport' => ['array|false', 'options'=>'array'], + 'rrdc_disconnect' => ['void'], + 'rsort' => ['bool', '&rw_array'=>'array', 'flags='=>'int'], + 'rtrim' => ['string', 'string'=>'string', 'characters='=>'string'], + 'runkit7_constant_add' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'new_visibility='=>'int'], + 'runkit7_constant_redefine' => ['bool', 'constant_name'=>'string', 'value'=>'mixed', 'new_visibility='=>'?int'], + 'runkit7_constant_remove' => ['bool', 'constant_name'=>'string'], + 'runkit7_function_add' => ['bool', 'function_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_doc_comment='=>'?string', 'return_by_reference='=>'?bool', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], + 'runkit7_function_copy' => ['bool', 'source_name'=>'string', 'target_name'=>'string'], + 'runkit7_function_redefine' => ['bool', 'function_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_doc_comment='=>'?string', 'return_by_reference='=>'?bool', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], + 'runkit7_function_remove' => ['bool', 'function_name'=>'string'], + 'runkit7_function_rename' => ['bool', 'source_name'=>'string', 'target_name'=>'string'], + 'runkit7_import' => ['bool', 'filename'=>'string', 'flags='=>'?int'], + 'runkit7_method_add' => ['bool', 'class_name'=>'string', 'method_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_flags='=>'int|null|string', 'flags_or_doc_comment='=>'int|null|string', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], + 'runkit7_method_copy' => ['bool', 'destination_class'=>'string', 'destination_method'=>'string', 'source_class'=>'string', 'source_method='=>'?string'], + 'runkit7_method_redefine' => ['bool', 'class_name'=>'string', 'method_name'=>'string', 'argument_list_or_closure'=>'Closure|string', 'code_or_flags='=>'int|null|string', 'flags_or_doc_comment='=>'int|null|string', 'doc_comment='=>'?string', 'return_type='=>'?string', 'is_strict='=>'?bool'], + 'runkit7_method_remove' => ['bool', 'class_name'=>'string', 'method_name'=>'string'], + 'runkit7_method_rename' => ['bool', 'class_name'=>'string', 'source_method_name'=>'string', 'source_target_name'=>'string'], + 'runkit7_superglobals' => ['array'], + 'runkit7_zval_inspect' => ['array', 'value'=>'mixed'], + 'runkit_class_adopt' => ['bool', 'classname'=>'string', 'parentname'=>'string'], + 'runkit_class_emancipate' => ['bool', 'classname'=>'string'], + 'runkit_constant_add' => ['bool', 'constname'=>'string', 'value'=>'mixed'], + 'runkit_constant_redefine' => ['bool', 'constname'=>'string', 'newvalue'=>'mixed'], + 'runkit_constant_remove' => ['bool', 'constname'=>'string'], + 'runkit_function_add' => ['bool', 'funcname'=>'string', 'arglist'=>'string', 'code'=>'string', 'doccomment='=>'?string'], + 'runkit_function_add\'1' => ['bool', 'funcname'=>'string', 'closure'=>'Closure', 'doccomment='=>'?string'], + 'runkit_function_copy' => ['bool', 'funcname'=>'string', 'targetname'=>'string'], + 'runkit_function_redefine' => ['bool', 'funcname'=>'string', 'arglist'=>'string', 'code'=>'string', 'doccomment='=>'?string'], + 'runkit_function_redefine\'1' => ['bool', 'funcname'=>'string', 'closure'=>'Closure', 'doccomment='=>'?string'], + 'runkit_function_remove' => ['bool', 'funcname'=>'string'], + 'runkit_function_rename' => ['bool', 'funcname'=>'string', 'newname'=>'string'], + 'runkit_import' => ['bool', 'filename'=>'string', 'flags='=>'int'], + 'runkit_lint' => ['bool', 'code'=>'string'], + 'runkit_lint_file' => ['bool', 'filename'=>'string'], + 'runkit_method_add' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int', 'doccomment='=>'?string'], + 'runkit_method_add\'1' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'closure'=>'Closure', 'flags='=>'int', 'doccomment='=>'?string'], + 'runkit_method_copy' => ['bool', 'dclass'=>'string', 'dmethod'=>'string', 'sclass'=>'string', 'smethod='=>'string'], + 'runkit_method_redefine' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'args'=>'string', 'code'=>'string', 'flags='=>'int', 'doccomment='=>'?string'], + 'runkit_method_redefine\'1' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'closure'=>'Closure', 'flags='=>'int', 'doccomment='=>'?string'], + 'runkit_method_remove' => ['bool', 'classname'=>'string', 'methodname'=>'string'], + 'runkit_method_rename' => ['bool', 'classname'=>'string', 'methodname'=>'string', 'newname'=>'string'], + 'runkit_return_value_used' => ['bool'], + 'runkit_sandbox_output_handler' => ['mixed', 'sandbox'=>'object', 'callback='=>'mixed'], + 'runkit_superglobals' => ['array'], + 'runkit_zval_inspect' => ['array', 'value'=>'mixed'], + 'scalebarObj::convertToString' => ['string'], + 'scalebarObj::free' => ['void'], + 'scalebarObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'scalebarObj::setImageColor' => ['int', 'red'=>'int', 'green'=>'int', 'blue'=>'int'], + 'scalebarObj::updateFromString' => ['int', 'snippet'=>'string'], + 'scandir' => ['list|false', 'directory'=>'string', 'sorting_order='=>'int', 'context='=>'resource'], + 'seaslog_get_author' => ['string'], + 'seaslog_get_version' => ['string'], + 'sem_acquire' => ['bool', 'semaphore'=>'resource', 'non_blocking='=>'bool'], + 'sem_get' => ['resource|false', 'key'=>'int', 'max_acquire='=>'int', 'permissions='=>'int', 'auto_release='=>'bool'], + 'sem_release' => ['bool', 'semaphore'=>'resource'], + 'sem_remove' => ['bool', 'semaphore'=>'resource'], + 'serialize' => ['string', 'value'=>'mixed'], + 'session_abort' => ['bool'], + 'session_cache_expire' => ['int', 'value='=>'int'], + 'session_cache_limiter' => ['string', 'value='=>'string'], + 'session_commit' => ['bool'], + 'session_decode' => ['bool', 'data'=>'string'], + 'session_destroy' => ['bool'], + 'session_encode' => ['string'], + 'session_get_cookie_params' => ['array'], + 'session_id' => ['string|false', 'id='=>'string'], + 'session_is_registered' => ['bool', 'name'=>'string'], + 'session_module_name' => ['string', 'module='=>'string'], + 'session_name' => ['string|false', 'name='=>'string'], + 'session_pgsql_add_error' => ['bool', 'error_level'=>'int', 'error_message='=>'string'], + 'session_pgsql_get_error' => ['array', 'with_error_message='=>'bool'], + 'session_pgsql_get_field' => ['string'], + 'session_pgsql_reset' => ['bool'], + 'session_pgsql_set_field' => ['bool', 'value'=>'string'], + 'session_pgsql_status' => ['array'], + 'session_regenerate_id' => ['bool', 'delete_old_session='=>'bool'], + 'session_register' => ['bool', 'name'=>'mixed', '...args='=>'mixed'], + 'session_register_shutdown' => ['void'], + 'session_reset' => ['bool'], + 'session_save_path' => ['string', 'path='=>'string'], + 'session_set_cookie_params' => ['bool', 'lifetime'=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool'], + 'session_set_save_handler' => ['bool', 'open'=>'callable(string,string):bool', 'close'=>'callable():bool', 'read'=>'callable(string):string', 'write'=>'callable(string,string):bool', 'destroy'=>'callable(string):bool', 'gc'=>'callable(string):bool', 'create_sid='=>'callable():string', 'validate_sid='=>'callable(string):bool', 'update_timestamp='=>'callable(string):bool'], + 'session_set_save_handler\'1' => ['bool', 'open'=>'SessionHandlerInterface', 'close='=>'bool'], + 'session_start' => ['bool', 'options='=>'array'], + 'session_status' => ['int'], + 'session_unregister' => ['bool', 'name'=>'string'], + 'session_unset' => ['bool'], + 'session_write_close' => ['bool'], + 'setLeftFill' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'setLine' => ['void', 'width'=>'int', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'setRightFill' => ['void', 'red'=>'int', 'green'=>'int', 'blue'=>'int', 'a='=>'int'], + 'set_error_handler' => ['null|callable(int,string,string=,int=,array=):bool', 'callback'=>'null|callable(int,string,string=,int=,array=):bool', 'error_levels='=>'int'], + 'set_exception_handler' => ['null|callable(Throwable):void', 'callback'=>'null|callable(Throwable):void'], + 'set_file_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], + 'set_include_path' => ['string|false', 'include_path'=>'string'], + 'set_magic_quotes_runtime' => ['bool', 'new_setting'=>'bool'], + 'set_time_limit' => ['bool', 'seconds'=>'int'], + 'setcookie' => ['bool', 'name'=>'string', 'value='=>'string', 'expires='=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool', 'samesite='=>'string', 'url_encode='=>'int'], + 'setlocale' => ['string|false', 'category'=>'int', 'locales'=>'string|0|null', '...rest='=>'string'], + 'setlocale\'1' => ['string|false', 'category'=>'int', 'locales'=>'?array'], + 'setproctitle' => ['void', 'title'=>'string'], + 'setrawcookie' => ['bool', 'name'=>'string', 'value='=>'string', 'expires='=>'int', 'path='=>'string', 'domain='=>'string', 'secure='=>'bool', 'httponly='=>'bool'], + 'setthreadtitle' => ['bool', 'title'=>'string'], + 'settype' => ['bool', '&rw_var'=>'mixed', 'type'=>'string'], + 'sha1' => ['string', 'string'=>'string', 'binary='=>'bool'], + 'sha1_file' => ['string|false', 'filename'=>'string', 'binary='=>'bool'], + 'sha256' => ['string', 'string'=>'string', 'raw_output='=>'bool'], + 'sha256_file' => ['string', 'filename'=>'string', 'raw_output='=>'bool'], + 'shapeObj::__construct' => ['void', 'type'=>'int'], + 'shapeObj::add' => ['int', 'line'=>'lineObj'], + 'shapeObj::boundary' => ['shapeObj'], + 'shapeObj::contains' => ['bool', 'point'=>'pointObj'], + 'shapeObj::containsShape' => ['int', 'shape2'=>'shapeObj'], + 'shapeObj::convexhull' => ['shapeObj'], + 'shapeObj::crosses' => ['int', 'shape'=>'shapeObj'], + 'shapeObj::difference' => ['shapeObj', 'shape'=>'shapeObj'], + 'shapeObj::disjoint' => ['int', 'shape'=>'shapeObj'], + 'shapeObj::draw' => ['int', 'map'=>'mapObj', 'layer'=>'layerObj', 'img'=>'imageObj'], + 'shapeObj::equals' => ['int', 'shape'=>'shapeObj'], + 'shapeObj::free' => ['void'], + 'shapeObj::getArea' => ['float'], + 'shapeObj::getCentroid' => ['pointObj'], + 'shapeObj::getLabelPoint' => ['pointObj'], + 'shapeObj::getLength' => ['float'], + 'shapeObj::getPointUsingMeasure' => ['pointObj', 'm'=>'float'], + 'shapeObj::getValue' => ['string', 'layer'=>'layerObj', 'filedname'=>'string'], + 'shapeObj::intersection' => ['shapeObj', 'shape'=>'shapeObj'], + 'shapeObj::intersects' => ['bool', 'shape'=>'shapeObj'], + 'shapeObj::line' => ['lineObj', 'i'=>'int'], + 'shapeObj::ms_shapeObjFromWkt' => ['shapeObj', 'wkt'=>'string'], + 'shapeObj::overlaps' => ['int', 'shape'=>'shapeObj'], + 'shapeObj::project' => ['int', 'in'=>'projectionObj', 'out'=>'projectionObj'], + 'shapeObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'shapeObj::setBounds' => ['int'], + 'shapeObj::simplify' => ['shapeObj|null', 'tolerance'=>'float'], + 'shapeObj::symdifference' => ['shapeObj', 'shape'=>'shapeObj'], + 'shapeObj::toWkt' => ['string'], + 'shapeObj::topologyPreservingSimplify' => ['shapeObj|null', 'tolerance'=>'float'], + 'shapeObj::touches' => ['int', 'shape'=>'shapeObj'], + 'shapeObj::union' => ['shapeObj', 'shape'=>'shapeObj'], + 'shapeObj::within' => ['int', 'shape2'=>'shapeObj'], + 'shapefileObj::__construct' => ['void', 'filename'=>'string', 'type'=>'int'], + 'shapefileObj::addPoint' => ['int', 'point'=>'pointObj'], + 'shapefileObj::addShape' => ['int', 'shape'=>'shapeObj'], + 'shapefileObj::free' => ['void'], + 'shapefileObj::getExtent' => ['rectObj', 'i'=>'int'], + 'shapefileObj::getPoint' => ['shapeObj', 'i'=>'int'], + 'shapefileObj::getShape' => ['shapeObj', 'i'=>'int'], + 'shapefileObj::getTransformed' => ['shapeObj', 'map'=>'mapObj', 'i'=>'int'], + 'shapefileObj::ms_newShapefileObj' => ['shapefileObj', 'filename'=>'string', 'type'=>'int'], + 'shell_exec' => ['string|false|null', 'command'=>'string'], + 'shm_attach' => ['resource|false', 'key'=>'int', 'size='=>'int', 'permissions='=>'int'], + 'shm_detach' => ['bool', 'shm'=>'resource'], + 'shm_get_var' => ['mixed', 'shm'=>'resource', 'key'=>'int'], + 'shm_has_var' => ['bool', 'shm'=>'resource', 'key'=>'int'], + 'shm_put_var' => ['bool', 'shm'=>'resource', 'key'=>'int', 'value'=>'mixed'], + 'shm_remove' => ['bool', 'shm'=>'resource'], + 'shm_remove_var' => ['bool', 'shm'=>'resource', 'key'=>'int'], + 'shmop_close' => ['void', 'shmop'=>'resource'], + 'shmop_delete' => ['bool', 'shmop'=>'resource'], + 'shmop_open' => ['resource|false', 'key'=>'int', 'mode'=>'string', 'permissions'=>'int', 'size'=>'int'], + 'shmop_read' => ['string|false', 'shmop'=>'resource', 'offset'=>'int', 'size'=>'int'], + 'shmop_size' => ['int', 'shmop'=>'resource'], + 'shmop_write' => ['int|false', 'shmop'=>'resource', 'data'=>'string', 'offset'=>'int'], + 'show_source' => ['string|bool', 'filename'=>'string', 'return='=>'bool'], + 'shuffle' => ['true', '&rw_array'=>'array'], + 'signeurlpaiement' => ['string', 'clent'=>'string', 'data'=>'string'], + 'similar_text' => ['int', 'string1'=>'string', 'string2'=>'string', '&w_percent='=>'float'], + 'simplexml_import_dom' => ['?SimpleXMLElement', 'node'=>'DOMNode', 'class_name='=>'?string'], + 'simplexml_load_file' => ['SimpleXMLElement|false', 'filename'=>'string', 'class_name='=>'?string', 'options='=>'int', 'namespace_or_prefix='=>'string', 'is_prefix='=>'bool'], + 'simplexml_load_string' => ['SimpleXMLElement|false', 'data'=>'string', 'class_name='=>'?string', 'options='=>'int', 'namespace_or_prefix='=>'string', 'is_prefix='=>'bool'], + 'sin' => ['float', 'num'=>'float'], + 'sinh' => ['float', 'num'=>'float'], + 'sizeof' => ['int', 'value'=>'Countable|array', 'mode='=>'int'], + 'sleep' => ['int|false', 'seconds'=>'0|positive-int'], + 'snmp2_get' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp2_getnext' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp2_real_walk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp2_set' => ['bool', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'type'=>'string', 'value'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp2_walk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp3_get' => ['string|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp3_getnext' => ['string|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp3_real_walk' => ['array|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp3_set' => ['bool', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'type'=>'string', 'value'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp3_walk' => ['array|false', 'hostname'=>'string', 'security_name'=>'string', 'security_level'=>'string', 'auth_protocol'=>'string', 'auth_passphrase'=>'string', 'privacy_protocol'=>'string', 'privacy_passphrase'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmp_get_quick_print' => ['bool'], + 'snmp_get_valueretrieval' => ['int'], + 'snmp_read_mib' => ['bool', 'filename'=>'string'], + 'snmp_set_enum_print' => ['true', 'enable'=>'bool'], + 'snmp_set_oid_numeric_print' => ['true', 'format'=>'int'], + 'snmp_set_oid_output_format' => ['true', 'format'=>'int'], + 'snmp_set_quick_print' => ['bool', 'enable'=>'bool'], + 'snmp_set_valueretrieval' => ['true', 'method'=>'int'], + 'snmpget' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmpgetnext' => ['string|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmprealwalk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmpset' => ['bool', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'type'=>'string|string[]', 'value'=>'string|string[]', 'timeout='=>'int', 'retries='=>'int'], + 'snmpwalk' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'snmpwalkoid' => ['array|false', 'hostname'=>'string', 'community'=>'string', 'object_id'=>'string', 'timeout='=>'int', 'retries='=>'int'], + 'socket_accept' => ['resource|false', 'socket'=>'resource'], + 'socket_bind' => ['bool', 'socket'=>'resource', 'address'=>'string', 'port='=>'int'], + 'socket_clear_error' => ['void', 'socket='=>'resource'], + 'socket_close' => ['void', 'socket'=>'resource'], + 'socket_cmsg_space' => ['?int', 'level'=>'int', 'type'=>'int', 'num='=>'int'], + 'socket_connect' => ['bool', 'socket'=>'resource', 'address'=>'string', 'port='=>'int'], + 'socket_create' => ['resource|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], + 'socket_create_listen' => ['resource|false', 'port'=>'int', 'backlog='=>'int'], + 'socket_create_pair' => ['bool', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int', '&w_pair'=>'resource[]'], + 'socket_export_stream' => ['resource|false', 'socket'=>'resource'], + 'socket_get_option' => ['array|int|false', 'socket'=>'resource', 'level'=>'int', 'option'=>'int'], + 'socket_get_status' => ['array', 'stream'=>'resource'], + 'socket_getopt' => ['array|int|false', 'socket'=>'resource', 'level'=>'int', 'option'=>'int'], + 'socket_getpeername' => ['bool', 'socket'=>'resource', '&w_address'=>'string', '&w_port='=>'int'], + 'socket_getsockname' => ['bool', 'socket'=>'resource', '&w_address'=>'string', '&w_port='=>'int'], + 'socket_import_stream' => ['resource|false', 'stream'=>'resource'], + 'socket_last_error' => ['int', 'socket='=>'resource'], + 'socket_listen' => ['bool', 'socket'=>'resource', 'backlog='=>'int'], + 'socket_read' => ['string|false', 'socket'=>'resource', 'length'=>'int', 'mode='=>'int'], + 'socket_recv' => ['int|false', 'socket'=>'resource', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int'], + 'socket_recvfrom' => ['int|false', 'socket'=>'resource', '&w_data'=>'string', 'length'=>'int', 'flags'=>'int', '&w_address'=>'string', '&w_port='=>'int'], + 'socket_recvmsg' => ['int|false', 'socket'=>'resource', '&w_message'=>'array', 'flags='=>'int'], + 'socket_select' => ['int|false', '&rw_read'=>'resource[]|null', '&rw_write'=>'resource[]|null', '&rw_except'=>'resource[]|null', 'seconds'=>'int|null', 'microseconds='=>'int'], + 'socket_send' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length'=>'int', 'flags'=>'int'], + 'socket_sendmsg' => ['int|false', 'socket'=>'resource', 'message'=>'array', 'flags='=>'int'], + 'socket_sendto' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length'=>'int', 'flags'=>'int', 'address'=>'string', 'port='=>'int'], + 'socket_set_block' => ['bool', 'socket'=>'resource'], + 'socket_set_blocking' => ['bool', 'stream'=>'resource', 'enable'=>'bool'], + 'socket_set_nonblock' => ['bool', 'socket'=>'resource'], + 'socket_set_option' => ['bool', 'socket'=>'resource', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + 'socket_set_timeout' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], + 'socket_setopt' => ['bool', 'socket'=>'resource', 'level'=>'int', 'option'=>'int', 'value'=>'int|string|array'], + 'socket_shutdown' => ['bool', 'socket'=>'resource', 'mode='=>'int'], + 'socket_strerror' => ['string', 'error_code'=>'int'], + 'socket_write' => ['int|false', 'socket'=>'resource', 'data'=>'string', 'length='=>'int'], + 'solid_fetch_prev' => ['bool', 'result_id'=>''], + 'solr_get_version' => ['string|false'], + 'sort' => ['true', '&rw_array'=>'array', 'flags='=>'int'], + 'soundex' => ['string', 'string'=>'string'], + 'spl_autoload' => ['void', 'class'=>'string', 'file_extensions='=>'string'], + 'spl_autoload_call' => ['void', 'class'=>'string'], + 'spl_autoload_extensions' => ['string', 'file_extensions='=>'string'], + 'spl_autoload_functions' => ['false|list'], + 'spl_autoload_register' => ['bool', 'callback='=>'callable(string):void', 'throw='=>'bool', 'prepend='=>'bool'], + 'spl_autoload_unregister' => ['bool', 'callback'=>'callable(string):void'], + 'spl_classes' => ['array'], + 'spl_object_hash' => ['string', 'object'=>'object'], + 'spl_object_id' => ['int', 'object'=>'object'], + 'sprintf' => ['string', 'format'=>'string', '...values='=>'string|int|float'], + 'sqlite_array_query' => ['array|false', 'dbhandle'=>'resource', 'query'=>'string', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'sqlite_busy_timeout' => ['void', 'dbhandle'=>'resource', 'milliseconds'=>'int'], + 'sqlite_changes' => ['int', 'dbhandle'=>'resource'], + 'sqlite_close' => ['void', 'dbhandle'=>'resource'], + 'sqlite_column' => ['mixed', 'result'=>'resource', 'index_or_name'=>'mixed', 'decode_binary='=>'bool'], + 'sqlite_create_aggregate' => ['void', 'dbhandle'=>'resource', 'function_name'=>'string', 'step_func'=>'callable', 'finalize_func'=>'callable', 'num_args='=>'int'], + 'sqlite_create_function' => ['void', 'dbhandle'=>'resource', 'function_name'=>'string', 'callback'=>'callable', 'num_args='=>'int'], + 'sqlite_current' => ['array|false', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'sqlite_error_string' => ['string', 'error_code'=>'int'], + 'sqlite_escape_string' => ['string', 'item'=>'string'], + 'sqlite_exec' => ['bool', 'dbhandle'=>'resource', 'query'=>'string', 'error_msg='=>'string'], + 'sqlite_factory' => ['SQLiteDatabase', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], + 'sqlite_fetch_all' => ['array', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'sqlite_fetch_array' => ['array|false', 'result'=>'resource', 'result_type='=>'int', 'decode_binary='=>'bool'], + 'sqlite_fetch_column_types' => ['array|false', 'table_name'=>'string', 'dbhandle'=>'resource', 'result_type='=>'int'], + 'sqlite_fetch_object' => ['object', 'result'=>'resource', 'class_name='=>'string', 'ctor_params='=>'array', 'decode_binary='=>'bool'], + 'sqlite_fetch_single' => ['string', 'result'=>'resource', 'decode_binary='=>'bool'], + 'sqlite_fetch_string' => ['string', 'result'=>'resource', 'decode_binary'=>'bool'], + 'sqlite_field_name' => ['string', 'result'=>'resource', 'field_index'=>'int'], + 'sqlite_has_more' => ['bool', 'result'=>'resource'], + 'sqlite_has_prev' => ['bool', 'result'=>'resource'], + 'sqlite_key' => ['int', 'result'=>'resource'], + 'sqlite_last_error' => ['int', 'dbhandle'=>'resource'], + 'sqlite_last_insert_rowid' => ['int', 'dbhandle'=>'resource'], + 'sqlite_libencoding' => ['string'], + 'sqlite_libversion' => ['string'], + 'sqlite_next' => ['bool', 'result'=>'resource'], + 'sqlite_num_fields' => ['int', 'result'=>'resource'], + 'sqlite_num_rows' => ['int', 'result'=>'resource'], + 'sqlite_open' => ['resource|false', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], + 'sqlite_popen' => ['resource|false', 'filename'=>'string', 'mode='=>'int', 'error_message='=>'string'], + 'sqlite_prev' => ['bool', 'result'=>'resource'], + 'sqlite_query' => ['resource|false', 'dbhandle'=>'resource', 'query'=>'resource|string', 'result_type='=>'int', 'error_msg='=>'string'], + 'sqlite_rewind' => ['bool', 'result'=>'resource'], + 'sqlite_seek' => ['bool', 'result'=>'resource', 'rownum'=>'int'], + 'sqlite_single_query' => ['array', 'db'=>'resource', 'query'=>'string', 'first_row_only='=>'bool', 'decode_binary='=>'bool'], + 'sqlite_udf_decode_binary' => ['string', 'data'=>'string'], + 'sqlite_udf_encode_binary' => ['string', 'data'=>'string'], + 'sqlite_unbuffered_query' => ['SQLiteUnbuffered|false', 'dbhandle'=>'resource', 'query'=>'string', 'result_type='=>'int', 'error_msg='=>'string'], + 'sqlite_valid' => ['bool', 'result'=>'resource'], + 'sqlsrv_begin_transaction' => ['bool', 'conn'=>'resource'], + 'sqlsrv_cancel' => ['bool', 'stmt'=>'resource'], + 'sqlsrv_client_info' => ['array|false', 'conn'=>'resource'], + 'sqlsrv_close' => ['bool', 'conn'=>'?resource'], + 'sqlsrv_commit' => ['bool', 'conn'=>'resource'], + 'sqlsrv_configure' => ['bool', 'setting'=>'string', 'value'=>'mixed'], + 'sqlsrv_connect' => ['resource|false', 'serverName'=>'string', 'connectionInfo='=>'array'], + 'sqlsrv_errors' => ['?array', 'errorsOrWarnings='=>'int'], + 'sqlsrv_execute' => ['bool', 'stmt'=>'resource'], + 'sqlsrv_fetch' => ['?bool', 'stmt'=>'resource', 'row='=>'int', 'offset='=>'int'], + 'sqlsrv_fetch_array' => ['array|null|false', 'stmt'=>'resource', 'fetchType='=>'int', 'row='=>'int', 'offset='=>'int'], + 'sqlsrv_fetch_object' => ['object|null|false', 'stmt'=>'resource', 'className='=>'string', 'ctorParams='=>'array', 'row='=>'int', 'offset='=>'int'], + 'sqlsrv_field_metadata' => ['array|false', 'stmt'=>'resource'], + 'sqlsrv_free_stmt' => ['bool', 'stmt'=>'resource'], + 'sqlsrv_get_config' => ['mixed', 'setting'=>'string'], + 'sqlsrv_get_field' => ['mixed', 'stmt'=>'resource', 'fieldIndex'=>'int', 'getAsType='=>'int'], + 'sqlsrv_has_rows' => ['bool', 'stmt'=>'resource'], + 'sqlsrv_next_result' => ['?bool', 'stmt'=>'resource'], + 'sqlsrv_num_fields' => ['int|false', 'stmt'=>'resource'], + 'sqlsrv_num_rows' => ['int|false', 'stmt'=>'resource'], + 'sqlsrv_prepare' => ['resource|false', 'conn'=>'resource', 'sql'=>'string', 'params='=>'array', 'options='=>'array'], + 'sqlsrv_query' => ['resource|false', 'conn'=>'resource', 'sql'=>'string', 'params='=>'array', 'options='=>'array'], + 'sqlsrv_rollback' => ['bool', 'conn'=>'resource'], + 'sqlsrv_rows_affected' => ['int|false', 'stmt'=>'resource'], + 'sqlsrv_send_stream_data' => ['bool', 'stmt'=>'resource'], + 'sqlsrv_server_info' => ['array', 'conn'=>'resource'], + 'sqrt' => ['float', 'num'=>'float'], + 'srand' => ['void', 'seed='=>'int', 'mode='=>'int'], + 'sscanf' => ['list|int|null', 'string'=>'string', 'format'=>'string', '&...w_vars='=>'string|int|float|null'], + 'ssdeep_fuzzy_compare' => ['int', 'signature1'=>'string', 'signature2'=>'string'], + 'ssdeep_fuzzy_hash' => ['string', 'to_hash'=>'string'], + 'ssdeep_fuzzy_hash_filename' => ['string', 'file_name'=>'string'], + 'ssh2_auth_agent' => ['bool', 'session'=>'resource', 'username'=>'string'], + 'ssh2_auth_hostbased_file' => ['bool', 'session'=>'resource', 'username'=>'string', 'hostname'=>'string', 'pubkeyfile'=>'string', 'privkeyfile'=>'string', 'passphrase='=>'string', 'local_username='=>'string'], + 'ssh2_auth_none' => ['bool|string[]', 'session'=>'resource', 'username'=>'string'], + 'ssh2_auth_password' => ['bool', 'session'=>'resource', 'username'=>'string', 'password'=>'string'], + 'ssh2_auth_pubkey_file' => ['bool', 'session'=>'resource', 'username'=>'string', 'pubkeyfile'=>'string', 'privkeyfile'=>'string', 'passphrase='=>'string'], + 'ssh2_connect' => ['resource|false', 'host'=>'string', 'port='=>'int', 'methods='=>'array', 'callbacks='=>'array'], + 'ssh2_disconnect' => ['bool', 'session'=>'resource'], + 'ssh2_exec' => ['resource|false', 'session'=>'resource', 'command'=>'string', 'pty='=>'string', 'env='=>'array', 'width='=>'int', 'height='=>'int', 'width_height_type='=>'int'], + 'ssh2_fetch_stream' => ['resource|false', 'channel'=>'resource', 'streamid'=>'int'], + 'ssh2_fingerprint' => ['string|false', 'session'=>'resource', 'flags='=>'int'], + 'ssh2_forward_accept' => ['resource|false', 'listener'=>'resource'], + 'ssh2_forward_listen' => ['resource|false', 'session'=>'resource', 'port'=>'int', 'host='=>'string', 'max_connections='=>'string'], + 'ssh2_methods_negotiated' => ['array|false', 'session'=>'resource'], + 'ssh2_poll' => ['int', '&polldes'=>'array', 'timeout='=>'int'], + 'ssh2_publickey_add' => ['bool', 'pkey'=>'resource', 'algoname'=>'string', 'blob'=>'string', 'overwrite='=>'bool', 'attributes='=>'array'], + 'ssh2_publickey_init' => ['resource|false', 'session'=>'resource'], + 'ssh2_publickey_list' => ['array|false', 'pkey'=>'resource'], + 'ssh2_publickey_remove' => ['bool', 'pkey'=>'resource', 'algoname'=>'string', 'blob'=>'string'], + 'ssh2_scp_recv' => ['bool', 'session'=>'resource', 'remote_file'=>'string', 'local_file'=>'string'], + 'ssh2_scp_send' => ['bool', 'session'=>'resource', 'local_file'=>'string', 'remote_file'=>'string', 'create_mode='=>'int'], + 'ssh2_sftp' => ['resource|false', 'session'=>'resource'], + 'ssh2_sftp_chmod' => ['bool', 'sftp'=>'resource', 'filename'=>'string', 'mode'=>'int'], + 'ssh2_sftp_lstat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'sftp'=>'resource', 'path'=>'string'], + 'ssh2_sftp_mkdir' => ['bool', 'sftp'=>'resource', 'dirname'=>'string', 'mode='=>'int', 'recursive='=>'bool'], + 'ssh2_sftp_readlink' => ['string|false', 'sftp'=>'resource', 'link'=>'string'], + 'ssh2_sftp_realpath' => ['string|false', 'sftp'=>'resource', 'filename'=>'string'], + 'ssh2_sftp_rename' => ['bool', 'sftp'=>'resource', 'from'=>'string', 'to'=>'string'], + 'ssh2_sftp_rmdir' => ['bool', 'sftp'=>'resource', 'dirname'=>'string'], + 'ssh2_sftp_stat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'sftp'=>'resource', 'path'=>'string'], + 'ssh2_sftp_symlink' => ['bool', 'sftp'=>'resource', 'target'=>'string', 'link'=>'string'], + 'ssh2_sftp_unlink' => ['bool', 'sftp'=>'resource', 'filename'=>'string'], + 'ssh2_shell' => ['resource|false', 'session'=>'resource', 'termtype='=>'string', 'env='=>'array', 'width='=>'int', 'height='=>'int', 'width_height_type='=>'int'], + 'ssh2_tunnel' => ['resource|false', 'session'=>'resource', 'host'=>'string', 'port'=>'int'], + 'stat' => ['array{0: int, 1: int, 2: int, 3: int, 4: int, 5: int, 6: int, 7: int, 8: int, 9: int, 10: int, 11: int, 12: int, dev: int, ino: int, mode: int, nlink: int, uid: int, gid: int, rdev: int, size: int, atime: int, mtime: int, ctime: int, blksize: int, blocks: int}|false', 'filename'=>'string'], + 'stats_absolute_deviation' => ['float', 'a'=>'array'], + 'stats_cdf_beta' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_binomial' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_cauchy' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_chisquare' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], + 'stats_cdf_exponential' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], + 'stats_cdf_f' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_gamma' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_laplace' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_logistic' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_negative_binomial' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_noncentral_chisquare' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_noncentral_f' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'par4'=>'float', 'which'=>'int'], + 'stats_cdf_noncentral_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_normal' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_poisson' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], + 'stats_cdf_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'which'=>'int'], + 'stats_cdf_uniform' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_cdf_weibull' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_covariance' => ['float', 'a'=>'array', 'b'=>'array'], + 'stats_den_uniform' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], + 'stats_dens_beta' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], + 'stats_dens_cauchy' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], + 'stats_dens_chisquare' => ['float', 'x'=>'float', 'dfr'=>'float'], + 'stats_dens_exponential' => ['float', 'x'=>'float', 'scale'=>'float'], + 'stats_dens_f' => ['float', 'x'=>'float', 'dfr1'=>'float', 'dfr2'=>'float'], + 'stats_dens_gamma' => ['float', 'x'=>'float', 'shape'=>'float', 'scale'=>'float'], + 'stats_dens_laplace' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], + 'stats_dens_logistic' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], + 'stats_dens_negative_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], + 'stats_dens_normal' => ['float', 'x'=>'float', 'ave'=>'float', 'stdev'=>'float'], + 'stats_dens_pmf_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], + 'stats_dens_pmf_hypergeometric' => ['float', 'n1'=>'float', 'n2'=>'float', 'N1'=>'float', 'N2'=>'float'], + 'stats_dens_pmf_negative_binomial' => ['float', 'x'=>'float', 'n'=>'float', 'pi'=>'float'], + 'stats_dens_pmf_poisson' => ['float', 'x'=>'float', 'lb'=>'float'], + 'stats_dens_t' => ['float', 'x'=>'float', 'dfr'=>'float'], + 'stats_dens_uniform' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], + 'stats_dens_weibull' => ['float', 'x'=>'float', 'a'=>'float', 'b'=>'float'], + 'stats_harmonic_mean' => ['float', 'a'=>'array'], + 'stats_kurtosis' => ['float', 'a'=>'array'], + 'stats_rand_gen_beta' => ['float', 'a'=>'float', 'b'=>'float'], + 'stats_rand_gen_chisquare' => ['float', 'df'=>'float'], + 'stats_rand_gen_exponential' => ['float', 'av'=>'float'], + 'stats_rand_gen_f' => ['float', 'dfn'=>'float', 'dfd'=>'float'], + 'stats_rand_gen_funiform' => ['float', 'low'=>'float', 'high'=>'float'], + 'stats_rand_gen_gamma' => ['float', 'a'=>'float', 'r'=>'float'], + 'stats_rand_gen_ibinomial' => ['int', 'n'=>'int', 'pp'=>'float'], + 'stats_rand_gen_ibinomial_negative' => ['int', 'n'=>'int', 'p'=>'float'], + 'stats_rand_gen_int' => ['int'], + 'stats_rand_gen_ipoisson' => ['int', 'mu'=>'float'], + 'stats_rand_gen_iuniform' => ['int', 'low'=>'int', 'high'=>'int'], + 'stats_rand_gen_noncenral_chisquare' => ['float', 'df'=>'float', 'xnonc'=>'float'], + 'stats_rand_gen_noncentral_chisquare' => ['float', 'df'=>'float', 'xnonc'=>'float'], + 'stats_rand_gen_noncentral_f' => ['float', 'dfn'=>'float', 'dfd'=>'float', 'xnonc'=>'float'], + 'stats_rand_gen_noncentral_t' => ['float', 'df'=>'float', 'xnonc'=>'float'], + 'stats_rand_gen_normal' => ['float', 'av'=>'float', 'sd'=>'float'], + 'stats_rand_gen_t' => ['float', 'df'=>'float'], + 'stats_rand_get_seeds' => ['array'], + 'stats_rand_phrase_to_seeds' => ['array', 'phrase'=>'string'], + 'stats_rand_ranf' => ['float'], + 'stats_rand_setall' => ['void', 'iseed1'=>'int', 'iseed2'=>'int'], + 'stats_skew' => ['float', 'a'=>'array'], + 'stats_standard_deviation' => ['float', 'a'=>'array', 'sample='=>'bool'], + 'stats_stat_binomial_coef' => ['float', 'x'=>'int', 'n'=>'int'], + 'stats_stat_correlation' => ['float', 'array1'=>'array', 'array2'=>'array'], + 'stats_stat_factorial' => ['float', 'n'=>'int'], + 'stats_stat_gennch' => ['float', 'n'=>'int'], + 'stats_stat_independent_t' => ['float', 'array1'=>'array', 'array2'=>'array'], + 'stats_stat_innerproduct' => ['float', 'array1'=>'array', 'array2'=>'array'], + 'stats_stat_noncentral_t' => ['float', 'par1'=>'float', 'par2'=>'float', 'par3'=>'float', 'which'=>'int'], + 'stats_stat_paired_t' => ['float', 'array1'=>'array', 'array2'=>'array'], + 'stats_stat_percentile' => ['float', 'arr'=>'array', 'perc'=>'float'], + 'stats_stat_powersum' => ['float', 'arr'=>'array', 'power'=>'float'], + 'stats_variance' => ['float', 'a'=>'array', 'sample='=>'bool'], + 'stomp_abort' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], + 'stomp_ack' => ['bool', 'link'=>'resource', 'msg'=>'', 'headers='=>'?array'], + 'stomp_begin' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], + 'stomp_close' => ['bool', 'link'=>'resource'], + 'stomp_commit' => ['bool', 'link'=>'resource', 'transaction_id'=>'string', 'headers='=>'?array'], + 'stomp_connect' => ['resource', 'link'=>'resource', 'broker='=>'string', 'username='=>'string', 'password='=>'string', 'headers='=>'?array'], + 'stomp_connect_error' => ['string'], + 'stomp_error' => ['string', 'link'=>'resource'], + 'stomp_get_read_timeout' => ['array', 'link'=>'resource'], + 'stomp_get_session_id' => ['string', 'link'=>'resource'], + 'stomp_has_frame' => ['bool', 'link'=>'resource'], + 'stomp_read_frame' => ['array', 'link'=>'resource', 'class_name='=>'string'], + 'stomp_send' => ['bool', 'link'=>'resource', 'destination'=>'string', 'msg'=>'', 'headers='=>'?array'], + 'stomp_set_read_timeout' => ['void', 'link'=>'resource', 'seconds'=>'int', 'microseconds='=>'?int'], + 'stomp_subscribe' => ['bool', 'link'=>'resource', 'destination'=>'string', 'headers='=>'?array'], + 'stomp_unsubscribe' => ['bool', 'link'=>'resource', 'destination'=>'string', 'headers='=>'?array'], + 'stomp_version' => ['string'], + 'str_getcsv' => ['non-empty-list', 'string'=>'string', 'separator='=>'string', 'enclosure='=>'string', 'escape='=>'string'], + 'str_ireplace' => ['string|string[]', 'search'=>'string|array', 'replace'=>'string|array', 'subject'=>'string|array', '&w_count='=>'int'], + 'str_pad' => ['string', 'string'=>'string', 'length'=>'int', 'pad_string='=>'string', 'pad_type='=>'int'], + 'str_repeat' => ['string', 'string'=>'string', 'times'=>'int'], + 'str_replace' => ['string|string[]', 'search'=>'string|array', 'replace'=>'string|array', 'subject'=>'string|array', '&w_count='=>'int'], + 'str_rot13' => ['string', 'string'=>'string'], + 'str_shuffle' => ['string', 'string'=>'string'], + 'str_split' => ['non-empty-list', 'string'=>'string', 'length='=>'positive-int'], + 'str_word_count' => ['array|int', 'string'=>'string', 'format='=>'int', 'characters='=>'string'], + 'strcasecmp' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'strchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'strcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'strcoll' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'strcspn' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'int'], + 'streamWrapper::__construct' => ['void'], + 'streamWrapper::__destruct' => ['void'], + 'streamWrapper::dir_closedir' => ['bool'], + 'streamWrapper::dir_opendir' => ['bool', 'path'=>'string', 'options'=>'int'], + 'streamWrapper::dir_readdir' => ['string'], + 'streamWrapper::dir_rewinddir' => ['bool'], + 'streamWrapper::mkdir' => ['bool', 'path'=>'string', 'mode'=>'int', 'options'=>'int'], + 'streamWrapper::rename' => ['bool', 'path_from'=>'string', 'path_to'=>'string'], + 'streamWrapper::rmdir' => ['bool', 'path'=>'string', 'options'=>'int'], + 'streamWrapper::stream_cast' => ['resource', 'cast_as'=>'int'], + 'streamWrapper::stream_close' => ['void'], + 'streamWrapper::stream_eof' => ['bool'], + 'streamWrapper::stream_flush' => ['bool'], + 'streamWrapper::stream_lock' => ['bool', 'operation'=>'mode'], + 'streamWrapper::stream_metadata' => ['bool', 'path'=>'string', 'option'=>'int', 'value'=>'mixed'], + 'streamWrapper::stream_open' => ['bool', 'path'=>'string', 'mode'=>'string', 'options'=>'int', 'opened_path'=>'string'], + 'streamWrapper::stream_read' => ['string', 'count'=>'int'], + 'streamWrapper::stream_seek' => ['bool', 'offset'=>'int', 'whence'=>'int'], + 'streamWrapper::stream_set_option' => ['bool', 'option'=>'int', 'arg1'=>'int', 'arg2'=>'int'], + 'streamWrapper::stream_stat' => ['array'], + 'streamWrapper::stream_tell' => ['int'], + 'streamWrapper::stream_truncate' => ['bool', 'new_size'=>'int'], + 'streamWrapper::stream_write' => ['int', 'data'=>'string'], + 'streamWrapper::unlink' => ['bool', 'path'=>'string'], + 'streamWrapper::url_stat' => ['array', 'path'=>'string', 'flags'=>'int'], + 'stream_bucket_append' => ['void', 'brigade'=>'resource', 'bucket'=>'object'], + 'stream_bucket_make_writeable' => ['?object', 'brigade'=>'resource'], + 'stream_bucket_new' => ['object', 'stream'=>'resource', 'buffer'=>'string'], + 'stream_bucket_prepend' => ['void', 'brigade'=>'resource', 'bucket'=>'object'], + 'stream_context_create' => ['resource', 'options='=>'array', 'params='=>'array'], + 'stream_context_get_default' => ['resource', 'options='=>'array'], + 'stream_context_get_options' => ['array', 'stream_or_context'=>'resource'], + 'stream_context_get_params' => ['array', 'context'=>'resource'], + 'stream_context_set_default' => ['resource', 'options'=>'array'], + 'stream_context_set_option' => ['bool', 'context'=>'', 'wrapper_or_options'=>'string', 'option_name'=>'string', 'value'=>''], + 'stream_context_set_option\'1' => ['bool', 'context'=>'', 'wrapper_or_options'=>'array'], + 'stream_context_set_params' => ['bool', 'context'=>'resource', 'params'=>'array'], + 'stream_copy_to_stream' => ['int|false', 'from'=>'resource', 'to'=>'resource', 'length='=>'int', 'offset='=>'int'], + 'stream_encoding' => ['bool', 'stream'=>'resource', 'encoding='=>'string'], + 'stream_filter_append' => ['resource|false', 'stream'=>'resource', 'filter_name'=>'string', 'mode='=>'int', 'params='=>'mixed'], + 'stream_filter_prepend' => ['resource|false', 'stream'=>'resource', 'filter_name'=>'string', 'mode='=>'int', 'params='=>'mixed'], + 'stream_filter_register' => ['bool', 'filter_name'=>'string', 'class'=>'string'], + 'stream_filter_remove' => ['bool', 'stream_filter'=>'resource'], + 'stream_get_contents' => ['string|false', 'stream'=>'resource', 'length='=>'int', 'offset='=>'int'], + 'stream_get_filters' => ['array'], + 'stream_get_line' => ['string|false', 'stream'=>'resource', 'length'=>'int', 'ending='=>'string'], + 'stream_get_meta_data' => ['array{timed_out:bool,blocked:bool,eof:bool,unread_bytes:int,stream_type:string,wrapper_type:string,wrapper_data:mixed,mode:string,seekable:bool,uri:string,mediatype:string,crypto?:array{protocol:string,cipher_name:string,cipher_bits:int,cipher_version:string}}', 'stream'=>'resource'], + 'stream_get_transports' => ['list'], + 'stream_get_wrappers' => ['list'], + 'stream_is_local' => ['bool', 'stream'=>'resource|string'], + 'stream_notification_callback' => ['callback', 'notification_code'=>'int', 'severity'=>'int', 'message'=>'string', 'message_code'=>'int', 'bytes_transferred'=>'int', 'bytes_max'=>'int'], + 'stream_register_wrapper' => ['bool', 'protocol'=>'string', 'class'=>'string', 'flags='=>'int'], + 'stream_resolve_include_path' => ['string|false', 'filename'=>'string'], + 'stream_select' => ['int|false', '&rw_read'=>'?resource[]', '&rw_write'=>'?resource[]', '&rw_except'=>'?resource[]', 'seconds'=>'?int', 'microseconds='=>'int'], + 'stream_set_blocking' => ['bool', 'stream'=>'resource', 'enable'=>'bool'], + 'stream_set_chunk_size' => ['int|false', 'stream'=>'resource', 'size'=>'int'], + 'stream_set_read_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], + 'stream_set_timeout' => ['bool', 'stream'=>'resource', 'seconds'=>'int', 'microseconds='=>'int'], + 'stream_set_write_buffer' => ['int', 'stream'=>'resource', 'size'=>'int'], + 'stream_socket_accept' => ['resource|false', 'socket'=>'resource', 'timeout='=>'float', '&w_peer_name='=>'string'], + 'stream_socket_client' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'timeout='=>'float', 'flags='=>'int', 'context='=>'resource'], + 'stream_socket_enable_crypto' => ['int|bool', 'stream'=>'resource', 'enable'=>'bool', 'crypto_method='=>'?int', 'session_stream='=>'resource'], + 'stream_socket_get_name' => ['string', 'socket'=>'resource', 'remote'=>'bool'], + 'stream_socket_pair' => ['resource[]|false', 'domain'=>'int', 'type'=>'int', 'protocol'=>'int'], + 'stream_socket_recvfrom' => ['string', 'socket'=>'resource', 'length'=>'int', 'flags='=>'int', '&w_address='=>'string'], + 'stream_socket_sendto' => ['int', 'socket'=>'resource', 'data'=>'string', 'flags='=>'int', 'address='=>'string'], + 'stream_socket_server' => ['resource|false', 'address'=>'string', '&w_error_code='=>'int', '&w_error_message='=>'string', 'flags='=>'int', 'context='=>'resource'], + 'stream_socket_shutdown' => ['bool', 'stream'=>'resource', 'mode'=>'int'], + 'stream_supports_lock' => ['bool', 'stream'=>'resource'], + 'stream_wrapper_register' => ['bool', 'protocol'=>'string', 'class'=>'string', 'flags='=>'int'], + 'stream_wrapper_restore' => ['bool', 'protocol'=>'string'], + 'stream_wrapper_unregister' => ['bool', 'protocol'=>'string'], + 'strftime' => ['string|false', 'format'=>'string', 'timestamp='=>'int'], + 'strip_tags' => ['string', 'string'=>'string', 'allowed_tags='=>'string'], + 'stripcslashes' => ['string', 'string'=>'string'], + 'stripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'stripslashes' => ['string', 'string'=>'string'], + 'stristr' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'strlen' => ['0|positive-int', 'string'=>'string'], + 'strnatcasecmp' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'strnatcmp' => ['int', 'string1'=>'string', 'string2'=>'string'], + 'strncasecmp' => ['int', 'string1'=>'string', 'string2'=>'string', 'length'=>'int'], + 'strncmp' => ['int', 'string1'=>'string', 'string2'=>'string', 'length'=>'int'], + 'strpbrk' => ['string|false', 'string'=>'string', 'characters'=>'string'], + 'strpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'strptime' => ['array|false', 'timestamp'=>'string', 'format'=>'string'], + 'strrchr' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int'], + 'strrev' => ['string', 'string'=>'string'], + 'strripos' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'strrpos' => ['int|false', 'haystack'=>'string', 'needle'=>'string|int', 'offset='=>'int'], + 'strspn' => ['int', 'string'=>'string', 'characters'=>'string', 'offset='=>'int', 'length='=>'int'], + 'strstr' => ['string|false', 'haystack'=>'string', 'needle'=>'string|int', 'before_needle='=>'bool'], + 'strtok' => ['string|false', 'string'=>'string', 'token'=>'string'], + 'strtok\'1' => ['string|false', 'string'=>'string'], + 'strtolower' => ['lowercase-string', 'string'=>'string'], + 'strtotime' => ['int|false', 'datetime'=>'string', 'baseTimestamp='=>'int'], + 'strtoupper' => ['string', 'string'=>'string'], + 'strtr' => ['string', 'string'=>'string', 'from'=>'string', 'to'=>'string'], + 'strtr\'1' => ['string', 'string'=>'string', 'from'=>'array'], + 'strval' => ['string', 'value'=>'mixed'], + 'styleObj::__construct' => ['void', 'label'=>'labelObj', 'style'=>'styleObj'], + 'styleObj::convertToString' => ['string'], + 'styleObj::free' => ['void'], + 'styleObj::getBinding' => ['string', 'stylebinding'=>'mixed'], + 'styleObj::getGeomTransform' => ['string'], + 'styleObj::ms_newStyleObj' => ['styleObj', 'class'=>'classObj', 'style'=>'styleObj'], + 'styleObj::removeBinding' => ['int', 'stylebinding'=>'mixed'], + 'styleObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'styleObj::setBinding' => ['int', 'stylebinding'=>'mixed', 'value'=>'string'], + 'styleObj::setGeomTransform' => ['int', 'value'=>'string'], + 'styleObj::updateFromString' => ['int', 'snippet'=>'string'], + 'substr' => ['string|false', 'string'=>'string', 'offset'=>'int', 'length='=>'int'], + 'substr_compare' => ['int|false', 'haystack'=>'string', 'needle'=>'string', 'offset'=>'int', 'length='=>'int', 'case_insensitive='=>'bool'], + 'substr_count' => ['int', 'haystack'=>'string', 'needle'=>'string', 'offset='=>'int', 'length='=>'int'], + 'substr_replace' => ['string|string[]', 'string'=>'string|string[]', 'replace'=>'string|string[]', 'offset'=>'int|int[]', 'length='=>'int|int[]'], + 'suhosin_encrypt_cookie' => ['string|false', 'name'=>'string', 'value'=>'string'], + 'suhosin_get_raw_cookies' => ['array'], + 'svm::crossvalidate' => ['float', 'problem'=>'array', 'number_of_folds'=>'int'], + 'svm::train' => ['SVMModel', 'problem'=>'array', 'weights='=>'array'], + 'svn_add' => ['bool', 'path'=>'string', 'recursive='=>'bool', 'force='=>'bool'], + 'svn_auth_get_parameter' => ['?string', 'key'=>'string'], + 'svn_auth_set_parameter' => ['void', 'key'=>'string', 'value'=>'string'], + 'svn_blame' => ['array', 'repository_url'=>'string', 'revision_no='=>'int'], + 'svn_cat' => ['string', 'repos_url'=>'string', 'revision_no='=>'int'], + 'svn_checkout' => ['bool', 'repos'=>'string', 'targetpath'=>'string', 'revision='=>'int', 'flags='=>'int'], + 'svn_cleanup' => ['bool', 'workingdir'=>'string'], + 'svn_client_version' => ['string'], + 'svn_commit' => ['array', 'log'=>'string', 'targets'=>'array', 'dontrecurse='=>'bool'], + 'svn_delete' => ['bool', 'path'=>'string', 'force='=>'bool'], + 'svn_diff' => ['array', 'path1'=>'string', 'rev1'=>'int', 'path2'=>'string', 'rev2'=>'int'], + 'svn_export' => ['bool', 'frompath'=>'string', 'topath'=>'string', 'working_copy='=>'bool', 'revision_no='=>'int'], + 'svn_fs_abort_txn' => ['bool', 'txn'=>'resource'], + 'svn_fs_apply_text' => ['resource', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_begin_txn2' => ['resource', 'repos'=>'resource', 'rev'=>'int'], + 'svn_fs_change_node_prop' => ['bool', 'root'=>'resource', 'path'=>'string', 'name'=>'string', 'value'=>'string'], + 'svn_fs_check_path' => ['int', 'fsroot'=>'resource', 'path'=>'string'], + 'svn_fs_contents_changed' => ['bool', 'root1'=>'resource', 'path1'=>'string', 'root2'=>'resource', 'path2'=>'string'], + 'svn_fs_copy' => ['bool', 'from_root'=>'resource', 'from_path'=>'string', 'to_root'=>'resource', 'to_path'=>'string'], + 'svn_fs_delete' => ['bool', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_dir_entries' => ['array', 'fsroot'=>'resource', 'path'=>'string'], + 'svn_fs_file_contents' => ['resource', 'fsroot'=>'resource', 'path'=>'string'], + 'svn_fs_file_length' => ['int', 'fsroot'=>'resource', 'path'=>'string'], + 'svn_fs_is_dir' => ['bool', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_is_file' => ['bool', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_make_dir' => ['bool', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_make_file' => ['bool', 'root'=>'resource', 'path'=>'string'], + 'svn_fs_node_created_rev' => ['int', 'fsroot'=>'resource', 'path'=>'string'], + 'svn_fs_node_prop' => ['string', 'fsroot'=>'resource', 'path'=>'string', 'propname'=>'string'], + 'svn_fs_props_changed' => ['bool', 'root1'=>'resource', 'path1'=>'string', 'root2'=>'resource', 'path2'=>'string'], + 'svn_fs_revision_prop' => ['string', 'fs'=>'resource', 'revnum'=>'int', 'propname'=>'string'], + 'svn_fs_revision_root' => ['resource', 'fs'=>'resource', 'revnum'=>'int'], + 'svn_fs_txn_root' => ['resource', 'txn'=>'resource'], + 'svn_fs_youngest_rev' => ['int', 'fs'=>'resource'], + 'svn_import' => ['bool', 'path'=>'string', 'url'=>'string', 'nonrecursive'=>'bool'], + 'svn_log' => ['array', 'repos_url'=>'string', 'start_revision='=>'int', 'end_revision='=>'int', 'limit='=>'int', 'flags='=>'int'], + 'svn_ls' => ['array', 'repos_url'=>'string', 'revision_no='=>'int', 'recurse='=>'bool', 'peg='=>'bool'], + 'svn_mkdir' => ['bool', 'path'=>'string', 'log_message='=>'string'], + 'svn_move' => ['mixed', 'src_path'=>'string', 'dst_path'=>'string', 'force='=>'bool'], + 'svn_propget' => ['mixed', 'path'=>'string', 'property_name'=>'string', 'recurse='=>'bool', 'revision'=>'int'], + 'svn_proplist' => ['mixed', 'path'=>'string', 'recurse='=>'bool', 'revision'=>'int'], + 'svn_repos_create' => ['resource', 'path'=>'string', 'config='=>'array', 'fsconfig='=>'array'], + 'svn_repos_fs' => ['resource', 'repos'=>'resource'], + 'svn_repos_fs_begin_txn_for_commit' => ['resource', 'repos'=>'resource', 'rev'=>'int', 'author'=>'string', 'log_msg'=>'string'], + 'svn_repos_fs_commit_txn' => ['int', 'txn'=>'resource'], + 'svn_repos_hotcopy' => ['bool', 'repospath'=>'string', 'destpath'=>'string', 'cleanlogs'=>'bool'], + 'svn_repos_open' => ['resource', 'path'=>'string'], + 'svn_repos_recover' => ['bool', 'path'=>'string'], + 'svn_revert' => ['bool', 'path'=>'string', 'recursive='=>'bool'], + 'svn_status' => ['array', 'path'=>'string', 'flags='=>'int'], + 'svn_update' => ['int|false', 'path'=>'string', 'revno='=>'int', 'recurse='=>'bool'], + 'swf_actiongeturl' => ['', 'url'=>'string', 'target'=>'string'], + 'swf_actiongotoframe' => ['', 'framenumber'=>'int'], + 'swf_actiongotolabel' => ['', 'label'=>'string'], + 'swf_actionnextframe' => [''], + 'swf_actionplay' => [''], + 'swf_actionprevframe' => [''], + 'swf_actionsettarget' => ['', 'target'=>'string'], + 'swf_actionstop' => [''], + 'swf_actiontogglequality' => [''], + 'swf_actionwaitforframe' => ['', 'framenumber'=>'int', 'skipcount'=>'int'], + 'swf_addbuttonrecord' => ['', 'states'=>'int', 'shapeid'=>'int', 'depth'=>'int'], + 'swf_addcolor' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], + 'swf_closefile' => ['', 'return_file='=>'int'], + 'swf_definebitmap' => ['', 'objid'=>'int', 'image_name'=>'string'], + 'swf_definefont' => ['', 'fontid'=>'int', 'fontname'=>'string'], + 'swf_defineline' => ['', 'objid'=>'int', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'width'=>'float'], + 'swf_definepoly' => ['', 'objid'=>'int', 'coords'=>'array', 'npoints'=>'int', 'width'=>'float'], + 'swf_definerect' => ['', 'objid'=>'int', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'width'=>'float'], + 'swf_definetext' => ['', 'objid'=>'int', 'string'=>'string', 'docenter'=>'int'], + 'swf_endbutton' => [''], + 'swf_enddoaction' => [''], + 'swf_endshape' => [''], + 'swf_endsymbol' => [''], + 'swf_fontsize' => ['', 'size'=>'float'], + 'swf_fontslant' => ['', 'slant'=>'float'], + 'swf_fonttracking' => ['', 'tracking'=>'float'], + 'swf_getbitmapinfo' => ['array', 'bitmapid'=>'int'], + 'swf_getfontinfo' => ['array'], + 'swf_getframe' => ['int'], + 'swf_labelframe' => ['', 'name'=>'string'], + 'swf_lookat' => ['', 'view_x'=>'float', 'view_y'=>'float', 'view_z'=>'float', 'reference_x'=>'float', 'reference_y'=>'float', 'reference_z'=>'float', 'twist'=>'float'], + 'swf_modifyobject' => ['', 'depth'=>'int', 'how'=>'int'], + 'swf_mulcolor' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], + 'swf_nextid' => ['int'], + 'swf_oncondition' => ['', 'transition'=>'int'], + 'swf_openfile' => ['', 'filename'=>'string', 'width'=>'float', 'height'=>'float', 'framerate'=>'float', 'r'=>'float', 'g'=>'float', 'b'=>'float'], + 'swf_ortho' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float', 'zmin'=>'float', 'zmax'=>'float'], + 'swf_ortho2' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float'], + 'swf_perspective' => ['', 'fovy'=>'float', 'aspect'=>'float', 'near'=>'float', 'far'=>'float'], + 'swf_placeobject' => ['', 'objid'=>'int', 'depth'=>'int'], + 'swf_polarview' => ['', 'dist'=>'float', 'azimuth'=>'float', 'incidence'=>'float', 'twist'=>'float'], + 'swf_popmatrix' => [''], + 'swf_posround' => ['', 'round'=>'int'], + 'swf_pushmatrix' => [''], + 'swf_removeobject' => ['', 'depth'=>'int'], + 'swf_rotate' => ['', 'angle'=>'float', 'axis'=>'string'], + 'swf_scale' => ['', 'x'=>'float', 'y'=>'float', 'z'=>'float'], + 'swf_setfont' => ['', 'fontid'=>'int'], + 'swf_setframe' => ['', 'framenumber'=>'int'], + 'swf_shapearc' => ['', 'x'=>'float', 'y'=>'float', 'r'=>'float', 'ang1'=>'float', 'ang2'=>'float'], + 'swf_shapecurveto' => ['', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float'], + 'swf_shapecurveto3' => ['', 'x1'=>'float', 'y1'=>'float', 'x2'=>'float', 'y2'=>'float', 'x3'=>'float', 'y3'=>'float'], + 'swf_shapefillbitmapclip' => ['', 'bitmapid'=>'int'], + 'swf_shapefillbitmaptile' => ['', 'bitmapid'=>'int'], + 'swf_shapefilloff' => [''], + 'swf_shapefillsolid' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float'], + 'swf_shapelinesolid' => ['', 'r'=>'float', 'g'=>'float', 'b'=>'float', 'a'=>'float', 'width'=>'float'], + 'swf_shapelineto' => ['', 'x'=>'float', 'y'=>'float'], + 'swf_shapemoveto' => ['', 'x'=>'float', 'y'=>'float'], + 'swf_showframe' => [''], + 'swf_startbutton' => ['', 'objid'=>'int', 'type'=>'int'], + 'swf_startdoaction' => [''], + 'swf_startshape' => ['', 'objid'=>'int'], + 'swf_startsymbol' => ['', 'objid'=>'int'], + 'swf_textwidth' => ['float', 'string'=>'string'], + 'swf_translate' => ['', 'x'=>'float', 'y'=>'float', 'z'=>'float'], + 'swf_viewport' => ['', 'xmin'=>'float', 'xmax'=>'float', 'ymin'=>'float', 'ymax'=>'float'], + 'swoole\async::dnsLookup' => ['void', 'hostname'=>'string', 'callback'=>'callable'], + 'swoole\async::read' => ['bool', 'filename'=>'string', 'callback'=>'callable', 'chunk_size='=>'integer', 'offset='=>'integer'], + 'swoole\async::readFile' => ['void', 'filename'=>'string', 'callback'=>'callable'], + 'swoole\async::set' => ['void', 'settings'=>'array'], + 'swoole\async::write' => ['void', 'filename'=>'string', 'content'=>'string', 'offset='=>'integer', 'callback='=>'callable'], + 'swoole\async::writeFile' => ['void', 'filename'=>'string', 'content'=>'string', 'callback='=>'callable', 'flags='=>'string'], + 'swoole\atomic::add' => ['integer', 'add_value='=>'integer'], + 'swoole\atomic::cmpset' => ['integer', 'cmp_value'=>'integer', 'new_value'=>'integer'], + 'swoole\atomic::get' => ['integer'], + 'swoole\atomic::set' => ['integer', 'value'=>'integer'], + 'swoole\atomic::sub' => ['integer', 'sub_value='=>'integer'], + 'swoole\buffer::__destruct' => ['void'], + 'swoole\buffer::__toString' => ['string'], + 'swoole\buffer::append' => ['integer', 'data'=>'string'], + 'swoole\buffer::clear' => ['void'], + 'swoole\buffer::expand' => ['integer', 'size'=>'integer'], + 'swoole\buffer::read' => ['string', 'offset'=>'integer', 'length'=>'integer'], + 'swoole\buffer::recycle' => ['void'], + 'swoole\buffer::substr' => ['string', 'offset'=>'integer', 'length='=>'integer', 'remove='=>'bool'], + 'swoole\buffer::write' => ['void', 'offset'=>'integer', 'data'=>'string'], + 'swoole\channel::__destruct' => ['void'], + 'swoole\channel::pop' => ['mixed'], + 'swoole\channel::push' => ['bool', 'data'=>'string'], + 'swoole\channel::stats' => ['array'], + 'swoole\client::__destruct' => ['void'], + 'swoole\client::close' => ['bool', 'force='=>'bool'], + 'swoole\client::connect' => ['bool', 'host'=>'string', 'port='=>'integer', 'timeout='=>'integer', 'flag='=>'integer'], + 'swoole\client::getpeername' => ['array'], + 'swoole\client::getsockname' => ['array'], + 'swoole\client::isConnected' => ['bool'], + 'swoole\client::on' => ['void', 'event'=>'string', 'callback'=>'callable'], + 'swoole\client::pause' => ['void'], + 'swoole\client::pipe' => ['void', 'socket'=>'string'], + 'swoole\client::recv' => ['void', 'size='=>'string', 'flag='=>'string'], + 'swoole\client::resume' => ['void'], + 'swoole\client::send' => ['integer', 'data'=>'string', 'flag='=>'string'], + 'swoole\client::sendfile' => ['bool', 'filename'=>'string', 'offset='=>'int'], + 'swoole\client::sendto' => ['bool', 'ip'=>'string', 'port'=>'integer', 'data'=>'string'], + 'swoole\client::set' => ['void', 'settings'=>'array'], + 'swoole\client::sleep' => ['void'], + 'swoole\client::wakeup' => ['void'], + 'swoole\connection\iterator::count' => ['int'], + 'swoole\connection\iterator::current' => ['Connection'], + 'swoole\connection\iterator::key' => ['int'], + 'swoole\connection\iterator::next' => ['Connection'], + 'swoole\connection\iterator::offsetExists' => ['bool', 'index'=>'int'], + 'swoole\connection\iterator::offsetGet' => ['Connection', 'index'=>'string'], + 'swoole\connection\iterator::offsetSet' => ['void', 'offset'=>'int', 'connection'=>'mixed'], + 'swoole\connection\iterator::offsetUnset' => ['void', 'offset'=>'int'], + 'swoole\connection\iterator::rewind' => ['void'], + 'swoole\connection\iterator::valid' => ['bool'], + 'swoole\coroutine::call_user_func' => ['mixed', 'callback'=>'callable', 'parameter='=>'mixed', '...args='=>'mixed'], + 'swoole\coroutine::call_user_func_array' => ['mixed', 'callback'=>'callable', 'param_array'=>'array'], + 'swoole\coroutine::cli_wait' => ['ReturnType'], + 'swoole\coroutine::create' => ['ReturnType'], + 'swoole\coroutine::getuid' => ['ReturnType'], + 'swoole\coroutine::resume' => ['ReturnType'], + 'swoole\coroutine::suspend' => ['ReturnType'], + 'swoole\coroutine\client::__destruct' => ['ReturnType'], + 'swoole\coroutine\client::close' => ['ReturnType'], + 'swoole\coroutine\client::connect' => ['ReturnType'], + 'swoole\coroutine\client::getpeername' => ['ReturnType'], + 'swoole\coroutine\client::getsockname' => ['ReturnType'], + 'swoole\coroutine\client::isConnected' => ['ReturnType'], + 'swoole\coroutine\client::recv' => ['ReturnType'], + 'swoole\coroutine\client::send' => ['ReturnType'], + 'swoole\coroutine\client::sendfile' => ['ReturnType'], + 'swoole\coroutine\client::sendto' => ['ReturnType'], + 'swoole\coroutine\client::set' => ['ReturnType'], + 'swoole\coroutine\http\client::__destruct' => ['ReturnType'], + 'swoole\coroutine\http\client::addFile' => ['ReturnType'], + 'swoole\coroutine\http\client::close' => ['ReturnType'], + 'swoole\coroutine\http\client::execute' => ['ReturnType'], + 'swoole\coroutine\http\client::get' => ['ReturnType'], + 'swoole\coroutine\http\client::getDefer' => ['ReturnType'], + 'swoole\coroutine\http\client::isConnected' => ['ReturnType'], + 'swoole\coroutine\http\client::post' => ['ReturnType'], + 'swoole\coroutine\http\client::recv' => ['ReturnType'], + 'swoole\coroutine\http\client::set' => ['ReturnType'], + 'swoole\coroutine\http\client::setCookies' => ['ReturnType'], + 'swoole\coroutine\http\client::setData' => ['ReturnType'], + 'swoole\coroutine\http\client::setDefer' => ['ReturnType'], + 'swoole\coroutine\http\client::setHeaders' => ['ReturnType'], + 'swoole\coroutine\http\client::setMethod' => ['ReturnType'], + 'swoole\coroutine\mysql::__destruct' => ['ReturnType'], + 'swoole\coroutine\mysql::close' => ['ReturnType'], + 'swoole\coroutine\mysql::connect' => ['ReturnType'], + 'swoole\coroutine\mysql::getDefer' => ['ReturnType'], + 'swoole\coroutine\mysql::query' => ['ReturnType'], + 'swoole\coroutine\mysql::recv' => ['ReturnType'], + 'swoole\coroutine\mysql::setDefer' => ['ReturnType'], + 'swoole\event::add' => ['bool', 'fd'=>'int', 'read_callback'=>'callable', 'write_callback='=>'callable', 'events='=>'string'], + 'swoole\event::defer' => ['void', 'callback'=>'mixed'], + 'swoole\event::del' => ['bool', 'fd'=>'string'], + 'swoole\event::exit' => ['void'], + 'swoole\event::set' => ['bool', 'fd'=>'int', 'read_callback='=>'string', 'write_callback='=>'string', 'events='=>'string'], + 'swoole\event::wait' => ['void'], + 'swoole\event::write' => ['void', 'fd'=>'string', 'data'=>'string'], + 'swoole\http\client::__destruct' => ['void'], + 'swoole\http\client::addFile' => ['void', 'path'=>'string', 'name'=>'string', 'type='=>'string', 'filename='=>'string', 'offset='=>'string'], + 'swoole\http\client::close' => ['void'], + 'swoole\http\client::download' => ['void', 'path'=>'string', 'file'=>'string', 'callback'=>'callable', 'offset='=>'integer'], + 'swoole\http\client::execute' => ['void', 'path'=>'string', 'callback'=>'string'], + 'swoole\http\client::get' => ['void', 'path'=>'string', 'callback'=>'callable'], + 'swoole\http\client::isConnected' => ['bool'], + 'swoole\http\client::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\http\client::post' => ['void', 'path'=>'string', 'data'=>'string', 'callback'=>'callable'], + 'swoole\http\client::push' => ['void', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string'], + 'swoole\http\client::set' => ['void', 'settings'=>'array'], + 'swoole\http\client::setCookies' => ['void', 'cookies'=>'array'], + 'swoole\http\client::setData' => ['ReturnType', 'data'=>'string'], + 'swoole\http\client::setHeaders' => ['void', 'headers'=>'array'], + 'swoole\http\client::setMethod' => ['void', 'method'=>'string'], + 'swoole\http\client::upgrade' => ['void', 'path'=>'string', 'callback'=>'string'], + 'swoole\http\request::__destruct' => ['void'], + 'swoole\http\request::rawcontent' => ['string'], + 'swoole\http\response::__destruct' => ['void'], + 'swoole\http\response::cookie' => ['string', 'name'=>'string', 'value='=>'string', 'expires='=>'string', 'path='=>'string', 'domain='=>'string', 'secure='=>'string', 'httponly='=>'string'], + 'swoole\http\response::end' => ['void', 'content='=>'string'], + 'swoole\http\response::gzip' => ['ReturnType', 'compress_level='=>'string'], + 'swoole\http\response::header' => ['void', 'key'=>'string', 'value'=>'string', 'ucwords='=>'string'], + 'swoole\http\response::initHeader' => ['ReturnType'], + 'swoole\http\response::rawcookie' => ['ReturnType', 'name'=>'string', 'value='=>'string', 'expires='=>'string', 'path='=>'string', 'domain='=>'string', 'secure='=>'string', 'httponly='=>'string'], + 'swoole\http\response::sendfile' => ['ReturnType', 'filename'=>'string', 'offset='=>'int'], + 'swoole\http\response::status' => ['ReturnType', 'http_code'=>'string'], + 'swoole\http\response::write' => ['void', 'content'=>'string'], + 'swoole\http\server::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\http\server::start' => ['void'], + 'swoole\lock::__destruct' => ['void'], + 'swoole\lock::lock' => ['void'], + 'swoole\lock::lock_read' => ['void'], + 'swoole\lock::trylock' => ['void'], + 'swoole\lock::trylock_read' => ['void'], + 'swoole\lock::unlock' => ['void'], + 'swoole\mmap::open' => ['ReturnType', 'filename'=>'string', 'size='=>'string', 'offset='=>'string'], + 'swoole\mysql::__destruct' => ['void'], + 'swoole\mysql::close' => ['void'], + 'swoole\mysql::connect' => ['void', 'server_config'=>'array', 'callback'=>'callable'], + 'swoole\mysql::getBuffer' => ['ReturnType'], + 'swoole\mysql::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\mysql::query' => ['ReturnType', 'sql'=>'string', 'callback'=>'callable'], + 'swoole\process::__destruct' => ['void'], + 'swoole\process::alarm' => ['void', 'interval_usec'=>'integer'], + 'swoole\process::close' => ['void'], + 'swoole\process::daemon' => ['void', 'nochdir='=>'bool', 'noclose='=>'bool'], + 'swoole\process::exec' => ['ReturnType', 'exec_file'=>'string', 'args'=>'string'], + 'swoole\process::exit' => ['void', 'exit_code='=>'string'], + 'swoole\process::freeQueue' => ['void'], + 'swoole\process::kill' => ['void', 'pid'=>'integer', 'signal_no='=>'string'], + 'swoole\process::name' => ['void', 'process_name'=>'string'], + 'swoole\process::pop' => ['mixed', 'maxsize='=>'integer'], + 'swoole\process::push' => ['bool', 'data'=>'string'], + 'swoole\process::read' => ['string', 'maxsize='=>'integer'], + 'swoole\process::signal' => ['void', 'signal_no'=>'string', 'callback'=>'callable'], + 'swoole\process::start' => ['void'], + 'swoole\process::statQueue' => ['array'], + 'swoole\process::useQueue' => ['bool', 'key'=>'integer', 'mode='=>'integer'], + 'swoole\process::wait' => ['array', 'blocking='=>'bool'], + 'swoole\process::write' => ['integer', 'data'=>'string'], + 'swoole\redis\server::format' => ['ReturnType', 'type'=>'string', 'value='=>'string'], + 'swoole\redis\server::setHandler' => ['ReturnType', 'command'=>'string', 'callback'=>'string', 'number_of_string_param='=>'string', 'type_of_array_param='=>'string'], + 'swoole\redis\server::start' => ['ReturnType'], + 'swoole\serialize::pack' => ['ReturnType', 'data'=>'string', 'is_fast='=>'int'], + 'swoole\serialize::unpack' => ['ReturnType', 'data'=>'string', 'args='=>'string'], + 'swoole\server::addProcess' => ['bool', 'process'=>'swoole_process'], + 'swoole\server::addlistener' => ['void', 'host'=>'string', 'port'=>'integer', 'socket_type'=>'string'], + 'swoole\server::after' => ['ReturnType', 'after_time_ms'=>'integer', 'callback'=>'callable', 'param='=>'string'], + 'swoole\server::bind' => ['bool', 'fd'=>'integer', 'uid'=>'integer'], + 'swoole\server::close' => ['bool', 'fd'=>'integer', 'reset='=>'bool'], + 'swoole\server::confirm' => ['bool', 'fd'=>'integer'], + 'swoole\server::connection_info' => ['array', 'fd'=>'integer', 'reactor_id='=>'integer'], + 'swoole\server::connection_list' => ['array', 'start_fd'=>'integer', 'pagesize='=>'integer'], + 'swoole\server::defer' => ['void', 'callback'=>'callable'], + 'swoole\server::exist' => ['bool', 'fd'=>'integer'], + 'swoole\server::finish' => ['void', 'data'=>'string'], + 'swoole\server::getClientInfo' => ['ReturnType', 'fd'=>'integer', 'reactor_id='=>'integer'], + 'swoole\server::getClientList' => ['array', 'start_fd'=>'integer', 'pagesize='=>'integer'], + 'swoole\server::getLastError' => ['integer'], + 'swoole\server::heartbeat' => ['mixed', 'if_close_connection'=>'bool'], + 'swoole\server::listen' => ['bool', 'host'=>'string', 'port'=>'integer', 'socket_type'=>'string'], + 'swoole\server::on' => ['void', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\server::pause' => ['void', 'fd'=>'integer'], + 'swoole\server::protect' => ['void', 'fd'=>'integer', 'is_protected='=>'bool'], + 'swoole\server::reload' => ['bool'], + 'swoole\server::resume' => ['void', 'fd'=>'integer'], + 'swoole\server::send' => ['bool', 'fd'=>'integer', 'data'=>'string', 'reactor_id='=>'integer'], + 'swoole\server::sendMessage' => ['bool', 'worker_id'=>'integer', 'data'=>'string'], + 'swoole\server::sendfile' => ['bool', 'fd'=>'integer', 'filename'=>'string', 'offset='=>'integer'], + 'swoole\server::sendto' => ['bool', 'ip'=>'string', 'port'=>'integer', 'data'=>'string', 'server_socket='=>'string'], + 'swoole\server::sendwait' => ['bool', 'fd'=>'integer', 'data'=>'string'], + 'swoole\server::set' => ['ReturnType', 'settings'=>'array'], + 'swoole\server::shutdown' => ['void'], + 'swoole\server::start' => ['void'], + 'swoole\server::stats' => ['array'], + 'swoole\server::stop' => ['bool', 'worker_id='=>'integer'], + 'swoole\server::task' => ['mixed', 'data'=>'string', 'dst_worker_id='=>'integer', 'callback='=>'callable'], + 'swoole\server::taskWaitMulti' => ['void', 'tasks'=>'array', 'timeout_ms='=>'double'], + 'swoole\server::taskwait' => ['void', 'data'=>'string', 'timeout='=>'float', 'worker_id='=>'integer'], + 'swoole\server::tick' => ['void', 'interval_ms'=>'integer', 'callback'=>'callable'], + 'swoole\server\port::__destruct' => ['void'], + 'swoole\server\port::on' => ['ReturnType', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\server\port::set' => ['void', 'settings'=>'array'], + 'swoole\table::column' => ['ReturnType', 'name'=>'string', 'type'=>'string', 'size='=>'integer'], + 'swoole\table::count' => ['integer'], + 'swoole\table::create' => ['void'], + 'swoole\table::current' => ['array'], + 'swoole\table::decr' => ['ReturnType', 'key'=>'string', 'column'=>'string', 'decrby='=>'integer'], + 'swoole\table::del' => ['void', 'key'=>'string'], + 'swoole\table::destroy' => ['void'], + 'swoole\table::exist' => ['bool', 'key'=>'string'], + 'swoole\table::get' => ['integer', 'row_key'=>'string', 'column_key'=>'string'], + 'swoole\table::incr' => ['void', 'key'=>'string', 'column'=>'string', 'incrby='=>'integer'], + 'swoole\table::key' => ['string'], + 'swoole\table::next' => ['ReturnType'], + 'swoole\table::rewind' => ['void'], + 'swoole\table::set' => ['VOID', 'key'=>'string', 'value'=>'array'], + 'swoole\table::valid' => ['bool'], + 'swoole\timer::after' => ['void', 'after_time_ms'=>'int', 'callback'=>'callable'], + 'swoole\timer::clear' => ['void', 'timer_id'=>'integer'], + 'swoole\timer::exists' => ['bool', 'timer_id'=>'integer'], + 'swoole\timer::tick' => ['void', 'interval_ms'=>'integer', 'callback'=>'callable', 'param='=>'string'], + 'swoole\websocket\server::exist' => ['bool', 'fd'=>'integer'], + 'swoole\websocket\server::on' => ['ReturnType', 'event_name'=>'string', 'callback'=>'callable'], + 'swoole\websocket\server::pack' => ['binary', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string', 'mask='=>'string'], + 'swoole\websocket\server::push' => ['void', 'fd'=>'string', 'data'=>'string', 'opcode='=>'string', 'finish='=>'string'], + 'swoole\websocket\server::unpack' => ['string', 'data'=>'binary'], + 'swoole_async_dns_lookup' => ['bool', 'hostname'=>'string', 'callback'=>'callable'], + 'swoole_async_read' => ['bool', 'filename'=>'string', 'callback'=>'callable', 'chunk_size='=>'int', 'offset='=>'int'], + 'swoole_async_readfile' => ['bool', 'filename'=>'string', 'callback'=>'string'], + 'swoole_async_set' => ['void', 'settings'=>'array'], + 'swoole_async_write' => ['bool', 'filename'=>'string', 'content'=>'string', 'offset='=>'int', 'callback='=>'callable'], + 'swoole_async_writefile' => ['bool', 'filename'=>'string', 'content'=>'string', 'callback='=>'callable', 'flags='=>'int'], + 'swoole_client_select' => ['int', 'read_array'=>'array', 'write_array'=>'array', 'error_array'=>'array', 'timeout='=>'float'], + 'swoole_cpu_num' => ['int'], + 'swoole_errno' => ['int'], + 'swoole_event_add' => ['int', 'fd'=>'int', 'read_callback='=>'callable', 'write_callback='=>'callable', 'events='=>'int'], + 'swoole_event_defer' => ['bool', 'callback'=>'callable'], + 'swoole_event_del' => ['bool', 'fd'=>'int'], + 'swoole_event_exit' => ['void'], + 'swoole_event_set' => ['bool', 'fd'=>'int', 'read_callback='=>'callable', 'write_callback='=>'callable', 'events='=>'int'], + 'swoole_event_wait' => ['void'], + 'swoole_event_write' => ['bool', 'fd'=>'int', 'data'=>'string'], + 'swoole_get_local_ip' => ['array'], + 'swoole_last_error' => ['int'], + 'swoole_load_module' => ['mixed', 'filename'=>'string'], + 'swoole_select' => ['int', 'read_array'=>'array', 'write_array'=>'array', 'error_array'=>'array', 'timeout='=>'float'], + 'swoole_set_process_name' => ['void', 'process_name'=>'string', 'size='=>'int'], + 'swoole_strerror' => ['string', 'errno'=>'int', 'error_type='=>'int'], + 'swoole_timer_after' => ['int', 'ms'=>'int', 'callback'=>'callable', 'param='=>'mixed'], + 'swoole_timer_exists' => ['bool', 'timer_id'=>'int'], + 'swoole_timer_tick' => ['int', 'ms'=>'int', 'callback'=>'callable', 'param='=>'mixed'], + 'swoole_version' => ['string'], + 'symbolObj::__construct' => ['void', 'map'=>'mapObj', 'symbolname'=>'string'], + 'symbolObj::free' => ['void'], + 'symbolObj::getPatternArray' => ['array'], + 'symbolObj::getPointsArray' => ['array'], + 'symbolObj::ms_newSymbolObj' => ['int', 'map'=>'mapObj', 'symbolname'=>'string'], + 'symbolObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'symbolObj::setImagePath' => ['int', 'filename'=>'string'], + 'symbolObj::setPattern' => ['int', 'int'=>'array'], + 'symbolObj::setPoints' => ['int', 'double'=>'array'], + 'symlink' => ['bool', 'target'=>'string', 'link'=>'string'], + 'sys_get_temp_dir' => ['string'], + 'sys_getloadavg' => ['array'], + 'syslog' => ['true', 'priority'=>'int', 'message'=>'string'], + 'system' => ['string|false', 'command'=>'string', '&w_result_code='=>'int'], + 'taint' => ['bool', '&rw_string'=>'string', '&...w_other_strings='=>'string'], + 'tan' => ['float', 'num'=>'float'], + 'tanh' => ['float', 'num'=>'float'], + 'tcpwrap_check' => ['bool', 'daemon'=>'string', 'address'=>'string', 'user='=>'string', 'nodns='=>'bool'], + 'tempnam' => ['string|false', 'directory'=>'string', 'prefix'=>'string'], + 'textdomain' => ['string', 'domain'=>'?string'], + 'tidy::__construct' => ['void', 'filename='=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'tidy::body' => ['?tidyNode'], + 'tidy::cleanRepair' => ['bool'], + 'tidy::diagnose' => ['bool'], + 'tidy::getConfig' => ['array'], + 'tidy::getHtmlVer' => ['int'], + 'tidy::getOpt' => ['string|int|bool', 'option'=>'string'], + 'tidy::getOptDoc' => ['string', 'option'=>'string'], + 'tidy::getRelease' => ['string'], + 'tidy::getStatus' => ['int'], + 'tidy::head' => ['?tidyNode'], + 'tidy::html' => ['?tidyNode'], + 'tidy::isXhtml' => ['bool'], + 'tidy::isXml' => ['bool'], + 'tidy::parseFile' => ['bool', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'tidy::parseString' => ['bool', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'tidy::repairFile' => ['string', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'tidy::repairString' => ['string', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'tidy::root' => ['?tidyNode'], + 'tidyNode::__construct' => ['void'], + 'tidyNode::getParent' => ['?tidyNode'], + 'tidyNode::hasChildren' => ['bool'], + 'tidyNode::hasSiblings' => ['bool'], + 'tidyNode::isAsp' => ['bool'], + 'tidyNode::isComment' => ['bool'], + 'tidyNode::isHtml' => ['bool'], + 'tidyNode::isJste' => ['bool'], + 'tidyNode::isPhp' => ['bool'], + 'tidyNode::isText' => ['bool'], + 'tidy_access_count' => ['int', 'tidy'=>'tidy'], + 'tidy_clean_repair' => ['bool', 'tidy'=>'tidy'], + 'tidy_config_count' => ['int', 'tidy'=>'tidy'], + 'tidy_diagnose' => ['bool', 'tidy'=>'tidy'], + 'tidy_error_count' => ['int', 'tidy'=>'tidy'], + 'tidy_get_body' => ['?tidyNode', 'tidy'=>'tidy'], + 'tidy_get_config' => ['array', 'tidy'=>'tidy'], + 'tidy_get_error_buffer' => ['string', 'tidy'=>'tidy'], + 'tidy_get_head' => ['?tidyNode', 'tidy'=>'tidy'], + 'tidy_get_html' => ['?tidyNode', 'tidy'=>'tidy'], + 'tidy_get_html_ver' => ['int', 'tidy'=>'tidy'], + 'tidy_get_opt_doc' => ['string', 'tidy'=>'tidy', 'option'=>'string'], + 'tidy_get_output' => ['string', 'tidy'=>'tidy'], + 'tidy_get_release' => ['string'], + 'tidy_get_root' => ['?tidyNode', 'tidy'=>'tidy'], + 'tidy_get_status' => ['int', 'tidy'=>'tidy'], + 'tidy_getopt' => ['string|int|bool', 'tidy'=>'tidy', 'option'=>'string'], + 'tidy_is_xhtml' => ['bool', 'tidy'=>'tidy'], + 'tidy_is_xml' => ['bool', 'tidy'=>'tidy'], + 'tidy_load_config' => ['void', 'filename'=>'string', 'encoding'=>'string'], + 'tidy_parse_file' => ['tidy', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'tidy_parse_string' => ['tidy', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'tidy_repair_file' => ['string', 'filename'=>'string', 'config='=>'array|string', 'encoding='=>'string', 'useIncludePath='=>'bool'], + 'tidy_repair_string' => ['string', 'string'=>'string', 'config='=>'array|string', 'encoding='=>'string'], + 'tidy_reset_config' => ['bool'], + 'tidy_save_config' => ['bool', 'filename'=>'string'], + 'tidy_set_encoding' => ['bool', 'encoding'=>'string'], + 'tidy_setopt' => ['bool', 'option'=>'string', 'value'=>'mixed'], + 'tidy_warning_count' => ['int', 'tidy'=>'tidy'], + 'time' => ['positive-int'], + 'time_nanosleep' => ['array{0:0|positive-int,1:0|positive-int}|bool', 'seconds'=>'positive-int', 'nanoseconds'=>'positive-int'], + 'time_sleep_until' => ['bool', 'timestamp'=>'float'], + 'timezone_abbreviations_list' => ['array>'], + 'timezone_identifiers_list' => ['list|false', 'timezoneGroup='=>'int', 'countryCode='=>'string'], + 'timezone_location_get' => ['array|false', 'object'=>'DateTimeZone'], + 'timezone_name_from_abbr' => ['string|false', 'abbr'=>'string', 'utcOffset='=>'int', 'isDST='=>'int'], + 'timezone_name_get' => ['string', 'object'=>'DateTimeZone'], + 'timezone_offset_get' => ['int|false', 'object'=>'DateTimeZone', 'datetime'=>'DateTimeInterface'], + 'timezone_open' => ['DateTimeZone|false', 'timezone'=>'string'], + 'timezone_transitions_get' => ['list|false', 'object'=>'DateTimeZone', 'timestampBegin='=>'int', 'timestampEnd='=>'int'], + 'timezone_version_get' => ['string'], + 'tmpfile' => ['resource|false'], + 'token_get_all' => ['list', 'code'=>'string', 'flags='=>'int'], + 'token_name' => ['string', 'id'=>'int'], + 'touch' => ['bool', 'filename'=>'string', 'mtime='=>'int', 'atime='=>'int'], + 'trader_acos' => ['array', 'real'=>'array'], + 'trader_ad' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array'], + 'trader_add' => ['array', 'real0'=>'array', 'real1'=>'array'], + 'trader_adosc' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int'], + 'trader_adx' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_adxr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_apo' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'mAType='=>'int'], + 'trader_aroon' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], + 'trader_aroonosc' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], + 'trader_asin' => ['array', 'real'=>'array'], + 'trader_atan' => ['array', 'real'=>'array'], + 'trader_atr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_avgprice' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_bbands' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDevUp='=>'float', 'nbDevDn='=>'float', 'mAType='=>'int'], + 'trader_beta' => ['array', 'real0'=>'array', 'real1'=>'array', 'timePeriod='=>'int'], + 'trader_bop' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cci' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_cdl2crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3blackcrows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3inside' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3linestrike' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3outside' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3starsinsouth' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdl3whitesoldiers' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlabandonedbaby' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdladvanceblock' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlbelthold' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlbreakaway' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlclosingmarubozu' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlconcealbabyswall' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlcounterattack' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdldarkcloudcover' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdldoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdldojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdldragonflydoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlengulfing' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdleveningdojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdleveningstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdlgapsidesidewhite' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlgravestonedoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhammer' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhangingman' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlharami' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlharamicross' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhighwave' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhikkake' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhikkakemod' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlhomingpigeon' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlidentical3crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlinneck' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlinvertedhammer' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlkicking' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlkickingbylength' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlladderbottom' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdllongleggeddoji' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdllongline' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlmarubozu' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlmatchinglow' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlmathold' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdlmorningdojistar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdlmorningstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'penetration='=>'float'], + 'trader_cdlonneck' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlpiercing' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlrickshawman' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlrisefall3methods' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlseparatinglines' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlshootingstar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlshortline' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlspinningtop' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlstalledpattern' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlsticksandwich' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdltakuri' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdltasukigap' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlthrusting' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdltristar' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlunique3river' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlupsidegap2crows' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_cdlxsidegap3methods' => ['array', 'open'=>'array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_ceil' => ['array', 'real'=>'array'], + 'trader_cmo' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_correl' => ['array', 'real0'=>'array', 'real1'=>'array', 'timePeriod='=>'int'], + 'trader_cos' => ['array', 'real'=>'array'], + 'trader_cosh' => ['array', 'real'=>'array'], + 'trader_dema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_div' => ['array', 'real0'=>'array', 'real1'=>'array'], + 'trader_dx' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_ema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_errno' => ['int'], + 'trader_exp' => ['array', 'real'=>'array'], + 'trader_floor' => ['array', 'real'=>'array'], + 'trader_get_compat' => ['int'], + 'trader_get_unstable_period' => ['int', 'functionId'=>'int'], + 'trader_ht_dcperiod' => ['array', 'real'=>'array'], + 'trader_ht_dcphase' => ['array', 'real'=>'array'], + 'trader_ht_phasor' => ['array', 'real'=>'array'], + 'trader_ht_sine' => ['array', 'real'=>'array'], + 'trader_ht_trendline' => ['array', 'real'=>'array'], + 'trader_ht_trendmode' => ['array', 'real'=>'array'], + 'trader_kama' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_linearreg' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_linearreg_angle' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_linearreg_intercept' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_linearreg_slope' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_ln' => ['array', 'real'=>'array'], + 'trader_log10' => ['array', 'real'=>'array'], + 'trader_ma' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'mAType='=>'int'], + 'trader_macd' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'signalPeriod='=>'int'], + 'trader_macdext' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'fastMAType='=>'int', 'slowPeriod='=>'int', 'slowMAType='=>'int', 'signalPeriod='=>'int', 'signalMAType='=>'int'], + 'trader_macdfix' => ['array', 'real'=>'array', 'signalPeriod='=>'int'], + 'trader_mama' => ['array', 'real'=>'array', 'fastLimit='=>'float', 'slowLimit='=>'float'], + 'trader_mavp' => ['array', 'real'=>'array', 'periods'=>'array', 'minPeriod='=>'int', 'maxPeriod='=>'int', 'mAType='=>'int'], + 'trader_max' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_maxindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_medprice' => ['array', 'high'=>'array', 'low'=>'array'], + 'trader_mfi' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'volume'=>'array', 'timePeriod='=>'int'], + 'trader_midpoint' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_midprice' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], + 'trader_min' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_minindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_minmax' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_minmaxindex' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_minus_di' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_minus_dm' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], + 'trader_mom' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_mult' => ['array', 'real0'=>'array', 'real1'=>'array'], + 'trader_natr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_obv' => ['array', 'real'=>'array', 'volume'=>'array'], + 'trader_plus_di' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_plus_dm' => ['array', 'high'=>'array', 'low'=>'array', 'timePeriod='=>'int'], + 'trader_ppo' => ['array', 'real'=>'array', 'fastPeriod='=>'int', 'slowPeriod='=>'int', 'mAType='=>'int'], + 'trader_roc' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_rocp' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_rocr' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_rocr100' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_rsi' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_sar' => ['array', 'high'=>'array', 'low'=>'array', 'acceleration='=>'float', 'maximum='=>'float'], + 'trader_sarext' => ['array', 'high'=>'array', 'low'=>'array', 'startValue='=>'float', 'offsetOnReverse='=>'float', 'accelerationInitLong='=>'float', 'accelerationLong='=>'float', 'accelerationMaxLong='=>'float', 'accelerationInitShort='=>'float', 'accelerationShort='=>'float', 'accelerationMaxShort='=>'float'], + 'trader_set_compat' => ['void', 'compatId'=>'int'], + 'trader_set_unstable_period' => ['void', 'functionId'=>'int', 'timePeriod'=>'int'], + 'trader_sin' => ['array', 'real'=>'array'], + 'trader_sinh' => ['array', 'real'=>'array'], + 'trader_sma' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_sqrt' => ['array', 'real'=>'array'], + 'trader_stddev' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDev='=>'float'], + 'trader_stoch' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'fastK_Period='=>'int', 'slowK_Period='=>'int', 'slowK_MAType='=>'int', 'slowD_Period='=>'int', 'slowD_MAType='=>'int'], + 'trader_stochf' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'fastK_Period='=>'int', 'fastD_Period='=>'int', 'fastD_MAType='=>'int'], + 'trader_stochrsi' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'fastK_Period='=>'int', 'fastD_Period='=>'int', 'fastD_MAType='=>'int'], + 'trader_sub' => ['array', 'real0'=>'array', 'real1'=>'array'], + 'trader_sum' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_t3' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'vFactor='=>'float'], + 'trader_tan' => ['array', 'real'=>'array'], + 'trader_tanh' => ['array', 'real'=>'array'], + 'trader_tema' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_trange' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_trima' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_trix' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_tsf' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trader_typprice' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_ultosc' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod1='=>'int', 'timePeriod2='=>'int', 'timePeriod3='=>'int'], + 'trader_var' => ['array', 'real'=>'array', 'timePeriod='=>'int', 'nbDev='=>'float'], + 'trader_wclprice' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array'], + 'trader_willr' => ['array', 'high'=>'array', 'low'=>'array', 'close'=>'array', 'timePeriod='=>'int'], + 'trader_wma' => ['array', 'real'=>'array', 'timePeriod='=>'int'], + 'trait_exists' => ['bool', 'trait'=>'string', 'autoload='=>'bool'], + 'transliterator_create' => ['?Transliterator', 'id'=>'string', 'direction='=>'int'], + 'transliterator_create_from_rules' => ['?Transliterator', 'rules'=>'string', 'direction='=>'int'], + 'transliterator_create_inverse' => ['?Transliterator', 'transliterator'=>'Transliterator'], + 'transliterator_get_error_code' => ['int', 'transliterator'=>'Transliterator'], + 'transliterator_get_error_message' => ['string', 'transliterator'=>'Transliterator'], + 'transliterator_list_ids' => ['array'], + 'transliterator_transliterate' => ['string|false', 'transliterator'=>'Transliterator|string', 'string'=>'string', 'start='=>'int', 'end='=>'int'], + 'trigger_error' => ['bool', 'message'=>'string', 'error_level='=>'256|512|1024|16384'], + 'trim' => ['string', 'string'=>'string', 'characters='=>'string'], + 'uasort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], + 'ucfirst' => ['string', 'string'=>'string'], + 'ucwords' => ['string', 'string'=>'string', 'separators='=>'string'], + 'udm_add_search_limit' => ['bool', 'agent'=>'resource', 'var'=>'int', 'value'=>'string'], + 'udm_alloc_agent' => ['resource', 'dbaddr'=>'string', 'dbmode='=>'string'], + 'udm_alloc_agent_array' => ['resource', 'databases'=>'array'], + 'udm_api_version' => ['int'], + 'udm_cat_list' => ['array', 'agent'=>'resource', 'category'=>'string'], + 'udm_cat_path' => ['array', 'agent'=>'resource', 'category'=>'string'], + 'udm_check_charset' => ['bool', 'agent'=>'resource', 'charset'=>'string'], + 'udm_check_stored' => ['int', 'agent'=>'', 'link'=>'int', 'doc_id'=>'string'], + 'udm_clear_search_limits' => ['bool', 'agent'=>'resource'], + 'udm_close_stored' => ['int', 'agent'=>'', 'link'=>'int'], + 'udm_crc32' => ['int', 'agent'=>'resource', 'string'=>'string'], + 'udm_errno' => ['int', 'agent'=>'resource'], + 'udm_error' => ['string', 'agent'=>'resource'], + 'udm_find' => ['resource', 'agent'=>'resource', 'query'=>'string'], + 'udm_free_agent' => ['int', 'agent'=>'resource'], + 'udm_free_ispell_data' => ['bool', 'agent'=>'int'], + 'udm_free_res' => ['bool', 'res'=>'resource'], + 'udm_get_doc_count' => ['int', 'agent'=>'resource'], + 'udm_get_res_field' => ['string', 'res'=>'resource', 'row'=>'int', 'field'=>'int'], + 'udm_get_res_param' => ['string', 'res'=>'resource', 'param'=>'int'], + 'udm_hash32' => ['int', 'agent'=>'resource', 'string'=>'string'], + 'udm_load_ispell_data' => ['bool', 'agent'=>'resource', 'var'=>'int', 'val1'=>'string', 'val2'=>'string', 'flag'=>'int'], + 'udm_open_stored' => ['int', 'agent'=>'', 'storedaddr'=>'string'], + 'udm_set_agent_param' => ['bool', 'agent'=>'resource', 'var'=>'int', 'val'=>'string'], + 'ui\area::onDraw' => ['', 'pen'=>'UI\Draw\Pen', 'areaSize'=>'UI\Size', 'clipPoint'=>'UI\Point', 'clipSize'=>'UI\Size'], + 'ui\area::onKey' => ['', 'key'=>'string', 'ext'=>'int', 'flags'=>'int'], + 'ui\area::onMouse' => ['', 'areaPoint'=>'UI\Point', 'areaSize'=>'UI\Size', 'flags'=>'int'], + 'ui\area::redraw' => [''], + 'ui\area::scrollTo' => ['', 'point'=>'UI\Point', 'size'=>'UI\Size'], + 'ui\area::setSize' => ['', 'size'=>'UI\Size'], + 'ui\control::destroy' => [''], + 'ui\control::disable' => [''], + 'ui\control::enable' => [''], + 'ui\control::getParent' => ['UI\Control'], + 'ui\control::getTopLevel' => ['int'], + 'ui\control::hide' => [''], + 'ui\control::isEnabled' => ['bool'], + 'ui\control::isVisible' => ['bool'], + 'ui\control::setParent' => ['', 'parent'=>'UI\Control'], + 'ui\control::show' => [''], + 'ui\controls\box::append' => ['int', 'control'=>'Control', 'stretchy='=>'bool'], + 'ui\controls\box::delete' => ['bool', 'index'=>'int'], + 'ui\controls\box::getOrientation' => ['int'], + 'ui\controls\box::isPadded' => ['bool'], + 'ui\controls\box::setPadded' => ['', 'padded'=>'bool'], + 'ui\controls\button::getText' => ['string'], + 'ui\controls\button::onClick' => [''], + 'ui\controls\button::setText' => ['', 'text'=>'string'], + 'ui\controls\check::getText' => ['string'], + 'ui\controls\check::isChecked' => ['bool'], + 'ui\controls\check::onToggle' => [''], + 'ui\controls\check::setChecked' => ['', 'checked'=>'bool'], + 'ui\controls\check::setText' => ['', 'text'=>'string'], + 'ui\controls\colorbutton::getColor' => ['UI\Color'], + 'ui\controls\colorbutton::onChange' => [''], + 'ui\controls\combo::append' => ['', 'text'=>'string'], + 'ui\controls\combo::getSelected' => ['int'], + 'ui\controls\combo::onSelected' => [''], + 'ui\controls\combo::setSelected' => ['', 'index'=>'int'], + 'ui\controls\editablecombo::append' => ['', 'text'=>'string'], + 'ui\controls\editablecombo::getText' => ['string'], + 'ui\controls\editablecombo::onChange' => [''], + 'ui\controls\editablecombo::setText' => ['', 'text'=>'string'], + 'ui\controls\entry::getText' => ['string'], + 'ui\controls\entry::isReadOnly' => ['bool'], + 'ui\controls\entry::onChange' => [''], + 'ui\controls\entry::setReadOnly' => ['', 'readOnly'=>'bool'], + 'ui\controls\entry::setText' => ['', 'text'=>'string'], + 'ui\controls\form::append' => ['int', 'label'=>'string', 'control'=>'UI\Control', 'stretchy='=>'bool'], + 'ui\controls\form::delete' => ['bool', 'index'=>'int'], + 'ui\controls\form::isPadded' => ['bool'], + 'ui\controls\form::setPadded' => ['', 'padded'=>'bool'], + 'ui\controls\grid::append' => ['', 'control'=>'UI\Control', 'left'=>'int', 'top'=>'int', 'xspan'=>'int', 'yspan'=>'int', 'hexpand'=>'bool', 'halign'=>'int', 'vexpand'=>'bool', 'valign'=>'int'], + 'ui\controls\grid::isPadded' => ['bool'], + 'ui\controls\grid::setPadded' => ['', 'padding'=>'bool'], + 'ui\controls\group::append' => ['', 'control'=>'UI\Control'], + 'ui\controls\group::getTitle' => ['string'], + 'ui\controls\group::hasMargin' => ['bool'], + 'ui\controls\group::setMargin' => ['', 'margin'=>'bool'], + 'ui\controls\group::setTitle' => ['', 'title'=>'string'], + 'ui\controls\label::getText' => ['string'], + 'ui\controls\label::setText' => ['', 'text'=>'string'], + 'ui\controls\multilineentry::append' => ['', 'text'=>'string'], + 'ui\controls\multilineentry::getText' => ['string'], + 'ui\controls\multilineentry::isReadOnly' => ['bool'], + 'ui\controls\multilineentry::onChange' => [''], + 'ui\controls\multilineentry::setReadOnly' => ['', 'readOnly'=>'bool'], + 'ui\controls\multilineentry::setText' => ['', 'text'=>'string'], + 'ui\controls\progress::getValue' => ['int'], + 'ui\controls\progress::setValue' => ['', 'value'=>'int'], + 'ui\controls\radio::append' => ['', 'text'=>'string'], + 'ui\controls\radio::getSelected' => ['int'], + 'ui\controls\radio::onSelected' => [''], + 'ui\controls\radio::setSelected' => ['', 'index'=>'int'], + 'ui\controls\slider::getValue' => ['int'], + 'ui\controls\slider::onChange' => [''], + 'ui\controls\slider::setValue' => ['', 'value'=>'int'], + 'ui\controls\spin::getValue' => ['int'], + 'ui\controls\spin::onChange' => [''], + 'ui\controls\spin::setValue' => ['', 'value'=>'int'], + 'ui\controls\tab::append' => ['int', 'name'=>'string', 'control'=>'UI\Control'], + 'ui\controls\tab::delete' => ['bool', 'index'=>'int'], + 'ui\controls\tab::hasMargin' => ['bool', 'page'=>'int'], + 'ui\controls\tab::insertAt' => ['', 'name'=>'string', 'page'=>'int', 'control'=>'UI\Control'], + 'ui\controls\tab::pages' => ['int'], + 'ui\controls\tab::setMargin' => ['', 'page'=>'int', 'margin'=>'bool'], + 'ui\draw\brush::getColor' => ['UI\Draw\Color'], + 'ui\draw\brush\gradient::delStop' => ['int', 'index'=>'int'], + 'ui\draw\color::getChannel' => ['float', 'channel'=>'int'], + 'ui\draw\color::setChannel' => ['void', 'channel'=>'int', 'value'=>'float'], + 'ui\draw\matrix::invert' => [''], + 'ui\draw\matrix::isInvertible' => ['bool'], + 'ui\draw\matrix::multiply' => ['UI\Draw\Matrix', 'matrix'=>'UI\Draw\Matrix'], + 'ui\draw\matrix::rotate' => ['', 'point'=>'UI\Point', 'amount'=>'float'], + 'ui\draw\matrix::scale' => ['', 'center'=>'UI\Point', 'point'=>'UI\Point'], + 'ui\draw\matrix::skew' => ['', 'point'=>'UI\Point', 'amount'=>'UI\Point'], + 'ui\draw\matrix::translate' => ['', 'point'=>'UI\Point'], + 'ui\draw\path::addRectangle' => ['', 'point'=>'UI\Point', 'size'=>'UI\Size'], + 'ui\draw\path::arcTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], + 'ui\draw\path::bezierTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], + 'ui\draw\path::closeFigure' => [''], + 'ui\draw\path::end' => [''], + 'ui\draw\path::lineTo' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], + 'ui\draw\path::newFigure' => ['', 'point'=>'UI\Point'], + 'ui\draw\path::newFigureWithArc' => ['', 'point'=>'UI\Point', 'radius'=>'float', 'angle'=>'float', 'sweep'=>'float', 'negative'=>'float'], + 'ui\draw\pen::clip' => ['', 'path'=>'UI\Draw\Path'], + 'ui\draw\pen::restore' => [''], + 'ui\draw\pen::save' => [''], + 'ui\draw\pen::transform' => ['', 'matrix'=>'UI\Draw\Matrix'], + 'ui\draw\pen::write' => ['', 'point'=>'UI\Point', 'layout'=>'UI\Draw\Text\Layout'], + 'ui\draw\stroke::getCap' => ['int'], + 'ui\draw\stroke::getJoin' => ['int'], + 'ui\draw\stroke::getMiterLimit' => ['float'], + 'ui\draw\stroke::getThickness' => ['float'], + 'ui\draw\stroke::setCap' => ['', 'cap'=>'int'], + 'ui\draw\stroke::setJoin' => ['', 'join'=>'int'], + 'ui\draw\stroke::setMiterLimit' => ['', 'limit'=>'float'], + 'ui\draw\stroke::setThickness' => ['', 'thickness'=>'float'], + 'ui\draw\text\font::getAscent' => ['float'], + 'ui\draw\text\font::getDescent' => ['float'], + 'ui\draw\text\font::getLeading' => ['float'], + 'ui\draw\text\font::getUnderlinePosition' => ['float'], + 'ui\draw\text\font::getUnderlineThickness' => ['float'], + 'ui\draw\text\font\descriptor::getFamily' => ['string'], + 'ui\draw\text\font\descriptor::getItalic' => ['int'], + 'ui\draw\text\font\descriptor::getSize' => ['float'], + 'ui\draw\text\font\descriptor::getStretch' => ['int'], + 'ui\draw\text\font\descriptor::getWeight' => ['int'], + 'ui\draw\text\font\fontfamilies' => ['array'], + 'ui\draw\text\layout::setWidth' => ['', 'width'=>'float'], + 'ui\executor::kill' => ['void'], + 'ui\executor::onExecute' => ['void'], + 'ui\menu::append' => ['UI\MenuItem', 'name'=>'string', 'type='=>'string'], + 'ui\menu::appendAbout' => ['UI\MenuItem', 'type='=>'string'], + 'ui\menu::appendCheck' => ['UI\MenuItem', 'name'=>'string', 'type='=>'string'], + 'ui\menu::appendPreferences' => ['UI\MenuItem', 'type='=>'string'], + 'ui\menu::appendQuit' => ['UI\MenuItem', 'type='=>'string'], + 'ui\menu::appendSeparator' => [''], + 'ui\menuitem::disable' => [''], + 'ui\menuitem::enable' => [''], + 'ui\menuitem::isChecked' => ['bool'], + 'ui\menuitem::onClick' => [''], + 'ui\menuitem::setChecked' => ['', 'checked'=>'bool'], + 'ui\point::getX' => ['float'], + 'ui\point::getY' => ['float'], + 'ui\point::setX' => ['', 'point'=>'float'], + 'ui\point::setY' => ['', 'point'=>'float'], + 'ui\quit' => ['void'], + 'ui\run' => ['void', 'flags='=>'int'], + 'ui\size::getHeight' => ['float'], + 'ui\size::getWidth' => ['float'], + 'ui\size::setHeight' => ['', 'size'=>'float'], + 'ui\size::setWidth' => ['', 'size'=>'float'], + 'ui\window::add' => ['', 'control'=>'UI\Control'], + 'ui\window::error' => ['', 'title'=>'string', 'msg'=>'string'], + 'ui\window::getSize' => ['UI\Size'], + 'ui\window::getTitle' => ['string'], + 'ui\window::hasBorders' => ['bool'], + 'ui\window::hasMargin' => ['bool'], + 'ui\window::isFullScreen' => ['bool'], + 'ui\window::msg' => ['', 'title'=>'string', 'msg'=>'string'], + 'ui\window::onClosing' => ['int'], + 'ui\window::open' => ['string'], + 'ui\window::save' => ['string'], + 'ui\window::setBorders' => ['', 'borders'=>'bool'], + 'ui\window::setFullScreen' => ['', 'full'=>'bool'], + 'ui\window::setMargin' => ['', 'margin'=>'bool'], + 'ui\window::setSize' => ['', 'size'=>'UI\Size'], + 'ui\window::setTitle' => ['', 'title'=>'string'], + 'uksort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], + 'umask' => ['int', 'mask='=>'int'], + 'uniqid' => ['non-empty-string', 'prefix='=>'string', 'more_entropy='=>'bool'], + 'unixtojd' => ['int', 'timestamp='=>'int'], + 'unlink' => ['bool', 'filename'=>'string', 'context='=>'resource'], + 'unpack' => ['array', 'format'=>'string', 'string'=>'string'], + 'unregister_tick_function' => ['void', 'callback'=>'callable'], + 'unserialize' => ['mixed', 'data'=>'string', 'options='=>'array{allowed_classes?:string[]|bool}'], + 'unset' => ['void', 'var='=>'mixed', '...args='=>'mixed'], + 'untaint' => ['bool', '&rw_string'=>'string', '&...rw_strings='=>'string'], + 'uopz_allow_exit' => ['void', 'allow'=>'bool'], + 'uopz_backup' => ['void', 'class'=>'string', 'function'=>'string'], + 'uopz_backup\'1' => ['void', 'function'=>'string'], + 'uopz_compose' => ['void', 'name'=>'string', 'classes'=>'array', 'methods='=>'array', 'properties='=>'array', 'flags='=>'int'], + 'uopz_copy' => ['Closure', 'class'=>'string', 'function'=>'string'], + 'uopz_copy\'1' => ['Closure', 'function'=>'string'], + 'uopz_delete' => ['void', 'class'=>'string', 'function'=>'string'], + 'uopz_delete\'1' => ['void', 'function'=>'string'], + 'uopz_extend' => ['bool', 'class'=>'string', 'parent'=>'string'], + 'uopz_flags' => ['int', 'class'=>'string', 'function'=>'string', 'flags'=>'int'], + 'uopz_flags\'1' => ['int', 'function'=>'string', 'flags'=>'int'], + 'uopz_function' => ['void', 'class'=>'string', 'function'=>'string', 'handler'=>'Closure', 'modifiers='=>'int'], + 'uopz_function\'1' => ['void', 'function'=>'string', 'handler'=>'Closure', 'modifiers='=>'int'], + 'uopz_get_exit_status' => ['?int'], + 'uopz_get_hook' => ['?Closure', 'class'=>'string', 'function'=>'string'], + 'uopz_get_hook\'1' => ['?Closure', 'function'=>'string'], + 'uopz_get_mock' => ['string|object|null', 'class'=>'string'], + 'uopz_get_property' => ['mixed', 'class'=>'object|string', 'property'=>'string'], + 'uopz_get_return' => ['mixed', 'class='=>'string', 'function='=>'string'], + 'uopz_get_static' => ['?array', 'class'=>'string', 'function'=>'string'], + 'uopz_implement' => ['bool', 'class'=>'string', 'interface'=>'string'], + 'uopz_overload' => ['void', 'opcode'=>'int', 'callable'=>'Callable'], + 'uopz_redefine' => ['bool', 'class'=>'string', 'constant'=>'string', 'value'=>'mixed'], + 'uopz_redefine\'1' => ['bool', 'constant'=>'string', 'value'=>'mixed'], + 'uopz_rename' => ['void', 'class'=>'string', 'function'=>'string', 'rename'=>'string'], + 'uopz_rename\'1' => ['void', 'function'=>'string', 'rename'=>'string'], + 'uopz_restore' => ['void', 'class'=>'string', 'function'=>'string'], + 'uopz_restore\'1' => ['void', 'function'=>'string'], + 'uopz_set_hook' => ['bool', 'class'=>'string', 'function'=>'string', 'hook'=>'Closure'], + 'uopz_set_hook\'1' => ['bool', 'function'=>'string', 'hook'=>'Closure'], + 'uopz_set_mock' => ['void', 'class'=>'string', 'mock'=>'object|string'], + 'uopz_set_property' => ['void', 'class'=>'object|string', 'property'=>'string', 'value'=>'mixed'], + 'uopz_set_return' => ['bool', 'class'=>'string', 'function'=>'string', 'value'=>'mixed', 'execute='=>'bool'], + 'uopz_set_return\'1' => ['bool', 'function'=>'string', 'value'=>'mixed', 'execute='=>'bool'], + 'uopz_set_static' => ['void', 'class'=>'string', 'function'=>'string', 'static'=>'array'], + 'uopz_undefine' => ['bool', 'class'=>'string', 'constant'=>'string'], + 'uopz_undefine\'1' => ['bool', 'constant'=>'string'], + 'uopz_unset_hook' => ['bool', 'class'=>'string', 'function'=>'string'], + 'uopz_unset_hook\'1' => ['bool', 'function'=>'string'], + 'uopz_unset_mock' => ['void', 'class'=>'string'], + 'uopz_unset_return' => ['bool', 'class='=>'string', 'function='=>'string'], + 'uopz_unset_return\'1' => ['bool', 'function'=>'string'], + 'urldecode' => ['string', 'string'=>'string'], + 'urlencode' => ['string', 'string'=>'string'], + 'use_soap_error_handler' => ['bool', 'enable='=>'bool'], + 'user_error' => ['bool', 'message'=>'string', 'error_level='=>'int'], + 'usleep' => ['void', 'microseconds'=>'positive-int|0'], + 'usort' => ['true', '&rw_array'=>'array', 'callback'=>'callable(mixed,mixed):int'], + 'utf8_decode' => ['string', 'string'=>'string'], + 'utf8_encode' => ['string', 'string'=>'string'], + 'var_dump' => ['void', 'value'=>'mixed', '...values='=>'mixed'], + 'var_export' => ['?string', 'value'=>'mixed', 'return='=>'bool'], + 'variant_abs' => ['mixed', 'value'=>'mixed'], + 'variant_add' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_and' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_cast' => ['VARIANT', 'variant'=>'VARIANT', 'type'=>'int'], + 'variant_cat' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_cmp' => ['int', 'left'=>'mixed', 'right'=>'mixed', 'locale_id='=>'int', 'flags='=>'int'], + 'variant_date_from_timestamp' => ['VARIANT', 'timestamp'=>'int'], + 'variant_date_to_timestamp' => ['int', 'variant'=>'VARIANT'], + 'variant_div' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_eqv' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_fix' => ['mixed', 'value'=>'mixed'], + 'variant_get_type' => ['int', 'variant'=>'VARIANT'], + 'variant_idiv' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_imp' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_int' => ['mixed', 'value'=>'mixed'], + 'variant_mod' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_mul' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_neg' => ['mixed', 'value'=>'mixed'], + 'variant_not' => ['mixed', 'value'=>'mixed'], + 'variant_or' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_pow' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_round' => ['mixed', 'value'=>'mixed', 'decimals'=>'int'], + 'variant_set' => ['void', 'variant'=>'object', 'value'=>'mixed'], + 'variant_set_type' => ['void', 'variant'=>'object', 'type'=>'int'], + 'variant_sub' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'variant_xor' => ['mixed', 'left'=>'mixed', 'right'=>'mixed'], + 'version_compare' => ['bool', 'version1'=>'string', 'version2'=>'string', 'operator'=>'\'<\'|\'lt\'|\'<=\'|\'le\'|\'>\'|\'gt\'|\'>=\'|\'ge\'|\'==\'|\'=\'|\'eq\'|\'!=\'|\'<>\'|\'ne\''], + 'version_compare\'1' => ['int', 'version1'=>'string', 'version2'=>'string'], + 'vfprintf' => ['int', 'stream'=>'resource', 'format'=>'string', 'values'=>'array'], + 'virtual' => ['bool', 'uri'=>'string'], + 'vpopmail_add_alias_domain' => ['bool', 'domain'=>'string', 'aliasdomain'=>'string'], + 'vpopmail_add_alias_domain_ex' => ['bool', 'olddomain'=>'string', 'newdomain'=>'string'], + 'vpopmail_add_domain' => ['bool', 'domain'=>'string', 'dir'=>'string', 'uid'=>'int', 'gid'=>'int'], + 'vpopmail_add_domain_ex' => ['bool', 'domain'=>'string', 'passwd'=>'string', 'quota='=>'string', 'bounce='=>'string', 'apop='=>'bool'], + 'vpopmail_add_user' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'gecos='=>'string', 'apop='=>'bool'], + 'vpopmail_alias_add' => ['bool', 'user'=>'string', 'domain'=>'string', 'alias'=>'string'], + 'vpopmail_alias_del' => ['bool', 'user'=>'string', 'domain'=>'string'], + 'vpopmail_alias_del_domain' => ['bool', 'domain'=>'string'], + 'vpopmail_alias_get' => ['array', 'alias'=>'string', 'domain'=>'string'], + 'vpopmail_alias_get_all' => ['array', 'domain'=>'string'], + 'vpopmail_auth_user' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'apop='=>'string'], + 'vpopmail_del_domain' => ['bool', 'domain'=>'string'], + 'vpopmail_del_domain_ex' => ['bool', 'domain'=>'string'], + 'vpopmail_del_user' => ['bool', 'user'=>'string', 'domain'=>'string'], + 'vpopmail_error' => ['string'], + 'vpopmail_passwd' => ['bool', 'user'=>'string', 'domain'=>'string', 'password'=>'string', 'apop='=>'bool'], + 'vpopmail_set_user_quota' => ['bool', 'user'=>'string', 'domain'=>'string', 'quota'=>'string'], + 'vprintf' => ['int', 'format'=>'string', 'values'=>'array'], + 'vsprintf' => ['string', 'format'=>'string', 'values'=>'array'], + 'w32api_deftype' => ['bool', 'typename'=>'string', 'member1_type'=>'string', 'member1_name'=>'string', '...args='=>'string'], + 'w32api_init_dtype' => ['resource', 'typename'=>'string', 'value'=>'', '...args='=>''], + 'w32api_invoke_function' => ['', 'funcname'=>'string', 'argument'=>'', '...args='=>''], + 'w32api_register_function' => ['bool', 'library'=>'string', 'function_name'=>'string', 'return_type'=>'string'], + 'w32api_set_call_method' => ['', 'method'=>'int'], + 'wddx_add_vars' => ['bool', 'packet_id'=>'resource', 'var_names'=>'mixed', '...vars='=>'mixed'], + 'wddx_deserialize' => ['mixed', 'packet'=>'string'], + 'wddx_packet_end' => ['string', 'packet_id'=>'resource'], + 'wddx_packet_start' => ['resource|false', 'comment='=>'string'], + 'wddx_serialize_value' => ['string|false', 'value'=>'mixed', 'comment='=>'string'], + 'wddx_serialize_vars' => ['string|false', 'var_name'=>'mixed', '...vars='=>'mixed'], + 'webObj::convertToString' => ['string'], + 'webObj::free' => ['void'], + 'webObj::set' => ['int', 'property_name'=>'string', 'new_value'=>''], + 'webObj::updateFromString' => ['int', 'snippet'=>'string'], + 'win32_continue_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], + 'win32_create_service' => ['int|false', 'details'=>'array', 'machine='=>'string'], + 'win32_delete_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], + 'win32_get_last_control_message' => ['int'], + 'win32_pause_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], + 'win32_ps_list_procs' => ['array'], + 'win32_ps_stat_mem' => ['array'], + 'win32_ps_stat_proc' => ['array', 'pid='=>'int'], + 'win32_query_service_status' => ['array|false|int', 'servicename'=>'string', 'machine='=>'string'], + 'win32_send_custom_control' => ['int', 'servicename'=>'string', 'control'=>'int', 'machine='=>'string'], + 'win32_set_service_exit_code' => ['int', 'exitCode='=>'int'], + 'win32_set_service_exit_mode' => ['bool', 'gracefulMode='=>'bool'], + 'win32_set_service_status' => ['bool|int', 'status'=>'int', 'checkpoint='=>'int'], + 'win32_start_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], + 'win32_start_service_ctrl_dispatcher' => ['bool|int', 'name'=>'string'], + 'win32_stop_service' => ['int|false', 'servicename'=>'string', 'machine='=>'string'], + 'wincache_fcache_fileinfo' => ['array|false', 'summaryonly='=>'bool'], + 'wincache_fcache_meminfo' => ['array|false'], + 'wincache_lock' => ['bool', 'key'=>'string', 'isglobal='=>'bool'], + 'wincache_ocache_fileinfo' => ['array|false', 'summaryonly='=>'bool'], + 'wincache_ocache_meminfo' => ['array|false'], + 'wincache_refresh_if_changed' => ['bool', 'files='=>'array'], + 'wincache_rplist_fileinfo' => ['array|false', 'summaryonly='=>'bool'], + 'wincache_rplist_meminfo' => ['array|false'], + 'wincache_scache_info' => ['array|false', 'summaryonly='=>'bool'], + 'wincache_scache_meminfo' => ['array|false'], + 'wincache_ucache_add' => ['bool', 'key'=>'string', 'value'=>'mixed', 'ttl='=>'int'], + 'wincache_ucache_add\'1' => ['bool', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'wincache_ucache_cas' => ['bool', 'key'=>'string', 'old_value'=>'int', 'new_value'=>'int'], + 'wincache_ucache_clear' => ['bool'], + 'wincache_ucache_dec' => ['int|false', 'key'=>'string', 'dec_by='=>'int', 'success='=>'bool'], + 'wincache_ucache_delete' => ['bool', 'key'=>'mixed'], + 'wincache_ucache_exists' => ['bool', 'key'=>'string'], + 'wincache_ucache_get' => ['mixed', 'key'=>'mixed', '&w_success='=>'bool'], + 'wincache_ucache_inc' => ['int|false', 'key'=>'string', 'inc_by='=>'int', 'success='=>'bool'], + 'wincache_ucache_info' => ['array|false', 'summaryonly='=>'bool', 'key='=>'string'], + 'wincache_ucache_meminfo' => ['array|false'], + 'wincache_ucache_set' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int'], + 'wincache_ucache_set\'1' => ['bool', 'values'=>'array', 'unused='=>'', 'ttl='=>'int'], + 'wincache_unlock' => ['bool', 'key'=>'string'], + 'wkhtmltox\image\converter::convert' => ['?string'], + 'wkhtmltox\image\converter::getVersion' => ['string'], + 'wkhtmltox\pdf\converter::add' => ['void', 'object'=>'wkhtmltox\PDF\Object'], + 'wkhtmltox\pdf\converter::convert' => ['?string'], + 'wkhtmltox\pdf\converter::getVersion' => ['string'], + 'wordwrap' => ['string', 'string'=>'string', 'width='=>'int', 'break='=>'string', 'cut_long_words='=>'bool'], + 'xattr_get' => ['string', 'filename'=>'string', 'name'=>'string', 'flags='=>'int'], + 'xattr_list' => ['array', 'filename'=>'string', 'flags='=>'int'], + 'xattr_remove' => ['bool', 'filename'=>'string', 'name'=>'string', 'flags='=>'int'], + 'xattr_set' => ['bool', 'filename'=>'string', 'name'=>'string', 'value'=>'string', 'flags='=>'int'], + 'xattr_supported' => ['bool', 'filename'=>'string', 'flags='=>'int'], + 'xcache_asm' => ['string', 'filename'=>'string'], + 'xcache_clear_cache' => ['void', 'type'=>'int', 'id='=>'int'], + 'xcache_coredump' => ['string', 'op_type'=>'int'], + 'xcache_count' => ['int', 'type'=>'int'], + 'xcache_coverager_decode' => ['array', 'data'=>'string'], + 'xcache_coverager_get' => ['array', 'clean='=>'bool'], + 'xcache_coverager_start' => ['void', 'clean='=>'bool'], + 'xcache_coverager_stop' => ['void', 'clean='=>'bool'], + 'xcache_dasm_file' => ['string', 'filename'=>'string'], + 'xcache_dasm_string' => ['string', 'code'=>'string'], + 'xcache_dec' => ['int', 'name'=>'string', 'value='=>'int|mixed', 'ttl='=>'int'], + 'xcache_decode' => ['bool', 'filename'=>'string'], + 'xcache_encode' => ['string', 'filename'=>'string'], + 'xcache_get' => ['mixed', 'name'=>'string'], + 'xcache_get_data_type' => ['string', 'type'=>'int'], + 'xcache_get_op_spec' => ['string', 'op_type'=>'int'], + 'xcache_get_op_type' => ['string', 'op_type'=>'int'], + 'xcache_get_opcode' => ['string', 'opcode'=>'int'], + 'xcache_get_opcode_spec' => ['string', 'opcode'=>'int'], + 'xcache_inc' => ['int', 'name'=>'string', 'value='=>'int|mixed', 'ttl='=>'int'], + 'xcache_info' => ['array', 'type'=>'int', 'id'=>'int'], + 'xcache_is_autoglobal' => ['string', 'name'=>'string'], + 'xcache_isset' => ['bool', 'name'=>'string'], + 'xcache_list' => ['array', 'type'=>'int', 'id'=>'int'], + 'xcache_set' => ['bool', 'name'=>'string', 'value'=>'mixed', 'ttl='=>'int'], + 'xcache_unset' => ['bool', 'name'=>'string'], + 'xcache_unset_by_prefix' => ['bool', 'prefix'=>'string'], + 'xdebug_break' => ['bool'], + 'xdebug_call_class' => ['string', 'depth='=>'int'], + 'xdebug_call_file' => ['string', 'depth='=>'int'], + 'xdebug_call_function' => ['string', 'depth='=>'int'], + 'xdebug_call_line' => ['int', 'depth='=>'int'], + 'xdebug_clear_aggr_profiling_data' => ['bool'], + 'xdebug_code_coverage_started' => ['bool'], + 'xdebug_debug_zval' => ['void', '...varName'=>'string'], + 'xdebug_debug_zval_stdout' => ['void', '...varName'=>'string'], + 'xdebug_disable' => ['void'], + 'xdebug_dump_aggr_profiling_data' => ['bool'], + 'xdebug_dump_superglobals' => ['void'], + 'xdebug_enable' => ['void'], + 'xdebug_get_code_coverage' => ['array'], + 'xdebug_get_collected_errors' => ['string', 'clean='=>'bool'], + 'xdebug_get_declared_vars' => ['array'], + 'xdebug_get_formatted_function_stack' => [''], + 'xdebug_get_function_count' => ['int'], + 'xdebug_get_function_stack' => ['array', 'message='=>'string', 'options='=>'int'], + 'xdebug_get_headers' => ['array'], + 'xdebug_get_monitored_functions' => ['array'], + 'xdebug_get_profiler_filename' => ['string|false'], + 'xdebug_get_stack_depth' => ['int'], + 'xdebug_get_tracefile_name' => ['string'], + 'xdebug_is_debugger_active' => ['bool'], + 'xdebug_is_enabled' => ['bool'], + 'xdebug_memory_usage' => ['int'], + 'xdebug_peak_memory_usage' => ['int'], + 'xdebug_print_function_stack' => ['array', 'message='=>'string', 'options='=>'int'], + 'xdebug_set_filter' => ['void', 'group'=>'int', 'list_type'=>'int', 'configuration'=>'array'], + 'xdebug_start_code_coverage' => ['void', 'options='=>'int'], + 'xdebug_start_error_collection' => ['void'], + 'xdebug_start_function_monitor' => ['void', 'list_of_functions_to_monitor'=>'string[]'], + 'xdebug_start_trace' => ['void', 'trace_file'=>'', 'options='=>'int|mixed'], + 'xdebug_stop_code_coverage' => ['void', 'cleanup='=>'bool'], + 'xdebug_stop_error_collection' => ['void'], + 'xdebug_stop_function_monitor' => ['void'], + 'xdebug_stop_trace' => ['void'], + 'xdebug_time_index' => ['float'], + 'xdebug_var_dump' => ['void', '...var'=>''], + 'xdiff_file_bdiff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], + 'xdiff_file_bdiff_size' => ['int', 'file'=>'string'], + 'xdiff_file_bpatch' => ['bool', 'file'=>'string', 'patch'=>'string', 'dest'=>'string'], + 'xdiff_file_diff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string', 'context='=>'int', 'minimal='=>'bool'], + 'xdiff_file_diff_binary' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], + 'xdiff_file_merge3' => ['mixed', 'old_file'=>'string', 'new_file1'=>'string', 'new_file2'=>'string', 'dest'=>'string'], + 'xdiff_file_patch' => ['mixed', 'file'=>'string', 'patch'=>'string', 'dest'=>'string', 'flags='=>'int'], + 'xdiff_file_patch_binary' => ['bool', 'file'=>'string', 'patch'=>'string', 'dest'=>'string'], + 'xdiff_file_rabdiff' => ['bool', 'old_file'=>'string', 'new_file'=>'string', 'dest'=>'string'], + 'xdiff_string_bdiff' => ['string', 'old_data'=>'string', 'new_data'=>'string'], + 'xdiff_string_bdiff_size' => ['int', 'patch'=>'string'], + 'xdiff_string_bpatch' => ['string', 'string'=>'string', 'patch'=>'string'], + 'xdiff_string_diff' => ['string', 'old_data'=>'string', 'new_data'=>'string', 'context='=>'int', 'minimal='=>'bool'], + 'xdiff_string_diff_binary' => ['string', 'old_data'=>'string', 'new_data'=>'string'], + 'xdiff_string_merge3' => ['mixed', 'old_data'=>'string', 'new_data1'=>'string', 'new_data2'=>'string', 'error='=>'string'], + 'xdiff_string_patch' => ['string', 'string'=>'string', 'patch'=>'string', 'flags='=>'int', '&w_error='=>'string'], + 'xdiff_string_patch_binary' => ['string', 'string'=>'string', 'patch'=>'string'], + 'xdiff_string_rabdiff' => ['string', 'old_data'=>'string', 'new_data'=>'string'], + 'xhprof_disable' => ['array'], + 'xhprof_enable' => ['void', 'flags='=>'int', 'options='=>'array'], + 'xhprof_sample_disable' => ['array'], + 'xhprof_sample_enable' => ['void'], + 'xlswriter_get_author' => ['string'], + 'xlswriter_get_version' => ['string'], + 'xml_error_string' => ['?string', 'error_code'=>'int'], + 'xml_get_current_byte_index' => ['int|false', 'parser'=>'resource'], + 'xml_get_current_column_number' => ['int|false', 'parser'=>'resource'], + 'xml_get_current_line_number' => ['int|false', 'parser'=>'resource'], + 'xml_get_error_code' => ['int|false', 'parser'=>'resource'], + 'xml_parse' => ['int', 'parser'=>'resource', 'data'=>'string', 'is_final='=>'bool'], + 'xml_parse_into_struct' => ['int', 'parser'=>'resource', 'data'=>'string', '&w_values'=>'array', '&w_index='=>'array'], + 'xml_parser_create' => ['resource', 'encoding='=>'string'], + 'xml_parser_create_ns' => ['resource', 'encoding='=>'string', 'separator='=>'string'], + 'xml_parser_free' => ['bool', 'parser'=>'resource'], + 'xml_parser_get_option' => ['string|false', 'parser'=>'resource', 'option'=>'int'], + 'xml_parser_set_option' => ['bool', 'parser'=>'resource', 'option'=>'int', 'value'=>'mixed'], + 'xml_set_character_data_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_default_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_element_handler' => ['true', 'parser'=>'resource', 'start_handler'=>'callable', 'end_handler'=>'callable'], + 'xml_set_end_namespace_decl_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_external_entity_ref_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_notation_decl_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_object' => ['true', 'parser'=>'resource', 'object'=>'object'], + 'xml_set_processing_instruction_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_start_namespace_decl_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xml_set_unparsed_entity_decl_handler' => ['true', 'parser'=>'resource', 'handler'=>'callable'], + 'xmlrpc_decode' => ['mixed', 'xml'=>'string', 'encoding='=>'string'], + 'xmlrpc_decode_request' => ['?array', 'xml'=>'string', '&w_method'=>'string', 'encoding='=>'string'], + 'xmlrpc_encode' => ['string', 'value'=>'mixed'], + 'xmlrpc_encode_request' => ['string', 'method'=>'string', 'params'=>'mixed', 'output_options='=>'array'], + 'xmlrpc_get_type' => ['string', 'value'=>'mixed'], + 'xmlrpc_is_fault' => ['bool', 'arg'=>'array'], + 'xmlrpc_parse_method_descriptions' => ['array', 'xml'=>'string'], + 'xmlrpc_server_add_introspection_data' => ['int', 'server'=>'resource', 'desc'=>'array'], + 'xmlrpc_server_call_method' => ['string', 'server'=>'resource', 'xml'=>'string', 'user_data'=>'mixed', 'output_options='=>'array'], + 'xmlrpc_server_create' => ['resource'], + 'xmlrpc_server_destroy' => ['int', 'server'=>'resource'], + 'xmlrpc_server_register_introspection_callback' => ['bool', 'server'=>'resource', 'function'=>'string'], + 'xmlrpc_server_register_method' => ['bool', 'server'=>'resource', 'method_name'=>'string', 'function'=>'string'], + 'xmlrpc_set_type' => ['bool', '&rw_value'=>'string|DateTime', 'type'=>'string'], + 'xmlwriter_end_attribute' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_cdata' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_comment' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_document' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_dtd' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_dtd_attlist' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_dtd_element' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_dtd_entity' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_element' => ['bool', 'writer'=>'resource'], + 'xmlwriter_end_pi' => ['bool', 'writer'=>'resource'], + 'xmlwriter_flush' => ['string|int|false', 'writer'=>'resource', 'empty='=>'bool'], + 'xmlwriter_full_end_element' => ['bool', 'writer'=>'resource'], + 'xmlwriter_open_memory' => ['resource|false'], + 'xmlwriter_open_uri' => ['resource|false', 'uri'=>'string'], + 'xmlwriter_output_memory' => ['string', 'writer'=>'resource', 'flush='=>'bool'], + 'xmlwriter_set_indent' => ['bool', 'writer'=>'resource', 'enable'=>'bool'], + 'xmlwriter_set_indent_string' => ['bool', 'writer'=>'resource', 'indentation'=>'string'], + 'xmlwriter_start_attribute' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'xmlwriter_start_attribute_ns' => ['bool', 'writer'=>'resource', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string'], + 'xmlwriter_start_cdata' => ['bool', 'writer'=>'resource'], + 'xmlwriter_start_comment' => ['bool', 'writer'=>'resource'], + 'xmlwriter_start_document' => ['bool', 'writer'=>'resource', 'version='=>'?string', 'encoding='=>'?string', 'standalone='=>'?string'], + 'xmlwriter_start_dtd' => ['bool', 'writer'=>'resource', 'qualifiedName'=>'string', 'publicId='=>'?string', 'systemId='=>'?string'], + 'xmlwriter_start_dtd_attlist' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'xmlwriter_start_dtd_element' => ['bool', 'writer'=>'resource', 'qualifiedName'=>'string'], + 'xmlwriter_start_dtd_entity' => ['bool', 'writer'=>'resource', 'name'=>'string', 'isParam'=>'bool'], + 'xmlwriter_start_element' => ['bool', 'writer'=>'resource', 'name'=>'string'], + 'xmlwriter_start_element_ns' => ['bool', 'writer'=>'resource', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'?string'], + 'xmlwriter_start_pi' => ['bool', 'writer'=>'resource', 'target'=>'string'], + 'xmlwriter_text' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'xmlwriter_write_attribute' => ['bool', 'writer'=>'resource', 'name'=>'string', 'value'=>'string'], + 'xmlwriter_write_attribute_ns' => ['bool', 'writer'=>'resource', 'prefix'=>'string', 'name'=>'string', 'namespace'=>'?string', 'value'=>'string'], + 'xmlwriter_write_cdata' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'xmlwriter_write_comment' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'xmlwriter_write_dtd' => ['bool', 'writer'=>'resource', 'name'=>'string', 'publicId='=>'?string', 'systemId='=>'?string', 'content='=>'?string'], + 'xmlwriter_write_dtd_attlist' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string'], + 'xmlwriter_write_dtd_element' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string'], + 'xmlwriter_write_dtd_entity' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'string', 'isParam'=>'bool', 'publicId'=>'string', 'systemId'=>'string', 'notationData'=>'string'], + 'xmlwriter_write_element' => ['bool', 'writer'=>'resource', 'name'=>'string', 'content'=>'?string'], + 'xmlwriter_write_element_ns' => ['bool', 'writer'=>'resource', 'prefix'=>'?string', 'name'=>'string', 'namespace'=>'string', 'content'=>'?string'], + 'xmlwriter_write_pi' => ['bool', 'writer'=>'resource', 'target'=>'string', 'content'=>'string'], + 'xmlwriter_write_raw' => ['bool', 'writer'=>'resource', 'content'=>'string'], + 'xpath_new_context' => ['XPathContext', 'dom_document'=>'DOMDocument'], + 'xpath_register_ns' => ['bool', 'xpath_context'=>'xpathcontext', 'prefix'=>'string', 'uri'=>'string'], + 'xpath_register_ns_auto' => ['bool', 'xpath_context'=>'xpathcontext', 'context_node='=>'object'], + 'xptr_new_context' => ['XPathContext'], + 'yac::__construct' => ['void', 'prefix='=>'string'], + 'yac::__get' => ['mixed', 'key'=>'string'], + 'yac::__set' => ['mixed', 'key'=>'string', 'value'=>'mixed'], + 'yac::delete' => ['bool', 'keys'=>'string|array', 'ttl='=>'int'], + 'yac::dump' => ['mixed', 'num'=>'int'], + 'yac::flush' => ['bool'], + 'yac::get' => ['mixed', 'key'=>'string|array', 'cas='=>'int'], + 'yac::info' => ['array'], + 'yaml_emit' => ['string', 'data'=>'mixed', 'encoding='=>'int', 'linebreak='=>'int', 'callbacks='=>'array'], + 'yaml_emit_file' => ['bool', 'filename'=>'string', 'data'=>'mixed', 'encoding='=>'int', 'linebreak='=>'int', 'callbacks='=>'array'], + 'yaml_parse' => ['mixed|false', 'input'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], + 'yaml_parse_file' => ['mixed|false', 'filename'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], + 'yaml_parse_url' => ['mixed|false', 'url'=>'string', 'pos='=>'int', '&w_ndocs='=>'int', 'callbacks='=>'array'], + 'yaz_addinfo' => ['string', 'id'=>'resource'], + 'yaz_ccl_conf' => ['void', 'id'=>'resource', 'config'=>'array'], + 'yaz_ccl_parse' => ['bool', 'id'=>'resource', 'query'=>'string', '&w_result'=>'array'], + 'yaz_close' => ['bool', 'id'=>'resource'], + 'yaz_connect' => ['mixed', 'zurl'=>'string', 'options='=>'mixed'], + 'yaz_database' => ['bool', 'id'=>'resource', 'databases'=>'string'], + 'yaz_element' => ['bool', 'id'=>'resource', 'elementset'=>'string'], + 'yaz_errno' => ['int', 'id'=>'resource'], + 'yaz_error' => ['string', 'id'=>'resource'], + 'yaz_es' => ['void', 'id'=>'resource', 'type'=>'string', 'args'=>'array'], + 'yaz_es_result' => ['array', 'id'=>'resource'], + 'yaz_get_option' => ['string', 'id'=>'resource', 'name'=>'string'], + 'yaz_hits' => ['int', 'id'=>'resource', 'searchresult='=>'array'], + 'yaz_itemorder' => ['void', 'id'=>'resource', 'args'=>'array'], + 'yaz_present' => ['bool', 'id'=>'resource'], + 'yaz_range' => ['void', 'id'=>'resource', 'start'=>'int', 'number'=>'int'], + 'yaz_record' => ['string', 'id'=>'resource', 'pos'=>'int', 'type'=>'string'], + 'yaz_scan' => ['void', 'id'=>'resource', 'type'=>'string', 'startterm'=>'string', 'flags='=>'array'], + 'yaz_scan_result' => ['array', 'id'=>'resource', 'result='=>'array'], + 'yaz_schema' => ['void', 'id'=>'resource', 'schema'=>'string'], + 'yaz_search' => ['bool', 'id'=>'resource', 'type'=>'string', 'query'=>'string'], + 'yaz_set_option' => ['', 'id'=>'', 'name'=>'string', 'value'=>'string', 'options'=>'array'], + 'yaz_sort' => ['void', 'id'=>'resource', 'criteria'=>'string'], + 'yaz_syntax' => ['void', 'id'=>'resource', 'syntax'=>'string'], + 'yaz_wait' => ['mixed', '&rw_options='=>'array'], + 'yp_all' => ['void', 'domain'=>'string', 'map'=>'string', 'callback'=>'string'], + 'yp_cat' => ['array', 'domain'=>'string', 'map'=>'string'], + 'yp_err_string' => ['string', 'errorcode'=>'int'], + 'yp_errno' => ['int'], + 'yp_first' => ['array', 'domain'=>'string', 'map'=>'string'], + 'yp_get_default_domain' => ['string'], + 'yp_master' => ['string', 'domain'=>'string', 'map'=>'string'], + 'yp_match' => ['string', 'domain'=>'string', 'map'=>'string', 'key'=>'string'], + 'yp_next' => ['array', 'domain'=>'string', 'map'=>'string', 'key'=>'string'], + 'yp_order' => ['int', 'domain'=>'string', 'map'=>'string'], + 'zem_get_extension_info_by_id' => [''], + 'zem_get_extension_info_by_name' => [''], + 'zem_get_extensions_info' => [''], + 'zem_get_license_info' => [''], + 'zend_current_obfuscation_level' => ['int'], + 'zend_disk_cache_clear' => ['bool', 'namespace='=>'mixed|string'], + 'zend_disk_cache_delete' => ['mixed|null', 'key'=>'string'], + 'zend_disk_cache_fetch' => ['mixed|null', 'key'=>'string'], + 'zend_disk_cache_store' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int|mixed'], + 'zend_get_id' => ['array', 'all_ids='=>'all_ids|false'], + 'zend_is_configuration_changed' => [''], + 'zend_loader_current_file' => ['string'], + 'zend_loader_enabled' => ['bool'], + 'zend_loader_file_encoded' => ['bool'], + 'zend_loader_file_licensed' => ['array'], + 'zend_loader_install_license' => ['bool', 'license_file'=>'string', 'override'=>'bool'], + 'zend_logo_guid' => ['string'], + 'zend_obfuscate_class_name' => ['string', 'class_name'=>'string'], + 'zend_obfuscate_function_name' => ['string', 'function_name'=>'string'], + 'zend_optimizer_version' => ['string'], + 'zend_runtime_obfuscate' => ['void'], + 'zend_send_buffer' => ['null|false', 'buffer'=>'string', 'mime_type='=>'string', 'custom_headers='=>'string'], + 'zend_send_file' => ['null|false', 'filename'=>'string', 'mime_type='=>'string', 'custom_headers='=>'string'], + 'zend_set_configuration_changed' => [''], + 'zend_shm_cache_clear' => ['bool', 'namespace='=>'mixed|string'], + 'zend_shm_cache_delete' => ['mixed|null', 'key'=>'string'], + 'zend_shm_cache_fetch' => ['mixed|null', 'key'=>'string'], + 'zend_shm_cache_store' => ['bool', 'key'=>'', 'value'=>'', 'ttl='=>'int|mixed'], + 'zend_thread_id' => ['int'], + 'zend_version' => ['string'], + 'zip_close' => ['void', 'zip'=>'resource'], + 'zip_entry_close' => ['bool', 'zip_entry'=>'resource'], + 'zip_entry_compressedsize' => ['int', 'zip_entry'=>'resource'], + 'zip_entry_compressionmethod' => ['string', 'zip_entry'=>'resource'], + 'zip_entry_filesize' => ['int', 'zip_entry'=>'resource'], + 'zip_entry_name' => ['string', 'zip_entry'=>'resource'], + 'zip_entry_open' => ['bool', 'zip_dp'=>'resource', 'zip_entry'=>'resource', 'mode='=>'string'], + 'zip_entry_read' => ['string|false', 'zip_entry'=>'resource', 'len='=>'int'], + 'zip_open' => ['resource|int|false', 'filename'=>'string'], + 'zip_read' => ['resource', 'zip'=>'resource'], + 'zlib_decode' => ['string|false', 'data'=>'string', 'max_length='=>'int'], + 'zlib_encode' => ['string|false', 'data'=>'string', 'encoding'=>'int', 'level='=>'int'], + 'zlib_get_coding_type' => ['string|false'], + 'zookeeper_dispatch' => ['void'], +]; diff --git a/vendor/vimeo/psalm/dictionaries/InternalTaintSinkMap.php b/vendor/vimeo/psalm/dictionaries/InternalTaintSinkMap.php new file mode 100644 index 00000000..cb8c6077 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/InternalTaintSinkMap.php @@ -0,0 +1,63 @@ +>> + */ +return [ +'exec' => [['shell']], +'create_function' => [[], ['eval']], +'file_get_contents' => [['file']], +'file_put_contents' => [['file']], +'fopen' => [['file']], +'unlink' => [['file']], +'copy' => [['file'], ['file']], +'file' => [['file']], +'link' => [['file'], ['file']], +'mkdir' => [['file']], +'move_uploaded_file' => [['file'], ['file']], +'parse_ini_file' => [['file']], +'chown' => [['file']], +'lchown' => [['file']], +'readfile' => [['file']], +'rename' => [['file'], ['file']], +'rmdir' => [['file']], +'header' => [['header']], +'symlink' => [['file']], +'tempnam' => [['file']], +'igbinary_unserialize' => [['unserialize']], +'ldap_search' => [[], ['ldap'], ['ldap']], +'mysqli_query' => [[], ['sql']], +'mysqli::query' => [['sql']], +'mysqli_real_query' => [[], ['sql']], +'mysqli::real_query' => [['sql']], +'mysqli_multi_query' => [[], ['sql']], +'mysqli::multi_query' => [['sql']], +'mysqli_prepare' => [[], ['sql']], +'mysqli::prepare' => [['sql']], +'mysqli_stmt::__construct' => [[], ['sql']], +'mysqli_stmt_prepare' => [[], ['sql']], +'mysqli_stmt::prepare' => [['sql']], +'passthru' => [['shell']], +'pcntl_exec' => [['shell']], +'pg_exec' => [[], ['sql']], +'pg_prepare' => [[], [], ['sql']], +'pg_put_line' => [[], ['sql']], +'pg_query' => [[], ['sql']], +'pg_query_params' => [[], ['sql']], +'pg_send_prepare' => [[], [], ['sql']], +'pg_send_query' => [[], ['sql']], +'pg_send_query_params' => [[], ['sql'], []], +'setcookie' => [['cookie'], ['cookie']], +'shell_exec' => [['shell']], +'system' => [['shell']], +'unserialize' => [['unserialize']], +'popen' => [['shell']], +'proc_open' => [['shell']], +'curl_init' => [['ssrf']], +'curl_setopt' => [[], [], ['ssrf']], +'getimagesize' => [['ssrf']], +]; diff --git a/vendor/vimeo/psalm/dictionaries/ManualPropertyMap.php b/vendor/vimeo/psalm/dictionaries/ManualPropertyMap.php new file mode 100644 index 00000000..cc6c3fec --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/ManualPropertyMap.php @@ -0,0 +1,145 @@ + [ + // documented as 'mixed' in doc-en/reference/datetime/dateinterval.xml:90. + 'days' => 'false|int', + ], + 'domnode' => [ + // documented as 'DomNodeList' in doc-en/reference/dom/domnode.xml:57. + 'childnodes' => 'DomNodeList' + ], + 'tidy' => [ + // documented via in doc-en/reference/tidy/tidy.xml:33 + 'errorbuffer' => 'string', + ], + // + // Undocumented classes from here on. + // + 'phpparser\\node\\expr\\array_' => [ + 'items' => 'array', + ], + 'phpparser\\node\\expr\\arrowfunction' => [ + 'params' => 'list', + ], + 'phpparser\\node\\expr\\closure' => [ + 'params' => 'list', + ], + 'phpparser\\node\\expr\\list_' => [ + 'items' => 'array', + ], + 'phpparser\\node\\expr\\shellexec' => [ + 'parts' => 'list', + ], + 'phpparser\\node\\matcharm' => [ + 'conds' => 'null|non-empty-list', + ], + 'phpparser\\node\\name' => [ + 'parts' => 'non-empty-list', + ], + 'phpparser\\node\\stmt\\case_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\catch_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\class_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\do_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\else_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\elseif_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\finally_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\for_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\foreach_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\if_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\interface_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\namespace_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\trait_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\trycatch' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\while_' => [ + 'stmts' => 'list', + ], + 'rdkafka\\message' => [ + 'err' => 'int', + 'headers' => 'array|null', + 'key' => 'string|null', + 'offset' => 'int', + 'partition' => 'int', + 'payload' => 'string', + 'timestamp' => 'int', + 'topic_name' => 'string', + ], + + // + // Legacy extensions that got removed. + // + 'mongoclient' => [ + 'connected' => 'boolean', + 'status' => 'string', + ], + 'mongocollection' => [ + 'db' => 'MongoDB', + 'w' => 'integer', + 'wtimeout' => 'integer', + ], + 'mongocursor' => [ + 'slaveokay' => 'boolean', + 'timeout' => 'integer', + ], + 'mongodb' => [ + 'w' => 'integer', + 'wtimeout' => 'integer', + ], + 'mongodb-driver-exception-writeexception' => [ + 'writeresult' => 'MongoDBDriverWriteResult', + ], + 'mongoid' => [ + 'id' => 'string', + ], + 'mongoint32' => [ + 'value' => 'string', + ], + 'mongoint64' => [ + 'value' => 'string', + ], + 'tokyotyrantexception' => [ + 'code' => 'int', + ], +]; diff --git a/vendor/vimeo/psalm/dictionaries/PropertyMap.php b/vendor/vimeo/psalm/dictionaries/PropertyMap.php new file mode 100644 index 00000000..7f07ea65 --- /dev/null +++ b/vendor/vimeo/psalm/dictionaries/PropertyMap.php @@ -0,0 +1,618 @@ + [ + 'endColumn' => 'int', + 'endLine' => 'int', + 'firstChild' => 'Node|null', + 'lastChild' => 'Node|null', + 'next' => 'Node|null', + 'parent' => 'Node|null', + 'previous' => 'Node|null', + 'startColumn' => 'int', + 'startLine' => 'int', + ], + 'commonmark\\node\\bulletlist' => [ + 'delimiter' => 'int', + 'tight' => 'bool', + ], + 'commonmark\\node\\codeblock' => [ + 'fence' => 'string|null', + ], + 'commonmark\\node\\customblock' => [ + 'onEnter' => 'string|null', + 'onLeave' => 'string|null', + ], + 'commonmark\\node\\custominline' => [ + 'onEnter' => 'string|null', + 'onLeave' => 'string|null', + ], + 'commonmark\\node\\heading' => [ + 'level' => 'int', + ], + 'commonmark\\node\\image' => [ + 'title' => 'string|null', + 'url' => 'string|null', + ], + 'commonmark\\node\\link' => [ + 'title' => 'string|null', + 'url' => 'string|null', + ], + 'commonmark\\node\\orderedlist' => [ + 'delimiter' => 'int', + 'start' => 'int', + 'tight' => 'bool', + ], + 'commonmark\\node\\text' => [ + 'literal' => 'string|null', + ], + 'curlfile' => [ + 'mime' => 'string', + 'name' => 'string', + 'postname' => 'string', + ], + 'curlstringfile' => [ + 'data' => 'string', + 'mime' => 'string', + 'postname' => 'string', + ], + 'dateinterval' => [ + 'd' => 'int', + 'date_string' => 'string', + 'days' => 'false|int', + 'f' => 'float', + 'from_string' => 'bool', + 'h' => 'int', + 'i' => 'int', + 'invert' => 'int', + 'm' => 'int', + 's' => 'int', + 'y' => 'int', + ], + 'dateperiod' => [ + 'current' => 'DateTimeInterface', + 'end' => 'DateTimeInterface', + 'include_start_date' => 'bool', + 'interval' => 'DateInterval', + 'recurrences' => 'int', + 'start' => 'DateTimeInterface', + ], + 'directory' => [ + 'handle' => 'resource', + 'path' => 'string', + ], + 'domattr' => [ + 'name' => 'string', + 'ownerElement' => 'DOMElement|null', + 'schemaTypeInfo' => 'mixed', + 'specified' => 'bool', + 'value' => 'string', + ], + 'domcharacterdata' => [ + 'data' => 'string', + 'length' => 'int', + 'nextElementSibling' => 'DOMElement|null', + 'previousElementSibling' => 'DOMElement|null', + ], + 'domdocument' => [ + 'actualEncoding' => 'string|null', + 'childElementCount' => 'int', + 'config' => 'mixed', + 'doctype' => 'DOMDocumentType|null', + 'documentElement' => 'DOMElement|null', + 'documentURI' => 'string|null', + 'encoding' => 'string|null', + 'firstElementChild' => 'DOMElement|null', + 'formatOutput' => 'bool', + 'implementation' => 'DOMImplementation', + 'lastElementChild' => 'DOMElement|null', + 'preserveWhiteSpace' => 'bool', + 'recover' => 'bool', + 'resolveExternals' => 'bool', + 'standalone' => 'bool', + 'strictErrorChecking' => 'bool', + 'substituteEntities' => 'bool', + 'validateOnParse' => 'bool', + 'version' => 'string|null', + 'xmlEncoding' => 'string|null', + 'xmlStandalone' => 'bool', + 'xmlVersion' => 'string|null', + ], + 'domdocumentfragment' => [ + 'childElementCount' => 'int', + 'firstelementChild' => 'DOMElement|null', + 'lastelementChild' => 'DOMElement|null', + ], + 'domdocumenttype' => [ + 'entities' => 'DOMNamedNodeMap', + 'internalsubset' => 'string|null', + 'name' => 'string', + 'notations' => 'DOMNamedNodeMap', + 'publicid' => 'string', + 'systemid' => 'string', + ], + 'domelement' => [ + 'childElementCount' => 'int', + 'firstElementChild' => 'DOMElement|null', + 'lastElementChild' => 'DOMElement|null', + 'nextElementSibling' => 'DOMElement|null', + 'previousElementSibling' => 'DOMElement|null', + 'schemaTypeInfo' => 'mixed', + 'tagName' => 'string', + ], + 'domentity' => [ + 'actualEncoding' => 'string|null', + 'encoding' => 'string|null', + 'notationName' => 'string|null', + 'publicid' => 'string|null', + 'systemid' => 'string|null', + 'version' => 'string|null', + ], + 'domexception' => [ + 'code' => 'int', + ], + 'domnamednodemap' => [ + 'length' => 'int', + ], + 'domnode' => [ + 'attributes' => 'DOMNamedNodeMap|null', + 'baseURI' => 'string|null', + 'childNodes' => 'DOMNodeList', + 'firstChild' => 'DOMNode|null', + 'lastChild' => 'DOMNode|null', + 'localName' => 'string|null', + 'namespaceURI' => 'string|null', + 'nextSibling' => 'DOMNode|null', + 'nodeName' => 'string', + 'nodeType' => 'int', + 'nodeValue' => 'string|null', + 'ownerDocument' => 'DOMDocument|null', + 'parentNode' => 'DOMNode|null', + 'prefix' => 'string', + 'previousSibling' => 'DOMNode|null', + 'textContent' => 'string', + ], + 'domnodelist' => [ + 'length' => 'int', + ], + 'domnotation' => [ + 'publicId' => 'string', + 'systemId' => 'string', + ], + 'domprocessinginstruction' => [ + 'data' => 'string', + 'target' => 'string', + ], + 'domtext' => [ + 'wholeText' => 'string', + ], + 'domxpath' => [ + 'document' => 'DOMDocument', + 'registerNodeNamespaces' => 'bool', + ], + 'errorexception' => [ + 'severity' => 'int', + ], + 'event' => [ + 'pending' => 'bool', + ], + 'eventbuffer' => [ + 'contiguous_space' => 'int', + 'length' => 'int', + ], + 'eventbufferevent' => [ + 'fd' => 'int', + 'input' => 'EventBuffer', + 'output' => 'EventBuffer', + 'priority' => 'int', + ], + 'eventlistener' => [ + 'fd' => 'int', + ], + 'eventsslcontext' => [ + 'local_cert' => 'string', + 'local_pk' => 'string', + ], + 'libxmlerror' => [ + 'code' => 'int', + 'column' => 'int', + 'file' => 'string', + 'level' => 'int', + 'line' => 'int', + 'message' => 'string', + ], + 'mongoclient' => [ + 'connected' => 'boolean', + 'status' => 'string', + ], + 'mongocollection' => [ + 'db' => 'MongoDB', + 'w' => 'integer', + 'wtimeout' => 'integer', + ], + 'mongocursor' => [ + 'slaveokay' => 'boolean', + 'timeout' => 'integer', + ], + 'mongodb' => [ + 'w' => 'integer', + 'wtimeout' => 'integer', + ], + 'mongodb\\driver\\exception\\commandexception' => [ + 'resultdocument' => 'object', + ], + 'mongodb\\driver\\exception\\runtimeexception' => [ + 'errorlabels' => 'array|null', + ], + 'mongodb\\driver\\exception\\writeexception' => [ + 'writeresult' => 'MongoDB\\Driver\\WriteResult', + ], + 'mongoid' => [ + 'id' => 'string', + ], + 'mongoint32' => [ + 'value' => 'string', + ], + 'mongoint64' => [ + 'value' => 'string', + ], + 'mysqli' => [ + 'affected_rows' => 'int<-1, max>|numeric-string', + 'client_info' => 'string', + 'client_version' => 'int', + 'connect_errno' => 'int', + 'connect_error' => 'string|null', + 'errno' => 'int', + 'error' => 'string', + 'error_list' => 'array', + 'field_count' => 'int', + 'host_info' => 'string', + 'info' => 'string|null', + 'insert_id' => 'int|string', + 'protocol_version' => 'int', + 'server_info' => 'string', + 'server_version' => 'int', + 'sqlstate' => 'string', + 'thread_id' => 'int', + 'warning_count' => 'int', + ], + 'mysqli_driver' => [ + 'client_info' => 'string', + 'client_version' => 'int', + 'driver_version' => 'int', + 'embedded' => 'bool', + 'reconnect' => 'bool', + 'report_mode' => 'int', + ], + 'mysqli_result' => [ + 'current_field' => 'int', + 'field_count' => 'int', + 'lengths' => 'array|null', + 'num_rows' => 'int<0, max>|numeric-string', + 'type' => 'int', + ], + 'mysqli_sql_exception' => [ + 'sqlstate' => 'string', + ], + 'mysqli_stmt' => [ + 'affected_rows' => 'int<-1, max>|numeric-string', + 'errno' => 'int', + 'error' => 'string', + 'error_list' => 'array', + 'field_count' => 'int', + 'id' => 'int', + 'insert_id' => 'int|string', + 'num_rows' => 'int<0, max>|numeric-string', + 'param_count' => 'int', + 'sqlstate' => 'string', + ], + 'mysqli_warning' => [ + 'errno' => 'int', + 'message' => 'string', + 'sqlstate' => 'string', + ], + 'parallel\\events\\event' => [ + 'object' => 'object', + 'source' => 'string', + 'type' => 'int', + ], + 'parle\\errorinfo' => [ + 'id' => 'int', + 'position' => 'int', + 'token' => 'mixed', + ], + 'parle\\lexer' => [ + 'bol' => 'bool', + 'cursor' => 'int', + 'flags' => 'int', + 'marker' => 'int', + 'state' => 'int', + ], + 'parle\\parser' => [ + 'action' => 'int', + 'reduceid' => 'int', + ], + 'parle\\rlexer' => [ + 'bol' => 'bool', + 'cursor' => 'int', + 'flags' => 'int', + 'marker' => 'int', + 'state' => 'int', + ], + 'parle\\rparser' => [ + 'action' => 'int', + 'reduceid' => 'int', + ], + 'parle\\stack' => [ + 'empty' => 'bool', + 'size' => 'int', + 'top' => 'mixed', + ], + 'parle\\token' => [ + 'id' => 'int', + 'value' => 'string', + ], + 'pdoexception' => [ + 'code' => 'int|string', + 'errorInfo' => 'array|null', + ], + 'pdostatement' => [ + 'queryString' => 'string', + ], + 'php_user_filter' => [ + 'filtername' => 'string', + 'params' => 'mixed', + 'stream' => 'resource|null', + ], + 'phpparser\\node\\expr\\array_' => [ + 'items' => 'array', + ], + 'phpparser\\node\\expr\\arrowfunction' => [ + 'params' => 'list', + ], + 'phpparser\\node\\expr\\closure' => [ + 'params' => 'list', + ], + 'phpparser\\node\\expr\\list_' => [ + 'items' => 'array', + ], + 'phpparser\\node\\expr\\shellexec' => [ + 'parts' => 'list', + ], + 'phpparser\\node\\matcharm' => [ + 'conds' => 'null|non-empty-list', + ], + 'phpparser\\node\\name' => [ + 'parts' => 'non-empty-list', + ], + 'phpparser\\node\\stmt\\case_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\catch_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\class_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\do_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\else_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\elseif_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\finally_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\for_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\foreach_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\if_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\interface_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\namespace_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\trait_' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\trycatch' => [ + 'stmts' => 'list', + ], + 'phpparser\\node\\stmt\\while_' => [ + 'stmts' => 'list', + ], + 'phptoken' => [ + 'id' => 'int', + 'line' => 'int', + 'pos' => 'int', + 'text' => 'string', + ], + 'rdkafka\\message' => [ + 'err' => 'int', + 'headers' => 'array|null', + 'key' => 'string|null', + 'offset' => 'int', + 'partition' => 'int', + 'payload' => 'string', + 'timestamp' => 'int', + 'topic_name' => 'string', + ], + 'reflectionextension' => [ + 'name' => 'string', + ], + 'reflectionfunctionabstract' => [ + 'name' => 'string', + ], + 'reflectionzendextension' => [ + 'name' => 'string', + ], + 'snmp' => [ + 'enum_print' => 'bool', + 'exceptions_enabled' => 'int', + 'info' => 'array', + 'max_oids' => 'int|null', + 'oid_increasing_check' => 'bool', + 'oid_output_format' => 'int', + 'quick_print' => 'bool', + 'valueretrieval' => 'int', + ], + 'snmpexception' => [ + 'code' => 'string', + ], + 'soapclient' => [ + '__default_headers' => 'array|null', + '__last_request' => 'string|null', + '__last_request_headers' => 'string|null', + '__last_response' => 'string|null', + '__last_response_headers' => 'string|null', + '__soap_fault' => 'SoapFault|null', + '_classmap' => 'array|null', + '_connection_timeout' => 'int', + '_cookies' => 'array', + '_digest' => 'string|null', + '_encoding' => 'string|null', + '_exceptions' => 'bool', + '_features' => 'int|null', + '_keep_alive' => 'bool', + '_login' => 'string|null', + '_password' => 'string|null', + '_proxy_host' => 'string|null', + '_proxy_login' => 'string|null', + '_proxy_password' => 'string|null', + '_proxy_port' => 'int|null', + '_soap_version' => 'int', + '_ssl_method' => 'int|null', + '_stream_context' => 'resource|null', + '_use_digest' => 'bool', + '_use_proxy' => 'int|null', + '_user_agent' => 'string|null', + 'compression' => 'int|null', + 'httpsocket' => 'resource|null', + 'httpurl' => 'resource|null', + 'location' => 'string|null', + 'sdl' => 'resource|null', + 'style' => 'int|null', + 'trace' => 'bool', + 'typemap' => 'resource|null', + 'uri' => 'string|null', + 'use' => 'int|null', + ], + 'soapfault' => [ + '_name' => 'string|null', + 'detail' => 'mixed', + 'faultactor' => 'string|null', + 'faultcode' => 'string|null', + 'faultcodens' => 'string|null', + 'faultstring' => 'string', + 'headerfault' => 'mixed', + ], + 'soapheader' => [ + 'actor' => 'string|int|null', + 'data' => 'mixed', + 'mustUnderstand' => 'bool', + 'name' => 'string', + 'namespace' => 'string', + ], + 'soapparam' => [ + 'param_data' => 'mixed', + 'param_name' => 'string', + ], + 'soapserver' => [ + '__soap_fault' => 'SoapFault|null', + 'service' => 'resource', + ], + 'soapvar' => [ + 'enc_name' => 'string|null', + 'enc_namens' => 'string|null', + 'enc_ns' => 'string|null', + 'enc_stype' => 'string|null', + 'enc_type' => 'int', + 'enc_value' => 'mixed', + ], + 'solrdocumentfield' => [ + 'boost' => 'float', + 'name' => 'string', + 'values' => 'array', + ], + 'solrexception' => [ + 'sourcefile' => 'string', + 'sourceline' => 'int', + 'zif_name' => 'string', + ], + 'solrresponse' => [ + 'http_digested_response' => 'string', + 'http_raw_request' => 'string', + 'http_raw_request_headers' => 'string', + 'http_raw_response' => 'string', + 'http_raw_response_headers' => 'string', + 'http_request_url' => 'string', + 'http_status' => 'int', + 'http_status_message' => 'string', + 'parser_mode' => 'int', + 'success' => 'bool', + ], + 'streamwrapper' => [ + 'context' => 'resource', + ], + 'tidy' => [ + 'errorBuffer' => 'string', + 'value' => 'string|null', + ], + 'tidynode' => [ + 'attribute' => 'array|null', + 'child' => 'array|null', + 'column' => 'int', + 'id' => 'int|null', + 'line' => 'int', + 'name' => 'string', + 'proprietary' => 'bool', + 'type' => 'int', + 'value' => 'string', + ], + 'tokyotyrantexception' => [ + 'code' => 'int', + ], + 'transliterator' => [ + 'id' => 'string', + ], + 'xmlreader' => [ + 'attributeCount' => 'int', + 'baseURI' => 'string', + 'depth' => 'int', + 'hasAttributes' => 'bool', + 'hasValue' => 'bool', + 'isDefault' => 'bool', + 'isEmptyElement' => 'bool', + 'localName' => 'string', + 'name' => 'string', + 'namespaceURI' => 'string', + 'nodeType' => 'int', + 'prefix' => 'string', + 'value' => 'string', + 'xmlLang' => 'string', + ], + 'ziparchive' => [ + 'comment' => 'string', + 'filename' => 'string', + 'lastId' => 'int', + 'numFiles' => 'int', + 'status' => 'int', + 'statusSys' => 'int', + ], +]; diff --git a/vendor/vimeo/psalm/docs/README.md b/vendor/vimeo/psalm/docs/README.md new file mode 100644 index 00000000..797f9cdb --- /dev/null +++ b/vendor/vimeo/psalm/docs/README.md @@ -0,0 +1,72 @@ +# About Psalm + +Psalm is a static analysis tool that attempts to dig into your program and find as many type-related bugs as possible. + +It has a few features that go further than other similar tools: + +- **Mixed type warnings**
+ If Psalm cannot infer a type for an expression then it uses a `mixed` placeholder type. `mixed` types can sometimes mask bugs, so keeping track of them helps you avoid a number of common pitfalls. + +- **Intelligent logic checks**
+ Psalm keeps track of logical assertions made about your code, so `if ($a && $a) {}` and `if ($a && !$a) {}` are both treated as issues. Psalm also keeps track of logical assertions made in prior code paths, preventing issues like `if ($a) {} elseif ($a) {}`. + +- **Property initialisation checks**
+ Psalm checks that all properties of a given object have values after the constructor is called. + +- **Taint analysis**
+ Psalm can [detect security vulnerabilities](https://psalm.dev/articles/detect-security-vulnerabilities-with-psalm) in your code. + +- **Language Server**
+ Psalm has a Language Server that’s [compatible with a range of different IDEs](https://psalm.dev/docs/running_psalm/language_server/). + +- **Automatic fixes**
+ Psalm can [fix many of the issues it finds automatically](https://psalm.dev/docs/manipulating_code/fixing/). + +- **Automatic refactoring**
+ Psalm can also [perform simple refactors](https://psalm.dev/docs/manipulating_code/refactoring/) from the command line. + +## Example output + +Given a file `implode_strings.php`: + +```php + ./vendor/bin/psalm implode_strings.php +ERROR: InvalidArgument - somefile.php:3:14 - Argument 1 of implode expects `string`, `array` provided (see https://psalm.dev/004) +``` + +## Inspirations + +There are two main inspirations for Psalm: + +- Etsy's [Phan](https://github.com/etsy/phan), which uses nikic's [php-ast](https://github.com/nikic/php-ast) extension to create an abstract syntax tree +- Facebook's [Hack](http://hacklang.org/), a PHP-like language that supports many advanced typing features natively, so docblocks aren't necessary. + +## Index + +- Running Psalm: + - [Installation](running_psalm/installation.md) + - [Configuration](running_psalm/configuration.md) + - Plugins + - [Using plugins](running_psalm/plugins/using_plugins.md) + - [Authoring plugins](running_psalm/plugins/authoring_plugins.md) + - [How Psalm represents types](running_psalm/plugins/plugins_type_system.md) + - [Command line usage](running_psalm/command_line_usage.md) + - [IDE support](running_psalm/language_server.md) + - Handling errors: + - [Dealing with code issues](running_psalm/dealing_with_code_issues.md) + - [Issue Types](running_psalm/issues.md) + - [Checking non-PHP files](running_psalm/checking_non_php_files.md) +- Annotating code: + - [Typing in Psalm](annotating_code/typing_in_psalm.md) + - [Supported Annotations](annotating_code/supported_annotations.md) + - [Template Annotations](annotating_code/templated_annotations.md) +- Manipulating code: + - [Fixing code](manipulating_code/fixing.md) + - [Refactoring code](manipulating_code/refactoring.md) + diff --git a/vendor/vimeo/psalm/docs/annotating_code/adding_assertions.md b/vendor/vimeo/psalm/docs/annotating_code/adding_assertions.md new file mode 100644 index 00000000..db5d3f58 --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/adding_assertions.md @@ -0,0 +1,223 @@ +# Adding assertions + +Psalm has five docblock annotations that allow you to specify that a function verifies facts about variables and properties: + +- `@psalm-assert` (used when throwing an exception) +- `@psalm-assert-if-true`/`@psalm-assert-if-false` (used when returning a `bool`) +- `@psalm-if-this-is`/`@psalm-this-out` (used when calling a method) + +A list of acceptable assertions [can be found here](assertion_syntax.md). + +## Examples + +If you have a class that verified its input is an array of strings, you can make that clear to Psalm: + +```php +isValid(); +} + +/** + * @psalm-assert-if-false B $a + */ +function isInvalidB(A $a) : bool { + return !$a instanceof B || !$a->isValid(); +} + +function takesA(A $a) : void { + if (isValidB($a)) { + $a->bar(); + } + + if (isInvalidB($a)) { + // do something + } else { + $a->bar(); + } + + $a->bar(); //error +} +``` + +As well as getting Psalm to understand that the given data must be a certain type, you can also show that a variable must be not null: + +```php +exception + * @psalm-assert-if-true Exception $this->getException() + */ + public function hasException(): bool { + return $this->exception !== null; + } + + public function getException(): ?Exception { + return $this->exception; + } + + public function foo(): void { + if( $this->hasException() ) { + // Psalm now knows that $this->exception is an instance of Exception + echo $this->exception->getMessage(); + } + } +} + +$result = new Result; + +if( $result->hasException() ) { + // Psalm now knows that $result->getException() will return an instance of Exception + echo $result->getException()->getMessage(); +} +``` + +Please note that the example above only works if you enable [method call memoization](https://psalm.dev/docs/running_psalm/configuration/#memoizemethodcallresults) +in the config file or annotate the class as [immutable](https://psalm.dev/docs/annotating_code/supported_annotations/#psalm-immutable). + + +You can use `@psalm-this-out` to change the template arguments of a method after a method call, to reflect changes to the object's internal state. +You can also make assertions on the object's template arguments using `@psalm-if-this-is`. + + +```php + + */ + private array $data; + /** + * @param T $data + */ + public function __construct($data) { + $this->data = [$data]; + } + /** + * @template NewT + * + * @param NewT $data + * + * @psalm-this-out self + * + * @return void + */ + public function addData($data) { + /** @var self $this */ + $this->data []= $data; + } + /** + * @template NewT + * + * @param NewT $data + * + * @psalm-this-out self + * + * @return void + */ + public function setData($data) { + /** @var self $this */ + $this->data = [$data]; + } + /** + * @psalm-if-this-is a + */ + public function test(): void { + } +} + +$i = new a(123); +// OK - $i is a<123> +$i->test(); + +$i->addData(321); +// OK - $i is a<123|321> +$i->test(); + +$i->setData("test"); +// IfThisIsMismatch - Class is not a as required by psalm-if-this-is +$i->test(); +``` diff --git a/vendor/vimeo/psalm/docs/annotating_code/assertion_syntax.md b/vendor/vimeo/psalm/docs/annotating_code/assertion_syntax.md new file mode 100644 index 00000000..7cb2664b --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/assertion_syntax.md @@ -0,0 +1,127 @@ +# Assertion syntax + +Psalm’s [assertion annotation](adding_assertions.md) supports a number of different assertions. + +Psalm assertions are of the form + +`@psalm-assert(-if-true|-if-false)? (Assertion) (Variable or Property)` + +`Assertion` here can have many forms: + +## Regular assertions + +### is_xxx assertions + +Most `is_xxx` PHP functions have companion assertions e.g. `int` for `is_int`. Here's the full list: + +- `int` +- `float` +- `string` +- `bool` +- `scalar` +- `callable` +- `countable` +- `array` +- `iterable` +- `numeric` +- `resource` +- `object` +- `null` + +So a custom version `is_int` could be annotated in Psalm as + +```php + $foo` + +## Negated assertions + +Any assertion above can be negated: + +This asserts that `$foo` is not an `int`: + +```php +property`. If used above an assignment, Psalm checks whether the `VariableReference` matches the variable being assigned. If they differ, Psalm will assign the `Type` to `VariableReference` and use it in the expression below. + +If no `VariableReference` is given, the annotation tells Psalm that the right-hand side of the expression, whether an assignment or a return, is of type `Type`. + +```php + $f */ +function getTimes(int $n): iterable { + while ($n--) { + yield new \DateTime(); + } +}; +/** + * @var \Datetime[] $times + * @psalm-ignore-var + */ +$times = getTimes(3); +// this trace shows "iterable" instead of "array" +/** @psalm-trace $times */ +foreach ($times as $time) { + echo $time->format('Y-m-d H:i:s.u') . PHP_EOL; +} +``` + +### `@psalm-suppress SomeIssueName` + +This annotation is used to suppress issues. It can be used in function docblocks, class docblocks and also inline, applying to the following statement. + +Function docblock example: + +```php + 1 ? new Foo() : null; +} + +takesFoo(getFoo()); +``` + +### `@psalm-ignore-falsable-return` + +This provides the same, but for `false`. Psalm uses this internally for functions like `preg_replace`, which can return false if the given input has encoding errors, but where 99.9% of the time the function operates as expected. + +### `@psalm-seal-properties` + +If you have a magic property getter/setter, you can use `@psalm-seal-properties` to instruct Psalm to disallow getting and setting any properties not contained in a list of `@property` (or `@property-read`/`@property-write`) annotations. + +```php +bar = 5; // this call fails +``` + +### `@psalm-internal` + +Used to mark a class, property or function as internal to a given namespace. Psalm treats this slightly differently to +the PHPDoc `@internal` tag. For `@internal`, an issue is raised if the calling code is in a namespace completely +unrelated to the namespace of the calling code, i.e. not sharing the first element of the namespace. + +In contrast for `@psalm-internal`, the docblock line must specify a namespace. An issue is raised if the calling code +is not within the given namespace. + +```php +s = $s; + } +} + +$b = new B("hello"); +echo $b->s; +$b->s = "boo"; // disallowed +``` + +### `@psalm-mutation-free` + +Used to annotate a class method that does not mutate state, either internally or externally of the class's scope. +This requires that the return value depend only on the instance's properties. For example, `random_int` is considered +mutating here because it mutates the random number generator's internal state. + +```php +s = $s; + } + + /** + * @psalm-mutation-free + */ + public function getShort() : string { + return substr($this->s, 0, 5); + } + + /** + * @psalm-mutation-free + */ + public function getShortMutating() : string { + $this->s .= "hello"; // this is a bug + return substr($this->s, 0, 5); + } +} +``` + +### `@psalm-external-mutation-free` + +Used to annotate a class method that does not mutate state externally of the class's scope. + +```php +s = $s; + } + + /** + * @psalm-external-mutation-free + */ + public function getShortMutating() : string { + $this->s .= "hello"; // this is fine + return substr($this->s, 0, 5); + } + + /** + * @psalm-external-mutation-free + */ + public function save() : void { + file_put_contents("foo.txt", $this->s); // this is a bug + } +} +``` + +### `@psalm-immutable` + +Used to annotate a class where every property is treated by consumers as `@psalm-readonly` and every instance method is treated as `@psalm-mutation-free`. + +```php +baz = $baz; + } + + public function bar(): int + { + return 0; + } +} + +$anonymous = new /** @psalm-immutable */ class extends Foo +{ + public string $baz = "B"; + + public function bar(): int + { + return 1; + } +}; +``` + +### `@psalm-pure` + +Used to annotate a [pure function](https://en.wikipedia.org/wiki/Pure_function) - one whose output is just a function of its input. + +```php + random_int(1, 2) +); +``` + +### `@psalm-allow-private-mutation` + +Used to annotate readonly properties that can be mutated in a private context. With this, public properties can be read from another class but only be mutated within a method of its own class. + +```php +count++; + } +} + +$counter = new Counter(); +echo $counter->count; // outputs 0 +$counter->increment(); // Method can mutate property +echo $counter->count; // outputs 1 +$counter->count = 5; // This will fail, as it's mutating a property directly +``` + +### `@psalm-readonly-allow-private-mutation` + +This is a shorthand for the property annotations `@readonly` and `@psalm-allow-private-mutation`. + +```php +count++; + } +} + +$counter = new Counter(); +echo $counter->count; // outputs 0 +$counter->increment(); // Method can mutate property +echo $counter->count; // outputs 1 +$counter->count = 5; // This will fail, as it's mutating a property directly +``` + +### `@psalm-trace` + +You can use this annotation to trace inferred type (applied to the *next* statement). + +```php + "Nokia"]; + } +} +``` + +### `@psalm-import-type` + +You can use this annotation to import a type defined with [`@psalm-type`](#psalm-type) if it was defined somewhere else. + +```php +toArray()); + } +} +``` + +You can also alias a type when you import it: + +```php +toArray()); + } +} +``` + +### `@psalm-require-extends` + +The `@psalm-require-extends` annotation allows you to define the requirements that a trait imposes on the using class. + +```php +` without `@no-named-arguments` but becomes `list` with it, because it excludes the case where the offset would be a string with the name of the parameter + +### `@psalm-ignore-variable-property` and `@psalm-ignore-variable-method` + +Instructs Psalm to ignore variable property fetch / variable method call when looking for dead code. +```php +class Foo +{ + // this property can be deleted by Psalter, + // as potential reference in get() is ignored + public string $bar = 'bar'; + + public function get(string $name): mixed + { + /** @psalm-ignore-variable-property */ + return $this->{$name}; + } +} +``` +When Psalm encounters variable property, it treats all properties in given class as potentially referenced. +With `@psalm-ignore-variable-property` annotation, this reference is ignored. + +While `PossiblyUnusedProperty` would be emitted in both cases, using `@psalm-ignore-variable-property` +would allow [Psalter](../manipulating_code/fixing.md) to delete `Foo::$bar`. + +`@psalm-ignore-variable-method` behaves the same way, but for variable method calls. + +### `@psalm-yield` + +Used to specify the type of value which will be sent back to a generator when an annotated object instance is yielded. + +```php + + */ +class Success implements Promise { + /** + * @psalm-param TValue $value + */ + public function __construct($value) {} +} + +/** + * @return Promise + */ +function fetch(): Promise { + return new Success('{"data":[]}'); +} + +function (): Generator { + $data = yield fetch(); + + // this is fine, Psalm knows that $data is a string + return json_decode($data); +}; +``` +This annotation supports only generic types, meaning that e.g. `@psalm-yield string` would be ignored. + +### `@psalm-api` + +Used to tell Psalm that a class is used, even if no references to it can be +found. Unused issues will be suppressed. + +For example, in frameworks, controllers are often invoked "magically" without +any explicit references to them in your code. You should mark these classes with +`@psalm-api`. +```php +/** + * @psalm-api + */ +class UnreferencedClass {} +``` + +## Type Syntax + +Psalm supports PHPDoc’s [type syntax](https://docs.phpdoc.org/latest/guide/guides/types.html), and also the [proposed PHPDoc PSR type syntax](https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md#appendix-a-types). + +A detailed write-up is found in [Typing in Psalm](typing_in_psalm.md) diff --git a/vendor/vimeo/psalm/docs/annotating_code/templated_annotations.md b/vendor/vimeo/psalm/docs/annotating_code/templated_annotations.md new file mode 100644 index 00000000..117c43fe --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/templated_annotations.md @@ -0,0 +1,454 @@ +# Templating + +Docblocks allow you to tell Psalm some simple information about how your code works. For example `@return int` in a function return type tells Psalm that a function should return an `int` and `@return MyContainer` tells Psalm that a function should return an instance of a user-defined class `MyContainer`. In either case, Psalm can check that the function actually returns those types _and_ that anything calling that function uses its returned value properly. + +Templated types allow you to tell Psalm even more information about how your code works. + +Let's look at a simple class `MyContainer`: + +```php +value = $value; + } + + public function getValue() { + return $this->value; + } +} +``` + +When Psalm handles the return type of `$my_container->getValue()` it doesn't know what it's getting out, because the value can be arbitrary. + +Templated annotations provide us with a workaround - we can define a generic/templated param `T` that is a placeholder for the value inside `MyContainer`: + +```php +value = $value; + } + + /** @return T */ + public function getValue() { + return $this->value; + } +} +``` + +Now we can substitute values for that templated param when we reference `MyContainer` in docblocks e.g. `@return MyContainer`. This tells Psalm to substitute `T` for `int` when evaluating that return type, effectively treating it as a class that looks like + +```php +value = $value; + } + + /** @return int */ + public function getValue() { + return $this->value; + } +} +``` + +This pattern can be used in a large number of different situations like mocking, collections, iterators and loading arbitrary objects. Psalm has a large number of annotations to make it easy to use templated types in your codebase. + +## `@template`, `@psalm-template` + +The `@template`/`@psalm-template` tag allows classes and functions to declare a generic type parameter. + +As a very simple example, this function returns whatever is passed in: + +```php + $arr + * @param array $arr2 + * @return array + */ +function array_combine(array $arr, array $arr2) {} +``` + +### Notes +- `@template` tag order matters for class docblocks, as they dictate the order in which those generic parameters are referenced in docblocks. +- The names of your templated types (e.g. `TKey`, `TValue`) don't matter outside the scope of the class or function in which they're declared. + +## @param class-string<T> + +Psalm also allows you to parameterize class types + +```php + $class + * @return T + */ +function instantiator(string $class) { + return new $class(); +} + +class Foo { + public final function __construct() {} +} + +class FooChild extends Foo {} + +$r = instantiator(FooChild::class); +// Psalm knows $r is an object of type FooChild +``` + +## Template inheritance + +Psalm allows you to extend templated classes with `@extends`/`@template-extends`: + +```php + + */ +class ChildClass extends ParentClass {} +``` + +similarly you can implement interfaces with `@implements`/`@template-implements` + +```php + + */ +class Foo implements IFoo {} +``` + +and import traits with `@use`/`@template-use` + +```php + + */ + use MyTrait; +} +``` + +You can also extend one templated class with another, e.g. + +```php + + */ +class ChildClass extends ParentClass {} +``` + +## Template constraints + +You can use `@template of ` to restrict input. For example, to restrict to a given class you can use + +```php + + */ +function makeArray($t) { + return [$t]; +} +$a = makeArray(new Foo()); // typed as array +$b = makeArray(new FooChild()); // typed as array +$c = makeArray(new stdClass()); // type error +``` + +Templated types aren't limited to key-value pairs, and you can re-use templates across multiple arguments of a template-supporting type: +```php + + */ +abstract class Foo implements IteratorAggregate { + /** + * @var int + */ + protected $rand_min; + + /** + * @var int + */ + protected $rand_max; + + public function __construct(int $rand_min, int $rand_max) { + $this->rand_min = $rand_min; + $this->rand_max = $rand_max; + } + + /** + * @return Generator + */ + public function getIterator() : Generator { + $j = random_int($this->rand_min, $this->rand_max); + for($i = $this->rand_min; $i <= $j; $i += 1) { + yield $this->getFuzzyType($i) => $i ** $i; + } + + return $this->getFuzzyType($j); + } + + /** + * @return T0 + */ + abstract protected function getFuzzyType(int $i); +} + +/** + * @template-extends Foo + */ +class Bar extends Foo { + protected function getFuzzyType(int $i) : int { + return $i; + } +} + +/** + * @template-extends Foo + */ +class Baz extends Foo { + protected function getFuzzyType(int $i) : string { + return static::class . '[' . $i . ']'; + } +} +``` + +## Template covariance + +Imagine you have code like this: + +```php + + */ + public array $list; + + /** + * @param array $list + */ + public function __construct(array $list) { + $this->list = $list; + } + + /** + * @param T $t + */ + public function add($t) : void { + $this->list[] = $t; + } +} + +/** + * @param Collection $collection + */ +function addAnimal(Collection $collection) : void { + $collection->add(new Cat()); +} + +/** + * @param Collection $dog_collection + */ +function takesDogList(Collection $dog_collection) : void { + addAnimal($dog_collection); +} +``` + +That last call `addAnimal($dog_collection)` breaks the type of the collection – suddenly a collection of dogs becomes a collection of dogs _or_ cats. That is bad. + +To prevent this, Psalm emits an error when calling `addAnimal($dog_collection)` saying "addAnimal expects a `Collection`, but `Collection` was passed". If you haven't encountered this rule before it's probably confusing to you – any function that accepted an `Animal` would be happy to accept a subtype thereof. But as we see in the example above, doing so can lead to problems. + +But there are also times where it's perfectly safe to pass template param subtypes: + +```php + */ + public array $list = []; +} + +/** + * @param Collection $collection + */ +function getNoises(Collection $collection) : void { + foreach ($collection->list as $animal) { + echo $animal->getNoise(); + } +} + +/** + * @param Collection $dog_collection + */ +function takesDogList(Collection $dog_collection) : void { + getNoises($dog_collection); +} +``` + +Here we're not doing anything bad – we're just iterating over an array of objects. But Psalm still gives that same basic error – "getNoises expects a `Collection`, but `Collection` was passed". + +We can tell Psalm that it's safe to pass subtypes for the templated param `T` by using the annotation `@template-covariant T` (or `@psalm-template-covariant T`): + +```php + */ + public array $list = []; +} +``` + +Doing this for the above example produces no errors: [https://psalm.dev/r/5254af7a8b](https://psalm.dev/r/5254af7a8b) + +But `@template-covariant` doesn't get rid of _all_ errors – if you add it to the first example, you get a new error – [https://psalm.dev/r/0fcd699231](https://psalm.dev/r/0fcd699231) – complaining that you're attempting to use a covariant template parameter for function input. That’s no good, as it means you're likely altering the collection somehow (which is, again, a violation). + +### But what about immutability? + +Psalm has [comprehensive support for declaring functional immutability](https://psalm.dev/articles/immutability-and-beyond). + +If we make sure that the class is immutable, we can declare a class with an `add` method that still takes a covariant param as input, but which does not modify the collection at all, instead returning a new one: + +```php + + */ + public array $list = []; + + /** + * @param array $list + */ + public function __construct(array $list) { + $this->list = $list; + } + + /** + * @param T $t + * @return Collection + */ + public function add($t) : Collection { + return new Collection(array_merge($this->list, [$t])); + } +} +``` + +This is perfectly valid, and Psalm won't complain. + +## Builtin templated classes and interfaces + +Psalm has support for a number of builtin classes and interfaces that you can extend/implement in your own code. + +- `interface Traversable` +- `interface ArrayAccess` +- `interface IteratorAggregate extends Traversable` +- `interface Iterator extends Traversable` +- `interface SeekableIterator extends Iterator` + +- `class Generator extends Traversable` +- `class ArrayObject implements IteratorAggregate, ArrayAccess` +- `class ArrayIterator implements SeekableIterator, ArrayAccess` +- `class DOMNodeList implements Traversable` +- `class SplDoublyLinkedList implements Iterator, ArrayAccess` +- `class SplQueue extends SplDoublyLinkedList` + +- `abstract class FilterIterator` diff --git a/vendor/vimeo/psalm/docs/annotating_code/type_syntax/array_types.md b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/array_types.md new file mode 100644 index 00000000..9a6ff692 --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/array_types.md @@ -0,0 +1,220 @@ +# Array types + +In PHP, the `array` type is commonly used to represent three different data structures: + +[List](https://en.wikipedia.org/wiki/List_(abstract_data_type)): + +```php + 'hello', 5 => 'goodbye']; +$b = ['a' => 'AA', 'b' => 'BB', 'c' => 'CC'] +``` + +Makeshift [Structs](https://en.wikipedia.org/wiki/Struct_(C_programming_language)): + +```php + 'Psalm', 'type' => 'tool']; +``` + +PHP treats all these arrays the same, essentially (though there are some optimisations under the hood for the first case). + +Psalm has a few different ways to represent arrays in its type system: + +## Generic arrays + +Psalm uses a syntax [borrowed from Java](https://en.wikipedia.org/wiki/Generics_in_Java) that allows you to denote the types of both keys *and* values: + +```php +/** @return array */ +``` + +You can also specify that an array is non-empty with the special type `non-empty-array`. + +### PHPDoc syntax + +PHPDoc [allows you to specify](https://docs.phpdoc.org/latest/guide/references/phpdoc/types.html#arrays) the type of values a generic array holds with the annotation: + +```php +/** @return ValueType[] */ +``` + +In Psalm this annotation is equivalent to `@psalm-return array`. + +Generic arrays encompass both _associative arrays_ and _lists_. + +## Lists + +(Psalm 3.6+) + +Psalm supports a `list` type that represents continuous, integer-indexed arrays like `["red", "yellow", "blue"]`. + +A frequent way to create a list is with the `$arr[] =` notation. + +These arrays will return true to `array_is_list($arr)`(PHP 8.1+) and represent a large percentage of all array usage in PHP applications. + +A `list` type is of the form `list`, where `SomeType` is any permitted [union type](union_types.md) supported by Psalm. + +- `list` is a subtype of `array` +- `list` is a subtype of `array`. + +List types show their value in a few ways: + +```php + $arr + */ +function takesArray(array $arr) : void { + if ($arr) { + // this index may not be set + echo $arr[0]; + } +} + +/** + * @psalm-param list $arr + */ +function takesList(array $arr) : void { + if ($arr) { + // list indexes always start from zero, + // so a non-empty list will have an element here + echo $arr[0]; + } +} + +takesArray(["hello"]); // this is fine +takesArray([1 => "hello"]); // would trigger bug, without warning + +takesList(["hello"]); // this is fine +takesList([1 => "hello"]); // triggers warning in Psalm +``` + +## Array shapes + +Psalm supports a special format for arrays where the key offsets are known: array shapes, also known as "object-like arrays". + +Given an array + +```php + new stdClass, 28 => false]; +``` + +Psalm will type it internally as: + +``` +array{0: string, 1: string, foo: stdClass, 28: false} +``` + +You can specify types in that format yourself, e.g. + +```php +/** @return array{foo: string, bar: int} */ +``` + +Optional keys can be denoted by a trailing `?`, e.g.: + +```php +/** @return array{optional?: string, bar: int} */ +``` + +Tip: if you find yourself copying the same complex array shape over and over again to avoid `InvalidArgument` issues, try using [type aliases](utility_types.md#type-aliases), instead. + +### Validating array shapes + +Use [Valinor](https://github.com/CuyZ/Valinor) in strict mode to easily assert array shapes at runtime using Psalm array shape syntax (instead of manually asserting keys with isset): + +```php +try { + $array = (new \CuyZ\Valinor\MapperBuilder()) + ->mapper() + ->map( + 'array{a: string, b: int}', + json_decode(file_get_contents('https://.../'), true) + ); + + /** @psalm-trace $array */; // array{a: string, b: int} + + echo $array['a']; + echo $array['b']; +} catch (\CuyZ\Valinor\Mapper\MappingError $error) { + // Do something… +} +``` + +Valinor provides both runtime and static Psalm assertions with full Psalm syntax support and many other features, check out the [Valinor documentation](https://valinor.cuyz.io/latest/) for more info! + +## List shapes + +Starting in Psalm 5, Psalm also supports a special format for list arrays where the key offsets are known. + +Given a list array + +```php +`. diff --git a/vendor/vimeo/psalm/docs/annotating_code/type_syntax/atomic_types.md b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/atomic_types.md new file mode 100644 index 00000000..7e3f0ea9 --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/atomic_types.md @@ -0,0 +1,60 @@ +# Atomic types + +Atomic types are the basic building block of all type information used in Psalm. Multiple atomic types can be combined, either with [union types](union_types.md) or [intersection types](intersection_types.md). Psalm allows many different sorts of atomic types to be expressed in docblock syntax: + +**Note**: you can view detailed documentation and usage examples for all atomic types by clicking on each type in the following list. + +* [Scalar types](scalar_types.md) + * [bool](scalar_types.md#scalar) + * [int](scalar_types.md#scalar) + * [float](scalar_types.md#scalar) + * [string](scalar_types.md#scalar) + * [`int-range`](scalar_types.md#int-range) + * [`int-mask<1, 2, 4>`](scalar_types.md#int-mask1-2-4) + * [`int-mask-of`](scalar_types.md#int-mask-ofmyclassclass_constant_) + * [class-string and class-string<Foo>](scalar_types.md#class-string-interface-string) + * [trait-string](scalar_types.md#trait-string) + * [enum-string](scalar_types.md#enum-string) + * [callable-string](scalar_types.md#callable-string) + * [numeric-string](scalar_types.md#numeric-string) + * [literal-string](scalar_types.md#literal-string) + * [literal-int](scalar_types.md#literal-int) + * [array-key](scalar_types.md#array-key) + * [numeric](scalar_types.md#numeric) + * [scalar](scalar_types.md#scalar) +* [Object types](object_types.md) + * [object](object_types.md#unnamed-objects) + * [object{foo: string}](object_types.md#object-properties) + * [Exception, Foo\MyClass and `Foo\MyClass`](object_types.md#named-objectsmd) + * [Generator](object_types.md#generators) +* [Array types](array_types.md) + * [array<int, string>](array_types.md#generic-arrays) + * [non-empty-array](array_types.md#non-empty-array) + * [string\[\]](array_types.md#phpdoc-syntax) + * [list & non-empty-list](array_types.md#lists) + * [list<string>](array_types.md#lists) + * [array{foo: int, bar: string} and list{int, string}](array_types.md#object-like-arrays) + * [callable-array](array_types.md#callable-arrays) +* [Callable types](callable_types.md) +* [Value types](value_types.md) + * [null](value_types.md#null) + * [true, false](value_types.md#true-false) + * [6, 7.0, "forty-two" and 'forty two'](value_types.md#some_string-4-314) + * [Foo\Bar::MY_SCALAR_CONST](value_types.md#regular-class-constants) +* [Utility types](utility_types.md) + * [(T is true ? string : bool)](conditional_types.md) + * [`key-of`](utility_types.md#key-oft) + * [`value-of`](utility_types.md#value-oft) + * [`properties-of`](utility_types.md#properties-oft) + * [`class-string-map`](utility_types.md#class-string-mapt-as-foo-t) + * [`T[K]`](utility_types.md#tk) + * [Type aliases](utility_types.md#type-aliases) + * [Variable templates](utility_types.md#variable-templates) +* [Other types](other_types.md) + * [`iterable`](other_types.md) + * [void](other_types.md) + * [resource](other_types.md) + * [closed-resource](other_types.md) +* [Top and bottom types](top_bottom_types.md) + * [mixed](top_bottom_types.md#mixed) + * [never](top_bottom_types.md#never) diff --git a/vendor/vimeo/psalm/docs/annotating_code/type_syntax/callable_types.md b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/callable_types.md new file mode 100644 index 00000000..9d5bce88 --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/callable_types.md @@ -0,0 +1,58 @@ +# Callable types + +Psalm supports a special format for `callable`s of the form. It can also be used for annotating `Closure`. + +``` +callable(Type1, OptionalType2=, SpreadType3...):ReturnType +``` + +Adding `=` after the type implies it is optional, and suffixing with `...` implies the use of the spread operator. + +Using this annotation you can specify that a given function return a `Closure` e.g. + +```php + $items */ + public function __construct(private array $items) {} + + /** + * @param pure-callable(int, int): int $callback + * @psalm-mutation-free + */ + public function walk(callable $callback): int { + return array_reduce($this->items, $callback, 0); + } +} + +$list = new intList([1,2,3]); + +// This is ok, as the callable is pure +echo $list->walk(fn (int $c, int $v): int => $c + $v); + +// This will cause an InvalidArgument error, as the closure calls an impure function +echo $list->walk(fn (int $c, int $v): int => $c + random_int(1, $v)); +``` diff --git a/vendor/vimeo/psalm/docs/annotating_code/type_syntax/conditional_types.md b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/conditional_types.md new file mode 100644 index 00000000..73591be1 --- /dev/null +++ b/vendor/vimeo/psalm/docs/annotating_code/type_syntax/conditional_types.md @@ -0,0 +1,82 @@ +# Conditional types + +Psalm supports the equivalent of TypeScript’s [conditional types](https://www.typescriptlang.org/docs/handbook/advanced-types.html#conditional-types). + +Conditional types have the form: + +`(