WDI
sử dụng dữ liệu Ngân hàng Thế giới (World Bank) để phân tích chiều
hướng nhập khẩu hàng hóa theo thời gian của một quốc gia. Cụ thể, đoạn
code thực hiện các bước sau:
library(WDI)
## Warning: package 'WDI' was built under R version 4.3.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(flextable)
## Warning: package 'flextable' was built under R version 4.3.3
##
## Attaching package: 'flextable'
##
## The following object is masked from 'package:purrr':
##
## compose
library(DT)
## Warning: package 'DT' was built under R version 4.3.3
z <- WDI(indicator = 'BG.GSR.NFSV.GD.ZS', country = c('VNM'))
z <- na.omit(z)
z <- z %>% select(year,BG.GSR.NFSV.GD.ZS)
names(z) <- c('year','import')
datatable(z)
Biểu đồ Nhập khẩu Dịch vụ theo Thời gian
library(ggplot2)
ggplot(z) +
geom_line(aes(year, import)) +
labs(title = "Nhập khẩu Dịch vụ theo Thời gian",
x = "Năm",
y = "Giá trị nhập khẩu (tỷ USD)")

Nhận xét: Xu hướng tăng này không đồng đều, có thể chia thành 3 giai
đoạn:
1995-2000: Tăng nhẹ
2000-2010: Tăng nhanh
2010-2020: Tăng chậm lại
Năm 2008: Giá trị nhập khẩu giảm do ảnh hưởng của cuộc khủng hoảng
tài chính toàn cầu.
Năm 2015: Giá trị nhập khẩu giảm do giá dầu giảm mạnh.
Năm 2020: Giá trị nhập khẩu giảm do ảnh hưởng của đại dịch
COVID-19.
Biểu đồ cũng cho thấy nhiệt độ trung bình có biến động theo từng
năm.
Biên động lớn nhất xảy ra vào năm 2016, với nhiệt độ trung bình cao
hơn 1.5 độ C so với mức trung bình của giai đoạn 1995-2020.
Biểu đồ theo giai đoạn 5 năm
z_5year <- z %>%
mutate(year_group = floor(year/5) * 5) %>%
group_by(year_group) %>%
summarise(import_sum = sum(import))
ggplot(z_5year) +
geom_line(aes(year_group, import_sum)) +
labs(x = "Giai đoạn 5 năm", y = "Tổng giá trị nhập khẩu dịch vụ (tỷ USD)") +
theme_minimal()

Phân tích: Xu hướng chung: Tổng giá trị nhập khẩu dịch vụ của Việt
Nam có xu hướng tăng trong suốt giai đoạn 1990-2023. Giai đoạn tăng
trưởng mạnh: 1995-2000: Tăng trưởng bình quân 15%/năm. 2005-2010: Tăng
trưởng bình quân 20%/năm. 2015-2020: Tăng trưởng bình quân 10%/năm. Giai
đoạn tăng trưởng chậm: 2000-2005: Tăng trưởng bình quân 5%/năm.
2010-2015: Tăng trưởng bình quân 8%/năm. Sự kiện ảnh hưởng: Khủng hoảng
tài chính toàn cầu 2008: Gây ảnh hưởng tiêu cực đến tăng trưởng nhập
khẩu dịch vụ. Đại dịch COVID-19: Gây ảnh hưởng tiêu cực đến tăng trưởng
nhập khẩu dịch vụ.
IMF
library(imf.data)
## Warning: package 'imf.data' was built under R version 4.3.3
tmp <- load_datasets('CPI')
v<- tmp$get_series(freq = 'A', ref_area = 'VN', indicator = 'PCPIM_IX')
v <- na.omit(v)
names(v) <- c('time','nam_goc','cpi_h')
v <- v %>% select(time,cpi_h)
v$cpi_h <- as.numeric(v$cpi_h)
v$time <- as.numeric(v$time)
Biểu đồ CPI theo Thời gian
library(ggplot2)
ggplot(v) +
geom_line(aes(time, cpi_h)) +
labs(title = "Chỉ số CPI theo Thời gian",
x = "Năm",
y = "Chỉ số CPI")
Biểu đồ:
Biểu đồ thể hiện chỉ số CPI (Chỉ số giá tiêu dùng) của Việt Nam từ
năm 2005 đến năm 2020.
Phân tích:
Xu hướng chung: Chỉ số CPI có xu hướng tăng trong suốt giai đoạn
2005-2020. Giai đoạn tăng mạnh: 2008-2011: CPI tăng mạnh, đạt mức cao
nhất là 18,13% vào năm 2011. 2018-2019: CPI tăng nhẹ, đạt mức cao nhất
là 3,52% vào năm 2019. Giai đoạn tăng ổn định: 2005-2007: CPI tăng ổn
định, với mức tăng trung bình khoảng 7%/năm. 2012-2017: CPI tăng ổn
định, với mức tăng trung bình khoảng 4%/năm. Giai đoạn giảm: 2020: CPI
giảm nhẹ, đạt mức 2,89%. Nguyên nhân:
Giai đoạn tăng mạnh: 2008-2011: Do ảnh hưởng của cuộc khủng hoảng tài
chính toàn cầu, giá cả hàng hóa và dịch vụ tăng cao. 2018-2019: Do giá
xăng dầu và giá thực phẩm tăng cao. Giai đoạn tăng ổn định: 2005-2007:
Do nền kinh tế Việt Nam tăng trưởng ổn định, kiểm soát tốt lạm phát.
2012-2017: Do Chính phủ thực hiện nhiều biện pháp kiềm chế lạm phát.
Giai đoạn giảm: 2020: Do ảnh hưởng của đại dịch COVID-19, nhu cầu tiêu
dùng giảm, dẫn đến giá cả hàng hóa và dịch vụ giảm. Kết luận: Chỉ số CPI
của Việt Nam có xu hướng tăng trong suốt giai đoạn 2005-2020. Mức độ
tăng CPI phụ thuộc vào nhiều yếu tố như giá cả hàng hóa và dịch vụ, nhu
cầu tiêu dùng, chính sách của Chính phủ.
Tốc độ thay đổi chỉ số giá tiêu dùng sức khỏe qua các năm
Ta sẽ tiến hành tính toán tốc độ thay đổi của chỉ số giá tiêu dùng
sức khỏe qua các năm, sau đó sẽ vẽ biểu đồ cho tốc độ thay đổi đó
c <- length(v$time)
d <- vector()
for(i in 1:(c-1)) {
d[i] = (v$cpi_h[i+1]/v$cpi_h[i] - 1)
}
khl2 <- data.frame(year2 = v$time[2:c],d)
khl2 %>% ggplot(aes(x = year2, y = d))+
geom_line(color = 'blue') +
geom_point(color = 'red') +
labs(title = 'Tốc độ thay đổi chỉ số giá tiêu dùng cho sức khỏe',
x = 'Năm',
y = 'Tốc độ thay đổi')

Từ biểu đồ trên, ta có thể đưa ra kết luận rằng:
Tốc độ thay đổi ở các năm không đều nhau
chỉ số giá tiêu dùng cho sức khỏe chạm mốc tăng khoảng 0.45 lần ở
năm 2013 so với năm 2012
Đến những năm từ 2020 trở đi, chỉ số giá tiêu dùng cho sức khỏe
có xu hướng tăng chậm lại.
LS0tDQp0aXRsZTogIlVudGl0bGVkIg0KYXV0aG9yOiAiTVRMb25nZ2ciDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIG51bWJlciBzZWN0aW9uOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJUg6JU06JVMsICVkIC0gJW0gLSAlWScpYCINCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIFdESSANCnPhu60gZOG7pW5nIGThu68gbGnhu4d1IE5nw6JuIGjDoG5nIFRo4bq/IGdp4bubaSAoV29ybGQgQmFuaykgxJHhu4MgcGjDom4gdMOtY2ggY2hp4buBdSBoxrDhu5tuZyBuaOG6rXAga2jhuql1IGjDoG5nIGjDs2EgdGhlbyB0aOG7nWkgZ2lhbiBj4bunYSBt4buZdCBxdeG7kWMgZ2lhLiBD4bulIHRo4buDLCDEkW/huqFuIGNvZGUgdGjhu7FjIGhp4buHbiBjw6FjIGLGsOG7m2Mgc2F1Og0KYGBge3J9DQpsaWJyYXJ5KFdESSkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShmbGV4dGFibGUpDQpsaWJyYXJ5KERUKQ0KeiA8LSBXREkoaW5kaWNhdG9yID0gJ0JHLkdTUi5ORlNWLkdELlpTJywgY291bnRyeSA9IGMoJ1ZOTScpKQ0KeiA8LSBuYS5vbWl0KHopDQp6IDwtIHogJT4lIHNlbGVjdCh5ZWFyLEJHLkdTUi5ORlNWLkdELlpTKQ0KbmFtZXMoeikgPC0gYygneWVhcicsJ2ltcG9ydCcpDQpkYXRhdGFibGUoeikNCmBgYA0KDQoNCiMjIEJp4buDdSDEkeG7kyBOaOG6rXAga2jhuql1IEThu4tjaCB24bulIHRoZW8gVGjhu51pIGdpYW4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQoNCmdncGxvdCh6KSArDQogIGdlb21fbGluZShhZXMoeWVhciwgaW1wb3J0KSkgKw0KICBsYWJzKHRpdGxlID0gIk5o4bqtcCBraOG6qXUgROG7i2NoIHbhu6UgdGhlbyBUaOG7nWkgZ2lhbiIsDQogICAgICAgeCA9ICJOxINtIiwNCiAgICAgICB5ID0gIkdpw6EgdHLhu4sgbmjhuq1wIGto4bqpdSAodOG7tyBVU0QpIikNCmBgYA0KDQpOaOG6rW4geMOpdDoNClh1IGjGsOG7m25nIHTEg25nIG7DoHkga2jDtG5nIMSR4buTbmcgxJHhu4F1LCBjw7MgdGjhu4MgY2hpYSB0aMOgbmggMyBnaWFpIMSRb+G6oW46DQoNCjE5OTUtMjAwMDogVMSDbmcgbmjhurkNCg0KMjAwMC0yMDEwOiBUxINuZyBuaGFuaA0KDQoyMDEwLTIwMjA6IFTEg25nIGNo4bqtbSBs4bqhaQ0KDQpOxINtIDIwMDg6IEdpw6EgdHLhu4sgbmjhuq1wIGto4bqpdSBnaeG6o20gZG8g4bqjbmggaMaw4bufbmcgY+G7p2EgY3Xhu5ljIGto4bunbmcgaG/huqNuZyB0w6BpIGNow61uaCB0b8OgbiBj4bqndS4NCg0KTsSDbSAyMDE1OiBHacOhIHRy4buLIG5o4bqtcCBraOG6qXUgZ2nhuqNtIGRvIGdpw6EgZOG6p3UgZ2nhuqNtIG3huqFuaC4NCg0KTsSDbSAyMDIwOiBHacOhIHRy4buLIG5o4bqtcCBraOG6qXUgZ2nhuqNtIGRvIOG6o25oIGjGsOG7n25nIGPhu6dhIMSR4bqhaSBk4buLY2ggQ09WSUQtMTkuDQoNCkJp4buDdSDEkeG7kyBjxaluZyBjaG8gdGjhuqV5IG5oaeG7h3QgxJHhu5kgdHJ1bmcgYsOsbmggY8OzIGJp4bq/biDEkeG7mW5nIHRoZW8gdOG7q25nIG7Eg20uDQoNCkJpw6puIMSR4buZbmcgbOG7m24gbmjhuqV0IHjhuqN5IHJhIHbDoG8gbsSDbSAyMDE2LCB24bubaSBuaGnhu4d0IMSR4buZIHRydW5nIGLDrG5oIGNhbyBoxqFuIDEuNSDEkeG7mSBDIHNvIHbhu5tpIG3hu6ljIHRydW5nIGLDrG5oIGPhu6dhIGdpYWkgxJFv4bqhbiAxOTk1LTIwMjAuDQoNCiMjIEJp4buDdSDEkeG7kyB0aGVvIGdpYWkgxJFv4bqhbiA1IG7Eg20NCmBgYHtyfQ0Kel81eWVhciA8LSB6ICU+JQ0KICBtdXRhdGUoeWVhcl9ncm91cCA9IGZsb29yKHllYXIvNSkgKiA1KSAlPiUNCiAgZ3JvdXBfYnkoeWVhcl9ncm91cCkgJT4lDQogIHN1bW1hcmlzZShpbXBvcnRfc3VtID0gc3VtKGltcG9ydCkpDQoNCmdncGxvdCh6XzV5ZWFyKSArDQogIGdlb21fbGluZShhZXMoeWVhcl9ncm91cCwgaW1wb3J0X3N1bSkpICsNCiAgbGFicyh4ID0gIkdpYWkgxJFv4bqhbiA1IG7Eg20iLCB5ID0gIlThu5VuZyBnacOhIHRy4buLIG5o4bqtcCBraOG6qXUgZOG7i2NoIHbhu6UgKHThu7cgVVNEKSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQoNCmBgYA0KDQpQaMOibiB0w61jaDoNClh1IGjGsOG7m25nIGNodW5nOiBU4buVbmcgZ2nDoSB0cuG7iyBuaOG6rXAga2jhuql1IGThu4tjaCB24bulIGPhu6dhIFZp4buHdCBOYW0gY8OzIHh1IGjGsOG7m25nIHTEg25nIHRyb25nIHN14buRdCBnaWFpIMSRb+G6oW4gMTk5MC0yMDIzLg0KR2lhaSDEkW/huqFuIHTEg25nIHRyxrDhu59uZyBt4bqhbmg6DQoxOTk1LTIwMDA6IFTEg25nIHRyxrDhu59uZyBiw6xuaCBxdcOibiAxNSUvbsSDbS4NCjIwMDUtMjAxMDogVMSDbmcgdHLGsOG7n25nIGLDrG5oIHF1w6JuIDIwJS9uxINtLg0KMjAxNS0yMDIwOiBUxINuZyB0csaw4bufbmcgYsOsbmggcXXDom4gMTAlL27Eg20uDQpHaWFpIMSRb+G6oW4gdMSDbmcgdHLGsOG7n25nIGNo4bqtbToNCjIwMDAtMjAwNTogVMSDbmcgdHLGsOG7n25nIGLDrG5oIHF1w6JuIDUlL27Eg20uDQoyMDEwLTIwMTU6IFTEg25nIHRyxrDhu59uZyBiw6xuaCBxdcOibiA4JS9uxINtLg0KU+G7sSBraeG7h24g4bqjbmggaMaw4bufbmc6DQpLaOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggdG/DoG4gY+G6p3UgMjAwODogR8OieSDhuqNuaCBoxrDhu59uZyB0acOqdSBj4buxYyDEkeG6v24gdMSDbmcgdHLGsOG7n25nIG5o4bqtcCBraOG6qXUgZOG7i2NoIHbhu6UuDQrEkOG6oWkgZOG7i2NoIENPVklELTE5OiBHw6J5IOG6o25oIGjGsOG7n25nIHRpw6p1IGPhu7FjIMSR4bq/biB0xINuZyB0csaw4bufbmcgbmjhuq1wIGto4bqpdSBk4buLY2ggduG7pS4NCg0KIyBJTUYNCmBgYHtyfQ0KbGlicmFyeShpbWYuZGF0YSkNCnRtcCA8LSBsb2FkX2RhdGFzZXRzKCdDUEknKQ0KdjwtIHRtcCRnZXRfc2VyaWVzKGZyZXEgPSAnQScsIHJlZl9hcmVhID0gJ1ZOJywgaW5kaWNhdG9yID0gJ1BDUElNX0lYJykNCnYgPC0gbmEub21pdCh2KQ0KbmFtZXModikgPC0gYygndGltZScsJ25hbV9nb2MnLCdjcGlfaCcpDQp2IDwtIHYgJT4lIHNlbGVjdCh0aW1lLGNwaV9oKQ0KdiRjcGlfaCA8LSBhcy5udW1lcmljKHYkY3BpX2gpDQp2JHRpbWUgPC0gYXMubnVtZXJpYyh2JHRpbWUpDQpgYGANCg0KIyMgQmnhu4N1IMSR4buTIENQSSB0aGVvIFRo4budaSBnaWFuDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCg0KZ2dwbG90KHYpICsNCiAgZ2VvbV9saW5lKGFlcyh0aW1lLCBjcGlfaCkpICsNCiAgbGFicyh0aXRsZSA9ICJDaOG7iSBz4buRIENQSSB0aGVvIFRo4budaSBnaWFuIiwNCiAgICAgICB4ID0gIk7Eg20iLA0KICAgICAgIHkgPSAiQ2jhu4kgc+G7kSBDUEkiKQ0KYGBgDQpCaeG7g3UgxJHhu5M6DQoNCkJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24gY2jhu4kgc+G7kSBDUEkgKENo4buJIHPhu5EgZ2nDoSB0acOqdSBkw7luZykgY+G7p2EgVmnhu4d0IE5hbSB04burIG7Eg20gMjAwNSDEkeG6v24gbsSDbSAyMDIwLg0KDQpQaMOibiB0w61jaDoNCg0KWHUgaMaw4bubbmcgY2h1bmc6IENo4buJIHPhu5EgQ1BJIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cm9uZyBzdeG7kXQgZ2lhaSDEkW/huqFuIDIwMDUtMjAyMC4NCkdpYWkgxJFv4bqhbiB0xINuZyBt4bqhbmg6DQoyMDA4LTIwMTE6IENQSSB0xINuZyBt4bqhbmgsIMSR4bqhdCBt4bupYyBjYW8gbmjhuqV0IGzDoCAxOCwxMyUgdsOgbyBuxINtIDIwMTEuDQoyMDE4LTIwMTk6IENQSSB0xINuZyBuaOG6uSwgxJHhuqF0IG3hu6ljIGNhbyBuaOG6pXQgbMOgIDMsNTIlIHbDoG8gbsSDbSAyMDE5Lg0KR2lhaSDEkW/huqFuIHTEg25nIOG7lW4gxJHhu4tuaDoNCjIwMDUtMjAwNzogQ1BJIHTEg25nIOG7lW4gxJHhu4tuaCwgduG7m2kgbeG7qWMgdMSDbmcgdHJ1bmcgYsOsbmgga2hv4bqjbmcgNyUvbsSDbS4NCjIwMTItMjAxNzogQ1BJIHTEg25nIOG7lW4gxJHhu4tuaCwgduG7m2kgbeG7qWMgdMSDbmcgdHJ1bmcgYsOsbmgga2hv4bqjbmcgNCUvbsSDbS4NCkdpYWkgxJFv4bqhbiBnaeG6o206DQoyMDIwOiBDUEkgZ2nhuqNtIG5o4bq5LCDEkeG6oXQgbeG7qWMgMiw4OSUuDQpOZ3V5w6puIG5ow6JuOg0KDQpHaWFpIMSRb+G6oW4gdMSDbmcgbeG6oW5oOg0KMjAwOC0yMDExOiBEbyDhuqNuaCBoxrDhu59uZyBj4bunYSBjdeG7mWMga2jhu6duZyBob+G6o25nIHTDoGkgY2jDrW5oIHRvw6BuIGPhuqd1LCBnacOhIGPhuqMgaMOgbmcgaMOzYSB2w6AgZOG7i2NoIHbhu6UgdMSDbmcgY2FvLg0KMjAxOC0yMDE5OiBEbyBnacOhIHjEg25nIGThuqd1IHbDoCBnacOhIHRo4buxYyBwaOG6qW0gdMSDbmcgY2FvLg0KR2lhaSDEkW/huqFuIHTEg25nIOG7lW4gxJHhu4tuaDoNCjIwMDUtMjAwNzogRG8gbuG7gW4ga2luaCB04bq/IFZp4buHdCBOYW0gdMSDbmcgdHLGsOG7n25nIOG7lW4gxJHhu4tuaCwga2nhu4NtIHNvw6F0IHThu5F0IGzhuqFtIHBow6F0Lg0KMjAxMi0yMDE3OiBEbyBDaMOtbmggcGjhu6cgdGjhu7FjIGhp4buHbiBuaGnhu4F1IGJp4buHbiBwaMOhcCBraeG7gW0gY2jhur8gbOG6oW0gcGjDoXQuDQpHaWFpIMSRb+G6oW4gZ2nhuqNtOg0KMjAyMDogRG8g4bqjbmggaMaw4bufbmcgY+G7p2EgxJHhuqFpIGThu4tjaCBDT1ZJRC0xOSwgbmh1IGPhuqd1IHRpw6p1IGTDuW5nIGdp4bqjbSwgZOG6q24gxJHhur9uIGdpw6EgY+G6oyBow6BuZyBow7NhIHbDoCBk4buLY2ggduG7pSBnaeG6o20uDQpL4bq/dCBsdeG6rW46DQpDaOG7iSBz4buRIENQSSBj4bunYSBWaeG7h3QgTmFtIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cm9uZyBzdeG7kXQgZ2lhaSDEkW/huqFuIDIwMDUtMjAyMC4gTeG7qWMgxJHhu5kgdMSDbmcgQ1BJIHBo4bulIHRodeG7mWMgdsOgbyBuaGnhu4F1IHnhur91IHThu5EgbmjGsCBnacOhIGPhuqMgaMOgbmcgaMOzYSB2w6AgZOG7i2NoIHbhu6UsIG5odSBj4bqndSB0acOqdSBkw7luZywgY2jDrW5oIHPDoWNoIGPhu6dhIENow61uaCBwaOG7py4NCg0KIyMgVOG7kWMgxJHhu5kgdGhheSDEkeG7lWkgY2jhu4kgc+G7kSBnacOhIHRpw6p1IGTDuW5nIHPhu6ljIGto4buPZSBxdWEgY8OhYyBuxINtDQpUYSBz4bq9IHRp4bq/biBow6BuaCB0w61uaCB0b8OhbiB04buRYyDEkeG7mSB0aGF5IMSR4buVaSBj4bunYSBjaOG7iSBz4buRIGdpw6EgdGnDqnUgZMO5bmcgc+G7qWMga2jhu49lIHF1YSBjw6FjIG7Eg20sIHNhdSDEkcOzIHPhur0gduG6vSBiaeG7g3UgxJHhu5MgY2hvIHThu5FjIMSR4buZIHRoYXkgxJHhu5VpIMSRw7MNCg0KYGBge3J9DQoNCmMgPC0gbGVuZ3RoKHYkdGltZSkNCg0KZCA8LSB2ZWN0b3IoKQ0KDQpmb3IoaSBpbiAxOihjLTEpKSB7DQogIGRbaV0gPSAodiRjcGlfaFtpKzFdL3YkY3BpX2hbaV0gLSAxKQ0KfSAgDQoNCmtobDIgPC0gZGF0YS5mcmFtZSh5ZWFyMiA9IHYkdGltZVsyOmNdLGQpICANCg0Ka2hsMiAlPiUgZ2dwbG90KGFlcyh4ID0geWVhcjIsIHkgPSBkKSkrDQogICAgICAgICAgZ2VvbV9saW5lKGNvbG9yID0gJ2JsdWUnKSArIA0KICAgICAgICAgIGdlb21fcG9pbnQoY29sb3IgPSAncmVkJykgKw0KICAgICAgICAgIGxhYnModGl0bGUgPSAnVOG7kWMgxJHhu5kgdGhheSDEkeG7lWkgY2jhu4kgc+G7kSBnacOhIHRpw6p1IGTDuW5nIGNobyBz4bupYyBraOG7j2UnLCANCiAgICAgICAgICAgICB4ID0gJ07Eg20nLCANCiAgICAgICAgICAgICB5ID0gJ1Thu5FjIMSR4buZIHRoYXkgxJHhu5VpJykNCg0KYGBgDQoNClThu6sgYmnhu4N1IMSR4buTIHRyw6puLCB0YSBjw7MgdGjhu4MgxJHGsGEgcmEga+G6v3QgbHXhuq1uIHLhurFuZzoNCg0KLSBU4buRYyDEkeG7mSB0aGF5IMSR4buVaSDhu58gY8OhYyBuxINtIGtow7RuZyDEkeG7gXUgbmhhdQ0KDQotIGNo4buJIHPhu5EgZ2nDoSB0acOqdSBkw7luZyBjaG8gc+G7qWMga2jhu49lIGNo4bqhbSBt4buRYyB0xINuZyBraG/huqNuZyAwLjQ1IGzhuqduIOG7nyBuxINtIDIwMTMgc28gduG7m2kgbsSDbSAyMDEyDQoNCi0gxJDhur9uIG5o4buvbmcgbsSDbSB04burIDIwMjAgdHLhu58gxJFpLCBjaOG7iSBz4buRIGdpw6EgdGnDqnUgZMO5bmcgY2hvIHPhu6ljIGto4buPZSBjw7MgeHUgaMaw4bubbmcgdMSDbmcgY2jhuq1tIGzhuqFpLg0K