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
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #ifndef _THRIFT_PROTOCOL_TJSONPROTOCOL_H_ #define _THRIFT_PROTOCOL_TJSONPROTOCOL_H_ 1 #include #include namespace apache { namespace thrift { namespace protocol { // Forward declaration class TJSONContext; /** * JSON protocol for Thrift. * * Implements a protocol which uses JSON as the wire-format. * * Thrift types are represented as described below: * * 1. Every Thrift integer type is represented as a JSON number. * * 2. Thrift doubles are represented as JSON numbers. Some special values are * represented as strings: * a. "NaN" for not-a-number values * b. "Infinity" for positive infinity * c. "-Infinity" for negative infinity * * 3. Thrift string values are emitted as JSON strings, with appropriate * escaping. * * 4. Thrift binary values are encoded into Base64 and emitted as JSON strings. * The readBinary() method is written such that it will properly skip if * called on a Thrift string (although it will decode garbage data). * * NOTE: Base64 padding is optional for Thrift binary value encoding. So * the readBinary() method needs to decode both input strings with padding * and those without one. * * 5. Thrift structs are represented as JSON objects, with the field ID as the * key, and the field value represented as a JSON object with a single * key-value pair. The key is a short string identifier for that type, * followed by the value. The valid type identifiers are: "tf" for bool, * "i8" for byte, "i16" for 16-bit integer, "i32" for 32-bit integer, "i64" * for 64-bit integer, "dbl" for double-precision loating point, "str" for * string (including binary), "rec" for struct ("records"), "map" for map, * "lst" for list, "set" for set. * * 6. Thrift lists and sets are represented as JSON arrays, with the first * element of the JSON array being the string identifier for the Thrift * element type and the second element of the JSON array being the count of * the Thrift elements. The Thrift elements then follow. * * 7. Thrift maps are represented as JSON arrays, with the first two elements * of the JSON array being the string identifiers for the Thrift key type * and value type, followed by the count of the Thrift pairs, followed by a * JSON object containing the key-value pairs. Note that JSON keys can only * be strings, which means that the key type of the Thrift map should be * restricted to numeric or string types -- in the case of numerics, they * are serialized as strings. * * 8. Thrift messages are represented as JSON arrays, with the protocol * version #, the message name, the message type, and the sequence ID as * the first 4 elements. * * More discussion of the double handling is probably warranted. The aim of * the current implementation is to match as closely as possible the behavior * of Java's Double.toString(), which has no precision loss. Implementors in * other languages should strive to achieve that where possible. I have not * yet verified whether std::istringstream::operator>>, which is doing that * work for me in C++, loses any precision, but I am leaving this as a future * improvement. I may try to provide a C component for this, so that other * languages could bind to the same underlying implementation for maximum * consistency. * */ class TJSONProtocol : public TVirtualProtocol { public: TJSONProtocol(std::shared_ptr ptrans); ~TJSONProtocol() override; private: void pushContext(std::shared_ptr c); void popContext(); uint32_t writeJSONEscapeChar(uint8_t ch); uint32_t writeJSONChar(uint8_t ch); uint32_t writeJSONString(const std::string& str); uint32_t writeJSONBase64(const std::string& str); template uint32_t writeJSONInteger(NumberType num); uint32_t writeJSONDouble(double num); uint32_t writeJSONObjectStart(); uint32_t writeJSONObjectEnd(); uint32_t writeJSONArrayStart(); uint32_t writeJSONArrayEnd(); uint32_t readJSONSyntaxChar(uint8_t ch); uint32_t readJSONEscapeChar(uint16_t* out); uint32_t readJSONString(std::string& str, bool skipContext = false); uint32_t readJSONBase64(std::string& str); uint32_t readJSONNumericChars(std::string& str); template uint32_t readJSONInteger(NumberType& num); uint32_t readJSONDouble(double& num); uint32_t readJSONObjectStart(); uint32_t readJSONObjectEnd(); uint32_t readJSONArrayStart(); uint32_t readJSONArrayEnd(); public: /** * Writing functions. */ uint32_t writeMessageBegin(const std::string& name, const TMessageType messageType, const int32_t seqid); uint32_t writeMessageEnd(); uint32_t writeStructBegin(const char* name); uint32_t writeStructEnd(); uint32_t writeFieldBegin(const char* name, const TType fieldType, const int16_t fieldId); uint32_t writeFieldEnd(); uint32_t writeFieldStop(); uint32_t writeMapBegin(const TType keyType, const TType valType, const uint32_t size); uint32_t writeMapEnd(); uint32_t writeListBegin(const TType elemType, const uint32_t size); uint32_t writeListEnd(); uint32_t writeSetBegin(const TType elemType, const uint32_t size); uint32_t writeSetEnd(); uint32_t writeBool(const bool value); uint32_t writeByte(const int8_t byte); uint32_t writeI16(const int16_t i16); uint32_t writeI32(const int32_t i32); uint32_t writeI64(const int64_t i64); uint32_t writeDouble(const double dub); uint32_t writeString(const std::string& str); uint32_t writeBinary(const std::string& str); uint32_t writeUUID(const TUuid& uuid); /** * Reading functions */ uint32_t readMessageBegin(std::string& name, TMessageType& messageType, int32_t& seqid); uint32_t readMessageEnd(); uint32_t readStructBegin(std::string& name); uint32_t readStructEnd(); uint32_t readFieldBegin(std::string& name, TType& fieldType, int16_t& fieldId); uint32_t readFieldEnd(); uint32_t readMapBegin(TType& keyType, TType& valType, uint32_t& size); uint32_t readMapEnd(); uint32_t readListBegin(TType& elemType, uint32_t& size); uint32_t readListEnd(); uint32_t readSetBegin(TType& elemType, uint32_t& size); uint32_t readSetEnd(); uint32_t readBool(bool& value); // Provide the default readBool() implementation for std::vector using TVirtualProtocol::readBool; uint32_t readByte(int8_t& byte); uint32_t readI16(int16_t& i16); uint32_t readI32(int32_t& i32); uint32_t readI64(int64_t& i64); uint32_t readDouble(double& dub); uint32_t readString(std::string& str); uint32_t readBinary(std::string& str); uint32_t readUUID(TUuid& uuid); int getMinSerializedSize(TType type) override; void checkReadBytesAvailable(TSet& set) override { trans_->checkReadBytesAvailable(set.size_ * getMinSerializedSize(set.elemType_)); } void checkReadBytesAvailable(TList& list) override { trans_->checkReadBytesAvailable(list.size_ * getMinSerializedSize(list.elemType_)); } void checkReadBytesAvailable(TMap& map) override { int elmSize = getMinSerializedSize(map.keyType_) + getMinSerializedSize(map.valueType_); trans_->checkReadBytesAvailable(map.size_ * elmSize); } class LookaheadReader { public: LookaheadReader(TTransport& trans) : trans_(&trans), hasData_(false), data_(0) {} uint8_t read() { if (hasData_) { hasData_ = false; } else { trans_->readAll(&data_, 1); } return data_; } uint8_t peek() { if (!hasData_) { trans_->readAll(&data_, 1); } hasData_ = true; return data_; } private: TTransport* trans_; bool hasData_; uint8_t data_; }; private: TTransport* trans_; std::stack > contexts_; std::shared_ptr context_; LookaheadReader reader_; }; /** * Constructs input and output protocol objects given transports. */ class TJSONProtocolFactory : public TProtocolFactory { public: TJSONProtocolFactory() = default; ~TJSONProtocolFactory() override = default; std::shared_ptr getProtocol(std::shared_ptr trans) override { return std::shared_ptr(new TJSONProtocol(trans)); } }; } } } // apache::thrift::protocol // TODO(dreiss): Move part of ThriftJSONString into a .cpp file and remove this. #include namespace apache { namespace thrift { template std::string ThriftJSONString(const ThriftStruct& ts) { using namespace apache::thrift::transport; using namespace apache::thrift::protocol; auto* buffer = new TMemoryBuffer; std::shared_ptr trans(buffer); TJSONProtocol protocol(trans); ts.write(&protocol); uint8_t* buf; uint32_t size; buffer->getBuffer(&buf, &size); return std::string((char*)buf, (unsigned int)size); } } } // apache::thrift #endif // #define _THRIFT_PROTOCOL_TJSONPROTOCOL_H_ 1