$settings __construct($this->session->getSessionDirectoryPath())]]> Logger::$default getMessage wakeup API API API API API API API API API API API API API API API API API API API logger $eventHandler getMessage isInited setEventHandler APIStart \is_callable($callable) $id broadcasts[$id]]]> broadcasts[$id]]]> broadcasts[$id]?->cancel()]]> broadcasts[$id]?->getProgress()]]> filter->whitelist) && !\in_array($peer, $this->filter->whitelist, true)]]> stream]]> getStream()]]> $API $datacenter $shared getInputClientProxy isHttp refreshNext refreshNext $uri $auth_key $data $data $fileName $fileName $fp $options $options $settings $tdesktop_base_path $tdesktop_key $tdesktop_user_base_path tdesktop tdesktop_decrypt tdesktop_fopen tdesktop_fopen_encrypted tdesktop_md5 tdesktop_read_bytearray methodCallAsyncRead $part_one_md5 $part_one_md5 $dc $main_dc_id \is_string($dc) $default[2] $default[2] $API $connectionsPromise $datacenter bind hasTempAuthKey() && $authorized_socket->hasPermAuthKey() && $authorized_socket->isAuthorized() && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> permAuthKey =& $connection->permAuthKey]]> ttl[$index])]]> $cacheTtl Traversable Traversable $index $index $index $index $index $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> query("SHOW VARIABLES LIKE 'max_connections'")->fetchRow()['Value']]]> $config $config withDatabase(null)]]> getIdleTimeout()]]> getMaxConnections()]]> $settings $settings $settings DriverArray $v $value $value $v]]> json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> $dbSettings $dbSettings $dbSettings $dbSettings $deserializer $deserializer $deserializer $deserializer $serializer $serializer $serializer $serializer $table $table $table $table $old setSettings new static() MemoryArray MemoryArray $array $flags $settings dbSettings]]> $stmt $pdo $v $v $v $v $v $v $v $value igbinary_unserialize(hex2bin($v))]]> unserialize(hex2bin($v))]]> json_decode(hex2bin($value), true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $v $v $v $v $v $value $v]]> json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]> dbSettings]]> $db db->get($key)]]> $value $stmt $db $db $db fetchRow()['count']]]> $builtUri $uri $webSocketConnector $orig[1][0] === BufferedRawStream::class Rfc6455Connector $class wrapper->getAPI()]]> getParameters()[0]->getType()]]> getDbPrefix self::$pluginCache array_values startedInternal]]> startedInternal]]> require $file new $class replyCache]]> replyCache]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> $arr['_'] === 'storyItemDeleted' ? new StoryDeleted($client, ['peer' => $this->senderId, 'story' => $arr]) : new Story($client, ['peer' => $this->senderId, 'story' => $arr]), $result )]]> DialogSetTTL DialogSetTTL ]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> AbstractPrivateMessage AbstractPrivateMessage getIdInternal($rawStory['peer'])]]> wrapMedia($rawBotApp['document']) : null]]> wrapMedia($rawBotApp['photo']) : null]]> $peerResolved $peersResolved $adminIds API]]> $API $peerResolved $matches $matches $matches $matches $result array{ * ext: string, * name: string, * mime: string, * size: int, * InputFileLocation: array, * key_fingerprint?: string, * key?: string, * iv?: string, * } botApiFileId]]> botApiFileUniqueId]]> $thumbs $videoThumbs AbstractAudio AbstractAudio AbstractSticker AbstractSticker AbstractVideo AbstractVideo AnimatedSticker AnimatedSticker Audio Audio CustomEmoji CustomEmoji Document Document DocumentPhoto DocumentPhoto Gif Gif MaskSticker MaskSticker getIdInternal($rawMedia['peer'])]]> Photo Photo RoundVideo RoundVideo StaticSticker StaticSticker Sticker Sticker Video Video VideoSticker VideoSticker Voice Voice getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> Message getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> $html $htmlTelegram wrapMedia($rawMessage['media'], $this->protected) : null]]> ChannelMessage ChannelMessage wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> DialogTopicCreated DialogTopicEdited DialogTopicEdited DialogTopicEdited wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> wrapMessage($client->extractMessage($result))]]> GroupMessage GroupMessage getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> DialogScreenshotTaken getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> PrivateMessage PrivateMessage replyCache]]> replyCache]]> getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> DialogScreenshotTaken getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> SecretMessage SecretMessage getIdInternal($rawParticipant['peer'])]]> getIdInternal($rawParticipant['peer'])]]> Message getIdInternal($rawCallback['peer'])]]> nextSent]]> wrapMessage($client->extractMessage($result))]]> wrapUpdate($update)]]> wrapUpdate($update)]]> StoryReaction StoryReaction wrapMessage($client->extractMessage($result))]]> wrapUpdate($update)]]> wrapUpdate($update)]]> $first $html $htmlTelegram wrapMedia($rawStory['media'], $this->protected)]]> getIdInternal($rawStory['peer'])]]> getIdInternal($rawPeerBlocked['peer_id'])]]> new UsernameInfo($username), $rawUserName['usernames'] )]]> wrapMedia($rawWallpaper['document'])]]> $code $errfile $errline $errno $errstr $file $line $message __invoke self::$map self::$map ??= new WeakMap self::$map ??= new WeakMap wrapper->getAPI()->getEventHandler($class)]]> T|EventHandlerProxy|__PHP_Incomplete_Class|null $data account ??= new \danog\MadelineProto\Namespace\AbstractAPI('account')]]> auth ??= new \danog\MadelineProto\Namespace\AbstractAPI('auth')]]> bots ??= new \danog\MadelineProto\Namespace\AbstractAPI('bots')]]> channels ??= new \danog\MadelineProto\Namespace\AbstractAPI('channels')]]> chatlists ??= new \danog\MadelineProto\Namespace\AbstractAPI('chatlists')]]> contacts ??= new \danog\MadelineProto\Namespace\AbstractAPI('contacts')]]> folders ??= new \danog\MadelineProto\Namespace\AbstractAPI('folders')]]> help ??= new \danog\MadelineProto\Namespace\AbstractAPI('help')]]> langpack ??= new \danog\MadelineProto\Namespace\AbstractAPI('langpack')]]> messages ??= new \danog\MadelineProto\Namespace\AbstractAPI('messages')]]> payments ??= new \danog\MadelineProto\Namespace\AbstractAPI('payments')]]> phone ??= new \danog\MadelineProto\Namespace\AbstractAPI('phone')]]> photos ??= new \danog\MadelineProto\Namespace\AbstractAPI('photos')]]> stats ??= new \danog\MadelineProto\Namespace\AbstractAPI('stats')]]> stickers ??= new \danog\MadelineProto\Namespace\AbstractAPI('stickers')]]> stories ??= new \danog\MadelineProto\Namespace\AbstractAPI('stories')]]> updates ??= new \danog\MadelineProto\Namespace\AbstractAPI('updates')]]> upload ??= new \danog\MadelineProto\Namespace\AbstractAPI('upload')]]> users ??= new \danog\MadelineProto\Namespace\AbstractAPI('users')]]> setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper setWrapper $class downloadToCallable downloadToDir downloadToFile methodCallAsyncRead uploadFromCallable uploadFromTgfile uploadFromUrl getException()]]> getException();]]> logger $logger $server $previous type($this->message, $this->code, $previous)]]> code]]> exception ? $this->exception->getException() : null]]> ?Throwable $address (int) $port $arguments $arguments $arguments include $autoloadPath $callback $server $payload === self::SHUTDOWN $payload === self::SHUTDOWN unwrap ServerCallback ServerCallback $args $this->__call($id, $args)]]> $data copy unwrap $payload[0] $payload[0] $data Wrapper Wrapper new $class($this, $ids) callbackIds[] = &$callback]]> callbackIds[] = &$callback]]> IteratorAggregate getEventHandler()::class]]> $optional $optional $optional $optional $optional $optional $optional $optional getResource()]]> mode === self::FILE_LOGGER ? $this->optional : Magic::$script_cwd.DIRECTORY_SEPARATOR.'MadelineProto.log']]> optional]]> optional]]> optional]]> stdoutUnbuffered->getResource()]]> $optional $colors $stdout $stdoutUnbuffered colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> colors]]> getMsgId()]]> API->settings]]> getRpc CheckLoop CheckLoop CheckLoop CheckLoop CheckLoop API]]> CleanupLoop CleanupLoop CleanupLoop CleanupLoop CleanupLoop connection->msgIdHandler?->cleanup()]]> connection->msgIdHandler]]> HttpWaitLoop getSettings PingLoop PingLoop PingLoop PingLoop shared]]> getReason(), ' ')]]> throw $e; bufferRead($payload_length)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> $message_data $message_data $message_key getReadBuffer ReadLoop $e $e $e ClosedException getSerializedBody()]]> getSerializedBody()]]> getWriteBuffer getWriteBuffer WriteLoop connection->isHttp() && empty($this->connection->pendingOutgoing)]]> $callable()]]> API->logger)]]> $msg $messages $update feed feedSingle $state $updater FeedLoop checkSeq feed API->feeders[$channelId]]]> date pts pts pts pts pts qts qts qts update update update update update update update API->authorization['user']]]> API->authorization['user']['bot']]]> $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $difference $feeder UpdateLoop API->feeders[$channelId]?->resume()]]> datacenter)]]> TL)]]> settings)]]> settings)]]> new DataCenter($this) new PeerDatabase($this) $callbacks $callbacks getInputConstructor(...), ), array_fill_keys( [ 'User', 'Chat', 'Peer', 'InputDialogPeer', 'InputNotifyPeer', ], $this->getInfo(...), ), array_fill_keys( [ 'InputMedia', 'InputDocument', 'InputPhoto', ], $this->getFileInfo(...), ), [ 'InputFileLocation' => $this->getDownloadInfo(...), 'InputPeer' => $this->getInputPeer(...), 'InputCheckPasswordSRP' => function (string $password): array { return (new PasswordCalculator($this->methodCallAsyncRead('account.getPassword', [])))->getCheckPassword($password); }, ], )]]> array serializeSession authorization['user']['bot']]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> channels_state->get()]]> $path getSelf()['bot']]]> getSelf()['premium']]]> authorization['hint']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['id']]]> logger start start sanitizeReportPeers($userOrId)]]> wrapper) && $this->isInited()]]> wrapper) && isset(self::$references[$this->getSessionName()])]]> authorized === API::LOGGED_IN && \is_int($dc_id)]]> datacenter]]> peerDatabase]]> \is_int($dc_id) datacenter)]]> full_chats]]> settings->getAppInfo()->getLangCode()]]]> getBody state |= self::STATE_ACKED]]> state |= self::STATE_REPLIED]]> state |= self::STATE_SENT]]> authKey]]> authKey]]> authorized {$key} =& $bound->{$key}]]> ack_queue]]> new_outgoing]]> expires $f->await()]]> $abstractionQueueMutex methodCallAsyncRead release resume getMaxId $e]]> $response time() + $seconds $msgId $msgId $msgId $msgId API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> $msgIdHandler methodCallAsyncRead syncLoading getSelf()['id']]]> getSelf()['id']]]> $media extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]> array $data $media genAllFile read[$offset]]]> write[$offset]]]> write[$offset]]]> $messageMedia $old_dc decrypt getReference getReference getReference getReference getReference getReference getReference $res $res $res $res $res $res $res $res $res $res $res $res $res $cb(100, $speed, $time) Message $file $file static function (string $payload, int $offset) use ($stream, $seekable, $lock) { $file $file $body $size seek seek $l populateFrom $id $peers $peers $peers $peers db]]> $db powMod pendingDb]]> API->getIdInternal($full)]]> API->getIdInternal($full)]]> API->getIdInternal($id)]]> API->authorization['user']]]> API->authorization['user']['id']]]> fullDb]]> fullDb]]> pendingDb]]> $db $fullDb $usernames (int) $id getInfo($peer, \danog\MadelineProto\API::INFO_TYPE_CONSTRUCTOR)['forum']]]> $channel $channel $channel $channel $channel $filter $filter $filter $filter $filter $folder_id $gres $limit $limit $limit $offset $offset $offset $q $q $q $q $q $res $res $total_count $total_count fetchParticipants fetchParticipantsCache fwdPeerIsset getInputConstructor getInputPeer getParticipantsHash recurseAlphabetSearchParticipants \danog\MadelineProto\API::PEER_TYPE_* $promises $full getIdInternal($id)]]> getIdInternal($id)]]> peerDatabase->getFull($partial['bot_api_id'])]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> API->authorization['user']]]> API->authorization['user']]]> API->authorization['user']['id']]]> API->authorization['user']['id']]]> getDb($locationString)['origins']]]> getDb($locationString)['reference']]]> getDb($locationString)['reference']]]> getDb($locationString)['reference']]]> getDb($locationString)['origins']]]> $db $extra_ranges $range_orig $seek_end wrapMedia($message['action']['photo'])]]> wrapMedia($message['action']['photo'])]]> nextSent]]> getUpdatesState loadUpdateState getIdInternal($message['action']['from_id'])]]> getIdInternal($message['action']['peer'])]]> getIdInternal($message['action']['to_id'])]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> authorization['user']['id']]]> msg_ids]]> addPendingWakeups waitForInternalStart $first eventHandlerHandlers) !== 0 && \is_array($update)]]> \is_array($update) settings->getConnection()]]> settings->getLogger())) implements LoggerGetter { public function __construct(private Logger $logger) { } public function getLogger(): Logger { return $this->logger; } }]]> completeLogin createApp getApp hasApp settings]]> $value settings->getConnection(), new class(new Logger($this->settings->getLogger())) implements LoggerGetter { public function __construct(private Logger $logger) { } public function getLogger(): Logger { return $this->logger; } }, $this->jar )]]> settings]]> methodCallAsyncRead $wrapper $file $message $level $message $previous $caller $code $message $caller $method $e $fp $n SecretMessage remoteLayer === 8]]> $incoming $outgoing $randomIdMap [$unserialized, $unlock] $ipcSocket $ipcSocket unserialize($this->ipcStatePath)]]> ?IpcState read(null, 1)]]> read(null, 1)]]> $php[0] $php[1] $php[0] $php[1] lightState ??= $this->unserialize($this->lightStatePath)]]> extra]]> $entities $stream $l $append $append_after $memory_stream $stream $append $append_after $decrypt $encrypt $extra $read_buffer $stream $write_buffer $append $append_after read write $hash_name $read_buffer $read_check_after $read_check_pos $read_hash $rev $stream $write_buffer $write_check_after $write_check_pos $write_hash close $obj $socketContext $uri $extra StreamInterface $stream $l $in_seq_no $out_seq_no $stream $l $stream $stream $uri $code $ctx $header $code $current_header[1] $description getStream($header)]]> $stream $l $stream $l $extra $stream $stream $extra $read $code $current_header[1] $description $l getStream()]]> $stream $extra bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(1)]]> bufferRead(16)]]> bufferRead(2)]]> bufferRead(4)]]> $length $ip getStream(\chr(5).\chr(\strlen($methods)).$methods)]]> setupTls getStream write write $connector $stream $data stream]]> stream]]> stream]]> ?WebsocketMessage ClosedException Rfc6455ConnectionFactory Rfc6455Connector WebsocketConnection WebsocketConnector WebsocketConnector WebsocketHandshake WsStream WssStream $markup parseReplyMarkup }>]]> $arguments[$key] $photo $photoSize $thumbnail $file $message $posClose === false $posClose === false authorization['user']]]> authorization['user']['id']]]> $file $message \is_resource($stream) \is_resource($stream) $arg deserialize serializeMethod serializeObject serializeParams $value $value $value $value $value botAPIToMTProto logger $elem[1] $elem[1] $elem[1] $elem[1] $afterConstructorDeserialization $afterMethodResponseDeserialization $beforeConstructorDeserialization $beforeConstructorSerialization $beforeMethodResponseDeserialization $constructors $methods $tdDescriptions $typeMismatch (string) $object (string) $object (string) $object findByPredicate findByType deserialize serializeMethod serializeObject findById findByMethod click authorization['user']]]> authorization['user']['id']]]> $c->name !== null]]> $val $this->{$var}]]> getVar $value $value $this->{$var}, $obj, $obj::class, )->__invoke()]]> {$var} =& $val; }, $obj, $obj::class, )->__invoke()]]> __invoke __invoke {$var} =& $val]]> getSelf()['id']]]> udp]]> $stream $crc $encrypted_data bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> getReadBuffer $ack_mask $out_seq_no getStream()]]> udp]]> true ClosedException ClosedException readLength(1))]]> authKey]]> authKey]]> call]]> $visualization $visualization pendingPing]]> call['g_a']]]> $authKey $bestEndpoint $messageHandler API->logger)]]> ]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> authorization['user']['bot']]]> $dialogs cachedAllBotUsers]]> cachedAllBotUsers]]> event_handler_instance === null || $this->event_handler_instance instanceof __PHP_Incomplete_Class]]> event_handler_instance instanceof __PHP_Incomplete_Class]]> PluginEventHandler|EventHandlerProxy|null pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> pluginInstances[$class]]]> new $class_name array authorization['phone_code']]]> authorization['phone_code_hash']]]> authorization['phone_code_hash']]]> authorization['phone_number']]]> authorization['phone_number']]]> \is_array($auth_key) loop getAuthorization() === \danog\MadelineProto\API::LOGGED_IN]]> array $title $result $result