gitextract_y7vg5pf7/ ├── .gitattributes ├── .gitignore ├── .js ├── GNU_GPL_v2 ├── LICENSE.md ├── README.md ├── THE_UNLICENSE ├── TRANSLATION.md ├── extension/ │ ├── background.js │ ├── content.js │ ├── initializer.js │ ├── manifest_v2.json │ ├── manifest_v3.json │ └── viewer.html ├── library/ │ ├── .gitignore │ ├── API.md │ ├── CHANGELOG.md │ ├── README.md │ ├── app/ │ │ ├── app.css │ │ ├── app.html │ │ └── app.js │ ├── assets/ │ │ ├── DjVu3Spec.djvu │ │ ├── DjVu3Spec_5-10.djvu │ │ ├── DjVu3Spec_bundled.djvu │ │ ├── DjVu3Spec_contents.json │ │ ├── DjVu3Spec_indirect/ │ │ │ ├── dict0020.iff │ │ │ ├── dict0040.iff │ │ │ ├── dict0060.iff │ │ │ ├── dict0071.iff │ │ │ ├── index.djvu │ │ │ ├── p0001_1.djvu │ │ │ ├── p0002.djvu │ │ │ ├── p0003.djvu │ │ │ ├── p0004.djvu │ │ │ ├── p0005.djvu │ │ │ ├── p0006.djvu │ │ │ ├── p0007.djvu │ │ │ ├── p0008.djvu │ │ │ ├── p0009.djvu │ │ │ ├── p0010.djvu │ │ │ ├── p0011.djvu │ │ │ ├── p0012.djvu │ │ │ ├── p0013.djvu │ │ │ ├── p0014.djvu │ │ │ ├── p0015.djvu │ │ │ ├── p0016.djvu │ │ │ ├── p0017.djvu │ │ │ ├── p0018.djvu │ │ │ ├── p0019.djvu │ │ │ ├── p0020.djvu │ │ │ ├── p0021.djvu │ │ │ ├── p0022.djvu │ │ │ ├── p0023.djvu │ │ │ ├── p0024.djvu │ │ │ ├── p0025.djvu │ │ │ ├── p0026.djvu │ │ │ ├── p0027.djvu │ │ │ ├── p0028.djvu │ │ │ ├── p0029.djvu │ │ │ ├── p0030.djvu │ │ │ ├── p0031.djvu │ │ │ ├── p0032.djvu │ │ │ ├── p0033.djvu │ │ │ ├── p0034.djvu │ │ │ ├── p0035.djvu │ │ │ ├── p0036.djvu │ │ │ ├── p0037.djvu │ │ │ ├── p0038.djvu │ │ │ ├── p0039.djvu │ │ │ ├── p0040.djvu │ │ │ ├── p0041.djvu │ │ │ ├── p0042.djvu │ │ │ ├── p0043.djvu │ │ │ ├── p0044.djvu │ │ │ ├── p0045.djvu │ │ │ ├── p0046.djvu │ │ │ ├── p0047.djvu │ │ │ ├── p0048.djvu │ │ │ ├── p0049.djvu │ │ │ ├── p0050.djvu │ │ │ ├── p0051.djvu │ │ │ ├── p0052.djvu │ │ │ ├── p0053.djvu │ │ │ ├── p0054.djvu │ │ │ ├── p0055.djvu │ │ │ ├── p0056.djvu │ │ │ ├── p0057.djvu │ │ │ ├── p0058.djvu │ │ │ ├── p0059.djvu │ │ │ ├── p0060.djvu │ │ │ ├── p0061.djvu │ │ │ ├── p0062.djvu │ │ │ ├── p0063.djvu │ │ │ ├── p0064.djvu │ │ │ ├── p0065.djvu │ │ │ ├── p0066.djvu │ │ │ ├── p0067.djvu │ │ │ ├── p0068.djvu │ │ │ ├── p0069.djvu │ │ │ ├── p0070.djvu │ │ │ ├── p0071.djvu │ │ │ ├── thum0001.thumb │ │ │ ├── thum0002.thumb │ │ │ ├── thum0003.thumb │ │ │ ├── thum0004.thumb │ │ │ ├── thum0005.thumb │ │ │ ├── thum0006.thumb │ │ │ ├── thum0007.thumb │ │ │ ├── thum0008.thumb │ │ │ ├── thum0009.thumb │ │ │ └── thum0010.thumb │ │ ├── big-scanned-page.djvu │ │ ├── boy.djvu │ │ ├── boy_and_chicken.djvu │ │ ├── boy_jb2.djvu │ │ ├── boy_jb2_rotate180.djvu │ │ ├── boy_jb2_rotate270.djvu │ │ ├── boy_jb2_rotate90.djvu │ │ ├── carte.djvu │ │ ├── ccitt_2.djvu │ │ ├── century_dict/ │ │ │ ├── index08.djvu │ │ │ ├── p6683.djvu │ │ │ └── p6698.djvu │ │ ├── chicken.djvu │ │ ├── colorbook.djvu │ │ ├── czech.djvu │ │ ├── czech_1-3.djvu │ │ ├── czech_indirect/ │ │ │ ├── anno0001.iff │ │ │ ├── black_1.djvu │ │ │ ├── dict0085.iff │ │ │ ├── index.djvu │ │ │ ├── p0001.djvu │ │ │ ├── p0002.djvu │ │ │ └── slovnik │ │ ├── deutsch.djvu │ │ ├── djvu3spec+.djvu │ │ ├── happy_birthday.djvu │ │ ├── history.djvu │ │ ├── history_2.djvu │ │ ├── irish.djvu │ │ ├── links.djvu │ │ ├── malliavin.djvu │ │ ├── navm_fgbz.djvu │ │ ├── polish_indirect/ │ │ │ ├── index.djvu │ │ │ ├── shared_anno.iff │ │ │ └── sw1-0002.djvu │ │ ├── problem_page.djvu │ │ ├── slow.djvu │ │ └── vega.djvu │ ├── debug/ │ │ ├── async.html │ │ ├── css/ │ │ │ └── style.css │ │ ├── examples.html │ │ ├── index.html │ │ ├── js/ │ │ │ ├── DjVuGlobals.js │ │ │ ├── DjVuViewer.js │ │ │ ├── async.js │ │ │ ├── debug.js │ │ │ ├── examples.js │ │ │ ├── handler.js │ │ │ ├── initScript.js │ │ │ └── reloader.js │ │ └── sync.html │ ├── package.json │ ├── rollup.config.js │ ├── server.js │ ├── src/ │ │ ├── ByteStream.js │ │ ├── ByteStreamWriter.js │ │ ├── DjVu.js │ │ ├── DjVuDocument.js │ │ ├── DjVuErrors.js │ │ ├── DjVuPage.js │ │ ├── DjVuWorker.js │ │ ├── DjVuWorkerScript.js │ │ ├── DjVuWriter.js │ │ ├── ZPCodec.js │ │ ├── bzz/ │ │ │ ├── BZZDecoder.js │ │ │ └── BZZEncoder.js │ │ ├── chunks/ │ │ │ ├── DirmChunk.js │ │ │ ├── DjViChunk.js │ │ │ ├── DjVuAnno.js │ │ │ ├── DjVuPalette.js │ │ │ ├── DjVuText.js │ │ │ ├── IFFChunks.js │ │ │ ├── NavmChunk.js │ │ │ └── ThumChunk.js │ │ ├── index.js │ │ ├── iw44/ │ │ │ ├── IWCodecBaseClass.js │ │ │ ├── IWDecoder.js │ │ │ ├── IWEncoder.js │ │ │ ├── IWImage.js │ │ │ ├── IWImageWriter.js │ │ │ └── IWStructures.js │ │ ├── jb2/ │ │ │ ├── JB2Codec.js │ │ │ ├── JB2Dict.js │ │ │ ├── JB2Image.js │ │ │ └── JB2Structures.js │ │ └── methods/ │ │ ├── bundle.js │ │ └── load.js │ └── tests/ │ ├── embed.html │ ├── tests.css │ ├── tests.html │ └── tests.js ├── package.json └── viewer/ ├── .gitignore ├── CHANGELOG.md ├── cypress/ │ ├── e2e/ │ │ ├── fullscreen_mode.cy.js │ │ ├── initial_screen.cy.js │ │ ├── menu.cy.js │ │ ├── mobile_version.cy.js │ │ ├── modal_windows.cy.js │ │ └── toolbar.cy.js │ ├── shared.js │ └── utils.js ├── cypress.config.js ├── index.html ├── jsconfig.json ├── package.json ├── public/ │ └── manifest.json ├── src/ │ ├── App.test.js │ ├── DjVu.js │ ├── DjVuViewer.jsx │ ├── actions/ │ │ └── actions.js │ ├── components/ │ │ ├── App.jsx │ │ ├── AppContext.jsx │ │ ├── ErrorPage.jsx │ │ ├── FileBlock.jsx │ │ ├── FileLoadingScreen.jsx │ │ ├── ImageBlock/ │ │ │ ├── CanvasImage.jsx │ │ │ ├── ComplexImage.jsx │ │ │ ├── ImageBlock.jsx │ │ │ ├── TextLayer.jsx │ │ │ └── VirtualList.jsx │ │ ├── InitialScreen/ │ │ │ ├── FileZone.jsx │ │ │ ├── InitialScreen.jsx │ │ │ ├── LinkBlock.jsx │ │ │ └── ThemeSwitcher.jsx │ │ ├── Language/ │ │ │ ├── AddLanguageButton.jsx │ │ │ ├── IncompleteTranslationWindow.jsx │ │ │ ├── LanguagePanel.jsx │ │ │ ├── LanguageSelector.jsx │ │ │ └── LanguageWarningSign.jsx │ │ ├── LeftPanel/ │ │ │ ├── ContentsPanel.jsx │ │ │ ├── LeftPanel.jsx │ │ │ └── TreeItem.jsx │ │ ├── LoadingLayer.jsx │ │ ├── Main.jsx │ │ ├── Menu.jsx │ │ ├── ModalWindows/ │ │ │ ├── ErrorWindow.jsx │ │ │ ├── HelpWindow.jsx │ │ │ ├── ModalWindow.jsx │ │ │ ├── OptionsWindow.jsx │ │ │ ├── PrintDialog.jsx │ │ │ └── SaveDialog.jsx │ │ ├── StyledPrimitives.jsx │ │ ├── TextBlock.jsx │ │ ├── Toolbar/ │ │ │ ├── ContentsButton.jsx │ │ │ ├── CursorModeButtonGroup.jsx │ │ │ ├── HideButton.jsx │ │ │ ├── MenuButton.jsx │ │ │ ├── PageNumber.jsx │ │ │ ├── PageNumberBlock.jsx │ │ │ ├── PinButton.jsx │ │ │ ├── RotationControl.jsx │ │ │ ├── ScaleGizmo.jsx │ │ │ ├── Toolbar.jsx │ │ │ └── ViewModeButtons.jsx │ │ ├── Translation.jsx │ │ ├── cssMixins.js │ │ ├── helpers.js │ │ └── misc/ │ │ ├── CloseButton.jsx │ │ ├── FullPageViewButton.jsx │ │ ├── FullscreenButton.jsx │ │ ├── HelpButton.jsx │ │ ├── LoadingPhrase.jsx │ │ ├── OptionsButton.jsx │ │ ├── ProgressBar.jsx │ │ ├── SaveButton.jsx │ │ └── SaveNotification.jsx │ ├── constants/ │ │ ├── Constants.js │ │ ├── actionTypes.js │ │ └── index.js │ ├── hotkeys.js │ ├── index.js │ ├── locales/ │ │ ├── ChineseSimplified.js │ │ ├── English.js │ │ ├── French.js │ │ ├── Italian.js │ │ ├── Portuguese.js │ │ ├── Russian.js │ │ ├── Spanish.js │ │ ├── Swedish.js │ │ ├── Ukrainian.js │ │ └── index.js │ ├── reducers/ │ │ ├── commonReducer.js │ │ ├── fileLoadingReducer.js │ │ ├── fileProcessingReducer.js │ │ ├── index.js │ │ ├── pageReducer.js │ │ └── printReducer.js │ ├── sagas/ │ │ ├── ContinuousScrollManager.js │ │ ├── PageStorage.js │ │ ├── PagesCache.js │ │ ├── PrintManager.js │ │ └── rootSaga.js │ ├── store.js │ └── utils.js ├── syncLocales.js └── vite.config.js