$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)]]> getStream()]]> $API $ctx $datacenter $logger $shared refreshNext refreshNext $uri $auth_key $data $data $fileName $fileName $fp $new_session $options $options $session $settings $settings $settings $settings $tdesktop_base_path $tdesktop_key $tdesktop_user_base_path pyrogram tdesktop tdesktop_decrypt tdesktop_fopen tdesktop_fopen_encrypted tdesktop_md5 tdesktop_read_bytearray telethon zerobias $part_one_md5 $part_one_md5 $dc $main_dc_id notFalse $socket instanceof Connection \is_int($id) $default[2] $default[2] $dohWrapper $socket instanceof DataCenterConnection settings->getTransport()]]> \is_int($key) $API $connectionsPromise $ctx $datacenter bind hasTempAuthKey() && $authorized_socket->hasPermAuthKey() && $authorized_socket->isAuthorized() && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> permAuthKey =& $this->API->datacenter->getDataCenterConnection($dc)->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 $orig[1][0] === BufferedRawStream::class $class wrapper->getAPI()]]> getParameters()[0]->getType()]]> self::$pluginCache \array_values require $file new $class replyCache]]> replyCache]]> $replyCache $adminIds $peerResolved $peersResolved $peerResolved $matches $matches $peerResolved botApiFileId]]> botApiFileUniqueId]]> $thumbs $videoThumbs AbstractAudio AbstractAudio AbstractSticker AbstractSticker AbstractVideo AbstractVideo AnimatedSticker AnimatedSticker Audio Audio CustomEmoji CustomEmoji Document Document DocumentPhoto DocumentPhoto Gif Gif MaskSticker MaskSticker Photo Photo RoundVideo RoundVideo StaticSticker StaticSticker Sticker Sticker Video Video VideoSticker VideoSticker Voice Voice entities]]> entities]]> getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> Message getClient()->wrapMessage($this->getClient()->extractMessage($result))]]> $html $htmlTelegram Message wrapMedia($rawMessage['media'], $this->protected) : null]]> ChannelMessage ChannelMessage ChannelMessage GroupMessage GroupMessage GroupMessage PrivateMessage PrivateMessage PrivateMessage DialogCreated DialogMemberLeft DialogMembersJoined DialogMessagePinned DialogPhotoChanged DialogTitleChanged Message getIdInternal($rawCallback['peer'])]]> $code $errfile $errline $errno $errstr $file $line $message __invoke self::$map self::$map ??= new WeakMap wrapper->getAPI()->getEventHandler($class)]]> T|EventHandlerProxy|__PHP_Incomplete_Class|null $data MTProtoToTd MTProtoToTdcli completePhoneLogin downloadToCallable downloadToDir downloadToStream end phoneLogin requestSecretChat start tdToTdcli upload uploadEncrypted uploadFromCallable uploadFromStream uploadFromTgfile uploadFromUrl 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 $settings $payload === self::SHUTDOWN $payload === self::SHUTDOWN unwrap ServerCallback ServerCallback $args $this->__call($id, $args)]]> $data copy unwrap $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]]> stdout->getResource()]]> $optional optional, [$param, $level])]]> $colors $stdout 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]]> bufferRead($payload_length)]]> bufferRead(4)]]> bufferRead(4)]]> bufferRead(8)]]> $message_data $message_data $message_key getReadBuffer ReadLoop getSerializedBody()]]> getSerializedBody()]]> connection->call_queue]]> connection->call_queue]]> getWriteBuffer getWriteBuffer WriteLoop shared->isHttp() && empty($this->connection->pendingOutgoing)]]> $callable()]]> $msg $messages $update feed feedSingle $state $updater FeedLoop SecretFeedLoop 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)]]> dcList, $this->settings->getConnection())]]> 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 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()]]> methodCallAsyncRead resume resume getMaxId $e]]> \time() + $seconds $msgId $msgId getMsgId()]]> getMsgId()]]> getMsgId()]]> resume API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]> $contentRelated $contentRelated generateInSeqNo generateOutSeqNo $msgIdHandler methodCallAsyncRead methodCallAsyncWrite syncLoading getSelf()['id']]]> getSelf()['id']]]> $media extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]> $data $media downloadToCallable downloadToDir genAllFile uploadFromCallable uploadFromTgfile uploadFromUrl 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 static function (int $offset, int $size) use ($stream) { static function (int $offset, int $size) use ($stream, $seekable, $lock) { static function (string $payload, int $offset) use ($stream, $seekable, $lock) { downloadToStream upload uploadEncrypted uploadFromStream $file $file $body $size seek seek 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([ '_' => 'messageMediaPhoto', 'photo' => $message['action']['photo'] ])]]> nextSent]]> getUpdatesState loadUpdateState 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) completeLogin createApp getApp hasApp settings]]> $value settings]]> methodCallAsyncRead $wrapper $file $message $level $message $previous $caller $code $message $caller $method $e $fp $n $chat completeSecretChat requestSecretChat $chat_id $chat_id $encrypted_data $encrypted_data $message_key $message_key $old $old $chat $chat $chat_id $chat_id $seqno $seqno checkSecretInSeqNo checkSecretOutSeqNo generateSecretInSeqNo generateSecretOutSeqNo [$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]]> $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 $markup parseReplyMarkup }>]]> $arguments[$key] $photo $photoSize $thumbnail $file $message $posClose === false $posClose === false MTProtoToTd MTProtoToTdcli tdToTdcli authorization['user']]]> authorization['user']['id']]]> $file $message \is_resource($stream) \is_resource($stream) API->getInfo($arguments[$current_argument['name']]))['InputEncryptedChat']]]> $arg deserialize serializeMethod serializeObject serializeParams API->logger]]> 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}]]> end getVar $value $value $this->{$var}, $obj, $obj::class, )->__invoke()]]> {$var} =& $val; }, $obj, $obj::class, )->__invoke()]]> __invoke __invoke {$var} =& $val]]> getSelf()['id']]]> udp]]> ?array $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 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 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 completePhoneLogin phoneLogin 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]]> start $title $result $result