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. #pragma once #include #include #include #include "parquet/metadata.h" #include "parquet/platform.h" #include "parquet/properties.h" #include "parquet/schema.h" namespace parquet { class ColumnWriter; // FIXME: copied from reader-internal.cc static constexpr uint8_t kParquetMagic[4] = {'P', 'A', 'R', '1'}; static constexpr uint8_t kParquetEMagic[4] = {'P', 'A', 'R', 'E'}; class PARQUET_EXPORT RowGroupWriter { public: // Forward declare a virtual class 'Contents' to aid dependency injection and more // easily create test fixtures // An implementation of the Contents class is defined in the .cc file struct Contents { virtual ~Contents() = default; virtual int num_columns() const = 0; virtual int64_t num_rows() const = 0; // to be used only with ParquetFileWriter::AppendRowGroup virtual ColumnWriter* NextColumn() = 0; // to be used only with ParquetFileWriter::AppendBufferedRowGroup virtual ColumnWriter* column(int i) = 0; virtual int current_column() const = 0; virtual void Close() = 0; /// \brief total uncompressed bytes written by the page writer virtual int64_t total_bytes_written() const = 0; /// \brief total bytes still compressed but not written by the page writer virtual int64_t total_compressed_bytes() const = 0; /// \brief total compressed bytes written by the page writer virtual int64_t total_compressed_bytes_written() const = 0; virtual bool buffered() const = 0; }; explicit RowGroupWriter(std::unique_ptr contents); /// Construct a ColumnWriter for the indicated row group-relative column. /// /// To be used only with ParquetFileWriter::AppendRowGroup /// Ownership is solely within the RowGroupWriter. The ColumnWriter is only /// valid until the next call to NextColumn or Close. As the contents are /// directly written to the sink, once a new column is started, the contents /// of the previous one cannot be modified anymore. ColumnWriter* NextColumn(); /// Index of currently written column. Equal to -1 if NextColumn() /// has not been called yet. int current_column(); void Close(); int num_columns() const; /// Construct a ColumnWriter for the indicated row group column. /// /// To be used only with ParquetFileWriter::AppendBufferedRowGroup /// Ownership is solely within the RowGroupWriter. The ColumnWriter is /// valid until Close. The contents are buffered in memory and written to sink /// on Close ColumnWriter* column(int i); /** * Number of rows that shall be written as part of this RowGroup. */ int64_t num_rows() const; /// \brief total uncompressed bytes written by the page writer int64_t total_bytes_written() const; /// \brief total bytes still compressed but not written by the page writer. /// It will always return 0 from the SerializedPageWriter. int64_t total_compressed_bytes() const; /// \brief total compressed bytes written by the page writer int64_t total_compressed_bytes_written() const; /// Returns whether the current RowGroupWriter is in the buffered mode and is created /// by calling ParquetFileWriter::AppendBufferedRowGroup. bool buffered() const; private: // Holds a pointer to an instance of Contents implementation std::unique_ptr contents_; }; PARQUET_EXPORT void WriteFileMetaData(const FileMetaData& file_metadata, ::arrow::io::OutputStream* sink); PARQUET_EXPORT void WriteMetaDataFile(const FileMetaData& file_metadata, ::arrow::io::OutputStream* sink); PARQUET_EXPORT void WriteEncryptedFileMetadata(const FileMetaData& file_metadata, ArrowOutputStream* sink, const std::shared_ptr& encryptor, bool encrypt_footer); PARQUET_EXPORT void WriteEncryptedFileMetadata(const FileMetaData& file_metadata, ::arrow::io::OutputStream* sink, const std::shared_ptr& encryptor = NULLPTR, bool encrypt_footer = false); PARQUET_EXPORT void WriteFileCryptoMetaData(const FileCryptoMetaData& crypto_metadata, ::arrow::io::OutputStream* sink); class PARQUET_EXPORT ParquetFileWriter { public: // Forward declare a virtual class 'Contents' to aid dependency injection and more // easily create test fixtures // An implementation of the Contents class is defined in the .cc file struct Contents { Contents(std::shared_ptr<::parquet::schema::GroupNode> schema, std::shared_ptr key_value_metadata) : schema_(), key_value_metadata_(std::move(key_value_metadata)) { schema_.Init(std::move(schema)); } virtual ~Contents() {} // Perform any cleanup associated with the file contents virtual void Close() = 0; virtual RowGroupWriter* AppendRowGroup() = 0; virtual RowGroupWriter* AppendBufferedRowGroup() = 0; virtual int64_t num_rows() const = 0; virtual int num_columns() const = 0; virtual int num_row_groups() const = 0; virtual const std::shared_ptr& properties() const = 0; const std::shared_ptr& key_value_metadata() const { return key_value_metadata_; } virtual void AddKeyValueMetadata( const std::shared_ptr& key_value_metadata) = 0; // Return const-pointer to make it clear that this object is not to be copied const SchemaDescriptor* schema() const { return &schema_; } SchemaDescriptor schema_; /// This should be the only place this is stored. Everything else is a const reference std::shared_ptr key_value_metadata_; const std::shared_ptr& metadata() const { return file_metadata_; } std::shared_ptr file_metadata_; }; ParquetFileWriter(); ~ParquetFileWriter(); static std::unique_ptr Open( std::shared_ptr<::arrow::io::OutputStream> sink, std::shared_ptr schema, std::shared_ptr properties = default_writer_properties(), std::shared_ptr key_value_metadata = NULLPTR); void Open(std::unique_ptr contents); void Close(); /// Construct a RowGroupWriter with an arbitrary number of rows. /// /// Ownership is solely within the ParquetFileWriter. The RowGroupWriter is only valid /// until the next call to AppendRowGroup or AppendBufferedRowGroup or Close. RowGroupWriter* AppendRowGroup(); /// Construct a RowGroupWriter that buffers all the values until the RowGroup is ready. /// Use this if you want to write a RowGroup based on a certain size /// /// Ownership is solely within the ParquetFileWriter. The RowGroupWriter is only valid /// until the next call to AppendRowGroup or AppendBufferedRowGroup or Close. RowGroupWriter* AppendBufferedRowGroup(); /// \brief Add key-value metadata to the file. /// \param[in] key_value_metadata the metadata to add. /// \note This will overwrite any existing metadata with the same key(s). /// \throw ParquetException if Close() has been called. void AddKeyValueMetadata( const std::shared_ptr& key_value_metadata); /// Number of columns. /// /// This number is fixed during the lifetime of the writer as it is determined via /// the schema. int num_columns() const; /// Number of rows in the yet started RowGroups. /// /// Changes on the addition of a new RowGroup. int64_t num_rows() const; /// Number of started RowGroups. int num_row_groups() const; /// Configuration passed to the writer, e.g. the used Parquet format version. const std::shared_ptr& properties() const; /// Returns the file schema descriptor const SchemaDescriptor* schema() const; /// Returns a column descriptor in schema const ColumnDescriptor* descr(int i) const; /// Returns the file custom metadata const std::shared_ptr& key_value_metadata() const; /// Returns the file metadata, only available after calling Close(). const std::shared_ptr metadata() const; private: // Holds a pointer to an instance of Contents implementation std::unique_ptr contents_; std::shared_ptr file_metadata_; }; } // namespace parquet