{
  "schemaVersion": 1,
  "scope": {
    "kind": "finite-public-PDF-active-outline-removal-observation",
    "canonical": "/guides/pdf-remove-bookmarks.html",
    "newCanonicalPages": 1,
    "repositoryPageInstalled": false,
    "historicalPendingNullAndPlannedConfirmationFieldsPreserved": true,
    "passMeaning": "Finiteactiveoutlinetree/pagecontent/resource/geometryandrecordobservations foronepublicsample;notsecureerasureorreaderbehaviorguarantee",
    "packagingScope": "Byte copies and complete saved-report projections only; no new PDF parsing, media decoding, rendering, product or network."
  },
  "reports": {
    "fixture-contract.json": {
      "schema_version": 1,
      "evidence_type": "finite input inspection for remove-bookmarks task only",
      "input": {
        "name": "pdf-rotate-source.pdf",
        "path": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
      },
      "page_count": 3,
      "encrypted": false,
      "pages": [
        {
          "file_page": 1,
          "marker": "ROTATE-PAGE-1",
          "bottom_marker": "BOTTOM-1",
          "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
          "text_utf8_sha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
          "decoded_content_bytes": 1019,
          "decoded_content_sha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd",
          "media_box": [
            0,
            0,
            612,
            792
          ],
          "crop_box": [
            0,
            0,
            612,
            792
          ],
          "rotation": 0
        },
        {
          "file_page": 2,
          "marker": "ROTATE-PAGE-2",
          "bottom_marker": "BOTTOM-2",
          "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
          "text_utf8_sha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
          "decoded_content_bytes": 917,
          "decoded_content_sha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758",
          "media_box": [
            0,
            0,
            612,
            792
          ],
          "crop_box": [
            12,
            12,
            600,
            780
          ],
          "rotation": 90
        },
        {
          "file_page": 3,
          "marker": "ROTATE-PAGE-3",
          "bottom_marker": "BOTTOM-3",
          "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
          "text_utf8_sha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
          "decoded_content_bytes": 917,
          "decoded_content_sha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5",
          "media_box": [
            0,
            0,
            792,
            612
          ],
          "crop_box": [
            0,
            0,
            792,
            612
          ],
          "rotation": 0
        }
      ],
      "active_outline": [
        {
          "level": 1,
          "title": "第一页",
          "file_page": 1
        },
        {
          "level": 1,
          "title": "需要转正的第二页",
          "file_page": 2
        },
        {
          "level": 1,
          "title": "横向第三页",
          "file_page": 3
        }
      ],
      "active_outline_count": 3,
      "annotations": [
        {
          "file_page": 1,
          "subtype": "/Link",
          "rect": [
            54,
            486,
            285,
            510
          ],
          "border": [
            0,
            0,
            0
          ],
          "destination_kind": "internal direct destination",
          "target_file_page": 3,
          "destination_view": "/Fit",
          "destination_parameters": []
        }
      ],
      "metadata": {
        "/Producer": "pypdf",
        "/Title": "Cedar PDF 页面旋转核对",
        "/Author": "Doc2X public fictional sample"
      },
      "scope_notes": [
        "This task concerns active PDF outline navigation, not printed table-of-contents pages or body text.",
        "Original source page2 has Rotate90 and CropBox offset; page3 is landscape.",
        "Original source has one internal page1-to-page3 link; its preservation needs native structure comparison, not an assumed viewer click.",
        "Decoded page-content hashes describe input streams only, not rendered appearance, historical-object removal or security sanitization."
      ],
      "actual_ui": null,
      "actual_output": null,
      "reader_clicks": null,
      "status": "pending real remove-bookmarks operation"
    },
    "source-contract.json": {
      "schema_version": 1,
      "evidence_type": "read-only UI/source contract; not actual saved-PDF results",
      "source_checkout": "tools-formatter-copy",
      "source_head_supplied_by_root": "3c9869f3759a7d846db37a50b102c1790f00349c",
      "files": [
        {
          "relative_path": "src/app/zh-cn/tools/pdf-bookmark/components/hooks/useBookmarkActions.ts",
          "bytes": 13524,
          "sha256": "961cdc2e41b6677f63d39a388e926655ebb0e39f7865387f1169ace004ab8a7d"
        },
        {
          "relative_path": "src/app/zh-cn/tools/pdf-bookmark/components/hooks/useSaveExport.ts",
          "bytes": 7522,
          "sha256": "2c7082c5a0ac5fddd87237d5bbfc0d2ad1074da689d3a11a65b7d3df9a1ec6e7"
        },
        {
          "relative_path": "src/app/zh-cn/tools/pdf-bookmark/components/PDFBookmarkView.tsx",
          "bytes": 19702,
          "sha256": "833ea301fee1c036409f009bd3b0c11ef4a509912d86fd64a5d5c5c105268441"
        }
      ],
      "contracts": [
        {
          "ref": "useBookmarkActions.ts:70-76,125-145",
          "rule": "Select All fills selectedIds from current bookmarks unless all are already selected. Delete selected filters those IDs from state and clears selection; confirmation is a separate step."
        },
        {
          "ref": "PDFBookmarkView.tsx:369-398",
          "rule": "The save/export controls render with a current file and bookmarks.length>=0, so an empty outline list does not hide this source save button."
        },
        {
          "ref": "useSaveExport.ts handleSave/handleDownload",
          "rule": "Save passes source arrayBuffer and current bookmarks to writeBookmarksToPdf, creates a PDF Blob/result URL; download uses the result URL and output filename. Source calls alone cannot prove actual active outline zero or body/link preservation."
        }
      ],
      "prediction": {
        "status": "source_derived_pending",
        "intended_active_outline": "empty after actual all-selected deletion and save"
      },
      "actual_ui": null,
      "actual_output": null,
      "limits": [
        "No product source core was imported or run here.",
        "No claim that prior indirect objects are securely erased, that metadata/privacy is removed, or that every viewer behaves identically.",
        "Saving an empty state is a source capability, not an observed native result."
      ]
    },
    "operation-contract.json": {
      "schema_version": 1,
      "evidence_type": "minimal planned operation, not completed",
      "owner": "/guides/pdf-remove-bookmarks.html",
      "input": {
        "name": "pdf-rotate-source.pdf",
        "path": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
      },
      "planned_actions": {
        "upload": 1,
        "select_all": 1,
        "delete_selected": 1,
        "confirm_delete": 1,
        "save_export": 1,
        "native_pdf_download": 1,
        "extra_viewer_interactions": 0,
        "reader_clicks": 0
      },
      "planned_steps": [
        "Upload the public PDF once; record actual visible bookmark list and page count.",
        "Use actual Select All control once and record selection count.",
        "Use Delete Selected and its actual confirmation; record the resulting visible empty list.",
        "Use actual Save/Export PDF once, then download the generated PDF once. Preserve native bytes unchanged."
      ],
      "actual_control_labels": null,
      "actual_ui": null,
      "actual_actions": null,
      "actual_output": null,
      "reader_clicks": null,
      "conditional_native_checks": [
        "Strictly parse native PDF and verify actual active outline count.",
        "Compare full extracted text and decoded page-content streams for all three pages against input.",
        "Compare ordered page count/MediaBox/CropBox/Rotate and internal annotation link destination structure.",
        "Report any changed or omitted structure candidly; no reader clicks are authorized by this input-only contract.",
        "Do not frame active-outline deletion as deleting printed contents, body text, page links, historical objects or securely sanitizing personal data."
      ],
      "status": "pending root execution"
    },
    "input-provenance.json": {
      "schema_version": 1,
      "evidence_type": "already-public input identity",
      "source_repository": "website-responsive-seo",
      "source_commit_observed": "780eeb0eac56278af11d3dc4ed34714b87168ef0",
      "source_relative_path": "src/site/assets/pdf-rotate-source.pdf",
      "git_blob_sha1": "72708eebd9d00330d725323699fe38f67e2efaba",
      "git_blob_hash_verified_from_bytes": true,
      "source_bytes": 53991,
      "source_sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
      "copy": {
        "name": "pdf-rotate-source.pdf",
        "path": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
      },
      "copy_method": "exclusive fsync raw-byte copy; no PDF rewriting",
      "authorship": "reuse of public self-authored fictional sample",
      "pdf_author": "Doc2X public fictional sample"
    },
    "native-download-receipt.json": {
      "tool": "https://doc2x.noedgeai.com/zh-cn/tools/pdf-bookmark/",
      "sourceRuntimeReference": "3c9869f3759a7d846db37a50b102c1790f00349c",
      "input": {
        "file": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
      },
      "observedActions": {
        "uploadActions": 1,
        "inputFiles": 1,
        "selectAllActions": 1,
        "moreMenuActions": 1,
        "deleteSelectedActions": 1,
        "deleteConfirmDialogObserved": 0,
        "saveExportActions": 1,
        "nativePDFDownloadClicks": 1,
        "downloadEventsObserved": 0,
        "downloadEventWaitTimeoutMs": 10000,
        "secondDownloadClick": 0,
        "continueEditingClicks": 0,
        "readerBookmarkClicks": 0,
        "readerInternalLinkClicks": 0,
        "secondRuns": 0
      },
      "observedBefore": {
        "bookmarks": 3,
        "titlesAndFilePages": [
          [
            "第一页",
            1
          ],
          [
            "需要转正的第二页",
            2
          ],
          [
            "横向第三页",
            3
          ]
        ],
        "selectedCountAfterSelectAll": 3,
        "outputFilenameBase": "pdf-rotate-source_bookmarked",
        "outputFilenameChanged": false
      },
      "observedDeletion": {
        "at": "2026-10-18T01:50:23.767Z",
        "menuLabel": "删除选中 (3)",
        "toast": "已删除 3 个书签",
        "countText": "共 0 项",
        "emptyText": "暂无书签，点击上方「添加」或通过「更多 → 从文本导入」批量添加",
        "saveButtonVisible": true,
        "saveButtonLabel": "保存并导出 PDF",
        "confirmationDialogObserved": false
      },
      "saveStartedAt": "2026-10-18T01:50:32.224Z",
      "observedSaveResult": {
        "heading": "书签保存完成",
        "sizeText": "文件大小：50.27 KB",
        "downloadButton": "下载文件",
        "continuedEditing": false
      },
      "nativeDownload": {
        "eventObserved": false,
        "recoveryReport": "native-download-recovery.json",
        "uniqueFreshMatch": {
          "path": "pdf-rotate-source_bookmarked.pdf",
          "bytes": 51474,
          "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
          "birthTime": "2026-10-18T01:50:41.626321+00:00",
          "mtime": "2026-10-18T01:50:41.626469+00:00",
          "notBeforeSaveStartedAt": "2026-10-18T01:50:32.224Z"
        },
        "savedFile": "bookmarks-removed-native.pdf",
        "nativePDFRewritten": false
      },
      "nativeAnalysisPending": true,
      "scope": [
        "Observed toolbar deletion and one export/download only; native active outline/page/link checks pending.",
        "No paper table-of-contents page or body text was selected for deletion.",
        "No reader bookmark or internal-link jump was clicked.",
        "No secure erasure/history object removal conclusion."
      ],
      "recordedAt": "2026-10-18T01:51:45.893Z"
    },
    "native-download-recovery.json": {
      "eventObserved": false,
      "eventWaitTimeoutMs": 10000,
      "nativeDownloadClicks": 1,
      "secondClickPerformed": false,
      "observedOutputFilenameBase": "pdf-rotate-source_bookmarked",
      "uniqueFreshMatch": {
        "path": "pdf-rotate-source_bookmarked.pdf",
        "bytes": 51474,
        "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
        "birthTime": "2026-10-18T01:50:41.626321+00:00",
        "mtime": "2026-10-18T01:50:41.626469+00:00",
        "notBeforeSaveStartedAt": "2026-10-18T01:50:32.224Z"
      },
      "savedFile": "bookmarks-removed-native.pdf",
      "copiedWithoutPDFRewrite": true,
      "nativePDFAnalysisPerformed": false
    },
    "native-operation-freeze.json": {
      "status": "real-operation-frozen-native-analysis-pending",
      "createdAt": "2026-10-18T01:52:10.207033+00:00",
      "files": [
        {
          "file": "before-delete-dom.txt",
          "bytes": 6128,
          "sha256": "6558ace2403c033eeeb1f9c1398d7e409007028799771a8cf50edfed607a5379"
        },
        {
          "file": "before-delete.jpg",
          "bytes": 93667,
          "sha256": "0ebca29649e3a076a66b707d049f20468188f7a2faf48aace946584dc96cd5a8"
        },
        {
          "file": "selected-delete-menu.jpg",
          "bytes": 99060,
          "sha256": "e0c6ca8a6b82e7810b0f3e00a0aa8431ecd439a5ecea596b50eb235876b78023"
        },
        {
          "file": "after-delete-dom.txt",
          "bytes": 5965,
          "sha256": "74acc3a5bd6155275088f85245b4b7b947bba422a4b19f71adfe7a5e1097fce4"
        },
        {
          "file": "after-delete.jpg",
          "bytes": 93022,
          "sha256": "1ba6f2eaac1671d50c6b014e7c3b62be5331f9effca75d091ea017ce4a64b599"
        },
        {
          "file": "after-save-dom.txt",
          "bytes": 5205,
          "sha256": "7895b4a724d234081a0e193ae13698c3c9dd141f1819e86c6e0205f013be01b2"
        },
        {
          "file": "after-save.jpg",
          "bytes": 51314,
          "sha256": "98498393c1c905edda4aee9a31d4bb3e4b299e984052419078c1b2f078f7ef8c"
        },
        {
          "file": "bookmarks-removed-native.pdf",
          "bytes": 51474,
          "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0"
        },
        {
          "file": "native-download-recovery.json",
          "bytes": 665,
          "sha256": "2c748532041da7de94588b25a46f4d0e7cc736c624cb45f86f86038780d5de98"
        },
        {
          "file": "native-download-receipt.json",
          "bytes": 2752,
          "sha256": "90151f406d455c31a9238a74b397f770b77e10ce52de4e379ddfa566322231b1"
        },
        {
          "file": "final-product-cleanup.json",
          "bytes": 106,
          "sha256": "cdb165c2ae425ea291d0aff605209104cfc601c115ded58ae557b3c65e10de5d"
        }
      ],
      "fileCount": 11,
      "inputFreezeSha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a",
      "uploadActions": 1,
      "selectAllActions": 1,
      "deleteSelectedActions": 1,
      "saveExportActions": 1,
      "nativePDFDownloadClicks": 1,
      "readerClicks": 0,
      "downloadEventObserved": false,
      "uniqueFreshNativeFileRecoveredWithoutSecondClick": true,
      "nativePDFBytesUnmodified": true,
      "nativeAnalysisPending": true
    },
    "final-product-cleanup.json": {
      "controlledTabs": [],
      "viewportReset": true,
      "localServerRunning": false,
      "newProductRuns": 1
    },
    "analysis-pdf-checks.json": {
      "stage": "actual_remove_selected_bookmarks_active_tree_and_page_retention_observation",
      "checkedAt": "2026-10-18 Asia/Shanghai",
      "source": {
        "file": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
        "pageCount": 3,
        "pages": [
          {
            "localPage": 1,
            "pageReference": [
              4,
              0
            ],
            "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
            "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
            "sourceMarkers": [
              "ROTATE-PAGE-1"
            ],
            "contentStreams": [
              {
                "encodedBytes": 545,
                "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                "decodedBytes": 1019,
                "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "Rotate": 0,
            "annotations": [
              {
                "subtype": "/Link",
                "rectangle": [
                  54.0,
                  486.0,
                  285.0,
                  510.0
                ],
                "targetReference": [
                  15,
                  0
                ],
                "destinationLocalPageInCurrentTree": 3,
                "annotationPReference": [
                  4,
                  0
                ],
                "annotationPLocalPageInCurrentTree": 1,
                "actionSubtype": null,
                "readerClicked": false
              }
            ]
          },
          {
            "localPage": 2,
            "pageReference": [
              13,
              0
            ],
            "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
            "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
            "sourceMarkers": [
              "ROTATE-PAGE-2"
            ],
            "contentStreams": [
              {
                "encodedBytes": 507,
                "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                "decodedBytes": 917,
                "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              12.0,
              12.0,
              600.0,
              780.0
            ],
            "Rotate": 90,
            "annotations": []
          },
          {
            "localPage": 3,
            "pageReference": [
              15,
              0
            ],
            "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
            "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
            "sourceMarkers": [
              "ROTATE-PAGE-3"
            ],
            "contentStreams": [
              {
                "encodedBytes": 506,
                "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                "decodedBytes": 917,
                "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "CropBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "Rotate": 0,
            "annotations": []
          }
        ],
        "activeOutline": {
          "catalogKeys": [
            "/Outlines",
            "/Pages",
            "/Type"
          ],
          "catalogOutlinesKeyPresent": true,
          "outlineRootReference": [
            19,
            0
          ],
          "outlineRootCount": 3,
          "reachableFirstNextTree": [
            {
              "title": "第一页",
              "level": 1,
              "nodeReference": null,
              "destinationLocalPage": 1
            },
            {
              "title": "需要转正的第二页",
              "level": 1,
              "nodeReference": [
                21,
                0
              ],
              "destinationLocalPage": 2
            },
            {
              "title": "横向第三页",
              "level": 1,
              "nodeReference": [
                23,
                0
              ],
              "destinationLocalPage": 3
            }
          ],
          "reachableNodeCount": 3,
          "pypdfTopLevelOutlineCount": 3,
          "notHistoryOrStringErasureAudit": true
        },
        "readerWarnings": []
      },
      "native": {
        "file": "bookmarks-removed-native.pdf",
        "bytes": 51474,
        "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
        "pageCount": 3,
        "pages": [
          {
            "localPage": 1,
            "pageReference": [
              4,
              0
            ],
            "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
            "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
            "sourceMarkers": [
              "ROTATE-PAGE-1"
            ],
            "contentStreams": [
              {
                "encodedBytes": 545,
                "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                "decodedBytes": 1019,
                "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "Rotate": 0,
            "annotations": [
              {
                "subtype": "/Link",
                "rectangle": [
                  54.0,
                  486.0,
                  285.0,
                  510.0
                ],
                "targetReference": [
                  15,
                  0
                ],
                "destinationLocalPageInCurrentTree": 3,
                "annotationPReference": [
                  4,
                  0
                ],
                "annotationPLocalPageInCurrentTree": 1,
                "actionSubtype": null,
                "readerClicked": false
              }
            ]
          },
          {
            "localPage": 2,
            "pageReference": [
              13,
              0
            ],
            "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
            "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
            "sourceMarkers": [
              "ROTATE-PAGE-2"
            ],
            "contentStreams": [
              {
                "encodedBytes": 507,
                "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                "decodedBytes": 917,
                "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              12.0,
              12.0,
              600.0,
              780.0
            ],
            "Rotate": 90,
            "annotations": []
          },
          {
            "localPage": 3,
            "pageReference": [
              15,
              0
            ],
            "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
            "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
            "sourceMarkers": [
              "ROTATE-PAGE-3"
            ],
            "contentStreams": [
              {
                "encodedBytes": 506,
                "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                "decodedBytes": 917,
                "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "CropBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "Rotate": 0,
            "annotations": []
          }
        ],
        "activeOutline": {
          "catalogKeys": [
            "/Pages",
            "/Type"
          ],
          "catalogOutlinesKeyPresent": false,
          "outlineRootReference": null,
          "outlineRootCount": null,
          "reachableFirstNextTree": [],
          "reachableNodeCount": 0,
          "pypdfTopLevelOutlineCount": 0,
          "notHistoryOrStringErasureAudit": true
        },
        "readerWarnings": []
      },
      "budgets": {
        "PDFBytes": 1048576,
        "PDFCount": 2,
        "pagesPerPDF": 4,
        "reachableOutlineNodes": 16,
        "outlineDepth": 4,
        "resourceNodesPerPage": 256,
        "resourceDepth": 16,
        "renderPages": 6
      },
      "pageComparisons": [
        {
          "page": 1,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "page": 2,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "page": 3,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        }
      ],
      "activeOutlineFinding": {
        "sourceActiveCount": 3,
        "nativeCatalogOutlinesPresent": false,
        "nativeReachableCount": 0,
        "boundedCatalogFirstNextTraversalPerformed": true,
        "readerOutlineEmptyAlsoAgrees": true,
        "deletionNotMerelyUIEmptyObservation": true
      },
      "retainedInternalLinkStructuralObservation": {
        "source": [
          {
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "targetReference": [
              15,
              0
            ],
            "destinationLocalPageInCurrentTree": 3,
            "annotationPReference": [
              4,
              0
            ],
            "annotationPLocalPageInCurrentTree": 1,
            "actionSubtype": null,
            "readerClicked": false
          }
        ],
        "native": [
          {
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "targetReference": [
              15,
              0
            ],
            "destinationLocalPageInCurrentTree": 3,
            "annotationPReference": [
              4,
              0
            ],
            "annotationPLocalPageInCurrentTree": 1,
            "actionSubtype": null,
            "readerClicked": false
          }
        ],
        "nativeDestinationIsCurrentPage3": true,
        "nativeAnnotationPIsCurrentPage1": true,
        "readerClicks": 0,
        "clickSuccessNotEstablished": true
      },
      "historyErasureBoundary": {
        "historicalXrefObjectsOrGarbageNotAudited": true,
        "oldTitleStringAbsenceNotEstablished": true,
        "activeOutlineZeroDoesNotMeanNoOldTitleBytes": true,
        "noSecureErasureClaim": true,
        "noFullObjectOrRawStringHistorySweepByPrimary": true
      },
      "actualOperations": {
        "uploadActions": 1,
        "selectAllActions": 1,
        "selectedBookmarkCount": 3,
        "deleteSelectedActions": 1,
        "confirmationModalObserved": false,
        "saveExportActions": 1,
        "nativeDownloadClicks": 1,
        "downloadTimeoutMs": 10000,
        "secondDownloadClick": false,
        "continueEditingClicks": 0,
        "readerBookmarkOrLinkClicks": 0,
        "secondRuns": 0,
        "filenameChanged": false,
        "UIEmptyListSaveButtonAvailable": true,
        "actualOutputSizeText": "文件大小：50.27 KB",
        "allTaskTabsClosed": true
      },
      "localRendering": {
        "rendererVersion": "pdftoppm version 25.03.0",
        "dpi": 54,
        "cropBoxRespected": true,
        "pageBudget": 6,
        "pagesRendered": 6,
        "files": [
          {
            "file": "analysis-page-renders/source-1.png",
            "bytes": 25340,
            "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
            "PDF": "pdf-rotate-source.pdf",
            "page": 1,
            "role": "source",
            "renderDimensions": [
              459,
              594
            ],
            "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "1",
              "-l",
              "1",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-1"
            ]
          },
          {
            "file": "analysis-page-renders/source-2.png",
            "bytes": 24449,
            "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
            "PDF": "pdf-rotate-source.pdf",
            "page": 2,
            "role": "source",
            "renderDimensions": [
              576,
              441
            ],
            "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "2",
              "-l",
              "2",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-2"
            ]
          },
          {
            "file": "analysis-page-renders/source-3.png",
            "bytes": 23399,
            "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
            "PDF": "pdf-rotate-source.pdf",
            "page": 3,
            "role": "source",
            "renderDimensions": [
              594,
              459
            ],
            "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "3",
              "-l",
              "3",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-3"
            ]
          },
          {
            "file": "analysis-page-renders/native-1.png",
            "bytes": 25340,
            "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 1,
            "role": "native",
            "renderDimensions": [
              459,
              594
            ],
            "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "1",
              "-l",
              "1",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-1"
            ]
          },
          {
            "file": "analysis-page-renders/native-2.png",
            "bytes": 24449,
            "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 2,
            "role": "native",
            "renderDimensions": [
              576,
              441
            ],
            "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "2",
              "-l",
              "2",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-2"
            ]
          },
          {
            "file": "analysis-page-renders/native-3.png",
            "bytes": 23399,
            "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 3,
            "role": "native",
            "renderDimensions": [
              594,
              459
            ],
            "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "3",
              "-l",
              "3",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-3"
            ]
          }
        ],
        "contactSheet": {
          "file": "analysis-bookmark-removal-contact-sheet.png",
          "bytes": 179058,
          "sha256": "bb5cd7950f1c5452b6f1ea2f8904cad3efeacb1af1b965d3c5621678e074579a"
        },
        "notProductUIOrReaderClickOrSecureErasureEvidence": true
      },
      "freezeBindings": [
        {
          "file": "input-freeze.json",
          "bytes": 1743,
          "sha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a",
          "fileIdentityRows": 6,
          "allUnmodified": true
        },
        {
          "file": "native-operation-freeze.json",
          "bytes": 2290,
          "sha256": "863aa52322e10be2a28e03ee3a59e525e241eaf65e8ad2f282e70b009df9afd1",
          "fileIdentityRows": 11,
          "allUnmodified": true
        }
      ],
      "countDefinitions": {
        "inputFreezeFileIdentityRows": 6,
        "nativeFreezeFileIdentityRows": 11,
        "priorPreparationPeerChecksReportedByRoot": 6,
        "fileRowsAndPeerCheckGroupNotInterchangeable": true,
        "oldInputDescriptionCountNotInvented": true,
        "noOldOrIndependentCountsAdded": true
      },
      "limitations": [
        "OnlyoneselfauthoredthreepagePDF withthreeL1bookmarksandoneinternalLink",
        "Activecatalogoutlineabsence isnot asecure erasureorhistoryobject-removaltest",
        "Threenativepages matchtext,encoded/decodedContents,boundedResourcesandgeometryinthisexample;noallPDFattributeorbyteidenticalcontainer claim",
        "Page2Rotate90/CropBoxoffsetandpage3landscapearepreserved,notnormalizedorrepaired",
        "Internalpage1topage3destinationresolvesincurrentpagetree;noviewerclick/noallreadercompatibilityclaim",
        "Actualdeletehadnoconfirmmodal;priorplannedconfirmation remains historicalpending contract,notactualflow",
        "Three savedDOMTXT filesareidentityboundonly;thisanalysisdidnotreadtheirbodies orpublishrawDOMcopies",
        "Localrenderingsixpagesonly,notproductUI orreaderbookmark/linkclick evidence",
        "NoPDFrepair,rewrite,reexport,newproduct,reader,network,browser,R,testbuild,git orotherW actionbyanalysis"
      ],
      "pathScan": {
        "absoluteLocalPathCount": 0,
        "passed": true,
        "evidenceNames": "basenames/analysisrelative only"
      },
      "primaryRemovalObservationChecks": {
        "checks": 45,
        "passed": 45,
        "failed": 0,
        "inputFreezeFileIdentityConstraintsIncluded": 6,
        "nativeFreezeFileIdentityConstraintsIncluded": 11,
        "independentOrPrepPeerCountsAdded": false,
        "meaning": "Activecatalogtree/page/text/stream/resourcegeometryandactualoperationrecords,notsecureerasureorreaderbehavior guarantee"
      },
      "results": [
        {
          "name": "frozen_file_prepare-input.py",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_pdf-rotate-source.pdf",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_input-provenance.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_fixture-contract.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_source-contract.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_operation-contract.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_before-delete-dom.txt",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_before-delete.jpg",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_selected-delete-menu.jpg",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_after-delete-dom.txt",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_after-delete.jpg",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_after-save-dom.txt",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_after-save.jpg",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_bookmarks-removed-native.pdf",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_native-download-recovery.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_native-download-receipt.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "frozen_file_final-product-cleanup.json",
          "passed": true,
          "actual": true,
          "expected": true
        },
        {
          "name": "source_original_hash",
          "passed": true,
          "actual": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
          "expected": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
        },
        {
          "name": "native_download_hash",
          "passed": true,
          "actual": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
          "expected": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0"
        },
        {
          "name": "source_and_native_three_pages",
          "passed": true,
          "actual": [
            3,
            3
          ],
          "expected": [
            3,
            3
          ]
        },
        {
          "name": "source_three_active_outline_titles",
          "passed": true,
          "actual": [
            "第一页",
            "需要转正的第二页",
            "横向第三页"
          ],
          "expected": [
            "第一页",
            "需要转正的第二页",
            "横向第三页"
          ]
        },
        {
          "name": "native_catalog_has_no_Outlines_key",
          "passed": true,
          "actual": false,
          "expected": false
        },
        {
          "name": "native_reachable_outline_chain_is_empty",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "native_reader_outline_empty_secondary_agreement",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "page1_text_raw_decoded_stream_resource_geometry_identity",
          "passed": true,
          "actual": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          },
          "expected": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "name": "page2_text_raw_decoded_stream_resource_geometry_identity",
          "passed": true,
          "actual": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          },
          "expected": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "name": "page3_text_raw_decoded_stream_resource_geometry_identity",
          "passed": true,
          "actual": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          },
          "expected": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "name": "retained_page1_link_current_target_page3",
          "passed": true,
          "actual": 3,
          "expected": 3
        },
        {
          "name": "retained_link_annotation_P_current_page1",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_uploadActions",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_inputFiles",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_selectAllActions",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_moreMenuActions",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_deleteSelectedActions",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_deleteConfirmDialogObserved",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_operation_saveExportActions",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_nativePDFDownloadClicks",
          "passed": true,
          "actual": 1,
          "expected": 1
        },
        {
          "name": "actual_operation_secondDownloadClick",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_operation_continueEditingClicks",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_operation_readerBookmarkClicks",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_operation_readerInternalLinkClicks",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_operation_secondRuns",
          "passed": true,
          "actual": 0,
          "expected": 0
        },
        {
          "name": "actual_UI_empty_save_available_without_confirm",
          "passed": true,
          "actual": [
            "共 0 项",
            true,
            false
          ],
          "expected": [
            "共 0 项",
            true,
            false
          ]
        },
        {
          "name": "all_task_tabs_closed",
          "passed": true,
          "actual": [],
          "expected": []
        },
        {
          "name": "analysis_no_local_absolute_paths",
          "passed": true,
          "actual": 0,
          "expected": 0
        }
      ]
    },
    "analysis-independent-checks.json": {
      "schema": "independent-native-PDF-remove-bookmarks-checks-v1",
      "method": "Only bound source/nativePDF and safe operation records. Strict boundedpypdf activecatalog First/Next outline walk, page text/direct encodeddecodedstreambytes and selected font/image resource checks, currentpage-tree Link destination mapping; no history/xref enumeration, visual render or reader actions.",
      "files": {
        "source": {
          "basename": "pdf-rotate-source.pdf",
          "bytes": 53991,
          "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
        },
        "native": {
          "basename": "bookmarks-removed-native.pdf",
          "bytes": 51474,
          "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0"
        }
      },
      "reference_source_validation": {
        "total": 23,
        "passed": 23,
        "failed": 0,
        "checks": [
          {
            "id": "source_exact_frozen_raw_bytes_SHA256",
            "passed": true
          },
          {
            "id": "source_raw_size_under2MiB",
            "passed": true,
            "observed": 53991
          },
          {
            "id": "source_PDF_signature_EOF",
            "passed": true
          },
          {
            "id": "source_unencrypted_no_authentication",
            "passed": true
          },
          {
            "id": "source_page_count_finite",
            "passed": true,
            "observed": 3
          },
          {
            "id": "source_active_First_Next_titles_agree_with_reader_outline",
            "passed": true
          },
          {
            "id": "source_page1_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-1"
            ]
          },
          {
            "id": "source_page1_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "source_page1_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "source_page1_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "source_page1_annotations_finite",
            "passed": true,
            "observed": 1
          },
          {
            "id": "source_page2_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-2"
            ]
          },
          {
            "id": "source_page2_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "source_page2_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "source_page2_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "source_page2_annotations_finite",
            "passed": true,
            "observed": 0
          },
          {
            "id": "source_page3_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-3"
            ]
          },
          {
            "id": "source_page3_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "source_page3_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "source_page3_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "source_page3_annotations_finite",
            "passed": true,
            "observed": 0
          },
          {
            "id": "source3pages_original_label_order",
            "passed": true
          },
          {
            "id": "source3active_outline_titles_pages",
            "passed": true
          }
        ]
      },
      "independent_native_validation": {
        "total": 46,
        "passed": 46,
        "failed": 0,
        "checks": [
          {
            "id": "native_exact_frozen_raw_bytes_SHA256",
            "passed": true
          },
          {
            "id": "native_raw_size_under2MiB",
            "passed": true,
            "observed": 51474
          },
          {
            "id": "native_PDF_signature_EOF",
            "passed": true
          },
          {
            "id": "native_unencrypted_no_authentication",
            "passed": true
          },
          {
            "id": "native_page_count_finite",
            "passed": true,
            "observed": 3
          },
          {
            "id": "native_active_First_Next_titles_agree_with_reader_outline",
            "passed": true
          },
          {
            "id": "native_page1_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-1"
            ]
          },
          {
            "id": "native_page1_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "native_page1_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "native_page1_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "native_page1_annotations_finite",
            "passed": true,
            "observed": 1
          },
          {
            "id": "native_page2_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-2"
            ]
          },
          {
            "id": "native_page2_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "native_page2_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "native_page2_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "native_page2_annotations_finite",
            "passed": true,
            "observed": 0
          },
          {
            "id": "native_page3_one_ROTATE_page_label",
            "passed": true,
            "observed": [
              "ROTATE-PAGE-3"
            ]
          },
          {
            "id": "native_page3_nonempty_contents_stream",
            "passed": true
          },
          {
            "id": "native_page3_two_fonts_one_embeddedimage",
            "passed": true
          },
          {
            "id": "native_page3_valid_Media_Crop_Rotate",
            "passed": true
          },
          {
            "id": "native_page3_annotations_finite",
            "passed": true,
            "observed": 0
          },
          {
            "id": "native_catalog_has_no_Outlines_key",
            "passed": true
          },
          {
            "id": "native_active_reachable_outline_chain_zero",
            "passed": true
          },
          {
            "id": "native_same3pages_order",
            "passed": true
          },
          {
            "id": "page1_full_extracted_text_direct_equal",
            "passed": true
          },
          {
            "id": "page1_encoded_decoded_Contents_direct_byte_equal",
            "passed": true
          },
          {
            "id": "page1_Media_Crop_Rotate_unchanged",
            "passed": true
          },
          {
            "id": "page1_selected_font_image_resource_facts_streams_direct_byte_equal",
            "passed": true
          },
          {
            "id": "page2_full_extracted_text_direct_equal",
            "passed": true
          },
          {
            "id": "page2_encoded_decoded_Contents_direct_byte_equal",
            "passed": true
          },
          {
            "id": "page2_Media_Crop_Rotate_unchanged",
            "passed": true
          },
          {
            "id": "page2_selected_font_image_resource_facts_streams_direct_byte_equal",
            "passed": true
          },
          {
            "id": "page3_full_extracted_text_direct_equal",
            "passed": true
          },
          {
            "id": "page3_encoded_decoded_Contents_direct_byte_equal",
            "passed": true
          },
          {
            "id": "page3_Media_Crop_Rotate_unchanged",
            "passed": true
          },
          {
            "id": "page3_selected_font_image_resource_facts_streams_direct_byte_equal",
            "passed": true
          },
          {
            "id": "native_single_page1_link_targets_current_page3_structure",
            "passed": true
          },
          {
            "id": "link_rectangle_destination_owner_structure_matches_source",
            "passed": true
          },
          {
            "id": "receipt_one_upload_selectall_menu_delete_save_download",
            "passed": true
          },
          {
            "id": "receipt_three_selected_then_UI_zero_items",
            "passed": true
          },
          {
            "id": "receipt_no_confirmation_modal",
            "passed": true
          },
          {
            "id": "receipt_no_continue_reader_link_or_secondrun",
            "passed": true
          },
          {
            "id": "receipt_native_raw_identity_matches",
            "passed": true
          },
          {
            "id": "receipt10s_event_timeout_no_retry",
            "passed": true
          },
          {
            "id": "receipt_native_copied_without_rewrite",
            "passed": true
          },
          {
            "id": "receipt_tabs_closed_server_notrunning",
            "passed": true
          }
        ]
      },
      "PDFs": {
        "source": {
          "strict_parser": true,
          "parser_warnings": [],
          "page_count": 3,
          "active_outline": {
            "catalog_keys": [
              "/Outlines",
              "/Pages",
              "/Type"
            ],
            "catalog_Outlines_key_present": true,
            "catalog_outline_reference": "19 0 R",
            "active_root_dictionary_count_value": 3,
            "active_root_First_present": true,
            "active_root_Last_present": true,
            "reachable_entry_count": 3,
            "reachable_entries": [
              {
                "reference": "18 0 R",
                "title": "第一页",
                "level": 1,
                "destination_page_reference": "4 0 R",
                "destination_local_page_one_based": 1,
                "has_child_First": false,
                "has_Next": true
              },
              {
                "reference": "21 0 R",
                "title": "需要转正的第二页",
                "level": 1,
                "destination_page_reference": "13 0 R",
                "destination_local_page_one_based": 2,
                "has_child_First": false,
                "has_Next": true
              },
              {
                "reference": "23 0 R",
                "title": "横向第三页",
                "level": 1,
                "destination_page_reference": "15 0 R",
                "destination_local_page_one_based": 3,
                "has_child_First": false,
                "has_Next": false
              }
            ],
            "reader_outline_title_count": 3,
            "bounded_walk": "Only catalog-reachable Outlines First/Next chains; no xref/history enumeration"
          },
          "pages": [
            {
              "local_page_one_based": 1,
              "page_reference": "4 0 R",
              "source_page_label": "ROTATE-PAGE-1",
              "full_extracted_text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
              "text_sha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
              "MediaBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "CropBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "effective_Rotate": 0,
              "contents_streams": [
                {
                  "encoded_bytes": 545,
                  "encoded_sha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                  "decoded_bytes": 1019,
                  "decoded_sha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 1019,
              "combined_decoded_contents_sha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": [
                {
                  "subtype": "/Link",
                  "rectangle": [
                    54.0,
                    486.0,
                    285.0,
                    510.0
                  ],
                  "border": [
                    0.0,
                    0.0,
                    0.0
                  ],
                  "destination_type": "/Fit",
                  "target_reference": "15 0 R",
                  "target_is_in_active_page_tree": true,
                  "target_local_page_one_based": 3,
                  "annotation_P_reference": "4 0 R",
                  "annotation_P_local_page_one_based": 1,
                  "reader_click_performed": false
                }
              ]
            },
            {
              "local_page_one_based": 2,
              "page_reference": "13 0 R",
              "source_page_label": "ROTATE-PAGE-2",
              "full_extracted_text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
              "text_sha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
              "MediaBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "CropBox": [
                12.0,
                12.0,
                600.0,
                780.0
              ],
              "effective_Rotate": 90,
              "contents_streams": [
                {
                  "encoded_bytes": 507,
                  "encoded_sha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                  "decoded_bytes": 917,
                  "decoded_sha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 917,
              "combined_decoded_contents_sha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": []
            },
            {
              "local_page_one_based": 3,
              "page_reference": "15 0 R",
              "source_page_label": "ROTATE-PAGE-3",
              "full_extracted_text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
              "text_sha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
              "MediaBox": [
                0.0,
                0.0,
                792.0,
                612.0
              ],
              "CropBox": [
                0.0,
                0.0,
                792.0,
                612.0
              ],
              "effective_Rotate": 0,
              "contents_streams": [
                {
                  "encoded_bytes": 506,
                  "encoded_sha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                  "decoded_bytes": 917,
                  "decoded_sha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 917,
              "combined_decoded_contents_sha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": []
            }
          ],
          "reader_or_visual_rendering_performed": false
        },
        "native": {
          "strict_parser": true,
          "parser_warnings": [],
          "page_count": 3,
          "active_outline": {
            "catalog_keys": [
              "/Pages",
              "/Type"
            ],
            "catalog_Outlines_key_present": false,
            "catalog_outline_reference": null,
            "active_root_dictionary_count_value": null,
            "active_root_First_present": false,
            "active_root_Last_present": false,
            "reachable_entry_count": 0,
            "reachable_entries": [],
            "reader_outline_title_count": 0,
            "bounded_walk": "Only catalog-reachable Outlines First/Next chains; no xref/history enumeration"
          },
          "pages": [
            {
              "local_page_one_based": 1,
              "page_reference": "4 0 R",
              "source_page_label": "ROTATE-PAGE-1",
              "full_extracted_text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
              "text_sha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
              "MediaBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "CropBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "effective_Rotate": 0,
              "contents_streams": [
                {
                  "encoded_bytes": 545,
                  "encoded_sha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                  "decoded_bytes": 1019,
                  "decoded_sha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 1019,
              "combined_decoded_contents_sha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": [
                {
                  "subtype": "/Link",
                  "rectangle": [
                    54.0,
                    486.0,
                    285.0,
                    510.0
                  ],
                  "border": [
                    0.0,
                    0.0,
                    0.0
                  ],
                  "destination_type": "/Fit",
                  "target_reference": "15 0 R",
                  "target_is_in_active_page_tree": true,
                  "target_local_page_one_based": 3,
                  "annotation_P_reference": "4 0 R",
                  "annotation_P_local_page_one_based": 1,
                  "reader_click_performed": false
                }
              ]
            },
            {
              "local_page_one_based": 2,
              "page_reference": "13 0 R",
              "source_page_label": "ROTATE-PAGE-2",
              "full_extracted_text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
              "text_sha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
              "MediaBox": [
                0.0,
                0.0,
                612.0,
                792.0
              ],
              "CropBox": [
                12.0,
                12.0,
                600.0,
                780.0
              ],
              "effective_Rotate": 90,
              "contents_streams": [
                {
                  "encoded_bytes": 507,
                  "encoded_sha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                  "decoded_bytes": 917,
                  "decoded_sha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 917,
              "combined_decoded_contents_sha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": []
            },
            {
              "local_page_one_based": 3,
              "page_reference": "15 0 R",
              "source_page_label": "ROTATE-PAGE-3",
              "full_extracted_text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
              "text_sha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
              "MediaBox": [
                0.0,
                0.0,
                792.0,
                612.0
              ],
              "CropBox": [
                0.0,
                0.0,
                792.0,
                612.0
              ],
              "effective_Rotate": 0,
              "contents_streams": [
                {
                  "encoded_bytes": 506,
                  "encoded_sha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                  "decoded_bytes": 917,
                  "decoded_sha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5",
                  "filters": [
                    "/ASCII85Decode",
                    "/FlateDecode"
                  ]
                }
              ],
              "combined_decoded_contents_bytes": 917,
              "combined_decoded_contents_sha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5",
              "selected_resources": {
                "fonts": [
                  {
                    "resource_name": "/F1",
                    "type": "/Font",
                    "subtype": "/Type1",
                    "base_font": "/Helvetica",
                    "encoding": "/WinAnsiEncoding",
                    "first_char": null,
                    "last_char": null,
                    "widths_count": 0,
                    "widths_JSON_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
                    "selected_streams": [],
                    "descriptor_name": null
                  },
                  {
                    "resource_name": "/F2+0",
                    "type": "/Font",
                    "subtype": "/TrueType",
                    "base_font": "/AAAAAA+ArialUnicodeMS",
                    "encoding": "None",
                    "first_char": 0,
                    "last_char": 160,
                    "widths_count": 161,
                    "widths_JSON_sha256": "891e8f56439f8dd7ab1db02a247f9ad77dc7fb491b995ea4ae55f11f8d9c8eb7",
                    "selected_streams": [
                      {
                        "role": "ToUnicode",
                        "encoded_bytes": 963,
                        "encoded_sha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                        "decoded_bytes": 2290,
                        "decoded_sha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5",
                        "filters": [
                          "/FlateDecode"
                        ]
                      },
                      {
                        "role": "/FontFile2",
                        "encoded_bytes": 46566,
                        "encoded_sha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decoded_bytes": 68872,
                        "decoded_sha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2",
                        "filters": [
                          "/FlateDecode"
                        ]
                      }
                    ],
                    "descriptor_name": "/AAAAAA+ArialUnicodeMS"
                  }
                ],
                "font_resource_count": 2,
                "images": [
                  {
                    "resource_name": "/FormXob.30c975c8f5b72051d1101f575144cc51",
                    "subtype": "/Image",
                    "width": 80,
                    "height": 80,
                    "bits_per_component": 8,
                    "color_space": "/DeviceRGB",
                    "stream": {
                      "encoded_bytes": 157,
                      "encoded_sha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                      "decoded_bytes": 19200,
                      "decoded_sha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32",
                      "filters": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ]
                    }
                  }
                ],
                "image_resource_count": 1,
                "ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ]
              },
              "annotations": []
            }
          ],
          "reader_or_visual_rendering_performed": false
        }
      },
      "source_native_page_comparison": [
        {
          "local_page_one_based": 1,
          "source_label": "ROTATE-PAGE-1",
          "full_text_direct_equal": true,
          "encoded_decoded_contents_direct_byte_equal": true,
          "Media_Crop_Rotate_equal": true,
          "selected_font_image_streams_and_facts_direct_equal": true
        },
        {
          "local_page_one_based": 2,
          "source_label": "ROTATE-PAGE-2",
          "full_text_direct_equal": true,
          "encoded_decoded_contents_direct_byte_equal": true,
          "Media_Crop_Rotate_equal": true,
          "selected_font_image_streams_and_facts_direct_equal": true
        },
        {
          "local_page_one_based": 3,
          "source_label": "ROTATE-PAGE-3",
          "full_text_direct_equal": true,
          "encoded_decoded_contents_direct_byte_equal": true,
          "Media_Crop_Rotate_equal": true,
          "selected_font_image_streams_and_facts_direct_equal": true
        }
      ],
      "internal_link_structure": {
        "source": [
          {
            "source_page": 1,
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "border": [
              0.0,
              0.0,
              0.0
            ],
            "destination_type": "/Fit",
            "target_reference": "15 0 R",
            "target_is_in_active_page_tree": true,
            "target_local_page_one_based": 3,
            "annotation_P_reference": "4 0 R",
            "annotation_P_local_page_one_based": 1,
            "reader_click_performed": false
          }
        ],
        "native": [
          {
            "source_page": 1,
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "border": [
              0.0,
              0.0,
              0.0
            ],
            "destination_type": "/Fit",
            "target_reference": "15 0 R",
            "target_is_in_active_page_tree": true,
            "target_local_page_one_based": 3,
            "annotation_P_reference": "4 0 R",
            "annotation_P_local_page_one_based": 1,
            "reader_click_performed": false
          }
        ],
        "viewer_jump_tested": false
      },
      "finite_raw_known_title_probes": {
        "source": {
          "known_title_patterns": [
            {
              "known_source_title": "第一页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "需要转正的第二页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "横向第三页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            }
          ],
          "historical_objects_enumerated": false,
          "compressed_or_encoded_historical_objects_searched": false,
          "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
        },
        "native": {
          "known_title_patterns": [
            {
              "known_source_title": "第一页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "需要转正的第二页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "横向第三页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            }
          ],
          "historical_objects_enumerated": false,
          "compressed_or_encoded_historical_objects_searched": false,
          "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
        }
      },
      "operation_record_bindings": [
        {
          "basename": "native-download-receipt.json",
          "bytes": 2752,
          "sha256": "90151f406d455c31a9238a74b397f770b77e10ce52de4e379ddfa566322231b1"
        },
        {
          "basename": "native-download-recovery.json",
          "bytes": 665,
          "sha256": "2c748532041da7de94588b25a46f4d0e7cc736c624cb45f86f86038780d5de98"
        },
        {
          "basename": "final-product-cleanup.json",
          "bytes": 106,
          "sha256": "cdb165c2ae425ea291d0aff605209104cfc601c115ded58ae557b3c65e10de5d"
        }
      ],
      "parent_run_context": {
        "basis": "Parent operation receipts, not inferred from PDFcatalog",
        "upload": 1,
        "select_all3": 1,
        "more_delete_selected3": 1,
        "delete_confirmation_modal": 0,
        "UI_after_delete": "0items",
        "save_export": 1,
        "nativePDF_download": 1,
        "download": "10second event timeout; unique fresh nativefile recovered without repeat",
        "continue_editing_reader_link_secondrun": 0,
        "all_task_tabs_closed": true
      },
      "findings_and_limits": {
        "active_bookmarks": "Actual nativecatalog has noOutlines key, no catalog-reachableFirst/Next entries and parsedreaderoutline0. Activity removal is established for thisfile.",
        "pages": "All3page labels, full text and Contents bytes plus selected font/image resource streams preserved. page2 retainsRotate90/CropBox12,12,600,780;page3landscape792x612 retained, not corrected.",
        "body_not_selected": "The recorded deletion selected toolbar bookmark items; no paperTOC/bodytext deletion was performed.",
        "link": "The singlepage1 Link structurally targets activepage3 and itsowner points activepage1; no actualviewerlink jumptested.",
        "erasure": "Activeoutline0 is not secureerasure, removal of allhistoricalobjects, or proof oldtitle strings cannot remain. Only3known rawpattern probes are reported; no compressedhistory search or security conclusion.",
        "visual": "Content/resourceidentity does not establish everyviewer rendering, allmetadata/signature/form retention or everyPDFcompatibility.",
        "scope": "One self-authored public3page PDF, one toolbar delete/export run only."
      },
      "scope": {
        "count_isolation": "Reference source and currentnative checks separately generated; input6/native11 identityrows and parentreportedpreppeer6 are not added",
        "input_native_freezes_receipts_modified": false,
        "new_PDFs_images_render_auth_or_viewer_actions": 0,
        "product_browser_network_git_buildtest_operations": 0,
        "other_workspaces_private_material_read": false
      },
      "verifier": {
        "basename": "analysis-independent-verify.py",
        "sha256": "eb958a4528db027d846c6a4ff87628ee50037b9981ac76dd736598e9d676008f"
      },
      "passed": true,
      "path_scan": {
        "absolute_path_count": 0,
        "passed": true,
        "evidence_names": "Basenames only; arbitrary Downloads paths omitted"
      }
    },
    "analysis-summary.json": {
      "stage": "verified_one_native_PDF_active_bookmark_removal_and_retained_pages",
      "checkedAt": "2026-10-18 Asia/Shanghai",
      "source": {
        "file": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
        "pageCount": 3,
        "pages": [
          {
            "localPage": 1,
            "pageReference": [
              4,
              0
            ],
            "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
            "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
            "sourceMarkers": [
              "ROTATE-PAGE-1"
            ],
            "contentStreams": [
              {
                "encodedBytes": 545,
                "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                "decodedBytes": 1019,
                "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "Rotate": 0,
            "annotations": [
              {
                "subtype": "/Link",
                "rectangle": [
                  54.0,
                  486.0,
                  285.0,
                  510.0
                ],
                "targetReference": [
                  15,
                  0
                ],
                "destinationLocalPageInCurrentTree": 3,
                "annotationPReference": [
                  4,
                  0
                ],
                "annotationPLocalPageInCurrentTree": 1,
                "actionSubtype": null,
                "readerClicked": false
              }
            ]
          },
          {
            "localPage": 2,
            "pageReference": [
              13,
              0
            ],
            "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
            "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
            "sourceMarkers": [
              "ROTATE-PAGE-2"
            ],
            "contentStreams": [
              {
                "encodedBytes": 507,
                "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                "decodedBytes": 917,
                "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              12.0,
              12.0,
              600.0,
              780.0
            ],
            "Rotate": 90,
            "annotations": []
          },
          {
            "localPage": 3,
            "pageReference": [
              15,
              0
            ],
            "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
            "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
            "sourceMarkers": [
              "ROTATE-PAGE-3"
            ],
            "contentStreams": [
              {
                "encodedBytes": 506,
                "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                "decodedBytes": 917,
                "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "CropBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "Rotate": 0,
            "annotations": []
          }
        ],
        "activeOutline": {
          "catalogKeys": [
            "/Outlines",
            "/Pages",
            "/Type"
          ],
          "catalogOutlinesKeyPresent": true,
          "outlineRootReference": [
            19,
            0
          ],
          "outlineRootCount": 3,
          "reachableFirstNextTree": [
            {
              "title": "第一页",
              "level": 1,
              "nodeReference": null,
              "destinationLocalPage": 1
            },
            {
              "title": "需要转正的第二页",
              "level": 1,
              "nodeReference": [
                21,
                0
              ],
              "destinationLocalPage": 2
            },
            {
              "title": "横向第三页",
              "level": 1,
              "nodeReference": [
                23,
                0
              ],
              "destinationLocalPage": 3
            }
          ],
          "reachableNodeCount": 3,
          "pypdfTopLevelOutlineCount": 3,
          "notHistoryOrStringErasureAudit": true
        },
        "readerWarnings": []
      },
      "native": {
        "file": "bookmarks-removed-native.pdf",
        "bytes": 51474,
        "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
        "pageCount": 3,
        "pages": [
          {
            "localPage": 1,
            "pageReference": [
              4,
              0
            ],
            "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
            "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
            "sourceMarkers": [
              "ROTATE-PAGE-1"
            ],
            "contentStreams": [
              {
                "encodedBytes": 545,
                "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
                "decodedBytes": 1019,
                "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "Rotate": 0,
            "annotations": [
              {
                "subtype": "/Link",
                "rectangle": [
                  54.0,
                  486.0,
                  285.0,
                  510.0
                ],
                "targetReference": [
                  15,
                  0
                ],
                "destinationLocalPageInCurrentTree": 3,
                "annotationPReference": [
                  4,
                  0
                ],
                "annotationPLocalPageInCurrentTree": 1,
                "actionSubtype": null,
                "readerClicked": false
              }
            ]
          },
          {
            "localPage": 2,
            "pageReference": [
              13,
              0
            ],
            "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
            "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
            "sourceMarkers": [
              "ROTATE-PAGE-2"
            ],
            "contentStreams": [
              {
                "encodedBytes": 507,
                "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
                "decodedBytes": 917,
                "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              612.0,
              792.0
            ],
            "CropBox": [
              12.0,
              12.0,
              600.0,
              780.0
            ],
            "Rotate": 90,
            "annotations": []
          },
          {
            "localPage": 3,
            "pageReference": [
              15,
              0
            ],
            "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
            "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
            "sourceMarkers": [
              "ROTATE-PAGE-3"
            ],
            "contentStreams": [
              {
                "encodedBytes": 506,
                "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
                "decodedBytes": 917,
                "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
              }
            ],
            "resources": {
              "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
              "reachableNodesVisited": 223,
              "dictionaryAndEncodedDecodedResourceStreams": {
                "/Font": {
                  "/F1": {
                    "/BaseFont": "/Helvetica",
                    "/Encoding": "/WinAnsiEncoding",
                    "/Name": "/F1",
                    "/Subtype": "/Type1",
                    "/Type": "/Font"
                  },
                  "/F2+0": {
                    "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                    "/FirstChar": "0",
                    "/FontDescriptor": {
                      "/Ascent": "728.0273",
                      "/CapHeight": "728.0273",
                      "/Descent": "-209.9609",
                      "/Flags": "4",
                      "/FontBBox": [
                        "-1011.23",
                        "-329.5898",
                        "2260.254",
                        "1078.125"
                      ],
                      "/FontFile2": {
                        "dictionary": {
                          "/Filter": [
                            "/FlateDecode"
                          ],
                          "/Length1": "68872"
                        },
                        "encodedBytes": 46566,
                        "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                        "decodedBytes": 68872,
                        "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                      },
                      "/FontName": "/AAAAAA+ArialUnicodeMS",
                      "/ItalicAngle": "0",
                      "/MissingWidth": "1000",
                      "/StemV": "87",
                      "/Type": "/FontDescriptor"
                    },
                    "/LastChar": "160",
                    "/Name": "/F2+0",
                    "/Subtype": "/TrueType",
                    "/ToUnicode": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ]
                      },
                      "encodedBytes": 963,
                      "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                      "decodedBytes": 2290,
                      "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                    },
                    "/Type": "/Font",
                    "/Widths": [
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "712.8906",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "277.832",
                      "277.832",
                      "354.9805",
                      "556.1523",
                      "556.1523",
                      "889.1602",
                      "666.9922",
                      "190.918",
                      "333.0078",
                      "333.0078",
                      "389.1602",
                      "583.9844",
                      "277.832",
                      "333.0078",
                      "277.832",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "277.832",
                      "583.9844",
                      "583.9844",
                      "583.9844",
                      "556.1523",
                      "1015.137",
                      "666.9922",
                      "666.9922",
                      "722.168",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "777.832",
                      "722.168",
                      "277.832",
                      "500",
                      "666.9922",
                      "556.1523",
                      "833.0078",
                      "722.168",
                      "777.832",
                      "666.9922",
                      "777.832",
                      "722.168",
                      "666.9922",
                      "610.8398",
                      "722.168",
                      "666.9922",
                      "943.8477",
                      "666.9922",
                      "666.9922",
                      "610.8398",
                      "277.832",
                      "277.832",
                      "277.832",
                      "469.2383",
                      "500",
                      "333.0078",
                      "556.1523",
                      "556.1523",
                      "500",
                      "556.1523",
                      "556.1523",
                      "277.832",
                      "556.1523",
                      "556.1523",
                      "222.168",
                      "222.168",
                      "500",
                      "222.168",
                      "833.0078",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "556.1523",
                      "333.0078",
                      "500",
                      "277.832",
                      "556.1523",
                      "500",
                      "722.168",
                      "500",
                      "500",
                      "500",
                      "333.9844",
                      "259.7656",
                      "333.9844",
                      "583.9844",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000",
                      "1000"
                    ]
                  }
                },
                "/ProcSet": [
                  "/PDF",
                  "/Text",
                  "/ImageB",
                  "/ImageC",
                  "/ImageI"
                ],
                "/XObject": {
                  "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                    "dictionary": {
                      "/BitsPerComponent": "8",
                      "/ColorSpace": "/DeviceRGB",
                      "/Filter": [
                        "/ASCII85Decode",
                        "/FlateDecode"
                      ],
                      "/Height": "80",
                      "/Subtype": "/Image",
                      "/Type": "/XObject",
                      "/Width": "80"
                    },
                    "encodedBytes": 157,
                    "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                    "decodedBytes": 19200,
                    "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                  }
                }
              },
              "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
            },
            "MediaBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "CropBox": [
              0.0,
              0.0,
              792.0,
              612.0
            ],
            "Rotate": 0,
            "annotations": []
          }
        ],
        "activeOutline": {
          "catalogKeys": [
            "/Pages",
            "/Type"
          ],
          "catalogOutlinesKeyPresent": false,
          "outlineRootReference": null,
          "outlineRootCount": null,
          "reachableFirstNextTree": [],
          "reachableNodeCount": 0,
          "pypdfTopLevelOutlineCount": 0,
          "notHistoryOrStringErasureAudit": true
        },
        "readerWarnings": []
      },
      "analysisReports": [
        {
          "file": "analysis-pdf-checks.json",
          "bytes": 77020,
          "sha256": "5a538e6f7958d17dcacf91af847ef924d75dd5fb6c896f36f75744e6185815d9"
        },
        {
          "file": "analysis-independent-checks.json",
          "bytes": 47035,
          "sha256": "64a1efb147dce19f3185172d8c74182d03af058198a6c712b3431eb22e9a899c"
        },
        {
          "file": "analysis-check-native-removal.py",
          "bytes": 18629,
          "sha256": "0a2d079cb009f518d82f45a91a920deb2a088e1a177af5b8a30033d1c58fa2d2"
        },
        {
          "file": "analysis-independent-verify.py",
          "bytes": 21629,
          "sha256": "eb958a4528db027d846c6a4ff87628ee50037b9981ac76dd736598e9d676008f"
        }
      ],
      "primaryRemovalObservationChecks": {
        "checks": 45,
        "passed": 45,
        "failed": 0,
        "inputFreezeFileIdentityConstraintsIncluded": 6,
        "nativeFreezeFileIdentityConstraintsIncluded": 11,
        "independentOrPrepPeerCountsAdded": false,
        "meaning": "Activecatalogtree/page/text/stream/resourcegeometryandactualoperationrecords,notsecureerasureorreaderbehavior guarantee"
      },
      "independentNativeObservationChecks": {
        "total": 46,
        "passed": 46,
        "failed": 0
      },
      "independentReferenceSourceChecks": {
        "total": 23,
        "passed": 23,
        "failed": 0
      },
      "countDefinitions": {
        "inputFreezeFileIdentityRows": 6,
        "nativeFreezeFileIdentityRows": 11,
        "priorPreparationPeerChecksReportedByRoot": 6,
        "fileRowsAndPeerCheckGroupNotInterchangeable": true,
        "oldInputDescriptionCountNotInvented": true,
        "noOldOrIndependentCountsAdded": true
      },
      "checkCountsNotCombined": true,
      "boundedTraversalBudgets": {
        "PDFBytes": 1048576,
        "PDFCount": 2,
        "pagesPerPDF": 4,
        "reachableOutlineNodes": 16,
        "outlineDepth": 4,
        "resourceNodesPerPage": 256,
        "resourceDepth": 16,
        "renderPages": 6
      },
      "activeOutlineFinding": {
        "sourceActiveCount": 3,
        "nativeCatalogOutlinesPresent": false,
        "nativeReachableCount": 0,
        "boundedCatalogFirstNextTraversalPerformed": true,
        "readerOutlineEmptyAlsoAgrees": true,
        "deletionNotMerelyUIEmptyObservation": true
      },
      "pageComparisons": [
        {
          "page": 1,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "page": 2,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        },
        {
          "page": 3,
          "equalities": {
            "text": true,
            "encodedContents": true,
            "decodedContents": true,
            "boundedResolvedResources": true,
            "MediaBox": true,
            "CropBox": true,
            "Rotate": true,
            "markerOrder": true
          }
        }
      ],
      "retainedInternalLinkStructuralObservation": {
        "source": [
          {
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "targetReference": [
              15,
              0
            ],
            "destinationLocalPageInCurrentTree": 3,
            "annotationPReference": [
              4,
              0
            ],
            "annotationPLocalPageInCurrentTree": 1,
            "actionSubtype": null,
            "readerClicked": false
          }
        ],
        "native": [
          {
            "subtype": "/Link",
            "rectangle": [
              54.0,
              486.0,
              285.0,
              510.0
            ],
            "targetReference": [
              15,
              0
            ],
            "destinationLocalPageInCurrentTree": 3,
            "annotationPReference": [
              4,
              0
            ],
            "annotationPLocalPageInCurrentTree": 1,
            "actionSubtype": null,
            "readerClicked": false
          }
        ],
        "nativeDestinationIsCurrentPage3": true,
        "nativeAnnotationPIsCurrentPage1": true,
        "readerClicks": 0,
        "clickSuccessNotEstablished": true
      },
      "historyErasureBoundary": {
        "historicalXrefObjectsOrGarbageNotAudited": true,
        "oldTitleStringAbsenceNotEstablished": true,
        "activeOutlineZeroDoesNotMeanNoOldTitleBytes": true,
        "noSecureErasureClaim": true,
        "noFullObjectOrRawStringHistorySweepByPrimary": true
      },
      "peerFiniteRawKnownTitleProbeScope": {
        "source": {
          "known_title_patterns": [
            {
              "known_source_title": "第一页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "需要转正的第二页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "横向第三页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            }
          ],
          "historical_objects_enumerated": false,
          "compressed_or_encoded_historical_objects_searched": false,
          "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
        },
        "native": {
          "known_title_patterns": [
            {
              "known_source_title": "第一页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "需要转正的第二页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            },
            {
              "known_source_title": "横向第三页",
              "literal_pattern_occurrences": {
                "UTF8_literal": 0,
                "UTF16BE_with_BOM_literal": 0,
                "UTF16BE_with_BOM_hex_upper": 0,
                "UTF16BE_with_BOM_hex_lower": 0
              }
            }
          ],
          "historical_objects_enumerated": false,
          "compressed_or_encoded_historical_objects_searched": false,
          "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
        }
      },
      "actualOperations": {
        "uploadActions": 1,
        "selectAllActions": 1,
        "selectedBookmarkCount": 3,
        "deleteSelectedActions": 1,
        "confirmationModalObserved": false,
        "saveExportActions": 1,
        "nativeDownloadClicks": 1,
        "downloadTimeoutMs": 10000,
        "secondDownloadClick": false,
        "continueEditingClicks": 0,
        "readerBookmarkOrLinkClicks": 0,
        "secondRuns": 0,
        "filenameChanged": false,
        "UIEmptyListSaveButtonAvailable": true,
        "actualOutputSizeText": "文件大小：50.27 KB",
        "allTaskTabsClosed": true
      },
      "localRendering": {
        "rendererVersion": "pdftoppm version 25.03.0",
        "dpi": 54,
        "cropBoxRespected": true,
        "pageBudget": 6,
        "pagesRendered": 6,
        "files": [
          {
            "file": "analysis-page-renders/source-1.png",
            "bytes": 25340,
            "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
            "PDF": "pdf-rotate-source.pdf",
            "page": 1,
            "role": "source",
            "renderDimensions": [
              459,
              594
            ],
            "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "1",
              "-l",
              "1",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-1"
            ]
          },
          {
            "file": "analysis-page-renders/source-2.png",
            "bytes": 24449,
            "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
            "PDF": "pdf-rotate-source.pdf",
            "page": 2,
            "role": "source",
            "renderDimensions": [
              576,
              441
            ],
            "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "2",
              "-l",
              "2",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-2"
            ]
          },
          {
            "file": "analysis-page-renders/source-3.png",
            "bytes": 23399,
            "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
            "PDF": "pdf-rotate-source.pdf",
            "page": 3,
            "role": "source",
            "renderDimensions": [
              594,
              459
            ],
            "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "3",
              "-l",
              "3",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "pdf-rotate-source.pdf",
              "analysis-page-renders/source-3"
            ]
          },
          {
            "file": "analysis-page-renders/native-1.png",
            "bytes": 25340,
            "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 1,
            "role": "native",
            "renderDimensions": [
              459,
              594
            ],
            "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "1",
              "-l",
              "1",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-1"
            ]
          },
          {
            "file": "analysis-page-renders/native-2.png",
            "bytes": 24449,
            "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 2,
            "role": "native",
            "renderDimensions": [
              576,
              441
            ],
            "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "2",
              "-l",
              "2",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-2"
            ]
          },
          {
            "file": "analysis-page-renders/native-3.png",
            "bytes": 23399,
            "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
            "PDF": "bookmarks-removed-native.pdf",
            "page": 3,
            "role": "native",
            "renderDimensions": [
              594,
              459
            ],
            "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
            "exitCode": 0,
            "stderr": "",
            "argumentsAfterExecutable": [
              "-f",
              "3",
              "-l",
              "3",
              "-singlefile",
              "-cropbox",
              "-r",
              "54",
              "-png",
              "bookmarks-removed-native.pdf",
              "analysis-page-renders/native-3"
            ]
          }
        ],
        "contactSheet": {
          "file": "analysis-bookmark-removal-contact-sheet.png",
          "bytes": 179058,
          "sha256": "bb5cd7950f1c5452b6f1ea2f8904cad3efeacb1af1b965d3c5621678e074579a"
        },
        "notProductUIOrReaderClickOrSecureErasureEvidence": true
      },
      "rootFigureReview": {
        "rootViewedExactContactSheet": true,
        "LOCAL3to0SourceAndNativeThreePagesCorrectlyAttributed": true,
        "RotateCropBoxAndLandscapeShownAsStored": true,
        "nonUIReaderAndSecureErasureBoundariesClear": true,
        "notAnExtraProductRunOrNumericCheck": true
      },
      "priorFreezeBindings": [
        {
          "file": "input-freeze.json",
          "bytes": 1743,
          "sha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a",
          "fileIdentityRows": 6,
          "allUnmodified": true
        },
        {
          "file": "native-operation-freeze.json",
          "bytes": 2290,
          "sha256": "863aa52322e10be2a28e03ee3a59e525e241eaf65e8ad2f282e70b009df9afd1",
          "fileIdentityRows": 11,
          "allUnmodified": true
        }
      ],
      "inputSixAndNativeElevenFileRowsStillUnmodified": true,
      "rawNativePDFNotRewrittenOrRepairedByAnalysis": true,
      "readerBookmarkAndInternalLinkClicksObserved": 0,
      "newProductOrReaderOrBrowserOrNetworkActionsByAnalysis": 0,
      "noRRuntimeBuildTestsGitOrOtherTaskWrites": true,
      "explanationChinese": [
        "一次上传、全选三项、更多菜单删除选中(3)，实际没有确认弹窗。UI共0项后仍能保存并导出，原生PDF已下载；旧准备合同的确认步骤仅保留历史计划，不写成本轮实际。",
        "活动Catalog不含/Outlines，可达First/Next书签链为0，pypdf读取outline也为空；不是只看到工具列表变空。",
        "原三页正文、原始编码和解码内容流、有限页Resources及嵌入流、页序标记、MediaBox/CropBox/Rotate逐页与成品保持本例一致。第2页90度及裁剪偏移、第3页横向均未自动转正或改变。",
        "原第1页内部链接在成品仍结构性指向当前第3页，注释/P指向当前第1页；没有阅读器点击，不能据此保证所有阅读器跳转。",
        "只检查活动树及限定页内容／资源。没有扫描全部历史对象或垃圾，也不因活动书签为0就认定旧标题字符串不存在或已安全擦除。",
        "独立有限原始字节标题探针在原稿本身也未命中，不能作为删除后安全擦除或字符串彻底不存在的证据。",
        "联系图为固定六页按真实CropBox/Rotate本地渲染，非产品界面、阅读器书签点击或安全擦除测试。",
        "一次保存下载事件超时后恢复唯一新鲜匹配文件，未补点、未继续编辑、未第二次导出；没有产品或PDF修复。"
      ],
      "limitations": [
        "OnlyoneselfauthoredthreepagePDF withthreeL1bookmarksandoneinternalLink",
        "Activecatalogoutlineabsence isnot asecure erasureorhistoryobject-removaltest",
        "Threenativepages matchtext,encoded/decodedContents,boundedResourcesandgeometryinthisexample;noallPDFattributeorbyteidenticalcontainer claim",
        "Page2Rotate90/CropBoxoffsetandpage3landscapearepreserved,notnormalizedorrepaired",
        "Internalpage1topage3destinationresolvesincurrentpagetree;noviewerclick/noallreadercompatibilityclaim",
        "Actualdeletehadnoconfirmmodal;priorplannedconfirmation remains historicalpending contract,notactualflow",
        "Three savedDOMTXT filesareidentityboundonly;thisanalysisdidnotreadtheirbodies orpublishrawDOMcopies",
        "Localrenderingsixpagesonly,notproductUI orreaderbookmark/linkclick evidence",
        "NoPDFrepair,rewrite,reexport,newproduct,reader,network,browser,R,testbuild,git orotherW actionbyanalysis"
      ],
      "allReportedBoundedObservationChecksPassed": true,
      "secureErasureEstablished": false,
      "allReaderOrAllPDFAttributeCompatibilityEstablished": false,
      "passMeaning": "Finiteactiveoutlinetree/pagecontent/resource/geometryandrecordobservations foronepublicsample;notsecureerasureorreaderbehaviorguarantee",
      "pathScan": {
        "absoluteLocalPathCount": 0,
        "passed": true,
        "evidenceNames": "basenames/analysisrelative only"
      }
    },
    "analysis-freeze.json": {
      "stage": "W8_new_active_bookmark_removal_analysis_frozen",
      "checkedAt": "2026-10-18 Asia/Shanghai",
      "files": [
        {
          "file": "analysis-check-native-removal.py",
          "bytes": 18629,
          "sha256": "0a2d079cb009f518d82f45a91a920deb2a088e1a177af5b8a30033d1c58fa2d2"
        },
        {
          "file": "analysis-pdf-checks.json",
          "bytes": 77020,
          "sha256": "5a538e6f7958d17dcacf91af847ef924d75dd5fb6c896f36f75744e6185815d9"
        },
        {
          "file": "analysis-independent-verify.py",
          "bytes": 21629,
          "sha256": "eb958a4528db027d846c6a4ff87628ee50037b9981ac76dd736598e9d676008f"
        },
        {
          "file": "analysis-independent-checks.json",
          "bytes": 47035,
          "sha256": "64a1efb147dce19f3185172d8c74182d03af058198a6c712b3431eb22e9a899c"
        },
        {
          "file": "analysis-bookmark-removal-contact-sheet.png",
          "bytes": 179058,
          "sha256": "bb5cd7950f1c5452b6f1ea2f8904cad3efeacb1af1b965d3c5621678e074579a"
        },
        {
          "file": "analysis-finalize.py",
          "bytes": 7216,
          "sha256": "a5557b553ab537cd4750f85636a7b0f2d1b1b0e8c8e4a877f31f10b7d5ad995d"
        },
        {
          "file": "analysis-summary.json",
          "bytes": 74801,
          "sha256": "45d064c27db86f04986e1680cf97005aa273394b137613ea1c5c1b8b9f2d7acb"
        },
        {
          "file": "analysis-page-renders/source-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41"
        },
        {
          "file": "analysis-page-renders/source-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af"
        },
        {
          "file": "analysis-page-renders/source-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee"
        },
        {
          "file": "analysis-page-renders/native-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41"
        },
        {
          "file": "analysis-page-renders/native-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af"
        },
        {
          "file": "analysis-page-renders/native-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee"
        }
      ],
      "ownedNewAnalysisFilesOnly": true,
      "analysisTopLevelFiles": 7,
      "localRenderedPageFiles": 6,
      "inputSixAndNativeElevenOriginalFileRowsUnmodified": true,
      "nativePDFNotModifiedOrRepaired": true,
      "activeOutlineZeroNotHistoryErasureClaim": true,
      "readerClicks": 0,
      "productOrBrowserOrNetworkRunsByAnalysis": 0,
      "countsKeptSeparate": true,
      "noRRuntimeBuildTestsGitOtherTaskActions": true,
      "pathScan": {
        "absoluteLocalPathCount": 0,
        "passed": true,
        "evidenceNames": "basenames/analysisrelative only"
      }
    }
  },
  "originalSourceReportIdentities": [
    {
      "file": "fixture-contract.json",
      "bytes": 4375,
      "sha256": "2b690b8e3abc1aca6a95b746bf3c2cc667810bbcfbb2d0fbb0b8bf30a1c6e87d"
    },
    {
      "file": "source-contract.json",
      "bytes": 2291,
      "sha256": "787e96cf37f0121ae44d5f3efac96180808df7b5419e0abe0a5235a4cfe3cc57"
    },
    {
      "file": "operation-contract.json",
      "bytes": 1788,
      "sha256": "d94d4166b8351d9da2b081d6fd3f22dd32461b2ac40e2c34c64af3671ec308d2"
    },
    {
      "file": "input-provenance.json",
      "bytes": 1024,
      "sha256": "dfdf569ab0f4951c3b648e7fb4f544a2454d03f4128f260d26b5dee13a6653f6"
    },
    {
      "file": "native-download-receipt.json",
      "bytes": 2752,
      "sha256": "90151f406d455c31a9238a74b397f770b77e10ce52de4e379ddfa566322231b1"
    },
    {
      "file": "native-download-recovery.json",
      "bytes": 665,
      "sha256": "2c748532041da7de94588b25a46f4d0e7cc736c624cb45f86f86038780d5de98"
    },
    {
      "file": "native-operation-freeze.json",
      "bytes": 2290,
      "sha256": "863aa52322e10be2a28e03ee3a59e525e241eaf65e8ad2f282e70b009df9afd1"
    },
    {
      "file": "final-product-cleanup.json",
      "bytes": 106,
      "sha256": "cdb165c2ae425ea291d0aff605209104cfc601c115ded58ae557b3c65e10de5d"
    },
    {
      "file": "analysis-pdf-checks.json",
      "bytes": 77020,
      "sha256": "5a538e6f7958d17dcacf91af847ef924d75dd5fb6c896f36f75744e6185815d9"
    },
    {
      "file": "analysis-independent-checks.json",
      "bytes": 47035,
      "sha256": "64a1efb147dce19f3185172d8c74182d03af058198a6c712b3431eb22e9a899c"
    },
    {
      "file": "analysis-summary.json",
      "bytes": 74801,
      "sha256": "45d064c27db86f04986e1680cf97005aa273394b137613ea1c5c1b8b9f2d7acb"
    },
    {
      "file": "analysis-freeze.json",
      "bytes": 2829,
      "sha256": "efe089efc1fefcbe80ed45092c49a45960582c258a7aaace235946647e7538f6"
    },
    {
      "file": "input-freeze.json",
      "bytes": 1743,
      "sha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a"
    }
  ],
  "publicCopyChanges": [
    {
      "originalReport": {
        "file": "fixture-contract.json",
        "bytes": 4375,
        "sha256": "2b690b8e3abc1aca6a95b746bf3c2cc667810bbcfbb2d0fbb0b8bf30a1c6e87d"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "input",
            "path"
          ],
          "originalValueSHA256": "1c666191849f38ac03ea800832bbd03a4b9038fe4a0c0b75d0dfdca7fe335e36",
          "publicValue": "pdf-rotate-source.pdf",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 1,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "source-contract.json",
        "bytes": 2291,
        "sha256": "787e96cf37f0121ae44d5f3efac96180808df7b5419e0abe0a5235a4cfe3cc57"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "source_checkout"
          ],
          "originalValueSHA256": "373f1b5d4d059cacf4630478408c87b152f5a313a5b884ff2b19f766732a85f3",
          "publicValue": "tools-formatter-copy",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 1,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "operation-contract.json",
        "bytes": 1788,
        "sha256": "d94d4166b8351d9da2b081d6fd3f22dd32461b2ac40e2c34c64af3671ec308d2"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "input",
            "path"
          ],
          "originalValueSHA256": "1c666191849f38ac03ea800832bbd03a4b9038fe4a0c0b75d0dfdca7fe335e36",
          "publicValue": "pdf-rotate-source.pdf",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 1,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "input-provenance.json",
        "bytes": 1024,
        "sha256": "dfdf569ab0f4951c3b648e7fb4f544a2454d03f4128f260d26b5dee13a6653f6"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "source_repository"
          ],
          "originalValueSHA256": "5087a8f70f3ba57af321c26f8032dbb405e0150bbadf762a52e53d5a3c15efe6",
          "publicValue": "website-responsive-seo",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        },
        {
          "fieldPath": [
            "copy",
            "path"
          ],
          "originalValueSHA256": "1c666191849f38ac03ea800832bbd03a4b9038fe4a0c0b75d0dfdca7fe335e36",
          "publicValue": "pdf-rotate-source.pdf",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 2,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "native-download-receipt.json",
        "bytes": 2752,
        "sha256": "90151f406d455c31a9238a74b397f770b77e10ce52de4e379ddfa566322231b1"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "nativeDownload",
            "uniqueFreshMatch",
            "path"
          ],
          "originalValueSHA256": "22c925856d439a37fe6b0bc113d5e7668b56a2dd14f27607b0bf9dd14e7c03e1",
          "publicValue": "pdf-rotate-source_bookmarked.pdf",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 1,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "native-download-recovery.json",
        "bytes": 665,
        "sha256": "2c748532041da7de94588b25a46f4d0e7cc736c624cb45f86f86038780d5de98"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [
        {
          "fieldPath": [
            "uniqueFreshMatch",
            "path"
          ],
          "originalValueSHA256": "22c925856d439a37fe6b0bc113d5e7668b56a2dd14f27607b0bf9dd14e7c03e1",
          "publicValue": "pdf-rotate-source_bookmarked.pdf",
          "change": "absolute local filesystem path replaced by basename in complete public dictionary copy only"
        }
      ],
      "fieldReplacementCount": 1,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "native-operation-freeze.json",
        "bytes": 2290,
        "sha256": "863aa52322e10be2a28e03ee3a59e525e241eaf65e8ad2f282e70b009df9afd1"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "final-product-cleanup.json",
        "bytes": 106,
        "sha256": "cdb165c2ae425ea291d0aff605209104cfc601c115ded58ae557b3c65e10de5d"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "analysis-pdf-checks.json",
        "bytes": 77020,
        "sha256": "5a538e6f7958d17dcacf91af847ef924d75dd5fb6c896f36f75744e6185815d9"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "analysis-independent-checks.json",
        "bytes": 47035,
        "sha256": "64a1efb147dce19f3185172d8c74182d03af058198a6c712b3431eb22e9a899c"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "analysis-summary.json",
        "bytes": 74801,
        "sha256": "45d064c27db86f04986e1680cf97005aa273394b137613ea1c5c1b8b9f2d7acb"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    },
    {
      "originalReport": {
        "file": "analysis-freeze.json",
        "bytes": 2829,
        "sha256": "efe089efc1fefcbe80ed45092c49a45960582c258a7aaace235946647e7538f6"
      },
      "mode": "complete-dictionary-copy-with-only-listed-local-path-replacements",
      "fields": [],
      "fieldReplacementCount": 0,
      "originalBytesUnmodified": true
    }
  ],
  "inputFreezeProjection": {
    "originalFreeze": {
      "file": "input-freeze.json",
      "bytes": 1743,
      "sha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a"
    },
    "mode": "file-name-bytes-sha256-only-not-complete-original",
    "members": [
      {
        "name": "prepare-input.py",
        "bytes": 8052,
        "sha256": "ea6b11dc70d028d16c9eeba515a14ae6b3ea55fe2a903fd0672e055df62a2cfc"
      },
      {
        "name": "pdf-rotate-source.pdf",
        "bytes": 53991,
        "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc"
      },
      {
        "name": "input-provenance.json",
        "bytes": 1024,
        "sha256": "dfdf569ab0f4951c3b648e7fb4f544a2454d03f4128f260d26b5dee13a6653f6"
      },
      {
        "name": "fixture-contract.json",
        "bytes": 4375,
        "sha256": "2b690b8e3abc1aca6a95b746bf3c2cc667810bbcfbb2d0fbb0b8bf30a1c6e87d"
      },
      {
        "name": "source-contract.json",
        "bytes": 2291,
        "sha256": "787e96cf37f0121ae44d5f3efac96180808df7b5419e0abe0a5235a4cfe3cc57"
      },
      {
        "name": "operation-contract.json",
        "bytes": 1788,
        "sha256": "d94d4166b8351d9da2b081d6fd3f22dd32461b2ac40e2c34c64af3671ec308d2"
      }
    ],
    "omittedFields": [
      "members[*].path"
    ],
    "originalBytesUnmodified": true
  },
  "actualOperationProjection": {
    "uploadActions": 1,
    "selectAllActions": 1,
    "selectedBookmarkCount": 3,
    "deleteSelectedActions": 1,
    "confirmationModalObserved": false,
    "saveExportActions": 1,
    "nativeDownloadClicks": 1,
    "downloadTimeoutMs": 10000,
    "secondDownloadClick": false,
    "continueEditingClicks": 0,
    "readerBookmarkOrLinkClicks": 0,
    "secondRuns": 0,
    "filenameChanged": false,
    "UIEmptyListSaveButtonAvailable": true,
    "actualOutputSizeText": "文件大小：50.27 KB",
    "allTaskTabsClosed": true
  },
  "analysisSummary": {
    "stage": "verified_one_native_PDF_active_bookmark_removal_and_retained_pages",
    "checkedAt": "2026-10-18 Asia/Shanghai",
    "source": {
      "file": "pdf-rotate-source.pdf",
      "bytes": 53991,
      "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
      "pageCount": 3,
      "pages": [
        {
          "localPage": 1,
          "pageReference": [
            4,
            0
          ],
          "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
          "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
          "sourceMarkers": [
            "ROTATE-PAGE-1"
          ],
          "contentStreams": [
            {
              "encodedBytes": 545,
              "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
              "decodedBytes": 1019,
              "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "CropBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "Rotate": 0,
          "annotations": [
            {
              "subtype": "/Link",
              "rectangle": [
                54.0,
                486.0,
                285.0,
                510.0
              ],
              "targetReference": [
                15,
                0
              ],
              "destinationLocalPageInCurrentTree": 3,
              "annotationPReference": [
                4,
                0
              ],
              "annotationPLocalPageInCurrentTree": 1,
              "actionSubtype": null,
              "readerClicked": false
            }
          ]
        },
        {
          "localPage": 2,
          "pageReference": [
            13,
            0
          ],
          "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
          "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
          "sourceMarkers": [
            "ROTATE-PAGE-2"
          ],
          "contentStreams": [
            {
              "encodedBytes": 507,
              "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
              "decodedBytes": 917,
              "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "CropBox": [
            12.0,
            12.0,
            600.0,
            780.0
          ],
          "Rotate": 90,
          "annotations": []
        },
        {
          "localPage": 3,
          "pageReference": [
            15,
            0
          ],
          "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
          "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
          "sourceMarkers": [
            "ROTATE-PAGE-3"
          ],
          "contentStreams": [
            {
              "encodedBytes": 506,
              "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
              "decodedBytes": 917,
              "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            792.0,
            612.0
          ],
          "CropBox": [
            0.0,
            0.0,
            792.0,
            612.0
          ],
          "Rotate": 0,
          "annotations": []
        }
      ],
      "activeOutline": {
        "catalogKeys": [
          "/Outlines",
          "/Pages",
          "/Type"
        ],
        "catalogOutlinesKeyPresent": true,
        "outlineRootReference": [
          19,
          0
        ],
        "outlineRootCount": 3,
        "reachableFirstNextTree": [
          {
            "title": "第一页",
            "level": 1,
            "nodeReference": null,
            "destinationLocalPage": 1
          },
          {
            "title": "需要转正的第二页",
            "level": 1,
            "nodeReference": [
              21,
              0
            ],
            "destinationLocalPage": 2
          },
          {
            "title": "横向第三页",
            "level": 1,
            "nodeReference": [
              23,
              0
            ],
            "destinationLocalPage": 3
          }
        ],
        "reachableNodeCount": 3,
        "pypdfTopLevelOutlineCount": 3,
        "notHistoryOrStringErasureAudit": true
      },
      "readerWarnings": []
    },
    "native": {
      "file": "bookmarks-removed-native.pdf",
      "bytes": 51474,
      "sha256": "0b777289a6e10cce24ad516e34eea745196431eb87000be8a870903b5ef805a0",
      "pageCount": 3,
      "pages": [
        {
          "localPage": 1,
          "pageReference": [
            4,
            0
          ],
          "text": "Cedar 页面 1：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第1页；核对标记 ROTATE-PAGE-1。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-1\n跳到第3页（样例内部链接）\n",
          "textSha256": "ed0f2eda7289dcc0642eb0e350b1b5175c6753377f7c77d2586a1b8a9bd4b3c6",
          "sourceMarkers": [
            "ROTATE-PAGE-1"
          ],
          "contentStreams": [
            {
              "encodedBytes": 545,
              "encodedSha256": "43b565d31bb0e06028a84b3adaa577f0c05e65053f988f4d7668e736ed10bb4b",
              "decodedBytes": 1019,
              "decodedSha256": "9b91468a9be6d92168cbb78883ddf0b8284b7a065ff5bdd4c03a7a60a3ce1ccd"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "CropBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "Rotate": 0,
          "annotations": [
            {
              "subtype": "/Link",
              "rectangle": [
                54.0,
                486.0,
                285.0,
                510.0
              ],
              "targetReference": [
                15,
                0
              ],
              "destinationLocalPageInCurrentTree": 3,
              "annotationPReference": [
                4,
                0
              ],
              "annotationPLocalPageInCurrentTree": 1,
              "actionSubtype": null,
              "readerClicked": false
            }
          ]
        },
        {
          "localPage": 2,
          "pageReference": [
            13,
            0
          ],
          "text": "Cedar 页面 2：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第2页；核对标记 ROTATE-PAGE-2。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-2\n",
          "textSha256": "c7c1ab49cc64a4f223224adf841020f7024e62fd3e72f63c5aa4fd639fa4922a",
          "sourceMarkers": [
            "ROTATE-PAGE-2"
          ],
          "contentStreams": [
            {
              "encodedBytes": 507,
              "encodedSha256": "1d1e811fe8e47d6607f00c949c6399ada8b6dddf2406f371700b4b392cbd394a",
              "decodedBytes": 917,
              "decodedSha256": "4aabb35bddc3c7aa01c5db53d100272876980b217427bb8ab1cae940653b7758"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            612.0,
            792.0
          ],
          "CropBox": [
            12.0,
            12.0,
            600.0,
            780.0
          ],
          "Rotate": 90,
          "annotations": []
        },
        {
          "localPage": 3,
          "pageReference": [
            15,
            0
          ],
          "text": "Cedar 页面 3：顶部 ↑\n这是自编文字型PDF，文字可以选择。\n旋转改变页面方向，不改写这段正文。\n文件位置：第3页；核对标记 ROTATE-PAGE-3。\n底部还有文字与图片，请检查完整四边。\n四格原始图片对象\n底部标记 BOTTOM-3\n",
          "textSha256": "c057060690fc963fc36657a0b218afe528919882dfc49eecc04201117b8bc5b0",
          "sourceMarkers": [
            "ROTATE-PAGE-3"
          ],
          "contentStreams": [
            {
              "encodedBytes": 506,
              "encodedSha256": "d6148ce18f213b548ba4f95855f5e818a45206160721116c6719ffbefc45e600",
              "decodedBytes": 917,
              "decodedSha256": "3cd0f761c44c1469cc3ff2fdf948d7306c8955a87ebfaff054ccc8d91885c6b5"
            }
          ],
          "resources": {
            "canonicalResolvedResourceSha256": "43bc11869386a3eec8dad264d28e5bafa9455fc99a36950add2dc1872d39c0a1",
            "reachableNodesVisited": 223,
            "dictionaryAndEncodedDecodedResourceStreams": {
              "/Font": {
                "/F1": {
                  "/BaseFont": "/Helvetica",
                  "/Encoding": "/WinAnsiEncoding",
                  "/Name": "/F1",
                  "/Subtype": "/Type1",
                  "/Type": "/Font"
                },
                "/F2+0": {
                  "/BaseFont": "/AAAAAA+ArialUnicodeMS",
                  "/FirstChar": "0",
                  "/FontDescriptor": {
                    "/Ascent": "728.0273",
                    "/CapHeight": "728.0273",
                    "/Descent": "-209.9609",
                    "/Flags": "4",
                    "/FontBBox": [
                      "-1011.23",
                      "-329.5898",
                      "2260.254",
                      "1078.125"
                    ],
                    "/FontFile2": {
                      "dictionary": {
                        "/Filter": [
                          "/FlateDecode"
                        ],
                        "/Length1": "68872"
                      },
                      "encodedBytes": 46566,
                      "encodedSha256": "ac1883140208304ee3d73bf0eb539501214d6aff973326f8f2549f154c68ec90",
                      "decodedBytes": 68872,
                      "decodedSha256": "f5c5917acebb3773ff04e798414d515963390b3bb981476b9c8ef98d44a22fc2"
                    },
                    "/FontName": "/AAAAAA+ArialUnicodeMS",
                    "/ItalicAngle": "0",
                    "/MissingWidth": "1000",
                    "/StemV": "87",
                    "/Type": "/FontDescriptor"
                  },
                  "/LastChar": "160",
                  "/Name": "/F2+0",
                  "/Subtype": "/TrueType",
                  "/ToUnicode": {
                    "dictionary": {
                      "/Filter": [
                        "/FlateDecode"
                      ]
                    },
                    "encodedBytes": 963,
                    "encodedSha256": "6a484825264a5f7d1d9c26853fe195745665355617350efa1245b01c1a3a6c2f",
                    "decodedBytes": 2290,
                    "decodedSha256": "2f7cc474b5367ccf9ef361e0369a134e242bedfc1bd36a6e426843777a2486e5"
                  },
                  "/Type": "/Font",
                  "/Widths": [
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "712.8906",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "277.832",
                    "277.832",
                    "354.9805",
                    "556.1523",
                    "556.1523",
                    "889.1602",
                    "666.9922",
                    "190.918",
                    "333.0078",
                    "333.0078",
                    "389.1602",
                    "583.9844",
                    "277.832",
                    "333.0078",
                    "277.832",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "277.832",
                    "583.9844",
                    "583.9844",
                    "583.9844",
                    "556.1523",
                    "1015.137",
                    "666.9922",
                    "666.9922",
                    "722.168",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "777.832",
                    "722.168",
                    "277.832",
                    "500",
                    "666.9922",
                    "556.1523",
                    "833.0078",
                    "722.168",
                    "777.832",
                    "666.9922",
                    "777.832",
                    "722.168",
                    "666.9922",
                    "610.8398",
                    "722.168",
                    "666.9922",
                    "943.8477",
                    "666.9922",
                    "666.9922",
                    "610.8398",
                    "277.832",
                    "277.832",
                    "277.832",
                    "469.2383",
                    "500",
                    "333.0078",
                    "556.1523",
                    "556.1523",
                    "500",
                    "556.1523",
                    "556.1523",
                    "277.832",
                    "556.1523",
                    "556.1523",
                    "222.168",
                    "222.168",
                    "500",
                    "222.168",
                    "833.0078",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "556.1523",
                    "333.0078",
                    "500",
                    "277.832",
                    "556.1523",
                    "500",
                    "722.168",
                    "500",
                    "500",
                    "500",
                    "333.9844",
                    "259.7656",
                    "333.9844",
                    "583.9844",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000",
                    "1000"
                  ]
                }
              },
              "/ProcSet": [
                "/PDF",
                "/Text",
                "/ImageB",
                "/ImageC",
                "/ImageI"
              ],
              "/XObject": {
                "/FormXob.30c975c8f5b72051d1101f575144cc51": {
                  "dictionary": {
                    "/BitsPerComponent": "8",
                    "/ColorSpace": "/DeviceRGB",
                    "/Filter": [
                      "/ASCII85Decode",
                      "/FlateDecode"
                    ],
                    "/Height": "80",
                    "/Subtype": "/Image",
                    "/Type": "/XObject",
                    "/Width": "80"
                  },
                  "encodedBytes": 157,
                  "encodedSha256": "f098d44b21fb88926b5803a4b44a76c75f109fb059ae2dc0813ce90333896fd0",
                  "decodedBytes": 19200,
                  "decodedSha256": "a82f6e9701ad76f58d4142621e26335d73e8765f19d23e89fb66cbd9669a0e32"
                }
              }
            },
            "scope": "ThispageResourcesonly,indirectreferencesresolved;streamLengthexcludedbutencodedlength/hashrecorded;notallPDFobjectaudit"
          },
          "MediaBox": [
            0.0,
            0.0,
            792.0,
            612.0
          ],
          "CropBox": [
            0.0,
            0.0,
            792.0,
            612.0
          ],
          "Rotate": 0,
          "annotations": []
        }
      ],
      "activeOutline": {
        "catalogKeys": [
          "/Pages",
          "/Type"
        ],
        "catalogOutlinesKeyPresent": false,
        "outlineRootReference": null,
        "outlineRootCount": null,
        "reachableFirstNextTree": [],
        "reachableNodeCount": 0,
        "pypdfTopLevelOutlineCount": 0,
        "notHistoryOrStringErasureAudit": true
      },
      "readerWarnings": []
    },
    "analysisReports": [
      {
        "file": "analysis-pdf-checks.json",
        "bytes": 77020,
        "sha256": "5a538e6f7958d17dcacf91af847ef924d75dd5fb6c896f36f75744e6185815d9"
      },
      {
        "file": "analysis-independent-checks.json",
        "bytes": 47035,
        "sha256": "64a1efb147dce19f3185172d8c74182d03af058198a6c712b3431eb22e9a899c"
      },
      {
        "file": "analysis-check-native-removal.py",
        "bytes": 18629,
        "sha256": "0a2d079cb009f518d82f45a91a920deb2a088e1a177af5b8a30033d1c58fa2d2"
      },
      {
        "file": "analysis-independent-verify.py",
        "bytes": 21629,
        "sha256": "eb958a4528db027d846c6a4ff87628ee50037b9981ac76dd736598e9d676008f"
      }
    ],
    "primaryRemovalObservationChecks": {
      "checks": 45,
      "passed": 45,
      "failed": 0,
      "inputFreezeFileIdentityConstraintsIncluded": 6,
      "nativeFreezeFileIdentityConstraintsIncluded": 11,
      "independentOrPrepPeerCountsAdded": false,
      "meaning": "Activecatalogtree/page/text/stream/resourcegeometryandactualoperationrecords,notsecureerasureorreaderbehavior guarantee"
    },
    "independentNativeObservationChecks": {
      "total": 46,
      "passed": 46,
      "failed": 0
    },
    "independentReferenceSourceChecks": {
      "total": 23,
      "passed": 23,
      "failed": 0
    },
    "countDefinitions": {
      "inputFreezeFileIdentityRows": 6,
      "nativeFreezeFileIdentityRows": 11,
      "priorPreparationPeerChecksReportedByRoot": 6,
      "fileRowsAndPeerCheckGroupNotInterchangeable": true,
      "oldInputDescriptionCountNotInvented": true,
      "noOldOrIndependentCountsAdded": true
    },
    "checkCountsNotCombined": true,
    "boundedTraversalBudgets": {
      "PDFBytes": 1048576,
      "PDFCount": 2,
      "pagesPerPDF": 4,
      "reachableOutlineNodes": 16,
      "outlineDepth": 4,
      "resourceNodesPerPage": 256,
      "resourceDepth": 16,
      "renderPages": 6
    },
    "activeOutlineFinding": {
      "sourceActiveCount": 3,
      "nativeCatalogOutlinesPresent": false,
      "nativeReachableCount": 0,
      "boundedCatalogFirstNextTraversalPerformed": true,
      "readerOutlineEmptyAlsoAgrees": true,
      "deletionNotMerelyUIEmptyObservation": true
    },
    "pageComparisons": [
      {
        "page": 1,
        "equalities": {
          "text": true,
          "encodedContents": true,
          "decodedContents": true,
          "boundedResolvedResources": true,
          "MediaBox": true,
          "CropBox": true,
          "Rotate": true,
          "markerOrder": true
        }
      },
      {
        "page": 2,
        "equalities": {
          "text": true,
          "encodedContents": true,
          "decodedContents": true,
          "boundedResolvedResources": true,
          "MediaBox": true,
          "CropBox": true,
          "Rotate": true,
          "markerOrder": true
        }
      },
      {
        "page": 3,
        "equalities": {
          "text": true,
          "encodedContents": true,
          "decodedContents": true,
          "boundedResolvedResources": true,
          "MediaBox": true,
          "CropBox": true,
          "Rotate": true,
          "markerOrder": true
        }
      }
    ],
    "retainedInternalLinkStructuralObservation": {
      "source": [
        {
          "subtype": "/Link",
          "rectangle": [
            54.0,
            486.0,
            285.0,
            510.0
          ],
          "targetReference": [
            15,
            0
          ],
          "destinationLocalPageInCurrentTree": 3,
          "annotationPReference": [
            4,
            0
          ],
          "annotationPLocalPageInCurrentTree": 1,
          "actionSubtype": null,
          "readerClicked": false
        }
      ],
      "native": [
        {
          "subtype": "/Link",
          "rectangle": [
            54.0,
            486.0,
            285.0,
            510.0
          ],
          "targetReference": [
            15,
            0
          ],
          "destinationLocalPageInCurrentTree": 3,
          "annotationPReference": [
            4,
            0
          ],
          "annotationPLocalPageInCurrentTree": 1,
          "actionSubtype": null,
          "readerClicked": false
        }
      ],
      "nativeDestinationIsCurrentPage3": true,
      "nativeAnnotationPIsCurrentPage1": true,
      "readerClicks": 0,
      "clickSuccessNotEstablished": true
    },
    "historyErasureBoundary": {
      "historicalXrefObjectsOrGarbageNotAudited": true,
      "oldTitleStringAbsenceNotEstablished": true,
      "activeOutlineZeroDoesNotMeanNoOldTitleBytes": true,
      "noSecureErasureClaim": true,
      "noFullObjectOrRawStringHistorySweepByPrimary": true
    },
    "peerFiniteRawKnownTitleProbeScope": {
      "source": {
        "known_title_patterns": [
          {
            "known_source_title": "第一页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          },
          {
            "known_source_title": "需要转正的第二页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          },
          {
            "known_source_title": "横向第三页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          }
        ],
        "historical_objects_enumerated": false,
        "compressed_or_encoded_historical_objects_searched": false,
        "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
      },
      "native": {
        "known_title_patterns": [
          {
            "known_source_title": "第一页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          },
          {
            "known_source_title": "需要转正的第二页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          },
          {
            "known_source_title": "横向第三页",
            "literal_pattern_occurrences": {
              "UTF8_literal": 0,
              "UTF16BE_with_BOM_literal": 0,
              "UTF16BE_with_BOM_hex_upper": 0,
              "UTF16BE_with_BOM_hex_lower": 0
            }
          }
        ],
        "historical_objects_enumerated": false,
        "compressed_or_encoded_historical_objects_searched": false,
        "scope": "Finite raw-byte patterns for only the3known titles. Zero literal matches would not prove secure erasure or absence of compressed/other representations."
      }
    },
    "actualOperations": {
      "uploadActions": 1,
      "selectAllActions": 1,
      "selectedBookmarkCount": 3,
      "deleteSelectedActions": 1,
      "confirmationModalObserved": false,
      "saveExportActions": 1,
      "nativeDownloadClicks": 1,
      "downloadTimeoutMs": 10000,
      "secondDownloadClick": false,
      "continueEditingClicks": 0,
      "readerBookmarkOrLinkClicks": 0,
      "secondRuns": 0,
      "filenameChanged": false,
      "UIEmptyListSaveButtonAvailable": true,
      "actualOutputSizeText": "文件大小：50.27 KB",
      "allTaskTabsClosed": true
    },
    "localRendering": {
      "rendererVersion": "pdftoppm version 25.03.0",
      "dpi": 54,
      "cropBoxRespected": true,
      "pageBudget": 6,
      "pagesRendered": 6,
      "files": [
        {
          "file": "analysis-page-renders/source-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
          "PDF": "pdf-rotate-source.pdf",
          "page": 1,
          "role": "source",
          "renderDimensions": [
            459,
            594
          ],
          "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "1",
            "-l",
            "1",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-1"
          ]
        },
        {
          "file": "analysis-page-renders/source-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
          "PDF": "pdf-rotate-source.pdf",
          "page": 2,
          "role": "source",
          "renderDimensions": [
            576,
            441
          ],
          "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "2",
            "-l",
            "2",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-2"
          ]
        },
        {
          "file": "analysis-page-renders/source-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
          "PDF": "pdf-rotate-source.pdf",
          "page": 3,
          "role": "source",
          "renderDimensions": [
            594,
            459
          ],
          "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "3",
            "-l",
            "3",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-3"
          ]
        },
        {
          "file": "analysis-page-renders/native-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 1,
          "role": "native",
          "renderDimensions": [
            459,
            594
          ],
          "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "1",
            "-l",
            "1",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-1"
          ]
        },
        {
          "file": "analysis-page-renders/native-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 2,
          "role": "native",
          "renderDimensions": [
            576,
            441
          ],
          "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "2",
            "-l",
            "2",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-2"
          ]
        },
        {
          "file": "analysis-page-renders/native-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 3,
          "role": "native",
          "renderDimensions": [
            594,
            459
          ],
          "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "3",
            "-l",
            "3",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-3"
          ]
        }
      ],
      "contactSheet": {
        "file": "analysis-bookmark-removal-contact-sheet.png",
        "bytes": 179058,
        "sha256": "bb5cd7950f1c5452b6f1ea2f8904cad3efeacb1af1b965d3c5621678e074579a"
      },
      "notProductUIOrReaderClickOrSecureErasureEvidence": true
    },
    "rootFigureReview": {
      "rootViewedExactContactSheet": true,
      "LOCAL3to0SourceAndNativeThreePagesCorrectlyAttributed": true,
      "RotateCropBoxAndLandscapeShownAsStored": true,
      "nonUIReaderAndSecureErasureBoundariesClear": true,
      "notAnExtraProductRunOrNumericCheck": true
    },
    "priorFreezeBindings": [
      {
        "file": "input-freeze.json",
        "bytes": 1743,
        "sha256": "595264b56721a2782c5119277316f5f8f5307f171ccdc3bb326d7eaef972524a",
        "fileIdentityRows": 6,
        "allUnmodified": true
      },
      {
        "file": "native-operation-freeze.json",
        "bytes": 2290,
        "sha256": "863aa52322e10be2a28e03ee3a59e525e241eaf65e8ad2f282e70b009df9afd1",
        "fileIdentityRows": 11,
        "allUnmodified": true
      }
    ],
    "inputSixAndNativeElevenFileRowsStillUnmodified": true,
    "rawNativePDFNotRewrittenOrRepairedByAnalysis": true,
    "readerBookmarkAndInternalLinkClicksObserved": 0,
    "newProductOrReaderOrBrowserOrNetworkActionsByAnalysis": 0,
    "noRRuntimeBuildTestsGitOrOtherTaskWrites": true,
    "explanationChinese": [
      "一次上传、全选三项、更多菜单删除选中(3)，实际没有确认弹窗。UI共0项后仍能保存并导出，原生PDF已下载；旧准备合同的确认步骤仅保留历史计划，不写成本轮实际。",
      "活动Catalog不含/Outlines，可达First/Next书签链为0，pypdf读取outline也为空；不是只看到工具列表变空。",
      "原三页正文、原始编码和解码内容流、有限页Resources及嵌入流、页序标记、MediaBox/CropBox/Rotate逐页与成品保持本例一致。第2页90度及裁剪偏移、第3页横向均未自动转正或改变。",
      "原第1页内部链接在成品仍结构性指向当前第3页，注释/P指向当前第1页；没有阅读器点击，不能据此保证所有阅读器跳转。",
      "只检查活动树及限定页内容／资源。没有扫描全部历史对象或垃圾，也不因活动书签为0就认定旧标题字符串不存在或已安全擦除。",
      "独立有限原始字节标题探针在原稿本身也未命中，不能作为删除后安全擦除或字符串彻底不存在的证据。",
      "联系图为固定六页按真实CropBox/Rotate本地渲染，非产品界面、阅读器书签点击或安全擦除测试。",
      "一次保存下载事件超时后恢复唯一新鲜匹配文件，未补点、未继续编辑、未第二次导出；没有产品或PDF修复。"
    ],
    "limitations": [
      "OnlyoneselfauthoredthreepagePDF withthreeL1bookmarksandoneinternalLink",
      "Activecatalogoutlineabsence isnot asecure erasureorhistoryobject-removaltest",
      "Threenativepages matchtext,encoded/decodedContents,boundedResourcesandgeometryinthisexample;noallPDFattributeorbyteidenticalcontainer claim",
      "Page2Rotate90/CropBoxoffsetandpage3landscapearepreserved,notnormalizedorrepaired",
      "Internalpage1topage3destinationresolvesincurrentpagetree;noviewerclick/noallreadercompatibilityclaim",
      "Actualdeletehadnoconfirmmodal;priorplannedconfirmation remains historicalpending contract,notactualflow",
      "Three savedDOMTXT filesareidentityboundonly;thisanalysisdidnotreadtheirbodies orpublishrawDOMcopies",
      "Localrenderingsixpagesonly,notproductUI orreaderbookmark/linkclick evidence",
      "NoPDFrepair,rewrite,reexport,newproduct,reader,network,browser,R,testbuild,git orotherW actionbyanalysis"
    ],
    "allReportedBoundedObservationChecksPassed": true,
    "secureErasureEstablished": false,
    "allReaderOrAllPDFAttributeCompatibilityEstablished": false,
    "passMeaning": "Finiteactiveoutlinetree/pagecontent/resource/geometryandrecordobservations foronepublicsample;notsecureerasureorreaderbehaviorguarantee",
    "pathScan": {
      "absoluteLocalPathCount": 0,
      "passed": true,
      "evidenceNames": "basenames/analysisrelative only"
    }
  },
  "countsKeptSeparate": {
    "primaryRemovalObservationChecks": {
      "checks": 45,
      "passed": 45,
      "failed": 0,
      "inputFreezeFileIdentityConstraintsIncluded": 6,
      "nativeFreezeFileIdentityConstraintsIncluded": 11,
      "independentOrPrepPeerCountsAdded": false,
      "meaning": "Activecatalogtree/page/text/stream/resourcegeometryandactualoperationrecords,notsecureerasureorreaderbehavior guarantee"
    },
    "independentReferenceSourceChecks": {
      "total": 23,
      "passed": 23,
      "failed": 0
    },
    "independentNativeObservationChecks": {
      "total": 46,
      "passed": 46,
      "failed": 0
    },
    "inputFreezeFileIdentityRows": 6,
    "nativeFreezeFileIdentityRows": 11,
    "priorPreparationPeerGroup": {
      "checksReportedByRoot": 6,
      "source": "parent task record only; not a fixture/provenance verification total",
      "notRerunOrAddedToAnalysisCounts": true
    },
    "sourceInputMetadataDocumentsHaveNoSeparateVerificationCount": true,
    "countsNotCombined": true
  },
  "originalDOMTextIdentitiesOnly": {
    "files": [
      {
        "file": "before-delete-dom.txt",
        "bytes": 6128,
        "sha256": "6558ace2403c033eeeb1f9c1398d7e409007028799771a8cf50edfed607a5379"
      },
      {
        "file": "after-delete-dom.txt",
        "bytes": 5965,
        "sha256": "74acc3a5bd6155275088f85245b4b7b947bba422a4b19f71adfe7a5e1097fce4"
      },
      {
        "file": "after-save-dom.txt",
        "bytes": 5205,
        "sha256": "7895b4a724d234081a0e193ae13698c3c9dd141f1819e86c6e0205f013be01b2"
      }
    ],
    "bodyDecodedParsedOrPublishedByPackager": false
  },
  "previewEvidenceBoundaries": {
    "comparison": {
      "rendererVersion": "pdftoppm version 25.03.0",
      "dpi": 54,
      "cropBoxRespected": true,
      "pageBudget": 6,
      "pagesRendered": 6,
      "files": [
        {
          "file": "analysis-page-renders/source-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
          "PDF": "pdf-rotate-source.pdf",
          "page": 1,
          "role": "source",
          "renderDimensions": [
            459,
            594
          ],
          "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "1",
            "-l",
            "1",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-1"
          ]
        },
        {
          "file": "analysis-page-renders/source-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
          "PDF": "pdf-rotate-source.pdf",
          "page": 2,
          "role": "source",
          "renderDimensions": [
            576,
            441
          ],
          "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "2",
            "-l",
            "2",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-2"
          ]
        },
        {
          "file": "analysis-page-renders/source-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
          "PDF": "pdf-rotate-source.pdf",
          "page": 3,
          "role": "source",
          "renderDimensions": [
            594,
            459
          ],
          "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "3",
            "-l",
            "3",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "pdf-rotate-source.pdf",
            "analysis-page-renders/source-3"
          ]
        },
        {
          "file": "analysis-page-renders/native-1.png",
          "bytes": 25340,
          "sha256": "01d1430097a8a13fd6c18691029dcf04b57aa09d6c3599fc5861372b44fccb41",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 1,
          "role": "native",
          "renderDimensions": [
            459,
            594
          ],
          "RGBSha256": "fbdbc51a6cc75c79815a8e5b4e0fce09dd4f7d18a7e7e0d43e51df29f8569b91",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "1",
            "-l",
            "1",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-1"
          ]
        },
        {
          "file": "analysis-page-renders/native-2.png",
          "bytes": 24449,
          "sha256": "4d92cfcca68d6efc73e2cf2a184005686f527de1422103599933bd4cd6ca04af",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 2,
          "role": "native",
          "renderDimensions": [
            576,
            441
          ],
          "RGBSha256": "2c8ab7459d7bb5bdaef9b47e68671b45e01a8323e1945b874be4d4cfd4ce5c1a",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "2",
            "-l",
            "2",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-2"
          ]
        },
        {
          "file": "analysis-page-renders/native-3.png",
          "bytes": 23399,
          "sha256": "76e93d8a72ba5f42b554cd2b4f4955d794bb6285299507591400c5763e2f6dee",
          "PDF": "bookmarks-removed-native.pdf",
          "page": 3,
          "role": "native",
          "renderDimensions": [
            594,
            459
          ],
          "RGBSha256": "01b94684468a1573deb4bd5d8a05cae83c4e490a00f64369e189c398ce6fc243",
          "exitCode": 0,
          "stderr": "",
          "argumentsAfterExecutable": [
            "-f",
            "3",
            "-l",
            "3",
            "-singlefile",
            "-cropbox",
            "-r",
            "54",
            "-png",
            "bookmarks-removed-native.pdf",
            "analysis-page-renders/native-3"
          ]
        }
      ],
      "contactSheet": {
        "file": "analysis-bookmark-removal-contact-sheet.png",
        "bytes": 179058,
        "sha256": "bb5cd7950f1c5452b6f1ea2f8904cad3efeacb1af1b965d3c5621678e074579a"
      },
      "notProductUIOrReaderClickOrSecureErasureEvidence": true
    },
    "settings": "Actual selected-delete-menu UI: three selected titles and Delete Selected(3); not native outline or reader proof.",
    "empty": "Actual after-delete UI: zero items and empty-list Save available; not native active-outline or reader proof.",
    "afterSaveExcludedFromPreviews": "Original after-save image identity is retained in native freeze; not an extra public preview."
  },
  "reusedInput": {
    "asset": "pdf-rotate-source.pdf",
    "id": "pdf_rotate_source_pdf",
    "bytes": 53991,
    "sha256": "88758198252911eeeff768eb53c53a3b6095c49ff7fe7c5ac08720a1d7b6d5fc",
    "newRAssetCopy": false
  }
}
