Skip to main content
Log in

A hybrid approach for stain normalisation in digital histopathological images

  • Published:
Multimedia Tools and Applications Aims and scope Submit manuscript

Abstract

Stain in-homogeneity adversely affects segmentation and quantification of tissues in histology images. Stain normalisation techniques have been used to standardise the appearance of images. However, most the available stain normalisation techniques only work on a particular kind of stain images. In addition, some of these techniques fail to utilise both the spatial and textural information in histology images, leading to image tissue distortion. In this paper, a hybrid approach has been developed, based on an octree colour quantisation algorithm combined with the Beer-Lambert law, a modified blind source separation algorithm, and a modified colour transfer approach. The hybrid method consists of two stages the stain separation stage and colour transfer stage. An octree colour quantisation algorithm combined with Beer-Lambert law, and a modified blind source separation algorithm are used during the stain separation stage to computationally estimate the amount of stain in an histology image based on its chromatic and luminous response. A modified colour transfer algorithm is used during the colour transfer stage to minimise the effect of varying staining and illumination. The hybrid method addresses the colour variation problem in both H&DAB (Haemotoxylin and Diaminobenzidine) and H&E (Haemotoxylin and Eosin) stain images. The stain normalisation method is validated against ground truth data. It is widely known that the Beer-Lambert law applies to only stains (such as haematoxylin, eosin) that absorb light. We demonstrate that the Beer-Lambert law applies is applicable to images containing a DAB stain. Better stain normalisation results are obtained in both H&E and H&DAB images.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

References

  1. Alsubaie N, Trahearn N, Raza SEA, Snead D, Rajpoot NM (2017) Stain deconvolution using statistical analysis of multi-resolution stain colour representation. PLOS ONE 12(1):1–15

    Google Scholar 

  2. Andrews H, Patterson C (1976) Singular value decompositions and digital image processing. IEEE Transactions on Acoustics Speech, and Signal Processing 24(1):26–53

    Google Scholar 

  3. Asiedu L, Adebanji A, Oduro FT, Mettle FO (2016) Statistical assessment of pca/svd and fft-pca/svd on variable facial expressions

  4. Babaee M, Tsoukalas S, Babaee M, Rigoll G, Datcu M (2016) Discriminative nonnegative matrix factorization for dimensionality reduction. Neurocomputing 173:212–223

    Google Scholar 

  5. Berry MW, Gillis N, Glineur F (2009) Document classification using nonnegative matrix factorization and underapproximation. In: 2009 IEEE International symposium on circuits and systems. IEEE, pp 2782–2785

  6. Bogaardt L, Goncalves R, Zurita-Milla R, Izquierdo-Verdiguier E (2019) Dataset reduction techniques to speed up svd analyses on big geo-datasets. ISPRS International Journal of Geo-Information 8(2):55

    Google Scholar 

  7. Bougacha A, Njeh I, Boughariou J, Kammoun O, Mahfoudh KB, Dammak M, Mhiri C, Hamida AB (2018) Rank-two nmf clustering for glioblastoma characterization. Journal of Healthcare Engineering, 2018

  8. Burns PD, Berns RS (1999) Quantization in multispectral color image acquisition. In: Color and imaging conference, vol 1999, pp 32–35. Society for Imaging Science and Technology

  9. Cahill ND, Chew SE, Wenger PS (2015) Spatial-spectral dimensionality reduction of hyperspectral imagery with partial knowledge of class labels. In: Algorithms and technologies for multispectral, hyperspectral, and ultraspectral imagery XXI, vol 9472, pp 94720S. International Society for Optics and Photonics

  10. Cahill ND, Czaja W, Messinger DW (2014) Schroedinger Eigenmaps with nondiagonal potentials for spatial-spectral clustering of hyperspectral imagery

  11. Carey Ds, Wijayathunga VN, Bulpitt AJ, Treanor D (2015) A novel approach for the colour deconvolution of multiple histological stains. In: Proceedings of the 19th conference of medical image understanding and analysis, pp 156–162. BMVA

  12. Celis R, Romo D, Romero E (2015) Blind colour separation of h&e stained histological images by linearly transforming the colour space. J Microsc 260(3):377–388

    Google Scholar 

  13. Charles RM, Taylor KM, Curry JH (2015) Nonnegative matrix factorization applied to reordered pixels of single images based on patches to achieve structured nonnegative dictionaries. arXiv preprint arXiv:1506.08110

  14. Ciompi F, Geessink O, Bejnordi BE, de Souza GS, Baidoshvili A, Litjens G, van Ginneken B, Nagtegaal I, van der Laak J (2017) The importance of stain normalization in colorectal tissue classification with convolutional networks. In: 2017 IEEE 14th international symposium on biomedical imaging (ISBI 2017). IEEE, pp 160–163

  15. Dera D, Bouaynaya N, Fathallah-Shaykh HM (2016) Automated robust image segmentation: level set method using nonnegative matrix factorization with application to brain mri. Bull Math Biol 78(7):1450–1476

    MathSciNet  MATH  Google Scholar 

  16. Duong V-H, Lee Y-S, Pham B-T, Bao PT, Wang J-C (2016) Nmf-based image segmentation. In: 2016 IEEE International conference on consumer electronics-taiwan (ICCE-TW). IEEE, pp 1–2

  17. Ebied A, Kinney-Lang E, Spyrou L, Escudero J (2018) Evaluation of matrix factorisation approaches for muscle synergy extraction. Med Eng Phys 57:51–60

    Google Scholar 

  18. Finlayson GD, Schiele B, Crowley JL (1998) Comprehensive colour image normalization. In: European conference on computer vision. Springer, pp 475–490

  19. Fu X, Huang K, Sidiropoulos ND, Ma W-K (2018) Nonnegative matrix factorization for signal and data analytics: identifiability, algorithms, and applications. arXiv preprint arXiv:1803.01257

  20. Garcia-Torres L, Caballero-Novella JJ, Gomez-Candon D, De-Castro AI (2014) Semi-automatic normalization of multitemporal remote images based on vegetative pseudo-invariant features. PloS one 9(3):e91275

    Google Scholar 

  21. Gavrilovic M, Azar JC, Lindblad J, Wählby C, Bengtsson E, Busch C, Carlbom IB (2013) Blind color decomposition of histological images

  22. Ghosh B, Karri SPK, Sheet D, Garud H, Ghosh A, Ray AK, Chatterjee J (2016) A generalized framework for stain separation in digital pathology applications. In: 2016 IEEE annual India conference (INDICON). IEEE, pp 1–4

  23. Golub GH, Van Loan CF (2013) Matrix computations. Johns Hopkins studies in the mathematical sciences. Johns Hopkins University Press, Baltimore

    Google Scholar 

  24. Guillamet D, Schiele B, Vitria J (2002) Analyzing non-negative matrix factorization for image classification. In: Object recognition supported by user interaction for service robots, vol 2. IEEE, pp 116–119

  25. Guo L, Xu D, Qiang Z (2016) Background subtraction using local svd binary pattern. In: Proceedings of the IEEE conference on computer vision and pattern recognition workshops, pp 86–94

  26. Hamidinekoo A, Zwiggelaar R (2017) Deep learning in medical image analysis and multimodal learning for clinical decision support. In: Cardoso MJ, Arbel T, Carneiro G, Syeda-Mahmood T, Tavares JMRS, Moradi M, Bradley A, Greenspan H, Papa JP, Madabhushi A, Nascimento JC, Cardoso JS, Belagiannis V, Lu Z (eds). Springer International Publishing, Cham, pp 213–221

  27. Hauta-Kasari M, Parkkinen J, Jääskeläinen T, Lenz R (1999) Multi-spectral texture segmentation based on the spectral cooccurrence matrix. Pattern Anal Appl 2:275–284

    Google Scholar 

  28. Hoffman RA, Kothari S, Wang MD (2014) Comparison of normalization algorithms for cross-batch color segmentation of histopathological images. In: 2014 36th annual international conference of the IEEE engineering in medicine and biology society, pp 194–197

  29. Hong C, Yu J, Tao D, Wang M (2014) Image-based three-dimensional human pose recovery by multiview locality-sensitive sparse retrieval. IEEE Trans Ind Electron 62(6):3742–3751

    Google Scholar 

  30. Horn RA, Johnson CR (1987) Matrix analysis. Cambridge etc., Cambridge University Press 1985. xiii, 561 s., Âč 35.00. isbn 0âÂR̂521âÂR̂30586ÂR̂1. ZAMM - Journal of Applied Mathematics and Mechanics / Zeitschrift für Angewandte Mathematik und Mechanik 67(3):212–212

    Google Scholar 

  31. Hotelling H (1933) Analysis of a complex of statistical variables into principal components. J Educ Psychol 24(6):417

    MATH  Google Scholar 

  32. Hyvärinen A, Oja E (2000) Independent component analysis: algorithms and applications. Neural Netw 13(4-5):411–430

    Google Scholar 

  33. Jain AK (1989) Fundamentals of digital image processing. Prentice Hall, Englewood Cliffs

    MATH  Google Scholar 

  34. Janowczyk A, Basavanhally A, Madabhushi A (2017) Stain normalization using sparse autoencoders (stanosa): application to digital pathology. Recent developments in machine learning for medical imaging applications, vol 57, pp 50–61

    Google Scholar 

  35. Jensen EC (2013) Quantitative analysis of histological staining and fluorescence using imagej. Anat Rec 296(3):378–381

    Google Scholar 

  36. Jia Z, Yang Y (2018) Modified truncated randomized singular value decomposition (mtrsvd) algorithms for large scale discrete ill-posed problems with general-form regularization. Inverse Probl 34(5):055013

    MathSciNet  MATH  Google Scholar 

  37. Kalatehjari E, Yaghmaee F (2018) A new reduced-reference image quality assessment based on the svd signal projection. Multimed Tools Appl 77(19):25053–25076

    Google Scholar 

  38. Karsh RK, Laskar RH et al (2017) Robust image hashing through dwt-svd and spectral residual method. EURASIP Journal on Image and Video Processing 2017 (1):31

    Google Scholar 

  39. Kather JN, Weis C-A, Marx A, Schuster AK, Schad LR, Zöllner FG (2015) New colors for histology: optimized bivariate color maps increase perceptual contrast in histological images. Plos one 10(12):e0145572

    Google Scholar 

  40. Khan AM, Rajpoot N, Treanor D, Magee D (2014) A nonlinear mapping approach to stain normalization in digital histopathology images using image-specific color deconvolution. IEEE Trans Biomed Eng 61(6):1729–1738

    Google Scholar 

  41. Khan H, Mihoubi S, Mathon B, Thomas J-B, Hardeberg J (2018) Hytexila: high resolution visible and near infrared hyperspectral texture images. Sensors 18 (7):2045

    Google Scholar 

  42. Kim HH, Elman GC (1990) Normalization of satellite imagery. Int J Remote Sens 11(8):1331–1347

    Google Scholar 

  43. Konstantinides K, Natarajan B, Yovanof GS (1997) Noise estimation and filtering using block-based singular value decomposition. IEEE Trans Image Process 6(3):479–483

    Google Scholar 

  44. Kothari S, Phan JH, Moffitt RA, Stokes TH, Hassberger SE, Chaudry Q, Young AN, Wang MD (2011) Automatic batch-invariant color segmentation of histological cancer images. In: 2011 IEEE International symposium on biomedical imaging: from nano to macro. IEEE, pp 657–660

  45. Krutsch R, Tenorio D (2011) Histogram equalization

  46. Lee DD, Seung SH (1999) Learning the parts of objects by non-negative matrix factorization. Nature 401(6755):788

    MATH  Google Scholar 

  47. Leuschner J, Schmidt M, Fernsel P, Lachmund D, Boskamp T, Maass P (2018) Supervised non-negative matrix factorization methods for MALDI imaging applications. Bioinformatics 11:1940–1947

    Google Scholar 

  48. Li K (2004) Advanced image processing homework 1 color quantization : a median cut approach

  49. Li S, Zhou Y, Chen J, Huai W-J (2012) Nature image feature extraction using several sparse variants of non-negative matrix factorization algorithm. In: International symposium on neural networks. Springer, pp 274–281

  50. Li L, Kameoka H, Makino S (2017) Discriminative non-negative matrix factorization with majorization-minimization. In: Hands-free speech communications and microphone arrays (HSCMA), 2017. IEEE, pp 141–145

  51. Li X, Plataniotis KN (2015) A complete color normalization approach to histopathology images using color cues computed from saturation-weighted statistics. IEEE Trans Biomed Eng 62(7):1862–1873

    Google Scholar 

  52. Li X, Plataniotis KN (2015) A complete color normalization approach to histopathology images using color cues computed from saturation-weighted statistics. IEEE Trans Biomed Eng 62(7):1862–1873

    Google Scholar 

  53. Liang L, Shan L, Liu F, Niu B, Xu G (2019) Sparse envelope spectra for feature extraction of bearing faults based on nmf. Appl Sci 9(4):755

    Google Scholar 

  54. Litjens G, Kooi T, Bejnordi BE, Setio AAA, Ciompi F, Ghafoorian M, van der Laak JAWM, van Ginneken B, Sánchez CI (2017) A survey on deep learning in medical image analysis. Med Image Anal 42:60–88

    Google Scholar 

  55. Liu W, Peng F, Feng S, You J, Chen Z, Wu J, Yuan K, Ye D (2008) Semantic feature extraction for brain ct image clustering using nonnegative matrix factorization. In: International conference on medical biometrics. Springer, pp 41–48

  56. Local Binary Pattern. Content based image retrieval using gray

  57. Macenko M, Niethammer M, Marron JS, Borland D, Woosley JT, Guan X, Schmitt C, Thomas NE (2009) A method for normalizing histology slides for quantitative analysis. In: ISBI’09. IEEE International symposium on biomedical imaging: from nano to macro, 2009. IEEE, pp 1107–1110

  58. Muhimmah I, Wijaya DP, Indrayanti (2017) Color swapping to enhance breast cancer digital images qualities using stain normalization. IOP Conf Ser Mater Sci Eng 185(1):012029

    Google Scholar 

  59. Naylor P, Laé M, Reyal F, Walter T (2017) Nuclei segmentation in histopathology images using deep neural networks. In: 2017 IEEE 14th international symposium on biomedical imaging (ISBI 2017), pp 933–936

  60. Ødegård J, Indahl U, Strandén I, Meuwissen THE (2018) Large-scale genomic prediction using singular value decomposition of the genotype matrix. Genet Sel Evol 50(1):6

    Google Scholar 

  61. Ortega-Martorell S, Lisboa PJG, Vellido A, Simões RV, Pumarola M, Julià-Sapé M, Arús C (2012) Convex non-negative matrix factorization for brain tumor delimitation from mrsi data. PLoS One 7(10):e47824

    Google Scholar 

  62. Paatero P, Tapper U (1994) Positive matrix factorization: a non-negative factor model with optimal utilization of error estimates of data values. Environmetrics 5 (2):111–126

    Google Scholar 

  63. Papadias CB (2000) Globally convergent blind source separation based on a multiuser kurtosis maximization criterion. IEEE Trans Signal Process 48(12):3508–3519

    MathSciNet  Google Scholar 

  64. Pearson K (1901) Liii. on lines and planes of closest fit to systems of points in space. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science 2 (11):559–572

    MATH  Google Scholar 

  65. Peter L, Mateus D, Chatelain P, Schworm N, Stangl S, Multhoff G, Navab N (2014) Leveraging random forests for interactive exploration of large histological images. In: International conference on medical image computing and computer-assisted intervention. Springer, pp 1–8

  66. Rabinovich A, Agarwal S, Laris C, Price JH, Belongie SJ (2004) Unsupervised color decomposition of histologically stained tissue samples. In: Advances in neural information processing systems, pp 667–674

  67. Reinhard E, Adhikhmin M, Gooch B, Shirley P (2001) Color transfer between images. IEEE Comput Graph Appl 21(5):34–41

    Google Scholar 

  68. Rey W (2007) Total singular value decomposition. robust svd, regression and location-scale. arXiv preprint arXiv:0706.0096

  69. Reyes-Aldasoro CC, Williams LJ, Akerman S, Kanthou C, Tozer GM (2010) An automatic algorithm for the segmentation and morphological analysis of microvessels in immunostained histological tumour sections. J Microsc 242(3):262–278

    Google Scholar 

  70. Ruifrok AC, Johnston DA et al (2001) Quantification of histochemical staining by color deconvolution. Anal Quant Cytol Histol 23(4):291–299

    Google Scholar 

  71. Sadek RA (2012) Svd based image processing applications: state of the art, contributions and research challenges. arXiv preprint arXiv:1211.7102

  72. Sampath R, Biros G (2010) A parallel geometric multigrid method for finite elements on octree meshes. SIAM J Sci Comput 32(3):1361–1392

    MathSciNet  MATH  Google Scholar 

  73. Saraswat M, Arya KV (2013) Colour normalisation of histopathological images. Computer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization 1(4):185–197

    Google Scholar 

  74. Saraswat M, Arya KV (2014) Automated microscopic image analysis for leukocytes identification: a survey. Micron 65:20–33

    Google Scholar 

  75. Schott JR (2016) Matrix analysis for statistics. Wiley, Hoboken

    Google Scholar 

  76. Selim I, Keshk AE, El Shourbugy BM (2016) Galaxy image classification using non-negative matrix factorization. Int J Comput Appl 137(5):4–8

    Google Scholar 

  77. Sertel O, Kong J, Lozanski G, Shana’ah A, Catalyurek U, Saltz J, Gurcan M (2008) Texture classification using nonlinear color quantization: application to histopathological image analysis. In: ICASSP 2008. IEEE International conference on acoustics, speech and signal processing, 2008. IEEE, pp 597–600

  78. Sha ASL, Schonfeld D (2017) Color normalization of histology slides using graph regularized sparse nmf

  79. Shaban MT, Baur C, Navab N, Albarqouni S (2018) Staingan: stain style transfer for digital histological images. arXiv preprint arXiv:1804.01601

  80. Shan D, Xu X, Liang T, Ding S (2018) Rank-adaptive non-negative matrix factorization. Cogn Comput 10(3):506–515

    Google Scholar 

  81. Soelter J, Schumacher J, Spors H, Schmuker M (2014) Automatic segmentation of odor maps in the mouse olfactory bulb using regularized non-negative matrix factorization. NeuroImage 98:279–288

    Google Scholar 

  82. Squires S, Prügel-Bennett A, Niranjan M (2017) Rank selection in nonnegative matrix factorization using minimum description length. Neural Comput 29(8):2164–2176

    MathSciNet  MATH  Google Scholar 

  83. Sun W, Yang G, Du B, Zhang L, Zhang L (2017) A sparse and low-rank near-isometric linear embedding method for feature extraction in hyperspectral imagery classification. IEEE Trans Geosci Remote Sens 55(7):4032–4046

    Google Scholar 

  84. Trahearn N, Snead D, Cree I, Rajpoot N (2015) Multi-class stain separation using independent component analysis. In: Medical imaging 2015: digital pathology, vol 9420, pp 94200J. International Society for Optics and Photonics

  85. Vahadane A, Peng T, Albarqouni S, Baust M, Steiger K, Schlitter AM, Sethi A, Esposito I, Navab N (2015) Structure-preserved color normalization for histological images. In: 2015 IEEE 12th international symposium on biomedical imaging (ISBI). IEEE, pp 1012–1015

  86. Vahadane A, Peng T, Sethi A, Albarqouni S, Wang L, Baust M, Steiger K, Schlitter AM, Esposito I, Navab N (2016) Structure-preserving color normalization and sparse stain separation for histological images. IEEE Trans Med Imaging 35(8):1962–1971

    Google Scholar 

  87. Van Eycke Y-R, Allard J, Salmon I, Debeir O, Decaestecker C (2017) Image processing in digital pathology: an opportunity to solve inter-batch variability of immunohistochemical staining. Sci Rep 7:42964

    Google Scholar 

  88. Vanrell M, Lumbreras F, Pujol A, Baldrich R, Llados J, Villanueva JJ (2001) Colour normalisation based on background information. In: Proceedings. 2001 International conference on image processing, 2001, vol 1. IEEE, pp 874–877

  89. Vicory J, Couture HD, Thomas NE, Borland D, Marron JS, Woosley J, Niethammer M (2015) Appearance normalization of histology slides. Comput Med Imaging Graph 43:89–98

    Google Scholar 

  90. Vollmer C, Hellbach S, Eggert J, Gross H-M (2014) Sparse coding of human motion trajectories with non-negative matrix factorization. Neurocomputing 124:22–32

    Google Scholar 

  91. Wall ME, Rechtsteiner A, Rocha LM (2003) Singular value decomposition and principal component analysis. In: A practical approach to microarray data analysis. Springer, pp 91–109

  92. Wang Z, Kong X, Fu H, Li M, Zhang Y (2015) Feature extraction via multi-view non-negative matrix factorization with local graph regularization. In: 2015 IEEE International conference on image processing (ICIP), pp 3500–3504

  93. Xu J, Xiang L, Wang G, Ganesan S, Feldman M, Shih NNC, Gilmore H, Madabhushi A (2015) Sparse non-negative matrix factorization (snmf) based color unmixing for breast histopathological image analysis. Comput Med Imaging Graph 46:20–29

    Google Scholar 

  94. Xu X, Dexter SD, Eskicioglu AM (2004) A hybrid scheme for encryption and watermarking. In: Security, steganography, and watermarking of multimedia contents VI, vol 5306, pp 725–737. International Society for Optics and Photonics

  95. Yang J-F, Lu C-L (1995) Combined techniques of singular value decomposition and vector quantization for image coding. IEEE Trans Image Process 4(8):1141–1146

    Google Scholar 

  96. Yu J, Tao D, Wang M, Rui Y (2014) Learning to rank using user clicks and visual features for image retrieval. IEEE Trans Cybernetics 45(4):767–779

    Google Scholar 

  97. Zanjani FG, Zinger S, Bejnordi BE, van der Laak JAWM, de With PHN (2018) Stain normalization of histopathology images using generative adversarial networks. In: 2018 IEEE 15th International symposium on biomedical imaging (ISBI 2018), pp 573–577

  98. Zanjani FG, Zinger S, Bejnordi BE, van der Laak JAWM, de With PHN (2018) Stain normalization of histopathology images using generative adversarial networks. In: 2018 IEEE 15th international symposium on biomedical imaging (ISBI 2018). IEEE, pp 573–577

  99. Zdunek R, Phan AH, Cichocki A (2015) Image classification with nonnegative matrix factorization based on spectral projected gradient. In: Artificial neural networks. Springer, pp 31–50

  100. Zhang J, Dai T, He Z, Zhang J (2019) Exploring weighted dual graph regularized non-negative matrix.tri-factorization based collaborative filtering framework for multi-label annotation of remote sensing images. Remote Sens 11(8):922

    Google Scholar 

  101. Zhang Y, Xu T, Ma J (2017) Image categorization using non-negative kernel sparse representation. Neurocomputing 269:21–28

    Google Scholar 

  102. Zheng Y, Jiang Z, Zhang H, Xie F, Shi J, Xue C (2019) Adaptive color deconvolution for histological wsi normalization. Comput Meth Prog Biomed 170:107–120

    Google Scholar 

Download references

Acknowledgements

Faiza Bukenya acknowledges the Islamic Development Bank (IDB) Merit scholarship scheme and University of Nottingham for their generous support. My sincere thanks goes out to Dr. Marie-Christine Pardon and Culi Nerissa (School of Life Science, University of Nottingham) for providing H&DAB stained image slides. My warm thanks goes out to Dr. Abhishek Vahadane for providing H&E stained image slides.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Faiza Bukenya.

Ethics declarations

Conflict of interests

There is no competing interests or exclusive licenses used in preparing this manuscript.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Bukenya, F. A hybrid approach for stain normalisation in digital histopathological images. Multimed Tools Appl 79, 2339–2362 (2020). https://doi.org/10.1007/s11042-019-08262-0

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11042-019-08262-0

Keywords

Navigation