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:
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
| Country.name |
0 |
1 |
4 |
59 |
0 |
254 |
0 |
Variable type: numeric
| 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:
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.1 có 20 quan
sát và 24 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.2 có 20 quan
sát và 10 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
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
| 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
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
| 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
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