From de131843e4f08abfdd2e9f3107ae7ee783ec6200 Mon Sep 17 00:00:00 2001 From: Andreas Hubel Date: Wed, 23 Sep 2020 09:38:06 +0200 Subject: [PATCH] add architecture diagram --- docs/architecture.png | Bin 0 -> 39474 bytes docs/diagrams.drawio | 1 + 2 files changed, 1 insertion(+) create mode 100644 docs/architecture.png create mode 100644 docs/diagrams.drawio diff --git a/docs/architecture.png b/docs/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..a2dbba15a9f0303d74c989b18b1903d89fcd07f0 GIT binary patch literal 39474 zcmd?PcT`l#_b-YJqnJTa%n}uGz|O%)=bUqkI-PUQt)i$Xf(aFM6jV?YRE&t29mT8& z3g!eVV!)i^tDbOw_ulvW{`b~;>#n;Nbe}$_PSvg*KYQ1n&t+4(cNx$nEG(=$jY{N) zg@wn0|Cx~;!JSbD`9v zP#LUln@gVz$AjNAt6O6R-{3a*{7Z4uz+K@!%Fg@3dLKATkEfk&b|3 z;OSTlxc^_80dM3x7G!Lq1Igq2E9^Wy&A ztykl8833#PV%)z=hhBCE?3%ytsx@AN3eXX{YX{tM{lm%79XJVyKy6UyoC*tgZ1{)E zE(q6-)}y@wIMXk)pe{&oR*M8{+9zHV+UES-^6^6k@Uq z2JtKGI*Q6pfuZ$!Dh98nQ#cZ++Q&1|2!4oB&-KxmHV>O>wz+h8m078=K$UuePA%5k zG$uBf5u-pd)jkJ8Z>IuX#9M<-0@6=%p@d?w1F8mh0xFyx&4mPQb_2&{k$Xfgv>mPD z07b+jNKPr64YNYI6d#YqS6P5Y;3YDgmPEq}>>4Q;LpBDeY`E5|KxnL5DhiDyBRE02 z*W{v5?9hO~E281ZZmOIY@aRKafKx;I;k8Ok9KGA?2ysm-W7vaQy9bRzgI@-RSq#BI zwbFo)>*9mkJf>2r2Xe!66eM8~!9Y0B7I?rTQnQH^j2PSpe+;D=M&S^cJ_=2M(0QdK zHd|;GX^c!bp9JP)1nD-GNQuxWRY3`t!H0SoK^?(O*0XU^lNE2rs)7_6l@IYsX)vLf z!lIy*d?^dO$Q3~;LO;b0;~HgH4H=^2VKEqzjH30a@pvLxpmcLB1Ul6TM-jb5G(!sI zAlVq3R_P1qaa>w@5zCL&xbQlU�uPR-yHrdwn**liQF&C75Kp#h^l~Ibq~=&4 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 M(aJJ~QV)Fp2b91_0ssI2 literal 0 HcmV?d00001 diff --git a/docs/diagrams.drawio b/docs/diagrams.drawio new file mode 100644 index 0000000..89ada83 --- /dev/null +++ b/docs/diagrams.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file