PHÂN TÍCH TỶ LỆ THẤT NGHIỆP Ở NƯỚC TA NĂM 2020 - 2023
II. Lời cảm ơn
Lời đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến Giảng viên –
ThS.Trần Mạnh Tường. Trong quá trình học tập và tìm hiểu bộ môn “Ngôn
ngữ lập trình và phân tích dữ liệu”, em đã nhận được sự quan tâm giúp
đỡ, hướng dẫn rất tận tình, tâm huyết của thầy. Thầy đã giúp em tích lũy
thêm nhiều kiến thức để có cái nhìn sâu sắc và hoàn thiện hơn về bộ môn
này. Từ những kiến thức mà thầy truyền tải, chúng em đã dần hiểu được
tầm quan trọng của ngôn ngữ lập trình R này mà bấy lâu nay còn nhiều
thắc mắc và chưa rõ. Nhận nhiệm vụ của thầy, thông qua bài tiểu luận này
em xin trình bày những gì mà em đã tìm hiểu về môn học, và cụ thể hơn ở
đây em lựa chọn đề tài “Phân tích tỷ lệ thất nghiệp ở nước ta năm 2020
đến 2023”.
Có lẽ kiến thức là vô hạn mà sự tiếp nhận kiến thức của bản thân mỗi
người luôn tồn tại những hạn chế nhất định. Do đó, trong quá trình hoàn
thành bài tiểu luận, chắc chắn em không tránh khỏi những thiếu sót. Vì
vậy, em rất mong nhận được những đóng góp đến từ thầy để bài tiểu luận
của nhóm được hoàn thiện hơn.
Kính chúc thầy sức khỏe, hạnh phúc và thành công trên con đường sự
nghiệp giảng dạy của mình.
III. Phần mở đầu
Dân số Việt Nam có những biến đổi nhân khẩu học mạnh mẽ với một số
đặc trưng nổi bật: Dân số đang trong thời kỳ cơ cấu dân số vàng, xu
hướng già hóa dân số vẫn đang diễn ra nhanh chóng; tốc độ đô thị hóa
cao; mức sinh giảm xuống thấp nhất trong giai đoạn 2020-2023; các chương
trình chăm sóc sức khoẻ bà mẹ và trẻ em nói riêng và công tác bảo vệ sức
khoẻ, nâng cao mức sống cho nhân dân nói chung đạt được những thành công
nhất định, tỷ lệ tử vong ở Việt Nam tiếp tục duy trì ở mức thấp, tuổi
thọ trung bình cao trong nhiều năm trở lại đây.
3.1 Lí do chọn đề tài
a) Tầm quan trọng:
Tỷ lệ thất nghiệp là một chỉ báo kinh tế quan trọng phản ánh tình
trạng sức khỏe của nền kinh tế.
Tỷ lệ thất nghiệp cao ảnh hưởng đến sự ổn định xã hội và an ninh
quốc phòng. Phân tích tỷ lệ thất nghiệp giúp đánh giá hiệu quả của các
chính sách kinh tế và xã hội.
b) Tính thực tiễn:
Kết quả phân tích tỷ lệ thất nghiệp có thể được sử dụng để đề
xuất các giải pháp giảm thiểu thất nghiệp.
Các giải pháp này góp phần phát triển kinh tế - xã hội, nâng cao
đời sống của người dân.
c) Tính thời sự:
Tỷ lệ thất nghiệp là một vấn đề nóng hổi được quan tâm bởi nhiều
người.
Phân tích tỷ lệ thất nghiệp giúp cung cấp thông tin hữu ích cho
các nhà hoạch định chính sách, doanh nghiệp và người lao động.
e) Khả năng áp dụng:
Kết quả phân tích tỷ lệ thất nghiệp có thể áp dụng để giải quyết
các vấn đề thực tế.
Ví dụ, kết quả phân tích có thể được sử dụng để hướng nghiệp cho
người lao động, tư vấn cho doanh nghiệp về chiến lược tuyển dụng,
v.v.
3.2 Mục tiêu nghiên cứu
Phân tích các yếu tố ảnh hưởng đến tỷ lệ thất nghiệp, bao gồm các
yếu tố kinh tế, xã hội, nhân khẩu học, v.v.
Đánh giá hiệu quả của các chính sách và chương trình hỗ trợ người
thất nghiệp.
Dự báo xu hướng của tỷ lệ thất nghiệp trong tương lai.
Đề xuất các giải pháp phù hợp để giảm thiểu thất nghiệp, bao gồm
các giải pháp về phát triển kinh tế, giáo dục đào tạo, an sinh xã
hội,
3.3 Phạm vi nghiên cứu
d) Nội dung nghiên cứu:
Tỷ lệ thất nghiệp
Định nghĩa, phương pháp tính toán
Biến động của tỷ lệ thất nghiệp theo thời gian, khu vực, đối
tượng
IV. Phân tích tỷ lệ thất nghiệp
4.1 Giới thiệu tổng quan
a) Khái niệm
Tỷ lệ thất nghiệp là tỷ số phần trăm giữa số người thất nghiệp và lực
lượng lao động trong một quốc gia, khu vực hoặc nhóm dân số cụ thể.
b) Nội dung
Diễn biến:
Tỷ lệ thất nghiệp trong độ tuổi lao động của Việt Nam từ năm 2020
đến 2023 có xu hướng giảm.
Năm 2020, tỷ lệ thất nghiệp ở mức cao nhất (2,28%) do ảnh hưởng
của đại dịch Covid-19.
Năm 2021, tỷ lệ thất nghiệp tăng nhẹ (2,34%) do các đợt bùng phát
dịch Covid-19 tiếp tục diễn ra.
Năm 2022, tỷ lệ thất nghiệp giảm nhẹ (2,28%) nhờ vào sự phục hồi
của kinh tế và các giải pháp hỗ trợ của Chính phủ.
Năm 2023, tỷ lệ thất nghiệp dự kiến tiếp tục giảm (2,25%) và có
thể trở lại mức trước đại dịch.
Điểm tích cực:
Tỷ lệ thất nghiệp giảm cho thấy sự phục hồi của nền kinh tế sau đại
dịch Covid-19. Các giải pháp của Chính phủ như hỗ trợ đào tạo, dạy nghề,
tạo việc làm đã phát huy hiệu quả.
Hạn chế:
Tỷ lệ thất nghiệp vẫn ở mức cao so với các nước trong khu vực.
Nhóm lao động trẻ (15-24 tuổi) có tỷ lệ thất nghiệp cao hơn so với nhóm
lao động độ tuổi khác.
Tỷ lệ thất nghiệp ở khu vực thành thị cao hơn khu vực nông
thôn.
# Tạo dataframe từ vectơ chứa dữ liệu
data <- data.frame(Năm = c("2020", "2021", "2022", "2023"),
`Số người thất nghiệp` = c(1270.7, 1488.5, 1100.2, 1083.7))
Lực lượng lao động
2020 |
1270.7 |
2021 |
1488.5 |
2022 |
1100.2 |
2023 |
1083.7 |
Giới thiệu về bộ dữ liệu
## Warning: package 'xlsx' was built under R version 4.3.3
dq <- read.xlsx(file.choose(), sheetIndex = 1, header = T)
- Đọc dữ liệu từ excel và gán vào object dq
- Kiểm tra xem “dq” có phải là data frame hay không, nếu đúng thì TRUE
và ngược lại
cho ra kết quả độ dài, ở đây là số cột của “dq”: 29
cột
## [1] "NA." "Quý.I..năm.2020" "Quý.II..năm.2020"
## [4] "X6.tháng.năm.2020" "Quý.III..năm.2020" "X9.tháng.năm.2020"
## [7] "Quý.IV.năm.2020" "Năm.2020" "Quý.I..năm.2021"
## [10] "Quý.II..năm.2021" "X6.tháng.năm.2021" "Quý.III..năm.2021"
## [13] "X9.tháng.năm.2021" "Quý.IV.năm.2021" "Năm.2021"
## [16] "Quý.I..năm.2022" "Quý.II..năm.2022" "X6.tháng.năm.2022"
## [19] "Quý.III..năm.2022" "X9.tháng.năm.2022" "Quý.IV.năm.2022"
## [22] "Năm.2022" "Quý.I..năm.2023" "Quý.II..năm.2023"
## [25] "X6.tháng.năm.2023" "Quý.III..năm.2023" "X9.tháng.năm.2023"
## [28] "Quý.IV.năm.2023" "Năm.2023"
- Bộ dữ liệu này gồm có 91 hàng và 29 cột
Xác định các thông tin của dq
Thực hiện thống kê mô tả datasets này ta được kết quả như sau, ý
nghĩa các cột:
n_missing: số ô dư liệu trống
complete_rate: tỷ lệ ô có dữ liệu
mean: trung bình
sd: độ lệch chuẩn
p0: giá trị nhỏ nhất
p25: Phân vị thứ nhất
p50: Phân vị thứ hai cũng chính là trung vị
p75: phân vị thứ ba
p100: giá trị lớn nhất
hist: biểu đồ Histogram
Data summary
Name |
dq |
Number of rows |
91 |
Number of columns |
29 |
_______________________ |
|
Column type frequency: |
|
character |
25 |
numeric |
4 |
________________________ |
|
Group variables |
None |
Variable type: character
NA. |
0 |
1.00 |
4 |
70 |
0 |
25 |
0 |
Quý.I..năm.2020 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.II..năm.2020 |
22 |
0.76 |
0 |
16 |
1 |
68 |
0 |
X6.tháng.năm.2020 |
24 |
0.74 |
0 |
16 |
1 |
65 |
0 |
Quý.III..năm.2020 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
X9.tháng.năm.2020 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.IV.năm.2020 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Năm.2020 |
25 |
0.73 |
0 |
16 |
1 |
66 |
0 |
Quý.I..năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.II..năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
66 |
0 |
X6.tháng.năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
65 |
0 |
Quý.III..năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
X9.tháng.năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.IV.năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
66 |
0 |
Năm.2021 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.I..năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.II..năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
64 |
0 |
X6.tháng.năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
66 |
0 |
Quý.III..năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
X9.tháng.năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.IV.năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Năm.2022 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
Quý.I..năm.2023 |
24 |
0.74 |
0 |
16 |
1 |
66 |
0 |
Quý.II..năm.2023 |
24 |
0.74 |
0 |
16 |
1 |
67 |
0 |
X6.tháng.năm.2023 |
24 |
0.74 |
0 |
16 |
1 |
65 |
0 |
Variable type: numeric
Quý.III..năm.2023 |
25 |
0.73 |
9703.71 |
14541.12 |
1.83 |
7.45 |
435.45 |
19459.93 |
52416.10 |
▇▁▂▁▁ |
X9.tháng.năm.2023 |
25 |
0.73 |
9687.38 |
14509.86 |
1.60 |
7.23 |
428.95 |
19378.57 |
52318.70 |
▇▁▂▁▁ |
Quý.IV.năm.2023 |
25 |
0.73 |
9728.20 |
14583.40 |
1.61 |
7.41 |
431.43 |
19509.57 |
52529.61 |
▇▁▂▁▁ |
Năm.2023 |
25 |
0.73 |
9697.60 |
14528.15 |
1.61 |
7.27 |
429.55 |
19411.36 |
52371.39 |
▇▁▂▁▁ |
4.2 Số người thất nghiệp trong độ tuổi lao động
a) Biểu đồ cột
# Load required library
library(ggplot2)
# Tạo dataframe từ vectơ chứa dữ liệu
data <- data.frame(Nam = c("2020", "2021", "2022", "2023"),
So_nguoi_that_nghiep = c(1270.7, 1488.5, 1100.2, 1083.7),
So_nguoi_that_nghiep_trong_do_tuoi_lao_dong = c(1233.2, 1428.5, 1079.9, 1065.3))
# Tăng kích thước biểu đồ
options(repr.plot.width = 20, repr.plot.height = 10)
ggplot(data, aes(x = Nam)) +
geom_col(aes(y = So_nguoi_that_nghiep), fill = "skyblue", alpha = 0.7, position = position_dodge(width = 5)) +
geom_line(aes(y = So_nguoi_that_nghiep_trong_do_tuoi_lao_dong, group = 1, color = "Số người thất nghiệp trong độ tuổi lao động"), size = 1.5) +
geom_point(aes(y = So_nguoi_that_nghiep_trong_do_tuoi_lao_dong, color = "Số người thất nghiệp trong độ tuổi lao động"), size = 3) +
labs(title = "Số người thất nghiệp theo năm và độ tuổi lao động",
x = "Năm",
y = "Nghìn người",
color = "Chú thích") +
theme_minimal() +
scale_color_manual(values = c("Số người thất nghiệp trong độ tuổi lao động" = "orange")) +
guides(color = guide_legend(title = "Loại số liệu")) +
theme(text = element_text(size=20))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Nhận xét - Thông qua biểu đồ ta nhìn thấy được số
người thất nghiệp qua từng năm từ 2020 - 2023, những người này đều trong
độ tuổi lao động
Ở năm 2021 số người thất nghiệp ở mức cao nhất gần chạm đến 1500
nghìn người
Năm 2022 và 2023 thì con số đó đã được giảm xuống và số liệu 2
năm này là tương đối bằng nhau
Tính chung năm 2023, cả nước có hơn 1000 nghìn người thất nghiệp
trong độ tuổi lao động, giảm 14,6 nghìn người so với năm trước. Tỷ lệ
thất nghiệp trong độ tuổi lao động năm 2023 là 2,28%, giảm 0,06 điểm
phần trăm so với năm trước.
b) Tỷ lệ phần trăm
# Load required library
library(ggplot2)
# Tạo dataframe từ vectơ chứa dữ liệu
data <- data.frame(Nam = c("2020", "2021", "2022", "2023"),
So_nguoi_that_nghiep = c(1270.7, 1488.5, 1100.2, 1083.7),
So_thanh_nien_tu_15_den_24_tuoi = c(444.5, 435.4, 406.1, 437.3))
Phương pháp tính toán:
Tỷ lệ thất nghiệp = (Số người thất nghiệp / Lực lượng lao động) x
100%
# Tạo biến lưu trữ tổng số người thất nghiệp
tong_so_nguoi_that_nghiep <- 33946.27
# Tạo biến lưu trữ tổng số thanh niên thất nghiệp
tong_thanh_nien_that_nghiep <- 11891.42
# Tính tỷ lệ phần trăm
ty_le_phan_tram <- (tong_thanh_nien_that_nghiep / tong_so_nguoi_that_nghiep) * 100
# In kết quả
print(paste("Tỷ lệ phần trăm thanh niên thất nghiệp:", ty_le_phan_tram, "%"))
## [1] "Tỷ lệ phần trăm thanh niên thất nghiệp: 35.0301226025717 %"
Nhận xét
- Tỷ lệ 35.0301226025717% là một con số cao và đáng lo ngại. Nó cho
thấy rằng hơn 1/3 thanh niên trong độ tuổi lao động không có việc
làm.
Tác động:
Tỷ lệ thất nghiệp cao có thể dẫn đến nhiều vấn đề xã hội: Ví dụ
như bất ổn xã hội, gia tăng tội phạm, và ảnh hưởng đến sức khỏe tinh
thần của thanh niên.
Tỷ lệ thất nghiệp cao cũng có thể ảnh hưởng đến nền kinh tế: Ví
dụ như giảm năng suất lao động và thu hẹp thị trường tiêu dùng.
Nguyên nhân:
Có nhiều nguyên nhân dẫn đến tỷ lệ thất nghiệp thanh niên cao: Ví
dụ như thiếu kỹ năng, thiếu kinh nghiệm, và sự cạnh tranh cao trong thị
trường lao động.
Dịch COVID-19 cũng có thể góp phần làm tăng tỷ lệ thất nghiệp
thanh niên: Do nhiều doanh nghiệp phải đóng cửa hoặc thu hẹp quy mô hoạt
động.
Giải pháp:
- Cần có nhiều giải pháp để giảm tỷ lệ thất nghiệp thanh niên: Ví dụ
như cải thiện hệ thống giáo dục và đào tạo, tạo ra nhiều việc làm hơn,
và hỗ trợ khởi nghiệp cho thanh niên.
c) Biểu đồ tròn
# Tạo biểu đồ tròn
pie_data <- c(ty_le_phan_tram, 100 - ty_le_phan_tram)
names(pie_data) <- c("Thanh niên thất nghiệp", "Người khác")
# Vẽ biểu đồ tròn
pie(pie_data, main = "Tỷ lệ phần trăm thanh niên thất nghiệp từ 15 đến 24 tuổi\ntrong tổng số người thất nghiệp trong 4 năm", labels = c(sprintf("%.1f%%", ty_le_phan_tram), sprintf("%.1f%%", 100 - ty_le_phan_tram)))
legend("topright", legend = c("Thanh niên thất nghiệp", "Người khác"), fill = c("lightblue", "lightgreen"))

Nhận xét
Ta có thể thấy rằng số thanh niên thất nghiệp trong độ tuổi từ 15-24
là rất lớn chiếm tới 35%. Điều này là một tín hiệu vô cùng xấu đối với
cơ cấu lao động của đất nước. Đây là độ tuổi lao động chính, tạo ra
nhiều của cải vật chất nhưng điều đáng tiếc là đất nước chúng ta vẫn
chưa thế tạo ra những cơ hội để tận dụng lực lượng này.
4.3 Tỷ lệ thất nghiệp theo giới tính và theo vị trí
a) Tỷ lệ thất nghiệp nam và nữ 2020-2023
# Import gói ggplot2
library(ggplot2)
# Dữ liệu
nam_thanh_thi <- c(3.82, 4.33, 2.82, 2.73)
nu_thanh_thi <- c(2.04, 2.50, 2.04, 2.00)
nam_nong_thon <- c(2.19, 3.15, 2.36, 2.31)
nu_nong_thon <- c(3.27, 3.26, 2.32, 2.24)
years <- c(2020, 2021, 2022, 2023)
# Tạo dataframe từ dữ liệu
data <- data.frame(
nam_thanh_thi = nam_thanh_thi,
nu_thanh_thi = nu_thanh_thi,
nam_nong_thon = nam_nong_thon,
nu_nong_thon = nu_nong_thon,
years = years
)
# Tăng kích thước biểu đồ
options(repr.plot.width = 10, repr.plot.height = 10)
# Biểu đồ 1: Nam và Nữ
ggplot(data, aes(x = nam_thanh_thi, y = nu_thanh_thi)) +
geom_point(aes(color = "Thành thị"), size = 3) +
geom_point(aes(x = nam_nong_thon, y = nu_nong_thon, color = "Nông thôn"), size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "black") +
labs(title = "Tỉ lệ thất nghiệp nam và nữ",
x = "Nam",
y = "Nữ",
color = "Loại") + # Đặt tên cho chú thích
theme_minimal() +
theme(text = element_text(size = 12)) + # Tăng cỡ chữ
scale_color_manual(values = c("blue", "red"), labels = c("Thành thị", "Nông thôn")) # Đặt nhãn cho chú thích
## `geom_smooth()` using formula = 'y ~ x'

Nhận xét:
Nguyên nhân:
Cơ cấu ngành nghề: Nam giới thường làm việc trong các ngành chịu
ảnh hưởng nặng nề bởi dịch COVID-19 như du lịch, dịch vụ, sản
xuất.
Kỹ năng: Nữ giới thường có kỹ năng phù hợp với các ngành ít bị
ảnh hưởng bởi dịch COVID-19 như y tế, giáo dục, hành chính.
Chăm sóc gia đình: Nữ giới thường gánh vác trách nhiệm chăm sóc
gia đình nhiều hơn nam giới, nên có thể ưu tiên các công việc có thời
gian linh hoạt hơn.
b) Tỷ lệ thất nghiệp ở thành thị và nông thôn 2020-2023
# Biểu đồ 2: Thành thị và Nông thôn
ggplot(data, aes(x = nam_thanh_thi, y = nam_nong_thon)) +
geom_point(aes(color = "Nam"), size = 3) +
geom_point(aes(x = nu_thanh_thi, y = nu_nong_thon, color = "Nữ"), size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "black") +
labs(title = "Tỉ lệ thất nghiệp thành thị và nông thôn",
x = "Thành thị",
y = "Nông thôn",
color = "Loại") + # Đặt tên cho chú thích
theme_minimal() +
theme(text = element_text(size = 12)) + # Tăng cỡ chữ
scale_color_manual(values = c("blue", "red"), labels = c("Nam", "Nữ")) # Đặt nhãn cho chú thích
## `geom_smooth()` using formula = 'y ~ x'

=> Tỷ lệ thất nghiệp ở Việt Nam có xu hướng giảm trong giai đoạn
2020-2023, tuy nhiên tỷ lệ thất nghiệp ở thành thị cao hơn và khoảng
cách tỷ lệ thất nghiệp giữa nam và nữ ở thành thị lớn hơn so với ở nông
thôn. Cần có các giải pháp hỗ trợ việc làm cho cả nam và nữ ở thành thị,
đặc biệt là nam giới trong các ngành bị ảnh hưởng bởi dịch COVID-19.
Kết luận
Như vậy ta có thể thấy rằng sự khác biệt rõ rệt
Giữa nam và nữ: số lượng người có giới tính nữ không có việc làm
luôn cao hơn nam qua mọi năm, điều này cũng dễ hiểu khi lực lượng lao
động là nam chiếm ưu thế bởi sức khỏe, các chế độ như thai sản,… luôn ít
hơn so với nữ
Giữa thành thị và nông thôn: Việc làm ở thành thị phụ thuộc phần
lớn vào tình hình kinh tế và chính trị như đại dịch, suy thoái,.. nên tỷ
lệ này luôn bất ổn định theo tình hình đó. Những người ở khu vực nông
thôn ít ảnh hưởng bởi yếu tố kể trên và họ cũng có thể có đa dạng công
việc hơn
V. Kết luận
5.1 Kết quả
Tỷ lệ thất nghiệp có xu hướng tăng nhẹ từ năm 2020 đến năm 2021,
sau đó giảm nhẹ trong năm 2022 và 2023 (6 tháng đầu năm).
So với các năm trước, tỷ lệ thất nghiệp năm 2020-2023 vẫn ở mức
cao.
Có sự khác biệt về tỷ lệ thất nghiệp giữa các khu vực:
Khu vực thành thị: Tỷ lệ thất nghiệp cao hơn so với khu vực nông
thôn.
Giữa các nhóm lao động: Tỷ lệ thất nghiệp cao hơn ở nhóm lao động
trẻ, có trình độ học vấn thấp và ở các ngành nghề bị ảnh hưởng bởi dịch
COVID-19.
5.2 Nguyên nhân
Dịch COVID-19: Ảnh hưởng tiêu cực đến thị trường lao động, khiến
nhiều doanh nghiệp phải thu hẹp hoạt động, cắt giảm nhân sự.
Cơ cấu kinh tế: Chuyển dịch sang các ngành dịch vụ và công
nghiệp, đòi hỏi lao động có kỹ năng cao hơn.
Nhu cầu lao động: Không đồng đều giữa các ngành nghề và khu
vực.
5.3 Giải pháp
a) Giải pháp về phía Chính phủ:
Tăng cường đầu tư cho phát triển kinh tế.
Phát triển các ngành kinh tế có tiềm năng, tạo ra nhiều việc
làm.
Cải thiện môi trường đầu tư kinh doanh, thu hút đầu tư trong và
ngoài nước.
Mở rộng các chương trình hỗ trợ việc làm cho người lao động thất
nghiệp.
Hỗ trợ người lao động khởi nghiệp, tạo dựng việc làm.
b) Giải pháp về phía doanh nghiệp:
Mở rộng sản xuất kinh doanh, tạo ra nhiều việc làm.
Tận dụng cơ hội từ các Hiệp định thương mại tự do.
Đầu tư vào khoa học công nghệ, nâng cao năng suất lao
động.
Thực hiện các chế độ phúc lợi cho người lao động.
Tạo môi trường làm việc tốt cho người lao động.
Đảm bảo an toàn lao động.
Coi trọng đời sống tinh thần của người lao động.
c) Giải pháp về phía người lao động:
Nâng cao trình độ chuyên môn và kỹ năng nghề nghiệp.
Tham gia các khóa đào tạo, học nghề.
Tự học tập và rèn luyện kỹ năng.
Khởi nghiệp, tự tạo việc làm
5.4 Kết luận
Tỷ lệ thất nghiệp là một vấn đề cần được quan tâm và giải
quyết.
Cần có sự chung tay của chính phủ, doanh nghiệp, và xã hội để
giảm tỷ lệ thất nghiệp và tạo ra nhiều việc làm hơn cho người lao
động.
Ngoài ra:
Tác động của dịch COVID-19: Dịch COVID-19 đã ảnh hưởng đến thị
trường lao động một cách nghiêm trọng. Nhiều doanh nghiệp phải đóng cửa
hoặc thu hẹp hoạt động, dẫn đến việc cắt giảm nhân sự. Điều này khiến
cho tỷ lệ thất nghiệp tăng cao.
Chuyển đổi cơ cấu kinh tế: Cơ cấu kinh tế Việt Nam đang chuyển
dịch từ nông nghiệp sang công nghiệp và dịch vụ. Điều này đòi hỏi lao
động phải có kỹ năng cao hơn để đáp ứng nhu cầu của thị trường lao động.
Nhu cầu lao động không đồng đều: Nhu cầu lao động giữa các ngành nghề và
khu vực không đồng đều. Một số ngành nghề thiếu lao động trong khi một
số ngành nghề khác lại có dư thừa lao động.
Để giải quyết vấn đề thất nghiệp:
Chính phủ cần có những chính sách hỗ trợ doanh nghiệp: Giúp doanh
nghiệp duy trì hoạt động, tạo việc làm cho người lao động.
Cần tăng cường đào tạo nghề: Nâng cao kỹ năng cho lao động, đáp
ứng nhu cầu thị trường.
Cần tăng cường giới thiệu việc làm: Kết nối người lao động với
các cơ hội việc làm phù hợp.
VI. Tài liệu tham khảo
- Trần Mạnh Tường. Data manipulation và Data Visualization.
- Tổng cục Thống kê Việt Nam: https://www.gso.gov.vn/
LS0tDQp0aXRsZTogIlRJ4buCVSBMVeG6rE4iDQphdXRob3I6ICJOZ3V54buFbiBEaeG7hW0gUXXhu7NuaCINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBkZl9wcmludDoga2FibGUNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAnMScNCiAgcGRmX2RvY3VtZW50Og0KICAgIGV4dHJhX2RlcGVuZGVuY2llczoNCiAgICAgIHZpZXRuYW06IHV0ZjgNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldCgNCiAgY2xhc3Muc291cmNlID0gIm51bWJlckxpbmVzIGxpbmVBbmNob3JzIiwgDQogIGNsYXNzLm91dHB1dCA9IGMoIm51bWJlckxpbmVzIGxpbmVBbmNob3JzIGNodW5rb3V0IikgDQopDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkoRFQpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQpkaXYuc291cmNlQ29kZSBwcmUuY2h1bmtvdXQgew0KICBiYWNrZ3JvdW5kOiB3aGl0ZTsNCn0NCmBgYA0KIA0KDQojIFBIw4JOIFTDjUNIIFThu7YgTOG7hiBUSOG6pFQgTkdISeG7hlAg4bueIE7Gr+G7mkMgVEEgTsSCTSAyMDIwIC0gMjAyMw0KDQojIEkuIEZJTEUgREFUQQ0KDQpodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZHJpdmUvZm9sZGVycy8xc1RHbUpNV1JIdFZpM25HRUF1aTJ1U1V1Mld6bkNuS0YNCg0KIyBJSS4gTOG7nWkgY+G6o20gxqFuDQoNCkzhu51pIMSR4bqndSB0acOqbiwgZW0geGluIGfhu61pIGzhu51pIGPhuqNtIMahbiBjaMOibiB0aMOgbmggbmjhuqV0IMSR4bq/biBHaeG6o25nIHZpw6puIOKAkyBUaFMuVHLhuqduIE3huqFuaCBUxrDhu51uZy4gVHJvbmcgcXXDoSB0csOsbmggaOG7jWMgdOG6rXAgdsOgIHTDrG0gaGnhu4N1IGLhu5kgbcO0biDigJxOZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmggdsOgIHBow6JuIHTDrWNoIGThu68gbGnhu4d14oCdLCBlbSDEkcOjIG5o4bqtbiDEkcaw4bujYyBz4buxIHF1YW4gdMOibSBnacO6cCDEkeG7oSwgaMaw4bubbmcgZOG6q24gcuG6pXQgdOG6rW4gdMOsbmgsIHTDom0gaHV54bq/dCBj4bunYSB0aOG6p3kuIFRo4bqneSDEkcOjIGdpw7pwIGVtIHTDrWNoIGzFqXkgdGjDqm0gbmhp4buBdSBraeG6v24gdGjhu6ljIMSR4buDIGPDsyBjw6FpIG5ow6xuIHPDonUgc+G6r2MgdsOgIGhvw6BuIHRoaeG7h24gaMahbiB24buBIGLhu5kgbcO0biBuw6B5LiBU4burIG5o4buvbmcga2nhur9uIHRo4bupYyBtw6AgdGjhuqd5IHRydXnhu4FuIHThuqNpLCBjaMO6bmcgZW0gxJHDoyBk4bqnbiBoaeG7g3UgxJHGsOG7o2MgdOG6p20gcXVhbiB0cuG7jW5nIGPhu6dhIG5nw7RuIG5n4buvIGzhuq1wIHRyw6xuaCBSIG7DoHkgbcOgIGLhuqV5IGzDonUgbmF5IGPDsm4gbmhp4buBdSB0aOG6r2MgbeG6r2MgdsOgIGNoxrBhIHLDtS4gTmjhuq1uIG5oaeG7h20gduG7pSBj4bunYSB0aOG6p3ksIHRow7RuZyBxdWEgYsOgaSB0aeG7g3UgbHXhuq1uIG7DoHkgZW0geGluIHRyw6xuaCBiw6B5IG5o4buvbmcgZ8OsIG3DoCBlbSDEkcOjIHTDrG0gaGnhu4N1IHbhu4EgbcO0biBo4buNYywgdsOgIGPhu6UgdGjhu4MgaMahbiDhu58gxJHDonkgZW0gbOG7sWEgY2jhu41uIMSR4buBIHTDoGkg4oCcUGjDom4gdMOtY2ggdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCDhu58gbsaw4bubYyB0YSBuxINtIDIwMjAgxJHhur9uIDIwMjPigJ0uDQoNCkPDsyBs4bq9IGtp4bq/biB0aOG7qWMgbMOgIHbDtCBo4bqhbiBtw6Agc+G7sSB0aeG6v3Agbmjhuq1uIGtp4bq/biB0aOG7qWMgY+G7p2EgYuG6o24gdGjDom4gbeG7l2kgbmfGsOG7nWkgbHXDtG4gdOG7k24gdOG6oWkgbmjhu69uZyBo4bqhbiBjaOG6vyBuaOG6pXQgxJHhu4tuaC4gRG8gxJHDsywgdHJvbmcgcXXDoSB0csOsbmggaG/DoG4gdGjDoG5oIGLDoGkgdGnhu4N1IGx14bqtbiwgY2jhuq9jIGNo4bqvbiBlbSBraMO0bmcgdHLDoW5oIGto4buPaSBuaOG7r25nIHRoaeG6v3Ugc8OzdC4gVsOsIHbhuq15LCBlbSBy4bqldCBtb25nIG5o4bqtbiDEkcaw4bujYyBuaOG7r25nIMSRw7NuZyBnw7NwIMSR4bq/biB04burIHRo4bqneSDEkeG7gyBiw6BpIHRp4buDdSBsdeG6rW4gY+G7p2EgbmjDs20gxJHGsOG7o2MgaG/DoG4gdGhp4buHbiBoxqFuLg0KDQpLw61uaCBjaMO6YyB0aOG6p3kgc+G7qWMga2jhu49lLCBo4bqhbmggcGjDumMgdsOgIHRow6BuaCBjw7RuZyB0csOqbiBjb24gxJHGsOG7nW5nIHPhu7EgbmdoaeG7h3AgZ2nhuqNuZyBk4bqheSBj4bunYSBtw6xuaC4NCg0KIyBJSUkuIFBo4bqnbiBt4bufIMSR4bqndQ0KDQpEw6JuIHPhu5EgVmnhu4d0IE5hbSBjw7Mgbmjhu69uZyBiaeG6v24gxJHhu5VpIG5ow6JuIGto4bqpdSBo4buNYyBt4bqhbmggbeG6vSB24bubaSBt4buZdCBz4buRIMSR4bq3YyB0csawbmcgbuG7lWkgYuG6rXQ6IETDom4gc+G7kSDEkWFuZyB0cm9uZyB0aOG7nWkga+G7syBjxqEgY+G6pXUgZMOibiBz4buRIHbDoG5nLCB4dSBoxrDhu5tuZyBnacOgIGjDs2EgZMOibiBz4buRIHbhuqtuIMSRYW5nIGRp4buFbiByYSBuaGFuaCBjaMOzbmc7IHThu5FjIMSR4buZIMSRw7QgdGjhu4sgaMOzYSBjYW87IG3hu6ljIHNpbmggZ2nhuqNtIHh14buRbmcgdGjhuqVwIG5o4bqldCB0cm9uZyBnaWFpIMSRb+G6oW4gMjAyMC0yMDIzOyBjw6FjIGNoxrDGoW5nIHRyw6xuaCBjaMSDbSBzw7NjIHPhu6ljIGtob+G6uyBiw6AgbeG6uSB2w6AgdHLhursgZW0gbsOzaSByacOqbmcgdsOgIGPDtG5nIHTDoWMgYuG6o28gduG7hyBz4bupYyBraG/hurssIG7Dom5nIGNhbyBt4bupYyBz4buRbmcgY2hvIG5ow6JuIGTDom4gbsOzaSBjaHVuZyDEkeG6oXQgxJHGsOG7o2Mgbmjhu69uZyB0aMOgbmggY8O0bmcgbmjhuqV0IMSR4buLbmgsIHThu7cgbOG7hyB04butIHZvbmcg4bufIFZp4buHdCBOYW0gdGnhur9wIHThu6VjIGR1eSB0csOsIOG7nyBt4bupYyB0aOG6pXAsIHR14buVaSB0aOG7jSB0cnVuZyBiw6xuaCBjYW8gdHJvbmcgbmhp4buBdSBuxINtIHRy4bufIGzhuqFpIMSRw6J5Lg0KDQoNCiMjIDMuMSBMw60gZG8gY2jhu41uIMSR4buBIHTDoGkNCg0KIyMjIGEpIFThuqdtIHF1YW4gdHLhu41uZzoNCg0KLSAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgbMOgIG3hu5l0IGNo4buJIGLDoW8ga2luaCB04bq/IHF1YW4gdHLhu41uZyBwaOG6o24gw6FuaCB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSBj4bunYSBu4buBbiBraW5oIHThur8uDQoNCi0gICBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGNhbyDhuqNuaCBoxrDhu59uZyDEkeG6v24gc+G7sSDhu5VuIMSR4buLbmggeMOjIGjhu5lpIHbDoCBhbiBuaW5oIHF14buRYyBwaMOybmcuDQpQaMOibiB0w61jaCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGdpw7pwIMSRw6FuaCBnacOhIGhp4buHdSBxdeG6oyBj4bunYSBjw6FjIGNow61uaCBzw6FjaCBraW5oIHThur8gdsOgIHjDoyBo4buZaS4NCg0KIyMjIGIpIFTDrW5oIHRo4buxYyB0aeG7hW46DQoNCi0gICBL4bq/dCBxdeG6oyBwaMOibiB0w61jaCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGPDsyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyDEkeG7gSB4deG6pXQgY8OhYyBnaeG6o2kgcGjDoXAgZ2nhuqNtIHRoaeG7g3UgdGjhuqV0IG5naGnhu4dwLg0KDQotICAgQ8OhYyBnaeG6o2kgcGjDoXAgbsOgeSBnw7NwIHBo4bqnbiBwaMOhdCB0cmnhu4NuIGtpbmggdOG6vyAtIHjDoyBo4buZaSwgbsOibmcgY2FvIMSR4budaSBz4buRbmcgY+G7p2EgbmfGsOG7nWkgZMOibi4NCg0KIyMjIGMpIFTDrW5oIHRo4budaSBz4buxOg0KDQotICAgVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBsw6AgbeG7mXQgduG6pW4gxJHhu4EgbsOzbmcgaOG7lWkgxJHGsOG7o2MgcXVhbiB0w6JtIGLhu59pIG5oaeG7gXUgbmfGsOG7nWkuDQoNCi0gICBQaMOibiB0w61jaCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGdpw7pwIGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBo4buvdSDDrWNoIGNobyBjw6FjIG5ow6AgaG/huqFjaCDEkeG7i25oIGNow61uaCBzw6FjaCwgZG9hbmggbmdoaeG7h3AgdsOgIG5nxrDhu51pIGxhbyDEkeG7mW5nLg0KDQojIyMgZCkgVMOtbmgga2hvYSBo4buNYzoNCg0KLSAgIFBow6JuIHTDrWNoIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgY8OzIHRo4buDIHPhu60gZOG7pW5nIG5oaeG7gXUgcGjGsMahbmcgcGjDoXAga2hvYSBo4buNYyBraMOhYyBuaGF1Lg0KDQotICAgVmnhu4djIHPhu60gZOG7pW5nIGPDoWMgcGjGsMahbmcgcGjDoXAga2hvYSBo4buNYyBnacO6cCDEkeG6o20gYuG6o28gdMOtbmggY2jDrW5oIHjDoWMgdsOgIGtow6FjaCBxdWFuIGPhu6dhIGvhur90IHF14bqjIHBow6JuIHTDrWNoLg0KDQojIyMgZSkgS2jhuqMgbsSDbmcgw6FwIGThu6VuZzoNCg0KLSAgIEvhur90IHF14bqjIHBow6JuIHTDrWNoIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgY8OzIHRo4buDIMOhcCBk4bulbmcgxJHhu4MgZ2nhuqNpIHF1eeG6v3QgY8OhYyB24bqlbiDEkeG7gSB0aOG7sWMgdOG6vy4NCg0KLSAgIFbDrSBk4bulLCBr4bq/dCBxdeG6oyBwaMOibiB0w61jaCBjw7MgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgaMaw4bubbmcgbmdoaeG7h3AgY2hvIG5nxrDhu51pIGxhbyDEkeG7mW5nLCB0xrAgduG6pW4gY2hvIGRvYW5oIG5naGnhu4dwIHbhu4EgY2hp4bq/biBsxrDhu6NjIHR1eeG7g24gZOG7pW5nLCB2LnYuDQoNCiMjIDMuMiBN4bulYyB0acOqdSBuZ2hpw6puIGPhu6l1DQoNCi0gICBQaMOibiB0w61jaCBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AsIGJhbyBn4buTbSBjw6FjIHnhur91IHThu5Ega2luaCB04bq/LCB4w6MgaOG7mWksIG5ow6JuIGto4bqpdSBo4buNYywgdi52Lg0KDQotICAgxJDDoW5oIGdpw6EgaGnhu4d1IHF14bqjIGPhu6dhIGPDoWMgY2jDrW5oIHPDoWNoIHbDoCBjaMawxqFuZyB0csOsbmggaOG7lyB0cuG7oyBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3AuDQoNCi0gICBE4buxIGLDoW8geHUgaMaw4bubbmcgY+G7p2EgdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KLSAgIMSQ4buBIHh14bqldCBjw6FjIGdp4bqjaSBwaMOhcCBwaMO5IGjhu6NwIMSR4buDIGdp4bqjbSB0aGnhu4N1IHRo4bqldCBuZ2hp4buHcCwgYmFvIGfhu5NtIGPDoWMgZ2nhuqNpIHBow6FwIHbhu4EgcGjDoXQgdHJp4buDbiBraW5oIHThur8sIGdpw6FvIGThu6VjIMSRw6BvIHThuqFvLCBhbiBzaW5oIHjDoyBo4buZaSwgDQoNCiMjIDMuMyBQaOG6oW0gdmkgbmdoacOqbiBj4bupdQ0KDQojIyMgYSkgS2h1bmcgdGjhu51pIGdpYW4NCg0KLSAgIFRo4budaSDEkWnhu4NtIGLhuq90IMSR4bqndTogUcO6eSBJIG7Eg20gMjAyMA0KDQotICAgVGjhu51pIMSRaeG7g20ga+G6v3QgdGjDumM6IDYgdGjDoW5nIMSR4bqndSBuxINtIDIwMjMNCg0KIyMjIGIpIFBo4bqhbSB2aSDEkeG7i2EgbMO9Og0KDQotICAgVG/DoG4gcXXhu5FjIFZp4buHdCBOYW0NCg0KLSAgIFBow6JuIHTDrWNoIHRoZW8ga2h1IHbhu7FjICh2w7luZywgbWnhu4FuLCB04buJbmgvdGjDoG5oIHBo4buRKSDEkeG7gyBzbyBzw6FuaCB2w6AgxJHDoW5oIGdpw6ENCg0KIyMjIGMpIMSQ4buRaSB0xrDhu6NuZyBuZ2hpw6puIGPhu6l1Og0KDQotICAgTmfGsOG7nWkgbGFvIMSR4buZbmcgdHJvbmcgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nICh04burIDE1IHR14buVaSDEkeG6v24gNjAgdHXhu5VpKQ0KDQotICAgUGjDom4gdMOtY2ggdGhlbyBjw6FjIG5ow7NtIMSR4buRaSB0xrDhu6NuZyBj4bulIHRo4buDIG5oxrA6DQogICAgDQogICAgKyAgIE5hbSBnaeG7m2kNCiAgICANCiAgICArICAgTuG7ryBnaeG7m2kNCiAgICANCiAgICArICAgTmfGsOG7nWkgbGFvIMSR4buZbmcg4bufIGtodSB24buxYyB0aMOgbmggdGjhu4sNCiAgICANCiAgICArICAgTmfGsOG7nWkgbGFvIMSR4buZbmcg4bufIGtodSB24buxYyBuw7RuZyB0aMO0bg0KICAgIA0KIyMjIGQpIE7hu5lpIGR1bmcgbmdoacOqbiBj4bupdToNCg0KLSAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3ANCg0KLSAgIMSQ4buLbmggbmdoxKlhLCBwaMawxqFuZyBwaMOhcCB0w61uaCB0b8Ohbg0KDQotICAgQmnhur9uIMSR4buZbmcgY+G7p2EgdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCB0aGVvIHRo4budaSBnaWFuLCBraHUgduG7sWMsIMSR4buRaSB0xrDhu6NuZw0KDQoNCiMgSVYuIFBow6JuIHTDrWNoIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3ANCg0KIyMgNC4xIEdp4bubaSB0aGnhu4d1IHThu5VuZyBxdWFuDQoNCiMjIyBhKSBLaMOhaSBuaeG7h20NCg0KVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBsw6AgdOG7tyBz4buRIHBo4bqnbiB0csSDbSBnaeG7r2Egc+G7kSBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3AgdsOgIGzhu7FjIGzGsOG7o25nIGxhbyDEkeG7mW5nIHRyb25nIG3hu5l0IHF14buRYyBnaWEsIGtodSB24buxYyBob+G6t2MgbmjDs20gZMOibiBz4buRIGPhu6UgdGjhu4MuDQoNCiMjIyBiKSBO4buZaSBkdW5nDQoNCioqRGnhu4VuIGJp4bq/bjoqKg0KDQotIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgdHJvbmcgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nIGPhu6dhIFZp4buHdCBOYW0gdOG7qyBuxINtIDIwMjAgxJHhur9uIDIwMjMgY8OzIHh1IGjGsOG7m25nIGdp4bqjbS4NCg0KLSBOxINtIDIwMjAsIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3Ag4bufIG3hu6ljIGNhbyBuaOG6pXQgKDIsMjglKSBkbyDhuqNuaCBoxrDhu59uZyBj4bunYSDEkeG6oWkgZOG7i2NoIENvdmlkLTE5Lg0KDQotICAgTsSDbSAyMDIxLCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIHTEg25nIG5o4bq5ICgyLDM0JSkgZG8gY8OhYyDEkeG7o3QgYsO5bmcgcGjDoXQgZOG7i2NoIENvdmlkLTE5IHRp4bq/cCB04bulYyBkaeG7hW4gcmEuDQoNCi0gICBOxINtIDIwMjIsIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgZ2nhuqNtIG5o4bq5ICgyLDI4JSkgbmjhu50gdsOgbyBz4buxIHBo4bulYyBo4buTaSBj4bunYSBraW5oIHThur8gdsOgIGPDoWMgZ2nhuqNpIHBow6FwIGjhu5cgdHLhu6MgY+G7p2EgQ2jDrW5oIHBo4bunLg0KDQotICAgTsSDbSAyMDIzLCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGThu7Ega2nhur9uIHRp4bq/cCB04bulYyBnaeG6o20gKDIsMjUlKSB2w6AgY8OzIHRo4buDIHRy4bufIGzhuqFpIG3hu6ljIHRyxrDhu5tjIMSR4bqhaSBk4buLY2guDQoNCioqxJBp4buDbSB0w61jaCBj4buxYzoqKg0KDQpU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGdp4bqjbSBjaG8gdGjhuqV5IHPhu7EgcGjhu6VjIGjhu5NpIGPhu6dhIG7hu4FuIGtpbmggdOG6vyBzYXUgxJHhuqFpIGThu4tjaCBDb3ZpZC0xOS4NCkPDoWMgZ2nhuqNpIHBow6FwIGPhu6dhIENow61uaCBwaOG7pyBuaMawIGjhu5cgdHLhu6MgxJHDoG8gdOG6oW8sIGThuqF5IG5naOG7gSwgdOG6oW8gdmnhu4djIGzDoG0gxJHDoyBwaMOhdCBodXkgaGnhu4d1IHF14bqjLg0KDQoqKkjhuqFuIGNo4bq/OioqDQoNCi0gICBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIHbhuqtuIOG7nyBt4bupYyBjYW8gc28gduG7m2kgY8OhYyBuxrDhu5tjIHRyb25nIGtodSB24buxYy4NCk5ow7NtIGxhbyDEkeG7mW5nIHRy4bq7ICgxNS0yNCB0deG7lWkpIGPDsyB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGNhbyBoxqFuIHNvIHbhu5tpIG5ow7NtIGxhbyDEkeG7mW5nIMSR4buZIHR14buVaSBraMOhYy4NCg0KLSAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3Ag4bufIGtodSB24buxYyB0aMOgbmggdGjhu4sgY2FvIGjGoW4ga2h1IHbhu7FjIG7DtG5nIHRow7RuLg0KYGBge3J9DQojIFThuqFvIGRhdGFmcmFtZSB04burIHZlY3TGoSBjaOG7qWEgZOG7ryBsaeG7h3UNCmRhdGEgPC0gZGF0YS5mcmFtZShOxINtID0gYygiMjAyMCIsICIyMDIxIiwgIjIwMjIiLCAiMjAyMyIpLA0KICAgICAgICAgICAgICAgICAgYFPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwYCA9IGMoMTI3MC43LCAxNDg4LjUsIDExMDAuMiwgMTA4My43KSkNCmBgYA0KDQoqKkzhu7FjIGzGsOG7o25nIGxhbyDEkeG7mW5nKioNCg0KYGBge3J9DQpoZWFkKGRhdGEpDQpgYGANCioqR2nhu5tpIHRoaeG7h3UgduG7gSBi4buZIGThu68gbGnhu4d1ICoqDQoNCmBgYHtyfSANCmxpYnJhcnkoeGxzeCkNCmRxIDwtIHJlYWQueGxzeChmaWxlLmNob29zZSgpLCBzaGVldEluZGV4ID0gMSwgaGVhZGVyID0gVCkNCg0KYGBgDQoNCi0gICDEkOG7jWMgZOG7ryBsaeG7h3UgdOG7qyBleGNlbCB2w6AgZ8OhbiB2w6BvIG9iamVjdCBkcQ0KDQpgYGB7cn0gDQppcy5kYXRhLmZyYW1lKGRxKQ0KYGBgDQotICAgS2nhu4NtIHRyYSB4ZW0gImRxIiBjw7MgcGjhuqNpIGzDoCBkYXRhIGZyYW1lIGhheSBraMO0bmcsIG7hur91IMSRw7puZyB0aMOsIFRSVUUgdsOgIG5nxrDhu6NjIGzhuqFpDQoNCmBgYHtyLCBlY2hvPVRSVUUgfQ0KbGVuZ3RoKGRxKQ0KYGBgDQpjaG8gcmEga+G6v3QgcXXhuqMgxJHhu5kgZMOgaSwg4bufIMSRw6J5IGzDoCBz4buRIGPhu5l0IGPhu6dhICJkcSI6ICoqMjkgY+G7mXQqKg0KDQpgYGB7ciwgZWNobz1UUlVFIH0NCm5hbWVzKGRxKSANCmBgYA0KLSAgIENobyByYSB0w6puIGPDoWMgY+G7mXQgY+G7p2EgImRxIg0KDQotICAgQ8OhYyBj4buZdCBsw6AgdOG7q25nIHF1w70gY+G7p2EgY8OhYyBuxINtIHThu6sgMjAyMC0yMDIzDQoNCmBgYHtyLCBlY2hvPVRSVUUgfQ0KZGltKGRxKSANCmBgYA0KDQotICAgQuG7mSBk4buvIGxp4buHdSBuw6B5IGfhu5NtIGPDsyA5MSBow6BuZyB2w6AgMjkgY+G7mXQNCg0KKipYw6FjIMSR4buLbmggY8OhYyB0aMO0bmcgdGluIGPhu6dhIGRxKioNCg0KVGjhu7FjIGhp4buHbiB0aOG7kW5nIGvDqiBtw7QgdOG6oyBkYXRhc2V0cyBuw6B5IHRhIMSRxrDhu6NjIGvhur90IHF14bqjIG5oxrAgc2F1LCDDvSBuZ2jEqWEgY8OhYyBj4buZdDoNCg0KLSBuX21pc3Npbmc6IHPhu5Egw7QgZMawIGxp4buHdSB0cuG7kW5nDQoNCi0gY29tcGxldGVfcmF0ZTogdOG7tyBs4buHIMO0IGPDsyBk4buvIGxp4buHdQ0KDQotIG1lYW46IHRydW5nIGLDrG5oDQoNCi0gc2Q6IMSR4buZIGzhu4djaCBjaHXhuqluDQoNCi0gcDA6IGdpw6EgdHLhu4sgbmjhu48gbmjhuqV0DQoNCi0gcDI1OiBQaMOibiB24buLIHRo4bupIG5o4bqldA0KDQotIHA1MDogUGjDom4gduG7iyB0aOG7qSBoYWkgY8WpbmcgY2jDrW5oIGzDoCB0cnVuZyB24buLDQoNCi0gcDc1OiBwaMOibiB24buLIHRo4bupIGJhDQoNCi0gcDEwMDogZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQNCg0KLSBoaXN0OiBiaeG7g3UgxJHhu5MgSGlzdG9ncmFtDQoNCmBgYHtyfQ0KbGlicmFyeShza2ltcikNCnNraW0oZHEpDQpgYGANCg0KDQojIyA0LjIgU+G7kSBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3AgdHJvbmcgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nDQoNCiMjIyBhKSBCaeG7g3UgxJHhu5MgY+G7mXQNCmBgYHtyfQ0KIyBMb2FkIHJlcXVpcmVkIGxpYnJhcnkNCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQpgYGB7cn0NCiMgVOG6oW8gZGF0YWZyYW1lIHThu6sgdmVjdMahIGNo4bupYSBk4buvIGxp4buHdQ0KZGF0YSA8LSBkYXRhLmZyYW1lKE5hbSA9IGMoIjIwMjAiLCAiMjAyMSIsICIyMDIyIiwgIjIwMjMiKSwNCiAgICAgICAgICAgICAgICAgICBTb19uZ3VvaV90aGF0X25naGllcCA9IGMoMTI3MC43LCAxNDg4LjUsIDExMDAuMiwgMTA4My43KSwNCiAgICAgICAgICAgICAgICAgICBTb19uZ3VvaV90aGF0X25naGllcF90cm9uZ19kb190dW9pX2xhb19kb25nID0gYygxMjMzLjIsIDE0MjguNSwgMTA3OS45LCAxMDY1LjMpKQ0KYGBgDQoNCmBgYHtyfQ0KIyBUxINuZyBrw61jaCB0aMaw4bubYyBiaeG7g3UgxJHhu5MNCm9wdGlvbnMocmVwci5wbG90LndpZHRoID0gMjAsIHJlcHIucGxvdC5oZWlnaHQgPSAxMCkNCg0KYGBgDQoNCmBgYHtyfQ0KDQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSBOYW0pKSArDQogIGdlb21fY29sKGFlcyh5ID0gU29fbmd1b2lfdGhhdF9uZ2hpZXApLCBmaWxsID0gInNreWJsdWUiLCBhbHBoYSA9IDAuNywgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDUpKSArDQogIGdlb21fbGluZShhZXMoeSA9IFNvX25ndW9pX3RoYXRfbmdoaWVwX3Ryb25nX2RvX3R1b2lfbGFvX2RvbmcsIGdyb3VwID0gMSwgY29sb3IgPSAiU+G7kSBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3AgdHJvbmcgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nIiksIHNpemUgPSAxLjUpICsNCiAgZ2VvbV9wb2ludChhZXMoeSA9IFNvX25ndW9pX3RoYXRfbmdoaWVwX3Ryb25nX2RvX3R1b2lfbGFvX2RvbmcsIGNvbG9yID0gIlPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwIHRyb25nIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyIpLCBzaXplID0gMykgKw0KICBsYWJzKHRpdGxlID0gIlPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwIHRoZW8gbsSDbSB2w6AgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nIiwNCiAgICAgICB4ID0gIk7Eg20iLA0KICAgICAgIHkgPSAiTmdow6xuIG5nxrDhu51pIiwNCiAgICAgICBjb2xvciA9ICJDaMO6IHRow61jaCIpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIlPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwIHRyb25nIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyIgPSAib3JhbmdlIikpICsNCiAgZ3VpZGVzKGNvbG9yID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkxv4bqhaSBz4buRIGxp4buHdSIpKSArICANCiAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTIwKSkgIA0KDQpgYGANCg0KKipOaOG6rW4geMOpdCoqDQotICAgVGjDtG5nIHF1YSBiaeG7g3UgxJHhu5MgdGEgbmjDrG4gdGjhuqV5IMSRxrDhu6NjIHPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwIHF1YSB04burbmcgbsSDbSB04burIDIwMjAgLSAyMDIzLCBuaOG7r25nIG5nxrDhu51pIG7DoHkgxJHhu4F1IHRyb25nIMSR4buZIHR14buVaSBsYW8gxJHhu5luZw0KDQotICAgIOG7niBuxINtIDIwMjEgc+G7kSBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3Ag4bufIG3hu6ljIGNhbyBuaOG6pXQgZ+G6p24gY2jhuqFtIMSR4bq/biAxNTAwIG5naMOsbiBuZ8aw4budaQ0KDQotICAgTsSDbSAyMDIyIHbDoCAyMDIzIHRow6wgY29uIHPhu5EgxJHDsyDEkcOjIMSRxrDhu6NjIGdp4bqjbSB4deG7kW5nIHbDoCBz4buRIGxp4buHdSAyIG7Eg20gbsOgeSBsw6AgdMawxqFuZyDEkeG7kWkgYuG6sW5nIG5oYXUNCg0KLSAgIFTDrW5oIGNodW5nIG7Eg20gMjAyMywgY+G6oyBuxrDhu5tjIGPDsyBoxqFuIDEwMDAgbmdow6xuIG5nxrDhu51pIHRo4bqldCBuZ2hp4buHcCB0cm9uZyDEkeG7mSB0deG7lWkgbGFvIMSR4buZbmcsIGdp4bqjbSAxNCw2IG5naMOsbiBuZ8aw4budaSBzbyB24bubaSBuxINtIHRyxrDhu5tjLiBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIHRyb25nIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyBuxINtIDIwMjMgbMOgIDIsMjglLCBnaeG6o20gMCwwNiDEkWnhu4NtIHBo4bqnbiB0csSDbSBzbyB24bubaSBuxINtIHRyxrDhu5tjLg0KDQojIyMgYikgVOG7tyBs4buHIHBo4bqnbiB0csSDbQ0KDQpgYGB7cn0NCiMgTG9hZCByZXF1aXJlZCBsaWJyYXJ5DQpsaWJyYXJ5KGdncGxvdDIpDQpgYGANCg0KYGBge3J9DQojIFThuqFvIGRhdGFmcmFtZSB04burIHZlY3TGoSBjaOG7qWEgZOG7ryBsaeG7h3UNCmRhdGEgPC0gZGF0YS5mcmFtZShOYW0gPSBjKCIyMDIwIiwgIjIwMjEiLCAiMjAyMiIsICIyMDIzIiksDQogICAgICAgICAgICAgICAgICAgU29fbmd1b2lfdGhhdF9uZ2hpZXAgPSBjKDEyNzAuNywgMTQ4OC41LCAxMTAwLjIsIDEwODMuNyksDQogICAgICAgICAgICAgICAgICAgU29fdGhhbmhfbmllbl90dV8xNV9kZW5fMjRfdHVvaSAgPSBjKDQ0NC41LCA0MzUuNCwgNDA2LjEsIDQzNy4zKSkNCmBgYA0KDQoqKlBoxrDGoW5nIHBow6FwIHTDrW5oIHRvw6FuOioqDQoNClThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgPSAoU+G7kSBuZ8aw4budaSB0aOG6pXQgbmdoaeG7h3AgLyBM4buxYyBsxrDhu6NuZyBsYW8gxJHhu5luZykgeCAxMDAlDQoNCg0KYGBge3J9DQojIFThuqFvIGJp4bq/biBsxrB1IHRy4buvIHThu5VuZyBz4buRIG5nxrDhu51pIHRo4bqldCBuZ2hp4buHcA0KdG9uZ19zb19uZ3VvaV90aGF0X25naGllcCA8LSAzMzk0Ni4yNw0KIA0KDQojIFThuqFvIGJp4bq/biBsxrB1IHRy4buvIHThu5VuZyBz4buRIHRoYW5oIG5pw6puIHRo4bqldCBuZ2hp4buHcA0KdG9uZ190aGFuaF9uaWVuX3RoYXRfbmdoaWVwIDwtIDExODkxLjQyDQogIA0KDQojIFTDrW5oIHThu7cgbOG7hyBwaOG6p24gdHLEg20NCnR5X2xlX3BoYW5fdHJhbSA8LSAodG9uZ190aGFuaF9uaWVuX3RoYXRfbmdoaWVwIC8gdG9uZ19zb19uZ3VvaV90aGF0X25naGllcCkgKiAxMDANCg0KIyBJbiBr4bq/dCBxdeG6ow0KcHJpbnQocGFzdGUoIlThu7cgbOG7hyBwaOG6p24gdHLEg20gdGhhbmggbmnDqm4gdGjhuqV0IG5naGnhu4dwOiIsIHR5X2xlX3BoYW5fdHJhbSwgIiUiKSkNCg0KYGBgDQoqKk5o4bqtbiB4w6l0KioNCg0KLSAgIFThu7cgbOG7hyAzNS4wMzAxMjI2MDI1NzE3JSBsw6AgbeG7mXQgY29uIHPhu5EgY2FvIHbDoCDEkcOhbmcgbG8gbmfhuqFpLiBOw7MgY2hvIHRo4bqleSBy4bqxbmcgaMahbiAxLzMgdGhhbmggbmnDqm4gdHJvbmcgxJHhu5kgdHXhu5VpIGxhbyDEkeG7mW5nIGtow7RuZyBjw7Mgdmnhu4djIGzDoG0uDQoNCioqVMOhYyDEkeG7mW5nOioqDQoNCi0gICBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGNhbyBjw7MgdGjhu4MgZOG6q24gxJHhur9uIG5oaeG7gXUgduG6pW4gxJHhu4EgeMOjIGjhu5lpOiBWw60gZOG7pSBuaMawIGLhuqV0IOG7lW4geMOjIGjhu5lpLCBnaWEgdMSDbmcgdOG7mWkgcGjhuqFtLCB2w6Ag4bqjbmggaMaw4bufbmcgxJHhur9uIHPhu6ljIGto4buPZSB0aW5oIHRo4bqnbiBj4bunYSB0aGFuaCBuacOqbi4NCg0KLSAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgY2FvIGPFqW5nIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gbuG7gW4ga2luaCB04bq/OiBWw60gZOG7pSBuaMawIGdp4bqjbSBuxINuZyBzdeG6pXQgbGFvIMSR4buZbmcgdsOgIHRodSBo4bq5cCB0aOG7iyB0csaw4budbmcgdGnDqnUgZMO5bmcuDQoNCioqTmd1ecOqbiBuaMOibjoqKg0KDQotICAgQ8OzIG5oaeG7gXUgbmd1ecOqbiBuaMOibiBk4bqrbiDEkeG6v24gdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCB0aGFuaCBuacOqbiBjYW86IFbDrSBk4bulIG5oxrAgdGhp4bq/dSBr4bu5IG7Eg25nLCB0aGnhur91IGtpbmggbmdoaeG7h20sIHbDoCBz4buxIGPhuqFuaCB0cmFuaCBjYW8gdHJvbmcgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLg0KDQotICAgROG7i2NoIENPVklELTE5IGPFqW5nIGPDsyB0aOG7gyBnw7NwIHBo4bqnbiBsw6BtIHTEg25nIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgdGhhbmggbmnDqm46IERvIG5oaeG7gXUgZG9hbmggbmdoaeG7h3AgcGjhuqNpIMSRw7NuZyBj4butYSBob+G6t2MgdGh1IGjhurlwIHF1eSBtw7QgaG/huqF0IMSR4buZbmcuDQoNCioqR2nhuqNpIHBow6FwOioqDQoNCi0gICBD4bqnbiBjw7Mgbmhp4buBdSBnaeG6o2kgcGjDoXAgxJHhu4MgZ2nhuqNtIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgdGhhbmggbmnDqm46IFbDrSBk4bulIG5oxrAgY+G6o2kgdGhp4buHbiBo4buHIHRo4buRbmcgZ2nDoW8gZOG7pWMgdsOgIMSRw6BvIHThuqFvLCB04bqhbyByYSBuaGnhu4F1IHZp4buHYyBsw6BtIGjGoW4sIHbDoCBo4buXIHRy4bujIGto4bufaSBuZ2hp4buHcCBjaG8gdGhhbmggbmnDqm4uDQoNCiMjIyBjKSBCaeG7g3UgxJHhu5MgdHLDsm4NCg0KYGBge3J9DQojIFThuqFvIGJp4buDdSDEkeG7kyB0csOybg0KcGllX2RhdGEgPC0gYyh0eV9sZV9waGFuX3RyYW0sIDEwMCAtIHR5X2xlX3BoYW5fdHJhbSkNCm5hbWVzKHBpZV9kYXRhKSA8LSBjKCJUaGFuaCBuacOqbiB0aOG6pXQgbmdoaeG7h3AiLCAiTmfGsOG7nWkga2jDoWMiKQ0KYGBgDQoNCmBgYHtyfQ0KIyBW4bq9IGJp4buDdSDEkeG7kyB0csOybg0KcGllKHBpZV9kYXRhLCBtYWluID0gIlThu7cgbOG7hyBwaOG6p24gdHLEg20gdGhhbmggbmnDqm4gdGjhuqV0IG5naGnhu4dwIHThu6sgMTUgxJHhur9uIDI0IHR14buVaVxudHJvbmcgdOG7lW5nIHPhu5EgbmfGsOG7nWkgdGjhuqV0IG5naGnhu4dwIHRyb25nIDQgbsSDbSIsIGxhYmVscyA9IGMoc3ByaW50ZigiJS4xZiUlIiwgdHlfbGVfcGhhbl90cmFtKSwgc3ByaW50ZigiJS4xZiUlIiwgMTAwIC0gdHlfbGVfcGhhbl90cmFtKSkpDQpsZWdlbmQoInRvcHJpZ2h0IiwgbGVnZW5kID0gYygiVGhhbmggbmnDqm4gdGjhuqV0IG5naGnhu4dwIiwgIk5nxrDhu51pIGtow6FjIiksIGZpbGwgPSBjKCJsaWdodGJsdWUiLCAibGlnaHRncmVlbiIpKQ0KYGBgDQoNCioqTmjhuq1uIHjDqXQgKioNCg0KIFRhIGPDsyB0aOG7gyB0aOG6pXkgcuG6sW5nIHPhu5EgdGhhbmggbmnDqm4gdGjhuqV0IG5naGnhu4dwIHRyb25nIMSR4buZIHR14buVaSB04burIDE1LTI0IGzDoCBy4bqldCBs4bubbiBjaGnhur9tIHThu5tpIDM1JS4gxJBp4buBdSBuw6B5IGzDoCBt4buZdCB0w61uIGhp4buHdSB2w7QgY8O5bmcgeOG6pXUgxJHhu5FpIHbhu5tpIGPGoSBj4bqldSBsYW8gxJHhu5luZyBj4bunYSDEkeG6pXQgbsaw4bubYy4gxJDDonkgbMOgIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyBjaMOtbmgsIHThuqFvIHJhIG5oaeG7gXUgY+G7p2EgY+G6o2kgduG6rXQgY2jhuqV0IG5oxrBuZyDEkWnhu4F1IMSRw6FuZyB0aeG6v2MgbMOgIMSR4bqldCBuxrDhu5tjIGNow7puZyB0YSB24bqrbiBjaMawYSB0aOG6vyB04bqhbyByYSBuaOG7r25nIGPGoSBo4buZaSDEkeG7gyB04bqtbiBk4bulbmcgbOG7sWMgbMaw4bujbmcgbsOgeS4NCg0KIyMgNC4zIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgdGhlbyBnaeG7m2kgdMOtbmggdsOgIHRoZW8gduG7iyB0csOtDQoNCiMjIyBhKSBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIG5hbSB2w6AgbuG7ryAyMDIwLTIwMjMNCg0KYGBge3J9DQojIEltcG9ydCBnw7NpIGdncGxvdDINCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQpgYGB7cn0NCiMgROG7ryBsaeG7h3UNCm5hbV90aGFuaF90aGkgPC0gYygzLjgyLCA0LjMzLCAyLjgyLCAyLjczKQ0KbnVfdGhhbmhfdGhpIDwtIGMoMi4wNCwgMi41MCwgMi4wNCwgMi4wMCkNCm5hbV9ub25nX3Rob24gPC0gYygyLjE5LCAzLjE1LCAyLjM2LCAyLjMxKQ0KbnVfbm9uZ190aG9uIDwtIGMoMy4yNywgMy4yNiwgMi4zMiwgMi4yNCkNCnllYXJzIDwtIGMoMjAyMCwgMjAyMSwgMjAyMiwgMjAyMykNCmBgYA0KDQpgYGB7cn0NCiMgVOG6oW8gZGF0YWZyYW1lIHThu6sgZOG7ryBsaeG7h3UNCmRhdGEgPC0gZGF0YS5mcmFtZSgNCiAgbmFtX3RoYW5oX3RoaSA9IG5hbV90aGFuaF90aGksDQogIG51X3RoYW5oX3RoaSA9IG51X3RoYW5oX3RoaSwNCiAgbmFtX25vbmdfdGhvbiA9IG5hbV9ub25nX3Rob24sDQogIG51X25vbmdfdGhvbiA9IG51X25vbmdfdGhvbiwNCiAgeWVhcnMgPSB5ZWFycw0KKQ0KYGBgDQoNCmBgYHtyfQ0KIyBUxINuZyBrw61jaCB0aMaw4bubYyBiaeG7g3UgxJHhu5MNCm9wdGlvbnMocmVwci5wbG90LndpZHRoID0gMTAsIHJlcHIucGxvdC5oZWlnaHQgPSAxMCkNCiMgQmnhu4N1IMSR4buTIDE6IE5hbSB2w6AgTuG7rw0KZ2dwbG90KGRhdGEsIGFlcyh4ID0gbmFtX3RoYW5oX3RoaSwgeSA9IG51X3RoYW5oX3RoaSkpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sb3IgPSAiVGjDoG5oIHRo4buLIiksIHNpemUgPSAzKSArDQogIGdlb21fcG9pbnQoYWVzKHggPSBuYW1fbm9uZ190aG9uLCB5ID0gbnVfbm9uZ190aG9uLCBjb2xvciA9ICJOw7RuZyB0aMO0biIpLCBzaXplID0gMykgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IEZBTFNFLCBjb2xvciA9ICJibGFjayIpICsNCiAgbGFicyh0aXRsZSA9ICJU4buJIGzhu4cgdGjhuqV0IG5naGnhu4dwIG5hbSB2w6AgbuG7ryIsDQogICAgICAgeCA9ICJOYW0iLA0KICAgICAgIHkgPSAiTuG7ryIsDQogICAgICAgY29sb3IgPSAiTG/huqFpIikgKyAgIyDEkOG6t3QgdMOqbiBjaG8gY2jDuiB0aMOtY2gNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpKSArICAjIFTEg25nIGPhu6EgY2jhu68NCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImJsdWUiLCAicmVkIiksIGxhYmVscyA9IGMoIlRow6BuaCB0aOG7iyIsICJOw7RuZyB0aMO0biIpKSAgIyDEkOG6t3QgbmjDo24gY2hvIGNow7ogdGjDrWNoDQpgYGANCg0KKipOaOG6rW4geMOpdDoqKg0KDQotICAgVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBj4bunYSBj4bqjIG5hbSB2w6AgbuG7ryDEkeG7gXUgY8OzIHh1IGjGsOG7m25nIGdp4bqjbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAyMC0yMDIzLg0KDQotICAgVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBj4bunYSBuYW0gbHXDtG4gY2FvIGjGoW4gdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBj4bunYSBu4buvIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KDQoqKk5ndXnDqm4gbmjDom46KioNCg0KLSAgIEPGoSBj4bqldSBuZ8Ogbmggbmdo4buBOiBOYW0gZ2nhu5tpIHRoxrDhu51uZyBsw6BtIHZp4buHYyB0cm9uZyBjw6FjIG5nw6BuaCBjaOG7i3Ug4bqjbmggaMaw4bufbmcgbuG6t25nIG7hu4EgYuG7n2kgZOG7i2NoIENPVklELTE5IG5oxrAgZHUgbOG7i2NoLCBk4buLY2ggduG7pSwgc+G6o24geHXhuqV0Lg0KDQotICAgS+G7uSBuxINuZzogTuG7ryBnaeG7m2kgdGjGsOG7nW5nIGPDsyBr4bu5IG7Eg25nIHBow7kgaOG7o3AgduG7m2kgY8OhYyBuZ8Ogbmggw610IGLhu4sg4bqjbmggaMaw4bufbmcgYuG7n2kgZOG7i2NoIENPVklELTE5IG5oxrAgeSB04bq/LCBnacOhbyBk4bulYywgaMOgbmggY2jDrW5oLg0KDQotICAgQ2jEg20gc8OzYyBnaWEgxJHDrG5oOiBO4buvIGdp4bubaSB0aMaw4budbmcgZ8OhbmggdsOhYyB0csOhY2ggbmhp4buHbSBjaMSDbSBzw7NjIGdpYSDEkcOsbmggbmhp4buBdSBoxqFuIG5hbSBnaeG7m2ksIG7Dqm4gY8OzIHRo4buDIMawdSB0acOqbiBjw6FjIGPDtG5nIHZp4buHYyBjw7MgdGjhu51pIGdpYW4gbGluaCBob+G6oXQgaMahbi4NCg0KDQojIyMgYikgVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCDhu58gdGjDoG5oIHRo4buLIHbDoCBuw7RuZyB0aMO0biAyMDIwLTIwMjMNCmBgYHtyfQ0KDQojIEJp4buDdSDEkeG7kyAyOiBUaMOgbmggdGjhu4sgdsOgIE7DtG5nIHRow7RuDQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSBuYW1fdGhhbmhfdGhpLCB5ID0gbmFtX25vbmdfdGhvbikpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sb3IgPSAiTmFtIiksIHNpemUgPSAzKSArDQogIGdlb21fcG9pbnQoYWVzKHggPSBudV90aGFuaF90aGksIHkgPSBudV9ub25nX3Rob24sIGNvbG9yID0gIk7hu68iKSwgc2l6ZSA9IDMpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBGQUxTRSwgY29sb3IgPSAiYmxhY2siKSArDQogIGxhYnModGl0bGUgPSAiVOG7iSBs4buHIHRo4bqldCBuZ2hp4buHcCB0aMOgbmggdGjhu4sgdsOgIG7DtG5nIHRow7RuIiwNCiAgICAgICB4ID0gIlRow6BuaCB0aOG7iyIsDQogICAgICAgeSA9ICJOw7RuZyB0aMO0biIsDQogICAgICAgY29sb3IgPSAiTG/huqFpIikgKyAgIyDEkOG6t3QgdMOqbiBjaG8gY2jDuiB0aMOtY2gNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpKSArICAjIFTEg25nIGPhu6EgY2jhu68NCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImJsdWUiLCAicmVkIiksIGxhYmVscyA9IGMoIk5hbSIsICJO4buvIikpICAjIMSQ4bq3dCBuaMOjbiBjaG8gY2jDuiB0aMOtY2gNCmBgYA0KDQoNCj0+ICAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3Ag4bufIFZp4buHdCBOYW0gY8OzIHh1IGjGsOG7m25nIGdp4bqjbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAyMC0yMDIzLCB0dXkgbmhpw6puIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3Ag4bufIHRow6BuaCB0aOG7iyBjYW8gaMahbiB2w6Aga2hv4bqjbmcgY8OhY2ggdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBnaeG7r2EgbmFtIHbDoCBu4buvIOG7nyB0aMOgbmggdGjhu4sgbOG7m24gaMahbiBzbyB24bubaSDhu58gbsO0bmcgdGjDtG4uDQpD4bqnbiBjw7MgY8OhYyBnaeG6o2kgcGjDoXAgaOG7lyB0cuG7oyB2aeG7h2MgbMOgbSBjaG8gY+G6oyBuYW0gdsOgIG7hu68g4bufIHRow6BuaCB0aOG7iywgxJHhurdjIGJp4buHdCBsw6AgbmFtIGdp4bubaSB0cm9uZyBjw6FjIG5nw6BuaCBi4buLIOG6o25oIGjGsOG7n25nIGLhu59pIGThu4tjaCBDT1ZJRC0xOS4NCg0KKipL4bq/dCBsdeG6rW4qKg0KDQotICAgIE5oxrAgduG6rXkgdGEgY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgc+G7sSBraMOhYyBiaeG7h3QgcsO1IHLhu4d0DQoNCi0gICBHaeG7r2EgbmFtIHbDoCBu4buvOiBz4buRIGzGsOG7o25nIG5nxrDhu51pIGPDsyBnaeG7m2kgdMOtbmggbuG7ryBraMO0bmcgY8OzIHZp4buHYyBsw6BtIGx1w7RuIGNhbyBoxqFuIG5hbSBxdWEgbeG7jWkgbsSDbSwgxJFp4buBdSBuw6B5IGPFqW5nIGThu4UgaGnhu4N1IGtoaSBs4buxYyBsxrDhu6NuZyBsYW8gxJHhu5luZyBsw6AgbmFtIGNoaeG6v20gxrB1IHRo4bq/IGLhu59pIHPhu6ljIGto4buPZSwgY8OhYyBjaOG6vyDEkeG7mSBuaMawIHRoYWkgc+G6o24sLi4uIGx1w7RuIMOtdCBoxqFuIHNvIHbhu5tpIG7hu68NCg0KLSAgIEdp4buvYSB0aMOgbmggdGjhu4sgdsOgIG7DtG5nIHRow7RuOiBWaeG7h2MgbMOgbSDhu58gdGjDoG5oIHRo4buLIHBo4bulIHRodeG7mWMgcGjhuqduIGzhu5tuIHbDoG8gdMOsbmggaMOsbmgga2luaCB04bq/IHbDoCBjaMOtbmggdHLhu4sgbmjGsCDEkeG6oWkgZOG7i2NoLCBzdXkgdGhvw6FpLC4uIG7Dqm4gdOG7tyBs4buHIG7DoHkgbHXDtG4gYuG6pXQg4buVbiDEkeG7i25oIHRoZW8gdMOsbmggaMOsbmggxJHDsy4gTmjhu69uZyBuZ8aw4budaSDhu58ga2h1IHbhu7FjIG7DtG5nIHRow7RuIMOtdCDhuqNuaCBoxrDhu59uZyBi4bufaSB54bq/dSB04buRIGvhu4MgdHLDqm4gdsOgIGjhu40gY8WpbmcgY8OzIHRo4buDIGPDsyDEkWEgZOG6oW5nIGPDtG5nIHZp4buHYyBoxqFuDQoNCiMgVi4gS+G6v3QgbHXhuq1uDQoNCiMjIDUuMSBL4bq/dCBxdeG6ow0KLSAgIFThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgY8OzIHh1IGjGsOG7m25nIHTEg25nIG5o4bq5IHThu6sgbsSDbSAyMDIwIMSR4bq/biBuxINtIDIwMjEsIHNhdSDEkcOzIGdp4bqjbSBuaOG6uSB0cm9uZyBuxINtIDIwMjIgdsOgIDIwMjMgKDYgdGjDoW5nIMSR4bqndSBuxINtKS4NCg0KLSAgIFNvIHbhu5tpIGPDoWMgbsSDbSB0csaw4bubYywgdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBuxINtIDIwMjAtMjAyMyB24bqrbiDhu58gbeG7qWMgY2FvLg0KDQotICAgQ8OzIHPhu7Ega2jDoWMgYmnhu4d0IHbhu4EgdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCBnaeG7r2EgY8OhYyBraHUgduG7sWM6DQoNCi0gICBLaHUgduG7sWMgdGjDoG5oIHRo4buLOiBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGNhbyBoxqFuIHNvIHbhu5tpIGtodSB24buxYyBuw7RuZyB0aMO0bi4NCg0KLSAgIEdp4buvYSBjw6FjIG5ow7NtIGxhbyDEkeG7mW5nOiBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGNhbyBoxqFuIOG7nyBuaMOzbSBsYW8gxJHhu5luZyB0cuG6uywgY8OzIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiB0aOG6pXAgdsOgIOG7nyBjw6FjIG5nw6BuaCBuZ2jhu4EgYuG7iyDhuqNuaCBoxrDhu59uZyBi4bufaSBk4buLY2ggQ09WSUQtMTkuDQoNCiMjIDUuMiBOZ3V5w6puIG5ow6JuDQoNCi0gICBE4buLY2ggQ09WSUQtMTk6IOG6om5oIGjGsOG7n25nIHRpw6p1IGPhu7FjIMSR4bq/biB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcsIGtoaeG6v24gbmhp4buBdSBkb2FuaCBuZ2hp4buHcCBwaOG6o2kgdGh1IGjhurlwIGhv4bqhdCDEkeG7mW5nLCBj4bqvdCBnaeG6o20gbmjDom4gc+G7sS4NCg0KLSAgIEPGoSBj4bqldSBraW5oIHThur86IENodXnhu4NuIGThu4tjaCBzYW5nIGPDoWMgbmfDoG5oIGThu4tjaCB24bulIHbDoCBjw7RuZyBuZ2hp4buHcCwgxJHDsmkgaOG7j2kgbGFvIMSR4buZbmcgY8OzIGvhu7kgbsSDbmcgY2FvIGjGoW4uDQoNCi0gICBOaHUgY+G6p3UgbGFvIMSR4buZbmc6IEtow7RuZyDEkeG7k25nIMSR4buBdSBnaeG7r2EgY8OhYyBuZ8Ogbmggbmdo4buBIHbDoCBraHUgduG7sWMuDQoNCiMjIDUuMyBHaeG6o2kgcGjDoXANCg0KIyMjIGEpIEdp4bqjaSBwaMOhcCB24buBIHBow61hIENow61uaCBwaOG7pzoNCg0KLSAgIFTEg25nIGPGsOG7nW5nIMSR4bqndSB0xrAgY2hvIHBow6F0IHRyaeG7g24ga2luaCB04bq/Lg0KDQotICAgUGjDoXQgdHJp4buDbiBjw6FjIG5nw6BuaCBraW5oIHThur8gY8OzIHRp4buBbSBuxINuZywgdOG6oW8gcmEgbmhp4buBdSB2aeG7h2MgbMOgbS4NCg0KLSAgIEPhuqNpIHRoaeG7h24gbcO0aSB0csaw4budbmcgxJHhuqd1IHTGsCBraW5oIGRvYW5oLCB0aHUgaMO6dCDEkeG6p3UgdMawIHRyb25nIHbDoCBuZ2/DoGkgbsaw4bubYy4NCg0KLSAgIE3hu58gcuG7mW5nIGPDoWMgY2jGsMahbmcgdHLDrG5oIGjhu5cgdHLhu6Mgdmnhu4djIGzDoG0gY2hvIG5nxrDhu51pIGxhbyDEkeG7mW5nIHRo4bqldCBuZ2hp4buHcC4NCg0KLSAgIEjhu5cgdHLhu6MgbmfGsOG7nWkgbGFvIMSR4buZbmcga2jhu59pIG5naGnhu4dwLCB04bqhbyBk4buxbmcgdmnhu4djIGzDoG0uDQoNCiMjIyBiKSBHaeG6o2kgcGjDoXAgduG7gSBwaMOtYSBkb2FuaCBuZ2hp4buHcDoNCg0KLSAgIE3hu58gcuG7mW5nIHPhuqNuIHh14bqldCBraW5oIGRvYW5oLCB04bqhbyByYSBuaGnhu4F1IHZp4buHYyBsw6BtLg0KDQotICAgVOG6rW4gZOG7pW5nIGPGoSBo4buZaSB04burIGPDoWMgSGnhu4dwIMSR4buLbmggdGjGsMahbmcgbeG6oWkgdOG7sSBkby4NCg0KLSAgIMSQ4bqndSB0xrAgdsOgbyBraG9hIGjhu41jIGPDtG5nIG5naOG7hywgbsOibmcgY2FvIG7Eg25nIHN14bqldCBsYW8gxJHhu5luZy4NCg0KLSAgIFRo4buxYyBoaeG7h24gY8OhYyBjaOG6vyDEkeG7mSBwaMO6YyBs4bujaSBjaG8gbmfGsOG7nWkgbGFvIMSR4buZbmcuDQoNCi0gICBU4bqhbyBtw7RpIHRyxrDhu51uZyBsw6BtIHZp4buHYyB04buRdCBjaG8gbmfGsOG7nWkgbGFvIMSR4buZbmcuDQoNCi0gICDEkOG6o20gYuG6o28gYW4gdG/DoG4gbGFvIMSR4buZbmcuDQoNCi0gICBDb2kgdHLhu41uZyDEkeG7nWkgc+G7kW5nIHRpbmggdGjhuqduIGPhu6dhIG5nxrDhu51pIGxhbyDEkeG7mW5nLg0KDQojIyMgYykgR2nhuqNpIHBow6FwIHbhu4EgcGjDrWEgbmfGsOG7nWkgbGFvIMSR4buZbmc6DQoNCi0gICBOw6JuZyBjYW8gdHLDrG5oIMSR4buZIGNodXnDqm4gbcO0biB2w6Aga+G7uSBuxINuZyBuZ2jhu4EgbmdoaeG7h3AuDQoNCi0gICBUaGFtIGdpYSBjw6FjIGtow7NhIMSRw6BvIHThuqFvLCBo4buNYyBuZ2jhu4EuDQoNCi0gICBU4buxIGjhu41jIHThuq1wIHbDoCByw6huIGx1eeG7h24ga+G7uSBuxINuZy4NCg0KLSAgIEto4bufaSBuZ2hp4buHcCwgdOG7sSB04bqhbyB2aeG7h2MgbMOgbQ0KDQojIyA1LjQgS+G6v3QgbHXhuq1uDQoNCi0gICBU4bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGzDoCBt4buZdCB24bqlbiDEkeG7gSBj4bqnbiDEkcaw4bujYyBxdWFuIHTDom0gdsOgIGdp4bqjaSBxdXnhur90Lg0KDQotICAgQ+G6p24gY8OzIHPhu7EgY2h1bmcgdGF5IGPhu6dhIGNow61uaCBwaOG7pywgZG9hbmggbmdoaeG7h3AsIHbDoCB4w6MgaOG7mWkgxJHhu4MgZ2nhuqNtIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgdsOgIHThuqFvIHJhIG5oaeG7gXUgdmnhu4djIGzDoG0gaMahbiBjaG8gbmfGsOG7nWkgbGFvIMSR4buZbmcuDQoNCi0gICBOZ2/DoGkgcmE6DQoNCi0gICBUw6FjIMSR4buZbmcgY+G7p2EgZOG7i2NoIENPVklELTE5OiBE4buLY2ggQ09WSUQtMTkgxJHDoyDhuqNuaCBoxrDhu59uZyDEkeG6v24gdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIG3hu5l0IGPDoWNoIG5naGnDqm0gdHLhu41uZy4gTmhp4buBdSBkb2FuaCBuZ2hp4buHcCBwaOG6o2kgxJHDs25nIGPhu61hIGhv4bq3YyB0aHUgaOG6uXAgaG/huqF0IMSR4buZbmcsIGThuqtuIMSR4bq/biB2aeG7h2MgY+G6r3QgZ2nhuqNtIG5ow6JuIHPhu7EuIMSQaeG7gXUgbsOgeSBraGnhur9uIGNobyB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIHTEg25nIGNhby4NCg0KLSAgIENodXnhu4NuIMSR4buVaSBjxqEgY+G6pXUga2luaCB04bq/OiBDxqEgY+G6pXUga2luaCB04bq/IFZp4buHdCBOYW0gxJFhbmcgY2h1eeG7g24gZOG7i2NoIHThu6sgbsO0bmcgbmdoaeG7h3Agc2FuZyBjw7RuZyBuZ2hp4buHcCB2w6AgZOG7i2NoIHbhu6UuIMSQaeG7gXUgbsOgeSDEkcOyaSBo4buPaSBsYW8gxJHhu5luZyBwaOG6o2kgY8OzIGvhu7kgbsSDbmcgY2FvIGjGoW4gxJHhu4MgxJHDoXAg4bupbmcgbmh1IGPhuqd1IGPhu6dhIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZy4NCk5odSBj4bqndSBsYW8gxJHhu5luZyBraMO0bmcgxJHhu5NuZyDEkeG7gXU6IE5odSBj4bqndSBsYW8gxJHhu5luZyBnaeG7r2EgY8OhYyBuZ8Ogbmggbmdo4buBIHbDoCBraHUgduG7sWMga2jDtG5nIMSR4buTbmcgxJHhu4F1LiBN4buZdCBz4buRIG5nw6BuaCBuZ2jhu4EgdGhp4bq/dSBsYW8gxJHhu5luZyB0cm9uZyBraGkgbeG7mXQgc+G7kSBuZ8Ogbmggbmdo4buBIGtow6FjIGzhuqFpIGPDsyBkxrAgdGjhu6thIGxhbyDEkeG7mW5nLg0KDQotICAgxJDhu4MgZ2nhuqNpIHF1eeG6v3QgduG6pW4gxJHhu4EgdGjhuqV0IG5naGnhu4dwOg0KDQotICAgQ2jDrW5oIHBo4bunIGPhuqduIGPDsyBuaOG7r25nIGNow61uaCBzw6FjaCBo4buXIHRy4bujIGRvYW5oIG5naGnhu4dwOiBHacO6cCBkb2FuaCBuZ2hp4buHcCBkdXkgdHLDrCBob+G6oXQgxJHhu5luZywgdOG6oW8gdmnhu4djIGzDoG0gY2hvIG5nxrDhu51pIGxhbyDEkeG7mW5nLg0KDQotICAgQ+G6p24gdMSDbmcgY8aw4budbmcgxJHDoG8gdOG6oW8gbmdo4buBOiBOw6JuZyBjYW8ga+G7uSBuxINuZyBjaG8gbGFvIMSR4buZbmcsIMSRw6FwIOG7qW5nIG5odSBj4bqndSB0aOG7iyB0csaw4budbmcuDQoNCi0gICBD4bqnbiB0xINuZyBjxrDhu51uZyBnaeG7m2kgdGhp4buHdSB2aeG7h2MgbMOgbTogS+G6v3QgbuG7kWkgbmfGsOG7nWkgbGFvIMSR4buZbmcgduG7m2kgY8OhYyBjxqEgaOG7mWkgdmnhu4djIGzDoG0gcGjDuSBo4bujcC4NCg0KIyBWSS4gVMOgaSBsaeG7h3UgdGhhbSBraOG6o28NCg0KMSkgICAgVHLhuqduIE3huqFuaCBUxrDhu51uZy4gRGF0YSBtYW5pcHVsYXRpb24gdsOgIERhdGEgVmlzdWFsaXphdGlvbi4NCiAgICAgIC0gICBodHRwczovL3JwdWJzLmNvbS90bXQvMTEzODExNQ0KICAgICAgLSAgIGh0dHBzOi8vcnB1YnMuY29tL3RtdC8xMTQwNDM3DQoNCjIpICAgIFThu5VuZyBj4bulYyBUaOG7kW5nIGvDqiBWaeG7h3QgTmFtOiBodHRwczovL3d3dy5nc28uZ292LnZuLw0K