1
0
mirror of https://github.com/danog/MadelineProto.git synced 2024-11-26 19:04:40 +01:00
MadelineProto/psalm-baseline.xml
2024-10-19 15:09:41 +00:00

8013 lines
333 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="dev-master@dee5fe4e848ebe974581cf92bb59abe868b3367a">
<file src="src/API.php">
<ArgumentTypeCoercion>
<code><![CDATA[$settings]]></code>
</ArgumentTypeCoercion>
<DirectConstructorCall>
<code><![CDATA[$this->__construct($this->session->getSessionDirectoryPath())]]></code>
</DirectConstructorCall>
<MixedArgument>
<code><![CDATA[$app['api_hash']]]></code>
<code><![CDATA[$app['api_id']]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$cancel->getFuture()]]></code>
<code><![CDATA[$cb]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$app['api_hash']]]></code>
<code><![CDATA[$app['api_id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$app]]></code>
</MixedAssignment>
<PossiblyNullArgument>
<code><![CDATA[Logger::$default]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[getMessage]]></code>
<code><![CDATA[wakeup]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
<code><![CDATA[API]]></code>
</PropertyNotSetInConstructor>
<TypeDoesNotContainType>
<code><![CDATA[$errors[$t] > 10]]></code>
<code><![CDATA[$errors[$t] > 10]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/APIWrapper.php">
<MixedArgument>
<code><![CDATA[$API->serializeSession($this)]]></code>
</MixedArgument>
<PossiblyNullReference>
<code><![CDATA[getSettings]]></code>
<code><![CDATA[logger]]></code>
</PossiblyNullReference>
</file>
<file src="src/AbstractAPI.php">
<ArgumentTypeCoercion>
<code><![CDATA[$eventHandler]]></code>
</ArgumentTypeCoercion>
<PossiblyNullReference>
<code><![CDATA[getMessage]]></code>
<code><![CDATA[isInited]]></code>
<code><![CDATA[setEventHandler]]></code>
</PossiblyNullReference>
<RedundantCondition>
<code><![CDATA[!$started]]></code>
<code><![CDATA[!$started]]></code>
</RedundantCondition>
<TypeDoesNotContainType>
<code><![CDATA[$errors[$t] > 10]]></code>
<code><![CDATA[$errors[$t] > 10]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/ApiWrappers/Start.php">
<MissingReturnType>
<code><![CDATA[APIStart]]></code>
</MissingReturnType>
<RiskyCast>
<code><![CDATA[$_POST['api_id']]]></code>
</RiskyCast>
</file>
<file src="src/AsyncTools.php">
<MixedArgument>
<code><![CDATA[$lines]]></code>
<code><![CDATA[$lines]]></code>
<code><![CDATA[$lines]]></code>
<code><![CDATA[$lines]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$failureCb]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$lines[\count($lines) - 1]]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$lines[\count($lines) - 1]]]></code>
</MixedArrayAssignment>
<MixedOperand>
<code><![CDATA[$lines[\count($lines) - 1]]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[array_shift($lines) ?? '']]></code>
<code><![CDATA[array_shift($lines) ?? '']]></code>
</MixedReturnStatement>
<RedundantConditionGivenDocblockType>
<code><![CDATA[\is_callable($callable)]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/BotApiFileId.php">
<DocblockTypeContradiction>
<code><![CDATA[$size <= 0]]></code>
</DocblockTypeContradiction>
</file>
<file src="src/Broadcast/Action/ActionForward.php">
<MixedArgument>
<code><![CDATA[$updates]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$update['message']['id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$id]]></code>
<code><![CDATA[$updates]]></code>
</MixedAssignment>
</file>
<file src="src/Broadcast/Action/ActionSend.php">
<MixedArgument>
<code><![CDATA[$message]]></code>
<code><![CDATA[$this->API->methodCallAsyncRead(
isset($message['media']) && (
\is_string($message['media'])
|| (
isset($message['media']['_']) &&
$message['media']['_'] !== 'messageMediaWebPage'
)
)
? 'messages.sendMedia'
: 'messages.sendMessage',
array_merge($message, ['peer' => $peer, 'floodWaitLimit' => 2*86400, 'cancellation' => $cancellation]),
)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$message]]></code>
</MixedAssignment>
<PossiblyUndefinedVariable>
<code><![CDATA[$id]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Broadcast/Broadcast.php">
<DocblockTypeContradiction>
<code><![CDATA[$this->broadcasts[$id]]]></code>
<code><![CDATA[$this->broadcasts[$id]]]></code>
</DocblockTypeContradiction>
<MixedArrayAccess>
<code><![CDATA[$message['media']['_']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message['media']]]></code>
</MixedAssignment>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$this->broadcasts[$id]?->cancel()]]></code>
<code><![CDATA[$this->broadcasts[$id]?->getProgress()]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Broadcast/InternalState.php">
<MixedAssignment>
<code><![CDATA[$value]]></code>
</MixedAssignment>
<RedundantCondition>
<code><![CDATA[\is_array($this->filter->whitelist) && !\in_array($peer, $this->filter->whitelist, true)]]></code>
</RedundantCondition>
</file>
<file src="src/Connection.php">
<DocblockTypeContradiction>
<code><![CDATA[$this->stream]]></code>
</DocblockTypeContradiction>
<InvalidPropertyAssignmentValue>
<code><![CDATA[$ctx->getStream()]]></code>
</InvalidPropertyAssignmentValue>
<MissingConstructor>
<code><![CDATA[$API]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$shared]]></code>
</MissingConstructor>
<MixedArgument>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['file']]]></code>
<code><![CDATA[$arguments['file']['_']]]></code>
<code><![CDATA[$arguments['invoice_media']['file']->getFile()]]></code>
<code><![CDATA[$arguments['media']['file']->getFile()]]></code>
<code><![CDATA[$body]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$singleMedia['media']]]></code>
<code><![CDATA[$singleMedia['media']]]></code>
<code><![CDATA[$singleMedia['media']['_']]]></code>
<code><![CDATA[$this->API->getTL()->getConstructors()->findByPredicate($arguments['file']['_'])['type']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$arguments['message']['media']]]></code>
<code><![CDATA[$arguments['message']['media']]]></code>
<code><![CDATA[$arguments['message']['media']]]></code>
<code><![CDATA[$arguments['message']['media']['iv']]]></code>
<code><![CDATA[$arguments['message']['media']['key']]]></code>
<code><![CDATA[$arguments['message']['media']['size']]]></code>
<code><![CDATA[$body['_']]]></code>
<code><![CDATA[$singleMedia['media']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$arguments['file']]]></code>
<code><![CDATA[$arguments['message']['media']['iv']]]></code>
<code><![CDATA[$arguments['message']['media']['key']]]></code>
<code><![CDATA[$arguments['message']['media']['size']]]></code>
<code><![CDATA[$arguments['message']['reply_to_random_id']]]></code>
<code><![CDATA[$arguments['message']['reply_to_random_id']]]></code>
<code><![CDATA[$arguments['participant']]]></code>
<code><![CDATA[$arguments['peer']]]></code>
<code><![CDATA[$arguments['peer']]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$singleMedia]]></code>
<code><![CDATA[$singleMedia['media']]]></code>
</MixedAssignment>
<PossiblyNullReference>
<code><![CDATA[getInputClientProxy]]></code>
<code><![CDATA[isHttp]]></code>
<code><![CDATA[refreshNextDisable]]></code>
<code><![CDATA[refreshNextEnable]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$res['chat_id']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/ContextConnector.php">
<PossiblyInvalidArgument>
<code><![CDATA[$uri]]></code>
</PossiblyInvalidArgument>
</file>
<file src="src/Conversion.php">
<DocblockTypeContradiction>
<code><![CDATA[\strlen($settings['old_session_passcode'])]]></code>
<code><![CDATA[\strlen($settings['old_session_passcode'])]]></code>
</DocblockTypeContradiction>
<InvalidArgument>
<code><![CDATA[[$dc => $key]]]></code>
</InvalidArgument>
<MissingParamType>
<code><![CDATA[$auth_key]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$fileName]]></code>
<code><![CDATA[$fileName]]></code>
<code><![CDATA[$fp]]></code>
<code><![CDATA[$options]]></code>
<code><![CDATA[$options]]></code>
<code><![CDATA[$settings]]></code>
</MissingParamType>
<MissingPropertyType>
<code><![CDATA[$tdesktop_base_path]]></code>
<code><![CDATA[$tdesktop_key]]></code>
<code><![CDATA[$tdesktop_user_base_path]]></code>
</MissingPropertyType>
<MissingReturnType>
<code><![CDATA[tdesktop]]></code>
<code><![CDATA[tdesktop_decrypt]]></code>
<code><![CDATA[tdesktop_fopen]]></code>
<code><![CDATA[tdesktop_fopen_encrypted]]></code>
<code><![CDATA[tdesktop_md5]]></code>
<code><![CDATA[tdesktop_read_bytearray]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$auth_key]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$dc]]></code>
<code><![CDATA[$dc['dc_id']]]></code>
<code><![CDATA[$fp]]></code>
<code><![CDATA[$fp]]></code>
<code><![CDATA[$info]]></code>
<code><![CDATA[$info]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main_dc_id]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$session["dc$dc".'_auth_key']]]></code>
<code><![CDATA[$session['dc_id']]]></code>
<code><![CDATA[$settings]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
<code><![CDATA[self::tdesktop_md5($dataName)]]></code>
<code><![CDATA[self::tdesktop_md5($settings['old_session_key'])]]></code>
<code><![CDATA[self::tdesktop_read_bytearray(
self::tdesktop_decrypt($encryptedKey, $passKey),
)]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$dcs]]></code>
<code><![CDATA[[$session['dc_id'] => $session['auth_key']]]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$dc['auth_key']]]></code>
<code><![CDATA[$dc['dc_id']]]></code>
<code><![CDATA[$dc['dc_id']]]></code>
<code><![CDATA[$session["dc$dc".'_auth_key']]]></code>
<code><![CDATA[$session['auth_key']]]></code>
<code><![CDATA[$session['dc']]]></code>
<code><![CDATA[$session['dc_id']]]></code>
<code><![CDATA[$session['dc_id']]]></code>
<code><![CDATA[$session['test_mode']]]></code>
<code><![CDATA[$settings['old_session_key']]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$settings['old_session_key']]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$dcs[$dc['dc_id']]]]></code>
<code><![CDATA[[$dc => $key]]]></code>
<code><![CDATA[[$session['dc_id'] => $session['auth_key']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$dataName]]></code>
<code><![CDATA[$dc]]></code>
<code><![CDATA[$dc]]></code>
<code><![CDATA[$dcs[$dc['dc_id']]]]></code>
<code><![CDATA[$encryptedInfo]]></code>
<code><![CDATA[$encryptedKey]]></code>
<code><![CDATA[$encryptedKey]]></code>
<code><![CDATA[$f]]></code>
<code><![CDATA[$info]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$main]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$session]]></code>
<code><![CDATA[$session]]></code>
<code><![CDATA[$settings['old_session_key']]]></code>
<code><![CDATA[$settings['old_session_passcode']]]></code>
<code><![CDATA[self::$tdesktop_key]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$options]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$salt]]></code>
<code><![CDATA[$settings['old_session_key']]]></code>
<code><![CDATA[$settings['old_session_key']]]></code>
</MixedOperand>
<PossiblyNullReference>
<code><![CDATA[methodCallAsyncRead]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$part_one_md5]]></code>
<code><![CDATA[$part_one_md5]]></code>
</PossiblyUndefinedArrayOffset>
<PossiblyUndefinedVariable>
<code><![CDATA[$dc]]></code>
<code><![CDATA[$main_dc_id]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/DataCenter.php">
<DocblockTypeContradiction>
<code><![CDATA[\is_string($dc)]]></code>
</DocblockTypeContradiction>
<MixedArgument>
<code><![CDATA[$extra['secret']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$extra['secret']]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6]]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6]]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]['ip_address']]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]['port']]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]['secret']]]></code>
<code><![CDATA[$this->API->dcList[$test][$ipv6][$dc_number]['tcpo_only']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$address]]></code>
<code><![CDATA[$combo[\count($combo) - 2][1]]]></code>
<code><![CDATA[$extra]]></code>
<code><![CDATA[$only]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$subdomain]]></code>
<code><![CDATA[$subdomain]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$address]]></code>
<code><![CDATA[$address]]></code>
<code><![CDATA[$address]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$subdomain]]></code>
<code><![CDATA[$subdomain]]></code>
<code><![CDATA[$subdomain]]></code>
<code><![CDATA[$subdomain]]></code>
</MixedOperand>
<PossiblyNullArgument>
<code><![CDATA[$stream]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$combo[\count($combo) - 2][0]]]></code>
<code><![CDATA[$default[2][0]]]></code>
<code><![CDATA[$default[2][0]]]></code>
<code><![CDATA[$stream[0]]]></code>
<code><![CDATA[$stream[0]]]></code>
<code><![CDATA[$stream[1]]]></code>
<code><![CDATA[$stream[1]]]></code>
<code><![CDATA[end($combo)[0]]]></code>
</PossiblyNullArrayAccess>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$default[2]]]></code>
<code><![CDATA[$default[2]]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/DataCenterConnection.php">
<MissingConstructor>
<code><![CDATA[$API]]></code>
<code><![CDATA[$connectionsPromise]]></code>
<code><![CDATA[$datacenter]]></code>
</MissingConstructor>
<MixedArgument>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$exported_authorization]]></code>
<code><![CDATA[$message_data]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$exported_authorization]]></code>
<code><![CDATA[$message_data]]></code>
<code><![CDATA[$res]]></code>
</MixedAssignment>
<PossiblyNullReference>
<code><![CDATA[bind]]></code>
</PossiblyNullReference>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$authorized_socket->hasTempAuthKey()
&& $authorized_socket->hasPermAuthKey()
&& $authorized_socket->isAuthorized()
&& $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]></code>
</RedundantConditionGivenDocblockType>
<UnsupportedPropertyReferenceUsage>
<code><![CDATA[$this->permAuthKey =& $connection->permAuthKey]]></code>
</UnsupportedPropertyReferenceUsage>
</file>
<file src="src/Db/CachedArray.php">
<MissingConstructor>
<code><![CDATA[$cache]]></code>
</MissingConstructor>
<MissingTemplateParam>
<code><![CDATA[CachedArray]]></code>
</MissingTemplateParam>
</file>
<file src="src/Db/MemoryArray.php">
<MissingTemplateParam>
<code><![CDATA[MemoryArray]]></code>
</MissingTemplateParam>
</file>
<file src="src/DoHConnector.php">
<MixedArgument>
<code><![CDATA[$host]]></code>
<code><![CDATA[$host]]></code>
<code><![CDATA[$host]]></code>
<code><![CDATA[$host]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$scheme]]></code>
<code><![CDATA[$scheme]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$host[0]]]></code>
</MixedArrayAccess>
<PossiblyInvalidArgument>
<code><![CDATA[$builtUri]]></code>
<code><![CDATA[$uri]]></code>
</PossiblyInvalidArgument>
</file>
<file src="src/DoHWrapper.php">
<MixedAssignment>
<code><![CDATA[$extra]]></code>
</MixedAssignment>
<RedundantCondition>
<code><![CDATA[$orig[1][0] === BufferedRawStream::class]]></code>
</RedundantCondition>
</file>
<file src="src/EventHandler.php">
<ArgumentTypeCoercion>
<code><![CDATA[$class]]></code>
<code><![CDATA[$plugin]]></code>
</ArgumentTypeCoercion>
<MixedArgument>
<code><![CDATA[$method]]></code>
<code><![CDATA[$newHandlers]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[self::$checkedPaths[$p]]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$constructor['predicate']]]></code>
<code><![CDATA[$constructor['predicate']]]></code>
<code><![CDATA[$constructor['type']]]></code>
<code><![CDATA[$constructor['type']]]></code>
<code><![CDATA[$newHandlers]]></code>
<code><![CDATA[$newMethods]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$methods[$constructor['predicate']]]]></code>
<code><![CDATA[$methods[$constructor['predicate']]]]></code>
<code><![CDATA[$methods[$update]]]></code>
<code><![CDATA[$methods[$update]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$method]]></code>
<code><![CDATA[$onAny]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[$plugin]]></code>
<code><![CDATA[$pluginsNew[$class]]]></code>
<code><![CDATA[$r]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[[$newMethods, $newHandlers]]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[internalStart]]></code>
<code><![CDATA[isPluginEnabled]]></code>
</MixedMethodCall>
<MixedReturnStatement>
<code><![CDATA[$closure($loop) ?? false]]></code>
<code><![CDATA[$closure($loop) ?? false]]></code>
</MixedReturnStatement>
<MixedReturnTypeCoercion>
<code><![CDATA[$this->periodicLoops]]></code>
<code><![CDATA[array<string, PeriodicLoop>]]></code>
</MixedReturnTypeCoercion>
<PossiblyNullArgument>
<code><![CDATA[$methodRefl->getParameters()[0]->getType()]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[getDbSettings]]></code>
<code><![CDATA[rethrowInner]]></code>
<code><![CDATA[rethrowInner]]></code>
</PossiblyNullReference>
<PropertyTypeCoercion>
<code><![CDATA[self::$pluginCache]]></code>
</PropertyTypeCoercion>
<RedundantFunctionCall>
<code><![CDATA[array_values]]></code>
</RedundantFunctionCall>
<TypeDoesNotContainType>
<code><![CDATA[$this->startedInternal]]></code>
<code><![CDATA[$this->startedInternal]]></code>
</TypeDoesNotContainType>
<UnresolvableInclude>
<code><![CDATA[require $file]]></code>
</UnresolvableInclude>
</file>
<file src="src/EventHandler/AbstractMessage.php">
<InvalidReturnStatement>
<code><![CDATA[$this->replyCache]]></code>
<code><![CDATA[$this->replyCache]]></code>
</InvalidReturnStatement>
<LessSpecificReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[array_map(
fn (array $arr): AbstractStory =>
$arr['_'] === 'storyItemDeleted'
? new StoryDeleted($client, ['peer' => $this->senderId, 'story' => $arr])
: new Story($client, ['peer' => $this->senderId, 'story' => $arr]),
$result,
)]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$messages[0]]]></code>
<code><![CDATA[$rawMessage['chat_id']]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$client->methodCallAsyncRead(
'stories.getPeerStories',
[
'peer' => $this->senderId,
],
)['stories']]]></code>
<code><![CDATA[$client->methodCallAsyncRead(
'stories.getStoriesByID',
[
'peer' => $this->senderId,
'id' => array_column($result, 'id'),
],
)['stories']]]></code>
<code><![CDATA[$messages[0]]]></code>
<code><![CDATA[$rawMessage['chat_id']]]></code>
<code><![CDATA[$rawMessage['date']]]></code>
<code><![CDATA[$rawMessage['from_id']]]></code>
<code><![CDATA[$rawMessage['fwd_from']]]></code>
<code><![CDATA[$rawMessage['fwd_from']]]></code>
<code><![CDATA[$rawMessage['fwd_from']['from_id']]]></code>
<code><![CDATA[$rawMessage['fwd_from']['saved_from_msg_id']]]></code>
<code><![CDATA[$rawMessage['id']]]></code>
<code><![CDATA[$rawMessage['mentioned']]]></code>
<code><![CDATA[$rawMessage['out']]]></code>
<code><![CDATA[$rawMessage['random_id']]]></code>
<code><![CDATA[$rawMessage['reply_to']]]></code>
<code><![CDATA[$rawMessage['reply_to']['_']]]></code>
<code><![CDATA[$rawMessage['reply_to']['reply_to_peer_id']]]></code>
<code><![CDATA[$rawMessage['reply_to_random_id']]]></code>
<code><![CDATA[$rawMessage['silent']]]></code>
<code><![CDATA[$rawMessage['ttl']]]></code>
<code><![CDATA[$rawMessage['ttl_period']]]></code>
<code><![CDATA[$replyTo['forum_topic']]]></code>
<code><![CDATA[$replyTo['reply_to_msg_id']]]></code>
<code><![CDATA[$replyTo['reply_to_msg_id']]]></code>
<code><![CDATA[$replyTo['reply_to_msg_id']]]></code>
<code><![CDATA[$replyTo['reply_to_msg_id']]]></code>
<code><![CDATA[$replyTo['reply_to_scheduled']]]></code>
<code><![CDATA[$replyTo['reply_to_top_id']]]></code>
<code><![CDATA[$replyTo['reply_to_top_id']]]></code>
<code><![CDATA[$replyTo['reply_to_top_id']]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
DialogId::isSupergroupOrChannel($this->chatId) ? 'channels.getMessages' : 'messages.getMessages',
[
'channel' => $this->chatId,
'id' => [['_' => 'inputMessageReplyTo', 'id' => $this->id]],
],
)['messages']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$messages]]></code>
<code><![CDATA[$rawMessage]]></code>
<code><![CDATA[$replyTo]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->chatId]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->mentioned]]></code>
<code><![CDATA[$this->out]]></code>
<code><![CDATA[$this->replyToMsgId]]></code>
<code><![CDATA[$this->replyToMsgId]]></code>
<code><![CDATA[$this->replyToMsgId]]></code>
<code><![CDATA[$this->replyToMsgId]]></code>
<code><![CDATA[$this->replyToScheduled]]></code>
<code><![CDATA[$this->senderId]]></code>
<code><![CDATA[$this->silent]]></code>
<code><![CDATA[$this->threadId]]></code>
<code><![CDATA[$this->threadId]]></code>
<code><![CDATA[$this->topicId]]></code>
<code><![CDATA[$this->topicId]]></code>
<code><![CDATA[$this->ttlPeriod]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'channels.readHistory',
[
'channel' => $this->chatId,
'max_id' => $readAll ? 0 : $this->id,
],
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'contacts.block',
[
'id' => $this->senderId,
],
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'contacts.unblock',
[
'id' => $this->senderId,
],
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.setTyping',
[
'peer' => $this->chatId,
'top_msg_id' => $this->topicId,
'action' => $action,
],
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.togglePeerTranslations',
[
'peer' => $this->chatId,
'disabled' => false,
],
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.togglePeerTranslations',
[
'peer' => $this->chatId,
'disabled' => true,
],
)]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[DialogSetTTL]]></code>
<code><![CDATA[DialogSetTTL]]></code>
<code><![CDATA[list<AbstractStory>]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
</NullableReturnStatement>
<PossiblyInvalidArgument>
<code><![CDATA[$sendAs]]></code>
<code><![CDATA[$sendAs]]></code>
</PossiblyInvalidArgument>
</file>
<file src="src/EventHandler/AbstractPoll.php">
<MixedArgument>
<code><![CDATA[$rawPoll['poll']['answers']]]></code>
<code><![CDATA[$rawPoll['poll']['question']['entities']]]></code>
<code><![CDATA[$rawPoll['results']['results'] ?? []]]></code>
<code><![CDATA[$result[$key] ?? []]]></code>
<code><![CDATA[$value]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawPoll['poll']['answers']]]></code>
<code><![CDATA[$rawPoll['poll']['close_date']]]></code>
<code><![CDATA[$rawPoll['poll']['close_period']]]></code>
<code><![CDATA[$rawPoll['poll']['closed']]]></code>
<code><![CDATA[$rawPoll['poll']['id']]]></code>
<code><![CDATA[$rawPoll['poll']['multiple_choice']]]></code>
<code><![CDATA[$rawPoll['poll']['question']]]></code>
<code><![CDATA[$rawPoll['poll']['question']]]></code>
<code><![CDATA[$rawPoll['poll']['question']['entities']]]></code>
<code><![CDATA[$rawPoll['poll']['question']['text']]]></code>
<code><![CDATA[$rawPoll['poll']['quiz']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->closeDate]]></code>
<code><![CDATA[$this->closePeriod]]></code>
<code><![CDATA[$this->closed]]></code>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->question]]></code>
<code><![CDATA[$this->recentVoters]]></code>
<code><![CDATA[$this->totalVoters]]></code>
<code><![CDATA[$value]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[$htmlQuestion]]></code>
<code><![CDATA[$htmlQuestionTelegram]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/AbstractPrivateMessage.php">
<PropertyNotSetInConstructor>
<code><![CDATA[AbstractPrivateMessage]]></code>
<code><![CDATA[AbstractPrivateMessage]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/AbstractStory.php">
<MixedArrayAccess>
<code><![CDATA[$rawStory['story']['id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->id]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawStory['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Action.php">
<MixedArgument>
<code><![CDATA[$rawAction['emoticon']]]></code>
<code><![CDATA[$rawAction['emoticon']]]></code>
<code><![CDATA[$rawAction['interaction']['a']]]></code>
<code><![CDATA[$rawAction['msg_id']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
<code><![CDATA[$rawAction['progress']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawAction['interaction']['a']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/BotApp.php">
<MixedArgument>
<code><![CDATA[$rawBotApp['document']]]></code>
<code><![CDATA[$rawBotApp['photo']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->accessHash]]></code>
<code><![CDATA[$this->description]]></code>
<code><![CDATA[$this->hash]]></code>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->name]]></code>
<code><![CDATA[$this->title]]></code>
</MixedAssignment>
<PropertyTypeCoercion>
<code><![CDATA[isset($rawBotApp['document']) ? $API->wrapMedia($rawBotApp['document']) : null]]></code>
<code><![CDATA[isset($rawBotApp['photo']) ? $API->wrapMedia($rawBotApp['photo']) : null]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/BotCommands.php">
<MixedArgument>
<code><![CDATA[$rawBotCommands['commands']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->botId]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawBotCommands['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
<PropertyTypeCoercion>
<code><![CDATA[array_map(
static fn (array $command): Command => new Command($command),
$rawBotCommands['commands']
)]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/CallbackQuery.php">
<MixedAssignment>
<code><![CDATA[$this->chatInstance]]></code>
<code><![CDATA[$this->queryId]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.setBotCallbackAnswer',
[
'query_id' => $this->queryId,
'message' => $message,
'alert' => $alert,
'url' => $url,
'cache_time' => $cacheTime,
],
)]]></code>
</MixedReturnStatement>
</file>
<file src="src/EventHandler/Channel/ChannelParticipant.php">
<MixedArgument>
<code><![CDATA[$rawChannelParticipant['invite']]]></code>
<code><![CDATA[$rawChannelParticipant['new_participant']]]></code>
<code><![CDATA[$rawChannelParticipant['prev_participant']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->actorId]]></code>
<code><![CDATA[$this->chatId]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->userId]]></code>
<code><![CDATA[$this->viaChatlist]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Channel/MessageForwards.php">
<MixedAssignment>
<code><![CDATA[$this->chatId]]></code>
<code><![CDATA[$this->forwards]]></code>
<code><![CDATA[$this->id]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Channel/MessageViewsChanged.php">
<MixedAssignment>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->views]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawMessageViews)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Channel/UpdateChannel.php">
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawUpdateChannel)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/ChatInvite.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$rawChatInvite['_']]]></code>
</MixedOperand>
</file>
<file src="src/EventHandler/ChatInvite/ChatInviteExported.php">
<MixedAssignment>
<code><![CDATA[$this->adminId]]></code>
<code><![CDATA[$this->created]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->expire]]></code>
<code><![CDATA[$this->limit]]></code>
<code><![CDATA[$this->link]]></code>
<code><![CDATA[$this->permanent]]></code>
<code><![CDATA[$this->requestNeeded]]></code>
<code><![CDATA[$this->requested]]></code>
<code><![CDATA[$this->revoked]]></code>
<code><![CDATA[$this->title]]></code>
<code><![CDATA[$this->used]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/ChatInviteRequester.php">
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawChatInviteRequester['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/ChatInviteRequester/BotChatInviteRequest.php">
<MixedArgument>
<code><![CDATA[$rawChatInviteRequester['invite']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->about]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/ChatInviteRequester/PendingJoinRequests.php">
<MixedAssignment>
<code><![CDATA[$this->pending]]></code>
<code><![CDATA[$this->recent]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Command.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->command]]></code>
<code><![CDATA[$this->description]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Delete.php">
<MixedAssignment>
<code><![CDATA[$this->ids]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Delete/DeleteChannelMessages.php">
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawDelete)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Delete/DeleteScheduledMessages.php">
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawDelete['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Filter/AbstractFilterFromSender.php">
<PropertyNotSetInConstructor>
<code><![CDATA[$peerResolved]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Filter/AbstractFilterFromSenders.php">
<PropertyNotSetInConstructor>
<code><![CDATA[$peersResolved]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Filter/FilterForwardedFrom.php">
<PropertyNotSetInConstructor>
<code><![CDATA[$peerResolved]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Filter/FilterFromAdmin.php">
<MissingConstructor>
<code><![CDATA[$adminIds]]></code>
</MissingConstructor>
</file>
<file src="src/EventHandler/Filter/FilterFromBot.php">
<InaccessibleProperty>
<code><![CDATA[$this->API]]></code>
</InaccessibleProperty>
<MissingConstructor>
<code><![CDATA[$API]]></code>
</MissingConstructor>
</file>
<file src="src/EventHandler/Filter/FilterPeer.php">
<PropertyNotSetInConstructor>
<code><![CDATA[$peerResolved]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Filter/FilterRegex.php">
<PropertyTypeCoercion>
<code><![CDATA[$matches]]></code>
<code><![CDATA[$matches]]></code>
<code><![CDATA[$matches]]></code>
<code><![CDATA[$matches]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/InlineQuery.php">
<MixedArgument>
<code><![CDATA[$rawInlineQuery['geo']]]></code>
<code><![CDATA[$rawInlineQuery['peer_type']['_']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawInlineQuery['peer_type']['_']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->offset]]></code>
<code><![CDATA[$this->query]]></code>
<code><![CDATA[$this->queryId]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Keyboard.php">
<MixedArgument>
<code><![CDATA[$rawReplyMarkup['rows']]]></code>
<code><![CDATA[$rawReplyMarkup['rows']]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[array_column($rawReplyMarkup['rows'], 'buttons')]]></code>
<code><![CDATA[array_column($rawReplyMarkup['rows'], 'buttons')]]></code>
</MixedArgumentTypeCoercion>
</file>
<file src="src/EventHandler/Media.php">
<LessSpecificReturnStatement>
<code><![CDATA[$result]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$rawMedia]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[($rawMedia['document'] ?? $rawMedia['photo'] ?? $rawMedia)['date']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$rawMedia]]></code>
<code><![CDATA[$this->creationDate]]></code>
<code><![CDATA[$this->keyFingerprint]]></code>
<code><![CDATA[$this->spoiler]]></code>
<code><![CDATA[$this->thumb]]></code>
<code><![CDATA[$this->thumbHeight]]></code>
<code><![CDATA[$this->thumbWidth]]></code>
<code><![CDATA[$this->ttl]]></code>
<code><![CDATA[$thumb]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->getClient()->downloadToDir($this, $dir, $cb, $cancellation)]]></code>
<code><![CDATA[$this->getClient()->downloadToDir($this, $dir, $cb, $cancellation)]]></code>
<code><![CDATA[$this->getClient()->downloadToFile($this, $file, $cb, $cancellation)]]></code>
<code><![CDATA[$this->getClient()->downloadToFile($this, $file, $cb, $cancellation)]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[array{
* ext: string,
* name: string,
* mime: string,
* size: int,
* InputFileLocation: array,
* key_fingerprint?: string,
* key?: string,
* iv?: string,
* }]]></code>
</MoreSpecificReturnType>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->botApiFileId]]></code>
<code><![CDATA[$this->botApiFileUniqueId]]></code>
</PossiblyNullArrayAccess>
<PropertyNotSetInConstructor>
<code><![CDATA[$thumbs]]></code>
<code><![CDATA[$videoThumbs]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/AbstractAudio.php">
<MixedAssignment>
<code><![CDATA[$this->duration]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[AbstractAudio]]></code>
<code><![CDATA[AbstractAudio]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/AbstractSticker.php">
<MixedAssignment>
<code><![CDATA[$this->emoji]]></code>
<code><![CDATA[$this->stickerset]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[AbstractSticker]]></code>
<code><![CDATA[AbstractSticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/AbstractVideo.php">
<MixedAssignment>
<code><![CDATA[$this->duration]]></code>
<code><![CDATA[$this->height]]></code>
<code><![CDATA[$this->supportsStreaming]]></code>
<code><![CDATA[$this->width]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[AbstractVideo]]></code>
<code><![CDATA[AbstractVideo]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/AnimatedSticker.php">
<MixedArgument>
<code><![CDATA[$photoAttribute['h']]]></code>
<code><![CDATA[$photoAttribute['w']]]></code>
</MixedArgument>
<PropertyNotSetInConstructor>
<code><![CDATA[AnimatedSticker]]></code>
<code><![CDATA[AnimatedSticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/Audio.php">
<MixedAssignment>
<code><![CDATA[$this->performer]]></code>
<code><![CDATA[$this->title]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[Audio]]></code>
<code><![CDATA[Audio]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/CustomEmoji.php">
<MixedArgument>
<code><![CDATA[$photoAttribute['h']]]></code>
<code><![CDATA[$photoAttribute['w']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->free]]></code>
<code><![CDATA[$this->textColor]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[CustomEmoji]]></code>
<code><![CDATA[CustomEmoji]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/Document.php">
<PropertyNotSetInConstructor>
<code><![CDATA[Document]]></code>
<code><![CDATA[Document]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/DocumentPhoto.php">
<MixedArrayAccess>
<code><![CDATA[$rawMedia['document']['attributes']]]></code>
<code><![CDATA[$t]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->height]]></code>
<code><![CDATA[$this->width]]></code>
<code><![CDATA[['_' => $t]]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[DocumentPhoto]]></code>
<code><![CDATA[DocumentPhoto]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/GeoPoint.php">
<MixedAssignment>
<code><![CDATA[$this->accessHash]]></code>
<code><![CDATA[$this->accuracyRadius]]></code>
<code><![CDATA[$this->lat]]></code>
<code><![CDATA[$this->long]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Media/Gif.php">
<MixedArrayAccess>
<code><![CDATA[$rawMedia['document']['attributes']]]></code>
<code><![CDATA[$t]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[['_' => $t]]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.saveGif',
[
'id' => $this->botApiFileId,
'unsave' => false,
]
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.saveGif',
[
'id' => $this->botApiFileId,
'unsave' => true,
]
)]]></code>
</MixedReturnStatement>
<PropertyNotSetInConstructor>
<code><![CDATA[Gif]]></code>
<code><![CDATA[Gif]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/MaskSticker.php">
<MixedArgument>
<code><![CDATA[$photoAttribute['h']]]></code>
<code><![CDATA[$photoAttribute['w']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$coords['n']]]></code>
<code><![CDATA[$coords['x']]]></code>
<code><![CDATA[$coords['y']]]></code>
<code><![CDATA[$coords['zoom']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$coords]]></code>
<code><![CDATA[$this->x]]></code>
<code><![CDATA[$this->y]]></code>
<code><![CDATA[$this->zoom]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[MaskSticker]]></code>
<code><![CDATA[MaskSticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/MediaStory.php">
<MixedArrayAccess>
<code><![CDATA[$result['_']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->storyId]]></code>
<code><![CDATA[$this->viaMention]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawMedia['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Media/Photo.php">
<MixedAssignment>
<code><![CDATA[$this->hasStickers]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[Photo]]></code>
<code><![CDATA[Photo]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/RoundVideo.php">
<PropertyNotSetInConstructor>
<code><![CDATA[RoundVideo]]></code>
<code><![CDATA[RoundVideo]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/StaticSticker.php">
<MixedArgument>
<code><![CDATA[$photoAttribute['h']]]></code>
<code><![CDATA[$photoAttribute['w']]]></code>
</MixedArgument>
<PropertyNotSetInConstructor>
<code><![CDATA[StaticSticker]]></code>
<code><![CDATA[StaticSticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/Sticker.php">
<PropertyNotSetInConstructor>
<code><![CDATA[Sticker]]></code>
<code><![CDATA[Sticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/Video.php">
<MixedArrayAccess>
<code><![CDATA[$t]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[['_' => $t]]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[Video]]></code>
<code><![CDATA[Video]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/VideoSticker.php">
<MixedArgument>
<code><![CDATA[$extraAttribute['h']]]></code>
<code><![CDATA[$extraAttribute['w']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->duration]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[VideoSticker]]></code>
<code><![CDATA[VideoSticker]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Media/Voice.php">
<MixedAssignment>
<code><![CDATA[$this->waveform]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[Voice]]></code>
<code><![CDATA[Voice]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message.php">
<LessSpecificReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
<code><![CDATA[array_values(array_filter($result))]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$fwdFrom['channel_post'] ?? null]]></code>
<code><![CDATA[$fwdFrom['date']]]></code>
<code><![CDATA[$fwdFrom['from_name'] ?? null]]></code>
<code><![CDATA[$fwdFrom['post_author'] ?? null]]></code>
<code><![CDATA[$fwdFrom['saved_from_msg_id'] ?? null]]></code>
<code><![CDATA[$rawMessage['entities'] ?? []]]></code>
<code><![CDATA[$rawMessage['media']]]></code>
<code><![CDATA[$rawMessage['media']]]></code>
<code><![CDATA[$rawMessage['reply_markup']]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->message]]></code>
<code><![CDATA[$this->message]]></code>
<code><![CDATA[$this->message]]></code>
<code><![CDATA[$this->message]]></code>
<code><![CDATA[$this->message[0] ?? '']]></code>
<code><![CDATA[$this->protected]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$fwdFrom['channel_post']]]></code>
<code><![CDATA[$fwdFrom['date']]]></code>
<code><![CDATA[$fwdFrom['from_id']]]></code>
<code><![CDATA[$fwdFrom['from_name']]]></code>
<code><![CDATA[$fwdFrom['imported']]]></code>
<code><![CDATA[$fwdFrom['post_author']]]></code>
<code><![CDATA[$fwdFrom['psa_type']]]></code>
<code><![CDATA[$fwdFrom['saved_from_msg_id']]]></code>
<code><![CDATA[$fwdFrom['saved_from_peer']]]></code>
<code><![CDATA[$r['reaction']]]></code>
<code><![CDATA[$r['reaction']]]></code>
<code><![CDATA[$r['reaction']['document_id']]]></code>
<code><![CDATA[$r['reaction']['emoticon']]]></code>
<code><![CDATA[$rawMessage['edit_date']]]></code>
<code><![CDATA[$rawMessage['edit_hide']]]></code>
<code><![CDATA[$rawMessage['entities']]]></code>
<code><![CDATA[$rawMessage['forwards']]]></code>
<code><![CDATA[$rawMessage['from_scheduled']]]></code>
<code><![CDATA[$rawMessage['grouped_id']]]></code>
<code><![CDATA[$rawMessage['media']]]></code>
<code><![CDATA[$rawMessage['media']]]></code>
<code><![CDATA[$rawMessage['media']]]></code>
<code><![CDATA[$rawMessage['media']['_']]]></code>
<code><![CDATA[$rawMessage['message']]]></code>
<code><![CDATA[$rawMessage['post_author']]]></code>
<code><![CDATA[$rawMessage['reactions']]]></code>
<code><![CDATA[$rawMessage['reactions']['results']]]></code>
<code><![CDATA[$rawMessage['reply_markup']]]></code>
<code><![CDATA[$rawMessage['via_bot_id']]]></code>
<code><![CDATA[$rawMessage['via_bot_name']]]></code>
<code><![CDATA[$rawMessage['views']]]></code>
<code><![CDATA[$result['result']]]></code>
<code><![CDATA[$result['result'][0]]]></code>
<code><![CDATA[$result['result'][0]['text']]]></code>
<code><![CDATA[$this->message[0]]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$fwdFrom]]></code>
<code><![CDATA[$r]]></code>
<code><![CDATA[$rawMessage]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->editDate]]></code>
<code><![CDATA[$this->editHide]]></code>
<code><![CDATA[$this->forwards]]></code>
<code><![CDATA[$this->fromScheduled]]></code>
<code><![CDATA[$this->groupedId]]></code>
<code><![CDATA[$this->imported]]></code>
<code><![CDATA[$this->message]]></code>
<code><![CDATA[$this->protected]]></code>
<code><![CDATA[$this->psaType]]></code>
<code><![CDATA[$this->signature]]></code>
<code><![CDATA[$this->viaBotId]]></code>
<code><![CDATA[$this->views]]></code>
</MixedAssignment>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->reactions]]></code>
</MixedPropertyTypeCoercion>
<MixedReturnStatement>
<code><![CDATA[$result['result'][0]['text']]]></code>
<code><![CDATA[$this->$method(
message: $message,
parseMode: $parseMode,
replyMarkup: $replyMarkup,
scheduleDate: $scheduleDate,
noWebpage: $noWebpage,
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.report',
[
'reason' => ['_' => $reason->value],
'message' => $message,
'id' => [$this->id],
'peer' => $this->chatId,
]
)]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[Message]]></code>
<code><![CDATA[Message]]></code>
<code><![CDATA[non-empty-list<Message>]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
</NullableReturnStatement>
<PropertyNotSetInConstructor>
<code><![CDATA[$html]]></code>
<code><![CDATA[$htmlTelegram]]></code>
</PropertyNotSetInConstructor>
<PropertyTypeCoercion>
<code><![CDATA[isset($rawMessage['media'])
? $API->wrapMedia($rawMessage['media'], $this->protected)
: null]]></code>
<code><![CDATA[isset($rawMessage['reply_markup'])
? Keyboard::fromRawReplyMarkup($rawMessage['reply_markup'])
: null]]></code>
</PropertyTypeCoercion>
<RedundantCondition>
<code><![CDATA[$id]]></code>
</RedundantCondition>
<TypeDoesNotContainType>
<code><![CDATA[empty($id)]]></code>
<code><![CDATA[empty($id)]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/EventHandler/Message/ChannelMessage.php">
<MixedArgument>
<code><![CDATA[$r]]></code>
<code><![CDATA[$r]]></code>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$client->methodCallAsyncRead(
'channels.getParticipant',
[
'channel' => $this->chatId,
'participant' => $member,
]
)['participant']]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'messages.getDiscussionMessage',
['peer' => $this->chatId, 'msg_id' => $this->id]
)['messages']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$r]]></code>
<code><![CDATA[$r]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[ChannelMessage]]></code>
<code><![CDATA[ChannelMessage]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message/CommentReply.php">
<PropertyNotSetInConstructor>
<code><![CDATA[CommentReply]]></code>
<code><![CDATA[CommentReply]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message/Entities/MessageEntity.php">
<MixedArgument>
<code><![CDATA[$entity['document_id'] ?? $entity['custom_emoji_id']]]></code>
<code><![CDATA[$entity['language'] ?? '']]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['url']]]></code>
<code><![CDATA[$entity['user_id']]]></code>
<code><![CDATA[$entity['user_id'] ?? $entity['user']['id']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$entity['user']['id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$entity['_'] ?? $entity['type']]]></code>
</MixedOperand>
</file>
<file src="src/EventHandler/Message/GroupMessage.php">
<LessSpecificReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$client->methodCallAsyncRead(
'channels.getParticipant',
[
'channel' => $this->chatId,
'participant' => $member,
]
)['participant']]]></code>
<code><![CDATA[$result['updates']]]></code>
<code><![CDATA[$result['updates'][0]]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[DialogTopicCreated]]></code>
<code><![CDATA[DialogTopicEdited]]></code>
<code><![CDATA[DialogTopicEdited]]></code>
<code><![CDATA[DialogTopicEdited]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
</NullableReturnStatement>
<PropertyNotSetInConstructor>
<code><![CDATA[GroupMessage]]></code>
<code><![CDATA[GroupMessage]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message/PrivateMessage.php">
<LessSpecificReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[DialogScreenshotTaken]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
</NullableReturnStatement>
<PropertyNotSetInConstructor>
<code><![CDATA[PrivateMessage]]></code>
<code><![CDATA[PrivateMessage]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message/SecretMessage.php">
<InvalidReturnStatement>
<code><![CDATA[$this->replyCache]]></code>
<code><![CDATA[$this->replyCache]]></code>
</InvalidReturnStatement>
<LessSpecificReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[DialogScreenshotTaken]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$this->getClient()->wrapMessage($this->getClient()->extractMessage($result))]]></code>
</NullableReturnStatement>
<PropertyNotSetInConstructor>
<code><![CDATA[SecretMessage]]></code>
<code><![CDATA[SecretMessage]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Message/Service/DialogBotAllowed.php">
<MixedArgument>
<code><![CDATA[$rawMessage['action']['app']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawMessage['action']['app']]]></code>
<code><![CDATA[$rawMessage['action']['attach_menu']]]></code>
<code><![CDATA[$rawMessage['action']['domain']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->attachMenu]]></code>
<code><![CDATA[$this->domain]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Message/Service/DialogGroupCall.php">
<MixedArrayAccess>
<code><![CDATA[$rawMessage['action']['call']]]></code>
<code><![CDATA[$rawMessage['action']['call']]]></code>
<code><![CDATA[$rawMessage['action']['call']['access_hash']]]></code>
<code><![CDATA[$rawMessage['action']['call']['id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->accessHash]]></code>
<code><![CDATA[$this->callId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Admin.php">
<MixedArgument>
<code><![CDATA[$rawParticipant['admin_rights']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->canEdit]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->inviterId]]></code>
<code><![CDATA[$this->promotedBy]]></code>
<code><![CDATA[$this->rank]]></code>
<code><![CDATA[$this->self]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Banned.php">
<MixedArgument>
<code><![CDATA[$rawParticipant['banned_rights']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->kickedBy]]></code>
<code><![CDATA[$this->left]]></code>
<code><![CDATA[$this->peer]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Creator.php">
<MixedArgument>
<code><![CDATA[$rawParticipant['admin_rights']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->rank]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Left.php">
<MixedAssignment>
<code><![CDATA[$this->peer]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Member.php">
<MixedAssignment>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/MySelf.php">
<MixedAssignment>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->inviterId]]></code>
<code><![CDATA[$this->userId]]></code>
<code><![CDATA[$this->viaRequest]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Rights.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Rights/Admin.php">
<MixedAssignment>
<code><![CDATA[$this->addAdmins]]></code>
<code><![CDATA[$this->anonymous]]></code>
<code><![CDATA[$this->banUsers]]></code>
<code><![CDATA[$this->changeInfo]]></code>
<code><![CDATA[$this->deleteMessages]]></code>
<code><![CDATA[$this->editMessages]]></code>
<code><![CDATA[$this->inviteUsers]]></code>
<code><![CDATA[$this->manageCall]]></code>
<code><![CDATA[$this->manageTopics]]></code>
<code><![CDATA[$this->other]]></code>
<code><![CDATA[$this->pinMessages]]></code>
<code><![CDATA[$this->postMessages]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Participant/Rights/Banned.php">
<MixedAssignment>
<code><![CDATA[$this->changeInfo]]></code>
<code><![CDATA[$this->embedLinks]]></code>
<code><![CDATA[$this->inviteUsers]]></code>
<code><![CDATA[$this->manageTopics]]></code>
<code><![CDATA[$this->pinMessages]]></code>
<code><![CDATA[$this->sendAudios]]></code>
<code><![CDATA[$this->sendDocs]]></code>
<code><![CDATA[$this->sendGames]]></code>
<code><![CDATA[$this->sendGifs]]></code>
<code><![CDATA[$this->sendInline]]></code>
<code><![CDATA[$this->sendMedia]]></code>
<code><![CDATA[$this->sendMessages]]></code>
<code><![CDATA[$this->sendPhotos]]></code>
<code><![CDATA[$this->sendPlain]]></code>
<code><![CDATA[$this->sendPolls]]></code>
<code><![CDATA[$this->sendRoundvideos]]></code>
<code><![CDATA[$this->sendStickers]]></code>
<code><![CDATA[$this->sendVideos]]></code>
<code><![CDATA[$this->untilDate]]></code>
<code><![CDATA[$this->viewMessages]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Pinned.php">
<MixedAssignment>
<code><![CDATA[$this->ids]]></code>
<code><![CDATA[$this->pinned]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawPinned)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Poll/MultiplePoll.php">
<PropertyNotSetInConstructor>
<code><![CDATA[MultiplePoll]]></code>
<code><![CDATA[MultiplePoll]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Poll/PollAnswer.php">
<MixedArgument>
<code><![CDATA[$rawAnswer['text']['entities']]]></code>
<code><![CDATA[$res['option']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawAnswer['text']['entities']]]></code>
<code><![CDATA[$rawAnswer['text']['text']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->chosen]]></code>
<code><![CDATA[$this->correct]]></code>
<code><![CDATA[$this->text]]></code>
<code><![CDATA[$this->voters]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[$html]]></code>
<code><![CDATA[$htmlTelegram]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Poll/QuizPoll.php">
<MixedArgument>
<code><![CDATA[$rawPoll['results']['solution_entites'] ?? []]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->solution]]></code>
</MixedAssignment>
<PropertyNotSetInConstructor>
<code><![CDATA[$htmlSolution]]></code>
<code><![CDATA[$htmlSolutionTelegram]]></code>
<code><![CDATA[QuizPoll]]></code>
<code><![CDATA[QuizPoll]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Poll/SinglePoll.php">
<PropertyNotSetInConstructor>
<code><![CDATA[SinglePoll]]></code>
<code><![CDATA[SinglePoll]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/EventHandler/Privacy.php">
<MixedArgument>
<code><![CDATA[$rawPrivacy['key']['_']]]></code>
<code><![CDATA[$rawPrivacy['rules']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawPrivacy['key']['_']]]></code>
</MixedArrayAccess>
<PropertyTypeCoercion>
<code><![CDATA[array_map(RuleDestination::fromRawRule(...), $rawPrivacy['rules'])]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/Privacy/RuleDestination.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Privacy/RuleDestination/AllowChatParticipants.php">
<MixedAssignment>
<code><![CDATA[$this->chats]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Privacy/RuleDestination/AllowUsers.php">
<MixedAssignment>
<code><![CDATA[$this->users]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Privacy/RuleDestination/DisallowChatParticipants.php">
<MixedAssignment>
<code><![CDATA[$this->chats]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Privacy/RuleDestination/DisallowUsers.php">
<MixedAssignment>
<code><![CDATA[$this->users]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Query/ButtonQuery.php">
<MixedArgument>
<code><![CDATA[$res['data']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Query/ChatTrait.php">
<MixedArgument>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->messageId]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[Message]]></code>
<code><![CDATA[Message]]></code>
</MoreSpecificReturnType>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawCallback['peer'])]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Query/GameQuery.php">
<MixedAssignment>
<code><![CDATA[$this->gameShortName]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Query/InlineTrait.php">
<MixedArgument>
<code><![CDATA[$rawCallback['msg_id']['access_hash']]]></code>
<code><![CDATA[$rawCallback['msg_id']['access_hash']]]></code>
<code><![CDATA[$rawCallback['msg_id']['dc_id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['dc_id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['owner_id']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$rawCallback['msg_id']['_']]]></code>
<code><![CDATA[$rawCallback['msg_id']['access_hash']]]></code>
<code><![CDATA[$rawCallback['msg_id']['access_hash']]]></code>
<code><![CDATA[$rawCallback['msg_id']['dc_id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['dc_id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['id']]]></code>
<code><![CDATA[$rawCallback['msg_id']['owner_id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->rawId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Story/Story.php">
<InaccessibleProperty>
<code><![CDATA[$last->nextSent]]></code>
</InaccessibleProperty>
<LessSpecificReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapUpdate($update)]]></code>
<code><![CDATA[$client->wrapUpdate($update)]]></code>
</LessSpecificReturnStatement>
<MixedArgument>
<code><![CDATA[$rawStory['entities'] ?? []]]></code>
<code><![CDATA[$rawStory['media']]]></code>
<code><![CDATA[$rawStory['privacy'] ?? []]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->protected]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$updates]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$API->methodCallAsyncRead('stories.getStoriesByID', ['peer' => $rawStory['peer'], 'id' => [$rawStory['story']['id']]])['stories']]]></code>
<code><![CDATA[$client->methodCallAsyncRead(
'stories.sendReaction',
[
'add_to_recent' => $recent,
'peer' => $this->senderId,
'story_id' => $this->id,
'reaction' => \is_int($reaction)
? ['_' => 'reactionCustomEmoji', 'document_id' => $reaction]
: ['_' => 'reactionEmoji', 'emoticon' => $reaction],
]
)['updates']]]></code>
<code><![CDATA[$client->methodCallAsyncRead(
'stories.sendReaction',
[
'add_to_recent' => $recent,
'peer' => $this->senderId,
'story_id' => $this->id,
]
)['updates']]]></code>
<code><![CDATA[$rawStory['caption']]]></code>
<code><![CDATA[$rawStory['close_friends']]]></code>
<code><![CDATA[$rawStory['contacts']]]></code>
<code><![CDATA[$rawStory['date']]]></code>
<code><![CDATA[$rawStory['edited']]]></code>
<code><![CDATA[$rawStory['entities']]]></code>
<code><![CDATA[$rawStory['expire_date']]]></code>
<code><![CDATA[$rawStory['media']]]></code>
<code><![CDATA[$rawStory['noforwards']]]></code>
<code><![CDATA[$rawStory['pinned']]]></code>
<code><![CDATA[$rawStory['privacy']]]></code>
<code><![CDATA[$rawStory['public']]]></code>
<code><![CDATA[$rawStory['selected_contacts']]]></code>
<code><![CDATA[$rawStory['sent_reaction']]]></code>
<code><![CDATA[$rawStory['sent_reaction']]]></code>
<code><![CDATA[$rawStory['sent_reaction']['document_id']]]></code>
<code><![CDATA[$rawStory['sent_reaction']['emoticon']]]></code>
<code><![CDATA[$rawStory['story']['id']]]></code>
<code><![CDATA[$rawStory['story']['min']]]></code>
<code><![CDATA[$rawStory['views']]]></code>
<code><![CDATA[$rawStory['views']]]></code>
<code><![CDATA[$rawStory['views']]]></code>
<code><![CDATA[$rawStory['views']['reactions_count']]]></code>
<code><![CDATA[$rawStory['views']['recent_viewers']]]></code>
<code><![CDATA[$rawStory['views']['views_count']]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'stories.exportStoryLink',
[
'peer' => $this->senderId,
'id' => $this->id,
]
)['link']]]></code>
<code><![CDATA[$update['_']]]></code>
<code><![CDATA[$update['_']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$rawStory]]></code>
<code><![CDATA[$rawStory]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->caption]]></code>
<code><![CDATA[$this->closeFriends]]></code>
<code><![CDATA[$this->contacts]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->edited]]></code>
<code><![CDATA[$this->expireDate]]></code>
<code><![CDATA[$this->pinned]]></code>
<code><![CDATA[$this->protected]]></code>
<code><![CDATA[$this->public]]></code>
<code><![CDATA[$this->reactionCount]]></code>
<code><![CDATA[$this->recentViewers]]></code>
<code><![CDATA[$this->selectedContacts]]></code>
<code><![CDATA[$this->sentReaction]]></code>
<code><![CDATA[$this->views]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$updates]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$first]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'stories.exportStoryLink',
[
'peer' => $this->senderId,
'id' => $this->id,
]
)['link']]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'stories.incrementStoryViews',
[
'peer' => $this->senderId,
'id' => [$this->id],
]
)]]></code>
<code><![CDATA[$this->getClient()->methodCallAsyncRead(
'stories.report',
[
'peer' => $this->senderId,
'id' => [$this->id],
'reason' => ['_' => $reason->value],
'message' => $message,
]
)]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[StoryReaction]]></code>
<code><![CDATA[StoryReaction]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$client->wrapMessage($client->extractMessage($result))]]></code>
<code><![CDATA[$client->wrapUpdate($update)]]></code>
<code><![CDATA[$client->wrapUpdate($update)]]></code>
</NullableReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$first]]></code>
</PossiblyUndefinedVariable>
<PropertyNotSetInConstructor>
<code><![CDATA[$html]]></code>
<code><![CDATA[$htmlTelegram]]></code>
</PropertyNotSetInConstructor>
<PropertyTypeCoercion>
<code><![CDATA[$API->wrapMedia($rawStory['media'], $this->protected)]]></code>
<code><![CDATA[array_map(RuleDestination::fromRawRule(...), $rawStory['privacy'] ?? [])]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/Story/StoryReaction.php">
<MixedArrayAccess>
<code><![CDATA[$rawStory['reaction']['document_id']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->reaction]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawStory)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Typing.php">
<MixedArgument>
<code><![CDATA[$rawTyping['action']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Typing/ChatUserTyping.php">
<MixedAssignment>
<code><![CDATA[$this->chatId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Typing/SecretUserTyping.php">
<MixedArrayAccess>
<code><![CDATA[$rawMessage['decrypted_message']['action']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->chatId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Typing/SupergroupUserTyping.php">
<MixedAssignment>
<code><![CDATA[$this->topicId]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawTyping)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/Update.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Blocked.php">
<MixedAssignment>
<code><![CDATA[$this->blocked]]></code>
<code><![CDATA[$this->stories]]></code>
</MixedAssignment>
<PossiblyNullPropertyAssignmentValue>
<code><![CDATA[$API->getIdInternal($rawPeerBlocked)]]></code>
</PossiblyNullPropertyAssignmentValue>
</file>
<file src="src/EventHandler/User/BotStopped.php">
<MixedAssignment>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->stopped]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Phone.php">
<MixedAssignment>
<code><![CDATA[$this->number]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Status.php">
<MixedArrayAccess>
<code><![CDATA[$rowUserStatus['status']['_']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Status/Emoji.php">
<MixedAssignment>
<code><![CDATA[$this->emojiId]]></code>
<code><![CDATA[$this->until]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Status/Offline.php">
<MixedArrayAccess>
<code><![CDATA[$rowUserStatus['status']['was_online']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->wasOnline]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Status/Online.php">
<MixedArrayAccess>
<code><![CDATA[$rowUserStatus['status']['expires']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$this->expires]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/User/Username.php">
<MixedArgument>
<code><![CDATA[$rawUserName['usernames']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->firstName]]></code>
<code><![CDATA[$this->lastName]]></code>
<code><![CDATA[$this->userId]]></code>
</MixedAssignment>
<PropertyTypeCoercion>
<code><![CDATA[array_map(
static fn (array $username) => new UsernameInfo($username),
$rawUserName['usernames']
)]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/User/UsernameInfo.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->active]]></code>
<code><![CDATA[$this->username]]></code>
</MixedAssignment>
</file>
<file src="src/EventHandler/Wallpaper.php">
<MixedArgument>
<code><![CDATA[$rawWallpaper['document']]]></code>
<code><![CDATA[$rawWallpaper['settings']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->accessHash]]></code>
<code><![CDATA[$this->creator]]></code>
<code><![CDATA[$this->dark]]></code>
<code><![CDATA[$this->default]]></code>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->pattern]]></code>
<code><![CDATA[$this->uniqueId]]></code>
</MixedAssignment>
<PropertyTypeCoercion>
<code><![CDATA[$API->wrapMedia($rawWallpaper['document'])]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/EventHandler/Wallpaper/WallpaperSettings.php">
<MixedAssignment>
<code><![CDATA[$res[$prop->getName()]]]></code>
<code><![CDATA[$this->backgroundColor]]></code>
<code><![CDATA[$this->blur]]></code>
<code><![CDATA[$this->fourthBackgroundColor]]></code>
<code><![CDATA[$this->intensity]]></code>
<code><![CDATA[$this->motion]]></code>
<code><![CDATA[$this->rotation]]></code>
<code><![CDATA[$this->secondBackgroundColor]]></code>
<code><![CDATA[$this->thirdBackgroundColor]]></code>
</MixedAssignment>
</file>
<file src="src/Exception.php">
<MissingParamType>
<code><![CDATA[$code]]></code>
<code><![CDATA[$errfile]]></code>
<code><![CDATA[$errline]]></code>
<code><![CDATA[$errno]]></code>
<code><![CDATA[$errstr]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$line]]></code>
<code><![CDATA[$message]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$code]]></code>
<code><![CDATA[$errfile ?? '']]></code>
<code><![CDATA[$errstr]]></code>
<code><![CDATA[$errstr]]></code>
<code><![CDATA[$errstr]]></code>
<code><![CDATA[$errstr]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$this->file]]></code>
<code><![CDATA[$this->file]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->file]]></code>
<code><![CDATA[$this->line]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$this->line]]></code>
</MixedOperand>
</file>
<file src="src/FileCallbackInterface.php">
<MissingReturnType>
<code><![CDATA[__invoke]]></code>
</MissingReturnType>
</file>
<file src="src/GarbageCollector.php">
<MixedArgument>
<code><![CDATA[MADELINE_PHAR_GLOB]]></code>
<code><![CDATA[MADELINE_PHAR_VERSION]]></code>
<code><![CDATA[MADELINE_PHP]]></code>
<code><![CDATA[MADELINE_PHP]]></code>
<code><![CDATA[MADELINE_RELEASE_URL]]></code>
</MixedArgument>
<NoValue>
<code><![CDATA[$id]]></code>
</NoValue>
<PropertyTypeCoercion>
<code><![CDATA[self::$map]]></code>
<code><![CDATA[self::$map ??= new WeakMap]]></code>
</PropertyTypeCoercion>
<TypeDoesNotContainType>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Ipc/AbstractServer.php">
<MixedAssignment>
<code><![CDATA[$payload]]></code>
<code><![CDATA[$payload[1]]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[disconnect]]></code>
</MixedMethodCall>
<PropertyNotSetInConstructor>
<code><![CDATA[$callback]]></code>
<code><![CDATA[$server]]></code>
<code><![CDATA[AbstractServer]]></code>
</PropertyNotSetInConstructor>
<TypeDoesNotContainType>
<code><![CDATA[$payload === self::SHUTDOWN]]></code>
<code><![CDATA[$payload === self::SHUTDOWN]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Ipc/Client.php">
<ArgumentTypeCoercion>
<code><![CDATA[$class]]></code>
</ArgumentTypeCoercion>
<MissingReturnType>
<code><![CDATA[downloadToCallable]]></code>
<code><![CDATA[downloadToDir]]></code>
<code><![CDATA[downloadToFile]]></code>
<code><![CDATA[methodCallAsyncRead]]></code>
<code><![CDATA[uploadFromCallable]]></code>
<code><![CDATA[uploadFromTgfile]]></code>
<code><![CDATA[uploadFromUrl]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$args['cancellation'] ?? null]]></code>
<code><![CDATA[$args['cancellation'] ?? null]]></code>
<code><![CDATA[$media['media']]]></code>
<code><![CDATA[$params]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$this->__call(...)]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$args['cancellation']]]></code>
<code><![CDATA[$media['media']]]></code>
<code><![CDATA[$media['media']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$arg]]></code>
<code><![CDATA[$callable]]></code>
<code><![CDATA[$callable]]></code>
<code><![CDATA[$dir]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$media]]></code>
<code><![CDATA[$media]]></code>
<code><![CDATA[$param]]></code>
<code><![CDATA[$url]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[self::$instances[$session] ?? MTProto::giveInstanceBySession($session)]]></code>
<code><![CDATA[self::$instances[$session] ?? MTProto::giveInstanceBySession($session)]]></code>
</MixedReturnStatement>
</file>
<file src="src/Ipc/ClientAbstract.php">
<MixedArrayAccess>
<code><![CDATA[$id]]></code>
<code><![CDATA[$payload]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->requests[$id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$payload]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[[$id, $payload]]]></code>
</MixedAssignment>
<PossiblyNullArgument>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[logger]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$logger]]></code>
<code><![CDATA[$server]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Ipc/ExitFailure.php">
<MixedArgument>
<code><![CDATA[$subprops]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$class]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAssignment>
<code><![CDATA[$props[\Exception::class]['previous']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$props[$f->getName()][$prop->getName()]]]></code>
<code><![CDATA[$subprops]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
</MixedAssignment>
</file>
<file src="src/Ipc/IpcCapable.php">
<MixedAssignment>
<code><![CDATA[$this->API]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->API ??= Client::giveInstanceBySession($this->session)]]></code>
<code><![CDATA[$this->API ??= Client::giveInstanceBySession($this->session)]]></code>
</MixedReturnStatement>
</file>
<file src="src/Ipc/Runner/ProcessRunner.php">
<MixedArgument>
<code><![CDATA[$value]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$value]]></code>
</MixedAssignment>
</file>
<file src="src/Ipc/Runner/RunnerAbstract.php">
<MixedReturnStatement>
<code><![CDATA[\MADELINE_PHP]]></code>
</MixedReturnStatement>
</file>
<file src="src/Ipc/Runner/WebRunner.php">
<PossiblyNullOperand>
<code><![CDATA[$_SERVER['REQUEST_URI']]]></code>
<code><![CDATA[$_SERVER['SERVER_NAME']]]></code>
<code><![CDATA[$_SERVER['SERVER_NAME']]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$_SERVER['REQUEST_URI']]]></code>
<code><![CDATA[$_SERVER['SERVER_NAME']]]></code>
<code><![CDATA[$_SERVER['SERVER_NAME']]]></code>
<code><![CDATA[$_SERVER['SERVER_PORT']]]></code>
</PossiblyUndefinedArrayOffset>
<PossiblyUndefinedVariable>
<code><![CDATA[$address]]></code>
</PossiblyUndefinedVariable>
<RedundantCastGivenDocblockType>
<code><![CDATA[(int) $port]]></code>
</RedundantCastGivenDocblockType>
</file>
<file src="src/Ipc/Runner/entry.php">
<MixedArgument>
<code><![CDATA[$GLOBALS['argv']]]></code>
<code><![CDATA[$session]]></code>
<code><![CDATA[array_shift($arguments)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$runnerId]]></code>
<code><![CDATA[$session]]></code>
</MixedAssignment>
<PossiblyInvalidArgument>
<code><![CDATA[$_GET['cwd']]]></code>
<code><![CDATA[$arguments]]></code>
<code><![CDATA[$arguments]]></code>
<code><![CDATA[$arguments]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidPropertyAssignmentValue>
<code><![CDATA[$_GET['cwd'] ?? Magic::getcwd()]]></code>
</PossiblyInvalidPropertyAssignmentValue>
<UnresolvableInclude>
<code><![CDATA[include $autoloadPath]]></code>
</UnresolvableInclude>
</file>
<file src="src/Ipc/Server.php">
<PropertyNotSetInConstructor>
<code><![CDATA[Server]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Ipc/ServerCallback.php">
<MissingReturnType>
<code><![CDATA[unwrap]]></code>
</MissingReturnType>
<PropertyNotSetInConstructor>
<code><![CDATA[ServerCallback]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Ipc/Wrapper.php">
<MissingClosureParamType>
<code><![CDATA[$args]]></code>
</MissingClosureParamType>
<MissingClosureReturnType>
<code><![CDATA[fn (...$args) => $this->__call($id, $args)]]></code>
</MissingClosureReturnType>
<MissingParamType>
<code><![CDATA[$data]]></code>
</MissingParamType>
<MissingReturnType>
<code><![CDATA[copy]]></code>
<code><![CDATA[unwrap]]></code>
</MissingReturnType>
<MixedArrayOffset>
<code><![CDATA[$this->callbacks[$payload[0]]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$file]]></code>
<code><![CDATA[$instance->remoteId]]></code>
<code><![CDATA[$payload]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->callbacks]]></code>
</MixedPropertyTypeCoercion>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$payload[0]]]></code>
<code><![CDATA[$payload[0]]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$data]]></code>
<code><![CDATA[Wrapper]]></code>
<code><![CDATA[Wrapper]]></code>
</PropertyNotSetInConstructor>
<PropertyTypeCoercion>
<code><![CDATA[$this->callbackIds]]></code>
</PropertyTypeCoercion>
<UnsafeInstantiation>
<code><![CDATA[new $class($this, $ids)]]></code>
</UnsafeInstantiation>
<UnsupportedReferenceUsage>
<code><![CDATA[$this->callbackIds[] = &$callback]]></code>
<code><![CDATA[$this->callbackIds[] = &$callback]]></code>
</UnsupportedReferenceUsage>
</file>
<file src="src/Ipc/Wrapper/CancellationInner.php">
<MixedAssignment>
<code><![CDATA[$id]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$id]]></code>
<code><![CDATA[$this->__call('isRequested')]]></code>
</MixedReturnStatement>
</file>
<file src="src/Ipc/Wrapper/ReadableStream.php">
<MissingTemplateParam>
<code><![CDATA[IteratorAggregate]]></code>
</MissingTemplateParam>
<MixedAssignment>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->__call('isReadable')]]></code>
</MixedReturnStatement>
</file>
<file src="src/Ipc/Wrapper/WritableStream.php">
<MixedReturnStatement>
<code><![CDATA[$this->__call('isWritable')]]></code>
</MixedReturnStatement>
</file>
<file src="src/LegacyMigrator.php">
<MixedArgument>
<code><![CDATA[$this->{$propName}->getArrayCopy()]]></code>
</MixedArgument>
<MixedMethodCall>
<code><![CDATA[getArrayCopy]]></code>
</MixedMethodCall>
<PossiblyNullFunctionCall>
<code><![CDATA[$closure->bindTo($this, $property->getDeclaringClass()->getName())($property->getName())]]></code>
</PossiblyNullFunctionCall>
</file>
<file src="src/LightState.php">
<InvalidPropertyAssignmentValue>
<code><![CDATA[$API->getEventHandler()::class]]></code>
</InvalidPropertyAssignmentValue>
</file>
<file src="src/Logger.php">
<MixedArgument>
<code><![CDATA[$this->stdoutUnbuffered->getResource()]]></code>
<code><![CDATA[static function () use ($source, $stdout, &$promise): void {
try {
pipe($source, $stdout);
} finally {
unset(self::$closePromises[spl_object_id($promise)]);
}
}]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$this->stdoutUnbuffered]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$param]]></code>
<code><![CDATA[$this->colors[$level]]]></code>
</MixedOperand>
<PossiblyInvalidArgument>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$optional]]></code>
<code><![CDATA[$stdout->getResource()]]></code>
<code><![CDATA[$this->mode === self::FILE_LOGGER
? $this->optional
: Magic::$script_cwd.DIRECTORY_SEPARATOR.'MadelineProto.log']]></code>
<code><![CDATA[$this->optional]]></code>
<code><![CDATA[$this->optional]]></code>
<code><![CDATA[$this->optional]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidOperand>
<code><![CDATA[$optional]]></code>
</PossiblyInvalidOperand>
<PossiblyNullArgument>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyNullArgument>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$colors]]></code>
<code><![CDATA[$stdout]]></code>
<code><![CDATA[$stdoutUnbuffered]]></code>
</PropertyNotSetInConstructor>
<UndefinedInterfaceMethod>
<code><![CDATA[getResource]]></code>
</UndefinedInterfaceMethod>
<UndefinedVariable>
<code><![CDATA[$promise]]></code>
</UndefinedVariable>
<UninitializedProperty>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
<code><![CDATA[$this->colors]]></code>
</UninitializedProperty>
</file>
<file src="src/Loop/Connection/CheckLoop.php">
<MixedArgument>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$result['info']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$result['info']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->connection->new_outgoing[$message_id]]]></code>
<code><![CDATA[$this->connection->outgoing_messages[$message_id]]]></code>
<code><![CDATA[$this->connection->outgoing_messages[$message_id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$reply[]]]></code>
<code><![CDATA[$reply[]]]></code>
<code><![CDATA[$reply[]]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
<PossiblyNullArgument>
<code><![CDATA[$message->getMsgId()]]></code>
</PossiblyNullArgument>
<PossiblyNullOperand>
<code><![CDATA[$message->getSent()]]></code>
<code><![CDATA[$message->getSent()]]></code>
</PossiblyNullOperand>
<PossiblyNullPropertyFetch>
<code><![CDATA[$this->API->settings]]></code>
</PossiblyNullPropertyFetch>
<PossiblyNullReference>
<code><![CDATA[getRpc]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[CheckLoop]]></code>
<code><![CDATA[CheckLoop]]></code>
<code><![CDATA[CheckLoop]]></code>
<code><![CDATA[CheckLoop]]></code>
<code><![CDATA[CheckLoop]]></code>
<code><![CDATA[CheckLoop]]></code>
</PropertyNotSetInConstructor>
<UninitializedProperty>
<code><![CDATA[$this->API]]></code>
</UninitializedProperty>
</file>
<file src="src/Loop/Connection/CleanupLoop.php">
<PropertyNotSetInConstructor>
<code><![CDATA[CleanupLoop]]></code>
<code><![CDATA[CleanupLoop]]></code>
<code><![CDATA[CleanupLoop]]></code>
<code><![CDATA[CleanupLoop]]></code>
<code><![CDATA[CleanupLoop]]></code>
<code><![CDATA[CleanupLoop]]></code>
</PropertyNotSetInConstructor>
<RedundantCondition>
<code><![CDATA[$this->connection->msgIdHandler?->cleanup()]]></code>
</RedundantCondition>
<TypeDoesNotContainNull>
<code><![CDATA[$this->connection->msgIdHandler]]></code>
</TypeDoesNotContainNull>
</file>
<file src="src/Loop/Connection/HttpWaitLoop.php">
<PropertyNotSetInConstructor>
<code><![CDATA[HttpWaitLoop]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Loop/Connection/PingLoop.php">
<PossiblyNullReference>
<code><![CDATA[getSettings]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[PingLoop]]></code>
<code><![CDATA[PingLoop]]></code>
<code><![CDATA[PingLoop]]></code>
<code><![CDATA[PingLoop]]></code>
<code><![CDATA[PingLoop]]></code>
</PropertyNotSetInConstructor>
<UninitializedProperty>
<code><![CDATA[$this->shared]]></code>
</UninitializedProperty>
</file>
<file src="src/Loop/Connection/ReadLoop.php">
<MixedArgument>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$deserialized]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_length]]></code>
<code><![CDATA[$seq_no]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$ack]]></code>
<code><![CDATA[$deserialized]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_length]]></code>
<code><![CDATA[$seq_no]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_data_length]]></code>
</MixedOperand>
<PossiblyNullArgument>
<code><![CDATA[$buffer->bufferRead($payload_length)]]></code>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
<code><![CDATA[$buffer->bufferRead(8)]]></code>
<code><![CDATA[$message_data]]></code>
<code><![CDATA[$message_data]]></code>
<code><![CDATA[$message_key]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[reset]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[ReadLoop]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Loop/Connection/WriteLoop.php">
<MixedArgument>
<code><![CDATA[$MTmessage['body']]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$message_data]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$MTmessage['body']]]></code>
<code><![CDATA[$MTmessage['body']]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$body]]></code>
<code><![CDATA[$message_data]]></code>
<code><![CDATA[$message_data]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$message_data]]></code>
</MixedOperand>
<PossiblyNullArgument>
<code><![CDATA[$MTmessage['body']]]></code>
<code><![CDATA[$message->getSerializedBody()]]></code>
<code><![CDATA[$message->getSerializedBody()]]></code>
</PossiblyNullArgument>
<PossiblyNullOperand>
<code><![CDATA[$message->getSerializedBody()]]></code>
<code><![CDATA[$this->connection->session_id]]></code>
</PossiblyNullOperand>
<PossiblyNullReference>
<code><![CDATA[getWriteBuffer]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[WriteLoop]]></code>
</PropertyNotSetInConstructor>
<TypeDoesNotContainType>
<code><![CDATA[$this->connection->isHttp() && empty($this->connection->pendingOutgoing)]]></code>
<code><![CDATA[empty($this->connection->pendingOutgoing)]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Loop/Generic/PeriodicLoopInternal.php">
<MissingClosureReturnType>
<code><![CDATA[static fn () => $callable()]]></code>
</MissingClosureReturnType>
<MixedArgumentTypeCoercion>
<code><![CDATA[static fn () => $callable()]]></code>
</MixedArgumentTypeCoercion>
</file>
<file src="src/Loop/Secret/SecretFeedLoop.php">
<MixedArgument>
<code><![CDATA[$update]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$update]]></code>
</MixedAssignment>
<TypeDoesNotContainType>
<code><![CDATA[isset($this->API->logger)]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Loop/Update/FeedLoop.php">
<MissingClosureParamType>
<code><![CDATA[$msg]]></code>
</MissingClosureParamType>
<MissingParamType>
<code><![CDATA[$messages]]></code>
</MissingParamType>
<MissingReturnType>
<code><![CDATA[feed]]></code>
<code><![CDATA[feedSingle]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update['message']['entities']]]></code>
<code><![CDATA[$update['pts']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$update['_']]]></code>
<code><![CDATA[$update['message']]]></code>
<code><![CDATA[$update['message']['_']]]></code>
<code><![CDATA[$update['message']['id']]]></code>
<code><![CDATA[$update['message']['peer_id']]]></code>
<code><![CDATA[$update['pts']]]></code>
<code><![CDATA[$update['pts_count']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$result[$this->feedSingle($update)]]]></code>
<code><![CDATA[$this->API->feeders[$channelId]]]></code>
</MixedArrayOffset>
<MixedArrayTypeCoercion>
<code><![CDATA[$this->API->feeders[$channelId]]]></code>
</MixedArrayTypeCoercion>
<MixedAssignment>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$computed]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$mid]]></code>
<code><![CDATA[$pts_count]]></code>
<code><![CDATA[$this->state]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$message['_']]]></code>
<code><![CDATA[$pts_count]]></code>
<code><![CDATA[$update['_']]]></code>
</MixedOperand>
<PossiblyInvalidArgument>
<code><![CDATA[$update['message']]]></code>
</PossiblyInvalidArgument>
<PossiblyNullReference>
<code><![CDATA[checkPts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[resume]]></code>
<code><![CDATA[resume]]></code>
</PossiblyNullReference>
</file>
<file src="src/Loop/Update/SeqLoop.php">
<MixedArgument>
<code><![CDATA[$options['date']]]></code>
<code><![CDATA[$seq_end]]></code>
<code><![CDATA[$seq_start]]></code>
<code><![CDATA[$update]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$options['date']]]></code>
<code><![CDATA[$options['seq_end']]]></code>
<code><![CDATA[$options['seq_start']]]></code>
<code><![CDATA[$update['options']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$options]]></code>
<code><![CDATA[$seq_end]]></code>
<code><![CDATA[$seq_start]]></code>
<code><![CDATA[$this->pendingWakeups]]></code>
<code><![CDATA[$this->state]]></code>
<code><![CDATA[$update]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$this->feeder->feed($updates['updates'])]]></code>
<code><![CDATA[$updates['_']]]></code>
</MixedOperand>
<PossiblyNullReference>
<code><![CDATA[checkSeq]]></code>
<code><![CDATA[feed]]></code>
</PossiblyNullReference>
</file>
<file src="src/Loop/Update/UpdateLoop.php">
<DocblockTypeContradiction>
<code><![CDATA[$this->API->feeders[$channelId]]]></code>
</DocblockTypeContradiction>
<MixedArgument>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference['intermediate_state']]]></code>
<code><![CDATA[$difference['intermediate_state']['qts']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['state']]]></code>
<code><![CDATA[$difference['state']['qts']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$difference['dialog']]]></code>
<code><![CDATA[$difference['dialog']['pts']]]></code>
<code><![CDATA[$difference['intermediate_state']]]></code>
<code><![CDATA[$difference['intermediate_state']]]></code>
<code><![CDATA[$difference['intermediate_state']]]></code>
<code><![CDATA[$difference['intermediate_state']['pts']]]></code>
<code><![CDATA[$difference['intermediate_state']['qts']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['new_encrypted_messages']]]></code>
<code><![CDATA[$difference['new_messages']]]></code>
<code><![CDATA[$difference['new_messages']]]></code>
<code><![CDATA[$difference['new_messages']]]></code>
<code><![CDATA[$difference['new_messages']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['other_updates']]]></code>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$difference['state']]]></code>
<code><![CDATA[$difference['state']]]></code>
<code><![CDATA[$difference['state']['qts']]]></code>
<code><![CDATA[$difference['timeout']]]></code>
<code><![CDATA[$this->API->authorization['user']['bot']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$result[$this->channelId]]]></code>
<code><![CDATA[$result[$this->channelId]]]></code>
<code><![CDATA[$result[$this->channelId]]]></code>
<code><![CDATA[$result[$this->channelId]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->API->feeders[$channelId]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$channelId]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$difference['pts']]]></code>
<code><![CDATA[$encrypted]]></code>
<code><![CDATA[$encrypted]]></code>
<code><![CDATA[$request_pts]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$state]]></code>
<code><![CDATA[$timeout]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[date]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$difference['_']]]></code>
<code><![CDATA[$request_pts]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$state->pts()]]></code>
<code><![CDATA[$state->pts()]]></code>
<code><![CDATA[$state->pts() + 1]]></code>
<code><![CDATA[$this->feeder->feed($difference['other_updates'])]]></code>
<code><![CDATA[$this->feeder->feed($difference['other_updates'])]]></code>
<code><![CDATA[$this->feeder->feed($difference['other_updates'])]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$timeout]]></code>
<code><![CDATA[$timeout]]></code>
</MixedReturnStatement>
<PossiblyInvalidMethodCall>
<code><![CDATA[date]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[pts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
<code><![CDATA[update]]></code>
</PossiblyInvalidMethodCall>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->API->authorization['user']]]></code>
<code><![CDATA[$this->API->authorization['user']['bot']]]></code>
</PossiblyNullArrayAccess>
<PossiblyUndefinedVariable>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
<code><![CDATA[$difference]]></code>
</PossiblyUndefinedVariable>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$this->API->feeders[$channelId]?->resume()]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Loop/VoIP/DjLoop.php">
<MixedAssignment>
<code><![CDATA[$value]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$queue->dequeue()]]></code>
</MixedReturnStatement>
</file>
<file src="src/MTProto.php">
<DeprecatedProperty>
<code><![CDATA[$this->channels_state]]></code>
<code><![CDATA[$this->channels_state]]></code>
<code><![CDATA[$this->channels_state]]></code>
</DeprecatedProperty>
<DocblockTypeContradiction>
<code><![CDATA[\is_object($this->datacenter)]]></code>
<code><![CDATA[isset($this->TL)]]></code>
<code><![CDATA[isset($this->settings)]]></code>
<code><![CDATA[isset($this->settings)]]></code>
<code><![CDATA[new DataCenter($this)]]></code>
<code><![CDATA[new PeerDatabase($this)]]></code>
</DocblockTypeContradiction>
<ImpureMethodCall>
<code><![CDATA[load]]></code>
<code><![CDATA[load]]></code>
<code><![CDATA[updateDefault]]></code>
</ImpureMethodCall>
<ImpureStaticProperty>
<code><![CDATA[GarbageCollector::$prometheus]]></code>
<code><![CDATA[GarbageCollector::$prometheus]]></code>
<code><![CDATA[Logger::$default]]></code>
<code><![CDATA[Magic::$isIpcWorker]]></code>
</ImpureStaticProperty>
<InvalidArgument>
<code><![CDATA[$callbacks]]></code>
<code><![CDATA[$callbacks]]></code>
</InvalidArgument>
<InvalidReturnStatement>
<code><![CDATA[array_merge(
array_fill_keys(
[
'InputUser',
'InputChannel',
],
$this->getInputConstructor(...),
),
array_fill_keys(
[
'InputMedia',
'InputDocument',
'InputPhoto',
],
$this->getFileInfo(...),
),
[
'InputFileLocation' => $this->getDownloadInfo(...),
'InputPeer' => $this->getInputPeer(...),
'InputDialogPeer' => $this->getInputDialogPeer(...),
'InputCheckPasswordSRP' => $this->getPasswordSRP(...),
],
)]]></code>
</InvalidReturnStatement>
<InvalidReturnType>
<code><![CDATA[array]]></code>
</InvalidReturnType>
<MissingReturnType>
<code><![CDATA[serializeSession]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$curkey['public_key']]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$options]]></code>
<code><![CDATA[$this->TL]]></code>
<code><![CDATA[$this->TL]]></code>
<code><![CDATA[$this->methodCallAsyncRead('account.getPassword', [], $this->authorized_dc)]]></code>
<code><![CDATA[$this->methodCallAsyncRead('phone.getCallConfig', [])]]></code>
<code><![CDATA[$this->settings->getSchema()]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$callbacks]]></code>
<code><![CDATA[$callbacks]]></code>
<code><![CDATA[$lock->release(...)]]></code>
<code><![CDATA[$this->internalInitDbProperties(...)]]></code>
<code><![CDATA[$this->internalSaveDbProperties(...)]]></code>
<code><![CDATA[$update]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$curkey['public_key']]]></code>
<code><![CDATA[$dc['id']]]></code>
<code><![CDATA[$dc['id']]]></code>
<code><![CDATA[$dc['ipv6']]]></code>
<code><![CDATA[$dc['ipv6']]]></code>
<code><![CDATA[$dc['media_only']]]></code>
<code><![CDATA[$dc['media_only']]]></code>
<code><![CDATA[$dc['static']]]></code>
<code><![CDATA[$method['method']]]></code>
<code><![CDATA[$support['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[($this->methodCallAsyncRead('help.getCdnConfig', [], $this->authorized_dc))['public_keys']]]></code>
<code><![CDATA[($this->methodCallAsyncRead('users.getUsers', ['id' => [['_' => 'inputUserSelf']]]))[0]]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$new[$test][$ipv6][$id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$callbacks []]]></code>
<code><![CDATA[$curkey]]></code>
<code><![CDATA[$dc]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$lock]]></code>
<code><![CDATA[$method]]></code>
<code><![CDATA[$methods[]]]></code>
<code><![CDATA[$new[$test][$ipv6][$id]]]></code>
<code><![CDATA[$options]]></code>
<code><![CDATA[$prefix]]></code>
<code><![CDATA[$prefix]]></code>
<code><![CDATA[$prefix]]></code>
<code><![CDATA[$selfBot]]></code>
<code><![CDATA[$this->config]]></code>
<code><![CDATA[$this->configLoop]]></code>
<code><![CDATA[$this->datacenter]]></code>
<code><![CDATA[$this->peerDatabase]]></code>
<code><![CDATA[$this->phoneConfigLoop]]></code>
<code><![CDATA[$this->referenceDatabase]]></code>
<code><![CDATA[$this->reportMutex]]></code>
<code><![CDATA[$this->seqUpdater]]></code>
<code><![CDATA[$this->serializeLoop]]></code>
<code><![CDATA[$this->supportUser]]></code>
<code><![CDATA[$this->tmpDbPrefix]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[Lang::$current_lang]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[__construct]]></code>
<code><![CDATA[acquire]]></code>
<code><![CDATA[applyChanges]]></code>
<code><![CDATA[getAppInfo]]></code>
<code><![CDATA[getConnection]]></code>
<code><![CDATA[getConnection]]></code>
<code><![CDATA[getConnection]]></code>
<code><![CDATA[getDb]]></code>
<code><![CDATA[getDb]]></code>
<code><![CDATA[getEnableFileReferenceDb]]></code>
<code><![CDATA[getEnableMinDb]]></code>
<code><![CDATA[getRSAKeys]]></code>
<code><![CDATA[getSchema]]></code>
<code><![CDATA[getSchema]]></code>
<code><![CDATA[getTestMode]]></code>
<code><![CDATA[getTestRSAKeys]]></code>
<code><![CDATA[hasApiInfo]]></code>
<code><![CDATA[init]]></code>
<code><![CDATA[merge]]></code>
<code><![CDATA[needsUpgrade]]></code>
<code><![CDATA[release]]></code>
<code><![CDATA[start]]></code>
<code><![CDATA[start]]></code>
<code><![CDATA[start]]></code>
<code><![CDATA[stop]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$id]]></code>
</MixedOperand>
<MixedPropertyAssignment>
<code><![CDATA[$this->datacenter]]></code>
</MixedPropertyAssignment>
<MixedReturnStatement>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['user'] ?? false]]></code>
<code><![CDATA[$this->authorization['user'] ?? false]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->config]]></code>
<code><![CDATA[$this->config]]></code>
<code><![CDATA[$this->dcList[$test][$ipv6][$dc]['cdn'] ?? false]]></code>
<code><![CDATA[$this->dcList[$test][$ipv6][$dc]['cdn'] ?? false]]></code>
<code><![CDATA[$this->getSelf()['premium']]]></code>
</MixedReturnStatement>
<MixedReturnTypeCoercion>
<code><![CDATA[$this->cdn_rsa_keys]]></code>
<code><![CDATA[array<RSA>]]></code>
</MixedReturnTypeCoercion>
<NullableReturnStatement>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
</NullableReturnStatement>
<PossiblyInvalidArgument>
<code><![CDATA[$path]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidArrayAccess>
<code><![CDATA[$this->getSelf()['bot']]]></code>
<code><![CDATA[$this->getSelf()['id']]]></code>
<code><![CDATA[$this->getSelf()['id']]]></code>
<code><![CDATA[$this->getSelf()['id']]]></code>
<code><![CDATA[$this->getSelf()['premium']]]></code>
</PossiblyInvalidArrayAccess>
<PossiblyNullArgument>
<code><![CDATA[$this->authorized_dc]]></code>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullReference>
<code><![CDATA[init]]></code>
<code><![CDATA[saveDbProperties]]></code>
<code><![CDATA[start]]></code>
<code><![CDATA[start]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]['file']]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyTypeCoercion>
<code><![CDATA[$this->sanitizeReportPeers($userOrId)]]></code>
</PropertyTypeCoercion>
<RedundantCondition>
<code><![CDATA[isset($this->wrapper) && $this->isInited()]]></code>
<code><![CDATA[isset($this->wrapper) && isset(self::$references[$this->getSessionName()])]]></code>
</RedundantCondition>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$this->authorized === API::LOGGED_IN && \is_int($dc_id)]]></code>
<code><![CDATA[$this->datacenter]]></code>
<code><![CDATA[$this->peerDatabase]]></code>
<code><![CDATA[\is_int($dc_id)]]></code>
<code><![CDATA[isset($this->datacenter)]]></code>
</RedundantConditionGivenDocblockType>
<UndefinedFunction>
<code><![CDATA[memprof_dump_pprof($file)]]></code>
<code><![CDATA[memprof_enabled()]]></code>
<code><![CDATA[memprof_enabled()]]></code>
</UndefinedFunction>
<UnsupportedReferenceUsage>
<code><![CDATA[Lang::$current_lang =& Lang::$lang[$this->settings->getAppInfo()->getLangCode()]]]></code>
</UnsupportedReferenceUsage>
</file>
<file src="src/MTProto/AuthKey.php">
<InvalidNullableReturnType>
<code><![CDATA[string]]></code>
<code><![CDATA[string]]></code>
<code><![CDATA[string]]></code>
</InvalidNullableReturnType>
<MixedArgument>
<code><![CDATA[$old['auth_key']]]></code>
<code><![CDATA[$old['auth_key']]]></code>
<code><![CDATA[$old['auth_key']]]></code>
<code><![CDATA[$old['server_salt']]]></code>
</MixedArgument>
<NullableReturnStatement>
<code><![CDATA[$this->authKey]]></code>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->serverSalt]]></code>
</NullableReturnStatement>
</file>
<file src="src/MTProto/MTProtoIncomingMessage.php">
<MixedArrayOffset>
<code><![CDATA[MTProtoMessage::NOT_CONTENT_RELATED[$content['_']]]]></code>
<code><![CDATA[self::RESPONSE_ID_MAP[$this->content['_']]]]></code>
</MixedArrayOffset>
<MixedReturnStatement>
<code><![CDATA[$this->content['_']]]></code>
<code><![CDATA[$this->content[self::RESPONSE_ID_MAP[$this->content['_']]]]]></code>
</MixedReturnStatement>
</file>
<file src="src/MTProto/MTProtoOutgoingMessage.php">
<MissingReturnType>
<code><![CDATA[getBody]]></code>
</MissingReturnType>
<MixedPropertyTypeCoercion>
<code><![CDATA[new DeferredFuture]]></code>
</MixedPropertyTypeCoercion>
<PossiblyInvalidPropertyAssignmentValue>
<code><![CDATA[$this->state |= self::STATE_ACKED]]></code>
<code><![CDATA[$this->state |= self::STATE_REPLIED]]></code>
<code><![CDATA[$this->state |= self::STATE_SENT]]></code>
</PossiblyInvalidPropertyAssignmentValue>
<PossiblyNullOperand>
<code><![CDATA[$this->sent]]></code>
<code><![CDATA[$this->sent]]></code>
</PossiblyNullOperand>
</file>
<file src="src/MTProto/PermAuthKey.php">
<MixedArgument>
<code><![CDATA[$old['authorized']]]></code>
</MixedArgument>
<PossiblyNullArgument>
<code><![CDATA[$this->authKey]]></code>
</PossiblyNullArgument>
</file>
<file src="src/MTProto/TempAuthKey.php">
<MixedArgument>
<code><![CDATA[$old['connection_inited']]]></code>
<code><![CDATA[$old['expires']]]></code>
</MixedArgument>
<PossiblyNullArgument>
<code><![CDATA[$this->authKey]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[authorized]]></code>
</PossiblyNullReference>
<UnsupportedReferenceUsage>
<code><![CDATA[$this->{$key} =& $bound->{$key}]]></code>
</UnsupportedReferenceUsage>
</file>
<file src="src/MTProtoSession/AckHandler.php">
<PossiblyNullArrayOffset>
<code><![CDATA[$this->new_outgoing]]></code>
</PossiblyNullArrayOffset>
<PossiblyNullOperand>
<code><![CDATA[$message->getSent()]]></code>
<code><![CDATA[$message->getSent()]]></code>
<code><![CDATA[$message->getSent()]]></code>
</PossiblyNullOperand>
</file>
<file src="src/MTProtoSession/AuthKeyHandler.php">
<MixedArgument>
<code><![CDATA[$ResPQ['server_public_key_fingerprints']]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$encrypted_answer]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p_q_inner_data]]></code>
<code><![CDATA[$p_q_inner_data]]></code>
<code><![CDATA[$pq_bytes]]></code>
<code><![CDATA[$q]]></code>
<code><![CDATA[$server_DH_inner_data['g']]]></code>
<code><![CDATA[$server_nonce]]></code>
<code><![CDATA[$this->time_delta]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$ResPQ['nonce']]]></code>
<code><![CDATA[$ResPQ['pq']]]></code>
<code><![CDATA[$ResPQ['server_nonce']]]></code>
<code><![CDATA[$ResPQ['server_public_key_fingerprints']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['_']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['new_nonce_hash1']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['new_nonce_hash2']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['new_nonce_hash3']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['nonce']]]></code>
<code><![CDATA[$Set_client_DH_params_answer['server_nonce']]]></code>
<code><![CDATA[$server_DH_inner_data['dh_prime']]]></code>
<code><![CDATA[$server_DH_inner_data['g']]]></code>
<code><![CDATA[$server_DH_inner_data['g_a']]]></code>
<code><![CDATA[$server_DH_inner_data['nonce']]]></code>
<code><![CDATA[$server_DH_inner_data['server_nonce']]]></code>
<code><![CDATA[$server_DH_inner_data['server_time']]]></code>
<code><![CDATA[$server_dh_params['encrypted_answer']]]></code>
<code><![CDATA[$server_dh_params['nonce']]]></code>
<code><![CDATA[$server_dh_params['server_nonce']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$ResPQ]]></code>
<code><![CDATA[$Set_client_DH_params_answer]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$encrypted_answer]]></code>
<code><![CDATA[$encrypted_data]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p_q_inner_data]]></code>
<code><![CDATA[$pq_bytes]]></code>
<code><![CDATA[$q]]></code>
<code><![CDATA[$q]]></code>
<code><![CDATA[$server_DH_inner_data]]></code>
<code><![CDATA[$server_dh_params]]></code>
<code><![CDATA[$server_nonce]]></code>
<code><![CDATA[$server_time]]></code>
<code><![CDATA[$this->time_delta]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[encrypt]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$data]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p*$q]]></code>
<code><![CDATA[$p_q_inner_data]]></code>
<code><![CDATA[$q]]></code>
<code><![CDATA[$q]]></code>
<code><![CDATA[$server_nonce]]></code>
<code><![CDATA[$server_nonce]]></code>
<code><![CDATA[$server_nonce]]></code>
<code><![CDATA[$server_time]]></code>
</MixedOperand>
<MixedPropertyFetch>
<code><![CDATA[$key->fp]]></code>
</MixedPropertyFetch>
</file>
<file src="src/MTProtoSession/CallHandler.php">
<MissingClosureReturnType>
<code><![CDATA[static fn (WrappedFuture $f) => $f->await()]]></code>
</MissingClosureReturnType>
<MissingConstructor>
<code><![CDATA[$abstractionQueueMutex]]></code>
</MissingConstructor>
<MissingReturnType>
<code><![CDATA[methodCallAsyncRead]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$args['businessConnectionId'] ?? null]]></code>
<code><![CDATA[$args['floodWaitLimit'] ?? null]]></code>
<code><![CDATA[$args['id']['dc_id']]]></code>
<code><![CDATA[$args['madelineMsgId']]]></code>
<code><![CDATA[$args['peer']]]></code>
<code><![CDATA[$args['takeoutId'] ?? null]]></code>
<code><![CDATA[$cancellation]]></code>
<code><![CDATA[$methodInfo['subtype'] ?? null]]></code>
<code><![CDATA[$methodInfo['type']]]></code>
<code><![CDATA[$queueId]]></code>
<code><![CDATA[$sub]]></code>
<code><![CDATA[$this->API->parseMode($args)['message']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$methodInfo['encrypted']]]></code>
<code><![CDATA[$methodInfo['subtype']]]></code>
<code><![CDATA[$methodInfo['type']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$sub['queueId']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->outgoing_messages[$message_id]]]></code>
<code><![CDATA[$this->outgoing_messages[$message_id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$cancellation]]></code>
<code><![CDATA[$encrypted]]></code>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$methodInfo]]></code>
<code><![CDATA[$peer]]></code>
<code><![CDATA[$queueId]]></code>
<code><![CDATA[$sub]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[throwIfRequested]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$this->outgoing_messages[$message_id] ?? $message_id]]></code>
</MixedOperand>
<PossiblyNullReference>
<code><![CDATA[release]]></code>
<code><![CDATA[resume]]></code>
</PossiblyNullReference>
</file>
<file src="src/MTProtoSession/MsgIdHandler.php">
<MissingReturnType>
<code><![CDATA[getMaxId]]></code>
</MissingReturnType>
</file>
<file src="src/MTProtoSession/Reliable.php">
<MixedArgument>
<code><![CDATA[$content['info'][$key]]]></code>
<code><![CDATA[$content['msg_ids']]]></code>
<code><![CDATA[$content['msg_ids']]]></code>
<code><![CDATA[$msg_id]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$content['info'][$key]]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$content['info'][$key]]]></code>
<code><![CDATA[$this->incoming_messages[$content['answer_msg_id']]]]></code>
<code><![CDATA[$this->incoming_messages[$content['answer_msg_id']]]]></code>
<code><![CDATA[$this->incoming_messages[$msg_id]]]></code>
<code><![CDATA[$this->incoming_messages[$msg_id]]]></code>
<code><![CDATA[$this->outgoing_messages[$content['msg_id']]]]></code>
<code><![CDATA[$this->outgoing_messages[$msg_id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$key]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$shifted]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$msg_id]]></code>
</MixedOperand>
</file>
<file src="src/MTProtoSession/ResponseHandler.php">
<MixedArgument>
<code><![CDATA[$body['peer']]]></code>
<code><![CDATA[$content['orig_message']]]></code>
<code><![CDATA[$message->getContent()['_']]]></code>
<code><![CDATA[$message->read()['msg_ids']]]></code>
<code><![CDATA[$message->read()['server_salt']]]></code>
<code><![CDATA[$msg['body']]]></code>
<code><![CDATA[$msg['msg_id']]]></code>
<code><![CDATA[$msg['msg_id']]]></code>
<code><![CDATA[$msg['seqno']]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$referencedMsgId]]></code>
<code><![CDATA[$response]]></code>
<code><![CDATA[$response['_']]]></code>
<code><![CDATA[$response['error_code']]]></code>
<code><![CDATA[$response['new_server_salt']]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$expecting_msg_id]]></code>
<code><![CDATA[$tmp]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$msg['body']]]></code>
<code><![CDATA[$msg['msg_id']]]></code>
<code><![CDATA[$msg['msg_id']]]></code>
<code><![CDATA[$msg['msg_id']]]></code>
<code><![CDATA[$msg['seqno']]]></code>
<code><![CDATA[$response['_']]]></code>
<code><![CDATA[$response['error_code']]]></code>
<code><![CDATA[$response['error_code']]]></code>
<code><![CDATA[$response['error_code']]]></code>
<code><![CDATA[$response['error_code']]]></code>
<code><![CDATA[$response['new_server_salt']]]></code>
<code><![CDATA[$this->API->getTL()->getConstructors()->findByPredicate($message->getContent()['_'])['type']]]></code>
<code><![CDATA[$this->API->getTL()->getConstructors()->findByPredicate($response['_'])['type']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->incoming_messages[$msg['msg_id']]]]></code>
<code><![CDATA[$this->incoming_messages[$referencedMsgId]]]></code>
<code><![CDATA[MTProto::BAD_MSG_ERROR_CODES[$response['error_code']]]]></code>
<code><![CDATA[MTProto::BAD_MSG_ERROR_CODES[$response['error_code']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$msg]]></code>
<code><![CDATA[$msg_id]]></code>
<code><![CDATA[$referencedMsgId]]></code>
<code><![CDATA[$response]]></code>
<code><![CDATA[$responseType]]></code>
<code><![CDATA[$response_type]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$response_type]]></code>
<code><![CDATA[$this->API->authorization['user']['phone']]]></code>
<code><![CDATA[$this->API->authorization['user']['phone']]]></code>
</MixedOperand>
<PossiblyInvalidArgument>
<code><![CDATA[$response]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArgument>
<code><![CDATA[$msgId]]></code>
<code><![CDATA[$msgId]]></code>
<code><![CDATA[$msgId]]></code>
<code><![CDATA[$msgId]]></code>
<code><![CDATA[$request->getMsgId()]]></code>
</PossiblyNullArgument>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$this->API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/MTProtoSession/Session.php">
<MissingConstructor>
<code><![CDATA[$msgIdHandler]]></code>
<code><![CDATA[$new_incoming]]></code>
</MissingConstructor>
<MixedPropertyTypeCoercion>
<code><![CDATA[$q]]></code>
</MixedPropertyTypeCoercion>
<PossiblyNullOperand>
<code><![CDATA[$message->getSent()]]></code>
</PossiblyNullOperand>
</file>
<file src="src/MTProtoTools/AuthKeyHandler.php">
<MixedArgument>
<code><![CDATA[$dh_config['g']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$dh_config['_']]]></code>
<code><![CDATA[$dh_config['g']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$dh_config['g']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$dh_config]]></code>
<code><![CDATA[$this->dh_config]]></code>
</MixedAssignment>
</file>
<file src="src/MTProtoTools/CallHandler.php">
<MissingReturnType>
<code><![CDATA[methodCallAsyncRead]]></code>
</MissingReturnType>
</file>
<file src="src/MTProtoTools/FileServer.php">
<MixedArrayOffset>
<code><![CDATA[self::$checkedAutoload[$autoloadPath]]]></code>
<code><![CDATA[self::$checkedAutoload[$autoloadPath]]]></code>
<code><![CDATA[self::$checkedAutoload[$autoloadPath]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$autoloadPath]]></code>
<code><![CDATA[$autoloadPath]]></code>
<code><![CDATA[$f]]></code>
</MixedAssignment>
<PossiblyInvalidArgument>
<code><![CDATA[$_GET['m']]]></code>
<code><![CDATA[$_GET['n']]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidArrayAccess>
<code><![CDATA[$API->getSelf()['id']]]></code>
<code><![CDATA[$this->getSelf()['id']]]></code>
</PossiblyInvalidArrayAccess>
<PossiblyNullArgument>
<code><![CDATA[$media]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullOperand>
<code><![CDATA[$isCli ? $_ENV['serverName'] : $_SERVER['SERVER_NAME']]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$_SERVER['SERVER_NAME']]]></code>
</PossiblyUndefinedArrayOffset>
<RiskyCast>
<code><![CDATA[$_GET['s']]]></code>
</RiskyCast>
</file>
<file src="src/MTProtoTools/Files.php">
<InvalidNullableReturnType>
<code><![CDATA[array]]></code>
</InvalidNullableReturnType>
<MissingParamType>
<code><![CDATA[$data]]></code>
<code><![CDATA[$media]]></code>
</MissingParamType>
<MissingReturnType>
<code><![CDATA[genAllFile]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$cur * 100 / $count]]></code>
<code><![CDATA[$cur * 100 / $part_total_num]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_video]]></code>
<code><![CDATA[$has_video]]></code>
<code><![CDATA[$has_video]]></code>
<code><![CDATA[$has_video]]></code>
<code><![CDATA[$info]]></code>
<code><![CDATA[$media]]></code>
<code><![CDATA[$media]]></code>
<code><![CDATA[$media['_']]]></code>
<code><![CDATA[$media['document']]]></code>
<code><![CDATA[$media['photo']]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia['cdn_iv']]]></code>
<code><![CDATA[$messageMedia['cdn_key']]]></code>
<code><![CDATA[$messageMedia['document']]]></code>
<code><![CDATA[$messageMedia['document']['access_hash']]]></code>
<code><![CDATA[$messageMedia['document']['id']]]></code>
<code><![CDATA[$messageMedia['document']['mime_type']]]></code>
<code><![CDATA[$messageMedia['file']['access_hash']]]></code>
<code><![CDATA[$messageMedia['file_name']]]></code>
<code><![CDATA[$messageMedia['file_name']]]></code>
<code><![CDATA[$messageMedia['file_token']]]></code>
<code><![CDATA[$messageMedia['file_token']]]></code>
<code><![CDATA[$messageMedia['file_token']]]></code>
<code><![CDATA[$messageMedia['id']]]></code>
<code><![CDATA[$messageMedia['id']]]></code>
<code><![CDATA[$messageMedia['sizes']]]></code>
<code><![CDATA[$messageMedia['sizes']]]></code>
<code><![CDATA[$offset['offset']]]></code>
<code><![CDATA[$offset['part_end_at'] - $offset['part_start_at']]]></code>
<code><![CDATA[$offset['part_start_at']]]></code>
<code><![CDATA[$res['mime'] ?? 'image/jpeg']]></code>
<code><![CDATA[$this->methodCallAsyncRead('upload.getCdnFileHashes', ['file_token' => $file, 'offset' => $offset, 'cancellation' => $cancellation], $this->authorized_dc)]]></code>
<code><![CDATA[$this->methodCallAsyncRead('upload.reuploadCdnFile', ['file_token' => $messageMedia['file_token'], 'request_token' => $res['request_token'], 'cancellation' => $cancellation], $this->authorized_dc)]]></code>
<code><![CDATA[$url]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$answer['correct']]]></code>
<code><![CDATA[$answer['correct']]]></code>
<code><![CDATA[$answer['option']]]></code>
<code><![CDATA[$answer['option']]]></code>
<code><![CDATA[$attr['_']]]></code>
<code><![CDATA[$attr['mask']]]></code>
<code><![CDATA[$attr['voice']]]></code>
<code><![CDATA[$attribute['_']]]></code>
<code><![CDATA[$attribute['_']]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$constructor['_']]]></code>
<code><![CDATA[$constructor['media']]]></code>
<code><![CDATA[$constructor['message']]]></code>
<code><![CDATA[$has_video['round_message']]]></code>
<code><![CDATA[$hash['hash']]]></code>
<code><![CDATA[$hash['limit']]]></code>
<code><![CDATA[$hash['offset']]]></code>
<code><![CDATA[$media['_']]]></code>
<code><![CDATA[$media['_']]]></code>
<code><![CDATA[$media['access_hash']]]></code>
<code><![CDATA[$media['access_hash']]]></code>
<code><![CDATA[$media['document']]]></code>
<code><![CDATA[$media['document']]]></code>
<code><![CDATA[$media['document']]]></code>
<code><![CDATA[$media['document']]]></code>
<code><![CDATA[$media['document']['access_hash']]]></code>
<code><![CDATA[$media['document']['attributes']]]></code>
<code><![CDATA[$media['document']['id']]]></code>
<code><![CDATA[$media['document']['mime_type']]]></code>
<code><![CDATA[$media['emoticon']]]></code>
<code><![CDATA[$media['id']]]></code>
<code><![CDATA[$media['id']]]></code>
<code><![CDATA[$media['photo']]]></code>
<code><![CDATA[$media['photo']]]></code>
<code><![CDATA[$media['photo']]]></code>
<code><![CDATA[$media['photo']]]></code>
<code><![CDATA[$media['photo']['_']]]></code>
<code><![CDATA[$media['photo']['access_hash']]]></code>
<code><![CDATA[$media['photo']['id']]]></code>
<code><![CDATA[$media['poll']]]></code>
<code><![CDATA[$media['poll']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']]]></code>
<code><![CDATA[$media['results']['results']]]></code>
<code><![CDATA[$media['results']['results']]]></code>
<code><![CDATA[$media['results']['solution']]]></code>
<code><![CDATA[$media['results']['solution']]]></code>
<code><![CDATA[$media['results']['solution_entities']]]></code>
<code><![CDATA[$media['results']['solution_entities']]]></code>
<code><![CDATA[$media['spoiler']]]></code>
<code><![CDATA[$media['ttl_seconds']]]></code>
<code><![CDATA[$media['ttl_seconds']]]></code>
<code><![CDATA[$messageMedia['access_hash']]]></code>
<code><![CDATA[$messageMedia['access_hash']]]></code>
<code><![CDATA[$messageMedia['bytes']['bytes']]]></code>
<code><![CDATA[$messageMedia['dc_id']]]></code>
<code><![CDATA[$messageMedia['dc_id']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']['_']]]></code>
<code><![CDATA[$messageMedia['document']['access_hash']]]></code>
<code><![CDATA[$messageMedia['document']['attributes']]]></code>
<code><![CDATA[$messageMedia['document']['dc_id']]]></code>
<code><![CDATA[$messageMedia['document']['id']]]></code>
<code><![CDATA[$messageMedia['document']['id']]]></code>
<code><![CDATA[$messageMedia['document']['mime_type']]]></code>
<code><![CDATA[$messageMedia['document']['mime_type']]]></code>
<code><![CDATA[$messageMedia['document']['version']]]></code>
<code><![CDATA[$messageMedia['file']]]></code>
<code><![CDATA[$messageMedia['file']['access_hash']]]></code>
<code><![CDATA[$messageMedia['file']['access_hash']]]></code>
<code><![CDATA[$messageMedia['file']['dc_id']]]></code>
<code><![CDATA[$messageMedia['file']['id']]]></code>
<code><![CDATA[$messageMedia['file']['key_fingerprint']]]></code>
<code><![CDATA[$messageMedia['id']]]></code>
<code><![CDATA[$messageMedia['id']]]></code>
<code><![CDATA[$messageMedia['media']]]></code>
<code><![CDATA[$messageMedia['photo']['dc_id']]]></code>
<code><![CDATA[$messageMedia['sizes']]]></code>
<code><![CDATA[$res['_']]]></code>
<code><![CDATA[$res['_']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['dc_id']]]></code>
<code><![CDATA[$res['encryption_iv']]]></code>
<code><![CDATA[$res['encryption_key']]]></code>
<code><![CDATA[$res['file_token']]]></code>
<code><![CDATA[$res['request_token']]]></code>
<code><![CDATA[$res['type']]]></code>
<code><![CDATA[$res['type']]]></code>
<code><![CDATA[$res['type']['_']]]></code>
<code><![CDATA[$res['type']['_']]]></code>
<code><![CDATA[$this->TL->getConstructors()->findByPredicate($media['_'])['type']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$info['file_type']]]></code>
<code><![CDATA[$media['_']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']['file']]]></code>
<code><![CDATA[$res['InputMedia']['correct_answers']]]></code>
<code><![CDATA[$res['InputMedia']['correct_answers']]]></code>
<code><![CDATA[$res['InputMedia']['solution']]]></code>
<code><![CDATA[$res['InputMedia']['solution']]]></code>
<code><![CDATA[$res['InputMedia']['solution_entities']]]></code>
<code><![CDATA[$res['InputMedia']['solution_entities']]]></code>
<code><![CDATA[$res['InputMedia']['spoiler']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
<code><![CDATA[$res['bytes']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$info[$method]]]></code>
<code><![CDATA[$this->cdn_hashes[$file][$hash['offset']]]]></code>
<code><![CDATA[[$this->TL->getConstructors()->findByPredicate($media['_'])['type'] => $media]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$answer]]></code>
<code><![CDATA[$answer]]></code>
<code><![CDATA[$attr]]></code>
<code><![CDATA[$attribute]]></code>
<code><![CDATA[$attribute]]></code>
<code><![CDATA[$audio]]></code>
<code><![CDATA[$audio]]></code>
<code><![CDATA[$callable]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$dir]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$has_document_photo]]></code>
<code><![CDATA[$has_video]]></code>
<code><![CDATA[$hash]]></code>
<code><![CDATA[$info]]></code>
<code><![CDATA[$info['file_type']]]></code>
<code><![CDATA[$media]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia['cdn_iv']]]></code>
<code><![CDATA[$messageMedia['cdn_key']]]></code>
<code><![CDATA[$messageMedia['decrypted_message']['media']['file']]]></code>
<code><![CDATA[$messageMedia['file_token']]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res['Document']]]></code>
<code><![CDATA[$res['InputFileLocation']['dc_id']]]></code>
<code><![CDATA[$res['InputFileLocation']['has_video']]]></code>
<code><![CDATA[$res['InputFileLocation']['photo_id']]]></code>
<code><![CDATA[$res['InputMedia']]]></code>
<code><![CDATA[$res['InputMedia']['correct_answers'][]]]></code>
<code><![CDATA[$res['InputMedia']['correct_answers'][]]]></code>
<code><![CDATA[$res['InputMedia']['solution']]]></code>
<code><![CDATA[$res['InputMedia']['solution']]]></code>
<code><![CDATA[$res['InputMedia']['solution_entities']]]></code>
<code><![CDATA[$res['InputMedia']['solution_entities']]]></code>
<code><![CDATA[$res['InputMedia']['spoiler']]]></code>
<code><![CDATA[$res['InputMedia']['ttl_seconds']]]></code>
<code><![CDATA[$res['InputMedia']['ttl_seconds']]]></code>
<code><![CDATA[$res['Photo']]]></code>
<code><![CDATA[$res['Poll']]]></code>
<code><![CDATA[$res['Poll']]]></code>
<code><![CDATA[$res['data']]]></code>
<code><![CDATA[$res['data']]]></code>
<code><![CDATA[$res['iv']]]></code>
<code><![CDATA[$res['key']]]></code>
<code><![CDATA[$res['key_fingerprint']]]></code>
<code><![CDATA[$res['mime']]]></code>
<code><![CDATA[$res['mime']]]></code>
<code><![CDATA[$res['name']]]></code>
<code><![CDATA[$res['name']]]></code>
<code><![CDATA[$res['size']]]></code>
<code><![CDATA[$res['size']]]></code>
<code><![CDATA[$res['size']]]></code>
<code><![CDATA[$res['size']]]></code>
<code><![CDATA[$res['thumb_size']]]></code>
<code><![CDATA[$res['thumb_size']]]></code>
<code><![CDATA[$res['thumb_size']]]></code>
<code><![CDATA[$t]]></code>
<code><![CDATA[$url]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$audio['performer']]]></code>
<code><![CDATA[$audio['performer']]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$cur]]></code>
<code><![CDATA[$cur['width']]]></code>
<code><![CDATA[$dir]]></code>
<code><![CDATA[$messageMedia['InputFileLocation']['dc_id']]]></code>
<code><![CDATA[$messageMedia['_']]]></code>
<code><![CDATA[$messageMedia['dc_id']]]></code>
<code><![CDATA[$messageMedia['photo']['dc_id']]]></code>
<code><![CDATA[$n['width']]]></code>
<code><![CDATA[$offset['offset']]]></code>
<code><![CDATA[$offset['offset']]]></code>
<code><![CDATA[$offset['part_end_at']]]></code>
<code><![CDATA[$res['dc_id']]]></code>
<code><![CDATA[$res['name']]]></code>
<code><![CDATA[$res['name']]]></code>
<code><![CDATA[$res['name']]]></code>
</MixedOperand>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->cdn_hashes]]></code>
<code><![CDATA[$this->cdn_hashes]]></code>
</MixedPropertyTypeCoercion>
<MixedReturnStatement>
<code><![CDATA[$this->write[$offset]->getFuture()->await($this->cancellation)]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[non-empty-string]]></code>
</MoreSpecificReturnType>
<PossiblyInvalidArrayOffset>
<code><![CDATA[$this->read[$offset]]]></code>
<code><![CDATA[$this->write[$offset]]]></code>
<code><![CDATA[$this->write[$offset]]]></code>
</PossiblyInvalidArrayOffset>
<PossiblyNullArgument>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$messageMedia]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$messageMedia['decrypted_message']['media']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullOperand>
<code><![CDATA[$datacenter]]></code>
</PossiblyNullOperand>
<PossiblyNullReference>
<code><![CDATA[decrypt]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
<code><![CDATA[getReference]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$messageMedia['bytes']]]></code>
<code><![CDATA[$messageMedia['document']]]></code>
<code><![CDATA[$messageMedia['document']]]></code>
<code><![CDATA[$messageMedia['iv']]]></code>
<code><![CDATA[$messageMedia['key_fingerprint']]]></code>
<code><![CDATA[$messageMedia['photo']]]></code>
</PossiblyUndefinedArrayOffset>
<PossiblyUndefinedVariable>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
</PossiblyUndefinedVariable>
<RedundantCastGivenDocblockType>
<code><![CDATA[(string) $messageMedia['key']]]></code>
</RedundantCastGivenDocblockType>
<ReferenceConstraintViolation>
<code><![CDATA[$datacenter]]></code>
</ReferenceConstraintViolation>
<TooManyArguments>
<code><![CDATA[$cb(100, $speed, $time)]]></code>
</TooManyArguments>
<TypeDoesNotContainType>
<code><![CDATA[$res['ext'] === '']]></code>
</TypeDoesNotContainType>
</file>
<file src="src/MTProtoTools/FilesAbstraction.php">
<DocblockTypeContradiction>
<code><![CDATA[\is_array($file)]]></code>
</DocblockTypeContradiction>
<MixedArgument>
<code><![CDATA[$attributesOrig['thumbSeek']]]></code>
<code><![CDATA[$attributesOrig['thumbSeek']]]></code>
<code><![CDATA[$attributesOrig['thumbSeek']]]></code>
<code><![CDATA[$attributesOrig['thumbSeek']]]></code>
<code><![CDATA[$this->methodCallAsyncRead(
$method,
$params
)]]></code>
<code><![CDATA[$thumb]]></code>
<code><![CDATA[$thumb]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['h']]]></code>
<code><![CDATA[$attributes[0]['h']]]></code>
<code><![CDATA[$attributes[0]['no_sound']]]></code>
<code><![CDATA[$attributes[0]['performer']]]></code>
<code><![CDATA[$attributes[0]['title']]]></code>
<code><![CDATA[$attributes[0]['w']]]></code>
<code><![CDATA[$file['iv']]]></code>
<code><![CDATA[$file['key']]]></code>
<code><![CDATA[$file['size']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['h']]]></code>
<code><![CDATA[$attributes[0]['performer']]]></code>
<code><![CDATA[$attributes[0]['title']]]></code>
<code><![CDATA[$attributes[0]['w']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['duration']]]></code>
<code><![CDATA[$attributes[0]['h']]]></code>
<code><![CDATA[$attributes[0]['performer']]]></code>
<code><![CDATA[$attributes[0]['title']]]></code>
<code><![CDATA[$attributes[0]['w']]]></code>
<code><![CDATA[$message['media']['iv']]]></code>
<code><![CDATA[$message['media']['iv']]]></code>
<code><![CDATA[$message['media']['iv']]]></code>
<code><![CDATA[$message['media']['key']]]></code>
<code><![CDATA[$message['media']['key']]]></code>
<code><![CDATA[$message['media']['key']]]></code>
<code><![CDATA[$message['media']['size']]]></code>
<code><![CDATA[$message['media']['size']]]></code>
<code><![CDATA[$message['media']['size']]]></code>
<code><![CDATA[$thumb]]></code>
<code><![CDATA[$thumb]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[Message]]></code>
</MoreSpecificReturnType>
<PossiblyInvalidArgument>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$media['file']]]></code>
<code><![CDATA[$media['file']]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArgument>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$stderr]]></code>
<code><![CDATA[$stderr]]></code>
<code><![CDATA[$stderr]]></code>
<code><![CDATA[$stderr]]></code>
</PossiblyNullArgument>
<RedundantConditionGivenDocblockType>
<code><![CDATA[\is_array($media['file'])]]></code>
</RedundantConditionGivenDocblockType>
<ReferenceConstraintViolation>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
</ReferenceConstraintViolation>
</file>
<file src="src/MTProtoTools/FilesLogic.php">
<MissingClosureReturnType>
<code><![CDATA[static function (string $payload, int $offset) use ($stream, $seekable, $lock) {]]></code>
</MissingClosureReturnType>
<MixedArgument>
<code><![CDATA[$end]]></code>
<code><![CDATA[$end]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$l]]></code>
<code><![CDATA[$media['file']]]></code>
<code><![CDATA[$media['file']]]></code>
<code><![CDATA[$media['thumb']]]></code>
<code><![CDATA[$media['thumb']]]></code>
<code><![CDATA[$media['url']]]></code>
<code><![CDATA[$media['url']->getFile()]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$start]]></code>
<code><![CDATA[$start]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$url]]></code>
<code><![CDATA[$url = $media['url']]]></code>
<code><![CDATA[$url = $media['url']->getFile()]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$cb]]></code>
</MixedArgumentTypeCoercion>
<MixedAssignment>
<code><![CDATA[$file]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$messageMedia]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$url]]></code>
<code><![CDATA[$url]]></code>
</MixedAssignment>
<PossiblyInvalidArgument>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArgument>
<code><![CDATA[$body]]></code>
<code><![CDATA[$size]]></code>
</PossiblyNullArgument>
<PossiblyUndefinedMethod>
<code><![CDATA[seek]]></code>
<code><![CDATA[seek]]></code>
</PossiblyUndefinedMethod>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/MTProtoTools/MinDatabase.php">
<MissingReturnType>
<code><![CDATA[populateFrom]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$dbObject]]></code>
<code><![CDATA[$this->pendingDb[$id]]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$new['peer']['min']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$this->cache[$key][$id]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$peers[$location['channel_id']]]]></code>
<code><![CDATA[$peers[$location['from_id']]]]></code>
<code><![CDATA[$peers[$location['from_id']]]]></code>
<code><![CDATA[$peers[$location['peer_id']]]]></code>
<code><![CDATA[$peers[$user]]]></code>
<code><![CDATA[$this->pendingDb[$id]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$dbObject]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$new['peer']]]></code>
<code><![CDATA[$origin['msg_id']]]></code>
<code><![CDATA[$user]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$new['_']]]></code>
</MixedOperand>
<MixedReturnTypeCoercion>
<code><![CDATA[array]]></code>
<code><![CDATA[array_fill_keys(self::SWITCH_CONSTRUCTORS, $this->populateFrom(...))]]></code>
</MixedReturnTypeCoercion>
<PossiblyInvalidArrayAccess>
<code><![CDATA[$location['_']]]></code>
<code><![CDATA[$location['peer_id']]]></code>
<code><![CDATA[$location['users']]]></code>
</PossiblyInvalidArrayAccess>
<PossiblyNullArgument>
<code><![CDATA[$id]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayOffset>
<code><![CDATA[$peers]]></code>
<code><![CDATA[$this->db]]></code>
</PossiblyNullArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$db]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/MTProtoTools/PasswordCalculator.php">
<MixedArgument>
<code><![CDATA[$A]]></code>
<code><![CDATA[$client_salt]]></code>
<code><![CDATA[$gForHash]]></code>
<code><![CDATA[$g_x]]></code>
<code><![CDATA[$object['current_algo']['g']]]></code>
<code><![CDATA[$object['new_algo']['g']]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$pForHash]]></code>
<code><![CDATA[$params['password'] ?? '']]></code>
<code><![CDATA[$server_salt]]></code>
<code><![CDATA[$v->toBytes()]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$object['current_algo']['_']]]></code>
<code><![CDATA[$object['current_algo']['g']]]></code>
<code><![CDATA[$object['current_algo']['p']]]></code>
<code><![CDATA[$object['current_algo']['salt1']]]></code>
<code><![CDATA[$object['current_algo']['salt1']]]></code>
<code><![CDATA[$object['current_algo']['salt2']]]></code>
<code><![CDATA[$object['current_algo']['salt2']]]></code>
<code><![CDATA[$object['new_algo']['_']]]></code>
<code><![CDATA[$object['new_algo']['g']]]></code>
<code><![CDATA[$object['new_algo']['p']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$object['current_algo']['g']]]></code>
<code><![CDATA[$object['current_algo']['gForHash']]]></code>
<code><![CDATA[$object['current_algo']['p']]]></code>
<code><![CDATA[$object['current_algo']['pForHash']]]></code>
<code><![CDATA[$object['current_algo']['salt1']]]></code>
<code><![CDATA[$object['current_algo']['salt1']]]></code>
<code><![CDATA[$object['current_algo']['salt2']]]></code>
<code><![CDATA[$object['current_algo']['salt2']]]></code>
<code><![CDATA[$object['new_algo']['g']]]></code>
<code><![CDATA[$object['new_algo']['gForHash']]]></code>
<code><![CDATA[$object['new_algo']['p']]]></code>
<code><![CDATA[$object['new_algo']['pForHash']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$A]]></code>
<code><![CDATA[$client_salt]]></code>
<code><![CDATA[$g]]></code>
<code><![CDATA[$g]]></code>
<code><![CDATA[$gForHash]]></code>
<code><![CDATA[$g_x]]></code>
<code><![CDATA[$new_settings['email']]]></code>
<code><![CDATA[$new_settings['hint']]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$p]]></code>
<code><![CDATA[$pForHash]]></code>
<code><![CDATA[$pForHash]]></code>
<code><![CDATA[$server_salt]]></code>
<code><![CDATA[$this->current_algo]]></code>
<code><![CDATA[$this->new_algo]]></code>
<code><![CDATA[$this->srp_id]]></code>
<code><![CDATA[$v]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[powMod]]></code>
<code><![CDATA[powMod]]></code>
<code><![CDATA[powMod]]></code>
<code><![CDATA[toBytes]]></code>
<code><![CDATA[toString]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$pForHash]]></code>
</MixedOperand>
<PossiblyNullOperand>
<code><![CDATA[$BForHash]]></code>
<code><![CDATA[$BForHash]]></code>
</PossiblyNullOperand>
<PossiblyNullReference>
<code><![CDATA[powMod]]></code>
</PossiblyNullReference>
</file>
<file src="src/MTProtoTools/PeerDatabase.php">
<DocblockTypeContradiction>
<code><![CDATA[$result === null]]></code>
</DocblockTypeContradiction>
<InvalidPropertyAssignmentValue>
<code><![CDATA[$this->pendingDb]]></code>
</InvalidPropertyAssignmentValue>
<MixedArgument>
<code><![CDATA[$bot_api_id]]></code>
<code><![CDATA[$bot_api_id]]></code>
<code><![CDATA[$bot_api_id]]></code>
<code><![CDATA[$bot_api_id]]></code>
<code><![CDATA[$chat['id']]]></code>
<code><![CDATA[$chat['id']]]></code>
<code><![CDATA[$chat['id']]]></code>
<code><![CDATA[$constructor['username']]]></code>
<code><![CDATA[$full[$k]]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$user['id']]]></code>
<code><![CDATA[$username]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$full[$k]['_']]]></code>
<code><![CDATA[$invite['chat']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
<code><![CDATA[$this->API->methodCallAsyncRead('help.getSupport', [])['user']]]></code>
<code><![CDATA[$username]]></code>
<code><![CDATA[($this->API->methodCallAsyncRead('contacts.resolveUsername', ['username' => $username]))['peer']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->db[$bot_api_id]]]></code>
<code><![CDATA[$this->db[$bot_api_id]]]></code>
<code><![CDATA[$this->db[$chat['id']]]]></code>
<code><![CDATA[$this->db[$chat['id']]]]></code>
<code><![CDATA[$this->db[$user['id']]]]></code>
<code><![CDATA[$this->db[$user['id']]]]></code>
<code><![CDATA[$this->pendingDb[$user['id']]]]></code>
<code><![CDATA[$this->pendingDb[$user['id']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$bot_api_id]]></code>
<code><![CDATA[$chat['access_hash']]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$invite]]></code>
<code><![CDATA[$newchat[$field]]]></code>
<code><![CDATA[$user['access_hash']]]></code>
<code><![CDATA[$user['access_hash']]]></code>
<code><![CDATA[['username' => $username]]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$chat['_']]]></code>
<code><![CDATA[$user['_']]]></code>
</MixedOperand>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->pendingDb]]></code>
</MixedPropertyTypeCoercion>
<MixedReturnStatement>
<code><![CDATA[$this->getFull($id)['inserted'] ?? 0]]></code>
<code><![CDATA[$this->getFull($id)['inserted'] ?? 0]]></code>
</MixedReturnStatement>
<NoValue>
<code><![CDATA[$k]]></code>
<code><![CDATA[$k]]></code>
<code><![CDATA[$v]]></code>
<code><![CDATA[$v]]></code>
</NoValue>
<PossiblyNullArgument>
<code><![CDATA[$this->API->getIdInternal($full)]]></code>
<code><![CDATA[$this->API->getIdInternal($full)]]></code>
<code><![CDATA[$this->API->getIdInternal($id)]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->API->authorization['user']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullArrayOffset>
<code><![CDATA[$this->fullDb]]></code>
<code><![CDATA[$this->fullDb]]></code>
<code><![CDATA[$this->pendingDb]]></code>
</PossiblyNullArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$db]]></code>
<code><![CDATA[$fullDb]]></code>
<code><![CDATA[$usernames]]></code>
</PropertyNotSetInConstructor>
<RedundantCastGivenDocblockType>
<code><![CDATA[(int) $id]]></code>
<code><![CDATA[(int) $result]]></code>
</RedundantCastGivenDocblockType>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$id !== null]]></code>
<code><![CDATA[$result !== null]]></code>
<code><![CDATA[$result !== null]]></code>
<code><![CDATA[(int) $result]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/MTProtoTools/PeerHandler.php">
<InvalidArrayOffset>
<code><![CDATA[$this->getInfo($peer, \danog\MadelineProto\API::INFO_TYPE_CONSTRUCTOR)['forum']]]></code>
</InvalidArrayOffset>
<LessSpecificReturnType>
<code><![CDATA[?array]]></code>
</LessSpecificReturnType>
<MissingReturnType>
<code><![CDATA[fwdPeerIsset]]></code>
<code><![CDATA[getInputConstructor]]></code>
<code><![CDATA[getInputPeer]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$constructor['_']]]></code>
<code><![CDATA[$gres]]></code>
<code><![CDATA[$gres['participants']]]></code>
<code><![CDATA[$gres['participants']]]></code>
<code><![CDATA[$gres['participants']]]></code>
<code><![CDATA[$gres['participants']]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id['chat']['id']]]></code>
<code><![CDATA[$id['chat_id']]]></code>
<code><![CDATA[$res['id']]]></code>
<code><![CDATA[$res['id']]]></code>
<code><![CDATA[$res['participants']]]></code>
<code><![CDATA[$res['participants']]]></code>
<code><![CDATA[$total_count]]></code>
<code><![CDATA[$total_count]]></code>
<code><![CDATA[$total_count]]></code>
<code><![CDATA[$total_count]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$full['full']['chat_photo']]]></code>
<code><![CDATA[$full['full']['chat_photo']]]></code>
<code><![CDATA[$full['full']['exported_invite']]]></code>
<code><![CDATA[$full['full']['exported_invite']]]></code>
<code><![CDATA[$full['full']['exported_invite']['link']]]></code>
<code><![CDATA[$full['full']['exported_invite']['link']]]></code>
<code><![CDATA[$full['full']['fallback_photo']]]></code>
<code><![CDATA[$full['full']['participants']]]></code>
<code><![CDATA[$full['full']['participants']['participants']]]></code>
<code><![CDATA[$full['full']['personal_photo']]]></code>
<code><![CDATA[$full['full']['profile_photo']]]></code>
<code><![CDATA[$gres['_']]]></code>
<code><![CDATA[$id['chat']['id']]]></code>
<code><![CDATA[$id['chat_id']]]></code>
<code><![CDATA[$id['chat_id']]]></code>
<code><![CDATA[$invite['chat']]]></code>
<code><![CDATA[$newres['inviter_id']]]></code>
<code><![CDATA[$newres['kicked_by']]]></code>
<code><![CDATA[$newres['peer']]]></code>
<code><![CDATA[$newres['promoted_by']]]></code>
<code><![CDATA[$newres['user_id']]]></code>
<code><![CDATA[$participant['_']]]></code>
<code><![CDATA[$participant['_']]]></code>
<code><![CDATA[$participant['date']]]></code>
<code><![CDATA[$participant['inviter_id']]]></code>
<code><![CDATA[$participant['inviter_id']]]></code>
<code><![CDATA[$participant['kicked_by']]]></code>
<code><![CDATA[$participant['kicked_by']]]></code>
<code><![CDATA[$participant['peer']]]></code>
<code><![CDATA[$participant['peer']]]></code>
<code><![CDATA[$participant['peer']]]></code>
<code><![CDATA[$participant['promoted_by']]]></code>
<code><![CDATA[$participant['user_id']]]></code>
<code><![CDATA[$participant['user_id']]]></code>
<code><![CDATA[$participant['user_id']]]></code>
<code><![CDATA[$participant['user_id']]]></code>
<code><![CDATA[$support['user']['id']]]></code>
<code><![CDATA[$this->TL->getConstructors()->findByPredicate($constructor['_'])['type']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$newres['inviter']]]></code>
<code><![CDATA[$newres['kicked_by']]]></code>
<code><![CDATA[$newres['promoted_by']]]></code>
<code><![CDATA[$newres['role']]]></code>
<code><![CDATA[$newres['role']]]></code>
<code><![CDATA[$newres['role']]]></code>
<code><![CDATA[$newres['role']]]></code>
<code><![CDATA[$newres['role']]]></code>
<code><![CDATA[$newres['user']]]></code>
<code><![CDATA[$res['participants'][$key]]]></code>
<code><![CDATA[$res['participants'][$participant['user_id'] ?? $this->getIdInternal($participant['peer'])]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$res['participants'][$key]]]></code>
<code><![CDATA[$res['participants'][$participant['user_id'] ?? $this->getIdInternal($participant['peer'])]]]></code>
<code><![CDATA[[$this->TL->getConstructors()->findByPredicate($constructor['_'])['type'] => $constructor]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$entity]]></code>
<code><![CDATA[$gres]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$ids[]]]></code>
<code><![CDATA[$invite]]></code>
<code><![CDATA[$invite]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$last_count]]></code>
<code><![CDATA[$newres]]></code>
<code><![CDATA[$newres['date']]]></code>
<code><![CDATA[$participant]]></code>
<code><![CDATA[$participant]]></code>
<code><![CDATA[$participant]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res[$key]]]></code>
<code><![CDATA[$res['bot_api_id']]]></code>
<code><![CDATA[$res['bot_api_id']]]></code>
<code><![CDATA[$res['bot_api_id']]]></code>
<code><![CDATA[$res['channel_id']]]></code>
<code><![CDATA[$res['chat_id']]]></code>
<code><![CDATA[$res['fallback_photo']]]></code>
<code><![CDATA[$res['invite']]]></code>
<code><![CDATA[$res['invite']]]></code>
<code><![CDATA[$res['participants']]]></code>
<code><![CDATA[$res['participants'][$participant['user_id'] ?? $this->getIdInternal($participant['peer'])]]]></code>
<code><![CDATA[$res['personal_photo']]]></code>
<code><![CDATA[$res['photo']]]></code>
<code><![CDATA[$res['photo']]]></code>
<code><![CDATA[$res['photo']]]></code>
<code><![CDATA[$res['user_id']]]></code>
<code><![CDATA[$this->supportUser]]></code>
<code><![CDATA[$total_count]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[getOtherID]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$constructor['_']]]></code>
<code><![CDATA[$full['inserted'] ?? 0]]></code>
<code><![CDATA[$gres['count']]]></code>
<code><![CDATA[$id['_']]]></code>
<code><![CDATA[$res['admins_count'] ?? 0]]></code>
<code><![CDATA[($res['participants_count'] ?? 0) + ($res['admins_count'] ?? 0)]]></code>
<code><![CDATA[-$constructor['id']]]></code>
<code><![CDATA[-$constructor['id']]]></code>
</MixedOperand>
<MixedReturnTypeCoercion>
<code><![CDATA[($type is \danog\MadelineProto\API::INFO_TYPE_ALL ? array{
* User?: array,
* Chat?: array,
* bot_api_id: int,
* user_id?: int,
* chat_id?: int,
* channel_id?: int,
* type: string
* } : ($type is API::INFO_TYPE_TYPE ? string : ($type is \danog\MadelineProto\API::INFO_TYPE_ID ? int : array{_: string, user_id?: int, access_hash?: int, min?: bool, chat_id?: int, channel_id?: int}|array{_: string, user_id?: int, access_hash?: int, min?: bool}|array{_: string, channel_id: int, access_hash: int, min: bool})))]]></code>
</MixedReturnTypeCoercion>
<MoreSpecificReturnType>
<code><![CDATA[\danog\MadelineProto\API::PEER_TYPE_*]]></code>
</MoreSpecificReturnType>
<PossiblyInvalidArgument>
<code><![CDATA[$promises]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArgument>
<code><![CDATA[$full]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$this->getIdInternal($id)]]></code>
<code><![CDATA[$this->getIdInternal($id)]]></code>
<code><![CDATA[$this->peerDatabase->getFull($partial['bot_api_id'])]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullArrayOffset>
<code><![CDATA[$res['participants']]]></code>
</PossiblyNullArrayOffset>
<RedundantFunctionCall>
<code><![CDATA[array_values]]></code>
</RedundantFunctionCall>
</file>
<file src="src/MTProtoTools/ReferenceDatabase.php">
<LessSpecificReturnType>
<code><![CDATA[?array]]></code>
</LessSpecificReturnType>
<MixedArgument>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$locationValue['origins']]]></code>
<code><![CDATA[$location['dc_id']]]></code>
<code><![CDATA[$location['file_reference']['bytes']]]></code>
<code><![CDATA[$location['id']]]></code>
<code><![CDATA[$location['local_id']]]></code>
<code><![CDATA[$location['volume_id']]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$photo]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$size['location']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$attribute['_']]]></code>
<code><![CDATA[$attribute['stickerset']]]></code>
<code><![CDATA[$attribute['stickerset']]]></code>
<code><![CDATA[$attribute['stickerset']['_']]]></code>
<code><![CDATA[$cache[$location]]]></code>
<code><![CDATA[$cache[$location]]]></code>
<code><![CDATA[$cache[$location]]]></code>
<code><![CDATA[$cache[$location]]]></code>
<code><![CDATA[$data['photo']['photo_id']]]></code>
<code><![CDATA[$data['photo']['photo_id']]]></code>
<code><![CDATA[$data['profile_photo']['id']]]></code>
<code><![CDATA[$data['set']['access_hash']]]></code>
<code><![CDATA[$data['set']['id']]]></code>
<code><![CDATA[$origin['msg_id']]]></code>
<code><![CDATA[$origin['msg_id']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$photo['dc_id']]]></code>
<code><![CDATA[$photo['id']]]></code>
<code><![CDATA[$res['photo']['id']]]></code>
<code><![CDATA[$size['location']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$locationValue['origins'][$originType]]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$size['location']]]></code>
<code><![CDATA[$size['location']['dc_id']]]></code>
<code><![CDATA[$this->cache[$key][$location]]]></code>
<code><![CDATA[$this->cache[$key][$location]]]></code>
<code><![CDATA[$this->cache[$key][$location]]]></code>
<code><![CDATA[$this->cache[$key][self::serializeLocation($locationType, $location)]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->cache[$key][$location]]]></code>
<code><![CDATA[$this->cache[$key][$location]]]></code>
<code><![CDATA[self::LOCATION_CONTEXT[$object['_']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$attribute]]></code>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$cache]]></code>
<code><![CDATA[$dc_id]]></code>
<code><![CDATA[$frame]]></code>
<code><![CDATA[$frames[]]]></code>
<code><![CDATA[$frames[]]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$location]]></code>
<code><![CDATA[$origin]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$originType]]></code>
<code><![CDATA[$origin['emoticon']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['max_id']]]></code>
<code><![CDATA[$origin['msg_id']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['peer']]]></code>
<code><![CDATA[$origin['stickerset']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$origin['user_id']]]></code>
<code><![CDATA[$photo]]></code>
<code><![CDATA[$previous]]></code>
<code><![CDATA[$previous]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$reference]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size['location']['dc_id']]]></code>
<code><![CDATA[$tlTrace]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$frame]]></code>
<code><![CDATA[$location['_']]]></code>
<code><![CDATA[$tlTrace]]></code>
</MixedOperand>
<ParadoxicalCondition>
<code><![CDATA[$frame['args'][1]['type'] === $previous]]></code>
</ParadoxicalCondition>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->API->authorization['user']]]></code>
<code><![CDATA[$this->API->authorization['user']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
<code><![CDATA[$this->API->authorization['user']['id']]]></code>
<code><![CDATA[$this->getDb($locationString)['origins']]]></code>
<code><![CDATA[$this->getDb($locationString)['reference']]]></code>
<code><![CDATA[$this->getDb($locationString)['reference']]]></code>
<code><![CDATA[$this->getDb($locationString)['reference']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullIterator>
<code><![CDATA[$this->getDb($locationString)['origins']]]></code>
</PossiblyNullIterator>
<PropertyNotSetInConstructor>
<code><![CDATA[$db]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/MTProtoTools/ResponseInfo.php">
<MixedArgument>
<code><![CDATA[$headers['range']]]></code>
<code><![CDATA[$headers['user-agent']]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$length]]></code>
<code><![CDATA[$seek_end]]></code>
<code><![CDATA[$size]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$seek_end]]></code>
<code><![CDATA[$seek_end]]></code>
<code><![CDATA[$seek_end]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
<code><![CDATA[$size]]></code>
</MixedOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$extra_ranges]]></code>
<code><![CDATA[$range_orig]]></code>
<code><![CDATA[$seek_end]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/MTProtoTools/UpdateHandler.php">
<ArgumentTypeCoercion>
<code><![CDATA[$this->wrapMedia($message['action']['photo'])]]></code>
<code><![CDATA[$this->wrapMedia($message['action']['photo'])]]></code>
</ArgumentTypeCoercion>
<InaccessibleProperty>
<code><![CDATA[$last->nextSent]]></code>
</InaccessibleProperty>
<MissingParamType>
<code><![CDATA[$update]]></code>
</MissingParamType>
<MissingReturnType>
<code><![CDATA[getUpdatesState]]></code>
<code><![CDATA[loadUpdateState]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['ttl_seconds']]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization['authorization']]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$message['action']['amount']]]></code>
<code><![CDATA[$message['action']['auto_setting_from'] ?? null]]></code>
<code><![CDATA[$message['action']['button_id']]]></code>
<code><![CDATA[$message['action']['call_id']]]></code>
<code><![CDATA[$message['action']['channel_id']]]></code>
<code><![CDATA[$message['action']['chat_id']]]></code>
<code><![CDATA[$message['action']['closed'] ?? null]]></code>
<code><![CDATA[$message['action']['crypto_amount'] ?? null]]></code>
<code><![CDATA[$message['action']['crypto_currency'] ?? null]]></code>
<code><![CDATA[$message['action']['currency']]]></code>
<code><![CDATA[$message['action']['data']]]></code>
<code><![CDATA[$message['action']['distance']]]></code>
<code><![CDATA[$message['action']['duration'] ?? null]]></code>
<code><![CDATA[$message['action']['duration'] ?? null]]></code>
<code><![CDATA[$message['action']['emoticon']]]></code>
<code><![CDATA[$message['action']['game_id']]]></code>
<code><![CDATA[$message['action']['hidden'] ?? null]]></code>
<code><![CDATA[$message['action']['icon_color']]]></code>
<code><![CDATA[$message['action']['icon_emoji_id'] ?? null]]></code>
<code><![CDATA[$message['action']['icon_emoji_id'] ?? null]]></code>
<code><![CDATA[$message['action']['inviter_id']]]></code>
<code><![CDATA[$message['action']['months']]]></code>
<code><![CDATA[$message['action']['peers']]]></code>
<code><![CDATA[$message['action']['period']]]></code>
<code><![CDATA[$message['action']['photo']]]></code>
<code><![CDATA[$message['action']['photo']]]></code>
<code><![CDATA[$message['action']['reason']['_'] ?? '']]></code>
<code><![CDATA[$message['action']['schedule_date']]]></code>
<code><![CDATA[$message['action']['score']]]></code>
<code><![CDATA[$message['action']['text']]]></code>
<code><![CDATA[$message['action']['text']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title'] ?? null]]></code>
<code><![CDATA[$message['action']['user_id']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['video']]]></code>
<code><![CDATA[$message['action']['wallpaper']]]></code>
<code><![CDATA[$message['action']['wallpaper']]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->getUpdatesState()]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update['chat']]]></code>
<code><![CDATA[$update['chat']]]></code>
<code><![CDATA[$update['chat']['admin_id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['message']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['phone_call']]]></code>
<code><![CDATA[$update['phone_call']]]></code>
<code><![CDATA[$update['phone_call']]]></code>
<code><![CDATA[$update['phone_call']]]></code>
<code><![CDATA[$updates]]></code>
<code><![CDATA[$updates['entities']]]></code>
<code><![CDATA[$updates['fwd_from']]]></code>
<code><![CDATA[$updates['request']['body'] ?? []]]></code>
<code><![CDATA[$updates['request']['body'] ?? []]]></code>
<code><![CDATA[$updates['update']]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$this->rethrowHandler]]></code>
<code><![CDATA[$this->rethrowHandler]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[['type' => $update['_']]]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$action['_']]]></code>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['random_ids']]]></code>
<code><![CDATA[$action['ttl_seconds']]]></code>
<code><![CDATA[$authorization['_']]]></code>
<code><![CDATA[$authorization['authorization']]]></code>
<code><![CDATA[$authorization['dc_id']]]></code>
<code><![CDATA[$authorization['dc_id']]]></code>
<code><![CDATA[$message['action']['_']]]></code>
<code><![CDATA[$message['action']['amount']]]></code>
<code><![CDATA[$message['action']['auto_setting_from']]]></code>
<code><![CDATA[$message['action']['button_id']]]></code>
<code><![CDATA[$message['action']['call_id']]]></code>
<code><![CDATA[$message['action']['channel_id']]]></code>
<code><![CDATA[$message['action']['chat_id']]]></code>
<code><![CDATA[$message['action']['closed']]]></code>
<code><![CDATA[$message['action']['crypto_amount']]]></code>
<code><![CDATA[$message['action']['crypto_currency']]]></code>
<code><![CDATA[$message['action']['currency']]]></code>
<code><![CDATA[$message['action']['data']]]></code>
<code><![CDATA[$message['action']['distance']]]></code>
<code><![CDATA[$message['action']['duration']]]></code>
<code><![CDATA[$message['action']['duration']]]></code>
<code><![CDATA[$message['action']['emoticon']]]></code>
<code><![CDATA[$message['action']['from_id']]]></code>
<code><![CDATA[$message['action']['game_id']]]></code>
<code><![CDATA[$message['action']['hidden']]]></code>
<code><![CDATA[$message['action']['icon_color']]]></code>
<code><![CDATA[$message['action']['icon_emoji_id']]]></code>
<code><![CDATA[$message['action']['icon_emoji_id']]]></code>
<code><![CDATA[$message['action']['inviter_id']]]></code>
<code><![CDATA[$message['action']['months']]]></code>
<code><![CDATA[$message['action']['peers']]]></code>
<code><![CDATA[$message['action']['period']]]></code>
<code><![CDATA[$message['action']['photo']]]></code>
<code><![CDATA[$message['action']['photo']]]></code>
<code><![CDATA[$message['action']['reason']]]></code>
<code><![CDATA[$message['action']['reason']['_']]]></code>
<code><![CDATA[$message['action']['schedule_date']]]></code>
<code><![CDATA[$message['action']['score']]]></code>
<code><![CDATA[$message['action']['text']]]></code>
<code><![CDATA[$message['action']['text']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['title']]]></code>
<code><![CDATA[$message['action']['to_id']]]></code>
<code><![CDATA[$message['action']['user_id']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['users']]]></code>
<code><![CDATA[$message['action']['video']]]></code>
<code><![CDATA[$message['action']['wallpaper']]]></code>
<code><![CDATA[$message['action']['wallpaper']]]></code>
<code><![CDATA[$message['decrypted_message']['action']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$row['buttons']]]></code>
<code><![CDATA[$this->TL->getConstructors()->findByPredicate('message')['params']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$update['_']]]></code>
<code><![CDATA[$update['chat']['_']]]></code>
<code><![CDATA[$update['chat']['admin_id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['message']['action']['_']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['phone_call']['_']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['phone_call']['id']]]></code>
<code><![CDATA[$update['story']['_']]]></code>
<code><![CDATA[$updates['request']['body']]]></code>
<code><![CDATA[$updates['request']['body']]]></code>
<code><![CDATA[$updates['request']['body']['peer']]]></code>
<code><![CDATA[$updates['request']['body']['peer']]]></code>
<code><![CDATA[$updates['updates'][$key]]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$message['reply_markup']['rows'][$key]]]></code>
<code><![CDATA[$message['reply_markup']['rows'][$key]['buttons']]]></code>
<code><![CDATA[$message['reply_markup']['rows'][$key]['buttons'][$bkey]]]></code>
<code><![CDATA[$this->authorization['hint']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$message[$param['name']]]]></code>
<code><![CDATA[$message[$param['name']]]]></code>
<code><![CDATA[$message['reply_markup']['rows'][$key]]]></code>
<code><![CDATA[$message['reply_markup']['rows'][$key]['buttons'][$bkey]]]></code>
<code><![CDATA[$new[$param['name']]]]></code>
<code><![CDATA[$new[$param['name']]]]></code>
<code><![CDATA[$result[$this->feeders[FeedLoop::GENERIC]->feedSingle($update)]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call']['id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call_id']]]]></code>
<code><![CDATA[$this->calls[$update['phone_call_id']]]]></code>
<code><![CDATA[$this->eventHandlerMethods[$updateType]]]></code>
<code><![CDATA[$this->feeders[$this->feeders[FeedLoop::GENERIC]->feedSingle($update)]]]></code>
<code><![CDATA[$this->feeders[$this->feeders[FeedLoop::GENERIC]->feedSingle($updates['update'])]]]></code>
<code><![CDATA[$this->msg_ids[$peer_id]]]></code>
<code><![CDATA[$this->msg_ids[$peer_id]]]></code>
<code><![CDATA[$this->secretChats[$update['message']['chat_id']]]]></code>
<code><![CDATA[$this->secretChats[$update['message']['chat_id']]]]></code>
<code><![CDATA[$updates['updates'][$key]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$action]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$bkey]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$closure]]></code>
<code><![CDATA[$cur_state]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$from_id]]></code>
<code><![CDATA[$from_id]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$message['from_id']]]></code>
<code><![CDATA[$message['from_id']]]></code>
<code><![CDATA[$message['peer_id']]]></code>
<code><![CDATA[$message['peer_id']]]></code>
<code><![CDATA[$message_id]]></code>
<code><![CDATA[$new[$param['name']]]]></code>
<code><![CDATA[$param]]></code>
<code><![CDATA[$peer_id]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$row]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorized_dc]]></code>
<code><![CDATA[$to_id]]></code>
<code><![CDATA[$to_id]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$update]]></code>
<code><![CDATA[$updateType]]></code>
<code><![CDATA[$update['message']['from_id']]]></code>
<code><![CDATA[$updates]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
<code><![CDATA[qts]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$authorization['dc_id']]]></code>
<code><![CDATA[$cur_state->qts()]]></code>
<code><![CDATA[$cur_state->qts()]]></code>
<code><![CDATA[$cur_state->qts()]]></code>
<code><![CDATA[$cur_state->qts()]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['chat']['id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['qts']]]></code>
<code><![CDATA[$update['qts']]]></code>
<code><![CDATA[$update['qts']]]></code>
<code><![CDATA[$updates['_']]]></code>
<code><![CDATA[$updates['_']]]></code>
</MixedOperand>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->calls]]></code>
<code><![CDATA[$this->calls]]></code>
</MixedPropertyTypeCoercion>
<PossiblyNullArgument>
<code><![CDATA[$this->getIdInternal($message['action']['from_id'])]]></code>
<code><![CDATA[$this->getIdInternal($message['action']['to_id'])]]></code>
<code><![CDATA[$this->webhookUrl]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullReference>
<code><![CDATA[addPendingWakeups]]></code>
<code><![CDATA[waitForInternalStart]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$updates['out']]]></code>
<code><![CDATA[$updates['out']]]></code>
</PossiblyUndefinedArrayOffset>
<PossiblyUndefinedVariable>
<code><![CDATA[$first]]></code>
<code><![CDATA[$timeout]]></code>
</PossiblyUndefinedVariable>
<RedundantCondition>
<code><![CDATA[\count($this->eventHandlerHandlers) !== 0 && \is_array($update)]]></code>
<code><![CDATA[\is_array($update)]]></code>
</RedundantCondition>
<RedundantConditionGivenDocblockType>
<code><![CDATA[$timeout !== null]]></code>
</RedundantConditionGivenDocblockType>
<TypeDoesNotContainType>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
<code><![CDATA[$update['_'] === 'updateNewScheduledMessage']]></code>
</TypeDoesNotContainType>
</file>
<file src="src/MTProtoTools/UpdatesState.php">
<MixedOperand>
<code><![CDATA[$update['pts']]]></code>
<code><![CDATA[$update['pts_count']]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$update['pts'] - ($this->pts + $update['pts_count'])]]></code>
</MixedReturnStatement>
</file>
<file src="src/Magic.php">
<MixedArrayAccess>
<code><![CDATA[$res['human_result']]]></code>
<code><![CDATA[$res['result']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$res]]></code>
<code><![CDATA[RPCErrorException::$descriptions]]></code>
<code><![CDATA[RPCErrorException::$errorMethodMap]]></code>
<code><![CDATA[self::$emojis]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$res['human_result']]]></code>
</MixedOperand>
<PossiblyNullArgument>
<code><![CDATA[end($backtrace)['file']]]></code>
</PossiblyNullArgument>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[end($backtrace)['file']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/MyTelegramOrgWrapper.php">
<MissingReturnType>
<code><![CDATA[completeLogin]]></code>
<code><![CDATA[createApp]]></code>
<code><![CDATA[getApp]]></code>
<code><![CDATA[hasApp]]></code>
</MissingReturnType>
<MixedArgumentTypeCoercion>
<code><![CDATA[$this->getHeaders('app')]]></code>
<code><![CDATA[$this->getHeaders('origin')]]></code>
<code><![CDATA[$this->getHeaders('origin')]]></code>
<code><![CDATA[$this->getHeaders('refer')]]></code>
<code><![CDATA[$this->getHeaders('refer')]]></code>
<code><![CDATA[$this->getHeaders('refer')]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$resulta['random_hash']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$resulta]]></code>
<code><![CDATA[$this->hash]]></code>
</MixedAssignment>
<PossiblyNullArgument>
<code><![CDATA[$this->settings]]></code>
</PossiblyNullArgument>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$value]]></code>
</PossiblyUndefinedArrayOffset>
<UninitializedProperty>
<code><![CDATA[$this->settings]]></code>
</UninitializedProperty>
</file>
<file src="src/Namespace/AbstractAPI.php">
<MixedAssignment>
<code><![CDATA[$args]]></code>
</MixedAssignment>
<PossiblyNullReference>
<code><![CDATA[methodCallAsyncRead]]></code>
</PossiblyNullReference>
<PropertyNotSetInConstructor>
<code><![CDATA[$wrapper]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Ogg.php">
<ArgumentTypeCoercion>
<code><![CDATA[$len]]></code>
</ArgumentTypeCoercion>
<InaccessibleProperty>
<code><![CDATA[$this->comments]]></code>
<code><![CDATA[$this->vendorString]]></code>
</InaccessibleProperty>
<InvalidPassByReference>
<code><![CDATA[FFI::addr($opus->new('char[1024]'))]]></code>
</InvalidPassByReference>
<MixedArgument>
<code><![CDATA[$content[$offset++]]]></code>
<code><![CDATA[$content[$offset++]]]></code>
<code><![CDATA[$content[$offset++]]]></code>
<code><![CDATA[$content[$offset++]]]></code>
<code><![CDATA[$header['channels']]]></code>
<code><![CDATA[$header['channels'] * ($header['bitsPerSample'] >> 3)]]></code>
<code><![CDATA[$header['sampleRate']]]></code>
<code><![CDATA[$headers['number_page_segments']]]></code>
<code><![CDATA[$len]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length + ($length % 2)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_BANDWIDTH_REQUEST, self::OPUS_BANDWIDTH_FULLBAND)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_BITRATE_REQUEST, 130*1000)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_COMPLEXITY_REQUEST, 10)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_INBAND_FEC_REQUEST, 1)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_PACKET_LOSS_PERC_REQUEST, 1)]]></code>
<code><![CDATA[$opus->opus_encoder_ctl($encoder, self::OPUS_SET_SIGNAL_REQUEST, self::OPUS_SIGNAL_MUSIC)]]></code>
<code><![CDATA[$opus->opus_get_version_string()]]></code>
<code><![CDATA[$sizeAccumulated]]></code>
<code><![CDATA[$vendor_string_length]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$comment_count]]></code>
<code><![CDATA[$encoder]]></code>
<code><![CDATA[$err]]></code>
<code><![CDATA[$granule]]></code>
<code><![CDATA[$granule_diff]]></code>
<code><![CDATA[$ignoredStreams[]]]></code>
<code><![CDATA[$len]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$sampleCount]]></code>
<code><![CDATA[$segment_size]]></code>
<code><![CDATA[$sizeAccumulated]]></code>
<code><![CDATA[$this->streamCount]]></code>
<code><![CDATA[$totalLength]]></code>
<code><![CDATA[$vendor_string_length]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$header['bitsPerSample']]]></code>
<code><![CDATA[$header['bitsPerSample']]]></code>
<code><![CDATA[$header['channels']]]></code>
<code><![CDATA[$header['sampleRate']]]></code>
<code><![CDATA[$headers['granule_position']]]></code>
<code><![CDATA[$headers['header_type_flag']]]></code>
<code><![CDATA[$headers['header_type_flag']]]></code>
<code><![CDATA[$headers['header_type_flag']]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$opus->opus_strerror($err)]]></code>
<code><![CDATA[$opus_head['channel_count']]]></code>
<code><![CDATA[$sampleCount]]></code>
<code><![CDATA[$segment_size]]></code>
<code><![CDATA[$this->streamCount]]></code>
</MixedOperand>
<MixedReturnTypeCoercion>
<code><![CDATA[\Generator<string>]]></code>
</MixedReturnTypeCoercion>
<PossiblyInvalidArgument>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$size]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidArrayOffset>
<code><![CDATA[$header['bitsPerSample']]]></code>
<code><![CDATA[$header['channels']]]></code>
<code><![CDATA[$header['sampleRate']]]></code>
</PossiblyInvalidArrayOffset>
<PossiblyInvalidPropertyAssignmentValue>
<code><![CDATA[$this->currentDuration += $frameDuration]]></code>
<code><![CDATA[$this->currentDuration += $totalDuration]]></code>
</PossiblyInvalidPropertyAssignmentValue>
<PossiblyNullArgument>
<code><![CDATA[$buf]]></code>
<code><![CDATA[$contents]]></code>
<code><![CDATA[$opus->type('char*')]]></code>
<code><![CDATA[$read(4)]]></code>
<code><![CDATA[$read(4)]]></code>
<code><![CDATA[($this->stream)($headers['number_page_segments'])]]></code>
<code><![CDATA[($this->stream)(23)]]></code>
</PossiblyNullArgument>
<PossiblyNullOperand>
<code><![CDATA[$piece]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedVariable>
<code><![CDATA[$cancel]]></code>
</PossiblyUndefinedVariable>
<PropertyNotSetInConstructor>
<code><![CDATA[$comments]]></code>
<code><![CDATA[$streamCount]]></code>
<code><![CDATA[$vendorString]]></code>
</PropertyNotSetInConstructor>
<RedundantCondition>
<code><![CDATA[$state === self::STATE_READ_COMMENT]]></code>
</RedundantCondition>
<ReferenceConstraintViolation>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
</ReferenceConstraintViolation>
<TooFewArguments>
<code><![CDATA[($this->stream)($headers['number_page_segments'])]]></code>
<code><![CDATA[($this->stream)($sizeAccumulated)]]></code>
<code><![CDATA[($this->stream)(23)]]></code>
<code><![CDATA[($this->stream)(4)]]></code>
</TooFewArguments>
<UndefinedPropertyFetch>
<code><![CDATA[$err->cdata]]></code>
</UndefinedPropertyFetch>
</file>
<file src="src/PTSException.php">
<MissingParamType>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MixedArgument>
</file>
<file src="src/PsrLogger.php">
<MissingParamType>
<code><![CDATA[$level]]></code>
<code><![CDATA[$message]]></code>
</MissingParamType>
<MixedArrayOffset>
<code><![CDATA[self::LEVEL_MAP[$level]]]></code>
</MixedArrayOffset>
</file>
<file src="src/RPCErrorException.php">
<MixedArrayAssignment>
<code><![CDATA[self::$errorMethodMap[$code][$method]]]></code>
<code><![CDATA[self::$errorMethodMap[$code][$method][$error]]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$description]]></code>
<code><![CDATA[$res]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$description]]></code>
<code><![CDATA[$description]]></code>
</MixedReturnStatement>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$level['file']]]></code>
<code><![CDATA[$level['line']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/RSA.php">
<MixedAssignment>
<code><![CDATA[$instance->e]]></code>
<code><![CDATA[$instance->n]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[toBytes]]></code>
<code><![CDATA[toBytes]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$TL->serializeObject(['type' => 'bytes'], $instance->n->toBytes(), 'key')]]></code>
</MixedOperand>
<PropertyNotSetInConstructor>
<code><![CDATA[$e]]></code>
<code><![CDATA[$fp]]></code>
<code><![CDATA[$n]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/SecretChats/AuthKeyHandler.php">
<MixedArgument>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$params['access_hash']]]></code>
<code><![CDATA[$params['access_hash']]]></code>
<code><![CDATA[$params['admin_id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['participant_id']]]></code>
<code><![CDATA[$this->getSecretChatController($chatId)->getMessage($randomId)['message']]]></code>
<code><![CDATA[$this->temp_requested_secret_chats[$params['id']]]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$chat['chat']['id']]]></code>
<code><![CDATA[$chat['chat_id']]]></code>
<code><![CDATA[$res['id']]]></code>
<code><![CDATA[$res['id']]]></code>
<code><![CDATA[$res['id']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->secretChats[$chat]]]></code>
<code><![CDATA[$this->secretChats[$params['id']]]]></code>
<code><![CDATA[$this->secretChats[$params['id']]]]></code>
<code><![CDATA[$this->secretChats[$params['id']]]]></code>
<code><![CDATA[$this->secretChats[\is_array($chat) ? $chat['chat_id'] : $chat]]]></code>
<code><![CDATA[$this->temp_requested_secret_chats[$params['id']]]]></code>
<code><![CDATA[$this->temp_requested_secret_chats[$params['id']]]]></code>
<code><![CDATA[$this->temp_requested_secret_chats[$params['id']]]]></code>
<code><![CDATA[$this->temp_requested_secret_chats[$res['id']]]]></code>
</MixedArrayOffset>
<MixedArrayTypeCoercion>
<code><![CDATA[$this->secretChats[$chat]]]></code>
<code><![CDATA[$this->secretChats[\is_array($chat) ? $chat['chat_id'] : $chat]]]></code>
</MixedArrayTypeCoercion>
<MixedAssignment>
<code><![CDATA[$chat]]></code>
<code><![CDATA[$chat]]></code>
<code><![CDATA[$chat]]></code>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$res]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[powMod]]></code>
<code><![CDATA[powMod]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$res['id']]]></code>
</MixedOperand>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->secretChats]]></code>
<code><![CDATA[$this->secretChats]]></code>
</MixedPropertyTypeCoercion>
<MoreSpecificReturnType>
<code><![CDATA[SecretMessage]]></code>
</MoreSpecificReturnType>
<PossiblyNullOperand>
<code><![CDATA[$user]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$user['user_id']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/SecretChats/SecretChatController.php">
<DocblockTypeContradiction>
<code><![CDATA[$result === null]]></code>
</DocblockTypeContradiction>
<MixedArgument>
<code><![CDATA[$action]]></code>
<code><![CDATA[$action]]></code>
<code><![CDATA[$action]]></code>
<code><![CDATA[$action]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message['message']['decrypted_message']['in_seq_no']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']['action']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['random_id']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['random_id']]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$msg[$seq]]]></code>
<code><![CDATA[$msg['method']]]></code>
<code><![CDATA[$request['seq']]]></code>
<code><![CDATA[$request['seq']]]></code>
<code><![CDATA[$request['seq']]]></code>
<code><![CDATA[$seq]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$action['_']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['layer']]]></code>
<code><![CDATA[$action['ttl_seconds']]]></code>
<code><![CDATA[$decryptedMessage['_']]]></code>
<code><![CDATA[$decryptedMessage['_']]]></code>
<code><![CDATA[$decryptedMessage['_']]]></code>
<code><![CDATA[$decryptedMessage['action']]]></code>
<code><![CDATA[$decryptedMessage['media']['_']]]></code>
<code><![CDATA[$message['message']['bytes']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['_']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['in_seq_no']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['layer']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']['_']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']['action']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']['action']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['message']['action']['_']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['out_seq_no']]]></code>
<code><![CDATA[$message['message']['decrypted_message']['random_id']]]></code>
<code><![CDATA[$msg['message']['chat_id']]]></code>
<code><![CDATA[$msg['message']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['_']]]></code>
<code><![CDATA[$msg['message']['message']]]></code>
<code><![CDATA[$msg['message']['message']]]></code>
<code><![CDATA[$update['message']['chat_id']]]></code>
<code><![CDATA[$update['message']['date']]]></code>
<code><![CDATA[$update['message']['date']]]></code>
<code><![CDATA[$update['message']['decrypted_message']]]></code>
<code><![CDATA[$update['message']['decrypted_message']]]></code>
<code><![CDATA[$update['message']['file']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$decryptedMessage['chat_id']]]></code>
<code><![CDATA[$decryptedMessage['date']]]></code>
<code><![CDATA[$decryptedMessage['media']['date']]]></code>
<code><![CDATA[$decryptedMessage['media']['file']]]></code>
<code><![CDATA[$decryptedMessage['media']['ttl_seconds']]]></code>
<code><![CDATA[$decryptedMessage['out']]]></code>
<code><![CDATA[$message['message']]]></code>
<code><![CDATA[$message['message']['bytes']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['random_id']]]></code>
<code><![CDATA[$msg['message']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['chat_id']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['file']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['ttl_seconds']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['out']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$msg[$seq]]]></code>
<code><![CDATA[$this->outgoing[$request['seq']]]]></code>
<code><![CDATA[$this->outgoing[$request['seq']]]]></code>
<code><![CDATA[$this->outgoing[$seq]]]></code>
<code><![CDATA[$this->randomIdMap[$message['message']['decrypted_message']['random_id']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$action]]></code>
<code><![CDATA[$action['end_seq_no']]]></code>
<code><![CDATA[$action['end_seq_no']]]></code>
<code><![CDATA[$action['start_seq_no']]]></code>
<code><![CDATA[$action['start_seq_no']]]></code>
<code><![CDATA[$decryptedMessage]]></code>
<code><![CDATA[$decryptedMessage['chat_id']]]></code>
<code><![CDATA[$decryptedMessage['date']]]></code>
<code><![CDATA[$decryptedMessage['media']['date']]]></code>
<code><![CDATA[$decryptedMessage['media']['file']]]></code>
<code><![CDATA[$decryptedMessage['media']['ttl_seconds']]]></code>
<code><![CDATA[$deserialized]]></code>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$layer]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message['message']['decrypted_message']]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$message_data_length]]></code>
<code><![CDATA[$msg['message']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['chat_id']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['date']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['file']]]></code>
<code><![CDATA[$msg['message']['decrypted_message']['media']['ttl_seconds']]]></code>
<code><![CDATA[$msg['message']['file']]]></code>
<code><![CDATA[$seq]]></code>
<code><![CDATA[$seq]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$this->gapEnd]]></code>
<code><![CDATA[$this->gapQueueSeq]]></code>
<code><![CDATA[$this->gapQueueSeq]]></code>
<code><![CDATA[$this->rekeyExchangeId]]></code>
<code><![CDATA[$this->remoteLayer]]></code>
<code><![CDATA[$this->remoteLayer]]></code>
<code><![CDATA[$this->ttl]]></code>
<code><![CDATA[$value]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[powMod]]></code>
<code><![CDATA[powMod]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$action['end_seq_no']]]></code>
<code><![CDATA[$action['end_seq_no']]]></code>
<code><![CDATA[$action['start_seq_no']]]></code>
<code><![CDATA[$action['start_seq_no']]]></code>
<code><![CDATA[$seq]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$seqno]]></code>
<code><![CDATA[$this->gapEnd]]></code>
</MixedOperand>
<PropertyNotSetInConstructor>
<code><![CDATA[$incoming]]></code>
<code><![CDATA[$outgoing]]></code>
<code><![CDATA[$randomIdMap]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/Serialization.php">
<InvalidArgument>
<code><![CDATA['data']]></code>
</InvalidArgument>
<InvalidCast>
<code><![CDATA[$prefix]]></code>
</InvalidCast>
<InvalidNullableReturnType>
<code><![CDATA[array{0: (ChannelledSocket|APIWrapper|Throwable|null|0), 1: (callable|null)}]]></code>
</InvalidNullableReturnType>
<MixedArgument>
<code><![CDATA[$tableName]]></code>
<code><![CDATA[$warningId]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$cancelIpc->getFuture()]]></code>
<code><![CDATA[$cancelIpc->getFuture()]]></code>
<code><![CDATA[$cancelIpc->getFuture()]]></code>
</MixedArgumentTypeCoercion>
<MixedAssignment>
<code><![CDATA[$res]]></code>
<code><![CDATA[$settings]]></code>
<code><![CDATA[$tableName]]></code>
<code><![CDATA[$warningId]]></code>
</MixedAssignment>
<NullableReturnStatement>
<code><![CDATA[$ipcSocket]]></code>
<code><![CDATA[$ipcSocket]]></code>
</NullableReturnStatement>
<RedundantConditionGivenDocblockType>
<code><![CDATA[!$unserialized]]></code>
<code><![CDATA[!$unserialized]]></code>
</RedundantConditionGivenDocblockType>
<UndefinedVariable>
<code><![CDATA[$warningId]]></code>
</UndefinedVariable>
</file>
<file src="src/SessionPaths.php">
<InvalidPropertyAssignmentValue>
<code><![CDATA[$this->lightState ??= $this->unserialize($this->lightStatePath)]]></code>
</InvalidPropertyAssignmentValue>
<InvalidReturnStatement>
<code><![CDATA[$this->unserialize($this->ipcStatePath)]]></code>
</InvalidReturnStatement>
<InvalidReturnType>
<code><![CDATA[?IpcState]]></code>
</InvalidReturnType>
<MixedAssignment>
<code><![CDATA[$unserialized]]></code>
</MixedAssignment>
<MixedReturnStatement>
<code><![CDATA[$unserialized]]></code>
</MixedReturnStatement>
<PossiblyNullArgument>
<code><![CDATA[$file->read(null, 1)]]></code>
<code><![CDATA[$file->read(null, 1)]]></code>
<code><![CDATA[$php[0]]]></code>
<code><![CDATA[$php[1]]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$php[0]]]></code>
<code><![CDATA[$php[1]]]></code>
</PossiblyNullArrayAccess>
</file>
<file src="src/Settings/Database/DriverDatabaseAbstract.php">
<PropertyTypeCoercion>
<code><![CDATA[\is_int($cacheTtl) ? $cacheTtl : strtotime($cacheTtl) - time()]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/Settings/Logger.php">
<PossiblyInvalidArgument>
<code><![CDATA[$this->extra]]></code>
</PossiblyInvalidArgument>
</file>
<file src="src/Settings/TLSchema.php">
<MixedArgument>
<code><![CDATA[parent::__sleep()]]></code>
</MixedArgument>
</file>
<file src="src/SettingsAbstract.php">
<MixedArgument>
<code><![CDATA[$prop]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$prop]]></code>
<code><![CDATA[$result['set'.ucfirst(Tools::toCamelCase($prop))]]]></code>
</MixedAssignment>
</file>
<file src="src/StrTools.php">
<ArgumentTypeCoercion>
<code><![CDATA[$length]]></code>
</ArgumentTypeCoercion>
<InvalidArgument>
<code><![CDATA[$entities]]></code>
<code><![CDATA[$entities]]></code>
</InvalidArgument>
<PossiblyInvalidMethodCall>
<code><![CDATA[toBotAPI]]></code>
</PossiblyInvalidMethodCall>
</file>
<file src="src/Stream/ADNLTransport/ADNLStream.php">
<MissingPropertyType>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[checkReadHash]]></code>
<code><![CDATA[checkWriteHash]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
<code><![CDATA[startReadHash]]></code>
<code><![CDATA[startWriteHash]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$length]]></code>
<code><![CDATA[unpack('V', $buffer->bufferRead(4))[1]]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Stream/Common/BufferedRawStream.php">
<MissingPropertyType>
<code><![CDATA[$append]]></code>
<code><![CDATA[$append_after]]></code>
<code><![CDATA[$memory_stream]]></code>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
</MixedArgument>
<MixedMethodCall>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[read]]></code>
<code><![CDATA[write]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$this->append]]></code>
<code><![CDATA[$this->append_after]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
<code><![CDATA[$this->stream->read($cancellation)]]></code>
</MixedReturnStatement>
</file>
<file src="src/Stream/Common/CtrStream.php">
<MissingPropertyType>
<code><![CDATA[$append]]></code>
<code><![CDATA[$append_after]]></code>
<code><![CDATA[$decrypt]]></code>
<code><![CDATA[$encrypt]]></code>
<code><![CDATA[$extra]]></code>
<code><![CDATA[$read_buffer]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$write_buffer]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$this->extra['decrypt']['iv']]]></code>
<code><![CDATA[$this->extra['decrypt']['key']]]></code>
<code><![CDATA[$this->extra['encrypt']['iv']]]></code>
<code><![CDATA[$this->extra['encrypt']['key']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$this->extra['decrypt']]]></code>
<code><![CDATA[$this->extra['decrypt']]]></code>
<code><![CDATA[$this->extra['decrypt']['iv']]]></code>
<code><![CDATA[$this->extra['decrypt']['key']]]></code>
<code><![CDATA[$this->extra['encrypt']]]></code>
<code><![CDATA[$this->extra['encrypt']]]></code>
<code><![CDATA[$this->extra['encrypt']['iv']]]></code>
<code><![CDATA[$this->extra['encrypt']['key']]]></code>
</MixedArrayAccess>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[encrypt]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$this->append]]></code>
<code><![CDATA[$this->append_after]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$this->decrypt]]></code>
<code><![CDATA[$this->encrypt]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
<code><![CDATA[@$this->decrypt->encrypt($this->read_buffer->bufferRead($length, $cancellation))]]></code>
</MixedReturnStatement>
</file>
<file src="src/Stream/Common/FileBufferedStream.php">
<MissingConstructor>
<code><![CDATA[$append]]></code>
<code><![CDATA[$append_after]]></code>
</MissingConstructor>
<PossiblyNullReference>
<code><![CDATA[read]]></code>
<code><![CDATA[write]]></code>
</PossiblyNullReference>
</file>
<file src="src/Stream/Common/HashedBufferedStream.php">
<MissingPropertyType>
<code><![CDATA[$hash_name]]></code>
<code><![CDATA[$read_buffer]]></code>
<code><![CDATA[$read_check_after]]></code>
<code><![CDATA[$read_check_pos]]></code>
<code><![CDATA[$read_hash]]></code>
<code><![CDATA[$rev]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$write_buffer]]></code>
<code><![CDATA[$write_check_after]]></code>
<code><![CDATA[$write_check_pos]]></code>
<code><![CDATA[$write_hash]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$this->hash_name]]></code>
<code><![CDATA[$this->hash_name]]></code>
<code><![CDATA[$this->read_hash]]></code>
<code><![CDATA[$this->read_hash]]></code>
<code><![CDATA[$this->read_hash]]></code>
<code><![CDATA[$this->write_hash]]></code>
<code><![CDATA[$this->write_hash]]></code>
<code><![CDATA[$this->write_hash]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$this->read_check_pos]]></code>
<code><![CDATA[$this->read_check_pos]]></code>
<code><![CDATA[$this->read_check_pos]]></code>
<code><![CDATA[$this->write_check_pos]]></code>
<code><![CDATA[$this->write_check_pos]]></code>
<code><![CDATA[$this->write_check_pos]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$this->read_buffer->bufferRead($length, $cancellation)]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
</file>
<file src="src/Stream/Common/SimpleBufferedRawStream.php">
<MixedArgument>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
<code><![CDATA[$this->memory_stream]]></code>
</MixedArgument>
<MixedReturnStatement>
<code><![CDATA[$this->stream]]></code>
</MixedReturnStatement>
</file>
<file src="src/Stream/Common/UdpBufferedStream.php">
<DocblockTypeContradiction>
<code><![CDATA[\strlen($header) === '']]></code>
</DocblockTypeContradiction>
<PossiblyNullReference>
<code><![CDATA[close]]></code>
</PossiblyNullReference>
</file>
<file src="src/Stream/ConnectionContext.php">
<LessSpecificReturnStatement>
<code><![CDATA[$obj]]></code>
</LessSpecificReturnStatement>
<MissingConstructor>
<code><![CDATA[$socketContext]]></code>
<code><![CDATA[$uri]]></code>
</MissingConstructor>
<MissingParamType>
<code><![CDATA[$extra]]></code>
</MissingParamType>
<MixedArrayAssignment>
<code><![CDATA[$extra['_']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$extra]]></code>
<code><![CDATA[$extra]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[connect]]></code>
<code><![CDATA[new $clazz()]]></code>
</MixedMethodCall>
<MixedReturnStatement>
<code><![CDATA[$extra]]></code>
</MixedReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[StreamInterface]]></code>
</MoreSpecificReturnType>
</file>
<file src="src/Stream/MTProtoTransport/AbridgedStream.php">
<MissingPropertyType>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$c]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$c]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$buffer->bufferRead(3)]]></code>
<code><![CDATA[$length]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Stream/MTProtoTransport/FullStream.php">
<MissingPropertyType>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$out_seq_no]]></code>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$read_length]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[checkReadHash]]></code>
<code><![CDATA[checkWriteHash]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
<code><![CDATA[startReadHash]]></code>
<code><![CDATA[startWriteHash]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$read_length]]></code>
<code><![CDATA[$read_length]]></code>
<code><![CDATA[$this->in_seq_no]]></code>
<code><![CDATA[$this->out_seq_no]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Stream/MTProtoTransport/HttpStream.php">
<MissingConstructor>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$uri]]></code>
</MissingConstructor>
<MissingPropertyType>
<code><![CDATA[$code]]></code>
<code><![CDATA[$ctx]]></code>
<code><![CDATA[$header]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$this->ctx]]></code>
<code><![CDATA[$this->ctx]]></code>
</MixedArgument>
<MixedOperand>
<code><![CDATA[$extra['password']]]></code>
<code><![CDATA[$extra['user']]]></code>
<code><![CDATA[$this->header]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$this->code]]></code>
</MixedReturnStatement>
<PossiblyNullOperand>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$piece]]></code>
<code><![CDATA[$this->uri->getPort()]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$code]]></code>
<code><![CDATA[$current_header[1]]]></code>
<code><![CDATA[$description]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyTypeCoercion>
<code><![CDATA[$ctx->getStream($header)]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/Stream/MTProtoTransport/IntermediatePaddedStream.php">
<MissingPropertyType>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$length]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</MixedMethodCall>
<MixedReturnStatement>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Stream/MTProtoTransport/IntermediateStream.php">
<MissingPropertyType>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
</MixedArgument>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$length]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
<code><![CDATA[disconnect]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getSocket]]></code>
<code><![CDATA[getWriteBuffer]]></code>
</MixedMethodCall>
<MixedReturnStatement>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$this->stream]]></code>
<code><![CDATA[$this->stream->getSocket()]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
</file>
<file src="src/Stream/MTProtoTransport/ObfuscatedStream.php">
<MissingPropertyType>
<code><![CDATA[$extra]]></code>
<code><![CDATA[$stream]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$extra['secret']]]></code>
<code><![CDATA[$extra['secret']]]></code>
<code><![CDATA[$extra['secret']]]></code>
<code><![CDATA[$extra['secret']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
<code><![CDATA[$this->extra['secret']]]></code>
<code><![CDATA[$this->extra['secret']]]></code>
</MixedArrayAccess>
<MixedOperand>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
<code><![CDATA[$this->extra['secret']]]></code>
<code><![CDATA[$this->extra['secret']]]></code>
</MixedOperand>
</file>
<file src="src/Stream/Proxy/HttpProxy.php">
<MissingConstructor>
<code><![CDATA[$stream]]></code>
</MissingConstructor>
<MissingPropertyType>
<code><![CDATA[$extra]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$read]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$piece]]></code>
<code><![CDATA[$read]]></code>
<code><![CDATA[$read]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$piece]]></code>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['password']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
<code><![CDATA[$this->extra['username']]]></code>
</MixedOperand>
<PossiblyNullOperand>
<code><![CDATA[$port]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$code]]></code>
<code><![CDATA[$current_header[1]]]></code>
<code><![CDATA[$description]]></code>
</PossiblyUndefinedArrayOffset>
<PossiblyUndefinedVariable>
<code><![CDATA[$l]]></code>
</PossiblyUndefinedVariable>
<PropertyTypeCoercion>
<code><![CDATA[$ctx->getStream()]]></code>
</PropertyTypeCoercion>
<UndefinedInterfaceMethod>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getWriteBuffer]]></code>
<code><![CDATA[write]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="src/Stream/Proxy/SocksProxy.php">
<InvalidArrayOffset>
<code><![CDATA[self::REPS[$rep]]]></code>
</InvalidArrayOffset>
<MissingConstructor>
<code><![CDATA[$stream]]></code>
</MissingConstructor>
<MissingPropertyType>
<code><![CDATA[$extra]]></code>
</MissingPropertyType>
<MixedArgument>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(1)]]></code>
<code><![CDATA[$buffer->bufferRead(16)]]></code>
<code><![CDATA[$buffer->bufferRead(2)]]></code>
<code><![CDATA[$buffer->bufferRead(4)]]></code>
<code><![CDATA[$this->extra['password']]]></code>
<code><![CDATA[$this->extra['username']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['password']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
<code><![CDATA[$this->extra['username']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$buffer]]></code>
<code><![CDATA[$ip]]></code>
<code><![CDATA[$port]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferRead]]></code>
<code><![CDATA[bufferWrite]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$ip]]></code>
<code><![CDATA[$port]]></code>
<code><![CDATA[$this->extra['address']]]></code>
<code><![CDATA[$this->extra['password']]]></code>
<code><![CDATA[$this->extra['port']]]></code>
<code><![CDATA[$this->extra['username']]]></code>
</MixedOperand>
<PossiblyUndefinedVariable>
<code><![CDATA[$ip]]></code>
</PossiblyUndefinedVariable>
<PropertyTypeCoercion>
<code><![CDATA[$ctx->getStream(\chr(5).\chr(\strlen($methods)).$methods)]]></code>
</PropertyTypeCoercion>
<UndefinedInterfaceMethod>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getReadBuffer]]></code>
<code><![CDATA[getWriteBuffer]]></code>
<code><![CDATA[write]]></code>
<code><![CDATA[write]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="src/Stream/Transport/DefaultStream.php">
<InvalidNullableReturnType>
<code><![CDATA[Socket]]></code>
</InvalidNullableReturnType>
<NullableReturnStatement>
<code><![CDATA[$this->stream]]></code>
</NullableReturnStatement>
<PossiblyNullReference>
<code><![CDATA[setupTls]]></code>
</PossiblyNullReference>
</file>
<file src="src/Stream/Transport/PremadeStream.php">
<LessSpecificReturnStatement>
<code><![CDATA[$this->stream]]></code>
</LessSpecificReturnStatement>
<MissingReturnType>
<code><![CDATA[getStream]]></code>
</MissingReturnType>
<MixedAssignment>
<code><![CDATA[$this->stream]]></code>
</MixedAssignment>
<MoreSpecificReturnType>
<code><![CDATA[Socket]]></code>
</MoreSpecificReturnType>
<NullableReturnStatement>
<code><![CDATA[$this->stream]]></code>
</NullableReturnStatement>
<PossiblyNullReference>
<code><![CDATA[write]]></code>
</PossiblyNullReference>
<UndefinedInterfaceMethod>
<code><![CDATA[write]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="src/Stream/Transport/WsStream.php">
<MissingConstructor>
<code><![CDATA[$connector]]></code>
<code><![CDATA[$stream]]></code>
</MissingConstructor>
<MixedReturnStatement>
<code><![CDATA[$data]]></code>
</MixedReturnStatement>
<PossiblyUndefinedVariable>
<code><![CDATA[$data]]></code>
</PossiblyUndefinedVariable>
<UndefinedClass>
<code><![CDATA[ClosedException]]></code>
</UndefinedClass>
</file>
<file src="src/StreamDuplicator.php">
<MissingTemplateParam>
<code><![CDATA[IteratorAggregate]]></code>
</MissingTemplateParam>
<PropertyTypeCoercion>
<code><![CDATA[$outputs]]></code>
</PropertyTypeCoercion>
</file>
<file src="src/TL/Conversion/BotAPI.php">
<MissingParamType>
<code><![CDATA[$markup]]></code>
</MissingParamType>
<MissingReturnType>
<code><![CDATA[parseReplyMarkup]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$args['message']]]></code>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$arguments['entities'] ?? []]]></code>
<code><![CDATA[$arguments['entities'] ?? []]]></code>
<code><![CDATA[$arguments['parse_mode']]]></code>
<code><![CDATA[$arguments['parse_mode']]]></code>
<code><![CDATA[$arguments['parse_mode']['_']]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$data['access_hash']]]></code>
<code><![CDATA[$data['dc_id']]]></code>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['dc_id']]]></code>
<code><![CDATA[$data['document']['id']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
<code><![CDATA[$data['document']['thumbs']]]></code>
<code><![CDATA[$data['document']['thumbs']]]></code>
<code><![CDATA[$data['entities']]]></code>
<code><![CDATA[$data['id']]]></code>
<code><![CDATA[$data['media']]]></code>
<code><![CDATA[$data['media']]]></code>
<code><![CDATA[$element]]></code>
<code><![CDATA[$entity['url']]]></code>
<code><![CDATA[$markup['inline_keyboard']]]></code>
<code><![CDATA[$markup['keyboard']]]></code>
<code><![CDATA[$max_length]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$args['entities'][$k]]]></code>
<code><![CDATA[$attribute['_']]]></code>
<code><![CDATA[$attribute['alt']]]></code>
<code><![CDATA[$attribute['duration']]]></code>
<code><![CDATA[$attribute['duration']]]></code>
<code><![CDATA[$attribute['file_name']]]></code>
<code><![CDATA[$attribute['h']]]></code>
<code><![CDATA[$attribute['h']]]></code>
<code><![CDATA[$attribute['mask']]]></code>
<code><![CDATA[$attribute['mask_coords']]]></code>
<code><![CDATA[$attribute['performer']]]></code>
<code><![CDATA[$attribute['round_message']]]></code>
<code><![CDATA[$attribute['stickerset']]]></code>
<code><![CDATA[$attribute['title']]]></code>
<code><![CDATA[$attribute['voice']]]></code>
<code><![CDATA[$attribute['w']]]></code>
<code><![CDATA[$attribute['w']]]></code>
<code><![CDATA[$attribute['waveform']]]></code>
<code><![CDATA[$button['allow_bot_chats']]]></code>
<code><![CDATA[$button['allow_channel_chats']]]></code>
<code><![CDATA[$button['allow_group_chats']]]></code>
<code><![CDATA[$button['allow_user_chats']]]></code>
<code><![CDATA[$button['bot_username']]]></code>
<code><![CDATA[$button['forward_text']]]></code>
<code><![CDATA[$button['query']]]></code>
<code><![CDATA[$button['request_write_access']]]></code>
<code><![CDATA[$button['text']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$button['url']]]></code>
<code><![CDATA[$button['web_app']['url']]]></code>
<code><![CDATA[$data['access_hash']]]></code>
<code><![CDATA[$data['date']]]></code>
<code><![CDATA[$data['dc_id']]]></code>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['attributes']]]></code>
<code><![CDATA[$data['document']['dc_id']]]></code>
<code><![CDATA[$data['document']['file_reference']]]></code>
<code><![CDATA[$data['document']['id']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
<code><![CDATA[$data['document']['size']]]></code>
<code><![CDATA[$data['fwd_from']['channel_post']]]></code>
<code><![CDATA[$data['fwd_from']['date']]]></code>
<code><![CDATA[$data['fwd_from']['from_id']]]></code>
<code><![CDATA[$data['id']]]></code>
<code><![CDATA[$data['id']]]></code>
<code><![CDATA[$data['media']['_']]]></code>
<code><![CDATA[$data['message']]]></code>
<code><![CDATA[$data['peer_id']]]></code>
<code><![CDATA[$data['photo']['sizes']]]></code>
<code><![CDATA[$data['post']]]></code>
<code><![CDATA[$data['silent']]]></code>
<code><![CDATA[$data['size']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['url']]]></code>
<code><![CDATA[$photo['_']]]></code>
<code><![CDATA[end($data['document']['thumbs'])['_']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$newentity['length']]]></code>
<code><![CDATA[$newentity['offset']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$res['photo'][$key]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$arguments[$mtproto]]]></code>
<code><![CDATA[$arguments['reply_markup']]]></code>
<code><![CDATA[$attribute]]></code>
<code><![CDATA[$audio]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$element]]></code>
<code><![CDATA[$entity]]></code>
<code><![CDATA[$entity]]></code>
<code><![CDATA[$entity]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$markup['resize']]]></code>
<code><![CDATA[$markup['single_use']]]></code>
<code><![CDATA[$max_length]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$newd['date']]]></code>
<code><![CDATA[$newd['edit_date']]]></code>
<code><![CDATA[$newd['forward_date']]]></code>
<code><![CDATA[$newd['forward_from_message_id']]]></code>
<code><![CDATA[$newd['message_id']]]></code>
<code><![CDATA[$newd['post']]]></code>
<code><![CDATA[$newd['silent']]]></code>
<code><![CDATA[$newd['text']]]></code>
<code><![CDATA[$newd['views']]]></code>
<code><![CDATA[$newentity]]></code>
<code><![CDATA[$newentity['length']]]></code>
<code><![CDATA[$newentity['offset']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['bot']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['data']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['fwd_text']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['query']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['query']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['request_write_access']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['text']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['url']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['url']]]></code>
<code><![CDATA[$newrows[$key]['buttons'][$button_key]['url']]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$photo]]></code>
<code><![CDATA[$res['caption']]]></code>
<code><![CDATA[$res['duration']]]></code>
<code><![CDATA[$res['duration']]]></code>
<code><![CDATA[$res['emoji']]]></code>
<code><![CDATA[$res['file_name']]]></code>
<code><![CDATA[$res['file_name']]]></code>
<code><![CDATA[$res['file_size']]]></code>
<code><![CDATA[$res['height']]]></code>
<code><![CDATA[$res['height']]]></code>
<code><![CDATA[$res['mask']]]></code>
<code><![CDATA[$res['mask_coords']]]></code>
<code><![CDATA[$res['mime_type']]]></code>
<code><![CDATA[$res['performer']]]></code>
<code><![CDATA[$res['sticker_set']]]></code>
<code><![CDATA[$res['title']]]></code>
<code><![CDATA[$res['waveform']]]></code>
<code><![CDATA[$res['width']]]></code>
<code><![CDATA[$res['width']]]></code>
<code><![CDATA[$row]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$audio['performer']]]></code>
<code><![CDATA[$data['document']['id']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['length']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$entity['offset']]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$offset]]></code>
<code><![CDATA[$res['file_name']]]></code>
<code><![CDATA[$res['file_name']]]></code>
</MixedOperand>
<MixedStringOffsetAssignment>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
</MixedStringOffsetAssignment>
<MoreSpecificReturnType>
<code><![CDATA[array<int|int, array{_: string, buttons: array<int|int, array{_: string, text: mixed, same_peer?: bool, query?: mixed, data?: mixed, url?: mixed}>}>]]></code>
</MoreSpecificReturnType>
<PossiblyInvalidArgument>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$args['entities']]]></code>
<code><![CDATA[$arguments['parse_mode']]]></code>
<code><![CDATA[$arguments['parse_mode']]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidArrayOffset>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
<code><![CDATA[$multiple_args[$i]['entities'][]]]></code>
</PossiblyInvalidArrayOffset>
<PossiblyInvalidIterator>
<code><![CDATA[$args['entities']]]></code>
</PossiblyInvalidIterator>
<PossiblyNullArgument>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['dc_id']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['access_hash']]]></code>
<code><![CDATA[$data['document']['attributes']]]></code>
<code><![CDATA[$data['document']['dc_id']]]></code>
<code><![CDATA[$data['document']['file_reference']]]></code>
<code><![CDATA[$data['document']['id']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
<code><![CDATA[$data['document']['mime_type']]]></code>
<code><![CDATA[$data['document']['size']]]></code>
<code><![CDATA[$data['photo']['sizes']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullIterator>
<code><![CDATA[$data['document']['attributes']]]></code>
<code><![CDATA[$data['photo']['sizes']]]></code>
</PossiblyNullIterator>
<PossiblyNullReference>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['document']]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$arguments[$key]]]></code>
<code><![CDATA[$data['document']]]></code>
<code><![CDATA[$data['photo']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/TL/Conversion/BotAPIFiles.php">
<MissingParamType>
<code><![CDATA[$photo]]></code>
<code><![CDATA[$photoSize]]></code>
<code><![CDATA[$thumbnail]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$photoSize['location']['local_id'] ?? null]]></code>
<code><![CDATA[$photoSize['location']['volume_id'] ?? null]]></code>
<code><![CDATA[$photoSize['sizes']]]></code>
<code><![CDATA[$photoSize['type']]]></code>
<code><![CDATA[$photo['access_hash'] ?? 0]]></code>
<code><![CDATA[$photo['dc_id'] ?? 0]]></code>
<code><![CDATA[$photo['id'] ?? 0]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$photoSize['bytes']]]></code>
<code><![CDATA[$photoSize['h']]]></code>
<code><![CDATA[$photoSize['location']]]></code>
<code><![CDATA[$photoSize['location']]]></code>
<code><![CDATA[$photoSize['location']]]></code>
<code><![CDATA[$photoSize['location']]]></code>
<code><![CDATA[$photoSize['location']['local_id']]]></code>
<code><![CDATA[$photoSize['location']['local_id']]]></code>
<code><![CDATA[$photoSize['location']['volume_id']]]></code>
<code><![CDATA[$photoSize['location']['volume_id']]]></code>
<code><![CDATA[$photoSize['size']]]></code>
<code><![CDATA[$photoSize['sizes']]]></code>
<code><![CDATA[$photoSize['type']]]></code>
<code><![CDATA[$photoSize['w']]]></code>
<code><![CDATA[$photo['_']]]></code>
<code><![CDATA[$photo['_']]]></code>
<code><![CDATA[$photo['access_hash']]]></code>
<code><![CDATA[$photo['dc_id']]]></code>
<code><![CDATA[$photo['file_reference']]]></code>
<code><![CDATA[$photo['file_reference']]]></code>
<code><![CDATA[$photo['id']]]></code>
<code><![CDATA[$photo['id']]]></code>
</MixedArrayAccess>
<MixedOperand>
<code><![CDATA[$photoSize['location']['local_id']]]></code>
<code><![CDATA[$photoSize['location']['volume_id']]]></code>
<code><![CDATA[$photo['id']]]></code>
</MixedOperand>
<PossiblyNullOperand>
<code><![CDATA[$fileId->id]]></code>
</PossiblyNullOperand>
</file>
<file src="src/TL/Conversion/Exception.php">
<MissingParamType>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MixedArgument>
</file>
<file src="src/TL/Conversion/TD.php">
<MixedArgument>
<code><![CDATA[$params[$td]]]></code>
<code><![CDATA[$params['ID']]]></code>
<code><![CDATA[$params['fwd_from']]]></code>
<code><![CDATA[$value]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$params[$mtproto[0]][$mtproto[1]]]]></code>
<code><![CDATA[$params[$td]['_']]]></code>
<code><![CDATA[$params[$td]['disable_web_page_preview']]]></code>
<code><![CDATA[$params['fwd_from']['channel_post']]]></code>
<code><![CDATA[$params['fwd_from']['date']]]></code>
<code><![CDATA[$params['fwd_from']['from_id']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$params[$td]['_']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[self::TD_PARAMS_CONVERSION[$params['_']]]]></code>
<code><![CDATA[self::TD_REVERSE[$params['_']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$newparams[$mtproto[0]]]]></code>
<code><![CDATA[$newparams[$td]]]></code>
<code><![CDATA[$newparams[$td]]]></code>
<code><![CDATA[$newparams[$td]]]></code>
<code><![CDATA[$newparams[$td]]]></code>
<code><![CDATA[$newparams[$td]]]></code>
<code><![CDATA[$newparams[$td]['channel_post']]]></code>
<code><![CDATA[$newparams[$td]['date']]]></code>
<code><![CDATA[$newparams[$td]['entities']]]></code>
<code><![CDATA[$newparams['no_webpage']]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$newparams['ttl']]]></code>
</MixedOperand>
<PossiblyInvalidArgument>
<code><![CDATA[$params['ID']]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullOperand>
<code><![CDATA[$newparams['ttl']]]></code>
</PossiblyNullOperand>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$newparams['ttl']]]></code>
<code><![CDATA[$params['message']]]></code>
<code><![CDATA[$params['out']]]></code>
<code><![CDATA[$params['out']]]></code>
<code><![CDATA[$params['out']]]></code>
</PossiblyUndefinedArrayOffset>
</file>
<file src="src/TL/Exception.php">
<MissingParamType>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$file]]></code>
<code><![CDATA[$message]]></code>
</MixedArgument>
</file>
<file src="src/TL/PrettyException.php">
<MixedArgument>
<code><![CDATA[$frame['file']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$frame['args']]]></code>
<code><![CDATA[$frame['args'][2]]]></code>
<code><![CDATA[$frame['args'][2]]]></code>
<code><![CDATA[$frame['args'][2]]]></code>
<code><![CDATA[$frame['file']]]></code>
<code><![CDATA[$frame['line']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$frame]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$frame['args'][2]]]></code>
<code><![CDATA[$frame['args'][2]]]></code>
<code><![CDATA[$frame['function']]]></code>
<code><![CDATA[$frame['line']]]></code>
</MixedOperand>
</file>
<file src="src/TL/TL.php">
<DocblockTypeContradiction>
<code><![CDATA[\is_resource($stream)]]></code>
<code><![CDATA[\is_resource($stream)]]></code>
</DocblockTypeContradiction>
<MissingClosureParamType>
<code><![CDATA[$arg]]></code>
</MissingClosureParamType>
<MissingReturnType>
<code><![CDATA[deserialize]]></code>
<code><![CDATA[serializeMethod]]></code>
<code><![CDATA[serializeObject]]></code>
<code><![CDATA[serializeParams]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$TL_dict['constructors'][$key]['id']]]></code>
<code><![CDATA[$TL_dict['methods'][$key]['id']]]></code>
<code><![CDATA[$arg]]></code>
<code><![CDATA[$arguments]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['id']]]></code>
<code><![CDATA[$arguments['id']]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$current_argument]]></code>
<code><![CDATA[$current_argument]]></code>
<code><![CDATA[$elem]]></code>
<code><![CDATA[$elem]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$long_len]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object->toBytes()]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$object['bytes']]]></code>
<code><![CDATA[$object['bytes']]]></code>
<code><![CDATA[$pair]]></code>
<code><![CDATA[$predicate]]></code>
<code><![CDATA[$tl]]></code>
<code><![CDATA[$tl['layer'] ?? -1]]></code>
<code><![CDATA[$tl['layer'] ?? -1]]></code>
<code><![CDATA[$type]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]></code>
<code><![CDATA[$type['subtype']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value['_']]]></code>
<code><![CDATA[$value['_']]]></code>
<code><![CDATA[$value['_']]]></code>
<code><![CDATA[$x['_']]]></code>
<code><![CDATA[$x['data']]]></code>
<code><![CDATA[$x['id']]]></code>
<code><![CDATA[$x['result']]]></code>
<code><![CDATA[-$long_len]]></code>
<code><![CDATA[\is_int($object) ? (float) $object : $object]]></code>
</MixedArgument>
<MixedArgumentTypeCoercion>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$k]]></code>
<code><![CDATA[$k]]></code>
<code><![CDATA[$scheme_type]]></code>
<code><![CDATA[$scheme_type]]></code>
</MixedArgumentTypeCoercion>
<MixedArrayAccess>
<code><![CDATA[$TL_dict['constructors']]]></code>
<code><![CDATA[$TL_dict['constructors']]]></code>
<code><![CDATA[$TL_dict['constructors']]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]['id']]]></code>
<code><![CDATA[$TL_dict['methods']]]></code>
<code><![CDATA[$TL_dict['methods']]]></code>
<code><![CDATA[$TL_dict['methods']]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]['id']]]></code>
<code><![CDATA[$arg['flag']]]></code>
<code><![CDATA[$arg['flag']]]></code>
<code><![CDATA[$arg['name']]]></code>
<code><![CDATA[$arg['name']]]></code>
<code><![CDATA[$arg['pow']]]></code>
<code><![CDATA[$arg['pow']]]></code>
<code><![CDATA[$arg['type']]]></code>
<code><![CDATA[$arguments['file']['mime_type']]]></code>
<code><![CDATA[$constructorData['id']]]></code>
<code><![CDATA[$constructorData['method']]]></code>
<code><![CDATA[$constructorData['method']]]></code>
<code><![CDATA[$constructorData['params']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$constructorData['type']]]></code>
<code><![CDATA[$current_argument['name']]]></code>
<code><![CDATA[$current_argument['type']]]></code>
<code><![CDATA[$data['method']]]></code>
<code><![CDATA[$data['predicate']]]></code>
<code><![CDATA[$elem['layer']]]></code>
<code><![CDATA[$flag]]></code>
<code><![CDATA[$id['id']]]></code>
<code><![CDATA[$id['id']]]></code>
<code><![CDATA[$id['type']]]></code>
<code><![CDATA[$id['type']]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$object[$type['type']]]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$pair['key']]]></code>
<code><![CDATA[$pair['value']]]></code>
<code><![CDATA[$pow]]></code>
<code><![CDATA[$row['buttons']]]></code>
<code><![CDATA[$this->constructors->findByPredicate($object['_'])['type']]]></code>
<code><![CDATA[$this->constructors->findByPredicate($value['_'])['type']]]></code>
<code><![CDATA[$this->constructors->findByPredicate($value['_'])['type']]]></code>
<code><![CDATA[$this->constructors->findByPredicate($value['_'])['type']]]></code>
<code><![CDATA[$this->constructors->findByPredicate('vector')['id']]]></code>
<code><![CDATA[$this->constructors->findByPredicate('vector')['id']]]></code>
<code><![CDATA[$this->constructors->findByPredicate((bool) $object ? 'boolTrue' : 'boolFalse')['id']]]></code>
<code><![CDATA[$this->constructors->findByType($type)['predicate']]]></code>
<code><![CDATA[$tl['id']]]></code>
<code><![CDATA[$type]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['type'][0]]]></code>
<code><![CDATA[$type['type'][0]]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$TL_dict['constructors']]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]['id']]]></code>
<code><![CDATA[$TL_dict['methods']]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]['id']]]></code>
<code><![CDATA[$arg['connection']]]></code>
<code><![CDATA[$arg['subtype']]]></code>
<code><![CDATA[$constructorData['connection']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$constructorData['subtype']]]></code>
<code><![CDATA[$constructorData['type']]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$x['reply_markup']['rows'][$key]]]></code>
<code><![CDATA[$x['reply_markup']['rows'][$key]['buttons']]]></code>
<code><![CDATA[$x['reply_markup']['rows'][$key]['buttons'][$bkey]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['constructors'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$TL_dict['methods'][$key]]]></code>
<code><![CDATA[$arguments[$current_argument['flag']]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$arguments[$name]]]></code>
<code><![CDATA[$object[$type['type']]]]></code>
<code><![CDATA[$object[$type['type']]]]></code>
<code><![CDATA[$res[$pair['key']]]]></code>
<code><![CDATA[$this->afterConstructorDeserialization[$x['_']]]]></code>
<code><![CDATA[$this->afterConstructorDeserialization[$x['_']]]]></code>
<code><![CDATA[$this->afterMethodResponseDeserialization[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]]></code>
<code><![CDATA[$this->afterMethodResponseDeserialization[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]]></code>
<code><![CDATA[$this->beforeConstructorDeserialization[$x['_']]]]></code>
<code><![CDATA[$this->beforeConstructorDeserialization[$x['_']]]]></code>
<code><![CDATA[$this->beforeConstructorSerialization[$object['_']]]]></code>
<code><![CDATA[$this->beforeConstructorSerialization[$object['_']]]]></code>
<code><![CDATA[$this->tdDescriptions['constructors'][$name]]]></code>
<code><![CDATA[$this->tdDescriptions['constructors'][$name]]]></code>
<code><![CDATA[$this->tdDescriptions['constructors'][$name]]]></code>
<code><![CDATA[$this->tdDescriptions['constructors'][$name]]]></code>
<code><![CDATA[$this->tdDescriptions['methods'][$name]]]></code>
<code><![CDATA[$this->tdDescriptions['methods'][$name]]]></code>
<code><![CDATA[$this->typeMismatch[$type['type']]]]></code>
<code><![CDATA[$this->typeMismatch[$type['type']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]]]></code>
<code><![CDATA[$x[$arg['flag']]]]></code>
<code><![CDATA[$x[$arg['flag']]]]></code>
<code><![CDATA[$x[$arg['name']]]]></code>
<code><![CDATA[$x[$arg['name']]]]></code>
<code><![CDATA[$x['reply_markup']['rows'][$key]]]></code>
<code><![CDATA[$x['reply_markup']['rows'][$key]['buttons'][$bkey]]]></code>
</MixedArrayOffset>
<MixedArrayTypeCoercion>
<code><![CDATA[$this->afterConstructorDeserialization[$x['_']]]]></code>
<code><![CDATA[$this->afterConstructorDeserialization[$x['_']]]]></code>
</MixedArrayTypeCoercion>
<MixedAssignment>
<code><![CDATA[$arg]]></code>
<code><![CDATA[$arg['connection']]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$arguments[$flag]]]></code>
<code><![CDATA[$bkey]]></code>
<code><![CDATA[$button]]></code>
<code><![CDATA[$concat]]></code>
<code><![CDATA[$concat]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData]]></code>
<code><![CDATA[$constructorData['connection']]]></code>
<code><![CDATA[$constructorData['subtype']]]></code>
<code><![CDATA[$count]]></code>
<code><![CDATA[$current_argument]]></code>
<code><![CDATA[$current_object]]></code>
<code><![CDATA[$current_object]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$elem]]></code>
<code><![CDATA[$elem]]></code>
<code><![CDATA[$file]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$id]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$key]]></code>
<code><![CDATA[$long_len]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object]]></code>
<code><![CDATA[$object['_']]]></code>
<code><![CDATA[$pair]]></code>
<code><![CDATA[$pair]]></code>
<code><![CDATA[$predicate]]></code>
<code><![CDATA[$res[$pair['key']]]]></code>
<code><![CDATA[$result []]]></code>
<code><![CDATA[$row]]></code>
<code><![CDATA[$this->secretLayer]]></code>
<code><![CDATA[$this->secretLayer]]></code>
<code><![CDATA[$tl]]></code>
<code><![CDATA[$type]]></code>
<code><![CDATA[$type['type']]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$x]]></code>
<code><![CDATA[$x]]></code>
<code><![CDATA[$x]]></code>
<code><![CDATA[$x[$arg['name']]]]></code>
<code><![CDATA[$x['channel_id']]]></code>
<code><![CDATA[[
'flag' => $flag,
'name' => $name,
'type' => $type,
'pow' => $pow
]]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[toBytes]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$concat]]></code>
<code><![CDATA[$concat]]></code>
<code><![CDATA[$constructorData['method']]]></code>
<code><![CDATA[$constructorData['method']]]></code>
<code><![CDATA[$constructorData['predicate']]]></code>
<code><![CDATA[$current_argument['pow']]]></code>
<code><![CDATA[$id['id']]]></code>
<code><![CDATA[$id['id']]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$name]]></code>
<code><![CDATA[$pow]]></code>
<code><![CDATA[$pow]]></code>
<code><![CDATA[$pow]]></code>
<code><![CDATA[$pow]]></code>
<code><![CDATA[$this->constructors->findByPredicate('vector')['id']]]></code>
<code><![CDATA[$this->serializeObject($current_argument, $arguments['file']['mime_type'], $name, $layer)]]></code>
<code><![CDATA[$this->serializeObject($current_argument, $value, $name, $layer)]]></code>
<code><![CDATA[$this->serializeObject(['type' => $type['subtype']], $current_object, $k, $layer)]]></code>
<code><![CDATA[$this->serializeObject(['type' => $type['subtype']], $current_object, $k, $layer)]]></code>
<code><![CDATA[$this->serializeObject(['type' => 'bytes'], Tools::random(15 + 4 * Tools::randomInt(modulus: 3)), 'random_bytes')]]></code>
<code><![CDATA[$tl['id']]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$values[$bytePos+1]]]></code>
<code><![CDATA[$values[$bytePos]]]></code>
<code><![CDATA[$x[$arg['flag']]]]></code>
<code><![CDATA[$x[$arg['flag']]]]></code>
<code><![CDATA[$x['channel_id']]]></code>
<code><![CDATA[~$pow]]></code>
<code><![CDATA[~$pow]]></code>
</MixedOperand>
<MixedPropertyFetch>
<code><![CDATA[$type['connection']->outgoing_messages]]></code>
<code><![CDATA[$type['connection']->outgoing_messages]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]></code>
<code><![CDATA[$type['connection']->outgoing_messages[$x['req_msg_id']]->constructor]]></code>
</MixedPropertyFetch>
<PossiblyFalseArgument>
<code><![CDATA[$value]]></code>
</PossiblyFalseArgument>
<PossiblyInvalidArgument>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['cancellation'] ?? null]]></code>
<code><![CDATA[$arguments['id']]]></code>
<code><![CDATA[$arguments['id']]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$x['result']]]></code>
</PossiblyInvalidArgument>
<PossiblyInvalidIterator>
<code><![CDATA[$x['value']]]></code>
</PossiblyInvalidIterator>
<PossiblyNullArgument>
<code><![CDATA[$value]]></code>
</PossiblyNullArgument>
<PossiblyNullReference>
<code><![CDATA[botAPIToMTProto]]></code>
</PossiblyNullReference>
<PossiblyUndefinedArrayOffset>
<code><![CDATA[$elem[1]]]></code>
<code><![CDATA[$elem[1]]]></code>
<code><![CDATA[$elem[1]]]></code>
<code><![CDATA[$elem[1]]]></code>
</PossiblyUndefinedArrayOffset>
<PropertyNotSetInConstructor>
<code><![CDATA[$afterConstructorDeserialization]]></code>
<code><![CDATA[$afterMethodResponseDeserialization]]></code>
<code><![CDATA[$beforeConstructorDeserialization]]></code>
<code><![CDATA[$beforeConstructorSerialization]]></code>
<code><![CDATA[$beforeMethodResponseDeserialization]]></code>
<code><![CDATA[$constructors]]></code>
<code><![CDATA[$methods]]></code>
<code><![CDATA[$tdDescriptions]]></code>
<code><![CDATA[$typeMismatch]]></code>
</PropertyNotSetInConstructor>
</file>
<file src="src/TL/TLConstructors.php">
<MissingReturnType>
<code><![CDATA[findByPredicate]]></code>
<code><![CDATA[findByType]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$json_dict['id']]]></code>
<code><![CDATA[$json_dict['predicate']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$constructor['type']]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]['layer']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$constructor['id']]]></code>
<code><![CDATA[$constructor['id']]]></code>
<code><![CDATA[$constructor['id']]]></code>
<code><![CDATA[$constructor['id']]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]['layer']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->by_id[$chosenid]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$this->by_predicate_and_layer[$predicate]]]]></code>
<code><![CDATA[$this->layers[$json_dict['layer']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$alayer]]></code>
<code><![CDATA[$chosenid]]></code>
<code><![CDATA[$chosenid]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor]]></code>
<code><![CDATA[$constructor['id']]]></code>
<code><![CDATA[$constructor['id']]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$alayer]]></code>
<code><![CDATA[$alayer]]></code>
<code><![CDATA[$alayer]]></code>
<code><![CDATA[$alayer]]></code>
<code><![CDATA[$json_dict['layer']]]></code>
<code><![CDATA[$json_dict['predicate']]]></code>
<code><![CDATA[$json_dict['type']]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[$constructor]]></code>
</MixedReturnStatement>
</file>
<file src="src/TL/TLInterface.php">
<MissingReturnType>
<code><![CDATA[deserialize]]></code>
<code><![CDATA[serializeMethod]]></code>
<code><![CDATA[serializeObject]]></code>
</MissingReturnType>
</file>
<file src="src/TL/TLMethods.php">
<MissingReturnType>
<code><![CDATA[findById]]></code>
<code><![CDATA[findByMethod]]></code>
</MissingReturnType>
<MixedArgument>
<code><![CDATA[$json_dict['id']]]></code>
<code><![CDATA[$json_dict['method']]]></code>
<code><![CDATA[$json_dict['method']]]></code>
<code><![CDATA[$json_dict['type']]]></code>
</MixedArgument>
<MixedArrayAssignment>
<code><![CDATA[$method['id']]]></code>
<code><![CDATA[$method['id']]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]['subtype']]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]['type']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$json_dict['id']]]]></code>
<code><![CDATA[$this->by_id[$this->by_method[$method_name]]]]></code>
<code><![CDATA[$this->by_method[$json_dict['method']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$method]]></code>
<code><![CDATA[$method]]></code>
<code><![CDATA[$method['id']]]></code>
</MixedAssignment>
</file>
<file src="src/TL/TLParams.php">
<MixedArgument>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['name']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$this->by_id[$key]['params']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$param['flag']]]></code>
<code><![CDATA[$param['pow']]]></code>
<code><![CDATA[$param['subtype']]]></code>
<code><![CDATA[$param['subtype']]]></code>
<code><![CDATA[$param['subtype']]]></code>
<code><![CDATA[$param['subtype']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$param['type']]]></code>
<code><![CDATA[$this->by_id[$key]['flags']]]></code>
<code><![CDATA[$this->by_id[$key]['flags'][$kkey]]]></code>
<code><![CDATA[$this->by_id[$key]['params']]]></code>
<code><![CDATA[$this->by_id[$key]['params'][$kkey]]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->by_id[$key]['flags'][$kkey]]]></code>
<code><![CDATA[$this->by_id[$key]['params'][$kkey]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$kkey]]></code>
<code><![CDATA[$param]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$param['type']]]></code>
</MixedOperand>
</file>
<file src="src/TL/Types/Button.php">
<MissingReturnType>
<code><![CDATA[click]]></code>
</MissingReturnType>
<MixedArrayAccess>
<code><![CDATA[$API->authorization['user']['id']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$this->button[$name]]]></code>
<code><![CDATA[$this->button[$name]]]></code>
<code><![CDATA[$this->button[$name]]]></code>
<code><![CDATA[$this->button[$name]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$this->id]]></code>
<code><![CDATA[$this->label]]></code>
<code><![CDATA[$this->peer]]></code>
<code><![CDATA[$this->peer]]></code>
</MixedAssignment>
<PossiblyNullArrayAccess>
<code><![CDATA[$API->authorization['user']]]></code>
<code><![CDATA[$API->authorization['user']['id']]]></code>
</PossiblyNullArrayAccess>
</file>
<file src="src/Tools.php">
<MissingClosureParamType>
<code><![CDATA[$val]]></code>
</MissingClosureParamType>
<MissingClosureReturnType>
<code><![CDATA[fn &() => $this->{$var}]]></code>
</MissingClosureReturnType>
<MissingReturnType>
<code><![CDATA[getVar]]></code>
</MissingReturnType>
<MixedArrayAccess>
<code><![CDATA[$val['@type']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$val['_']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$parent]]></code>
<code><![CDATA[$parent]]></code>
<code><![CDATA[$val['_']]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[getAttribute]]></code>
<code><![CDATA[getAttribute]]></code>
</MixedMethodCall>
<MixedReturnStatement>
<code><![CDATA[unpack('d', Magic::$BIG_ENDIAN ? strrev($value) : $value)[1]]]></code>
<code><![CDATA[unpack('l', Magic::$BIG_ENDIAN ? strrev($value) : $value)[1]]]></code>
<code><![CDATA[unpack('q', Magic::$BIG_ENDIAN ? strrev($value) : $value)[1]]]></code>
</MixedReturnStatement>
<PossiblyInvalidArgument>
<code><![CDATA[$value]]></code>
<code><![CDATA[$value]]></code>
</PossiblyInvalidArgument>
<PossiblyNullArgument>
<code><![CDATA[$code]]></code>
</PossiblyNullArgument>
<PossiblyNullFunctionCall>
<code><![CDATA[Closure::bind(
fn &() => $this->{$var},
$obj,
$obj::class,
)->__invoke()]]></code>
<code><![CDATA[Closure::bind(
function () use ($var, &$val): void {
$this->{$var} =& $val;
},
$obj,
$obj::class,
)->__invoke()]]></code>
</PossiblyNullFunctionCall>
<PossiblyNullReference>
<code><![CDATA[__invoke]]></code>
<code><![CDATA[__invoke]]></code>
</PossiblyNullReference>
<TypeDoesNotContainNull>
<code><![CDATA[$buffer === null]]></code>
</TypeDoesNotContainNull>
<UnsupportedReferenceUsage>
<code><![CDATA[$this->{$var} =& $val]]></code>
</UnsupportedReferenceUsage>
</file>
<file src="src/VoIP.php">
<MixedAssignment>
<code><![CDATA[$this->callID]]></code>
<code><![CDATA[$this->date]]></code>
<code><![CDATA[$this->otherID]]></code>
<code><![CDATA[$this->otherID]]></code>
</MixedAssignment>
<PossiblyInvalidArrayAccess>
<code><![CDATA[$API->getSelf()['id']]]></code>
</PossiblyInvalidArrayAccess>
</file>
<file src="src/VoIP/AuthKeyHandler.php">
<MixedArgument>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']->subtract(Magic::$two)]]></code>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$res]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$this->methodCallAsyncRead('phone.requestCall', [
'user_id' => $user,
'g_a_hash' => hash('sha256', $g_a->toBytes(), true),
'protocol' => VoIPController::CALL_PROTOCOL,
])['phone_call']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$res['a']]]></code>
<code><![CDATA[$res['g_a']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$this->calls[$res['id']]]]></code>
</MixedArrayOffset>
<MixedAssignment>
<code><![CDATA[$g_a]]></code>
<code><![CDATA[$res]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[await]]></code>
<code><![CDATA[powMod]]></code>
<code><![CDATA[subtract]]></code>
</MixedMethodCall>
<MixedPropertyTypeCoercion>
<code><![CDATA[$this->calls]]></code>
</MixedPropertyTypeCoercion>
</file>
<file src="src/VoIP/Endpoint.php">
<InaccessibleProperty>
<code><![CDATA[$this->udp]]></code>
</InaccessibleProperty>
<MissingParamType>
<code><![CDATA[$stream]]></code>
</MissingParamType>
<MixedArgument>
<code><![CDATA[$ack_mask]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$long_len]]></code>
<code><![CDATA[$out_seq_no]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[$stream]]></code>
<code><![CDATA[-$long_len]]></code>
</MixedArgument>
<MixedArrayAssignment>
<code><![CDATA[$result[$x]['data']]]></code>
<code><![CDATA[$result[$x]['data']]]></code>
<code><![CDATA[$result[$x]['has_more_flags']]]></code>
<code><![CDATA[$result[$x]['has_more_flags']]]></code>
<code><![CDATA[$result[$x]['stream_id']]]></code>
<code><![CDATA[$result[$x]['stream_id']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$ack_mask]]></code>
<code><![CDATA[$ack_mask]]></code>
<code><![CDATA[$ack_mask]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$in_seq_no]]></code>
<code><![CDATA[$innerLen]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$long_len]]></code>
<code><![CDATA[$out_seq_no]]></code>
<code><![CDATA[$out_seq_no]]></code>
<code><![CDATA[$out_seq_no]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
<code><![CDATA[$result['_']]]></code>
<code><![CDATA[$result['address']]]></code>
<code><![CDATA[$result['all_streams'][$x]['frame_duration']]]></code>
<code><![CDATA[$result['out_seq_no']]]></code>
<code><![CDATA[$result['out_seq_no']]]></code>
<code><![CDATA[$result['port']]]></code>
<code><![CDATA[$result[0]['timestamp']]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$result['_']]]></code>
<code><![CDATA[unpack('V', stream_get_contents($payload, 4))[1]]]></code>
</MixedOperand>
<MixedStringOffsetAssignment>
<code><![CDATA[$result[$x]['timestamp']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
</MixedStringOffsetAssignment>
<PossiblyInvalidArrayOffset>
<code><![CDATA[$result[$x]['data']]]></code>
<code><![CDATA[$result[$x]['data']]]></code>
<code><![CDATA[$result[$x]['has_more_flags']]]></code>
<code><![CDATA[$result[$x]['has_more_flags']]]></code>
<code><![CDATA[$result[$x]['stream_id']]]></code>
<code><![CDATA[$result[$x]['stream_id']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
<code><![CDATA[$result[$x]['timestamp']]]></code>
</PossiblyInvalidArrayOffset>
<PossiblyNullArgument>
<code><![CDATA[$crc]]></code>
<code><![CDATA[$encrypted_data]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
<code><![CDATA[$payload->bufferRead(8)]]></code>
</PossiblyNullArgument>
<PossiblyNullOperand>
<code><![CDATA[$head]]></code>
<code><![CDATA[$l]]></code>
<code><![CDATA[$payload->bufferRead(4)]]></code>
</PossiblyNullOperand>
<PossiblyNullReference>
<code><![CDATA[getReadBuffer]]></code>
</PossiblyNullReference>
<PossiblyUndefinedVariable>
<code><![CDATA[$ack_mask]]></code>
<code><![CDATA[$out_seq_no]]></code>
</PossiblyUndefinedVariable>
<PropertyTypeCoercion>
<code><![CDATA[$context->getStream()]]></code>
</PropertyTypeCoercion>
<RedundantCondition>
<code><![CDATA[$this->udp]]></code>
</RedundantCondition>
<TypeDoesNotContainType>
<code><![CDATA[true]]></code>
</TypeDoesNotContainType>
<UndefinedClass>
<code><![CDATA[ClosedException]]></code>
<code><![CDATA[ClosedException]]></code>
</UndefinedClass>
</file>
<file src="src/VoIP/MessageHandler.php">
<MixedArgument>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['timestamp']]]></code>
<code><![CDATA[$args[$x]['timestamp']]]></code>
<code><![CDATA[$args['_']]]></code>
<code><![CDATA[$args['_']]]></code>
<code><![CDATA[$args['address']]]></code>
<code><![CDATA[$args['all_streams']]]></code>
<code><![CDATA[$args['audio_streams']]]></code>
<code><![CDATA[$args['data']]]></code>
<code><![CDATA[$args['extra']]]></code>
<code><![CDATA[$args['id']]]></code>
<code><![CDATA[$args['min_protocol']]]></code>
<code><![CDATA[$args['min_protocol']]]></code>
<code><![CDATA[$args['out_seq_no']]]></code>
<code><![CDATA[$args['port']]]></code>
<code><![CDATA[$args['protocol']]]></code>
<code><![CDATA[$args['protocol']]]></code>
<code><![CDATA[$args['relay_d']]]></code>
<code><![CDATA[$args['timestamp']]]></code>
<code><![CDATA[$args['video_streams']]]></code>
<code><![CDATA[$codec]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$stream['enabled']]]></code>
<code><![CDATA[$stream['id']]]></code>
<code><![CDATA[$stream['type']]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['stream_id']]]></code>
<code><![CDATA[$args[$x]['stream_id']]]></code>
<code><![CDATA[$args[$x]['timestamp']]]></code>
<code><![CDATA[$args[$x]['timestamp']]]></code>
<code><![CDATA[$stream['codec']]]></code>
<code><![CDATA[$stream['enabled']]]></code>
<code><![CDATA[$stream['frame_duration']]]></code>
<code><![CDATA[$stream['id']]]></code>
<code><![CDATA[$stream['type']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$codec]]></code>
<code><![CDATA[$codec]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$flags]]></code>
<code><![CDATA[$stream]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['data']]]></code>
<code><![CDATA[$args[$x]['stream_id']]]></code>
<code><![CDATA[$args[$x]['stream_id']]]></code>
<code><![CDATA[$args['_']]]></code>
<code><![CDATA[$args['_'] << 24]]></code>
<code><![CDATA[$args['data']]]></code>
<code><![CDATA[$args['stream_id']]]></code>
<code><![CDATA[$codec]]></code>
<code><![CDATA[$stream['codec']]]></code>
</MixedOperand>
</file>
<file src="src/VoIPController.php">
<InaccessibleProperty>
<code><![CDATA[$this->authKey]]></code>
<code><![CDATA[$this->authKey]]></code>
</InaccessibleProperty>
<InvalidArgument>
<code><![CDATA[$this->call]]></code>
</InvalidArgument>
<InvalidPropertyAssignmentValue>
<code><![CDATA[$visualization]]></code>
<code><![CDATA[$visualization]]></code>
</InvalidPropertyAssignmentValue>
<MixedArgument>
<code><![CDATA[$aes_iv]]></code>
<code><![CDATA[$aes_key]]></code>
<code><![CDATA[$data]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']]]></code>
<code><![CDATA[$dh_config['p']->subtract(Magic::$two)]]></code>
<code><![CDATA[$endpoint['ip']]]></code>
<code><![CDATA[$endpoint['peer_tag']]]></code>
<code><![CDATA[$endpoint['peer_tag']]]></code>
<code><![CDATA[$endpoint['port']]]></code>
<code><![CDATA[$endpoint['port']]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$params['connections']]]></code>
<code><![CDATA[$params['id']]]></code>
<code><![CDATA[$res['connections']]]></code>
<code><![CDATA[$this->call['a']]]></code>
<code><![CDATA[$this->call['b']]]></code>
<code><![CDATA[88 + $x]]></code>
<code><![CDATA[unpack('n', $buffer->readLength(2))[1]]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$data]]></code>
<code><![CDATA[$endpoint['_']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['ip']]]></code>
<code><![CDATA[$endpoint['ipv6']]]></code>
<code><![CDATA[$endpoint['peer_tag']]]></code>
<code><![CDATA[$endpoint['peer_tag']]]></code>
<code><![CDATA[$endpoint['port']]]></code>
<code><![CDATA[$endpoint['port']]]></code>
<code><![CDATA[$res['connections']]]></code>
<code><![CDATA[($this->API->methodCallAsyncRead('phone.confirmCall', [
'key_fingerprint' => substr(sha1($key, true), -8),
'peer' => ['id' => $params['id'], 'access_hash' => $params['access_hash'], '_' => 'inputPhoneCall'],
'g_a' => $this->call['g_a'],
'protocol' => self::CALL_PROTOCOL,
]))['phone_call']]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$endpoint]]></code>
<code><![CDATA[$g_b]]></code>
<code><![CDATA[$length]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$seq]]></code>
<code><![CDATA[$value]]></code>
<code><![CDATA[$visualization[]]]></code>
<code><![CDATA[$visualization[]]]></code>
<code><![CDATA[['data' => $data]]]></code>
</MixedAssignment>
<MixedMethodCall>
<code><![CDATA[powMod]]></code>
<code><![CDATA[subtract]]></code>
</MixedMethodCall>
<MixedOperand>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['id']]]></code>
<code><![CDATA[$endpoint['ipv6']]]></code>
<code><![CDATA[$x]]></code>
</MixedOperand>
<PossiblyNullArgument>
<code><![CDATA[$this->pendingPing]]></code>
</PossiblyNullArgument>
<PropertyNotSetInConstructor>
<code><![CDATA[$authKey]]></code>
<code><![CDATA[$bestEndpoint]]></code>
<code><![CDATA[$messageHandler]]></code>
</PropertyNotSetInConstructor>
<TypeDoesNotContainType>
<code><![CDATA[isset($this->API->logger)]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Wrappers/Ads.php">
<MixedArgument>
<code><![CDATA[$result]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$cache[0]]]></code>
<code><![CDATA[$cache[1]]]></code>
</MixedArrayAccess>
<MixedAssignment>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</MixedAssignment>
</file>
<file src="src/Wrappers/Button.php">
<MixedArgumentTypeCoercion>
<code><![CDATA[$this->methodCallAsyncRead(...)]]></code>
</MixedArgumentTypeCoercion>
</file>
<file src="src/Wrappers/DialogHandler.php">
<InvalidReturnType>
<code><![CDATA[array<int, array>]]></code>
</InvalidReturnType>
<MixedArgument>
<code><![CDATA[$res['dialogs'] ?? []]]></code>
<code><![CDATA[$res['messages'] ?? []]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$dialog['peer']]]></code>
<code><![CDATA[$dialog['top_message']]]></code>
<code><![CDATA[$message['_']]]></code>
<code><![CDATA[$message['date']]]></code>
<code><![CDATA[$message['id']]]></code>
<code><![CDATA[$res['count']]]></code>
<code><![CDATA[$res['dialogs']]]></code>
<code><![CDATA[$res['messages']]]></code>
<code><![CDATA[$result['_']]]></code>
<code><![CDATA[$result['intermediate_state']]]></code>
<code><![CDATA[$result['pts']]]></code>
<code><![CDATA[$result['state']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->botDialogsUpdatesState['pts']]]></code>
<code><![CDATA[$this->methodCallAsyncRead(
'updates.getDifference',
$state + ['cancellation' => Tools::getTimeoutCancellation(15.0), 'floodWaitLimit' => 86400]
)['_']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$res['messages']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$dialog]]></code>
<code><![CDATA[$dialogs[$id]]]></code>
<code><![CDATA[$last_date]]></code>
<code><![CDATA[$last_id]]></code>
<code><![CDATA[$message]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
<code><![CDATA[$this->botDialogsUpdatesState]]></code>
<code><![CDATA[$this->botDialogsUpdatesState]]></code>
<code><![CDATA[$this->bottomPts]]></code>
<code><![CDATA[$this->topPts]]></code>
</MixedAssignment>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
<code><![CDATA[$this->authorization['user']['bot']]]></code>
</PossiblyNullArrayAccess>
<PossiblyNullArrayOffset>
<code><![CDATA[$dialogs]]></code>
</PossiblyNullArrayOffset>
<TypeDoesNotContainType>
<code><![CDATA[$this->cachedAllBotUsers]]></code>
<code><![CDATA[$this->cachedAllBotUsers]]></code>
</TypeDoesNotContainType>
</file>
<file src="src/Wrappers/Events.php">
<DocblockTypeContradiction>
<code><![CDATA[$this->event_handler_instance === null || $this->event_handler_instance instanceof __PHP_Incomplete_Class]]></code>
<code><![CDATA[$this->event_handler_instance instanceof __PHP_Incomplete_Class]]></code>
</DocblockTypeContradiction>
<MixedPropertyTypeCoercion>
<code><![CDATA[$pluginsNew]]></code>
</MixedPropertyTypeCoercion>
<MoreSpecificReturnType>
<code><![CDATA[PluginEventHandler|EventHandlerProxy|null]]></code>
</MoreSpecificReturnType>
<PossiblyInvalidArrayOffset>
<code><![CDATA[$this->pluginInstances[$class]]]></code>
<code><![CDATA[$this->pluginInstances[$class]]]></code>
<code><![CDATA[$this->pluginInstances[$class]]]></code>
<code><![CDATA[$this->pluginInstances[$class]]]></code>
<code><![CDATA[$this->pluginInstances[$class]]]></code>
</PossiblyInvalidArrayOffset>
</file>
<file src="src/Wrappers/Login.php">
<InvalidFalsableReturnType>
<code><![CDATA[array]]></code>
</InvalidFalsableReturnType>
<MixedArgument>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization['authorization']]]></code>
<code><![CDATA[$authorization['expires']]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$this->methodCallAsyncRead(
'auth.importBotAuthorization',
[
'bot_auth_token' => $token,
'api_id' => $this->settings->getAppInfo()->getApiId(),
'api_hash' => $this->settings->getAppInfo()->getApiHash(),
],
)]]></code>
<code><![CDATA[$this->methodCallAsyncRead('account.getPassword', [])]]></code>
<code><![CDATA[$this->methodCallAsyncRead('auth.signUp', ['phone_number' => $this->authorization['phone_number'], 'phone_code_hash' => $this->authorization['phone_code_hash'], 'phone_code' => $this->authorization['phone_code'], 'first_name' => $first_name, 'last_name' => $last_name])]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$authorization['_']]]></code>
<code><![CDATA[$authorization['_']]]></code>
<code><![CDATA[$authorization['_']]]></code>
<code><![CDATA[$authorization['authorization']]]></code>
<code><![CDATA[$authorization['dc_id']]]></code>
<code><![CDATA[$authorization['dc_id']]]></code>
<code><![CDATA[$authorization['expires']]]></code>
<code><![CDATA[$authorization['token']]]></code>
</MixedArrayAccess>
<MixedArrayAssignment>
<code><![CDATA[$authorization['_']]]></code>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['hint']]]></code>
<code><![CDATA[$this->authorization['phone_number']]]></code>
</MixedArrayAssignment>
<MixedAssignment>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$authorization]]></code>
<code><![CDATA[$datacenter]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$res]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorization]]></code>
<code><![CDATA[$this->authorized_dc]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$authorization['dc_id']]]></code>
</MixedOperand>
<PossiblyNullArrayAccess>
<code><![CDATA[$this->authorization['phone_code']]]></code>
<code><![CDATA[$this->authorization['phone_code_hash']]]></code>
<code><![CDATA[$this->authorization['phone_code_hash']]]></code>
<code><![CDATA[$this->authorization['phone_number']]]></code>
<code><![CDATA[$this->authorization['phone_number']]]></code>
</PossiblyNullArrayAccess>
<RedundantConditionGivenDocblockType>
<code><![CDATA[\is_array($auth_key)]]></code>
</RedundantConditionGivenDocblockType>
</file>
<file src="src/Wrappers/Loop.php">
<MissingReturnType>
<code><![CDATA[loop]]></code>
</MissingReturnType>
<PossiblyInvalidOperand>
<code><![CDATA[$_REQUEST['MadelineSelfRestart']]]></code>
</PossiblyInvalidOperand>
</file>
<file src="src/Wrappers/Start.php">
<DocblockTypeContradiction>
<code><![CDATA[$this->getAuthorization() === \danog\MadelineProto\API::LOGGED_IN]]></code>
</DocblockTypeContradiction>
<InvalidFalsableReturnType>
<code><![CDATA[array]]></code>
</InvalidFalsableReturnType>
<PossiblyInvalidArgument>
<code><![CDATA[$_POST['first_name']]]></code>
<code><![CDATA[$_POST['last_name'] ?? '']]></code>
<code><![CDATA[$_POST['password']]]></code>
<code><![CDATA[$_POST['phone_code']]]></code>
<code><![CDATA[$_POST['phone_number']]]></code>
<code><![CDATA[$_POST['token']]]></code>
</PossiblyInvalidArgument>
<PossiblyUndefinedVariable>
<code><![CDATA[$result]]></code>
<code><![CDATA[$result]]></code>
</PossiblyUndefinedVariable>
</file>
</files>