I.Giới thiệu indicator NY.GDP.MKTP.CD

ind <- WDIsearch('GDP')
p <- WDI(indicator = 'NY.GDP.MKTP.CD', country = c('VNM'))
d <- p %>% select(year,NY.GDP.MKTP.CD)
d <- na.omit(d)
names(d) <- c('year','GDP')
head(d,9)
##   year          GDP
## 1 2022 408802378905
## 2 2021 366137569122
## 3 2020 346615738538
## 4 2019 334365270497
## 5 2018 310106478395
## 6 2017 281353605987
## 7 2016 257096001178
## 8 2015 239258328382
## 9 2014 233451469643

Câu lệnh R WDI(indicator = ‘NY.GDP.MKTP.CD’, country = c(‘VNM’)) được sử dụng để truy xuất dữ liệu về Tổng sản phẩm quốc nội (GDP) danh nghĩa của Việt Nam từ World Development Indicators (WDI).

Cụ thể:

  • indicator = ‘NY.GDP.MKTP.CD’ cho biết chỉ báo mà chúng ta muốn truy xuất là GDP danh nghĩa, được mã hóa là’NY.GDP.MKTP.CD’ trong WDI.
  • country = c(‘VNM’) cho biết quốc gia mà chúng ta muốn truy xuất dữ liệu là Việt Nam, được mã hóa là ‘VNM’ trong WDI.

Tổng sản phẩm quốc nội (GDP) danh nghĩa là giá trị thị trường của tất cả các hàng hóa và dịch vụ cuối cùng được sản xuất trong một quốc gia trong một khoảng thời gian nhất định, thường là một năm. GDP danh nghĩa được tính bằng cách sử dụng giá trị thị trường hiện tại của hàng hóa và dịch vụ.

II.Phân tích

1.Tốc độ tăng trưởng GDP của Việt Nam qua các năm

p <- WDI(indicator = 'NY.GDP.MKTP.CD', country = c('VNM'))
d <- p %>% select(year,NY.GDP.MKTP.CD)
d <- na.omit(d)
names(d) <- c('year','GDP')
datatable(p)

Ta có một bộ dữ liệu gồm 5 biến và 63 quan sát

  • country : đại diện cho tên quốc gia (chỉ lọc ra Việt Nam)
  • iso2c : đây là mã quốc gia 2 chữ cái được sử dụng để đại diện cho các quốc gia và vùng lãnh thổ trên toàn thế giới, và với Việt Nam có mã là “VN”
  • iso3c : tương tự thì đây là mã quốc gia 3 chữ cái - Việt Nam có mã 3 chữ cái là “VNM”
  • year : là đại diện cho năm của số liệu
  • NY.GDP.MKTP.CD: tổng sản phmY.GDP.MKTP.CD: tổng sản phẩm quốc nội

1.1. Giai đoạn 2008-2012

p %>% filter(year >= 2008 & year <= 2012) %>%
  ggplot(aes(x=year, y=NY.GDP.MKTP.CD)) +
  geom_line(color='navy', linewidth =1) +
  labs(title = 'Biểu đồ thể hiện tốc độ tăng trưởng 2008- 2012')

Biểu đồ đường thể hiện tốc độ tăng trưởng của GDP 2008-2012

  • Trục tung thể hiện số liệu
  • Trục hoành thể hiện năm
  • Năm 2009-2010 có sự phát triển vượt bật
  • Năm 2012 là năm cao nhất trong 5 năm 2008-2010

1.2.Giai đoạn 2013-2017

p %>% filter(year >= 2013 & year <= 2017 ) %>%
  group_by(year, NY.GDP.MKTP.CD) %>%  ggplot(aes(x=year,y= NY.GDP.MKTP.CD )) +
  geom_col(fill='yellow') +
  geom_text(aes(label = round(NY.GDP.MKTP.CD)),vjust = 3, color = 'black') +
  labs(title = "Biểu đồ thể hiện tốc độ tăng trưởng GDP từ 2013-2017  ") +
  labs(x = 'Năm', y = 'Tốc độ')

  • Trục hoành: thể hiện các năm từ 2013 đến 2017.
  • Trục tung: thể hiện GDP của Việt Nam (tỷ USD).

Dưới đây là một số điểm chính được thể hiện trên biểu đồ:

  • GDP của Việt Nam có xu hướng tăng trong giai đoạn này.
  • Tốc độ tăng trưởng GDP cao nhất vào năm 2017
  • Tốc độ tăng trưởng GDP thấp nhất vào năm 2013
  • GDP của Việt Nam đạt 233,45 tỷ USD vào năm 2014.

1.3.Giai đoạn 2018-2022

p %>% filter(year >= 2018 & year <= 2022 ) %>%
  group_by(year, NY.GDP.MKTP.CD) %>%  ggplot(aes(x=year,y= NY.GDP.MKTP.CD )) +
  geom_col(fill='salmon') +
  geom_line(color='black', linewidth =1) +
  geom_text(aes(label = round(NY.GDP.MKTP.CD)),vjust = 3, color = 'yellow') +
  labs(title = "Biểu đồ thể hiện tốc độ tăng trưởng GDP từ 2018-2022  ") +
  labs(x = 'Năm', y = 'Tốc độ')

  • Trục hoành: thể hiện các năm từ 2018 đến 2022.
  • Trục tung: thể hiện tốc độ tăng trưởng GDP của Việt Nam (%).

Dưới đây là một số điểm chính được thể hiện trên biểu đồ:

  • Tốc độ tăng trưởng GDP của Việt Nam có xu hướng tăng trong giai đoạn này.
  • Tốc độ tăng trưởng GDP cao nhất vào năm 2022
  • Tốc độ tăng trưởng GDP thấp nhất vào năm 2018
  • Năm 2022, tốc độ tăng trưởng GDP đạt 8,02%

Ngoài ra, biểu đồ cũng cho thấy một số biến động trong tốc độ tăng trưởng GDP của Việt Nam trong giai đoạn này.

  • Tốc độ tăng trưởng GDP giảm mạnh vào năm 2020 do ảnh hưởng của đại dịch COVID-19. Tuy nhiên, tốc độ tăng trưởng GDP đã phục hồi mạnh mẽ vào năm 2021 và 2022.
  • Quy mô GDP Việt Nam tăng trưởng liên tục qua các năm, từ 281.353 tỷ đồng năm 2017 lên 408.802 tỷ đồng dự kiến năm 2022.
  • Quy mô GDP năm 2022 dự kiến tăng gấp 1,45 lần so với năm 2017.

2. Các yếu tố ảnh hưởng GDP của Việt Nam

  1. Yếu tố nội tại:

Đầu tư:

  • Đầu tư công: đóng vai trò quan trọng trong việc thúc đẩy tăng trưởng kinh tế, đặc biệt là trong giai đoạn đầu của giai đoạn 2013-2022.
  • Đầu tư tư nhân: tăng trưởng mạnh mẽ trong giai đoạn này, đóng góp vào sự gia tăng năng lực sản xuất và cải thiện năng suất lao động.

Cán cân thương mại:

  • Xuất khẩu: tăng trưởng mạnh mẽ, là động lực chính cho tăng trưởng GDP.
  • Nhập khẩu: tăng cao, tuy nhiên vẫn thấp hơn mức tăng trưởng xuất khẩu.

Tiêu dùng:

  • Tiêu dùng nội địa: tăng trưởng ổn định, đóng góp vào sự tăng trưởng của GDP.
  • Tiêu dùng của khu vực nhà nước: tăng trưởng chậm hơn so với tiêu dùng của khu vực tư nhân.

Năng suất lao động:

  • Có sự cải thiện: tuy nhiên vẫn còn thấp so với các nước trong khu vực.
  • Cần tiếp tục nâng cao: thông qua việc đầu tư vào giáo dục, đào tạo và khoa học công nghệ.
  1. Yếu tố ngoại tại:

Nền kinh tế thế giới:

  • Tăng trưởng chậm lại: ảnh hưởng đến nhu cầu xuất khẩu của Việt Nam.
  • Biến động của giá cả hàng hóa trên thị trường thế giới: ảnh hưởng đến lạm phát và chi phí sản xuất của Việt Nam.

Chính sách tiền tệ và tài khóa của các nước lớn:

  • Sự thay đổi của chính sách tiền tệ: ảnh hưởng đến dòng vốn đầu tư vào Việt Nam.
  • Sự thay đổi của chính sách tài khóa: ảnh hưởng đến nhu cầu nhập khẩu của các nước đối tác thương mại của Việt Nam.
  1. Một số yếu tố khác:
  • Biến đổi khí hậu: ảnh hưởng đến sản xuất nông nghiệp và du lịch của Việt Nam.
  • Dịch bệnh COVID-19: ảnh hưởng nặng nề đến nền kinh tế Việt Nam trong năm 2020 và 2021.

III.Giới thiệu indicator PCPI_IX

t <- load_datasets('CPI')
cpi <- t$get_series(freq = 'M', ref_area = 'VN', indicator = 'PCPI_IX')
cpi <- na.omit(cpi)
names(cpi) <- c('ThoiGian','NamGoc','CPI')
head(cpi,9)
##     ThoiGian NamGoc              CPI
## 624  2001-12  2019A 29.4869050755837
## 625  2002-01  2019A 29.7947965871095
## 626  2002-02  2019A 30.4502821120259
## 627  2002-03  2019A 30.2066798551297
## 628  2002-04  2019A 30.2066798551297
## 629  2002-05  2019A 30.2972998946951
## 630  2002-06  2019A 30.3275971945898
## 631  2002-07  2019A 30.2972695973952
## 632  2002-08  2019A 30.3275668669926

Chỉ số PCPI_IX là chỉ số giá tiêu dùng cho người có thu nhập thấp và trung bình ở khu vực thành thị (PCPI - Urban Lower and Middle Income Households). Chỉ số này được tính toán dựa trên giá cả của một rổ hàng hóa và dịch vụ tiêu biểu mà người có thu nhập thấp và trung bình ở khu vực thành thị thường mua.

PCPI_IX là một trong những chỉ số quan trọng để đo lường mức độ lạm phát ở Việt Nam. Chỉ số này được sử dụng để theo dõi biến động giá cả hàng hóa và dịch vụ, từ đó giúp Chính phủ có thể đưa ra các chính sách phù hợp để kiểm soát lạm phát và bảo vệ đời sống của người dân.

Chỉ số PCPI_IX có thể được sử dụng cho các mục đích sau:

  • Đo lường mức độ lạm phát: Theo dõi biến động giá cả hàng hóa và dịch vụ tiêu dùng của người có thu nhập thấp và trung bình ở khu vực thành thị.
  • So sánh mức sống: So sánh mức sống của người có thu nhập thấp và trung bình ở khu vực thành thị theo thời gian và giữa các địa phương khác nhau.
  • Đánh giá hiệu quả của các chính sách: Đánh giá hiệu quả của các chính sách kinh tế và xã hội đối với đời sống của người có thu nhập thấp và trung bình ở khu vực thành thị.

IV. Phân tích

1.Chỉ số giá tiêu dùng CPI của Việt Nam qua các mốc thời gian

t <- load_datasets('CPI')
cpi <- t$get_series(freq = 'M', ref_area = 'VN', indicator = 'PCPI_IX')
cpi <- na.omit(cpi)
names(cpi) <- c('year','NamGoc','CPI')
datatable(cpi)

Ta có bộ dữ liệu gồm 3 biến và 267 quan sát

Cho thấy sự thay đổi của Chỉ số giá tiêu dùng (CPI) tại Việt Nam từ năm 2001 đến đầu năm 2024.

Cụ thể, bộ dữ liệu bao gồm:

  • Thời gian: Tháng và năm của mỗi quan sát.
  • NĂM GỐC: Năm được sử dụng để tính toán CPI.
  • CPI: Chỉ số giá tiêu dùng cho tháng và năm tương ứng.

Bộ dữ liệu này có thể được sử dụng để theo dõi lạm phát tại Việt Nam theo thời gian. Lạm phát là tốc độ tăng giá cả hàng hóa và dịch vụ trong một nền kinh tế. Việc theo dõi lạm phát là điều quan trọng đối với các nhà hoạch định chính sách vì nó có thể ảnh hưởng đến nhiều yếu tố kinh tế khác, chẳng hạn như lãi suất và tỷ giá hối đoái.

1.1.Giai đoạn 1-5/2021

cpi1 <- cpi %>% filter(year == "2021-01" | year  == "2021-02" | year == "2021-03" | year == "2021-04" | year == "2021-05")
ggplot(cpi1, aes(x = year, y = CPI)) +
  geom_bar(stat = "identity", fill = "red") +
  labs(title = "Biểu đồ thể hiện chỉ số CPI ở Việt Nam ")

Biểu đồ trên cho thấy chỉ số CPI từ 1/2021- 5/2021 không đồng đều

  • 2/2021 có chỉ số cao nhất
  • 1/2021 có chỉ số thấp nhất

Chỉ số CPI từ tháng 1-5/2021 cho thấy lạm phát được kiểm soát tốt, với mức tăng thấp nhất trong nhiều năm.

Giá cả hàng hóa và dịch vụ tương đối ổn định, tuy nhiên nhóm giao thông có biến động mạnh do giá xăng, dầu tăng.

Lạm phát cơ bản thấp hơn mức CPI bình quân chung, cho thấy áp lực lạm phát từ các yếu tố cốt lõi còn thấp.

1.2.Giai đoạn 6-10/2021

cpi2 <- cpi %>% filter(year == "2021-06" | year  == "2021-07" | year == "2021-08" | year == "2021-09" | year == "2021-10")
ggplot(cpi2, aes(x = year, y = CPI)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Biểu đồ thể hiện chỉ số CPI ở Việt Nam ")

Biểu đồ thể hiện chỉ số CPI (Chỉ số giá tiêu dùng) của Việt Nam trong giai đoạn từ tháng 6 đến tháng 10 năm 2021.

  • Trục hoành: Thể hiện thời gian, từ tháng 6 đến tháng 10 năm 2021.
  • Trục tung: Thể hiện chỉ số CPI, với giá trị từ 104 đến 105.
  • Đường màu xanh da trời: Thể hiện sự thay đổi của chỉ số CPI theo thời gian.

Cụ thể:

  • Tháng 6/2021: Chỉ số CPI là 104,87.
  • Tháng 7/2021: Chỉ số CPI tăng lên 105,53.
  • Tháng 8/2021: Chỉ số CPI tiếp tục tăng lên 105,79.
  • Tháng 9/2021: Chỉ số CPI giảm nhẹ xuống 105,14.
  • Tháng 10/2021: Chỉ số CPI tiếp tục giảm xuống 104,92.

2.Các yếu tố ảnh hưởng

Yếu tố tác động:

  • Giá nguyên, nhiên, vật liệu: Giá nguyên, nhiên, vật liệu đầu vào tăng cao do ảnh hưởng của dịch Covid-19 và biến động giá thế giới.
  • Giá xăng dầu: Giá xăng dầu tăng 12,08% so với cùng kỳ năm trước do giá dầu thế giới tăng.
  • Giá điện: Giá điện sinh hoạt tăng 3,44% so với cùng kỳ năm trước do giá than và giá khí đốt tăng.
  • Giá lương thực: Giá lương thực giảm 0,06% so với cùng kỳ năm trước do nguồn cung dồi dào.
  • Giá dịch vụ: Giá dịch vụ tăng 1,31% so với cùng kỳ năm trước do nhu cầu tiêu dùng dịch vụ tăng.

Bên cạnh đó, còn có một số yếu tố khác ảnh hưởng đến CPI như:

  • Chính sách tiền tệ: Chính sách tiền tệ nới lỏng có thể dẫn đến lạm phát tăng.
  • Chính sách tài khóa: Chính sách tài khóa kích thích có thể dẫn đến lạm phát tăng.
  • Nhu cầu tiêu dùng: Nhu cầu tiêu dùng tăng cao có thể dẫn đến lạm phát tăng.
  • Giá lương thực giảm.
  • Chính sách của Chính phủ kiểm soát giá cả.
LS0tDQp0aXRsZTogIk5oaeG7h20gduG7pSA2Ig0KYXV0aG9yOiAiTMOqIFRo4buLIFRoYW5oIFBow7oiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclSDolTTolUywgJWQgLSAlbSAtICVZJylgIg0Kb3V0cHV0Og0KICAgIGh0bWxfZG9jdW1lbnQ6IA0KICAgICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICAgICB0b2M6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmxpYnJhcnkoRFQpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGltZi5kYXRhKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KFdESSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdnYW5pbWF0ZSkNCmxpYnJhcnkobWFnaWNrKQ0KbGlicmFyeShnb29nbGVkcml2ZSkNCmBgYA0KDQojIyAqKkkuR2nhu5tpIHRoaeG7h3UgaW5kaWNhdG9yIE5ZLkdEUC5NS1RQLkNEKioNCmBgYHtyfQ0KaW5kIDwtIFdESXNlYXJjaCgnR0RQJykNCnAgPC0gV0RJKGluZGljYXRvciA9ICdOWS5HRFAuTUtUUC5DRCcsIGNvdW50cnkgPSBjKCdWTk0nKSkNCmQgPC0gcCAlPiUgc2VsZWN0KHllYXIsTlkuR0RQLk1LVFAuQ0QpDQpkIDwtIG5hLm9taXQoZCkNCm5hbWVzKGQpIDwtIGMoJ3llYXInLCdHRFAnKQ0KaGVhZChkLDkpDQpgYGANCg0KQ8OidSBs4buHbmggUiBXREkoaW5kaWNhdG9yID0gJ05ZLkdEUC5NS1RQLkNEJywgY291bnRyeSA9IGMoJ1ZOTScpKSDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyB0cnV5IHh14bqldCBk4buvIGxp4buHdSB24buBIFThu5VuZyBz4bqjbiBwaOG6qW0gcXXhu5FjIG7hu5lpIChHRFApIGRhbmggbmdoxKlhIGPhu6dhIFZp4buHdCBOYW0gdOG7qyBXb3JsZCBEZXZlbG9wbWVudCBJbmRpY2F0b3JzIChXREkpLg0KDQpD4bulIHRo4buDOg0KDQorIGluZGljYXRvciA9ICdOWS5HRFAuTUtUUC5DRCcgY2hvIGJp4bq/dCBjaOG7iSBiw6FvIG3DoCBjaMO6bmcgdGEgbXXhu5FuIHRydXkgeHXhuqV0IGzDoCBHRFAgZGFuaCBuZ2jEqWEsIMSRxrDhu6NjIG3DoyBow7NhIGzDoCdOWS5HRFAuTUtUUC5DRCcgdHJvbmcgV0RJLg0KKyBjb3VudHJ5ID0gYygnVk5NJykgY2hvIGJp4bq/dCBxdeG7kWMgZ2lhIG3DoCBjaMO6bmcgdGEgbXXhu5FuIHRydXkgeHXhuqV0IGThu68gbGnhu4d1IGzDoCBWaeG7h3QgTmFtLCDEkcaw4bujYyBtw6MgaMOzYSBsw6AgJ1ZOTScgdHJvbmcgV0RJLg0KDQpU4buVbmcgc+G6o24gcGjhuqltIHF14buRYyBu4buZaSAoR0RQKSBkYW5oIG5naMSpYSBsw6AgZ2nDoSB0cuG7iyB0aOG7iyB0csaw4budbmcgY+G7p2EgdOG6pXQgY+G6oyBjw6FjIGjDoG5nIGjDs2EgdsOgIGThu4tjaCB24bulIGN14buRaSBjw7luZyDEkcaw4bujYyBz4bqjbiB4deG6pXQgdHJvbmcgbeG7mXQgcXXhu5FjIGdpYSB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiBuaOG6pXQgxJHhu4tuaCwgdGjGsOG7nW5nIGzDoCBt4buZdCBuxINtLiBHRFAgZGFuaCBuZ2jEqWEgxJHGsOG7o2MgdMOtbmggYuG6sW5nIGPDoWNoIHPhu60gZOG7pW5nIGdpw6EgdHLhu4sgdGjhu4sgdHLGsOG7nW5nIGhp4buHbiB04bqhaSBj4bunYSBow6BuZyBow7NhIHbDoCBk4buLY2ggduG7pS4NCg0KIyMgKipJSS5QaMOibiB0w61jaCoqDQojIyMgKioxLlThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBHRFAgY+G7p2EgVmnhu4d0IE5hbSBxdWEgY8OhYyBuxINtKioNCmBgYHtyfQ0KcCA8LSBXREkoaW5kaWNhdG9yID0gJ05ZLkdEUC5NS1RQLkNEJywgY291bnRyeSA9IGMoJ1ZOTScpKQ0KZCA8LSBwICU+JSBzZWxlY3QoeWVhcixOWS5HRFAuTUtUUC5DRCkNCmQgPC0gbmEub21pdChkKQ0KbmFtZXMoZCkgPC0gYygneWVhcicsJ0dEUCcpDQpkYXRhdGFibGUocCkNCmBgYA0KDQpUYSBjw7MgbeG7mXQgYuG7mSBk4buvIGxp4buHdSBn4buTbSA1IGJp4bq/biB2w6AgNjMgcXVhbiBzw6F0DQoNCisgY291bnRyeSA6IMSR4bqhaSBkaeG7h24gY2hvIHTDqm4gcXXhu5FjIGdpYSAoY2jhu4kgbOG7jWMgcmEgVmnhu4d0IE5hbSkNCisgaXNvMmMgOiDEkcOieSBsw6AgbcOjIHF14buRYyBnaWEgMiBjaOG7ryBjw6FpIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIMSR4bqhaSBkaeG7h24gY2hvIGPDoWMgcXXhu5FjIGdpYSB2w6AgdsO5bmcgbMOjbmggdGjhu5UgdHLDqm4gdG/DoG4gdGjhur8gZ2nhu5tpLCB2w6AgduG7m2kgVmnhu4d0IE5hbSBjw7MgbcOjIGzDoCDigJxWTuKAnQ0KKyBpc28zYyA6IHTGsMahbmcgdOG7sSB0aMOsIMSRw6J5IGzDoCBtw6MgcXXhu5FjIGdpYSAzIGNo4buvIGPDoWkgLSBWaeG7h3QgTmFtIGPDsyBtw6MgMyBjaOG7ryBjw6FpIGzDoCDigJxWTk3igJ0NCisgeWVhciA6IGzDoCDEkeG6oWkgZGnhu4duIGNobyBuxINtIGPhu6dhIHPhu5EgbGnhu4d1DQorIE5ZLkdEUC5NS1RQLkNEOiB04buVbmcgc+G6o24gcGhtWS5HRFAuTUtUUC5DRDogdOG7lW5nIHPhuqNuIHBo4bqpbSBxdeG7kWMgbuG7mWkNCg0KIyMjICoqMS4xLiBHaWFpIMSRb+G6oW4gMjAwOC0yMDEyKioNCmBgYHtyfQ0KcCAlPiUgZmlsdGVyKHllYXIgPj0gMjAwOCAmIHllYXIgPD0gMjAxMikgJT4lDQogIGdncGxvdChhZXMoeD15ZWFyLCB5PU5ZLkdEUC5NS1RQLkNEKSkgKw0KICBnZW9tX2xpbmUoY29sb3I9J25hdnknLCBsaW5ld2lkdGggPTEpICsNCiAgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyAyMDA4LSAyMDEyJykNCmBgYA0KDQpCaeG7g3UgxJHhu5MgxJHGsOG7nW5nIHRo4buDIGhp4buHbiB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgY+G7p2EgR0RQIDIwMDgtMjAxMg0KDQorIFRy4bulYyB0dW5nIHRo4buDIGhp4buHbiBz4buRIGxp4buHdQ0KKyBUcuG7pWMgaG/DoG5oIHRo4buDIGhp4buHbiBuxINtDQorIE7Eg20gMjAwOS0yMDEwIGPDsyBz4buxIHBow6F0IHRyaeG7g24gdsaw4bujdCBi4bqtdCANCisgTsSDbSAyMDEyIGzDoCBuxINtIGNhbyBuaOG6pXQgdHJvbmcgNSBuxINtIDIwMDgtMjAxMA0KDQojIyMgKioxLjIuR2lhaSDEkW/huqFuIDIwMTMtMjAxNyoqDQpgYGB7cn0NCnAgJT4lIGZpbHRlcih5ZWFyID49IDIwMTMgJiB5ZWFyIDw9IDIwMTcgKSAlPiUNCiAgZ3JvdXBfYnkoeWVhciwgTlkuR0RQLk1LVFAuQ0QpICU+JSAgZ2dwbG90KGFlcyh4PXllYXIseT0gTlkuR0RQLk1LVFAuQ0QgKSkgKw0KICBnZW9tX2NvbChmaWxsPSd5ZWxsb3cnKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSByb3VuZChOWS5HRFAuTUtUUC5DRCkpLHZqdXN0ID0gMywgY29sb3IgPSAnYmxhY2snKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIHThu6sgMjAxMy0yMDE3ICAiKSArDQogIGxhYnMoeCA9ICdOxINtJywgeSA9ICdU4buRYyDEkeG7mScpDQpgYGANCg0KKyBUcuG7pWMgaG/DoG5oOiB0aOG7gyBoaeG7h24gY8OhYyBuxINtIHThu6sgMjAxMyDEkeG6v24gMjAxNy4NCisgVHLhu6VjIHR1bmc6IHRo4buDIGhp4buHbiBHRFAgY+G7p2EgVmnhu4d0IE5hbSAodOG7tyBVU0QpLg0KDQpExrDhu5tpIMSRw6J5IGzDoCBt4buZdCBz4buRIMSRaeG7g20gY2jDrW5oIMSRxrDhu6NjIHRo4buDIGhp4buHbiB0csOqbiBiaeG7g3UgxJHhu5M6DQoNCisgR0RQIGPhu6dhIFZp4buHdCBOYW0gY8OzIHh1IGjGsOG7m25nIHTEg25nIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KKyBU4buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIGNhbyBuaOG6pXQgdsOgbyBuxINtIDIwMTcgDQorIFThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBHRFAgdGjhuqVwIG5o4bqldCB2w6BvIG7Eg20gMjAxMyANCisgR0RQIGPhu6dhIFZp4buHdCBOYW0gxJHhuqF0IDIzMyw0NSB04bu3IFVTRCB2w6BvIG7Eg20gMjAxNC4NCg0KIyMjICoqMS4zLkdpYWkgxJFv4bqhbiAyMDE4LTIwMjIqKg0KDQpgYGB7cn0NCnAgJT4lIGZpbHRlcih5ZWFyID49IDIwMTggJiB5ZWFyIDw9IDIwMjIgKSAlPiUNCiAgZ3JvdXBfYnkoeWVhciwgTlkuR0RQLk1LVFAuQ0QpICU+JSAgZ2dwbG90KGFlcyh4PXllYXIseT0gTlkuR0RQLk1LVFAuQ0QgKSkgKw0KICBnZW9tX2NvbChmaWxsPSdzYWxtb24nKSArDQogIGdlb21fbGluZShjb2xvcj0nYmxhY2snLCBsaW5ld2lkdGggPTEpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHJvdW5kKE5ZLkdEUC5NS1RQLkNEKSksdmp1c3QgPSAzLCBjb2xvciA9ICd5ZWxsb3cnKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIHThu6sgMjAxOC0yMDIyICAiKSArDQogIGxhYnMoeCA9ICdOxINtJywgeSA9ICdU4buRYyDEkeG7mScpDQpgYGANCg0KKyBUcuG7pWMgaG/DoG5oOiB0aOG7gyBoaeG7h24gY8OhYyBuxINtIHThu6sgMjAxOCDEkeG6v24gMjAyMi4NCisgVHLhu6VjIHR1bmc6IHRo4buDIGhp4buHbiB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIGPhu6dhIFZp4buHdCBOYW0gKCUpLg0KDQpExrDhu5tpIMSRw6J5IGzDoCBt4buZdCBz4buRIMSRaeG7g20gY2jDrW5oIMSRxrDhu6NjIHRo4buDIGhp4buHbiB0csOqbiBiaeG7g3UgxJHhu5M6DQoNCisgVOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBWaeG7h3QgTmFtIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeS4NCisgVOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIEdEUCBjYW8gbmjhuqV0IHbDoG8gbsSDbSAyMDIyICANCisgVOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIEdEUCB0aOG6pXAgbmjhuqV0IHbDoG8gbsSDbSAyMDE4ICANCisgTsSDbSAyMDIyLCB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIMSR4bqhdCA4LDAyJQ0KDQpOZ2/DoGkgcmEsIGJp4buDdSDEkeG7kyBjxaluZyBjaG8gdGjhuqV5IG3hu5l0IHPhu5EgYmnhur9uIMSR4buZbmcgdHJvbmcgdOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBWaeG7h3QgTmFtIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KDQorIFThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBHRFAgZ2nhuqNtIG3huqFuaCB2w6BvIG7Eg20gMjAyMCBkbyDhuqNuaCBoxrDhu59uZyBj4bunYSDEkeG6oWkgZOG7i2NoIENPVklELTE5LiBUdXkgbmhpw6puLCB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgR0RQIMSRw6MgcGjhu6VjIGjhu5NpIG3huqFuaCBt4bq9IHbDoG8gbsSDbSAyMDIxIHbDoCAyMDIyLg0KKyBRdXkgbcO0IEdEUCBWaeG7h3QgTmFtIHTEg25nIHRyxrDhu59uZyBsacOqbiB04bulYyBxdWEgY8OhYyBuxINtLCB04burIDI4MS4zNTMgdOG7tyDEkeG7k25nIG7Eg20gMjAxNyBsw6puIDQwOC44MDIgdOG7tyDEkeG7k25nIGThu7Ega2nhur9uIG7Eg20gMjAyMi4NCisgUXV5IG3DtCBHRFAgbsSDbSAyMDIyIGThu7Ega2nhur9uIHTEg25nIGfhuqVwIDEsNDUgbOG6p24gc28gduG7m2kgbsSDbSAyMDE3Lg0KDQojIyMgKioyLiBDw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgR0RQIGPhu6dhIFZp4buHdCBOYW0qKg0KIA0KMS4gWeG6v3UgdOG7kSBu4buZaSB04bqhaToNCg0KxJDhuqd1IHTGsDoNCg0KKyDEkOG6p3UgdMawIGPDtG5nOiDEkcOzbmcgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyB0aMO6YyDEkeG6qXkgdMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vywgxJHhurdjIGJp4buHdCBsw6AgdHJvbmcgZ2lhaSDEkW/huqFuIMSR4bqndSBj4bunYSBnaWFpIMSRb+G6oW4gMjAxMy0yMDIyLg0KKyDEkOG6p3UgdMawIHTGsCBuaMOibjogdMSDbmcgdHLGsOG7n25nIG3huqFuaCBt4bq9IHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5LCDEkcOzbmcgZ8OzcCB2w6BvIHPhu7EgZ2lhIHTEg25nIG7Eg25nIGzhu7FjIHPhuqNuIHh14bqldCB2w6AgY+G6o2kgdGhp4buHbiBuxINuZyBzdeG6pXQgbGFvIMSR4buZbmcuDQoNCkPDoW4gY8OibiB0aMawxqFuZyBt4bqhaToNCg0KKyBYdeG6pXQga2jhuql1OiB0xINuZyB0csaw4bufbmcgbeG6oW5oIG3hur0sIGzDoCDEkeG7mW5nIGzhu7FjIGNow61uaCBjaG8gdMSDbmcgdHLGsOG7n25nIEdEUC4NCisgTmjhuq1wIGto4bqpdTogdMSDbmcgY2FvLCB0dXkgbmhpw6puIHbhuqtuIHRo4bqlcCBoxqFuIG3hu6ljIHTEg25nIHRyxrDhu59uZyB4deG6pXQga2jhuql1Lg0KDQpUacOqdSBkw7luZzoNCg0KKyBUacOqdSBkw7luZyBu4buZaSDEkeG7i2E6IHTEg25nIHRyxrDhu59uZyDhu5VuIMSR4buLbmgsIMSRw7NuZyBnw7NwIHbDoG8gc+G7sSB0xINuZyB0csaw4bufbmcgY+G7p2EgR0RQLg0KKyBUacOqdSBkw7luZyBj4bunYSBraHUgduG7sWMgbmjDoCBuxrDhu5tjOiB0xINuZyB0csaw4bufbmcgY2jhuq1tIGjGoW4gc28gduG7m2kgdGnDqnUgZMO5bmcgY+G7p2Ega2h1IHbhu7FjIHTGsCBuaMOibi4NCg0KTsSDbmcgc3XhuqV0IGxhbyDEkeG7mW5nOg0KDQorIEPDsyBz4buxIGPhuqNpIHRoaeG7h246IHR1eSBuaGnDqm4gduG6q24gY8OybiB0aOG6pXAgc28gduG7m2kgY8OhYyBuxrDhu5tjIHRyb25nIGtodSB24buxYy4NCisgQ+G6p24gdGnhur9wIHThu6VjIG7Dom5nIGNhbzogdGjDtG5nIHF1YSB2aeG7h2MgxJHhuqd1IHTGsCB2w6BvIGdpw6FvIGThu6VjLCDEkcOgbyB04bqhbyB2w6Aga2hvYSBo4buNYyBjw7RuZyBuZ2jhu4cuDQoNCjIuIFnhur91IHThu5Egbmdv4bqhaSB04bqhaToNCg0KTuG7gW4ga2luaCB04bq/IHRo4bq/IGdp4bubaToNCg0KKyBUxINuZyB0csaw4bufbmcgY2jhuq1tIGzhuqFpOiDhuqNuaCBoxrDhu59uZyDEkeG6v24gbmh1IGPhuqd1IHh14bqldCBraOG6qXUgY+G7p2EgVmnhu4d0IE5hbS4NCisgQmnhur9uIMSR4buZbmcgY+G7p2EgZ2nDoSBj4bqjIGjDoG5nIGjDs2EgdHLDqm4gdGjhu4sgdHLGsOG7nW5nIHRo4bq/IGdp4bubaTog4bqjbmggaMaw4bufbmcgxJHhur9uIGzhuqFtIHBow6F0IHbDoCBjaGkgcGjDrSBz4bqjbiB4deG6pXQgY+G7p2EgVmnhu4d0IE5hbS4NCg0KQ2jDrW5oIHPDoWNoIHRp4buBbiB04buHIHbDoCB0w6BpIGtow7NhIGPhu6dhIGPDoWMgbsaw4bubYyBs4bubbjoNCg0KKyBT4buxIHRoYXkgxJHhu5VpIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hzog4bqjbmggaMaw4bufbmcgxJHhur9uIGTDsm5nIHbhu5FuIMSR4bqndSB0xrAgdsOgbyBWaeG7h3QgTmFtLg0KKyBT4buxIHRoYXkgxJHhu5VpIGPhu6dhIGNow61uaCBzw6FjaCB0w6BpIGtow7NhOiDhuqNuaCBoxrDhu59uZyDEkeG6v24gbmh1IGPhuqd1IG5o4bqtcCBraOG6qXUgY+G7p2EgY8OhYyBuxrDhu5tjIMSR4buRaSB0w6FjIHRoxrDGoW5nIG3huqFpIGPhu6dhIFZp4buHdCBOYW0uDQoNCjMuIE3hu5l0IHPhu5EgeeG6v3UgdOG7kSBraMOhYzoNCg0KKyBCaeG6v24gxJHhu5VpIGtow60gaOG6rXU6IOG6o25oIGjGsOG7n25nIMSR4bq/biBz4bqjbiB4deG6pXQgbsO0bmcgbmdoaeG7h3AgdsOgIGR1IGzhu4tjaCBj4bunYSBWaeG7h3QgTmFtLg0KKyBE4buLY2ggYuG7h25oIENPVklELTE5OiDhuqNuaCBoxrDhu59uZyBu4bq3bmcgbuG7gSDEkeG6v24gbuG7gW4ga2luaCB04bq/IFZp4buHdCBOYW0gdHJvbmcgbsSDbSAyMDIwIHbDoCAyMDIxLg0KDQojIyAqKklJSS5HaeG7m2kgdGhp4buHdSBpbmRpY2F0b3IgUENQSV9JWCoqDQpgYGB7cn0NCnQgPC0gbG9hZF9kYXRhc2V0cygnQ1BJJykNCmNwaSA8LSB0JGdldF9zZXJpZXMoZnJlcSA9ICdNJywgcmVmX2FyZWEgPSAnVk4nLCBpbmRpY2F0b3IgPSAnUENQSV9JWCcpDQpjcGkgPC0gbmEub21pdChjcGkpDQpuYW1lcyhjcGkpIDwtIGMoJ1Rob2lHaWFuJywnTmFtR29jJywnQ1BJJykNCmhlYWQoY3BpLDkpDQpgYGANCg0KQ2jhu4kgc+G7kSBQQ1BJX0lYIGzDoCBjaOG7iSBz4buRIGdpw6EgdGnDqnUgZMO5bmcgY2hvIG5nxrDhu51pIGPDsyB0aHUgbmjhuq1wIHRo4bqlcCB2w6AgdHJ1bmcgYsOsbmgg4bufIGtodSB24buxYyB0aMOgbmggdGjhu4sgKFBDUEkgLSBVcmJhbiBMb3dlciBhbmQgTWlkZGxlIEluY29tZSBIb3VzZWhvbGRzKS4gQ2jhu4kgc+G7kSBuw6B5IMSRxrDhu6NjIHTDrW5oIHRvw6FuIGThu7FhIHRyw6puIGdpw6EgY+G6oyBj4bunYSBt4buZdCBy4buVIGjDoG5nIGjDs2EgdsOgIGThu4tjaCB24bulIHRpw6p1IGJp4buDdSBtw6AgbmfGsOG7nWkgY8OzIHRodSBuaOG6rXAgdGjhuqVwIHbDoCB0cnVuZyBiw6xuaCDhu58ga2h1IHbhu7FjIHRow6BuaCB0aOG7iyB0aMaw4budbmcgbXVhLg0KDQpQQ1BJX0lYIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIGNo4buJIHPhu5EgcXVhbiB0cuG7jW5nIMSR4buDIMSRbyBsxrDhu51uZyBt4bupYyDEkeG7mSBs4bqhbSBwaMOhdCDhu58gVmnhu4d0IE5hbS4gQ2jhu4kgc+G7kSBuw6B5IMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHRoZW8gZMO1aSBiaeG6v24gxJHhu5luZyBnacOhIGPhuqMgaMOgbmcgaMOzYSB2w6AgZOG7i2NoIHbhu6UsIHThu6sgxJHDsyBnacO6cCBDaMOtbmggcGjhu6cgY8OzIHRo4buDIMSRxrBhIHJhIGPDoWMgY2jDrW5oIHPDoWNoIHBow7kgaOG7o3AgxJHhu4Mga2nhu4NtIHNvw6F0IGzhuqFtIHBow6F0IHbDoCBi4bqjbyB24buHIMSR4budaSBz4buRbmcgY+G7p2EgbmfGsOG7nWkgZMOibi4NCg0KQ2jhu4kgc+G7kSBQQ1BJX0lYIGPDsyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyBjaG8gY8OhYyBt4bulYyDEkcOtY2ggc2F1Og0KDQorIMSQbyBsxrDhu51uZyBt4bupYyDEkeG7mSBs4bqhbSBwaMOhdDogVGhlbyBkw7VpIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G6oyBow6BuZyBow7NhIHbDoCBk4buLY2ggduG7pSB0acOqdSBkw7luZyBj4bunYSBuZ8aw4budaSBjw7MgdGh1IG5o4bqtcCB0aOG6pXAgdsOgIHRydW5nIGLDrG5oIOG7nyBraHUgduG7sWMgdGjDoG5oIHRo4buLLg0KKyBTbyBzw6FuaCBt4bupYyBz4buRbmc6IFNvIHPDoW5oIG3hu6ljIHPhu5FuZyBj4bunYSBuZ8aw4budaSBjw7MgdGh1IG5o4bqtcCB0aOG6pXAgdsOgIHRydW5nIGLDrG5oIOG7nyBraHUgduG7sWMgdGjDoG5oIHRo4buLIHRoZW8gdGjhu51pIGdpYW4gdsOgIGdp4buvYSBjw6FjIMSR4buLYSBwaMawxqFuZyBraMOhYyBuaGF1Lg0KKyDEkMOhbmggZ2nDoSBoaeG7h3UgcXXhuqMgY+G7p2EgY8OhYyBjaMOtbmggc8OhY2g6IMSQw6FuaCBnacOhIGhp4buHdSBxdeG6oyBj4bunYSBjw6FjIGNow61uaCBzw6FjaCBraW5oIHThur8gdsOgIHjDoyBo4buZaSDEkeG7kWkgduG7m2kgxJHhu51pIHPhu5FuZyBj4bunYSBuZ8aw4budaSBjw7MgdGh1IG5o4bqtcCB0aOG6pXAgdsOgIHRydW5nIGLDrG5oIOG7nyBraHUgduG7sWMgdGjDoG5oIHRo4buLLg0KDQojIyAqKklWLiBQaMOibiB0w61jaCoqDQojIyMgKioxLkNo4buJIHPhu5EgZ2nDoSB0acOqdSBkw7luZyBDUEkgY+G7p2EgVmnhu4d0IE5hbSBxdWEgY8OhYyBt4buRYyB0aOG7nWkgZ2lhbioqDQpgYGB7cn0NCnQgPC0gbG9hZF9kYXRhc2V0cygnQ1BJJykNCmNwaSA8LSB0JGdldF9zZXJpZXMoZnJlcSA9ICdNJywgcmVmX2FyZWEgPSAnVk4nLCBpbmRpY2F0b3IgPSAnUENQSV9JWCcpDQpjcGkgPC0gbmEub21pdChjcGkpDQpuYW1lcyhjcGkpIDwtIGMoJ3llYXInLCdOYW1Hb2MnLCdDUEknKQ0KZGF0YXRhYmxlKGNwaSkNCmBgYA0KDQpUYSBjw7MgYuG7mSBk4buvIGxp4buHdSBn4buTbSAzIGJp4bq/biB2w6AgMjY3IHF1YW4gc8OhdA0KDQpDaG8gdGjhuqV5IHPhu7EgdGhheSDEkeG7lWkgY+G7p2EgQ2jhu4kgc+G7kSBnacOhIHRpw6p1IGTDuW5nIChDUEkpIHThuqFpIFZp4buHdCBOYW0gdOG7qyBuxINtIDIwMDEgxJHhur9uIMSR4bqndSBuxINtIDIwMjQuDQoNCkPhu6UgdGjhu4MsIGLhu5kgZOG7ryBsaeG7h3UgYmFvIGfhu5NtOg0KDQorIFRo4budaSBnaWFuOiBUaMOhbmcgdsOgIG7Eg20gY+G7p2EgbeG7l2kgcXVhbiBzw6F0Lg0KKyBOxIJNIEfhu5BDOiBOxINtIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHTDrW5oIHRvw6FuIENQSS4NCisgQ1BJOiBDaOG7iSBz4buRIGdpw6EgdGnDqnUgZMO5bmcgY2hvIHRow6FuZyB2w6AgbsSDbSB0xrDGoW5nIOG7qW5nLg0KDQpC4buZIGThu68gbGnhu4d1IG7DoHkgY8OzIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHRoZW8gZMO1aSBs4bqhbSBwaMOhdCB04bqhaSBWaeG7h3QgTmFtIHRoZW8gdGjhu51pIGdpYW4uIEzhuqFtIHBow6F0IGzDoCB04buRYyDEkeG7mSB0xINuZyBnacOhIGPhuqMgaMOgbmcgaMOzYSB2w6AgZOG7i2NoIHbhu6UgdHJvbmcgbeG7mXQgbuG7gW4ga2luaCB04bq/LiBWaeG7h2MgdGhlbyBkw7VpIGzhuqFtIHBow6F0IGzDoCDEkWnhu4F1IHF1YW4gdHLhu41uZyDEkeG7kWkgduG7m2kgY8OhYyBuaMOgIGhv4bqhY2ggxJHhu4tuaCBjaMOtbmggc8OhY2ggdsOsIG7DsyBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIG5oaeG7gXUgeeG6v3UgdOG7kSBraW5oIHThur8ga2jDoWMsIGNo4bqzbmcgaOG6oW4gbmjGsCBsw6NpIHN14bqldCB2w6AgdOG7tyBnacOhIGjhu5FpIMSRb8OhaS4NCg0KIyMjICoqMS4xLkdpYWkgxJFv4bqhbiAxLTUvMjAyMSoqDQpgYGB7cn0NCmNwaTEgPC0gY3BpICU+JSBmaWx0ZXIoeWVhciA9PSAiMjAyMS0wMSIgfCB5ZWFyICA9PSAiMjAyMS0wMiIgfCB5ZWFyID09ICIyMDIxLTAzIiB8IHllYXIgPT0gIjIwMjEtMDQiIHwgeWVhciA9PSAiMjAyMS0wNSIpDQpnZ3Bsb3QoY3BpMSwgYWVzKHggPSB5ZWFyLCB5ID0gQ1BJKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgZmlsbCA9ICJyZWQiKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiBjaOG7iSBz4buRIENQSSDhu58gVmnhu4d0IE5hbSAiKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyB0csOqbiBjaG8gdGjhuqV5IGNo4buJIHPhu5EgQ1BJIHThu6sgMS8yMDIxLSA1LzIwMjEga2jDtG5nIMSR4buTbmcgxJHhu4F1IA0KDQorIDIvMjAyMSBjw7MgY2jhu4kgc+G7kSBjYW8gbmjhuqV0IA0KKyAxLzIwMjEgY8OzIGNo4buJIHPhu5EgdGjhuqVwIG5o4bqldA0KDQpDaOG7iSBz4buRIENQSSB04burIHRow6FuZyAxLTUvMjAyMSBjaG8gdGjhuqV5IGzhuqFtIHBow6F0IMSRxrDhu6NjIGtp4buDbSBzb8OhdCB04buRdCwgduG7m2kgbeG7qWMgdMSDbmcgdGjhuqVwIG5o4bqldCB0cm9uZyBuaGnhu4F1IG7Eg20uDQoNCkdpw6EgY+G6oyBow6BuZyBow7NhIHbDoCBk4buLY2ggduG7pSB0xrDGoW5nIMSR4buRaSDhu5VuIMSR4buLbmgsIHR1eSBuaGnDqm4gbmjDs20gZ2lhbyB0aMO0bmcgY8OzIGJp4bq/biDEkeG7mW5nIG3huqFuaCBkbyBnacOhIHjEg25nLCBk4bqndSB0xINuZy4NCg0KTOG6oW0gcGjDoXQgY8ahIGLhuqNuIHRo4bqlcCBoxqFuIG3hu6ljIENQSSBiw6xuaCBxdcOibiBjaHVuZywgY2hvIHRo4bqleSDDoXAgbOG7sWMgbOG6oW0gcGjDoXQgdOG7qyBjw6FjIHnhur91IHThu5EgY+G7kXQgbMO1aSBjw7JuIHRo4bqlcC4NCg0KIyMjICoqMS4yLkdpYWkgxJFv4bqhbiA2LTEwLzIwMjEqKg0KYGBge3J9DQpjcGkyIDwtIGNwaSAlPiUgZmlsdGVyKHllYXIgPT0gIjIwMjEtMDYiIHwgeWVhciAgPT0gIjIwMjEtMDciIHwgeWVhciA9PSAiMjAyMS0wOCIgfCB5ZWFyID09ICIyMDIxLTA5IiB8IHllYXIgPT0gIjIwMjEtMTAiKQ0KZ2dwbG90KGNwaTIsIGFlcyh4ID0geWVhciwgeSA9IENQSSkpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGwgPSAic2t5Ymx1ZSIpICsNCiAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIGNo4buJIHPhu5EgQ1BJIOG7nyBWaeG7h3QgTmFtICIpDQpgYGANCg0KQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiBjaOG7iSBz4buRIENQSSAoQ2jhu4kgc+G7kSBnacOhIHRpw6p1IGTDuW5nKSBj4bunYSBWaeG7h3QgTmFtIHRyb25nIGdpYWkgxJFv4bqhbiB04burIHRow6FuZyA2IMSR4bq/biB0aMOhbmcgMTAgbsSDbSAyMDIxLg0KDQorIFRy4bulYyBob8Ogbmg6IFRo4buDIGhp4buHbiB0aOG7nWkgZ2lhbiwgdOG7qyB0aMOhbmcgNiDEkeG6v24gdGjDoW5nIDEwIG7Eg20gMjAyMS4NCisgVHLhu6VjIHR1bmc6IFRo4buDIGhp4buHbiBjaOG7iSBz4buRIENQSSwgduG7m2kgZ2nDoSB0cuG7iyB04burIDEwNCDEkeG6v24gMTA1Lg0KKyDEkMaw4budbmcgbcOgdSB4YW5oIGRhIHRy4budaTogVGjhu4MgaGnhu4duIHPhu7EgdGhheSDEkeG7lWkgY+G7p2EgY2jhu4kgc+G7kSBDUEkgdGhlbyB0aOG7nWkgZ2lhbi4NCg0KQ+G7pSB0aOG7gzoNCg0KKyBUaMOhbmcgNi8yMDIxOiBDaOG7iSBz4buRIENQSSBsw6AgMTA0LDg3Lg0KKyBUaMOhbmcgNy8yMDIxOiBDaOG7iSBz4buRIENQSSB0xINuZyBsw6puIDEwNSw1My4NCisgVGjDoW5nIDgvMjAyMTogQ2jhu4kgc+G7kSBDUEkgdGnhur9wIHThu6VjIHTEg25nIGzDqm4gMTA1LDc5Lg0KKyBUaMOhbmcgOS8yMDIxOiBDaOG7iSBz4buRIENQSSBnaeG6o20gbmjhurkgeHXhu5FuZyAxMDUsMTQuDQorIFRow6FuZyAxMC8yMDIxOiBDaOG7iSBz4buRIENQSSB0aeG6v3AgdOG7pWMgZ2nhuqNtIHh14buRbmcgMTA0LDkyLg0KDQojIyMgKioyLkPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyoqDQoNClnhur91IHThu5EgdMOhYyDEkeG7mW5nOg0KDQorIEdpw6Egbmd1ecOqbiwgbmhpw6puLCB24bqtdCBsaeG7h3U6IEdpw6Egbmd1ecOqbiwgbmhpw6puLCB24bqtdCBsaeG7h3UgxJHhuqd1IHbDoG8gdMSDbmcgY2FvIGRvIOG6o25oIGjGsOG7n25nIGPhu6dhIGThu4tjaCBDb3ZpZC0xOSB2w6AgYmnhur9uIMSR4buZbmcgZ2nDoSB0aOG6vyBnaeG7m2kuDQorIEdpw6EgeMSDbmcgZOG6p3U6IEdpw6EgeMSDbmcgZOG6p3UgdMSDbmcgMTIsMDglIHNvIHbhu5tpIGPDuW5nIGvhu7MgbsSDbSB0csaw4bubYyBkbyBnacOhIGThuqd1IHRo4bq/IGdp4bubaSB0xINuZy4NCisgR2nDoSDEkWnhu4duOiBHacOhIMSRaeG7h24gc2luaCBob+G6oXQgdMSDbmcgMyw0NCUgc28gduG7m2kgY8O5bmcga+G7syBuxINtIHRyxrDhu5tjIGRvIGdpw6EgdGhhbiB2w6AgZ2nDoSBraMOtIMSR4buRdCB0xINuZy4NCisgR2nDoSBsxrDGoW5nIHRo4buxYzogR2nDoSBsxrDGoW5nIHRo4buxYyBnaeG6o20gMCwwNiUgc28gduG7m2kgY8O5bmcga+G7syBuxINtIHRyxrDhu5tjIGRvIG5ndeG7k24gY3VuZyBk4buTaSBkw6BvLg0KKyBHacOhIGThu4tjaCB24bulOiBHacOhIGThu4tjaCB24bulIHTEg25nIDEsMzElIHNvIHbhu5tpIGPDuW5nIGvhu7MgbsSDbSB0csaw4bubYyBkbyBuaHUgY+G6p3UgdGnDqnUgZMO5bmcgZOG7i2NoIHbhu6UgdMSDbmcuDQoNCkLDqm4gY+G6oW5oIMSRw7MsIGPDsm4gY8OzIG3hu5l0IHPhu5EgeeG6v3UgdOG7kSBraMOhYyDhuqNuaCBoxrDhu59uZyDEkeG6v24gQ1BJIG5oxrA6DQoNCisgQ2jDrW5oIHPDoWNoIHRp4buBbiB04buHOiBDaMOtbmggc8OhY2ggdGnhu4FuIHThu4cgbuG7m2kgbOG7j25nIGPDsyB0aOG7gyBk4bqrbiDEkeG6v24gbOG6oW0gcGjDoXQgdMSDbmcuDQorIENow61uaCBzw6FjaCB0w6BpIGtow7NhOiBDaMOtbmggc8OhY2ggdMOgaSBraMOzYSBrw61jaCB0aMOtY2ggY8OzIHRo4buDIGThuqtuIMSR4bq/biBs4bqhbSBwaMOhdCB0xINuZy4NCisgTmh1IGPhuqd1IHRpw6p1IGTDuW5nOiBOaHUgY+G6p3UgdGnDqnUgZMO5bmcgdMSDbmcgY2FvIGPDsyB0aOG7gyBk4bqrbiDEkeG6v24gbOG6oW0gcGjDoXQgdMSDbmcuDQorIEdpw6EgbMawxqFuZyB0aOG7sWMgZ2nhuqNtLg0KKyBDaMOtbmggc8OhY2ggY+G7p2EgQ2jDrW5oIHBo4bunIGtp4buDbSBzb8OhdCBnacOhIGPhuqMuDQoNCg==