title: “Zhluková analýza finančných ukazovateľov firiem” author: “Natália Nádaská” output: html_notebook —

knitr::opts_chunk$set(
echo    = TRUE,
message = FALSE,
warning = FALSE
)
library(knitr)
library(kableExtra)

Klastrová (zhluková) analýza patrí medzi metódy exploračnej štatistiky. Cieľom je rozdeliť pozorovania (v našom prípade firmy) do relatívne homogénnych skupín podľa viacerých premenných súčasne.

V tejto úlohe budeme zhlukovať firmy podľa vybraných finančných ukazovateľov a charakteristík vedenia:

Kategoria

ROE

ROA

EBIT

EBITDA marža

počet mužov vo vedení (M)

počet žien vo vedení (Z)

rm(list = ls())

firmy_raw <- read.csv("dataEKONOMETRIA.csv", stringsAsFactors = FALSE)

# prevod EBIT z textu s čiarkami na numerickú premennú

firmy_raw$EBIT_num <- as.numeric(gsub(",", "", firmy_raw$EBIT))

# výber premenných, s ktorými budeme pracovať

firmy <- firmy_raw[, c("Nazov", "Kategoria", "ROE", "ROA", "EBIT_num",
"EBITDAmarza", "M", "Z")]

# názvy firiem dáme do riadkov

rownames(firmy) <- firmy$Nazov
firmy$Nazov <- NULL

kable(head(firmy), caption = "Tab. 1: Výber vstupných údajov o firmách") %>%
kable_styling(full_width = FALSE)
Tab. 1: Výber vstupných údajov o firmách
Kategoria ROE ROA EBIT_num EBITDAmarza M Z
Accenture, s.r.o. 3 0.2701929 0.0787903 1250080 0.1389927 1 0
Beiersdorf Slovakia, s.r.o. 1 0.2937733 0.0800622 1072061 0.0338651 2 1
Beko Manufacturing Slovakia spol. s r.o. 4 0.6642877 0.0553037 12586000 0.0566821 6 0
BILLA s.r.o. 5 0.0956213 0.0363139 19677000 0.0802871 5 3
ČSOB Poisťovňa, a.s. 3 0.1222717 0.0216250 8126000 0.0000000 6 2
Deutsche Telekom Systems Solutions Slovakia s.r.o. 4 0.0623055 0.0516547 9582736 0.0717283 4 0
NA

Aby boli premenné porovnateľné, všetky ich štandardizujeme (z-skóre)

firmy_complete <- na.omit(firmy)          # odstránenie prípadných NA
firmy_scaled   <- scale(firmy_complete)   # z-škóre

head(firmy_scaled)
                                                     Kategoria        ROE
Accenture, s.r.o.                                  -0.05512355  0.1452551
Beiersdorf Slovakia, s.r.o.                        -2.00282235  0.1964360
Beko Manufacturing Slovakia spol. s r.o.            0.91872585  1.0006322
BILLA  s.r.o.                                       1.89257525 -0.2336500
ČSOB Poisťovňa, a.s.                               -0.05512355 -0.1758058
Deutsche Telekom Systems Solutions Slovakia s.r.o.  0.91872585 -0.3059615
                                                           ROA   EBIT_num
Accenture, s.r.o.                                  -0.10194050 -0.4295929
Beiersdorf Slovakia, s.r.o.                        -0.09232074 -0.4306003
Beko Manufacturing Slovakia spol. s r.o.           -0.27958230 -0.3654475
BILLA  s.r.o.                                      -0.42321234 -0.3253224
ČSOB Poisťovňa, a.s.                               -0.53431241 -0.3906849
Deutsche Telekom Systems Solutions Slovakia s.r.o. -0.30718227 -0.3824418
                                                   EBITDAmarza          M
Accenture, s.r.o.                                    0.1419677 -1.0093606
Beiersdorf Slovakia, s.r.o.                         -0.5451391 -0.8074885
Beko Manufacturing Slovakia spol. s r.o.            -0.3960082  0.0000000
BILLA  s.r.o.                                       -0.2417277 -0.2018721
ČSOB Poisťovňa, a.s.                                -0.7664787  0.0000000
Deutsche Telekom Systems Solutions Slovakia s.r.o.  -0.2976677 -0.4037442
                                                            Z
Accenture, s.r.o.                                  -0.9260585
Beiersdorf Slovakia, s.r.o.                        -0.3867058
Beko Manufacturing Slovakia spol. s r.o.           -0.9260585
BILLA  s.r.o.                                       0.6919998
ČSOB Poisťovňa, a.s.                                0.1526470
Deutsche Telekom Systems Solutions Slovakia s.r.o. -0.9260585

Boxploty škálovaných premenných

num_vars  <- as.data.frame(firmy_scaled)
num_plots <- ncol(num_vars)

par(mfrow = c(ceiling(sqrt(num_plots)),
ceiling(num_plots / ceiling(sqrt(num_plots)))))
par(mar = c(4,4,2,1))

for (col in names(num_vars)) {
boxplot(num_vars[[col]],
main = col,
col = "lightblue",
horizontal = TRUE)
}

mtext("Boxploty škálovaných premenných", outer = TRUE, cex = 1.3, font = 2)
par(mfrow = c(1,1))

Korelačná matica

cor_mat <- cor(firmy_scaled)
cor_mat_round <- round(cor_mat, 2)

kable(cor_mat_round,
caption = "Tab. 2: Korelačná matica škálovaných premenných") %>%
kable_styling(full_width = FALSE)
Tab. 2: Korelačná matica škálovaných premenných
Kategoria ROE ROA EBIT_num EBITDAmarza M Z
Kategoria 1.00 0.07 -0.23 0.38 0.12 0.39 0.16
ROE 0.07 1.00 0.44 0.00 0.06 0.10 0.09
ROA -0.23 0.44 1.00 -0.06 0.37 -0.10 0.08
EBIT_num 0.38 0.00 -0.06 1.00 0.17 0.75 0.30
EBITDAmarza 0.12 0.06 0.37 0.17 1.00 0.14 0.09
M 0.39 0.10 -0.10 0.75 0.14 1.00 0.58
Z 0.16 0.09 0.08 0.30 0.09 0.58 1.00
NA

Matica vzdialeností medzi firmami

Vzdialenosti rátame pomocou Euklidovskej vzdialenosti.

dist_mat <- dist(firmy_scaled, method = "euclidean")
dist_mat_round <- round(as.matrix(dist_mat), 2)

kable(dist_mat_round,
caption = "Tab. 3: Matica Euklidovských vzdialeností medzi firmami",
format.args = list(big.mark = " ")) %>%
kable_styling(font_size = 8)
Tab. 3: Matica Euklidovských vzdialeností medzi firmami
Accenture, s.r.o. Beiersdorf Slovakia, s.r.o. Beko Manufacturing Slovakia spol. s r.o. BILLA s.r.o. ČSOB Poisťovňa, a.s. Deutsche Telekom Systems Solutions Slovakia s.r.o. Slovak Telekom, a.s. DHL Express (Slovakia), spol. s r. o. Dopravný podnik Bratislava, as DXC Technology Slovakia s. r. o. Ernst & Young, s. r. o. ESET, spol. s r.o. Heineken Slovensko, a.s. HENKEL SLOVENSKO, spol. s r.o. IKEA Industry Slovakia s. r. o. KPMG Slovensko spol. s r.o. Lenovo (Slovakia) s.r.o. MARKÍZA - SLOVAKIA, spol. s r.o. McDonald's Slovakia spol. s r.o. METRO Cash & Carry SR s. r. o. Mondelez Slovakia s.r.o. NN Životná poisťovňa, a.s. Orange Slovensko, a.s. Philip Morris Slovakia s.r.o. RECORDATI SK s.r.o. Roche Slovensko, s.r.o. SLOVAKTUAL s.r.o. Slovenská sporiteľňa, a.s. Slovenské elektrárne, a.s. SLOVNAFT, a.s. SPP - distribúcia, a.s. Tatra banka, a.s. TESCO STORES SR, a.s. TIPOS, národná lotériová spoločnosť, a. s. Tomra Sorting s. r. o. UNIQA Group Service Center Slovakia, spol. s r.o. ZSE Energia, a.s. VOLKSWAGEN SLOVAKIA, a.s. Všeobecná úverová banka, a.s.; skrátený názov: VÚB, a.s. Alma Career Slovakia s. r. o. Deloitte Audit s.r.o. IBM International Services Centre s.r.o. Medtronic Slovakia s. r. o. Plzeňský Prazdroj Slovensko, a.s. Up Slovensko, s. r. o. Dedoles, s. r. o. DeutschMann Internationale Spedition s.r.o. FCC Bratislava, s.r.o. ITW Slovakia s.r.o. Adient Slovakia s.r.o. Bloomreach SK s.r.o. ČECHOVÁ & PARTNERS s. r. o. Covestro (Slovakia) Services s. r. o.
Accenture, s.r.o. 0.00 2.14 1.74 2.73 1.82 1.33 3.65 1.44 4.46 1.28 2.15 2.01 1.72 2.38 1.46 3.09 0.76 1.30 1.63 1.79 1.36 2.37 4.25 2.06 2.21 2.62 0.38 4.17 7.33 5.19 5.20 4.20 2.70 3.26 1.00 4.53 3.21 2.81 3.74 3.83 3.93 1.37 1.43 2.26 3.79 4.97 1.20 1.75 1.77 1.81 1.26 5.90 0.60
Beiersdorf Slovakia, s.r.o. 2.14 0.00 3.19 4.14 2.26 3.06 4.69 2.18 4.96 3.01 2.18 3.46 2.41 3.45 3.08 3.35 2.08 2.59 2.85 3.21 1.31 2.61 5.02 1.63 0.92 2.07 2.17 4.69 7.67 5.69 6.39 4.61 4.22 2.87 2.12 4.39 3.38 3.77 4.33 4.18 3.46 3.02 1.13 2.65 3.21 5.18 1.19 1.62 2.39 3.04 1.27 5.56 2.09
Beko Manufacturing Slovakia spol. s r.o. 1.74 3.19 0.00 2.28 1.92 1.37 3.85 2.15 4.36 1.54 2.20 1.09 1.77 1.95 1.57 2.38 1.78 2.34 2.57 1.84 2.44 2.33 3.88 2.41 3.17 3.19 1.79 3.49 6.81 4.68 5.43 3.63 1.83 2.98 1.60 4.26 2.59 2.29 3.10 4.52 4.31 1.47 2.47 2.70 4.87 6.22 2.60 2.73 2.34 1.43 2.41 6.43 1.75
BILLA s.r.o. 2.73 4.14 2.28 0.00 2.10 1.91 3.06 2.56 2.85 2.09 3.96 2.81 2.32 2.40 1.97 3.44 2.62 2.95 3.02 2.05 3.37 2.09 3.31 3.46 4.23 2.98 2.64 3.12 6.49 4.53 5.48 2.70 1.49 3.99 2.56 3.41 3.13 2.48 2.65 5.34 3.75 2.03 3.15 2.08 5.03 5.83 3.27 3.50 2.05 1.29 3.37 6.88 2.79
ČSOB Poisťovňa, a.s. 1.82 2.26 1.92 2.10 0.00 1.60 3.65 1.78 3.45 1.79 2.66 2.67 0.82 2.46 1.61 2.74 1.41 2.47 2.61 1.62 1.61 0.70 3.69 2.04 2.29 1.51 1.66 3.08 6.60 4.63 5.81 2.88 2.31 2.76 1.19 3.16 2.47 2.31 2.62 4.87 2.53 1.67 1.32 1.47 3.53 5.25 1.79 1.76 1.25 1.15 1.64 6.33 1.80
Deutsche Telekom Systems Solutions Slovakia s.r.o. 1.33 3.06 1.37 1.91 1.60 0.00 3.65 2.02 4.17 0.69 2.93 2.14 1.41 2.35 0.45 3.21 1.07 2.16 2.28 0.76 1.97 2.10 3.95 2.84 2.93 2.92 1.16 3.54 6.91 4.84 5.26 3.66 1.64 3.53 1.01 4.36 3.19 2.20 3.10 4.74 3.74 0.58 2.04 2.41 3.97 5.04 2.17 2.17 1.97 1.28 1.96 6.65 1.38
Slovak Telekom, a.s. 3.65 4.69 3.85 3.06 3.65 3.65 0.00 3.71 2.63 4.02 4.33 3.76 3.52 3.49 3.90 4.05 3.98 2.99 2.66 4.06 4.30 3.42 1.97 4.28 4.73 3.62 3.57 3.55 5.45 3.92 3.34 3.23 3.22 4.38 3.94 3.78 3.55 3.35 3.30 4.36 4.74 4.03 4.07 2.81 5.82 5.83 3.87 4.65 2.82 3.45 4.21 6.00 3.94
DHL Express (Slovakia), spol. s r. o. 1.44 2.18 2.15 2.56 1.78 2.02 3.71 0.00 4.07 1.82 2.35 2.26 2.20 1.70 2.15 2.62 1.59 1.49 2.00 2.46 2.05 2.13 4.31 1.62 2.64 2.15 1.63 4.15 7.36 5.05 5.99 3.86 2.94 2.82 1.77 3.79 2.69 2.98 3.69 3.67 3.94 1.94 1.71 1.66 4.37 5.31 1.40 2.39 1.36 1.74 1.96 5.17 1.17
Dopravný podnik Bratislava, as 4.46 4.96 4.36 2.85 3.45 4.17 2.63 4.07 0.00 4.49 5.03 4.69 3.63 3.98 4.29 4.26 4.46 4.19 4.00 4.29 4.69 2.92 2.46 4.44 5.09 3.06 4.33 3.60 6.12 4.84 5.42 2.56 3.68 4.51 4.35 2.09 3.63 4.07 3.32 5.85 3.65 4.42 4.30 2.53 5.80 6.47 4.40 4.86 2.91 3.39 4.67 6.79 4.63
DXC Technology Slovakia s. r. o. 1.28 3.01 1.54 2.09 1.79 0.69 4.02 1.82 4.49 0.00 3.02 2.17 1.85 2.44 0.57 3.44 1.01 2.23 2.53 0.96 2.01 2.37 4.50 2.71 3.04 3.03 1.25 3.96 7.34 5.19 5.74 4.00 2.11 3.78 1.15 4.63 3.49 2.56 3.50 4.82 3.92 0.26 2.07 2.53 4.01 5.21 2.14 2.11 2.14 1.33 2.01 6.72 1.24
Ernst & Young, s. r. o. 2.15 2.18 2.20 3.96 2.66 2.93 4.33 2.35 5.03 3.02 0.00 2.05 2.53 2.58 3.14 2.01 2.47 2.26 2.52 3.41 2.34 2.97 4.37 1.62 2.29 3.08 2.32 4.41 7.25 5.16 5.68 4.51 3.65 2.06 2.36 4.46 2.50 3.43 4.11 3.35 4.71 3.03 2.32 3.06 4.93 6.39 2.22 2.84 2.72 2.93 2.22 5.15 2.13
ESET, spol. s r.o. 2.01 3.46 1.09 2.81 2.67 2.14 3.76 2.26 4.69 2.17 2.05 0.00 2.59 1.89 2.36 2.40 2.37 2.17 2.51 2.72 2.97 3.02 4.06 2.44 3.59 3.64 2.21 3.90 6.86 4.64 5.29 4.03 2.44 3.14 2.31 4.63 2.72 2.66 3.54 3.95 5.07 2.20 2.97 3.03 5.55 6.68 2.87 3.33 2.71 2.11 2.89 6.01 2.05
Heineken Slovensko, a.s. 1.72 2.41 1.77 2.32 0.82 1.41 3.52 2.20 3.63 1.85 2.53 2.59 0.00 2.65 1.52 2.78 1.37 2.42 2.41 1.50 1.52 1.16 3.41 2.38 2.16 2.00 1.47 3.03 6.46 4.58 5.25 3.07 2.13 2.79 1.02 3.51 2.57 2.21 2.62 4.79 2.76 1.69 1.45 1.93 3.46 5.11 1.90 1.76 1.58 1.49 1.53 6.46 1.83
HENKEL SLOVENSKO, spol. s r.o. 2.38 3.45 1.95 2.40 2.46 2.35 3.49 1.70 3.98 2.44 2.58 1.89 2.65 0.00 2.67 1.73 2.58 1.98 2.25 2.98 3.20 2.56 3.66 2.61 3.67 3.11 2.52 3.76 6.82 4.42 5.72 3.57 2.36 2.45 2.56 3.59 1.96 2.74 3.38 3.53 4.83 2.51 2.94 2.33 5.64 6.00 2.74 3.64 2.07 2.12 3.09 4.90 2.12
IKEA Industry Slovakia s. r. o. 1.46 3.08 1.57 1.97 1.61 0.45 3.90 2.15 4.29 0.57 3.14 2.36 1.52 2.67 0.00 3.51 1.06 2.44 2.62 0.44 1.95 2.16 4.24 2.89 2.99 2.95 1.29 3.66 7.07 5.04 5.54 3.75 1.87 3.80 1.04 4.50 3.47 2.35 3.21 5.08 3.59 0.36 2.05 2.51 3.78 5.12 2.26 2.01 2.13 1.27 1.98 6.98 1.54
KPMG Slovensko spol. s r.o. 3.09 3.35 2.38 3.44 2.74 3.21 4.05 2.62 4.26 3.44 2.01 2.40 2.78 1.73 3.51 0.00 3.22 2.84 2.98 3.72 3.40 2.69 3.56 2.50 3.45 3.17 3.18 3.68 6.56 4.38 5.99 3.59 3.12 1.14 3.02 3.28 1.04 3.14 3.42 3.76 4.84 3.42 3.16 2.87 5.86 6.73 3.16 3.89 2.69 2.87 3.31 4.80 2.89
Lenovo (Slovakia) s.r.o. 0.76 2.08 1.78 2.62 1.41 1.07 3.98 1.59 4.46 1.01 2.47 2.37 1.37 2.58 1.06 3.22 0.00 1.92 2.17 1.28 1.02 2.05 4.40 2.19 2.04 2.45 0.62 3.95 7.26 5.16 5.62 4.00 2.57 3.29 0.43 4.42 3.25 2.62 3.51 4.45 3.46 1.01 1.13 2.26 3.32 4.79 1.27 1.27 1.80 1.62 1.00 6.30 0.78
MARKÍZA - SLOVAKIA, spol. s r.o. 1.30 2.59 2.34 2.95 2.47 2.16 2.99 1.49 4.19 2.23 2.26 2.17 2.42 1.98 2.44 2.84 1.92 0.00 0.67 2.79 2.31 2.76 3.81 2.36 2.79 2.80 1.47 4.32 7.14 4.93 4.72 4.23 2.97 3.08 2.08 4.31 2.96 3.08 3.92 2.72 4.53 2.36 2.17 2.17 4.63 4.98 1.61 2.82 1.72 2.40 2.16 4.84 1.41
McDonald's Slovakia spol. s r.o. 1.63 2.85 2.57 3.02 2.61 2.28 2.66 2.00 4.00 2.53 2.52 2.51 2.41 2.25 2.62 2.98 2.17 0.67 0.00 2.90 2.49 2.81 3.41 2.79 2.89 2.89 1.66 4.26 6.97 4.87 4.20 4.19 2.95 3.17 2.27 4.25 3.03 3.14 3.88 2.74 4.50 2.62 2.37 2.26 4.62 4.71 1.87 3.02 1.81 2.63 2.33 4.88 1.82
METRO Cash & Carry SR s. r. o. 1.79 3.21 1.84 2.05 1.62 0.76 4.06 2.46 4.29 0.96 3.41 2.72 1.50 2.98 0.44 3.72 1.28 2.79 2.90 0.00 2.03 2.14 4.29 3.13 3.04 2.98 1.57 3.60 7.05 5.11 5.65 3.71 1.93 3.95 1.19 4.50 3.62 2.41 3.16 5.42 3.36 0.74 2.14 2.64 3.58 5.05 2.46 2.00 2.29 1.44 2.08 7.27 1.87
Mondelez Slovakia s.r.o. 1.36 1.31 2.44 3.37 1.61 1.97 4.30 2.05 4.69 2.01 2.34 2.97 1.52 3.20 1.95 3.40 1.02 2.31 2.49 2.03 0.00 2.16 4.62 2.06 1.10 2.20 1.21 4.17 7.35 5.39 5.81 4.24 3.31 3.16 1.01 4.47 3.39 3.06 3.77 4.53 3.12 1.97 0.57 2.47 2.71 4.72 1.02 0.65 2.07 2.31 0.18 6.26 1.43
NN Životná poisťovňa, a.s. 2.37 2.61 2.33 2.09 0.70 2.10 3.42 2.13 2.92 2.37 2.97 3.02 1.16 2.56 2.16 2.69 2.05 2.76 2.81 2.14 2.16 0.00 3.27 2.34 2.64 1.30 2.21 2.72 6.22 4.33 5.79 2.35 2.37 2.65 1.82 2.52 2.21 2.32 2.27 5.00 2.32 2.25 1.79 1.27 3.81 5.36 2.21 2.33 1.26 1.48 2.18 6.25 2.36
Orange Slovensko, a.s. 4.25 5.02 3.88 3.31 3.69 3.95 1.97 4.31 2.46 4.50 4.37 4.06 3.41 3.66 4.24 3.56 4.40 3.81 3.41 4.29 4.62 3.27 0.00 4.60 4.87 3.80 4.10 2.96 4.96 3.72 3.78 2.74 3.10 3.86 4.18 3.09 3.00 3.39 2.87 5.04 4.63 4.41 4.39 3.23 6.15 6.42 4.43 4.98 3.25 3.69 4.54 6.33 4.45
Philip Morris Slovakia s.r.o. 2.06 1.63 2.41 3.46 2.04 2.84 4.28 1.62 4.44 2.71 1.62 2.44 2.38 2.61 2.89 2.50 2.19 2.36 2.79 3.13 2.06 2.34 4.60 0.00 2.25 2.10 2.24 4.29 7.40 5.29 6.34 4.05 3.71 2.50 2.19 3.85 2.63 3.43 3.90 4.01 3.84 2.73 1.76 2.23 4.42 6.30 1.78 2.34 2.10 2.33 2.01 5.45 2.01
RECORDATI SK s.r.o. 2.21 0.92 3.17 4.23 2.29 2.93 4.73 2.64 5.09 3.04 2.29 3.59 2.16 3.67 2.99 3.45 2.04 2.79 2.89 3.04 1.10 2.64 4.87 2.25 0.00 2.38 2.12 4.53 7.46 5.60 6.09 4.63 4.07 2.89 1.97 4.58 3.46 3.62 4.21 4.43 3.37 3.01 1.20 2.95 2.84 4.85 1.46 1.47 2.61 3.19 1.07 5.91 2.21
Roche Slovensko, s.r.o. 2.62 2.07 3.19 2.98 1.51 2.92 3.62 2.15 3.06 3.03 3.08 3.64 2.00 3.11 2.95 3.17 2.45 2.80 2.89 2.98 2.20 1.30 3.80 2.10 2.38 0.00 2.52 3.64 6.79 4.96 6.08 3.08 3.52 2.89 2.38 2.59 2.74 3.28 3.23 4.75 2.19 2.98 1.67 1.16 3.56 5.24 1.93 2.35 1.35 2.31 2.20 5.81 2.65
SLOVAKTUAL s.r.o. 0.38 2.17 1.79 2.64 1.66 1.16 3.57 1.63 4.33 1.25 2.32 2.21 1.47 2.52 1.29 3.18 0.62 1.47 1.66 1.57 1.21 2.21 4.10 2.24 2.12 2.52 0.00 4.00 7.18 5.10 5.08 4.06 2.57 3.31 0.80 4.45 3.23 2.68 3.57 4.04 3.68 1.29 1.32 2.21 3.53 4.76 1.21 1.59 1.70 1.76 1.13 6.08 0.80
Slovenská sporiteľňa, a.s. 4.17 4.69 3.49 3.12 3.08 3.54 3.55 4.15 3.60 3.96 4.41 3.90 3.03 3.76 3.66 3.68 3.95 4.32 4.26 3.60 4.17 2.72 2.96 4.29 4.53 3.64 4.00 0.00 3.71 2.18 5.65 1.29 2.56 3.77 3.66 3.40 2.81 1.73 0.52 6.20 3.91 3.82 3.99 3.38 5.47 6.59 4.32 4.33 3.42 3.21 4.17 7.36 4.20
Slovenské elektrárne, a.s. 7.33 7.67 6.81 6.49 6.60 6.91 5.45 7.36 6.12 7.34 7.25 6.86 6.46 6.82 7.07 6.56 7.26 7.14 6.97 7.05 7.35 6.22 4.96 7.40 7.46 6.79 7.18 3.71 0.00 2.57 6.63 4.36 5.83 6.53 7.02 6.11 5.69 4.86 4.16 8.22 6.96 7.24 7.21 6.58 8.27 8.77 7.40 7.55 6.65 6.74 7.33 9.03 7.40
SLOVNAFT, a.s. 5.19 5.69 4.68 4.53 4.63 4.84 3.92 5.05 4.84 5.19 5.16 4.64 4.58 4.42 5.04 4.38 5.16 4.93 4.87 5.11 5.39 4.33 3.72 5.29 5.60 4.96 5.10 2.18 2.57 0.00 5.79 2.87 3.83 4.45 4.97 4.59 3.56 2.74 2.46 6.09 5.70 5.13 5.22 4.59 6.86 7.22 5.30 5.68 4.59 4.68 5.35 7.00 5.16
SPP - distribúcia, a.s. 5.20 6.39 5.43 5.48 5.81 5.26 3.34 5.99 5.42 5.74 5.68 5.29 5.25 5.72 5.54 5.99 5.62 4.72 4.20 5.65 5.81 5.79 3.78 6.34 6.09 6.08 5.08 5.65 6.63 5.79 0.00 5.91 5.03 6.27 5.56 6.58 5.81 5.29 5.56 5.37 6.79 5.73 5.87 5.51 7.00 6.68 5.66 6.17 5.28 5.67 5.71 7.58 5.62
Tatra banka, a.s. 4.20 4.61 3.63 2.70 2.88 3.66 3.23 3.86 2.56 4.00 4.51 4.03 3.07 3.57 3.75 3.59 4.00 4.23 4.19 3.71 4.24 2.35 2.74 4.05 4.63 3.08 4.06 1.29 4.36 2.87 5.91 0.00 2.77 3.74 3.77 2.36 2.66 2.37 1.11 6.11 3.49 3.87 3.92 2.76 5.53 6.65 4.22 4.38 3.00 2.96 4.25 7.07 4.22
TESCO STORES SR, a.s. 2.70 4.22 1.83 1.49 2.31 1.64 3.22 2.94 3.68 2.11 3.65 2.44 2.13 2.36 1.87 3.12 2.57 2.97 2.95 1.93 3.31 2.37 3.10 3.71 4.07 3.52 2.57 2.56 5.83 3.83 5.03 2.77 0.00 3.66 2.38 3.95 2.86 1.62 2.19 5.23 4.22 2.00 3.25 2.79 5.13 5.78 3.41 3.53 2.55 1.79 3.29 6.92 2.72
TIPOS, národná lotériová spoločnosť, a. s. 3.26 2.87 2.98 3.99 2.76 3.53 4.38 2.82 4.51 3.78 2.06 3.14 2.79 2.45 3.80 1.14 3.29 3.08 3.17 3.95 3.16 2.65 3.86 2.50 2.89 2.89 3.31 3.77 6.53 4.45 6.27 3.74 3.66 0.00 3.07 3.26 1.30 3.33 3.56 3.87 4.50 3.74 2.90 2.96 5.39 6.33 2.96 3.66 2.78 3.30 3.07 4.60 3.03
Tomra Sorting s. r. o. 1.00 2.12 1.60 2.56 1.19 1.01 3.94 1.77 4.35 1.15 2.36 2.31 1.02 2.56 1.04 3.02 0.43 2.08 2.27 1.19 1.01 1.82 4.18 2.19 1.97 2.38 0.80 3.66 7.02 4.97 5.56 3.77 2.38 3.07 0.00 4.24 3.02 2.41 3.24 4.56 3.31 1.07 1.14 2.25 3.34 4.93 1.45 1.29 1.79 1.53 1.01 6.38 1.02
UNIQA Group Service Center Slovakia, spol. s r.o. 4.53 4.39 4.26 3.41 3.16 4.36 3.78 3.79 2.09 4.63 4.46 4.63 3.51 3.59 4.50 3.28 4.42 4.31 4.25 4.50 4.47 2.52 3.09 3.85 4.58 2.59 4.45 3.40 6.11 4.59 6.58 2.36 3.95 3.26 4.24 0.00 2.59 3.98 3.17 5.66 3.54 4.55 3.99 2.51 5.81 6.72 4.19 4.70 2.89 3.49 4.45 6.00 4.49
ZSE Energia, a.s. 3.21 3.38 2.59 3.13 2.47 3.19 3.55 2.69 3.63 3.49 2.50 2.72 2.57 1.96 3.47 1.04 3.25 2.96 3.03 3.62 3.39 2.21 3.00 2.63 3.46 2.74 3.23 2.81 5.69 3.56 5.81 2.66 2.86 1.30 3.02 2.59 0.00 2.59 2.59 4.15 4.30 3.44 3.07 2.46 5.61 6.51 3.16 3.83 2.40 2.72 3.31 5.05 3.06
VOLKSWAGEN SLOVAKIA, a.s. 2.81 3.77 2.29 2.48 2.31 2.20 3.35 2.98 4.07 2.56 3.43 2.66 2.21 2.74 2.35 3.14 2.62 3.08 3.14 2.41 3.06 2.32 3.39 3.43 3.62 3.28 2.68 1.73 4.86 2.74 5.29 2.37 1.62 3.33 2.41 3.98 2.59 0.00 1.44 5.20 4.00 2.46 2.99 2.85 4.79 5.75 3.19 3.27 2.66 2.28 3.04 6.74 2.78
Všeobecná úverová banka, a.s.; skrátený názov: VÚB, a.s. 3.74 4.33 3.10 2.65 2.62 3.10 3.30 3.69 3.32 3.50 4.11 3.54 2.62 3.38 3.21 3.42 3.51 3.92 3.88 3.16 3.77 2.27 2.87 3.90 4.21 3.23 3.57 0.52 4.16 2.46 5.56 1.11 2.19 3.56 3.24 3.17 2.59 1.44 0.00 5.93 3.59 3.36 3.58 2.93 5.15 6.32 3.91 3.92 2.96 2.72 3.78 7.16 3.76
Alma Career Slovakia s. r. o. 3.83 4.18 4.52 5.34 4.87 4.74 4.36 3.67 5.85 4.82 3.35 3.95 4.79 3.53 5.08 3.76 4.45 2.72 2.74 5.42 4.53 5.00 5.04 4.01 4.43 4.75 4.04 6.20 8.22 6.09 5.37 6.11 5.23 3.87 4.56 5.66 4.15 5.20 5.93 0.00 6.75 4.96 4.39 4.31 6.73 6.26 3.75 5.12 4.02 4.92 4.35 2.87 3.81
Deloitte Audit s.r.o. 3.93 3.46 4.31 3.75 2.53 3.74 4.74 3.94 3.65 3.92 4.71 5.07 2.76 4.83 3.59 4.84 3.46 4.53 4.50 3.36 3.12 2.32 4.63 3.84 3.37 2.19 3.68 3.91 6.96 5.70 6.79 3.49 4.22 4.50 3.31 3.54 4.30 4.00 3.59 6.75 0.00 3.77 2.88 2.90 2.83 5.42 3.46 2.87 3.05 3.31 3.23 7.85 4.04
IBM International Services Centre s.r.o. 1.37 3.02 1.47 2.03 1.67 0.58 4.03 1.94 4.42 0.26 3.03 2.20 1.69 2.51 0.36 3.42 1.01 2.36 2.62 0.74 1.97 2.25 4.41 2.73 3.01 2.98 1.29 3.82 7.24 5.13 5.73 3.87 2.00 3.74 1.07 4.55 3.44 2.46 3.36 4.96 3.77 0.00 2.04 2.53 3.94 5.26 2.20 2.05 2.15 1.24 1.99 6.84 1.36
Medtronic Slovakia s. r. o. 1.43 1.13 2.47 3.15 1.32 2.04 4.07 1.71 4.30 2.07 2.32 2.97 1.45 2.94 2.05 3.16 1.13 2.17 2.37 2.14 0.57 1.79 4.39 1.76 1.20 1.67 1.32 3.99 7.21 5.22 5.87 3.92 3.25 2.90 1.14 3.99 3.07 2.99 3.58 4.39 2.88 2.04 0.00 1.99 2.88 4.74 0.76 0.95 1.64 2.12 0.56 5.96 1.43
Plzeňský Prazdroj Slovensko, a.s. 2.26 2.65 2.70 2.08 1.47 2.41 2.81 1.66 2.53 2.53 3.06 3.03 1.93 2.33 2.51 2.87 2.26 2.17 2.26 2.64 2.47 1.27 3.23 2.23 2.95 1.16 2.21 3.38 6.58 4.59 5.51 2.76 2.79 2.96 2.25 2.51 2.46 2.85 2.93 4.31 2.90 2.53 1.99 0.00 4.20 5.23 2.00 2.72 0.57 1.70 2.43 5.57 2.31
Up Slovensko, s. r. o. 3.79 3.21 4.87 5.03 3.53 3.97 5.82 4.37 5.80 4.01 4.93 5.55 3.46 5.64 3.78 5.86 3.32 4.63 4.62 3.58 2.71 3.81 6.15 4.42 2.84 3.56 3.53 5.47 8.27 6.86 7.00 5.53 5.13 5.39 3.34 5.81 5.61 4.79 5.15 6.73 2.83 3.94 2.88 4.20 0.00 4.14 3.27 2.32 4.01 4.32 2.83 8.18 3.91
Dedoles, s. r. o. 4.97 5.18 6.22 5.83 5.25 5.04 5.83 5.31 6.47 5.21 6.39 6.68 5.11 6.00 5.12 6.73 4.79 4.98 4.71 5.05 4.72 5.36 6.42 6.30 4.85 5.24 4.76 6.59 8.77 7.22 6.68 6.65 5.78 6.33 4.93 6.72 6.51 5.75 6.32 6.26 5.42 5.26 4.74 5.23 4.14 0.00 4.57 4.85 4.94 5.76 4.70 7.28 4.94
DeutschMann Internationale Spedition s.r.o. 1.20 1.19 2.60 3.27 1.79 2.17 3.87 1.40 4.40 2.14 2.22 2.87 1.90 2.74 2.26 3.16 1.27 1.61 1.87 2.46 1.02 2.21 4.43 1.78 1.46 1.93 1.21 4.32 7.40 5.30 5.66 4.22 3.41 2.96 1.45 4.19 3.16 3.19 3.91 3.75 3.46 2.20 0.76 2.00 3.27 4.57 0.00 1.49 1.58 2.33 0.89 5.41 1.20
FCC Bratislava, s.r.o. 1.75 1.62 2.73 3.50 1.76 2.17 4.65 2.39 4.86 2.11 2.84 3.33 1.76 3.64 2.01 3.89 1.27 2.82 3.02 2.00 0.65 2.33 4.98 2.34 1.47 2.35 1.59 4.33 7.55 5.68 6.17 4.38 3.53 3.66 1.29 4.70 3.83 3.27 3.92 5.12 2.87 2.05 0.95 2.72 2.32 4.85 1.49 0.00 2.40 2.43 0.82 6.83 1.84
ITW Slovakia s.r.o. 1.77 2.39 2.34 2.05 1.25 1.97 2.82 1.36 2.91 2.14 2.72 2.71 1.58 2.07 2.13 2.69 1.80 1.72 1.81 2.29 2.07 1.26 3.25 2.10 2.61 1.35 1.70 3.42 6.65 4.59 5.28 3.00 2.55 2.78 1.79 2.89 2.40 2.66 2.96 4.02 3.05 2.15 1.64 0.57 4.01 4.94 1.58 2.40 0.00 1.53 2.00 5.46 1.82
Adient Slovakia s.r.o. 1.81 3.04 1.43 1.29 1.15 1.28 3.45 1.74 3.39 1.33 2.93 2.11 1.49 2.12 1.27 2.87 1.62 2.40 2.63 1.44 2.31 1.48 3.69 2.33 3.19 2.31 1.76 3.21 6.74 4.68 5.67 2.96 1.79 3.30 1.53 3.49 2.72 2.28 2.72 4.92 3.31 1.24 2.12 1.70 4.32 5.76 2.33 2.43 1.53 0.00 2.32 6.57 1.85
Bloomreach SK s.r.o. 1.26 1.27 2.41 3.37 1.64 1.96 4.21 1.96 4.67 2.01 2.22 2.89 1.53 3.09 1.98 3.31 1.00 2.16 2.33 2.08 0.18 2.18 4.54 2.01 1.07 2.20 1.13 4.17 7.33 5.35 5.71 4.25 3.29 3.07 1.01 4.45 3.31 3.04 3.78 4.35 3.23 1.99 0.56 2.43 2.83 4.70 0.89 0.82 2.00 2.32 0.00 6.10 1.33
ČECHOVÁ & PARTNERS s. r. o. 5.90 5.56 6.43 6.88 6.33 6.65 6.00 5.17 6.79 6.72 5.15 6.01 6.46 4.90 6.98 4.80 6.30 4.84 4.88 7.27 6.26 6.25 6.33 5.45 5.91 5.81 6.08 7.36 9.03 7.00 7.58 7.07 6.92 4.60 6.38 6.00 5.05 6.74 7.16 2.87 7.85 6.84 5.96 5.57 8.18 7.28 5.41 6.83 5.46 6.57 6.10 0.00 5.69
Covestro (Slovakia) Services s. r. o. 0.60 2.09 1.75 2.79 1.80 1.38 3.94 1.17 4.63 1.24 2.13 2.05 1.83 2.12 1.54 2.89 0.78 1.41 1.82 1.87 1.43 2.36 4.45 2.01 2.21 2.65 0.80 4.20 7.40 5.16 5.62 4.22 2.72 3.03 1.02 4.49 3.06 2.78 3.76 3.81 4.04 1.36 1.43 2.31 3.91 4.94 1.20 1.84 1.82 1.85 1.33 5.69 0.00
NA

Hierarchické zhlukovanie (Wardova metóda)

hc <- hclust(dist_mat, method = "ward.D2")

plot(hc,
labels = rownames(firmy_scaled),
main   = "Hierarchické zhlukovanie firiem (Ward.D2)",
xlab   = "", sub = "")

k <- 3  # počet klastrov (analogicky ako u učiteľa)

h_cut <- hc$height[length(hc$height) - (k - 1)]
abline(h = h_cut, col = "red", lwd = 2, lty = 2)


klaster_membership <- cutree(hc, k = k)

Priradenie firiem do klastrov

data_prac <- data.frame(
Firma   = rownames(firmy_scaled),
klaster = factor(klaster_membership)
)

kable(data_prac,
caption = "Tab. 4: Priradenie firiem do jednotlivých klastrov") %>%
kable_styling(full_width = FALSE)
Tab. 4: Priradenie firiem do jednotlivých klastrov
Firma klaster
Accenture, s.r.o. Accenture, s.r.o. 1
Beiersdorf Slovakia, s.r.o. Beiersdorf Slovakia, s.r.o. 1
Beko Manufacturing Slovakia spol. s r.o. Beko Manufacturing Slovakia spol. s r.o. 1
BILLA s.r.o. BILLA s.r.o. 1
ČSOB Poisťovňa, a.s. ČSOB Poisťovňa, a.s. 1
Deutsche Telekom Systems Solutions Slovakia s.r.o. Deutsche Telekom Systems Solutions Slovakia s.r.o. 1
Slovak Telekom, a.s. Slovak Telekom, a.s. 2
DHL Express (Slovakia), spol. s r. o. DHL Express (Slovakia), spol. s r. o. 1
Dopravný podnik Bratislava, as Dopravný podnik Bratislava, as 2
DXC Technology Slovakia s. r. o. DXC Technology Slovakia s. r. o. 1
Ernst & Young, s. r. o. Ernst & Young, s. r. o. 1
ESET, spol. s r.o. ESET, spol. s r.o. 1
Heineken Slovensko, a.s. Heineken Slovensko, a.s. 1
HENKEL SLOVENSKO, spol. s r.o. HENKEL SLOVENSKO, spol. s r.o. 1
IKEA Industry Slovakia s. r. o. IKEA Industry Slovakia s. r. o. 1
KPMG Slovensko spol. s r.o. KPMG Slovensko spol. s r.o. 1
Lenovo (Slovakia) s.r.o. Lenovo (Slovakia) s.r.o. 1
MARKÍZA - SLOVAKIA, spol. s r.o. MARKÍZA - SLOVAKIA, spol. s r.o. 1
McDonald's Slovakia spol. s r.o. McDonald's Slovakia spol. s r.o. 1
METRO Cash & Carry SR s. r. o. METRO Cash & Carry SR s. r. o. 1
Mondelez Slovakia s.r.o. Mondelez Slovakia s.r.o. 1
NN Životná poisťovňa, a.s. NN Životná poisťovňa, a.s. 1
Orange Slovensko, a.s. Orange Slovensko, a.s. 2
Philip Morris Slovakia s.r.o. Philip Morris Slovakia s.r.o. 1
RECORDATI SK s.r.o. RECORDATI SK s.r.o. 1
Roche Slovensko, s.r.o. Roche Slovensko, s.r.o. 1
SLOVAKTUAL s.r.o. SLOVAKTUAL s.r.o. 1
Slovenská sporiteľňa, a.s. Slovenská sporiteľňa, a.s. 2
Slovenské elektrárne, a.s. Slovenské elektrárne, a.s. 2
SLOVNAFT, a.s. SLOVNAFT, a.s. 2
SPP - distribúcia, a.s. SPP - distribúcia, a.s. 2
Tatra banka, a.s. Tatra banka, a.s. 2
TESCO STORES SR, a.s. TESCO STORES SR, a.s. 1
TIPOS, národná lotériová spoločnosť, a. s. TIPOS, národná lotériová spoločnosť, a. s. 1
Tomra Sorting s. r. o. Tomra Sorting s. r. o. 1
UNIQA Group Service Center Slovakia, spol. s r.o. UNIQA Group Service Center Slovakia, spol. s r.o. 2
ZSE Energia, a.s. ZSE Energia, a.s. 1
VOLKSWAGEN SLOVAKIA, a.s. VOLKSWAGEN SLOVAKIA, a.s. 1
Všeobecná úverová banka, a.s.; skrátený názov: VÚB, a.s. Všeobecná úverová banka, a.s.; skrátený názov: VÚB, a.s. 2
Alma Career Slovakia s. r. o. Alma Career Slovakia s. r. o. 3
Deloitte Audit s.r.o. Deloitte Audit s.r.o. 1
IBM International Services Centre s.r.o. IBM International Services Centre s.r.o. 1
Medtronic Slovakia s. r. o. Medtronic Slovakia s. r. o. 1
Plzeňský Prazdroj Slovensko, a.s. Plzeňský Prazdroj Slovensko, a.s. 1
Up Slovensko, s. r. o. Up Slovensko, s. r. o. 1
Dedoles, s. r. o. Dedoles, s. r. o. 1
DeutschMann Internationale Spedition s.r.o. DeutschMann Internationale Spedition s.r.o. 1
FCC Bratislava, s.r.o. FCC Bratislava, s.r.o. 1
ITW Slovakia s.r.o. ITW Slovakia s.r.o. 1
Adient Slovakia s.r.o. Adient Slovakia s.r.o. 1
Bloomreach SK s.r.o. Bloomreach SK s.r.o. 1
ČECHOVÁ & PARTNERS s. r. o. ČECHOVÁ & PARTNERS s. r. o. 3
Covestro (Slovakia) Services s. r. o. Covestro (Slovakia) Services s. r. o. 1
NA

Vnútro- a medziklastrová variabilita (TSS, WSS, BSS)

ssq <- function(x, m) sum((x - m)^2)

var_names <- colnames(firmy_scaled)

# Celková variabilita

TSS <- sapply(var_names, function(v)
ssq(firmy_scaled[, v], mean(firmy_scaled[, v])) )

# Vnútroklastrová variabilita

WSS <- sapply(var_names, function(v) {
x <- firmy_scaled[, v]
tapply(x, klaster_membership, function(z) ssq(z, mean(z))) |> sum()
})

# Medziklastrová variabilita

BSS <- TSS - WSS

ss_table <- data.frame(
Premenna    = var_names,
TSS         = TSS,
WSS         = WSS,
BSS         = BSS,
Podiel_medzi = BSS / TSS
)

kable(ss_table, digits = 3,
caption = "Tab. 5: Celková, vnútroklastrová a medziklastrová variabilita") %>%
kable_styling(full_width = FALSE)
Tab. 5: Celková, vnútroklastrová a medziklastrová variabilita
Premenna TSS WSS BSS Podiel_medzi
Kategoria Kategoria 52 40.003 11.997 0.231
ROE ROE 52 46.874 5.126 0.099
ROA ROA 52 24.336 27.664 0.532
EBIT_num EBIT_num 52 29.391 22.609 0.435
EBITDAmarza EBITDAmarza 52 34.592 17.408 0.335
M M 52 22.561 29.439 0.566
Z Z 52 32.258 19.742 0.380
NA

Centroidy – priemerné hodnoty premenných v klastroch

firmy_centroidy <- firmy_complete
firmy_centroidy$klaster <- factor(klaster_membership)

centroidy <- aggregate(firmy_centroidy[, 1:7],   # prvých 7 stĺpcov je Kategoria, ROE, ROA, EBIT_num, EBITDAmarza, M, Z
by = list(klaster = firmy_centroidy$klaster),
FUN = mean)

kable(centroidy, digits = 3,
caption = "Tab. 6: Centroidy – priemerné hodnoty sledovaných premenných v klastroch") %>%
kable_styling(full_width = FALSE)
Tab. 6: Centroidy – priemerné hodnoty sledovaných premenných v klastroch
klaster Kategoria ROE ROA EBIT_num EBITDAmarza M Z
1 2.927 0.182 0.077 22340555 0.072 4.341 1.122
2 3.900 0.148 0.058 316418642 0.249 13.600 4.000
3 1.500 0.924 0.573 4896080 0.391 2.000 2.500
NA

Na základe zhlukovej analýzy boli firmy rozdelené do troch klastrov. Každý klaster združuje podniky s podobnými hodnotami finančných ukazovateľov a charakteristík vedenia.

Podiel medzi-klastrovej variability (stĺpec Podiel_medzi v Tab. 5) ukazuje, ktoré premenné najviac prispievajú k odlíšeniu klastrov. Vyššie hodnoty naznačujú, že daný ukazovateľ dobre separuje firmy do rôznych skupín.

Zhluková analýza tak poskytla prehľadné rozdelenie firiem podľa ich finančnej situácie a štruktúry vedenia a môže slúžiť ako východisko pre podrobnejšiu analýzu alebo porovnanie podnikov v rámci jednotlivých klastrov.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQp0aXRsZTogIlpobHVrb3bDoSBhbmFsw716YSBmaW5hbsSNbsO9Y2ggdWthem92YXRlxL5vdiBmaXJpZW0iCmF1dGhvcjogIk5hdMOhbGlhIE7DoWRhc2vDoSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAplY2hvICAgID0gVFJVRSwKbWVzc2FnZSA9IEZBTFNFLAp3YXJuaW5nID0gRkFMU0UKKQoKYGBgCmBgYHtyfQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KGthYmxlRXh0cmEpCgpgYGAKS2xhc3Ryb3bDoSAoemhsdWtvdsOhKSBhbmFsw716YSBwYXRyw60gbWVkemkgbWV0w7NkeSBleHBsb3JhxI1uZWogxaF0YXRpc3Rpa3kuIENpZcS+b20gamUgcm96ZGVsacWlIHBvem9yb3ZhbmlhICh2IG5hxaFvbSBwcsOtcGFkZSBmaXJteSkgZG8gcmVsYXTDrXZuZSBob21vZ8Opbm55Y2ggc2t1cMOtbiBwb2TEvmEgdmlhY2Vyw71jaCBwcmVtZW5uw71jaCBzw7rEjWFzbmUuCgpWIHRlanRvIMO6bG9oZSBidWRlbWUgemhsdWtvdmHFpSBmaXJteSBwb2TEvmEgdnlicmFuw71jaCBmaW5hbsSNbsO9Y2ggdWthem92YXRlxL5vdiBhIGNoYXJha3RlcmlzdMOtayB2ZWRlbmlhOgoKS2F0ZWdvcmlhCgpST0UKClJPQQoKRUJJVAoKRUJJVERBIG1hcsW+YQoKcG/EjWV0IG11xb5vdiB2byB2ZWRlbsOtIChNKQoKcG/EjWV0IMW+aWVuIHZvIHZlZGVuw60gKFopCmBgYHtyfQpybShsaXN0ID0gbHMoKSkKCmZpcm15X3JhdyA8LSByZWFkLmNzdigiZGF0YUVLT05PTUVUUklBLmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKCiMgcHJldm9kIEVCSVQgeiB0ZXh0dSBzIMSNaWFya2FtaSBuYSBudW1lcmlja8O6IHByZW1lbm7DugoKZmlybXlfcmF3JEVCSVRfbnVtIDwtIGFzLm51bWVyaWMoZ3N1YigiLCIsICIiLCBmaXJteV9yYXckRUJJVCkpCgojIHbDvWJlciBwcmVtZW5uw71jaCwgcyBrdG9yw71taSBidWRlbWUgcHJhY292YcWlCgpmaXJteSA8LSBmaXJteV9yYXdbLCBjKCJOYXpvdiIsICJLYXRlZ29yaWEiLCAiUk9FIiwgIlJPQSIsICJFQklUX251bSIsCiJFQklUREFtYXJ6YSIsICJNIiwgIloiKV0KCiMgbsOhenZ5IGZpcmllbSBkw6FtZSBkbyByaWFka292Cgpyb3duYW1lcyhmaXJteSkgPC0gZmlybXkkTmF6b3YKZmlybXkkTmF6b3YgPC0gTlVMTAoKa2FibGUoaGVhZChmaXJteSksIGNhcHRpb24gPSAiVGFiLiAxOiBWw71iZXIgdnN0dXBuw71jaCDDumRham92IG8gZmlybcOhY2giKSAlPiUKa2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKQWJ5IGJvbGkgcHJlbWVubsOpIHBvcm92bmF0ZcS+bsOpLCB2xaFldGt5IGljaCDFoXRhbmRhcmRpenVqZW1lICh6LXNrw7NyZSkKYGBge3J9CmZpcm15X2NvbXBsZXRlIDwtIG5hLm9taXQoZmlybXkpICAgICAgICAgICMgb2RzdHLDoW5lbmllIHByw61wYWRuw71jaCBOQQpmaXJteV9zY2FsZWQgICA8LSBzY2FsZShmaXJteV9jb21wbGV0ZSkgICAjIHotxaFrw7NyZQoKaGVhZChmaXJteV9zY2FsZWQpCgpgYGAKQm94cGxvdHkgxaFrw6Fsb3ZhbsO9Y2ggcHJlbWVubsO9Y2gKYGBge3J9Cm51bV92YXJzICA8LSBhcy5kYXRhLmZyYW1lKGZpcm15X3NjYWxlZCkKbnVtX3Bsb3RzIDwtIG5jb2wobnVtX3ZhcnMpCgpwYXIobWZyb3cgPSBjKGNlaWxpbmcoc3FydChudW1fcGxvdHMpKSwKY2VpbGluZyhudW1fcGxvdHMgLyBjZWlsaW5nKHNxcnQobnVtX3Bsb3RzKSkpKSkKcGFyKG1hciA9IGMoNCw0LDIsMSkpCgpmb3IgKGNvbCBpbiBuYW1lcyhudW1fdmFycykpIHsKYm94cGxvdChudW1fdmFyc1tbY29sXV0sCm1haW4gPSBjb2wsCmNvbCA9ICJsaWdodGJsdWUiLApob3Jpem9udGFsID0gVFJVRSkKfQoKbXRleHQoIkJveHBsb3R5IMWha8OhbG92YW7DvWNoIHByZW1lbm7DvWNoIiwgb3V0ZXIgPSBUUlVFLCBjZXggPSAxLjMsIGZvbnQgPSAyKQpwYXIobWZyb3cgPSBjKDEsMSkpCgpgYGAKS29yZWxhxI1uw6EgbWF0aWNhCmBgYHtyfQpjb3JfbWF0IDwtIGNvcihmaXJteV9zY2FsZWQpCmNvcl9tYXRfcm91bmQgPC0gcm91bmQoY29yX21hdCwgMikKCmthYmxlKGNvcl9tYXRfcm91bmQsCmNhcHRpb24gPSAiVGFiLiAyOiBLb3JlbGHEjW7DoSBtYXRpY2EgxaFrw6Fsb3ZhbsO9Y2ggcHJlbWVubsO9Y2giKSAlPiUKa2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKCk1hdGljYSB2emRpYWxlbm9zdMOtIG1lZHppIGZpcm1hbWkKClZ6ZGlhbGVub3N0aSByw6F0YW1lIHBvbW9jb3UgRXVrbGlkb3Zza2VqIHZ6ZGlhbGVub3N0aS4KYGBge3J9CmRpc3RfbWF0IDwtIGRpc3QoZmlybXlfc2NhbGVkLCBtZXRob2QgPSAiZXVjbGlkZWFuIikKZGlzdF9tYXRfcm91bmQgPC0gcm91bmQoYXMubWF0cml4KGRpc3RfbWF0KSwgMikKCmthYmxlKGRpc3RfbWF0X3JvdW5kLApjYXB0aW9uID0gIlRhYi4gMzogTWF0aWNhIEV1a2xpZG92c2vDvWNoIHZ6ZGlhbGVub3N0w60gbWVkemkgZmlybWFtaSIsCmZvcm1hdC5hcmdzID0gbGlzdChiaWcubWFyayA9ICIgIikpICU+JQprYWJsZV9zdHlsaW5nKGZvbnRfc2l6ZSA9IDgpCgpgYGAKSGllcmFyY2hpY2vDqSB6aGx1a292YW5pZSAoV2FyZG92YSBtZXTDs2RhKQpgYGB7cn0KaGMgPC0gaGNsdXN0KGRpc3RfbWF0LCBtZXRob2QgPSAid2FyZC5EMiIpCgpwbG90KGhjLApsYWJlbHMgPSByb3duYW1lcyhmaXJteV9zY2FsZWQpLAptYWluICAgPSAiSGllcmFyY2hpY2vDqSB6aGx1a292YW5pZSBmaXJpZW0gKFdhcmQuRDIpIiwKeGxhYiAgID0gIiIsIHN1YiA9ICIiKQoKayA8LSAzICAjIHBvxI1ldCBrbGFzdHJvdiAoYW5hbG9naWNreSBha28gdSB1xI1pdGXEvmEpCgpoX2N1dCA8LSBoYyRoZWlnaHRbbGVuZ3RoKGhjJGhlaWdodCkgLSAoayAtIDEpXQphYmxpbmUoaCA9IGhfY3V0LCBjb2wgPSAicmVkIiwgbHdkID0gMiwgbHR5ID0gMikKCmtsYXN0ZXJfbWVtYmVyc2hpcCA8LSBjdXRyZWUoaGMsIGsgPSBrKQoKYGBgClByaXJhZGVuaWUgZmlyaWVtIGRvIGtsYXN0cm92CmBgYHtyfQpkYXRhX3ByYWMgPC0gZGF0YS5mcmFtZSgKRmlybWEgICA9IHJvd25hbWVzKGZpcm15X3NjYWxlZCksCmtsYXN0ZXIgPSBmYWN0b3Ioa2xhc3Rlcl9tZW1iZXJzaGlwKQopCgprYWJsZShkYXRhX3ByYWMsCmNhcHRpb24gPSAiVGFiLiA0OiBQcmlyYWRlbmllIGZpcmllbSBkbyBqZWRub3RsaXbDvWNoIGtsYXN0cm92IikgJT4lCmthYmxlX3N0eWxpbmcoZnVsbF93aWR0aCA9IEZBTFNFKQoKYGBgClZuw7p0cm8tIGEgbWVkemlrbGFzdHJvdsOhIHZhcmlhYmlsaXRhIChUU1MsIFdTUywgQlNTKQpgYGB7cn0Kc3NxIDwtIGZ1bmN0aW9uKHgsIG0pIHN1bSgoeCAtIG0pXjIpCgp2YXJfbmFtZXMgPC0gY29sbmFtZXMoZmlybXlfc2NhbGVkKQoKIyBDZWxrb3bDoSB2YXJpYWJpbGl0YQoKVFNTIDwtIHNhcHBseSh2YXJfbmFtZXMsIGZ1bmN0aW9uKHYpCnNzcShmaXJteV9zY2FsZWRbLCB2XSwgbWVhbihmaXJteV9zY2FsZWRbLCB2XSkpICkKCiMgVm7DunRyb2tsYXN0cm92w6EgdmFyaWFiaWxpdGEKCldTUyA8LSBzYXBwbHkodmFyX25hbWVzLCBmdW5jdGlvbih2KSB7CnggPC0gZmlybXlfc2NhbGVkWywgdl0KdGFwcGx5KHgsIGtsYXN0ZXJfbWVtYmVyc2hpcCwgZnVuY3Rpb24oeikgc3NxKHosIG1lYW4oeikpKSB8PiBzdW0oKQp9KQoKIyBNZWR6aWtsYXN0cm92w6EgdmFyaWFiaWxpdGEKCkJTUyA8LSBUU1MgLSBXU1MKCnNzX3RhYmxlIDwtIGRhdGEuZnJhbWUoClByZW1lbm5hICAgID0gdmFyX25hbWVzLApUU1MgICAgICAgICA9IFRTUywKV1NTICAgICAgICAgPSBXU1MsCkJTUyAgICAgICAgID0gQlNTLApQb2RpZWxfbWVkemkgPSBCU1MgLyBUU1MKKQoKa2FibGUoc3NfdGFibGUsIGRpZ2l0cyA9IDMsCmNhcHRpb24gPSAiVGFiLiA1OiBDZWxrb3bDoSwgdm7DunRyb2tsYXN0cm92w6EgYSBtZWR6aWtsYXN0cm92w6EgdmFyaWFiaWxpdGEiKSAlPiUKa2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gRkFMU0UpCgpgYGAKQ2VudHJvaWR5IOKAkyBwcmllbWVybsOpIGhvZG5vdHkgcHJlbWVubsO9Y2ggdiBrbGFzdHJvY2gKYGBge3J9CmZpcm15X2NlbnRyb2lkeSA8LSBmaXJteV9jb21wbGV0ZQpmaXJteV9jZW50cm9pZHkka2xhc3RlciA8LSBmYWN0b3Ioa2xhc3Rlcl9tZW1iZXJzaGlwKQoKY2VudHJvaWR5IDwtIGFnZ3JlZ2F0ZShmaXJteV9jZW50cm9pZHlbLCAxOjddLCAgICMgcHJ2w71jaCA3IHN0xLpwY292IGplIEthdGVnb3JpYSwgUk9FLCBST0EsIEVCSVRfbnVtLCBFQklUREFtYXJ6YSwgTSwgWgpieSA9IGxpc3Qoa2xhc3RlciA9IGZpcm15X2NlbnRyb2lkeSRrbGFzdGVyKSwKRlVOID0gbWVhbikKCmthYmxlKGNlbnRyb2lkeSwgZGlnaXRzID0gMywKY2FwdGlvbiA9ICJUYWIuIDY6IENlbnRyb2lkeSDigJMgcHJpZW1lcm7DqSBob2Rub3R5IHNsZWRvdmFuw71jaCBwcmVtZW5uw71jaCB2IGtsYXN0cm9jaCIpICU+JQprYWJsZV9zdHlsaW5nKGZ1bGxfd2lkdGggPSBGQUxTRSkKCmBgYApOYSB6w6FrbGFkZSB6aGx1a292ZWogYW5hbMO9enkgYm9saSBmaXJteSByb3pkZWxlbsOpIGRvIHRyb2NoIGtsYXN0cm92LiBLYcW+ZMO9IGtsYXN0ZXIgemRydcW+dWplIHBvZG5pa3kgcyBwb2RvYm7DvW1pIGhvZG5vdGFtaSBmaW5hbsSNbsO9Y2ggdWthem92YXRlxL5vdiBhIGNoYXJha3RlcmlzdMOtayB2ZWRlbmlhLgoKLSAqKktsYXN0ZXIgMSoqIHJlcHJlemVudHVqZSBmaXJteSBzbyBzdHJlZG5vdSDDunJvdsWIb3UgcmVudGFiaWxpdHkgKFJPRSwgUk9BKSBhIHByaWVtZXJuw71taSBob2Rub3RhbWkgb3N0YXRuw71jaCBwcmVtZW5uw71jaC4gSWRlIG8g4oCecHJpZW1lcm7DqeKAnCBwb2RuaWt5IHYgcsOhbWNpIHZ6b3JreSwga3RvcsOpIG5ldnlrYXp1asO6IGFuaSBleHRyw6ltbmUgdnlzb2vDuiwgYW5pIGV4dHLDqW1uZSBuw616a3UgdsO9a29ubm9zxaUuCi0gKipLbGFzdGVyIDIqKiB6ZHJ1xb51amUgcG9kbmlreSBzIHZ5xaHFoW91IHByaWVtZXJub3Uga2F0ZWfDs3Jpb3UgKHbDpMSNxaFpZSBhbGVibyB2w716bmFtbmVqxaFpZSBmaXJteSksIGF2xaFhayBzIG1pZXJuZWrFoW91IHJlbnRhYmlsaXRvdS4gTcO0xb5lbWUgaWNoIG96bmHEjWnFpSB6YSBzdGFiaWxuw6kgcG9kbmlreSBzIHBldm5vdSBwb3rDrWNpb3UsIGt0b3LDqSB2xaFhayBuZWRvc2FodWrDuiBuYWp2ecWhxaFpdSBlZmVrdMOtdm5vc8WlIHpob2Rub2NvdmFuaWEga2FwaXTDoWx1LgotICoqS2xhc3RlciAzKiogdHZvcmlhIGZpcm15IHMgbmnFvsWhb3UgcHJpZW1lcm5vdSBrYXRlZ8OzcmlvdSwgYWxlIHMgbmFkcHJpZW1lcm5lIHZ5c29rb3UgcmVudGFiaWxpdG91IChST0UsIFJPQSkuIElkZSBvIG5hanbDvWtvbm5lasWhaWUgcG9kbmlreSB6IHBvaMS+YWR1IHpob2Rub2NvdmFuaWEga2FwaXTDoWx1LCDEjWFzdG8gbWVuxaFpZSBhbGVibyBkeW5hbWlja2VqxaFpZSBmaXJteS4KClBvZGllbCBtZWR6aS1rbGFzdHJvdmVqIHZhcmlhYmlsaXR5IChzdMS6cGVjICpQb2RpZWxfbWVkemkqIHYgVGFiLiA1KSB1a2F6dWplLCBrdG9yw6kgcHJlbWVubsOpIG5hanZpYWMgcHJpc3BpZXZhasO6IGsgb2Rsw63FoWVuaXUga2xhc3Ryb3YuIFZ5xaHFoWllIGhvZG5vdHkgbmF6bmHEjXVqw7osIMW+ZSBkYW7DvSB1a2F6b3ZhdGXEviBkb2JyZSBzZXBhcnVqZSBmaXJteSBkbyByw7R6bnljaCBza3Vww61uLgoKWmhsdWtvdsOhIGFuYWzDvXphIHRhayBwb3NreXRsYSBwcmVoxL5hZG7DqSByb3pkZWxlbmllIGZpcmllbSBwb2TEvmEgaWNoIGZpbmFuxI1uZWogc2l0dcOhY2llIGEgxaF0cnVrdMO6cnkgdmVkZW5pYSBhIG3DtMW+ZSBzbMO6xb5pxaUgYWtvIHbDvWNob2Rpc2tvIHByZSBwb2Ryb2JuZWrFoWl1IGFuYWzDvXp1IGFsZWJvIHBvcm92bmFuaWUgcG9kbmlrb3YgdiByw6FtY2kgamVkbm90bGl2w71jaCBrbGFzdHJvdi4KCgo=