Pith. sign in

REVIEW 3 major objections 7 minor 30 references

Automated Medical Report Generation for ECG Data: Bridging Medical Text and Signal Processing with Deep Learning

T0 review · 3 major / 7 minor · reviewed 2026-08-11 · deepseek-v4-flash

Pith's one-line read An encoder-decoder model adapted from image captioning generates ECG reports that score 55.53% METEOR on the official PTB-XL split, more than doubling the 24.51% of the published reference.

desk verdict Useful ECG captioning benchmark on official splits, but the headline SOTA gap over Qiu et al. is unverified and the sanity-check baseline beats the quoted reference. read the letter →

arxiv 2412.04067 v1 pith:2EB5LKOA submitted 2024-12-05 cs.CL cs.AI

classification cs.CLcs.AI
keywords ECGreportgenerationencoder-decoderimagecaptioningPTB-XLMETEORLSTMTransformermedicaltext
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper tries to show that image-captioning architectures can be transplanted from photographs to electrocardiograms: a ResNet encoder plus an attention-based LSTM or Transformer decoder, trained on physician-written free-text reports, can generate readable ECG summaries in plain English. On the public PTB-XL dataset, the authors report that their best configuration reaches a METEOR score of 55.53%, more than double the 24.51% of the published reference model, where METEOR is an automatic metric that balances precision and recall with stemming and synonym matching. They also test the pipeline on a much larger, noisier single-lead dataset from implantable cardiac monitors, where abbreviation unification is the key preprocessing step, and they include a control experiment showing the model relies on the ECG signal itself rather than memorized text patterns. If the claim holds, routine clinical notes, despite their inconsistencies, can serve as training data for useful automated ECG interpretation.

What carries the argument

The load-bearing mechanism is the encoder-decoder captioning pipeline borrowed from image captioning: a 1D ResNet34 encoder maps each multi-lead ECG recording to 512 temporal feature channels, and an attention-equipped decoder, LSTM or Transformer, turns those features into text tokens one at a time. In the LSTM variant, learned attention weights over the temporal segments are aggregated into a context vector for each word, and doubly stochastic attention regularization keeps the model from over-focusing on a single time step. The data preprocessing is equally load-bearing: German reports are machine-translated to English, abbreviation variants are collapsed to canonical terms, and reports are tokenized by splitting on non-letter characters while keeping those separators as tokens. METEOR, an automatic metric that balances precision and recall with stemming and synonym matching, is the paper's primary evaluation measure and the source of its headline numbers.

What would settle it

Run the reference model on the official PTB-XL test split using this paper's translation, tokenization, and evaluation code, repeated across several random seeds; if its METEOR stays near 24.5%, the claimed margin holds, whereas if it approaches 55%, the reported superiority is mostly an artifact of split choice.

Watch

Extended reading notes

Core claim

The central claim is that a direct adaptation of neural image captioning, namely a one-dimensional ResNet encoder paired with an attention-equipped LSTM or Transformer decoder, generates ECG reports that outperform a published language-model-based reference method on automatic text metrics. The best result uses a non-pretrained ResNet34 encoder with a single-layer LSTM decoder on the official patient-exclusive PTB-XL test split, reaching METEOR 55.53% against the reference's 24.51%; the same model also beats the reference when both are evaluated on comparable random splits, with METEOR 63.01% versus 24.51%. The paper further claims that the approach transfers to single-lead subcutaneous ECG data, where translating and unifying abbreviations raises METEOR from 15.57% to 32.59%, and that the model depends on real ECG morphology, as replacing the signal with a constant vector cuts the PTB-XL METEOR roughly in half.

Load-bearing premise

The headline comparison assumes that the reference model's published score, produced under a different way of dividing the data, can be compared directly with this paper's score on the official test set.

Editorial extensions

If this is right

  • On the official PTB-XL splits, the non-pretrained ResNet34 plus LSTM configuration is the best reported configuration, with METEOR 55.53%, BLEU-1 51.63%, and ROUGE-1 F1 58.33%.
  • Pre-training the encoder on rhythm labels does not improve report generation and slightly hurts performance on both PTB-XL and the ICM case-study data.
  • Translating non-English reports to English is worth several METEOR points on PTB-XL, while abbreviation unification contributes a small gain there and a very large gain on the noisy ICM dataset.
  • A control experiment with a constant ECG input shows a large performance drop, indicating the generated reports are driven by the waveform morphology rather than by repeated corpus phrases alone.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The headline margin likely overstates the true gap, because the reference score comes from random splits while this paper's headline score comes from the official patient-exclusive splits; a rerun of the reference model under identical splits and preprocessing could narrow the gap.
  • Since METEOR, BLEU, and ROUGE measure lexical overlap rather than clinical correctness, the reported improvement does not by itself establish that the generated reports are clinically accurate or safe to act on.
  • The same encoder-decoder recipe could be tested on other one-dimensional medical signals, such as EEG, where labeled free-text reports are also scarce but routine clinical notes exist.
  • The strong effect of abbreviation unification on noisy real-world reports suggests that a shared normalization step may be as important as model architecture for other clinical text-generation tasks.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 7 minor

Summary. The paper proposes an encoder-decoder architecture for automated ECG report generation, combining a 1D ResNet encoder with either an LSTM or a Transformer decoder, and trains it on PTB-XL and a proprietary single-lead ICM dataset. It reports high METEOR/BLEU/ROUGE scores on both datasets, claims state-of-the-art performance over the method of Qiu et al. (55.53% vs. 24.51% METEOR), and includes ablations on encoder size, decoder type, pre-training, translation, and abbreviation unification. A sanity check with constant ECG input is used to show that the model partially relies on ECG morphology, and the code is made publicly available.

Significance. If the reported comparison were valid, the paper would be a useful contribution: it evaluates ECG caption generation on the official patient-exclusive PTB-XL splits for the first time, provides public code, and transparently reports negative results (e.g., pre-training did not improve, translation helped modestly). The architecture is standard but clearly described, and the sanity check is an honest addition. However, the headline state-of-the-art claim is not yet substantiated because it mixes scores from different evaluation protocols, and the random-split comparison lacks re-runs of the reference model and repeated-seed variance estimates. The result is therefore a plausible but not yet verified benchmark claim.

major comments (3)
  1. [Abstract and Section VI-A (Table II)] The headline claim comparing 55.53% to 24.51% METEOR mixes results from different evaluation protocols. The 55.53% is obtained on the official patient-exclusive PTB-XL splits with reports translated to English and abbreviation-unified, while the 24.51% is Qiu et al.'s published number from their own random splits and, presumably, their own preprocessing and metric implementation. The Table II footnote acknowledges the split mismatch, but the abstract still asserts a direct superiority comparison. METEOR is not invariant to reference text translation, tokenization, stemming, or synonym handling, so these two numbers cannot be compared without re-evaluating Qiu et al.'s model under this paper's exact pipeline. Please re-run the reference under the same protocol, or present the comparison only as an indicative cross-protocol difference with an explicit caveat.
  2. [Section VI-B, Table III] The random-split experiment does not fix the benchmark problem. The reference column in Table III repeats the same published values rather than recomputing them with the paper's translation, tokenization, and METEOR script; the caption says preprocessing was standardized across experiments, but no evidence is provided that the reference model was actually executed in this environment. In addition, Table III reports a single random split without repeated seeds or confidence intervals, so the 'consistently outperformed' claim is not backed by a variance estimate. Please report re-run scores for the reference model under identical preprocessing and metric implementation, and provide results over at least 3-5 random splits or seeds for both models.
  3. [Section VI-D] The sanity check shows a strong language-prior component: replacing the ECG with a constant vector still yields METEOR 0.31 on PTB-XL (vs 0.56 with ECG) and 24.07% on ICM (vs 32.59%). The paper interprets the drop as confirming ECG dependence, which is fair, but the absolute levels also mean that a substantial fraction of the reported scores is attributable to corpus statistics rather than signal content. This caveat should be carried into the abstract and conclusion, and the claim that the model 'significantly outperforms' should be qualified accordingly, since a large part of the reported absolute performance may not reflect ECG morphology.
minor comments (7)
  1. [Section III-B, Eq. (4)] Equation (4) contains a stray '+' inside the exponent: the numerator should be exp(w^T(W1 h_{t-1} + W2 f_k)) rather than exp(w^T(W1 h_{t-1} + W2 f_k)+).
  2. [Table II header] The table header says 'ROUGE-1 (%)' over the columns P, R, F; please clarify whether the P/R/F columns report ROUGE-1 precision, recall, and F1, since the current labeling is ambiguous.
  3. [Running header] The running header on pages 3 and 5 reads 'BLEICH et al.: AUTOMATED MEDICAL DATA EXTRACTION USING COMBINED NLP ON FREE MEDICAL TEXT AND DNN ON INACCURATE LABELS', which does not match the paper's title; this should be corrected.
  4. [Figure 3] The y-axis of Figure 3 is truncated (starting at 0.375) and the caption does not state the total number of epochs; please add the final epoch count and mark the early-stopping point explicitly.
  5. [Section III-C] The sentence 'with the METEOR score (see section V-D under METEOR) as the target metric' is ambiguous: please specify whether learning-rate decay and early stopping are triggered by METEOR, by cross-entropy loss, or by both.
  6. [Section IV-B and V-B] The description of Qiu et al.'s model is inconsistent: Section V-B says they use a ResNet-based encoder with GPT-2/BERT embeddings and an optimal-transport objective, while the Table II footnote says 'Transformer encoder and BART decoder'. Please reconcile these descriptions.
  7. [Section V-A and Table II] The phrase 'outperforms the current state-of-the-art reference method across all metrics' is not fully supported because Table II lists '-' for the reference BLEU-4 and no BLEU-2, so 'all metrics' is not verifiable. Please restrict the claim to the metrics actually reported for both models.

Circularity Check

0 steps flagged · score 1.0 of 10

No circular derivation; the central evaluation is external, and the only self-citation is non-load-bearing.

full rationale

The paper's derivation chain is self-contained. The encoder-decoder models are trained with cross-entropy loss on PTB-XL free-text reports and evaluated on the held-out official PTB-XL test split (Table II) plus a random-split experiment (Table III); the reference number 24.51 is quoted from Qiu et al. rather than fitted or derived from the authors' own outputs. No equation in the paper defines a predicted quantity in terms of its own ground truth, and no fitted parameter is renamed as a prediction. The constant-input sanity check (Section VI-D) is an honest control and is not circular: it reports a residual METEOR of 31% on PTB-XL and 24.07% on ICM, which the authors explicitly attribute to recurring tokens, and it does not feed back into the reported headline scores. The only self-citation is reference [4] (the authors' earlier ICM classification pipeline), used to support the general statement that ICM data are of growing importance and that labeled data creation is resource-intensive; it is not load-bearing for any architectural choice, metric, or result. Thus the main limitation is benchmark comparability — the 24.51 reference score comes from different splits, preprocessing (German-to-English translation), and possibly different METEOR implementations — which is a validity or fairness concern, not circularity. Score 1 reflects one minor non-load-bearing self-citation with no circular reduction.

Assumptions & free parameters 6 free parameters · 4 assumptions · 0 invented entities

The central empirical claim rests on tuned hyperparameters (K, learning rates, vocabulary, teacher forcing, early stopping) and on assumptions that noisy free-text reports, machine translation, and METEOR scores are valid proxies for clinical correctness. No new physical or conceptual entities are introduced.

free parameters (6)
  • ECG downsampling factor K = 1 (Transformer), 240 (LSTM)
    A user-set input size in Eq. 1 and Fig. 2 that determines how much temporal detail the decoder attends to; tuned per architecture.
  • Encoder learning rate = 4e-4
    Reported as optimal in Section III-C; affects all headline results.
  • Decoder learning rate = 1e-4 (Transformer), 4e-4 (LSTM)
    Reported as optimal in Section III-C.
  • Vocabulary size = 1024 tokens per dataset
    Each dataset vocabulary was truncated to the 1024 most frequent tokens; this changes the output space and therefore all metric scores.
  • Teacher forcing probability = 1 during training
    Tuned hyperparameter; listed in Section III-C.
  • Early stopping patience = 30 epochs
    Early stopping was implemented at 30 epochs and the best METEOR on validation was used; this is a hand-chosen stopping rule.
assumptions (4)
  • domain assumption METEOR is an adequate primary measure of clinical report quality.
    The paper selects METEOR for early stopping and headline comparisons without human evaluation or clinical validity testing (Section V-D).
  • domain assumption Free-text reports from routine care are sufficiently accurate as training targets.
    The paper states these reports were not cross-checked for accuracy and are inconsistent (Section IV-A2), yet uses them as ground truth.
  • domain assumption OPUS-MT translation from German to English preserves clinical content for evaluation.
    German PTB-XL reports were machine translated to English (Section IV-B) with no manual verification reported.
  • domain assumption The official PTB-XL test split reports are a gold standard.
    The paper relies on PTB-XL's own validation/test text as manually reviewed gold standards (Section V-C).

how reviews work

0 comments
Cite this review

Pith. "Pith review of Automated Medical Report Generation for ECG Data: Bridging Medical Text and Signal Processing with Deep Learning." pith.science (2026). https://pith.science/paper/2EB5LKOA

@misc{pith2026241204067,
  author       = {Pith},
  title        = {Pith review of: Automated Medical Report Generation for ECG Data: Bridging Medical Text and Signal Processing with Deep Learning},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/2EB5LKOA}},
  note         = {Machine review of arXiv:2412.04067}
}
read the original abstract

Recent advances in deep learning and natural language generation have significantly improved image captioning, enabling automated, human-like descriptions for visual content. In this work, we apply these captioning techniques to generate clinician-like interpretations of ECG data. This study leverages existing ECG datasets accompanied by free-text reports authored by healthcare professionals (HCPs) as training data. These reports, while often inconsistent, provide a valuable foundation for automated learning. We introduce an encoder-decoder-based method that uses these reports to train models to generate detailed descriptions of ECG episodes. This represents a significant advancement in ECG analysis automation, with potential applications in zero-shot classification and automated clinical decision support. The model is tested on various datasets, including both 1- and 12-lead ECGs. It significantly outperforms the state-of-the-art reference model by Qiu et al., achieving a METEOR score of 55.53% compared to 24.51% achieved by the reference model. Furthermore, several key design choices are discussed, providing a comprehensive overview of current challenges and innovations in this domain. The source codes for this research are publicly available in our Git repository https://git.zib.de/ableich/ecg-comment-generation-public

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

30 extracted references · 17 canonical work pages

  1. [1]

    Show and tell: A neural image caption generator,

    O. Vinyals, A. Toshev, S. Bengio, and D. Erhan, “Show and tell: A neural image caption generator,” in Proceedings of the IEEE conference on computer vision and pattern recognition , 2015, pp. 3156–3164

  2. [2]

    Show, attend and tell: Neural image caption generation with visual attention,

    K. Xu, J. Ba, R. Kiros, K. Cho, A. Courville, R. Salakhudinov, R. Zemel, and Y . Bengio, “Show, attend and tell: Neural image caption generation with visual attention,” in International conference on machine learning . PMLR, 2015, pp. 2048–2057

  3. [3]

    A survey on automatic generation of med- ical imaging reports based on deep learning,

    T. Pang, P. Li, and L. Zhao, “A survey on automatic generation of med- ical imaging reports based on deep learning,” BioMedical Engineering OnLine, vol. 22, no. 1, p. 48, 2023

  4. [4]

    Enhancing electrocardiogram (ecg) analysis of implantable cardiac monitor data: An efficient pipeline for multi-label classification,

    A. Bleich, A. Linnemann, B. Jaidi, B. H. Diem, and T. O. Conrad, “Enhancing electrocardiogram (ecg) analysis of implantable cardiac monitor data: An efficient pipeline for multi-label classification,” Ma- chine Learning and Knowledge Extraction, vol. 5, no. 4, pp. 1539–1556, 2023

  5. [5]

    Mimic- iv, a freely accessible electronic health record dataset,

    A. E. Johnson, L. Bulgarelli, L. Shen, A. Gayles, A. Shammout, S. Horng, T. J. Pollard, S. Hao, B. Moody, B. Gow et al. , “Mimic- iv, a freely accessible electronic health record dataset,” Scientific data , vol. 10, no. 1, p. 1, 2023

  6. [6]

    Ptb-xl, a large publicly available electro- cardiography dataset,

    P. Wagner, N. Strodthoff, R.-D. Bousseljot, D. Kreiseler, F. I. Lunze, W. Samek, and T. Schaeffter, “Ptb-xl, a large publicly available electro- cardiography dataset,” Scientific data, vol. 7, no. 1, pp. 1–15, 2020

  7. [7]

    Deep residual learning for image recognition,

    K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in Proceedings of the IEEE conference on computer vision and pattern recognition , 2016, pp. 770–778

  8. [8]

    Long short-term memory,

    S. Hochreiter and J. Schmidhuber, “Long short-term memory,” Neural computation, vol. 9, no. 8, pp. 1735–1780, 1997

Show all 30 references
  1. [9]

    Attention is all you need,

    A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. u. Kaiser, and I. Polosukhin, “Attention is all you need,” in Advances in Neural Information Processing Systems, I. Guyon, U. V . Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garne...

  2. [10]

    Automatic diagnosis and localization of myocardial infarction using morphological features of ecg signal,

    S. R. Moghadam and B. M. Asl, “Automatic diagnosis and localization of myocardial infarction using morphological features of ecg signal,” Biomedical Signal Processing and Control , vol. 83, p. 104671, 2023

  3. [11]

    Algorithms for automated diagnosis of cardiovascular diseases based on ecg data: A comprehensive systematic review,

    H. V . Denysyuk, R. J. Pinto, P. M. Silva, R. P. Duarte, F. A. Marinho, L. Pimenta, A. J. Gouveia, N. J. Gonc ¸alves, P. J. Coelho, E. Zdravevski et al. , “Algorithms for automated diagnosis of cardiovascular diseases based on ecg data: A comprehensive systematic review,” Heli...

  4. [12]

    Hierarchical deep learning with generative adversarial network for automatic cardiac diagnosis from ecg signals,

    Z. Wang, S. Stavrakis, and B. Yao, “Hierarchical deep learning with generative adversarial network for automatic cardiac diagnosis from ecg signals,” Computers in Biology and Medicine, vol. 155, p. 106641, 2023

  5. [13]

    A hybrid scheme for heart disease diagnosis using rough set and cuckoo search technique,

    P. K. Ahmed and D. P. Acharjya, “A hybrid scheme for heart disease diagnosis using rough set and cuckoo search technique,” Journal of Medical Systems, vol. 44, no. 1, 2019

  6. [14]

    Golden standard or obsolete method? review of ecg applications in clinical and experimental context,

    T. Stracina, M. Ronzhina, R. Redina, and M. Novakova, “Golden standard or obsolete method? review of ecg applications in clinical and experimental context,” Frontiers in Physiology, p. 613, 2022

  7. [15]

    Transfer knowledge from natural language to electrocardiography: Can we detect cardiovascular disease through language models?

    J. Qiu, W. Han, J. Zhu, M. Xu, M. Rosenberg, E. Liu, D. Weber, and D. Zhao, “Transfer knowledge from natural language to electrocardiography: Can we detect cardiovascular disease through language models?” in Findings of the Association for Computational 12 ARXIV PRE-PRINT Ling...

  8. [16]

    Learning to automatically generate accurate ecg captions,

    M. G. Bartels, I. Najdenkoska, R. R. van de Leur, A. Sammani, K. Taha, D. M. Knigge, P. A. Doevendans, M. Worring, and R. van Es, “Learning to automatically generate accurate ecg captions,” in International Con- ference on Medical Imaging with Deep Learning . PMLR, 2022, pp. 86–102

  9. [17]

    Automatic triage of 12-lead ecgs using deep convolutional neural networks,

    R. R. van de Leur, L. J. Blom, E. Gavves, I. E. Hof, J. F. van der Heijden, N. C. Clappers, P. A. Doevendans, R. J. Hassink, and R. van Es, “Automatic triage of 12-lead ecgs using deep convolutional neural networks,” Journal of the American Heart Association , vol. 9, no. 10, ...

  10. [18]

    Multiple object recognition with visual attention,

    J. Ba, V . Mnih, and K. Kavukcuoglu, “Multiple object recognition with visual attention,” arXiv preprint arXiv:1412.7755 , 2014

  11. [19]

    A learning algorithm for continually running fully recurrent neural networks,

    R. J. Williams and D. Zipser, “A learning algorithm for continually running fully recurrent neural networks,” Neural computation , vol. 1, no. 2, pp. 270–280, 1989

  12. [20]

    Physiobank, physiotoolkit, and physionet: components of a new research resource for complex physiologic signals,

    A. L. Goldberger, L. A. Amaral, L. Glass, J. M. Hausdorff, P. C. Ivanov, R. G. Mark, J. E. Mietus, G. B. Moody, C.-K. Peng, and H. E. Stanley, “Physiobank, physiotoolkit, and physionet: components of a new research resource for complex physiologic signals,” circulation, vol. 1...

  13. [21]

    BIOMONITOR III, IIIm,

    “BIOMONITOR III, IIIm,” https://www.biotronik.com/en-us/products/ crm/arrhythmia-monitoring/biomonitor-3, accessed: 2022-12-08

  14. [22]

    Democratizing neural machine translation with OPUS- MT,

    J. Tiedemann, M. Aulamo, D. Bakshandaeva, M. Boggia, S.-A. Gr¨onroos, T. Nieminen, A. Raganato Y . Scherrer, R. Vazquez, and S. Virpioja, “Democratizing neural machine translation with OPUS- MT,” Language Resources and Evaluation , no. 58, pp. 713–755, 2023

  15. [23]

    OPUS-MT — Building open transla- tion services for the World,

    J. Tiedemann and S. Thottingal, “OPUS-MT — Building open transla- tion services for the World,” in Proceedings of the 22nd Annual Con- ferenec of the European Association for Machine Translation (EAMT) , Lisbon, Portugal, 2020

  16. [24]

    Neural machine translation of rare words with subword units,

    R. Sennrich, B. Haddow, and A. Birch, “Neural machine translation of rare words with subword units,” arXiv preprint arXiv:1508.07909, 2015

  17. [25]

    Bleu: a method for automatic evaluation of machine translation,

    K. Papineni, S. Roukos, T. Ward, and W.-J. Zhu, “Bleu: a method for automatic evaluation of machine translation,” in Proceedings of the 40th annual meeting of the Association for Computational Linguistics , 2002, pp. 311–318

  18. [26]

    Meteor: An automatic metric for mt evalua- tion with improved correlation with human judgments,

    S. Banerjee and A. Lavie, “Meteor: An automatic metric for mt evalua- tion with improved correlation with human judgments,” in Proceedings of the acl workshop on intrinsic and extrinsic evaluation measures for machine translation and/or summarization , 2005, pp. 65–72

  19. [27]

    Rouge: A package for automatic evaluation of summaries,

    C.-Y . Lin, “Rouge: A package for automatic evaluation of summaries,” in Text summarization branches out , 2004, pp. 74–81

  20. [28]

    Mrscore: Evaluating radiology report generation with llm-based reward system,

    Y . Liu, Z. Wang, Y . Li, X. Liang, L. Liu, L. Wang, and L. Zhou, “Mrscore: Evaluating radiology report generation with llm-based reward system,” arXiv preprint arXiv:2404.17778 , 2024

  21. [29]

    Mimic-iv-ecg-diagnostic electrocardiogram matched subset,

    B. Gow, T. Pollard, L. A. Nathanson, A. Johnson, B. Moody, C. Fer- nandes, N. Greenbaum, S. Berkowitz, D. Moukheiber, P. Eslami et al. , “Mimic-iv-ecg-diagnostic electrocardiogram matched subset,” Type: dataset, 2023

  22. [2017]

    Available: https://proceedings.neurips.cc/paper files/ paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

    [Online]. Available: https://proceedings.neurips.cc/paper files/ paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

Pith tools

Reviewed August 11, 2026 · model on record in the stance chip above.