1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// // Copyright (c) 2023-2025 Ivica Siladic, Bruno Iljazovic, Korina Simicevic // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_MQTT5_DISCONNECT_OP_HPP #define BOOST_MQTT5_DISCONNECT_OP_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace boost::mqtt5::detail { namespace asio = boost::asio; template < typename ClientService, typename DisconnectContext > class disconnect_op { using client_service = ClientService; struct on_disconnect {}; struct on_shutdown {}; std::shared_ptr _svc_ptr; DisconnectContext _context; using handler_type = cancellable_handler< asio::any_completion_handler, typename ClientService::executor_type >; handler_type _handler; public: template disconnect_op( std::shared_ptr svc_ptr, DisconnectContext&& context, Handler&& handler ) : _svc_ptr(std::move(svc_ptr)), _context(std::move(context)), _handler(std::move(handler), _svc_ptr->get_executor()) { auto slot = asio::get_associated_cancellation_slot(_handler); if (slot.is_connected()) slot.assign([&svc = *_svc_ptr](asio::cancellation_type_t) { svc.cancel(); }); } disconnect_op(disconnect_op&&) = default; disconnect_op(const disconnect_op&) = delete; disconnect_op& operator=(disconnect_op&&) = default; disconnect_op& operator=(const disconnect_op&) = delete; using allocator_type = asio::associated_allocator_t; allocator_type get_allocator() const noexcept { return asio::get_associated_allocator(_handler); } using executor_type = typename client_service::executor_type; executor_type get_executor() const noexcept { return _svc_ptr->get_executor(); } void perform() { error_code ec = validate_disconnect(_context.props); if (ec) return complete_immediate(ec); auto disconnect = control_packet::of( no_pid, get_allocator(), encoders::encode_disconnect, static_cast(_context.reason_code), _context.props ); auto max_packet_size = _svc_ptr->connack_property(prop::maximum_packet_size) .value_or(default_max_send_size); if (disconnect.size() > max_packet_size) // drop properties return send_disconnect(control_packet::of( no_pid, get_allocator(), encoders::encode_disconnect, static_cast(_context.reason_code), disconnect_props {} )); send_disconnect(std::move(disconnect)); } void send_disconnect(control_packet disconnect) { auto wire_data = disconnect.wire_data(); _svc_ptr->async_send( wire_data, no_serial, send_flag::terminal, asio::prepend( std::move(*this), on_disconnect {}, std::move(disconnect) ) ); } void operator()( on_disconnect, control_packet disconnect, error_code ec ) { // The connection must be closed even // if we failed to send the DISCONNECT packet // with Reason Code of 0x80 or greater. if ( ec == asio::error::operation_aborted || ec == asio::error::no_recovery ) return complete(asio::error::operation_aborted); if (ec == asio::error::try_again) { if (_context.terminal) return send_disconnect(std::move(disconnect)); return complete(error_code {}); } return _svc_ptr->async_shutdown( asio::prepend(std::move(*this), on_shutdown {}) ); } void operator()(on_shutdown, error_code ec) { if (_context.terminal) _svc_ptr->cancel(); complete(ec); } private: static error_code validate_disconnect(const disconnect_props& props) { const auto& reason_string = props[prop::reason_string]; if ( reason_string && validate_mqtt_utf8(*reason_string) != validation_result::valid ) return client::error::malformed_packet; const auto& user_properties = props[prop::user_property]; for (const auto& user_property: user_properties) if (!is_valid_string_pair(user_property)) return client::error::malformed_packet; return error_code {}; } void complete(error_code ec) { _handler.complete(ec); } void complete_immediate(error_code ec) { _handler.complete_immediate(ec); } }; template class terminal_disconnect_op { using client_service = ClientService; static constexpr uint8_t seconds = 5; std::shared_ptr _svc_ptr; std::unique_ptr _timer; using handler_type = Handler; handler_type _handler; public: terminal_disconnect_op( std::shared_ptr svc_ptr, Handler&& handler ) : _svc_ptr(std::move(svc_ptr)), _timer(new asio::steady_timer(_svc_ptr->get_executor())), _handler(std::move(handler)) {} terminal_disconnect_op(terminal_disconnect_op&&) = default; terminal_disconnect_op(const terminal_disconnect_op&) = delete; terminal_disconnect_op& operator=(terminal_disconnect_op&&) = default; terminal_disconnect_op& operator=(const terminal_disconnect_op&) = delete; using allocator_type = asio::associated_allocator_t; allocator_type get_allocator() const noexcept { return asio::get_associated_allocator(_handler); } using cancellation_slot_type = asio::associated_cancellation_slot_t; cancellation_slot_type get_cancellation_slot() const noexcept { return asio::get_associated_cancellation_slot(_handler); } using executor_type = asio::associated_executor_t; executor_type get_executor() const noexcept { return asio::get_associated_executor(_handler); } template void perform(DisconnectContext&& context) { namespace asioex = boost::asio::experimental; auto init_disconnect = []( auto handler, disconnect_ctx ctx, std::shared_ptr svc_ptr ) { disconnect_op { std::move(svc_ptr), std::move(ctx), std::move(handler) }.perform(); }; _timer->expires_after(std::chrono::seconds(seconds)); auto timed_disconnect = asioex::make_parallel_group( asio::async_initiate( init_disconnect, asio::deferred, std::forward(context), _svc_ptr ), _timer->async_wait(asio::deferred) ); timed_disconnect.async_wait( asioex::wait_for_one(), std::move(*this) ); } void operator()( std::array /* ord */, error_code disconnect_ec, error_code /* timer_ec */ ) { std::move(_handler)(disconnect_ec); } }; template class initiate_async_disconnect { std::shared_ptr _svc_ptr; public: explicit initiate_async_disconnect(std::shared_ptr svc_ptr) : _svc_ptr(std::move(svc_ptr)) {} using executor_type = typename ClientService::executor_type; executor_type get_executor() const noexcept { return _svc_ptr->get_executor(); } template void operator()( Handler&& handler, disconnect_rc_e rc, const disconnect_props& props ) { auto ctx = disconnect_ctx { rc, props, terminal }; if constexpr (terminal) terminal_disconnect_op { _svc_ptr, std::move(handler) } .perform(std::move(ctx)); else disconnect_op { _svc_ptr, std::move(ctx), std::move(handler) } .perform(); } }; template decltype(auto) async_disconnect( disconnect_rc_e reason_code, const disconnect_props& props, std::shared_ptr svc_ptr, CompletionToken&& token ) { using Signature = void (error_code); return asio::async_initiate( initiate_async_disconnect(std::move(svc_ptr)), token, reason_code, props ); } template decltype(auto) async_terminal_disconnect( disconnect_rc_e reason_code, const disconnect_props& props, std::shared_ptr svc_ptr, CompletionToken&& token ) { using Signature = void (error_code); return asio::async_initiate( initiate_async_disconnect(std::move(svc_ptr)), token, reason_code, props ); } } // end namespace boost::mqtt5::detail #endif // !BOOST_MQTT5_DISCONNECT_HPP