Repository: M2Team/NanaZip Branch: main Commit: b4d39da98afb Files: 2780 Total size: 25.7 MB Directory structure: gitextract_ul7qcrqt/ ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dco.yml │ └── workflows/ │ ├── BuildBinaries.yml │ ├── UpdatePrecompiledBuildTools.yml │ └── UpdateWebsite.yml ├── .gitignore ├── BuildAllTargets.cmd ├── BuildAllTargets.proj ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Directory.Build.props ├── Documents/ │ ├── ChannelSwitchNote.md │ ├── DevelopmentRoadmapArchived.md │ ├── People.md │ ├── Policies.md │ ├── PolicyDefinitions/ │ │ ├── NanaZip.admx │ │ └── en-US/ │ │ └── NanaZip.adml │ ├── Privacy.md │ ├── ReleaseNotes.md │ ├── ReleaseNotesPreview.md │ ├── Section508/ │ │ ├── NanaZip.html │ │ └── NanaZip.yaml │ ├── SponsorEdition.md │ ├── UpstreamSynchronization.md │ ├── Versioning.md │ └── Website/ │ ├── .gitignore │ ├── .vscode/ │ │ ├── extensions.json │ │ ├── launch.json │ │ └── mcp.json │ ├── ReadMe.md │ ├── astro.config.mjs │ ├── package.json │ ├── src/ │ │ ├── assets/ │ │ │ └── styles/ │ │ │ ├── button.css │ │ │ ├── global.css │ │ │ ├── icons.css │ │ │ ├── image.css │ │ │ ├── pages/ │ │ │ │ └── index.css │ │ │ ├── text.css │ │ │ └── theme.css │ │ ├── components/ │ │ │ ├── Footer/ │ │ │ │ ├── Footer.astro │ │ │ │ └── Footer.css │ │ │ ├── InfoBar/ │ │ │ │ ├── InfoBar.astro │ │ │ │ └── InfoBar.scss │ │ │ ├── Navbar/ │ │ │ │ ├── Navbar.astro │ │ │ │ ├── Navbar.scss │ │ │ │ └── Navbar.ts │ │ │ ├── PageSection/ │ │ │ │ ├── PageSection.astro │ │ │ │ └── PageSection.scss │ │ │ ├── StoreBadge/ │ │ │ │ ├── StoreBadge.astro │ │ │ │ ├── StoreBadge.css │ │ │ │ └── StoreBadge.ts │ │ │ ├── ThemedLocalPicture/ │ │ │ │ └── ThemedLocalPicture.astro │ │ │ └── Tree/ │ │ │ ├── Tree.astro │ │ │ └── Tree.css │ │ ├── layouts/ │ │ │ └── Layout.astro │ │ └── pages/ │ │ ├── downloads.astro │ │ ├── index.astro │ │ └── section508.astro │ └── tsconfig.json ├── K7Base/ │ ├── K7Base.def │ ├── K7Base.h │ ├── K7Base.props │ ├── K7Base.vcxproj │ ├── K7BaseDetours.cpp │ ├── K7BaseHash.cpp │ ├── K7BaseInitialize.cpp │ ├── K7BaseMitigations.cpp │ ├── K7BaseModern.cpp │ ├── K7BasePolicies.cpp │ ├── K7BasePrivate.h │ ├── K7BaseRedirector.cpp │ ├── K7BaseStatic.props │ ├── K7BaseStatic.vcxproj │ └── ReadMe.md ├── K7User/ │ ├── K7User.def │ ├── K7User.h │ ├── K7User.props │ ├── K7User.vcxproj │ ├── K7UserDarkMode.cpp │ ├── K7UserModern.cpp │ ├── K7UserPrivate.h │ ├── K7UserRedirector.cpp │ ├── K7UserStatic.props │ ├── K7UserStatic.vcxproj │ └── ReadMe.md ├── License.md ├── NanaZip.Build.Tasks/ │ ├── NanaZip.Build.Tasks.csproj │ ├── RefreshAppxManifestVersion.cs │ └── RefreshProjectBuildNumberDate.cs ├── NanaZip.Codecs/ │ ├── BLAKE3/ │ │ ├── blake3.c │ │ ├── blake3.h │ │ ├── blake3_avx2_x86-64_windows_msvc.asm │ │ ├── blake3_avx512_x86-64_windows_msvc.asm │ │ ├── blake3_dispatch.c │ │ ├── blake3_impl.h │ │ ├── blake3_neon.c │ │ ├── blake3_portable.c │ │ ├── blake3_sse2_x86-64_windows_msvc.asm │ │ └── blake3_sse41_x86-64_windows_msvc.asm │ ├── Brotli/ │ │ ├── common/ │ │ │ ├── constants.c │ │ │ ├── constants.h │ │ │ ├── context.c │ │ │ ├── context.h │ │ │ ├── dictionary.c │ │ │ ├── dictionary.h │ │ │ ├── dictionary_inc.h │ │ │ ├── platform.c │ │ │ ├── platform.h │ │ │ ├── shared_dictionary.c │ │ │ ├── shared_dictionary_internal.h │ │ │ ├── static_init.h │ │ │ ├── transform.c │ │ │ ├── transform.h │ │ │ └── version.h │ │ ├── dec/ │ │ │ ├── bit_reader.c │ │ │ ├── bit_reader.h │ │ │ ├── dec_static_init.c │ │ │ ├── decode.c │ │ │ ├── huffman.c │ │ │ ├── huffman.h │ │ │ ├── prefix.c │ │ │ ├── prefix.h │ │ │ ├── prefix_inc.h │ │ │ ├── state.c │ │ │ ├── state.h │ │ │ └── static_init.h │ │ ├── enc/ │ │ │ ├── backward_references.c │ │ │ ├── backward_references.h │ │ │ ├── backward_references_hq.c │ │ │ ├── backward_references_hq.h │ │ │ ├── backward_references_inc.h │ │ │ ├── bit_cost.c │ │ │ ├── bit_cost.h │ │ │ ├── bit_cost_inc.h │ │ │ ├── block_encoder_inc.h │ │ │ ├── block_splitter.c │ │ │ ├── block_splitter.h │ │ │ ├── block_splitter_inc.h │ │ │ ├── brotli_bit_stream.c │ │ │ ├── brotli_bit_stream.h │ │ │ ├── cluster.c │ │ │ ├── cluster.h │ │ │ ├── cluster_inc.h │ │ │ ├── command.c │ │ │ ├── command.h │ │ │ ├── compound_dictionary.c │ │ │ ├── compound_dictionary.h │ │ │ ├── compress_fragment.c │ │ │ ├── compress_fragment.h │ │ │ ├── compress_fragment_two_pass.c │ │ │ ├── compress_fragment_two_pass.h │ │ │ ├── dictionary_hash.c │ │ │ ├── dictionary_hash.h │ │ │ ├── dictionary_hash_inc.h │ │ │ ├── enc_static_init.c │ │ │ ├── encode.c │ │ │ ├── encoder_dict.c │ │ │ ├── encoder_dict.h │ │ │ ├── entropy_encode.c │ │ │ ├── entropy_encode.h │ │ │ ├── entropy_encode_static.h │ │ │ ├── fast_log.c │ │ │ ├── fast_log.h │ │ │ ├── find_match_length.h │ │ │ ├── hash.h │ │ │ ├── hash_base.h │ │ │ ├── hash_composite_inc.h │ │ │ ├── hash_forgetful_chain_inc.h │ │ │ ├── hash_longest_match64_inc.h │ │ │ ├── hash_longest_match64_simd_inc.h │ │ │ ├── hash_longest_match_inc.h │ │ │ ├── hash_longest_match_quickly_inc.h │ │ │ ├── hash_longest_match_simd_inc.h │ │ │ ├── hash_rolling_inc.h │ │ │ ├── hash_to_binary_tree_inc.h │ │ │ ├── histogram.c │ │ │ ├── histogram.h │ │ │ ├── histogram_inc.h │ │ │ ├── literal_cost.c │ │ │ ├── literal_cost.h │ │ │ ├── matching_tag_mask.h │ │ │ ├── memory.c │ │ │ ├── memory.h │ │ │ ├── metablock.c │ │ │ ├── metablock.h │ │ │ ├── metablock_inc.h │ │ │ ├── params.h │ │ │ ├── prefix.h │ │ │ ├── quality.h │ │ │ ├── ringbuffer.h │ │ │ ├── state.h │ │ │ ├── static_dict.c │ │ │ ├── static_dict.h │ │ │ ├── static_dict_lut.c │ │ │ ├── static_dict_lut.h │ │ │ ├── static_dict_lut_inc.h │ │ │ ├── static_init.h │ │ │ ├── utf8_util.c │ │ │ ├── utf8_util.h │ │ │ └── write_bits.h │ │ └── include/ │ │ └── brotli/ │ │ ├── decode.h │ │ ├── encode.h │ │ ├── port.h │ │ ├── shared_dictionary.h │ │ └── types.h │ ├── FastLZMA2/ │ │ ├── atomic.h │ │ ├── compiler.h │ │ ├── count.h │ │ ├── data_block.h │ │ ├── dict_buffer.c │ │ ├── dict_buffer.h │ │ ├── fast-lzma2.h │ │ ├── fastpos_table.h │ │ ├── fl2_common.c │ │ ├── fl2_compress.c │ │ ├── fl2_compress_internal.h │ │ ├── fl2_errors.h │ │ ├── fl2_internal.h │ │ ├── fl2_pool.c │ │ ├── fl2_pool.h │ │ ├── fl2_threading.c │ │ ├── fl2_threading.h │ │ ├── lzma2_enc.c │ │ ├── lzma2_enc.h │ │ ├── mem.h │ │ ├── platform.h │ │ ├── radix_bitpack.c │ │ ├── radix_engine.h │ │ ├── radix_get.h │ │ ├── radix_internal.h │ │ ├── radix_mf.c │ │ ├── radix_mf.h │ │ ├── radix_struct.c │ │ ├── range_enc.c │ │ ├── range_enc.h │ │ ├── util.c │ │ └── util.h │ ├── FreeBSD/ │ │ ├── dinode.h │ │ ├── dir.h │ │ └── fs.h │ ├── GmSSL/ │ │ ├── endian.h │ │ ├── sm3.c │ │ └── sm3.h │ ├── LZ4/ │ │ ├── lz4.c │ │ ├── lz4.h │ │ ├── lz4frame.c │ │ ├── lz4frame.h │ │ ├── lz4frame_static.h │ │ ├── lz4hc.c │ │ └── lz4hc.h │ ├── LZ5/ │ │ ├── lz5.c │ │ ├── lz5.h │ │ ├── lz5common.h │ │ ├── lz5frame.c │ │ ├── lz5frame.h │ │ ├── lz5frame_static.h │ │ ├── lz5hc.c │ │ ├── lz5hc.h │ │ └── mem.h │ ├── LittleFS/ │ │ ├── lfs.c │ │ ├── lfs.h │ │ ├── lfs_util.c │ │ └── lfs_util.h │ ├── Lizard/ │ │ ├── entropy/ │ │ │ ├── bitstream.h │ │ │ ├── compiler.h │ │ │ ├── debug.h │ │ │ ├── error_private.h │ │ │ ├── error_public.h │ │ │ ├── fse.h │ │ │ ├── hist.h │ │ │ ├── huf.h │ │ │ ├── lizard_entropy_common.c │ │ │ ├── lizard_fse_compress.c │ │ │ ├── lizard_fse_decompress.c │ │ │ ├── lizard_huf_compress.c │ │ │ ├── lizard_huf_decompress.c │ │ │ └── mem.h │ │ ├── lizard_common.h │ │ ├── lizard_compress.c │ │ ├── lizard_compress.h │ │ ├── lizard_compress_liz.h │ │ ├── lizard_compress_lz4.h │ │ ├── lizard_decompress.c │ │ ├── lizard_decompress.h │ │ ├── lizard_decompress_liz.h │ │ ├── lizard_decompress_lz4.h │ │ ├── lizard_frame.c │ │ ├── lizard_frame.h │ │ ├── lizard_frame_static.h │ │ ├── lizard_parser_fast.h │ │ ├── lizard_parser_fastbig.h │ │ ├── lizard_parser_fastsmall.h │ │ ├── lizard_parser_hashchain.h │ │ ├── lizard_parser_lowestprice.h │ │ ├── lizard_parser_nochain.h │ │ ├── lizard_parser_optimal.h │ │ └── lizard_parser_pricefast.h │ ├── Mile.Helpers.Portable.Base.Unstaged.cpp │ ├── Mile.Helpers.Portable.Base.Unstaged.h │ ├── NanaZip.Codecs.Archive.DotNetSingleFile.cpp │ ├── NanaZip.Codecs.Archive.ElectronAsar.cpp │ ├── NanaZip.Codecs.Archive.Littlefs.cpp │ ├── NanaZip.Codecs.Archive.Romfs.cpp │ ├── NanaZip.Codecs.Archive.Ufs.cpp │ ├── NanaZip.Codecs.Archive.WebAssembly.cpp │ ├── NanaZip.Codecs.Archive.Zealfs.cpp │ ├── NanaZip.Codecs.Hash.Aich.cpp │ ├── NanaZip.Codecs.Hash.BCryptProvider.cpp │ ├── NanaZip.Codecs.Hash.Blake2b.cpp │ ├── NanaZip.Codecs.Hash.Blake3.cpp │ ├── NanaZip.Codecs.Hash.Ed2k.cpp │ ├── NanaZip.Codecs.Hash.EdonR224.cpp │ ├── NanaZip.Codecs.Hash.EdonR256.cpp │ ├── NanaZip.Codecs.Hash.EdonR384.cpp │ ├── NanaZip.Codecs.Hash.EdonR512.cpp │ ├── NanaZip.Codecs.Hash.Gost12256.cpp │ ├── NanaZip.Codecs.Hash.Gost12512.cpp │ ├── NanaZip.Codecs.Hash.Gost94.cpp │ ├── NanaZip.Codecs.Hash.Gost94CryptoPro.cpp │ ├── NanaZip.Codecs.Hash.Has160.cpp │ ├── NanaZip.Codecs.Hash.Ripemd160.cpp │ ├── NanaZip.Codecs.Hash.Sha224.cpp │ ├── NanaZip.Codecs.Hash.Sha3224.cpp │ ├── NanaZip.Codecs.Hash.Sha3256.cpp │ ├── NanaZip.Codecs.Hash.Sha3384.cpp │ ├── NanaZip.Codecs.Hash.Sha3512.cpp │ ├── NanaZip.Codecs.Hash.Sm3.cpp │ ├── NanaZip.Codecs.Hash.Snefru128.cpp │ ├── NanaZip.Codecs.Hash.Snefru256.cpp │ ├── NanaZip.Codecs.Hash.Tiger.cpp │ ├── NanaZip.Codecs.Hash.Tiger2.cpp │ ├── NanaZip.Codecs.Hash.Torrent.cpp │ ├── NanaZip.Codecs.Hash.Tth.cpp │ ├── NanaZip.Codecs.Hash.Whirlpool.cpp │ ├── NanaZip.Codecs.Hash.Xxh3128.cpp │ ├── NanaZip.Codecs.Hash.Xxh32.cpp │ ├── NanaZip.Codecs.Hash.Xxh364.cpp │ ├── NanaZip.Codecs.Hash.Xxh64.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.Brotli.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.Brotli.h │ ├── NanaZip.Codecs.MultiThreadWrapper.Common.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.Common.h │ ├── NanaZip.Codecs.MultiThreadWrapper.LZ4.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.LZ4.h │ ├── NanaZip.Codecs.MultiThreadWrapper.LZ5.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.LZ5.h │ ├── NanaZip.Codecs.MultiThreadWrapper.Lizard.cpp │ ├── NanaZip.Codecs.MultiThreadWrapper.Lizard.h │ ├── NanaZip.Codecs.SevenZipWrapper.cpp │ ├── NanaZip.Codecs.SevenZipWrapper.h │ ├── NanaZip.Codecs.Sfx.Shared.props │ ├── NanaZip.Codecs.Sfx.Shared.vcxproj │ ├── NanaZip.Codecs.Sfx.Shared.vcxproj.filters │ ├── NanaZip.Codecs.Specification.Fat.h │ ├── NanaZip.Codecs.Specification.Zealfs.h │ ├── NanaZip.Codecs.cpp │ ├── NanaZip.Codecs.def │ ├── NanaZip.Codecs.h │ ├── NanaZip.Codecs.props │ ├── NanaZip.Codecs.vcxproj │ ├── NanaZip.Codecs.vcxproj.filters │ ├── RHash/ │ │ ├── aich.c │ │ ├── aich.h │ │ ├── blake2b.c │ │ ├── blake2b.h │ │ ├── byte_order.c │ │ ├── byte_order.h │ │ ├── edonr.c │ │ ├── edonr.h │ │ ├── gost12.c │ │ ├── gost12.h │ │ ├── gost94.c │ │ ├── gost94.h │ │ ├── has160.c │ │ ├── has160.h │ │ ├── hex.c │ │ ├── hex.h │ │ ├── rhash_sha256.c │ │ ├── rhash_util.c │ │ ├── ripemd-160.c │ │ ├── ripemd-160.h │ │ ├── sha1.h │ │ ├── sha256.h │ │ ├── sha3.c │ │ ├── sha3.h │ │ ├── snefru.c │ │ ├── snefru.h │ │ ├── tiger.c │ │ ├── tiger.h │ │ ├── tiger_sbox.c │ │ ├── torrent.c │ │ ├── torrent.h │ │ ├── tth.c │ │ ├── tth.h │ │ ├── ustd.h │ │ ├── util.h │ │ ├── whirlpool.c │ │ ├── whirlpool.h │ │ └── whirlpool_sbox.c │ ├── ZSTDMT/ │ │ ├── brotli-mt.h │ │ ├── brotli-mt_common.c │ │ ├── brotli-mt_compress.c │ │ ├── brotli-mt_decompress.c │ │ ├── list.h │ │ ├── lizard-mt.h │ │ ├── lizard-mt_common.c │ │ ├── lizard-mt_compress.c │ │ ├── lizard-mt_decompress.c │ │ ├── lz4-mt.h │ │ ├── lz4-mt_common.c │ │ ├── lz4-mt_compress.c │ │ ├── lz4-mt_decompress.c │ │ ├── lz5-mt.h │ │ ├── lz5-mt_common.c │ │ ├── lz5-mt_compress.c │ │ ├── lz5-mt_decompress.c │ │ ├── memmt.h │ │ ├── threading.h │ │ └── zstd-mt_threading.c │ ├── Zstandard/ │ │ ├── common/ │ │ │ ├── allocations.h │ │ │ ├── bits.h │ │ │ ├── bitstream.h │ │ │ ├── compiler.h │ │ │ ├── cpu.h │ │ │ ├── debug.c │ │ │ ├── debug.h │ │ │ ├── entropy_common.c │ │ │ ├── error_private.c │ │ │ ├── error_private.h │ │ │ ├── fse.h │ │ │ ├── fse_decompress.c │ │ │ ├── huf.h │ │ │ ├── mem.h │ │ │ ├── pool.c │ │ │ ├── pool.h │ │ │ ├── portability_macros.h │ │ │ ├── threading.c │ │ │ ├── threading.h │ │ │ ├── zstd_common.c │ │ │ ├── zstd_deps.h │ │ │ ├── zstd_internal.h │ │ │ └── zstd_trace.h │ │ ├── compress/ │ │ │ ├── clevels.h │ │ │ ├── fse_compress.c │ │ │ ├── hist.c │ │ │ ├── hist.h │ │ │ ├── huf_compress.c │ │ │ ├── zstd_compress.c │ │ │ ├── zstd_compress_internal.h │ │ │ ├── zstd_compress_literals.c │ │ │ ├── zstd_compress_literals.h │ │ │ ├── zstd_compress_sequences.c │ │ │ ├── zstd_compress_sequences.h │ │ │ ├── zstd_compress_superblock.c │ │ │ ├── zstd_compress_superblock.h │ │ │ ├── zstd_cwksp.h │ │ │ ├── zstd_double_fast.c │ │ │ ├── zstd_double_fast.h │ │ │ ├── zstd_fast.c │ │ │ ├── zstd_fast.h │ │ │ ├── zstd_lazy.c │ │ │ ├── zstd_lazy.h │ │ │ ├── zstd_ldm.c │ │ │ ├── zstd_ldm.h │ │ │ ├── zstd_ldm_geartab.h │ │ │ ├── zstd_opt.c │ │ │ ├── zstd_opt.h │ │ │ ├── zstd_preSplit.c │ │ │ ├── zstd_preSplit.h │ │ │ ├── zstdmt_compress.c │ │ │ └── zstdmt_compress.h │ │ ├── decompress/ │ │ │ ├── huf_decompress.c │ │ │ ├── zstd_ddict.c │ │ │ ├── zstd_ddict.h │ │ │ ├── zstd_decompress.c │ │ │ ├── zstd_decompress_block.c │ │ │ ├── zstd_decompress_block.h │ │ │ └── zstd_decompress_internal.h │ │ ├── legacy/ │ │ │ ├── zstd_legacy.h │ │ │ ├── zstd_v01.c │ │ │ ├── zstd_v01.h │ │ │ ├── zstd_v02.c │ │ │ ├── zstd_v02.h │ │ │ ├── zstd_v03.c │ │ │ ├── zstd_v03.h │ │ │ ├── zstd_v04.c │ │ │ ├── zstd_v04.h │ │ │ ├── zstd_v05.c │ │ │ ├── zstd_v05.h │ │ │ ├── zstd_v06.c │ │ │ ├── zstd_v06.h │ │ │ ├── zstd_v07.c │ │ │ └── zstd_v07.h │ │ ├── zstd.h │ │ └── zstd_errors.h │ └── xxHash/ │ ├── xxhash.c │ └── xxhash.h ├── NanaZip.Core/ │ ├── Extensions/ │ │ └── ZSCodecs/ │ │ ├── BrotliDecoder.cpp │ │ ├── BrotliDecoder.h │ │ ├── BrotliEncoder.cpp │ │ ├── BrotliEncoder.h │ │ ├── BrotliHandler.cpp │ │ ├── BrotliRegister.cpp │ │ ├── FastLzma2Encoder.cpp │ │ ├── FastLzma2Encoder.h │ │ ├── FastLzma2Register.cpp │ │ ├── LizardDecoder.cpp │ │ ├── LizardDecoder.h │ │ ├── LizardEncoder.cpp │ │ ├── LizardEncoder.h │ │ ├── LizardHandler.cpp │ │ ├── LizardRegister.cpp │ │ ├── Lz4Decoder.cpp │ │ ├── Lz4Decoder.h │ │ ├── Lz4Encoder.cpp │ │ ├── Lz4Encoder.h │ │ ├── Lz4Handler.cpp │ │ ├── Lz4Register.cpp │ │ ├── Lz5Decoder.cpp │ │ ├── Lz5Decoder.h │ │ ├── Lz5Encoder.cpp │ │ ├── Lz5Encoder.h │ │ ├── Lz5Handler.cpp │ │ ├── Lz5Register.cpp │ │ ├── LzHandler.cpp │ │ ├── ZstdDecoder.cpp │ │ ├── ZstdDecoder.h │ │ ├── ZstdEncoder.cpp │ │ ├── ZstdEncoder.h │ │ ├── ZstdHandler.cpp │ │ └── ZstdRegister.cpp │ ├── NanaZip.Core.Sfx.Console.manifest │ ├── NanaZip.Core.Sfx.Console.vcxproj │ ├── NanaZip.Core.Sfx.Console.vcxproj.filters │ ├── NanaZip.Core.Sfx.Setup.manifest │ ├── NanaZip.Core.Sfx.Setup.vcxproj │ ├── NanaZip.Core.Sfx.Setup.vcxproj.filters │ ├── NanaZip.Core.Sfx.Shared.props │ ├── NanaZip.Core.Sfx.Shared.vcxproj │ ├── NanaZip.Core.Sfx.Shared.vcxproj.filters │ ├── NanaZip.Core.Sfx.Windows.Resources.h │ ├── NanaZip.Core.Sfx.Windows.Resources.rc │ ├── NanaZip.Core.Sfx.Windows.manifest │ ├── NanaZip.Core.Sfx.Windows.vcxproj │ ├── NanaZip.Core.Sfx.Windows.vcxproj.filters │ ├── NanaZip.Core.vcxproj │ ├── NanaZip.Core.vcxproj.filters │ ├── SevenZip/ │ │ ├── .gitignore │ │ ├── C/ │ │ │ ├── 7zBuf.h │ │ │ ├── 7zBuf2.c │ │ │ ├── 7zCrc.c │ │ │ ├── 7zCrc.h │ │ │ ├── 7zCrcOpt.c │ │ │ ├── 7zStream.c │ │ │ ├── 7zTypes.h │ │ │ ├── 7zVersion.h │ │ │ ├── 7zWindows.h │ │ │ ├── Aes.c │ │ │ ├── Aes.h │ │ │ ├── AesOpt.c │ │ │ ├── Alloc.c │ │ │ ├── Alloc.h │ │ │ ├── Bcj2.c │ │ │ ├── Bcj2.h │ │ │ ├── Bcj2Enc.c │ │ │ ├── Blake2.h │ │ │ ├── Blake2s.c │ │ │ ├── Bra.c │ │ │ ├── Bra.h │ │ │ ├── Bra86.c │ │ │ ├── BwtSort.c │ │ │ ├── BwtSort.h │ │ │ ├── Compiler.h │ │ │ ├── CpuArch.c │ │ │ ├── CpuArch.h │ │ │ ├── Delta.c │ │ │ ├── Delta.h │ │ │ ├── DllSecur.c │ │ │ ├── DllSecur.h │ │ │ ├── HuffEnc.c │ │ │ ├── HuffEnc.h │ │ │ ├── LzFind.c │ │ │ ├── LzFind.h │ │ │ ├── LzFindMt.c │ │ │ ├── LzFindMt.h │ │ │ ├── LzFindOpt.c │ │ │ ├── LzHash.h │ │ │ ├── Lzma2Dec.c │ │ │ ├── Lzma2Dec.h │ │ │ ├── Lzma2DecMt.c │ │ │ ├── Lzma2DecMt.h │ │ │ ├── Lzma2Enc.c │ │ │ ├── Lzma2Enc.h │ │ │ ├── LzmaDec.c │ │ │ ├── LzmaDec.h │ │ │ ├── LzmaEnc.c │ │ │ ├── LzmaEnc.h │ │ │ ├── MtCoder.c │ │ │ ├── MtCoder.h │ │ │ ├── MtDec.c │ │ │ ├── MtDec.h │ │ │ ├── Ppmd.h │ │ │ ├── Ppmd7.c │ │ │ ├── Ppmd7.h │ │ │ ├── Ppmd7Dec.c │ │ │ ├── Ppmd7Enc.c │ │ │ ├── Ppmd7aDec.c │ │ │ ├── Ppmd8.c │ │ │ ├── Ppmd8.h │ │ │ ├── Ppmd8Dec.c │ │ │ ├── Ppmd8Enc.c │ │ │ ├── Precomp.h │ │ │ ├── RotateDefs.h │ │ │ ├── Sha1.h │ │ │ ├── Sha256.h │ │ │ ├── Sha512.h │ │ │ ├── Sort.c │ │ │ ├── Sort.h │ │ │ ├── SwapBytes.c │ │ │ ├── SwapBytes.h │ │ │ ├── Threads.c │ │ │ ├── Threads.h │ │ │ ├── Xz.c │ │ │ ├── Xz.h │ │ │ ├── XzCrc64.c │ │ │ ├── XzCrc64.h │ │ │ ├── XzCrc64Opt.c │ │ │ ├── XzDec.c │ │ │ ├── XzEnc.c │ │ │ ├── XzEnc.h │ │ │ └── XzIn.c │ │ └── CPP/ │ │ ├── 7zip/ │ │ │ ├── Archive/ │ │ │ │ ├── 7z/ │ │ │ │ │ ├── 7zCompressionMode.h │ │ │ │ │ ├── 7zDecode.cpp │ │ │ │ │ ├── 7zDecode.h │ │ │ │ │ ├── 7zEncode.cpp │ │ │ │ │ ├── 7zEncode.h │ │ │ │ │ ├── 7zExtract.cpp │ │ │ │ │ ├── 7zFolderInStream.cpp │ │ │ │ │ ├── 7zFolderInStream.h │ │ │ │ │ ├── 7zHandler.cpp │ │ │ │ │ ├── 7zHandler.h │ │ │ │ │ ├── 7zHandlerOut.cpp │ │ │ │ │ ├── 7zHeader.cpp │ │ │ │ │ ├── 7zHeader.h │ │ │ │ │ ├── 7zIn.cpp │ │ │ │ │ ├── 7zIn.h │ │ │ │ │ ├── 7zItem.h │ │ │ │ │ ├── 7zOut.cpp │ │ │ │ │ ├── 7zOut.h │ │ │ │ │ ├── 7zProperties.cpp │ │ │ │ │ ├── 7zProperties.h │ │ │ │ │ ├── 7zRegister.cpp │ │ │ │ │ ├── 7zSpecStream.h │ │ │ │ │ ├── 7zUpdate.cpp │ │ │ │ │ ├── 7zUpdate.h │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── ApfsHandler.cpp │ │ │ │ ├── ApmHandler.cpp │ │ │ │ ├── ArHandler.cpp │ │ │ │ ├── Archive2.def │ │ │ │ ├── ArchiveExports.cpp │ │ │ │ ├── ArjHandler.cpp │ │ │ │ ├── AvbHandler.cpp │ │ │ │ ├── Base64Handler.cpp │ │ │ │ ├── Bz2Handler.cpp │ │ │ │ ├── Cab/ │ │ │ │ │ ├── CabBlockInStream.cpp │ │ │ │ │ ├── CabBlockInStream.h │ │ │ │ │ ├── CabHandler.cpp │ │ │ │ │ ├── CabHandler.h │ │ │ │ │ ├── CabHeader.cpp │ │ │ │ │ ├── CabHeader.h │ │ │ │ │ ├── CabIn.cpp │ │ │ │ │ ├── CabIn.h │ │ │ │ │ ├── CabItem.h │ │ │ │ │ ├── CabRegister.cpp │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── Chm/ │ │ │ │ │ ├── ChmHandler.cpp │ │ │ │ │ ├── ChmHandler.h │ │ │ │ │ ├── ChmIn.cpp │ │ │ │ │ ├── ChmIn.h │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── ComHandler.cpp │ │ │ │ ├── Common/ │ │ │ │ │ ├── CoderMixer2.cpp │ │ │ │ │ ├── CoderMixer2.h │ │ │ │ │ ├── DummyOutStream.cpp │ │ │ │ │ ├── DummyOutStream.h │ │ │ │ │ ├── FindSignature.cpp │ │ │ │ │ ├── FindSignature.h │ │ │ │ │ ├── HandlerOut.cpp │ │ │ │ │ ├── HandlerOut.h │ │ │ │ │ ├── InStreamWithCRC.cpp │ │ │ │ │ ├── InStreamWithCRC.h │ │ │ │ │ ├── ItemNameUtils.cpp │ │ │ │ │ ├── ItemNameUtils.h │ │ │ │ │ ├── MultiStream.cpp │ │ │ │ │ ├── MultiStream.h │ │ │ │ │ ├── OutStreamWithCRC.cpp │ │ │ │ │ ├── OutStreamWithCRC.h │ │ │ │ │ ├── OutStreamWithSha1.cpp │ │ │ │ │ ├── OutStreamWithSha1.h │ │ │ │ │ ├── ParseProperties.h │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── CpioHandler.cpp │ │ │ │ ├── CramfsHandler.cpp │ │ │ │ ├── DllExports2.cpp │ │ │ │ ├── DmgHandler.cpp │ │ │ │ ├── ElfHandler.cpp │ │ │ │ ├── ExtHandler.cpp │ │ │ │ ├── FatHandler.cpp │ │ │ │ ├── FlvHandler.cpp │ │ │ │ ├── GptHandler.cpp │ │ │ │ ├── GzHandler.cpp │ │ │ │ ├── HandlerCont.cpp │ │ │ │ ├── HandlerCont.h │ │ │ │ ├── HfsHandler.cpp │ │ │ │ ├── HfsHandler.h │ │ │ │ ├── IArchive.h │ │ │ │ ├── IhexHandler.cpp │ │ │ │ ├── Iso/ │ │ │ │ │ ├── IsoHandler.cpp │ │ │ │ │ ├── IsoHandler.h │ │ │ │ │ ├── IsoHeader.cpp │ │ │ │ │ ├── IsoHeader.h │ │ │ │ │ ├── IsoIn.cpp │ │ │ │ │ ├── IsoIn.h │ │ │ │ │ ├── IsoItem.h │ │ │ │ │ ├── IsoRegister.cpp │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── LpHandler.cpp │ │ │ │ ├── LvmHandler.cpp │ │ │ │ ├── LzhHandler.cpp │ │ │ │ ├── LzmaHandler.cpp │ │ │ │ ├── MachoHandler.cpp │ │ │ │ ├── MbrHandler.cpp │ │ │ │ ├── MslzHandler.cpp │ │ │ │ ├── MubHandler.cpp │ │ │ │ ├── Nsis/ │ │ │ │ │ ├── NsisDecode.cpp │ │ │ │ │ ├── NsisDecode.h │ │ │ │ │ ├── NsisHandler.cpp │ │ │ │ │ ├── NsisHandler.h │ │ │ │ │ ├── NsisIn.cpp │ │ │ │ │ ├── NsisIn.h │ │ │ │ │ ├── NsisRegister.cpp │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── NtfsHandler.cpp │ │ │ │ ├── PeHandler.cpp │ │ │ │ ├── PpmdHandler.cpp │ │ │ │ ├── QcowHandler.cpp │ │ │ │ ├── Rar/ │ │ │ │ │ ├── Rar5Handler.cpp │ │ │ │ │ ├── Rar5Handler.h │ │ │ │ │ ├── RarHandler.cpp │ │ │ │ │ ├── RarHandler.h │ │ │ │ │ ├── RarHeader.h │ │ │ │ │ ├── RarItem.h │ │ │ │ │ ├── RarVol.h │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── RpmHandler.cpp │ │ │ │ ├── SparseHandler.cpp │ │ │ │ ├── SplitHandler.cpp │ │ │ │ ├── SquashfsHandler.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── SwfHandler.cpp │ │ │ │ ├── Tar/ │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── TarHandler.cpp │ │ │ │ │ ├── TarHandler.h │ │ │ │ │ ├── TarHandlerOut.cpp │ │ │ │ │ ├── TarHeader.cpp │ │ │ │ │ ├── TarHeader.h │ │ │ │ │ ├── TarIn.cpp │ │ │ │ │ ├── TarIn.h │ │ │ │ │ ├── TarItem.h │ │ │ │ │ ├── TarOut.cpp │ │ │ │ │ ├── TarOut.h │ │ │ │ │ ├── TarRegister.cpp │ │ │ │ │ ├── TarUpdate.cpp │ │ │ │ │ └── TarUpdate.h │ │ │ │ ├── Udf/ │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── UdfHandler.cpp │ │ │ │ │ ├── UdfHandler.h │ │ │ │ │ ├── UdfIn.cpp │ │ │ │ │ └── UdfIn.h │ │ │ │ ├── UefiHandler.cpp │ │ │ │ ├── VdiHandler.cpp │ │ │ │ ├── VhdHandler.cpp │ │ │ │ ├── VhdxHandler.cpp │ │ │ │ ├── VmdkHandler.cpp │ │ │ │ ├── Wim/ │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── WimHandler.cpp │ │ │ │ │ ├── WimHandler.h │ │ │ │ │ ├── WimHandlerOut.cpp │ │ │ │ │ ├── WimIn.cpp │ │ │ │ │ ├── WimIn.h │ │ │ │ │ └── WimRegister.cpp │ │ │ │ ├── XarHandler.cpp │ │ │ │ ├── XzHandler.cpp │ │ │ │ ├── XzHandler.h │ │ │ │ ├── ZHandler.cpp │ │ │ │ └── Zip/ │ │ │ │ ├── StdAfx.h │ │ │ │ ├── ZipAddCommon.cpp │ │ │ │ ├── ZipAddCommon.h │ │ │ │ ├── ZipCompressionMode.h │ │ │ │ ├── ZipHandler.cpp │ │ │ │ ├── ZipHandler.h │ │ │ │ ├── ZipHandlerOut.cpp │ │ │ │ ├── ZipHeader.h │ │ │ │ ├── ZipIn.cpp │ │ │ │ ├── ZipIn.h │ │ │ │ ├── ZipItem.cpp │ │ │ │ ├── ZipItem.h │ │ │ │ ├── ZipOut.cpp │ │ │ │ ├── ZipOut.h │ │ │ │ ├── ZipRegister.cpp │ │ │ │ ├── ZipUpdate.cpp │ │ │ │ └── ZipUpdate.h │ │ │ ├── Bundles/ │ │ │ │ ├── SFXCon/ │ │ │ │ │ ├── SfxCon.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ └── resource.rc │ │ │ │ ├── SFXSetup/ │ │ │ │ │ ├── ExtractCallbackSfx.cpp │ │ │ │ │ ├── ExtractCallbackSfx.h │ │ │ │ │ ├── ExtractEngine.cpp │ │ │ │ │ ├── ExtractEngine.h │ │ │ │ │ ├── SfxSetup.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── resource.h │ │ │ │ │ └── resource.rc │ │ │ │ └── SFXWin/ │ │ │ │ ├── SfxWin.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── resource.h │ │ │ │ └── resource.rc │ │ │ ├── Common/ │ │ │ │ ├── CWrappers.cpp │ │ │ │ ├── CWrappers.h │ │ │ │ ├── CreateCoder.cpp │ │ │ │ ├── CreateCoder.h │ │ │ │ ├── FilePathAutoRename.cpp │ │ │ │ ├── FilePathAutoRename.h │ │ │ │ ├── FileStreams.cpp │ │ │ │ ├── FileStreams.h │ │ │ │ ├── FilterCoder.cpp │ │ │ │ ├── FilterCoder.h │ │ │ │ ├── InBuffer.cpp │ │ │ │ ├── InBuffer.h │ │ │ │ ├── InOutTempBuffer.cpp │ │ │ │ ├── InOutTempBuffer.h │ │ │ │ ├── LimitedStreams.cpp │ │ │ │ ├── LimitedStreams.h │ │ │ │ ├── LockedStream.h │ │ │ │ ├── MemBlocks.cpp │ │ │ │ ├── MemBlocks.h │ │ │ │ ├── MethodId.h │ │ │ │ ├── MethodProps.cpp │ │ │ │ ├── MethodProps.h │ │ │ │ ├── OffsetStream.cpp │ │ │ │ ├── OffsetStream.h │ │ │ │ ├── OutBuffer.cpp │ │ │ │ ├── OutBuffer.h │ │ │ │ ├── OutMemStream.cpp │ │ │ │ ├── OutMemStream.h │ │ │ │ ├── ProgressMt.cpp │ │ │ │ ├── ProgressMt.h │ │ │ │ ├── ProgressUtils.cpp │ │ │ │ ├── ProgressUtils.h │ │ │ │ ├── PropId.cpp │ │ │ │ ├── RegisterArc.h │ │ │ │ ├── RegisterCodec.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── StreamBinder.cpp │ │ │ │ ├── StreamBinder.h │ │ │ │ ├── StreamObjects.cpp │ │ │ │ ├── StreamObjects.h │ │ │ │ ├── StreamUtils.cpp │ │ │ │ ├── StreamUtils.h │ │ │ │ ├── UniqBlocks.cpp │ │ │ │ ├── UniqBlocks.h │ │ │ │ ├── VirtThread.cpp │ │ │ │ └── VirtThread.h │ │ │ ├── Compress/ │ │ │ │ ├── BZip2Const.h │ │ │ │ ├── BZip2Crc.cpp │ │ │ │ ├── BZip2Crc.h │ │ │ │ ├── BZip2Decoder.cpp │ │ │ │ ├── BZip2Decoder.h │ │ │ │ ├── BZip2Encoder.cpp │ │ │ │ ├── BZip2Encoder.h │ │ │ │ ├── BZip2Register.cpp │ │ │ │ ├── Bcj2Coder.cpp │ │ │ │ ├── Bcj2Coder.h │ │ │ │ ├── Bcj2Register.cpp │ │ │ │ ├── BcjCoder.cpp │ │ │ │ ├── BcjCoder.h │ │ │ │ ├── BcjRegister.cpp │ │ │ │ ├── BitlDecoder.cpp │ │ │ │ ├── BitlDecoder.h │ │ │ │ ├── BitlEncoder.h │ │ │ │ ├── BitmDecoder.h │ │ │ │ ├── BitmEncoder.h │ │ │ │ ├── BranchMisc.cpp │ │ │ │ ├── BranchMisc.h │ │ │ │ ├── BranchRegister.cpp │ │ │ │ ├── ByteSwap.cpp │ │ │ │ ├── CodecExports.cpp │ │ │ │ ├── CopyCoder.cpp │ │ │ │ ├── CopyCoder.h │ │ │ │ ├── CopyRegister.cpp │ │ │ │ ├── Deflate64Register.cpp │ │ │ │ ├── DeflateConst.h │ │ │ │ ├── DeflateDecoder.cpp │ │ │ │ ├── DeflateDecoder.h │ │ │ │ ├── DeflateEncoder.cpp │ │ │ │ ├── DeflateEncoder.h │ │ │ │ ├── DeflateRegister.cpp │ │ │ │ ├── DeltaFilter.cpp │ │ │ │ ├── HuffmanDecoder.h │ │ │ │ ├── ImplodeDecoder.cpp │ │ │ │ ├── ImplodeDecoder.h │ │ │ │ ├── LzOutWindow.cpp │ │ │ │ ├── LzOutWindow.h │ │ │ │ ├── LzfseDecoder.cpp │ │ │ │ ├── LzfseDecoder.h │ │ │ │ ├── LzhDecoder.cpp │ │ │ │ ├── LzhDecoder.h │ │ │ │ ├── Lzma2Decoder.cpp │ │ │ │ ├── Lzma2Decoder.h │ │ │ │ ├── Lzma2Encoder.cpp │ │ │ │ ├── Lzma2Encoder.h │ │ │ │ ├── Lzma2Register.cpp │ │ │ │ ├── LzmaDecoder.cpp │ │ │ │ ├── LzmaDecoder.h │ │ │ │ ├── LzmaEncoder.cpp │ │ │ │ ├── LzmaEncoder.h │ │ │ │ ├── LzmaRegister.cpp │ │ │ │ ├── LzmsDecoder.cpp │ │ │ │ ├── LzmsDecoder.h │ │ │ │ ├── Lzx.h │ │ │ │ ├── LzxDecoder.cpp │ │ │ │ ├── LzxDecoder.h │ │ │ │ ├── Mtf8.h │ │ │ │ ├── PpmdDecoder.cpp │ │ │ │ ├── PpmdDecoder.h │ │ │ │ ├── PpmdEncoder.cpp │ │ │ │ ├── PpmdEncoder.h │ │ │ │ ├── PpmdRegister.cpp │ │ │ │ ├── PpmdZip.cpp │ │ │ │ ├── PpmdZip.h │ │ │ │ ├── QuantumDecoder.cpp │ │ │ │ ├── QuantumDecoder.h │ │ │ │ ├── Rar1Decoder.cpp │ │ │ │ ├── Rar1Decoder.h │ │ │ │ ├── Rar2Decoder.cpp │ │ │ │ ├── Rar2Decoder.h │ │ │ │ ├── Rar3Decoder.cpp │ │ │ │ ├── Rar3Decoder.h │ │ │ │ ├── Rar3Vm.cpp │ │ │ │ ├── Rar3Vm.h │ │ │ │ ├── Rar5Decoder.cpp │ │ │ │ ├── Rar5Decoder.h │ │ │ │ ├── RarCodecsRegister.cpp │ │ │ │ ├── ShrinkDecoder.cpp │ │ │ │ ├── ShrinkDecoder.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── XpressDecoder.cpp │ │ │ │ ├── XpressDecoder.h │ │ │ │ ├── XzDecoder.cpp │ │ │ │ ├── XzDecoder.h │ │ │ │ ├── XzEncoder.cpp │ │ │ │ ├── XzEncoder.h │ │ │ │ ├── ZDecoder.cpp │ │ │ │ ├── ZDecoder.h │ │ │ │ ├── ZlibDecoder.cpp │ │ │ │ ├── ZlibDecoder.h │ │ │ │ ├── ZlibEncoder.cpp │ │ │ │ └── ZlibEncoder.h │ │ │ ├── Crypto/ │ │ │ │ ├── 7zAes.cpp │ │ │ │ ├── 7zAes.h │ │ │ │ ├── 7zAesRegister.cpp │ │ │ │ ├── HmacSha1.cpp │ │ │ │ ├── HmacSha1.h │ │ │ │ ├── HmacSha256.cpp │ │ │ │ ├── HmacSha256.h │ │ │ │ ├── MyAes.cpp │ │ │ │ ├── MyAes.h │ │ │ │ ├── MyAesReg.cpp │ │ │ │ ├── Pbkdf2HmacSha1.cpp │ │ │ │ ├── Pbkdf2HmacSha1.h │ │ │ │ ├── RandGen.cpp │ │ │ │ ├── RandGen.h │ │ │ │ ├── Rar20Crypto.cpp │ │ │ │ ├── Rar20Crypto.h │ │ │ │ ├── Rar5Aes.cpp │ │ │ │ ├── Rar5Aes.h │ │ │ │ ├── RarAes.cpp │ │ │ │ ├── RarAes.h │ │ │ │ ├── Sha1Cls.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── WzAes.cpp │ │ │ │ ├── WzAes.h │ │ │ │ ├── ZipCrypto.cpp │ │ │ │ ├── ZipCrypto.h │ │ │ │ ├── ZipStrong.cpp │ │ │ │ └── ZipStrong.h │ │ │ ├── GuiCommon.rc │ │ │ ├── Guid.txt │ │ │ ├── ICoder.h │ │ │ ├── IDecl.h │ │ │ ├── IPassword.h │ │ │ ├── IProgress.h │ │ │ ├── IStream.h │ │ │ ├── MyVersion.h │ │ │ ├── PropID.h │ │ │ └── UI/ │ │ │ ├── Common/ │ │ │ │ ├── ArchiveCommandLine.h │ │ │ │ ├── ArchiveExtractCallback.cpp │ │ │ │ ├── ArchiveExtractCallback.h │ │ │ │ ├── ArchiveOpenCallback.cpp │ │ │ │ ├── ArchiveOpenCallback.h │ │ │ │ ├── DefaultName.cpp │ │ │ │ ├── DefaultName.h │ │ │ │ ├── DirItem.h │ │ │ │ ├── EnumDirItems.h │ │ │ │ ├── ExitCode.h │ │ │ │ ├── Extract.cpp │ │ │ │ ├── Extract.h │ │ │ │ ├── ExtractMode.h │ │ │ │ ├── ExtractingFilePath.cpp │ │ │ │ ├── ExtractingFilePath.h │ │ │ │ ├── HashCalc.h │ │ │ │ ├── IFileExtractCallback.h │ │ │ │ ├── LoadCodecs.cpp │ │ │ │ ├── LoadCodecs.h │ │ │ │ ├── OpenArchive.cpp │ │ │ │ ├── OpenArchive.h │ │ │ │ ├── PropIDUtils.cpp │ │ │ │ ├── PropIDUtils.h │ │ │ │ ├── Property.h │ │ │ │ ├── SetProperties.h │ │ │ │ ├── SortUtils.cpp │ │ │ │ ├── SortUtils.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── Update.h │ │ │ │ ├── UpdateAction.h │ │ │ │ ├── UpdateCallback.h │ │ │ │ ├── UpdatePair.h │ │ │ │ ├── UpdateProduce.h │ │ │ │ └── ZipRegistry.h │ │ │ ├── Console/ │ │ │ │ ├── ConsoleClose.cpp │ │ │ │ ├── ConsoleClose.h │ │ │ │ ├── ExtractCallbackConsole.cpp │ │ │ │ ├── ExtractCallbackConsole.h │ │ │ │ ├── List.cpp │ │ │ │ ├── List.h │ │ │ │ ├── MainAr.cpp │ │ │ │ ├── OpenCallbackConsole.cpp │ │ │ │ ├── OpenCallbackConsole.h │ │ │ │ ├── PercentPrinter.cpp │ │ │ │ ├── PercentPrinter.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── UserInputUtils.cpp │ │ │ │ └── UserInputUtils.h │ │ │ ├── Explorer/ │ │ │ │ ├── MyMessages.cpp │ │ │ │ ├── MyMessages.h │ │ │ │ └── StdAfx.h │ │ │ ├── FileManager/ │ │ │ │ ├── BrowseDialog.cpp │ │ │ │ ├── BrowseDialog.h │ │ │ │ ├── BrowseDialog.rc │ │ │ │ ├── BrowseDialogRes.h │ │ │ │ ├── ComboDialog.cpp │ │ │ │ ├── ComboDialog.h │ │ │ │ ├── ComboDialog.rc │ │ │ │ ├── ComboDialogRes.h │ │ │ │ ├── DialogSize.h │ │ │ │ ├── ExtractCallback.cpp │ │ │ │ ├── ExtractCallback.h │ │ │ │ ├── FormatUtils.cpp │ │ │ │ ├── FormatUtils.h │ │ │ │ ├── LangUtils.cpp │ │ │ │ ├── LangUtils.h │ │ │ │ ├── MemDialog.h │ │ │ │ ├── MemDialogRes.h │ │ │ │ ├── MyWindowsNew.h │ │ │ │ ├── OverwriteDialog.cpp │ │ │ │ ├── OverwriteDialog.h │ │ │ │ ├── OverwriteDialog.rc │ │ │ │ ├── OverwriteDialogRes.h │ │ │ │ ├── PasswordDialog.cpp │ │ │ │ ├── PasswordDialog.h │ │ │ │ ├── PasswordDialog.rc │ │ │ │ ├── PasswordDialogRes.h │ │ │ │ ├── ProgressDialog.cpp │ │ │ │ ├── ProgressDialog.h │ │ │ │ ├── ProgressDialog.rc │ │ │ │ ├── ProgressDialog2.cpp │ │ │ │ ├── ProgressDialog2.h │ │ │ │ ├── ProgressDialog2.rc │ │ │ │ ├── ProgressDialog2Res.h │ │ │ │ ├── ProgressDialog2a.rc │ │ │ │ ├── ProgressDialogRes.h │ │ │ │ ├── PropertyName.cpp │ │ │ │ ├── PropertyName.h │ │ │ │ ├── PropertyNameRes.h │ │ │ │ ├── RegistryUtils.cpp │ │ │ │ ├── RegistryUtils.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── SysIconUtils.cpp │ │ │ │ ├── SysIconUtils.h │ │ │ │ ├── resource.h │ │ │ │ └── resourceGui.h │ │ │ └── GUI/ │ │ │ ├── ExtractDialog.cpp │ │ │ ├── ExtractDialog.h │ │ │ ├── ExtractDialog.rc │ │ │ ├── ExtractDialogRes.h │ │ │ ├── ExtractGUI.cpp │ │ │ ├── ExtractGUI.h │ │ │ ├── ExtractRes.h │ │ │ ├── HashGUI.h │ │ │ ├── StdAfx.h │ │ │ └── resource2.h │ │ ├── Common/ │ │ │ ├── AutoPtr.h │ │ │ ├── CRC.cpp │ │ │ ├── ComTry.h │ │ │ ├── CommandLineParser.cpp │ │ │ ├── CommandLineParser.h │ │ │ ├── Common.h │ │ │ ├── Common0.h │ │ │ ├── CrcReg.cpp │ │ │ ├── Defs.h │ │ │ ├── DynLimBuf.cpp │ │ │ ├── DynLimBuf.h │ │ │ ├── DynamicBuffer.h │ │ │ ├── IntToString.cpp │ │ │ ├── IntToString.h │ │ │ ├── Lang.cpp │ │ │ ├── Lang.h │ │ │ ├── ListFileUtils.cpp │ │ │ ├── ListFileUtils.h │ │ │ ├── LzFindPrepare.cpp │ │ │ ├── MyBuffer.h │ │ │ ├── MyBuffer2.h │ │ │ ├── MyCom.h │ │ │ ├── MyException.h │ │ │ ├── MyInitGuid.h │ │ │ ├── MyLinux.h │ │ │ ├── MyMap.cpp │ │ │ ├── MyMap.h │ │ │ ├── MyString.cpp │ │ │ ├── MyString.h │ │ │ ├── MyTypes.h │ │ │ ├── MyUnknown.h │ │ │ ├── MyVector.h │ │ │ ├── MyWindows.h │ │ │ ├── MyXml.cpp │ │ │ ├── MyXml.h │ │ │ ├── NewHandler.cpp │ │ │ ├── NewHandler.h │ │ │ ├── StdAfx.h │ │ │ ├── StdInStream.cpp │ │ │ ├── StdInStream.h │ │ │ ├── StdOutStream.cpp │ │ │ ├── StdOutStream.h │ │ │ ├── StringConvert.cpp │ │ │ ├── StringConvert.h │ │ │ ├── StringToInt.cpp │ │ │ ├── StringToInt.h │ │ │ ├── TextConfig.cpp │ │ │ ├── TextConfig.h │ │ │ ├── UTFConvert.cpp │ │ │ ├── UTFConvert.h │ │ │ ├── Wildcard.cpp │ │ │ ├── Wildcard.h │ │ │ ├── XzCrc64Init.cpp │ │ │ └── XzCrc64Reg.cpp │ │ └── Windows/ │ │ ├── COM.h │ │ ├── Clipboard.cpp │ │ ├── Clipboard.h │ │ ├── CommonDialog.cpp │ │ ├── CommonDialog.h │ │ ├── Control/ │ │ │ ├── ComboBox.cpp │ │ │ ├── ComboBox.h │ │ │ ├── Dialog.cpp │ │ │ ├── Dialog.h │ │ │ ├── Edit.h │ │ │ ├── ListView.cpp │ │ │ ├── ListView.h │ │ │ ├── ProgressBar.h │ │ │ ├── Static.h │ │ │ └── StdAfx.h │ │ ├── DLL.cpp │ │ ├── DLL.h │ │ ├── Defs.h │ │ ├── ErrorMsg.cpp │ │ ├── ErrorMsg.h │ │ ├── FileDir.cpp │ │ ├── FileDir.h │ │ ├── FileFind.cpp │ │ ├── FileFind.h │ │ ├── FileIO.cpp │ │ ├── FileIO.h │ │ ├── FileLink.cpp │ │ ├── FileMapping.cpp │ │ ├── FileMapping.h │ │ ├── FileName.cpp │ │ ├── FileName.h │ │ ├── Handle.h │ │ ├── MemoryGlobal.cpp │ │ ├── MemoryGlobal.h │ │ ├── MemoryLock.cpp │ │ ├── MemoryLock.h │ │ ├── NtCheck.h │ │ ├── PropVariant.cpp │ │ ├── PropVariant.h │ │ ├── PropVariantConv.cpp │ │ ├── PropVariantConv.h │ │ ├── PropVariantUtils.cpp │ │ ├── PropVariantUtils.h │ │ ├── Registry.cpp │ │ ├── Registry.h │ │ ├── ResourceString.cpp │ │ ├── ResourceString.h │ │ ├── SecurityUtils.cpp │ │ ├── SecurityUtils.h │ │ ├── Shell.cpp │ │ ├── Shell.h │ │ ├── StdAfx.h │ │ ├── Synchronization.cpp │ │ ├── Synchronization.h │ │ ├── System.cpp │ │ ├── System.h │ │ ├── Thread.h │ │ ├── TimeUtils.cpp │ │ ├── TimeUtils.h │ │ ├── Window.cpp │ │ └── Window.h │ └── Wrappers/ │ ├── Sha1Wrapper.cpp │ ├── Sha1Wrapper.h │ ├── Sha256Wrapper.cpp │ ├── Sha256Wrapper.h │ ├── Sha512Wrapper.cpp │ └── Sha512Wrapper.h ├── NanaZip.ExtensionPackage/ │ ├── NanaZip.ExtensionPackage.Installer.iss │ └── NanaZip.ExtensionPackage.Installer.proj ├── NanaZip.MaintainerTools.slnx ├── NanaZip.MigrateLegacyStringResources/ │ ├── NanaZip.MigrateLegacyStringResources.csproj │ ├── Program.cs │ └── VSWhereHelper.cs ├── NanaZip.Modern/ │ ├── AboutPage.cpp │ ├── AboutPage.h │ ├── AboutPage.idl │ ├── AboutPage.xaml │ ├── AddressBar.cpp │ ├── AddressBar.h │ ├── AddressBar.idl │ ├── AddressBarTemplate.cpp │ ├── AddressBarTemplate.h │ ├── AddressBarTemplate.idl │ ├── AddressBarTemplate.xaml │ ├── App.cpp │ ├── App.h │ ├── App.idl │ ├── App.xaml │ ├── ControlMacros.h │ ├── CopyLocationPage.cpp │ ├── CopyLocationPage.h │ ├── CopyLocationPage.idl │ ├── CopyLocationPage.xaml │ ├── InformationPage.cpp │ ├── InformationPage.h │ ├── InformationPage.idl │ ├── InformationPage.xaml │ ├── MainWindowToolBarPage.cpp │ ├── MainWindowToolBarPage.h │ ├── MainWindowToolBarPage.idl │ ├── MainWindowToolBarPage.xaml │ ├── NanaZip.Modern.Wrapper.cpp │ ├── NanaZip.Modern.cpp │ ├── NanaZip.Modern.def │ ├── NanaZip.Modern.h │ ├── NanaZip.Modern.manifest │ ├── NanaZip.Modern.props │ ├── NanaZip.Modern.vcxproj │ ├── NanaZip.Modern.vcxproj.filters │ ├── ProgressPage.cpp │ ├── ProgressPage.h │ ├── ProgressPage.idl │ ├── ProgressPage.xaml │ ├── SponsorPage.cpp │ ├── SponsorPage.h │ ├── SponsorPage.idl │ ├── SponsorPage.xaml │ ├── StatusBar.cpp │ ├── StatusBar.h │ ├── StatusBar.idl │ ├── StatusBarTemplate.cpp │ ├── StatusBarTemplate.h │ ├── StatusBarTemplate.idl │ ├── StatusBarTemplate.xaml │ ├── Strings/ │ │ ├── af/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ar/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── az-arab/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── be/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── bg/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── bn/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ca/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ca-es-valencia/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── cs/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── cy/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── da/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── de/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── el/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── en/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── eo/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── es/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── et/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── eu/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── fa/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── fi/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── fr/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── fy/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ga/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── gl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── gu/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── he/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── hi/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── hr/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── hu/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── hy/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── id/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── is/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── it/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ja/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ka/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── kk/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ko/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ku-arab/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ky-kg/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── lt/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── lv/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── mk/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── mn-cyrl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── mn-mong/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── mr/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ms/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── nb/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ne/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── nl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── nn/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── pa-in/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── pl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── ps/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── pt/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── pt-BR/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── ro/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ru/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── si/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sk/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sq/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ ├── sr-Latn/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sr-cyrl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sv/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── sw/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ta/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── tg-arab/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── th/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── tk-cyrl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── tr/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── tt-arab/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── ug-arab/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── uk/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── uz-cyrl/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── uz-latn/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── vi/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── yo-latn/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ └── ProgressPage.resw │ │ ├── zh-Hans/ │ │ │ ├── Common.resw │ │ │ ├── CopyLocationPage.resw │ │ │ ├── MainWindowToolBarPage.resw │ │ │ ├── ProgressPage.resw │ │ │ └── SponsorPage.resw │ │ └── zh-Hant/ │ │ ├── Common.resw │ │ ├── CopyLocationPage.resw │ │ └── ProgressPage.resw │ ├── pch.cpp │ └── pch.h ├── NanaZip.Project/ │ ├── NanaZip.Project.Version.props │ ├── NanaZip.Project.props │ └── ReadMe.md ├── NanaZip.ProjectAssetsGenerator/ │ ├── NanaZip.ProjectAssetsGenerator.csproj │ └── Program.cs ├── NanaZip.RefreshPackageVersion/ │ ├── NanaZip.RefreshPackageVersion.csproj │ └── Program.cs ├── NanaZip.Specification/ │ ├── NanaZip.Specification.SevenZip.h │ └── NanaZip.Specification.props ├── NanaZip.UI.Classic/ │ ├── AboutDialog.cpp │ ├── AboutDialog.h │ ├── NanaZip.manifest │ ├── NanaZip.vcxproj │ ├── NanaZip.vcxproj.filters │ └── SevenZip/ │ ├── .gitignore │ ├── C/ │ │ ├── 7zTypes.h │ │ ├── Alloc.c │ │ ├── Alloc.h │ │ ├── Compiler.h │ │ ├── CpuArch.c │ │ ├── CpuArch.h │ │ ├── DllSecur.c │ │ ├── DllSecur.h │ │ ├── Precomp.h │ │ ├── RotateDefs.h │ │ ├── Sort.c │ │ ├── Sort.h │ │ ├── Threads.c │ │ └── Threads.h │ └── CPP/ │ ├── 7zip/ │ │ ├── Archive/ │ │ │ ├── Common/ │ │ │ │ ├── ItemNameUtils.cpp │ │ │ │ ├── ItemNameUtils.h │ │ │ │ └── StdAfx.h │ │ │ └── IArchive.h │ │ ├── Common/ │ │ │ ├── CreateCoder.cpp │ │ │ ├── CreateCoder.h │ │ │ ├── FilePathAutoRename.cpp │ │ │ ├── FilePathAutoRename.h │ │ │ ├── FileStreams.cpp │ │ │ ├── FileStreams.h │ │ │ ├── FilterCoder.cpp │ │ │ ├── FilterCoder.h │ │ │ ├── LimitedStreams.cpp │ │ │ ├── LimitedStreams.h │ │ │ ├── MethodId.h │ │ │ ├── MethodProps.cpp │ │ │ ├── MethodProps.h │ │ │ ├── ProgressUtils.cpp │ │ │ ├── ProgressUtils.h │ │ │ ├── PropId.cpp │ │ │ ├── RegisterArc.h │ │ │ ├── RegisterCodec.h │ │ │ ├── StdAfx.h │ │ │ ├── StreamObjects.cpp │ │ │ ├── StreamObjects.h │ │ │ ├── StreamUtils.cpp │ │ │ ├── StreamUtils.h │ │ │ ├── UniqBlocks.cpp │ │ │ └── UniqBlocks.h │ │ ├── Compress/ │ │ │ ├── CopyCoder.cpp │ │ │ ├── CopyCoder.h │ │ │ └── StdAfx.h │ │ ├── GuiCommon.rc │ │ ├── Guid.txt │ │ ├── ICoder.h │ │ ├── IDecl.h │ │ ├── IPassword.h │ │ ├── IProgress.h │ │ ├── IStream.h │ │ ├── PropID.h │ │ └── UI/ │ │ ├── Agent/ │ │ │ ├── Agent.cpp │ │ │ ├── Agent.h │ │ │ ├── AgentOut.cpp │ │ │ ├── AgentProxy.cpp │ │ │ ├── AgentProxy.h │ │ │ ├── ArchiveFolder.cpp │ │ │ ├── ArchiveFolderOpen.cpp │ │ │ ├── ArchiveFolderOut.cpp │ │ │ ├── IFolderArchive.h │ │ │ ├── StdAfx.h │ │ │ ├── UpdateCallbackAgent.cpp │ │ │ └── UpdateCallbackAgent.h │ │ ├── Common/ │ │ │ ├── ArchiveExtractCallback.cpp │ │ │ ├── ArchiveExtractCallback.h │ │ │ ├── ArchiveName.cpp │ │ │ ├── ArchiveName.h │ │ │ ├── ArchiveOpenCallback.cpp │ │ │ ├── ArchiveOpenCallback.h │ │ │ ├── CompressCall.cpp │ │ │ ├── CompressCall.h │ │ │ ├── DefaultName.cpp │ │ │ ├── DefaultName.h │ │ │ ├── DirItem.h │ │ │ ├── EnumDirItems.cpp │ │ │ ├── EnumDirItems.h │ │ │ ├── ExitCode.h │ │ │ ├── Extract.h │ │ │ ├── ExtractMode.h │ │ │ ├── ExtractingFilePath.cpp │ │ │ ├── ExtractingFilePath.h │ │ │ ├── HashCalc.cpp │ │ │ ├── HashCalc.h │ │ │ ├── IFileExtractCallback.h │ │ │ ├── LoadCodecs.cpp │ │ │ ├── LoadCodecs.h │ │ │ ├── OpenArchive.cpp │ │ │ ├── OpenArchive.h │ │ │ ├── PropIDUtils.cpp │ │ │ ├── PropIDUtils.h │ │ │ ├── Property.h │ │ │ ├── SetProperties.cpp │ │ │ ├── SetProperties.h │ │ │ ├── SortUtils.cpp │ │ │ ├── SortUtils.h │ │ │ ├── StdAfx.h │ │ │ ├── Update.h │ │ │ ├── UpdateAction.cpp │ │ │ ├── UpdateAction.h │ │ │ ├── UpdateCallback.cpp │ │ │ ├── UpdateCallback.h │ │ │ ├── UpdatePair.cpp │ │ │ ├── UpdatePair.h │ │ │ ├── UpdateProduce.cpp │ │ │ ├── UpdateProduce.h │ │ │ ├── WorkDir.cpp │ │ │ ├── WorkDir.h │ │ │ ├── ZipRegistry.cpp │ │ │ └── ZipRegistry.h │ │ ├── Explorer/ │ │ │ ├── ContextMenu.cpp │ │ │ ├── ContextMenu.h │ │ │ ├── ContextMenuFlags.h │ │ │ ├── MyExplorerCommand.h │ │ │ ├── MyMessages.h │ │ │ ├── StdAfx.h │ │ │ ├── resource.h │ │ │ └── resource2.rc │ │ ├── FileManager/ │ │ │ ├── AltStreamsFolder.cpp │ │ │ ├── AltStreamsFolder.h │ │ │ ├── App.cpp │ │ │ ├── App.h │ │ │ ├── AppState.h │ │ │ ├── BrowseDialog.cpp │ │ │ ├── BrowseDialog.h │ │ │ ├── BrowseDialog.rc │ │ │ ├── BrowseDialogRes.h │ │ │ ├── ClassDefs.cpp │ │ │ ├── ComboDialog.cpp │ │ │ ├── ComboDialog.h │ │ │ ├── ComboDialog.rc │ │ │ ├── ComboDialogRes.h │ │ │ ├── CopyDialog.cpp │ │ │ ├── CopyDialog.h │ │ │ ├── CopyDialog.rc │ │ │ ├── CopyDialogRes.h │ │ │ ├── DialogSize.h │ │ │ ├── EditDialog.cpp │ │ │ ├── EditDialog.h │ │ │ ├── EditDialog.rc │ │ │ ├── EditDialogRes.h │ │ │ ├── EditPage.cpp │ │ │ ├── EditPage.h │ │ │ ├── EditPage.rc │ │ │ ├── EditPage2.rc │ │ │ ├── EditPageRes.h │ │ │ ├── EnumFormatEtc.cpp │ │ │ ├── EnumFormatEtc.h │ │ │ ├── ExtractCallback.cpp │ │ │ ├── ExtractCallback.h │ │ │ ├── FM.cpp │ │ │ ├── FSDrives.cpp │ │ │ ├── FSDrives.h │ │ │ ├── FSFolder.cpp │ │ │ ├── FSFolder.h │ │ │ ├── FSFolderCopy.cpp │ │ │ ├── FileFolderPluginOpen.cpp │ │ │ ├── FileFolderPluginOpen.h │ │ │ ├── FilePlugins.cpp │ │ │ ├── FilePlugins.h │ │ │ ├── FoldersPage.cpp │ │ │ ├── FoldersPage.h │ │ │ ├── FoldersPage.rc │ │ │ ├── FoldersPage2.rc │ │ │ ├── FoldersPageRes.h │ │ │ ├── FormatUtils.cpp │ │ │ ├── FormatUtils.h │ │ │ ├── IFolder.h │ │ │ ├── LangUtils.cpp │ │ │ ├── LangUtils.h │ │ │ ├── LinkDialog.cpp │ │ │ ├── LinkDialog.h │ │ │ ├── LinkDialog.rc │ │ │ ├── LinkDialogRes.h │ │ │ ├── MenuPage.cpp │ │ │ ├── MenuPage.h │ │ │ ├── MenuPage.rc │ │ │ ├── MenuPage2.rc │ │ │ ├── MenuPageRes.h │ │ │ ├── MessagesDialog.cpp │ │ │ ├── MessagesDialog.h │ │ │ ├── MessagesDialog.rc │ │ │ ├── MessagesDialogRes.h │ │ │ ├── MyCom2.h │ │ │ ├── MyLoadMenu.cpp │ │ │ ├── MyLoadMenu.h │ │ │ ├── MyWindowsNew.h │ │ │ ├── NetFolder.cpp │ │ │ ├── NetFolder.h │ │ │ ├── OpenCallback.cpp │ │ │ ├── OpenCallback.h │ │ │ ├── OptionsDialog.cpp │ │ │ ├── OverwriteDialog.cpp │ │ │ ├── OverwriteDialog.h │ │ │ ├── OverwriteDialog.rc │ │ │ ├── OverwriteDialogRes.h │ │ │ ├── Panel.cpp │ │ │ ├── Panel.h │ │ │ ├── PanelCopy.cpp │ │ │ ├── PanelCrc.cpp │ │ │ ├── PanelDrag.cpp │ │ │ ├── PanelFolderChange.cpp │ │ │ ├── PanelItemOpen.cpp │ │ │ ├── PanelItems.cpp │ │ │ ├── PanelKey.cpp │ │ │ ├── PanelListNotify.cpp │ │ │ ├── PanelMenu.cpp │ │ │ ├── PanelOperations.cpp │ │ │ ├── PanelSelect.cpp │ │ │ ├── PanelSort.cpp │ │ │ ├── PanelSplitFile.cpp │ │ │ ├── PasswordDialog.cpp │ │ │ ├── PasswordDialog.h │ │ │ ├── PasswordDialog.rc │ │ │ ├── PasswordDialogRes.h │ │ │ ├── PluginInterface.h │ │ │ ├── PluginLoader.h │ │ │ ├── ProgressDialog2.cpp │ │ │ ├── ProgressDialog2.h │ │ │ ├── ProgressDialog2.rc │ │ │ ├── ProgressDialog2Res.h │ │ │ ├── ProgressDialog2a.rc │ │ │ ├── PropertyName.cpp │ │ │ ├── PropertyName.h │ │ │ ├── PropertyName.rc │ │ │ ├── PropertyNameRes.h │ │ │ ├── RegistryAssociations.cpp │ │ │ ├── RegistryAssociations.h │ │ │ ├── RegistryPlugins.cpp │ │ │ ├── RegistryPlugins.h │ │ │ ├── RegistryUtils.cpp │ │ │ ├── RegistryUtils.h │ │ │ ├── RootFolder.cpp │ │ │ ├── RootFolder.h │ │ │ ├── SettingsPage.cpp │ │ │ ├── SettingsPage.h │ │ │ ├── SettingsPage.rc │ │ │ ├── SettingsPage2.rc │ │ │ ├── SettingsPageRes.h │ │ │ ├── SplitDialog.cpp │ │ │ ├── SplitDialog.h │ │ │ ├── SplitDialog.rc │ │ │ ├── SplitDialogRes.h │ │ │ ├── SplitUtils.cpp │ │ │ ├── SplitUtils.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── StringUtils.cpp │ │ │ ├── StringUtils.h │ │ │ ├── SysIconUtils.cpp │ │ │ ├── SysIconUtils.h │ │ │ ├── TextPairs.cpp │ │ │ ├── TextPairs.h │ │ │ ├── UpdateCallback100.cpp │ │ │ ├── UpdateCallback100.h │ │ │ ├── VerCtrl.cpp │ │ │ ├── ViewSettings.cpp │ │ │ ├── ViewSettings.h │ │ │ ├── resource.h │ │ │ ├── resource.rc │ │ │ ├── resourceGui.h │ │ │ └── resourceGui.rc │ │ └── GUI/ │ │ ├── Extract.rc │ │ ├── ExtractDialogRes.h │ │ ├── ExtractRes.h │ │ ├── HashGUI.cpp │ │ ├── HashGUI.h │ │ ├── StdAfx.h │ │ ├── UpdateCallbackGUI.h │ │ ├── UpdateCallbackGUI2.cpp │ │ ├── UpdateCallbackGUI2.h │ │ ├── resource2.h │ │ ├── resource3.h │ │ └── resource3.rc │ ├── Common/ │ │ ├── AutoPtr.h │ │ ├── ComTry.h │ │ ├── Common.h │ │ ├── Defs.h │ │ ├── DynLimBuf.cpp │ │ ├── DynLimBuf.h │ │ ├── DynamicBuffer.h │ │ ├── IntToString.cpp │ │ ├── IntToString.h │ │ ├── Lang.cpp │ │ ├── Lang.h │ │ ├── MyBuffer.h │ │ ├── MyBuffer2.h │ │ ├── MyCom.h │ │ ├── MyException.h │ │ ├── MyGuidDef.h │ │ ├── MyInitGuid.h │ │ ├── MyLinux.h │ │ ├── MyString.cpp │ │ ├── MyString.h │ │ ├── MyTypes.h │ │ ├── MyUnknown.h │ │ ├── MyVector.h │ │ ├── MyWindows.h │ │ ├── NewHandler.cpp │ │ ├── NewHandler.h │ │ ├── Random.cpp │ │ ├── Random.h │ │ ├── StdAfx.h │ │ ├── StringConvert.cpp │ │ ├── StringConvert.h │ │ ├── StringToInt.cpp │ │ ├── StringToInt.h │ │ ├── UTFConvert.cpp │ │ ├── UTFConvert.h │ │ ├── Wildcard.cpp │ │ └── Wildcard.h │ └── Windows/ │ ├── COM.h │ ├── Clipboard.cpp │ ├── Clipboard.h │ ├── CommonDialog.cpp │ ├── CommonDialog.h │ ├── Control/ │ │ ├── ComboBox.cpp │ │ ├── ComboBox.h │ │ ├── CommandBar.h │ │ ├── Dialog.cpp │ │ ├── Dialog.h │ │ ├── Edit.h │ │ ├── ImageList.h │ │ ├── ListView.cpp │ │ ├── ListView.h │ │ ├── ProgressBar.h │ │ ├── PropertyPage.cpp │ │ ├── PropertyPage.h │ │ ├── ReBar.h │ │ ├── Static.h │ │ ├── StatusBar.h │ │ ├── StdAfx.h │ │ ├── ToolBar.h │ │ ├── Window2.cpp │ │ └── Window2.h │ ├── DLL.cpp │ ├── DLL.h │ ├── Defs.h │ ├── ErrorMsg.cpp │ ├── ErrorMsg.h │ ├── FileDir.cpp │ ├── FileDir.h │ ├── FileFind.cpp │ ├── FileFind.h │ ├── FileIO.cpp │ ├── FileIO.h │ ├── FileLink.cpp │ ├── FileMapping.h │ ├── FileName.cpp │ ├── FileName.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── Handle.h │ ├── MemoryGlobal.cpp │ ├── MemoryGlobal.h │ ├── MemoryLock.cpp │ ├── MemoryLock.h │ ├── Menu.cpp │ ├── Menu.h │ ├── Net.cpp │ ├── Net.h │ ├── NtCheck.h │ ├── ProcessUtils.cpp │ ├── ProcessUtils.h │ ├── PropVariant.cpp │ ├── PropVariant.h │ ├── PropVariantConv.cpp │ ├── PropVariantConv.h │ ├── Registry.cpp │ ├── Registry.h │ ├── ResourceString.cpp │ ├── ResourceString.h │ ├── SecurityUtils.cpp │ ├── SecurityUtils.h │ ├── Shell.cpp │ ├── Shell.h │ ├── StdAfx.h │ ├── Synchronization.cpp │ ├── Synchronization.h │ ├── System.cpp │ ├── System.h │ ├── Thread.h │ ├── TimeUtils.cpp │ ├── TimeUtils.h │ ├── Window.cpp │ └── Window.h ├── NanaZip.UI.Modern/ │ ├── NanaZip.Modern.FileManager.manifest │ ├── NanaZip.Modern.FileManager.vcxproj │ ├── NanaZip.Modern.FileManager.vcxproj.filters │ ├── NanaZip.ShellExtension.cpp │ ├── NanaZip.ShellExtension.def │ ├── NanaZip.ShellExtension.manifest │ ├── NanaZip.ShellExtension.vcxproj │ ├── NanaZip.ShellExtension.vcxproj.filters │ ├── NanaZip.UI.cpp │ ├── NanaZip.UI.h │ └── SevenZip/ │ ├── .gitignore │ ├── C/ │ │ ├── 7zTypes.h │ │ ├── Alloc.c │ │ ├── Alloc.h │ │ ├── Compiler.h │ │ ├── CpuArch.c │ │ ├── CpuArch.h │ │ ├── DllSecur.c │ │ ├── DllSecur.h │ │ ├── Precomp.h │ │ ├── RotateDefs.h │ │ ├── Sort.c │ │ ├── Sort.h │ │ ├── Threads.c │ │ └── Threads.h │ └── CPP/ │ ├── 7zip/ │ │ ├── Archive/ │ │ │ ├── Common/ │ │ │ │ ├── ItemNameUtils.cpp │ │ │ │ ├── ItemNameUtils.h │ │ │ │ └── StdAfx.h │ │ │ └── IArchive.h │ │ ├── Common/ │ │ │ ├── CreateCoder.cpp │ │ │ ├── CreateCoder.h │ │ │ ├── FilePathAutoRename.cpp │ │ │ ├── FilePathAutoRename.h │ │ │ ├── FileStreams.cpp │ │ │ ├── FileStreams.h │ │ │ ├── FilterCoder.cpp │ │ │ ├── FilterCoder.h │ │ │ ├── LimitedStreams.cpp │ │ │ ├── LimitedStreams.h │ │ │ ├── MethodId.h │ │ │ ├── MethodProps.cpp │ │ │ ├── MethodProps.h │ │ │ ├── ProgressUtils.cpp │ │ │ ├── ProgressUtils.h │ │ │ ├── PropId.cpp │ │ │ ├── RegisterArc.h │ │ │ ├── RegisterCodec.h │ │ │ ├── StdAfx.h │ │ │ ├── StreamObjects.cpp │ │ │ ├── StreamObjects.h │ │ │ ├── StreamUtils.cpp │ │ │ ├── StreamUtils.h │ │ │ ├── UniqBlocks.cpp │ │ │ └── UniqBlocks.h │ │ ├── Compress/ │ │ │ ├── CopyCoder.cpp │ │ │ ├── CopyCoder.h │ │ │ └── StdAfx.h │ │ ├── GuiCommon.rc │ │ ├── Guid.txt │ │ ├── ICoder.h │ │ ├── IDecl.h │ │ ├── IPassword.h │ │ ├── IProgress.h │ │ ├── IStream.h │ │ ├── PropID.h │ │ └── UI/ │ │ ├── Agent/ │ │ │ ├── Agent.cpp │ │ │ ├── Agent.h │ │ │ ├── AgentOut.cpp │ │ │ ├── AgentProxy.cpp │ │ │ ├── AgentProxy.h │ │ │ ├── ArchiveFolder.cpp │ │ │ ├── ArchiveFolderOpen.cpp │ │ │ ├── ArchiveFolderOut.cpp │ │ │ ├── IFolderArchive.h │ │ │ ├── StdAfx.h │ │ │ ├── UpdateCallbackAgent.cpp │ │ │ └── UpdateCallbackAgent.h │ │ ├── Common/ │ │ │ ├── ArchiveExtractCallback.cpp │ │ │ ├── ArchiveExtractCallback.h │ │ │ ├── ArchiveName.cpp │ │ │ ├── ArchiveName.h │ │ │ ├── ArchiveOpenCallback.cpp │ │ │ ├── ArchiveOpenCallback.h │ │ │ ├── CompressCall.cpp │ │ │ ├── CompressCall.h │ │ │ ├── DefaultName.cpp │ │ │ ├── DefaultName.h │ │ │ ├── DirItem.h │ │ │ ├── EnumDirItems.cpp │ │ │ ├── EnumDirItems.h │ │ │ ├── ExitCode.h │ │ │ ├── Extract.h │ │ │ ├── ExtractMode.h │ │ │ ├── ExtractingFilePath.cpp │ │ │ ├── ExtractingFilePath.h │ │ │ ├── HashCalc.cpp │ │ │ ├── HashCalc.h │ │ │ ├── IFileExtractCallback.h │ │ │ ├── LoadCodecs.cpp │ │ │ ├── LoadCodecs.h │ │ │ ├── OpenArchive.cpp │ │ │ ├── OpenArchive.h │ │ │ ├── PropIDUtils.cpp │ │ │ ├── PropIDUtils.h │ │ │ ├── Property.h │ │ │ ├── SetProperties.cpp │ │ │ ├── SetProperties.h │ │ │ ├── SortUtils.cpp │ │ │ ├── SortUtils.h │ │ │ ├── StdAfx.h │ │ │ ├── Update.h │ │ │ ├── UpdateAction.cpp │ │ │ ├── UpdateAction.h │ │ │ ├── UpdateCallback.cpp │ │ │ ├── UpdateCallback.h │ │ │ ├── UpdatePair.cpp │ │ │ ├── UpdatePair.h │ │ │ ├── UpdateProduce.cpp │ │ │ ├── UpdateProduce.h │ │ │ ├── WorkDir.cpp │ │ │ ├── WorkDir.h │ │ │ ├── ZipRegistry.cpp │ │ │ └── ZipRegistry.h │ │ ├── Explorer/ │ │ │ ├── ContextMenu.cpp │ │ │ ├── ContextMenu.h │ │ │ ├── ContextMenuFlags.h │ │ │ ├── MyExplorerCommand.h │ │ │ ├── MyMessages.cpp │ │ │ ├── MyMessages.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── resource.h │ │ │ ├── resource.rc │ │ │ └── resource2.rc │ │ ├── FileManager/ │ │ │ ├── AltStreamsFolder.cpp │ │ │ ├── AltStreamsFolder.h │ │ │ ├── App.cpp │ │ │ ├── App.h │ │ │ ├── AppState.h │ │ │ ├── BrowseDialog.cpp │ │ │ ├── BrowseDialog.h │ │ │ ├── BrowseDialog.rc │ │ │ ├── BrowseDialogRes.h │ │ │ ├── ClassDefs.cpp │ │ │ ├── ComboDialog.cpp │ │ │ ├── ComboDialog.h │ │ │ ├── ComboDialog.rc │ │ │ ├── ComboDialogRes.h │ │ │ ├── CopyDialog.cpp │ │ │ ├── CopyDialog.h │ │ │ ├── CopyDialog.rc │ │ │ ├── CopyDialogRes.h │ │ │ ├── DialogSize.h │ │ │ ├── EditDialog.cpp │ │ │ ├── EditDialog.h │ │ │ ├── EditDialog.rc │ │ │ ├── EditDialogRes.h │ │ │ ├── EditPage.cpp │ │ │ ├── EditPage.h │ │ │ ├── EditPage.rc │ │ │ ├── EditPage2.rc │ │ │ ├── EditPageRes.h │ │ │ ├── EnumFormatEtc.cpp │ │ │ ├── EnumFormatEtc.h │ │ │ ├── ExtractCallback.cpp │ │ │ ├── ExtractCallback.h │ │ │ ├── FM.cpp │ │ │ ├── FSDrives.cpp │ │ │ ├── FSDrives.h │ │ │ ├── FSFolder.cpp │ │ │ ├── FSFolder.h │ │ │ ├── FSFolderCopy.cpp │ │ │ ├── FileFolderPluginOpen.cpp │ │ │ ├── FileFolderPluginOpen.h │ │ │ ├── FilePlugins.cpp │ │ │ ├── FilePlugins.h │ │ │ ├── FoldersPage.cpp │ │ │ ├── FoldersPage.h │ │ │ ├── FoldersPage.rc │ │ │ ├── FoldersPage2.rc │ │ │ ├── FoldersPageRes.h │ │ │ ├── FormatUtils.cpp │ │ │ ├── FormatUtils.h │ │ │ ├── IFolder.h │ │ │ ├── LangUtils.cpp │ │ │ ├── LangUtils.h │ │ │ ├── LinkDialog.cpp │ │ │ ├── LinkDialog.h │ │ │ ├── LinkDialog.rc │ │ │ ├── LinkDialogRes.h │ │ │ ├── MenuPage.cpp │ │ │ ├── MenuPage.h │ │ │ ├── MenuPage.rc │ │ │ ├── MenuPage2.rc │ │ │ ├── MenuPageRes.h │ │ │ ├── MessagesDialog.cpp │ │ │ ├── MessagesDialog.h │ │ │ ├── MessagesDialog.rc │ │ │ ├── MessagesDialogRes.h │ │ │ ├── MyCom2.h │ │ │ ├── MyLoadMenu.cpp │ │ │ ├── MyLoadMenu.h │ │ │ ├── MyWindowsNew.h │ │ │ ├── NetFolder.cpp │ │ │ ├── NetFolder.h │ │ │ ├── OpenCallback.cpp │ │ │ ├── OpenCallback.h │ │ │ ├── OptionsDialog.cpp │ │ │ ├── OverwriteDialog.cpp │ │ │ ├── OverwriteDialog.h │ │ │ ├── OverwriteDialog.rc │ │ │ ├── OverwriteDialogRes.h │ │ │ ├── Panel.cpp │ │ │ ├── Panel.h │ │ │ ├── PanelCopy.cpp │ │ │ ├── PanelCrc.cpp │ │ │ ├── PanelDrag.cpp │ │ │ ├── PanelFolderChange.cpp │ │ │ ├── PanelItemOpen.cpp │ │ │ ├── PanelItems.cpp │ │ │ ├── PanelKey.cpp │ │ │ ├── PanelListNotify.cpp │ │ │ ├── PanelMenu.cpp │ │ │ ├── PanelOperations.cpp │ │ │ ├── PanelSelect.cpp │ │ │ ├── PanelSort.cpp │ │ │ ├── PanelSplitFile.cpp │ │ │ ├── PasswordDialog.cpp │ │ │ ├── PasswordDialog.h │ │ │ ├── PasswordDialog.rc │ │ │ ├── PasswordDialogRes.h │ │ │ ├── PluginInterface.h │ │ │ ├── PluginLoader.h │ │ │ ├── ProgressDialog2.cpp │ │ │ ├── ProgressDialog2.h │ │ │ ├── ProgressDialog2.rc │ │ │ ├── ProgressDialog2Res.h │ │ │ ├── ProgressDialog2a.rc │ │ │ ├── PropertyName.cpp │ │ │ ├── PropertyName.h │ │ │ ├── PropertyName.rc │ │ │ ├── PropertyNameRes.h │ │ │ ├── RegistryAssociations.cpp │ │ │ ├── RegistryAssociations.h │ │ │ ├── RegistryPlugins.cpp │ │ │ ├── RegistryPlugins.h │ │ │ ├── RegistryUtils.cpp │ │ │ ├── RegistryUtils.h │ │ │ ├── RootFolder.cpp │ │ │ ├── RootFolder.h │ │ │ ├── SettingsPage.cpp │ │ │ ├── SettingsPage.h │ │ │ ├── SettingsPage.rc │ │ │ ├── SettingsPage2.rc │ │ │ ├── SettingsPageRes.h │ │ │ ├── SplitDialog.cpp │ │ │ ├── SplitDialog.h │ │ │ ├── SplitDialog.rc │ │ │ ├── SplitDialogRes.h │ │ │ ├── SplitUtils.cpp │ │ │ ├── SplitUtils.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── StringUtils.cpp │ │ │ ├── StringUtils.h │ │ │ ├── SysIconUtils.cpp │ │ │ ├── SysIconUtils.h │ │ │ ├── TextPairs.cpp │ │ │ ├── TextPairs.h │ │ │ ├── UpdateCallback100.cpp │ │ │ ├── UpdateCallback100.h │ │ │ ├── VerCtrl.cpp │ │ │ ├── ViewSettings.cpp │ │ │ ├── ViewSettings.h │ │ │ ├── resource.h │ │ │ ├── resource.rc │ │ │ ├── resourceGui.h │ │ │ └── resourceGui.rc │ │ └── GUI/ │ │ ├── Extract.rc │ │ ├── ExtractDialogRes.h │ │ ├── ExtractRes.h │ │ ├── HashGUI.cpp │ │ ├── HashGUI.h │ │ ├── StdAfx.h │ │ ├── UpdateCallbackGUI.h │ │ ├── UpdateCallbackGUI2.cpp │ │ ├── UpdateCallbackGUI2.h │ │ ├── resource2.h │ │ ├── resource3.h │ │ └── resource3.rc │ ├── Common/ │ │ ├── AutoPtr.h │ │ ├── ComTry.h │ │ ├── Common.h │ │ ├── Defs.h │ │ ├── DynLimBuf.cpp │ │ ├── DynLimBuf.h │ │ ├── DynamicBuffer.h │ │ ├── IntToString.cpp │ │ ├── IntToString.h │ │ ├── Lang.cpp │ │ ├── Lang.h │ │ ├── MyBuffer.h │ │ ├── MyBuffer2.h │ │ ├── MyCom.h │ │ ├── MyException.h │ │ ├── MyGuidDef.h │ │ ├── MyInitGuid.h │ │ ├── MyLinux.h │ │ ├── MyString.cpp │ │ ├── MyString.h │ │ ├── MyTypes.h │ │ ├── MyUnknown.h │ │ ├── MyVector.h │ │ ├── MyWindows.h │ │ ├── NewHandler.cpp │ │ ├── NewHandler.h │ │ ├── Random.cpp │ │ ├── Random.h │ │ ├── StdAfx.h │ │ ├── StringConvert.cpp │ │ ├── StringConvert.h │ │ ├── StringToInt.cpp │ │ ├── StringToInt.h │ │ ├── UTFConvert.cpp │ │ ├── UTFConvert.h │ │ ├── Wildcard.cpp │ │ └── Wildcard.h │ └── Windows/ │ ├── COM.h │ ├── Clipboard.cpp │ ├── Clipboard.h │ ├── CommonDialog.cpp │ ├── CommonDialog.h │ ├── Control/ │ │ ├── ComboBox.cpp │ │ ├── ComboBox.h │ │ ├── CommandBar.h │ │ ├── Dialog.cpp │ │ ├── Dialog.h │ │ ├── Edit.h │ │ ├── ImageList.h │ │ ├── ListView.cpp │ │ ├── ListView.h │ │ ├── ProgressBar.h │ │ ├── PropertyPage.cpp │ │ ├── PropertyPage.h │ │ ├── ReBar.h │ │ ├── Static.h │ │ ├── StatusBar.h │ │ ├── StdAfx.h │ │ ├── ToolBar.h │ │ ├── Window2.cpp │ │ └── Window2.h │ ├── DLL.cpp │ ├── DLL.h │ ├── Defs.h │ ├── ErrorMsg.cpp │ ├── ErrorMsg.h │ ├── FileDir.cpp │ ├── FileDir.h │ ├── FileFind.cpp │ ├── FileFind.h │ ├── FileIO.cpp │ ├── FileIO.h │ ├── FileLink.cpp │ ├── FileMapping.h │ ├── FileName.cpp │ ├── FileName.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── Handle.h │ ├── MemoryGlobal.cpp │ ├── MemoryGlobal.h │ ├── MemoryLock.cpp │ ├── MemoryLock.h │ ├── Menu.cpp │ ├── Menu.h │ ├── Net.cpp │ ├── Net.h │ ├── NtCheck.h │ ├── ProcessUtils.cpp │ ├── ProcessUtils.h │ ├── PropVariant.cpp │ ├── PropVariant.h │ ├── PropVariantConv.cpp │ ├── PropVariantConv.h │ ├── Registry.cpp │ ├── Registry.h │ ├── ResourceString.cpp │ ├── ResourceString.h │ ├── SecurityUtils.cpp │ ├── SecurityUtils.h │ ├── Shell.cpp │ ├── Shell.h │ ├── StdAfx.h │ ├── Synchronization.cpp │ ├── Synchronization.h │ ├── System.cpp │ ├── System.h │ ├── Thread.h │ ├── TimeUtils.cpp │ ├── TimeUtils.h │ ├── Window.cpp │ └── Window.h ├── NanaZip.Universal/ │ ├── NanaZip.Universal.Console.manifest │ ├── NanaZip.Universal.Console.vcxproj │ ├── NanaZip.Universal.Console.vcxproj.filters │ ├── NanaZip.Universal.Windows.manifest │ ├── NanaZip.Universal.Windows.vcxproj │ ├── NanaZip.Universal.Windows.vcxproj.filters │ └── SevenZip/ │ ├── .gitignore │ ├── C/ │ │ ├── 7zCrc.c │ │ ├── 7zCrc.h │ │ ├── 7zCrcOpt.c │ │ ├── 7zTypes.h │ │ ├── 7zVersion.h │ │ ├── 7zWindows.h │ │ ├── Alloc.c │ │ ├── Alloc.h │ │ ├── Compiler.h │ │ ├── CpuArch.c │ │ ├── CpuArch.h │ │ ├── DllSecur.c │ │ ├── DllSecur.h │ │ ├── Precomp.h │ │ ├── RotateDefs.h │ │ ├── Sort.c │ │ ├── Sort.h │ │ ├── Threads.c │ │ └── Threads.h │ └── CPP/ │ ├── 7zip/ │ │ ├── Archive/ │ │ │ ├── Common/ │ │ │ │ ├── ItemNameUtils.cpp │ │ │ │ ├── ItemNameUtils.h │ │ │ │ ├── OutStreamWithCRC.cpp │ │ │ │ ├── OutStreamWithCRC.h │ │ │ │ └── StdAfx.h │ │ │ └── IArchive.h │ │ ├── Common/ │ │ │ ├── CreateCoder.cpp │ │ │ ├── CreateCoder.h │ │ │ ├── FilePathAutoRename.cpp │ │ │ ├── FilePathAutoRename.h │ │ │ ├── FileStreams.cpp │ │ │ ├── FileStreams.h │ │ │ ├── FilterCoder.cpp │ │ │ ├── FilterCoder.h │ │ │ ├── LimitedStreams.cpp │ │ │ ├── LimitedStreams.h │ │ │ ├── MethodId.h │ │ │ ├── MethodProps.cpp │ │ │ ├── MethodProps.h │ │ │ ├── MultiOutStream.cpp │ │ │ ├── MultiOutStream.h │ │ │ ├── OutBuffer.h │ │ │ ├── ProgressUtils.cpp │ │ │ ├── ProgressUtils.h │ │ │ ├── PropId.cpp │ │ │ ├── RegisterArc.h │ │ │ ├── RegisterCodec.h │ │ │ ├── StdAfx.h │ │ │ ├── StreamObjects.cpp │ │ │ ├── StreamObjects.h │ │ │ ├── StreamUtils.cpp │ │ │ ├── StreamUtils.h │ │ │ ├── UniqBlocks.cpp │ │ │ └── UniqBlocks.h │ │ ├── Compress/ │ │ │ ├── CopyCoder.cpp │ │ │ ├── CopyCoder.h │ │ │ └── StdAfx.h │ │ ├── GuiCommon.rc │ │ ├── ICoder.h │ │ ├── IDecl.h │ │ ├── IPassword.h │ │ ├── IProgress.h │ │ ├── IStream.h │ │ ├── MyVersion.h │ │ ├── PropID.h │ │ └── UI/ │ │ ├── Agent/ │ │ │ └── IFolderArchive.h │ │ ├── Common/ │ │ │ ├── ArchiveCommandLine.cpp │ │ │ ├── ArchiveCommandLine.h │ │ │ ├── ArchiveExtractCallback.cpp │ │ │ ├── ArchiveExtractCallback.h │ │ │ ├── ArchiveOpenCallback.cpp │ │ │ ├── ArchiveOpenCallback.h │ │ │ ├── Bench.cpp │ │ │ ├── Bench.h │ │ │ ├── DefaultName.cpp │ │ │ ├── DefaultName.h │ │ │ ├── DirItem.h │ │ │ ├── EnumDirItems.cpp │ │ │ ├── EnumDirItems.h │ │ │ ├── ExitCode.h │ │ │ ├── Extract.cpp │ │ │ ├── Extract.h │ │ │ ├── ExtractMode.h │ │ │ ├── ExtractingFilePath.cpp │ │ │ ├── ExtractingFilePath.h │ │ │ ├── HashCalc.cpp │ │ │ ├── HashCalc.h │ │ │ ├── IFileExtractCallback.h │ │ │ ├── LoadCodecs.cpp │ │ │ ├── LoadCodecs.h │ │ │ ├── OpenArchive.cpp │ │ │ ├── OpenArchive.h │ │ │ ├── PropIDUtils.cpp │ │ │ ├── PropIDUtils.h │ │ │ ├── Property.h │ │ │ ├── SetProperties.cpp │ │ │ ├── SetProperties.h │ │ │ ├── SortUtils.cpp │ │ │ ├── SortUtils.h │ │ │ ├── StdAfx.h │ │ │ ├── TempFiles.cpp │ │ │ ├── TempFiles.h │ │ │ ├── Update.cpp │ │ │ ├── Update.h │ │ │ ├── UpdateAction.cpp │ │ │ ├── UpdateAction.h │ │ │ ├── UpdateCallback.cpp │ │ │ ├── UpdateCallback.h │ │ │ ├── UpdatePair.cpp │ │ │ ├── UpdatePair.h │ │ │ ├── UpdateProduce.cpp │ │ │ ├── UpdateProduce.h │ │ │ ├── WorkDir.cpp │ │ │ ├── WorkDir.h │ │ │ ├── ZipRegistry.cpp │ │ │ └── ZipRegistry.h │ │ ├── Console/ │ │ │ ├── BenchCon.cpp │ │ │ ├── BenchCon.h │ │ │ ├── ConsoleClose.cpp │ │ │ ├── ConsoleClose.h │ │ │ ├── ExtractCallbackConsole.cpp │ │ │ ├── ExtractCallbackConsole.h │ │ │ ├── HashCon.cpp │ │ │ ├── HashCon.h │ │ │ ├── List.cpp │ │ │ ├── List.h │ │ │ ├── Main.cpp │ │ │ ├── MainAr.cpp │ │ │ ├── OpenCallbackConsole.cpp │ │ │ ├── OpenCallbackConsole.h │ │ │ ├── PercentPrinter.cpp │ │ │ ├── PercentPrinter.h │ │ │ ├── StdAfx.h │ │ │ ├── UpdateCallbackConsole.cpp │ │ │ ├── UpdateCallbackConsole.h │ │ │ ├── UserInputUtils.cpp │ │ │ └── UserInputUtils.h │ │ ├── Explorer/ │ │ │ ├── MyMessages.cpp │ │ │ ├── MyMessages.h │ │ │ └── StdAfx.h │ │ ├── FileManager/ │ │ │ ├── BrowseDialog.cpp │ │ │ ├── BrowseDialog.h │ │ │ ├── BrowseDialog.rc │ │ │ ├── BrowseDialogRes.h │ │ │ ├── ComboDialog.cpp │ │ │ ├── ComboDialog.h │ │ │ ├── ComboDialog.rc │ │ │ ├── ComboDialogRes.h │ │ │ ├── DialogSize.h │ │ │ ├── EditDialog.cpp │ │ │ ├── EditDialog.h │ │ │ ├── EditDialog.rc │ │ │ ├── EditDialogRes.h │ │ │ ├── ExtractCallback.cpp │ │ │ ├── ExtractCallback.h │ │ │ ├── FormatUtils.cpp │ │ │ ├── FormatUtils.h │ │ │ ├── IFolder.h │ │ │ ├── LangUtils.cpp │ │ │ ├── LangUtils.h │ │ │ ├── MemDialog.cpp │ │ │ ├── MemDialog.h │ │ │ ├── MemDialog.rc │ │ │ ├── MemDialogRes.h │ │ │ ├── MyWindowsNew.h │ │ │ ├── OpenCallback.cpp │ │ │ ├── OpenCallback.h │ │ │ ├── OverwriteDialog.cpp │ │ │ ├── OverwriteDialog.h │ │ │ ├── OverwriteDialog.rc │ │ │ ├── OverwriteDialogRes.h │ │ │ ├── PasswordDialog.cpp │ │ │ ├── PasswordDialog.h │ │ │ ├── PasswordDialog.rc │ │ │ ├── PasswordDialogRes.h │ │ │ ├── ProgressDialog2.cpp │ │ │ ├── ProgressDialog2.h │ │ │ ├── ProgressDialog2.rc │ │ │ ├── ProgressDialog2Res.h │ │ │ ├── ProgressDialog2a.rc │ │ │ ├── PropertyName.cpp │ │ │ ├── PropertyName.h │ │ │ ├── PropertyName.rc │ │ │ ├── PropertyNameRes.h │ │ │ ├── RegistryUtils.cpp │ │ │ ├── RegistryUtils.h │ │ │ ├── SplitUtils.cpp │ │ │ ├── SplitUtils.h │ │ │ ├── StdAfx.h │ │ │ ├── StringUtils.cpp │ │ │ ├── StringUtils.h │ │ │ ├── SysIconUtils.cpp │ │ │ ├── SysIconUtils.h │ │ │ ├── resource.h │ │ │ ├── resourceGui.h │ │ │ └── resourceGui.rc │ │ └── GUI/ │ │ ├── BenchmarkDialog.cpp │ │ ├── BenchmarkDialog.h │ │ ├── BenchmarkDialog.rc │ │ ├── BenchmarkDialogRes.h │ │ ├── CompressDialog.cpp │ │ ├── CompressDialog.h │ │ ├── CompressDialog.rc │ │ ├── CompressDialogRes.h │ │ ├── CompressOptionsDialog.rc │ │ ├── Extract.rc │ │ ├── ExtractDialog.cpp │ │ ├── ExtractDialog.h │ │ ├── ExtractDialog.rc │ │ ├── ExtractDialogRes.h │ │ ├── ExtractGUI.cpp │ │ ├── ExtractGUI.h │ │ ├── ExtractRes.h │ │ ├── GUI.cpp │ │ ├── HashGUI.cpp │ │ ├── HashGUI.h │ │ ├── StdAfx.h │ │ ├── UpdateCallbackGUI.cpp │ │ ├── UpdateCallbackGUI.h │ │ ├── UpdateCallbackGUI2.cpp │ │ ├── UpdateCallbackGUI2.h │ │ ├── UpdateGUI.cpp │ │ ├── UpdateGUI.h │ │ ├── resource.rc │ │ ├── resource2.h │ │ ├── resource2.rc │ │ ├── resource3.h │ │ └── resource3.rc │ ├── Common/ │ │ ├── CRC.cpp │ │ ├── ComTry.h │ │ ├── CommandLineParser.cpp │ │ ├── CommandLineParser.h │ │ ├── Common.h │ │ ├── Common0.h │ │ ├── Defs.h │ │ ├── DynLimBuf.cpp │ │ ├── DynLimBuf.h │ │ ├── IntToString.cpp │ │ ├── IntToString.h │ │ ├── Lang.cpp │ │ ├── Lang.h │ │ ├── ListFileUtils.cpp │ │ ├── ListFileUtils.h │ │ ├── MyBuffer.h │ │ ├── MyBuffer2.h │ │ ├── MyCom.h │ │ ├── MyException.h │ │ ├── MyInitGuid.h │ │ ├── MyLinux.h │ │ ├── MyString.cpp │ │ ├── MyString.h │ │ ├── MyTypes.h │ │ ├── MyUnknown.h │ │ ├── MyVector.h │ │ ├── MyWindows.h │ │ ├── NewHandler.cpp │ │ ├── NewHandler.h │ │ ├── StdAfx.h │ │ ├── StdInStream.cpp │ │ ├── StdInStream.h │ │ ├── StdOutStream.cpp │ │ ├── StdOutStream.h │ │ ├── StringConvert.cpp │ │ ├── StringConvert.h │ │ ├── StringToInt.cpp │ │ ├── StringToInt.h │ │ ├── UTFConvert.cpp │ │ ├── UTFConvert.h │ │ ├── Wildcard.cpp │ │ └── Wildcard.h │ └── Windows/ │ ├── COM.h │ ├── Clipboard.cpp │ ├── Clipboard.h │ ├── CommonDialog.cpp │ ├── CommonDialog.h │ ├── Control/ │ │ ├── ComboBox.cpp │ │ ├── ComboBox.h │ │ ├── Dialog.cpp │ │ ├── Dialog.h │ │ ├── Edit.h │ │ ├── ListView.cpp │ │ ├── ListView.h │ │ ├── ProgressBar.h │ │ ├── Static.h │ │ └── StdAfx.h │ ├── DLL.cpp │ ├── DLL.h │ ├── Defs.h │ ├── ErrorMsg.cpp │ ├── ErrorMsg.h │ ├── FileDir.cpp │ ├── FileDir.h │ ├── FileFind.cpp │ ├── FileFind.h │ ├── FileIO.cpp │ ├── FileIO.h │ ├── FileLink.cpp │ ├── FileMapping.h │ ├── FileName.cpp │ ├── FileName.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── Handle.h │ ├── MemoryGlobal.cpp │ ├── MemoryGlobal.h │ ├── MemoryLock.cpp │ ├── MemoryLock.h │ ├── NtCheck.h │ ├── PropVariant.cpp │ ├── PropVariant.h │ ├── PropVariantConv.cpp │ ├── PropVariantConv.h │ ├── Registry.cpp │ ├── Registry.h │ ├── ResourceString.cpp │ ├── ResourceString.h │ ├── SecurityUtils.h │ ├── Shell.cpp │ ├── Shell.h │ ├── StdAfx.h │ ├── Synchronization.cpp │ ├── Synchronization.h │ ├── System.cpp │ ├── System.h │ ├── SystemInfo.cpp │ ├── SystemInfo.h │ ├── Thread.h │ ├── TimeUtils.cpp │ ├── TimeUtils.h │ ├── Window.cpp │ └── Window.h ├── NanaZip.slnx ├── NanaZipPackage/ │ ├── NanaZipPackage.wapproj │ ├── Package.appxmanifest │ └── Strings/ │ ├── af/ │ │ └── Legacy.resw │ ├── ar/ │ │ └── Legacy.resw │ ├── az-arab/ │ │ └── Legacy.resw │ ├── be/ │ │ └── Legacy.resw │ ├── bg/ │ │ └── Legacy.resw │ ├── bn/ │ │ └── Legacy.resw │ ├── ca/ │ │ └── Legacy.resw │ ├── ca-es-valencia/ │ │ └── Legacy.resw │ ├── cs/ │ │ └── Legacy.resw │ ├── cy/ │ │ └── Legacy.resw │ ├── da/ │ │ └── Legacy.resw │ ├── de/ │ │ └── Legacy.resw │ ├── el/ │ │ └── Legacy.resw │ ├── en/ │ │ └── Legacy.resw │ ├── eo/ │ │ └── Legacy.resw │ ├── es/ │ │ └── Legacy.resw │ ├── et/ │ │ └── Legacy.resw │ ├── eu/ │ │ └── Legacy.resw │ ├── fa/ │ │ └── Legacy.resw │ ├── fi/ │ │ └── Legacy.resw │ ├── fr/ │ │ └── Legacy.resw │ ├── fy/ │ │ └── Legacy.resw │ ├── ga/ │ │ └── Legacy.resw │ ├── gl/ │ │ └── Legacy.resw │ ├── gu/ │ │ └── Legacy.resw │ ├── he/ │ │ └── Legacy.resw │ ├── hi/ │ │ └── Legacy.resw │ ├── hr/ │ │ └── Legacy.resw │ ├── hu/ │ │ └── Legacy.resw │ ├── hy/ │ │ └── Legacy.resw │ ├── id/ │ │ └── Legacy.resw │ ├── is/ │ │ └── Legacy.resw │ ├── it/ │ │ └── Legacy.resw │ ├── ja/ │ │ └── Legacy.resw │ ├── ka/ │ │ └── Legacy.resw │ ├── kk/ │ │ └── Legacy.resw │ ├── ko/ │ │ └── Legacy.resw │ ├── ku-arab/ │ │ └── Legacy.resw │ ├── ky-kg/ │ │ └── Legacy.resw │ ├── lt/ │ │ └── Legacy.resw │ ├── lv/ │ │ └── Legacy.resw │ ├── mk/ │ │ └── Legacy.resw │ ├── mn-cyrl/ │ │ └── Legacy.resw │ ├── mn-mong/ │ │ └── Legacy.resw │ ├── mr/ │ │ └── Legacy.resw │ ├── ms/ │ │ └── Legacy.resw │ ├── nb/ │ │ └── Legacy.resw │ ├── ne/ │ │ └── Legacy.resw │ ├── nl/ │ │ └── Legacy.resw │ ├── nn/ │ │ └── Legacy.resw │ ├── pa-in/ │ │ └── Legacy.resw │ ├── pl/ │ │ └── Legacy.resw │ ├── ps/ │ │ └── Legacy.resw │ ├── pt/ │ │ └── Legacy.resw │ ├── pt-br/ │ │ └── Legacy.resw │ ├── ro/ │ │ └── Legacy.resw │ ├── ru/ │ │ └── Legacy.resw │ ├── si/ │ │ └── Legacy.resw │ ├── sk/ │ │ └── Legacy.resw │ ├── sl/ │ │ └── Legacy.resw │ ├── sq/ │ │ └── Legacy.resw │ ├── sr-Latn/ │ │ └── Legacy.resw │ ├── sr-cyrl/ │ │ └── Legacy.resw │ ├── sv/ │ │ └── Legacy.resw │ ├── sw/ │ │ └── Legacy.resw │ ├── ta/ │ │ └── Legacy.resw │ ├── tg-arab/ │ │ └── Legacy.resw │ ├── th/ │ │ └── Legacy.resw │ ├── tk-cyrl/ │ │ └── Legacy.resw │ ├── tr/ │ │ └── Legacy.resw │ ├── tt-arab/ │ │ └── Legacy.resw │ ├── ug-arab/ │ │ └── Legacy.resw │ ├── uk/ │ │ └── Legacy.resw │ ├── uz-cyrl/ │ │ └── Legacy.resw │ ├── uz-latn/ │ │ └── Legacy.resw │ ├── vi/ │ │ └── Legacy.resw │ ├── yo-latn/ │ │ └── Legacy.resw │ ├── zh-Hans/ │ │ └── Legacy.resw │ └── zh-Hant/ │ └── Legacy.resw ├── ReadMe.md ├── RestoreNuGetPackages.cmd ├── Security.md └── Settings.XamlStyler ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ ## ## PROJECT: Mouri Internal Library Essentials ## FILE: .editorconfig ## PURPOSE: The root .editorconfig file ## ## LICENSE: The MIT License ## ## MAINTAINER: MouriNaruto (Kenji.Mouri@outlook.com) ## root = true [*] charset = utf-8-bom end_of_line = crlf [*.md] insert_final_newline = true [*.{c,c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,ixx,cppm,ipp,odl,idl,inl,ipp,tlh,tli}] indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true vc_generate_documentation_comments = doxygen_slash_star cpp_new_line_before_open_brace_function = new_line cpp_new_line_before_open_brace_block = new_line cpp_new_line_before_open_brace_lambda = new_line cpp_new_line_before_open_brace_type = new_line cpp_new_line_before_open_brace_namespace = new_line cpp_new_line_close_brace_same_line_empty_type = false cpp_new_line_close_brace_same_line_empty_function = false cpp_new_line_before_else = true cpp_new_line_before_catch = true cpp_new_line_before_while_in_do_while = true cpp_naming_rule.general_names.symbols = all_symbols cpp_naming_rule.general_names.style = mile_project_cpp cpp_naming_symbols.all_symbols.applicable_kinds = * cpp_naming_style.mile_project_cpp.capitalization = pascal_case [*.{cs,csx,vb,vbx,asmx}] indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true [*.{js,json,xml,toml,xaml}] indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true [*.rc] charset = utf-16le [*.inf] charset = utf-16le [*.bat] charset = utf-8 insert_final_newline = true [*.sh] charset = utf-8 end_of_line = lf insert_final_newline = true [*.{asm,inc,s,nasm}] charset = utf-8 indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true ================================================ FILE: .github/FUNDING.yml ================================================ custom: [ "https://github.com/M2Team/NanaZip/blob/main/Documents/SponsorEdition.md" ] ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yml ================================================ name: Bug report description: Something isn't working as expected. labels: ["bug"] body: - type: checkboxes attributes: label: Prerequisite checks description: These items are required before submitting the bug report. options: - label: My system fulfills [the minimum software requirements](https://github.com/M2Team/NanaZip?tab=readme-ov-file#system-requirements). required: true - label: I have downloaded NanaZip from an official source (GitHub, Microsoft Store, My Digital Life Forums, SourceForge, and Windows App Community) required: true - type: textarea attributes: label: Describe the issue validations: required: true - type: textarea attributes: label: Reproduction steps description: What steps did you take for this bug to happen? placeholder: | 1. 2. 3. validations: required: true - type: textarea attributes: label: Expected behavior description: What did you expect this feature to do? validations: required: true - type: input attributes: label: NanaZip veresion description: What version of NanaZip are you using? validations: required: true - type: input attributes: label: Windows version description: What version of Windows are you using? placeholder: Windows 11, version 25H2; Windows 11 Insider build xxxxx validations: required: true - type: textarea attributes: label: Additional context description: Any other information related to this bug that you want to tell us. ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ blank_issues_enabled: true contact_links: - name: Report a security vulnerability url: https://github.com/M2Team/NanaZip/security/advisories/new about: Don't open a GitHub issue to report a vulnerability. Please create a new security advisory instead. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.yml ================================================ name: Feature request description: Request a new feature into NanaZip. labels: ["enhancement"] body: - type: textarea attributes: label: Describe the feature validations: required: true - type: checkboxes attributes: label: Prerequisite checks options: - label: I have confirmed that this feature isn't yet implemented in the latest Preview release. required: true ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================  ================================================ FILE: .github/dco.yml ================================================ allowRemediationCommits: individual: true thirdParty: true require: members: true ================================================ FILE: .github/workflows/BuildBinaries.yml ================================================ name: Build Binaries on: push: paths-ignore: - 'Documents/**' - '**/*.md' pull_request: paths-ignore: - 'Documents/**' - '**/*.md' jobs: build: runs-on: windows-latest env: POWERSHELL_TELEMETRY_OPTOUT: 1 steps: - uses: actions/checkout@v4 with: submodules: 'recursive' - uses: microsoft/setup-msbuild@v2 - name: Clear local NuGet cache (workaround for failed restores on windows-latest) run: dotnet nuget locals all --clear - name: Build run: MSBuild -binaryLogger:Output\BuildAllTargets.binlog -m BuildAllTargets.proj - name: Upload MSIX Bundle uses: actions/upload-artifact@v4 with: name: NanaZip_Mainline_ApplicationPackages path: Output/Binaries/AppPackages - name: Upload Extension Package Installer uses: actions/upload-artifact@v4 with: name: NanaZip_Mainline_ExtensionPackageInstaller path: Output/NanaZip.ExtensionPackage_*.exe - name: Upload MSBuild Build Process Binary Log uses: actions/upload-artifact@v4 if: '!cancelled()' with: name: NanaZip_Mainline_BuildBinaryLog path: Output/BuildAllTargets.binlog - name: Upload Portable Binaries uses: actions/upload-artifact@v4 with: name: NanaZip_Mainline_PortableBinaries path: Output/Binaries/Root/Binaries - name: Upload Debug Symbols uses: actions/upload-artifact@v4 with: name: NanaZip_Mainline_DebugSymbols path: Output/Binaries/Root/Symbols ================================================ FILE: .github/workflows/UpdatePrecompiledBuildTools.yml ================================================ name: Update Precompiled Build Tools on: push: branches: - main paths: - 'NanaZip.Build.Tasks/**' - '.github/workflows/UpdatePrecompiledBuildTools.yml' jobs: build: runs-on: windows-latest env: POWERSHELL_TELEMETRY_OPTOUT: 1 steps: - uses: actions/checkout@v4 with: submodules: 'recursive' - uses: microsoft/setup-msbuild@v2 - name: Clear local NuGet cache (workaround for failed restores on windows-latest) run: dotnet nuget locals all --clear - name: Configure the git commit information run: | git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" - name: Refresh the build number run: | MSBuild -target:RefreshVersion BuildAllTargets.proj git commit -a -m "Refresh the build number for the precompiled build tools." - name: Prepare the compiled build tools binaries run: | dotnet build --configuration Release NanaZip.Build.Tasks\NanaZip.Build.Tasks.csproj git commit -a -m "Update the precompiled build tools." - name: Push changes to the repository run: | git checkout -b unstaged/update-precompiled-build-tools git push origin unstaged/update-precompiled-build-tools --force ================================================ FILE: .github/workflows/UpdateWebsite.yml ================================================ name: Update Website on: push: branches: - main paths: - 'Documents/Website/**' - '.github/workflows/UpdateWebsite.yml' permissions: contents: read pages: write id-token: write concurrency: group: "pages" cancel-in-progress: false jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Build and upload website uses: withastro/action@v5 with: path: ./Documents/Website deploy: needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 ================================================ FILE: .gitignore ================================================ ## ## PROJECT: Mouri Internal Library Essentials ## FILE: .gitignore ## PURPOSE: The root .gitignore file for Visual Studio C++ Project ## ## LICENSE: The MIT License ## ## MAINTAINER: MouriNaruto (Kenji.Mouri@outlook.com) ## ## ## Ignore Mile.Project specific temporary files, build results, ## and files generated by popular Visual Studio add-ons. ## Output/ ## ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUnit *.VisualState.xml TestResult.xml nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ # ASP.NET Scaffolding ScaffoldingReadMe.txt # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.tlog *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Coverlet is a free, cross platform Code Coverage Tool coverage*.json coverage*.xml coverage*.info # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx *.appxbundle *.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio 6 auto-generated project file (contains which files were open etc.) *.vbp # Visual Studio 6 workspace and project file (working project files containing files to include in project) *.dsw *.dsp # Visual Studio 6 technical files *.ncb *.aps # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog MSBuild_Logs/ # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # Visual Studio History (VSHistory) files .vshistory/ # BeatPulse healthcheck temp database healthchecksdb # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ # Fody - auto-generated XML schema FodyWeavers.xsd # VS Code files for those working on multiple tools .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json *.code-workspace # Local History for Visual Studio Code .history/ # Windows Installer files from build outputs *.cab *.msi *.msix *.msm *.msp # JetBrains Rider *.sln.iml ================================================ FILE: BuildAllTargets.cmd ================================================ @setlocal @echo off rem Change to the current folder. cd "%~dp0" rem Remove the output folder for a fresh compile. rd /s /q Output rem Initialize Visual Studio environment set VisualStudioInstallerFolder="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer" if %PROCESSOR_ARCHITECTURE%==x86 set VisualStudioInstallerFolder="%ProgramFiles%\Microsoft Visual Studio\Installer" pushd %VisualStudioInstallerFolder% for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do ( set VisualStudioInstallDir=%%i ) popd call "%VisualStudioInstallDir%\VC\Auxiliary\Build\vcvarsall.bat" x86 rem Build all targets MSBuild -binaryLogger:Output\BuildAllTargets.binlog -m BuildAllTargets.proj @endlocal ================================================ FILE: BuildAllTargets.proj ================================================  $(GitBuildNumberDate) $(NanaZipMajorVersion).$(NanaZipMinorVersion).$([System.DateTime]::Parse('$(NanaZipBuildNumberDate)').Subtract($([System.DateTime]::Parse('$(NanaZipProjectCreationDate)'))).TotalDays).0 Configuration=Debug;Platform=x64 Configuration=Release;Platform=x64 Configuration=Release $(MSBuildThisFileDirectory)Output\Binaries\Release\ $(MSBuildThisFileDirectory)Output\Binaries\Root\Binaries\ $(MSBuildThisFileDirectory)Output\Binaries\Root\Symbols\ NanaZip_$(MileProjectVersion) ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at Kenji.Mouri@outlook.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing to NanaZip ## How to become a contributor - Direct contributions - We use a code style similar but not identical to that of Windows NT kernel drivers. You must read the code style guidelines carefully, word by word, before submitting your pull request. To maintain NanaZip's source code quality, and to respect our reviewers' time, we will not accept PRs that don't follow these guidelines. - We expect all contributions to match our existing style WITHOUT EXCEPTION. If you have any questions about our coding standards, please open an issue for discussion before submitting your pull request. - By submitting a pull request, you agree to license your contribution under the MIT license. We reserve the right to reuse and rewrite contributors' PRs as needed. - You are forbidden to modify any content in any files and folders starting with the "Mile." prefix because those implementations are shared across many projects, or your pull request will not be merged and will be closed immediately, unless you get the permission from Kenji Mouri. - It's OK to use AI/LLM tools to help you write code, but you must ensure that the final commit is written and reviewed by yourself, following our coding style and conventions. If we find that your pull request has no contribution from you, or the contribution is not reviewed by you, your pull request will not be merged and will be closed immediately. - Feedback suggestions and bugs. - We use GitHub issues to track bugs and features. - For bugs and general issues please [file a new issue](https://github.com/M2Team/NanaZip/issues/new). ## Code contribution guidelines ### Prerequisites - Visual Studio 2022 or later. - You also need install ARM64 components (MSVC Toolchain and ATL/MFC) if you want to compile the ARM64 version of NanaZip. - Windows 11 SDK or later. - You also need to install ARM64 components if you want to compile the ARM64 version of NanaZip. ### How to build all targets of NanaZip Run `BuildAllTargets.bat` in the root of the repository. ### How to modify or debugging NanaZip Recommend to run `RestoreNuGetPackages.cmd` in the root of the repository to restore NuGet packages if you have not run this script or `BuildAllTargets.bat` before. (Recent versions of Visual Studio 2026 has some issues to restore NuGet packages automatically.) Open `NanaZip.slnx` in the root of the repository. ### Code style and conventions Read Kenji Mouri's [MD24: The coding style for all my open-source projects] for more information. [MD24: The coding style for all my open-source projects]: https://github.com/MouriNaruto/MouriDocs/tree/main/docs/24 For all languages respect the [.editorconfig](https://editorconfig.org/) file specified in the source tree. Many IDEs natively support this or can with a plugin. #### Modifications for inherited 7-Zip mainline source code > [!NOTE] > Read https://github.com/M2Team/NanaZip/blob/main/License.md first for knowing > which files whether belong to inherited 7-Zip mainline source code.** > [!NOTE] > For adding something to inherited 7-Zip code, don't add extra empty line if > there is no empty line in the existed inherited 7-Zip methods and functions. For simplifying the synchronization from 7-Zip mainline, the modification mark is necessary, which the original 7-Zip mainline code should be commented as original, Here is the format: ``` // **************** NanaZip Modification Start **************** // xzProps.numTotalThreads = (int)(prop.ulVal); xzProps.numTotalThreads = ((int)prop.ulVal) > 1 ? (int)prop.ulVal : 1; // **************** NanaZip Modification End **************** ``` For multiple lines, you can also use the following format: ``` // **************** 7-Zip ZS Modification Start **************** #if 0 // ******** Annotated 7-Zip Mainline Source Code snippet Start ******** kBZip2 = 12, kLZMA = 14, kTerse = 18, kLz77 = 19, kZstdPk = 20, kZstdWz = 93, kMP3 = 94, kXz = 95, kJpeg = 96, kWavPack = 97, kPPMd = 98, kWzAES = 99 #endif // ******** Annotated 7-Zip Mainline Source Code snippet End ******** kBZip2 = 12, // File is compressed using BZIP2 algorithm kLZMA = 14, // LZMA kTerse = 18, // File is compressed using IBM TERSE (new) kLz77 = 19, // IBM LZ77 z Architecture kZstdPk = 20, // deprecated (use method 93 for zstd) kZstd = 93, // Zstandard (zstd) Compression kMP3 = 94, // MP3 Compression kXz = 95, // XZ Compression kJpeg = 96, // JPEG variant kWavPack = 97, // WavPack compressed data kPPMd = 98, // PPMd version I, Rev 1 kWzAES = 99 // AE-x encryption marker (see APPENDIX E) // **************** 7-Zip ZS Modification End **************** ``` #### Translation contribution notice All `comment` in `resw` files should be kept English to make it better for maintenance in the future. ================================================ FILE: Directory.Build.props ================================================  $(MSBuildThisFileDirectory)Output\ ================================================ FILE: Documents/ChannelSwitchNote.md ================================================ # Channel Switch Note for NanaZip development P.S. Only for Kenji Mouri ## Preview - DisplayName="NanaZip Preview" - Name="40174MouriNaruto.NanaZipPreview" - NanaZip Preview - 469D94E9-6AF4-4395-B396-99B1308F8CE5 - return ::SHStrDupW(L"NanaZip Preview", ppszName); ## Stable - DisplayName="NanaZip" - Name="40174MouriNaruto.NanaZip" - NanaZip - CAE3F1D4-7765-4D98-A060-52CD14D56EAB - return ::SHStrDupW(L"NanaZip", ppszName); ================================================ FILE: Documents/DevelopmentRoadmapArchived.md ================================================ # Development Roadmap (Archived) These will be migrated to the new roadmap issue in the future. - Blue Moon (3.x) Series (Before 2024 Q3) - [ ] Continue to modernize the UI with XAML Islands with the Windows 11 control style, dark and light mode support. - [ ] Full Accessibility support in all UI components. - [ ] Migrate configurations from registry to json. (Suggested by AndromedaMelody.) - [ ] Continue to modernize the core implementation. - [ ] Try to Windows Runtime component for interoperability. - [ ] Provide NanaZip Installer for simplify the deployment. - [ ] Try to add option for save file names with UTF-8 in 7z archives. - [ ] Add batch task support. (Suggested by 刘泪.) - [ ] Try to design the new UI layout. (Suggested by wangwenx190.) - [ ] Try to add option for using Windows Imaging API (WIMGAPI) backend to make better creation and extraction support for wim archives, also add creation and extraction support for esd archives. - [ ] Try to add pri archive extracting support. - [ ] Try to add smart extraction. - [ ] Try to add language encoding switching support for file names in File Manager. (Suggested by 刘泪 and zjkmxy.) - [ ] Try to add deleting source after archiving support. (Suggested by OrionGrant.) - [ ] Try to add an option when extracting an archive to open the folder where you extracted the files, like WinRAR. (Suggested by maicol07.) - [ ] Try to add ISO creation support. - Sherlock Holmes (5.x) Series (Before 2025 Q3) - Currently no new feature plans for this series. - Unpredictable Future Series (T.B.D.) - [ ] Try to create a new archive file format optimized for software distribution and image backup and restore. - [ ] Keeping metadata provided by file system. - [ ] File referencing support. - [ ] Integrity verification support. - [ ] Differential support. - [ ] Recovery record support. - [ ] Provide lightweight SDK for authoring and consuming. - [ ] Try to contribute recovery record support for 7z archives to 7-Zip mainline. (Suggested by SakuraNeko.) - [ ] Try to port NanaZip to Linux. - [ ] Try to port MegaUI (an developing lightweight UI framework created by mingkuang, under internal developing at the current stage, will be open source if the work has done) framework to Linux. - [ ] Try to create MinLin (a.k.a. Minimum Linux, a distro intended for helping publish distroless binaries and provide some Windows API functions as static libraries for having a lightweight platform abstraction layer) project because I think NanaZip should support distroless environment for reducing time wasting for compiling for different distros. - [ ] After porting NanaZip to Linux, accept contributions from community folks for other POSIX platforms (e.g. FreeBSD) and macOS support. - [ ] Try to add extension for Windows File Explorer for give user immersive experience like builtin zip file support in Windows. (Suggested by SakuraNeko and shuax.) - [ ] Try to create isolated and portable plugin infrastructure based on 64-bit RISC-V Unprivileged ISA Specification. Runtime Project: https://github.com/ChaosAIOfficial/RaySoul ================================================ FILE: Documents/People.md ================================================ # Relevant People ## Notice - This list is sorted in alphabetical order. ## Development Team ### Benevolent Dictators For Life The project is governed by multiple Benevolent Dictators For Life who make final decisions by reaching an agreement offline. This structure is chosen to avoid the risks of a single point of control while maintaining efficiency over a large committee. Here are current active Benevolent Dictators For Life: - dinhngtu (Tu Dinh), https://github.com/dinhngtu - Kenji Mouri, https://github.com/MouriNaruto ### Consultants and Benevolent Dictator For Life Candidates The following contributors are recognized as candidates for the Benevolent Dictator For Life role. In their current capacity, they serve as valued consultants to the active Benevolent Dictators For Life due to their significant and valuable contributions to the project. - AndromedaMelody, https://github.com/AndromedaMelody - Dongle, https://github.com/dongle-the-gadget - Sakura Neko, https://github.com/SakuraNeko ## Microsoft Store preinstall permission OEM Sponsor - Moespirit Tech, https://github.com/Moespirit ## Logo Designers ### 2.x Series - Shomnipotence, https://github.com/Shomnipotence ### 1.x Series - Alice (四月天), https://twitter.com/alice_alice49 - Chi Lei, https://github.com/lychichem - Kenji Mouri, https://github.com/MouriNaruto - Rúben Garrido, https://github.com/RGarrido03 - Sakura Neko, https://github.com/SakuraNeko ## Contributors Read https://github.com/M2Team/NanaZip/graphs/contributors for getting the contributors list. ## Special thanks - Belleve, https://github.com/be5invis - Igor Pavlov, https://sourceforge.net/u/ipavlov - mingkuang, https://github.com/mingkuang-Chuyu - myfreeer, https://github.com/myfreeer - Tino Reichardt, https://github.com/mcmilk ================================================ FILE: Documents/Policies.md ================================================ # NanaZip Policies Starting with NanaZip 6.0, users can configure system‑wide policies under the Windows registry key `HKLM\Software\Policies\M2Team\NanaZip`. These system-wide policies override user settings and are intended for use by system administrators to enforce specific configurations across multiple users or systems. You can enforce these policies on an entire domain using our [Group Policy Administrative Templates](PolicyDefinitions). Here are the currently provided policies and their descriptions. ## Available policies since NanaZip 6.0 ### Allow dynamic code generation for all NanaZip components NanaZip disables dynamic code generation for its components by default in Release builds to reduce the risk of running potentially malicious code at runtime. However, some third‑party software that relies on dynamic code generation and injects code into NanaZip processes may require this feature to be enabled for compatibility. - Name: `AllowDynamicCodeGeneration` - Type: `REG_DWORD` - Value: - `0`: Disabled (Default) - `1`: Enabled ### Allow child processes creation for all NanaZip components NanaZip blocks child process creation by default in its command line components and self‑extracting executables to reduce the risk of process abuse by malicious archives. However, some third‑party input method editors (IMEs) and assistive technologies (ATs) may require child process creation to function correctly. In such cases, this policy can be used to allow child process creation. - Name: `AllowChildProcessCreation` - Type: `REG_DWORD` - Value: - `0`: Disabled (Default) - `1`: Enabled ### Archive handler restrictions These values control which archive handlers can be loaded by NanaZip. With this policy, you can significantly limit the attack surface of NanaZip by blocking the parsing of unusual archive formats. If AllowedHandlers is present, only the handlers specified in said list will be allowed. If BlockedHandlers is present, the handlers specified in said list will be blocked. BlockedHandlers takes precedence over AllowedHandlers; i.e. handlers specified in BlockedHandlers will still be blocked even if they're specified in AllowedHandlers. Note that when editing a `REG_MULTI_SZ` value in Registry Editor, each entry must be on its own line. - Name: `AllowedHandlers` - Type: `REG_MULTI_SZ` - Value: List of allowed archive handlers (case-sensitive). - Name: `BlockedHandlers` - Type: `REG_MULTI_SZ` - Value: List of blocked archive handlers (case-sensitive). Known archive handlers (as of NanaZip 6.0 Preview 2): ``` .Electron Archive (asar), .NET Single File Application, 7z, APFS, APM, Ar, Arj, AVB, Base64, brotli, bzip2, Cab, Chm, COFF, Compound, Cpio, CramFS, Dmg, ELF, Ext, FAT, FLV, GPT, gzip, HFS, Hxs, IHex, Iso, littlefs, lizard, LP, LVM, lz4, lz5, Lzh, lzip, lzma, lzma86, MachO, MBR, MsLZ, Mub, Nsis, NTFS, PE, Ppmd, QCOW, Rar, Rar5, ROMFS, Rpm, Sparse, Split, SquashFS, SWF, SWFc, tar, TE, Udf, UEFIc, UEFIf, UFS, VDI, VHD, VHDX, VMDK, WebAssembly (WASM), wim, Xar, xz, Z, ZealFS, zip, zstd ``` Run `NanaZipC --version` to see the full list of currently-enabled handlers. ### Codec restrictions Similarly to archive handler restrictions, these values control which codecs can be loaded by NanaZip. **Note:** Some single-codec archive formats (e.g. Brotli) may call their associated codecs without respecting codec restrictions. If you want to fully block a codec from being used, make sure that its associated formats are also blocked. - Name: `AllowedCodecs` - Type: `REG_MULTI_SZ` - Value: List of allowed codecs (case-sensitive). - Name: `BlockedCodecs` - Type: `REG_MULTI_SZ` - Value: List of blocked codecs (case-sensitive). Known codecs (as of NanaZip 6.0 Preview 2): ``` 7zAES, AES256CBC, ARM, ARM64, ARMT, BCJ, BCJ2, BROTLI, BZip2, Copy, Deflate, Deflate64, Delta, FLZMA2, IA64, LIZARD, LZ4, LZ5, LZMA, LZMA2, PPC, PPMD, Rar1, Rar2, Rar3, Rar5, RISCV, SPARC, Swap2, Swap4, ZSTD ``` Run `NanaZipC --version` to see the full list of currently-enabled codecs. ### Propagate Zone.Id stream This value controls Mark-of-the-Web (MOTW) propagation of archive files. - Name: `WriteZoneIdExtract` - Type: `REG_DWORD` - Value: - `0`: No - `1`: Yes (all files) - `2`: Only for unsafe extensions (does not support all nested archives) ## Legacy Policies in NanaZip 6.0 Preview 1 In NanaZip 6.0 Preview 1, system-wide policies should be set via creating Registry values in the key `HKLM\Software\NanaZip\Policies` instead. Here are the policies can be applied in NanaZip 6.0 Preview 1. - WriteZoneIdExtract Here are some policies only available in NanaZip 6.0 Preview 1. ### Disable mitigations This value controls which security mitigations should not be applied by NanaZip. - Name: `DisableMitigations` - Type: `REG_DWORD` - Value: - `0`: Don't disable mitigations - `1`: Disable all mitigations - Other values are reserved. ================================================ FILE: Documents/PolicyDefinitions/NanaZip.admx ================================================ ================================================ FILE: Documents/PolicyDefinitions/en-US/NanaZip.adml ================================================  NanaZip NanaZip NanaZip NanaZip 6.0 Preview 1 NanaZip 6.0 Preview 2 NanaZip 6.0 Preview 1 only At least NanaZip 6.0 Preview 2 NanaZip Handler and Codec Restrictions Legacy Policies Allow dynamic code generation for all NanaZip components NanaZip disables dynamic code generation for its components by default in Release builds to reduce the risk of running potentially malicious code at runtime. However, some third-party software that relies on dynamic code generation and injects code into NanaZip processes may require this feature to be enabled for compatibility. If you enable this policy setting, NanaZip allows third-party components to generate dynamic code at runtime. If you disable or do not configure this policy setting, NanaZip blocks the ability to create dynamic code in its own processes. Allow child processes creation for all NanaZip components NanaZip blocks child process creation by default in its command line components and self-extracting executables to reduce the risk of process abuse by malicious archives. However, some third-party input method editors (IMEs) and assistive technologies (ATs) may require child process creation to function correctly. In such cases, this policy can be used to allow child process creation. If you enable this policy setting, NanaZip processes can create child processes at runtime. If you disable or do not configure this policy setting, NanaZip blocks the ability to create child processes from many of its own processes. Allowed archive handlers This policy setting controls which archive handlers can be loaded by NanaZip. With this policy setting, you can significantly limit the attack surface of NanaZip by blocking the parsing of uncommon archive formats. If you enable this policy setting, only the handlers specified in this list (one in each line, case sensitive) will be allowed to load. If you disable or do not configure this policy setting, all otherwise-unspecified archive handlers can load. Run NanaZipC --version to see the full list of currently-enabled handlers. Blocked archive handlers This policy setting controls which archive handlers cannot be loaded by NanaZip. With this policy setting, you can significantly limit the attack surface of NanaZip by blocking the parsing of uncommon archive formats. If you enable this policy setting, the handlers specified in this list (one in each line, case sensitive) will be blocked from loading. If you disable or do not configure this policy setting, all otherwise-unspecified archive handlers can load. Run NanaZipC --version to see the full list of currently-enabled handlers. Allowed compression codecs This policy setting controls which compression codecs can be loaded by NanaZip. With this policy setting, you can significantly limit the attack surface of NanaZip by blocking the execution of uncommon compression codecs. If you enable this policy setting, only the codecs specified in this list (one in each line, case sensitive) will be allowed to load. If you disable or do not configure this policy setting, all otherwise-unspecified compression codecs can load. Run NanaZipC --version to see the full list of currently-enabled codecs. Blocked compression codecs This policy setting controls which compression codecs cannot be loaded by NanaZip. With this policy setting, you can significantly limit the attack surface of NanaZip by blocking the execution of uncommon compression codecs. If you enable this policy setting, the codecs specified in this list (one in each line, case sensitive) will be blocked from loading. If you disable or do not configure this policy setting, all otherwise-unspecified compression codecs can load. Run NanaZipC --version to see the full list of currently-enabled codecs. Propagate Zone.Id stream This policy setting controls Mark-of-the-Web (MOTW) propagation of archive files. If you enable this policy setting, NanaZip follows the given MOTW setting when extracting files. If you disable or do not configure this policy setting, NanaZip follows the user's MOTW propagation setting. Don't propagate MOTW Propagate MOTW to all files Propagate MOTW to unsafe files Disable mitigations This policy setting controls the application of security mitigations on NanaZip processes. If you enable this policy setting, NanaZip disables all security mitigations in its processes. If you disable or do not configure this policy setting, NanaZip enables all mitigations by default. List of allowed archive handlers: List of blocked archive handlers: List of allowed compression codecs: List of blocked compression codecs: Propagate Zone.Id stream: ================================================ FILE: Documents/Privacy.md ================================================ # NanaZip - Privacy Policy ## Information collected NanaZip does not collect any information. However it does provide you access to files and folders on your file system. Additionally, the Windows Store and Windows App Host collect data on usage, for example, who bought/used the app and crash reports. If you open any files or links in the app that go to other websites you will need to look at their privacy policy. ## Sponsored edition Due to the Microsoft Store Licensing API implementation, you will find NanaZip will try to access the Internet beginning with NanaZip 3.0 because NanaZip needs to use that to check the Sponsor Edition addon licensing status. For optimizing the user experience, NanaZip will only check the Sponsor Edition addon licensing status at the first time your launch NanaZip File Manager. You can click the sponsor button if you want to refresh the status after you have purchased or redeemed the Sponsor Edition addon. ## Use of information No other data is collected or shared online. We reserve the right to make changes to this policy. Any changes to this policy will be updated. ## Last updated: May 28, 2024 ================================================ FILE: Documents/ReleaseNotes.md ================================================ # NanaZip Release Notes For preview versions, please read [NanaZip Preview Release Notes](ReleaseNotesPreview.md). **NanaZip 6.0 Update 2 (6.0.1650.0)** - Add NanaZip official website link to the XAML About Dialog. - Fix some crash issues caused by dark mode support. - Fix some crash issues caused by the XAML information dialog. - Fix the issue that we cannot use NanaZip.Universal.Windows.exe without NanaZip.Modern.dll. - Fix the issue that we cannot set the initial folder for the copy location dialog browse button. - Fix the buffer overflow issue introduced since 7-Zip mainline 26.00 when using NanaZip.Core.Setup.sfx which you need to compiled manually to get. (Backported from https://github.com/M2Team/NanaZip/pull/850 and https://github.com/mcmilk/7-Zip-zstd/pull/468/changes/f4efd0f2d960b18fd51a894d04b5eadebf8c270b.) **NanaZip 6.0 Update 1 (6.0.1638.0)** - Fix several issues for the UFS/UFS2 file system image readonly support. (Cooperated with HO-9.) - Fix several issues for the .NET Single File Application bundle readonly support. (Cooperated with HO-9.) - Fix the white flashes when initializing the file panels in the NanaZip File Manager main window. (Thanks to anhelloooo.) - Disable text wrapping for textbox control in XAML information dialog to show information better. - Make the hash calculation result output text format more compact to improve the copy and paste experience. - Fix the Win32 TaskDialog-based Folders History dialog not functioning when users navigate to the desktop virtual folder. - Update Japanese translation. (Contributed by noangel.) - Update Brazilian Portuguese translation. (Contributed by maisondasilva.) **NanaZip 6.0 (6.0.1632.0)** - Notes - Start to transition to community driven development model. - Update system requirement to Windows 10, version 2004 (Build 19041) or later, and remove the x86 (32-bit) for all components. - Start to provide the official portable binaries package of NanaZip with both Modern and Classic flavors, except the NanaZip File Manager. - Introduce formal version of contributing guide and security policies. (Cooperated with dinhngtu and dongle-the-gadget.) - Add Release Tags to NanaZip Versioning. - Features - Introduce extract-on-open feature. (Contributed by dinhngtu.) - To disable this temporarily, hold Shift while opening the file. - To disable this permanently, go to Settings, Integration tab, and disable "Extract on open" at the bottom. - Introduce registry settings for Mark of the Web (MoTW) enforcement policies. (Contributed by dinhngtu.) - Improve the dynamic library block list for resolving compatibility issues. (Contributed by dinhngtu.) - Introduce registry settings for disabling security mitigation policies, which should be helpful for debugging and resolving compatibility issues. (Contributed by dinhngtu.) - Introduce registry settings for the archive handler and codec handler restriction. (Contributed by dinhngtu.) - Introduce Group Policy Administrative Template (ADMX/ADML) for NanaZip. (Contributed by dinhngtu.) - Set the LOAD_LIBRARY_SEARCH_SYSTEM32 dependent load flag on Release builds of Self Extracting Executables stubs to mitigate static imports level DLL planting attack on Windows 10 build 14393 and later. (Contributed by dinhngtu.) - Introduce the XAML-based address bar. (Contributed by dongle-the-gadget.) - Introduce the XAML-based status bar. (Contributed by dongle-the-gadget.) - Introduce the XAML-based properties and information dialog. (Contributed by dongle-the-gadget.) - Introduce the XAML-based progress dialog. (Contributed by dongle-the-gadget.) - Introduce extract all automatically policy when opening executable files in archives. (Contributed by MajThomas.) - Introduce the environment variable parsing support for address bar. (Thanks to dongle-the-gadget's huge help.) - Add support for CBR and CBZ file associations. (Contributed by dinhngtu.) - Add support for ASAR file association. (Contributed by dongle-the-gadget.) - Display file system version in archive property window for the UFS/UFS2 file system image readonly support. - Display bundle version in archive property for the .NET Single File Application bundle readonly support. - Display file system version in archive property for the littlefs file system image readonly support. - Allow to associate more file types to NanaZip. (Contributed by manfromarce.) - Enable Ctrl+Backspace on edit fields using SHAutoComplete. (Contributed by dinhngtu.) - Introduce NanaZip.Universal.Windows project for making NanaZip Command Line Interface (Windows) for both NanaZip (Modern) and NanaZip Classic a.k.a. NanaZipG or K7G to synchronize to the latest 7-Zip mainline and 7-Zip ZS implementations. - Introduce NanaZip Platform Base Library (K7Base) and NanaZip Platform User Library (K7User) to replace NanaZip Platform Abstraction Layer (K7Pal) and NanaZip.Frieren for better code sharing and maintainability. - Create NanaZip.Modern project for the modern user experience development. - Introduce Mile.Mobility dependence to NanaZip.Codecs project for making better portability between NanaZip and AptxZip (a.k.a. NanaZip for POSIX). - Introduce NanaZip.ExtensionPackage project for future development of features which need to be distributed as legacy installer. (Contributed by dinhngtu.) - Introduce Mile.Helpers.Portable.Base.Unstaged as the temporary infrastructure to standardize some portable things in NanaZip.Codecs. - Introduce NanaZip.Codecs.Specification.Fat for adding definitions of FAT12, FAT16 and FAT32. - Introduce NanaZip.Codecs.Specification.Zealfs for adding definitions of ZealFS series file system. (Cooperated with Zeal 8-bit.) - Add littlefs v1 on-disk definitions to the littlefs file system image readonly support. - Move NanaZip.Core's NanaZip.Core.Console project to NanaZip.Universal's NanaZip.Universal.Console project. - Improvements - Start to use Zstandard decoder instead of 7-Zip mainline's implementation for better reliability, especially it can reduce more potential vulnerabilities. - Use x-generate to define language resources in AppX manifest to solve the Windows AppX language fallback issue. (Suggested by dongle-the-gadget.) - Make texts have better contrast in dark mode. - Improve the Smart Extraction feature. (Contributed by R-YaTian.) - Improve the NanaZip startup performance by initializing the StoreContext later. (Contributed by dongle-the-gadget.) - Move open folder checkbox to extract dialog. (Contributed by dinhngtu.) - Update Albanian translation. (Contributed by F1219R.) - Update Hungarian translation. (Contributed by John Fowler.) - Update Greek translation. (Contributed by Lefteris T.) - Update German translation. (Contributed by HackZy01.) - Update Bengali translation. (Contributed by Sumon Kayal.) - Update Dutch translation. (Contributed by Stephan-P.) - Localize Open Inside menu text. (Contributed by dinhngtu.) - Remove Help button from compress option dialogs. (Contributed by peashooter2.) - Update the icon assets with optimized assets to reduce the binary size. - Use Win32 TaskDialog to implement the Folders History dialog to simplify the implementation. - Synchronize 7-Zip mainline implementations to 26.00. (Except the NanaZip File Manager.) (Thanks to Igor Pavlov. Noticed by FadeMind and Pinguin2001.) - Synchronize the 7-Zip ZS implementations to https://github.com/mcmilk/7-Zip-zstd/tree/5766dd7745f6517f7ea42f6de9a190dfd92aa25f. (Except the NanaZip File Manager.) (Thanks to Sergey G. Brester and Tino Reichardt.) - Make FastLZMA2 and Lizard reuse partial Zstandard implementations. - Update Zstandard to v1.5.7. (Noticed by dcog989.) - Update Lizard to v2.1. - Synchronize Brotli implementations to v1.2.0. (https://github.com/google/brotli/releases/tag/v1.2.0) - Synchronize the FastLZMA2 implementations to https://github.com/conor42/fast-lzma2/tree/a793db99fade2957d2453035390f97e573acecb2, which can fix some issues. (Contributed by dinhngtu.) - Synchronize the BLAKE3 implementation to 1.8.3. (Noticed by peashooter2.) (https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.8.3) - Use assembly hardware acceleration for BLAKE3 implementation. - Synchronize RHash to the latest master (https://github.com/rhash/RHash/tree/b76c6a3312422c09817c2cef40442b2f2d9d4689) which is after v1.4.6. - Update Mile.Project.Configurations to 1.0.1917, which solve some issues for using NuGet Package References Support in Visual Studio 2026 version 18.3 or later. (Cooperated by AndromedaMelody.) - Update Mile.Project.Helpers to 1.0.975. - Update Mile.Windows.Helpers to 1.0.1171. - Update Mile.Windows.Internal to 1.0.3515. - Update Mile.Xaml to 2.5.1616. - Update Mile.Detours to 1.0.2180. - Update Mile.Json to 1.0.1057. - Update .NET projects to .NET 10 and update NuGet package dependencies. - Add littlefs v2.10.2 to NanaZip.Codecs for future development of work in progress littlefs archive format readonly support. - Update build binary logs when failed to build in GitHub Actions. (Contributed by dongle-the-gadget.) - Introduce legacy string migrator. (Contributed by dongle-the-gadget.) - Add more targeted editorconfig rules. (Contributed by dongle-the-gadget.) - Move NanaZip.Core's NanaZip.Core.Console project to NanaZip.Universal's NanaZip.Universal.Console project. - Disable WinRT metadata generation for all WinRT component consumers. - Move NanaZip.Modern as the first item to workaround the AppX toolchain manifest generation issues. - Improve the GitHub Actions artifacts generation. - Update to Windows 11 SDK Build 26100 for NanaZipPackage. - Introduce reproducible build support for the whole project. - Migrate solution from sln to slnx, and start to build with MSVC 14.50 toolset. - Support opening NanaZip Visual Studio solution without installing WinUI application and/or Universal Windows Platform development workload. (Contributed by AndromedaMelody.) - Add RestoreNuGetPackages.cmd script to workaround some issues for people who want to use Visual Studio to build NanaZip without running BuildAllTargets.bat script. - Make the precompiled build tools generated by GitHub Actions workflow automatically. - Improve several implementations. - Fixes - Fix dead loop issue when compressing files with Brotli, Lizard, LZ4 and LZ5 mentioned in https://github.com/M2Team/NanaZip/issues/639. (Thanks to gigano01, InfiniteLoopGameDev and iOrange.) - Backport CVE-2025-0411 and CVE-2025-11001 for the NanaZip File Manager which still use the old 7-Zip mainline codebase. (Contributed by dinhngtu.) - Fix several crash issues for the .NET Single File Application bundle readonly support. (Thanks to haaeein.) - Fix several hang issues for the ROMFS file system image readonly support support. (Contributed by dinhngtu. Thanks to haaeein.) - Fix the flickering issues when selecting list view in dark mode. - Fix the unable to return the processed bytes count issue for NanaZipCodecsReadInputStream. - Fix the parsing padding issue for Electron Archive (asar) readonly support. (Contributed by Vlad-Andrei Popescu). - Improve the ZealFS file system image readonly support implementation to fix several issues. (Cooperated with Zeal 8-bit.) - Try to bring dialog window to the foreground to resolve user experience issues when opened from context menu. (Contributed by dinhngtu.) - Fix flickering XAML dialogs. (Contributed by dongle-the-gadget.) - Fix crash issue from XAML address bar. (Contributed by dongle-the-gadget.) - Use a low name as the shell extension name prefix to work around our context menu not appearing in the classic context menu. (Contributed by dinhngtu.) - Don't reset compression method after changing level. (Contributed by dongle-the-gadget.) - Fix text overflow in German translation. (Contributed by Pinguin2001.) - Fix UI assignment of WriteZone setting. (Contributed by dinhngtu.) - Handle Add button when inside archives. (Contributed by dinhngtu.) - Fix issues for NanaZip Preview SVG icon assets for Contrast Black mode. - Fix several issues for context menu support. (Contributed by dinhngtu.) - Fix some potential issues for the dark mode support. - Try to partially improve the NanaZip File Manager main window keyboard navigation experience. - Fix some string resources issues. (Contributed by dinhngtu.) - Fix issues in compression levels combobox. (Contributed by dongle-the-gadget.) - Fix the source code file header comment format. - Use C++ zero initialization to reduce potential issues. - Fix several issues. **NanaZip 5.0 Update 2 (5.0.1263.0)** - Features - Provide K7 style execution aliases (K7.exe, K7C.exe, and K7G.exe) for simplifying the command line user experience and providing the same command name style in work-in-progress NanaZip for POSIX a.k.a. AptxZip. - Improvements - Update Mile.Windows.UniCrt to 1.2.328. - Update Mile.Xaml to 2.5.1250. - Migrate from Mile.Project.Windows to Mile.Project.Configurations. - Fixes - Fix crash issue when using Open Inside # mode for the WebAssembly (WASM) binary file readonly support for NanaZip.Codecs. - Fix crash issue when using Open Inside # mode for the .NET Single File Application bundle readonly support for NanaZip.Codecs. - Fix crash issue when using Open Inside # mode for the Electron Archive (asar) readonly support for NanaZip.Codecs. - Fix the crash issue when extracting *.br archives. (Thanks to HikariCalyx.) - Fix the XXH3_128bits printable results with wrong byte order. (Thanks to fuchanghao.) **NanaZip 5.0 Update 1 (5.0.1252.0)** - Features - Introduce the .NET Single File Application bundle readonly support which currently extracting compressed files in the bundle are not supported. - Introduce the Electron Archive (asar) readonly support. - Introduce the ROMFS file system image readonly support. - Introduce the ZealFS file system image readonly support. - Introduce the WebAssembly (WASM) binary file readonly support. - Introduce the **Work In Progress** littlefs file system image readonly support which currently only block information can acquired. - Improvements - Update Ukrainian and Russian translation. (Contributed by SlowDancer011.) - Update Hungarian translation. (Contributed by JohnFowler58.) - Update packages for maintainer tools. - Fixes - Fix the empty folders are excluded issue for the UFS/UFS2 file system image readonly support. - Fix the unavailable issue when cancelling the extraction for the UFS/UFS2 file system image readonly support. **NanaZip 5.0 (5.0.1250.0)** - Features - Introduce the UFS/UFS2 file system image readonly support. (Thanks to NishiOwO.) - Introduce work-in-progress NanaZip Platform Abstraction Layer (K7Pal) for wrapping the platform specific infrastructures. (Thanks to RuesanG's feedback.) (https://github.com/M2Team/NanaZip/tree/main/K7Pal) - Provide hash functions interfaces implemented with Windows CNG API. NanaZip uses these hash functions from K7Pal: - MD2 - MD4 - MD5 - SHA-1 - SHA-256 - SHA-384 - SHA-512 - ED2K (Implemented as the K7Pal MD4 wrapper in NanaZip.Codecs.) - Update NanaZip.Specification.SevenZip header file. - Introduce the Smart Extraction. (Contributed by R-YaTian.) - Adds a setting for opening the folder after extracting from archive. (Contributing by DaxDupont.) - Improvements - Synchronize the 7-Zip mainline implementations to 24.09. (https://github.com/ip7z/7zip/releases/tag/24.09) (Thanks to Igor Pavlov. Noticed by FadeMind and peashooter2.) - Synchronize the BLAKE3 implementation to 1.5.5. (https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.5.5) - Synchronize the RHash implementation to the latest master branch which is after v1.4.5. (https://github.com/rhash/RHash/commit/cf2adf22ae7c39d9b8e5e7b87222046a8f42b3dc) - Synchronize the xxHash implementation to v0.8.3. (https://github.com/Cyan4973/xxHash/releases/tag/v0.8.3) - Update Mile.Windows.Helpers to 1.0.671. (https://github.com/ProjectMile/Mile.Windows.Helpers/tree/1.0.671.0) - Update Brazilian Portuguese translation. (Contributed by maisondasilva.) - Update Polish translation. (Contributed by ChuckMichael.) - Update zh-Hans and zh-Hant translations for 'Want * History' strings. (Contributed by R-YaTian.) (Forget to mentioned in NanaZip 5.0 Preview 1.) - Make sure NanaZip Core (except the Self Extracting Executables) and NanaZip Classic using ucrtbase.dll with 10.0.19041.0 version or later. - Move NanaZip console version to NanaZip.Core project. - Remove C++/WinRT dependency for NanaZip.Codecs and NanaZip.Frieren. - Remove VC-LTL dependency for all components, and also use Mile.Windows.UniCrt (https://github.com/ProjectMile/Mile.Windows.UniCrt) instead of VC-LTL for non Self Extracting Executables stub components. - Adjust the compilation configurations to optimize the binary size for the Self Extracting Executables. - Start to simplify the NanaZip specific decoders and encoders implementation. - Enable disabling child process creation for NanaZip Self Extracting Executables. (Except installer mode of Self Extracting Executables, which compiled binaries is not provided in the NanaZip MSIX package.) - Fixes - Add GetDpiForWindowWrapper for NanaZip.Frieren.DarkMode to fix the legacy Windows compatibility issues. - Don't fail ModernSHBrowseForFolderW when DefaultFolder cannot be set. (Contributed by dinhngtu.) - Fix the issue that which NanaZip windows and dialogs will be opened in the background when using NanaZip from context menu. (Contributed by R-YaTian.) **NanaZip 3.1 (3.1.1080.0)** - Try to discover the new Sponsor button design but finally reverted to the old design for more natural looking. (Contributed by dongle-the-gadget and Gaoyifei1011.) - Improve Simplified Chinese translation. (Contributed by DeepChirp.) - Improve the Sponsor Edition documentation. (Contributed by sirredbeard.) - Improve Albanian translation. (Contributed by RDN000.) - Improve German translation. (Contributed by CennoxX.) - Fix several dark mode UI style issues. (Contributed by rounk-ctrl.) - Ignore the text scale factor for solving the UI layout issues. - Synchronize the 7-Zip mainline implementations to 24.08. (https://github.com/ip7z/7zip/releases/tag/24.08) (Thanks to Igor Pavlov. Noticed by atplsx and wallrik.) - Synchronize the LZ4 implementations to 1.10.0. (https://github.com/lz4/lz4/releases/tag/v1.10.0) - Update Mile.Project.Windows submodule to the August 12, 2024 latest. - Update VC-LTL to 5.1.1. - Update YY-Thunks to 1.1.2. - Update Mile.Windows.Helpers to 1.0.645. - Update Mile.Xaml to 2.3.1064. - Update Mile.Windows.Internal to 1.0.2971. - Defer package updates while the app is running in Windows 11 23H2 or later. (Suggested by AndromedaMelody.) - Improve maintainer tools for introducing automatic packaging support when building all targets for NanaZip. **NanaZip 3.0 Update 1 (3.0.1000.0)** - Update Mile.Windows.Internal to 1.0.2889. - Make the 7-Zip Zstandard branch's specific options translatable. (Contributed by ChuckMichael.) - Polish translation for Sponsor dialog. (Contributed by ChuckMichael.) - Fix compatibility issues with iFlyIME, Sogou Pinyin, and Transparent Flyout. (Contributed by dinhngtu.) - Update the UI layout for the sponsor button. (Suggested by namazso.) - NanaZip will only check the Sponsor Edition addon licensing status the first time you launch NanaZip File Manager or click the sponsor button to optimize the user experience. - Update NanaZip installation documentation. (Contributed by dongle-the-gadget.) - Use Extract dialog when extracting without selection. (Contributed by dinhngtu.) - Fix tooltips from XAML controls cannot be transparent. - Fix dark mode UI font rendering issues in some Windows 10 environments. - Adjust the dark mode text color for improving the user experience. (Suggested by userzzzq.) - Synchronize the 7-Zip mainline implementations to 24.06. (https://github.com/ip7z/7zip/releases/tag/24.06) (Thanks to Igor Pavlov. Noticed by KsZAO.) **NanaZip 3.0 (3.0.996.0)** - Notes - NanaZip 3.0 and onwards will have two distribution flavors called NanaZip and NanaZip Classic. But NanaZip 3.0 does not have the Classic flavor yet because it's not ready. Read https://github.com/M2Team/NanaZip#differences-between-nanazip-and-nanazip-classic for more information. - The 32-bit x86 support for NanaZip packaged version is removed because supported 32-bit x86 Windows versions don't support running on 32-bit only x86 processors. - NanaZip 3.0 and onwards will have NanaZip Sponsor Edition. Read https://github.com/M2Team/NanaZip/blob/main/Documents/SponsorEdition.md for more information. - NanaZip has introduced the Preinstall Support. Read https://github.com/M2Team/NanaZip/issues/398 for more information. - Features - Introducing dark mode support for all GUI components. - Introducing the Mica support. You will enjoy the full window immersive Mica support for all GUI components if you are using dark mode with HDR disabled. (Thanks to Andarwinux.) - Synchronize the 7-Zip mainline implementations to 24.05. (https://github.com/ip7z/7zip/releases/tag/24.05) (Thanks to Igor Pavlov. Noticed by AVMLOVER-4885955 and PopuriAO29.) - Make NanaZip Self Extracting Executable stubs use 7-Zip mainline Zstandard decoder instead of Zstandard official's for reducing the size for binaries. - Use 7-Zip mainline Zstandard decoder instead of Zstandard official decoder for NanaZip.Core project. - Remove 7-Zip mainline XXH64 Hash handler for NanaZip.Core because we have the xxHash-based implementation in NanaZip.Codecs. It will have much better performance, especially for non-x86 targets. - Implement the new toolbar and use it to replace the old menubar and old toolbar. - Refresh the UI layout for About Dialog via following other Nana series project design. - Add the SM3 HASH algorithm from GmSSL. (https://github.com/guanzhi/GmSSL) - Improvements - Rewrite and split the implementation of the Core Library and the Self Extracting Executable to the separate NanaZip.Codecs and NanaZip.Core projects. Read https://github.com/M2Team/NanaZip/issues/336 for more information. - Ensure the implementation of Core Library and the Self Extracting Executable supports Windows Vista RTM (Build 6000.16386). - Reduce the binary size for the Self Extracting Executables. - Synchronize the 7-Zip ZS implementations to the latest master branch. (https://github.com/mcmilk/7-Zip-zstd/commit/79b2c78e9e7735ddf90147129b75cf2797ff6522) - Synchronize Zstandard and builtin xxHash implementations to v1.5.6. (https://github.com/facebook/zstd/releases/tag/v1.5.6) - Synchronize Brotli implementations to v1.1.0. (https://github.com/google/brotli/releases/tag/v1.1.0) - Synchronize the RHash implementation to the latest master branch which is after v1.4.4. (https://github.com/rhash/RHash/commit/d916787590b9dc57eb9d420fd13e469160e0b04c) - Synchronize the BLAKE3 implementation to latest master which is after 1.5.1. (https://github.com/BLAKE3-team/BLAKE3/commit/0816badf3ada3ec48e712dd4f4cbc2cd60828278) - Update to Git submodule version of Mile.Project.Windows. (https://github.com/ProjectMile/Mile.Project.Windows) - Update Mile.Windows.Helpers to 1.0.558. (https://github.com/ProjectMile/Mile.Windows.Helpers/tree/1.0.558.0) - Update Mile.Xaml to 2.2.944. (https://github.com/ProjectMile/Mile.Xaml/releases/tag/2.2.944.0) - Use Mile.Windows.Internal package. (https://github.com/ProjectMile/Mile.Windows.Internal) - Use Mile.Detours package. (https://github.com/ProjectMile/Mile.Detours) - Use modern IFileDialog for folder picker dialog. (Contributed by reflectronic.) - Launch directly to the settings page of association for NanaZip. (Contributed by AndromedaMelody.) - Show NanaZip in Drives' ContextMenu. (Contributed by AndromedaMelody.) - Sync file extension support from https://github.com/mcmilk/7-Zip-zstd. - Add other methods to compression dialog. (https://github.com/mcmilk/7-Zip-zstd/commit/cf29d0c1babcd5ddf2c67eda8bb36e11f9c643b9) - Reorder initialization in constructor matching to member declaration order. (https://github.com/mcmilk/7-Zip-zstd/commit/8b011d230f1ccd8990943bd2eaad38d70e6e3fdf) - Fix selectable uppercase / lowercase hash formatting. (https://github.com/mcmilk/7-Zip-zstd/commit/4fae369d2d6aa60e2bb45eea1fb05659a2599caa) - Update russian translation. (Contributed by Blueberryy.) - Update Polish translation. (Contributed by ChuckMichael.) - Add mitigation policy of disabling child process creation for command line version of NanaZip. (Contributed by dinhngtu.) - Add Explorer Patcher DLL blocking for NanaZip File Manager for reenabling mitigation policy of blocking loading unexpected libraries from remote sources at runtime for the main thread of NanaZip File Manager without the stability issues. (Contributed by dinhngtu.) - Fixes - Fix issue in IEnumExplorerCommand::Next for shell extension. (Thanks to cnbluefire.) - Other adjustments for project development. **NanaZip 2.0 Update 1 (2.0.450.0)** - Optimize NanaZip binaries via adjusting the WindowsTargetPlatformMinVersion to 10.0.19041.0 in all packaged NanaZip binaries projects except the Self Extracting Executable stubs projects. - Opt out of dynamic code mitigation on main NanaZip thread for resolving the compatibility issues with Explorer Patcher. (Contributed by dinhngtu.) - Update Mile.Xaml to 1.1.434. (https://github.com/ProjectMile/Mile.Xaml/releases/tag/1.1.434.0) - Update Mile.Windows.Helpers to 1.0.8. (https://github.com/ProjectMile/Mile.Windows.Helpers/commits/main) - Add dark mode support for context menus. - Refresh the about dialog with Windows 11 XAML control styles and the immersive Mica effects. - Fix model dialog style behavior for About dialog. - Continue to refresh application and file type icons. (Designed by Shomnipotence.) **NanaZip 2.0 (2.0.396.0)** - Notes - Update the minimum system requirement to Windows 10 Version 2004 (Build 1) or later for solving issues in the XAML Islands. - Add instructions for installing NanaZip for all users. (Contributed by AndromedaMelody. Suggested by Wolverine1977.) - Features - Integrate the following HASH algorithms to NanaZip from RHash (AICH, BLAKE2b, BTIH, ED2K, EDON-R 224, EDON-R 256, EDON-R 384, EDON-R 512, GOST R 34.11-94, GOST R 34.11-94 CryptoPro, GOST R 34.11-2012 256, GOST R 34.11-2012 512, HAS-160, RIPEMD-160, SHA-224, SHA3-224, SHA3-256, SHA3-384, SHA3-512, Snefru-128, Snefru-256, Tiger, Tiger2, TTH, Whirlpool) and xxHash (XXH3_64bits, XXH3_128bits). - Allow NanaZip to be associated with any file type. (Contributed by manfromarce.) - Add hfsx to file type association. (Suggested by AndromedaMelody.) - Improvements - Refresh application and file type icons. (Designed by Shomnipotence.) - Refresh the about dialog with XAML Islands. - Update 7-Zip to 22.01. (https://www.7-zip.org/history.txt) (Thanks to Igor Pavlov. Noticed by HylianSteel, Random-name-hi and DJxSpeedy.) - Update Zstandard to 1.5.2. (https://github.com/facebook/zstd/releases/tag/v1.5.2). - Update BLAKE3 to 1.3.1. (https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.3.1) - Update LZ4 to 1.9.4. (https://github.com/lz4/lz4/releases/tag/v1.9.4) - Enable Control Flow Guard (CFG) to all target binaries for mitigating ROP attacks. (Contributed by dinhngtu.) - Mark all x86 and x64 target binaries as compatible with Control-flow Enforcement Technology (CET) Shadow Stack. (Contributed by dinhngtu.) - Strict handle checks at runtime to block the use of invalid handles. (Contributed by dinhngtu.) - Disable dynamic code generation in Release builds prevents generating malicious code at runtime. (Contributed by dinhngtu. Thanks to AndromedaMelody.) - Block loading unexpected libraries from remote sources at runtime. (Contributed by dinhngtu.) - Enable Package Integrity Check. (Contributed by AndromedaMelody.) - Enable EH Continuation Metadata. (Suggested by dinhngtu. Thanks to mingkuang.) - Enable Signed Returns. - Add Mile.Xaml to NanaZip project. - Start adding prerequisite support for unpackaged mode. - Fixes - Fix the shell extension issue which cause Everything crashed. (Thanks to No5972, startkkkkkk, SakuraNeko, bfgxp and riverar.) - Improve the Per-Monitor DPI Awareness support in Windows 10 Version 1607 for Self Extracting Executable stubs. - Fix line break issue for i18n resource files. (Thanks to ygjsz.) - Generate resource identities for package manifest manually. (Suggested by AndromedaMelody.) - Add workaround for NanaZip not appearing in classic context menu. (Contributed by dinhngtu.) - Check 7z compression parameter validity upon start of compression. (Contributed by dinhngtu.) **NanaZip 1.2 (1.2.252.0)** - Fix no ordinal 345 was found in the dynamically attached library issue in Self Extracting Executables. (Thanks to FadeMind.) - Add Per-Monitor DPI-Aware support for all GUI components. - Adjust and simplify the compiler options for modernizing. - Fix i18n issue for the About dialog. (Thanks to AndromedaMelody.) - Update installation tutorial. (Suggested by AndromedaMelody.) - Fix cannot start editor issue when only store edition of notepad existed. (Thanks to AndromedaMelody.) - Modernize the i18n implementation via migrating language files from .txt to .resw. (Contributed by AndromedaMelody. Suggested by Maicol Battistini.) - Update ModernWin32MessageBox for solving the infinite loop issue in some cases. (Thanks to AndromedaMelody.) - Tweak icons and provide icons for preview versions. (Designed by Alice (四月天). Thanks to StarlightMelody.) - Fix crash issue when opening archive files. (Thanks to 1human and Maicol Battistini.) - Remove Language page in Options dialog because NanaZip will follow the language settings from Windows itself. - Fix the issue of the i18n implementation of File Type Association. (Contributed by AndromedaMelody.) - Add i18n support for GUI edition of Self Extracting Executable. (Contributed by AndromedaMelody.) **NanaZip 1.1 (1.1.194.0)** - Add assembly implementations from 7-Zip back for improving performance. - Reimplement the about dialog with Task Dialog. - Modernize the message boxes with Task Dialog. (Thanks to DJxSpeedy.) - Update 7-Zip to 21.07. (Thanks to Igor Pavlov. Noticed by HylianSteel.) - Update translations inherited from 7-Zip. - Update Deutsch translations. (Contributed by Hen Ry.) - Update Polish translation. (Contributed by ChuckMichael.) - Improve the multi volume rar file detection for solving https://github.com/M2Team/NanaZip/issues/82. (Thanks to 1human.) - Simplify the file type association definitions and add the open verb for them. (Thanks to Fabio286.) - Fix CI issue. - Update VC-LTL to 5.0.4. - Update C++/WinRT to 2.0.211028.7. **NanaZip 1.0 (1.0.95.0)** - Modernize the build toolchain with MSBuild for using MSIX packaging and parallel compilation support. (Thanks to AndromedaMelody, be5invis, 青春永不落幕 and oxygen-dioxide.) - Use [VC-LTL 5.x](https://github.com/Chuyu-Team/VC-LTL5) toolchain to make the binary size even smaller than the official 7-Zip because we can use ucrtbase.dll directly and the optimizations from modern compile toolchain. (Thanks to mingkuang.) - Add the context menu support in Windows 10/11 File Explorer. (Thanks to shiroshan.) - New icons. (Designed by Alice (四月天), Chi Lei, Kenji Mouri, Rúben Garrido and Sakura Neko. Thanks to AndromedaMelody and 奕然.) - Minor tweaks. (Thanks to adrianghc, Blueberryy, ChuckMichael, Legna, Maicol Battistini, SakuraNeko and Zbynius.) - Update 7-Zip from 21.03 to 21.06. (Noticed by Dan, lychichem and sanderdewit. Thanks to Igor Pavlov.) - Enable parsing the NSIS script support in the NSIS archives. (Suggested by alanfox2000. Thanks to myfreeer.) - Merge features from 7-Zip ZStandard branch. (Suggested by fcharlie. Thanks to Tino Reichardt.) ================================================ FILE: Documents/ReleaseNotesPreview.md ================================================ # NanaZip Preview Release Notes For stable versions, please read [NanaZip Release Notes](ReleaseNotes.md). **NanaZip 6.5 Preview (6.5.16xx.0)** - Includes all the improvements from NanaZip 6.0 Update 2 (6.0.1650.0). - Introduce XAML XAML copy location dialog. (Contributed by dongle-the-gadget.) **NanaZip 6.5 Preview (6.5.1638.0)** This release includes all the improvements from NanaZip 6.0 Update 1 (6.0.1638.0). **NanaZip 6.0 Final (6.0.1630.0)** - Start to provide the official portable binaries package of NanaZip with both Modern and Classic flavors, except the NanaZip File Manager. - Fix several crash issues for the .NET Single File Application bundle readonly support. (Thanks to haaeein.) - Fix several hang issues for the ROMFS file system image readonly support support. (Contributed by dinhngtu. Thanks to haaeein.) - Fix several issues for context menu support. (Contributed by dinhngtu.) - Synchronize 7-Zip mainline implementations to 26.00. (Except the NanaZip File Manager.) (Thanks to Igor Pavlov. Noticed by FadeMind.) - Improve the address bar UI layout. (Cooperated with dinhngtu. Suggested by VinaC2.) - Make the splitter bar fully white to workaround the light mode UI visual issues in the 2 Panels mode. - Fix the splitter bar cannot have Mica in the dark mode. - Add the dark mode support for Win32 task dialog. - Use Win32 TaskDialog to implement the Folders History dialog to simplify the implementation. - Introduce Group Policy Administrative Template (ADMX/ADML) for NanaZip. (Contributed by dinhngtu.) - Update Dutch translation. (Contributed by Stephan-P.) - Synchronize the NanaZip File Manager implementations between NanaZip (Modern) and NanaZip Classic. - Fix some potential issues for the dark mode support. - Try to partially improve the NanaZip File Manager main window keyboard navigation experience. - Update Mile.Project.Configurations to 1.0.1917, which solve some issues for using NuGet Package References Support in Visual Studio 2026 version 18.3 or later. (Cooperated by AndromedaMelody.) - Update Mile.Windows.Internal to 1.0.3515. - Update Mile.Xaml to 2.5.1616. - Add RestoreNuGetPackages.cmd script to workaround some issues for people who want to use Visual Studio to build NanaZip without running BuildAllTargets.bat script. **NanaZip 6.0 Preview 2 (6.0.1621.0)** - Introduce NanaZip.Universal.Windows project for making NanaZip Command Line Interface (Windows) for both NanaZip (Modern) and NanaZip Classic a.k.a. NanaZipG or K7G to synchronize to the latest 7-Zip mainline and 7-Zip ZS implementations. - Introduce NanaZip Platform Base Library (K7Base) and NanaZip Platform User Library (K7User) to replace NanaZip Platform Abstraction Layer (K7Pal) and NanaZip.Frieren for better code sharing and maintainability. - Redesign the security mitigation policies settings support (followed some suggestions from dongle-the-gadget), also introduces several new security mitigation policies like the archive handler and codec handler restriction (which is contributed by dinhngtu). Read https://github.com/M2Team/NanaZip/blob/main/Documents/Policies.md for more information. - Backport CVE-2025-0411 and CVE-2025-11001 for the NanaZip File Manager which still use the old 7-Zip mainline codebase. (Contributed by dinhngtu.) - Set the LOAD_LIBRARY_SEARCH_SYSTEM32 dependent load flag on Release builds of Self Extracting Executables stubs to mitigate static imports level DLL planting attack on Windows 10 build 14393 and later. (Contributed by dinhngtu.) - Allow to associate more file types to NanaZip. (Contributed by manfromarce.) - Enable Ctrl+Backspace on edit fields using SHAutoComplete. (Contributed by dinhngtu.) - Fix the flickering issues when selecting list view in dark mode. - Make texts have better contrast in dark mode. - Make FastLZMA2 and Lizard reuse partial Zstandard implementations. - Fix crash issue when using NanaZip.Core.Setup.sfx. (https://github.com/M2Team/NanaZip/issues/795) (Thanks to kbarnes3.) - Fix flickering XAML dialogs. (Contributed by dongle-the-gadget.) - Fix crash issue from XAML address bar. (Contributed by dongle-the-gadget.) - Use a low name as the shell extension name prefix to work around our context menu not appearing in the classic context menu. (Contributed by dinhngtu.) - Don't reset compression method after changing level. (Contributed by dongle-the-gadget.) - Fix text overflow in German translation. (Contributed by Pinguin2001.) - Localize Open Inside menu text. (Contributed by dinhngtu.) - Remove Help button from compress option dialogs. (Contributed by peashooter2.) - Fix UI assignment of WriteZone setting. (Contributed by dinhngtu.) - Handle Add button when inside archives. (Contributed by dinhngtu.) - Use assembly hardware acceleration for BLAKE3 implementation. - Fix issues for NanaZip Preview SVG icon assets for Contrast Black mode. - Update the icon assets with optimized assets to reduce the binary size. - Don't contain Mile.Project.Wap.Unstaged.targets in the MSIX package. - Synchronize 7-Zip mainline implementations to 25.01 for NanaZip components which still use the old 7-Zip mainline codebase (command line version). (Thanks to Igor Pavlov.) - Synchronize the 7-Zip ZS implementations to https://github.com/mcmilk/7-Zip-zstd/tree/5766dd7745f6517f7ea42f6de9a190dfd92aa25f. (Except the NanaZip File Manager.) (Thanks to Sergey G. Brester and Tino Reichardt.) - Synchronize Brotli implementations to v1.2.0. (https://github.com/google/brotli/releases/tag/v1.2.0) - Synchronize the FastLZMA2 implementations to https://github.com/conor42/fast-lzma2/tree/a793db99fade2957d2453035390f97e573acecb2, which can fix some issues. (Contributed by dinhngtu.) - Synchronize the BLAKE3 implementation to 1.8.3. (https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.8.3) - Synchronize RHash to the latest master (https://github.com/rhash/RHash/tree/b76c6a3312422c09817c2cef40442b2f2d9d4689) which is after v1.4.6. - Update Mile.Project.Configurations to 1.0.1827. - Update Mile.Mobility to 1.0.372. - Update Mile.Project.Helpers to 1.0.975. - Update Mile.Windows.Helpers to 1.0.1171. - Update Mile.Detours to 1.0.2180. - Update .NET projects to .NET 10 and update NuGet package dependencies. - Add Release Tags to NanaZip Versioning. - Migrate solution from sln to slnx, and start to build with MSVC 14.50 toolset. - Support opening NanaZip Visual Studio solution without installing WinUI application and/or Universal Windows Platform development workload. (Contributed by AndromedaMelody.) - Make the precompiled build tools generated by GitHub Actions workflow automatically. - Improve several implementations and fix several issues. **NanaZip 6.0 Preview 1 (6.0.1461.0)** - Start to transition to community driven development model. - Introduce extract-on-open feature. (Contributed by dinhngtu.) - To disable this temporarily, hold Shift while opening the file. - To disable this permanently, go to Settings, Integration tab, and disable "Extract on open" at the bottom. - Introduce formal version of contributing guide and security policies. (Cooperated with dinhngtu and dongle-the-gadget.) - Update system requirement to Windows 10, version 2004 (Build 19041) or later, and remove the x86 (32-bit) for all components. - Start to use Zstandard decoder instead of 7-Zip mainline's implementation for better reliability, especially it can reduce more potential vulnerabilities. - Introduce the XAML-based address bar. (Contributed by dongle-the-gadget.) - Introduce the XAML-based status bar. (Contributed by dongle-the-gadget.) - Introduce the XAML-based properties and information dialog. (Contributed by dongle-the-gadget.) - Introduce the XAML-based progress dialog. (Contributed by dongle-the-gadget.) - Improve the Smart Extraction feature. (Contributed by R-YaTian.) - Introduce extract all automatically policy when opening executable files in archives. (Contributed by MajThomas.) - Introduce the environment variable parsing support for address bar. (Thanks to dongle-the-gadget's huge help.) - Improve the NanaZip startup performance by initializing the StoreContext later. (Contributed by dongle-the-gadget.) - Add support for CBR and CBZ file associations. (Contributed by dinhngtu.) - Add support for ASAR file association. (Contributed by dongle-the-gadget.) - Display file system version in archive property window for the UFS/UFS2 file system image readonly support. - Display bundle version in archive property for the .NET Single File Application bundle readonly support. - Display file system version in archive property for the littlefs file system image readonly support. - Fix the parsing padding issue for Electron Archive (asar) readonly support. (Contributed by Vlad-Andrei Popescu). - Improve the ZealFS file system image readonly support implementation to fix several issues. (Cooperated with Zeal 8-bit.) - Try to bring dialog window to the foreground to resolve user experience issues when opened from context menu. (Contributed by dinhngtu.) - Move open folder checkbox to extract dialog. (Contributed by dinhngtu.) - Introduce registry settings for Mark of the Web (MoTW) enforcement policies. (Contributed by dinhngtu.) - Improve the dynamic library block list for resolving compatibility issues. (Contributed by dinhngtu.) - Introduce registry settings for disabling security mitigation policies, which should be helpful for debugging and resolving compatibility issues. (Contributed by dinhngtu.) - Fix dead loop issue when compressing files with Brotli, Lizard, LZ4 and LZ5 mentioned in https://github.com/M2Team/NanaZip/issues/639. (Thanks to gigano01, InfiniteLoopGameDev and iOrange.) - Fix the unable to return the processed bytes count issue for NanaZipCodecsReadInputStream. - Fix some string resources issues. (Contributed by dinhngtu.) - Fix issues in compression levels combobox. (Contributed by dongle-the-gadget.) - Update Albanian translation. (Contributed by F1219R.) - Update Hungarian translation. (Contributed by John Fowler.) - Update Greek translation. (Contributed by Lefteris T.) - Update German translation. (Contributed by HackZy01.) - Update Bengali translation. (Contributed by Sumon Kayal.) - Synchronize 7-Zip mainline implementations to 25.01. (Thanks to Igor Pavlov. Noticed by FadeMind and Pinguin2001.) - Synchronize the 7-Zip ZS implementations to https://github.com/mcmilk/7-Zip-zstd/tree/2a2dcb293b80180dc305544bf6a9e081750bccfe. (Thanks to Sergey G. Brester and Tino Reichardt.) - Update Zstandard to v1.5.7. (Noticed by dcog989.) - Update Lizard to v2.1. - Synchronize the BLAKE3 implementation to 1.8.2. (Noticed by peashooter2.) - Synchronize the RHash implementation to latest master a.k.a. https://github.com/rhash/RHash/commit/cce6c628f93d9ed332921656aa5e1750d12b8d3e which is after v1.4.6. - Update Mile.Windows.Helpers to 1.0.952. - Update Mile.Windows.Internal to 1.0.3259. - Update Mile.Json to 1.0.1057. - Add littlefs v2.10.2 to NanaZip.Codecs for future development of work in progress littlefs archive format readonly support. - Create NanaZip.Modern project for the modern user experience development. - Introduce Mile.Mobility dependence to NanaZip.Codecs project for making better portability between NanaZip and AptxZip (a.k.a. NanaZip for POSIX). - Introduce NanaZip.ExtensionPackage project for future development of features which need to be distributed as legacy installer. (Contributed by dinhngtu.) - Introduce Mile.Helpers.Portable.Base.Unstaged as the temporary infrastructure to standardize some portable things in NanaZip.Codecs. - Introduce NanaZip.Codecs.Specification.Fat for adding definitions of FAT12, FAT16 and FAT32. - Introduce NanaZip.Codecs.Specification.Zealfs for adding definitions of ZealFS series file system. (Cooperated with Zeal 8-bit.) - Add littlefs v1 on-disk definitions to the littlefs file system image readonly support. - Introduce Mile.Project.Wap.Unstaged.targets for solving the issue that unnecessary XAML files contained in the final MSIX package. - Add XAML Styler indentation configuration. (Contributed by dongle-the-gadget.) - Use x-generate to define language resources in AppX manifest to solve the Windows AppX language fallback issue. (Suggested by dongle-the-gadget.) - Update build binary logs when failed to build in GitHub Actions. (Contributed by dongle-the-gadget.) - Introduce legacy string migrator. (Contributed by dongle-the-gadget.) - Add more targeted editorconfig rules. (Contributed by dongle-the-gadget.) - Move NanaZip.Core's NanaZip.Core.Console project to NanaZip.Universal's NanaZip.Universal.Console project. - Disable WinRT metadata generation for all WinRT component consumers. - Move NanaZip.Modern as the first item to workaround the AppX toolchain manifest generation issues. - Improve the GitHub Actions artifacts generation. - Update to Windows 11 SDK Build 26100 for NanaZipPackage. - Fix the source code file header comment format. - Use C++ zero initialization to reduce potential issues. - Introduce reproducible build support for the whole project. **NanaZip 5.1 Preview 0 (5.1.1263.0)** This release includes all the improvements from NanaZip 5.0 Update 2 (5.0.1263.0). **NanaZip 5.1 Preview 0 (5.1.1252.0)** This release includes all the improvements from NanaZip 5.0 Update 1 (5.0.1252.0). **NanaZip 5.0 Preview 2 (5.0.1243.0)** - Continue to improve the work-in-progress NanaZip Platform Abstraction Layer (K7Pal). (https://github.com/M2Team/NanaZip/tree/main/K7Pal) - Fix the crash and encrypted RAR5 format extraction wrong password issue for 7-Zip's hash algorithms wrappers which mentioned in https://github.com/M2Team/NanaZip/issues/542. (Thanks to RuesanG.) - Introduce K7PalHashDuplicate API. - Remove K7PalHashReset API for improving the security. - Reduce the saved information in hash contexts to improve the security. - Use NanaZip Platform Abstraction Layer (K7Pal) to implement 7-Zip's SHA-1 hash algorithms. - Update zh-Hans and zh-Hant translations for 'Want * History' strings. (Contributed by R-YaTian.) (Forget to mentioned in NanaZip 5.0 Preview 1.) - Adds a setting for opening the folder after extracting from archive. (Contributing by DaxDupont.) - Introduce the Smart Extraction. (Contributed by R-YaTian.) - Fix the issue that which NanaZip windows and dialogs will be opened in the background when using NanaZip from context menu. (Contributed by R-YaTian.) - Update xxHash to v0.8.3. (https://github.com/Cyan4973/xxHash/releases/tag/v0.8.3) **NanaZip 5.0 Preview 1 (5.0.1215.0)** - Introduce NanaZip Platform Abstraction Layer (K7Pal) for wrapping the platform specific infrastructures. (https://github.com/M2Team/NanaZip/tree/main/K7Pal) (Work In Progress) - Provide hash functions interfaces implemented with Windows CNG API. NanaZip uses these hash functions from K7Pal: - MD2 - MD4 - MD5 - SHA-1 - SHA-256 - SHA-384 - SHA-512 - ED2K (Implemented as the K7Pal MD4 wrapper in NanaZip.Codecs.) - Synchronize the 7-Zip mainline implementations to 24.09. (https://github.com/ip7z/7zip/releases/tag/24.09) (Thanks to Igor Pavlov. Noticed by FadeMind and peashooter2.) - Finally move NanaZip console version to NanaZip.Core project. - Don't fail ModernSHBrowseForFolderW when DefaultFolder cannot be set. (Contributed by dinhngtu.) - Update Mile.Windows.UniCrt to 1.1.278. **NanaZip 5.0 Preview 0 (5.0.1188.0)** - This release includes all the improvements from NanaZip 3.1 (3.1.1080.0) (https://github.com/M2Team/NanaZip/releases/tag/3.1.1080.0). - Update Brazilian Portuguese translation. (Contributed by maisondasilva.) - Make sure NanaZip Core (except the Self Extracting Executables) and NanaZip Classic using ucrtbase.dll with 10.0.19041.0 version or later. - Update Mile.Windows.Helpers to 1.0.671. (https://github.com/ProjectMile/Mile.Windows.Helpers/tree/1.0.671.0) - Move NanaZip console version to NanaZip.Core project. (Not used in NanaZip MSIX package because we need to release the next preview to contain the CVE-2024-11477 fix in NanaZip 3.1.) - Remove C++/WinRT dependency for NanaZip.Codecs and NanaZip.Frieren. - Add GetDpiForWindowWrapper for NanaZip.Frieren.DarkMode to fix the legacy Windows compatibility issues. - Remove VC-LTL dependency for the Self Extracting Executables related projects. - Adjust the compilation configurations to optimize the binary size for the Self Extracting Executables. - Use Mile.Windows.UniCrt (https://github.com/ProjectMile/Mile.Windows.UniCrt) instead of VC-LTL. - Update NanaZip.Specification.SevenZip header file. - Start to simplify the NanaZip specific decoders and encoders implementation. - Synchronize the BLAKE3 implementation to 1.5.5. (https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.5.5) - Synchronize the RHash implementation to the latest master branch which is after v1.4.5. (https://github.com/rhash/RHash/commit/cf2adf22ae7c39d9b8e5e7b87222046a8f42b3dc) - Enable disabling child process creation for NanaZip Self Extracting Executables. (Except installer mode of Self Extracting Executables, which compiled binaries is not provided in the NanaZip MSIX package.) **NanaZip 3.5 Preview 0 (3.5.1000.0)** This release includes all the improvements from NanaZip 3.0 Update 1 (3.0.1000.0). **NanaZip 3.5 Preview 0 (3.5.996.0)** This release includes all the improvements from NanaZip 3.0 (3.0.996.0). **NanaZip 3.0 Preview 0 (3.0.756.0)** - Rewrite and split the implementation of the Core Library and the Self Extracting Executable to the separate NanaZip.Core project. - Ensure the implementation of Core Library and the Self Extracting Executable supports Windows Vista RTM (Build 6000.16386). - Reduce the binary size for the Self Extracting Executables. - Synchronize the 7-Zip mainline implementations to 23.01. (https://www.7-zip.org/history.txt) - Synchronize the 7-Zip ZS implementations to the latest master branch. (https://github.com/mcmilk/7-Zip-zstd/commit/ce27b4a0d3a94313d256c3d077f1784baffb9eee) - Add the SM3 HASH algorithm from GmSSL. (https://github.com/guanzhi/GmSSL) - Synchronize Zstandard and builtin xxHash implementations to v1.5.5. (https://github.com/facebook/zstd/releases/tag/v1.5.5) - Synchronize Brotli implementations to v1.1.0. (https://github.com/google/brotli/releases/tag/v1.1.0) - Synchronize the RHash implementation to the latest master branch. (https://github.com/rhash/RHash/commit/b8c91ea6551e99e10352386cd46ea26973bb4a4d) - Update to Git submodule version of Mile.Project.Windows. (https://github.com/ProjectMile/Mile.Project.Windows) - Update Mile.Windows.Helpers to 1.0.15. (https://github.com/ProjectMile/Mile.Windows.Helpers/commit/b522a956f7dd42dc205869d362f96a777bcb2aa0) - Update Mile.Xaml to 2.1.661. (https://github.com/ProjectMile/Mile.Xaml/releases/tag/2.1.661.0) - Update russian translation. (Contributed by Blueberryy.) - Fix the text wrapping issue in the About dialog. (Thanks to MenschenToaster.) - Use modern IFileDialog for folder picker dialog. (Contributed by reflectronic.) - Launch directly to the settings page of association for NanaZip. (Contributed by AndromedaMelody.) - Show NanaZip in Drives' ContextMenu. (Contributed by AndromedaMelody.) - Sync file extension support from https://github.com/mcmilk/7-Zip-zstd. - Add other methods to compression dialog. (https://github.com/mcmilk/7-Zip-zstd/commit/cf29d0c1babcd5ddf2c67eda8bb36e11f9c643b9) - Reorder initialization in constructor matching to member declaration order. (https://github.com/mcmilk/7-Zip-zstd/commit/8b011d230f1ccd8990943bd2eaad38d70e6e3fdf) - Fix selectable uppercase / lowercase hash formatting. (https://github.com/mcmilk/7-Zip-zstd/commit/4fae369d2d6aa60e2bb45eea1fb05659a2599caa) - Other adjustments for project development. **NanaZip 2.1 Preview 0 (2.1.451.0)** - Update icons. (Designed by Shomnipotence. Updated in NanaZip 2.0 Stable.) - Add instructions for installing NanaZip for all users. (Updated in NanaZip 2.0 Stable.) - Add Mile.Xaml to NanaZip project. (Updated in NanaZip 2.0 Stable.) - Refresh the about dialog with XAML Islands. (Updated in NanaZip 2.0 Stable.) - Start adding prerequisite support for unpackaged mode. (Updated in NanaZip 2.0 Stable.) - Optimize NanaZip binaries via adjusting the WindowsTargetPlatformMinVersion to 10.0.19041.0 in all packaged NanaZip binaries projects except the Self Extracting Executable stubs projects. (Updated in NanaZip 2.0 Update 1.) - Opt out of dynamic code mitigation on main NanaZip thread for resolving the compatibility issues with Explorer Patcher. (Contributed by dinhngtu. Updated in NanaZip 2.0 Update 1.) - Update Mile.Xaml to 1.1.434. (Updated in NanaZip 2.0 Update 1.) (https://github.com/ProjectMile/Mile.Xaml/releases/tag/1.1.434.0) - Update Mile.Windows.Helpers to 1.0.8. (Updated in NanaZip 2.0 Update 1.) (https://github.com/ProjectMile/Mile.Windows.Helpers/commits/main) - Add dark mode support for context menus. (Updated in NanaZip 2.0 Update 1.) - Refresh the about dialog with Windows 11 XAML control styles and the immersive Mica effects. (Updated in NanaZip 2.0 Update 1.) - Fix model dialog style behavior for About dialog. (Updated in NanaZip 2.0 Update 1.) - Continue to refresh application and file type icons. (Designed by Shomnipotence. Updated in NanaZip 2.0 Update 1.) **NanaZip 2.0 Preview 2 (2.0.376.0)** - Update 7-Zip to 22.01. (Thanks to Igor Pavlov. Noticed by HylianSteel, Random-name-hi and DJxSpeedy.) - Add hfsx to file type association. (Suggested by AndromedaMelody.) - Update the minimum system requirement to Windows 10 Version 2004 (Build 19041) or later for solving issues in the XAML Islands. - Update LZ4 to v1.9.4. - Enable Package Integrity. (Contributed by AndromedaMelody.) - Don't enable "Disable dynamic code generation" mitigation in Debug builds for solving codec load error issue. (Thanks to AndromedaMelody.) - Continue to enable several security mitigations. - Enable EH Continuation Metadata. - Enable Signed Returns. - Generate resource identities for package manifest manually. (Suggested by AndromedaMelody.) - Add workaround for NanaZip not appearing in classic context menu. (Contributed by dinhngtu.) - Check 7z compression parameter validity upon start of compression. (Contributed by dinhngtu.) - Update icons. (Designed by Shomnipotence.) **NanaZip 2.0 Preview 1 (2.0.313.0)** - Fix the shell extension issue which cause Everything crashed. (Thanks to No5972, startkkkkkk, SakuraNeko, bfgxp and riverar.) - Allow NanaZip to be associated with any file type. (Contributed by manfromarce.) - Update 7-Zip to 22.00. (Thanks to Igor Pavlov. Noticed by HylianSteel.) - Integrate the following HASH algorithms to NanaZip from RHash and xxHash. - AICH - BLAKE2b - BTIH - ED2K - EDON-R 224, EDON-R 256, EDON-R 384, EDON-R 512 - GOST R 34.11-94, GOST R 34.11-94 CryptoPro - GOST R 34.11-2012 256, GOST R 34.11-2012 512 - HAS-160, RIPEMD-160 - SHA-224 - SHA3-224, SHA3-256, SHA3-384, SHA3-512 - Snefru-128, Snefru-256 - Tiger, Tiger2 - TTH - Whirlpool - XXH3_64bits, XXH3_128bits - Update Zstandard to 1.5.2. - Update BLAKE3 to 1.3.1. - Improve the Per-Monitor DPI Awareness support in Windows 10 Version 1607 for Self Extracting Executable stubs. - Fix line break issue for i18n resource files. (Thanks to ygjsz.) - Enable several security mitigations. (Contributed by dinhngtu.) - Enable Control Flow Guard (CFG) to all target binaries for mitigating ROP attacks. - Mark all x86 and x64 target binaries as compatible with Control-flow Enforcement Technology (CET) Shadow Stack. - Strict handle checks at runtime to block the use of invalid handles. - Disable dynamic code generation prevents generating malicious code at runtime. - Block loading unexpected libraries from remote sources at runtime. **NanaZip 1.2 Update 1 Preview 1 (1.2.253.0)** - Fix the issue of the i18n implementation of File Type Association. (Contributed by AndromedaMelody. Updated in NanaZip 1.2 Stable.) - Add i18n support for GUI edition of Self Extracting Executable. (Contributed by AndromedaMelody. Updated in NanaZip 1.2 Stable.) **NanaZip 1.2 Preview 4 (1.2.225.0)** - Continue to update ModernWin32MessageBox for solving the infinite loop issue in some cases. (Thanks to AndromedaMelody.) - Fix crash issue when opening archive files. (Thanks to 1human and Maicol Battistini.) - Remove Language page in Options dialog because NanaZip will follow the language settings from Windows itself. **NanaZip 1.1 Servicing Update 1 Preview 3 (1.1.220.0)** - Modernize the i18n implementation via migrating language files from .txt to .resw. (Contributed by AndromedaMelody. Suggested by Maicol Battistini.) - Update ModernWin32MessageBox for solving the infinite loop issue in some cases. (Thanks to AndromedaMelody.) - Tweak icons and provide icons for preview versions. (Designed by Alice (四月天). Thanks to StarlightMelody.) **NanaZip 1.1 Servicing Update 1 Preview 2 (1.1.201.0)** - Fix no ordinal 345 was found in the dynamically attached library issue in Self Extracting Executables. (Thanks to FadeMind.) - Add Per-Monitor DPI-Aware support for all GUI components. - Adjust and simplify the compiler options for modernizing. - Fix i18n issue for the About dialog. (Thanks to AndromedaMelody.) - Update installation tutorial. (Suggested by AndromedaMelody.) - Fix cannot start editor issue when only store edition of notepad existed. (Thanks to AndromedaMelody.) **NanaZip 1.1 Servicing Update 1 Preview 1 (1.1.196.0)** - Simplify the file type association definitions and add the open verb for them. (Thanks to Fabio286. Fixed in NanaZip 1.1 Stable.) - Update VC-LTL to 5.0.4. (Updated in NanaZip 1.1 Stable.) **NanaZip 1.1 Preview 2 (1.1.153.0)** - Fix the issue which can't load context menu properly. (Thanks to DJxSpeedy.) **NanaZip 1.1 Preview 2 (1.1.152.0)** - Reimplement the about dialog with Task Dialog. - Update Deutsch translations. (Contributed by Hen Ry.) - Add assembly implementations from 7-Zip back for improving performance. - Update translations inherited from 7-Zip. - Update 7-Zip to 21.07. (Thanks to Igor Pavlov. Noticed by HylianSteel.) - Improve the multi volume rar file detection for solving https://github.com/M2Team/NanaZip/issues/82. (Thanks to 1human.) - Modernize the message boxes with Task Dialog. **NanaZip 1.1 Preview 1 (1.1.101.0)** - Exclude .webp in the archive file type list for solving https://github.com/M2Team/NanaZip/issues/57. (Thanks to Zbynius. Fixed in NanaZip 1.0 Stable.) - Update Polish translation. (Contributed by ChuckMichael.) - Fix CI issue. - Update VC-LTL to 5.0.3. - Update C++/WinRT to 2.0.211028.7. **NanaZip 1.0 Preview 4 (1.0.88.0)** - Update Italian, Russian and Polish Translations. (Contributed by Blueberryy, Maicol Battistini and ChuckMichael.) - Provide 7-Zip execution alias for helping users to migrate to NanaZip. (Suggested by AndromedaMelody.) - Adjust file association icon. (Suggested by 奕然.) - Merge features from 7-Zip ZStandard branch. (Suggested by fcharlie. Thanks to Tino Reichardt.) - Update 7-Zip to 21.06. (Noticed by Dan, lychichem and sanderdewit. Thanks to Igor Pavlov.) - Fix compression level display issue in the compress dialog. (Thanks to SakuraNeko.) - Make every file extension have own file type in file type association definitions for solving https://github.com/M2Team/NanaZip/issues/53. (Thanks to oxygen-dioxide.) - Disable virtualization:ExcludedDirectories for resolve https://github.com/M2Team/NanaZip/issues/34. (Thanks to AndromedaMelody.) - Reduce the compilation warnings. - Change the configuration for NanaZipPackage project for solve the issue when referencing the Windows Runtime Components. - Update Mile.Cpp. **NanaZip 1.0 Preview 3 (1.0.46.0)** - Enable parsing the NSIS script support in the NSIS archives. (Suggested by alanfox2000. Thanks to myfreeer.) - Simplify the separator layout in the context menu implementation. - Fix app still displays in folder context menu, resulting in empty entry that doesn't do anything when no options that could interact. (Thanks to shiroshan.) - Fix the application crash in some cases caused by some issues in the exception handler implementation from VC-LTL 5.x. (Thanks to mingkuang.) - Update new icons. (Designed by Alice (四月天), Chi Lei, Kenji Mouri, Rúben Garrido and Sakura Neko.) - Make main NanaZip package contains all resources. - Fix the command line help string. (Thanks to adrianghc.) **NanaZip 1.0 Preview 2 (1.0.31.0)** - Remove IObjectWithSite in shell extension implementation to reduce the complexity and crashes. - Add altform-lightunplated assets for display the contrast standard mode icon in the taskbar instead of contrast white icon. (Thanks to AndromedaMelody.) - Remove Windows.Universal TargetDeviceFamily for solving the minimum OS requirements display issue. (Thanks to 青春永不落幕.) - Enable NanaZipC and NanaZipG in AppX manifest. (Thanks to be5invis.) - Change "The operation can require big amount of RAM (memory)" error dialog to warning dialog. (Thanks to Legna.) **NanaZip 1.0 Preview 1 (1.0.25.0)** - Modernize the build toolchain with MSBuild for using MSIX packaging and parallel compilation support. - Use [VC-LTL 5.x](https://github.com/Chuyu-Team/VC-LTL5) toolchain to make the binary size even smaller than the official 7-Zip because we can use ucrtbase.dll directly and the optimizations from modern compile toolchain. - Add the context menu support in Windows 10/11 File Explorer. - New icons and minor UI tweaks. ================================================ FILE: Documents/Section508/NanaZip.html ================================================ NanaZip Accessibility Conformance Report

NanaZip Accessibility Conformance Report

Based on VPAT® 2.4 WCAG 2.1 and Revised Section 508 Edition

Name of Product/Version Anchor link

NanaZip

Report Dates and Version Anchor link

Product Description Anchor link

NanaZip is an open source file archiver intended for the modern Windows experience, forked from the source code of well-known open source file archiver 7-Zip.

Contact Information Anchor link

Author Information Anchor link

Vendor Information Anchor link

Applicable Standards/Guidelines Anchor link

This report covers the degree of conformance for the following accessibility standard/guidelines:
Standard/Guideline Included In Report
Web Content Accessibility Guidelines 2.1 (opens in a new window or tab)
  • Table 1: Success Criteria, Level A
  • Table 2: Success Criteria, Level AA
  • Table 3: Success Criteria, Level AAA
Revised Section 508 standards published January 18, 2017 and corrected January 22, 2018 (opens in a new window or tab)
  • Chapter 3: Functional Performance Criteria (FPC)
  • Chapter 4: Hardware
  • Chapter 5: Software
  • Chapter 6: Support Documentation and Services

Terms Anchor link

The terms used in the Conformance Level information are defined as follows:

WCAG 2.1 Report Anchor link

Table 1: Success Criteria, Level A Anchor link

Table 2: Success Criteria, Level AA Anchor link

Table 3: Success Criteria, Level AAA Anchor link

Revised Section 508 Report Anchor link

Chapter 3: Functional Performance Criteria (FPC) Anchor link

Criteria Conformance Level Remarks and Explanations
302.1 Without Vision (opens in a new window or tab)
  • Supports

    302.2 With Limited Vision (opens in a new window or tab)
    • Supports

      302.3 Without Perception of Color (opens in a new window or tab)
      • Supports

        302.4 Without Hearing (opens in a new window or tab)
        • Supports

          302.5 With Limited Hearing (opens in a new window or tab)
          • Supports

            302.6 Without Speech (opens in a new window or tab)
            • Supports

              302.7 With Limited Manipulation (opens in a new window or tab)
              • Supports

                302.8 With Limited Reach and Strength (opens in a new window or tab)
                • Supports

                  302.9 With Limited Language, Cognitive, and Learning Abilities (opens in a new window or tab)
                  • Supports

                    Chapter 4: Hardware Anchor link

                    Chapter 5: Software Anchor link

                    Criteria Conformance Level Remarks and Explanations
                    502.2.1 User Control of Accessibility Features (opens in a new window or tab)
                    • Supports

                      502.2.2 No Disruption of Accessibility Features (opens in a new window or tab)
                      • Supports

                        502.3.1 Object Information (opens in a new window or tab)
                        • Supports

                          502.3.2 Modification of Object Information (opens in a new window or tab)
                          • Supports

                            502.3.3 Row, Column, and Headers (opens in a new window or tab)
                            • Supports

                              502.3.4 Values (opens in a new window or tab)
                              • Supports

                                502.3.5 Modification of Values (opens in a new window or tab)
                                • Supports

                                  502.3.6 Label Relationships (opens in a new window or tab)
                                  • Supports

                                    502.3.7 Hierarchical Relationships (opens in a new window or tab)
                                    • Supports

                                      502.3.8 Text (opens in a new window or tab)
                                      • Supports

                                        502.3.9 Modification of Text (opens in a new window or tab)
                                        • Supports

                                          502.3.10 List of Actions (opens in a new window or tab)
                                          • Supports

                                            502.3.11 Actions on Objects (opens in a new window or tab)
                                            • Supports

                                              502.3.12 Focus Cursor (opens in a new window or tab)
                                              • Supports

                                                502.3.13 Modification of Focus Cursor (opens in a new window or tab)
                                                • Supports

                                                  502.3.14 Event Notification (opens in a new window or tab)
                                                  • Supports

                                                    502.4 Platform Accessibility Features (opens in a new window or tab)
                                                    • Supports

                                                      503.2 User Preferences (opens in a new window or tab)
                                                      • Supports

                                                        503.3 Alternative User Interfaces (opens in a new window or tab)
                                                        • Not Applicable

                                                          503.4.1 Caption Controls (opens in a new window or tab)
                                                          • Not Applicable

                                                            503.4.2 Audio Description Controls (opens in a new window or tab)
                                                            • Not Applicable

                                                              504.2 Content Creation or Editing (opens in a new window or tab)
                                                              • Not Applicable

                                                                504.2.1 Preservation of Information Provided for Accessibility in Format Conversion (opens in a new window or tab)
                                                                • Not Applicable

                                                                  504.2.2 PDF Export (opens in a new window or tab)
                                                                  • Not Applicable

                                                                    504.3 Prompts (opens in a new window or tab)
                                                                    • Not Applicable

                                                                      504.4 Templates (opens in a new window or tab)
                                                                      • Not Applicable

                                                                        Chapter 6: Support Documentation and Services Anchor link

                                                                        Repository Anchor link

                                                                        https://github.com/M2Team/NanaZip (opens in a new window or tab)

                                                                        Feedback Anchor link

                                                                        https://github.com/M2Team/NanaZip (opens in a new window or tab)
                                                                        ================================================ FILE: Documents/Section508/NanaZip.yaml ================================================ title: NanaZip Accessibility Conformance Report product: name: NanaZip version: '' description: >- NanaZip is an open source file archiver intended for the modern Windows experience, forked from the source code of well-known open source file archiver 7-Zip. author: name: Kenji Mouri company_name: M2-Team address: '' email: Kenji.Mouri@outlook.com phone: '' website: 'http://nanazip.org/' vendor: name: Kenji Mouri company_name: M2-Team address: '' email: Kenji.Mouri@outlook.com phone: '' website: 'http://nanazip.org/' report_date: 2026/2/25 last_modified_date: 2026/2/25 version: 1 notes: '' evaluation_methods_used: '' legal_disclaimer: '' repository: 'https://github.com/M2Team/NanaZip' feedback: 'https://github.com/M2Team/NanaZip' license: MIT related_openacrs: [] catalog: 2.4-edition-wcag-2.1-508-en chapters: success_criteria_level_a: notes: '' disabled: true criteria: - num: 1.1.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.1.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.1.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.1.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.3.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.2.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.2.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 4.1.1 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 4.1.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' success_criteria_level_aa: notes: '' disabled: true criteria: - num: 1.2.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.10 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.11 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.12 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.13 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.7 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.2.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.2.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 4.1.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' success_criteria_level_aaa: notes: '' disabled: true criteria: - num: 1.2.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.7 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.8 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.2.9 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.3.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.7 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.8 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 1.4.9 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.1.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.2.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.3.2 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.3.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.8 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.9 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.4.10 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 2.5.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.3 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.4 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.1.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.2.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.5 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' - num: 3.3.6 components: - name: web adherence: level: '' notes: '' - name: electronic-docs adherence: level: '' notes: '' - name: software adherence: level: '' notes: '' - name: authoring-tool adherence: level: '' notes: '' functional_performance_criteria: notes: '' disabled: false criteria: - num: '302.1' components: - name: none adherence: level: supports notes: '' - num: '302.2' components: - name: none adherence: level: supports notes: '' - num: '302.3' components: - name: none adherence: level: supports notes: '' - num: '302.4' components: - name: none adherence: level: supports notes: '' - num: '302.5' components: - name: none adherence: level: supports notes: '' - num: '302.6' components: - name: none adherence: level: supports notes: '' - num: '302.7' components: - name: none adherence: level: supports notes: '' - num: '302.8' components: - name: none adherence: level: supports notes: '' - num: '302.9' components: - name: none adherence: level: supports notes: '' hardware: notes: '' disabled: true criteria: - num: 402.2.1 components: - name: none adherence: level: '' notes: '' - num: 402.2.2 components: - name: none adherence: level: '' notes: '' - num: 402.2.3 components: - name: none adherence: level: '' notes: '' - num: 402.2.4 components: - name: none adherence: level: '' notes: '' - num: 402.2.5 components: - name: none adherence: level: '' notes: '' - num: 402.3.1 components: - name: none adherence: level: '' notes: '' - num: 402.3.2 components: - name: none adherence: level: '' notes: '' - num: '402.4' components: - name: none adherence: level: '' notes: '' - num: '402.5' components: - name: none adherence: level: '' notes: '' - num: '403.1' components: - name: none adherence: level: '' notes: '' - num: '404.1' components: - name: none adherence: level: '' notes: '' - num: '405.1' components: - name: none adherence: level: '' notes: '' - num: '406.1' components: - name: none adherence: level: '' notes: '' - num: '407.2' components: - name: none adherence: level: '' notes: '' - num: 407.3.1 components: - name: none adherence: level: '' notes: '' - num: 407.3.2 components: - name: none adherence: level: '' notes: '' - num: 407.3.3 components: - name: none adherence: level: '' notes: '' - num: '407.4' components: - name: none adherence: level: '' notes: '' - num: '407.5' components: - name: none adherence: level: '' notes: '' - num: '407.6' components: - name: none adherence: level: '' notes: '' - num: '407.7' components: - name: none adherence: level: '' notes: '' - num: 407.8.1 components: - name: none adherence: level: '' notes: '' - num: 407.8.1.1 components: - name: none adherence: level: '' notes: '' - num: 407.8.1.2 components: - name: none adherence: level: '' notes: '' - num: 407.8.2 components: - name: none adherence: level: '' notes: '' - num: 407.8.2.1 components: - name: none adherence: level: '' notes: '' - num: 407.8.2.2 components: - name: none adherence: level: '' notes: '' - num: 407.8.3 components: - name: none adherence: level: '' notes: '' - num: 407.8.3.1 components: - name: none adherence: level: '' notes: '' - num: 407.8.3.2 components: - name: none adherence: level: '' notes: '' - num: 407.8.3.2.1 components: - name: none adherence: level: '' notes: '' - num: 407.8.3.2.2 components: - name: none adherence: level: '' notes: '' - num: '408.2' components: - name: none adherence: level: '' notes: '' - num: '408.3' components: - name: none adherence: level: '' notes: '' - num: '409.1' components: - name: none adherence: level: '' notes: '' - num: '410.1' components: - name: none adherence: level: '' notes: '' - num: '411.1' components: - name: none adherence: level: '' notes: '' - num: 412.2.1 components: - name: none adherence: level: '' notes: '' - num: 412.2.2 components: - name: none adherence: level: '' notes: '' - num: 412.3.1 components: - name: none adherence: level: '' notes: '' - num: 412.3.2 components: - name: none adherence: level: '' notes: '' - num: '412.4' components: - name: none adherence: level: '' notes: '' - num: '412.5' components: - name: none adherence: level: '' notes: '' - num: '412.6' components: - name: none adherence: level: '' notes: '' - num: '412.7' components: - name: none adherence: level: '' notes: '' - num: 412.8.1 components: - name: none adherence: level: '' notes: '' - num: 412.8.2 components: - name: none adherence: level: '' notes: '' - num: 412.8.3 components: - name: none adherence: level: '' notes: '' - num: 412.8.4 components: - name: none adherence: level: '' notes: '' - num: 413.1.1 components: - name: none adherence: level: '' notes: '' - num: 413.1.2 components: - name: none adherence: level: '' notes: '' - num: 414.1.1 components: - name: none adherence: level: '' notes: '' - num: 414.1.2 components: - name: none adherence: level: '' notes: '' - num: 415.1.1 components: - name: none adherence: level: '' notes: '' - num: 415.1.2 components: - name: none adherence: level: '' notes: '' software: notes: '' disabled: false criteria: - num: 502.2.1 components: - name: none adherence: level: supports notes: '' - num: 502.2.2 components: - name: none adherence: level: supports notes: '' - num: 502.3.1 components: - name: none adherence: level: supports notes: '' - num: 502.3.2 components: - name: none adherence: level: supports notes: '' - num: 502.3.3 components: - name: none adherence: level: supports notes: '' - num: 502.3.4 components: - name: none adherence: level: supports notes: '' - num: 502.3.5 components: - name: none adherence: level: supports notes: '' - num: 502.3.6 components: - name: none adherence: level: supports notes: '' - num: 502.3.7 components: - name: none adherence: level: supports notes: '' - num: 502.3.8 components: - name: none adherence: level: supports notes: '' - num: 502.3.9 components: - name: none adherence: level: supports notes: '' - num: 502.3.10 components: - name: none adherence: level: supports notes: '' - num: 502.3.11 components: - name: none adherence: level: supports notes: '' - num: 502.3.12 components: - name: none adherence: level: supports notes: '' - num: 502.3.13 components: - name: none adherence: level: supports notes: '' - num: 502.3.14 components: - name: none adherence: level: supports notes: '' - num: '502.4' components: - name: none adherence: level: supports notes: '' - num: '503.2' components: - name: none adherence: level: supports notes: '' - num: '503.3' components: - name: none adherence: level: not-applicable notes: '' - num: 503.4.1 components: - name: none adherence: level: not-applicable notes: '' - num: 503.4.2 components: - name: none adherence: level: not-applicable notes: '' - num: '504.2' components: - name: none adherence: level: not-applicable notes: '' - num: 504.2.1 components: - name: none adherence: level: not-applicable notes: '' - num: 504.2.2 components: - name: none adherence: level: not-applicable notes: '' - num: '504.3' components: - name: none adherence: level: not-applicable notes: '' - num: '504.4' components: - name: none adherence: level: not-applicable notes: '' support_documentation_and_services: notes: '' disabled: true criteria: - num: '602.2' components: - name: none adherence: level: '' notes: '' - num: '602.3' components: - name: none adherence: level: '' notes: '' - num: '602.4' components: - name: none adherence: level: '' notes: '' - num: '603.2' components: - name: none adherence: level: '' notes: '' - num: '603.3' components: - name: none adherence: level: '' notes: '' ================================================ FILE: Documents/SponsorEdition.md ================================================ # NanaZip Sponsor Edition NanaZip provides a $99.99 USD Sponsor Edition addon to the Microsoft Store to attract more sponsors and contributors. It's free for NanaZip source code repository contributors and NanaZip sponsors who sponsored before March 30, 2024. ## Feature The only difference for NanaZip Sponsor Edition is showing "Appreciate your sponsorship" button instead of "Sponsor NanaZip" button in the next stable version of NanaZip's toolbar like the Visual Studio administrator mode. ![VisualStudioAdministratorMode](VisualStudioAdministratorMode.png) ## Purpose We hope every NanaZip user is happier than before. Here is why we offer a sponsored version: - Most users: We are happy with using a $99.99 product freely without feature differences. - Contributors: We want to show "Appreciate your sponsorship" button to others. It's free because we are the contributors. Contribute it if you want to get that free. - Sponsors: You can show "Appreciate your sponsorship" button to others because sponsors deserve that. - The author of NanaZip, Kenji Mouri: Finally, NanaZip has a price. Nobody will think this is a worthless product. Efforts from contributors and I should have value even NanaZip is a fully free and open source project. ## Notes for NanaZip source code repository contributors If you are the contributor of NanaZip source code repository, please contact with Kenji.Mouri@outlook.com for more information. Note: If you are the contributor of Project Mile projects which is used in NanaZip, you are eligibled too. I think I have sent e-mails or QQ message to all eligible Project Mile contributors. ## Notes for NanaZip sponsors who sponsored before March 30, 2024 I think I have sent e-mails or QQ message to all eligible NanaZip sponsors. Contact with Kenji.Mouri@outlook.com for more information. ================================================ FILE: Documents/UpstreamSynchronization.md ================================================ # NanaZip Upstream Synchronization Status ## 7-Zip Mainline - NanaZip.Core: 26.00 - NanaZip.UI.Classic: 22.01 - Fix for CVE-2025-0411 backported from 7-Zip 24.09. - Fix for CVE-2025-11001 and CVE-2025-11002 backported from 7-Zip 25.00. - Security enhancements for symbolic link handling backported from 7-Zip 25.01. - NanaZip.UI.Modern: 22.01 - Fix for CVE-2025-0411 backported from 7-Zip 24.09. - Fix for CVE-2025-11001 and CVE-2025-11002 backported from 7-Zip 25.00. - Security enhancements for symbolic link handling backported from 7-Zip 25.01. - NanaZip.Universal: 26.00 ## 7-Zip ZS - NanaZip.Core: Commit 5766dd7745f6517f7ea42f6de9a190dfd92aa25f. - NanaZip.UI.Classic: Unknown because it modifies the old codebase a lot. - NanaZip.UI.Modern: Unknown because it modifies the old codebase a lot. - NanaZip.Universal: Commit 5766dd7745f6517f7ea42f6de9a190dfd92aa25f. ## BLAKE3 - NanaZip.Codecs: 1.8.2 ## Brotli - NanaZip.Codecs: 1.2.0 ## FastLZMA2 - NanaZip.Codecs: Commit a793db99fade2957d2453035390f97e573acecb2. ## FreeBSD - NanaZip.Codecs: 14.2.0 with Windows-specific adaptations. ## GmSSL - NanaZip.Codecs: 3.1.1 ## LittleFS - NanaZip.Codecs: 2.10.2 with actually has not been integrated yet. ## Lizard - NanaZip.Codecs: 2.1 ## LZ4 - NanaZip.Codecs: 1.10.0 ## LZ5 - NanaZip.Codecs: 1.5 ## RHash - NanaZip.Codecs: Commit b76c6a3312422c09817c2cef40442b2f2d9d4689 after v1.4.6. ## xxHash - NanaZip.Codecs: 0.8.3 ## Zstandard - NanaZip.Codecs: 1.5.7 ## ZSTDMT - NanaZip.Codecs: Follow 7-Zip ZS's integration. ================================================ FILE: Documents/Versioning.md ================================================ # NanaZip Versioning This document applies to all versions of NanaZip. ## Version Format - Simple Version: `. ` - Example: `9.0 Preview 1` - Binary Version: `...` - Example: `9.0.2654.0` ## The rule for build and revision number The build number is the number of days since August 31, 2021 because the first version of NanaZip is created and published on that day. The revision number is the number of releases releases in the day corresponding to the build number, and it counts from zero. So the first revision is 0 and the second revision is 1. ## Release Tags The tag timeline for each release is: ``` "Preview {N}" (one or more) -> "Final" (one or more) -> "No Tag" -> {"Update N Final" (one or more) -> "Update N"} (zero or more) -> Repeat again for vNext ``` Here is the explanation for each tag: - "Preview {N}" - This tag only appears in NanaZip Preview. - N is the preview release number, starting from 1. - N is also optional if there is only one preview release. - "Final" and "Update N Final" - This tag only appears in NanaZip Preview. - The last corresponding "Final" release in NanaZip Preview has the same implementation as the corresponding stable release in NanaZip. - There will be more than one "Final" release if there are some big issues found before the corresponding stable release. - "Update N Final" is used for validating updates after the corresponding "No Tag" stable release. - "Update N Final" corresponds to the stable release "Update N". - "No Tag" or "Update N" - This tag only appears in NanaZip a.k.a. the stable release. - This indicates the stable release of NanaZip. - There is only one stable release for each minor version. - N is the update release number, starting from 1. Here is the example timeline: ``` 6.0 Preview 1 -> 6.0 Final -> 6.0 -> 6.0 Update 1 Final -> 6.0 Update 1 -> 6.0 Update 2 Final -> 6.0 Update 2 -> 6.5 Preview -> ... ``` ================================================ FILE: Documents/Website/.gitignore ================================================ # build output dist/ # generated types .astro/ # dependencies node_modules/ # logs npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* # environment variables .env .env.production # macOS-specific files .DS_Store # jetbrains setting folder .idea/ ================================================ FILE: Documents/Website/.vscode/extensions.json ================================================ { "recommendations": ["astro-build.astro-vscode"], "unwantedRecommendations": [] } ================================================ FILE: Documents/Website/.vscode/launch.json ================================================ { "version": "0.2.0", "configurations": [ { "command": "./node_modules/.bin/astro dev", "name": "Development server", "request": "launch", "type": "node-terminal" } ] } ================================================ FILE: Documents/Website/.vscode/mcp.json ================================================ { "servers": { "Astro docs": { "url": "https://mcp.docs.astro.build/mcp", "type": "http" } }, "inputs": [] } ================================================ FILE: Documents/Website/ReadMe.md ================================================ # NanaZip Website This folder contains the source code of the NanaZip website, built using [Astro](https://astro.build). ## Images When taking screenshots for the website, please note the following guidelines: - Use the default Bloom wallpapers for Windows 11. - Do not use Snipping Tool (or the built-in `Windows` + `Shift` + `S` shortcut), as it adds ugly borders around the screenshot. Use [ShareX](https://getsharex.com/) (with transparency on and shadows off), or an equivalent tool. - To turn on transparency mode in ShareX: 1. Open ShareX and go to "Task settings". 2. On the left sidebar, click on "Capture". 3. Turn on "Capture window with transparency" and turn off "Capture window with shadow". - Compress the PNG files using [pngquant](https://pngquant.org/), with the following command: ``` pngquant --force --ext .png --quality 85-85 ``` When adding images to the website, place them in `src/assets/images`, and reference them like this: ```html --- import exampleImage from '[path to picture]'; --- ``` Where `[loading mode]` can be either `eager` or `lazy`. Use `eager` for images that are above the fold (i.e. visible without scrolling), and `lazy` for images that are below the fold. If the image has both a light and a dark version, you can use the `ThemedLocalPicture` component instead, like this: ```html --- import exampleImageLight from '[path to light version of picture]'; import exampleImageDark from '[path to dark version of picture]'; --- ``` ================================================ FILE: Documents/Website/astro.config.mjs ================================================ // @ts-check import { defineConfig } from 'astro/config'; // https://astro.build/config export default defineConfig({ site: 'https://nanazip.org', }); ================================================ FILE: Documents/Website/package.json ================================================ { "name": "k7site", "type": "module", "version": "0.0.1", "scripts": { "dev": "astro dev", "build": "astro build", "preview": "astro preview", "astro": "astro" }, "dependencies": { "@fluentui/svg-icons": "^1.1.320", "astro": "^5.17.1" }, "devDependencies": { "sass-embedded": "^1.97.3" } } ================================================ FILE: Documents/Website/src/assets/styles/button.css ================================================ button, .btn { border-radius: var(--fds-control-corner-radius); font-size: var(--fds-body-font-size); border: 1px solid var(--fds-control-border-default); background-color: var(--fds-control-fill-default); color: var(--fds-text-primary); font-family: var(--fds-font-family-text); padding: 4px 11px 6px 11px; transition: var(--fds-control-faster-duration) ease background; font-size: var(--fds-body-font-size); cursor: pointer; user-select: none; text-decoration: none; display: inline-block; } button:hover, .btn:hover { background-color: var(--fds-control-fill-secondary); } button:active, .btn:active { background-color: var(--fds-control-fill-tertiary); border-color: var(--fds-control-stroke-default); color: var(--fds-text-secondary); } .btn-hyper { background-color: transparent; color: var(--fds-accent-text-primary); } .btn-hyper:hover { background-color: var(--fds-subtle-fill-secondary); } .btn-hyper:active { background-color: var(--fds-subtle-fill-tertiary); color: var(--fds-accent-text-tertiary); } .btn-accent { background-color: var(--fds-accent-default); border: 1px solid var(--fds-control-stroke-on-accent-default); border-bottom-color: var(--fds-control-stroke-on-accent-secondary); color: var(--fds-text-on-accent-primary); transition: var(--fds-control-faster-duration) ease border-color; } .btn-accent:hover { background-color: var(--fds-accent-secondary); } .btn-accent:active { background-color: var(--fds-accent-tertiary); border-color: transparent; color: var(--fds-text-on-accent-secondary); } ================================================ FILE: Documents/Website/src/assets/styles/global.css ================================================ body { background-color: var(--fds-solid-background-base); color: var(--fds-text-primary); font-family: var(--fds-font-family-text); font-size: var(--fds-body-font-size); line-height: 20px; margin: 0; padding: 0; min-height: 100vh; display: flex; flex-direction: column; } main { display: flex; flex-direction: column; flex: 1 0 auto; } main article { max-width: 800px; margin: 40px 16px 16px 16px; align-self: center; } html { color-scheme: light; } @media (prefers-color-scheme: dark) { html { color-scheme: dark; } } @view-transition { navigation: auto; } ================================================ FILE: Documents/Website/src/assets/styles/icons.css ================================================ @font-face { font-family: "FluentSystemIcons-Regular"; src: url("/FluentSystemIcons-Regular.woff2") format("woff2"), url("/FluentSystemIcons-Regular.woff") format("woff"), url("/FluentSystemIcons-Regular.ttf") format("truetype"); font-display: swap; } .icon:before { font-family: FluentSystemIcons-Regular !important; font-style: normal; font-weight: normal !important; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon { line-height: 0; } ================================================ FILE: Documents/Website/src/assets/styles/image.css ================================================ img { max-width: 100%; height: auto; } .image-card { border: 1px solid var(--fds-surface-stroke-default); border-radius: 8px; } ================================================ FILE: Documents/Website/src/assets/styles/pages/index.css ================================================ .se-demo-scenario { display: flex; flex-direction: row; align-items: center; gap: 16px; } .card { border: 1px solid var(--fds-card-stroke-default); background-color: var(--fds-card-background-default); border-radius: 8px; padding: 16px; } .se-demo-scenario .card { flex: 1; } @media (max-width: 768px) { .se-demo { gap: 32px; } #right-arrow { transform: rotate(90deg); } .se-demo-scenario .card { flex: unset; } .se-demo-scenario { flex-direction: column; } } .format-list { display: flex; flex-direction: row; gap: 16px; flex-wrap: wrap; align-items: center; justify-content: center; text-align: center; } .format-list .card { font-size: 18px; } ================================================ FILE: Documents/Website/src/assets/styles/text.css ================================================ h1, h2, h3, h4, h5, h6 { font-family: var(--fds-font-family-display); margin: 0; padding: 0; } h1 { font-size: var(--fds-title-large-font-size); font-weight: 600; line-height: 52px; } h2 { font-size: var(--fds-title-font-size); font-weight: 600; line-height: 36px; } h3 { font-size: var(--fds-subtitle-font-size); font-weight: 600; line-height: 28px; } small { font-size: var(--fds-caption-font-size); font-family: var(--fds-font-family-small); line-height: 16px; } article h1, article h2 { margin-top: 16px; margin-bottom: 16px; } a { color: var(--fds-accent-text-primary); } a:active { color: var(--fds-accent-text-tertiary); } ================================================ FILE: Documents/Website/src/assets/styles/theme.css ================================================ /* Global Variables */ :root { /* Accent Colors */ --fds-accent-light-3: 191, 98%, 80%; --fds-accent-light-2: 199, 99%, 69%; --fds-accent-light-1: 205, 100%, 49%; --fds-accent-base: 206, 100%, 42%; --fds-accent-dark-1: 209, 100%, 36%; --fds-accent-dark-2: 215, 100%, 29%; --fds-accent-dark-3: 226, 100%, 20%; /* Font Families */ --fds-font-family-fallback: "Segoe UI", -apple-system, ui-sans-serif, system-ui, BlinkMacSystemFont, Helvetica, Arial, sans-serif; --fds-font-family-text: "Segoe UI Variable Text", "Seoge UI Variable Static Text", var(--fds-font-family-fallback); --fds-font-family-small: "Segoe UI Variable Small", "Seoge UI Variable Static Small", var(--fds-font-family-fallback); --fds-font-family-display: "Segoe UI Variable Display", "Seoge UI Variable Static Display", var(--fds-font-family-fallback); /* Font Size */ --fds-caption-font-size: 12px; --fds-body-font-size: 14px; --fds-body-large-font-size: 18px; --fds-subtitle-font-size: 20px; --fds-title-font-size: 28px; --fds-title-large-font-size: 40px; --fds-display-font-size: 68px; /* Roundness */ --fds-control-corner-radius: 4px; --fds-overlay-corner-radius: 8px; /* Duration */ --fds-control-slow-duration: 333ms; --fds-control-normal-duration: 250ms; --fds-control-fast-duration: 167ms; /* --fds-control-fast-after-duration: 168ms; */ --fds-control-faster-duration: 83ms; /* Easing */ --fds-control-fast-out-slow-in-easing: cubic-bezier(0, 0, 0, 1); /* Focus Stroke */ --fds-focus-stroke: 0 0 0 1px var(--fds-focus-stroke-inner), 0 0 0 3px var(--fds-focus-stroke-outer); } /* Reduced Motion Support */ @media (prefers-reduced-motion: reduce) { :root { --fds-control-slow-duration: 0ms; --fds-control-normal-duration: 0ms; --fds-control-fast-duration: 0ms; /* --fds-control-fast-after-duration: 0ms; */ --fds-control-faster-duration: 0ms; } } /* Light Theme Colors */ @media (prefers-color-scheme: light) { :root { /* Text */ --fds-text-primary: hsla(0, 0%, 0%, 89.56%); --fds-text-secondary: hsla(0, 0%, 0%, 60.63%); --fds-text-tertiary: hsla(0, 0%, 0%, 44.58%); --fds-text-disabled: hsla(0, 0%, 0%, 36.14%); /* Accent */ --fds-accent-default: hsl(var(--fds-accent-dark-1)); --fds-accent-secondary: hsla(var(--fds-accent-dark-1), 90%); --fds-accent-tertiary: hsla(var(--fds-accent-dark-1), 80%); --fds-accent-disabled: hsla(0, 0%, 0%, 21.69%); /* Accent Text */ --fds-accent-text-primary: hsl(var(--fds-accent-dark-2)); --fds-accent-text-secondary: hsl(var(--fds-accent-dark-3)); --fds-accent-text-tertiary: hsl(var(--fds-accent-dark-1)); --fds-accent-text-disabled: hsla(0, 0%, 0%, 36.14%); /* Text on Accent */ --fds-text-on-accent-primary: hsl(0, 0%, 100%); --fds-text-on-accent-secondary: hsla(0, 0%, 100%, 70%); --fds-text-on-accent-disabled: var(--fds-text-on-accent-secondary); --fds-text-on-accent-selected: var(--fds-text-on-accent-primary); /* Control Fill */ --fds-control-fill-transparent: transparent; --fds-control-fill-default: hsla(0, 0%, 100%, 70%); --fds-control-fill-secondary: hsla(0, 0%, 98%, 50%); --fds-control-fill-tertiary: hsla(0, 0%, 98%, 30%); --fds-control-fill-disabled: var(--fds-control-fill-tertiary); --fds-control-fill-input-active: hsl(0, 0%, 100%); /* Control Strong Fill */ --fds-control-strong-fill-default: hsla(0, 0%, 0%, 44.58%); --fds-control-strong-fill-disabled: hsla(0, 0%, 0%, 31.73%); /* Control Solid Fill */ --fds-control-solid-fill-default: hsl(0, 0%, 100%); /* Control Alt Fill */ --fds-control-alt-fill-transparent: transparent; --fds-control-alt-fill-secondary: hsla(0, 0%, 0%, 2.41%); --fds-control-alt-fill-tertiary: hsla(0, 0%, 0%, 5.78%); --fds-control-alt-fill-quarternary: hsla(0, 0%, 0%, 9.24%); --fds-control-alt-fill-disabled: var(--fds-control-alt-fill-transparent); /* Control on Image Fill */ --fds-control-on-image-fill-default: hsla(0, 0%, 100%, 79%); --fds-control-on-image-fill-secondary: hsl(0, 0%, 95%); --fds-control-on-image-fill-tertiary: hsl(0, 0%, 92%); --fds-control-on-image-fill-disabled: transparent; /* Subtle Fill */ --fds-subtle-fill-transparent: transparent; --fds-subtle-fill-secondary: hsla(0, 0%, 0%, 3.73%); --fds-subtle-fill-tertiary: hsla(0, 0%, 0%, 2.41%); --fds-subtle-fill-disabled: var(--fds-subtle-fill-transparent); /* Control Stroke */ --fds-control-stroke-default: hsla(0, 0%, 0%, 5.78%); --fds-control-stroke-secondary: hsla(0, 0%, 0%, 16.22%); /* Control Strong Stroke */ --fds-control-strong-stroke-default: hsla(0, 0%, 0%, 44.58%); --fds-control-strong-stroke-disabled: hsla(0, 0%, 0%, 21.69%); /* Control Stroke on Accent */ --fds-control-stroke-on-accent-default: hsla(0, 0%, 100%, 8%); --fds-control-stroke-on-accent-secondary: hsla(0, 0%, 0%, 40%); --fds-control-stroke-on-accent-tertiary: hsla(0, 0%, 0%, 21.69%); --fds-control-stroke-on-accent-disabled: var(--fds-control-stroke-on-accent-default); /* Control Strong Stroke on Image */ --fds-control-strong-stroke-on-image-default: hsla(0, 0%, 100%, 35%); /* Card Stroke */ --fds-card-stroke-default: hsla(0, 0%, 0%, 5.78%); --fds-card-stroke-default-solid: hsl(0, 0%, 92%); /* Surface Stroke */ --fds-surface-stroke-default: hsla(0, 0%, 46%, 40%); --fds-surface-stroke-flyout: hsla(0, 0%, 0%, 5.78%); /* Divider Stroke */ --fds-divider-stroke-default: hsla(0, 0%, 0%, 8.03%); /* Focus Stroke */ --fds-focus-stroke-outer: hsla(0, 0%, 0%, 89.56%); --fds-focus-stroke-inner: hsl(0, 0%, 100%); /* Card Background */ --fds-card-background-default: hsla(0, 0%, 100%, 70%); --fds-card-background-secondary: hsla(0, 0%, 96%, 50%); /* --fds-card-background-tertiary: hsl(0, 0%, 100%); */ /* Smoke Background */ --fds-smoke-background-default: hsla(0, 0%, 0%, 30%); /* Layer */ --fds-layer-background-default: hsla(0, 0%, 100%, 50%); --fds-layer-background-alt: hsl(0, 0%, 100%); /* Solid Background */ --fds-solid-background-base: hsl(0, 0%, 95%); --fds-solid-background-secondary: hsl(0, 0%, 93%); --fds-solid-background-tertiary: hsl(0, 0%, 98%); --fds-solid-background-quarternary: hsl(0, 0%, 100%); /* System */ --fds-system-attention: hsl(209, 100%, 36%); --fds-system-success: hsl(120, 78%, 27%); --fds-system-caution: hsl(36, 100%, 31%); --fds-system-critical: hsl(5, 75%, 44%); --fds-system-neutral: hsla(0, 0%, 0%, 44.58%); /* System Solid */ --fds-system-solid-neutral: hsl(0, 0%, 54%); /* System Background */ --fds-system-background-attention: hsla(0, 0%, 96%, 50%); --fds-system-background-success: hsl(115, 58%, 92%); --fds-system-background-caution: hsl(47, 100%, 90%); --fds-system-background-critical: hsl(355, 85%, 95%); /* System Background Solid */ --fds-system-background-solid-attention: hsl(0, 0%, 97%); --fds-system-background-solid-neutral: hsl(0, 0%, 95%); /* Borders */ --fds-control-border-default: var(--fds-control-stroke-default) var(--fds-control-stroke-default) var(--fds-control-stroke-secondary) var(--fds-control-stroke-default); /* Shadows */ --fds-card-shadow: 0px 2px 4px hsla(0, 0%, 0%, 4%); --fds-tooltip-shadow: 0px 4px 8px hsla(0, 0%, 0%, 14%); --fds-flyout-shadow: 0px 8px 16px hsla(0, 0%, 0%, 14%); --fds-dialog-shadow: 0px 32px 64px hsla(0, 0%, 0%, 18.76%), 0px 2px 21px hsl(0, 0%, 0%, 14.74%); /* Shell Shadows */ --fds-inactive-window-shadow: 0px 16px 32px hsla(0, 0%, 0%, 18%), 0px 2px 10.67px hsla(0, 0%, 0%, 0.1474); --fds-active-window-shadow: 0px 32px 64px hsla(0, 0%, 0%, 28%), 0px 2px 21px hsla(0, 0%, 0%, 22%); } } /* Dark Theme Colors */ @media (prefers-color-scheme: dark) { :root { /* Text */ --fds-text-primary: hsla(0, 0%, 100%, 100%); --fds-text-secondary: hsla(0, 0%, 100%, 78.6%); --fds-text-tertiary: hsla(0, 0%, 100%, 54.42%); --fds-text-disabled: hsla(0, 0%, 100%, 36.28%); /* Accent */ --fds-accent-default: hsla(var(--fds-accent-light-2)); --fds-accent-secondary: hsla(var(--fds-accent-light-2), 90%); --fds-accent-tertiary: hsla(var(--fds-accent-light-2), 80%); --fds-accent-disabled: hsla(0, 0%, 100%, 15.81%); /* Accent Text */ --fds-accent-text-primary: hsl(var(--fds-accent-light-3)); --fds-accent-text-secondary: hsl(var(--fds-accent-light-3)); --fds-accent-text-tertiary: hsl(var(--fds-accent-light-2)); --fds-accent-text-disabled: hsla(0, 0%, 100%, 36.28%); /* Text on Accent */ --fds-text-on-accent-primary: hsl(0, 0%, 0%); --fds-text-on-accent-secondary: hsla(0, 0%, 0%, 0.5); --fds-text-on-accent-disabled: hsla(0, 0%, 100%, 0.53); --fds-text-on-accent-selected: hsl(0, 0%, 100%); /* Control Fill */ --fds-control-fill-transparent: transparent; --fds-control-fill-default: hsla(0, 0%, 100%, 0.061); --fds-control-fill-secondary: hsla(0, 0%, 100%, 0.084); --fds-control-fill-tertiary: hsla(0, 0%, 100%, 0.033); --fds-control-fill-disabled: hsla(0, 0%, 100%, 0.042); --fds-control-fill-input-active: hsla(0, 0%, 12%, 70%); /* Control Strong Fill */ --fds-control-strong-fill-default: hsla(0, 0%, 100%, 54.42%); --fds-control-strong-fill-disabled: hsla(0, 0%, 100%, 24.65%); /* Control Solid Fill */ --fds-control-solid-fill-default: hsl(0, 0%, 27%); /* Control Alt Fill */ --fds-control-alt-fill-transparent: transparent; --fds-control-alt-fill-secondary: hsla(0, 0%, 0%, 0.1); --fds-control-alt-fill-tertiary: hsla(0, 0%, 100%, 0.042); --fds-control-alt-fill-quarternary: hsla(0, 0%, 100%, 0.07); --fds-control-alt-fill-disabled: var(--fds-control-fill-transparent); /* Control on Image Fill */ --fds-control-on-image-fill-default: hsla(0, 0%, 11%, 70%); --fds-control-on-image-fill-secondary: hsl(0, 0%, 10%); --fds-control-on-image-fill-tertiary: hsl(0, 0%, 7%); --fds-control-on-image-fill-disabled: transparent; /* Subtle Fill */ --fds-subtle-fill-transparent: transparent; --fds-subtle-fill-secondary: hsla(0, 0%, 100%, 6.05%); --fds-subtle-fill-tertiary: hsla(0, 0%, 100%, 4.19%); --fds-subtle-fill-disabled: transparent; /* Control Stroke */ --fds-control-stroke-default: hsla(0, 0%, 100%, 6.98%); --fds-control-stroke-secondary: hsla(0, 0%, 100%, 9.3%); /* Control Strong Stroke */ --fds-control-strong-stroke-default: hsla(0, 0%, 100%, 54.42%); --fds-control-strong-stroke-disabled: hsla(0, 0%, 100%, 15.81%); /* Control Stroke on Accent */ --fds-control-stroke-on-accent-default: hsla(0, 0%, 100%, 8%); --fds-control-stroke-on-accent-secondary: hsla(0, 0%, 0%, 14%); --fds-control-stroke-on-accent-tertiary: hsla(0, 0%, 0%, 21.69%); --fds-control-stroke-on-accent-disabled: hsla(0, 0%, 0%, 20%); /* Control Strong Stroke on Image */ --fds-control-strong-stroke-on-image-default: hsla(0, 0%, 0%, 42%); /* Card Stroke */ --fds-card-stroke-default: hsla(0, 0%, 0%, 10%); --fds-card-stroke-default-solid: hsl(0, 0%, 11%); /* Surface Stroke */ --fds-surface-stroke-default: hsla(0, 0%, 46%, 40%); --fds-surface-stroke-flyout: hsla(0, 0%, 0%, 20%); /* Divider Stroke */ --fds-divider-stroke-default: hsla(0, 0%, 100%, 8.37%); /* Focus Stroke */ --fds-focus-stroke-outer: hsl(0, 0%, 100%); --fds-focus-stroke-inner: hsla(0, 0%, 0%, 70%); /* Card Background */ --fds-card-background-default: hsla(0, 0%, 100%, 5.12%); --fds-card-background-secondary: hsla(0, 0%, 100%, 3.26%); /* --fds-card-background-tertiary: unset; */ /* Smoke Background */ --fds-smoke-background-default: hsla(0, 0%, 0%, 30%); /* Layer */ --fds-layer-background-default: hsla(0, 0%, 23%, 30%); --fds-layer-background-alt: hsla(0, 0%, 100%, 5.38%); /* Solid Background */ --fds-solid-background-base: hsl(0, 0%, 13%); --fds-solid-background-secondary: hsl(0, 0%, 11%); --fds-solid-background-tertiary: hsl(0, 0%, 16%); --fds-solid-background-quarternary: hsl(0, 0%, 17%); /* System */ --fds-system-attention: hsl(199, 100%, 69%); --fds-system-success: hsl(113, 51%, 58%); --fds-system-caution: hsl(54, 100%, 49%); --fds-system-critical: hsl(354, 100%, 80%); --fds-system-neutral: hsla(0, 0%, 100%, 54.42%); /* System Solid */ --fds-system-solid-neutral: hsl(0, 0%, 62%); /* System Background */ --fds-system-background-attention: hsla(0, 0%, 100%, 3.26%); --fds-system-background-success: hsl(67, 39%, 17%); --fds-system-background-caution: hsl(40, 46%, 18%); --fds-system-background-critical: hsl(2, 28%, 21%); /* System Background Solid */ --fds-system-background-solid-attention: hsl(0, 0%, 18%); --fds-system-background-solid-neutral: hsl(0, 0%, 62%); /* Borders */ --fds-control-border-default: var(--fds-control-stroke-secondary) var(--fds-control-stroke-default) var(--fds-control-stroke-default) var(--fds-control-stroke-default); /* Shadows */ --fds-card-shadow: 0px 2px 4px hsla(0, 0%, 0%, 0.13); --fds-tooltip-shadow: 0px 4px 8px hsla(0, 0%, 0%, 0.26); --fds-flyout-shadow: 0px 8px 16px hsla(0, 0%, 0%, 0.14); --fds-dialog-shadow: 0px 32px 64px hsla(0, 0%, 0%, 0.37), 0px 2px 21px hsla(0, 0%, 0%, 0.37); /* Shell Shadows */ --fds-inactive-window-shadow: 0px 16px 32px hsla(0, 0%, 0%, 0.37), 0px 2px 10.67px hsla(0, 0%, 0%, 0.37); --fds-active-window-shadow: 0px 32px 64px hsla(0, 0%, 0%, 0.56), 0px 2px 21px hsla(0, 0%, 0%, 0.55); } } ================================================ FILE: Documents/Website/src/components/Footer/Footer.astro ================================================ --- import './Footer.css'; ---

                                                                        NanaZip, with ❤️ by M2-Team and contributors.

                                                                        Note: NanaZip.org is the only official website for NanaZip. Any other websites claiming to be NanaZip are fake. We are not responsible for content on those websites.

                                                                        ================================================ FILE: Documents/Website/src/components/Footer/Footer.css ================================================ footer { background-color: var(--fds-card-stroke-default-solid); border-top: 1px solid var(--fds-surface-stroke-flyout); padding: 8px 32px; margin-top: 16px; } ================================================ FILE: Documents/Website/src/components/InfoBar/InfoBar.astro ================================================ --- import "./InfoBar.scss"; interface Props { title?: string; severity: "information" | "success" | "caution" | "critical" | "attention"; wrap?: boolean; } const { title, severity, wrap = false } = Astro.props; let path = ""; if (severity === "attention") { path = "M862.5,680C862.5,687.333 861.083,694.25 858.25,700.75C855.417,707.25 851.583,712.917 846.75,717.75C841.917,722.583 836.25,726.417 829.75,729.25C823.25,732.083 816.333,733.5 809,733.5C800,733.5 791.333,731.167 783,726.5L565.5,603.5L565.5,853.5C565.5,860.833 564.083,867.75 561.25,874.25C558.417,880.75 554.583,886.333 549.75,891C544.917,895.667 539.25,899.417 532.75,902.25C526.25,905.083 519.333,906.5 512,906.5C504.667,906.5 497.75,905.083 491.25,902.25C484.75,899.417 479.083,895.667 474.25,891C469.417,886.333 465.583,880.75 462.75,874.25C459.917,867.75 458.5,860.833 458.5,853.5L458.5,603.5L241,726.5C232.667,731.167 224,733.5 215,733.5C207.667,733.5 200.75,732.083 194.25,729.25C187.75,726.417 182.083,722.583 177.25,717.75C172.417,712.917 168.583,707.25 165.75,700.75C162.917,694.25 161.5,687.333 161.5,680C161.5,670.667 164,661.75 169,653.25C174,644.75 180.5,638.167 188.5,633.5L403.5,512L188.5,390.5C180.5,385.833 174,379.25 169,370.75C164,362.25 161.5,353.333 161.5,344C161.5,336.667 162.917,329.75 165.75,323.25C168.583,316.75 172.417,311.083 177.25,306.25C182.083,301.417 187.75,297.583 194.25,294.75C200.75,291.917 207.667,290.5 215,290.5C224.667,290.5 233.333,292.833 241,297.5L458.5,420.5L458.5,170.5C458.5,163.167 459.917,156.25 462.75,149.75C465.583,143.25 469.417,137.667 474.25,133C479.083,128.333 484.75,124.583 491.25,121.75C497.75,118.917 504.667,117.5 512,117.5C519.333,117.5 526.25,118.917 532.75,121.75C539.25,124.583 544.917,128.333 549.75,133C554.583,137.667 558.417,143.25 561.25,149.75C564.083,156.25 565.5,163.167 565.5,170.5L565.5,420.5L783,297.5C791.333,292.833 800,290.5 809,290.5C816.333,290.5 823.25,291.917 829.75,294.75C836.25,297.583 841.917,301.417 846.75,306.25C851.583,311.083 855.417,316.75 858.25,323.25C861.083,329.75 862.5,336.667 862.5,344C862.5,353.333 860,362.25 855,370.75C850,379.25 843.5,385.833 835.5,390.5L620.5,512L835.5,633.5C843.5,638.167 850,644.75 855,653.25C860,661.75 862.5,670.667 862.5,680Z"; } else if (severity === "success") { path = "M117.5,554.5C117.5,547.167 118.917,540.25 121.75,533.75C124.583,527.25 128.417,521.583 133.25,516.75C138.083,511.917 143.75,508.083 150.25,505.25C156.75,502.417 163.667,501 171,501C185.333,501 197.833,506.333 208.5,517L384,692.5L815.5,261C826.167,250.333 838.833,245 853.5,245C860.833,245 867.75,246.417 874.25,249.25C880.75,252.083 886.417,256 891.25,261C896.083,266 899.917,271.75 902.75,278.25C905.583,284.75 907,291.5 907,298.5C907,313.167 901.667,325.833 891,336.5L421.5,805.5C416.5,810.5 410.75,814.417 404.25,817.25C397.75,820.083 391,821.5 384,821.5C369.667,821.5 357.167,816.167 346.5,805.5L133,592.5C122.667,582.167 117.5,569.5 117.5,554.5Z"; } else if (severity == "caution") { path = "M426.5,512L426.5,170.5C426.5,158.833 428.75,147.833 433.25,137.5C437.75,127.167 443.917,118.167 451.75,110.5C459.583,102.833 468.667,96.75 479,92.25C489.333,87.75 500.333,85.5 512,85.5C523.667,85.5 534.667,87.75 545,92.25C555.333,96.75 564.417,102.833 572.25,110.5C580.083,118.167 586.25,127.167 590.75,137.5C595.25,147.833 597.5,158.833 597.5,170.5L597.5,512C597.5,523.667 595.25,534.667 590.75,545C586.25,555.333 580.083,564.417 572.25,572.25C564.417,580.083 555.333,586.25 545,590.75C534.667,595.25 523.667,597.5 512,597.5C500.333,597.5 489.333,595.25 479,590.75C468.667,586.25 459.583,580.083 451.75,572.25C443.917,564.417 437.75,555.333 433.25,545C428.75,534.667 426.5,523.667 426.5,512ZM405.5,853.5C405.5,838.833 408.333,825 414,812C419.667,799 427.333,787.667 437,778C446.667,768.333 457.917,760.667 470.75,755C483.583,749.333 497.333,746.5 512,746.5C526.667,746.5 540.417,749.333 553.25,755C566.083,760.667 577.333,768.333 587,778C596.667,787.667 604.333,799 610,812C615.667,825 618.5,838.833 618.5,853.5C618.5,868.167 615.667,881.917 610,894.75C604.333,907.583 596.667,918.833 587,928.5C577.333,938.167 566,945.833 553,951.5C540,957.167 526.333,960 512,960C497.333,960 483.583,957.167 470.75,951.5C457.917,945.833 446.667,938.167 437,928.5C427.333,918.833 419.667,907.583 414,894.75C408.333,881.917 405.5,868.167 405.5,853.5Z"; } else if (severity === "critical") { path = "M512.5,587.5L262.5,838C252.167,848.333 239.5,853.5 224.5,853.5C209.5,853.5 196.917,848.417 186.75,838.25C176.583,828.083 171.5,815.5 171.5,800.5C171.5,785.5 176.667,772.833 187,762.5L437,512L187,262C176.667,251.667 171.5,239.167 171.5,224.5C171.5,217.167 172.833,210.167 175.5,203.5C178.167,196.833 181.917,191.167 186.75,186.5C191.583,181.833 197.167,178.083 203.5,175.25C209.833,172.417 216.833,171 224.5,171C239.167,171 251.667,176.167 262,186.5L512.5,437L762.5,186.5C773.167,175.833 785.833,170.5 800.5,170.5C807.833,170.5 814.75,171.917 821.25,174.75C827.75,177.583 833.417,181.417 838.25,186.25C843.083,191.083 846.833,196.75 849.5,203.25C852.167,209.75 853.5,216.667 853.5,224C853.5,238.667 848.333,251.167 838,261.5L587.5,512L838,762.5C848.667,773.167 854,785.833 854,800.5C854,807.833 852.583,814.667 849.75,821C846.917,827.333 843.083,832.917 838.25,837.75C833.417,842.583 827.75,846.417 821.25,849.25C814.75,852.083 807.833,853.5 800.5,853.5C785.5,853.5 772.833,848.333 762.5,838Z"; } else if (severity === "information") { path = "M405.5,170.5C405.5,156.167 408.333,142.5 414,129.5C419.667,116.5 427.333,105.167 437,95.5C446.667,85.8334 457.917,78.1667 470.75,72.5C483.583,66.8334 497.333,64.0001 512,64C526.333,64.0001 540,66.8334 553,72.5C566,78.1667 577.333,85.8334 587,95.5C596.667,105.167 604.333,116.5 610,129.5C615.667,142.5 618.5,156.167 618.5,170.5C618.5,185.167 615.667,199 610,212C604.333,225 596.667,236.333 587,246C577.333,255.667 566.083,263.333 553.25,269C540.417,274.667 526.667,277.5 512,277.5C497.333,277.5 483.583,274.667 470.75,269C457.917,263.333 446.667,255.667 437,246C427.333,236.333 419.667,225 414,212C408.333,199 405.5,185.167 405.5,170.5ZM426.5,853.5L426.5,512C426.5,500.333 428.75,489.333 433.25,479C437.75,468.667 443.917,459.583 451.75,451.75C459.583,443.917 468.667,437.75 479,433.25C489.333,428.75 500.333,426.5 512,426.5C523.667,426.5 534.667,428.75 545,433.25C555.333,437.75 564.417,443.917 572.25,451.75C580.083,459.583 586.25,468.667 590.75,479C595.25,489.333 597.5,500.333 597.5,512L597.5,853.5C597.5,865.167 595.25,876.167 590.75,886.5C586.25,896.833 580.083,905.833 572.25,913.5C564.417,921.167 555.333,927.25 545,931.75C534.667,936.25 523.667,938.5 512,938.5C500.333,938.5 489.333,936.25 479,931.75C468.667,927.25 459.583,921.167 451.75,913.5C443.917,905.833 437.75,896.833 433.25,886.5C428.75,876.167 426.5,865.167 426.5,853.5Z"; } let viewBox = ""; if (severity === "attention") { viewBox = "162 118 701 789"; } else if (severity === "success") { viewBox = "118 245 790 577"; } else if (severity === "caution") { viewBox = "406 86 213 875"; } else if (severity === "critical") { viewBox = "172 171 683 683"; } else if (severity === "information") { viewBox = "406 64 213 875"; } --- ================================================ FILE: Documents/Website/src/components/InfoBar/InfoBar.scss ================================================ .info-badge { display: flex; align-items: center; box-sizing: border-box; user-select: none; min-inline-size: 16px; min-block-size: 16px; border-radius: 16px; padding: 2px 4px; color: var(--fds-text-on-accent-primary); line-height: var(--fds-caption-font-size); font: { family: var(--fds-font-family-small); size: var(--fds-caption-font-size); } &.severity- { &attention { background-color: var(--fds-system-attention); } &success { background-color: var(--fds-system-success); } &caution { background-color: var(--fds-system-caution); } &critical { background-color: var(--fds-system-critical); } &information { background-color: var(--fds-system-solid-neutral); } } svg { inline-size: 8px; block-size: 8px; fill: currentColor; } } .info-bar { display: flex; align-items: center; position: relative; min-block-size: 48px; padding-inline-start: 15px; box-sizing: border-box; user-select: none; background-clip: padding-box; font-family: var(--fds-font-family-text); border: 1px solid var(--fds-card-stroke-default); border-radius: var(--fds-control-corner-radius); margin-bottom: 16px; &.severity- { &information { background-color: var(--fds-card-background-secondary); } &success { background-color: var(--fds-system-background-success); } &caution { background-color: var(--fds-system-background-caution); } &critical { background-color: var(--fds-system-background-critical); } &attention { background-color: var(--fds-system-background-attention); } } &-icon { align-self: flex-start; display: flex; flex: 0 0 auto; margin: { block-start: 16px; } } &-content { display: flex; align-items: center; flex-wrap: wrap; position: relative; box-sizing: border-box; flex: 1 1 auto; margin: { inline-start: 13px; block-start: 7px; block-end: 7px; } &.message-wrapped, &.action-wrapped { margin: { block-start: 13px; block-end: 15px; } } &.message-wrapped { h5, p { align-self: flex-start; } .info-bar-action { margin-inline-end: 50%; } } &.action-wrapped .info-bar-action { padding-block-start: 16px; } } h5, p { color: var(--text-primary); margin: 0; line-height: 20px; font: { size: var(--body-font-size); weight: 400; } } h5 { font-weight: 600; margin-inline-end: 12px; } p { flex: 1 1 auto; margin-inline-end: 15px; } } ================================================ FILE: Documents/Website/src/components/Navbar/Navbar.astro ================================================ --- import "./Navbar.scss"; import Logo from "../../assets/images/NanaZip.svg"; import NavIcon from '@fluentui/svg-icons/icons/navigation_24_regular.svg'; import HomeIcon from '@fluentui/svg-icons/icons/home_20_regular.svg'; import DownloadIcon from '@fluentui/svg-icons/icons/arrow_download_20_regular.svg'; --- ================================================ FILE: Documents/Website/src/components/StoreBadge/StoreBadge.css ================================================ .store-badge-link img.large { height: 104px; } .store-badge-link img { display: block; transition: 0.35s ease; } .store-badge-link img:hover { transform: translate(0, -4px); cursor: pointer; box-shadow: 0 12px 40px 20px rgba(0, 0, 0, 0.05); } iframe { border: none; width: 0; height: 0; } ms-store-badge::part(img), .store-badge-link img { max-width: 100%; min-width: 200px; } ms-store-badge, .store-badge-link { display: block; width: fit-content; line-height: 0; } ================================================ FILE: Documents/Website/src/components/StoreBadge/StoreBadge.ts ================================================ function changeStoreBadge(darkMode: boolean) { document.querySelectorAll("ms-store-badge").forEach((badge) => { badge.setAttribute("theme", darkMode ? "light" : "dark"); }); } window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) { changeStoreBadge(e.matches); }); ================================================ FILE: Documents/Website/src/components/ThemedLocalPicture/ThemedLocalPicture.astro ================================================ --- import type { ImageMetadata } from "astro"; import { getImage } from 'astro:assets'; interface Props { lightSrc: string | ImageMetadata; darkSrc: string | ImageMetadata; alt: string; loading?: "eager" | "lazy"; class?: string; fetchPriority?: "high" | "low" | "auto"; } const { lightSrc, darkSrc, alt, loading = "lazy", class: className, fetchPriority = "auto" } = Astro.props as Props; const lightImgAvif = await getImage({ src: lightSrc, format: 'avif', layout: 'full-width' }); const lightImgWebp = await getImage({ src: lightSrc, format: 'webp', layout: 'full-width' }); const lightImgPng = await getImage({ src: lightSrc, format: 'png', layout: 'full-width' }); const darkImgAvif = await getImage({ src: darkSrc, format: 'avif', layout: 'full-width' }); const darkImgWebp = await getImage({ src: darkSrc, format: 'webp', layout: 'full-width' }); const darkImgPng = await getImage({ src: darkSrc, format: 'png', layout: 'full-width' }); --- {alt} ================================================ FILE: Documents/Website/src/components/Tree/Tree.astro ================================================ --- interface Props { text: string; } const { text } = Astro.props; import './Tree.css'; ---

                                                                        {text}

                                                                        ================================================ FILE: Documents/Website/src/components/Tree/Tree.css ================================================ .tree > .tree { margin-left: 16px; } .tree p { margin-top: 8px; margin-bottom: 8px; display: flex; align-items: center; gap: 4px; } ================================================ FILE: Documents/Website/src/layouts/Layout.astro ================================================ --- import '../assets/styles/theme.css'; import '../assets/styles/global.css'; import '../assets/styles/text.css'; import '../assets/styles/image.css'; import '../assets/styles/button.css'; import Navbar from '../components/Navbar/Navbar.astro'; import Footer from '../components/Footer/Footer.astro'; interface Props { title?: string; description: string; } const { title, description } = Astro.props; --- {title ? `${title} - NanaZip` : "NanaZip"}