02:07:14, 27 - 01 - 2024

Nhiệm vụ 3.1

1. Giới thiệu:

  • Nhiệm vụ 3.1 tiến hành thao tác để phân tích bộ dữ liệu “population-and-demography.csv”, là dataset thống kê về dân số và nhân khẩu học của hơn 100 quốc gia khác nhau tại các độ tuổi từ năm 1950 đến năm 2021

  • Ta thực hiện các lệnh sau:

    • read.csv(): đọc dữ liệu từ file csv

    • skim(): cho biết thông tin khác về bộ dữ liệu

      • skim_variable: tên biến
      • n_missing: số dữ liệu trống
      • complete_rate: tỉ lệ biến có dữ liệu
      • mean: giá trị trung bình của biến
      • sd: độ lệch chuẩn của biến
      • p0: giá trị nhỏ nhất
      • p25: phân vị thứ nhất
      • p50: phân vị thứ hai (trung vị)
      • p75: phân vị thứ ba
      • p100: giá trị lớn nhất
      • his: biểu đồ histogram
yc1 <- read.csv("F:/Ngôn ngữ lập trình/population-and-demography.csv", header = T) 
library(skimr)
skim(yc1) 
Data summary
Name yc1
Number of rows 18288
Number of columns 24
_______________________
Column type frequency:
character 1
numeric 23
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Country.name 0 1 4 59 0 254 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Year 0 1 1985.50 20.78 1950 1967.75 1985.5 2003.25 2021 ▇▇▇▇▇
Population 0 1 126470436.62 588851230.77 1363 291591.50 3833997.5 16785463.50 7909295000 ▇▁▁▁▁
Population.of.children.under.the.age.of.1 0 1 3133496.86 14167006.03 25 6663.75 88352.0 463000.50 139783730 ▇▁▁▁▁
Population.of.children.under.the.age.of.5 0 1 14825709.57 67384368.62 136 31995.25 423784.5 2160046.50 690360700 ▇▁▁▁▁
Population.of.children.under.the.age.of.15 0 1 41095227.11 188416973.54 416 89541.50 1186121.5 5905944.75 2015023400 ▇▁▁▁▁
Population.under.the.age.of.25 0 1 63762600.31 294251869.66 623 139541.50 1843099.5 9025129.75 3239281000 ▇▁▁▁▁
Population.aged.15.to.64.years 0 1 77429505.08 367651914.71 748 170263.50 2246772.0 9641250.00 5132999000 ▇▁▁▁▁
Population.older.than.15.years 0 1 85372101.76 404866940.61 849 186716.00 2482104.0 10354345.50 5893678600 ▇▁▁▁▁
Population.older.than.18.years 0 1 78196242.04 372017010.49 752 166417.50 2238130.5 9239904.00 5516283000 ▇▁▁▁▁
Population.at.age.1 0 1 3011212.81 13661998.41 26 6473.75 85824.0 440787.50 138478740 ▇▁▁▁▁
Population.aged.1.to.4.years 0 1 11692212.72 53238243.89 101 25269.25 334454.0 1697850.75 550970400 ▇▁▁▁▁
Population.aged.5.to.9.years 0 1 13598575.21 62534310.11 138 29406.25 392220.5 1947260.75 683611800 ▇▁▁▁▁
Population.aged.10.to.14.years 0 1 12670942.28 58775457.46 73 27879.50 363895.5 1796754.00 659934300 ▇▁▁▁▁
Population.aged.15.to.19.years 0 1 11782258.92 55126036.18 110 26296.50 336969.5 1626210.75 623576060 ▇▁▁▁▁
Population.aged.20.to.29.years 0 1 20872880.04 98860990.50 158 45050.75 609723.5 2758738.50 1210493200 ▇▁▁▁▁
Population.aged.30.to.39.years 0 1 17158704.11 82404600.95 137 36608.25 486290.5 2113149.00 1165207300 ▇▁▁▁▁
Population.aged.40.to.49.years 0 1 13622138.99 66008221.21 119 27440.25 364712.5 1556334.00 976407200 ▇▁▁▁▁
Population.aged.50.to.59.years 0 1 10177069.11 49288480.77 95 19649.75 264781.5 1203386.00 851356900 ▇▁▁▁▁
Population.aged.60.to.69.years 0 1 6801756.84 32712918.99 64 12603.00 168417.5 845242.75 598067140 ▇▁▁▁▁
Population.aged.70.to.79.years 0 1 3618710.03 17491538.61 31 6221.00 81824.0 436710.00 330491170 ▇▁▁▁▁
Population.aged.80.to.89.years 0 1 1195799.30 6238308.33 6 1818.75 20269.5 133380.50 131835590 ▇▁▁▁▁
Population.aged.90.to.99.years 0 1 142784.38 853350.39 0 154.75 1468.5 12499.00 22223974 ▇▁▁▁▁
Population.older.than.100.years 0 1 3107.72 20951.57 0 0.00 13.0 163.00 593166 ▇▁▁▁▁

Một số thông tin cơ bản của bộ dữ liệu:

  • Là 1 data frame

  • Có 18288 quan sát và 24 biến

  • Tên các biến lần lượt là:

    • Country name: Tên nướcnước
    • Year: Năm lấy số liệu
    • Population: Tổng dân số
    • Population of children under the age of 1: Dân số trẻ em dưới 1 tuổi
    • Population of children under the age of 5: Dân số trẻ em dưới 5 tuổi
    • Population of children under the age of 15: Dân số trẻ em dưới 15 tuổi
    • Population under the age of 25: Dân số dưới 25 tuổi
    • Population aged 15 to 64 years: Dân số từ 15 đến 64 tuổi
    • Population older than 15 years: Dân số lớn hơn 15 tuổi
    • Population older than 18 years: Dân số lớn hơn 18 tuổi
    • Population at age 1: Dân số tại độ tuổi 1
    • Population aged 1 to 4 years: Dân số từ 1 đến 4 tuổi
    • Population aged 5 to 9 years: Dân số từ 5 đến 9 tuổi
    • Population aged 10 to 14 years: Dân số từ 10 đến 14 tuổi
    • Population aged 15 to 19 years: Dân số từ 15 đến 19 tuổi
    • Population aged 20 to 29 years: Dân số từ 20 đến 29 tuổi
    • Population aged 30 to 39 years: Dân số từ 30 đến 39 tuổi
    • Population aged 40 to 49 years: Dân số từ 40 đến 49 tuổi
    • Population aged 50 to 59 years: Dân số từ 50 đến 59 tuổi
    • Population aged 60 to 69 years: Dân số từ 60 đến 69 tuổi
    • Population aged 70 to 79 years: Dân số từ 70 đến 79 tuổi
    • Population aged 80 to 89 years: Dân số từ 80 đến 89 tuổi
    • Population aged 90 to 99 years: Dân số từ 90 đến 99 tuổi
    • Population older than 100 years: Dân số lớn hơn 100 tuổi

2. Chuẩn bị:

Để đánh giá tình hình sinh tử, tuổi thọ, khả năng phát triển dân số và nguồn lao động của Việt Nam và các nước lớn như Nga, Trung Quốc, Nhật Bản, Đức từ năm 2018 đến năm 2021, chúng ta cần phân tích cơ cấu dân số theo độ tuổi của các quốc gia này. Cụ thể, chúng ta chỉ cần lọc ra dữ liệu về dân số và độ tuổi của 5 quốc gia trên. Trong đó, độ tuổi sẽ được chia thành 3 nhóm:

  • Nhóm dưới tuổi lao động: từ 0 đến 14 tuổi
  • Nhóm tuổi lao động: từ 15 đến 59 tuổi (hoặc đến 64 tuổi)
  • Nhóm trên tuổi lao động: từ 60 tuổi (hoặc 65 tuổi) trở lên

Đối với bộ dữ liệu này, nhóm trên tuổi lao động sẽ được lấy từ 60 đến 89 tuổi

Sau khi đã xác định nội dung cần phân tích, ta tiến hành lọc dữ liệu:

  • Sử dụng lệnh filter để lọc dữ liệu của các nước Việt Nam, Nga, Trung Quốc, Nhật Bản, Đức từ năm 2018-2021

=> Kết quả thu được yc1.120 quan sát24 biến

library(dplyr) # gọi package dplyr để thực hiện toán tử %>%
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(DT) # gọi package DT để thực hiện lệnh datatable
yc1.1 <- yc1 %>% filter(Year %in% c('2018','2019','2020','2021') & Country.name %in% c('Vietnam','Russia','China','Japan','Germany')) 
datatable(yc1.1) # rút gọn bảng để nhìn cho thuận mắt hơn
  • Sử dụng lệnh select để chọn những cột Tên quốc gia, Năm, Tổng dân số, Dân số trẻ em dưới 15 tuổi, Dân số từ 15 đến 64 tuổi, Dân số từ 60 đến 69 tuổi, Dân số từ 70 đến 79 tuổi, Dân số từ 80 đến 89 tuổi

=> Kết quả thu được yc1.220 quan sát10 biến

yc1.2 <- yc1.1 %>% select ('Country.name','Year','Population','Population.of.children.under.the.age.of.15','Population.aged.15.to.64.years','Population.aged.60.to.69.years','Population.aged.70.to.79.years','Population.aged.80.to.89.years')
datatable(yc1.2) # rút gọn bảng để nhìn cho thuận mắt hơn
  • Vì tên của các biến khá dài, ta sẽ đặt lại tên cho các biến ấy bằng lệnh names để dễ dàng thao tác hơn
names(yc1.2) <- c('C','Y','P','U15','15-64','60-69','70-79','80-89')

3. Mã hóa dữ liệu

Để có thể phân tích các dữ liệu về dân số một cách thuận tiện hơn, chúng ta sử dụng các lệnh để mã hóa dữ liệu giúp chuyển đổi từ dữ liệu dạng này sang một dạng mới.

  • Cột biến mới có tên SL (sử dụng lệnh case_when): cho biết nếu dân số của 5 nước trên ít hơn 50000000 thì cho ra kết quả là Ít dân, nếu dân số trong khoảng từ 50000000 đến 100000000 thì cho ra kết quả là Vừa, nếu dân số lớn hơn 100000000 thì cho ra kết quả là Đông dân

=> Như vậy, cho thấy dân số qua 4 năm của Trung Quốc, Nhật, Nga luôn đông dân, còn Việt Nam và Đức thì vừa

  • Cột biến mới có tên Phanloai (sử dụng lệnh ifelse): cho biết nếu dân số của 5 nước trong độ tuổi từ 15-64 lớn hơn 70000000 thì cho ra kết quả là Có độ tuổi LĐ cao và ngược lại sẽ cho ra kết quả Có độ tuổi LĐ thấp

=> Như vậy, cho thấy Trung Quốc, Nhật Bản, Nga có lực lượng lao động dồi dào, còn Việt Nam và Đức thì vẫn còn thấp hơn so với 3 nước kia

yc1.2$SL <- case_when(yc1.2$P < 50000000 ~ 'Ít dân', yc1.2$P >= 50000000  & yc1.2$P <= 100000000 ~ 'Vừa', yc1.2$P >100000000 ~ 'Đông dân')
yc1.2$Phanloai <- ifelse(yc1.2$'15-64' > 70000000,'Có độ tuổi LĐ cao','Có độ tuổi LĐ thấp')
datatable(yc1.2) 

4. Lập bảng tần số

Bảng tần số là một bảng biểu được sử dụng để tóm tắt dữ liệu thống kê một cách trực quan và dễ hiểu. Nó có thể giúp chúng ta hiểu được các đặc điểm chính của dữ liệu, chẳng hạn như giá trị trung bình, giá trị trung vị và độ lệch chuẩn.

  • Bảng thống kê nhiều biến: với câu lệnh group_by cho phép lập bảng với nhiều biến cùng lúc kết hợp cùng câu lệnh summarise(n= n() cho ra số n tần suất của dữ liệu và .groups = ‘drop’ giúp chia nhóm dữ liệu
library(dbplyr) # gọi package dplyr để thực hiện toán tử %>%
## 
## Attaching package: 'dbplyr'
## The following objects are masked from 'package:dplyr':
## 
##     ident, sql
ts <- yc1.2 %>% group_by(Y, C, SL) %>% summarise(n= n(), .groups = 'drop')
table(ts)
## , , SL = Đông dân, n = 1
## 
##       C
## Y      China Germany Japan Russia Vietnam
##   2018     1       0     1      1       0
##   2019     1       0     1      1       0
##   2020     1       0     1      1       0
##   2021     1       0     1      1       0
## 
## , , SL = Vừa, n = 1
## 
##       C
## Y      China Germany Japan Russia Vietnam
##   2018     0       1     0      0       1
##   2019     0       1     0      0       1
##   2020     0       1     0      0       1
##   2021     0       1     0      0       1

=> Như vậy, ta có thể thấy tần suất xuất hiện giá trị đối với dữ liệu Đông dân của Trung Quốc, Nhật Bản, Nga là 1. Tức là từ năm 2018-2021 cả 3 nước trên luôn đông dân. Tương tự đối với dữ liệu Vừa của Việt Nam và Đức

  • Bảng tần số 2 biến: sử dụng lệnh table() để xuất dữ liệu
table(yc1.2$C, yc1.2$Phanloai)
##          
##           Có độ tuổi LĐ cao Có độ tuổi LĐ thấp
##   China                   4                  0
##   Germany                 0                  4
##   Japan                   4                  0
##   Russia                  4                  0
##   Vietnam                 0                  4

=> Như vậy, tần suất mà 3 nước Trung Quốc, Nhật Bản, Nga có độ tuổi lao động cao là 4 năm. Còn tần suất mà 2 nước Việt Nam và Đức có độ tuổi lao động thấp là 4 năm.

5. Tính toán các đặc trưng đo lường

  • Hàm sum() chỉ tổng giá trị của biến
CN <- yc1.2[yc1.2$C == 'China',] # Rút tất cả dữ liệu về nước Trung Quốc từ yc1.2 
sum(CN$'15-64')
## [1] 3960086520

=> Như vậy, tổng dân số trong độ tuổi lao động (15-64) của nước Trung Quốc từ năm 2018-2021 là 3960086520

  • Hàm var() là phương sai cho biết trung bình bình phương độ lệch (dao động, biến đổi) của biến
JP <- yc1.2[yc1.2$C == 'Japan',] # Rút tất cả dữ liệu về nước Nhật Bản từ yc1.2 
var(JP$'70-79')
## [1] 363411340834

=> Như vậy, trong độ tuổi từ 70-79 độ dao động dân số của nước Nhật Bản từ năm 2018-2021 là 363411340834

  • Hàm median() là trung vị của biến
VN <- yc1.2[yc1.2$C == 'Vietnam',] # Rút tất cả dữ liệu về nước Việt Nam từ yc1.2 
mean(VN$'80-89',na.rm = T) #na.rm: bỏ những dữ liệu bị mất đi
## [1] 1350598

=> Như vậy, trong độ tuổi từ 80-89 của nước Việt Nam từ năm 2018-2021 có 50% dân số dưới 1350598 người và 50% dân số trên 1350598 người

6. Tính toán các đặc trưng đo lường theo nhóm

  • Trung bình:

Gán câu lệnh cho tb , sử dụng hàm group_by để nhóm dữ liệu theo cột C, và sau đó dử dụng summarise để tóm tắt thông tin của mỗi nhóm theo độ lớn trung bình của các nhóm.

tb <- yc1.2 %>% group_by(C) %>% summarise(n = n(),mea = mean(U15))
tb
C n mea
China 4 257258485
Germany 4 11395024
Japan 4 15058939
Russia 4 25710297
Vietnam 4 21911891

Cụ thể tính trung bình dân số dưới 15 tuổi của 5 nước trong 4 năm bằng lệnh mean(U15)

C: là tên các nước

n: là số năm, kết quả của mỗi nước là 4, có nghĩa là tổng trung bình được tính trong 4 năm

mea: là tên đặt cho lệnh mean(U15), có nghĩa là trung bình dân số dưới 15 tuổi của 5 nước

=> Như vậy, ví dụ như Việt Nam có trung bình dân số dưới 15 tuổi trong 4 năm là 21911891

  • Trung vị:

Gán câu lệnh cho tv , sử dụng hàm group_by để nhóm dữ liệu theo cột C, và sau đó dử dụng summarise để tóm tắt thông tin của mỗi nhóm theo độ lớn trung bình của các nhóm.

tv <- yc1.2 %>% group_by(Y) %>% summarise(medi = median(U15))
tv
Y medi
2018 21847120
2019 21893514
2020 21932616
2021 21974312

Cụ thể tính trung vị dân số dưới 15 tuổi của cả 5 nước trong 4 năm bằng lệnh median(U15)

Y: là từng năm

medi: là tên đặt cho lệnh median(U15), có nghĩa là trung vị dân số dưới 15 tuổi của cả 5 nước => Như vậy, trong năm 2018 có 50% dân số của cả 5 nước dưới 21847120 người và trên 50% 21847120

Nhiệm vụ 3.2

Mục tiêu nghiên cứu:

  • Xác định vị trí của Việt Nam trên bản đồ kinh tế thế giới. Thông qua việc so sánh tỷ lệ tăng trưởng GDP của Việt Nam với GDP của các nước lớn như Mỹ và Trung Quốc, chúng ta có thể thấy được vị thế của Việt Nam trong nền kinh tế thế giới, từ đó có những đánh giá khách quan về khả năng cạnh tranh của nền kinh tế Việt Nam.

  • Phân tích những yếu tố ảnh hưởng đến sự phát triển kinh tế của Việt Nam, từ đó có những giải pháp phù hợp để thúc đẩy tăng trưởng kinh tế.

  • Đề xuất các giải pháp nhằm nâng cao tỷ lệ tăng trưởng GDP của Việt Nam. Trên cơ sở phân tích những yếu tố ảnh hưởng đến sự phát triển kinh tế của Việt Nam, bài nghiên cứu có thể đề xuất các giải pháp nhằm nâng cao GDP của Việt Nam, góp phần cải thiện đời sống của người dân và đưa Việt Nam trở thành một quốc gia phát triển.

Phương pháp:

Sử dụng các phương pháp thống kê mô tả dữ liệu:

  • Rút trích dữ liệu

  • Mã hóa dữ liệu

  • Lập bảng tần số

  • Tính toán các đặc trưng đo lường

  • Nhận xét kết quả

Bộ dữ liệu:

1. Giới thiệu:

Nhiệm vụ 3.2 tiến hành thao tác để phân tích bộ dữ liệu “growth-rate-of-real-gdp-per-employed-person.csv”, là dataset thống kê về tỷ lệ tăng trưởng của GDP thực tế bình quân trên một lao động tại các nước từ năm 2000-2022

nv2 <- read.csv("F:/Ngôn ngữ lập trình/growth-rate-of-real-gdp-per-employed-person.csv", header = T)

Một số thông tin cơ bản của bộ dữ liệu:

  • Là 1 data frame

  • Có 4646 quan sát và 4 biến

  • Tên các biến lần lượt là:

    • Entity: Quốc gia
    • Code: Mã
    • Year: Năm
    • Annual growth rate of real GDP per employed person (%) - SL_EMP_PCAP: tốc độ tăng trưởng (theo %) của mức sản xuất bình quân trên mỗi lao động trong một năm

2. Chuẩn bị:

  • GDP là tổng sản phẩm quốc nội, đo lường quy mô và tốc độ tăng trưởng kinh tế của một quốc gia. Thu nhập của người lao động là thành phần quan trọng nhất của GDP. GDP và thu nhập của người lao động có mối quan hệ nhân quả với nhau. GDP tăng sẽ dẫn đến thu nhập của người lao động tăng và ngược lại. Điều này có ý nghĩa quan trọng đối với đời sống của người lao động và sự phát triển kinh tế của quốc gia. Chính vì thế, đây là một chỉ số rất quan trọng để đánh giá hiệu quả hoạt động của một nền kinh tế tại mỗi quốc gia. Tăng trưởng năng suất lao động bền vững dẫn đến tăng trưởng kinh tế cao hơn, cải thiện mức sống và tăng khả năng cạnh tranh của nền kinh tế trên thị trường quốc tế.

  • Đối với bộ dữ liệu này, ta sẽ tiến hành phân tích tỷ lệ tăng trưởng GDP thực tại 3 quốc gia là Việt Nam, Mỹ, Trung Quốc. Do đó ta tiến hành lọc dữ liệu, nhưng trước tiên vì tên các biến khá dài, nên ta sẽ đặt lại tên để dễ dàng thao tác hơn sau đó tiến hành lọc

names(nv2) <- c('E','C','Y','GDP')
library(dplyr)
ldl <- nv2 %>% filter(E %in% c('Vietnam','United States','China')) 
datatable(ldl)

3. Mã hóa dữ liệu

ldl$TangTruong <- case_when(ldl$GDP < 3 ~ 'Thấp', ldl$GDP  >= 3  & ldl$GDP <= 7 ~ 'OK', ldl$GDP >7 ~ 'Cao')
ldl$HieuQua <- ifelse(ldl$GDP > 0,'Đạt','Kém')
library(DT)
datatable(ldl)

Bảng thống kê trên cho thấy tỷ lệ GDP bình quân đầu người của Việt Nam đã có những bước phát triển tích cực trong giai đoạn 2000-2022.

Tỷ lệ GDP bình quân đầu người của Việt Nam đã tăng đều đặn trong giai đoạn này. Điều này cho thấy nền kinh tế Việt Nam đang phát triển mạnh mẽ, tạo ra nhiều cơ hội việc làm và thu nhập cho người dân.

Đặc biệt, sau sự kiện khủng hoảng tài chính toàn cầu vào năm 2008, Chính phủ Việt Nam đã có những chính sách kịp thời và hiệu quả giúp ổn định kinh tế, đồng thời thúc đẩy tăng trưởng kinh tế. Nhờ đó, tỷ lệ GDP bình quân đầu người của Việt Nam đã tăng trưởng ổn định và đạt hiệu quả trong giai đoạn này.

Tuy nhiên, năm 2021, đại dịch Covid-19 bùng phát đã gây ra những tác động tiêu cực đến nền kinh tế Việt Nam. Tỷ lệ GDP bình quân đầu người của Việt Nam trong năm 2021 đã giảm so với năm 2020, chỉ đạt 2.34.

Nhìn chung, bảng thống kê trên cho thấy tỷ lệ GDP bình quân đầu người của Việt Nam đang có những chuyển biến tích cực. Tuy nhiên, cần tiếp tục nỗ lực để nâng cao tỷ lệ này, góp phần cải thiện đời sống của người dân và đưa Việt Nam trở thành một quốc gia phát triển.

4. Lập bảng tần số

library(dbplyr)
ts2 <- ldl %>% group_by(E, Y, HieuQua) %>% summarise(n= n(), .groups = 'drop')
table(ts2)
## , , HieuQua = Đạt, n = 1
## 
##                Y
## E               2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
##   China            1    1    1    1    1    1    1    1    1    1    1    1
##   United States    1    1    1    1    1    1    1    1    1    1    1    1
##   Vietnam          1    1    1    1    1    1    1    1    1    1    1    1
##                Y
## E               2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
##   China            1    1    1    1    1    1    1    1    1    1    1
##   United States    1    1    1    1    1    1    1    1    1    1    0
##   Vietnam          1    1    1    1    1    1    1    1    1    1    1
## 
## , , HieuQua = Kém, n = 1
## 
##                Y
## E               2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
##   China            0    0    0    0    0    0    0    0    0    0    0    0
##   United States    0    0    0    0    0    0    0    0    0    0    0    0
##   Vietnam          0    0    0    0    0    0    0    0    0    0    0    0
##                Y
## E               2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
##   China            0    0    0    0    0    0    0    0    0    0    0
##   United States    0    0    0    0    0    0    0    0    0    0    1
##   Vietnam          0    0    0    0    0    0    0    0    0    0    0

Bảng tần số trên cho thấy, tỷ lệ GDP của Việt Nam trong giai đoạn 2000-2022 có xu hướng tăng trưởng ổn định và đạt hiệu quả, không hề kém cạnh các nước lớn như Trung Quốc, Mỹ. Với những kết quả đạt được, Việt Nam đang dần khẳng định vị thế của mình trên bản đồ kinh tế thế giới. Việt Nam đã trở thành một điểm đến hấp dẫn cho các nhà đầu tư nước ngoài, và được nhiều tổ chức quốc tế đánh giá cao về triển vọng phát triển.

5. Tính toán các đặc trưng đo lường

  • Trung bình:
VN2 <- ldl[ldl$C == 'VNM',] 
mean(VN2$GDP,na.rm = T)
## [1] 4.584348

Trung bình tỷ lệ tăng trưởng GDP của Việt Nam từ năm 2000-2022 là 4.584348. Tương đương với tốc độ tăng trưởng trung bình khoảng 7%/năm. Điều này cho thấy nền kinh tế Việt Nam có khả năng tự phục hồi và tăng trưởng nhanh chóng sau những cú sốc kinh tế. Với tốc độ tăng trưởng GDP hiện tại, Việt Nam có thể sớm đạt được mục tiêu trở thành một quốc gia có thu nhập trung bình cao vào năm 2025. Tỷ lệ tăng trưởng GDP cao và ổn định của Việt Nam còn là một yếu tố thu hút các nhà đầu tư nước ngoài. Ngoài ra, Việt Nam còn có nhiều lợi thế cạnh tranh về nguồn nhân lực trẻ, dồi dào và giá rẻ, cũng như môi trường đầu tư kinh doanh ngày càng được cải thiện.

  • Trung vị:
median(VN2$GDP)
## [1] 4.58

Trung vị tỷ lệ tăng trưởng GDP của Việt Nam từ năm 2000-2022 là 4.58. Tức là nước ta có tỷ lệ tăng trưởng GDP dưới 50% tại mức 4.58 và trên 50% tại mức ấy. Chứng tỏ nước ta đang phát triển ổn định, tỷ lệ tăng trưởng GDP ở mức trung bình, không quá cao cũng không quá thấp, cho thấy nền kinh tế Việt Nam đang phát triển một cách bền vững, không bị quá phụ thuộc vào một số yếu tố nhất định.

6. Tính toán các đặc trưng đo lường theo nhóm

  • Trung bình:
tb2 <- ldl %>% group_by(C) %>% summarise(n = n(),mea = mean(GDP))
tb2
C n mea
CHN 23 8.091739
USA 23 1.168696
VNM 23 4.584348

Trung bình tỷ lệ tăng trưởng GDP của Việt Nam là 4.584348, trong khi của Trung Quốc là 8.091739 và của Mỹ là 1.168696. Điều này cho thấy Việt Nam vẫn đang là một nền kinh tế đang phát triển, với tiềm năng tăng trưởng cao.

  • Trung vị:
tv2 <- ldl %>% group_by(C) %>% summarise(medi = median(GDP))
tv2
C medi
CHN 7.79
USA 0.98
VNM 4.58

Qua bảng thống kê trên, trung vị tỷ lệ tăng trưởng GDP của Việt Nam ở mức 4.58 có thể được xem là khá tích cực. Mặc dù nó không đạt được mức tăng trưởng cao như Trung Quốc, nhưng vẫn ổn định và vượt xa so với Mỹ. Điều này có thể cho thấy sự ổn định và sự phát triển đáng kể trong nền kinh tế của Việt Nam. Tuy nhiên, để đạt được sự phát triển bền vững, Việt Nam có thể cần tiếp tục đầu tư vào các nguồn lực và cải thiện môi trường kinh doanh để thu hút đầu tư và tăng cường năng suất lao động.

Nhận xét

Sau khi thực hiện các phương pháp nghiên cứu, có thể nhận thấy rằng tỷ lệ tăng trưởng GDP của Việt Nam đã duy trì ở mức ổn định trong một thời gian dài, điều này cho thấy sự ổn định và sự phát triển bền vững của nền kinh tế. Sự tăng trưởng này không chỉ phản ánh sự gia tăng về sản xuất và dịch vụ mà còn thể hiện sự cải thiện trong cơ sở hạ tầng, chính sách kinh tế và quản lý tài chính. Điều này tạo ra một môi trường thuận lợi cho các nhà đầu tư, cả trong và ngoài nước, và cũng làm tăng niềm tin của người tiêu dùng. Tuy nhiên, để duy trì đà tăng trưởng này và đảm bảo sự phát triển bền vững, cần phải tiếp tục thúc đẩy cải cách kinh tế, đầu tư vào giáo dục và đào tạo nhân lực, cùng với việc thúc đẩy sự đổi mới và công nghệ hóa trong các lĩnh vực chính của nền kinh tế.

LS0tDQp0aXRsZTogIk5WMyINCmF1dGhvcjogIm50bnNhbmciDQpkYXRlOiAiMjAyNC0wMS0yNCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGRmX3ByaW50OiBrYWJsZQ0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCi0tLQ0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCmByIGZvcm1hdChTeXMudGltZSgpLCAnJUg6JU06JVMsICVkIC0gJW0gLSAlWScpYA0KDQojIE5oaeG7h20gduG7pSAzLjENCg0KIyMgMS4gR2nhu5tpIHRoaeG7h3U6DQoNCi0gTmhp4buHbSB24bulIDMuMSB0aeG6v24gaMOgbmggdGhhbyB0w6FjIMSR4buDIHBow6JuIHTDrWNoIGLhu5kgZOG7ryBsaeG7h3Ug4oCccG9wdWxhdGlvbi1hbmQtZGVtb2dyYXBoeS5jc3bigJ0sIGzDoCBkYXRhc2V0IHRo4buRbmcga8OqIHbhu4EgZMOibiBz4buRIHbDoCBuaMOibiBraOG6qXUgaOG7jWMgY+G7p2EgaMahbiAxMDAgcXXhu5FjIGdpYSBraMOhYyBuaGF1IHThuqFpIGPDoWMgxJHhu5kgdHXhu5VpIHThu6sgbsSDbSAxOTUwIMSR4bq/biBuxINtIDIwMjENCg0KLSBUYSB0aOG7sWMgaGnhu4duIGPDoWMgbOG7h25oIHNhdToNCiAgDQogIC0gKioqcmVhZC5jc3YoKSoqKjogxJHhu41jIGThu68gbGnhu4d1IHThu6sgZmlsZSBjc3YNCiAgDQogIC0gKioqc2tpbSgpKioqOiBjaG8gYmnhur90IHRow7RuZyB0aW4ga2jDoWMgduG7gSBi4buZIGThu68gbGnhu4d1DQogICAgLSBza2ltX3ZhcmlhYmxlOiB0w6puIGJp4bq/bg0KICAgIC0gbl9taXNzaW5nOiBz4buRIGThu68gbGnhu4d1IHRy4buRbmcNCiAgICAtIGNvbXBsZXRlX3JhdGU6IHThu4kgbOG7hyBiaeG6v24gY8OzIGThu68gbGnhu4d1DQogICAgLSBtZWFuOiBnacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGJp4bq/bg0KICAgIC0gc2Q6IMSR4buZIGzhu4djaCBjaHXhuqluIGPhu6dhIGJp4bq/bg0KICAgIC0gcDA6IGdpw6EgdHLhu4sgbmjhu48gbmjhuqV0DQogICAgLSBwMjU6IHBow6JuIHbhu4sgdGjhu6kgbmjhuqV0DQogICAgLSBwNTA6IHBow6JuIHbhu4sgdGjhu6kgaGFpICh0cnVuZyB24buLKQ0KICAgIC0gcDc1OiBwaMOibiB24buLIHRo4bupIGJhDQogICAgLSBwMTAwOiBnacOhIHRy4buLIGzhu5tuIG5o4bqldCANCiAgICAtIGhpczogYmnhu4N1IMSR4buTIGhpc3RvZ3JhbQ0KDQpgYGB7cn0NCnljMSA8LSByZWFkLmNzdigiRjovTmfDtG4gbmfhu68gbOG6rXAgdHLDrG5oL3BvcHVsYXRpb24tYW5kLWRlbW9ncmFwaHkuY3N2IiwgaGVhZGVyID0gVCkgDQpsaWJyYXJ5KHNraW1yKQ0Kc2tpbSh5YzEpIA0KYGBgDQpN4buZdCBz4buRIHRow7RuZyB0aW4gY8ahIGLhuqNuIGPhu6dhIGLhu5kgZOG7ryBsaeG7h3U6DQoNCi0gTMOgIDEgZGF0YSBmcmFtZQ0KDQotIEPDsyAxODI4OCBxdWFuIHPDoXQgdsOgIDI0IGJp4bq/bg0KDQotIFTDqm4gY8OhYyBiaeG6v24gbOG6p24gbMaw4bujdCBsw6A6DQogIA0KICAtIENvdW50cnkgbmFtZTogVMOqbiBuxrDhu5tjbsaw4bubYw0KICAtIFllYXI6IE7Eg20gbOG6pXkgc+G7kSBsaeG7h3UNCiAgLSBQb3B1bGF0aW9uOiBU4buVbmcgZMOibiBz4buRIA0KICAtIFBvcHVsYXRpb24gb2YgY2hpbGRyZW4gdW5kZXIgdGhlIGFnZSBvZiAxOiBEw6JuIHPhu5EgdHLhursgZW0gZMaw4bubaSAxIHR14buVaQ0KICAtIFBvcHVsYXRpb24gb2YgY2hpbGRyZW4gdW5kZXIgdGhlIGFnZSBvZiA1OiBEw6JuIHPhu5EgdHLhursgZW0gZMaw4bubaSA1IHR14buVaQ0KICAtIFBvcHVsYXRpb24gb2YgY2hpbGRyZW4gdW5kZXIgdGhlIGFnZSBvZiAxNTogRMOibiBz4buRIHRy4bq7IGVtIGTGsOG7m2kgMTUgdHXhu5VpDQogIC0gUG9wdWxhdGlvbiB1bmRlciB0aGUgYWdlIG9mIDI1OiBEw6JuIHPhu5EgZMaw4bubaSAyNSB0deG7lWkNCiAgLSBQb3B1bGF0aW9uIGFnZWQgMTUgdG8gNjQgeWVhcnM6IETDom4gc+G7kSB04burIDE1IMSR4bq/biA2NCB0deG7lWkNCiAgLSBQb3B1bGF0aW9uIG9sZGVyIHRoYW4gMTUgeWVhcnM6IETDom4gc+G7kSBs4bubbiBoxqFuIDE1IHR14buVaQ0KICAtIFBvcHVsYXRpb24gb2xkZXIgdGhhbiAxOCB5ZWFyczogRMOibiBz4buRIGzhu5tuIGjGoW4gMTggdHXhu5VpDQogIC0gUG9wdWxhdGlvbiBhdCBhZ2UgMTogRMOibiBz4buRIHThuqFpIMSR4buZIHR14buVaSAxDQogIC0gUG9wdWxhdGlvbiBhZ2VkIDEgdG8gNCB5ZWFyczogRMOibiBz4buRIHThu6sgMSDEkeG6v24gNCB0deG7lWkNCiAgLSBQb3B1bGF0aW9uIGFnZWQgNSB0byA5IHllYXJzOiBEw6JuIHPhu5EgdOG7qyA1IMSR4bq/biA5IHR14buVaQ0KICAtIFBvcHVsYXRpb24gYWdlZCAxMCB0byAxNCB5ZWFyczogRMOibiBz4buRIHThu6sgMTAgxJHhur9uIDE0IHR14buVaQ0KICAtIFBvcHVsYXRpb24gYWdlZCAxNSB0byAxOSB5ZWFyczogRMOibiBz4buRIHThu6sgMTUgxJHhur9uIDE5IHR14buVaQ0KICAtIFBvcHVsYXRpb24gYWdlZCAyMCB0byAyOSB5ZWFyczogRMOibiBz4buRIHThu6sgMjAgxJHhur9uIDI5IHR14buVaQ0KICAtIFBvcHVsYXRpb24gYWdlZCAzMCB0byAzOSB5ZWFyczogRMOibiBz4buRIHThu6sgMzAgxJHhur9uIDM5IHR14buVaSANCiAgLSBQb3B1bGF0aW9uIGFnZWQgNDAgdG8gNDkgeWVhcnM6IETDom4gc+G7kSB04burIDQwIMSR4bq/biA0OSB0deG7lWkgDQogIC0gUG9wdWxhdGlvbiBhZ2VkIDUwIHRvIDU5IHllYXJzOiBEw6JuIHPhu5EgdOG7qyA1MCDEkeG6v24gNTkgdHXhu5VpIA0KICAtIFBvcHVsYXRpb24gYWdlZCA2MCB0byA2OSB5ZWFyczogRMOibiBz4buRIHThu6sgNjAgxJHhur9uIDY5IHR14buVaSANCiAgLSBQb3B1bGF0aW9uIGFnZWQgNzAgdG8gNzkgeWVhcnM6IETDom4gc+G7kSB04burIDcwIMSR4bq/biA3OSB0deG7lWkgDQogIC0gUG9wdWxhdGlvbiBhZ2VkIDgwIHRvIDg5IHllYXJzOiBEw6JuIHPhu5EgdOG7qyA4MCDEkeG6v24gODkgdHXhu5VpIA0KICAtIFBvcHVsYXRpb24gYWdlZCA5MCB0byA5OSB5ZWFyczogRMOibiBz4buRIHThu6sgOTAgxJHhur9uIDk5IHR14buVaSANCiAgLSBQb3B1bGF0aW9uIG9sZGVyIHRoYW4gMTAwIHllYXJzOiBEw6JuIHPhu5EgbOG7m24gaMahbiAxMDAgdHXhu5VpIA0KICANCiMjIDIuIENodeG6qW4gYuG7izogDQoNCsSQ4buDIMSRw6FuaCBnacOhIHTDrG5oIGjDrG5oIHNpbmggdOG7rSwgdHXhu5VpIHRo4buNLCBraOG6oyBuxINuZyBwaMOhdCB0cmnhu4NuIGTDom4gc+G7kSB2w6Agbmd14buTbiBsYW8gxJHhu5luZyBj4bunYSBWaeG7h3QgTmFtIHbDoCBjw6FjIG7GsOG7m2MgbOG7m24gbmjGsCBOZ2EsIFRydW5nIFF14buRYywgTmjhuq10IELhuqNuLCDEkOG7qWMgdOG7qyBuxINtIDIwMTggxJHhur9uIG7Eg20gMjAyMSwgY2jDum5nIHRhIGPhuqduIHBow6JuIHTDrWNoIGPGoSBj4bqldSBkw6JuIHPhu5EgdGhlbyDEkeG7mSB0deG7lWkgY+G7p2EgY8OhYyBxdeG7kWMgZ2lhIG7DoHkuIEPhu6UgdGjhu4MsIGNow7puZyB0YSBjaOG7iSBj4bqnbiBs4buNYyByYSBk4buvIGxp4buHdSB24buBIGTDom4gc+G7kSB2w6AgxJHhu5kgdHXhu5VpIGPhu6dhIDUgcXXhu5FjIGdpYSB0csOqbi4gVHJvbmcgxJHDsywgxJHhu5kgdHXhu5VpIHPhur0gxJHGsOG7o2MgY2hpYSB0aMOgbmggMyBuaMOzbToNCg0KLSBOaMOzbSBkxrDhu5tpIHR14buVaSBsYW8gxJHhu5luZzogdOG7qyAwIMSR4bq/biAxNCB0deG7lWkNCi0gTmjDs20gdHXhu5VpIGxhbyDEkeG7mW5nOiB04burIDE1IMSR4bq/biA1OSB0deG7lWkgKGhv4bq3YyDEkeG6v24gNjQgdHXhu5VpKQ0KLSBOaMOzbSB0csOqbiB0deG7lWkgbGFvIMSR4buZbmc6IHThu6sgNjAgdHXhu5VpIChob+G6t2MgNjUgdHXhu5VpKSB0cuG7nyBsw6puDQogDQrEkOG7kWkgduG7m2kgYuG7mSBk4buvIGxp4buHdSBuw6B5LCBuaMOzbSB0csOqbiB0deG7lWkgbGFvIMSR4buZbmcgc+G6vSDEkcaw4bujYyBs4bqleSB04burIDYwIMSR4bq/biA4OSB0deG7lWkNCg0KU2F1IGtoaSDEkcOjIHjDoWMgxJHhu4tuaCBu4buZaSBkdW5nIGPhuqduIHBow6JuIHTDrWNoLCB0YSB0aeG6v24gaMOgbmggbOG7jWMgZOG7ryBsaeG7h3U6DQoNCi0gU+G7rSBk4bulbmcgbOG7h25oICoqKmZpbHRlcioqKiDEkeG7gyBs4buNYyBk4buvIGxp4buHdSBj4bunYSBjw6FjIG7GsOG7m2MgVmnhu4d0IE5hbSwgTmdhLCBUcnVuZyBRdeG7kWMsIE5o4bqtdCBC4bqjbiwgxJDhu6ljIHThu6sgbsSDbSAyMDE4LTIwMjENCg0KPT4gS+G6v3QgcXXhuqMgdGh1IMSRxrDhu6NjICoqeWMxLjEqKiBjw7MgKioyMCBxdWFuIHPDoXQqKiB2w6AgKioyNCBiaeG6v24qKiANCmBgYHtyfQ0KbGlicmFyeShkcGx5cikgIyBn4buNaSBwYWNrYWdlIGRwbHlyIMSR4buDIHRo4buxYyBoaeG7h24gdG/DoW4gdOG7rSAlPiUNCmxpYnJhcnkoRFQpICMgZ+G7jWkgcGFja2FnZSBEVCDEkeG7gyB0aOG7sWMgaGnhu4duIGzhu4duaCBkYXRhdGFibGUNCnljMS4xIDwtIHljMSAlPiUgZmlsdGVyKFllYXIgJWluJSBjKCcyMDE4JywnMjAxOScsJzIwMjAnLCcyMDIxJykgJiBDb3VudHJ5Lm5hbWUgJWluJSBjKCdWaWV0bmFtJywnUnVzc2lhJywnQ2hpbmEnLCdKYXBhbicsJ0dlcm1hbnknKSkgDQpkYXRhdGFibGUoeWMxLjEpICMgcsO6dCBn4buNbiBi4bqjbmcgxJHhu4MgbmjDrG4gY2hvIHRodeG6rW4gbeG6r3QgaMahbg0KYGBgDQoNCi0gU+G7rSBk4bulbmcgbOG7h25oICoqKnNlbGVjdCoqKiDEkeG7gyBjaOG7jW4gbmjhu69uZyBj4buZdCBUw6puIHF14buRYyBnaWEsIE7Eg20sIFThu5VuZyBkw6JuIHPhu5EsIETDom4gc+G7kSB0cuG6uyBlbSBkxrDhu5tpIDE1IHR14buVaSwgRMOibiBz4buRIHThu6sgMTUgxJHhur9uIDY0IHR14buVaSwgRMOibiBz4buRIHThu6sgNjAgxJHhur9uIDY5IHR14buVaSwgRMOibiBz4buRIHThu6sgNzAgxJHhur9uIDc5IHR14buVaSwgRMOibiBz4buRIHThu6sgODAgxJHhur9uIDg5IHR14buVaQ0KDQo9PiBL4bq/dCBxdeG6oyB0aHUgxJHGsOG7o2MgKip5YzEuMioqIGPDsyAqKjIwIHF1YW4gc8OhdCoqIHbDoCAqKjEwIGJp4bq/bioqIA0KYGBge3J9DQp5YzEuMiA8LSB5YzEuMSAlPiUgc2VsZWN0ICgnQ291bnRyeS5uYW1lJywnWWVhcicsJ1BvcHVsYXRpb24nLCdQb3B1bGF0aW9uLm9mLmNoaWxkcmVuLnVuZGVyLnRoZS5hZ2Uub2YuMTUnLCdQb3B1bGF0aW9uLmFnZWQuMTUudG8uNjQueWVhcnMnLCdQb3B1bGF0aW9uLmFnZWQuNjAudG8uNjkueWVhcnMnLCdQb3B1bGF0aW9uLmFnZWQuNzAudG8uNzkueWVhcnMnLCdQb3B1bGF0aW9uLmFnZWQuODAudG8uODkueWVhcnMnKQ0KZGF0YXRhYmxlKHljMS4yKSAjIHLDunQgZ+G7jW4gYuG6o25nIMSR4buDIG5ow6xuIGNobyB0aHXhuq1uIG3huq90IGjGoW4NCmBgYA0KDQotIFbDrCB0w6puIGPhu6dhIGPDoWMgYmnhur9uIGtow6EgZMOgaSwgdGEgc+G6vSDEkeG6t3QgbOG6oWkgdMOqbiBjaG8gY8OhYyBiaeG6v24g4bqleSBi4bqxbmcgbOG7h25oICoqKm5hbWVzKioqIMSR4buDIGThu4UgZMOgbmcgdGhhbyB0w6FjIGjGoW4gDQpgYGB7cn0NCm5hbWVzKHljMS4yKSA8LSBjKCdDJywnWScsJ1AnLCdVMTUnLCcxNS02NCcsJzYwLTY5JywnNzAtNzknLCc4MC04OScpDQpgYGANCg0KIyMgMy4gTcOjIGjDs2EgZOG7ryBsaeG7h3UNCg0KxJDhu4MgY8OzIHRo4buDIHBow6JuIHTDrWNoIGPDoWMgZOG7ryBsaeG7h3UgduG7gSBkw6JuIHPhu5EgbeG7mXQgY8OhY2ggdGh14bqtbiB0aeG7h24gaMahbiwgY2jDum5nIHRhIHPhu60gZOG7pW5nIGPDoWMgbOG7h25oIMSR4buDIG3DoyBow7NhIGThu68gbGnhu4d1IGdpw7pwIGNodXnhu4NuIMSR4buVaSB04burIGThu68gbGnhu4d1IGThuqFuZyBuw6B5IHNhbmcgbeG7mXQgZOG6oW5nIG3hu5tpLg0KDQotIEPhu5l0IGJp4bq/biBt4bubaSBjw7MgdMOqbiBTTCAoc+G7rSBk4bulbmcgbOG7h25oICoqKmNhc2Vfd2hlbioqKik6IGNobyBiaeG6v3QgbuG6v3UgZMOibiBz4buRIGPhu6dhIDUgbsaw4bubYyB0csOqbiDDrXQgaMahbiAqKjUwMDAwMDAwKiogdGjDrCBjaG8gcmEga+G6v3QgcXXhuqMgbMOgICoqw410IGTDom4qKiwgbuG6v3UgZMOibiBz4buRIHRyb25nIGtob+G6o25nIHThu6sgKio1MDAwMDAwMCoqIMSR4bq/biAqKjEwMDAwMDAwMCoqIHRow6wgY2hvIHJhIGvhur90IHF14bqjIGzDoCAqKlbhu6thKiosIG7hur91IGTDom4gc+G7kSBs4bubbiBoxqFuICoqMTAwMDAwMDAwKiogdGjDrCBjaG8gcmEga+G6v3QgcXXhuqMgbMOgICoqxJDDtG5nIGTDom4qKg0KDQo9PiBOaMawIHbhuq15LCBjaG8gdGjhuqV5IGTDom4gc+G7kSBxdWEgNCBuxINtIGPhu6dhIFRydW5nIFF14buRYywgTmjhuq10LCBOZ2EgbHXDtG4gxJHDtG5nIGTDom4sIGPDsm4gVmnhu4d0IE5hbSB2w6AgxJDhu6ljIHRow6wgduG7q2ENCg0KLSBD4buZdCBiaeG6v24gbeG7m2kgY8OzIHTDqm4gUGhhbmxvYWkgKHPhu60gZOG7pW5nIGzhu4duaCAqKippZmVsc2UqKiopOiBjaG8gYmnhur90IG7hur91IGTDom4gc+G7kSBj4bunYSA1IG7GsOG7m2MgdHJvbmcgxJHhu5kgdHXhu5VpIHThu6sgKioxNS02NCoqIGzhu5tuIGjGoW4gKio3MDAwMDAwMCoqIHRow6wgY2hvIHJhIGvhur90IHF14bqjIGzDoCAqKkPDsyDEkeG7mSB0deG7lWkgTMSQIGNhbyoqIHbDoCBuZ8aw4bujYyBs4bqhaSBz4bq9IGNobyByYSBr4bq/dCBxdeG6oyAqKkPDsyDEkeG7mSB0deG7lWkgTMSQIHRo4bqlcCoqDQoNCj0+IE5oxrAgduG6rXksIGNobyB0aOG6pXkgVHJ1bmcgUXXhu5FjLCBOaOG6rXQgQuG6o24sIE5nYSBjw7MgbOG7sWMgbMaw4bujbmcgbGFvIMSR4buZbmcgZOG7k2kgZMOgbywgY8OybiBWaeG7h3QgTmFtIHbDoCDEkOG7qWMgdGjDrCB24bqrbiBjw7JuIHRo4bqlcCBoxqFuIHNvIHbhu5tpIDMgbsaw4bubYyBraWEgDQoNCmBgYHtyfQ0KeWMxLjIkU0wgPC0gY2FzZV93aGVuKHljMS4yJFAgPCA1MDAwMDAwMCB+ICfDjXQgZMOibicsIHljMS4yJFAgPj0gNTAwMDAwMDAgICYgeWMxLjIkUCA8PSAxMDAwMDAwMDAgfiAnVuG7q2EnLCB5YzEuMiRQID4xMDAwMDAwMDAgfiAnxJDDtG5nIGTDom4nKQ0KeWMxLjIkUGhhbmxvYWkgPC0gaWZlbHNlKHljMS4yJCcxNS02NCcgPiA3MDAwMDAwMCwnQ8OzIMSR4buZIHR14buVaSBMxJAgY2FvJywnQ8OzIMSR4buZIHR14buVaSBMxJAgdGjhuqVwJykNCmRhdGF0YWJsZSh5YzEuMikgDQpgYGANCg0KIyMgNC4gTOG6rXAgYuG6o25nIHThuqduIHPhu5ENCg0KQuG6o25nIHThuqduIHPhu5EgbMOgIG3hu5l0IGLhuqNuZyBiaeG7g3UgxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgdMOzbSB04bqvdCBk4buvIGxp4buHdSB0aOG7kW5nIGvDqiBt4buZdCBjw6FjaCB0cuG7sWMgcXVhbiB2w6AgZOG7hSBoaeG7g3UuIE7DsyBjw7MgdGjhu4MgZ2nDunAgY2jDum5nIHRhIGhp4buDdSDEkcaw4bujYyBjw6FjIMSR4bq3YyDEkWnhu4NtIGNow61uaCBj4bunYSBk4buvIGxp4buHdSwgY2jhurNuZyBo4bqhbiBuaMawIGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmgsIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyB2w6AgxJHhu5kgbOG7h2NoIGNodeG6qW4uDQoNCi0gKipC4bqjbmcgdGjhu5FuZyBrw6ogbmhp4buBdSBiaeG6v246KiogduG7m2kgY8OidSBs4buHbmggKipncm91cF9ieSoqIGNobyBwaMOpcCBs4bqtcCBi4bqjbmcgduG7m2kgbmhp4buBdSBiaeG6v24gY8O5bmcgbMO6YyBr4bq/dCBo4bujcCBjw7luZyBjw6J1IGzhu4duaCAqKnN1bW1hcmlzZShuPSBuKCkqKiBjaG8gcmEgc+G7kSBuIHThuqduIHN14bqldCBj4bunYSBk4buvIGxp4buHdSB2w6AgLmdyb3VwcyA9IOKAmGRyb3DigJkgZ2nDunAgY2hpYSBuaMOzbSBk4buvIGxp4buHdQ0KDQpgYGB7cn0NCmxpYnJhcnkoZGJwbHlyKSAjIGfhu41pIHBhY2thZ2UgZHBseXIgxJHhu4MgdGjhu7FjIGhp4buHbiB0b8OhbiB04butICU+JQ0KdHMgPC0geWMxLjIgJT4lIGdyb3VwX2J5KFksIEMsIFNMKSAlPiUgc3VtbWFyaXNlKG49IG4oKSwgLmdyb3VwcyA9ICdkcm9wJykNCnRhYmxlKHRzKQ0KYGBgDQo9PiBOaMawIHbhuq15LCB0YSBjw7MgdGjhu4MgdGjhuqV5IHThuqduIHN14bqldCB4deG6pXQgaGnhu4duIGdpw6EgdHLhu4sgxJHhu5FpIHbhu5tpIGThu68gbGnhu4d1ICoqxJDDtG5nIGTDom4qKiBj4bunYSBUcnVuZyBRdeG7kWMsIE5o4bqtdCBC4bqjbiwgTmdhIGzDoCAxLiBU4bupYyBsw6AgdOG7qyBuxINtIDIwMTgtMjAyMSBj4bqjIDMgbsaw4bubYyB0csOqbiBsdcO0biDEkcO0bmcgZMOibi4gVMawxqFuZyB04buxIMSR4buRaSB24bubaSBk4buvIGxp4buHdSAqKlbhu6thKiogY+G7p2EgVmnhu4d0IE5hbSB2w6AgxJDhu6ljDQoNCi0gKipC4bqjbmcgdOG6p24gc+G7kSAyIGJp4bq/bjoqKiBz4butIGThu6VuZyBs4buHbmggKioqdGFibGUoKSoqKiDEkeG7gyB4deG6pXQgZOG7ryBsaeG7h3UgDQoNCmBgYHtyfQ0KdGFibGUoeWMxLjIkQywgeWMxLjIkUGhhbmxvYWkpDQpgYGANCj0+IE5oxrAgduG6rXksIHThuqduIHN14bqldCBtw6AgMyBuxrDhu5tjIFRydW5nIFF14buRYywgTmjhuq10IELhuqNuLCBOZ2EgY8OzIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyBjYW8gbMOgIDQgbsSDbS4gQ8OybiB04bqnbiBzdeG6pXQgbcOgIDIgbsaw4bubYyBWaeG7h3QgTmFtIHbDoCDEkOG7qWMgY8OzIMSR4buZIHR14buVaSBsYW8gxJHhu5luZyB0aOG6pXAgbMOgIDQgbsSDbS4NCg0KIyMgNS4gVMOtbmggdG/DoW4gY8OhYyDEkeG6t2MgdHLGsG5nIMSRbyBsxrDhu51uZw0KDQotIEjDoG0gKioqc3VtKCkqKiogY2jhu4kgdOG7lW5nIGdpw6EgdHLhu4sgY+G7p2EgYmnhur9uDQogIA0KYGBge3J9DQpDTiA8LSB5YzEuMlt5YzEuMiRDID09ICdDaGluYScsXSAjIFLDunQgdOG6pXQgY+G6oyBk4buvIGxp4buHdSB24buBIG7GsOG7m2MgVHJ1bmcgUXXhu5FjIHThu6sgeWMxLjIgDQpzdW0oQ04kJzE1LTY0JykNCmBgYA0KPT4gTmjGsCB24bqteSwgdOG7lW5nIGTDom4gc+G7kSB0cm9uZyDEkeG7mSB0deG7lWkgbGFvIMSR4buZbmcgKDE1LTY0KSBj4bunYSBuxrDhu5tjIFRydW5nIFF14buRYyB04burIG7Eg20gMjAxOC0yMDIxIGzDoCAqKjM5NjAwODY1MjAqKiANCg0KLSBIw6BtICoqKnZhcigpKioqIGzDoCBwaMawxqFuZyBzYWkgY2hvIGJp4bq/dCB0cnVuZyBiw6xuaCBiw6xuaCBwaMawxqFuZyDEkeG7mSBs4buHY2ggKGRhbyDEkeG7mW5nLCBiaeG6v24gxJHhu5VpKSBj4bunYSBiaeG6v24gDQpgYGB7cn0NCkpQIDwtIHljMS4yW3ljMS4yJEMgPT0gJ0phcGFuJyxdICMgUsO6dCB04bqldCBj4bqjIGThu68gbGnhu4d1IHbhu4Egbsaw4bubYyBOaOG6rXQgQuG6o24gdOG7qyB5YzEuMiANCnZhcihKUCQnNzAtNzknKQ0KYGBgDQo9PiBOaMawIHbhuq15LCB0cm9uZyDEkeG7mSB0deG7lWkgdOG7qyA3MC03OSDEkeG7mSBkYW8gxJHhu5luZyBkw6JuIHPhu5EgY+G7p2Egbsaw4bubYyBOaOG6rXQgQuG6o24gdOG7qyBuxINtIDIwMTgtMjAyMSBsw6AgKiozNjM0MTEzNDA4MzQqKg0KDQotICoqKkjDoG0gbWVkaWFuKCkqKiogbMOgIHRydW5nIHbhu4sgY+G7p2EgYmnhur9uIA0KYGBge3J9DQpWTiA8LSB5YzEuMlt5YzEuMiRDID09ICdWaWV0bmFtJyxdICMgUsO6dCB04bqldCBj4bqjIGThu68gbGnhu4d1IHbhu4Egbsaw4bubYyBWaeG7h3QgTmFtIHThu6sgeWMxLjIgDQptZWFuKFZOJCc4MC04OScsbmEucm0gPSBUKSAjbmEucm06IGLhu48gbmjhu69uZyBk4buvIGxp4buHdSBi4buLIG3huqV0IMSRaQ0KYGBgDQo9PiBOaMawIHbhuq15LCB0cm9uZyDEkeG7mSB0deG7lWkgdOG7qyA4MC04OSBj4bunYSBuxrDhu5tjIFZp4buHdCBOYW0gdOG7qyBuxINtIDIwMTgtMjAyMSBjw7MgNTAlIGTDom4gc+G7kSBkxrDhu5tpICoqMTM1MDU5OCoqIG5nxrDhu51pIHbDoCA1MCUgZMOibiBz4buRIHRyw6puICoqMTM1MDU5OCoqIG5nxrDhu51pDQoNCiMjIDYuIFTDrW5oIHRvw6FuIGPDoWMgxJHhurdjIHRyxrBuZyDEkW8gbMaw4budbmcgdGhlbyBuaMOzbSANCg0KLSAqKlRydW5nIGLDrG5oOioqIA0KDQpHw6FuIGPDonUgbOG7h25oIGNobyAqKip0YioqKiAsIHPhu60gZOG7pW5nIGjDoG0gKioqZ3JvdXBfYnkqKiogxJHhu4MgbmjDs20gZOG7ryBsaeG7h3UgdGhlbyBj4buZdCBDLCB2w6Agc2F1IMSRw7MgZOG7rSBk4bulbmcgKioqc3VtbWFyaXNlKioqIMSR4buDIHTDs20gdOG6r3QgdGjDtG5nIHRpbiBj4bunYSBt4buXaSBuaMOzbSB0aGVvIMSR4buZIGzhu5tuIHRydW5nIGLDrG5oIGPhu6dhIGPDoWMgbmjDs20uDQpgYGB7cn0NCnRiIDwtIHljMS4yICU+JSBncm91cF9ieShDKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCksbWVhID0gbWVhbihVMTUpKQ0KdGINCmBgYA0KQ+G7pSB0aOG7gyB0w61uaCB0cnVuZyBiw6xuaCBkw6JuIHPhu5EgZMaw4bubaSAxNSB0deG7lWkgY+G7p2EgNSBuxrDhu5tjIHRyb25nIDQgbsSDbSBi4bqxbmcgbOG7h25oICoqKm1lYW4oVTE1KSoqKg0KDQpDOiBsw6AgdMOqbiBjw6FjIG7GsOG7m2MgDQoNCm46IGzDoCBz4buRIG7Eg20sIGvhur90IHF14bqjIGPhu6dhIG3hu5dpIG7GsOG7m2MgbMOgIDQsIGPDsyBuZ2jEqWEgbMOgIHThu5VuZyB0cnVuZyBiw6xuaCDEkcaw4bujYyB0w61uaCB0cm9uZyA0IG7Eg20NCg0KbWVhOiBsw6AgdMOqbiDEkeG6t3QgY2hvIGzhu4duaCBtZWFuKFUxNSksIGPDsyBuZ2jEqWEgbMOgIHRydW5nIGLDrG5oIGTDom4gc+G7kSBkxrDhu5tpIDE1IHR14buVaSBj4bunYSA1IG7GsOG7m2MgIA0KDQo9PiBOaMawIHbhuq15LCB2w60gZOG7pSBuaMawIFZp4buHdCBOYW0gY8OzIHRydW5nIGLDrG5oIGTDom4gc+G7kSBkxrDhu5tpIDE1IHR14buVaSB0cm9uZyA0IG7Eg20gbMOgICoqMjE5MTE4OTEqKiAgIA0KDQotICoqVHJ1bmcgduG7izoqKg0KDQpHw6FuIGPDonUgbOG7h25oIGNobyAqKip0dioqKiAsIHPhu60gZOG7pW5nIGjDoG0gKioqZ3JvdXBfYnkqKiogxJHhu4MgbmjDs20gZOG7ryBsaeG7h3UgdGhlbyBj4buZdCBDLCB2w6Agc2F1IMSRw7MgZOG7rSBk4bulbmcgKioqc3VtbWFyaXNlKioqIMSR4buDIHTDs20gdOG6r3QgdGjDtG5nIHRpbiBj4bunYSBt4buXaSBuaMOzbSB0aGVvIMSR4buZIGzhu5tuIHRydW5nIGLDrG5oIGPhu6dhIGPDoWMgbmjDs20uDQpgYGB7cn0NCnR2IDwtIHljMS4yICU+JSBncm91cF9ieShZKSAlPiUgc3VtbWFyaXNlKG1lZGkgPSBtZWRpYW4oVTE1KSkNCnR2DQpgYGANCkPhu6UgdGjhu4MgdMOtbmggdHJ1bmcgduG7iyBkw6JuIHPhu5EgZMaw4bubaSAxNSB0deG7lWkgY+G7p2EgY+G6oyA1IG7GsOG7m2MgdHJvbmcgNCBuxINtIGLhurFuZyBs4buHbmggKioqbWVkaWFuKFUxNSkqKioNCg0KWTogbMOgIHThu6tuZyBuxINtIA0KDQptZWRpOiBsw6AgdMOqbiDEkeG6t3QgY2hvIGzhu4duaCBtZWRpYW4oVTE1KSwgY8OzIG5naMSpYSBsw6AgdHJ1bmcgduG7iyBkw6JuIHPhu5EgZMaw4bubaSAxNSB0deG7lWkgY+G7p2EgY+G6oyA1IG7GsOG7m2MgDQo9PiBOaMawIHbhuq15LCB0cm9uZyBuxINtIDIwMTggY8OzIDUwJSBkw6JuIHPhu5EgY+G7p2EgY+G6oyA1IG7GsOG7m2MgZMaw4bubaSAqKjIxODQ3MTIwKiogbmfGsOG7nWkgdsOgIHRyw6puIDUwJSAqKjIxODQ3MTIwKioNCg0KIyBOaGnhu4dtIHbhu6UgMy4yDQoNCiMjIE3hu6VjIHRpw6p1IG5naGnDqm4gY+G7qXU6DQoNCi0gWMOhYyDEkeG7i25oIHbhu4sgdHLDrSBj4bunYSBWaeG7h3QgTmFtIHRyw6puIGLhuqNuIMSR4buTIGtpbmggdOG6vyB0aOG6vyBnaeG7m2kuIFRow7RuZyBxdWEgdmnhu4djIHNvIHPDoW5oIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgR0RQIGPhu6dhIFZp4buHdCBOYW0gduG7m2kgR0RQIGPhu6dhIGPDoWMgbsaw4bubYyBs4bubbiBuaMawIE3hu7kgdsOgIFRydW5nIFF14buRYywgY2jDum5nIHRhIGPDsyB0aOG7gyB0aOG6pXkgxJHGsOG7o2MgduG7iyB0aOG6vyBj4bunYSBWaeG7h3QgTmFtIHRyb25nIG7hu4FuIGtpbmggdOG6vyB0aOG6vyBnaeG7m2ksIHThu6sgxJHDsyBjw7Mgbmjhu69uZyDEkcOhbmggZ2nDoSBraMOhY2ggcXVhbiB24buBIGto4bqjIG7Eg25nIGPhuqFuaCB0cmFuaCBj4bunYSBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbS4NCg0KLSBQaMOibiB0w61jaCBuaOG7r25nIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIHPhu7EgcGjDoXQgdHJp4buDbiBraW5oIHThur8gY+G7p2EgVmnhu4d0IE5hbSwgdOG7qyDEkcOzIGPDsyBuaOG7r25nIGdp4bqjaSBwaMOhcCBwaMO5IGjhu6NwIMSR4buDIHRow7pjIMSR4bqpeSB0xINuZyB0csaw4bufbmcga2luaCB04bq/Lg0KDQotIMSQ4buBIHh14bqldCBjw6FjIGdp4bqjaSBwaMOhcCBuaOG6sW0gbsOibmcgY2FvIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgR0RQIGPhu6dhIFZp4buHdCBOYW0uIFRyw6puIGPGoSBz4bufIHBow6JuIHTDrWNoIG5o4buvbmcgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gc+G7sSBwaMOhdCB0cmnhu4NuIGtpbmggdOG6vyBj4bunYSBWaeG7h3QgTmFtLCBiw6BpIG5naGnDqm4gY+G7qXUgY8OzIHRo4buDIMSR4buBIHh14bqldCBjw6FjIGdp4bqjaSBwaMOhcCBuaOG6sW0gbsOibmcgY2FvIEdEUCBj4bunYSBWaeG7h3QgTmFtLCBnw7NwIHBo4bqnbiBj4bqjaSB0aGnhu4duIMSR4budaSBz4buRbmcgY+G7p2EgbmfGsOG7nWkgZMOibiB2w6AgxJHGsGEgVmnhu4d0IE5hbSB0cuG7nyB0aMOgbmggbeG7mXQgcXXhu5FjIGdpYSBwaMOhdCB0cmnhu4NuLg0KDQojIyBQaMawxqFuZyBwaMOhcDoNCg0KU+G7rSBk4bulbmcgY8OhYyBwaMawxqFuZyBwaMOhcCB0aOG7kW5nIGvDqiBtw7QgdOG6oyBk4buvIGxp4buHdToNCg0KLSBSw7p0IHRyw61jaCBk4buvIGxp4buHdQ0KDQotIE3DoyBow7NhIGThu68gbGnhu4d1DQoNCi0gTOG6rXAgYuG6o25nIHThuqduIHPhu5ENCg0KLSBUw61uaCB0b8OhbiBjw6FjIMSR4bq3YyB0csawbmcgxJFvIGzGsOG7nW5nDQoNCi0gTmjhuq1uIHjDqXQga+G6v3QgcXXhuqMNCg0KIyMgQuG7mSBk4buvIGxp4buHdTogDQoNCiMjIyAxLiBHaeG7m2kgdGhp4buHdTogDQoNCk5oaeG7h20gduG7pSAzLjIgdGnhur9uIGjDoG5oIHRoYW8gdMOhYyDEkeG7gyBwaMOibiB0w61jaCBi4buZIGThu68gbGnhu4d1IOKAnGdyb3d0aC1yYXRlLW9mLXJlYWwtZ2RwLXBlci1lbXBsb3llZC1wZXJzb24uY3N24oCdLCBsw6AgZGF0YXNldCB0aOG7kW5nIGvDqiB24buBIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgY+G7p2EgR0RQIHRo4buxYyB04bq/IGLDrG5oIHF1w6JuIHRyw6puIG3hu5l0IGxhbyDEkeG7mW5nIHThuqFpIGPDoWMgbsaw4bubYyB04burIG7Eg20gMjAwMC0yMDIyDQoNCmBgYHtyfQ0KbnYyIDwtIHJlYWQuY3N2KCJGOi9OZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmgvZ3Jvd3RoLXJhdGUtb2YtcmVhbC1nZHAtcGVyLWVtcGxveWVkLXBlcnNvbi5jc3YiLCBoZWFkZXIgPSBUKQ0KYGBgDQoNCk3hu5l0IHPhu5EgdGjDtG5nIHRpbiBjxqEgYuG6o24gY+G7p2EgYuG7mSBk4buvIGxp4buHdToNCg0KLSBMw6AgMSBkYXRhIGZyYW1lDQoNCi0gQ8OzIDQ2NDYgcXVhbiBzw6F0IHbDoCA0IGJp4bq/bg0KDQotIFTDqm4gY8OhYyBiaeG6v24gbOG6p24gbMaw4bujdCBsw6A6DQogIA0KICAtIEVudGl0eTogUXXhu5FjIGdpYQ0KICAtIENvZGU6IE3Dow0KICAtIFllYXI6IE7Eg20NCiAgLSBBbm51YWwgZ3Jvd3RoIHJhdGUgb2YgcmVhbCBHRFAgcGVyIGVtcGxveWVkIHBlcnNvbiAoJSkgLSBTTF9FTVBfUENBUDogdOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nICh0aGVvICUpIGPhu6dhIG3hu6ljIHPhuqNuIHh14bqldCBiw6xuaCBxdcOibiB0csOqbiBt4buXaSBsYW8gxJHhu5luZyB0cm9uZyBt4buZdCBuxINtDQogIA0KIyMjIDIuIENodeG6qW4gYuG7izogDQoNCi0gR0RQIGzDoCB04buVbmcgc+G6o24gcGjhuqltIHF14buRYyBu4buZaSwgxJFvIGzGsOG7nW5nIHF1eSBtw7QgdsOgIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8gY+G7p2EgbeG7mXQgcXXhu5FjIGdpYS4gVGh1IG5o4bqtcCBj4bunYSBuZ8aw4budaSBsYW8gxJHhu5luZyBsw6AgdGjDoG5oIHBo4bqnbiBxdWFuIHRy4buNbmcgbmjhuqV0IGPhu6dhIEdEUC4gR0RQIHbDoCB0aHUgbmjhuq1wIGPhu6dhIG5nxrDhu51pIGxhbyDEkeG7mW5nIGPDsyBt4buRaSBxdWFuIGjhu4cgbmjDom4gcXXhuqMgduG7m2kgbmhhdS4gR0RQIHTEg25nIHPhur0gZOG6q24gxJHhur9uIHRodSBuaOG6rXAgY+G7p2EgbmfGsOG7nWkgbGFvIMSR4buZbmcgdMSDbmcgdsOgIG5nxrDhu6NjIGzhuqFpLiDEkGnhu4F1IG7DoHkgY8OzIMO9IG5naMSpYSBxdWFuIHRy4buNbmcgxJHhu5FpIHbhu5tpIMSR4budaSBz4buRbmcgY+G7p2EgbmfGsOG7nWkgbGFvIMSR4buZbmcgdsOgIHPhu7EgcGjDoXQgdHJp4buDbiBraW5oIHThur8gY+G7p2EgcXXhu5FjIGdpYS4gQ2jDrW5oIHbDrCB0aOG6vywgxJHDonkgbMOgIG3hu5l0IGNo4buJIHPhu5EgIHLhuqV0IHF1YW4gdHLhu41uZyDEkeG7gyDEkcOhbmggZ2nDoSBoaeG7h3UgcXXhuqMgaG/huqF0IMSR4buZbmcgY+G7p2EgbeG7mXQgbuG7gW4ga2luaCB04bq/IHThuqFpIG3hu5dpIHF14buRYyBnaWEuIFTEg25nIHRyxrDhu59uZyBuxINuZyBzdeG6pXQgbGFvIMSR4buZbmcgYuG7gW4gduG7r25nIGThuqtuIMSR4bq/biB0xINuZyB0csaw4bufbmcga2luaCB04bq/IGNhbyBoxqFuLCBj4bqjaSB0aGnhu4duIG3hu6ljIHPhu5FuZyB2w6AgdMSDbmcga2jhuqMgbsSDbmcgY+G6oW5oIHRyYW5oIGPhu6dhIG7hu4FuIGtpbmggdOG6vyB0csOqbiB0aOG7iyB0csaw4budbmcgcXXhu5FjIHThur8uIA0KDQotIMSQ4buRaSB24bubaSBi4buZIGThu68gbGnhu4d1IG7DoHksIHRhIHPhur0gdGnhur9uIGjDoG5oIHBow6JuIHTDrWNoIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgR0RQIHRo4buxYyB04bqhaSAzIHF14buRYyBnaWEgbMOgIFZp4buHdCBOYW0sIE3hu7ksIFRydW5nIFF14buRYy4gRG8gxJHDsyB0YSB0aeG6v24gaMOgbmggbOG7jWMgZOG7ryBsaeG7h3UsIG5oxrBuZyB0csaw4bubYyB0acOqbiB2w6wgdMOqbiBjw6FjIGJp4bq/biBraMOhIGTDoGksIG7Dqm4gdGEgc+G6vSDEkeG6t3QgbOG6oWkgdMOqbiDEkeG7gyBk4buFIGTDoG5nIHRoYW8gdMOhYyBoxqFuIHNhdSDEkcOzIHRp4bq/biBow6BuaCBs4buNYw0KDQpgYGB7cn0NCm5hbWVzKG52MikgPC0gYygnRScsJ0MnLCdZJywnR0RQJykNCmxpYnJhcnkoZHBseXIpDQpsZGwgPC0gbnYyICU+JSBmaWx0ZXIoRSAlaW4lIGMoJ1ZpZXRuYW0nLCdVbml0ZWQgU3RhdGVzJywnQ2hpbmEnKSkgDQpkYXRhdGFibGUobGRsKQ0KYGBgDQoNCiMjIyAzLiBNw6MgaMOzYSBk4buvIGxp4buHdQ0KDQpgYGB7cn0NCmxkbCRUYW5nVHJ1b25nIDwtIGNhc2Vfd2hlbihsZGwkR0RQIDwgMyB+ICdUaOG6pXAnLCBsZGwkR0RQICA+PSAzICAmIGxkbCRHRFAgPD0gNyB+ICdPSycsIGxkbCRHRFAgPjcgfiAnQ2FvJykNCmxkbCRIaWV1UXVhIDwtIGlmZWxzZShsZGwkR0RQID4gMCwnxJDhuqF0JywnS8OpbScpDQpsaWJyYXJ5KERUKQ0KZGF0YXRhYmxlKGxkbCkNCmBgYA0KDQpC4bqjbmcgdGjhu5FuZyBrw6ogdHLDqm4gY2hvIHRo4bqleSB04bu3IGzhu4cgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSBj4bunYSBWaeG7h3QgTmFtIMSRw6MgY8OzIG5o4buvbmcgYsaw4bubYyBwaMOhdCB0cmnhu4NuIHTDrWNoIGPhu7FjIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjIuDQoNClThu7cgbOG7hyBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIGPhu6dhIFZp4buHdCBOYW0gxJHDoyB0xINuZyDEkeG7gXUgxJHhurduIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5LiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbSDEkWFuZyBwaMOhdCB0cmnhu4NuIG3huqFuaCBt4bq9LCB04bqhbyByYSBuaGnhu4F1IGPGoSBo4buZaSB2aeG7h2MgbMOgbSB2w6AgdGh1IG5o4bqtcCBjaG8gbmfGsOG7nWkgZMOibi4NCg0KxJDhurdjIGJp4buHdCwgc2F1IHPhu7Ega2nhu4duIGto4bunbmcgaG/huqNuZyB0w6BpIGNow61uaCB0b8OgbiBj4bqndSB2w6BvIG7Eg20gMjAwOCwgQ2jDrW5oIHBo4bunIFZp4buHdCBOYW0gxJHDoyBjw7Mgbmjhu69uZyBjaMOtbmggc8OhY2gga+G7i3AgdGjhu51pIHbDoCBoaeG7h3UgcXXhuqMgZ2nDunAg4buVbiDEkeG7i25oIGtpbmggdOG6vywgxJHhu5NuZyB0aOG7nWkgdGjDumMgxJHhuql5IHTEg25nIHRyxrDhu59uZyBraW5oIHThur8uIE5o4budIMSRw7MsIHThu7cgbOG7hyBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIGPhu6dhIFZp4buHdCBOYW0gxJHDoyB0xINuZyB0csaw4bufbmcg4buVbiDEkeG7i25oIHbDoCDEkeG6oXQgaGnhu4d1IHF14bqjIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KDQpUdXkgbmhpw6puLCBuxINtIDIwMjEsIMSR4bqhaSBk4buLY2ggQ292aWQtMTkgYsO5bmcgcGjDoXQgxJHDoyBnw6J5IHJhIG5o4buvbmcgdMOhYyDEkeG7mW5nIHRpw6p1IGPhu7FjIMSR4bq/biBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbS4gVOG7tyBs4buHIEdEUCBiw6xuaCBxdcOibiDEkeG6p3UgbmfGsOG7nWkgY+G7p2EgVmnhu4d0IE5hbSB0cm9uZyBuxINtIDIwMjEgxJHDoyBnaeG6o20gc28gduG7m2kgbsSDbSAyMDIwLCBjaOG7iSDEkeG6oXQgMi4zNC4NCg0KTmjDrG4gY2h1bmcsIGLhuqNuZyB0aOG7kW5nIGvDqiB0csOqbiBjaG8gdGjhuqV5IHThu7cgbOG7hyBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIGPhu6dhIFZp4buHdCBOYW0gxJFhbmcgY8OzIG5o4buvbmcgY2h1eeG7g24gYmnhur9uIHTDrWNoIGPhu7FjLiBUdXkgbmhpw6puLCBj4bqnbiB0aeG6v3AgdOG7pWMgbuG7lyBs4buxYyDEkeG7gyBuw6JuZyBjYW8gdOG7tyBs4buHIG7DoHksIGfDs3AgcGjhuqduIGPhuqNpIHRoaeG7h24gxJHhu51pIHPhu5FuZyBj4bunYSBuZ8aw4budaSBkw6JuIHbDoCDEkcawYSBWaeG7h3QgTmFtIHRy4bufIHRow6BuaCBt4buZdCBxdeG7kWMgZ2lhIHBow6F0IHRyaeG7g24uDQoNCiMjIyA0LiBM4bqtcCBi4bqjbmcgdOG6p24gc+G7kQ0KDQpgYGB7cn0NCmxpYnJhcnkoZGJwbHlyKQ0KdHMyIDwtIGxkbCAlPiUgZ3JvdXBfYnkoRSwgWSwgSGlldVF1YSkgJT4lIHN1bW1hcmlzZShuPSBuKCksIC5ncm91cHMgPSAnZHJvcCcpDQp0YWJsZSh0czIpDQpgYGANCg0KQuG6o25nIHThuqduIHPhu5EgdHLDqm4gY2hvIHRo4bqleSwgdOG7tyBs4buHIEdEUCBj4bunYSBWaeG7h3QgTmFtIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjIgY8OzIHh1IGjGsOG7m25nIHTEg25nIHRyxrDhu59uZyDhu5VuIMSR4buLbmggdsOgIMSR4bqhdCBoaeG7h3UgcXXhuqMsIGtow7RuZyBo4buBIGvDqW0gY+G6oW5oIGPDoWMgbsaw4bubYyBs4bubbiBuaMawIFRydW5nIFF14buRYywgTeG7uS4gVuG7m2kgbmjhu69uZyBr4bq/dCBxdeG6oyDEkeG6oXQgxJHGsOG7o2MsIFZp4buHdCBOYW0gxJFhbmcgZOG6p24ga2jhurNuZyDEkeG7i25oIHbhu4sgdGjhur8gY+G7p2EgbcOsbmggdHLDqm4gYuG6o24gxJHhu5Mga2luaCB04bq/IHRo4bq/IGdp4bubaS4gVmnhu4d0IE5hbSDEkcOjIHRy4bufIHRow6BuaCBt4buZdCDEkWnhu4NtIMSR4bq/biBo4bqlcCBk4bqrbiBjaG8gY8OhYyBuaMOgIMSR4bqndSB0xrAgbsaw4bubYyBuZ2/DoGksIHbDoCDEkcaw4bujYyBuaGnhu4F1IHThu5UgY2jhu6ljIHF14buRYyB04bq/IMSRw6FuaCBnacOhIGNhbyB24buBIHRyaeG7g24gduG7jW5nIHBow6F0IHRyaeG7g24uDQoNCiMjIyA1LiBUw61uaCB0b8OhbiBjw6FjIMSR4bq3YyB0csawbmcgxJFvIGzGsOG7nW5nDQoNCi0gKipUcnVuZyBiw6xuaDoqKiANCg0KYGBge3J9DQpWTjIgPC0gbGRsW2xkbCRDID09ICdWTk0nLF0gDQptZWFuKFZOMiRHRFAsbmEucm0gPSBUKQ0KYGBgDQpUcnVuZyBiw6xuaCB04bu3IGzhu4cgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBWaeG7h3QgTmFtIHThu6sgbsSDbSAyMDAwLTIwMjIgbMOgICoqNC41ODQzNDgqKi4gVMawxqFuZyDEkcawxqFuZyB24bubaSB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcgdHJ1bmcgYsOsbmgga2hv4bqjbmcgNyUvbsSDbS4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgbuG7gW4ga2luaCB04bq/IFZp4buHdCBOYW0gY8OzIGto4bqjIG7Eg25nIHThu7EgcGjhu6VjIGjhu5NpIHbDoCB0xINuZyB0csaw4bufbmcgbmhhbmggY2jDs25nIHNhdSBuaOG7r25nIGPDuiBz4buRYyBraW5oIHThur8uIFbhu5tpIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBHRFAgaGnhu4duIHThuqFpLCBWaeG7h3QgTmFtIGPDsyB0aOG7gyBz4bubbSDEkeG6oXQgxJHGsOG7o2MgbeG7pWMgdGnDqnUgdHLhu58gdGjDoG5oIG3hu5l0IHF14buRYyBnaWEgY8OzIHRodSBuaOG6rXAgdHJ1bmcgYsOsbmggY2FvIHbDoG8gbsSDbSAyMDI1LiBU4bu3IGzhu4cgdMSDbmcgdHLGsOG7n25nIEdEUCBjYW8gdsOgIOG7lW4gxJHhu4tuaCBj4bunYSBWaeG7h3QgTmFtIGPDsm4gbMOgIG3hu5l0IHnhur91IHThu5EgdGh1IGjDunQgY8OhYyBuaMOgIMSR4bqndSB0xrAgbsaw4bubYyBuZ2/DoGkuIE5nb8OgaSByYSwgVmnhu4d0IE5hbSBjw7JuIGPDsyBuaGnhu4F1IGzhu6NpIHRo4bq/IGPhuqFuaCB0cmFuaCB24buBIG5ndeG7k24gbmjDom4gbOG7sWMgdHLhurssIGThu5NpIGTDoG8gdsOgIGdpw6EgcuG6uywgY8WpbmcgbmjGsCBtw7RpIHRyxrDhu51uZyDEkeG6p3UgdMawIGtpbmggZG9hbmggbmfDoHkgY8OgbmcgxJHGsOG7o2MgY+G6o2kgdGhp4buHbi4NCg0KLSAqKlRydW5nIHbhu4s6KioNCmBgYHtyfQ0KbWVkaWFuKFZOMiRHRFApDQpgYGANClRydW5nIHbhu4sgdOG7tyBs4buHIHTEg25nIHRyxrDhu59uZyBHRFAgY+G7p2EgVmnhu4d0IE5hbSB04burIG7Eg20gMjAwMC0yMDIyIGzDoCAqKjQuNTgqKi4gVOG7qWMgbMOgIG7GsOG7m2MgdGEgY8OzIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgR0RQIGTGsOG7m2kgNTAlIHThuqFpIG3hu6ljICoqNC41OCoqIHbDoCB0csOqbiA1MCUgdOG6oWkgbeG7qWMg4bqleS4gQ2jhu6luZyB04buPIG7GsOG7m2MgdGEgxJFhbmcgcGjDoXQgdHJp4buDbiDhu5VuIMSR4buLbmgsIHThu7cgbOG7hyB0xINuZyB0csaw4bufbmcgR0RQIOG7nyBt4bupYyB0cnVuZyBiw6xuaCwga2jDtG5nIHF1w6EgY2FvIGPFqW5nIGtow7RuZyBxdcOhIHRo4bqlcCwgY2hvIHRo4bqleSBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbSDEkWFuZyBwaMOhdCB0cmnhu4NuIG3hu5l0IGPDoWNoIGLhu4FuIHbhu69uZywga2jDtG5nIGLhu4sgcXXDoSBwaOG7pSB0aHXhu5ljIHbDoG8gbeG7mXQgc+G7kSB54bq/dSB04buRIG5o4bqldCDEkeG7i25oLg0KDQojIyMgNi4gVMOtbmggdG/DoW4gY8OhYyDEkeG6t2MgdHLGsG5nIMSRbyBsxrDhu51uZyB0aGVvIG5ow7NtIA0KDQotICoqVHJ1bmcgYsOsbmg6KiogDQoNCmBgYHtyfQ0KdGIyIDwtIGxkbCAlPiUgZ3JvdXBfYnkoQykgJT4lIHN1bW1hcmlzZShuID0gbigpLG1lYSA9IG1lYW4oR0RQKSkNCnRiMg0KYGBgDQpUcnVuZyBiw6xuaCB04bu3IGzhu4cgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBWaeG7h3QgTmFtIGzDoCAqKjQuNTg0MzQ4KiosIHRyb25nIGtoaSBj4bunYSBUcnVuZyBRdeG7kWMgbMOgICoqOC4wOTE3MzkqKiB2w6AgY+G7p2EgTeG7uSBsw6AgKioxLjE2ODY5NioqLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBWaeG7h3QgTmFtIHbhuqtuIMSRYW5nIGzDoCBt4buZdCBu4buBbiBraW5oIHThur8gxJFhbmcgcGjDoXQgdHJp4buDbiwgduG7m2kgdGnhu4FtIG7Eg25nIHTEg25nIHRyxrDhu59uZyBjYW8uIA0KDQotICoqVHJ1bmcgduG7izoqKiANCg0KYGBge3J9DQp0djIgPC0gbGRsICU+JSBncm91cF9ieShDKSAlPiUgc3VtbWFyaXNlKG1lZGkgPSBtZWRpYW4oR0RQKSkNCnR2Mg0KYGBgDQoNClF1YSBi4bqjbmcgdGjhu5FuZyBrw6ogdHLDqm4sIHRydW5nIHbhu4sgdOG7tyBs4buHIHTEg25nIHRyxrDhu59uZyBHRFAgY+G7p2EgVmnhu4d0IE5hbSDhu58gbeG7qWMgKio0LjU4KiogY8OzIHRo4buDIMSRxrDhu6NjIHhlbSBsw6Aga2jDoSB0w61jaCBj4buxYy4gTeG6t2MgZMO5IG7DsyBraMO0bmcgxJHhuqF0IMSRxrDhu6NjIG3hu6ljIHTEg25nIHRyxrDhu59uZyBjYW8gbmjGsCBUcnVuZyBRdeG7kWMsIG5oxrBuZyB24bqrbiDhu5VuIMSR4buLbmggdsOgIHbGsOG7o3QgeGEgc28gduG7m2kgTeG7uS4gxJBp4buBdSBuw6B5IGPDsyB0aOG7gyBjaG8gdGjhuqV5IHPhu7Eg4buVbiDEkeG7i25oIHbDoCBz4buxIHBow6F0IHRyaeG7g24gxJHDoW5nIGvhu4MgdHJvbmcgbuG7gW4ga2luaCB04bq/IGPhu6dhIFZp4buHdCBOYW0uIFR1eSBuaGnDqm4sIMSR4buDIMSR4bqhdCDEkcaw4bujYyBz4buxIHBow6F0IHRyaeG7g24gYuG7gW4gduG7r25nLCBWaeG7h3QgTmFtIGPDsyB0aOG7gyBj4bqnbiB0aeG6v3AgdOG7pWMgxJHhuqd1IHTGsCB2w6BvIGPDoWMgbmd14buTbiBs4buxYyB2w6AgY+G6o2kgdGhp4buHbiBtw7RpIHRyxrDhu51uZyBraW5oIGRvYW5oIMSR4buDIHRodSBow7p0IMSR4bqndSB0xrAgdsOgIHTEg25nIGPGsOG7nW5nIG7Eg25nIHN14bqldCBsYW8gxJHhu5luZy4NCg0KIyMgTmjhuq1uIHjDqXQgDQoNClNhdSBraGkgdGjhu7FjIGhp4buHbiBjw6FjIHBoxrDGoW5nIHBow6FwIG5naGnDqm4gY+G7qXUsIGPDsyB0aOG7gyBuaOG6rW4gdGjhuqV5IHLhurFuZyB04bu3IGzhu4cgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBWaeG7h3QgTmFtIMSRw6MgZHV5IHRyw6wg4bufIG3hu6ljIOG7lW4gxJHhu4tuaCB0cm9uZyBt4buZdCB0aOG7nWkgZ2lhbiBkw6BpLCDEkWnhu4F1IG7DoHkgY2hvIHRo4bqleSBz4buxIOG7lW4gxJHhu4tuaCB2w6Agc+G7sSBwaMOhdCB0cmnhu4NuIGLhu4FuIHbhu69uZyBj4bunYSBu4buBbiBraW5oIHThur8uIFPhu7EgdMSDbmcgdHLGsOG7n25nIG7DoHkga2jDtG5nIGNo4buJIHBo4bqjbiDDoW5oIHPhu7EgZ2lhIHTEg25nIHbhu4Egc+G6o24geHXhuqV0IHbDoCBk4buLY2ggduG7pSBtw6AgY8OybiB0aOG7gyBoaeG7h24gc+G7sSBj4bqjaSB0aGnhu4duIHRyb25nIGPGoSBz4bufIGjhuqEgdOG6p25nLCBjaMOtbmggc8OhY2gga2luaCB04bq/IHbDoCBxdeG6o24gbMO9IHTDoGkgY2jDrW5oLiDEkGnhu4F1IG7DoHkgdOG6oW8gcmEgbeG7mXQgbcO0aSB0csaw4budbmcgdGh14bqtbiBs4bujaSBjaG8gY8OhYyBuaMOgIMSR4bqndSB0xrAsIGPhuqMgdHJvbmcgdsOgIG5nb8OgaSBuxrDhu5tjLCB2w6AgY8WpbmcgbMOgbSB0xINuZyBuaeG7gW0gdGluIGPhu6dhIG5nxrDhu51pIHRpw6p1IGTDuW5nLiBUdXkgbmhpw6puLCDEkeG7gyBkdXkgdHLDrCDEkcOgIHTEg25nIHRyxrDhu59uZyBuw6B5IHbDoCDEkeG6o20gYuG6o28gc+G7sSBwaMOhdCB0cmnhu4NuIGLhu4FuIHbhu69uZywgY+G6p24gcGjhuqNpIHRp4bq/cCB04bulYyB0aMO6YyDEkeG6qXkgY+G6o2kgY8OhY2gga2luaCB04bq/LCDEkeG6p3UgdMawIHbDoG8gZ2nDoW8gZOG7pWMgdsOgIMSRw6BvIHThuqFvIG5ow6JuIGzhu7FjLCBjw7luZyB24bubaSB2aeG7h2MgdGjDumMgxJHhuql5IHPhu7EgxJHhu5VpIG3hu5tpIHbDoCBjw7RuZyBuZ2jhu4cgaMOzYSB0cm9uZyBjw6FjIGzEqW5oIHbhu7FjIGNow61uaCBj4bunYSBu4buBbiBraW5oIHThur8uDQoNCg0KDQoNCg0K