| author | |
| committer | |
| log | 0402199d1cdc50e08ec9c94f60a4def64754c8c4 |
| tree | d493e6fe48da308f74aab2be4a8d9fde0456ce36 |
| parent | 94b162d4813c318a27b96cc9f1923bd80c21c1d6 |
| signature | Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU |
`page::Attachment::recording` names a recording OneNote captured (identity and type) and
`PageParagraph::media` a paragraph's link to a moment in recordings, what OneNote exports
as `MediaFile`, `MediaReference` and `MediaIndex`. The writer keeps both through ordinary
edits and refuses to author them, since OneNote makes them while recording; the three-way
merge carries them like tags. `corpus/media-edit` is the cold read of the native recording
page with a paragraph added in Rust: the recording and its 500 ms annotation survive.
Evidence rows: `evidence/m4/soak-restart` (twenty session launches resuming one cache
against one section), `evidence/m4/fuzz-bounded` (three minutes per fuzz target), and
`evidence/PROTECTED-WRITE-DESIGN.md` recording the protected object layout and the plan for
writing protected sections.
Assisted-by: claude-fable-5.146 files changed, 913 insertions(+), 1 deletions(-)
corpus/media-edit/README.md created+17| ... | @@ -0,0 +1,17 @@ | ||
| 1 | # Editing next to a recording | ||
| 2 | |||
| 3 | `candidate/Features.one` is the writer's output for | ||
| 4 | `editing_a_recorded_page_keeps_the_recording_and_its_annotation` in | ||
| 5 | `crates/onestore/tests/page_media.rs`: the native section of | ||
| 6 | `corpus/m6/native-features-01` with one plain paragraph appended to the page | ||
| 7 | "Files and recording", where OneNote 2010 recorded `silence.wav` and | ||
| 8 | annotated a paragraph with the moment 500 ms. The recording attachment | ||
| 9 | (`page::Attachment::recording`) and the annotation | ||
| 10 | (`PageParagraph::media`) are read from the page and kept through the edit; | ||
| 11 | a model that adds an annotation or drops the recording refuses to write. | ||
| 12 | |||
| 13 | `cold/` is a fresh OneNote 2010 read: `MediaFile`, `MediaReference` and | ||
| 14 | `MediaIndex` name the same recording and moment as before the edit, next to | ||
| 15 | the added paragraph. `tools/test_media_edit.py` checks this without a VM. | ||
| 16 | Regenerate with `ONESTORE_MEDIA_EXPORT` set to a new directory while running | ||
| 17 | the test, then cold-open with `--expected-pages 13 --collect-notebook`. | ||
corpus/media-edit/candidate/Features.one created| Binary files /dev/null and b/corpus/media-edit/candidate/Features.one differ | |||
corpus/media-edit/candidate/Open Notebook.onetoc2 created| Binary files /dev/null and b/corpus/media-edit/candidate/Open Notebook.onetoc2 differ | |||
corpus/media-edit/candidate/expected-count.txt created+1| ... | @@ -0,0 +1 @@ | ||
| 1 | 13 | ||
| \ No newline at end of file | |||
corpus/media-edit/cold/commands.jsonl created+3| ... | @@ -0,0 +1,3 @@ | ||
| 1 | {"command": "powershell -NoProfile -Command \"Expand-Archive -LiteralPath C:\\one-tests\\transfer.zip -DestinationPath C:\\one-tests\\runs\\capture\\notebook\"", "exit": 0, "stdout": "", "stderr": "", "error": null} | ||
| 2 | {"command": "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File C:\\one-tests\\read-current.ps1 -Root C:\\one-tests\\runs\\capture -CloneHost ONE-M6-7A9FE25A -ExpectedPages 13", "exit": 0, "stdout": "Read 1 sections and 13 pages.\r\n", "stderr": "", "error": null} | ||
| 3 | {"command": "powershell -NoProfile -Command \"Compress-Archive -Force -Path C:\\one-tests\\runs\\capture\\* -DestinationPath C:\\one-tests\\captured.zip\"", "exit": 0, "stdout": "", "stderr": "", "error": null} | ||
corpus/media-edit/cold/machine.json created+1| ... | @@ -0,0 +1 @@ | ||
| 1 | {"name": "m6-7a9fe25a", "hostname": "ONE-M6-7A9FE25A"} | ||
corpus/media-edit/cold/notebook/Features.one created| Binary files /dev/null and b/corpus/media-edit/cold/notebook/Features.one differ | |||
corpus/media-edit/cold/notebook/Open Notebook.onetoc2 created| Binary files /dev/null and b/corpus/media-edit/cold/notebook/Open Notebook.onetoc2 differ | |||
corpus/media-edit/cold/notebook/expected-count.txt created+1| ... | @@ -0,0 +1 @@ | ||
| 1 | 13 | ||
| \ No newline at end of file | |||
corpus/media-edit/cold/read/4cff0039dbdf53a59f5f4e4592c29a5297ea3b7acce24415c0ae83c36c6bd7c2.attachment created| Binary files /dev/null and b/corpus/media-edit/cold/read/4cff0039dbdf53a59f5f4e4592c29a5297ea3b7acce24415c0ae83c36c6bd7c2.attachment differ | |||
corpus/media-edit/cold/read/56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9.attachment created| Binary files /dev/null and b/corpus/media-edit/cold/read/56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9.attachment differ | |||
corpus/media-edit/cold/read/environment.json created+7| ... | @@ -0,0 +1,7 @@ | ||
| 1 | { | ||
| 2 | "powershell": "5.1.14409.1005", | ||
| 3 | "schema": "xs2010", | ||
| 4 | "hostname": "ONE-M6-7A9FE25A", | ||
| 5 | "cold": true, | ||
| 6 | "onenote": "14.0.4763.1000" | ||
| 7 | } | ||
corpus/media-edit/cold/read/hierarchy.xml created+2| ... | @@ -0,0 +1,2 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Notebook xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" name="notebook" nickname="notebook" ID="{5A1C3883-79E7-4CD2-B47F-2B7884B8288B}{1}{B0}" path="C:\one-tests\runs\capture\notebook" lastModifiedTime="2026-09-13T08:43:52.000Z" color="#B49EDE"><one:Section name="Features" ID="{4750C30E-D5D8-078D-05A6-3ECFFF49849A}{1}{B0}" path="C:\one-tests\runs\capture\notebook\Features.one" lastModifiedTime="2026-09-13T08:43:52.000Z" color="#91BAAE"><one:Page ID="{449BF572-5680-0377-1ABA-E94F82E0D08A}{1}{B0}" name="Image png" dateTime="2026-09-06T02:25:40.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{2654CBAC-698B-0C91-1027-370DAD6ED451}{1}{B0}" name="Image jpg" dateTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{8F6618A6-502F-02B5-3E80-DFE350140BE0}{1}{B0}" name="Image bmp" dateTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{201F6D02-D252-0872-0177-33E65921E253}{1}{B0}" name="Image tiff" dateTime="2026-09-06T02:25:43.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{E9D166C3-15F5-0772-384C-E2F001708A87}{1}{B0}" name="Image gif" dateTime="2026-09-06T02:25:44.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{ED1A67BB-82AE-0CC9-1015-D0DAEA733432}{1}{B0}" name="Image role background=false, printout=false" dateTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{3A2B9294-D8BE-04AD-3724-A7D8B282D041}{1}{B0}" name="Image role background=true, printout=false" dateTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{ADD4161B-BE24-08D6-3214-7CD72FAD8575}{1}{B0}" name="Image role background=false, printout=true" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{FFFF422D-CCF8-07A4-27E0-CEDFA58C404A}{1}{B0}" name="Image role background=true, printout=true" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{57F870C0-4994-044B-3FBF-D15BD6A07C26}{1}{B0}" name="Files and recording" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"/><one:Page ID="{B349AE29-99FF-0C5D-2442-E2E491E74A74}{1}{B0}" name="Paragraph controls" dateTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1"/><one:Page ID="{979E983C-168C-0E4C-0849-C9B9CE78C331}{1}{B0}" name="Numbering controls" dateTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1"/><one:Page ID="{6FA148B3-6F2E-07BD-182C-0C02A5734127}{1}{B0}" name="Task controls" dateTime="2026-09-06T02:25:50.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1"/></one:Section></one:Notebook> | ||
corpus/media-edit/cold/read/page-000.xml created+300| ... | @@ -0,0 +1,300 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{201F6D02-D252-0872-0177-33E65921E253}{1}{B0}" name="Image tiff" dateTime="2026-09-06T02:25:43.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:44.000Z" lastModifiedTime="2026-09-06T02:25:44.000Z" objectID="{639F9B7D-FD16-046D-3B29-3FD580FE4496}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image tiff]]></one:T></one:OE></one:Title><one:Image format="png" hyperlink="https://example.invalid/image/tiff" alt="Pattern tiff" originalPageNumber="0" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{639F9B7D-FD16-046D-3B29-3FD580FE4496}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="144.0" height="48.00000381469727" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAAXNSR0IArs4c6QAAAARnQU1BAACx | ||
| 3 | jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAEImSURBVHheDbiBV2GL+v+/f9V1q+uk46TjpDFp | ||
| 4 | TBqDMUhoh3Zoh3Zoh3Zoh3YYgzE0Jo1J46TjpOOk61Yf32pZ1bKqZVXLqpZV/W2/8y8863nez/v1 | ||
| 5 | AgAAaAL+vxagiQQ0twIt7cC/yACpA/h3J9BKBdq6gPZu4D90gNwD/NQLdDABSh/Q2Q/8zAaoA8Av | ||
| 6 | g0AXF6DxgG4B8KsQoIuA3yRAjxRgyIBeBfACBJhK4KUa6IMAlgbo1wGvYICtB14bgQEE4JiAQQvw | ||
| 7 | BgW4VuCtHeBhAN8BCFzAOxwQuoH3XkBEAGIfIAkAQ0FAGgKGI4AsCshjgGIFGEkA4CowugYoU4Bq | ||
| 8 | HVBvAGMZANoExrcATQ7QbgO6HWCiAMC7wOQeoC8Bhn3AeAhMlQHkCJg+AUwVwHwKWM6BmSqAXgCz | ||
| 9 | V4C1BtiuAfstMFcHsDtg/gFwNADnI+B6BhYAoPn/a2puamluJjW3tDb/q72ZRG7+d0dza2dzG7W5 | ||
| 10 | vav5P93NZHrzTz3NHb3NFGZzZ1/zz/3NVHbzLwPNXYPNNG5zN6/5V0EzXdj8m6i5R9LMkDb3yppf | ||
| 11 | KJqZYPNLZXOfupkFNfdrml/pmtlw82t984CxmYM0D5qa31iauWjzW2szz97Mx5oFjuZ3rmYh3vze | ||
| 12 | 3SzyNouJZomveSjQLA02D4eaZZFmebRZEWseWWkGE82jq83KtWZVqlm93jy20Qxlmsc3mzVbzdpc | ||
| 13 | s267eWKnGS40T+426/eaDaVm437z1GEzUm6ePmo2nTSbK82W0+aZ82a02jx70Wy9arbVmu3XzXO3 | ||
| 14 | zVi9ef6u2fHQ7Gw0ux6bF56bcQAgNTX9MxtSC4n0r1YSqZ30bzKptYPU1klqp5L+00Uid5N+opM6 | ||
| 15 | ekiUXlInk/RzH4naT/qFTeoaINEGSd1c0q88El1A+k1I6hGRGBJSr5T0QkZiKkgvQVKfksRSk/oh | ||
| 16 | 0isNia0jvYZJA3oSx0gaREhvTCSuhfQWJfGsJL6dJMBI7xwkoYv0HieJ3CSxlyQhSEM+kjRAGg6S | ||
| 17 | ZCGSPEJSREkjMRK4QhpNkJSrJNUaSZ0ija2ToA3SeIak2SRpt0i6HGlimwTvkCYLJP0uybBHMpZI | ||
| 18 | U/sk5JA0XSaZjkjmE5KlQpo5JaHnpNkqyXpBsl2R7DXS3DUJuyXN10mOO5LzgeRqkBYeSfgzaREA | ||
| 19 | 2pqb2lpa2v5FaiO1tv27va2V3NbW0dbe2fYfahu5q+2n7rYOehulp62zt+1nZhu1r+2X/rYudhtt | ||
| 20 | oK17sO1Xbhud1/aboK1H2MYQtfVK2l5I25iytpeKtj6wjaVs61e3vYLa2Jq217q2AbiNo28bNLa9 | ||
| 21 | Qdq4pra3ljYe2sa3tgnsbe+wNqGj7b2rTYS3id1tEm/bENEm9bUNB9pkwTZ5qE0RaRuJtoGxttGV | ||
| 22 | NmWiTbXapl5rG0u1Qett4xttmkybdrNNt9U2kWuDt9smd9r0hTbDbptxr22q1Ibst00ftpnKbeaj | ||
| 23 | NstJ20ylDT1tmz1vs1bbbBdt9qu2uVobdt02f9vmqLc579pcD20LjTb8sW3xuc0NAOSWJvK/Wsgk | ||
| 24 | EvnfreTWdnIbmdzeQf5PJ5lMJf/URe7oJlPo5M4e8s+9ZCqT/EsfuaufTGOTuwfIvw6S6Vzybzxy | ||
| 25 | j4DMEJJ7ReQXEjJTSn4pI/cpyCyQ3K8kv1KT2RD5tYY8oCNzYPKgnvzGSOYi5LcmMs9C5qNkgZX8 | ||
| 26 | zk4WYuT3DrLIRRbjZImbPOQlSwnysI8sC5DlQbIiRB6JkMEoeTRGVq6QVQmyepU8tkaGUuTxdbJm | ||
| 27 | g6zNkHWb5IktMpwjT26T9TtkQ4Fs3CVP7ZGREnl6n2w6JJvLZMsReeaEjFbIs6dk6znZViXbL8hz | ||
| 28 | V2SsRp6/Jjtuyc462XVHXngg4w3y4iPZ/Uz2AADlX00UUgvl3yRKayulrZ3STqb8p4NC7qT8RKV0 | ||
| 29 | dFEo3ZROOuXnHgq1l/ILk9LVR6H1U7rZlF8HKPRBym9cSg+PwhBQeoWUFyIKU0J5KaX0ySgsBaUf | ||
| 30 | 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 | ||
| 268 | 3Hc52X+pZ18aBi6Ng5dT3EuEdzktuDQJL82iS4vkckZ6icouZxWXVvDSpry0qy/noEtMczmvu3TA | ||
| 269 | l079pct4uYBc4qbLRculG730WC+99ssl7JJwXC67Ln34pd99GfBefiAug77Lj4HLUPAyHLqMRC4/ | ||
| 270 | RS+jscvPK5exxGV89XJl7fJL6jKxfvl143I1c5ncvFzbuvyWu0xtX37fuVwvXKZ3Lzf2Ln+ULjP7 | ||
| 271 | l78fXm6WL7NHl1snl39ULnOnl3+eX25XL/MXlztXl3/VLgvXl3/fXu7WL4t3l3sPl/9tXJYeL//3 | ||
| 272 | fLkPADVFU22kpQaSaqOtNWV7TUWuqTtqY501iFob76ppumtaek3XU5vorcHM2mRfTd9fM7BrxoHa | ||
| 273 | 1GAN4dameTWToGYW1iyi2oykhkprs7KaVVGzgTW7sjanrmFQbV5Tc+hqTrjm0tcWjDUcqS2aam5L | ||
| 274 | zYPWvNbakr1GYLVlR83nqvnxWsBd++CtBYnaR18tFKiFg7VIqPYpUotGa59jtdhKLZ6orazWvqzV | ||
| 275 | /lGBX9drqxu1ZKa2tln7tlVL5Wrft2vrO7V0obaxW/uxV8uUar/v1zYPa9lybeuo9sdJLVep/Xla | ||
| 276 | 2z6v5au1nYvaX1e1Qq3293Vt97ZWrNf27mr/faiVGrX/Pdb2n2sHAHAz0nQDttyMkm6UrTeq9hs1 | ||
| 277 | +Was4wbqvBmn3mi6brTdNzr6zUTPDdx7M8m80ffdGPpvjOybqYEbZPBmmntj4t2YBTcW4c2M6AaV | ||
| 278 | 3MxKb6yyG5vixg7ezClvMPXNPHTj0Nw4dTcu+GZBf4MbbxaRG7fpxmO58aI3S9Ybwn6zjN34HDd+ | ||
| 279 | 100Av/ngvgl6bz4SNyHfTThwEwnefArdRCM3n6M3sdhNfOVmJXHzZfUmsXbzNXWzun6T3LhZy9x8 | ||
| 280 | 27xJbd18z92sb9+kd242Cjc/dm8yeze/l24292+yhzdb5Zs/jm5yJzd/Vm62T2/y5zc71Zu/Lm4K | ||
| 281 | Vzd/1252r2+Ktzd79Zv/3t2UHm7+17jZf7w5eL45BIA62FQfbakrSXVVa13dXh8j16GO+nhnXUOt | ||
| 282 | a7vquu76BL0O99Qne+t6Zt3QVzf216fYdWSgPj1YN3HrZl7dIqjPCOuoqD4rqVuldZusblfU58A6 | ||
| 283 | pqzPq+sOqO7U1F26+gJcx/X1RWPdjdQ9prrXUl9C64S1vmyv+7C631EPuOof8HrQXf/orYeIethX | ||
| 284 | jwTqn4L1aKj+OVKPRevxWH1lpf4lUU+s1r+u1VdT9eR6fW2j/i1TT23Wv2/V13P19HZ9Y6f+o1DP | ||
| 285 | 7NZ/36tvlurZ/frWYf2Pcj13VP/zpL5dqedP6zvn9b+q9cJF/e+r+m6tXryu793W/1uvl+7q/3uo | ||
| 286 | 7zfqB4/1w+f6/wHA/WjTvbLlXkW6V7fej7XfQ+T78Y57Tee9lnqv67qf6L6H6feTPff63nsD897Y | ||
| 287 | dz/Vf4+w76cH7k2D92buvYV3PyO4R4X3s6J7q+TeJr23y+7nFPcYeD+vvHeo753QvUtzv6C7x+H7 | ||
| 288 | Rf2923jvQe69pvslyz2B3i9b7332ez92H3Dcf3DdB/H7j+77kPc+TNxHfPefAvfR4P3n0H0sch+P | ||
| 289 | 3q/E7r+s3CcS919X71fX7pOp+7X1+28b96nM/ffN+/Wt+3TufmP7/sfOfaZw//vu/ebefbZ0v7V/ | ||
| 290 | /8fhfa58/+fR/fbJfb5yv3N6/9f5faF6//fF/e7VfbF2v3d9/9/b+1L9/n939/sP9weN+8PH+/97 | ||
| 291 | vi8DQEPZ1FC1NNSkxlhrA2pvjJMbmo6GtrOhozYmuhpwd2OS3tD3NAy9DSOzMdXXQPob0+yGaaBh | ||
| 292 | HmxYuI0ZXgMVNGaFDauoYZM07NLGnKyBKRrzYMOhbDjVDRfUWNA0cF1jEW649Q2PseFFGkumBmFp | ||
| 293 | LKMNn7XhtzcCWOODoxF0NT7ijZC7EfY2IkTjk68RDTQ+BxuxUCMeaaxEG19ijcRK42uisbraSK41 | ||
| 294 | 1lKNb+uN1Ebje6axvvmPJW1s5Bo/thuZncbvhcbmbiO719gqNf7Yb+QOG3+WG9tHjfxJY6fS+Ou0 | ||
| 295 | UThv/F1t7F40ileNvVrjv9eN0m3jf/XG/l3j4KFx2Gj832Oj/Nz4fwDwpGp6Urc8jZGeoNan8fYn | ||
| 296 | DflJ2/Gk63yaoD7BXU+T3U96+pOh58nY+zTFfEL6nqb7n0zsJ/PAk2XwaYb7hPKeZgVPVuGTTfRk | ||
| 297 | lzzNSZ8w2dO84skBPjmVTy710wL0hGueFnVPbvjJo3/yGp+WkCfC9LRsefKhT37rU8D+9AF7Cjqe | ||
| 298 | PrqeQvhT2P0U8T59Ip6ivqfPgadY8CkeelqJPH2JPiViT19XnlYTT8nVp7W1p2+pp9T60/eNp/XM | ||
| 299 | U3rzaWPr6UfuKbP99PvO02bhKbv7tLX39EfpKbf/9Ofh03b5KX/0tHPy9FflqXD69Pf50271qXjx | ||
| 300 | tHf19N/aU+n66X+3T/v1p4O7p8OHp/9rPJUfn/7f89PR/w8QCy14LJdV2gAAAABJRU5ErkJggg==</one:Data></one:Image></one:Page> | ||
corpus/media-edit/cold/read/page-001.xml created+21| ... | @@ -0,0 +1,21 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{2654CBAC-698B-0C91-1027-370DAD6ED451}{1}{B0}" name="Image jpg" dateTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-06T02:25:42.000Z" objectID="{F8696D83-9E56-0474-2E54-A5C965208FA0}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image jpg]]></one:T></one:OE></one:Title><one:Image format="jpg" hyperlink="https://example.invalid/image/jpg" alt="Pattern jpg" originalPageNumber="0" lastModifiedTime="2026-09-06T02:25:50.000Z" objectID="{F8696D83-9E56-0474-2E54-A5C965208FA0}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="144.0" height="48.00000381469727" isSetByUser="true"/><one:Data>/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a | ||
| 3 | HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy | ||
| 4 | MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABAAGADASIA | ||
| 5 | AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA | ||
| 6 | AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 | ||
| 7 | ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm | ||
| 8 | p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA | ||
| 9 | AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx | ||
| 10 | BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK | ||
| 11 | U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 | ||
| 12 | uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDwhYfa | ||
| 13 | plh9qsrD7VMsPtUqRFOqVVh9qmWH2qysPtUyw+1UpHbTqlZYfaplh9qsrD7VMsPtVqR206pVWGpl | ||
| 14 | h9qsrDUyw+1UpHbTqlZYalWH2q0sNSrD7VSkdtOqVlh9qmWH2qysPtUyw+1UpHdTqnHrD7VMsPtV | ||
| 15 | lYfaplh9q81SPyqnVKqw+1TLD7VZWH2qZYfaqUjtp1SssPtUyw+1WVh9qmWH2qlI7adUqrDUyw+1 | ||
| 16 | WVhqZYfarUjtp1SssNSrD7VaWGpVh9qpSO2nVKyw+1TLD7VZWH2qZYfaqUjup1Tj1h9qmWH2qysP | ||
| 17 | tUyw+1eapH5VTqlVYfaplh9qsrD7VMsPtVKR206pWWH2qZYfarKw+1TLD7VSkdtOqVVhqZYfarKw | ||
| 18 | 1MsPtVqR206pWWGpVh9qtLDUqw+1UpHbTqlZYfaplh9qsrD7VMsPtVKR206px6w+1TLD7VZWH2qZ | ||
| 19 | YfavNUj8rp1SqsPtUyw+1WVh9qmWH2qlI7adUrLD7VMsPtVlYfaplh9qpSO2nVKqw1MsPtVlYamW | ||
| 20 | H2q1I7adUrLDUqw+1WlhqVYfaqUjtp1SssPtUyw+1WVh9qmWH2qlI7adU//Z | ||
| 21 | </one:Data></one:Image></one:Page> | ||
corpus/media-edit/cold/read/page-002.xml created+6| ... | @@ -0,0 +1,6 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{3A2B9294-D8BE-04AD-3724-A7D8B282D041}{1}{B0}" name="Image role background=true, printout=false" dateTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{FC961718-8845-09F9-05BE-7529352AC9DA}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image role background=true, printout=false]]></one:T></one:OE></one:Title><one:Image format="png" backgroundImage="true" alt="Role pattern" originalPageNumber="2" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{FC961718-8845-09F9-05BE-7529352AC9DA}{39}{B0}"><one:Position x="36.0" y="36.0" z="0"/><one:Size width="288.0" height="192.0" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAwUlEQVR4nO3ZwQ2DQBDF0Hkk/dec | ||
| 3 | CuASwXCwtBVY/mYBM3OMznEC4TsfMx1nEALk2o8ACZB/GpJBAiSD3PcgbmICJIM0MVvX/RokQDJI | ||
| 4 | E1ODvPOrS5EWIBmkialB1ntcpAVIBmli1rvTRVGAZJAmZj1AvawKkAzSxNQg6zEu0gIkgzQx69Hp | ||
| 5 | oihAMkgT85LTn1UBkkGamBpkvcdFWoBkkCZmvTtdFAVIBmli1gPUy6oAySBNTA2yHuMiLUAyyPMT | ||
| 6 | +wHXVRp4qDc0HQAAAABJRU5ErkJggg==</one:Data></one:Image><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{FC961718-8845-09F9-05BE-7529352AC9DA}{41}{B0}"><one:Position x="72.0" y="108.0" z="1"/><one:Size width="146.7475433349609" height="13.42771339416504"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{FC961718-8845-09F9-05BE-7529352AC9DA}{42}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Foreground role control]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-003.xml created+6| ... | @@ -0,0 +1,6 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{449BF572-5680-0377-1ABA-E94F82E0D08A}{1}{B0}" name="Image png" dateTime="2026-09-06T02:25:40.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-06T02:25:42.000Z" objectID="{3BC55073-AE30-0791-39E7-3586EA9E7987}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image png]]></one:T></one:OE></one:Title><one:Image format="png" hyperlink="https://example.invalid/image/png" alt="Pattern png" originalPageNumber="0" lastModifiedTime="2026-09-06T02:25:42.000Z" objectID="{3BC55073-AE30-0791-39E7-3586EA9E7987}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="144.0" height="48.00000381469727" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAwUlEQVR4nO3ZwQ2DQBDF0Hkk/dec | ||
| 3 | CuASwXCwtBVY/mYBM3OMznEC4TsfMx1nEALk2o8ACZB/GpJBAiSD3PcgbmICJIM0MVvX/RokQDJI | ||
| 4 | E1ODvPOrS5EWIBmkialB1ntcpAVIBmli1rvTRVGAZJAmZj1AvawKkAzSxNQg6zEu0gIkgzQx69Hp | ||
| 5 | oihAMkgT85LTn1UBkkGamBpkvcdFWoBkkCZmvTtdFAVIBmli1gPUy6oAySBNTA2yHuMiLUAyyPMT | ||
| 6 | +wHXVRp4qDc0HQAAAABJRU5ErkJggg==</one:Data></one:Image></one:Page> | ||
corpus/media-edit/cold/read/page-004.xml created+2| ... | @@ -0,0 +1,2 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{57F870C0-4994-044B-3FBF-D15BD6A07C26}{1}{B0}" name="Files and recording" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:MediaPlaylist><one:MediaReference mediaID="{9A418E57-7F64-40C5-87D0-8A8F7C1E5422}"/></one:MediaPlaylist><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:47.000Z" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Files and recording]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-13T08:42:33.000Z" objectID="{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="138.3740081787109" height="152.8554229736328"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:47.000Z" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{40}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Microsoft\OneNote\14.0\OneNoteOfflineCache_Files\7d1ab415-649a-43bd-a863-bbef841467de.txt" pathSource="C:\one-tests\runs\capture\notebook\fixture-data\attachment.txt" preferredName="Fictitious attachment.txt"/></one:OE><one:OE creationTime="2026-09-06T02:25:47.000Z" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{44}{B0}" alignment="left"><one:MediaFile pathCache="C:\Users\clover\AppData\Local\Microsoft\OneNote\14.0\OneNoteOfflineCache_Files\5cdfe8bc-15a0-4ef8-9710-d05c8cbe5118.wav" pathSource="C:\one-tests\runs\capture\notebook\fixture-data\silence.wav" preferredName="silence.wav"><one:MediaReference mediaID="{9A418E57-7F64-40C5-87D0-8A8F7C1E5422}"/></one:MediaFile></one:OE><one:OE creationTime="2026-09-06T02:25:47.000Z" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{48}{B0}" alignment="left" quickStyleIndex="0"><one:MediaIndex timeIndex="500"><one:MediaReference mediaID="{9A418E57-7F64-40C5-87D0-8A8F7C1E5422}"/></one:MediaIndex><one:T><![CDATA[Recording annotation]]></one:T></one:OE><one:OE author="Media author" lastModifiedBy="Media author" creationTime="2026-09-13T08:42:33.000Z" lastModifiedTime="2026-09-13T08:42:33.000Z" objectID="{6EFE3A6B-EC96-062E-1C0D-850768F6D51A}{1}{B0}" alignment="left" style="font-family:Calibri;font-size:11.0pt"><one:T><![CDATA[Added after recording]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-005.xml created+2| ... | @@ -0,0 +1,2 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{6FA148B3-6F2E-07BD-182C-0C02A5734127}{1}{B0}" name="Task controls" dateTime="2026-09-06T02:25:50.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:50.000Z" lastModifiedTime="2026-09-06T02:25:50.000Z" objectID="{3D578F2D-01F7-0F89-3C52-53B117E3E633}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Task controls]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:51.000Z" objectID="{3D578F2D-01F7-0F89-3C52-53B117E3E633}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="151.0606994628906" height="13.42771339416504"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:50.000Z" lastModifiedTime="2026-09-06T02:25:50.000Z" objectID="{3D578F2D-01F7-0F89-3C52-53B117E3E633}{40}{B0}" alignment="left" quickStyleIndex="0"><one:OutlookTask startDate="2020-01-02T00:00:00.000Z" dueDate="2020-01-03T00:00:00.000Z" guidTask="{45AF40E3-1D54-463C-90D3-C454F2F71A2E}" completed="false" disabled="true" creationDate="2020-01-02T03:04:05.000Z"/><one:T><![CDATA[Disabled standalone task]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-006.xml created+9| ... | @@ -0,0 +1,9 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{8F6618A6-502F-02B5-3E80-DFE350140BE0}{1}{B0}" name="Image bmp" dateTime="2026-09-06T02:25:42.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:43.000Z" lastModifiedTime="2026-09-06T02:25:43.000Z" objectID="{DE225C08-F92B-05E2-2521-CCF5BE8C84B1}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image bmp]]></one:T></one:OE></one:Title><one:Image format="png" hyperlink="https://example.invalid/image/bmp" alt="Pattern bmp" originalPageNumber="0" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{DE225C08-F92B-05E2-2521-CCF5BE8C84B1}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="144.0" height="48.00000381469727" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO | ||
| 3 | xAAADsQBlSsOGwAAARlJREFUeF7t2VFHQ2EcBvD3PWetVqvVam1ERESMiIiIiL7/J5p9gD1dvF51 | ||
| 4 | 8eNcn4uf53n2P1ZLKUOpnkMCtYx0kkAt00F8gkAtsxFQBJpPAEWgxRGgCLScAopAq2NAEWhzAigC | ||
| 5 | 3c0ARaD7U0AR6OEMUAR6nAOKQE/ngCLQ8wWgCLRdAIpAL5eAItDrFaAI9LYEFIHerwFFoI8bQBHo | ||
| 6 | cwUoAn3dAopA32tAEehnAygKjPu/xjyHBAY0WQDQL+0BBKhtYSVIgiSo6w+xiqmYiqnYX34J2SAb | ||
| 7 | ZINskA1qa4EESZAEdW1B15e7g9xBbf2VIAmSICPtDmprgQRJkAR1bUHXl7uD3EFt/ZUgCZIgI+0O | ||
| 8 | amuBBEnQP07QDo1OW207QPoWAAAAAElFTkSuQmCC | ||
| 9 | </one:Data></one:Image></one:Page> | ||
corpus/media-edit/cold/read/page-007.xml created+2| ... | @@ -0,0 +1,2 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{979E983C-168C-0E4C-0849-C9B9CE78C331}{1}{B0}" name="Numbering controls" dateTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Numbering controls]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:50.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="125.0376281738281" height="137.070068359375"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{40}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="0" numberFormat="##" restartNumberingAt="3" font="Calibri" text="3"/></one:List><one:T><![CDATA[Sequence 0, item 0]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{46}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="0" numberFormat="##" font="Calibri" text="4"/></one:List><one:T><![CDATA[Sequence 0, item 1]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{52}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="1" numberFormat="##" restartNumberingAt="3" font="Calibri" text="III"/></one:List><one:T><![CDATA[Sequence 1, item 0]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{58}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="1" numberFormat="##" font="Calibri" text="IV"/></one:List><one:T><![CDATA[Sequence 1, item 1]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{64}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="2" numberFormat="##" restartNumberingAt="3" font="Calibri" text="iii"/></one:List><one:T><![CDATA[Sequence 2, item 0]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{70}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="2" numberFormat="##" font="Calibri" text="iv"/></one:List><one:T><![CDATA[Sequence 2, item 1]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{76}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="3" numberFormat="##" restartNumberingAt="3" font="Calibri" text="C"/></one:List><one:T><![CDATA[Sequence 3, item 0]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{82}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="3" numberFormat="##" font="Calibri" text="D"/></one:List><one:T><![CDATA[Sequence 3, item 1]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{88}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="4" numberFormat="##" restartNumberingAt="3" font="Calibri" text="c"/></one:List><one:T><![CDATA[Sequence 4, item 0]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:49.000Z" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{D2A2767F-002B-0CB9-3906-E72AAECED9E2}{94}{B0}" alignment="left" quickStyleIndex="0"><one:List><one:Number numberSequence="4" numberFormat="##" font="Calibri" text="d"/></one:List><one:T><![CDATA[Sequence 4, item 1]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-008.xml created+6| ... | @@ -0,0 +1,6 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{ADD4161B-BE24-08D6-3214-7CD72FAD8575}{1}{B0}" name="Image role background=false, printout=true" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{C8B4A739-8B2A-006A-11A2-214C42C43C0F}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image role background=false, printout=true]]></one:T></one:OE></one:Title><one:Image format="png" isPrintOut="true" alt="Role pattern" originalPageNumber="2" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{C8B4A739-8B2A-006A-11A2-214C42C43C0F}{39}{B0}"><one:Position x="36.0" y="36.0" z="0"/><one:Size width="288.0" height="192.0" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAwUlEQVR4nO3ZwQ2DQBDF0Hkk/dec | ||
| 3 | CuASwXCwtBVY/mYBM3OMznEC4TsfMx1nEALk2o8ACZB/GpJBAiSD3PcgbmICJIM0MVvX/RokQDJI | ||
| 4 | E1ODvPOrS5EWIBmkialB1ntcpAVIBmli1rvTRVGAZJAmZj1AvawKkAzSxNQg6zEu0gIkgzQx69Hp | ||
| 5 | oihAMkgT85LTn1UBkkGamBpkvcdFWoBkkCZmvTtdFAVIBmli1gPUy6oAySBNTA2yHuMiLUAyyPMT | ||
| 6 | +wHXVRp4qDc0HQAAAABJRU5ErkJggg==</one:Data></one:Image><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{C8B4A739-8B2A-006A-11A2-214C42C43C0F}{41}{B0}"><one:Position x="72.0" y="108.0" z="1"/><one:Size width="146.7475433349609" height="13.42771339416504"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{C8B4A739-8B2A-006A-11A2-214C42C43C0F}{42}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Foreground role control]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-009.xml created+4| ... | @@ -0,0 +1,4 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{B349AE29-99FF-0C5D-2442-E2E491E74A74}{1}{B0}" name="Paragraph controls" dateTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-13T08:43:52.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:QuickStyleDef index="1" name="Fixture style" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="14.0" strikethrough="true" spaceBefore="0.25" spaceAfter="0.125"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Paragraph controls]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:49.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="480.0" height="87.66204071044922"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{40}{B0}" alignment="left" spaceBefore="9.0" spaceAfter="4.5" quickStyleIndex="1"><one:T><![CDATA[<span | ||
| 3 | style='text-decoration:line-through'>Inherited strike and spacing</span>]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{47}{B0}" alignment="center" spaceBefore="12.0" spaceAfter="6.0" quickStyleIndex="0"><one:T><![CDATA[Centered paragraph]]></one:T></one:OE><one:OE RTL="true" creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{52}{B0}" alignment="right" quickStyleIndex="0" style="font-family:Arial;font-size:11.0pt;text-align:right"><one:T><![CDATA[<span | ||
| 4 | style='direction:rtl;unicode-bidi:embed' lang=ar-SA>مرحبا بالعالم</span>]]></one:T></one:OE><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" collapsed="1" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{58}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Collapsed parent]]></one:T><one:OEChildren indent="2"><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{63}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Hidden child remains stored]]></one:T><one:OEChildren><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{68}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Grandchild]]></one:T></one:OE></one:OEChildren></one:OE></one:OEChildren></one:OE><one:OE creationTime="2026-09-06T02:25:48.000Z" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{F69F807C-DEA9-0F23-00FF-39B458A834FF}{73}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[AB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-010.xml created+46| ... | @@ -0,0 +1,46 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{E9D166C3-15F5-0772-384C-E2F001708A87}{1}{B0}" name="Image gif" dateTime="2026-09-06T02:25:44.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{92846EF2-73DF-0281-2FEA-76CDF14703E4}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image gif]]></one:T></one:OE></one:Title><one:Image format="png" hyperlink="https://example.invalid/image/gif" alt="Pattern gif" originalPageNumber="0" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{92846EF2-73DF-0281-2FEA-76CDF14703E4}{39}{B0}"><one:Position x="72.0" y="108.0" z="0"/><one:Size width="144.0" height="48.00000381469727" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAMAAADS6oI8AAADAFBMVEW4t5mrt5O4qpWrqo6euo2S | ||
| 3 | uoeZs4ieqoiSqoK4nJCrnIq4kIyrkIaen4SSn36ZmH+ekH+SkHmGuoGGs395t3pounJos3CGqnx5 | ||
| 4 | qnVtqm9iqmqGnHd5nHGGkHN5kG1on2lomGdokGS4hIirhIK4d4Srd32eh3ySh3aZgHeed3eSd3G4 | ||
| 5 | a4Cra3m4YHyrYHaea3OSa22eYG+SYGmGh3CGgG55hGloh2FogF+Gd2t5d2Rtd15id1mGa2d5a2CG | ||
| 6 | YGN5YF1ta1pia1VoYFRWumlWs2dJt2I4ulo4s1hWqmRJql09qlcyqlImulEaukshs0wKukMKs0Em | ||
| 7 | qkwaqkYPqkAEqjtWnF9JnFlWkFtJkFU4n1E4mE84kEwmn0gan0IhmEMmkEMakD0KnzoKmDgKkDVW | ||
| 8 | h1hWgFZJhFE4h0k4gEdWd1NJd0w9d0Yyd0FWa09Ja0hWYEtJYEU9a0Iyaz04YDwmh0AahzohgDsK | ||
| 9 | hzIKgDAmdzsadzUPdy8EdyomazcaazEmYDMaYC0PaysEayYKYCW4VHirVHK4R3SrR22eV2ySV2aZ | ||
| 10 | UGeeR2eSR2G4O3CrO2m4MGyrMGaeO2OSO12eMF+SMFmGV2CGUF55VFloV1FoUE+GR1t5R1RtR05i | ||
| 11 | R0mGO1d5O1CGMFN5ME1tO0piO0VoMES4JGirJGK4GGSrGF6eJ1ySJ1aZIFeeGFeSGFG4DmGrDlq4 | ||
| 12 | A12rA1eeDlSSDk6eA1CSA0qGJE95JEmGGEt5GEVoJ0FoID9oGDyGDkh5DkGGA0R5Az5tDjtiDjZo | ||
| 13 | AzVWVEdJVEE4Vzk4UDdWR0NJRzw9RzYyRzFWOz9JOzhWMDtJMDU9OzIyOy04MCwmVzAaVyohUCsK | ||
| 14 | VyIKUCAmRysaRyUPRx8ERxomOycaOyEmMCMaMB0POxsEOxYKMBVWJDdJJDFWGDNJGC04Jyk4ICc4 | ||
| 15 | GCRWDjBJDilWAyxJAyY9DiMyDh44Ax0mJyAaJxohIBsmGBsaGBUKJxIKIBAKGA0mDhgaDhImAxQa | ||
| 16 | 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 | ||
| 45 | AElFTkSuQmCC | ||
| 46 | </one:Data></one:Image></one:Page> | ||
corpus/media-edit/cold/read/page-011.xml created+6| ... | @@ -0,0 +1,6 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{ED1A67BB-82AE-0CC9-1015-D0DAEA733432}{1}{B0}" name="Image role background=false, printout=false" dateTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{DFCD2A7C-5964-0D17-36F8-B37349EDE480}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image role background=false, printout=false]]></one:T></one:OE></one:Title><one:Image format="png" alt="Role pattern" originalPageNumber="2" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{DFCD2A7C-5964-0D17-36F8-B37349EDE480}{39}{B0}"><one:Position x="36.0" y="36.0" z="0"/><one:Size width="288.0" height="192.0" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAwUlEQVR4nO3ZwQ2DQBDF0Hkk/dec | ||
| 3 | CuASwXCwtBVY/mYBM3OMznEC4TsfMx1nEALk2o8ACZB/GpJBAiSD3PcgbmICJIM0MVvX/RokQDJI | ||
| 4 | E1ODvPOrS5EWIBmkialB1ntcpAVIBmli1rvTRVGAZJAmZj1AvawKkAzSxNQg6zEu0gIkgzQx69Hp | ||
| 5 | oihAMkgT85LTn1UBkkGamBpkvcdFWoBkkCZmvTtdFAVIBmli1gPUy6oAySBNTA2yHuMiLUAyyPMT | ||
| 6 | +wHXVRp4qDc0HQAAAABJRU5ErkJggg==</one:Data></one:Image><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{DFCD2A7C-5964-0D17-36F8-B37349EDE480}{41}{B0}"><one:Position x="72.0" y="108.0" z="1"/><one:Size width="146.7475433349609" height="13.42771339416504"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:45.000Z" lastModifiedTime="2026-09-06T02:25:45.000Z" objectID="{DFCD2A7C-5964-0D17-36F8-B37349EDE480}{42}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Foreground role control]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/page-012.xml created+6| ... | @@ -0,0 +1,6 @@ | ||
| 1 | <?xml version="1.0"?> | ||
| 2 | <one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{FFFF422D-CCF8-07A4-27E0-CEDFA58C404A}{1}{B0}" name="Image role background=true, printout=true" dateTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-13T08:43:51.000Z" pageLevel="1" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{1030FE68-FCAB-0DA9-06F8-D7ADB62D2F8D}{33}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Image role background=true, printout=true]]></one:T></one:OE></one:Title><one:Image format="png" backgroundImage="true" isPrintOut="true" alt="Role pattern" originalPageNumber="2" lastModifiedTime="2026-09-06T02:25:48.000Z" objectID="{1030FE68-FCAB-0DA9-06F8-D7ADB62D2F8D}{39}{B0}"><one:Position x="36.0" y="36.0" z="0"/><one:Size width="288.0" height="192.0" isSetByUser="true"/><one:Data>iVBORw0KGgoAAAANSUhEUgAAAGAAAABACAIAAABqVuVZAAAAwUlEQVR4nO3ZwQ2DQBDF0Hkk/dec | ||
| 3 | CuASwXCwtBVY/mYBM3OMznEC4TsfMx1nEALk2o8ACZB/GpJBAiSD3PcgbmICJIM0MVvX/RokQDJI | ||
| 4 | E1ODvPOrS5EWIBmkialB1ntcpAVIBmli1rvTRVGAZJAmZj1AvawKkAzSxNQg6zEu0gIkgzQx69Hp | ||
| 5 | oihAMkgT85LTn1UBkkGamBpkvcdFWoBkkCZmvTtdFAVIBmli1gPUy6oAySBNTA2yHuMiLUAyyPMT | ||
| 6 | +wHXVRp4qDc0HQAAAABJRU5ErkJggg==</one:Data></one:Image><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-06T02:25:47.000Z" objectID="{1030FE68-FCAB-0DA9-06F8-D7ADB62D2F8D}{41}{B0}"><one:Position x="72.0" y="108.0" z="1"/><one:Size width="146.7475433349609" height="13.42771339416504"/><one:OEChildren><one:OE creationTime="2026-09-06T02:25:46.000Z" lastModifiedTime="2026-09-06T02:25:46.000Z" objectID="{1030FE68-FCAB-0DA9-06F8-D7ADB62D2F8D}{42}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Foreground role control]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page> | ||
corpus/media-edit/cold/read/payloads.json created+18| ... | @@ -0,0 +1,18 @@ | ||
| 1 | [ | ||
| 2 | { | ||
| 3 | "sha256": "4cff0039dbdf53a59f5f4e4592c29a5297ea3b7acce24415c0ae83c36c6bd7c2", | ||
| 4 | "name": "Fictitious attachment.txt", | ||
| 5 | "object": "{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{40}{B0}", | ||
| 6 | "kind": "InsertedFile", | ||
| 7 | "page": "{57F870C0-4994-044B-3FBF-D15BD6A07C26}{1}{B0}", | ||
| 8 | "bytes": 27 | ||
| 9 | }, | ||
| 10 | { | ||
| 11 | "sha256": "56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9", | ||
| 12 | "name": "silence.wav", | ||
| 13 | "object": "{4DE24944-9177-0A86-2CA3-43EAAD47BA51}{44}{B0}", | ||
| 14 | "kind": "MediaFile", | ||
| 15 | "page": "{57F870C0-4994-044B-3FBF-D15BD6A07C26}{1}{B0}", | ||
| 16 | "bytes": 16044 | ||
| 17 | } | ||
| 18 | ] | ||
| \ No newline at end of file | |||
corpus/media-edit/cold/run.json created+18| ... | @@ -0,0 +1,18 @@ | ||
| 1 | { | ||
| 2 | "notebook": "/private/tmp/m4/media", | ||
| 3 | "expected_pages": 13, | ||
| 4 | "author": null, | ||
| 5 | "author_timeout_seconds": 600, | ||
| 6 | "inspect": false, | ||
| 7 | "collect_notebook": true, | ||
| 8 | "base": { | ||
| 9 | "file": "win7-office-base.qcow2", | ||
| 10 | "format": "qcow2", | ||
| 11 | "sha256": "a1a4f8fab782ee14885ff801ca2f6347c208fdcfc3513637096f314315c89346", | ||
| 12 | "virtual_size": 68719476736 | ||
| 13 | }, | ||
| 14 | "scripts": { | ||
| 15 | "cold.ps1": "c177fc72ae6c2634d186f5671a880de20b09f9716532c37c69cb13aa15c7e331", | ||
| 16 | "read.ps1": "04013bfcccee40a17e2a225f9b9e96f40a3a8daad9e350609654f8eda3ccbb41" | ||
| 17 | } | ||
| 18 | } | ||
corpus/media-edit/cold/scripts/cold.ps1 created+27| ... | @@ -0,0 +1,27 @@ | ||
| 1 | param([Parameter(Mandatory=$true)][string]$Root, [string]$CloneHost = '') | ||
| 2 | Set-StrictMode -Version Latest | ||
| 3 | $ErrorActionPreference = 'Stop' | ||
| 4 | $root = [IO.Path]::GetFullPath($Root).TrimEnd('\') | ||
| 5 | if ([IO.Path]::GetDirectoryName($root) -ne 'C:\one-tests\runs') { | ||
| 6 | throw 'Choose a run directly below C:\one-tests\runs.' | ||
| 7 | } | ||
| 8 | if (Get-Process ONENOTE -ErrorAction SilentlyContinue) { throw 'Close OneNote before resetting its test cache.' } | ||
| 9 | $key = 'HKCU:\Software\Microsoft\Office\14.0\OneNote' | ||
| 10 | if ($CloneHost) { | ||
| 11 | if ($CloneHost -notmatch '^ONE-[A-Z0-9-]+$' -or [Environment]::MachineName -ne $CloneHost) { | ||
| 12 | throw 'The disposable clone hostname does not match this machine.' | ||
| 13 | } | ||
| 14 | New-Item "$key\Options\Paths" -Force | Out-Null | ||
| 15 | New-ItemProperty "$key\Options\Paths" -Name UnfiledNotesSection -PropertyType ExpandString -Value 'C:\one-tests\Loose.one' -Force | Out-Null | ||
| 16 | } elseif ((Get-ItemProperty "$key\Options\Paths").UnfiledNotesSection -ne 'C:\one-tests\Loose.one' -or | ||
| 17 | -not (Test-Path 'C:\one-tests\profile-original-cache')) { | ||
| 18 | throw 'Park the personal OneNote profile before resetting the test cache.' | ||
| 19 | } | ||
| 20 | $cache = Join-Path $env:LOCALAPPDATA 'Microsoft\OneNote\14.0' | ||
| 21 | $parked = Join-Path 'C:\one-tests\caches' ([IO.Path]::GetFileName($root)) | ||
| 22 | if (Test-Path $parked) { throw 'Choose a new run; its parked cache already exists.' } | ||
| 23 | New-Item -ItemType Directory -Path 'C:\one-tests\caches' -Force | Out-Null | ||
| 24 | if (Test-Path $cache) { Move-Item -LiteralPath $cache -Destination $parked } | ||
| 25 | if (Test-Path "$key\OpenNotebooks") { Remove-Item "$key\OpenNotebooks" -Recurse } | ||
| 26 | New-Item "$key\OpenNotebooks" | Out-Null | ||
| 27 | New-ItemProperty "$key\OpenNotebooks" -Name '1' -PropertyType String -Value "$root\notebook" | Out-Null | ||
corpus/media-edit/cold/scripts/read.ps1 created+142| ... | @@ -0,0 +1,142 @@ | ||
| 1 | param( | ||
| 2 | [Parameter(Mandatory=$true)][string]$Root, | ||
| 3 | [int]$ExpectedPages = -1, | ||
| 4 | [switch]$UseCurrentCache, | ||
| 5 | [switch]$Pdf, | ||
| 6 | [switch]$KeepOpen, | ||
| 7 | [string]$CloneHost = '' | ||
| 8 | ) | ||
| 9 | Set-StrictMode -Version Latest | ||
| 10 | $ErrorActionPreference = 'Stop' | ||
| 11 | $root = [IO.Path]::GetFullPath($Root).TrimEnd('\') | ||
| 12 | if ([IO.Path]::GetDirectoryName($root) -ne 'C:\one-tests\runs') { | ||
| 13 | throw 'Choose a run directly below C:\one-tests\runs.' | ||
| 14 | } | ||
| 15 | $notebook = Join-Path $root 'notebook' | ||
| 16 | $output = Join-Path $root 'read' | ||
| 17 | if (Test-Path $output) { throw 'Choose a new read destination.' } | ||
| 18 | if ($UseCurrentCache) { | ||
| 19 | if ((Get-ItemProperty 'HKCU:\Software\Microsoft\Office\14.0\OneNote\Options\Paths').UnfiledNotesSection -ne 'C:\one-tests\Loose.one') { | ||
| 20 | throw 'Park the personal OneNote profile before reading test notebooks.' | ||
| 21 | } | ||
| 22 | } else { | ||
| 23 | & "$PSScriptRoot\cold-current.ps1" -Root $root -CloneHost $CloneHost | ||
| 24 | } | ||
| 25 | New-Item -ItemType Directory -Path $output | Out-Null | ||
| 26 | $app = New-Object -ComObject OneNote.Application | ||
| 27 | $notebookId = '' | ||
| 28 | $failure = $null | ||
| 29 | try { | ||
| 30 | $app.OpenHierarchy($notebook, '', [ref]$notebookId, 0) | ||
| 31 | $process = Get-Process ONENOTE | ||
| 32 | @{ hostname = [Environment]::MachineName; onenote = $process.MainModule.FileVersionInfo.FileVersion; | ||
| 33 | powershell = $PSVersionTable.PSVersion.ToString(); schema = 'xs2010'; cold = (-not $UseCurrentCache.IsPresent) } | | ||
| 34 | ConvertTo-Json | Set-Content (Join-Path $output 'environment.json') -Encoding UTF8 | ||
| 35 | $sections = @() | ||
| 36 | foreach ($file in @(Get-ChildItem $notebook -Recurse | Where-Object { $_.Extension -eq '.one' })) { | ||
| 37 | $id = '' | ||
| 38 | $app.OpenHierarchy($file.FullName, '', [ref]$id, 0) | ||
| 39 | $sections += $id | ||
| 40 | } | ||
| 41 | $deadline = [DateTime]::UtcNow.AddSeconds(300) | ||
| 42 | $previous = '' | ||
| 43 | $lastChange = '' | ||
| 44 | $stableSince = [DateTime]::UtcNow | ||
| 45 | $settled = $false | ||
| 46 | do { | ||
| 47 | $pages = @{} | ||
| 48 | foreach ($section in $sections) { | ||
| 49 | $hierarchy = '' | ||
| 50 | $app.GetHierarchy($section, 4, [ref]$hierarchy, 1) | ||
| 51 | [xml]$xml = $hierarchy | ||
| 52 | foreach ($node in $xml.SelectNodes('//*[@path]')) { | ||
| 53 | if (-not $node.GetAttribute('path').StartsWith("$notebook\", [StringComparison]::OrdinalIgnoreCase)) { | ||
| 54 | throw 'OneNote opened a section outside the copied notebook.' | ||
| 55 | } | ||
| 56 | } | ||
| 57 | foreach ($node in $xml.SelectNodes('//*[local-name()="Page"]')) { | ||
| 58 | $id = $node.GetAttribute('ID') | ||
| 59 | $content = '' | ||
| 60 | $app.GetPageContent($id, [ref]$content, 1, 1) | ||
| 61 | $pages[$id] = $content | ||
| 62 | } | ||
| 63 | } | ||
| 64 | $signature = [String]::Join('|', @($pages.Keys | Sort-Object | ForEach-Object { $_ + $pages[$_] })) | ||
| 65 | if ($signature -ne $previous) { | ||
| 66 | $lastChange = $previous | ||
| 67 | $previous = $signature | ||
| 68 | $stableSince = [DateTime]::UtcNow | ||
| 69 | } | ||
| 70 | if ((($ExpectedPages -ge 0 -and $pages.Count -eq $ExpectedPages) -or | ||
| 71 | ($ExpectedPages -lt 0 -and $pages.Count -gt 0)) -and | ||
| 72 | ([DateTime]::UtcNow - $stableSince).TotalSeconds -ge 2) { $settled = $true; break } | ||
| 73 | Start-Sleep -Milliseconds 250 | ||
| 74 | } while ([DateTime]::UtcNow -lt $deadline) | ||
| 75 | if (-not $settled -or ($ExpectedPages -ge 0 -and $pages.Count -ne $ExpectedPages) -or ($ExpectedPages -lt 0 -and $pages.Count -eq 0)) { | ||
| 76 | [IO.File]::WriteAllText((Join-Path $output 'previous-signature.txt'), $lastChange, [Text.Encoding]::UTF8) | ||
| 77 | $index = 0 | ||
| 78 | foreach ($id in @($pages.Keys | Sort-Object)) { | ||
| 79 | [IO.File]::WriteAllText((Join-Path $output ('unsettled-{0:d3}.xml' -f $index)), $pages[$id], [Text.Encoding]::UTF8) | ||
| 80 | $index++ | ||
| 81 | } | ||
| 82 | $hierarchy = '' | ||
| 83 | $app.GetHierarchy($notebookId, 4, [ref]$hierarchy, 1) | ||
| 84 | [IO.File]::WriteAllText((Join-Path $output 'unsettled-hierarchy.xml'), $hierarchy, [Text.Encoding]::UTF8) | ||
| 85 | throw "Expected $ExpectedPages stable pages; OneNote returned $($pages.Count), settled=$settled." | ||
| 86 | } | ||
| 87 | $index = 0 | ||
| 88 | $payloads = @() | ||
| 89 | foreach ($id in @($pages.Keys | Sort-Object)) { | ||
| 90 | [IO.File]::WriteAllText((Join-Path $output ('page-{0:d3}.xml' -f $index)), $pages[$id], [Text.Encoding]::UTF8) | ||
| 91 | if ($Pdf) { | ||
| 92 | $pdfPath = Join-Path $output ('page-{0:d3}.pdf' -f $index) | ||
| 93 | $app.NavigateTo($id, '', $false) | ||
| 94 | $app.Publish($id, $pdfPath, 3, '') | ||
| 95 | if (-not (Test-Path $pdfPath) -or (Get-Item $pdfPath).Length -eq 0) { throw 'OneNote did not publish the page PDF.' } | ||
| 96 | } | ||
| 97 | [xml]$page = $pages[$id] | ||
| 98 | foreach ($file in $page.SelectNodes('//*[local-name()="InsertedFile" or local-name()="MediaFile"]')) { | ||
| 99 | $bytes = [IO.File]::ReadAllBytes($file.GetAttribute('pathCache')) | ||
| 100 | $hash = [BitConverter]::ToString([Security.Cryptography.SHA256]::Create().ComputeHash($bytes)).Replace('-', '').ToLowerInvariant() | ||
| 101 | [IO.File]::WriteAllBytes((Join-Path $output ($hash + '.attachment')), $bytes) | ||
| 102 | $payloads += @{ page = $id; object = $file.ParentNode.GetAttribute('objectID'); | ||
| 103 | kind = $file.LocalName; name = $file.GetAttribute('preferredName'); | ||
| 104 | sha256 = $hash; bytes = $bytes.Length } | ||
| 105 | } | ||
| 106 | $index++ | ||
| 107 | } | ||
| 108 | [IO.File]::WriteAllText((Join-Path $output 'payloads.json'), (ConvertTo-Json -InputObject $payloads -Depth 4), [Text.Encoding]::UTF8) | ||
| 109 | $all = '' | ||
| 110 | $app.GetHierarchy($notebookId, 4, [ref]$all, 1) | ||
| 111 | [xml]$finalTree = $all | ||
| 112 | $finalIds = @($finalTree.SelectNodes('//*[local-name()="Page"]') | ForEach-Object { $_.GetAttribute('ID') } | Sort-Object -Unique) | ||
| 113 | if ($finalIds.Count -ne $pages.Count -or @($finalIds | Where-Object { -not $pages.ContainsKey($_) }).Count -ne 0) { | ||
| 114 | throw 'The notebook hierarchy changed while collecting page evidence; repeat the cold read.' | ||
| 115 | } | ||
| 116 | [IO.File]::WriteAllText((Join-Path $output 'hierarchy.xml'), $all, [Text.Encoding]::UTF8) | ||
| 117 | Write-Output "Read $($sections.Count) sections and $($pages.Count) pages." | ||
| 118 | } catch { | ||
| 119 | $failure = $_ | ||
| 120 | [IO.File]::WriteAllText((Join-Path $output 'failure.txt'), ($_ | Out-String), [Text.Encoding]::UTF8) | ||
| 121 | throw | ||
| 122 | } finally { | ||
| 123 | try { | ||
| 124 | try { | ||
| 125 | if ($notebookId -and $CloneHost) { $app.SyncHierarchy($notebookId) } | ||
| 126 | if ($notebookId -and -not $KeepOpen -and (-not $UseCurrentCache -or $CloneHost)) { | ||
| 127 | $app.CloseNotebook($notebookId, $false) | ||
| 128 | } | ||
| 129 | } catch { | ||
| 130 | if ($null -eq $failure) { throw } | ||
| 131 | [IO.File]::WriteAllText((Join-Path $output 'cleanup-failure.txt'), ($_ | Out-String), [Text.Encoding]::UTF8) | ||
| 132 | } | ||
| 133 | } finally { | ||
| 134 | [void][Runtime.InteropServices.Marshal]::FinalReleaseComObject($app) | ||
| 135 | } | ||
| 136 | $app = $null | ||
| 137 | [GC]::Collect() | ||
| 138 | [GC]::WaitForPendingFinalizers() | ||
| 139 | if (-not $UseCurrentCache -and -not $CloneHost) { | ||
| 140 | Get-Process ONENOTE -ErrorAction SilentlyContinue | Wait-Process -Timeout 10 | ||
| 141 | } | ||
| 142 | } | ||
corpus/media-edit/cold/source.json created+20| ... | @@ -0,0 +1,20 @@ | ||
| 1 | [ | ||
| 2 | { | ||
| 3 | "path": "Features.one", | ||
| 4 | "bytes": 123088, | ||
| 5 | "sha256": "a070197bb9c1c2f9fbbe39680173407bb9b5fead4bb442d03a84b77a4036d67b", | ||
| 6 | "mtime_ns": 1789288953404668177 | ||
| 7 | }, | ||
| 8 | { | ||
| 9 | "path": "Open Notebook.onetoc2", | ||
| 10 | "bytes": 1604, | ||
| 11 | "sha256": "7dfd85afb7d1e4cf389bf09b9c934bf4a8bc7922ee676d47c4878309322e72e6", | ||
| 12 | "mtime_ns": 1789288953405483509 | ||
| 13 | }, | ||
| 14 | { | ||
| 15 | "path": "expected-count.txt", | ||
| 16 | "bytes": 2, | ||
| 17 | "sha256": "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", | ||
| 18 | "mtime_ns": 1789288953413592244 | ||
| 19 | } | ||
| 20 | ] | ||
corpus/media-edit/cold/teardown.json created+1| ... | @@ -0,0 +1 @@ | ||
| 1 | {"absent": true} | ||
crates/canvas/src/document.rs+2| ... | @@ -42,6 +42,7 @@ pub(crate) fn node(text: Paragraph, format: Format) -> Result<PageParagraph, Edi | ... | @@ -42,6 +42,7 @@ pub(crate) fn node(text: Paragraph, format: Format) -> Result<PageParagraph, Edi |
| 42 | }), | 42 | }), |
| 43 | lists: Vec::new(), | 43 | lists: Vec::new(), |
| 44 | tags: Vec::new(), | 44 | tags: Vec::new(), |
| 45 | media: Default::default(), | ||
| 45 | collapsed: false, | 46 | collapsed: false, |
| 46 | style: None, | 47 | style: None, |
| 47 | }) | 48 | }) |
| ... | @@ -471,6 +472,7 @@ mod tests { | ... | @@ -471,6 +472,7 @@ mod tests { |
| 471 | format: format.clone(), | 472 | format: format.clone(), |
| 472 | lists: Vec::new(), | 473 | lists: Vec::new(), |
| 473 | tags: Vec::new(), | 474 | tags: Vec::new(), |
| 475 | media: Default::default(), | ||
| 474 | collapsed: false, | 476 | collapsed: false, |
| 475 | content: ParagraphContent::Table(Table { | 477 | content: ParagraphContent::Table(Table { |
| 476 | id: new_id().unwrap(), | 478 | id: new_id().unwrap(), |
crates/canvas/src/editor.rs+1| ... | @@ -3014,6 +3014,7 @@ mod tests { | ... | @@ -3014,6 +3014,7 @@ mod tests { |
| 3014 | format: Format::default(), | 3014 | format: Format::default(), |
| 3015 | lists: Vec::new(), | 3015 | lists: Vec::new(), |
| 3016 | tags: Vec::new(), | 3016 | tags: Vec::new(), |
| 3017 | media: Default::default(), | ||
| 3017 | collapsed: false, | 3018 | collapsed: false, |
| 3018 | content: ParagraphContent::Table(Table { | 3019 | content: ParagraphContent::Table(Table { |
| 3019 | id: new_id().unwrap(), | 3020 | id: new_id().unwrap(), |
crates/canvas/src/editor/table.rs+1| ... | @@ -124,6 +124,7 @@ impl CanvasEditor { | ... | @@ -124,6 +124,7 @@ impl CanvasEditor { |
| 124 | format: source.format.clone(), | 124 | format: source.format.clone(), |
| 125 | lists: Vec::new(), | 125 | lists: Vec::new(), |
| 126 | tags: Vec::new(), | 126 | tags: Vec::new(), |
| 127 | media: Default::default(), | ||
| 127 | collapsed: false, | 128 | collapsed: false, |
| 128 | content: ParagraphContent::Table(onestore::page::Table { | 129 | content: ParagraphContent::Table(onestore::page::Table { |
| 129 | id: new_id()?, | 130 | id: new_id()?, |
crates/canvas/src/outline.rs+1| ... | @@ -640,6 +640,7 @@ mod tests { | ... | @@ -640,6 +640,7 @@ mod tests { |
| 640 | }), | 640 | }), |
| 641 | lists: Vec::new(), | 641 | lists: Vec::new(), |
| 642 | tags: Vec::new(), | 642 | tags: Vec::new(), |
| 643 | media: Default::default(), | ||
| 643 | collapsed: false, | 644 | collapsed: false, |
| 644 | style: None, | 645 | style: None, |
| 645 | } | 646 | } |
crates/notebook/src/merge.rs+1| ... | @@ -412,6 +412,7 @@ fn merge_paragraph( | ... | @@ -412,6 +412,7 @@ fn merge_paragraph( |
| 412 | content, | 412 | content, |
| 413 | lists, | 413 | lists, |
| 414 | tags, | 414 | tags, |
| 415 | media: pick(&base.media, &ours.media, &theirs.media)?, | ||
| 415 | collapsed, | 416 | collapsed, |
| 416 | }) | 417 | }) |
| 417 | } | 418 | } |
crates/notebook/tests/support/page_schedule.rs+1| ... | @@ -83,6 +83,7 @@ pub fn body_outline(page: &mut Page, text: &str) -> ExGuid { | ... | @@ -83,6 +83,7 @@ pub fn body_outline(page: &mut Page, text: &str) -> ExGuid { |
| 83 | content: ParagraphContent::Text(content), | 83 | content: ParagraphContent::Text(content), |
| 84 | lists: Vec::new(), | 84 | lists: Vec::new(), |
| 85 | tags: Vec::new(), | 85 | tags: Vec::new(), |
| 86 | media: Default::default(), | ||
| 86 | collapsed: false, | 87 | collapsed: false, |
| 87 | }], | 88 | }], |
| 88 | unsupported: Vec::new(), | 89 | unsupported: Vec::new(), |
crates/notebook/tests/sync_pages.rs+1| ... | @@ -93,6 +93,7 @@ fn body_outline(page: &mut Page, text: &str) -> ExGuid { | ... | @@ -93,6 +93,7 @@ fn body_outline(page: &mut Page, text: &str) -> ExGuid { |
| 93 | content: ParagraphContent::Text(content), | 93 | content: ParagraphContent::Text(content), |
| 94 | lists: Vec::new(), | 94 | lists: Vec::new(), |
| 95 | tags: Vec::new(), | 95 | tags: Vec::new(), |
| 96 | media: Default::default(), | ||
| 96 | collapsed: false, | 97 | collapsed: false, |
| 97 | }], | 98 | }], |
| 98 | unsupported: Vec::new(), | 99 | unsupported: Vec::new(), |
crates/onestore/README.md+1| ... | @@ -45,6 +45,7 @@ harness also accepts `--client-profile release`. | ... | @@ -45,6 +45,7 @@ harness also accepts `--client-profile release`. |
| 45 | | `Document::active`, `Document::pages_in`, `Revision::parents`, `RevisionIndex::active` | Resolve the active revision, the pages of a space and parent links without repeating the lookups | | 45 | | `Document::active`, `Document::pages_in`, `Revision::parents`, `RevisionIndex::active` | Resolve the active revision, the pages of a space and parent links without repeating the lookups | |
| 46 | | `Page::copy` | The page's content under fresh identities for copying into another section, definitions and payloads included; indent levels only an outline group carries refuse | | 46 | | `Page::copy` | The page's content under fresh identities for copying into another section, definitions and payloads included; indent levels only an outline group carries refuse | |
| 47 | | `page::link::internal_link`, `page::link::parse_internal_link` | Build and read the `onenote:#…` URLs OneNote stores for links to sections, pages and paragraphs, by identity | | 47 | | `page::link::internal_link`, `page::link::parse_internal_link` | Build and read the `onenote:#…` URLs OneNote stores for links to sections, pages and paragraphs, by identity | |
| 48 | | `page::Recording`, `page::MediaIndex` | A recording attachment's identity and type, and a paragraph's link to a moment in recordings; read from native pages and kept through edits, never authored | | ||
| 48 | | `page::Page`, `page::Paragraph`, `page::Ink`, `page::Math` | Build an editable page model (title, outlines, paragraphs with coalesced text spans, tables, images, attachments, ink drawings and handwriting decoded to stroke polylines in page points) with stored identities; equations parse from their linear text and run data into a tree that renders the MathML OneNote exports; content outside the model is retained as `Unsupported` | | 49 | | `page::Page`, `page::Paragraph`, `page::Ink`, `page::Math` | Build an editable page model (title, outlines, paragraphs with coalesced text spans, tables, images, attachments, ink drawings and handwriting decoded to stroke polylines in page points) with stored identities; equations parse from their linear text and run data into a tree that renders the MathML OneNote exports; content outside the model is retained as `Unsupported` | |
| 49 | | `protected::UnlockedSection` (optional feature) | Own decoded buffers for explicit known-password inspection; clear those buffers on drop; derived document strings/exports remain caller-owned | | 50 | | `protected::UnlockedSection` (optional feature) | Own decoded buffers for explicit known-password inspection; clear those buffers on drop; derived document strings/exports remain caller-owned | |
| 50 | | `create_section` | Create one page containing one plain-text paragraph and an author, including Unicode | | 51 | | `create_section` | Create one page containing one plain-text paragraph and an author, including Unicode | |
crates/onestore/src/page/mod.rs+32-1| ... | @@ -146,6 +146,7 @@ pub struct PageParagraph { | ... | @@ -146,6 +146,7 @@ pub struct PageParagraph { |
| 146 | pub content: ParagraphContent, | 146 | pub content: ParagraphContent, |
| 147 | pub lists: Vec<ExGuid>, | 147 | pub lists: Vec<ExGuid>, |
| 148 | pub tags: Vec<Tag>, | 148 | pub tags: Vec<Tag>, |
| 149 | pub media: MediaIndex, | ||
| 149 | pub collapsed: bool, | 150 | pub collapsed: bool, |
| 150 | } | 151 | } |
| 151 | 152 | ||
| ... | @@ -176,6 +177,25 @@ pub struct Attachment { | ... | @@ -176,6 +177,25 @@ pub struct Attachment { |
| 176 | pub bytes: Option<Arc<[u8]>>, | 177 | pub bytes: Option<Arc<[u8]>>, |
| 177 | #[serde(with = "payload")] | 178 | #[serde(with = "payload")] |
| 178 | pub preview: Option<Arc<[u8]>>, | 179 | pub preview: Option<Arc<[u8]>>, |
| 180 | /// Set when the file is an audio or video recording OneNote captured; annotations on | ||
| 181 | /// the page refer to it by identity (`PageParagraph::media`). | ||
| 182 | pub recording: Option<Recording>, | ||
| 183 | } | ||
| 184 | |||
| 185 | /// A recording's identity and OneNote's type code for it. | ||
| 186 | #[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
| 187 | pub struct Recording { | ||
| 188 | pub id: [u8; 16], | ||
| 189 | pub kind: u32, | ||
| 190 | } | ||
| 191 | |||
| 192 | /// A paragraph's link to a moment in recordings on the page: OneNote plays from | ||
| 193 | /// `time_ms` when the paragraph is chosen. Read from native pages and preserved through | ||
| 194 | /// edits; OneNote alone creates them while recording. | ||
| 195 | #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
| 196 | pub struct MediaIndex { | ||
| 197 | pub recordings: Vec<[u8; 16]>, | ||
| 198 | pub time_ms: Option<u32>, | ||
| 179 | } | 199 | } |
| 180 | 200 | ||
| 181 | impl PartialEq for Attachment { | 201 | impl PartialEq for Attachment { |
| ... | @@ -184,6 +204,7 @@ impl PartialEq for Attachment { | ... | @@ -184,6 +204,7 @@ impl PartialEq for Attachment { |
| 184 | && self.filename == other.filename | 204 | && self.filename == other.filename |
| 185 | && self.source_path == other.source_path | 205 | && self.source_path == other.source_path |
| 186 | && self.size == other.size | 206 | && self.size == other.size |
| 207 | && self.recording == other.recording | ||
| 187 | } | 208 | } |
| 188 | } | 209 | } |
| 189 | 210 | ||
| ... | @@ -199,9 +220,10 @@ impl Attachment { | ... | @@ -199,9 +220,10 @@ impl Attachment { |
| 199 | preview, | 220 | preview, |
| 200 | filename, | 221 | filename, |
| 201 | source_path, | 222 | source_path, |
| 223 | recording_id, | ||
| 224 | recording_type, | ||
| 202 | icon_width, | 225 | icon_width, |
| 203 | icon_height, | 226 | icon_height, |
| 204 | .. | ||
| 205 | } = &node.kind | 227 | } = &node.kind |
| 206 | else { | 228 | else { |
| 207 | unreachable!() | 229 | unreachable!() |
| ... | @@ -226,6 +248,10 @@ impl Attachment { | ... | @@ -226,6 +248,10 @@ impl Attachment { |
| 226 | size: icon_width.zip(*icon_height).map(|(w, h)| [w, h]), | 248 | size: icon_width.zip(*icon_height).map(|(w, h)| [w, h]), |
| 227 | bytes: payload(container)?, | 249 | bytes: payload(container)?, |
| 228 | preview: payload(preview)?, | 250 | preview: payload(preview)?, |
| 251 | recording: recording_id.map(|id| Recording { | ||
| 252 | id, | ||
| 253 | kind: recording_type.unwrap_or(0), | ||
| 254 | }), | ||
| 229 | }) | 255 | }) |
| 230 | } | 256 | } |
| 231 | } | 257 | } |
| ... | @@ -699,6 +725,10 @@ fn read_paragraphs( | ... | @@ -699,6 +725,10 @@ fn read_paragraphs( |
| 699 | .nodes | 725 | .nodes |
| 700 | .get(content_id) | 726 | .get(content_id) |
| 701 | .ok_or_else(|| invalid("Missing canvas paragraph content"))?; | 727 | .ok_or_else(|| invalid("Missing canvas paragraph content"))?; |
| 728 | let media = MediaIndex { | ||
| 729 | recordings: content.media_ids.clone(), | ||
| 730 | time_ms: content.media_time_ms, | ||
| 731 | }; | ||
| 702 | let content = if let Kind::RichText { | 732 | let content = if let Kind::RichText { |
| 703 | paragraph_style, .. | 733 | paragraph_style, .. |
| 704 | } = &content.kind | 734 | } = &content.kind |
| ... | @@ -844,6 +874,7 @@ fn read_paragraphs( | ... | @@ -844,6 +874,7 @@ fn read_paragraphs( |
| 844 | content, | 874 | content, |
| 845 | lists: lists.clone(), | 875 | lists: lists.clone(), |
| 846 | tags: node.tags.clone(), | 876 | tags: node.tags.clone(), |
| 877 | media, | ||
| 847 | collapsed: *collapse_state == Some(1), | 878 | collapsed: *collapse_state == Some(1), |
| 848 | }); | 879 | }); |
| 849 | pending.extend( | 880 | pending.extend( |
crates/onestore/src/page/write.rs+14| ... | @@ -611,6 +611,9 @@ impl Lowering<'_> { | ... | @@ -611,6 +611,9 @@ impl Lowering<'_> { |
| 611 | let Some(previous) = old.paragraphs.get(id) else { | 611 | let Some(previous) = old.paragraphs.get(id) else { |
| 612 | continue; | 612 | continue; |
| 613 | }; | 613 | }; |
| 614 | if paragraph.media != previous.media { | ||
| 615 | return Err(invalid("Recording annotations cannot be edited")); | ||
| 616 | } | ||
| 614 | let same = paragraph.style == previous.style && paragraph.format == previous.format; | 617 | let same = paragraph.style == previous.style && paragraph.format == previous.format; |
| 615 | if !same { | 618 | if !same { |
| 616 | return Err(invalid( | 619 | return Err(invalid( |
| ... | @@ -971,6 +974,9 @@ impl Lowering<'_> { | ... | @@ -971,6 +974,9 @@ impl Lowering<'_> { |
| 971 | } | 974 | } |
| 972 | continue; | 975 | continue; |
| 973 | } | 976 | } |
| 977 | if attachment.recording.is_some() { | ||
| 978 | return Err(invalid("Recordings are captured by OneNote, not inserted")); | ||
| 979 | } | ||
| 974 | let Some(bytes) = &attachment.bytes else { | 980 | let Some(bytes) = &attachment.bytes else { |
| 975 | return Err(invalid("A new attachment needs its payload")); | 981 | return Err(invalid("A new attachment needs its payload")); |
| 976 | }; | 982 | }; |
| ... | @@ -1383,6 +1389,9 @@ impl Lowering<'_> { | ... | @@ -1383,6 +1389,9 @@ impl Lowering<'_> { |
| 1383 | .to_le_bytes() | 1389 | .to_le_bytes() |
| 1384 | .to_vec(), | 1390 | .to_vec(), |
| 1385 | )]; | 1391 | )]; |
| 1392 | if attachment.recording != stored.recording { | ||
| 1393 | return Err(invalid("A recording stays the recording OneNote captured")); | ||
| 1394 | } | ||
| 1386 | let mut removed = Vec::new(); | 1395 | let mut removed = Vec::new(); |
| 1387 | if attachment.filename != stored.filename { | 1396 | if attachment.filename != stored.filename { |
| 1388 | let name = crate::create::string(&attachment.filename); | 1397 | let name = crate::create::string(&attachment.filename); |
| ... | @@ -1490,6 +1499,11 @@ impl Lowering<'_> { | ... | @@ -1490,6 +1499,11 @@ impl Lowering<'_> { |
| 1490 | "New paragraphs in a stored outline contain plain text without styles", | 1499 | "New paragraphs in a stored outline contain plain text without styles", |
| 1491 | )); | 1500 | )); |
| 1492 | } | 1501 | } |
| 1502 | if paragraph.media != Default::default() { | ||
| 1503 | return Err(invalid( | ||
| 1504 | "Recording annotations are made by OneNote while it records", | ||
| 1505 | )); | ||
| 1506 | } | ||
| 1493 | // A new table starts as an empty text paragraph whose content the | 1507 | // A new table starts as an empty text paragraph whose content the |
| 1494 | // structure pass replaces with the table. | 1508 | // structure pass replaces with the table. |
| 1495 | let (text, text_id) = match &paragraph.content { | 1509 | let (text, text_id) = match &paragraph.content { |
crates/onestore/tests/page_attachments.rs+2| ... | @@ -113,6 +113,7 @@ fn insert_attachment(section: &str, preview: Option<Arc<[u8]>>) -> Vec<u8> { | ... | @@ -113,6 +113,7 @@ fn insert_attachment(section: &str, preview: Option<Arc<[u8]>>) -> Vec<u8> { |
| 113 | size: Some([24.0, 24.0]), | 113 | size: Some([24.0, 24.0]), |
| 114 | bytes: Some(Arc::from(PAYLOAD)), | 114 | bytes: Some(Arc::from(PAYLOAD)), |
| 115 | preview: preview.clone(), | 115 | preview: preview.clone(), |
| 116 | recording: None, | ||
| 116 | }); | 117 | }); |
| 117 | body_paragraphs(&mut after).push(holder.clone()); | 118 | body_paragraphs(&mut after).push(holder.clone()); |
| 118 | body_paragraphs(&mut after).push(plain_paragraph(&template, "After the file")); | 119 | body_paragraphs(&mut after).push(plain_paragraph(&template, "After the file")); |
| ... | @@ -182,6 +183,7 @@ fn attachments_need_a_file_name_and_stored_ones_are_renamed_in_place() { | ... | @@ -182,6 +183,7 @@ fn attachments_need_a_file_name_and_stored_ones_are_renamed_in_place() { |
| 182 | size: None, | 183 | size: None, |
| 183 | bytes: Some(Arc::from(PAYLOAD)), | 184 | bytes: Some(Arc::from(PAYLOAD)), |
| 184 | preview: None, | 185 | preview: None, |
| 186 | recording: None, | ||
| 185 | }); | 187 | }); |
| 186 | body_paragraphs(&mut after).push(holder); | 188 | body_paragraphs(&mut after).push(holder); |
| 187 | assert!(PreparedEdit::page(&source, space, &after, AUTHOR).is_err()); | 189 | assert!(PreparedEdit::page(&source, space, &after, AUTHOR).is_err()); |
crates/onestore/tests/page_media.rs created+147| ... | @@ -0,0 +1,147 @@ | ||
| 1 | use onestore::{ | ||
| 2 | ExGuid, PreparedEdit, RevisionIndex, Store, | ||
| 3 | document::Document, | ||
| 4 | page::{MediaIndex, Page, PageObject, ParagraphContent, Recording}, | ||
| 5 | }; | ||
| 6 | |||
| 7 | /// A page OneNote 2010 recorded audio on (`corpus/m6/native-features-01`): a recording | ||
| 8 | /// attachment and a paragraph annotated with a moment in it. | ||
| 9 | const NATIVE: &[u8] = include_bytes!("../../../corpus/m6/native-features-01/notebook/Features.one"); | ||
| 10 | const NATIVE_READ: &str = include_str!("../../../corpus/m6/native-features-01/read/page-017.xml"); | ||
| 11 | const TITLE: &str = "Files and recording"; | ||
| 12 | |||
| 13 | fn page(bytes: &[u8]) -> (ExGuid, Page) { | ||
| 14 | let store = Store::parse(bytes).unwrap(); | ||
| 15 | let index = RevisionIndex::parse(&store).unwrap(); | ||
| 16 | let document = Document::parse(&index).unwrap(); | ||
| 17 | document | ||
| 18 | .pages() | ||
| 19 | .unwrap() | ||
| 20 | .into_iter() | ||
| 21 | .map(|(space, _)| (space, Page::from_space(&document, space).unwrap())) | ||
| 22 | .find(|(_, page)| page.title == TITLE) | ||
| 23 | .unwrap() | ||
| 24 | } | ||
| 25 | |||
| 26 | fn media_id(read: &str) -> [u8; 16] { | ||
| 27 | let start = read.find("mediaID=\"").unwrap() + 9; | ||
| 28 | let guid = &read[start..read[start..].find('"').unwrap() + start]; | ||
| 29 | format!("{guid},0").parse::<ExGuid>().unwrap().guid | ||
| 30 | } | ||
| 31 | |||
| 32 | fn recording(page: &Page) -> (Recording, MediaIndex) { | ||
| 33 | let mut recording = None; | ||
| 34 | let mut annotation = None; | ||
| 35 | for object in &page.objects { | ||
| 36 | let PageObject::Outline(outline) = object else { | ||
| 37 | continue; | ||
| 38 | }; | ||
| 39 | for paragraph in &outline.paragraphs { | ||
| 40 | if let ParagraphContent::Attachment(attachment) = &paragraph.content | ||
| 41 | && let Some(found) = attachment.recording | ||
| 42 | { | ||
| 43 | recording = Some(found); | ||
| 44 | } | ||
| 45 | if !paragraph.media.recordings.is_empty() { | ||
| 46 | annotation = Some(paragraph.media.clone()); | ||
| 47 | } | ||
| 48 | } | ||
| 49 | } | ||
| 50 | (recording.unwrap(), annotation.unwrap()) | ||
| 51 | } | ||
| 52 | |||
| 53 | #[test] | ||
| 54 | fn a_native_recording_and_its_annotation_read_as_the_export_names_them() { | ||
| 55 | let (_, native) = page(NATIVE); | ||
| 56 | let (recording, annotation) = recording(&native); | ||
| 57 | let id = media_id(NATIVE_READ); | ||
| 58 | assert_eq!(recording.id, id); | ||
| 59 | assert_eq!( | ||
| 60 | annotation, | ||
| 61 | MediaIndex { | ||
| 62 | recordings: vec![id], | ||
| 63 | time_ms: Some(500) | ||
| 64 | } | ||
| 65 | ); | ||
| 66 | assert!(NATIVE_READ.contains("timeIndex=\"500\"")); | ||
| 67 | } | ||
| 68 | |||
| 69 | /// `ONESTORE_MEDIA_EXPORT` names a new directory receiving the edited section for a cold | ||
| 70 | /// reopen: the recording and its annotation survive an ordinary edit of the page. | ||
| 71 | #[test] | ||
| 72 | fn editing_a_recorded_page_keeps_the_recording_and_its_annotation() { | ||
| 73 | use onestore::page::{TextObject, text::new_id}; | ||
| 74 | let (space, before) = page(NATIVE); | ||
| 75 | let mut after = before.clone(); | ||
| 76 | let outline = after | ||
| 77 | .objects | ||
| 78 | .iter_mut() | ||
| 79 | .find_map(|object| match object { | ||
| 80 | PageObject::Outline(outline) if !outline.title => Some(outline), | ||
| 81 | _ => None, | ||
| 82 | }) | ||
| 83 | .unwrap(); | ||
| 84 | let mut added = outline.paragraphs[0].clone(); | ||
| 85 | added.id = new_id().unwrap(); | ||
| 86 | added.parent = None; | ||
| 87 | added.level = 1; | ||
| 88 | added.style = None; | ||
| 89 | added.lists.clear(); | ||
| 90 | added.tags.clear(); | ||
| 91 | added.media = MediaIndex::default(); | ||
| 92 | added.content = ParagraphContent::Text(TextObject { | ||
| 93 | id: new_id().unwrap(), | ||
| 94 | date_field: None, | ||
| 95 | text: onestore::page::Paragraph::new("Added after recording".into(), Default::default()), | ||
| 96 | tags: Vec::new(), | ||
| 97 | }); | ||
| 98 | outline.paragraphs.push(added.clone()); | ||
| 99 | let written = PreparedEdit::page(NATIVE, space, &after, "Media author").unwrap(); | ||
| 100 | let (_, stored) = page(written.as_bytes()); | ||
| 101 | assert_eq!(recording(&stored), recording(&before)); | ||
| 102 | assert_eq!(stored.objects.len(), before.objects.len()); | ||
| 103 | |||
| 104 | let mut annotated = after.clone(); | ||
| 105 | let outline = annotated | ||
| 106 | .objects | ||
| 107 | .iter_mut() | ||
| 108 | .find_map(|object| match object { | ||
| 109 | PageObject::Outline(outline) if !outline.title => Some(outline), | ||
| 110 | _ => None, | ||
| 111 | }) | ||
| 112 | .unwrap(); | ||
| 113 | let last = outline.paragraphs.last_mut().unwrap(); | ||
| 114 | last.media = recording(&before).1; | ||
| 115 | assert!(PreparedEdit::page(written.as_bytes(), space, &annotated, "x").is_err()); | ||
| 116 | let mut recaptured = after.clone(); | ||
| 117 | for object in &mut recaptured.objects { | ||
| 118 | if let PageObject::Outline(outline) = object { | ||
| 119 | for paragraph in &mut outline.paragraphs { | ||
| 120 | if let ParagraphContent::Attachment(attachment) = &mut paragraph.content { | ||
| 121 | attachment.recording = None; | ||
| 122 | } | ||
| 123 | } | ||
| 124 | } | ||
| 125 | } | ||
| 126 | assert!(PreparedEdit::page(written.as_bytes(), space, &recaptured, "x").is_err()); | ||
| 127 | |||
| 128 | if let Some(directory) = std::env::var_os("ONESTORE_MEDIA_EXPORT") { | ||
| 129 | let directory = std::path::PathBuf::from(directory); | ||
| 130 | std::fs::create_dir_all(&directory).unwrap(); | ||
| 131 | std::fs::write(directory.join("Features.one"), written.as_bytes()).unwrap(); | ||
| 132 | let file_id = Store::parse(written.as_bytes()).unwrap().header.file_id; | ||
| 133 | std::fs::write( | ||
| 134 | directory.join("Open Notebook.onetoc2"), | ||
| 135 | onestore::create_table_of_contents( | ||
| 136 | "Open Notebook.onetoc2", | ||
| 137 | &[("Features.one", file_id)], | ||
| 138 | ) | ||
| 139 | .unwrap(), | ||
| 140 | ) | ||
| 141 | .unwrap(); | ||
| 142 | let store = Store::parse(written.as_bytes()).unwrap(); | ||
| 143 | let index = RevisionIndex::parse(&store).unwrap(); | ||
| 144 | let count = Document::parse(&index).unwrap().pages().unwrap().len(); | ||
| 145 | std::fs::write(directory.join("expected-count.txt"), count.to_string()).unwrap(); | ||
| 146 | } | ||
| 147 | } | ||
fuzz/Cargo.lock+1| ... | @@ -652,6 +652,7 @@ dependencies = [ | ... | @@ -652,6 +652,7 @@ dependencies = [ |
| 652 | "nix", | 652 | "nix", |
| 653 | "roxmltree", | 653 | "roxmltree", |
| 654 | "serde", | 654 | "serde", |
| 655 | "serde_json", | ||
| 655 | "sha1", | 656 | "sha1", |
| 656 | "subtle", | 657 | "subtle", |
| 657 | "zeroize", | 658 | "zeroize", |
tools/test_media_edit.py created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | from pathlib import Path | ||
| 2 | import runpy | ||
| 3 | import shutil | ||
| 4 | from tempfile import TemporaryDirectory | ||
| 5 | import unittest | ||
| 6 | import xml.etree.ElementTree as ET | ||
| 7 | |||
| 8 | from native_xml import ns | ||
| 9 | |||
| 10 | ROOT = Path(__file__).resolve().parent.parent | ||
| 11 | FIXTURE = ROOT / 'corpus/media-edit' | ||
| 12 | compare = runpy.run_path(str(ROOT / 'tools/verify-document.py'))['compare'] | ||
| 13 | |||
| 14 | |||
| 15 | class MediaEditTest(unittest.TestCase): | ||
| 16 | def test_an_edit_next_to_a_recording_keeps_the_recording_and_its_annotation(self): | ||
| 17 | with TemporaryDirectory() as temporary: | ||
| 18 | read = Path(temporary) / 'read' | ||
| 19 | shutil.copytree(FIXTURE / 'cold/read', read) | ||
| 20 | compare(FIXTURE / 'candidate', read) | ||
| 21 | pages = [ET.parse(path).getroot() for path in sorted((FIXTURE / 'cold/read').glob('page-*.xml'))] | ||
| 22 | page = next(page for page in pages if page.get('name') == 'Files and recording') | ||
| 23 | media = page.find('.//one:MediaFile', ns) | ||
| 24 | self.assertEqual(media.get('preferredName'), 'silence.wav') | ||
| 25 | recording = media.find('one:MediaReference', ns).get('mediaID') | ||
| 26 | index = page.find('.//one:MediaIndex', ns) | ||
| 27 | self.assertEqual(index.get('timeIndex'), '500') | ||
| 28 | self.assertEqual(index.find('one:MediaReference', ns).get('mediaID'), recording) | ||
| 29 | texts = [t.text for t in page.findall('.//one:T', ns) if t.text] | ||
| 30 | self.assertIn('Added after recording', texts) | ||
| 31 | |||
| 32 | |||
| 33 | if __name__ == '__main__': | ||
| 34 | unittest.main() | ||