library(Ecdat)
## Warning: package 'Ecdat' was built under R version 4.3.3
## Loading required package: Ecfun
## Warning: package 'Ecfun' was built under R version 4.3.3
##
## Attaching package: 'Ecfun'
## The following object is masked from 'package:base':
##
## sign
##
## Attaching package: 'Ecdat'
## The following object is masked from 'package:datasets':
##
## Orange
library(stevedata)
## Warning: package 'stevedata' was built under R version 4.3.3
data(package = "stevedata")
data("Newhouse77")
d <- Newhouse77
str(d)
## Classes 'tbl_df', 'tbl' and 'data.frame': 13 obs. of 5 variables:
## $ country : chr "Australia" "Austria" "Canada" "Finland" ...
## $ year : num 1972 1972 1971 1972 1970 ...
## $ gdppc : num 3769 2747 4317 2869 2851 ...
## $ medsharegdp: num 5.8 5.46 7.02 5.31 6.4 6.07 2.51 6.12 6.78 5.18 ...
## $ medexppc : num 219 150 303 152 182 136 34 132 233 201 ...
summary(d)
## country year gdppc medsharegdp
## Length:13 Min. :1968 Min. :1374 Min. :2.510
## Class :character 1st Qu.:1971 1st Qu.:2742 1st Qu.:5.310
## Mode :character Median :1972 Median :2869 Median :6.070
## Mean :1971 Mean :3261 Mean :5.768
## 3rd Qu.:1972 3rd Qu.:3889 3rd Qu.:6.510
## Max. :1972 Max. :5551 Max. :7.380
## medexppc
## Min. : 34.0
## 1st Qu.:136.0
## Median :182.0
## Mean :196.3
## 3rd Qu.:233.0
## Max. :361.0
.Giới thiệu về bộ dữ
liệu và đặt vấn đề
.Mô tả bộ dữ
liệu
Bộ dữ liệu Newhouse77 từ gói stevedata chứa thông tin về các quốc
gia, năm, GDP bình quân đầu người, tỷ lệ chi tiêu y tế trên GDP, và chi
tiêu y tế bình quân đầu người. Đây là một bộ dữ liệu quan trọng để
nghiên cứu về kinh tế y tế và các yếu tố ảnh hưởng đến chi tiêu y tế ở
các quốc gia khác nhau.
Bộ dữ liệu này bao gồm các biến số sau:
country: Tên quốc gia.
year: Năm thu thập dữ liệu.
gdppc: GDP bình quân đầu người (Gross Domestic Product per
capita) - đo lường tổng sản phẩm quốc nội tính trên mỗi người
dân.
medsharegdp: Tỷ lệ chi tiêu y tế trên GDP (Medical expenditure
share of GDP) - tỷ lệ phần trăm của chi tiêu y tế so với tổng
GDP.
medexppc: Chi tiêu y tế bình quân đầu người (Medical expenditure
per capita) - chi phí y tế trung bình tính trên mỗi người dân.
Giới thiệu các
biến
country (Tên quốc gia): Biến này biểu thị quốc gia mà dữ liệu
được thu thập. Nó là một biến định danh (categorical variable).
year (Năm): Năm thu thập dữ liệu. Trong bộ dữ liệu này, tất cả
các giá trị đều là năm 1977.
gdppc (GDP bình quân đầu người): Tổng sản phẩm quốc nội tính trên
mỗi người dân, đo lường mức sống và năng suất kinh tế của mỗi quốc
gia.
medsharegdp (Tỷ lệ chi tiêu y tế trên GDP): Tỷ lệ phần trăm của
chi tiêu y tế so với tổng GDP của quốc gia, đo lường mức độ đầu tư vào y
tế so với quy mô kinh tế.
medexppc (Chi tiêu y tế bình quân đầu người): Chi phí y tế trung
bình tính trên mỗi người dân, đo lường mức độ chi tiêu y tế của cá nhân
trong mỗi quốc gia.
Đặt vấn đề
Bộ dữ liệu Newhouse77 cung cấp một cái nhìn tổng quan về mối quan hệ
giữa các yếu tố kinh tế và chi tiêu y tế ở các quốc gia khác nhau. Nó có
thể được sử dụng để:
Phân tích tác động của GDP bình quân đầu người đến chi tiêu y tế.
So sánh mức độ chi tiêu y tế giữa các quốc gia.
Nghiên cứu mối quan hệ giữa tỷ lệ chi tiêu y tế trên GDP và chi tiêu
y tế bình quân đầu người.
Việc phân tích này có thể cung cấp thông tin quan trọng về mối quan
hệ giữa chi phí y tế và việc có bảo hiểm y tế trong các bang Hoa Kỳ vào
năm 1977, giúp đưa ra định hướng cho các quyết định chính sách y tế
trong tương lai.
Lập bảng tần số
Bảng tần số cho số
lượng các quốc gia và các năm khác nhau
table(d$country)
##
## Australia Austria Canada Finland France
## 1 1 1 1 1
## GFR Greece Italy Netherlands Norway
## 1 1 1 1 1
## Sweden United Kingdom United States
## 1 1 1
table(d$year)
##
## 1968 1970 1971 1972
## 1 1 2 9
Có tổng cộng 11 quốc gia trong tập dữ liệu.
Mỗi quốc gia chỉ xuất hiện một lần, cho thấy mỗi quốc gia được đại
diện bằng một quan sát duy nhất trong dữ liệu.
Tập dữ liệu này chứa dữ liệu từ năm 1968 đến năm 1972.
Năm 1971 có 2 quan sát, còn năm 1972 có 9 quan sát, cho thấy có một
số lượng lớn quan sát được thêm vào vào những năm sau đó.
Bảng tần số cho biến
số (gdppc, medsharegdp, và medexppc):
summary(d$gdppc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1374 2742 2869 3261 3889 5551
summary(d$medsharegdp)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.510 5.310 6.070 5.768 6.510 7.380
summary(d$medexppc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 34.0 136.0 182.0 196.3 233.0 361.0
# Phân loại giá trị của biến gdppc vào các nhóm và lập bảng tần số cho từng nhóm
gdppc_groups <- cut(d$gdppc, breaks = 5)
table(gdppc_groups)
## gdppc_groups
## (1.37e+03,2.21e+03] (2.21e+03,3.04e+03] (3.04e+03,3.88e+03] (3.88e+03,4.72e+03]
## 2 5 2 3
## (4.72e+03,5.56e+03]
## 1
# Phân loại giá trị của biến medsharegdp vào các nhóm và lập bảng tần số cho từng nhóm
medsharegdp_groups <- cut(d$medsharegdp, breaks = 5)
table(medsharegdp_groups)
## medsharegdp_groups
## (2.51,3.48] (3.48,4.46] (4.46,5.43] (5.43,6.41] (6.41,7.38]
## 1 1 2 5 4
# Phân loại giá trị của biến medexppc vào các nhóm và lập bảng tần số cho từng nhóm
medexppc_groups <- cut(d$medexppc, breaks = 5)
table(medexppc_groups)
## medexppc_groups
## (33.7,99.4] (99.4,165] (165,230] (230,296] (296,361]
## 1 5 3 1 3
GDP bình quân đầu người:Giá trị thấp nhất là 1374 và cao nhất là
5551, đây là một phạm vi rộng. Phân vị trung vị (median) là 2869, cho
thấy mức độ trung bình của GDP bình quân. Đối với nhiều quốc gia, GDP
bình quân đầu người có thể phản ánh mức độ phát triển kinh tế của đất
nước.
Tỷ lệ chi phí y tế so với GDP: Tỷ lệ này biểu thị mức độ mà một quốc
gia chi tiêu cho y tế so với tổng sản phẩm quốc nội của nó. Các giá trị
trong phạm vi từ 2.510 đến 7.380, cho thấy có sự biến động lớn giữa các
quốc gia. Các quốc gia có tỷ lệ cao hơn có thể đang đầu tư nhiều vào hệ
thống y tế của họ, trong khi các quốc gia có tỷ lệ thấp hơn có thể gặp
khó khăn trong việc cung cấp dịch vụ y tế cho dân số.
Chi phí y tế đầu người: Giá trị này cho biết mức độ chi tiêu trung
bình của mỗi cá nhân cho dịch vụ y tế. Phân vị trung vị (median) là 182,
nhưng có sự biến động lớn giữa các quốc gia, từ 34 đến 361. Chi phí y tế
đầu người có thể ảnh hưởng đến việc truy cập và chất lượng của dịch vụ y
tế, và là một chỉ số quan trọng để đánh giá sức khỏe của một quốc
gia.
Nhìn chung ta có thể thấy rằng có sự biến động lớn giữa các quốc gia
trong việc đầu tư và chi tiêu cho y tế, và các chỉ số kinh tế như GDP có
thể ảnh hưởng đến khả năng và cách thức mà mỗi quốc gia tiếp cận và cung
cấp dịch vụ y tế cho dân số.
Bảng tần số GDP bình
quân đầu người của mỗi quốc gia
table(d$country, d$gdppc)
##
## 1374 2164 2246 2742 2747 2851 2869 3437 3769 3889 4317 4431
## Australia 0 0 0 0 0 0 0 0 1 0 0 0
## Austria 0 0 0 0 1 0 0 0 0 0 0 0
## Canada 0 0 0 0 0 0 0 0 0 0 1 0
## Finland 0 0 0 0 0 0 1 0 0 0 0 0
## France 0 0 0 0 0 1 0 0 0 0 0 0
## GFR 0 0 1 0 0 0 0 0 0 0 0 0
## Greece 1 0 0 0 0 0 0 0 0 0 0 0
## Italy 0 1 0 0 0 0 0 0 0 0 0 0
## Netherlands 0 0 0 0 0 0 0 1 0 0 0 0
## Norway 0 0 0 0 0 0 0 0 0 1 0 0
## Sweden 0 0 0 0 0 0 0 0 0 0 0 1
## United Kingdom 0 0 0 1 0 0 0 0 0 0 0 0
## United States 0 0 0 0 0 0 0 0 0 0 0 0
##
## 5551
## Australia 0
## Austria 0
## Canada 0
## Finland 0
## France 0
## GFR 0
## Greece 0
## Italy 0
## Netherlands 0
## Norway 0
## Sweden 0
## United Kingdom 0
## United States 1
Chúng ta có thể thấy rằng bảng tần số trên thể hiện GDP của từng
quốc gia. Ví dụ:
Canada có một quan sát với giá trị GDP bình quân đầu người là
3889
GFR có một quan sát với giá trị GDP bình quân đầu người là
2246.
Bảng tần số tỷ lệ chi
phí y tế so với GDP và chi phí y tế đầu người
table(d$medsharegdp)
##
## 2.51 4.45 5.18 5.31 5.46 5.8 6.07 6.12 6.4 6.51 6.78 7.02 7.38
## 1 1 1 1 1 1 1 1 1 1 1 1 1
table(d$medexppc)
##
## 34 122 132 136 150 152 182 201 219 233 303 327 361
## 1 1 1 1 1 1 1 1 1 1 1 1 1
Nhìn vào bảng tần số ta có thể thấy tỷ lệ chi phí y tế so với GDP và
chi phí y tế đầu người đều có 13 giá trị
Biểu đồ
Biểu đồ thể hiện mối
quan hệ giữa tỷ lệ chi tiêu y tế trên GDP và chi tiêu y tế bình quân đầu
người.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
ggplot(d, aes(x = as.factor(medsharegdp), y = gdppc, fill = as.factor(medexppc))) +
geom_boxplot() +
labs(title = "Biểu đồ boxplot kết hợp",
x = "Tỷ lệ chi phí y tế/GDP",
y = "GDP bình quân đầu người",
fill = "Chi phí y tế đầu người")

ggplot(d, aes(x = gdppc, y = medexppc, color = medsharegdp)) +
geom_point() +
labs(title = "Biểu đồ scatter plot kết hợp",
x = "GDP bình quân đầu người",
y = "Chi phí y tế đầu người",
color = "Tỷ lệ chi phí y tế/GDP")

Quan hệ giữa Chi phí Y tế và GDP Bình quân đầu người:Tỷ lệ chi phí y
tế/GDP thấp (khoảng 2.51 - 5.31%): Các quốc gia trong nhóm này có GDP
bình quân đầu người thấp hơn, dao động từ khoảng 2000 đến 4000 USD. Điều
này cho thấy rằng các quốc gia có mức GDP thấp hơn thường chi ít phần
trăm GDP của mình cho y tế. Tỷ lệ chi phí y tế/GDP cao hơn (khoảng 6.07
- 7.38%): Các quốc gia trong nhóm này có GDP bình quân đầu người cao
hơn, từ khoảng 4000 đến hơn 5000 USD. Các nước này có xu hướng chi một
tỷ lệ lớn hơn GDP của mình cho y tế, cho thấy rằng các quốc gia phát
triển hoặc có thu nhập cao hơn đầu tư nhiều hơn vào hệ thống y tế của
họ.
Chi phí Y tế đầu người và Sự Phân bổ: Chi phí y tế đầu người thấp:
Các quốc gia có GDP bình quân đầu người thấp thường có chi phí y tế đầu
người cũng thấp, ví dụ như chi phí y tế đầu người chỉ là 34 USD. Điều
này phản ánh thực tế rằng ở các quốc gia có thu nhập thấp, khả năng chi
tiêu cho y tế của mỗi người cũng bị hạn chế.Chi phí y tế đầu người cao:
Ở các quốc gia có GDP bình quân đầu người cao, chi phí y tế đầu người có
xu hướng cao hơn (ví dụ, 361 USD). Điều này cho thấy các quốc gia này có
khả năng chi tiêu nhiều hơn cho y tế và cung cấp các dịch vụ y tế tốt
hơn cho người dân. Đánh giá sự Đầu tư vào Y tế:
Quốc gia có GDP cao và chi phí y tế thấp: Nếu có quốc gia có GDP bình
quân đầu người cao nhưng tỷ lệ chi phí y tế/GDP thấp, điều này có thể
cho thấy một hệ thống y tế hiệu quả hoặc có thể các nguồn lực được phân
bổ không cân đối.Quốc gia có GDP thấp và chi phí y tế cao: Các quốc gia
này có thể đang cố gắng cải thiện chất lượng y tế thông qua việc đầu tư
một tỷ lệ lớn GDP vào y tế, dù tổng thể GDP của họ còn thấp.
Phân Tán của GDP:Phân tán lớn ở nhóm có tỷ lệ chi phí y tế/GDP cao:
Những quốc gia có tỷ lệ chi phí y tế/GDP cao có sự phân tán GDP rộng
hơn, điều này có thể phản ánh sự đa dạng về kinh tế và mức sống trong
các quốc gia có hệ thống y tế phát triển.
Sự Liên hệ với Chính sách Y tế và Kinh tế:Tác động của chính sách y
tế: Biểu đồ gợi ý rằng những quốc gia có chính sách y tế mạnh mẽ thường
có mức sống cao hơn. Chi tiêu nhiều hơn cho y tế có thể dẫn đến hệ thống
y tế tốt hơn, góp phần cải thiện sức khỏe cộng đồng và từ đó hỗ trợ sự
phát triển kinh tế. Chênh lệch kinh tế và y tế: Sự chênh lệch rõ rệt về
chi phí y tế đầu người giữa các quốc gia có thể phản ánh sự khác biệt
trong chính sách chi tiêu và sự phát triển kinh tế. Các quốc gia phát
triển đầu tư nhiều hơn vào y tế, tạo ra một vòng lặp tích cực giữa sức
khỏe và sự phát triển kinh tế.
Biểu đồ so sánh chi
tiêu y tế giữa các quốc gia
library(ggplot2)
ggplot(d, aes(x = reorder(country, medexppc), y = medexppc, fill = country)) +
geom_bar(stat = "identity") +
labs(title = "Mức độ chi tiêu y tế đầu người giữa các quốc gia",
x = "Quốc gia",
y = "Chi phí y tế đầu người") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))

Ta có thể thấy rằng mức độ chi yếu y tế ở Greece là thấp nhất và cao
nhất là United States
Biểu đồ thể hiện tác
động của GDP bình quân đầu người đến chi tiêu y tế.
ggplot(d, aes(x = gdppc, y = medexppc)) +
geom_point() +
geom_smooth(method = "lm", col = "blue") +
labs(title = "Biểu đồ phân tán: GDP bình quân đầu người và Chi phí y tế đầu người",
x = "GDP bình quân đầu người",
y = "Chi phí y tế đầu người")
## `geom_smooth()` using formula = 'y ~ x'

Biểu đồ cho thấy một mối quan hệ tích cực rõ ràng giữa GDP bình quân
đầu người và chi phí y tế đầu người. Khi GDP bình quân đầu người tăng,
chi phí y tế đầu người cũng tăng. Điều này gợi ý rằng các quốc gia có
mức GDP cao hơn thường chi tiêu nhiều hơn cho y tế trên mỗi người
dân.
Relative risk
Relative risk giữa
GDP trên mỗi cá nhân (gdppc) ở các quốc gia có medsharegdp hoặc medexppc
cao và thấp.
# Tính median của medsharegdp hoặc medexppc
median_medsharegdp <- median(Newhouse77$medsharegdp)
median_medexppc <- median(Newhouse77$medexppc)
# Tạo các nhóm dữ liệu dựa trên median của medsharegdp hoặc medexppc
group_high <- Newhouse77$gdppc[Newhouse77$medsharegdp > median_medsharegdp]
group_low <- Newhouse77$gdppc[Newhouse77$medsharegdp <= median_medsharegdp]
# Tính tỷ lệ giữa group_high và group_low
relative_risk1 <- mean(group_high) / mean(group_low)
relative_risk1
## [1] 1.351743
Nếu chúng ta so sánh GDP trên mỗi cá nhân ở hai nhóm dữ liệu khác
nhau (ví dụ: nhóm có medsharegdp hoặc medexppc cao và thấp), tỷ lệ GDP
trung bình của nhóm có medsharegdp hoặc medexppc cao đối với nhóm có
medsharegdp hoặc medexppc thấp là khoảng 1.35 lần.
Relative risk giữa
GDP trên mỗi cá nhân (gdppc) ở các quốc gia và năm khác nhau
# Tạo một mô hình hồi quy tuyến tính
lm_model <- lm(gdppc ~ country + year, data = Newhouse77)
# Dự đoán GDP trên mỗi cá nhân cho tất cả các quốc gia và năm
predicted_gdppc <- predict(lm_model, Newdata = Newhouse77)
# Tính tỷ lệ giữa GDP dự đoán và GDP thực tế
relative_risk1 <- mean(predicted_gdppc) / mean(Newhouse77$gdppc)
relative_risk1
## [1] 1
Kết quả 1 cho thấy rằng không có sự khác biệt giữa hai nhóm được so
sánh. Trong trường hợp này, tỷ lệ GDP trung bình của nhóm thứ nhất so
với nhóm thứ hai là 1, tức là chúng có cùng mức GDP trung bình. Điều này
có thể chỉ ra rằng không có sự khác biệt đáng kể về GDP trên mỗi cá nhân
giữa hai nhóm
Odd ratio
Giả định có một biến nhị phân ‘risk_factor’, có giá trị 0 hoặc 1
Trong dữ liệu, ta sẽ giả định ‘risk_factor’ là một biến ngẫu
nhiên
Newhouse77$risk_factor <- sample(0:1, nrow(Newhouse77), replace = TRUE)
# Tạo bảng 2x2
table_gdppc <- table(Newhouse77$gdppc > median(Newhouse77$gdppc), Newhouse77$risk_factor)
print(table_gdppc)
##
## 0 1
## FALSE 3 4
## TRUE 5 1
Số lượng trường hợp có GDP trên mỗi cá nhân không vượt qua giá trị
trung vị của GDP là 4 khi risk_factor bằng 0 và 4 khi risk_factor bằng
1.
Số lượng trường hợp có GDP trên mỗi cá nhân vượt qua giá trị trung vị
của GDP là 3 khi risk_factor bằng 0 và 2 khi risk_factor bằng 1.
# Tính odd ratio
odd_ratio <- (table_gdppc[2, 2] / table_gdppc[2, 1]) / (table_gdppc[1, 2] / table_gdppc[1, 1])
print(odd_ratio)
## [1] 0.15
Tỷ lệ cơ hội của việc có GDP trên mỗi cá nhân vượt qua giá trị trung
vị của GDP trong nhóm có risk_factor bằng 1 so với nhóm có risk_factor
bằng 0 là 0.08.
Kết quả này cho thấy rằng có sự giảm sút lớn trong tỷ lệ cơ hội của
việc có GDP cao trên mỗi cá nhân khi risk_factor tăng lên, so với khi
risk_factor bằng 0. Điều này có thể chỉ ra một mối liên hệ tiêu cực giữa
risk_factor và GDP trên mỗi cá nhân.
Hồi quy
Phân tích tác động của GDP bình quân đầu người đến chi tiêu y tế.
model <- lm(medexppc ~ gdppc, data = d)
summary(model)
##
## Call:
## lm(formula = medexppc ~ gdppc, data = d)
##
## Residuals:
## Min 1Q Median 3Q Max
## -44.850 -15.866 -5.825 22.133 38.424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -60.722513 23.598989 -2.573 0.0259 *
## gdppc 0.078831 0.006873 11.470 1.85e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 26.67 on 11 degrees of freedom
## Multiple R-squared: 0.9228, Adjusted R-squared: 0.9158
## F-statistic: 131.6 on 1 and 11 DF, p-value: 1.849e-07
Đọc kết quả P_value. Mô hình hồi quy trên giải thích rằng GDP bình
quân đầu người có ảnh hưởng chi tiêu y tế
LS0tDQp0aXRsZTogIkLDoGkgdOG6rXAiDQphdXRob3I6ICJQaGFuIMSQ4bqvYyBLaMOhbmggVE/DoG4tIDIxMjEwMTI5NDYiDQpkYXRlOiAiMjAyNC0wNi0wMSINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdG9jX2RlcHRoOiA1DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IHllcw0KICAgICAgc21vb3RoX3Njcm9sbDogeWVzDQogICAgdGhlbWU6IHVuaXRlZA0KDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KDQpgYGB7Y3NzLGVjaG8gPSBGQUxTRX0NCmgxIHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMzJweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQNCiAgfQ0KDQpoMiB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDI4cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KIA0KfQ0KDQpoMyB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDI0cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LXN0eWxlOiBpdGFsaWM7DQp9DQoNCmg0IHtmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBmb250LXN0eWxlOiBpdGFsaWN9DQoNCmJvZHkgew0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICANCn0NCnA6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpIHsNCiAgdGV4dC1pbmRlbnQ6IDJlbTt9DQpwIHsNCiAgdGV4dC1hbGlnbjoganVzdGlmeTsNCiAgfQ0KLnRvY2lmeS1oZWFkZXIgew0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0KYGBgDQoNCg0KYGBge3J9DQpsaWJyYXJ5KEVjZGF0KQ0KDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHN0ZXZlZGF0YSkNCmRhdGEocGFja2FnZSA9ICJzdGV2ZWRhdGEiKQ0KZGF0YSgiTmV3aG91c2U3NyIpDQpkIDwtIE5ld2hvdXNlNzcNCnN0cihkKQ0KYGBgDQoNCg0KYGBge3J9DQpzdW1tYXJ5KGQpDQpgYGANCg0KIyAuR2nhu5tpIHRoaeG7h3UgduG7gSBi4buZIGThu68gbGnhu4d1IHbDoCDEkeG6t3QgduG6pW4gxJHhu4ENCiMjIC5Nw7QgdOG6oyBi4buZIGThu68gbGnhu4d1DQoNCkLhu5kgZOG7ryBsaeG7h3UgTmV3aG91c2U3NyB04burIGfDs2kgc3RldmVkYXRhIGNo4bupYSB0aMO0bmcgdGluIHbhu4EgY8OhYyBxdeG7kWMgZ2lhLCBuxINtLCBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pLCB04bu3IGzhu4cgY2hpIHRpw6p1IHkgdOG6vyB0csOqbiBHRFAsIHbDoCBjaGkgdGnDqnUgeSB04bq/IGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaS4gxJDDonkgbMOgIG3hu5l0IGLhu5kgZOG7ryBsaeG7h3UgcXVhbiB0cuG7jW5nIMSR4buDIG5naGnDqm4gY+G7qXUgduG7gSBraW5oIHThur8geSB04bq/IHbDoCBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGNoaSB0acOqdSB5IHThur8g4bufIGPDoWMgcXXhu5FjIGdpYSBraMOhYyBuaGF1Lg0KDQpC4buZIGThu68gbGnhu4d1IG7DoHkgYmFvIGfhu5NtIGPDoWMgYmnhur9uIHPhu5Egc2F1Og0KDQotIGNvdW50cnk6IFTDqm4gcXXhu5FjIGdpYS4NCg0KLSB5ZWFyOiBOxINtIHRodSB0aOG6rXAgZOG7ryBsaeG7h3UuDQoNCi0gZ2RwcGM6IEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgKEdyb3NzIERvbWVzdGljIFByb2R1Y3QgcGVyIGNhcGl0YSkgLSDEkW8gbMaw4budbmcgdOG7lW5nIHPhuqNuIHBo4bqpbSBxdeG7kWMgbuG7mWkgdMOtbmggdHLDqm4gbeG7l2kgbmfGsOG7nWkgZMOibi4NCg0KLSBtZWRzaGFyZWdkcDogVOG7tyBs4buHIGNoaSB0acOqdSB5IHThur8gdHLDqm4gR0RQIChNZWRpY2FsIGV4cGVuZGl0dXJlIHNoYXJlIG9mIEdEUCkgLSB04bu3IGzhu4cgcGjhuqduIHRyxINtIGPhu6dhIGNoaSB0acOqdSB5IHThur8gc28gduG7m2kgdOG7lW5nIEdEUC4NCg0KLSBtZWRleHBwYzogQ2hpIHRpw6p1IHkgdOG6vyBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgKE1lZGljYWwgZXhwZW5kaXR1cmUgcGVyIGNhcGl0YSkgLSBjaGkgcGjDrSB5IHThur8gdHJ1bmcgYsOsbmggdMOtbmggdHLDqm4gbeG7l2kgbmfGsOG7nWkgZMOibi4NCg0KIyMgR2nhu5tpIHRoaeG7h3UgY8OhYyBiaeG6v24gDQoNCi0gY291bnRyeSAoVMOqbiBxdeG7kWMgZ2lhKTogQmnhur9uIG7DoHkgYmnhu4N1IHRo4buLIHF14buRYyBnaWEgbcOgIGThu68gbGnhu4d1IMSRxrDhu6NjIHRodSB0aOG6rXAuIE7DsyBsw6AgbeG7mXQgYmnhur9uIMSR4buLbmggZGFuaCAoY2F0ZWdvcmljYWwgdmFyaWFibGUpLg0KDQotIHllYXIgKE7Eg20pOiBOxINtIHRodSB0aOG6rXAgZOG7ryBsaeG7h3UuIFRyb25nIGLhu5kgZOG7ryBsaeG7h3UgbsOgeSwgdOG6pXQgY+G6oyBjw6FjIGdpw6EgdHLhu4sgxJHhu4F1IGzDoCBuxINtIDE5NzcuDQoNCi0gZ2RwcGMgKEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkpOiBU4buVbmcgc+G6o24gcGjhuqltIHF14buRYyBu4buZaSB0w61uaCB0csOqbiBt4buXaSBuZ8aw4budaSBkw6JuLCDEkW8gbMaw4budbmcgbeG7qWMgc+G7kW5nIHbDoCBuxINuZyBzdeG6pXQga2luaCB04bq/IGPhu6dhIG3hu5dpIHF14buRYyBnaWEuDQoNCi0gbWVkc2hhcmVnZHAgKFThu7cgbOG7hyBjaGkgdGnDqnUgeSB04bq/IHRyw6puIEdEUCk6IFThu7cgbOG7hyBwaOG6p24gdHLEg20gY+G7p2EgY2hpIHRpw6p1IHkgdOG6vyBzbyB24bubaSB04buVbmcgR0RQIGPhu6dhIHF14buRYyBnaWEsIMSRbyBsxrDhu51uZyBt4bupYyDEkeG7mSDEkeG6p3UgdMawIHbDoG8geSB04bq/IHNvIHbhu5tpIHF1eSBtw7Qga2luaCB04bq/Lg0KDQotIG1lZGV4cHBjIChDaGkgdGnDqnUgeSB04bq/IGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSk6IENoaSBwaMOtIHkgdOG6vyB0cnVuZyBiw6xuaCB0w61uaCB0csOqbiBt4buXaSBuZ8aw4budaSBkw6JuLCDEkW8gbMaw4budbmcgbeG7qWMgxJHhu5kgY2hpIHRpw6p1IHkgdOG6vyBj4bunYSBjw6EgbmjDom4gdHJvbmcgbeG7l2kgcXXhu5FjIGdpYS4NCg0KIyMgxJDhurd0IHbhuqVuIMSR4buBDQoNCkLhu5kgZOG7ryBsaeG7h3UgTmV3aG91c2U3NyBjdW5nIGPhuqVwIG3hu5l0IGPDoWkgbmjDrG4gdOG7lW5nIHF1YW4gduG7gSBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIGPDoWMgeeG6v3UgdOG7kSBraW5oIHThur8gdsOgIGNoaSB0acOqdSB5IHThur8g4bufIGPDoWMgcXXhu5FjIGdpYSBraMOhYyBuaGF1LiBOw7MgY8OzIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDOg0KDQpQaMOibiB0w61jaCB0w6FjIMSR4buZbmcgY+G7p2EgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSDEkeG6v24gY2hpIHRpw6p1IHkgdOG6vy4NCg0KU28gc8OhbmggbeG7qWMgxJHhu5kgY2hpIHRpw6p1IHkgdOG6vyBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhLg0KDQpOZ2hpw6puIGPhu6l1IG3hu5FpIHF1YW4gaOG7hyBnaeG7r2EgdOG7tyBs4buHIGNoaSB0acOqdSB5IHThur8gdHLDqm4gR0RQIHbDoCBjaGkgdGnDqnUgeSB04bq/IGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaS4NCg0KVmnhu4djIHBow6JuIHTDrWNoIG7DoHkgY8OzIHRo4buDIGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBxdWFuIHRy4buNbmcgduG7gSBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIGNoaSBwaMOtIHkgdOG6vyB2w6Agdmnhu4djIGPDsyBi4bqjbyBoaeG7g20geSB04bq/IHRyb25nIGPDoWMgYmFuZyBIb2EgS+G7syB2w6BvIG7Eg20gMTk3NywgZ2nDunAgxJHGsGEgcmEgxJHhu4tuaCBoxrDhu5tuZyBjaG8gY8OhYyBxdXnhur90IMSR4buLbmggY2jDrW5oIHPDoWNoIHkgdOG6vyB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KIyBM4bqtcCBi4bqjbmcgdOG6p24gc+G7kQ0KDQojIyBC4bqjbmcgdOG6p24gc+G7kSBjaG8gc+G7kSBsxrDhu6NuZyBjw6FjIHF14buRYyBnaWEgdsOgIGPDoWMgbsSDbSBraMOhYyBuaGF1IA0KDQpgYGB7cn0NCnRhYmxlKGQkY291bnRyeSkNCnRhYmxlKGQkeWVhcikNCmBgYA0KQ8OzIHThu5VuZyBj4buZbmcgMTEgcXXhu5FjIGdpYSB0cm9uZyB04bqtcCBk4buvIGxp4buHdS4NCg0KTeG7l2kgcXXhu5FjIGdpYSBjaOG7iSB4deG6pXQgaGnhu4duIG3hu5l0IGzhuqduLCBjaG8gdGjhuqV5IG3hu5dpIHF14buRYyBnaWEgxJHGsOG7o2MgxJHhuqFpIGRp4buHbiBi4bqxbmcgbeG7mXQgcXVhbiBzw6F0IGR1eSBuaOG6pXQgdHJvbmcgZOG7ryBsaeG7h3UuDQoNClThuq1wIGThu68gbGnhu4d1IG7DoHkgY2jhu6lhIGThu68gbGnhu4d1IHThu6sgbsSDbSAxOTY4IMSR4bq/biBuxINtIDE5NzIuDQoNCk7Eg20gMTk3MSBjw7MgMiBxdWFuIHPDoXQsIGPDsm4gbsSDbSAxOTcyIGPDsyA5IHF1YW4gc8OhdCwgY2hvIHRo4bqleSBjw7MgbeG7mXQgc+G7kSBsxrDhu6NuZyBs4bubbiBxdWFuIHPDoXQgxJHGsOG7o2MgdGjDqm0gdsOgbyB2w6BvIG5o4buvbmcgbsSDbSBzYXUgxJHDsy4NCg0KIyMgQuG6o25nIHThuqduIHPhu5EgY2hvIGJp4bq/biBz4buRIChnZHBwYywgbWVkc2hhcmVnZHAsIHbDoCBtZWRleHBwYyk6DQoNCmBgYHtyfQ0Kc3VtbWFyeShkJGdkcHBjKQ0Kc3VtbWFyeShkJG1lZHNoYXJlZ2RwKQ0Kc3VtbWFyeShkJG1lZGV4cHBjKQ0KDQojIFBow6JuIGxv4bqhaSBnacOhIHRy4buLIGPhu6dhIGJp4bq/biBnZHBwYyB2w6BvIGPDoWMgbmjDs20gdsOgIGzhuq1wIGLhuqNuZyB04bqnbiBz4buRIGNobyB04burbmcgbmjDs20NCmdkcHBjX2dyb3VwcyA8LSBjdXQoZCRnZHBwYywgYnJlYWtzID0gNSkNCnRhYmxlKGdkcHBjX2dyb3VwcykNCg0KIyBQaMOibiBsb+G6oWkgZ2nDoSB0cuG7iyBj4bunYSBiaeG6v24gbWVkc2hhcmVnZHAgdsOgbyBjw6FjIG5ow7NtIHbDoCBs4bqtcCBi4bqjbmcgdOG6p24gc+G7kSBjaG8gdOG7q25nIG5ow7NtDQptZWRzaGFyZWdkcF9ncm91cHMgPC0gY3V0KGQkbWVkc2hhcmVnZHAsIGJyZWFrcyA9IDUpDQp0YWJsZShtZWRzaGFyZWdkcF9ncm91cHMpDQoNCiMgUGjDom4gbG/huqFpIGdpw6EgdHLhu4sgY+G7p2EgYmnhur9uIG1lZGV4cHBjIHbDoG8gY8OhYyBuaMOzbSB2w6AgbOG6rXAgYuG6o25nIHThuqduIHPhu5EgY2hvIHThu6tuZyBuaMOzbQ0KbWVkZXhwcGNfZ3JvdXBzIDwtIGN1dChkJG1lZGV4cHBjLCBicmVha3MgPSA1KQ0KdGFibGUobWVkZXhwcGNfZ3JvdXBzKQ0KYGBgDQpHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pOkdpw6EgdHLhu4sgdGjhuqVwIG5o4bqldCBsw6AgMTM3NCB2w6AgY2FvIG5o4bqldCBsw6AgNTU1MSwgxJHDonkgbMOgIG3hu5l0IHBo4bqhbSB2aSBy4buZbmcuIFBow6JuIHbhu4sgdHJ1bmcgduG7iyAobWVkaWFuKSBsw6AgMjg2OSwgY2hvIHRo4bqleSBt4bupYyDEkeG7mSB0cnVuZyBiw6xuaCBj4bunYSBHRFAgYsOsbmggcXXDom4uIMSQ4buRaSB24bubaSBuaGnhu4F1IHF14buRYyBnaWEsIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgY8OzIHRo4buDIHBo4bqjbiDDoW5oIG3hu6ljIMSR4buZIHBow6F0IHRyaeG7g24ga2luaCB04bq/IGPhu6dhIMSR4bqldCBuxrDhu5tjLg0KDQpU4bu3IGzhu4cgY2hpIHBow60geSB04bq/IHNvIHbhu5tpIEdEUDogVOG7tyBs4buHIG7DoHkgYmnhu4N1IHRo4buLIG3hu6ljIMSR4buZIG3DoCBt4buZdCBxdeG7kWMgZ2lhIGNoaSB0acOqdSBjaG8geSB04bq/IHNvIHbhu5tpIHThu5VuZyBz4bqjbiBwaOG6qW0gcXXhu5FjIG7hu5lpIGPhu6dhIG7Dsy4gQ8OhYyBnacOhIHRy4buLIHRyb25nIHBo4bqhbSB2aSB04burIDIuNTEwIMSR4bq/biA3LjM4MCwgY2hvIHRo4bqleSBjw7Mgc+G7sSBiaeG6v24gxJHhu5luZyBs4bubbiBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhLiBDw6FjIHF14buRYyBnaWEgY8OzIHThu7cgbOG7hyBjYW8gaMahbiBjw7MgdGjhu4MgxJFhbmcgxJHhuqd1IHTGsCBuaGnhu4F1IHbDoG8gaOG7hyB0aOG7kW5nIHkgdOG6vyBj4bunYSBo4buNLCB0cm9uZyBraGkgY8OhYyBxdeG7kWMgZ2lhIGPDsyB04bu3IGzhu4cgdGjhuqVwIGjGoW4gY8OzIHRo4buDIGfhurdwIGtow7Mga2jEg24gdHJvbmcgdmnhu4djIGN1bmcgY+G6pXAgZOG7i2NoIHbhu6UgeSB04bq/IGNobyBkw6JuIHPhu5EuDQoNCkNoaSBwaMOtIHkgdOG6vyDEkeG6p3UgbmfGsOG7nWk6IEdpw6EgdHLhu4sgbsOgeSBjaG8gYmnhur90IG3hu6ljIMSR4buZIGNoaSB0acOqdSB0cnVuZyBiw6xuaCBj4bunYSBt4buXaSBjw6EgbmjDom4gY2hvIGThu4tjaCB24bulIHkgdOG6vy4gUGjDom4gduG7iyB0cnVuZyB24buLIChtZWRpYW4pIGzDoCAxODIsIG5oxrBuZyBjw7Mgc+G7sSBiaeG6v24gxJHhu5luZyBs4bubbiBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhLCB04burIDM0IMSR4bq/biAzNjEuIENoaSBwaMOtIHkgdOG6vyDEkeG6p3UgbmfGsOG7nWkgY8OzIHRo4buDIOG6o25oIGjGsOG7n25nIMSR4bq/biB2aeG7h2MgdHJ1eSBj4bqtcCB2w6AgY2jhuqV0IGzGsOG7o25nIGPhu6dhIGThu4tjaCB24bulIHkgdOG6vywgdsOgIGzDoCBt4buZdCBjaOG7iSBz4buRIHF1YW4gdHLhu41uZyDEkeG7gyDEkcOhbmggZ2nDoSBz4bupYyBraOG7j2UgY+G7p2EgbeG7mXQgcXXhu5FjIGdpYS4NCg0KTmjDrG4gY2h1bmcgdGEgY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgY8OzIHPhu7EgYmnhur9uIMSR4buZbmcgbOG7m24gZ2nhu69hIGPDoWMgcXXhu5FjIGdpYSB0cm9uZyB2aeG7h2MgxJHhuqd1IHTGsCB2w6AgY2hpIHRpw6p1IGNobyB5IHThur8sIHbDoCBjw6FjIGNo4buJIHPhu5Ega2luaCB04bq/IG5oxrAgR0RQIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24ga2jhuqMgbsSDbmcgdsOgIGPDoWNoIHRo4bupYyBtw6AgbeG7l2kgcXXhu5FjIGdpYSB0aeG6v3AgY+G6rW4gdsOgIGN1bmcgY+G6pXAgZOG7i2NoIHbhu6UgeSB04bq/IGNobyBkw6JuIHPhu5EuDQoNCiMjIELhuqNuZyB04bqnbiBz4buRIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgY+G7p2EgbeG7l2kgcXXhu5FjIGdpYQ0KDQpgYGB7cn0NCnRhYmxlKGQkY291bnRyeSwgZCRnZHBwYykNCmBgYA0KIA0KIC0gQ2jDum5nIHRhIGPDsyB0aOG7gyB0aOG6pXkgcuG6sW5nIGLhuqNuZyB04bqnbiBz4buRIHRyw6puIHRo4buDIGhp4buHbiBHRFAgY+G7p2EgdOG7q25nIHF14buRYyBnaWEuIFbDrSBk4bulOiANCg0KKyBDYW5hZGEgY8OzIG3hu5l0IHF1YW4gc8OhdCB24bubaSBnacOhIHRy4buLIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgbMOgIDM4ODkNCg0KKyBHRlIgY8OzIG3hu5l0IHF1YW4gc8OhdCB24bubaSBnacOhIHRy4buLIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgbMOgIDIyNDYuDQoNCiMjIELhuqNuZyB04bqnbiBz4buRIHThu7cgbOG7hyBjaGkgcGjDrSB5IHThur8gc28gduG7m2kgR0RQIHbDoCBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pDQoNCmBgYHtyfQ0KdGFibGUoZCRtZWRzaGFyZWdkcCkNCmBgYA0KDQpgYGB7cn0NCnRhYmxlKGQkbWVkZXhwcGMpDQpgYGANCk5ow6xuIHbDoG8gYuG6o25nIHThuqduIHPhu5EgdGEgY8OzIHRo4buDIHRo4bqleSB04bu3IGzhu4cgY2hpIHBow60geSB04bq/IHNvIHbhu5tpIEdEUCB2w6AgY2hpIHBow60geSB04bq/IMSR4bqndSBuZ8aw4budaSDEkeG7gXUgY8OzIDEzIGdpw6EgdHLhu4sNCg0KIyBCaeG7g3UgxJHhu5MNCg0KIyMgQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIHThu7cgbOG7hyBjaGkgdGnDqnUgeSB04bq/IHRyw6puIEdEUCB2w6AgY2hpIHRpw6p1IHkgdOG6vyBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkuDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KGQsIGFlcyh4ID0gYXMuZmFjdG9yKG1lZHNoYXJlZ2RwKSwgeSA9IGdkcHBjLCBmaWxsID0gYXMuZmFjdG9yKG1lZGV4cHBjKSkpICsNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBsYWJzKHRpdGxlID0gIkJp4buDdSDEkeG7kyBib3hwbG90IGvhur90IGjhu6NwIiwNCiAgICAgICB4ID0gIlThu7cgbOG7hyBjaGkgcGjDrSB5IHThur8vR0RQIiwNCiAgICAgICB5ID0gIkdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkiLA0KICAgICAgIGZpbGwgPSAiQ2hpIHBow60geSB04bq/IMSR4bqndSBuZ8aw4budaSIpDQpgYGANCg0KDQpgYGB7cn0NCmdncGxvdChkLCBhZXMoeCA9IGdkcHBjLCB5ID0gbWVkZXhwcGMsIGNvbG9yID0gbWVkc2hhcmVnZHApKSArDQogIGdlb21fcG9pbnQoKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHNjYXR0ZXIgcGxvdCBr4bq/dCBo4bujcCIsDQogICAgICAgeCA9ICJHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIiwNCiAgICAgICB5ID0gIkNoaSBwaMOtIHkgdOG6vyDEkeG6p3UgbmfGsOG7nWkiLA0KICAgICAgIGNvbG9yID0gIlThu7cgbOG7hyBjaGkgcGjDrSB5IHThur8vR0RQIikNCg0KYGBgDQoNClF1YW4gaOG7hyBnaeG7r2EgQ2hpIHBow60gWSB04bq/IHbDoCBHRFAgQsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pOlThu7cgbOG7hyBjaGkgcGjDrSB5IHThur8vR0RQIHRo4bqlcCAoa2hv4bqjbmcgMi41MSAtIDUuMzElKTogQ8OhYyBxdeG7kWMgZ2lhIHRyb25nIG5ow7NtIG7DoHkgY8OzIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgdGjhuqVwIGjGoW4sIGRhbyDEkeG7mW5nIHThu6sga2hv4bqjbmcgMjAwMCDEkeG6v24gNDAwMCBVU0QuIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IHLhurFuZyBjw6FjIHF14buRYyBnaWEgY8OzIG3hu6ljIEdEUCB0aOG6pXAgaMahbiB0aMaw4budbmcgY2hpIMOtdCBwaOG6p24gdHLEg20gR0RQIGPhu6dhIG3DrG5oIGNobyB5IHThur8uIFThu7cgbOG7hyBjaGkgcGjDrSB5IHThur8vR0RQIGNhbyBoxqFuIChraG/huqNuZyA2LjA3IC0gNy4zOCUpOiBDw6FjIHF14buRYyBnaWEgdHJvbmcgbmjDs20gbsOgeSBjw7MgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSBjYW8gaMahbiwgdOG7qyBraG/huqNuZyA0MDAwIMSR4bq/biBoxqFuIDUwMDAgVVNELiBDw6FjIG7GsOG7m2MgbsOgeSBjw7MgeHUgaMaw4bubbmcgY2hpIG3hu5l0IHThu7cgbOG7hyBs4bubbiBoxqFuIEdEUCBj4bunYSBtw6xuaCBjaG8geSB04bq/LCBjaG8gdGjhuqV5IHLhurFuZyBjw6FjIHF14buRYyBnaWEgcGjDoXQgdHJp4buDbiBob+G6t2MgY8OzIHRodSBuaOG6rXAgY2FvIGjGoW4gxJHhuqd1IHTGsCBuaGnhu4F1IGjGoW4gdsOgbyBo4buHIHRo4buRbmcgeSB04bq/IGPhu6dhIGjhu40uDQoNCkNoaSBwaMOtIFkgdOG6vyDEkeG6p3UgbmfGsOG7nWkgdsOgIFPhu7EgUGjDom4gYuG7lTogQ2hpIHBow60geSB04bq/IMSR4bqndSBuZ8aw4budaSB0aOG6pXA6IEPDoWMgcXXhu5FjIGdpYSBjw7MgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSB0aOG6pXAgdGjGsOG7nW5nIGPDsyBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pIGPFqW5nIHRo4bqlcCwgdsOtIGThu6UgbmjGsCBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pIGNo4buJIGzDoCAzNCBVU0QuIMSQaeG7gXUgbsOgeSBwaOG6o24gw6FuaCB0aOG7sWMgdOG6vyBy4bqxbmcg4bufIGPDoWMgcXXhu5FjIGdpYSBjw7MgdGh1IG5o4bqtcCB0aOG6pXAsIGto4bqjIG7Eg25nIGNoaSB0acOqdSBjaG8geSB04bq/IGPhu6dhIG3hu5dpIG5nxrDhu51pIGPFqW5nIGLhu4sgaOG6oW4gY2jhur8uQ2hpIHBow60geSB04bq/IMSR4bqndSBuZ8aw4budaSBjYW86IOG7niBjw6FjIHF14buRYyBnaWEgY8OzIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgY2FvLCBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pIGPDsyB4dSBoxrDhu5tuZyBjYW8gaMahbiAodsOtIGThu6UsIDM2MSBVU0QpLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBjw6FjIHF14buRYyBnaWEgbsOgeSBjw7Mga2jhuqMgbsSDbmcgY2hpIHRpw6p1IG5oaeG7gXUgaMahbiBjaG8geSB04bq/IHbDoCBjdW5nIGPhuqVwIGPDoWMgZOG7i2NoIHbhu6UgeSB04bq/IHThu5F0IGjGoW4gY2hvIG5nxrDhu51pIGTDom4uDQrEkMOhbmggZ2nDoSBz4buxIMSQ4bqndSB0xrAgdsOgbyBZIHThur86DQoNClF14buRYyBnaWEgY8OzIEdEUCBjYW8gdsOgIGNoaSBwaMOtIHkgdOG6vyB0aOG6pXA6IE7hur91IGPDsyBxdeG7kWMgZ2lhIGPDsyBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIGNhbyBuaMawbmcgdOG7tyBs4buHIGNoaSBwaMOtIHkgdOG6vy9HRFAgdGjhuqVwLCDEkWnhu4F1IG7DoHkgY8OzIHRo4buDIGNobyB0aOG6pXkgbeG7mXQgaOG7hyB0aOG7kW5nIHkgdOG6vyBoaeG7h3UgcXXhuqMgaG/hurdjIGPDsyB0aOG7gyBjw6FjIG5ndeG7k24gbOG7sWMgxJHGsOG7o2MgcGjDom4gYuG7lSBraMO0bmcgY8OibiDEkeG7kWkuUXXhu5FjIGdpYSBjw7MgR0RQIHRo4bqlcCB2w6AgY2hpIHBow60geSB04bq/IGNhbzogQ8OhYyBxdeG7kWMgZ2lhIG7DoHkgY8OzIHRo4buDIMSRYW5nIGPhu5EgZ+G6r25nIGPhuqNpIHRoaeG7h24gY2jhuqV0IGzGsOG7o25nIHkgdOG6vyB0aMO0bmcgcXVhIHZp4buHYyDEkeG6p3UgdMawIG3hu5l0IHThu7cgbOG7hyBs4bubbiBHRFAgdsOgbyB5IHThur8sIGTDuSB04buVbmcgdGjhu4MgR0RQIGPhu6dhIGjhu40gY8OybiB0aOG6pXAuDQoNClBow6JuIFTDoW4gY+G7p2EgR0RQOlBow6JuIHTDoW4gbOG7m24g4bufIG5ow7NtIGPDsyB04bu3IGzhu4cgY2hpIHBow60geSB04bq/L0dEUCBjYW86IE5o4buvbmcgcXXhu5FjIGdpYSBjw7MgdOG7tyBs4buHIGNoaSBwaMOtIHkgdOG6vy9HRFAgY2FvIGPDsyBz4buxIHBow6JuIHTDoW4gR0RQIHLhu5luZyBoxqFuLCDEkWnhu4F1IG7DoHkgY8OzIHRo4buDIHBo4bqjbiDDoW5oIHPhu7EgxJFhIGThuqFuZyB24buBIGtpbmggdOG6vyB2w6AgbeG7qWMgc+G7kW5nIHRyb25nIGPDoWMgcXXhu5FjIGdpYSBjw7MgaOG7hyB0aOG7kW5nIHkgdOG6vyBwaMOhdCB0cmnhu4NuLg0KDQpT4buxIExpw6puIGjhu4cgduG7m2kgQ2jDrW5oIHPDoWNoIFkgdOG6vyB2w6AgS2luaCB04bq/OlTDoWMgxJHhu5luZyBj4bunYSBjaMOtbmggc8OhY2ggeSB04bq/OiBCaeG7g3UgxJHhu5MgZ+G7o2kgw70gcuG6sW5nIG5o4buvbmcgcXXhu5FjIGdpYSBjw7MgY2jDrW5oIHPDoWNoIHkgdOG6vyBt4bqhbmggbeG6vSB0aMaw4budbmcgY8OzIG3hu6ljIHPhu5FuZyBjYW8gaMahbi4gQ2hpIHRpw6p1IG5oaeG7gXUgaMahbiBjaG8geSB04bq/IGPDsyB0aOG7gyBk4bqrbiDEkeG6v24gaOG7hyB0aOG7kW5nIHkgdOG6vyB04buRdCBoxqFuLCBnw7NwIHBo4bqnbiBj4bqjaSB0aGnhu4duIHPhu6ljIGto4buPZSBj4buZbmcgxJHhu5NuZyB2w6AgdOG7qyDEkcOzIGjhu5cgdHLhu6Mgc+G7sSBwaMOhdCB0cmnhu4NuIGtpbmggdOG6vy4NCkNow6puaCBs4buHY2gga2luaCB04bq/IHbDoCB5IHThur86IFPhu7EgY2jDqm5oIGzhu4djaCByw7UgcuG7h3QgduG7gSBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pIGdp4buvYSBjw6FjIHF14buRYyBnaWEgY8OzIHRo4buDIHBo4bqjbiDDoW5oIHPhu7Ega2jDoWMgYmnhu4d0IHRyb25nIGNow61uaCBzw6FjaCBjaGkgdGnDqnUgdsOgIHPhu7EgcGjDoXQgdHJp4buDbiBraW5oIHThur8uIEPDoWMgcXXhu5FjIGdpYSBwaMOhdCB0cmnhu4NuIMSR4bqndSB0xrAgbmhp4buBdSBoxqFuIHbDoG8geSB04bq/LCB04bqhbyByYSBt4buZdCB2w7JuZyBs4bq3cCB0w61jaCBj4buxYyBnaeG7r2Egc+G7qWMga2jhu49lIHbDoCBz4buxIHBow6F0IHRyaeG7g24ga2luaCB04bq/Lg0KDQojIyBCaeG7g3UgxJHhu5Mgc28gc8OhbmggY2hpIHRpw6p1IHkgdOG6vyBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KGQsIGFlcyh4ID0gcmVvcmRlcihjb3VudHJ5LCBtZWRleHBwYyksIHkgPSBtZWRleHBwYywgZmlsbCA9IGNvdW50cnkpKSArDQogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArDQogIGxhYnModGl0bGUgPSAiTeG7qWMgxJHhu5kgY2hpIHRpw6p1IHkgdOG6vyDEkeG6p3UgbmfGsOG7nWkgZ2nhu69hIGPDoWMgcXXhu5FjIGdpYSIsDQogICAgICAgeCA9ICJRdeG7kWMgZ2lhIiwNCiAgICAgICB5ID0gIkNoaSBwaMOtIHkgdOG6vyDEkeG6p3UgbmfGsOG7nWkiKSArDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSkpDQpgYGANCg0KVGEgY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgbeG7qWMgxJHhu5kgY2hpIHnhur91IHkgdOG6vyDhu58gR3JlZWNlIGzDoCB0aOG6pXAgbmjhuqV0IHbDoCBjYW8gbmjhuqV0IGzDoCBVbml0ZWQgU3RhdGVzDQoNCiMjIEJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24gdMOhYyDEkeG7mW5nIGPhu6dhIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgxJHhur9uIGNoaSB0acOqdSB5IHThur8uDQoNCmBgYHtyfQ0KZ2dwbG90KGQsIGFlcyh4ID0gZ2RwcGMsIHkgPSBtZWRleHBwYykpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sID0gImJsdWUiKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHBow6JuIHTDoW46IEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgdsOgIENoaSBwaMOtIHkgdOG6vyDEkeG6p3UgbmfGsOG7nWkiLA0KICAgICAgIHggPSAiR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSIsDQogICAgICAgeSA9ICJDaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pIikNCmBgYA0KDQpCaeG7g3UgxJHhu5MgY2hvIHRo4bqleSBt4buZdCBt4buRaSBxdWFuIGjhu4cgdMOtY2ggY+G7sWMgcsO1IHLDoG5nIGdp4buvYSBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIHbDoCBjaGkgcGjDrSB5IHThur8gxJHhuqd1IG5nxrDhu51pLiBLaGkgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSB0xINuZywgY2hpIHBow60geSB04bq/IMSR4bqndSBuZ8aw4budaSBjxaluZyB0xINuZy4gxJBp4buBdSBuw6B5IGfhu6NpIMO9IHLhurFuZyBjw6FjIHF14buRYyBnaWEgY8OzIG3hu6ljIEdEUCBjYW8gaMahbiB0aMaw4budbmcgY2hpIHRpw6p1IG5oaeG7gXUgaMahbiBjaG8geSB04bq/IHRyw6puIG3hu5dpIG5nxrDhu51pIGTDom4uDQoNCiMgUmVsYXRpdmUgcmlzaw0KDQojIyBSZWxhdGl2ZSByaXNrIGdp4buvYSBHRFAgdHLDqm4gbeG7l2kgY8OhIG5ow6JuIChnZHBwYykg4bufIGPDoWMgcXXhu5FjIGdpYSBjw7MgbWVkc2hhcmVnZHAgaG/hurdjIG1lZGV4cHBjIGNhbyB2w6AgdGjhuqVwLg0KDQpgYGB7cn0NCiMgVMOtbmggbWVkaWFuIGPhu6dhIG1lZHNoYXJlZ2RwIGhv4bq3YyBtZWRleHBwYw0KbWVkaWFuX21lZHNoYXJlZ2RwIDwtIG1lZGlhbihOZXdob3VzZTc3JG1lZHNoYXJlZ2RwKQ0KbWVkaWFuX21lZGV4cHBjIDwtIG1lZGlhbihOZXdob3VzZTc3JG1lZGV4cHBjKQ0KDQojIFThuqFvIGPDoWMgbmjDs20gZOG7ryBsaeG7h3UgZOG7sWEgdHLDqm4gbWVkaWFuIGPhu6dhIG1lZHNoYXJlZ2RwIGhv4bq3YyBtZWRleHBwYw0KZ3JvdXBfaGlnaCA8LSBOZXdob3VzZTc3JGdkcHBjW05ld2hvdXNlNzckbWVkc2hhcmVnZHAgPiBtZWRpYW5fbWVkc2hhcmVnZHBdDQpncm91cF9sb3cgPC0gTmV3aG91c2U3NyRnZHBwY1tOZXdob3VzZTc3JG1lZHNoYXJlZ2RwIDw9IG1lZGlhbl9tZWRzaGFyZWdkcF0NCg0KIyBUw61uaCB04bu3IGzhu4cgZ2nhu69hIGdyb3VwX2hpZ2ggdsOgIGdyb3VwX2xvdw0KcmVsYXRpdmVfcmlzazEgPC0gbWVhbihncm91cF9oaWdoKSAvIG1lYW4oZ3JvdXBfbG93KQ0KcmVsYXRpdmVfcmlzazENCmBgYA0KDQpO4bq/dSBjaMO6bmcgdGEgc28gc8OhbmggR0RQIHRyw6puIG3hu5dpIGPDoSBuaMOibiDhu58gaGFpIG5ow7NtIGThu68gbGnhu4d1IGtow6FjIG5oYXUgKHbDrSBk4bulOiBuaMOzbSBjw7MgbWVkc2hhcmVnZHAgaG/hurdjIG1lZGV4cHBjIGNhbyB2w6AgdGjhuqVwKSwgdOG7tyBs4buHIEdEUCB0cnVuZyBiw6xuaCBj4bunYSBuaMOzbSBjw7MgbWVkc2hhcmVnZHAgaG/hurdjIG1lZGV4cHBjIGNhbyDEkeG7kWkgduG7m2kgbmjDs20gY8OzIG1lZHNoYXJlZ2RwIGhv4bq3YyBtZWRleHBwYyB0aOG6pXAgbMOgIGtob+G6o25nIDEuMzUgbOG6p24uDQoNCiMjIFJlbGF0aXZlIHJpc2sgZ2nhu69hIEdEUCB0csOqbiBt4buXaSBjw6EgbmjDom4gKGdkcHBjKSDhu58gY8OhYyBxdeG7kWMgZ2lhIHbDoCBuxINtIGtow6FjIG5oYXUNCg0KDQpgYGB7cn0NCiMgVOG6oW8gbeG7mXQgbcO0IGjDrG5oIGjhu5NpIHF1eSB0dXnhur9uIHTDrW5oDQpsbV9tb2RlbCA8LSBsbShnZHBwYyB+IGNvdW50cnkgKyB5ZWFyLCBkYXRhID0gTmV3aG91c2U3NykNCg0KIyBE4buxIMSRb8OhbiBHRFAgdHLDqm4gbeG7l2kgY8OhIG5ow6JuIGNobyB04bqldCBj4bqjIGPDoWMgcXXhu5FjIGdpYSB2w6AgbsSDbQ0KcHJlZGljdGVkX2dkcHBjIDwtIHByZWRpY3QobG1fbW9kZWwsIE5ld2RhdGEgPSBOZXdob3VzZTc3KQ0KDQojIFTDrW5oIHThu7cgbOG7hyBnaeG7r2EgR0RQIGThu7EgxJFvw6FuIHbDoCBHRFAgdGjhu7FjIHThur8NCnJlbGF0aXZlX3Jpc2sxIDwtIG1lYW4ocHJlZGljdGVkX2dkcHBjKSAvIG1lYW4oTmV3aG91c2U3NyRnZHBwYykNCnJlbGF0aXZlX3Jpc2sxDQpgYGANCg0KS+G6v3QgcXXhuqMgMSBjaG8gdGjhuqV5IHLhurFuZyBraMO0bmcgY8OzIHPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSBoYWkgbmjDs20gxJHGsOG7o2Mgc28gc8OhbmguIFRyb25nIHRyxrDhu51uZyBo4bujcCBuw6B5LCB04bu3IGzhu4cgR0RQIHRydW5nIGLDrG5oIGPhu6dhIG5ow7NtIHRo4bupIG5o4bqldCBzbyB24bubaSBuaMOzbSB0aOG7qSBoYWkgbMOgIDEsIHThu6ljIGzDoCBjaMO6bmcgY8OzIGPDuW5nIG3hu6ljIEdEUCB0cnVuZyBiw6xuaC4gxJBp4buBdSBuw6B5IGPDsyB0aOG7gyBjaOG7iSByYSBy4bqxbmcga2jDtG5nIGPDsyBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB24buBIEdEUCB0csOqbiBt4buXaSBjw6EgbmjDom4gZ2nhu69hIGhhaSBuaMOzbQ0KDQojIE9kZCByYXRpbw0KDQpHaeG6oyDEkeG7i25oIGPDsyBt4buZdCBiaeG6v24gbmjhu4sgcGjDom4gJ3Jpc2tfZmFjdG9yJywgY8OzIGdpw6EgdHLhu4sgMCBob+G6t2MgMQ0KDQpUcm9uZyBk4buvIGxp4buHdSwgdGEgc+G6vSBnaeG6oyDEkeG7i25oICdyaXNrX2ZhY3RvcicgbMOgIG3hu5l0IGJp4bq/biBuZ+G6q3Ugbmhpw6puDQoNCmBgYHtyfQ0KTmV3aG91c2U3NyRyaXNrX2ZhY3RvciA8LSBzYW1wbGUoMDoxLCBucm93KE5ld2hvdXNlNzcpLCByZXBsYWNlID0gVFJVRSkNCiMgVOG6oW8gYuG6o25nIDJ4Mg0KdGFibGVfZ2RwcGMgPC0gdGFibGUoTmV3aG91c2U3NyRnZHBwYyA+IG1lZGlhbihOZXdob3VzZTc3JGdkcHBjKSwgTmV3aG91c2U3NyRyaXNrX2ZhY3RvcikNCnByaW50KHRhYmxlX2dkcHBjKQ0KYGBgDQpT4buRIGzGsOG7o25nIHRyxrDhu51uZyBo4bujcCBjw7MgR0RQIHRyw6puIG3hu5dpIGPDoSBuaMOibiBraMO0bmcgdsaw4bujdCBxdWEgZ2nDoSB0cuG7iyB0cnVuZyB24buLIGPhu6dhIEdEUCBsw6AgNCBraGkgcmlza19mYWN0b3IgYuG6sW5nIDAgdsOgIDQga2hpIHJpc2tfZmFjdG9yIGLhurFuZyAxLg0KDQpT4buRIGzGsOG7o25nIHRyxrDhu51uZyBo4bujcCBjw7MgR0RQIHRyw6puIG3hu5dpIGPDoSBuaMOibiB2xrDhu6N0IHF1YSBnacOhIHRy4buLIHRydW5nIHbhu4sgY+G7p2EgR0RQIGzDoCAzIGtoaSByaXNrX2ZhY3RvciBi4bqxbmcgMCB2w6AgMiBraGkgcmlza19mYWN0b3IgYuG6sW5nIDEuDQoNCmBgYHtyfQ0KIyBUw61uaCBvZGQgcmF0aW8NCm9kZF9yYXRpbyA8LSAodGFibGVfZ2RwcGNbMiwgMl0gLyB0YWJsZV9nZHBwY1syLCAxXSkgLyAodGFibGVfZ2RwcGNbMSwgMl0gLyB0YWJsZV9nZHBwY1sxLCAxXSkNCnByaW50KG9kZF9yYXRpbykNCmBgYA0KVOG7tyBs4buHIGPGoSBo4buZaSBj4bunYSB2aeG7h2MgY8OzIEdEUCB0csOqbiBt4buXaSBjw6EgbmjDom4gdsaw4bujdCBxdWEgZ2nDoSB0cuG7iyB0cnVuZyB24buLIGPhu6dhIEdEUCB0cm9uZyBuaMOzbSBjw7Mgcmlza19mYWN0b3IgYuG6sW5nIDEgc28gduG7m2kgbmjDs20gY8OzIHJpc2tfZmFjdG9yIGLhurFuZyAwIGzDoCAwLjA4Lg0KDQpL4bq/dCBxdeG6oyBuw6B5IGNobyB0aOG6pXkgcuG6sW5nIGPDsyBz4buxIGdp4bqjbSBzw7p0IGzhu5tuIHRyb25nIHThu7cgbOG7hyBjxqEgaOG7mWkgY+G7p2Egdmnhu4djIGPDsyBHRFAgY2FvIHRyw6puIG3hu5dpIGPDoSBuaMOibiBraGkgcmlza19mYWN0b3IgdMSDbmcgbMOqbiwgc28gduG7m2kga2hpIHJpc2tfZmFjdG9yIGLhurFuZyAwLiDEkGnhu4F1IG7DoHkgY8OzIHRo4buDIGNo4buJIHJhIG3hu5l0IG3hu5FpIGxpw6puIGjhu4cgdGnDqnUgY+G7sWMgZ2nhu69hIHJpc2tfZmFjdG9yIHbDoCBHRFAgdHLDqm4gbeG7l2kgY8OhIG5ow6JuLg0KDQojIEjhu5NpIHF1eQ0KDQpQaMOibiB0w61jaCB0w6FjIMSR4buZbmcgY+G7p2EgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSDEkeG6v24gY2hpIHRpw6p1IHkgdOG6vy4NCg0KYGBge3J9DQptb2RlbCA8LSBsbShtZWRleHBwYyB+IGdkcHBjLCBkYXRhID0gZCkNCnN1bW1hcnkobW9kZWwpDQpgYGANCg0KxJDhu41jIGvhur90IHF14bqjIFBfdmFsdWUuIE3DtCBow6xuaCBo4buTaSBxdXkgdHLDqm4gZ2nhuqNpIHRow61jaCBy4bqxbmcgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSBjw7Mg4bqjbmggaMaw4bufbmcgY2hpIHRpw6p1IHkgdOG6vyA=