1 Lời cảm ơn.


  • Lời nói đầu tiên, em xin cảm ơn Ban Giám hiệu nhà trường, đặc biệt là các thầy cô trong bộ môn Khoa Kinh tế - Luật đã tận tình chỉ dẫn em rất nhiều trong quá trình học tập, việc này đã và đang tạo điều kiện cho em thực hiện tốt nhất có thể bài tiểu luận này. Em cũng xin gửi lời cảm ơn sâu sắc đến thầy Trần Mạnh Tường - người phụ trách dạy và hỗ trợ em trong bộ môn ngôn ngữ lập trình, mong thầy có thật nhiều sức khỏe và thành công hơn nữa.

  • Có thể trong khoảng 3 tháng học, đây lần đầu em được trải nghiệm việc tiếp xúc phần mềm, thao thác mới nên sẽ khó tránh khỏi sai sót trong quá trình tự làm bài, rất mong nhận được sự góp ý của thầy cô để có bài tiểu luận hoàn thiện hơn.

  • Hơn hết em chúc thầy cô có thật nhiều niềm vui trong hành trình giảng dạy và hạnh phúc.

2 Kết cấu đề tài.


Nội dung bài tiểu luận bao gồm:

Chương 1: Phần mở đầu.

Chương 2: Tổng quan lý thuyết và dữ liệu nghiên cứu.

Chương 3: Phân tích thực trạng thị trường lao động.

Chương 4: Đưa ra giải pháp.

Chương 5: Kết luận.

Chương 6: Tài liệu tham khảo.

3 CHƯƠNG 1. PHẦN MỞ ĐẦU.


3.1 Lý do em chọn đề tài.

  • Vấn đề việc làm vẫn luôn là mối quan tâm hàng đầu của mọi sinh viên khi bước vào cánh cửa đại học, đặc biệt là khi thị trường lao động vẫn tiếp tục hoạt động. Với đa số dân số ở Việt Nam tập trung ở độ tuổi dưới 30, nước ta có nguồn lao động dồi dào, từ lao động giản đơn đến lao động có trình độ cao, tạo ra tình thế thị trường lao động ngày càng cạnh tranh. Một phần của vấn đề nằm ở sự quyết định của sinh viên trong việc chọn ngành học và sự kiên trì của họ trong việc theo đuổi ngành đó đến cùng.

  • Vấn đề nan giải của một vấn đề xã hội Việt Nam, do đó, cần một cơ quan chuyên phân tích thông tin để đưa ra các chính sách hỗ trợ cho các trường đại học và doanh nghiệp trong việc đào tạo và tuyển dụng nhân lực. Việc này sẽ giúp sinh viên có một bộ tiêu chuẩn rõ ràng để tìm kiếm việc làm và phát triển các kỹ năng phù hợp với tiêu chuẩn của doanh nghiệp. Khi có các giải pháp thích hợp, điều này sẽ tạo ra niềm tin cho một số học sinh, giúp họ tự tin hơn khi chọn trường đại học và ngành học mà họ mong muốn, với hy vọng trở thành một phần trong nguồn lao động có trình độ cao.

  • Từ đó, có thể cải thiện và nâng cao trình độ cũng như lực lượng lao động - thế hệ trẻ tương lai. Thành công trong việc này có thể dần dần thay đổi cả một cá thể, và ảnh hưởng đến sự phát triển của cả đất nước. Mục tiêu là mang lại công việc tốt hơn và ổn định trong cuộc sống cho mọi người.

=> Vì thế em quyết định chọn chủ đề Phân tích cơ hội việc làm đối với các sinh viên ra trường ở Việt Nam từ khi đại dịch covid - 19 đến gần đây.

3.2 Mục tiêu nghiên cứu.

  • Với chủ đề trên, chúng ta có thể tập trung vào phân tích kỹ năng, sở thích và hành vi lựa chọn công việc của sinh viên, cũng như việc định hướng nghề nghiệp của các trường đại học và những nhu cầu cụ thể của doanh nghiệp trong bối cảnh dịch bệnh và tình hình gần đây. Đồng thời, cần phân tích các cơ hội và xu hướng của các ngành nghề tiềm năng trong tương lai dành cho các sinh viên mới ra trường. Cuối cùng, điều quan trọng là đề xuất một số giải pháp cần thiết để giúp sinh viên thích nghi và phát triển trong thời điểm hiện tại.

3.3 Đối tượng phạm vi nghiên cứu.

  • Đối tượng nghiên cứu : sinh viên ra trường thời kì dịch covid - 19 đến nay.

Lấy 2 file từ trang web

1.https://www.kaggle.com/datasets/ravindrasinghrana/job-description-dataset

2.https://www.kaggle.com/datasets/gunapro/student-behavior

4 CHƯƠNG 2: TỔNG QUAN LÝ THUYẾT VÀ DỮ LIỆU NGHIÊN CỨU.


4.1 Giới thiệu về thị trường lao động.

  • Thị trường lao đông gắn liền với cơ hội việc làm: là nơi diễn ra hoạt động trao đổi, mua bán sức lao động giữa người có sức lao động (người bán) và người sử dụng sức lao động (người mua). Sức lao động là khả năng lao động của con người, được thể hiện qua trình độ kiến thức, kỹ năng, kinh nghiệm và sức khỏe. Nó mang tính cạnh tranh rất cao, tính biến động và phân biệt theo (Ngành nghề, khu vực và loại hình doanh nghiệp.)

4.2 Mô tả dữ liệu nghiên cứu.

  • Bộ dữ liệu đầu tiền lấy từ link: 1.https://www.kaggle.com/datasets/ravindrasinghrana/job-description-dataset.

Bộ dữ liệu này là bài khảo sát cung cấp một bộ sưu tập toàn diện các tin tuyển dụng tổng hợp để tạo điều kiện thuận lợi cho việc nghiên cứu và phân tích trong lĩnh vực xu hướng thị trường việc làm bằng việc mô phỏng cấu trúc và nội dung trong danh sách việc làm . Tập dữ liệu này cung cấp một loạt danh sách công việc đa dạng thuộc nhiều ngành và loại công việc khác nhau. Thể hiện các nhu cầu của doanh nghiệp

  • File có 1048574 quan sát và 23 biến khi lọc ra chỉ quốc gia Việt Nam còn 4975 quan sát và 23 biến.

Mô tả cho từng cột trong tập dữ liệu:

  1. Job Id: Mã định danh duy nhất cho mỗi tin tuyển dụng.

  2. Experience: Số năm kinh nghiệm được yêu cầu hoặc ưu tiên cho công việc.

  3. Qualifications: Trình độ học vấn cần thiết cho công việc.

  4. Salary Range: Phạm vi mức lương hoặc thù lao được đưa ra cho vị trí đó.(theo tuần)

  5. location: Thành phố hoặc khu vực nơi làm việc.

  6. Country Quốc gia nơi công việc diễn ra.

  7. latitude: Tọa độ vĩ độ của vị trí công việc.

  8. longitude: Tọa độ kinh độ của vị trí công việc.

  9. Work Type: Loại công việc (ví dụ: toàn thời gian, bán thời gian, hợp đồng).

  10. Company Size: Quy mô hoặc quy mô gần đúng của công ty tuyển dụng.

  11. Job Posting Year: Năm mà tin tuyển dụng được công khai.

  12. Preference: Các ưu tiên hoặc yêu cầu đặc biệt đối với người nộp đơn (ví dụ: Chỉ Nam hoặc Chỉ Nữ hoặc Cả hai)

  13. Contact Person: Tên của người liên hệ hoặc nhà tuyển dụng cho công việc.

  14. Contact: Thông tin liên hệ để được tư vấn công việc.

  15. Job Title: Chức danh công việc hoặc vị trí đang được quảng cáo.

  16. Role: Vai trò hoặc danh mục công việc (ví dụ: nhà phát triển phần mềm, giám đốc tiếp thị).

  17. Job Portal: Nền tảng hoặc trang web nơi công việc được đăng.

  18. Job Description: Mô tả chi tiết về trách nhiệm và yêu cầu công việc.

  19. Benefits: Thông tin về các phúc lợi được cung cấp khi làm việc (ví dụ: bảo hiểm y tế, kế hoạch nghỉ hưu).

  20. skills: Các kỹ năng hoặc bằng cấp cần thiết cho công việc.

  21. Responsibilities: Trách nhiệm và nhiệm vụ cụ thể liên quan đến công việc.

  22. Company: Tên công ty tuyển dụng.

  23. Company Profile: Tổng quan ngắn gọn về nền tảng và sứ mệnh của công ty.

  • Bộ tài liệu được thống kế từ 2021-9/2023

  • Bộ dữ liệu đầu tiền lấy từ link: 2.https://www.kaggle.com/datasets/gunapro/student-behavior.

Tập dữ liệu này chứa thông tin được thu thập từ sinh viên đại học thông qua biểu mẫu Google lấy đại diện cho một số sinh viên Việt Nam. Bộ dữ liệu này chứa thông tin về nhân khẩu học, kết quả học tập, sở thích, thói quen học tập, nguyện vọng nghề nghiệp và các yếu tố khác để phân tích hành vi của sinh viên đại học khi chọn công việc.

  • File có 235 quan sát và 19 biến

Mô tả cho từng cột trong tập dữ liệu:

  1. Certification Course: Xác nhận sinh viên có bằng cấp/ chứng chỉ nào chưa(Yes/Có hoặc No/không).

  2. Gender: Giới tính sinh viên.

  3. Department: Khoa hoặc lĩnh vực học tập mà sinh viên đang theo học.

  4. Height(CM): Chiều cao của học sinh tính bằng centimet.

  5. Weight(KG): Cân nặng của học sinh tính bằng kilogam.

  6. 10th Mark: Điểm của học sinh đạt được vào lớp 10.

  7. 12th Mark: Điểm của học sinh đạt được vào năm lớp 12.

  8. College Mark: Điểm của sinh viên đạt được ở trường cao đẳng hoặc đại học.

  9. hobbies: Sở thích hoặc sở thích của học sinh.

  10. daily studing time: Lượng thời gian học sinh dành cho việc học hàng ngày.

  11. Prefer to Study in: Môi trường học tập hoặc địa điểm ưa thích của sinh viên.

  12. salary expectation: Kỳ vọng của sinh viên về mức lương tương lai của họ (ngàn đồng).

  13. Do you like your degree?: Ý kiến ​​của sinh viên về việc họ có thích bằng cấp của mình hay không.

  14. willingness to pursue a career based on their degree: Sự sẵn lòng của sinh viên theo đuổi nghề nghiệp liên quan đến bằng cấp của họ

  15. social medai & video: Sự tham gia của học sinh với các nền tảng truyền thông xã hội và video

  16. Travelling Time: Thời gian để học sinh đi lại hoặc di chuyển đến cơ sở giáo dục của mình

  17. Stress Level: Mức độ căng thẳng cảm nhận được của học sinh

  18. Financial Status: Tình trạng tài chính hoặc nền tảng kinh tế của sinh viên

  19. part-time job: Liệu sinh viên có tham gia vào công việc bán thời gian hay không

4.3 Dữ liệu nghiên cứu

1. Dữ liệu 1

library(xlsx)
dl1 <- read.csv(file.choose(),header = T)
is.data.frame(dl1)
## [1] TRUE
  • Thể hiện rõ số quan sát và biến: 1048574 quan sát và 23 biến và dữ liệu là data frame.

  • Mong muốn dữ lại chỉ quốc gia Việt Nam để dể dàng cho việc phân tích.

library(tidyverse)
## ── 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
a <- dl1 %>% filter(Country == "Vietnam")
write.csv(a, "a.csv") #Tạo ra 1 file excel riêng cho quốc gia Việt Nam.
a
  • Bộ tài liệu khi lọc còn 4975 quan sát và 23 biến.

=> Để phân tích nhu cầu tuyển dụng của doanh nghiệp, chúng ta có thể:

  1. Xác định nhu cầu nhân sự: Phân tích và xác định số lượng cũng như loại hình nhân sự mà công ty cần.

  2. Tối ưu hóa quy trình tuyển dụng và hiệu suất nhân sự: Tối ưu hóa các quy trình tuyển dụng nhằm tăng hiệu quả và tiết kiệm chi phí, đồng thời lập dự báo và kế hoạch về nhân sự để đảm bảo rằng công ty có đủ nguồn nhân lực cần thiết.=> Có thể tổng kết kết quả phân tích bằng cách sử dụng biểu đồ để trực quan hóa.

2. Dự liệu 2

library(xlsx)
dl2 <- read.csv(file.choose(),header = T)
is.data.frame(dl2)
## [1] TRUE
dl2
  • Thể hiện rõ số quan sát và biến: 235 quan sát và 19 biến và dữ liệu là data frame.

=> Để phân tích và quan sát nhu cầu cũng như đặc tính cụ thể của từng sinh viên, chúng ta có thể:

  1. Xác định nhu cầu việc làm của sinh viên: Phân tích và xác định số lượng cũng như mong muốn của sinh viên trong 4 ngành.

  2. Tạo hồ sơ và trực quan hóa dữ liệu: Tạo hồ sơ cá nhân của mỗi sinh viên để hiểu rõ hơn về nhu cầu và đặc tính cụ thể của họ. Cung cấp cơ sở để tư vấn và hỗ trợ từng cá nhân trong quá trình tìm kiếm và phát triển sự nghiệp của họ. Có thể tổng kết kết quả phân tích bằng cách sử dụng biểu đồ để trực quan hóa.

=> 2 bộ dữ liệu bù trừ cho nhau, cả hai bộ dữ liệu này phân tích cùng nhau có thể giúp hiểu rõ hơn về sự phù hợp giữa nhu cầu của doanh nghiệp và mong muốn của sinh viên, từ đó tối ưu hóa quá trình tuyển dụng và tạo ra sự kết nối tốt hơn giữa ứng viên và công việc.

5 Chương 3: Phân tích thực trạng thị trường lao động.


  • Việt Nam là một quốc gia có lực lượng lao động dồi dào. Tuy nhiên, trong bối cảnh đại dịch COVID-19, đã đem lại nhiều biến động tiêu cực đối với thị trường lao động. Sau giai đoạn này,bắt đầu quá trình phục hồi và phát triển có thể mang lại cả thách thức và cơ hội cho Việt Nam.

5.1 Tổng quan cơ hội nghề nghiệp theo năm(dữ liệu 1)

  • Thời kỳ biến động tiêu cực nhất của đại dịch Covid-19 tại Việt Nam được đánh giá là từ quý 2 năm 2021 đến quý 1 năm 2022. Ảnh hưởng nặng nề đến nhiều lĩnh vực kinh tế, y tế, giáo dục, tâm sinh lý xã hội.

  • Dưới đây là bảng thống kê số liệu về thời gian đăng tuyển công việc (theo năm) của Việt Nam trong giai đoạn từ năm 2021 đến 9/2023 để có cái nhìn trực quan hơn cho bộ dữ liệu.

library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
a %>% filter(Job.Posting.Year >= 2021 & Job.Posting.Year <= 2023) %>% 
  group_by(Job.Posting.Year) %>% summarise(n = n()) %>%
  ggplot(aes(x=Job.Posting.Year, y=n)) +
  geom_col(fill='pink') +
  geom_text(aes(label = percent(n/length(a$Job.Id))),vjust = 2, color = 'red') +
  labs(title = "Biểu đồ thể hiện số lượng đăng tuyển nhân viên theo từng năm") +
  labs(x = 'Năm', y = 'Số lượng')

Nhận xét biểu đồ

  • Dữ liệu thống kê cho thấy năm 2021 chiếm ít nhất trong biểu đồ và năm 2022 là năm có số lượng đơn tuyển dụng cao nhất, chênh lệch 1757 (35%) so với năm trước.

  • Tiếp theo, mặc dù năm 2023 chỉ thống kê đến tháng 9 nhưng số lượng đơn tuyển dụng vẫn khá cao, vượt qua hơn một nửa số lượng đơn đăng ký trong năm 2022. Nếu tiếp tục thống kê đến cuối năm, có thể dự đoán sẽ có nhiều cải thiện và tỷ lệ thất nghiệp có thể giảm thiểu đi, tuy nhiên, số lượng tuyển đơn tuyển dụng vẫn không đạt được mức như năm 2022.

=> Tóm lại, dịch bệnh đã ảnh hưởng nhiều đến công việc và nhu cầu tuyển dụng của doanh nghiệp, tuy nhiên, tình hình ngày càng cải thiện theo thời gian. Điều này được thể hiện qua các chỉ số như sau:

  1. Năm 2021 tỷ lệ thất nghiệp đối với thị trường lao động Việt Nam ước tính 3,22%, đạt cao nhất trong 9 tháng đầu năm là 2,67% (1)

  2. Năm 2022: Tỷ lệ thất nghiệp trong độ tuổi lao động giảm xuống còn 2,32%. Đây là mức thấp nhất trong 5 năm qua, gần 1,07 triệu ít hơn 359.2 so với năm 2021 (2)

  3. Năm 2023: Tỷ lệ thất nghiêp là 2.28% giảm 0.006% điểm phần trăm so với năm trước.(3)

5.2 Nhu cầu các loại công việc

5.2.1 Nhu cầu của doanh nghiệp thể hiện bằng việc tuyển dụng các loại công việc khác nhau(dữ liệu 1)

  • Mỗi loại hình công việc đều có những đặc điểm riêng và đáp ứng nhu cầu của doanh nghiệp ở các khía cạnh khác nhau.

  • Quá trình này giúp doanh nghiệp lựa chọn những người có đủ năng lực và kinh nghiệm để đáp ứng nhu cầu của công việc theo các mức độ để phân loại công việc:

  1. Contract: Thuê nhân lực cho các dự án ngắn hạn, theo mùa vụ hoặc khi có nhu cầu đột xuất.

  2. Full-time: Thuê nhân lực cho các vị trí công việc dài hạn, ổn định.

  3. Intern: Cung cấp cơ hội cho sinh viên học hỏi kinh nghiệm thực tế trong môi trường làm việc chuyên nghiệp

  4. Part-time: Thuê nhân lực cho các vị trí công việc không yêu cầu làm việc toàn thời gian.

  5. Temporary: Thuê nhân lực cho các vị trí công việc thay thế cho nhân viên chính thức nghỉ thai sản, nghỉ phép, hoặc khi có nhu cầu đột xuất.

  • Để có cái nhìn trực quan và đưa ra những nhận xét cụ thể, chúng ta sẽ phân tích số lượng đơn đăng tuyển nhân viên theo các loại công việc bên dưới.
a %>% group_by(Work.Type) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = Work.Type)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_void() 

Chú thích

  • Contract: là loại công việc mà người lao động làm việc theo hợp đồng đã kí, có thời hạn cụ thể như 3 tháng hoặc 1 năm, và có thể được gia hạn thêm nếu cần.

  • Full-time: là công việc toàn thời gian, người lao động sẽ làm việc theo giờ hành chính, thường là 8 tiếng mỗi ngày.

  • Intern: là một chương trình đào tạo ngắn hạn dành cho sinh viên hoặc người mới tốt nghiệp, nhằm mục đích học hỏi kinh nghiệm thực tế trong môi trường làm việc.

  • Part-time: là công việc bán thời gian, người lao động thường làm việc khoảng 4-5 tiếng mỗi ngày, chủ yếu trong các cửa hàng, nhà hàng hoặc các tổ chức khác để kiếm thêm thu nhập và tích lũy kinh nghiệm làm việc.

  • Temporary: là loại hình công việc ngắn hạn có thời gian từ vài ngày đến vài tháng, thường không quá 12 tháng. Loại công việc này thích hợp cho những người muốn thử sức với nhiều loại hình công việc khác nhau.

Nhận xét biểu đồ

  • Loại công việc Part-time chiếm tỷ lệ cao nhất, trong khi loại công việc Intern chiếm tỷ lệ thấp nhất, với một chênh lệch là 84.

  • Loại hình Full-time và Part-time thường được doanh nghiệp ưa chuộng trong việc tuyển dụng, trong khi 3 loại công việc còn lại thường ít được lựa chọn hơn.

=> Với sự chênh lệch chỉ là 84, không có sự chênh lệch lớn giữa việc quan tâm đến lực lượng lao động trẻ và mức độ ưa chuộng với các loại công việc khác nhau trong doanh nghiệp. Tuy nhiên, mục tiêu lựa chọn loại công việc của doanh nghiệp vẫn thể hiện sự trọng trách đặc biệt đối với việc xây dựng đội ngũ nhân viên ổn định, có kinh nghiệm và sẵn sàng đóng góp ngay từ khi bắt đầu làm việc.

  • Sự chênh lệch rõ ràng giữa các loại công việc cũng có thể cho thấy doanh nghiệp có khả năng linh hoạt trong việc chọn lọc và tuyển dụng nhân viên phù hợp với nhu cầu và mục tiêu của họ. Sự linh hoạt này có thể phản ánh sự thích ứng của họ với biến động của thị trường lao động và yêu cầu công việc thay đổi.

5.2.2 Sinh viên có sẵn sàng làm công việc bán thời gian khi ra trường hay không(dữ liệu 2)

  • Khi sinh viên mới ra trường, tâm lý của họ có thể phức tạp và đa dạng, tùy thuộc vào nhiều yếu tố như kế hoạch nghề nghiệp, áp lực từ gia đình và xã hội, sự tự tin trong bản thân, và nhiều yếu tố khác.

  • Dựa vào khảo sát về tâm lý của sinh viên mới ra trường, chúng ta thấy rằng họ thường mang nhiều hy vọng và mục tiêu. Nhìn vào biểu đồ đã được lập bên dưới, chúng ta có thể quan sát một cách trực quan hơn về nhu cầu của sinh viên khi họ có sẵn sàng tham gia vào các công việc bán thời gian (Part-time) hay không.

dl2 %>% group_by(part.time.job) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = part.time.job)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_void() 

Nhận xét biểu đồ

  • Hầu hết các sinh viên khảo sát đều không muốn làm việc Part-time khi ra trường cách biệt về số lượng là 153 với khoảng 82.6%.

=> Việc này phản ánh vào nhu cầu của sinh viên, khi họ thường muốn tập trung vào công việc chính và mong muốn có một công việc full-time, ổn định hơn. Đa số sinh viên cũng có đủ nhu cầu tài chính và thậm chí nhận được sự hỗ trợ từ gia đình. Một số lớn sinh viên không thích làm những công việc “gò bó” trong các công ty hoặc làm việc trong môi trường văn phòng, thay vào đó, họ có xu hướng tìm kiếm các cơ hội nghề nghiệp liên quan đến mạng xã hội như làm TikToker, YouTuber, và những nghề nghiệp mới nổi hiện nay. Hoặc họ có thể tập trung vào việc tiếp tục học hỏi và phát triển kỹ năng để đạt được các bằng cấp cao hơn như thạc sĩ hoặc tiến sĩ và đi học.

5.3 Đi sâu hơn cơ hội nghề nghiệp từng ngành nghề theo năm(dữ liệu 1)

  • Hầu hết các ngành nghề đều bị ảnh hưởng trong giai đoạn 2021-2023(thời kì covid) đặc biệt là lĩnh vực du lịch, hàng không, các hàng quán ăn uống, giải trí và thể thao giảm xuống nhưng cũng tạo động lực cho nhóm ngành về công nghệ thông tin, ngành logistics, y tế, sản xuất các sản phẩm thiết yếu phát triển mạnh.

  • Từ đó sẽ có xu hướng phát triển mới, bắt buộc các lực lượng lao động phải tích cực đổi mới và hoàn thiện để hòa nhập trong bối cảnh hiện nay.

  • Để rõ hơn ta sẽ phân tích số liệu trình độ học vấn mà các danh nghiệp yêu cầu qua biểu đồ sau.

a %>% group_by(Qualifications,Job.Posting.Year) %>% summarise(n=n()) %>%
  ggplot(aes(x = Qualifications,y = n)) +
    geom_col(position = 'dodge',fill = 'lightblue') +
    facet_wrap(~Job.Posting.Year) +
    theme(axis.text.x = element_text(angle = 45)) + #xoay 45 độ cho chú thích
    geom_text(aes(label = n),vjust = 0, color = 'red') +
  labs(title = "Biểu đồ thể hiện cơ hội của từng ngành nghề theo từng năm") +
    labs(x = 'Các loại bằng theo ngành', y = 'Số lượng')
## `summarise()` has grouped output by 'Qualifications'. You can override using
## the `.groups` argument.

Chú thích

  • B.Com: bằng cử nhân có liên quan đến kinh doanh, thương mại và tài chính

  • B.Tecb: bằng cử nhân liên quan đến kỹ thuật, công nghệ

  • BA: bằng cử nhân khoa học xã hội

  • BBA: bằng cử nhân quản trị kinh doanh

  • BCA: bằng cử nhân thương mại và quản trị

  • M.Com: bằng thạc sĩ có liên quan đến kinh doanh, thương mại và tài chính

  • M.Tecb: bằng thạc sĩ liên quan đến kỹ thuật, công nghệ

  • MBA: bằng thạc sĩ quản trị kinh doanh

  • MCA: bằng thạc sĩ thương mại và quản trị

  • Ph.D: bằng tiến sĩ của tất cả các ngành.

Nhận xét biểu đồ

  • Biểu đồ năm 2021 thể hiện trình độ học vấn gần như khá đồng đều từ trình độ cao nhất B.Tecb và thấp nhất BBA chênh lệch là 18.

  • Năm 2022 cải thiện một cách đáng kể khi số lượng đơn đăng tuyển nhân viên tăng gấp khoảng 3 đến 4 lần so với năm trước, đặc biệt với trình độ MCA được ưa chuộng nhất, và ít nhất là Ph.D, với chênh lệch khoảng 70.

  • Trong năm 2023, dù chỉ xét đến tháng 9, nhưng có thể thấy rõ doanh nghiệp đang ưu tiên những ứng viên có trình độ học vấn cao, đặc biệt là Ph.D, và ít ưu tiên những ứng viên có trình độ B.Com, với chênh lệch là 31.

=> Từ đó cho thấy không thể nào phủ nhận bằng cấp quan trọng, thể hiện bằng việc hầu hết các công việc đều yêu cầu bằng cấp, theo thời gian trình đồ càng cao thì tỷ lệ nhận được việc càng lớn thể hiện qua biểu đồ năm 2023.

  • Ngành trọng điểm cho thể quan sát trong 3 biểu đồ là ngành BBA(72,269,180),B.Tecb(82,247,185), quản trị kinh doanh và kỹ thuật, công nghệ luôn chiếm số lượng trung bình đến lớn nhu cầu doanh nghiệp mong muốn.(mặt bằng chung qua từng năm)

  • Nhu cầu cần nguồn nhân lực qua trình độ học vấn MCA(79,287,165) trong lĩnh vực thương mại và quản trị dang ngày mất ưu thế trong mắt các danh nghiệp.

5.4 Đánh giá mức độ stress sinh viên ở 4 ngành học thể hiện rõ nhất trong thời kì covid - 19(dữ liệu 2)

  • Mức độ stress của sinh viên có thể ảnh hưởng nhiều đến việc làm sau khi ra trường. Đây là một vấn đề nan giải và không chỉ giới hạn ở một lứa tuổi hay một công việc cụ thể nào. . Stress có thể ảnh hưởng đến hiệu suất làm việc, sự sáng tạo, và trạng thái tinh thần chung của cá nhân.

  • Để chứng thực điều này ta sẽ phân tích bằng biểu đồ để so sánh số liệu theo giới tính theo 4 ngành đăc trưng.

dl2 %>% group_by(Gender,Department,Stress.Level) %>% summarise(n=n()) %>%
  ggplot(aes(x = Stress.Level, y = n, fill = Department)) +
    geom_col(position = 'dodge') +
    facet_wrap(~Gender) +
    labs(title = "Biểu đồ thể hiện mức độ stress sinh viên theo giới tính và lĩnh vực ") +
    labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'Gender', 'Department'. You can override
## using the `.groups` argument.

Chú thích

  • Thống kê theo 4 lĩnh vực :
  1. B.com Accounting and Finance(Kế toán và Tài chính)

  2. B.com ISM(Quản trị Hệ thống Thông tin)

  3. Commerce (Kinh doanh thương mại)

  4. BCA (thương mại và quản trị)

  • Mức độ stress:

1.Awful: stress rất nặng/ rất tệ

2.Bad: stress năng/tệ

3.fabulous: Stress nhẹ

4.Good: tâm lý tốt.

Nhận xét biểu đồ

  • Đối với nữ sinh viên, mức độ tâm lý rất tệ và tâm lý tốt đều nằm trong lĩnh vực BCA, trong khi ở mục tâm lý tốt, ngành Commerce có mức cao khá đồng đều với lĩnh vực BCA. Tổng quan, số lượng sinh viên nữ gặp phải tâm lý ở mức nặng và tỷ lệ sinh viên có tâm lý tốt chỉ ở mức tương đối không quá cao (với tỷ lệ cao nhất vẫn là tâm lý tốt). Lĩnh vực B.Com ISM có sự phân bố khá đồng đều ở 3 mức độ tâm lý (trừ mức tâm lý rất tệ).

  • Đối với nam thì tâm lý rất tệ và tâm lý tốt cao nhất cũng nằm chung một lình vưc BCA. Tổng quan về số lượng tâm lý tốt là cao nhất và tâm lý mực độ nhẹ ít nhất(không có lĩnh vực hệ thống thông tin)

=> Tóm lại nam giới có thể có tâm lý tốt hơn nữ và cũng áp lực nhiều hơn nữ. Mức độ mắc vấn đề tâm lý có thể thay đổi theo từng cá nhân, môi trường sống, và hoàn cảnh cá nhân. Việc cải thiện không phải là quá trình ngắn cần có nhiều thời gian và kiên trì thực hiện các biện pháp cụ thể.

5.5 Tác động kinh nghiệm làm việc theo giới tính(dữ liệu 1)

  • Vì nhu cầu về công việc, các yêu cầu liên quan đến giới tính có thể ảnh hưởng mạnh mẽ đến nhiều thực trạng không tốt như đối xử bất công trong công việc, đặc biệt là đối với phụ nữ. Một số công ty thiết lập các hạn chế tuyển dụng đối với phụ nữ đã kết hôn hoặc đang trong độ tuổi sinh nở, và yêu cầu phụ nữ cam kết không sinh con trong một khoảng thời gian nhất định. Ngoài ra, phụ nữ thường phải đối mặt với nhiều định kiến, ví dụ như quan điểm rằng họ luôn gặp khó khăn trong việc cân bằng giữa công việc và cuộc sống, điều này có thể hạn chế sự phát triển của họ.

  • Để đánh giá và hiểu rõ hơn về tình hình này, chúng ta sẽ phân tích các biến kinh nghiệm và yêu cầu liên quan đến giới tính mà các doanh nghiệp đặt ra.

a %>% group_by(Experience, Preference) %>%  summarise(n=n()) %>%  
    mutate(Experience = factor(Experience, levels = c("0 to 8 Years","0 to 9 Years","0 to 10 Years"))) %>% 
    ggplot(aes(x = Preference, y = n, fill = Experience)) +
    geom_col(position = position_dodge()) +
    labs(title = "Biểu đồ thể hiện kinh nghiệm làm việc theo giới tính") +
    labs(x = 'Giới tính', y = 'Số lượng')  
## `summarise()` has grouped output by 'Experience'. You can override using the
## `.groups` argument.

Chú thích

  • NA: màu đen là số lượng còn lại của các khoảng kinh nghiệm khác

  • Ở đây vì phân tích cơ hội việc làm sinh viên mới ra trường nên số kinh bắt đầu từ 0 và em chọn 3 khoảng để dể quan sát và trực quan hóa dữ liệu hơn.Và chủ yếu phân tích 3 trình độ kinh nghiệm đó

Nhận xét biểu đồ

  • Đối với giới tính nữ, yêu cầu về kinh nghiệm trong khoảng 0-9 năm nổi bật hơn so với 2 mức kinh nghiệm còn lại, tuy chênh lệch không quá lớn.

  • Đối với giới tính nam, yêu cầu về kinh nghiệm trong khoảng 0-10 năm là cao nhất, trong khi mức kinh nghiệm 0-9 năm ít nhất, chênh lệch khoảng 10 đơn tuyển dụng giữa hai mức này.

  • Nhìn chung, Ở mức độ khá cân bằng và tăng đều thì nằm ở những công việc yêu cầu cả 2 giới thường ưu tiên yêu cầu kinh nghiệm 0-10 năm. Các mức yêu cầu kinh nghiệm còn lại thường khá cân bằng và không có sự chênh lệch quá lớn so với mức yêu cầu cao nhất.

=> Việc phân chia khoảng kinh nghiệm có thể tạo cơ hội cho các sinh viên mới ra trường có cơ hội thử sức. Tuy nhiên, theo biểu đồ, các công việc chỉ ưu tiên nữ thường có thị phần thấp hơn so với các công việc ưu tiên nam, và cho cả hai giới tính (Điều này có thể gây ra tỷ lệ thất nghiệp nữ cao hơn nam - 2023/ Nam giới: 2,17%,Nữ giới: 2,73%-)(4). Nam giới thường yêu cầu kinh nghiệm cao hơn so với nữ. Tuy nhiên, quan sát cho thấy không có sự chênh lệch lớn giữa 2 giới tính trong nhu cầu tuyển dụng (qua 3 mức kinh nghiệm nêu trên).

5.6 Tác động thời gian học tập ảnh hưởng đến kỳ vọng tiền lương của các sinh viên khi ra trường(dữ liệu 2)

  • Thời gian dành cho học tập có thể có tác động tích cực đến cơ hội nghề nghiệp của sinh viên. Sinh viên dành nhiều thời gian cho việc học tập thường có kiến thức và kỹ năng tốt hơn, khả năng cạnh tranh cao hơn, mạng lưới quan hệ rộng rãi hơn và tạo giá trị bản thân cao hơn. Tất cả những yếu tố này đều đóng góp vào việc giúp họ tìm kiếm công việc một cách dễ dàng hơn và có cơ hội thành công cao hơn trong sự nghiệp.

  • Để hiểu rõ hơn về sự tác động của thời gian học tập đối với kỳ vọng tiền lương trong tương lai, ta sẽ tạo biểu đồ để có cái nhìn toàn diện về quá trình này.

dl2 %>% group_by(daily.studing.time) %>% summarise(m= mean(salary.expectation)) %>%
  ggplot(aes(x = daily.studing.time , y = m,fill = daily.studing.time)) +
    geom_col(position = 'dodge') +
    geom_text(aes(label = round(m)), vjust = 0, color = 'red') +
    theme(axis.text.x = element_text(angle = 45)) +
    labs(title = "Biểu đồ thể hiện thời gian học tập ảnh hưởng đến kỳ vọng tiền lương") +
    labs(x = 'Giới tính', y = 'Số lượng')

Chú thích

  • Tính trung bình tiền lương theo thời gian học tập thể hiện bằng các màu sắc hiện thị trên biểu đồ.

Nhận xét biểu đồ

  • Kỳ vọng tiền lương của các sinh viên dành thời gian học tập trên 4 giờ/ngày cao nhất, trong khi thấp nhất là đối với sinh viên dành 3-4 giờ/ngày, chênh lệch là 93076 theo mức trung bình lương kỳ vọng.

  • Thời gian học tập có thể rất ít nếu vấn đề có thể giải quyết ngay trên lớp từ 0-60 phút, tăng lên theo mức độ khó của bài tập.

=> Quan sát có thể thấy ở những sinh viên dành nhiều thời gian cho việc học mới dám tự tin đặt kỳ vọng tiền lương cao và ổn định. Những sinh học học từ 2-3 tiếng và 3-4 tiếng vẫn còn có sự dè chừng (hoặc thiếu nhiều kỹ mềm, thiếu kinh nghiệm làm việc, nền tảng trước đó không tốt,… ). Vì vậy, mức lương thực tế của mỗi sinh viên sẽ phụ thuộc vào nhiều yếu tố khác nhau, như năng lực của bản thân, kinh nghiệm làm việc, thị trường lao động. Ngoài ra học làm sao cho hiệu quả với bản thân sinh viên mới quan trọng hơn chú trọng nhiều vào thời gian.

5.7 Xu hướng điểm tốt nghiệp của sinh viên trong 4 khối ngành cụ thể(dữ liệu 2)

  • Rèn luyện và học tập đóng vai trò quan trọng đối với kết quả học tập của sinh viên khi ra trường, đồng thời cũng phản ánh một phần về chất lượng giáo dục và sự phát triển của sinh viên trong từng lĩnh vực. Qua việc nhìn nhận xu hướng chung về sự phân bố điểm tốt nghiệp trong từng ngành, cũng như các biến động đặc biệt, sinh viên có thể hiểu rõ hơn về mức độ đáp ứng của giáo dục đối với nhu cầu của thị trường lao động hiện nay.

  • Phân tích trực diện bằng cách xác định mối quan hệ giữa điểm tốt nghiệp và thành công trong việc tìm kiếm việc làm sau này, ta có thể đánh giá được tầm quan trọng của việc đạt được điểm cao trong việc xây dựng sự nghiệp.

  • Để có cái nhìn tổng quan và hữu ích hơn ta sẽ nhìn vào biểu đồ về xu hướng điểm tốt nghiệp của sinh viên trong 4 ngành cụ thể bên dưới.

dl2 %>% ggplot(aes(x = college.mark,fill = Department)) +
  geom_histogram(binwidth = 10) +
  labs(title = "Biểu đồ thể hiện điểm tốt nghiệp sinh viên trong 4 ngành cụ thể") +
    labs(x = 'Điểm số', y = 'Số lượng')

Nhận xét biểu đồ

  • Trong các ngành, khối ngành Commerce đạt điểm đầu ra cao nhất, với nhiều sinh viên đạt điểm tốt nghiệp 100.

  • Khối ngành B.com Accounting and Finance, BCA là khối ngành có điểm tương đối ổn dịnh nằm chủ yếu ở vùng điểm 60-80 điểm.( Trong đó khối ngành BCA có số lượng sinh viên khảo sát nhiều nhất và B.com Accounting and Finance sinh viên khảo sát ít nhất trong bảng số liệu).

  • Khối ngành B.com ISM có thang điểm tốt nghiệp thấp hơn nằm chủ yếu ở khoảng 50-65 chiếm đa số.

  • Nhìn chung: Điểm tốt nghiệp của các ngành tập trung chủ yếu trong khoảng 50-90 điểm, với đỉnh cao nhất nằm ở khoảng 70-75 điểm. Không có ngành nào nằm ở vùng điểm dưới 25.

=> Qua đó tùy vào mục tiêu sinh viên và tiêu chí của khác nhau mà thang điểm tốt nghiệp cũng dao động lên xuống tùy vào nhu cầu thị trường.

  • Theo quan sát có thể ngành Commerce sẽ có cơ hội phát triển cao, với số điểm tốt nghiệp càng cao(có kỹ năng và kiến thức chuyên môn tốt) tạo ra cạnh tranh nhiều hơn về cơ hội nghề nghiệp các khối ngành khác, dể dàng lựa chọn ngành nghề hoặc vị trí làm việc tốt hơn trong lĩnh vực đó, thu hút nhà tuyển dụng.

  • Ngược lại với nhóm ngành B.com ISM đa phần có số điểm tốt nghiệp chỉ mức chung bình khá đem lại nhiều bất lợi khi phải cạnh tranh khốc liệt với một số sinh viên điểm cao trong cùng khối ngành, khó khăn trong việc muốn học lên cao hơn- thạc sĩ, gặp khó khăn trong việc thuyết phục các nhà tuyển dụng lụa chọn mình(kèm theo phải lựa chọn nghề nghiệp có mức lương thấp).

  • Còn 2 ngành còn lại nằm ở giữa cũng gặp một số lợi thế của ngành Commerce và một số bất lợi giống nhóm ngành B.com ISM.

5.8 Tác động quy mô công ty đến cơ hội làm việc của sinh viên theo từng năm(dữ liệu 1)

  • Biến động trong quy mô công ty ảnh hưởng đến phong cách tuyển dụng của họ qua các năm, điều này có tác động lớn đến xu hướng các ngành nghề, đặc biệt là các công ty lớn, giúp định hình cơ hội nghề nghiệp của sinh viên trong từng lĩnh vực và khu vực cụ thể.

  • Từ đó, việc có cái nhìn tổng quan giúp dự đoán liệu quy mô của các công ty có thể phát triển thêm hay không, từ đó phân bổ nguồn lực một cách hợp lý. Các số liệu qua các năm được thể hiện trên biểu đồ để minh họa điều này.

a %>% ggplot(aes(x = Job.Posting.Year, y = Company.Size)) +
  geom_smooth(method = "loess") +
  scale_x_continuous(breaks = seq(2021, 2023, by = 1)) +
  labs(title = "Biểu đồ thể hiện quy mô công ty ảnh hưởng đến cơ hội làm việc theo năm") +
    labs(x = 'Năm', y = 'Số lượng')
## `geom_smooth()` using formula = 'y ~ x'
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : pseudoinverse used at 2021
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : neighborhood radius 2.01
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : reciprocal condition number 2.0679e-14
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : There are other near singularities as well. 1.0201
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : pseudoinverse used at
## 2021
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : neighborhood radius
## 2.01
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : reciprocal condition
## number 2.0679e-14
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : There are other near
## singularities as well. 1.0201

Chú thích

  • Quy mô công ty: là số lượng công nhân viên của công ty

Nhận xét biểu đồ

  • Trong năm 2022 quy mô các công ty mở rộng nhiều nhất, và trũng nặng xuống theo biểu đồ là năm 2021 với dịch bệnh covid- 19 khiến nhiều công ty phải đóng cửa.

  • Mặc dù chỉ có số liệu đến tháng 9 trong năm 2023, nhưng dường như tình hình khá khả quan, có thể tạo điều kiện cho sự phục hồi và tăng trưởng mạnh mẽ trong những tháng tiếp theo.

=> Từ đó, có thể thấy rằng quy mô của các công ty lớn càng lớn, càng tạo ra nhiều cơ hội và cạnh tranh cho thị trường lao động. Các công ty lớn thường có nhu cầu tuyển dụng đa dạng hơn, mang lại nhiều cơ hội học hỏi và phát triển kỹ năng cho sinh viên, cùng với mức lương và các phúc lợi hấp dẫn hơn. Điều này có thể thúc đẩy sinh viên học tập và trau dồi bản thân hơn.

  • Tuy nhiên, cả công ty lớn và nhỏ đều có những ưu và nhược điểm riêng. Sinh viên cần cân nhắc kỹ các yếu tố như sở thích, năng lực, mục tiêu nghề nghiệp và mong muốn phát triển bản thân để lựa chọn công ty phù hợp.

  • Theo nhu cầu của sinh viên thì đa số thích làm việc doanh nghiệp lớn. Nhưng số lượng sinh viên mỗi năm ra trường là rất lớn và cạnh tranh rất cao. Đồng nghĩa số lượng lớn sinh viên chủ yếu làm ở các công ty nhỏ và vừa.

Trên thực tế

  • Theo báo cáo của Bộ Kế hoạch và Đầu tư năm 2023:(5)

Doanh nghiệp lớn:

Chiếm 20% số lượng doanh nghiệp, đóng góp 80% GDP và tạo ra 60% việc làm.

Tuyển dụng 30% sinh viên mới tốt nghiệp.

Doanh nghiệp vừa và nhỏ:

Chiếm 80% số lượng doanh nghiệp, đóng góp 20% GDP và tạo ra 40% việc làm.

Tuyển dụng 70% sinh viên mới tốt nghiệp.

5.9 So sánh nhu cầu danh nghiệp tuyển dụng thông qua quy mô của 5 quốc gia Đông Nam Á(dữ liệu 1)

  • Thị trường lao động của các quốc gia Đông Nam Á phản ánh nhiều mức độ và khía cạnh khác nhau. Quy mô của thị trường lao động thường phản ánh kích thước và sức mạnh của nền kinh tế, mức độ cạnh tranh, khả năng tạo ra việc làm với lực lượng lao động trong nước, cũng như tầm ảnh hưởng trong các ngành và hoạt động kinh doanh quốc tế của các doanh nghiệp trong khu vực.

  • Để làm rõ hơn, chúng ta có thể tạo biểu đồ để minh họa sự thay đổi của quy mô theo từng năm trong bộ dữ liệu nghiên cứu.

library(googledrive)
library(tidyverse)
library(gganimate)
## Warning: package 'gganimate' was built under R version 4.3.3
library(magick)
## Warning: package 'magick' was built under R version 4.3.3
## Linking to ImageMagick 6.9.12.98
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
c <- dl1 %>% filter(Country %in% c( "Thailand" , "Indonesia", "Vietnam", "Malaysia", "Singapore"))
c %>% ggplot(aes(x = Job.Posting.Year, y = Company.Size, color = Country)) +
  geom_line() +
  geom_point(size=2) +
  scale_x_continuous(breaks = seq(2021, 2023, by = 1)) + # dữ khoảng cách.
  transition_reveal(Job.Posting.Year, keep_last = F) + 
  labs(title = "Biểu đồ thể hiện quy mô công ty của 5 quốc gia theo năm") +
    labs(x = 'Năm', y = 'Số lượng')

Chú thích

  • Chọn Thailand, Indonesia, Vietnam, Malaysia và Singapore trong khu vực Đông Nam Á làm các quốc gia tham chiếu là một cách tiếp cận gần gũi với thị trường lao động của Việt Nam. Các quốc gia này đều đang phát triển ổn định và đứng đầu trong số 11 quốc gia của khu vực Đông Nam Á.

Nhận xét biểu đồ

  1. Giai đoạn 2021-2022
  • Malaysia là quốc gia biến đổi phức tạp trong quá trình này, trải qua một sự giảm mạnh từ vị trí quốc gia có quy mô lớn nhất xuống đến vị trí cuối cùng trong số 5 quốc gia.

  • Các nước Indonexia, Singapore, Thailand có xu hương tăng nhưng ổn định.(trong đó đứng đầu là Indonexia, tiếp đến Thailand, đứng thứ 4 là Singapore)

  • Quốc gia có xu hướng tăng mạnh hơn trong giai đoạn này là Vietnam, mặc dù không vượt qua Indonesia hoặc Thailand để đứng đầu.

  1. Giai đoạn 2022-9/2023
  • Trong thời điểm này, Indonesia trở thành quốc gia biến động phức tạp nhất, trải qua một sự suy giảm mạnh từ vị trí quốc gia có quy mô lớn nhất xuống đến vị trí cuối cùng trong số 5 quốc gia. Tình hình này kém hơn cả Malaysia trong một khoảng thời gian trước đó.

  • Malaysia bắt đầu tái phát triển mạnh mẽ, theo xu hướng tăng trưởng nhưng không đạt được như thời điểm năm 2021 (chỉ đứng ở vị trí thứ 2).

  • Thailand và Singapore đều có xu hướng tăng trưởng quy mô khá ổn định. Tuy nhiên, Thailand vẫn đang tăng trưởng nhanh hơn kể từ năm 2022 và giành vị trí thứ 1, trong khi Singapore giành được vị trí thứ 3.

  • Vietnam cũng tăng trưởng nhưng mức độ chậm hơn tụt lại phía sau của Singapore.

=> Qua đó, ta có thể thấy rằng quy mô của các quốc gia có thể bị ảnh hưởng bởi nhiều yếu tố, bao gồm cả tác động của đại dịch COVID-19 và diện tích lãnh thổ của quốc gia. Ví dụ, Singapore có diện tích lãnh thổ nhỏ nhất trong khu vực, điều này khiến quy mô của nó khó có thể tăng trưởng nhanh chóng. Trong giai đoạn 2021-2023, Singapore có thể đứng ở vị trí 3 hoặc 4 trong số các quốc gia Đông Nam Á, mặc dù nó vẫn là một trong những quốc gia phát triển nhất trong khu vực. Thailand, mặc dù là quốc gia có quy mô doanh nghiệp lớn nhất, nhì và vị trí phát triển tốt, nhưng vẫn không thể vượt mặt Singapore.

  • Nhìn nhận giai đoạn đầu, có thể nói rằng Việt Nam là một trong những quốc gia có tốc độ phát triển kinh tế nhanh nhất trong khu vực Đông Nam Á. Tuy nhiên, cần phải xem xét nhiều yếu tố khác nhau để hiểu rõ hơn về quy mô và sự phát triển của mỗi quốc gia trong khu vực.

6 Chương 4: Đưa ra giải pháp.


6.1 Về phía sinh viên.

  • Nâng cao kỹ năng và kiến thức: Sinh viên nên liên tục cập nhật và phát triển kỹ năng chuyên môn cũng như kỹ năng mềm như giao tiếp, quản lý thời gian, làm việc nhóm. Từ đó có thể lập kế hoạch và mục tiêu cụ thể ngay từ đầu. Điều này giúp tăng khả năng cạnh tranh và phát triển trong sự nghiệp.

  • Thực tập và học hỏi thêm kinh nghiệm: Sinh viên nên tận dụng cơ hội thực tập để tích lũy kinh nghiệm thực tế trong lĩnh vực mình quan tâm cho các công ty. Việc này không chỉ giúp xây dựng mạng lưới quan hệ mà còn tăng cơ hội được tuyển dụng sau khi tốt nghiệp.

  • Xây dựng mạng lưới quan hệ: Kết nối và tạo mối quan hệ với giáo viên, cựu sinh viên, và các chuyên gia trong lĩnh vực làm việc của mình để có cơ hội học hỏi và nhận được sự hỗ trợ trong tìm kiếm việc làm.

  • Nắm vững thông tin thị trường lao động: Theo dõi và nghiên cứu về xu hướng và yêu cầu của thị trường lao động trong lĩnh vực mình quan tâm. Điều này giúp sinh viên hiểu rõ về cơ hội và thách thức, từ đó có kế hoạch phát triển sự nghiệp hiệu quả hơn.

  • Chủ động và sẵn sàng thay đổi: Sinh viên cần linh hoạt và chủ động trong việc thay đổi kế hoạch nghề nghiệp và học tập để phản ứng với sự biến động của thị trường lao động.

  • Tận dụng các nguồn thông tin và nguồn lực: Sử dụng các nguồn thông tin và dịch vụ hỗ trợ từ trường học, các tổ chức sinh viên, cũng như các trang web, diễn đàn trực tuyến để tìm kiếm thông tin về việc làm và cơ hội nghề nghiệp.

=> Những giải pháp này giúp sinh viên tự tin và sẵn sàng đối mặt với thị trường lao động, tăng cơ hội thành công trong sự nghiệp sau khi tốt nghiệp.

6.2 Về phía nhà trường

  • Tăng cường hợp tác với doanh nghiệp: Nhà trường nên thúc đẩy việc hợp tác chặt chẽ với các doanh nghiệp để hiểu rõ nhu cầu của thị trường lao động và cung cấp cho sinh viên các cơ hội thực tập, tuyển dụng và hỗ trợ việc làm sau tốt nghiệp.

  • Phát triển chương trình học tập linh hoạt: Nhà trường nên thiết kế các chương trình học tập linh hoạt và đa dạng, kết hợp giữa lý thuyết và thực hành, giúp sinh viên phát triển kỹ năng cần thiết cho thị trường lao động.

  • Tạo điều kiện cho việc rèn luyện kỹ năng mềm: Kỹ năng mềm như giao tiếp, làm việc nhóm, quản lý thời gian, và giải quyết vấn đề là rất quan trọng trong môi trường làm việc. Nhà trường có thể cung cấp các khóa đào tạo và hoạt động rèn luyện kỹ năng mềm cho sinh viên.

  • Hỗ trợ phát triển nghề nghiệp: Nhà trường nên cung cấp các dịch vụ tư vấn nghề nghiệp, hỗ trợ việc làm, và mạng lưới liên kết với các doanh nghiệp và cộng đồng kinh doanh để giúp sinh viên tìm kiếm cơ hội việc làm phù hợp sau khi tốt nghiệp.

  • Tiếp tục nâng cao chất lượng giáo dục: Nhà trường cần liên tục cải thiện chất lượng giáo dục bằng cách đầu tư vào cơ sở vật chất, nâng cao trình độ giảng viên, và cập nhật chương trình học phù hợp với xu hướng và nhu cầu của thị trường lao động.

=> Tóm lại, bằng việc thực hiện các giải pháp này, nhà trường có thể giúp sinh viên chuẩn bị tốt cho thị trường lao động hiện nay và tương lai.

6.3 Về phía doanh nghiệp

  • Tăng cơ hội thực tập và học nghề: Các doanh nghiệp có thể tạo ra các chương trình thực tập và học nghề để cung cấp cho sinh viên cơ hội trải nghiệm thực tế và phát triển kỹ năng cần thiết trong ngành. Điều này giúp sinh viên có cơ hội học hỏi và tích luỹ kinh nghiệm trước khi tốt nghiệp.

  • Xây dựng mối quan hệ với trường đại học và cao đẳng: Các doanh nghiệp có thể hợp tác chặt chẽ với các trường đại học và cao đẳng để tạo ra các chương trình đào tạo phù hợp với nhu cầu thị trường lao động. Điều này giúp đảm bảo rằng sinh viên được trang bị đủ kiến thức và kỹ năng để thích nghi với công việc sau khi tốt nghiệp.

  • Tạo ra các chương trình đào tạo nội bộ: Các doanh nghiệp có thể tổ chức các chương trình đào tạo nội bộ để giúp sinh viên tiếp cận và làm quen với môi trường làm việc của họ trước khi bước vào thực tế. Điều này giúp giảm thời gian hòa nhập và tăng hiệu suất làm việc của sinh viên sau khi gia nhập doanh nghiệp.

  • Xây dựng mối quan hệ dài hạn với sinh viên: Các doanh nghiệp có thể tạo ra các chương trình liên kết và mối quan hệ dài hạn với các sinh viên thông qua việc cung cấp cơ hội thực tập, học bổng và chương trình phát triển nghề nghiệp. Điều này giúp thu hút và giữ chân những sinh viên tài năng và tiềm năng cho công ty.

=> Bằng cách thực hiện những giải pháp này, các doanh nghiệp có thể tạo ra môi trường làm việc thuận lợi và cơ hội phát triển cho sinh viên, đồng thời đáp ứng được nhu cầu của thị trường lao động hiện nay.

6.4 Về phía nhà nước

  • Tăng cường hỗ trợ giáo dục và đào tạo: Nhà nước có thể đầu tư vào các chương trình giáo dục và đào tạo để cải thiện chất lượng và độ phổ cập của giáo dục, đặc biệt là trong các ngành công nghệ thông tin, y tế, và sản xuất. Điều này giúp sinh viên tiếp cận được kiến thức và kỹ năng phù hợp với nhu cầu thị trường lao động.

  • Tạo ra cơ hội thực tập và học nghề: Nhà nước có thể thúc đẩy việc hợp tác giữa trường học và doanh nghiệp để cung cấp cơ hội thực tập và học nghề cho sinh viên. Điều này giúp sinh viên có cơ hội áp dụng kiến thức vào thực tế, phát triển kỹ năng và tích luỹ kinh nghiệm làm việc.

  • Xây dựng chính sách hỗ trợ cho doanh nghiệp và doanh nhân: Nhà nước có thể thiết lập các chính sách hỗ trợ cho doanh nghiệp và doanh nhân, đặc biệt là các doanh nghiệp nhỏ và vừa. Điều này bao gồm việc cung cấp vốn vay ưu đãi, hỗ trợ về đào tạo nhân viên, và tạo điều kiện thuận lợi cho hoạt động kinh doanh.

  • Thúc đẩy sự phát triển của các ngành công nghiệp tiềm năng: Nhà nước có thể tập trung vào việc phát triển các ngành công nghiệp tiềm năng như công nghệ thông tin, năng lượng tái tạo, và dịch vụ y tế. Điều này tạo ra nhiều cơ hội việc làm mới cho sinh viên và giúp thúc đẩy sự phát triển kinh tế.

  • Đảm bảo công bằng và cơ hội công việc: Nhà nước cần đảm bảo rằng thị trường lao động có sự công bằng và cơ hội công việc cho tất cả các sinh viên, không phân biệt đối xử dựa trên giới tính, dân tộc, hoặc nguồn gốc xã hội.

=> Bằng cách thực hiện những giải pháp này, nhà nước có thể giúp cải thiện tình hình thị trường lao động và tạo ra cơ hội cho sự phát triển của sinh viên và nền kinh tế đất nước.

7 Chương 5: Kết luận.


Trong bài tiểu luận về cơ hội nghề nghiệp của sinh viên, chúng ta đã thảo luận về một loạt các yếu tố ảnh hưởng đến việc tìm kiếm việc làm của sinh viên mới ra trường. Từ việc xem xét xu hướng thị trường lao động đến phân tích về tâm lý và kỹ năng của sinh viên, chúng ta có cái nhìn tổng quan về cơ hội và thách thức mà sinh viên đối mặt khi bước vào thị trường lao động.

Cơ hội nghề nghiệp của sinh viên khi ra trường phụ thuộc vào sự chuẩn bị kỹ năng và kiến thức của họ, cùng với sự hỗ trợ từ phía doanh nghiệp và trường đại học. Điều này đặt ra một thách thức và cũng là cơ hội cho sinh viên để phát triển và đạt được thành công trong sự nghiệp của mình.

Việc hợp tác chặt chẽ giữa trường đại học, doanh nghiệp và chính phủ là chìa khóa để tạo ra một môi trường lao động phát triển và thúc đẩy sự thành công của sinh viên. Bằng cách này, chúng ta có thể đảm bảo rằng sinh viên sẽ có cơ hội tốt nhất để khai phá tiềm năng của mình và đạt được thành công trong sự nghiệp của mình.

LS0tDQp0aXRsZTogIlRJ4buCVSBMVeG6rE4gS+G6vlQgVEjDmkMgSOG7jEMgUEjhuqZOIg0KYXV0aG9yOiAiTmd1eeG7hW4gUGjhuqFtIEjDoCBWeSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIHRvY19kZXB0aDogMg0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICB0aGVtZTogZmxhdGx5DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICBleHRyYV9kZXBlbmRlbmNpZXM6DQogICAgICB2aWV0bmFtOiB1dGY4DQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAnMicNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQoNCiFbXShIw6AgdnkucG5nKXt3aWR0aD0iNjgyIn0NCg0KIyBM4budaSBj4bqjbSDGoW4uDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQotICAgTOG7nWkgbsOzaSDEkeG6p3UgdGnDqm4sIGVtIHhpbiBj4bqjbSDGoW4gQmFuIEdpw6FtIGhp4buHdSBuaMOgIHRyxrDhu51uZywgxJHhurdjIGJp4buHdCBsw6AgY8OhYyB0aOG6p3kgY8O0IHRyb25nIGLhu5kgbcO0biBLaG9hIEtpbmggdOG6vyAtIEx14bqtdCDEkcOjIHThuq1uIHTDrG5oIGNo4buJIGThuqtuIGVtIHLhuqV0IG5oaeG7gXUgdHJvbmcgcXXDoSB0csOsbmggaOG7jWMgdOG6rXAsIHZp4buHYyBuw6B5IMSRw6MgdsOgIMSRYW5nIHThuqFvIMSRaeG7gXUga2nhu4duIGNobyBlbSB0aOG7sWMgaGnhu4duIHThu5F0IG5o4bqldCBjw7MgdGjhu4MgYsOgaSB0aeG7g3UgbHXhuq1uIG7DoHkuIEVtIGPFqW5nIHhpbiBn4butaSBs4budaSBj4bqjbSDGoW4gc8OidSBz4bqvYyDEkeG6v24gdGjhuqd5IFRy4bqnbiBN4bqhbmggVMaw4budbmcgLSBuZ8aw4budaSBwaOG7pSB0csOhY2ggZOG6oXkgdsOgIGjhu5cgdHLhu6MgZW0gdHJvbmcgYuG7mSBtw7RuIG5nw7RuIG5n4buvIGzhuq1wIHRyw6xuaCwgbW9uZyB0aOG6p3kgY8OzIHRo4bqtdCBuaGnhu4F1IHPhu6ljIGto4buPZSB2w6AgdGjDoG5oIGPDtG5nIGjGoW4gbuG7r2EuDQoNCi0gICBDw7MgdGjhu4MgdHJvbmcga2hv4bqjbmcgMyB0aMOhbmcgaOG7jWMsIMSRw6J5IGzhuqduIMSR4bqndSBlbSDEkcaw4bujYyB0cuG6o2kgbmdoaeG7h20gdmnhu4djIHRp4bq/cCB4w7pjIHBo4bqnbiBt4buBbSwgdGhhbyB0aMOhYyBt4bubaSBuw6puIHPhur0ga2jDsyB0csOhbmgga2jhu49pIHNhaSBzw7N0IHRyb25nIHF1w6EgdHLDrG5oIHThu7EgbMOgbSBiw6BpLCBy4bqldCBtb25nIG5o4bqtbiDEkcaw4bujYyBz4buxIGfDs3Agw70gY+G7p2EgdGjhuqd5IGPDtCDEkeG7gyBjw7MgYsOgaSB0aeG7g3UgbHXhuq1uIGhvw6BuIHRoaeG7h24gaMahbi4NCg0KLSAgIEjGoW4gaOG6v3QgZW0gY2jDumMgdGjhuqd5IGPDtCBjw7MgdGjhuq10IG5oaeG7gXUgbmnhu4FtIHZ1aSB0cm9uZyBow6BuaCB0csOsbmggZ2nhuqNuZyBk4bqheSB2w6AgaOG6oW5oIHBow7pjLg0KDQojIEvhur90IGPhuqV1IMSR4buBIHTDoGkuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpO4buZaSBkdW5nIGLDoGkgdGnhu4N1IGx14bqtbiBiYW8gZ+G7k206DQoNCipDaMawxqFuZyAxOiogUGjhuqduIG3hu58gxJHhuqd1Lg0KDQoqQ2jGsMahbmcgMjoqIFThu5VuZyBxdWFuIGzDvSB0aHV54bq/dCB2w6AgZOG7ryBsaeG7h3UgbmdoacOqbiBj4bupdS4NCg0KKkNoxrDGoW5nIDM6KiBQaMOibiB0w61jaCB0aOG7sWMgdHLhuqFuZyB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcuDQoNCipDaMawxqFuZyA0OiogxJDGsGEgcmEgZ2nhuqNpIHBow6FwLg0KDQoqQ2jGsMahbmcgNToqIEvhur90IGx14bqtbi4NCg0KKkNoxrDGoW5nIDY6KiBUw6BpIGxp4buHdSB0aGFtIGto4bqjby4NCg0KIyBDSMavxqBORyAxLiBQSOG6pk4gTeG7niDEkOG6plUuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIyBMw70gZG8gZW0gY2jhu41uIMSR4buBIHTDoGkuDQoNCi0gICBW4bqlbiDEkeG7gSB2aeG7h2MgbMOgbSB24bqrbiBsdcO0biBsw6AgbeG7kWkgcXVhbiB0w6JtIGjDoG5nIMSR4bqndSBj4bunYSBt4buNaSBzaW5oIHZpw6puIGtoaSBixrDhu5tjIHbDoG8gY8OhbmggY+G7rWEgxJHhuqFpIGjhu41jLCDEkeG6t2MgYmnhu4d0IGzDoCBraGkgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIHbhuqtuIHRp4bq/cCB04bulYyBob+G6oXQgxJHhu5luZy4gVuG7m2kgxJFhIHPhu5EgZMOibiBz4buRIOG7nyBWaeG7h3QgTmFtIHThuq1wIHRydW5nIOG7nyDEkeG7mSB0deG7lWkgZMaw4bubaSAzMCwgbsaw4bubYyB0YSBjw7Mgbmd14buTbiBsYW8gxJHhu5luZyBk4buTaSBkw6BvLCB04burIGxhbyDEkeG7mW5nIGdp4bqjbiDEkcahbiDEkeG6v24gbGFvIMSR4buZbmcgY8OzIHRyw6xuaCDEkeG7mSBjYW8sIHThuqFvIHJhIHTDrG5oIHRo4bq/IHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZyBuZ8OgeSBjw6BuZyBj4bqhbmggdHJhbmguIE3hu5l0IHBo4bqnbiBj4bunYSB24bqlbiDEkeG7gSBu4bqxbSDhu58gc+G7sSBxdXnhur90IMSR4buLbmggY+G7p2Egc2luaCB2acOqbiB0cm9uZyB2aeG7h2MgY2jhu41uIG5nw6BuaCBo4buNYyB2w6Agc+G7sSBracOqbiB0csOsIGPhu6dhIGjhu40gdHJvbmcgdmnhu4djIHRoZW8gxJF14buVaSBuZ8OgbmggxJHDsyDEkeG6v24gY8O5bmcuDQoNCi0gICBW4bqlbiDEkeG7gSBuYW4gZ2nhuqNpIGPhu6dhIG3hu5l0IHbhuqVuIMSR4buBIHjDoyBo4buZaSBWaeG7h3QgTmFtLCBkbyDEkcOzLCBj4bqnbiBt4buZdCBjxqEgcXVhbiBjaHV5w6puIHBow6JuIHTDrWNoIHRow7RuZyB0aW4gxJHhu4MgxJHGsGEgcmEgY8OhYyBjaMOtbmggc8OhY2ggaOG7lyB0cuG7oyBjaG8gY8OhYyB0csaw4budbmcgxJHhuqFpIGjhu41jIHbDoCBkb2FuaCBuZ2hp4buHcCB0cm9uZyB2aeG7h2MgxJHDoG8gdOG6oW8gdsOgIHR1eeG7g24gZOG7pW5nIG5ow6JuIGzhu7FjLiBWaeG7h2MgbsOgeSBz4bq9IGdpw7pwIHNpbmggdmnDqm4gY8OzIG3hu5l0IGLhu5kgdGnDqnUgY2h14bqpbiByw7UgcsOgbmcgxJHhu4MgdMOsbSBraeG6v20gdmnhu4djIGzDoG0gdsOgIHBow6F0IHRyaeG7g24gY8OhYyBr4bu5IG7Eg25nIHBow7kgaOG7o3AgduG7m2kgdGnDqnUgY2h14bqpbiBj4bunYSBkb2FuaCBuZ2hp4buHcC4gS2hpIGPDsyBjw6FjIGdp4bqjaSBwaMOhcCB0aMOtY2ggaOG7o3AsIMSRaeG7gXUgbsOgeSBz4bq9IHThuqFvIHJhIG5p4buBbSB0aW4gY2hvIG3hu5l0IHPhu5EgaOG7jWMgc2luaCwgZ2nDunAgaOG7jSB04buxIHRpbiBoxqFuIGtoaSBjaOG7jW4gdHLGsOG7nW5nIMSR4bqhaSBo4buNYyB2w6AgbmfDoG5oIGjhu41jIG3DoCBo4buNIG1vbmcgbXXhu5FuLCB24bubaSBoeSB24buNbmcgdHLhu58gdGjDoG5oIG3hu5l0IHBo4bqnbiB0cm9uZyBuZ3Xhu5NuIGxhbyDEkeG7mW5nIGPDsyB0csOsbmggxJHhu5kgY2FvLg0KDQotICAgVOG7qyDEkcOzLCBjw7MgdGjhu4MgY+G6o2kgdGhp4buHbiB2w6AgbsOibmcgY2FvIHRyw6xuaCDEkeG7mSBjxaluZyBuaMawIGzhu7FjIGzGsOG7o25nIGxhbyDEkeG7mW5nIC0gdGjhur8gaOG7hyB0cuG6uyB0xrDGoW5nIGxhaS4gVGjDoG5oIGPDtG5nIHRyb25nIHZp4buHYyBuw6B5IGPDsyB0aOG7gyBk4bqnbiBk4bqnbiB0aGF5IMSR4buVaSBj4bqjIG3hu5l0IGPDoSB0aOG7gywgdsOgIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIHBow6F0IHRyaeG7g24gY+G7p2EgY+G6oyDEkeG6pXQgbsaw4bubYy4gTeG7pWMgdGnDqnUgbMOgIG1hbmcgbOG6oWkgY8O0bmcgdmnhu4djIHThu5F0IGjGoW4gdsOgIOG7lW4gxJHhu4tuaCB0cm9uZyBjdeG7mWMgc+G7kW5nIGNobyBt4buNaSBuZ8aw4budaS4NCg0KPVw+IFbDrCB0aOG6vyBlbSBxdXnhur90IMSR4buLbmggY2jhu41uIGNo4bunIMSR4buBICoqUGjDom4gdMOtY2ggY8ahIGjhu5lpIHZp4buHYyBsw6BtIMSR4buRaSB24bubaSBjw6FjIHNpbmggdmnDqm4gcmEgdHLGsOG7nW5nIOG7nyBWaeG7h3QgTmFtIHThu6sga2hpIMSR4bqhaSBk4buLY2ggY292aWQgLSAxOSDEkeG6v24gZ+G6p24gxJHDonkuKioNCg0KIyMgTeG7pWMgdGnDqnUgbmdoacOqbiBj4bupdS4NCg0KLSAgIFbhu5tpIGNo4bunIMSR4buBIHRyw6puLCBjaMO6bmcgdGEgY8OzIHRo4buDIHThuq1wIHRydW5nIHbDoG8gKipwaMOibiB0w61jaCBr4bu5IG7Eg25nLCBz4bufIHRow61jaCB2w6AgaMOgbmggdmkgbOG7sWEgY2jhu41uIGPDtG5nIHZp4buHYyBj4bunYSBzaW5oIHZpw6puKiosIGPFqW5nIG5oxrAgdmnhu4djIMSR4buLbmggaMaw4bubbmcgbmdo4buBIG5naGnhu4dwIGPhu6dhIGPDoWMgdHLGsOG7nW5nIMSR4bqhaSBo4buNYyB2w6Agbmjhu69uZyAqKm5odSBj4bqndSBj4bulIHRo4buDIGPhu6dhIGRvYW5oIG5naGnhu4dwKiogdHJvbmcgYuG7kWkgY+G6o25oIGThu4tjaCBi4buHbmggdsOgIHTDrG5oIGjDrG5oIGfhuqduIMSRw6J5LiDEkOG7k25nIHRo4budaSwgY+G6p24gcGjDom4gdMOtY2ggY8OhYyBjxqEgaOG7mWkgdsOgIHh1IGjGsOG7m25nIGPhu6dhIGPDoWMgbmfDoG5oIG5naOG7gSB0aeG7gW0gbsSDbmcgdHJvbmcgdMawxqFuZyBsYWkgZMOgbmggY2hvIGPDoWMgc2luaCB2acOqbiBt4bubaSByYSB0csaw4budbmcuIEN14buRaSBjw7luZywgxJFp4buBdSBxdWFuIHRy4buNbmcgbMOgIMSR4buBIHh14bqldCBt4buZdCBz4buRIGdp4bqjaSBwaMOhcCBj4bqnbiB0aGnhur90IMSR4buDIGdpw7pwIHNpbmggdmnDqm4gdGjDrWNoIG5naGkgdsOgIHBow6F0IHRyaeG7g24gdHJvbmcgdGjhu51pIMSRaeG7g20gaGnhu4duIHThuqFpLg0KDQojIyDEkOG7kWkgdMaw4bujbmcgcGjhuqFtIHZpIG5naGnDqm4gY+G7qXUuDQoNCi0gICDEkOG7kWkgdMaw4bujbmcgbmdoacOqbiBj4bupdSA6IHNpbmggdmnDqm4gcmEgdHLGsOG7nW5nIHRo4budaSBrw6wgZOG7i2NoIGNvdmlkIC0gMTkgxJHhur9uIG5heS4NCg0KTOG6pXkgMiBmaWxlIHThu6sgdHJhbmcgd2ViDQoNCjEuaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS9kYXRhc2V0cy9yYXZpbmRyYXNpbmdocmFuYS9qb2ItZGVzY3JpcHRpb24tZGF0YXNldA0KDQoyLmh0dHBzOi8vd3d3LmthZ2dsZS5jb20vZGF0YXNldHMvZ3VuYXByby9zdHVkZW50LWJlaGF2aW9yDQoNCiMgQ0jGr8agTkcgMjogVOG7lE5HIFFVQU4gTMOdIFRIVVnhur5UIFbDgCBE4buuIExJ4buGVSBOR0hJw4pOIEPhu6hVLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIyMgR2nhu5tpIHRoaeG7h3UgduG7gSB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcuDQoNCi0gICAqKlRo4buLIHRyxrDhu51uZyBsYW8gxJHDtG5nIGfhuq9uIGxp4buBbiB24bubaSBjxqEgaOG7mWkgdmnhu4djIGzDoG0qKjogbMOgIG7GoWkgZGnhu4VuIHJhIGhv4bqhdCDEkeG7mW5nIHRyYW8gxJHhu5VpLCBtdWEgYsOhbiBz4bupYyBsYW8gxJHhu5luZyBnaeG7r2EgbmfGsOG7nWkgY8OzIHPhu6ljIGxhbyDEkeG7mW5nIChuZ8aw4budaSBiw6FuKSB2w6AgbmfGsOG7nWkgc+G7rSBk4bulbmcgc+G7qWMgbGFvIMSR4buZbmcgKG5nxrDhu51pIG11YSkuIFPhu6ljIGxhbyDEkeG7mW5nIGzDoCBraOG6oyBuxINuZyBsYW8gxJHhu5luZyBj4bunYSBjb24gbmfGsOG7nWksIMSRxrDhu6NjIHRo4buDIGhp4buHbiBxdWEgdHLDrG5oIMSR4buZIGtp4bq/biB0aOG7qWMsIGvhu7kgbsSDbmcsIGtpbmggbmdoaeG7h20gdsOgIHPhu6ljIGto4buPZS4gTsOzIG1hbmcgdMOtbmggY+G6oW5oIHRyYW5oIHLhuqV0IGNhbywgdMOtbmggYmnhur9uIMSR4buZbmcgdsOgIHBow6JuIGJp4buHdCB0aGVvICoqKE5nw6BuaCBuZ2jhu4EsIGtodSB24buxYyB2w6AgbG/huqFpIGjDrG5oIGRvYW5oIG5naGnhu4dwLikqKg0KDQojIyBNw7QgdOG6oyBk4buvIGxp4buHdSBuZ2hpw6puIGPhu6l1Lg0KDQotICAgQuG7mSBk4buvIGxp4buHdSDEkeG6p3UgdGnhu4FuIGzhuqV5IHThu6sgbGluazogMS5odHRwczovL3d3dy5rYWdnbGUuY29tL2RhdGFzZXRzL3JhdmluZHJhc2luZ2hyYW5hL2pvYi1kZXNjcmlwdGlvbi1kYXRhc2V0Lg0KDQpC4buZIGThu68gbGnhu4d1IG7DoHkgbMOgIGLDoGkga2jhuqNvIHPDoXQgY3VuZyBj4bqlcCBt4buZdCBi4buZIHPGsHUgdOG6rXAgdG/DoG4gZGnhu4duIGPDoWMgdGluIHR1eeG7g24gZOG7pW5nIHThu5VuZyBo4bujcCDEkeG7gyB04bqhbyDEkWnhu4F1IGtp4buHbiB0aHXhuq1uIGzhu6NpIGNobyB2aeG7h2MgbmdoacOqbiBj4bupdSB2w6AgcGjDom4gdMOtY2ggdHJvbmcgbMSpbmggduG7sWMgeHUgaMaw4bubbmcgdGjhu4sgdHLGsOG7nW5nIHZp4buHYyBsw6BtIGLhurFuZyB2aeG7h2MgbcO0IHBo4buPbmcgY+G6pXUgdHLDumMgdsOgIG7hu5lpIGR1bmcgdHJvbmcgZGFuaCBzw6FjaCB2aeG7h2MgbMOgbSAuIFThuq1wIGThu68gbGnhu4d1IG7DoHkgY3VuZyBj4bqlcCBt4buZdCBsb+G6oXQgZGFuaCBzw6FjaCBjw7RuZyB2aeG7h2MgxJFhIGThuqFuZyB0aHXhu5ljIG5oaeG7gXUgbmfDoG5oIHbDoCBsb+G6oWkgY8O0bmcgdmnhu4djIGtow6FjIG5oYXUuICoqVGjhu4MgaGnhu4duIGPDoWMgbmh1IGPhuqd1IGPhu6dhIGRvYW5oIG5naGnhu4dwKioNCg0KLSAgICoqRmlsZSBjw7MgMTA0ODU3NCBxdWFuIHPDoXQgdsOgIDIzIGJp4bq/biBraGkgbOG7jWMgcmEgY2jhu4kgcXXhu5FjIGdpYSBWaeG7h3QgTmFtIGPDsm4gNDk3NSBxdWFuIHPDoXQgdsOgIDIzIGJp4bq/bi4qKg0KDQpNw7QgdOG6oyBjaG8gdOG7q25nIGPhu5l0IHRyb25nIHThuq1wIGThu68gbGnhu4d1Og0KDQoxLiAgKipKb2IgSWQqKjogTcOjIMSR4buLbmggZGFuaCBkdXkgbmjhuqV0IGNobyBt4buXaSB0aW4gdHV54buDbiBk4bulbmcuDQoNCjIuICAqKkV4cGVyaWVuY2UqKjogU+G7kSBuxINtIGtpbmggbmdoaeG7h20gxJHGsOG7o2MgecOqdSBj4bqndSBob+G6t2MgxrB1IHRpw6puIGNobyBjw7RuZyB2aeG7h2MuDQoNCjMuICAqKlF1YWxpZmljYXRpb25zKio6IFRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiBj4bqnbiB0aGnhur90IGNobyBjw7RuZyB2aeG7h2MuDQoNCjQuICAqKlNhbGFyeSBSYW5nZSoqOiBQaOG6oW0gdmkgbeG7qWMgbMawxqFuZyBob+G6t2MgdGjDuSBsYW8gxJHGsOG7o2MgxJHGsGEgcmEgY2hvIHbhu4sgdHLDrSDEkcOzLih0aGVvIHR14bqnbikNCg0KNS4gICoqbG9jYXRpb24qKjogVGjDoG5oIHBo4buRIGhv4bq3YyBraHUgduG7sWMgbsahaSBsw6BtIHZp4buHYy4NCg0KNi4gICoqQ291bnRyeSoqIFF14buRYyBnaWEgbsahaSBjw7RuZyB2aeG7h2MgZGnhu4VuIHJhLg0KDQo3LiAgKipsYXRpdHVkZSoqOiBU4buNYSDEkeG7mSB2xKkgxJHhu5kgY+G7p2EgduG7iyB0csOtIGPDtG5nIHZp4buHYy4NCg0KOC4gICoqbG9uZ2l0dWRlKio6IFThu41hIMSR4buZIGtpbmggxJHhu5kgY+G7p2EgduG7iyB0csOtIGPDtG5nIHZp4buHYy4NCg0KOS4gICoqV29yayBUeXBlKio6IExv4bqhaSBjw7RuZyB2aeG7h2MgKHbDrSBk4bulOiB0b8OgbiB0aOG7nWkgZ2lhbiwgYsOhbiB0aOG7nWkgZ2lhbiwgaOG7o3AgxJHhu5NuZykuDQoNCjEwLiAqKkNvbXBhbnkgU2l6ZSoqOiBRdXkgbcO0IGhv4bq3YyBxdXkgbcO0IGfhuqduIMSRw7puZyBj4bunYSBjw7RuZyB0eSB0dXnhu4NuIGThu6VuZy4NCg0KMTEuICoqSm9iIFBvc3RpbmcgWWVhcioqOiBOxINtIG3DoCB0aW4gdHV54buDbiBk4bulbmcgxJHGsOG7o2MgY8O0bmcga2hhaS4NCg0KMTIuICoqUHJlZmVyZW5jZSoqOiBDw6FjIMawdSB0acOqbiBob+G6t2MgecOqdSBj4bqndSDEkeG6t2MgYmnhu4d0IMSR4buRaSB24bubaSBuZ8aw4budaSBu4buZcCDEkcahbiAodsOtIGThu6U6IENo4buJIE5hbSBob+G6t2MgQ2jhu4kgTuG7ryBob+G6t2MgQ+G6oyBoYWkpDQoNCjEzLiAqKkNvbnRhY3QgUGVyc29uKio6IFTDqm4gY+G7p2EgbmfGsOG7nWkgbGnDqm4gaOG7hyBob+G6t2MgbmjDoCB0dXnhu4NuIGThu6VuZyBjaG8gY8O0bmcgdmnhu4djLg0KDQoxNC4gKipDb250YWN0Kio6IFRow7RuZyB0aW4gbGnDqm4gaOG7hyDEkeG7gyDEkcaw4bujYyB0xrAgduG6pW4gY8O0bmcgdmnhu4djLg0KDQoxNS4gKipKb2IgVGl0bGUqKjogQ2jhu6ljIGRhbmggY8O0bmcgdmnhu4djIGhv4bq3YyB24buLIHRyw60gxJFhbmcgxJHGsOG7o2MgcXXhuqNuZyBjw6FvLg0KDQoxNi4gKipSb2xlKio6IFZhaSB0csOyIGhv4bq3YyBkYW5oIG3hu6VjIGPDtG5nIHZp4buHYyAodsOtIGThu6U6IG5ow6AgcGjDoXQgdHJp4buDbiBwaOG6p24gbeG7gW0sIGdpw6FtIMSR4buRYyB0aeG6v3AgdGjhu4spLg0KDQoxNy4gKipKb2IgUG9ydGFsKio6IE7hu4FuIHThuqNuZyBob+G6t2MgdHJhbmcgd2ViIG7GoWkgY8O0bmcgdmnhu4djIMSRxrDhu6NjIMSRxINuZy4NCg0KMTguICoqSm9iIERlc2NyaXB0aW9uKio6IE3DtCB04bqjIGNoaSB0aeG6v3QgduG7gSB0csOhY2ggbmhp4buHbSB2w6AgecOqdSBj4bqndSBjw7RuZyB2aeG7h2MuDQoNCjE5LiAqKkJlbmVmaXRzKio6IFRow7RuZyB0aW4gduG7gSBjw6FjIHBow7pjIGzhu6NpIMSRxrDhu6NjIGN1bmcgY+G6pXAga2hpIGzDoG0gdmnhu4djICh2w60gZOG7pTogYuG6o28gaGnhu4NtIHkgdOG6vywga+G6vyBob+G6oWNoIG5naOG7iSBoxrB1KS4NCg0KMjAuICoqc2tpbGxzKio6IEPDoWMga+G7uSBuxINuZyBob+G6t2MgYuG6sW5nIGPhuqVwIGPhuqduIHRoaeG6v3QgY2hvIGPDtG5nIHZp4buHYy4NCg0KMjEuICoqUmVzcG9uc2liaWxpdGllcyoqOiBUcsOhY2ggbmhp4buHbSB2w6Agbmhp4buHbSB24bulIGPhu6UgdGjhu4MgbGnDqm4gcXVhbiDEkeG6v24gY8O0bmcgdmnhu4djLg0KDQoyMi4gKipDb21wYW55Kio6IFTDqm4gY8O0bmcgdHkgdHV54buDbiBk4bulbmcuDQoNCjIzLiAqKkNvbXBhbnkgUHJvZmlsZSoqOiBU4buVbmcgcXVhbiBuZ+G6r24gZ+G7jW4gduG7gSBu4buBbiB04bqjbmcgdsOgIHPhu6kgbeG7h25oIGPhu6dhIGPDtG5nIHR5Lg0KDQotICAgKipC4buZIHTDoGkgbGnhu4d1IMSRxrDhu6NjIHRo4buRbmcga+G6vyB04burIDIwMjEtOS8yMDIzKioNCg0KLSAgIELhu5kgZOG7ryBsaeG7h3UgxJHhuqd1IHRp4buBbiBs4bqleSB04burIGxpbms6IDIuaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS9kYXRhc2V0cy9ndW5hcHJvL3N0dWRlbnQtYmVoYXZpb3IuDQoNClThuq1wIGThu68gbGnhu4d1IG7DoHkgY2jhu6lhIHRow7RuZyB0aW4gxJHGsOG7o2MgdGh1IHRo4bqtcCB04burIHNpbmggdmnDqm4gxJHhuqFpIGjhu41jIHRow7RuZyBxdWEgYmnhu4N1IG3huqt1IEdvb2dsZSBs4bqleSDEkeG6oWkgZGnhu4duIGNobyBt4buZdCBz4buRIHNpbmggdmnDqm4gVmnhu4d0IE5hbS4gKipC4buZIGThu68gbGnhu4d1IG7DoHkgY2jhu6lhIHRow7RuZyB0aW4gduG7gSBuaMOibiBraOG6qXUgaOG7jWMsIGvhur90IHF14bqjIGjhu41jIHThuq1wLCBz4bufIHRow61jaCwgdGjDs2kgcXVlbiBo4buNYyB04bqtcCwgbmd1eeG7h24gduG7jW5nIG5naOG7gSBuZ2hp4buHcCB2w6AgY8OhYyB54bq/dSB04buRIGtow6FjIMSR4buDIHBow6JuIHTDrWNoIGjDoG5oIHZpIGPhu6dhIHNpbmggdmnDqm4gxJHhuqFpIGjhu41jIGtoaSBjaOG7jW4gY8O0bmcgdmnhu4djKiouDQoNCi0gICAqKkZpbGUgY8OzIDIzNSBxdWFuIHPDoXQgdsOgIDE5IGJp4bq/bioqDQoNCk3DtCB04bqjIGNobyB04burbmcgY+G7mXQgdHJvbmcgdOG6rXAgZOG7ryBsaeG7h3U6DQoNCjEuICAqKkNlcnRpZmljYXRpb24gQ291cnNlKio6IFjDoWMgbmjhuq1uIHNpbmggdmnDqm4gY8OzIGLhurFuZyBj4bqlcC8gY2jhu6luZyBjaOG7iSBuw6BvIGNoxrBhKFllcy9Dw7MgaG/hurdjIE5vL2tow7RuZykuDQoNCjIuICAqKkdlbmRlcioqOiBHaeG7m2kgdMOtbmggc2luaCB2acOqbi4NCg0KMy4gICoqRGVwYXJ0bWVudCoqOiBLaG9hIGhv4bq3YyBsxKluaCB24buxYyBo4buNYyB04bqtcCBtw6Agc2luaCB2acOqbiDEkWFuZyB0aGVvIGjhu41jLg0KDQo0LiAgKipIZWlnaHQoQ00pKio6IENoaeG7gXUgY2FvIGPhu6dhIGjhu41jIHNpbmggdMOtbmggYuG6sW5nIGNlbnRpbWV0Lg0KDQo1LiAgKipXZWlnaHQoS0cpKio6IEPDom4gbuG6t25nIGPhu6dhIGjhu41jIHNpbmggdMOtbmggYuG6sW5nIGtpbG9nYW0uDQoNCjYuICAqKjEwdGggTWFyayoqOiDEkGnhu4NtIGPhu6dhIGjhu41jIHNpbmggxJHhuqF0IMSRxrDhu6NjIHbDoG8gbOG7m3AgMTAuDQoNCjcuICAqKjEydGggTWFyayoqOiDEkGnhu4NtIGPhu6dhIGjhu41jIHNpbmggxJHhuqF0IMSRxrDhu6NjIHbDoG8gbsSDbSBs4bubcCAxMi4NCg0KOC4gICoqQ29sbGVnZSBNYXJrKio6IMSQaeG7g20gY+G7p2Egc2luaCB2acOqbiDEkeG6oXQgxJHGsOG7o2Mg4bufIHRyxrDhu51uZyBjYW8gxJHhurNuZyBob+G6t2MgxJHhuqFpIGjhu41jLg0KDQo5LiAgKipob2JiaWVzKio6IFPhu58gdGjDrWNoIGhv4bq3YyBz4bufIHRow61jaCBj4bunYSBo4buNYyBzaW5oLg0KDQoxMC4gKipkYWlseSBzdHVkaW5nIHRpbWUqKjogTMaw4bujbmcgdGjhu51pIGdpYW4gaOG7jWMgc2luaCBkw6BuaCBjaG8gdmnhu4djIGjhu41jIGjDoG5nIG5nw6B5Lg0KDQoxMS4gKipQcmVmZXIgdG8gU3R1ZHkgaW4qKjogTcO0aSB0csaw4budbmcgaOG7jWMgdOG6rXAgaG/hurdjIMSR4buLYSDEkWnhu4NtIMawYSB0aMOtY2ggY+G7p2Egc2luaCB2acOqbi4NCg0KMTIuICoqc2FsYXJ5IGV4cGVjdGF0aW9uKio6IEvhu7MgduG7jW5nIGPhu6dhIHNpbmggdmnDqm4gduG7gSBt4bupYyBsxrDGoW5nIHTGsMahbmcgbGFpIGPhu6dhIGjhu40gKG5nw6BuIMSR4buTbmcpLg0KDQoxMy4gKipEbyB5b3UgbGlrZSB5b3VyIGRlZ3JlZT8qKjogw50ga2nhur9uIOKAi+KAi2Phu6dhIHNpbmggdmnDqm4gduG7gSB2aeG7h2MgaOG7jSBjw7MgdGjDrWNoIGLhurFuZyBj4bqlcCBj4bunYSBtw6xuaCBoYXkga2jDtG5nLg0KDQoxNC4gKip3aWxsaW5nbmVzcyB0byBwdXJzdWUgYSBjYXJlZXIgYmFzZWQgb24gdGhlaXIgZGVncmVlKio6IFPhu7Egc+G6tW4gbMOybmcgY+G7p2Egc2luaCB2acOqbiB0aGVvIMSRdeG7lWkgbmdo4buBIG5naGnhu4dwIGxpw6puIHF1YW4gxJHhur9uIGLhurFuZyBj4bqlcCBj4bunYSBo4buNDQoNCjE1LiAqKnNvY2lhbCBtZWRhaSAmIHZpZGVvKio6IFPhu7EgdGhhbSBnaWEgY+G7p2EgaOG7jWMgc2luaCB24bubaSBjw6FjIG7hu4FuIHThuqNuZyB0cnV54buBbiB0aMO0bmcgeMOjIGjhu5lpIHbDoCB2aWRlbw0KDQoxNi4gKipUcmF2ZWxsaW5nIFRpbWUqKjogVGjhu51pIGdpYW4gxJHhu4MgaOG7jWMgc2luaCDEkWkgbOG6oWkgaG/hurdjIGRpIGNodXnhu4NuIMSR4bq/biBjxqEgc+G7nyBnacOhbyBk4bulYyBj4bunYSBtw6xuaA0KDQoxNy4gKipTdHJlc3MgTGV2ZWwqKjogTeG7qWMgxJHhu5kgY8SDbmcgdGjhurNuZyBj4bqjbSBuaOG6rW4gxJHGsOG7o2MgY+G7p2EgaOG7jWMgc2luaA0KDQoxOC4gKipGaW5hbmNpYWwgU3RhdHVzKio6IFTDrG5oIHRy4bqhbmcgdMOgaSBjaMOtbmggaG/hurdjIG7hu4FuIHThuqNuZyBraW5oIHThur8gY+G7p2Egc2luaCB2acOqbg0KDQoxOS4gKipwYXJ0LXRpbWUgam9iKio6IExp4buHdSBzaW5oIHZpw6puIGPDsyB0aGFtIGdpYSB2w6BvIGPDtG5nIHZp4buHYyBiw6FuIHRo4budaSBnaWFuIGhheSBraMO0bmcNCg0KIyMgROG7ryBsaeG7h3UgbmdoacOqbiBj4bupdQ0KDQoqKjEuIEThu68gbGnhu4d1IDEqKg0KDQpgYGB7cn0NCmxpYnJhcnkoeGxzeCkNCmRsMSA8LSByZWFkLmNzdihmaWxlLmNob29zZSgpLGhlYWRlciA9IFQpDQppcy5kYXRhLmZyYW1lKGRsMSkNCmBgYA0KDQotICAgVGjhu4MgaGnhu4duIHLDtSBz4buRIHF1YW4gc8OhdCB2w6AgYmnhur9uOiAxMDQ4NTc0IHF1YW4gc8OhdCB2w6AgMjMgYmnhur9uIHbDoCBk4buvIGxp4buHdSBsw6AgZGF0YSBmcmFtZS4NCg0KLSAgIE1vbmcgbXXhu5FuIGThu68gbOG6oWkgY2jhu4kgcXXhu5FjIGdpYSBWaeG7h3QgTmFtIMSR4buDIGThu4MgZMOgbmcgY2hvIHZp4buHYyBwaMOibiB0w61jaC4NCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmEgPC0gZGwxICU+JSBmaWx0ZXIoQ291bnRyeSA9PSAiVmlldG5hbSIpDQp3cml0ZS5jc3YoYSwgImEuY3N2IikgI1ThuqFvIHJhIDEgZmlsZSBleGNlbCByacOqbmcgY2hvIHF14buRYyBnaWEgVmnhu4d0IE5hbS4NCmENCmBgYA0KDQotICAgQuG7mSB0w6BpIGxp4buHdSBraGkgbOG7jWMgY8OybiA0OTc1IHF1YW4gc8OhdCB2w6AgMjMgYmnhur9uLg0KDQo9XD4gxJDhu4MgcGjDom4gdMOtY2ggbmh1IGPhuqd1IHR1eeG7g24gZOG7pW5nIGPhu6dhIGRvYW5oIG5naGnhu4dwLCBjaMO6bmcgdGEgY8OzIHRo4buDOg0KDQoxLiAgWMOhYyDEkeG7i25oIG5odSBj4bqndSBuaMOibiBz4buxOiBQaMOibiB0w61jaCB2w6AgeMOhYyDEkeG7i25oIHPhu5EgbMaw4bujbmcgY8WpbmcgbmjGsCBsb+G6oWkgaMOsbmggbmjDom4gc+G7sSBtw6AgY8O0bmcgdHkgY+G6p24uDQoNCjIuICBU4buRaSDGsHUgaMOzYSBxdXkgdHLDrG5oIHR1eeG7g24gZOG7pW5nIHbDoCBoaeG7h3Ugc3XhuqV0IG5ow6JuIHPhu7E6IFThu5FpIMawdSBow7NhIGPDoWMgcXV5IHRyw6xuaCB0dXnhu4NuIGThu6VuZyBuaOG6sW0gdMSDbmcgaGnhu4d1IHF14bqjIHbDoCB0aeG6v3Qga2nhu4dtIGNoaSBwaMOtLCDEkeG7k25nIHRo4budaSBs4bqtcCBk4buxIGLDoW8gdsOgIGvhur8gaG/huqFjaCB24buBIG5ow6JuIHPhu7EgxJHhu4MgxJHhuqNtIGLhuqNvIHLhurFuZyBjw7RuZyB0eSBjw7MgxJHhu6cgbmd14buTbiBuaMOibiBs4buxYyBj4bqnbiB0aGnhur90Lj1cPiAqKkPDsyB0aOG7gyB04buVbmcga+G6v3Qga+G6v3QgcXXhuqMgcGjDom4gdMOtY2ggYuG6sW5nIGPDoWNoIHPhu60gZOG7pW5nIGJp4buDdSDEkeG7kyDEkeG7gyB0cuG7sWMgcXVhbiBow7NhLioqDQoNCioqMi4gROG7sSBsaeG7h3UgMioqDQoNCmBgYHtyfQ0KbGlicmFyeSh4bHN4KQ0KZGwyIDwtIHJlYWQuY3N2KGZpbGUuY2hvb3NlKCksaGVhZGVyID0gVCkNCmlzLmRhdGEuZnJhbWUoZGwyKQ0KZGwyDQpgYGANCg0KLSAgIFRo4buDIGhp4buHbiByw7Ugc+G7kSBxdWFuIHPDoXQgdsOgIGJp4bq/bjogMjM1IHF1YW4gc8OhdCB2w6AgMTkgYmnhur9uIHbDoCBk4buvIGxp4buHdSBsw6AgZGF0YSBmcmFtZS4NCg0KPVw+IMSQ4buDIHBow6JuIHTDrWNoIHbDoCBxdWFuIHPDoXQgbmh1IGPhuqd1IGPFqW5nIG5oxrAgxJHhurdjIHTDrW5oIGPhu6UgdGjhu4MgY+G7p2EgdOG7q25nIHNpbmggdmnDqm4sIGNow7puZyB0YSBjw7MgdGjhu4M6DQoNCjEuICBYw6FjIMSR4buLbmggbmh1IGPhuqd1IHZp4buHYyBsw6BtIGPhu6dhIHNpbmggdmnDqm46IFBow6JuIHTDrWNoIHbDoCB4w6FjIMSR4buLbmggc+G7kSBsxrDhu6NuZyBjxaluZyBuaMawIG1vbmcgbXXhu5FuIGPhu6dhIHNpbmggdmnDqm4gdHJvbmcgNCBuZ8OgbmguDQoNCjIuICBU4bqhbyBo4buTIHPGoSB2w6AgdHLhu7FjIHF1YW4gaMOzYSBk4buvIGxp4buHdTogVOG6oW8gaOG7kyBzxqEgY8OhIG5ow6JuIGPhu6dhIG3hu5dpIHNpbmggdmnDqm4gxJHhu4MgaGnhu4N1IHLDtSBoxqFuIHbhu4Egbmh1IGPhuqd1IHbDoCDEkeG6t2MgdMOtbmggY+G7pSB0aOG7gyBj4bunYSBo4buNLiBDdW5nIGPhuqVwIGPGoSBz4bufIMSR4buDIHTGsCB24bqlbiB2w6AgaOG7lyB0cuG7oyB04burbmcgY8OhIG5ow6JuIHRyb25nIHF1w6EgdHLDrG5oIHTDrG0ga2nhur9tIHbDoCBwaMOhdCB0cmnhu4NuIHPhu7EgbmdoaeG7h3AgY+G7p2EgaOG7jS4gKipDw7MgdGjhu4MgdOG7lW5nIGvhur90IGvhur90IHF14bqjIHBow6JuIHTDrWNoIGLhurFuZyBjw6FjaCBz4butIGThu6VuZyBiaeG7g3UgxJHhu5MgxJHhu4MgdHLhu7FjIHF1YW4gaMOzYS4qKg0KDQo9XD4gKioyIGLhu5kgZOG7ryBsaeG7h3UgYsO5IHRy4burIGNobyBuaGF1LCBj4bqjIGhhaSBi4buZIGThu68gbGnhu4d1IG7DoHkgcGjDom4gdMOtY2ggY8O5bmcgbmhhdSBjw7MgdGjhu4MgZ2nDunAgaGnhu4N1IHLDtSBoxqFuIHbhu4Egc+G7sSBwaMO5IGjhu6NwIGdp4buvYSBuaHUgY+G6p3UgY+G7p2EgZG9hbmggbmdoaeG7h3AgdsOgIG1vbmcgbXXhu5FuIGPhu6dhIHNpbmggdmnDqm4sIHThu6sgxJHDsyB04buRaSDGsHUgaMOzYSBxdcOhIHRyw6xuaCB0dXnhu4NuIGThu6VuZyB2w6AgdOG6oW8gcmEgc+G7sSBr4bq/dCBu4buRaSB04buRdCBoxqFuIGdp4buvYSDhu6luZyB2acOqbiB2w6AgY8O0bmcgdmnhu4djLioqDQoNCiMgQ2jGsMahbmcgMzogUGjDom4gdMOtY2ggdGjhu7FjIHRy4bqhbmcgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLSAgIFZp4buHdCBOYW0gbMOgIG3hu5l0IHF14buRYyBnaWEgY8OzIGzhu7FjIGzGsOG7o25nIGxhbyDEkeG7mW5nIGThu5NpIGTDoG8uIFR1eSBuaGnDqm4sIHRyb25nIGLhu5FpIGPhuqNuaCDEkeG6oWkgZOG7i2NoIENPVklELTE5LCDEkcOjIMSRZW0gbOG6oWkgbmhp4buBdSBiaeG6v24gxJHhu5luZyB0acOqdSBj4buxYyDEkeG7kWkgduG7m2kgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLiBTYXUgZ2lhaSDEkW/huqFuIG7DoHksYuG6r3QgxJHhuqd1IHF1w6EgdHLDrG5oIHBo4bulYyBo4buTaSB2w6AgcGjDoXQgdHJp4buDbiBjw7MgdGjhu4MgbWFuZyBs4bqhaSBj4bqjIHRow6FjaCB0aOG7qWMgdsOgIGPGoSBo4buZaSBjaG8gVmnhu4d0IE5hbS4NCg0KIyMgVOG7lW5nIHF1YW4gY8ahIGjhu5lpIG5naOG7gSBuZ2hp4buHcCB0aGVvIG7Eg20oZOG7ryBsaeG7h3UgMSkNCg0KLSAgIFRo4budaSBr4buzIGJp4bq/biDEkeG7mW5nIHRpw6p1IGPhu7FjIG5o4bqldCBj4bunYSDEkeG6oWkgZOG7i2NoIENvdmlkLTE5IHThuqFpIFZp4buHdCBOYW0gxJHGsOG7o2MgxJHDoW5oIGdpw6EgbMOgIHThu6sgKipxdcO9IDIgbsSDbSAyMDIxIMSR4bq/biBxdcO9IDEgbsSDbSAyMDIyKiouIOG6om5oIGjGsOG7n25nIG7hurduZyBu4buBIMSR4bq/biBuaGnhu4F1IGzEqW5oIHbhu7FjIGtpbmggdOG6vywgeSB04bq/LCBnacOhbyBk4bulYywgdMOibSBzaW5oIGzDvSB4w6MgaOG7mWkuDQoNCi0gICBExrDhu5tpIMSRw6J5IGzDoCBi4bqjbmcgdGjhu5FuZyBrw6ogc+G7kSBsaeG7h3UgduG7gSB0aOG7nWkgZ2lhbiDEkcSDbmcgdHV54buDbiBjw7RuZyB2aeG7h2MgKHRoZW8gbsSDbSkgY+G7p2EgVmnhu4d0IE5hbSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyBuxINtIDIwMjEgxJHhur9uIDkvMjAyMyDEkeG7gyBjw7MgY8OhaSBuaMOsbiB0cuG7sWMgcXVhbiBoxqFuIGNobyBi4buZIGThu68gbGnhu4d1Lg0KDQpgYGB7cn0NCmxpYnJhcnkoc2NhbGVzKQ0KYSAlPiUgZmlsdGVyKEpvYi5Qb3N0aW5nLlllYXIgPj0gMjAyMSAmIEpvYi5Qb3N0aW5nLlllYXIgPD0gMjAyMykgJT4lIA0KICBncm91cF9ieShKb2IuUG9zdGluZy5ZZWFyKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHg9Sm9iLlBvc3RpbmcuWWVhciwgeT1uKSkgKw0KICBnZW9tX2NvbChmaWxsPSdwaW5rJykgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gcGVyY2VudChuL2xlbmd0aChhJEpvYi5JZCkpKSx2anVzdCA9IDIsIGNvbG9yID0gJ3JlZCcpICsNCiAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgxJHEg25nIHR1eeG7g24gbmjDom4gdmnDqm4gdGhlbyB04burbmcgbsSDbSIpICsNCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ1Phu5EgbMaw4bujbmcnKQ0KYGBgDQoNCioqTmjhuq1uIHjDqXQgYmnhu4N1IMSR4buTKioNCg0KLSAgIEThu68gbGnhu4d1IHRo4buRbmcga8OqIGNobyB0aOG6pXkgbsSDbSAyMDIxIGNoaeG6v20gw610IG5o4bqldCB0cm9uZyBiaeG7g3UgxJHhu5MgdsOgIG7Eg20gMjAyMiBsw6AgbsSDbSBjw7Mgc+G7kSBsxrDhu6NuZyDEkcahbiB0dXnhu4NuIGThu6VuZyBjYW8gbmjhuqV0LCBjaMOqbmggbOG7h2NoIDE3NTcgKDM1JSkgc28gduG7m2kgbsSDbSB0csaw4bubYy4NCg0KLSAgIFRp4bq/cCB0aGVvLCBt4bq3YyBkw7kgbsSDbSAyMDIzIGNo4buJIHRo4buRbmcga8OqIMSR4bq/biB0aMOhbmcgOSBuaMawbmcgc+G7kSBsxrDhu6NuZyDEkcahbiB0dXnhu4NuIGThu6VuZyB24bqrbiBraMOhIGNhbywgdsaw4bujdCBxdWEgaMahbiBt4buZdCBu4butYSBz4buRIGzGsOG7o25nIMSRxqFuIMSRxINuZyBrw70gdHJvbmcgbsSDbSAyMDIyLiBO4bq/dSB0aeG6v3AgdOG7pWMgdGjhu5FuZyBrw6ogxJHhur9uIGN14buRaSBuxINtLCBjw7MgdGjhu4MgZOG7sSDEkW/DoW4gc+G6vSBjw7Mgbmhp4buBdSBj4bqjaSB0aGnhu4duIHbDoCB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIGPDsyB0aOG7gyBnaeG6o20gdGhp4buDdSDEkWksIHR1eSBuaGnDqm4sIHPhu5EgbMaw4bujbmcgdHV54buDbiDEkcahbiB0dXnhu4NuIGThu6VuZyB24bqrbiBraMO0bmcgxJHhuqF0IMSRxrDhu6NjIG3hu6ljIG5oxrAgbsSDbSAyMDIyLg0KDQo9XD4gVMOzbSBs4bqhaSwgZOG7i2NoIGLhu4duaCDEkcOjIOG6o25oIGjGsOG7n25nIG5oaeG7gXUgxJHhur9uIGPDtG5nIHZp4buHYyB2w6Agbmh1IGPhuqd1IHR1eeG7g24gZOG7pW5nIGPhu6dhIGRvYW5oIG5naGnhu4dwLCB0dXkgbmhpw6puLCB0w6xuaCBow6xuaCBuZ8OgeSBjw6BuZyBj4bqjaSB0aGnhu4duIHRoZW8gdGjhu51pIGdpYW4uIMSQaeG7gXUgbsOgeSDEkcaw4bujYyB0aOG7gyBoaeG7h24gcXVhIGPDoWMgY2jhu4kgc+G7kSBuaMawIHNhdToNCg0KMS4gIE7Eg20gMjAyMSB04bu3IGzhu4cgdGjhuqV0IG5naGnhu4dwIMSR4buRaSB24bubaSB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgVmnhu4d0IE5hbSDGsOG7m2MgdMOtbmggMywyMiUsIMSR4bqhdCBjYW8gbmjhuqV0IHRyb25nIDkgdGjDoW5nIMSR4bqndSBuxINtIGzDoCAyLDY3JSAoMSkNCg0KMi4gIE7Eg20gMjAyMjogVOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCB0cm9uZyDEkeG7mSB0deG7lWkgbGFvIMSR4buZbmcgZ2nhuqNtIHh14buRbmcgY8OybiAyLDMyJS4gxJDDonkgbMOgIG3hu6ljIHRo4bqlcCBuaOG6pXQgdHJvbmcgNSBuxINtIHF1YSwgZ+G6p24gMSwwNyB0cmnhu4d1IMOtdCBoxqFuIDM1OS4yIHNvIHbhu5tpIG7Eg20gMjAyMSAoMikNCg0KMy4gIE7Eg20gMjAyMzogVOG7tyBs4buHIHRo4bqldCBuZ2hpw6pwIGzDoCAyLjI4JSBnaeG6o20gMC4wMDYlIMSRaeG7g20gcGjhuqduIHRyxINtIHNvIHbhu5tpIG7Eg20gdHLGsOG7m2MuKDMpDQoNCiMjIE5odSBj4bqndSBjw6FjIGxv4bqhaSBjw7RuZyB2aeG7h2MNCg0KIyMjIE5odSBj4bqndSBj4bunYSBkb2FuaCBuZ2hp4buHcCB0aOG7gyBoaeG7h24gYuG6sW5nIHZp4buHYyB0dXnhu4NuIGThu6VuZyBjw6FjIGxv4bqhaSBjw7RuZyB2aeG7h2Mga2jDoWMgbmhhdShk4buvIGxp4buHdSAxKQ0KDQotICAgTeG7l2kgbG/huqFpIGjDrG5oIGPDtG5nIHZp4buHYyDEkeG7gXUgY8OzIG5o4buvbmcgxJHhurdjIMSRaeG7g20gcmnDqm5nIHbDoCDEkcOhcCDhu6luZyBuaHUgY+G6p3UgY+G7p2EgZG9hbmggbmdoaeG7h3Ag4bufIGPDoWMga2jDrWEgY+G6oW5oIGtow6FjIG5oYXUuDQoNCi0gICBRdcOhIHRyw6xuaCBuw6B5IGdpw7pwIGRvYW5oIG5naGnhu4dwIGzhu7FhIGNo4buNbiBuaOG7r25nIG5nxrDhu51pIGPDsyDEkeG7pyBuxINuZyBs4buxYyB2w6Aga2luaCBuZ2hp4buHbSDEkeG7gyDEkcOhcCDhu6luZyBuaHUgY+G6p3UgY+G7p2EgY8O0bmcgdmnhu4djIHRoZW8gY8OhYyBt4bupYyDEkeG7mSDEkeG7gyBwaMOibiBsb+G6oWkgY8O0bmcgdmnhu4djOg0KDQoxLiAgQ29udHJhY3Q6IFRodcOqIG5ow6JuIGzhu7FjIGNobyBjw6FjIGThu7Egw6FuIG5n4bqvbiBo4bqhbiwgdGhlbyBtw7lhIHbhu6UgaG/hurdjIGtoaSBjw7Mgbmh1IGPhuqd1IMSR4buZdCB4deG6pXQuDQoNCjIuICBGdWxsLXRpbWU6IFRodcOqIG5ow6JuIGzhu7FjIGNobyBjw6FjIHbhu4sgdHLDrSBjw7RuZyB2aeG7h2MgZMOgaSBo4bqhbiwg4buVbiDEkeG7i25oLg0KDQozLiAgSW50ZXJuOiBDdW5nIGPhuqVwIGPGoSBo4buZaSBjaG8gc2luaCB2acOqbiBo4buNYyBo4buPaSBraW5oIG5naGnhu4dtIHRo4buxYyB04bq/IHRyb25nIG3DtGkgdHLGsOG7nW5nIGzDoG0gdmnhu4djIGNodXnDqm4gbmdoaeG7h3ANCg0KNC4gIFBhcnQtdGltZTogVGh1w6ogbmjDom4gbOG7sWMgY2hvIGPDoWMgduG7iyB0csOtIGPDtG5nIHZp4buHYyBraMO0bmcgecOqdSBj4bqndSBsw6BtIHZp4buHYyB0b8OgbiB0aOG7nWkgZ2lhbi4NCg0KNS4gIFRlbXBvcmFyeTogVGh1w6ogbmjDom4gbOG7sWMgY2hvIGPDoWMgduG7iyB0csOtIGPDtG5nIHZp4buHYyB0aGF5IHRo4bq/IGNobyBuaMOibiB2acOqbiBjaMOtbmggdGjhu6ljIG5naOG7iSB0aGFpIHPhuqNuLCBuZ2jhu4kgcGjDqXAsIGhv4bq3YyBraGkgY8OzIG5odSBj4bqndSDEkeG7mXQgeHXhuqV0Lg0KDQotICAgxJDhu4MgY8OzIGPDoWkgbmjDrG4gdHLhu7FjIHF1YW4gdsOgIMSRxrBhIHJhIG5o4buvbmcgbmjhuq1uIHjDqXQgY+G7pSB0aOG7gywgY2jDum5nIHRhIHPhur0gcGjDom4gdMOtY2ggc+G7kSBsxrDhu6NuZyDEkcahbiDEkcSDbmcgdHV54buDbiBuaMOibiB2acOqbiB0aGVvIGPDoWMgbG/huqFpIGPDtG5nIHZp4buHYyBiw6puIGTGsOG7m2kuDQoNCmBgYHtyfQ0KYSAlPiUgZ3JvdXBfYnkoV29yay5UeXBlKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSAnJywgeSA9IG4sZmlsbCA9IFdvcmsuVHlwZSkpICsNCiAgICBnZW9tX2NvbChjb2xvciA9ICdibGFjaycpICsNCiAgICBjb29yZF9wb2xhcigneScpICsNCiAgICBnZW9tX3RleHQoYWVzKHggPSAxLjMsIGxhYmVsID0gbikscG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IC41KSkgKw0KICAgIHRoZW1lX3ZvaWQoKSANCmBgYA0KDQoqKkNow7ogdGjDrWNoKioNCg0KLSAgIENvbnRyYWN0OiBsw6AgbG/huqFpIGPDtG5nIHZp4buHYyBtw6AgbmfGsOG7nWkgbGFvIMSR4buZbmcgbMOgbSB2aeG7h2MgdGhlbyBo4bujcCDEkeG7k25nIMSRw6Mga8OtLCBjw7MgdGjhu51pIGjhuqFuIGPhu6UgdGjhu4MgbmjGsCAzIHRow6FuZyBob+G6t2MgMSBuxINtLCB2w6AgY8OzIHRo4buDIMSRxrDhu6NjIGdpYSBo4bqhbiB0aMOqbSBu4bq/dSBj4bqnbi4NCg0KLSAgIEZ1bGwtdGltZTogbMOgIGPDtG5nIHZp4buHYyB0b8OgbiB0aOG7nWkgZ2lhbiwgbmfGsOG7nWkgbGFvIMSR4buZbmcgc+G6vSBsw6BtIHZp4buHYyB0aGVvIGdp4budIGjDoG5oIGNow61uaCwgdGjGsOG7nW5nIGzDoCA4IHRp4bq/bmcgbeG7l2kgbmfDoHkuDQoNCi0gICBJbnRlcm46IGzDoCBt4buZdCBjaMawxqFuZyB0csOsbmggxJHDoG8gdOG6oW8gbmfhuq9uIGjhuqFuIGTDoG5oIGNobyBzaW5oIHZpw6puIGhv4bq3YyBuZ8aw4budaSBt4bubaSB04buRdCBuZ2hp4buHcCwgbmjhurFtIG3hu6VjIMSRw61jaCBo4buNYyBo4buPaSBraW5oIG5naGnhu4dtIHRo4buxYyB04bq/IHRyb25nIG3DtGkgdHLGsOG7nW5nIGzDoG0gdmnhu4djLg0KDQotICAgUGFydC10aW1lOiBsw6AgY8O0bmcgdmnhu4djIGLDoW4gdGjhu51pIGdpYW4sIG5nxrDhu51pIGxhbyDEkeG7mW5nIHRoxrDhu51uZyBsw6BtIHZp4buHYyBraG/huqNuZyA0LTUgdGnhur9uZyBt4buXaSBuZ8OgeSwgY2jhu6cgeeG6v3UgdHJvbmcgY8OhYyBj4butYSBow6BuZywgbmjDoCBow6BuZyBob+G6t2MgY8OhYyB04buVIGNo4bupYyBraMOhYyDEkeG7gyBraeG6v20gdGjDqm0gdGh1IG5o4bqtcCB2w6AgdMOtY2ggbMWpeSBraW5oIG5naGnhu4dtIGzDoG0gdmnhu4djLg0KDQotICAgVGVtcG9yYXJ5OiBsw6AgbG/huqFpIGjDrG5oIGPDtG5nIHZp4buHYyBuZ+G6r24gaOG6oW4gY8OzIHRo4budaSBnaWFuIHThu6sgdsOgaSBuZ8OgeSDEkeG6v24gdsOgaSB0aMOhbmcsIHRoxrDhu51uZyBraMO0bmcgcXXDoSAxMiB0aMOhbmcuIExv4bqhaSBjw7RuZyB2aeG7h2MgbsOgeSB0aMOtY2ggaOG7o3AgY2hvIG5o4buvbmcgbmfGsOG7nWkgbXXhu5FuIHRo4butIHPhu6ljIHbhu5tpIG5oaeG7gXUgbG/huqFpIGjDrG5oIGPDtG5nIHZp4buHYyBraMOhYyBuaGF1Lg0KDQoqKk5o4bqtbiB4w6l0IGJp4buDdSDEkeG7kyoqDQoNCi0gICBMb+G6oWkgY8O0bmcgdmnhu4djIFBhcnQtdGltZSBjaGnhur9tIHThu7cgbOG7hyBjYW8gbmjhuqV0LCB0cm9uZyBraGkgbG/huqFpIGPDtG5nIHZp4buHYyBJbnRlcm4gY2hp4bq/bSB04bu3IGzhu4cgdGjhuqVwIG5o4bqldCwgduG7m2kgbeG7mXQgY2jDqm5oIGzhu4djaCBsw6AgODQuDQoNCi0gICBMb+G6oWkgaMOsbmggKipGdWxsLXRpbWUgdsOgIFBhcnQtdGltZSoqIHRoxrDhu51uZyDEkcaw4bujYyBkb2FuaCBuZ2hp4buHcCDGsGEgY2h14buZbmcgdHJvbmcgdmnhu4djIHR1eeG7g24gZOG7pW5nLCB0cm9uZyBraGkgMyBsb+G6oWkgY8O0bmcgdmnhu4djIGPDsm4gbOG6oWkgdGjGsOG7nW5nIMOtdCDEkcaw4bujYyBs4buxYSBjaOG7jW4gaMahbi4NCg0KPVw+IFbhu5tpIHPhu7EgY2jDqm5oIGzhu4djaCBjaOG7iSBsw6AgODQsIGtow7RuZyBjw7Mgc+G7sSBjaMOqbmggbOG7h2NoIGzhu5tuIGdp4buvYSB2aeG7h2MgcXVhbiB0w6JtIMSR4bq/biBs4buxYyBsxrDhu6NuZyBsYW8gxJHhu5luZyB0cuG6uyB2w6AgbeG7qWMgxJHhu5kgxrBhIGNodeG7mW5nIHbhu5tpIGPDoWMgbG/huqFpIGPDtG5nIHZp4buHYyBraMOhYyBuaGF1IHRyb25nIGRvYW5oIG5naGnhu4dwLiBUdXkgbmhpw6puLCBt4bulYyB0acOqdSBs4buxYSBjaOG7jW4gbG/huqFpIGPDtG5nIHZp4buHYyBj4bunYSBkb2FuaCBuZ2hp4buHcCB24bqrbiB0aOG7gyBoaeG7h24gc+G7sSB0cuG7jW5nIHRyw6FjaCDEkeG6t2MgYmnhu4d0IMSR4buRaSB24bubaSB2aeG7h2MgeMOieSBk4buxbmcgxJHhu5lpIG5nxakgbmjDom4gdmnDqm4g4buVbiDEkeG7i25oLCBjw7Mga2luaCBuZ2hp4buHbSB2w6Agc+G6tW4gc8OgbmcgxJHDs25nIGfDs3AgbmdheSB04burIGtoaSBi4bqvdCDEkeG6p3UgbMOgbSB2aeG7h2MuDQoNCi0gICBT4buxIGNow6puaCBs4buHY2ggcsO1IHLDoG5nIGdp4buvYSBjw6FjIGxv4bqhaSBjw7RuZyB2aeG7h2MgY8WpbmcgY8OzIHRo4buDIGNobyB0aOG6pXkgZG9hbmggbmdoaeG7h3AgY8OzIGto4bqjIG7Eg25nIGxpbmggaG/huqF0IHRyb25nIHZp4buHYyBjaOG7jW4gbOG7jWMgdsOgIHR1eeG7g24gZOG7pW5nIG5ow6JuIHZpw6puIHBow7kgaOG7o3AgduG7m2kgbmh1IGPhuqd1IHbDoCBt4bulYyB0acOqdSBj4bunYSBo4buNLiBT4buxIGxpbmggaG/huqF0IG7DoHkgY8OzIHRo4buDIHBo4bqjbiDDoW5oIHPhu7EgdGjDrWNoIOG7qW5nIGPhu6dhIGjhu40gduG7m2kgYmnhur9uIMSR4buZbmcgY+G7p2EgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIHbDoCB5w6p1IGPhuqd1IGPDtG5nIHZp4buHYyB0aGF5IMSR4buVaS4NCg0KIyMjIFNpbmggdmnDqm4gY8OzIHPhurVuIHPDoG5nIGzDoG0gY8O0bmcgdmnhu4djIGLDoW4gdGjhu51pIGdpYW4ga2hpIHJhIHRyxrDhu51uZyBoYXkga2jDtG5nKGThu68gbGnhu4d1IDIpDQoNCi0gICBLaGkgc2luaCB2acOqbiBt4bubaSByYSB0csaw4budbmcsIHTDom0gbMO9IGPhu6dhIGjhu40gY8OzIHRo4buDIHBo4bupYyB04bqhcCB2w6AgxJFhIGThuqFuZywgdMO5eSB0aHXhu5ljIHbDoG8gbmhp4buBdSB54bq/dSB04buRIG5oxrAga+G6vyBob+G6oWNoIG5naOG7gSBuZ2hp4buHcCwgw6FwIGzhu7FjIHThu6sgZ2lhIMSRw6xuaCB2w6AgeMOjIGjhu5lpLCBz4buxIHThu7EgdGluIHRyb25nIGLhuqNuIHRow6JuLCB2w6Agbmhp4buBdSB54bq/dSB04buRIGtow6FjLg0KDQotICAgROG7sWEgdsOgbyBraOG6o28gc8OhdCB24buBIHTDom0gbMO9IGPhu6dhIHNpbmggdmnDqm4gbeG7m2kgcmEgdHLGsOG7nW5nLCBjaMO6bmcgdGEgdGjhuqV5IHLhurFuZyBo4buNIHRoxrDhu51uZyBtYW5nIG5oaeG7gXUgaHkgduG7jW5nIHbDoCBt4bulYyB0acOqdS4gTmjDrG4gdsOgbyBiaeG7g3UgxJHhu5MgxJHDoyDEkcaw4bujYyBs4bqtcCBiw6puIGTGsOG7m2ksIGNow7puZyB0YSBjw7MgdGjhu4MgcXVhbiBzw6F0IG3hu5l0IGPDoWNoIHRy4buxYyBxdWFuIGjGoW4gduG7gSBuaHUgY+G6p3UgY+G7p2Egc2luaCB2acOqbiBraGkgaOG7jSBjw7Mgc+G6tW4gc8OgbmcgdGhhbSBnaWEgdsOgbyBjw6FjIGPDtG5nIHZp4buHYyBiw6FuIHRo4budaSBnaWFuIChQYXJ0LXRpbWUpIGhheSBraMO0bmcuDQoNCmBgYHtyfQ0KZGwyICU+JSBncm91cF9ieShwYXJ0LnRpbWUuam9iKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSAnJywgeSA9IG4sZmlsbCA9IHBhcnQudGltZS5qb2IpKSArDQogICAgZ2VvbV9jb2woY29sb3IgPSAnYmxhY2snKSArDQogICAgY29vcmRfcG9sYXIoJ3knKSArDQogICAgZ2VvbV90ZXh0KGFlcyh4ID0gMS4zLCBsYWJlbCA9IG4pLHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAuNSkpICsNCiAgICB0aGVtZV92b2lkKCkgDQpgYGANCg0KKipOaOG6rW4geMOpdCBiaeG7g3UgxJHhu5MqKg0KDQotICAgSOG6p3UgaOG6v3QgY8OhYyBzaW5oIHZpw6puIGto4bqjbyBzw6F0IMSR4buBdSBraMO0bmcgbXXhu5FuIGzDoG0gdmnhu4djICoqUGFydC10aW1lKioga2hpIHJhIHRyxrDhu51uZyBjw6FjaCBiaeG7h3QgduG7gSBz4buRIGzGsOG7o25nIGzDoCAxNTMgduG7m2kga2hv4bqjbmcgODIuNiUuDQoNCj1cPiBWaeG7h2MgbsOgeSBwaOG6o24gw6FuaCB2w6BvIG5odSBj4bqndSBj4bunYSBzaW5oIHZpw6puLCBraGkgaOG7jSB0aMaw4budbmcgbXXhu5FuIHThuq1wIHRydW5nIHbDoG8gY8O0bmcgdmnhu4djIGNow61uaCB2w6AgbW9uZyBtdeG7kW4gY8OzIG3hu5l0IGPDtG5nIHZp4buHYyBmdWxsLXRpbWUsIOG7lW4gxJHhu4tuaCBoxqFuLiDEkGEgc+G7kSBzaW5oIHZpw6puIGPFqW5nIGPDsyDEkeG7pyBuaHUgY+G6p3UgdMOgaSBjaMOtbmggdsOgIHRo4bqtbSBjaMOtIG5o4bqtbiDEkcaw4bujYyBz4buxIGjhu5cgdHLhu6MgdOG7qyBnaWEgxJHDrG5oLiBN4buZdCBz4buRIGzhu5tuIHNpbmggdmnDqm4ga2jDtG5nIHRow61jaCBsw6BtIG5o4buvbmcgY8O0bmcgdmnhu4djICJnw7IgYsOzIiB0cm9uZyBjw6FjIGPDtG5nIHR5IGhv4bq3YyBsw6BtIHZp4buHYyB0cm9uZyBtw7RpIHRyxrDhu51uZyB2xINuIHBow7JuZywgdGhheSB2w6BvIMSRw7MsIGjhu40gY8OzIHh1IGjGsOG7m25nIHTDrG0ga2nhur9tIGPDoWMgY8ahIGjhu5lpIG5naOG7gSBuZ2hp4buHcCBsacOqbiBxdWFuIMSR4bq/biBt4bqhbmcgeMOjIGjhu5lpIG5oxrAgbMOgbSBUaWtUb2tlciwgWW91VHViZXIsIHbDoCBuaOG7r25nIG5naOG7gSBuZ2hp4buHcCBt4bubaSBu4buVaSBoaeG7h24gbmF5LiBIb+G6t2MgaOG7jSBjw7MgdGjhu4MgdOG6rXAgdHJ1bmcgdsOgbyB2aeG7h2MgdGnhur9wIHThu6VjIGjhu41jIGjhu49pIHbDoCBwaMOhdCB0cmnhu4NuIGvhu7kgbsSDbmcgxJHhu4MgxJHhuqF0IMSRxrDhu6NjIGPDoWMgYuG6sW5nIGPhuqVwIGNhbyBoxqFuIG5oxrAgdGjhuqFjIHPEqSBob+G6t2MgdGnhur9uIHPEqSB2w6AgxJFpIGjhu41jLg0KDQojIyDEkGkgc8OidSBoxqFuIGPGoSBo4buZaSBuZ2jhu4EgbmdoaeG7h3AgdOG7q25nIG5nw6BuaCBuZ2jhu4EgdGhlbyBuxINtKGThu68gbGnhu4d1IDEpDQoNCi0gICBI4bqndSBo4bq/dCBjw6FjIG5nw6BuaCBuZ2jhu4EgxJHhu4F1IGLhu4sg4bqjbmggaMaw4bufbmcgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMjEtMjAyMyh0aOG7nWkga8OsIGNvdmlkKSDEkeG6t2MgYmnhu4d0IGzDoCBsxKluaCB24buxYyBkdSBs4buLY2gsIGjDoG5nIGtow7RuZywgY8OhYyBow6BuZyBxdcOhbiDEg24gdeG7kW5nLCBnaeG6o2kgdHLDrSB2w6AgdGjhu4MgdGhhbyBnaeG6o20geHXhu5FuZyBuaMawbmcgY8WpbmcgdOG6oW8gxJHhu5luZyBs4buxYyBjaG8gbmjDs20gbmfDoG5oIHbhu4EgY8O0bmcgbmdo4buHIHRow7RuZyB0aW4sIG5nw6BuaCBsb2dpc3RpY3MsIHkgdOG6vywgc+G6o24geHXhuqV0IGPDoWMgc+G6o24gcGjhuqltIHRoaeG6v3QgeeG6v3UgcGjDoXQgdHJp4buDbiBt4bqhbmguDQoNCi0gICBU4burIMSRw7Mgc+G6vSBjw7MgeHUgaMaw4bubbmcgcGjDoXQgdHJp4buDbiBt4bubaSwgYuG6r3QgYnXhu5ljIGPDoWMgbOG7sWMgbMaw4bujbmcgbGFvIMSR4buZbmcgcGjhuqNpIHTDrWNoIGPhu7FjIMSR4buVaSBt4bubaSB2w6AgaG/DoG4gdGhp4buHbiDEkeG7gyBow7JhIG5o4bqtcCB0cm9uZyBi4buRaSBj4bqjbmggaGnhu4duIG5heS4NCg0KLSAgIMSQ4buDIHLDtSBoxqFuIHRhIHPhur0gcGjDom4gdMOtY2ggc+G7kSBsaeG7h3UgdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuIG3DoCBjw6FjIGRhbmggbmdoaeG7h3AgecOqdSBj4bqndSBxdWEgYmnhu4N1IMSR4buTIHNhdS4NCg0KYGBge3J9DQphICU+JSBncm91cF9ieShRdWFsaWZpY2F0aW9ucyxKb2IuUG9zdGluZy5ZZWFyKSAlPiUgc3VtbWFyaXNlKG49bigpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gUXVhbGlmaWNhdGlvbnMseSA9IG4pKSArDQogICAgZ2VvbV9jb2wocG9zaXRpb24gPSAnZG9kZ2UnLGZpbGwgPSAnbGlnaHRibHVlJykgKw0KICAgIGZhY2V0X3dyYXAofkpvYi5Qb3N0aW5nLlllYXIpICsNCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1KSkgKyAjeG9heSA0NSDEkeG7mSBjaG8gY2jDuiB0aMOtY2gNCiAgICBnZW9tX3RleHQoYWVzKGxhYmVsID0gbiksdmp1c3QgPSAwLCBjb2xvciA9ICdyZWQnKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiBjxqEgaOG7mWkgY+G7p2EgdOG7q25nIG5nw6BuaCBuZ2jhu4EgdGhlbyB04burbmcgbsSDbSIpICsNCiAgICBsYWJzKHggPSAnQ8OhYyBsb+G6oWkgYuG6sW5nIHRoZW8gbmfDoG5oJywgeSA9ICdT4buRIGzGsOG7o25nJykNCmBgYA0KDQoqKkNow7ogdGjDrWNoKioNCg0KLSAgIEIuQ29tOiBi4bqxbmcgY+G7rSBuaMOibiBjw7MgbGnDqm4gcXVhbiDEkeG6v24ga2luaCBkb2FuaCwgdGjGsMahbmcgbeG6oWkgdsOgIHTDoGkgY2jDrW5oDQoNCi0gICBCLlRlY2I6IGLhurFuZyBj4butIG5ow6JuIGxpw6puIHF1YW4gxJHhur9uIGvhu7kgdGh14bqtdCwgY8O0bmcgbmdo4buHDQoNCi0gICBCQTogYuG6sW5nIGPhu60gbmjDom4ga2hvYSBo4buNYyB4w6MgaOG7mWkNCg0KLSAgIEJCQTogYuG6sW5nIGPhu60gbmjDom4gcXXhuqNuIHRy4buLIGtpbmggZG9hbmgNCg0KLSAgIEJDQTogYuG6sW5nIGPhu60gbmjDom4gdGjGsMahbmcgbeG6oWkgdsOgIHF14bqjbiB0cuG7iw0KDQotICAgTS5Db206IGLhurFuZyB0aOG6oWMgc8SpIGPDsyBsacOqbiBxdWFuIMSR4bq/biBraW5oIGRvYW5oLCB0aMawxqFuZyBt4bqhaSB2w6AgdMOgaSBjaMOtbmgNCg0KLSAgIE0uVGVjYjogYuG6sW5nIHRo4bqhYyBzxKkgbGnDqm4gcXVhbiDEkeG6v24ga+G7uSB0aHXhuq10LCBjw7RuZyBuZ2jhu4cNCg0KLSAgIE1CQTogYuG6sW5nIHRo4bqhYyBzxKkgcXXhuqNuIHRy4buLIGtpbmggZG9hbmgNCg0KLSAgIE1DQTogYuG6sW5nIHRo4bqhYyBzxKkgdGjGsMahbmcgbeG6oWkgdsOgIHF14bqjbiB0cuG7iw0KDQotICAgUGguRDogYuG6sW5nIHRp4bq/biBzxKkgY+G7p2EgdOG6pXQgY+G6oyBjw6FjIG5nw6BuaC4NCg0KKipOaOG6rW4geMOpdCBiaeG7g3UgxJHhu5MqKg0KDQotICAgQmnhu4N1IMSR4buTIG7Eg20gMjAyMSB0aOG7gyBoaeG7h24gdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuIGfhuqduIG5oxrAga2jDoSDEkeG7k25nIMSR4buBdSB04burIHRyw6xuaCDEkeG7mSBjYW8gbmjhuqV0ICoqQi5UZWNiKiogdsOgIHRo4bqlcCBuaOG6pXQgKipCQkEqKiBjaMOqbmggbOG7h2NoIGzDoCAxOC4NCg0KLSAgIE7Eg20gMjAyMiBj4bqjaSB0aGnhu4duIG3hu5l0IGPDoWNoIMSRw6FuZyBr4buDIGtoaSBz4buRIGzGsOG7o25nIMSRxqFuIMSRxINuZyB0dXnhu4NuIG5ow6JuIHZpw6puIHTEg25nIGfhuqVwIGtob+G6o25nIDMgxJHhur9uIDQgbOG6p24gc28gduG7m2kgbsSDbSB0csaw4bubYywgxJHhurdjIGJp4buHdCB24bubaSB0csOsbmggxJHhu5kgKipNQ0EqKiDEkcaw4bujYyDGsGEgY2h14buZbmcgbmjhuqV0LCB2w6Agw610IG5o4bqldCBsw6AgKipQaC5EKiosIHbhu5tpIGNow6puaCBs4buHY2gga2hv4bqjbmcgNzAuDQoNCi0gICBUcm9uZyBuxINtIDIwMjMsIGTDuSBjaOG7iSB4w6l0IMSR4bq/biB0aMOhbmcgOSwgbmjGsG5nIGPDsyB0aOG7gyB0aOG6pXkgcsO1IGRvYW5oIG5naGnhu4dwIMSRYW5nIMawdSB0acOqbiBuaOG7r25nIOG7qW5nIHZpw6puIGPDsyB0csOsbmggxJHhu5kgaOG7jWMgduG6pW4gY2FvLCDEkeG6t2MgYmnhu4d0IGzDoCAqKlBoLkQqKiwgdsOgIMOtdCDGsHUgdGnDqm4gbmjhu69uZyDhu6luZyB2acOqbiBjw7MgdHLDrG5oIMSR4buZICoqQi5Db20qKiwgduG7m2kgY2jDqm5oIGzhu4djaCBsw6AgMzEuDQoNCj1cPiBU4burIMSRw7MgY2hvIHRo4bqleSBraMO0bmcgdGjhu4MgbsOgbyBwaOG7pyBuaOG6rW4gYuG6sW5nIGPhuqVwIHF1YW4gdHLhu41uZywgdGjhu4MgaGnhu4duIGLhurFuZyB2aeG7h2MgaOG6p3UgaOG6v3QgY8OhYyBjw7RuZyB2aeG7h2MgxJHhu4F1IHnDqnUgY+G6p3UgYuG6sW5nIGPhuqVwLCAqKnRoZW8gdGjhu51pIGdpYW4gdHLDrG5oIMSR4buTIGPDoG5nIGNhbyB0aMOsIHThu7cgbOG7hyBuaOG6rW4gxJHGsOG7o2Mgdmnhu4djIGPDoG5nIGzhu5tuIHRo4buDIGhp4buHbiBxdWEgYmnhu4N1IMSR4buTIG7Eg20gMjAyMy4qKg0KDQotICAgTmfDoG5oIHRy4buNbmcgxJFp4buDbSBjaG8gdGjhu4MgcXVhbiBzw6F0IHRyb25nIDMgYmnhu4N1IMSR4buTIGzDoCBuZ8OgbmggKipCQkEoNzIsMjY5LDE4MCksQi5UZWNiKDgyLDI0NywxODUpKiosIHF14bqjbiB0cuG7iyBraW5oIGRvYW5oIHbDoCBr4bu5IHRodeG6rXQsIGPDtG5nIG5naOG7hyBsdcO0biBjaGnhur9tIHPhu5EgbMaw4bujbmcgdHJ1bmcgYsOsbmggxJHhur9uIGzhu5tuIG5odSBj4bqndSBkb2FuaCBuZ2hp4buHcCBtb25nIG114buRbi4qKiht4bq3dCBi4bqxbmcgY2h1bmcgcXVhIHThu6tuZyBuxINtKSoqDQoNCi0gICBOaHUgY+G6p3UgY+G6p24gbmd14buTbiBuaMOibiBs4buxYyBxdWEgdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuICoqTUNBKDc5LDI4NywxNjUpKiogdHJvbmcgbMSpbmggduG7sWMgdGjGsMahbmcgbeG6oWkgdsOgIHF14bqjbiB0cuG7iyBkYW5nIG5nw6B5IG3huqV0IMawdSB0aOG6vyB0cm9uZyBt4bqvdCBjw6FjIGRhbmggbmdoaeG7h3AuDQoNCiMjIMSQw6FuaCBnacOhIG3hu6ljIMSR4buZIHN0cmVzcyBzaW5oIHZpw6puIOG7nyA0IG5nw6BuaCBo4buNYyB0aOG7gyBoaeG7h24gcsO1IG5o4bqldCB0cm9uZyB0aOG7nWkga8OsIGNvdmlkIC0gMTkoZOG7ryBsaeG7h3UgMikNCg0KLSAgIE3hu6ljIMSR4buZIHN0cmVzcyBj4bunYSBzaW5oIHZpw6puIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyBuaGnhu4F1IMSR4bq/biB2aeG7h2MgbMOgbSBzYXUga2hpIHJhIHRyxrDhu51uZy4gxJDDonkgbMOgIG3hu5l0IHbhuqVuIMSR4buBIG5hbiBnaeG6o2kgdsOgIGtow7RuZyBjaOG7iSBnaeG7m2kgaOG6oW4g4bufIG3hu5l0IGzhu6lhIHR14buVaSBoYXkgbeG7mXQgY8O0bmcgdmnhu4djIGPhu6UgdGjhu4MgbsOgby4gLiBTdHJlc3MgY8OzIHRo4buDIOG6o25oIGjGsOG7n25nIMSR4bq/biBoaeG7h3Ugc3XhuqV0IGzDoG0gdmnhu4djLCBz4buxIHPDoW5nIHThuqFvLCB2w6AgdHLhuqFuZyB0aMOhaSB0aW5oIHRo4bqnbiBjaHVuZyBj4bunYSBjw6EgbmjDom4uDQoNCi0gICDEkOG7gyBjaOG7qW5nIHRo4buxYyDEkWnhu4F1IG7DoHkgdGEgc+G6vSBwaMOibiB0w61jaCBi4bqxbmcgYmnhu4N1IMSR4buTIMSR4buDIHNvIHPDoW5oIHPhu5EgbGnhu4d1IHRoZW8gZ2nhu5tpIHTDrW5oIHRoZW8gNCBuZ8OgbmggxJHEg2MgdHLGsG5nLg0KDQpgYGB7cn0NCmRsMiAlPiUgZ3JvdXBfYnkoR2VuZGVyLERlcGFydG1lbnQsU3RyZXNzLkxldmVsKSAlPiUgc3VtbWFyaXNlKG49bigpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gU3RyZXNzLkxldmVsLCB5ID0gbiwgZmlsbCA9IERlcGFydG1lbnQpKSArDQogICAgZ2VvbV9jb2wocG9zaXRpb24gPSAnZG9kZ2UnKSArDQogICAgZmFjZXRfd3JhcCh+R2VuZGVyKSArDQogICAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIG3hu6ljIMSR4buZIHN0cmVzcyBzaW5oIHZpw6puIHRoZW8gZ2nhu5tpIHTDrW5oIHbDoCBsxKluaCB24buxYyAiKSArDQogICAgbGFicyh4ID0gJ0xv4bqhaScsIHkgPSAnU+G7kSBsxrDhu6NuZycpDQpgYGANCg0KKipDaMO6IHRow61jaCoqDQoNCi0gICBUaOG7kW5nIGvDqiB0aGVvIDQgbMSpbmggduG7sWMgOg0KDQoxLiAgQi5jb20gQWNjb3VudGluZyBhbmQgRmluYW5jZShL4bq/IHRvw6FuIHbDoCBUw6BpIGNow61uaCkNCg0KMi4gIEIuY29tIElTTShRdeG6o24gdHLhu4sgSOG7hyB0aOG7kW5nIFRow7RuZyB0aW4pDQoNCjMuICBDb21tZXJjZSAoS2luaCBkb2FuaCB0aMawxqFuZyBt4bqhaSkNCg0KNC4gIEJDQSAodGjGsMahbmcgbeG6oWkgdsOgIHF14bqjbiB0cuG7iykNCg0KLSAgIE3hu6ljIMSR4buZIHN0cmVzczoNCg0KMS5Bd2Z1bDogc3RyZXNzIHLhuqV0IG7hurduZy8gcuG6pXQgdOG7hw0KDQoyLkJhZDogc3RyZXNzIG7Eg25nL3Thu4cNCg0KMy5mYWJ1bG91czogU3RyZXNzIG5o4bq5DQoNCjQuR29vZDogdMOibSBsw70gdOG7kXQuDQoNCioqTmjhuq1uIHjDqXQgYmnhu4N1IMSR4buTKioNCg0KLSAgIMSQ4buRaSB24bubaSBu4buvIHNpbmggdmnDqm4sIG3hu6ljIMSR4buZIHTDom0gbMO9IHLhuqV0IHThu4cgdsOgIHTDom0gbMO9IHThu5F0IMSR4buBdSBu4bqxbSB0cm9uZyBsxKluaCB24buxYyAqKkJDQSoqLCB0cm9uZyBraGkg4bufIG3hu6VjIHTDom0gbMO9IHThu5F0LCBuZ8OgbmggKipDb21tZXJjZSoqIGPDsyBt4bupYyBjYW8ga2jDoSDEkeG7k25nIMSR4buBdSB24bubaSBsxKluaCB24buxYyAqKkJDQSoqLiBU4buVbmcgcXVhbiwgc+G7kSBsxrDhu6NuZyBzaW5oIHZpw6puIG7hu68gZ+G6t3AgcGjhuqNpIHTDom0gbMO9IOG7nyBt4bupYyBu4bq3bmcgdsOgIHThu7cgbOG7hyBzaW5oIHZpw6puIGPDsyB0w6JtIGzDvSB04buRdCBjaOG7iSDhu58gbeG7qWMgdMawxqFuZyDEkeG7kWkga2jDtG5nIHF1w6EgY2FvICh24bubaSB04bu3IGzhu4cgY2FvIG5o4bqldCB24bqrbiBsw6AgdMOibSBsw70gdOG7kXQpLiBMxKluaCB24buxYyAqKkIuQ29tIElTTSoqIGPDsyBz4buxIHBow6JuIGLhu5Ega2jDoSDEkeG7k25nIMSR4buBdSDhu58gMyBt4bupYyDEkeG7mSB0w6JtIGzDvSAodHLhu6sgbeG7qWMgdMOibSBsw70gcuG6pXQgdOG7hykuDQoNCi0gICDEkOG7kWkgduG7m2kgbmFtIHRow6wgdMOibSBsw70gcuG6pXQgdOG7hyB2w6AgdMOibSBsw70gdOG7kXQgY2FvIG5o4bqldCBjxaluZyBu4bqxbSBjaHVuZyBt4buZdCBsw6xuaCB2xrBjICoqQkNBKiouIFThu5VuZyBxdWFuIHbhu4Egc+G7kSBsxrDhu6NuZyB0w6JtIGzDvSB04buRdCBsw6AgY2FvIG5o4bqldCB2w6AgdMOibSBsw70gbeG7sWMgxJHhu5kgbmjhurkgw610IG5o4bqldChraMO0bmcgY8OzIGzEqW5oIHbhu7FjIGjhu4cgdGjhu5FuZyB0aMO0bmcgdGluKQ0KDQo9XD4gVMOzbSBs4bqhaSBuYW0gZ2nhu5tpIGPDsyB0aOG7gyBjw7MgdMOibSBsw70gdOG7kXQgaMahbiBu4buvIHbDoCBjxaluZyDDoXAgbOG7sWMgbmhp4buBdSBoxqFuIG7hu68uIE3hu6ljIMSR4buZIG3huq9jIHbhuqVuIMSR4buBIHTDom0gbMO9IGPDsyB0aOG7gyB0aGF5IMSR4buVaSB0aGVvIHThu6tuZyBjw6EgbmjDom4sIG3DtGkgdHLGsOG7nW5nIHPhu5FuZywgdsOgIGhvw6BuIGPhuqNuaCBjw6EgbmjDom4uIFZp4buHYyBj4bqjaSB0aGnhu4duIGtow7RuZyBwaOG6o2kgbMOgIHF1w6EgdHLDrG5oIG5n4bqvbiBj4bqnbiBjw7Mgbmhp4buBdSB0aOG7nWkgZ2lhbiB2w6Aga2nDqm4gdHLDrCB0aOG7sWMgaGnhu4duIGPDoWMgYmnhu4duIHBow6FwIGPhu6UgdGjhu4MuDQoNCiMjIFTDoWMgxJHhu5luZyBraW5oIG5naGnhu4dtIGzDoG0gdmnhu4djIHRoZW8gZ2nhu5tpIHTDrW5oKGThu68gbGnhu4d1IDEpDQoNCi0gICBWw6wgbmh1IGPhuqd1IHbhu4EgY8O0bmcgdmnhu4djLCBjw6FjIHnDqnUgY+G6p3UgbGnDqm4gcXVhbiDEkeG6v24gZ2nhu5tpIHTDrW5oIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyBt4bqhbmggbeG6vSDEkeG6v24gbmhp4buBdSB0aOG7sWMgdHLhuqFuZyBraMO0bmcgdOG7kXQgbmjGsCDEkeG7kWkgeOG7rSBi4bqldCBjw7RuZyB0cm9uZyBjw7RuZyB2aeG7h2MsIMSR4bq3YyBiaeG7h3QgbMOgIMSR4buRaSB24bubaSBwaOG7pSBu4buvLiBN4buZdCBz4buRIGPDtG5nIHR5IHRoaeG6v3QgbOG6rXAgY8OhYyBo4bqhbiBjaOG6vyB0dXnhu4NuIGThu6VuZyDEkeG7kWkgduG7m2kgcGjhu6UgbuG7ryDEkcOjIGvhur90IGjDtG4gaG/hurdjIMSRYW5nIHRyb25nIMSR4buZIHR14buVaSBzaW5oIG7hu58sIHbDoCB5w6p1IGPhuqd1IHBo4bulIG7hu68gY2FtIGvhur90IGtow7RuZyBzaW5oIGNvbiB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiBuaOG6pXQgxJHhu4tuaC4gTmdvw6BpIHJhLCBwaOG7pSBu4buvIHRoxrDhu51uZyBwaOG6o2kgxJHhu5FpIG3hurd0IHbhu5tpIG5oaeG7gXUgxJHhu4tuaCBraeG6v24sIHbDrSBk4bulIG5oxrAgcXVhbiDEkWnhu4NtIHLhurFuZyBo4buNIGx1w7RuIGfhurdwIGtow7Mga2jEg24gdHJvbmcgdmnhu4djIGPDom4gYuG6sW5nIGdp4buvYSBjw7RuZyB2aeG7h2MgdsOgIGN14buZYyBz4buRbmcsIMSRaeG7gXUgbsOgeSBjw7MgdGjhu4MgaOG6oW4gY2jhur8gc+G7sSBwaMOhdCB0cmnhu4NuIGPhu6dhIGjhu40uDQoNCi0gICDEkOG7gyDEkcOhbmggZ2nDoSB2w6AgaGnhu4N1IHLDtSBoxqFuIHbhu4EgdMOsbmggaMOsbmggbsOgeSwgY2jDum5nIHRhIHPhur0gcGjDom4gdMOtY2ggY8OhYyBiaeG6v24ga2luaCBuZ2hp4buHbSB2w6AgecOqdSBj4bqndSBsacOqbiBxdWFuIMSR4bq/biBnaeG7m2kgdMOtbmggbcOgIGPDoWMgZG9hbmggbmdoaeG7h3AgxJHhurd0IHJhLg0KDQpgYGB7cn0NCmEgJT4lIGdyb3VwX2J5KEV4cGVyaWVuY2UsIFByZWZlcmVuY2UpICU+JSAgc3VtbWFyaXNlKG49bigpKSAlPiUgIA0KICAgIG11dGF0ZShFeHBlcmllbmNlID0gZmFjdG9yKEV4cGVyaWVuY2UsIGxldmVscyA9IGMoIjAgdG8gOCBZZWFycyIsIjAgdG8gOSBZZWFycyIsIjAgdG8gMTAgWWVhcnMiKSkpICU+JSANCiAgICBnZ3Bsb3QoYWVzKHggPSBQcmVmZXJlbmNlLCB5ID0gbiwgZmlsbCA9IEV4cGVyaWVuY2UpKSArDQogICAgZ2VvbV9jb2wocG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSgpKSArDQogICAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIGtpbmggbmdoaeG7h20gbMOgbSB2aeG7h2MgdGhlbyBnaeG7m2kgdMOtbmgiKSArDQogICAgbGFicyh4ID0gJ0dp4bubaSB0w61uaCcsIHkgPSAnU+G7kSBsxrDhu6NuZycpICANCmBgYA0KDQoqKkNow7ogdGjDrWNoKioNCg0KLSAgIE5BOiBtw6B1IMSRZW4gbMOgIHPhu5EgbMaw4bujbmcgY8OybiBs4bqhaSBj4bunYSBjw6FjIGtob+G6o25nIGtpbmggbmdoaeG7h20ga2jDoWMNCg0KLSAgIOG7niDEkcOieSB2w6wgcGjDom4gdMOtY2ggY8ahIGjhu5lpIHZp4buHYyBsw6BtIHNpbmggdmnDqm4gbeG7m2kgcmEgdHLGsOG7nW5nIG7Dqm4gc+G7kSBraW5oIGLhuq90IMSR4bqndSB04burIDAgdsOgIGVtIGNo4buNbiAzIGtob+G6o25nIMSR4buDIGThu4MgcXVhbiBzw6F0IHbDoCB0cuG7sWMgcXVhbiBow7NhIGThu68gbGnhu4d1IGjGoW4uKipWw6AgY2jhu6cgeeG6v3UgcGjDom4gdMOtY2ggMyB0csOsbmggxJHhu5kga2luaCBuZ2hp4buHbSDEkcOzKioNCg0KKipOaOG6rW4geMOpdCBiaeG7g3UgxJHhu5MqKg0KDQotICAgxJDhu5FpIHbhu5tpIGdp4bubaSB0w61uaCBu4buvLCB5w6p1IGPhuqd1IHbhu4Ega2luaCBuZ2hp4buHbSB0cm9uZyBraG/huqNuZyAqKjAtOSBuxINtKiogbuG7lWkgYuG6rXQgaMahbiBzbyB24bubaSAyIG3hu6ljIGtpbmggbmdoaeG7h20gY8OybiBs4bqhaSwgdHV5IGNow6puaCBs4buHY2gga2jDtG5nIHF1w6EgbOG7m24uDQoNCi0gICDEkOG7kWkgduG7m2kgZ2nhu5tpIHTDrW5oIG5hbSwgecOqdSBj4bqndSB24buBIGtpbmggbmdoaeG7h20gdHJvbmcga2hv4bqjbmcgKiowLTEwIG7Eg20qKiBsw6AgY2FvIG5o4bqldCwgdHJvbmcga2hpIG3hu6ljIGtpbmggbmdoaeG7h20gKiowLTkgbsSDbSoqIMOtdCBuaOG6pXQsIGNow6puaCBs4buHY2gga2hv4bqjbmcgMTAgxJHGoW4gdHV54buDbiBk4bulbmcgZ2nhu69hIGhhaSBt4bupYyBuw6B5Lg0KDQotICAgKipOaMOsbiBjaHVuZyoqLCDhu54gbeG7qWMgxJHhu5kga2jDoSBjw6JuIGLhurFuZyB2w6AgdMSDbmcgxJHhu4F1IHRow6wgbuG6sW0g4bufIG5o4buvbmcgY8O0bmcgdmnhu4djIHnDqnUgY+G6p3UgY+G6oyAyIGdp4bubaSB0aMaw4budbmcgxrB1IHRpw6puIHnDqnUgY+G6p3Uga2luaCBuZ2hp4buHbSAqKjAtMTAgbsSDbSoqLiBDw6FjIG3hu6ljIHnDqnUgY+G6p3Uga2luaCBuZ2hp4buHbSBjw7JuIGzhuqFpIHRoxrDhu51uZyBraMOhIGPDom4gYuG6sW5nIHbDoCBraMO0bmcgY8OzIHPhu7EgY2jDqm5oIGzhu4djaCBxdcOhIGzhu5tuIHNvIHbhu5tpIG3hu6ljIHnDqnUgY+G6p3UgY2FvIG5o4bqldC4NCg0KPVw+IFZp4buHYyBwaMOibiBjaGlhIGtob+G6o25nIGtpbmggbmdoaeG7h20gY8OzIHRo4buDIHThuqFvIGPGoSBo4buZaSBjaG8gY8OhYyBzaW5oIHZpw6puIG3hu5tpIHJhIHRyxrDhu51uZyBjw7MgY8ahIGjhu5lpIHRo4butIHPhu6ljLiBUdXkgbmhpw6puLCB0aGVvIGJp4buDdSDEkeG7kywgY8OhYyBjw7RuZyB2aeG7h2MgY2jhu4kgxrB1IHRpw6puIG7hu68gdGjGsOG7nW5nIGPDsyB0aOG7iyBwaOG6p24gdGjhuqVwIGjGoW4gc28gduG7m2kgY8OhYyBjw7RuZyB2aeG7h2MgxrB1IHRpw6puIG5hbSwgdsOgIGNobyBj4bqjIGhhaSBnaeG7m2kgdMOtbmggKiooxJBp4buBdSBuw6B5IGPDsyB0aOG7gyBnw6J5IHJhIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AgbuG7ryBjYW8gaMahbiBuYW0gLSAyMDIzLyBOYW0gZ2nhu5tpOiAyLDE3JSxO4buvIGdp4bubaTogMiw3MyUtKSoqKDQpLiBOYW0gZ2nhu5tpIHRoxrDhu51uZyB5w6p1IGPhuqd1IGtpbmggbmdoaeG7h20gY2FvIGjGoW4gc28gduG7m2kgbuG7ry4gVHV5IG5oacOqbiwgcXVhbiBzw6F0IGNobyB0aOG6pXkga2jDtG5nIGPDsyBz4buxIGNow6puaCBs4buHY2ggbOG7m24gZ2nhu69hIDIgZ2nhu5tpIHTDrW5oIHRyb25nIG5odSBj4bqndSB0dXnhu4NuIGThu6VuZyAocXVhIDMgbeG7qWMga2luaCBuZ2hp4buHbSBuw6p1IHRyw6puKS4NCg0KIyMgVMOhYyDEkeG7mW5nIHRo4budaSBnaWFuIGjhu41jIHThuq1wIOG6o25oIGjGsOG7n25nIMSR4bq/biBr4buzIHbhu41uZyB0aeG7gW4gbMawxqFuZyBj4bunYSBjw6FjIHNpbmggdmnDqm4ga2hpIHJhIHRyxrDhu51uZyhk4buvIGxp4buHdSAyKQ0KDQotICAgVGjhu51pIGdpYW4gZMOgbmggY2hvIGjhu41jIHThuq1wIGPDsyB0aOG7gyBjw7MgdMOhYyDEkeG7mW5nIHTDrWNoIGPhu7FjIMSR4bq/biBjxqEgaOG7mWkgbmdo4buBIG5naGnhu4dwIGPhu6dhIHNpbmggdmnDqm4uIFNpbmggdmnDqm4gZMOgbmggbmhp4buBdSB0aOG7nWkgZ2lhbiBjaG8gdmnhu4djIGjhu41jIHThuq1wIHRoxrDhu51uZyBjw7Mga2nhur9uIHRo4bupYyB2w6Aga+G7uSBuxINuZyB04buRdCBoxqFuLCBraOG6oyBuxINuZyBj4bqhbmggdHJhbmggY2FvIGjGoW4sIG3huqFuZyBsxrDhu5tpIHF1YW4gaOG7hyBy4buZbmcgcsOjaSBoxqFuIHbDoCB04bqhbyBnacOhIHRy4buLIGLhuqNuIHRow6JuIGNhbyBoxqFuLiBU4bqldCBj4bqjIG5o4buvbmcgeeG6v3UgdOG7kSBuw6B5IMSR4buBdSDEkcOzbmcgZ8OzcCB2w6BvIHZp4buHYyBnacO6cCBo4buNIHTDrG0ga2nhur9tIGPDtG5nIHZp4buHYyBt4buZdCBjw6FjaCBk4buFIGTDoG5nIGjGoW4gdsOgIGPDsyBjxqEgaOG7mWkgdGjDoG5oIGPDtG5nIGNhbyBoxqFuIHRyb25nIHPhu7EgbmdoaeG7h3AuDQoNCi0gICDEkOG7gyBoaeG7g3UgcsO1IGjGoW4gduG7gSBz4buxIHTDoWMgxJHhu5luZyBj4bunYSB0aOG7nWkgZ2lhbiBo4buNYyB04bqtcCDEkeG7kWkgduG7m2kga+G7syB24buNbmcgdGnhu4FuIGzGsMahbmcgdHJvbmcgdMawxqFuZyBsYWksIHRhIHPhur0gdOG6oW8gYmnhu4N1IMSR4buTIMSR4buDIGPDsyBjw6FpIG5ow6xuIHRvw6BuIGRp4buHbiB24buBIHF1w6EgdHLDrG5oIG7DoHkuDQoNCmBgYHtyfQ0KZGwyICU+JSBncm91cF9ieShkYWlseS5zdHVkaW5nLnRpbWUpICU+JSBzdW1tYXJpc2UobT0gbWVhbihzYWxhcnkuZXhwZWN0YXRpb24pKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gZGFpbHkuc3R1ZGluZy50aW1lICwgeSA9IG0sZmlsbCA9IGRhaWx5LnN0dWRpbmcudGltZSkpICsNCiAgICBnZW9tX2NvbChwb3NpdGlvbiA9ICdkb2RnZScpICsNCiAgICBnZW9tX3RleHQoYWVzKGxhYmVsID0gcm91bmQobSkpLCB2anVzdCA9IDAsIGNvbG9yID0gJ3JlZCcpICsNCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1KSkgKw0KICAgIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiB0aOG7nWkgZ2lhbiBo4buNYyB04bqtcCDhuqNuaCBoxrDhu59uZyDEkeG6v24ga+G7syB24buNbmcgdGnhu4FuIGzGsMahbmciKSArDQogICAgbGFicyh4ID0gJ0dp4bubaSB0w61uaCcsIHkgPSAnU+G7kSBsxrDhu6NuZycpDQpgYGANCg0KKipDaMO6IHRow61jaCoqDQoNCi0gICAqKlTDrW5oIHRydW5nIGLDrG5oIHRp4buBbiBsxrDGoW5nKiogdGhlbyB0aOG7nWkgZ2lhbiBo4buNYyB04bqtcCB0aOG7gyBoaeG7h24gYuG6sW5nIGPDoWMgbcOgdSBz4bqvYyBoaeG7h24gdGjhu4sgdHLDqm4gYmnhu4N1IMSR4buTLg0KDQoqKk5o4bqtbiB4w6l0IGJp4buDdSDEkeG7kyoqDQoNCi0gICBL4buzIHbhu41uZyB0aeG7gW4gbMawxqFuZyBj4bunYSBjw6FjIHNpbmggdmnDqm4gZMOgbmggdGjhu51pIGdpYW4gaOG7jWMgdOG6rXAgdHLDqm4gKio0IGdp4budL25nw6B5KiogY2FvIG5o4bqldCwgdHJvbmcga2hpIHRo4bqlcCBuaOG6pXQgbMOgIMSR4buRaSB24bubaSBzaW5oIHZpw6puIGTDoG5oICoqMy00IGdp4budL25nw6B5KiosIGNow6puaCBs4buHY2ggbMOgIDkzMDc2IHRoZW8gbeG7qWMgdHJ1bmcgYsOsbmggbMawxqFuZyBr4buzIHbhu41uZy4NCg0KLSAgIFRo4budaSBnaWFuIGjhu41jIHThuq1wIGPDsyB0aOG7gyBy4bqldCDDrXQgbuG6v3UgduG6pW4gxJHhu4EgY8OzIHRo4buDIGdp4bqjaSBxdXnhur90IG5nYXkgdHLDqm4gbOG7m3AgdOG7qyAwLTYwIHBow7p0LCB0xINuZyBsw6puIHRoZW8gbeG7qWMgxJHhu5kga2jDsyBj4bunYSBiw6BpIHThuq1wLg0KDQo9XD4gUXVhbiBzw6F0IGPDsyB0aOG7gyB0aOG6pXkg4bufIG5o4buvbmcgc2luaCB2acOqbiBkw6BuaCBuaGnhu4F1IHRo4budaSBnaWFuIGNobyB2aeG7h2MgaOG7jWMgbeG7m2kgZMOhbSB04buxIHRpbiDEkeG6t3Qga+G7syB24buNbmcgdGnhu4FuIGzGsMahbmcgY2FvIHbDoCDhu5VuIMSR4buLbmguIE5o4buvbmcgc2luaCBo4buNYyBo4buNYyB04burIDItMyB0aeG6v25nIHbDoCAzLTQgdGnhur9uZyB24bqrbiBjw7JuIGPDsyBz4buxIGTDqCBjaOG7q25nICoqKGhv4bq3YyB0aGnhur91IG5oaeG7gXUga+G7uSBt4buBbSwgdGhp4bq/dSBraW5oIG5naGnhu4dtIGzDoG0gdmnhu4djLCBu4buBbiB04bqjbmcgdHLGsOG7m2MgxJHDsyBraMO0bmcgdOG7kXQsLi4uICkqKi4gVsOsIHbhuq15LCBt4bupYyBsxrDGoW5nIHRo4buxYyB04bq/IGPhu6dhIG3hu5dpIHNpbmggdmnDqm4gc+G6vSBwaOG7pSB0aHXhu5ljIHbDoG8gbmhp4buBdSB54bq/dSB04buRIGtow6FjIG5oYXUsIG5oxrAgbsSDbmcgbOG7sWMgY+G7p2EgYuG6o24gdGjDom4sIGtpbmggbmdoaeG7h20gbMOgbSB2aeG7h2MsIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZy4gTmdvw6BpIHJhIGjhu41jIGzDoG0gc2FvIGNobyBoaeG7h3UgcXXhuqMgduG7m2kgYuG6o24gdGjDom4gc2luaCB2acOqbiBt4bubaSBxdWFuIHRy4buNbmcgaMahbiBjaMO6IHRy4buNbmcgbmhp4buBdSB2w6BvIHRo4budaSBnaWFuLg0KDQojIyBYdSBoxrDhu5tuZyDEkWnhu4NtIHThu5F0IG5naGnhu4dwIGPhu6dhIHNpbmggdmnDqm4gdHJvbmcgNCBraOG7kWkgbmfDoG5oIGPhu6UgdGjhu4MoZOG7ryBsaeG7h3UgMikNCg0KLSAgIFLDqG4gbHV54buHbiB2w6AgaOG7jWMgdOG6rXAgxJHDs25nIHZhaSB0csOyIHF1YW4gdHLhu41uZyDEkeG7kWkgduG7m2kga+G6v3QgcXXhuqMgaOG7jWMgdOG6rXAgY+G7p2Egc2luaCB2acOqbiBraGkgcmEgdHLGsOG7nW5nLCDEkeG7k25nIHRo4budaSBjxaluZyBwaOG6o24gw6FuaCBt4buZdCBwaOG6p24gduG7gSBjaOG6pXQgbMaw4bujbmcgZ2nDoW8gZOG7pWMgdsOgIHPhu7EgcGjDoXQgdHJp4buDbiBj4bunYSBzaW5oIHZpw6puIHRyb25nIHThu6tuZyBsxKluaCB24buxYy4gUXVhIHZp4buHYyBuaMOsbiBuaOG6rW4geHUgaMaw4bubbmcgY2h1bmcgduG7gSBz4buxIHBow6JuIGLhu5EgxJFp4buDbSB04buRdCBuZ2hp4buHcCB0cm9uZyB04burbmcgbmfDoG5oLCBjxaluZyBuaMawIGPDoWMgYmnhur9uIMSR4buZbmcgxJHhurdjIGJp4buHdCwgc2luaCB2acOqbiBjw7MgdGjhu4MgaGnhu4N1IHLDtSBoxqFuIHbhu4EgbeG7qWMgxJHhu5kgxJHDoXAg4bupbmcgY+G7p2EgZ2nDoW8gZOG7pWMgxJHhu5FpIHbhu5tpIG5odSBj4bqndSBj4bunYSB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgaGnhu4duIG5heS4NCg0KLSAgIFBow6JuIHTDrWNoIHRy4buxYyBkaeG7h24gYuG6sW5nIGPDoWNoIHjDoWMgxJHhu4tuaCBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIMSRaeG7g20gdOG7kXQgbmdoaeG7h3AgdsOgIHRow6BuaCBjw7RuZyB0cm9uZyB2aeG7h2MgdMOsbSBraeG6v20gdmnhu4djIGzDoG0gc2F1IG7DoHksIHRhIGPDsyB0aOG7gyDEkcOhbmggZ2nDoSDEkcaw4bujYyB04bqnbSBxdWFuIHRy4buNbmcgY+G7p2Egdmnhu4djIMSR4bqhdCDEkcaw4bujYyDEkWnhu4NtIGNhbyB0cm9uZyB2aeG7h2MgeMOieSBk4buxbmcgc+G7sSBuZ2hp4buHcC4NCg0KLSAgIMSQ4buDIGPDsyBjw6FpIG5ow6xuIHThu5VuZyBxdWFuIHbDoCBo4buvdSDDrWNoIGjGoW4gdGEgc+G6vSBuaMOsbiB2w6BvIGJp4buDdSDEkeG7kyB24buBIHh1IGjGsOG7m25nIMSRaeG7g20gdOG7kXQgbmdoaeG7h3AgY+G7p2Egc2luaCB2acOqbiB0cm9uZyA0IG5nw6BuaCBj4bulIHRo4buDIGLDqm4gZMaw4bubaS4NCg0KYGBge3J9DQpkbDIgJT4lIGdncGxvdChhZXMoeCA9IGNvbGxlZ2UubWFyayxmaWxsID0gRGVwYXJ0bWVudCkpICsNCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAxMCkgKw0KICBsYWJzKHRpdGxlID0gIkJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24gxJFp4buDbSB04buRdCBuZ2hp4buHcCBzaW5oIHZpw6puIHRyb25nIDQgbmfDoG5oIGPhu6UgdGjhu4MiKSArDQogICAgbGFicyh4ID0gJ8SQaeG7g20gc+G7kScsIHkgPSAnU+G7kSBsxrDhu6NuZycpDQpgYGANCg0KKipOaOG6rW4geMOpdCBiaeG7g3UgxJHhu5MqKg0KDQotICAgVHJvbmcgY8OhYyBuZ8OgbmgsIGto4buRaSBuZ8OgbmggQ29tbWVyY2UgxJHhuqF0IMSRaeG7g20gxJHhuqd1IHJhIGNhbyBuaOG6pXQsIHbhu5tpIG5oaeG7gXUgc2luaCB2acOqbiDEkeG6oXQgxJFp4buDbSB04buRdCBuZ2hp4buHcCAxMDAuDQoNCi0gICBLaOG7kWkgbmfDoG5oICoqQi5jb20gQWNjb3VudGluZyBhbmQgRmluYW5jZSwgQkNBKiogbMOgIGto4buRaSBuZ8OgbmggY8OzIMSRaeG7g20gdMawxqFuZyDEkeG7kWkg4buVbiBk4buLbmggbuG6sW0gY2jhu6cgeeG6v3Ug4bufIHbDuW5nIMSRaeG7g20gNjAtODAgxJFp4buDbS4oIFRyb25nIMSRw7Mga2jhu5FpIG5nw6BuaCAqKkJDQSoqIGPDsyBz4buRIGzGsOG7o25nIHNpbmggdmnDqm4ga2jhuqNvIHPDoXQgbmhp4buBdSBuaOG6pXQgdsOgICoqQi5jb20gQWNjb3VudGluZyBhbmQgRmluYW5jZSoqIHNpbmggdmnDqm4ga2jhuqNvIHPDoXQgw610IG5o4bqldCB0cm9uZyBi4bqjbmcgc+G7kSBsaeG7h3UpLg0KDQotICAgS2jhu5FpIG5nw6BuaCAqKkIuY29tIElTTSoqIGPDsyB0aGFuZyDEkWnhu4NtIHThu5F0IG5naGnhu4dwIHRo4bqlcCBoxqFuIG7hurFtIGNo4bunIHnhur91IOG7nyBraG/huqNuZyA1MC02NSBjaGnhur9tIMSRYSBz4buRLg0KDQotICAgKipOaMOsbiBjaHVuZyoqOiDEkGnhu4NtIHThu5F0IG5naGnhu4dwIGPhu6dhIGPDoWMgbmfDoG5oIHThuq1wIHRydW5nIGNo4bunIHnhur91IHRyb25nIGtob+G6o25nIDUwLTkwIMSRaeG7g20sIHbhu5tpIMSR4buJbmggY2FvIG5o4bqldCBu4bqxbSDhu58ga2hv4bqjbmcgNzAtNzUgxJFp4buDbS4gS2jDtG5nIGPDsyBuZ8OgbmggbsOgbyBu4bqxbSDhu58gdsO5bmcgxJFp4buDbSBkxrDhu5tpIDI1Lg0KDQo9XD4gUXVhIMSRw7MgdMO5eSB2w6BvIG3hu6VjIHRpw6p1IHNpbmggdmnDqm4gdsOgIHRpw6p1IGNow60gY+G7p2Ega2jDoWMgbmhhdSBtw6AgdGhhbmcgxJFp4buDbSB04buRdCBuZ2hp4buHcCBjxaluZyBkYW8gxJHhu5luZyBsw6puIHh14buRbmcgdMO5eSB2w6BvIG5odSBj4bqndSB0aOG7iyB0csaw4budbmcuDQoNCi0gICBUaGVvIHF1YW4gc8OhdCBjw7MgdGjhu4MgbmfDoG5oICoqQ29tbWVyY2UqKiBz4bq9IGPDsyBjxqEgaOG7mWkgcGjDoXQgdHJp4buDbiBjYW8sIHbhu5tpIHPhu5EgxJFp4buDbSB04buRdCBuZ2hp4buHcCBjw6BuZyBjYW8qKihjw7Mga+G7uSBuxINuZyB2w6Aga2nhur9uIHRo4bupYyBjaHV5w6puIG3DtG4gdOG7kXQpKiogdOG6oW8gcmEgY+G6oW5oIHRyYW5oIG5oaeG7gXUgaMahbiB24buBIGPGoSBo4buZaSBuZ2jhu4EgbmdoaeG7h3AgY8OhYyBraOG7kWkgbmfDoG5oIGtow6FjLCBk4buDIGTDoG5nIGzhu7FhIGNo4buNbiBuZ8Ogbmggbmdo4buBIGhv4bq3YyB24buLIHRyw60gbMOgbSB2aeG7h2MgdOG7kXQgaMahbiB0cm9uZyBsxKluaCB24buxYyDEkcOzLCB0aHUgaMO6dCBuaMOgIHR1eeG7g24gZOG7pW5nLg0KDQotICAgTmfGsOG7o2MgbOG6oWkgduG7m2kgbmjDs20gbmfDoG5oICoqQi5jb20gSVNNKiogxJFhIHBo4bqnbiBjw7Mgc+G7kSDEkWnhu4NtIHThu5F0IG5naGnhu4dwIGNo4buJIG3hu6ljIGNodW5nIGLDrG5oIGtow6EgxJFlbSBs4bqhaSBuaGnhu4F1IGLhuqV0IGzhu6NpIGtoaSBwaOG6o2kgY+G6oW5oIHRyYW5oIGto4buRYyBsaeG7h3QgduG7m2kgbeG7mXQgc+G7kSBzaW5oIHZpw6puIMSRaeG7g20gY2FvIHRyb25nIGPDuW5nIGto4buRaSBuZ8OgbmgsIGtow7Mga2jEg24gdHJvbmcgdmnhu4djIG114buRbiBo4buNYyBsw6puIGNhbyBoxqFuLSB0aOG6oWMgc8SpLCBn4bq3cCBraMOzIGtoxINuIHRyb25nIHZp4buHYyB0aHV54bq/dCBwaOG7pWMgY8OhYyBuaMOgIHR1eeG7g24gZOG7pW5nIGzhu6VhIGNo4buNbiBtw6xuaChrw6htIHRoZW8gcGjhuqNpIGzhu7FhIGNo4buNbiBuZ2jhu4EgbmdoaeG7h3AgY8OzIG3hu6ljIGzGsMahbmcgdGjhuqVwKS4NCg0KLSAgIEPDsm4gMiBuZ8OgbmggY8OybiBs4bqhaSBu4bqxbSDhu58gZ2nhu69hIGPFqW5nIGfhurdwIG3hu5l0IHPhu5EgbOG7o2kgdGjhur8gY+G7p2EgbmfDoG5oICoqQ29tbWVyY2UqKiB2w6AgbeG7mXQgc+G7kSBi4bqldCBs4bujaSBnaeG7kW5nIG5ow7NtIG5nw6BuaCAqKkIuY29tIElTTSoqLg0KDQojIyBUw6FjIMSR4buZbmcgcXV5IG3DtCBjw7RuZyB0eSDEkeG6v24gY8ahIGjhu5lpIGzDoG0gdmnhu4djIGPhu6dhIHNpbmggdmnDqm4gdGhlbyB04burbmcgbsSDbShk4buvIGxp4buHdSAxKQ0KDQotICAgQmnhur9uIMSR4buZbmcgdHJvbmcgcXV5IG3DtCBjw7RuZyB0eSDhuqNuaCBoxrDhu59uZyDEkeG6v24gcGhvbmcgY8OhY2ggdHV54buDbiBk4bulbmcgY+G7p2EgaOG7jSBxdWEgY8OhYyBuxINtLCDEkWnhu4F1IG7DoHkgY8OzIHTDoWMgxJHhu5luZyBs4bubbiDEkeG6v24geHUgaMaw4bubbmcgY8OhYyBuZ8Ogbmggbmdo4buBLCDEkeG6t2MgYmnhu4d0IGzDoCBjw6FjIGPDtG5nIHR5IGzhu5tuLCBnacO6cCDEkeG7i25oIGjDrG5oIGPGoSBo4buZaSBuZ2jhu4EgbmdoaeG7h3AgY+G7p2Egc2luaCB2acOqbiB0cm9uZyB04burbmcgbMSpbmggduG7sWMgdsOgIGtodSB24buxYyBj4bulIHRo4buDLg0KDQotICAgVOG7qyDEkcOzLCB2aeG7h2MgY8OzIGPDoWkgbmjDrG4gdOG7lW5nIHF1YW4gZ2nDunAgZOG7sSDEkW/DoW4gbGnhu4d1IHF1eSBtw7QgY+G7p2EgY8OhYyBjw7RuZyB0eSBjw7MgdGjhu4MgcGjDoXQgdHJp4buDbiB0aMOqbSBoYXkga2jDtG5nLCB04burIMSRw7MgcGjDom4gYuG7lSBuZ3Xhu5NuIGzhu7FjIG3hu5l0IGPDoWNoIGjhu6NwIGzDvS4gQ8OhYyBz4buRIGxp4buHdSBxdWEgY8OhYyBuxINtIMSRxrDhu6NjIHRo4buDIGhp4buHbiB0csOqbiBiaeG7g3UgxJHhu5MgxJHhu4MgbWluaCBo4buNYSDEkWnhu4F1IG7DoHkuDQoNCmBgYHtyfQ0KYSAlPiUgZ2dwbG90KGFlcyh4ID0gSm9iLlBvc3RpbmcuWWVhciwgeSA9IENvbXBhbnkuU2l6ZSkpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxvZXNzIikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDIwMjEsIDIwMjMsIGJ5ID0gMSkpICsNCiAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIHF1eSBtw7QgY8O0bmcgdHkg4bqjbmggaMaw4bufbmcgxJHhur9uIGPGoSBo4buZaSBsw6BtIHZp4buHYyB0aGVvIG7Eg20iKSArDQogICAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ1Phu5EgbMaw4bujbmcnKQ0KYGBgDQoNCioqQ2jDuiB0aMOtY2gqKg0KDQotICAgUXV5IG3DtCBjw7RuZyB0eTogbMOgIHPhu5EgbMaw4bujbmcgY8O0bmcgbmjDom4gdmnDqm4gY+G7p2EgY8O0bmcgdHkNCg0KKipOaOG6rW4geMOpdCBiaeG7g3UgxJHhu5MqKg0KDQotICAgVHJvbmcgbsSDbSAyMDIyIHF1eSBtw7QgY8OhYyBjw7RuZyB0eSBt4bufIHLhu5luZyBuaGnhu4F1IG5o4bqldCwgdsOgIHRyxaluZyBu4bq3bmcgeHXhu5FuZyB0aGVvIGJp4buDdSDEkeG7kyBsw6AgbsSDbSAyMDIxIHbhu5tpIGThu4tjaCBi4buHbmggY292aWQtIDE5IGtoaeG6v24gbmhp4buBdSBjw7RuZyB0eSBwaOG6o2kgxJHDs25nIGPhu61hLg0KDQotICAgTeG6t2MgZMO5IGNo4buJIGPDsyBz4buRIGxp4buHdSDEkeG6v24gdGjDoW5nIDkgdHJvbmcgbsSDbSAyMDIzLCBuaMawbmcgZMaw4budbmcgbmjGsCB0w6xuaCBow6xuaCBraMOhIGto4bqjIHF1YW4sIGPDsyB0aOG7gyB04bqhbyDEkWnhu4F1IGtp4buHbiBjaG8gc+G7sSBwaOG7pWMgaOG7k2kgdsOgIHTEg25nIHRyxrDhu59uZyBt4bqhbmggbeG6vSB0cm9uZyBuaOG7r25nIHRow6FuZyB0aeG6v3AgdGhlby4NCg0KPVw+IFThu6sgxJHDsywgY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgcXV5IG3DtCBj4bunYSBjw6FjIGPDtG5nIHR5IGzhu5tuIGPDoG5nIGzhu5tuLCBjw6BuZyB04bqhbyByYSBuaGnhu4F1IGPGoSBo4buZaSB2w6AgY+G6oW5oIHRyYW5oIGNobyB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcuIEPDoWMgY8O0bmcgdHkgbOG7m24gdGjGsOG7nW5nIGPDsyBuaHUgY+G6p3UgdHV54buDbiBk4bulbmcgxJFhIGThuqFuZyBoxqFuLCBtYW5nIGzhuqFpIG5oaeG7gXUgY8ahIGjhu5lpIGjhu41jIGjhu49pIHbDoCBwaMOhdCB0cmnhu4NuIGvhu7kgbsSDbmcgY2hvIHNpbmggdmnDqm4sIGPDuW5nIHbhu5tpIG3hu6ljIGzGsMahbmcgdsOgIGPDoWMgcGjDumMgbOG7o2kgaOG6pXAgZOG6q24gaMahbi4gxJBp4buBdSBuw6B5IGPDsyB0aOG7gyB0aMO6YyDEkeG6qXkgc2luaCB2acOqbiBo4buNYyB04bqtcCB2w6AgdHJhdSBk4buTaSBi4bqjbiB0aMOibiBoxqFuLg0KDQotICAgVHV5IG5oacOqbiwgY+G6oyBjw7RuZyB0eSBs4bubbiB2w6Agbmjhu48gxJHhu4F1IGPDsyBuaOG7r25nIMawdSB2w6AgbmjGsOG7o2MgxJFp4buDbSByacOqbmcuIFNpbmggdmnDqm4gY+G6p24gY8OibiBuaOG6r2Mga+G7uSBjw6FjIHnhur91IHThu5EgbmjGsCBz4bufIHRow61jaCwgbsSDbmcgbOG7sWMsIG3hu6VjIHRpw6p1IG5naOG7gSBuZ2hp4buHcCB2w6AgbW9uZyBtdeG7kW4gcGjDoXQgdHJp4buDbiBi4bqjbiB0aMOibiDEkeG7gyBs4buxYSBjaOG7jW4gY8O0bmcgdHkgcGjDuSBo4bujcC4NCg0KLSAgICoqVGhlbyBuaHUgY+G6p3UgY+G7p2Egc2luaCB2acOqbiB0aMOsIMSRYSBz4buRIHRow61jaCBsw6BtIHZp4buHYyBkb2FuaCBuZ2hp4buHcCBs4bubbi4gTmjGsG5nIHPhu5EgbMaw4bujbmcgc2luaCB2acOqbiBt4buXaSBuxINtIHJhIHRyxrDhu51uZyBsw6AgcuG6pXQgbOG7m24gdsOgIGPhuqFuaCB0cmFuaCBy4bqldCBjYW8uIMSQ4buTbmcgbmdoxKlhIHPhu5EgbMaw4bujbmcgbOG7m24gc2luaCB2acOqbiBjaOG7pyB54bq/dSBsw6BtIOG7nyBjw6FjIGPDtG5nIHR5IG5o4buPIHbDoCB24burYSoqLg0KDQoqKlRyw6puIHRo4buxYyB04bq/KioNCg0KLSAgIFRoZW8gYsOhbyBjw6FvIGPhu6dhIELhu5kgS+G6vyBob+G6oWNoIHbDoCDEkOG6p3UgdMawIG7Eg20gMjAyMzooNSkNCg0KRG9hbmggbmdoaeG7h3AgbOG7m246DQoNCkNoaeG6v20gMjAlIHPhu5EgbMaw4bujbmcgZG9hbmggbmdoaeG7h3AsIMSRw7NuZyBnw7NwIDgwJSBHRFAgdsOgIHThuqFvIHJhIDYwJSB2aeG7h2MgbMOgbS4NCg0KVHV54buDbiBk4bulbmcgMzAlIHNpbmggdmnDqm4gbeG7m2kgdOG7kXQgbmdoaeG7h3AuDQoNCkRvYW5oIG5naGnhu4dwIHbhu6thIHbDoCBuaOG7jzoNCg0KQ2hp4bq/bSA4MCUgc+G7kSBsxrDhu6NuZyBkb2FuaCBuZ2hp4buHcCwgxJHDs25nIGfDs3AgMjAlIEdEUCB2w6AgdOG6oW8gcmEgNDAlIHZp4buHYyBsw6BtLg0KDQpUdXnhu4NuIGThu6VuZyA3MCUgc2luaCB2acOqbiBt4bubaSB04buRdCBuZ2hp4buHcC4NCg0KIyMgU28gc8Ohbmggbmh1IGPhuqd1IGRhbmggbmdoaeG7h3AgdHV54buDbiBk4bulbmcgdGjDtG5nIHF1YSBxdXkgbcO0IGPhu6dhIDUgcXXhu5FjIGdpYSDEkMO0bmcgTmFtIMOBKGThu68gbGnhu4d1IDEpDQoNCi0gICBUaOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgY+G7p2EgY8OhYyBxdeG7kWMgZ2lhIMSQw7RuZyBOYW0gw4EgcGjhuqNuIMOhbmggbmhp4buBdSBt4bupYyDEkeG7mSB2w6Aga2jDrWEgY+G6oW5oIGtow6FjIG5oYXUuIFF1eSBtw7QgY+G7p2EgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIHRoxrDhu51uZyBwaOG6o24gw6FuaCBrw61jaCB0aMaw4bubYyB2w6Agc+G7qWMgbeG6oW5oIGPhu6dhIG7hu4FuIGtpbmggdOG6vywgbeG7qWMgxJHhu5kgY+G6oW5oIHRyYW5oLCBraOG6oyBuxINuZyB04bqhbyByYSB2aeG7h2MgbMOgbSB24bubaSBs4buxYyBsxrDhu6NuZyBsYW8gxJHhu5luZyB0cm9uZyBuxrDhu5tjLCBjxaluZyBuaMawIHThuqdtIOG6o25oIGjGsOG7n25nIHRyb25nIGPDoWMgbmfDoG5oIHbDoCBob+G6oXQgxJHhu5luZyBraW5oIGRvYW5oIHF14buRYyB04bq/IGPhu6dhIGPDoWMgZG9hbmggbmdoaeG7h3AgdHJvbmcga2h1IHbhu7FjLg0KDQotICAgxJDhu4MgbMOgbSByw7UgaMahbiwgY2jDum5nIHRhIGPDsyB0aOG7gyB04bqhbyBiaeG7g3UgxJHhu5MgxJHhu4MgbWluaCBo4buNYSBz4buxIHRoYXkgxJHhu5VpIGPhu6dhIHF1eSBtw7QgdGhlbyB04burbmcgbsSDbSB0cm9uZyBi4buZIGThu68gbGnhu4d1IG5naGnDqm4gY+G7qXUuDQoNCmBgYHtyfQ0KbGlicmFyeShnb29nbGVkcml2ZSkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShnZ2FuaW1hdGUpDQpsaWJyYXJ5KG1hZ2ljaykNCg0KYyA8LSBkbDEgJT4lIGZpbHRlcihDb3VudHJ5ICVpbiUgYyggIlRoYWlsYW5kIiAsICJJbmRvbmVzaWEiLCAiVmlldG5hbSIsICJNYWxheXNpYSIsICJTaW5nYXBvcmUiKSkNCmMgJT4lIGdncGxvdChhZXMoeCA9IEpvYi5Qb3N0aW5nLlllYXIsIHkgPSBDb21wYW55LlNpemUsIGNvbG9yID0gQ291bnRyeSkpICsNCiAgZ2VvbV9saW5lKCkgKw0KICBnZW9tX3BvaW50KHNpemU9MikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDIwMjEsIDIwMjMsIGJ5ID0gMSkpICsgIyBk4buvIGtob+G6o25nIGPDoWNoLg0KICB0cmFuc2l0aW9uX3JldmVhbChKb2IuUG9zdGluZy5ZZWFyLCBrZWVwX2xhc3QgPSBGKSArIA0KICBsYWJzKHRpdGxlID0gIkJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24gcXV5IG3DtCBjw7RuZyB0eSBj4bunYSA1IHF14buRYyBnaWEgdGhlbyBuxINtIikgKw0KICAgIGxhYnMoeCA9ICdOxINtJywgeSA9ICdT4buRIGzGsOG7o25nJykNCmBgYA0KDQoqKkNow7ogdGjDrWNoKioNCg0KLSAgIENo4buNbiBUaGFpbGFuZCwgSW5kb25lc2lhLCBWaWV0bmFtLCBNYWxheXNpYSB2w6AgU2luZ2Fwb3JlIHRyb25nIGtodSB24buxYyDEkMO0bmcgTmFtIMOBIGzDoG0gY8OhYyBxdeG7kWMgZ2lhIHRoYW0gY2hp4bq/dSBsw6AgbeG7mXQgY8OhY2ggdGnhur9wIGPhuq1uIGfhuqduIGfFqWkgduG7m2kgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIGPhu6dhIFZp4buHdCBOYW0uIEPDoWMgcXXhu5FjIGdpYSBuw6B5IMSR4buBdSDEkWFuZyBwaMOhdCB0cmnhu4NuIOG7lW4gxJHhu4tuaCB2w6AgxJHhu6luZyDEkeG6p3UgdHJvbmcgc+G7kSAxMSBxdeG7kWMgZ2lhIGPhu6dhIGtodSB24buxYyDEkMO0bmcgTmFtIMOBLg0KDQoqKk5o4bqtbiB4w6l0IGJp4buDdSDEkeG7kyoqDQoNCjEuICBHaWFpIMSRb+G6oW4gMjAyMS0yMDIyDQoNCi0gICBDw7MgKipNYWxheXNpYSoqIGzDoCBxdeG7kWMgZ2lhIGJp4bq/biDEkeG7lWkgcGjhu6ljIHThuqFwIHRyb25nIHF1w6EgdHLDrG5oIG7DoHksIHRy4bqjaSBxdWEgbeG7mXQgc+G7sSBnaeG6o20gbeG6oW5oIHThu6sgduG7iyB0csOtIHF14buRYyBnaWEgY8OzIHF1eSBtw7QgbOG7m24gbmjhuqV0IHh14buRbmcgxJHhur9uIHbhu4sgdHLDrSBjdeG7kWkgY8O5bmcgdHJvbmcgc+G7kSA1IHF14buRYyBnaWEuDQoNCi0gICBDw6FjIG7GsOG7m2MgKipJbmRvbmV4aWEsIFNpbmdhcG9yZSwgVGhhaWxhbmQqKiBjw7MgeHUgaMawxqFuZyB0xINuZyBuaMawbmcg4buVbiDEkeG7i25oLih0cm9uZyDEkcOzIMSR4bupbmcgxJHhuqd1IGzDoCBJbmRvbmV4aWEsIHRp4bq/cCDEkeG6v24gVGhhaWxhbmQsIMSR4bupbmcgdGjhu6kgNCBsw6AgU2luZ2Fwb3JlKQ0KDQotICAgUXXhu5FjIGdpYSBjw7MgeHUgaMaw4bubbmcgdMSDbmcgbeG6oW5oIGjGoW4gdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgbMOgICoqVmlldG5hbSoqLCBt4bq3YyBkw7kga2jDtG5nIHbGsOG7o3QgcXVhIEluZG9uZXNpYSBob+G6t2MgVGhhaWxhbmQgxJHhu4MgxJHhu6luZyDEkeG6p3UuDQoNCjIuICBHaWFpIMSRb+G6oW4gMjAyMi05LzIwMjMNCg0KLSAgIFRyb25nIHRo4budaSDEkWnhu4NtIG7DoHksICoqSW5kb25lc2lhKiogdHLhu58gdGjDoG5oIHF14buRYyBnaWEgYmnhur9uIMSR4buZbmcgcGjhu6ljIHThuqFwIG5o4bqldCwgdHLhuqNpIHF1YSBt4buZdCBz4buxIHN1eSBnaeG6o20gbeG6oW5oIHThu6sgduG7iyB0csOtIHF14buRYyBnaWEgY8OzIHF1eSBtw7QgbOG7m24gbmjhuqV0IHh14buRbmcgxJHhur9uIHbhu4sgdHLDrSBjdeG7kWkgY8O5bmcgdHJvbmcgc+G7kSA1IHF14buRYyBnaWEuIFTDrG5oIGjDrG5oIG7DoHkga8OpbSBoxqFuIGPhuqMgTWFsYXlzaWEgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gdHLGsOG7m2MgxJHDsy4NCg0KLSAgICoqTWFsYXlzaWEqKiBi4bqvdCDEkeG6p3UgdMOhaSBwaMOhdCB0cmnhu4NuIG3huqFuaCBt4bq9LCB0aGVvIHh1IGjGsOG7m25nIHTEg25nIHRyxrDhu59uZyBuaMawbmcga2jDtG5nIMSR4bqhdCDEkcaw4bujYyBuaMawIHRo4budaSDEkWnhu4NtIG7Eg20gMjAyMSAoY2jhu4kgxJHhu6luZyDhu58gduG7iyB0csOtIHRo4bupIDIpLg0KDQotICAgKipUaGFpbGFuZCB2w6AgU2luZ2Fwb3JlKiogxJHhu4F1IGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0csaw4bufbmcgcXV5IG3DtCBraMOhIOG7lW4gxJHhu4tuaC4gVHV5IG5oacOqbiwgVGhhaWxhbmQgduG6q24gxJFhbmcgdMSDbmcgdHLGsOG7n25nIG5oYW5oIGjGoW4ga+G7gyB04burIG7Eg20gMjAyMiB2w6AgZ2nDoG5oIHbhu4sgdHLDrSB0aOG7qSAxLCB0cm9uZyBraGkgKipTaW5nYXBvcmUqKiBnacOgbmggxJHGsOG7o2MgduG7iyB0csOtIHRo4bupIDMuDQoNCi0gICAqKlZpZXRuYW0qKiBjxaluZyB0xINuZyB0csaw4bufbmcgbmjGsG5nIG3hu6ljIMSR4buZIGNo4bqtbSBoxqFuIHThu6V0IGzhuqFpIHBow61hIHNhdSBj4bunYSAqKlNpbmdhcG9yZSoqLg0KDQo9XD4gUXVhIMSRw7MsIHRhIGPDsyB0aOG7gyB0aOG6pXkgcuG6sW5nIHF1eSBtw7QgY+G7p2EgY8OhYyBxdeG7kWMgZ2lhIGPDsyB0aOG7gyBi4buLIOG6o25oIGjGsOG7n25nIGLhu59pIG5oaeG7gXUgeeG6v3UgdOG7kSwgYmFvIGfhu5NtIGPhuqMgdMOhYyDEkeG7mW5nIGPhu6dhIMSR4bqhaSBk4buLY2ggQ09WSUQtMTkgdsOgIGRp4buHbiB0w61jaCBsw6NuaCB0aOG7lSBj4bunYSBxdeG7kWMgZ2lhLiBWw60gZOG7pSwgU2luZ2Fwb3JlIGPDsyBkaeG7h24gdMOtY2ggbMOjbmggdGjhu5Ugbmjhu48gbmjhuqV0IHRyb25nIGtodSB24buxYywgxJFp4buBdSBuw6B5IGtoaeG6v24gcXV5IG3DtCBj4bunYSBuw7Mga2jDsyBjw7MgdGjhu4MgdMSDbmcgdHLGsOG7n25nIG5oYW5oIGNow7NuZy4gVHJvbmcgZ2lhaSDEkW/huqFuIDIwMjEtMjAyMywgU2luZ2Fwb3JlIGPDsyB0aOG7gyDEkeG7qW5nIOG7nyB24buLIHRyw60gMyBob+G6t2MgNCB0cm9uZyBz4buRIGPDoWMgcXXhu5FjIGdpYSDEkMO0bmcgTmFtIMOBLCBt4bq3YyBkw7kgbsOzIHbhuqtuIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIHF14buRYyBnaWEgcGjDoXQgdHJp4buDbiBuaOG6pXQgdHJvbmcga2h1IHbhu7FjLiBUaGFpbGFuZCwgbeG6t2MgZMO5IGzDoCBxdeG7kWMgZ2lhIGPDsyBxdXkgbcO0IGRvYW5oIG5naGnhu4dwIGzhu5tuIG5o4bqldCwgbmjDrCB2w6AgduG7iyB0csOtIHBow6F0IHRyaeG7g24gdOG7kXQsIG5oxrBuZyB24bqrbiBraMO0bmcgdGjhu4Mgdsaw4bujdCBt4bq3dCBTaW5nYXBvcmUuDQoNCi0gICBOaMOsbiBuaOG6rW4gZ2lhaSDEkW/huqFuIMSR4bqndSwgY8OzIHRo4buDIG7Ds2kgcuG6sW5nIFZp4buHdCBOYW0gbMOgIG3hu5l0IHRyb25nIG5o4buvbmcgcXXhu5FjIGdpYSBjw7MgdOG7kWMgxJHhu5kgcGjDoXQgdHJp4buDbiBraW5oIHThur8gbmhhbmggbmjhuqV0IHRyb25nIGtodSB24buxYyDEkMO0bmcgTmFtIMOBLiBUdXkgbmhpw6puLCBj4bqnbiBwaOG6o2kgeGVtIHjDqXQgbmhp4buBdSB54bq/dSB04buRIGtow6FjIG5oYXUgxJHhu4MgaGnhu4N1IHLDtSBoxqFuIHbhu4EgcXV5IG3DtCB2w6Agc+G7sSBwaMOhdCB0cmnhu4NuIGPhu6dhIG3hu5dpIHF14buRYyBnaWEgdHJvbmcga2h1IHbhu7FjLg0KDQojIENoxrDGoW5nIDQ6IMSQxrBhIHJhIGdp4bqjaSBwaMOhcC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMjIFbhu4EgcGjDrWEgc2luaCB2acOqbi4NCg0KLSAgICoqTsOibmcgY2FvIGvhu7kgbsSDbmcgdsOgIGtp4bq/biB0aOG7qWMqKjogU2luaCB2acOqbiBuw6puIGxpw6puIHThu6VjIGPhuq1wIG5o4bqtdCB2w6AgcGjDoXQgdHJp4buDbiBr4bu5IG7Eg25nIGNodXnDqm4gbcO0biBjxaluZyBuaMawIGvhu7kgbsSDbmcgbeG7gW0gbmjGsCBnaWFvIHRp4bq/cCwgcXXhuqNuIGzDvSB0aOG7nWkgZ2lhbiwgbMOgbSB2aeG7h2MgbmjDs20uIFThu6sgxJHDsyBjw7MgdGjhu4MgbOG6rXAga+G6vyBob+G6oWNoIHbDoCBt4bulYyB0acOqdSBj4bulIHRo4buDIG5nYXkgdOG7qyDEkeG6p3UuIMSQaeG7gXUgbsOgeSBnacO6cCB0xINuZyBraOG6oyBuxINuZyBj4bqhbmggdHJhbmggdsOgIHBow6F0IHRyaeG7g24gdHJvbmcgc+G7sSBuZ2hp4buHcC4NCg0KLSAgICoqVGjhu7FjIHThuq1wIHbDoCBo4buNYyBo4buPaSB0aMOqbSBraW5oIG5naGnhu4dtKio6IFNpbmggdmnDqm4gbsOqbiB04bqtbiBk4bulbmcgY8ahIGjhu5lpIHRo4buxYyB04bqtcCDEkeG7gyB0w61jaCBsxal5IGtpbmggbmdoaeG7h20gdGjhu7FjIHThur8gdHJvbmcgbMSpbmggduG7sWMgbcOsbmggcXVhbiB0w6JtIGNobyBjw6FjIGPDtG5nIHR5LiBWaeG7h2MgbsOgeSBraMO0bmcgY2jhu4kgZ2nDunAgeMOieSBk4buxbmcgbeG6oW5nIGzGsOG7m2kgcXVhbiBo4buHIG3DoCBjw7JuIHTEg25nIGPGoSBo4buZaSDEkcaw4bujYyB0dXnhu4NuIGThu6VuZyBzYXUga2hpIHThu5F0IG5naGnhu4dwLg0KDQotICAgKipYw6J5IGThu7FuZyBt4bqhbmcgbMaw4bubaSBxdWFuIGjhu4cqKjogS+G6v3QgbuG7kWkgdsOgIHThuqFvIG3hu5FpIHF1YW4gaOG7hyB24bubaSBnacOhbyB2acOqbiwgY+G7sXUgc2luaCB2acOqbiwgdsOgIGPDoWMgY2h1ecOqbiBnaWEgdHJvbmcgbMSpbmggduG7sWMgbMOgbSB2aeG7h2MgY+G7p2EgbcOsbmggxJHhu4MgY8OzIGPGoSBo4buZaSBo4buNYyBo4buPaSB2w6Agbmjhuq1uIMSRxrDhu6NjIHPhu7EgaOG7lyB0cuG7oyB0cm9uZyB0w6xtIGtp4bq/bSB2aeG7h2MgbMOgbS4NCg0KLSAgICoqTuG6r20gduG7r25nIHRow7RuZyB0aW4gdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nKio6IFRoZW8gZMO1aSB2w6AgbmdoacOqbiBj4bupdSB24buBIHh1IGjGsOG7m25nIHbDoCB5w6p1IGPhuqd1IGPhu6dhIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZyB0cm9uZyBsxKluaCB24buxYyBtw6xuaCBxdWFuIHTDom0uIMSQaeG7gXUgbsOgeSBnacO6cCBzaW5oIHZpw6puIGhp4buDdSByw7UgduG7gSBjxqEgaOG7mWkgdsOgIHRow6FjaCB0aOG7qWMsIHThu6sgxJHDsyBjw7Mga+G6vyBob+G6oWNoIHBow6F0IHRyaeG7g24gc+G7sSBuZ2hp4buHcCBoaeG7h3UgcXXhuqMgaMahbi4NCg0KLSAgICoqQ2jhu6cgxJHhu5luZyB2w6Agc+G6tW4gc8OgbmcgdGhheSDEkeG7lWkqKjogU2luaCB2acOqbiBj4bqnbiBsaW5oIGhv4bqhdCB2w6AgY2jhu6cgxJHhu5luZyB0cm9uZyB2aeG7h2MgdGhheSDEkeG7lWkga+G6vyBob+G6oWNoIG5naOG7gSBuZ2hp4buHcCB2w6AgaOG7jWMgdOG6rXAgxJHhu4MgcGjhuqNuIOG7qW5nIHbhu5tpIHPhu7EgYmnhur9uIMSR4buZbmcgY+G7p2EgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLg0KDQotICAgKipU4bqtbiBk4bulbmcgY8OhYyBuZ3Xhu5NuIHRow7RuZyB0aW4gdsOgIG5ndeG7k24gbOG7sWMqKjogU+G7rSBk4bulbmcgY8OhYyBuZ3Xhu5NuIHRow7RuZyB0aW4gdsOgIGThu4tjaCB24bulIGjhu5cgdHLhu6MgdOG7qyB0csaw4budbmcgaOG7jWMsIGPDoWMgdOG7lSBjaOG7qWMgc2luaCB2acOqbiwgY8WpbmcgbmjGsCBjw6FjIHRyYW5nIHdlYiwgZGnhu4VuIMSRw6BuIHRy4buxYyB0dXnhur9uIMSR4buDIHTDrG0ga2nhur9tIHRow7RuZyB0aW4gduG7gSB2aeG7h2MgbMOgbSB2w6AgY8ahIGjhu5lpIG5naOG7gSBuZ2hp4buHcC4NCg0KPVw+IE5o4buvbmcgZ2nhuqNpIHBow6FwIG7DoHkgZ2nDunAgc2luaCB2acOqbiB04buxIHRpbiB2w6Agc+G6tW4gc8OgbmcgxJHhu5FpIG3hurd0IHbhu5tpIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZywgdMSDbmcgY8ahIGjhu5lpIHRow6BuaCBjw7RuZyB0cm9uZyBz4buxIG5naGnhu4dwIHNhdSBraGkgdOG7kXQgbmdoaeG7h3AuDQoNCiMjIFbhu4EgcGjDrWEgbmjDoCB0csaw4budbmcNCg0KLSAgICoqVMSDbmcgY8aw4budbmcgaOG7o3AgdMOhYyB24bubaSBkb2FuaCBuZ2hp4buHcCoqOiBOaMOgIHRyxrDhu51uZyBuw6puIHRow7pjIMSR4bqpeSB2aeG7h2MgaOG7o3AgdMOhYyBjaOG6t3QgY2jhur0gduG7m2kgY8OhYyBkb2FuaCBuZ2hp4buHcCDEkeG7gyBoaeG7g3UgcsO1IG5odSBj4bqndSBj4bunYSB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgdsOgIGN1bmcgY+G6pXAgY2hvIHNpbmggdmnDqm4gY8OhYyBjxqEgaOG7mWkgdGjhu7FjIHThuq1wLCB0dXnhu4NuIGThu6VuZyB2w6AgaOG7lyB0cuG7oyB2aeG7h2MgbMOgbSBzYXUgdOG7kXQgbmdoaeG7h3AuDQoNCi0gICAqKlBow6F0IHRyaeG7g24gY2jGsMahbmcgdHLDrG5oIGjhu41jIHThuq1wIGxpbmggaG/huqF0Kio6IE5ow6AgdHLGsOG7nW5nIG7Dqm4gdGhp4bq/dCBr4bq/IGPDoWMgY2jGsMahbmcgdHLDrG5oIGjhu41jIHThuq1wIGxpbmggaG/huqF0IHbDoCDEkWEgZOG6oW5nLCBr4bq/dCBo4bujcCBnaeG7r2EgbMO9IHRodXnhur90IHbDoCB0aOG7sWMgaMOgbmgsIGdpw7pwIHNpbmggdmnDqm4gcGjDoXQgdHJp4buDbiBr4bu5IG7Eg25nIGPhuqduIHRoaeG6v3QgY2hvIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZy4NCg0KLSAgICoqVOG6oW8gxJFp4buBdSBraeG7h24gY2hvIHZp4buHYyByw6huIGx1eeG7h24ga+G7uSBuxINuZyBt4buBbSoqOiBL4bu5IG7Eg25nIG3hu4FtIG5oxrAgZ2lhbyB0aeG6v3AsIGzDoG0gdmnhu4djIG5ow7NtLCBxdeG6o24gbMO9IHRo4budaSBnaWFuLCB2w6AgZ2nhuqNpIHF1eeG6v3QgduG6pW4gxJHhu4EgbMOgIHLhuqV0IHF1YW4gdHLhu41uZyB0cm9uZyBtw7RpIHRyxrDhu51uZyBsw6BtIHZp4buHYy4gTmjDoCB0csaw4budbmcgY8OzIHRo4buDIGN1bmcgY+G6pXAgY8OhYyBraMOzYSDEkcOgbyB04bqhbyB2w6AgaG/huqF0IMSR4buZbmcgcsOobiBsdXnhu4duIGvhu7kgbsSDbmcgbeG7gW0gY2hvIHNpbmggdmnDqm4uDQoNCi0gICAqKkjhu5cgdHLhu6MgcGjDoXQgdHJp4buDbiBuZ2jhu4EgbmdoaeG7h3AqKjogTmjDoCB0csaw4budbmcgbsOqbiBjdW5nIGPhuqVwIGPDoWMgZOG7i2NoIHbhu6UgdMawIHbhuqVuIG5naOG7gSBuZ2hp4buHcCwgaOG7lyB0cuG7oyB2aeG7h2MgbMOgbSwgdsOgIG3huqFuZyBsxrDhu5tpIGxpw6puIGvhur90IHbhu5tpIGPDoWMgZG9hbmggbmdoaeG7h3AgdsOgIGPhu5luZyDEkeG7k25nIGtpbmggZG9hbmggxJHhu4MgZ2nDunAgc2luaCB2acOqbiB0w6xtIGtp4bq/bSBjxqEgaOG7mWkgdmnhu4djIGzDoG0gcGjDuSBo4bujcCBzYXUga2hpIHThu5F0IG5naGnhu4dwLg0KDQotICAgKipUaeG6v3AgdOG7pWMgbsOibmcgY2FvIGNo4bqldCBsxrDhu6NuZyBnacOhbyBk4bulYyoqOiBOaMOgIHRyxrDhu51uZyBj4bqnbiBsacOqbiB04bulYyBj4bqjaSB0aGnhu4duIGNo4bqldCBsxrDhu6NuZyBnacOhbyBk4bulYyBi4bqxbmcgY8OhY2ggxJHhuqd1IHTGsCB2w6BvIGPGoSBz4bufIHbhuq10IGNo4bqldCwgbsOibmcgY2FvIHRyw6xuaCDEkeG7mSBnaeG6o25nIHZpw6puLCB2w6AgY+G6rXAgbmjhuq10IGNoxrDGoW5nIHRyw6xuaCBo4buNYyBwaMO5IGjhu6NwIHbhu5tpIHh1IGjGsOG7m25nIHbDoCBuaHUgY+G6p3UgY+G7p2EgdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLg0KDQo9XD4gVMOzbSBs4bqhaSwgYuG6sW5nIHZp4buHYyB0aOG7sWMgaGnhu4duIGPDoWMgZ2nhuqNpIHBow6FwIG7DoHksIG5ow6AgdHLGsOG7nW5nIGPDsyB0aOG7gyBnacO6cCBzaW5oIHZpw6puIGNodeG6qW4gYuG7iyB04buRdCBjaG8gdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nIGhp4buHbiBuYXkgdsOgIHTGsMahbmcgbGFpLg0KDQojIyBW4buBIHBow61hIGRvYW5oIG5naGnhu4dwDQoNCi0gICAqKlTEg25nIGPGoSBo4buZaSB0aOG7sWMgdOG6rXAgdsOgIGjhu41jIG5naOG7gSoqOiBDw6FjIGRvYW5oIG5naGnhu4dwIGPDsyB0aOG7gyB04bqhbyByYSBjw6FjIGNoxrDGoW5nIHRyw6xuaCB0aOG7sWMgdOG6rXAgdsOgIGjhu41jIG5naOG7gSDEkeG7gyBjdW5nIGPhuqVwIGNobyBzaW5oIHZpw6puIGPGoSBo4buZaSB0cuG6o2kgbmdoaeG7h20gdGjhu7FjIHThur8gdsOgIHBow6F0IHRyaeG7g24ga+G7uSBuxINuZyBj4bqnbiB0aGnhur90IHRyb25nIG5nw6BuaC4gxJBp4buBdSBuw6B5IGdpw7pwIHNpbmggdmnDqm4gY8OzIGPGoSBo4buZaSBo4buNYyBo4buPaSB2w6AgdMOtY2ggbHXhu7kga2luaCBuZ2hp4buHbSB0csaw4bubYyBraGkgdOG7kXQgbmdoaeG7h3AuDQoNCi0gICAqKljDonkgZOG7sW5nIG3hu5FpIHF1YW4gaOG7hyB24bubaSB0csaw4budbmcgxJHhuqFpIGjhu41jIHbDoCBjYW8gxJHhurNuZyoqOiBDw6FjIGRvYW5oIG5naGnhu4dwIGPDsyB0aOG7gyBo4bujcCB0w6FjIGNo4bq3dCBjaOG6vSB24bubaSBjw6FjIHRyxrDhu51uZyDEkeG6oWkgaOG7jWMgdsOgIGNhbyDEkeG6s25nIMSR4buDIHThuqFvIHJhIGPDoWMgY2jGsMahbmcgdHLDrG5oIMSRw6BvIHThuqFvIHBow7kgaOG7o3AgduG7m2kgbmh1IGPhuqd1IHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZy4gxJBp4buBdSBuw6B5IGdpw7pwIMSR4bqjbSBi4bqjbyBy4bqxbmcgc2luaCB2acOqbiDEkcaw4bujYyB0cmFuZyBi4buLIMSR4bunIGtp4bq/biB0aOG7qWMgdsOgIGvhu7kgbsSDbmcgxJHhu4MgdGjDrWNoIG5naGkgduG7m2kgY8O0bmcgdmnhu4djIHNhdSBraGkgdOG7kXQgbmdoaeG7h3AuDQoNCi0gICAqKlThuqFvIHJhIGPDoWMgY2jGsMahbmcgdHLDrG5oIMSRw6BvIHThuqFvIG7hu5lpIGLhu5kqKjogQ8OhYyBkb2FuaCBuZ2hp4buHcCBjw7MgdGjhu4MgdOG7lSBjaOG7qWMgY8OhYyBjaMawxqFuZyB0csOsbmggxJHDoG8gdOG6oW8gbuG7mWkgYuG7mSDEkeG7gyBnacO6cCBzaW5oIHZpw6puIHRp4bq/cCBj4bqtbiB2w6AgbMOgbSBxdWVuIHbhu5tpIG3DtGkgdHLGsOG7nW5nIGzDoG0gdmnhu4djIGPhu6dhIGjhu40gdHLGsOG7m2Mga2hpIGLGsOG7m2MgdsOgbyB0aOG7sWMgdOG6vy4gxJBp4buBdSBuw6B5IGdpw7pwIGdp4bqjbSB0aOG7nWkgZ2lhbiBow7JhIG5o4bqtcCB2w6AgdMSDbmcgaGnhu4d1IHN14bqldCBsw6BtIHZp4buHYyBj4bunYSBzaW5oIHZpw6puIHNhdSBraGkgZ2lhIG5o4bqtcCBkb2FuaCBuZ2hp4buHcC4NCg0KLSAgICoqWMOieSBk4buxbmcgbeG7kWkgcXVhbiBo4buHIGTDoGkgaOG6oW4gduG7m2kgc2luaCB2acOqbioqOiBDw6FjIGRvYW5oIG5naGnhu4dwIGPDsyB0aOG7gyB04bqhbyByYSBjw6FjIGNoxrDGoW5nIHRyw6xuaCBsacOqbiBr4bq/dCB2w6AgbeG7kWkgcXVhbiBo4buHIGTDoGkgaOG6oW4gduG7m2kgY8OhYyBzaW5oIHZpw6puIHRow7RuZyBxdWEgdmnhu4djIGN1bmcgY+G6pXAgY8ahIGjhu5lpIHRo4buxYyB04bqtcCwgaOG7jWMgYuG7lW5nIHbDoCBjaMawxqFuZyB0csOsbmggcGjDoXQgdHJp4buDbiBuZ2jhu4EgbmdoaeG7h3AuIMSQaeG7gXUgbsOgeSBnacO6cCB0aHUgaMO6dCB2w6AgZ2nhu68gY2jDom4gbmjhu69uZyBzaW5oIHZpw6puIHTDoGkgbsSDbmcgdsOgIHRp4buBbSBuxINuZyBjaG8gY8O0bmcgdHkuDQoNCj1cPiBC4bqxbmcgY8OhY2ggdGjhu7FjIGhp4buHbiBuaOG7r25nIGdp4bqjaSBwaMOhcCBuw6B5LCBjw6FjIGRvYW5oIG5naGnhu4dwIGPDsyB0aOG7gyB04bqhbyByYSBtw7RpIHRyxrDhu51uZyBsw6BtIHZp4buHYyB0aHXhuq1uIGzhu6NpIHbDoCBjxqEgaOG7mWkgcGjDoXQgdHJp4buDbiBjaG8gc2luaCB2acOqbiwgxJHhu5NuZyB0aOG7nWkgxJHDoXAg4bupbmcgxJHGsOG7o2Mgbmh1IGPhuqd1IGPhu6dhIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZyBoaeG7h24gbmF5Lg0KDQojIyBW4buBIHBow61hIG5ow6Agbsaw4bubYw0KDQotICAgKipUxINuZyBjxrDhu51uZyBo4buXIHRy4bujIGdpw6FvIGThu6VjIHbDoCDEkcOgbyB04bqhbyoqOiBOaMOgIG7GsOG7m2MgY8OzIHRo4buDIMSR4bqndSB0xrAgdsOgbyBjw6FjIGNoxrDGoW5nIHRyw6xuaCBnacOhbyBk4bulYyB2w6AgxJHDoG8gdOG6oW8gxJHhu4MgY+G6o2kgdGhp4buHbiBjaOG6pXQgbMaw4bujbmcgdsOgIMSR4buZIHBo4buVIGPhuq1wIGPhu6dhIGdpw6FvIGThu6VjLCDEkeG6t2MgYmnhu4d0IGzDoCB0cm9uZyBjw6FjIG5nw6BuaCBjw7RuZyBuZ2jhu4cgdGjDtG5nIHRpbiwgeSB04bq/LCB2w6Agc+G6o24geHXhuqV0LiDEkGnhu4F1IG7DoHkgZ2nDunAgc2luaCB2acOqbiB0aeG6v3AgY+G6rW4gxJHGsOG7o2Mga2nhur9uIHRo4bupYyB2w6Aga+G7uSBuxINuZyBwaMO5IGjhu6NwIHbhu5tpIG5odSBj4bqndSB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcuDQoNCi0gICAqKlThuqFvIHJhIGPGoSBo4buZaSB0aOG7sWMgdOG6rXAgdsOgIGjhu41jIG5naOG7gSoqOiBOaMOgIG7GsOG7m2MgY8OzIHRo4buDIHRow7pjIMSR4bqpeSB2aeG7h2MgaOG7o3AgdMOhYyBnaeG7r2EgdHLGsOG7nW5nIGjhu41jIHbDoCBkb2FuaCBuZ2hp4buHcCDEkeG7gyBjdW5nIGPhuqVwIGPGoSBo4buZaSB0aOG7sWMgdOG6rXAgdsOgIGjhu41jIG5naOG7gSBjaG8gc2luaCB2acOqbi4gxJBp4buBdSBuw6B5IGdpw7pwIHNpbmggdmnDqm4gY8OzIGPGoSBo4buZaSDDoXAgZOG7pW5nIGtp4bq/biB0aOG7qWMgdsOgbyB0aOG7sWMgdOG6vywgcGjDoXQgdHJp4buDbiBr4bu5IG7Eg25nIHbDoCB0w61jaCBsdeG7uSBraW5oIG5naGnhu4dtIGzDoG0gdmnhu4djLg0KDQotICAgKipYw6J5IGThu7FuZyBjaMOtbmggc8OhY2ggaOG7lyB0cuG7oyBjaG8gZG9hbmggbmdoaeG7h3AgdsOgIGRvYW5oIG5ow6JuKio6IE5ow6Agbsaw4bubYyBjw7MgdGjhu4MgdGhp4bq/dCBs4bqtcCBjw6FjIGNow61uaCBzw6FjaCBo4buXIHRy4bujIGNobyBkb2FuaCBuZ2hp4buHcCB2w6AgZG9hbmggbmjDom4sIMSR4bq3YyBiaeG7h3QgbMOgIGPDoWMgZG9hbmggbmdoaeG7h3Agbmjhu48gdsOgIHbhu6thLiDEkGnhu4F1IG7DoHkgYmFvIGfhu5NtIHZp4buHYyBjdW5nIGPhuqVwIHbhu5FuIHZheSDGsHUgxJHDo2ksIGjhu5cgdHLhu6MgduG7gSDEkcOgbyB04bqhbyBuaMOibiB2acOqbiwgdsOgIHThuqFvIMSRaeG7gXUga2nhu4duIHRodeG6rW4gbOG7o2kgY2hvIGhv4bqhdCDEkeG7mW5nIGtpbmggZG9hbmguDQoNCi0gICAqKlRow7pjIMSR4bqpeSBz4buxIHBow6F0IHRyaeG7g24gY+G7p2EgY8OhYyBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdGnhu4FtIG7Eg25nKio6IE5ow6Agbsaw4bubYyBjw7MgdGjhu4MgdOG6rXAgdHJ1bmcgdsOgbyB2aeG7h2MgcGjDoXQgdHJp4buDbiBjw6FjIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB0aeG7gW0gbsSDbmcgbmjGsCBjw7RuZyBuZ2jhu4cgdGjDtG5nIHRpbiwgbsSDbmcgbMaw4bujbmcgdMOhaSB04bqhbywgdsOgIGThu4tjaCB24bulIHkgdOG6vy4gxJBp4buBdSBuw6B5IHThuqFvIHJhIG5oaeG7gXUgY8ahIGjhu5lpIHZp4buHYyBsw6BtIG3hu5tpIGNobyBzaW5oIHZpw6puIHbDoCBnacO6cCB0aMO6YyDEkeG6qXkgc+G7sSBwaMOhdCB0cmnhu4NuIGtpbmggdOG6vy4NCg0KLSAgICoqxJDhuqNtIGLhuqNvIGPDtG5nIGLhurFuZyB2w6AgY8ahIGjhu5lpIGPDtG5nIHZp4buHYyoqOiBOaMOgIG7GsOG7m2MgY+G6p24gxJHhuqNtIGLhuqNvIHLhurFuZyB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgY8OzIHPhu7EgY8O0bmcgYuG6sW5nIHbDoCBjxqEgaOG7mWkgY8O0bmcgdmnhu4djIGNobyB04bqldCBj4bqjIGPDoWMgc2luaCB2acOqbiwga2jDtG5nIHBow6JuIGJp4buHdCDEkeG7kWkgeOG7rSBk4buxYSB0csOqbiBnaeG7m2kgdMOtbmgsIGTDom4gdOG7mWMsIGhv4bq3YyBuZ3Xhu5NuIGfhu5FjIHjDoyBo4buZaS4NCg0KPVw+IELhurFuZyBjw6FjaCB0aOG7sWMgaGnhu4duIG5o4buvbmcgZ2nhuqNpIHBow6FwIG7DoHksIG5ow6Agbsaw4bubYyBjw7MgdGjhu4MgZ2nDunAgY+G6o2kgdGhp4buHbiB0w6xuaCBow6xuaCB0aOG7iyB0csaw4budbmcgbGFvIMSR4buZbmcgdsOgIHThuqFvIHJhIGPGoSBo4buZaSBjaG8gc+G7sSBwaMOhdCB0cmnhu4NuIGPhu6dhIHNpbmggdmnDqm4gdsOgIG7hu4FuIGtpbmggdOG6vyDEkeG6pXQgbsaw4bubYy4NCg0KIyBDaMawxqFuZyA1OiBL4bq/dCBsdeG6rW4uDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpUcm9uZyBiw6BpIHRp4buDdSBsdeG6rW4gduG7gSBjxqEgaOG7mWkgbmdo4buBIG5naGnhu4dwIGPhu6dhIHNpbmggdmnDqm4sIGNow7puZyB0YSDEkcOjIHRo4bqjbyBsdeG6rW4gduG7gSBt4buZdCBsb+G6oXQgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biB2aeG7h2MgdMOsbSBraeG6v20gdmnhu4djIGzDoG0gY+G7p2Egc2luaCB2acOqbiBt4bubaSByYSB0csaw4budbmcuIFThu6sgdmnhu4djIHhlbSB4w6l0IHh1IGjGsOG7m25nIHRo4buLIHRyxrDhu51uZyBsYW8gxJHhu5luZyDEkeG6v24gcGjDom4gdMOtY2ggduG7gSB0w6JtIGzDvSB2w6Aga+G7uSBuxINuZyBj4bunYSBzaW5oIHZpw6puLCBjaMO6bmcgdGEgY8OzIGPDoWkgbmjDrG4gdOG7lW5nIHF1YW4gduG7gSBjxqEgaOG7mWkgdsOgIHRow6FjaCB0aOG7qWMgbcOgIHNpbmggdmnDqm4gxJHhu5FpIG3hurd0IGtoaSBixrDhu5tjIHbDoG8gdGjhu4sgdHLGsOG7nW5nIGxhbyDEkeG7mW5nLg0KDQpDxqEgaOG7mWkgbmdo4buBIG5naGnhu4dwIGPhu6dhIHNpbmggdmnDqm4ga2hpIHJhIHRyxrDhu51uZyBwaOG7pSB0aHXhu5ljIHbDoG8gc+G7sSBjaHXhuqluIGLhu4sga+G7uSBuxINuZyB2w6Aga2nhur9uIHRo4bupYyBj4bunYSBo4buNLCBjw7luZyB24bubaSBz4buxIGjhu5cgdHLhu6MgdOG7qyBwaMOtYSBkb2FuaCBuZ2hp4buHcCB2w6AgdHLGsOG7nW5nIMSR4bqhaSBo4buNYy4gxJBp4buBdSBuw6B5IMSR4bq3dCByYSBt4buZdCB0aMOhY2ggdGjhu6ljIHbDoCBjxaluZyBsw6AgY8ahIGjhu5lpIGNobyBzaW5oIHZpw6puIMSR4buDIHBow6F0IHRyaeG7g24gdsOgIMSR4bqhdCDEkcaw4bujYyB0aMOgbmggY8O0bmcgdHJvbmcgc+G7sSBuZ2hp4buHcCBj4bunYSBtw6xuaC4NCg0KVmnhu4djIGjhu6NwIHTDoWMgY2jhurd0IGNo4bq9IGdp4buvYSB0csaw4budbmcgxJHhuqFpIGjhu41jLCBkb2FuaCBuZ2hp4buHcCB2w6AgY2jDrW5oIHBo4bunIGzDoCBjaMOsYSBraMOzYSDEkeG7gyB04bqhbyByYSBt4buZdCBtw7RpIHRyxrDhu51uZyBsYW8gxJHhu5luZyBwaMOhdCB0cmnhu4NuIHbDoCB0aMO6YyDEkeG6qXkgc+G7sSB0aMOgbmggY8O0bmcgY+G7p2Egc2luaCB2acOqbi4gQuG6sW5nIGPDoWNoIG7DoHksIGNow7puZyB0YSBjw7MgdGjhu4MgxJHhuqNtIGLhuqNvIHLhurFuZyBzaW5oIHZpw6puIHPhur0gY8OzIGPGoSBo4buZaSB04buRdCBuaOG6pXQgxJHhu4Mga2hhaSBwaMOhIHRp4buBbSBuxINuZyBj4bunYSBtw6xuaCB2w6AgxJHhuqF0IMSRxrDhu6NjIHRow6BuaCBjw7RuZyB0cm9uZyBz4buxIG5naGnhu4dwIGPhu6dhIG3DrG5oLg0KDQojIENoxrDGoW5nIDY6IFTDoGkgbGnhu4d1IHRoYW0ga2jhuqNvLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLSAgIA0KDQogICAgKDEpIDxodHRwczovL3d3dy5nc28uZ292LnZuL2R1LWxpZXUtdmEtc28tbGlldS10aG9uZy1rZS8yMDIyLzAxL3Rob25nLWNhby1iYW8tY2hpLXRpbmgtaGluaC1sYW8tZG9uZy12aWVjLWxhbS1xdXktaXYtbmFtLTIwMjEtdmEtY2hpLXNvLXBoYXQtdHJpZW4tY29uLW5ndW9pLXZpZXQtbmFtLTIwMTYtMjAyMC8+DQoNCi0gICANCg0KICAgICgyKSA8aHR0cHM6Ly93d3cuZ3NvLmdvdi52bi9kdS1saWV1LXZhLXNvLWxpZXUtdGhvbmcta2UvMjAyMy8wMS90aG9uZy1jYW8tYmFvLWNoaS10aW5oLWhpbmgtbGFvLWRvbmctdmllYy1sYW0tcXV5LWl2LXZhLW5hbS0yMDIyLz4NCg0KLSAgIA0KDQogICAgKDMpIDxodHRwczovL3d3dy5nc28uZ292LnZuL2R1LWxpZXUtdmEtc28tbGlldS10aG9uZy1rZS8yMDIzLzEyL3Rob25nLWNhby1iYW8tY2hpLXZlLXRpbmgtaGluaC1kYW4tc28tbGFvLWRvbmctdmllYy1sYW0tcXV5LWl2LXZhLW5hbS0yMDIzLz4NCg0KLSAgIA0KDQogICAgKDQpIDxodHRwczovL3d3dy5nc28uZ292LnZuL2R1LWxpZXUtdmEtc28tbGlldS10aG9uZy1rZS8yMDI0LzAxL3RpbmgtaGluaC10aGktdHJ1b25nLWxhby1kb25nLXZpZXQtbmFtLW5hbS0yMDIzLz4uDQoNCi0gICANCg0KICAgICg1KSA8aHR0cHM6Ly93d3cuZ3NvLmdvdi52bi93cC1jb250ZW50L3VwbG9hZHMvMjAyNC8wMS9TYWNoLXRyYW5nLURvYW5oLU5naGllcC0yMDIzLnBkZj4uDQo=