From 2fb9db3c16e54465e8e215049be95469ac4807e3 Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Wed, 29 Apr 2015 22:39:51 +0300 Subject: [PATCH] Tolerant Reader class diagram. --- tolerant-reader/etc/tolerant-reader.png | Bin 0 -> 24123 bytes tolerant-reader/etc/tolerant-reader.ucls | 50 +++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tolerant-reader/etc/tolerant-reader.png create mode 100644 tolerant-reader/etc/tolerant-reader.ucls diff --git a/tolerant-reader/etc/tolerant-reader.png b/tolerant-reader/etc/tolerant-reader.png new file mode 100644 index 0000000000000000000000000000000000000000..396b2559bdc959d2712efe97faaea657c06efd88 GIT binary patch literal 24123 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 literal 0 HcmV?d00001 diff --git a/tolerant-reader/etc/tolerant-reader.ucls b/tolerant-reader/etc/tolerant-reader.ucls new file mode 100644 index 000000000..1c9065583 --- /dev/null +++ b/tolerant-reader/etc/tolerant-reader.ucls @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file