Bài tập chương 3

3.1. Tham khảo dữ liệu ở Bảng 3.1. Chạy mô hình xác suất tuyến tính hoặc mô hình hồi quy logistic sử dụng điểm (i) (0,2,4,6), (ii) (0,1,2,3), (iii) (1,2,3,4). So sánh các tham số mô hình ước tính theo ba lược chọn. So sánh các giá trị được ước lượng. Hãy nhận xét về ảnh hưởng của việc chuyển đổi điểm số (được gọi là tuyến tính) để bảo toàn các khoảng cách giữa các điểm?

3.2. Tham khảo Bảng 3.2. Cho \(Y = 1\) nếu một con cua có ít nhất một vệ tinh, và \(Y = 0\) nếu không. Sử dụng cân nặng làm dự báo, ước lượng mô hình xác suất tuyến tính theo các phương pháp sau:

  1. Phương pháp OLS. Giải thích tham số ước lượng. Tìm xác suất dự đoán ở trọng lượng quan sát cao nhất là 5.20 kg. Giải thích.

  2. Thử ước lượng mô hình sử dụng ML, xem Y như nhị thức. (Sự thất bại là do một xác suất được ước lượng ằm ngoài phạm vi (0,1). Trong (a), bình phương nhỏ nhất tương ứng với ML đối với một thành phần ngẫu nhiên bình thường, cho phép các giá trị ước lượng nằm ngoài phạm vi này.)

  3. Ước lượng với mô hình hồi quy logistic. Cho biết logit dự đoán ở trọng lượng 5.20kg bằng 5.74. Cho biết rằng \(\hat{\pi} = 0.9968\) tại thời điểm đó bằng cách kiểm tra rằng \(log[\hat{\pi} / (1 - \hat{\pi})] = 5.74\)

  4. Ước lượng mô hình probit. Giải thích các tham số ước lượng sử dụng các tính chất của cdf chuẩn mô tả đường cong phản ứng. Tìm xác suất dự đoán ở trọng lượng = 5.20kg.

3.4. Tham khảo Bảng 2.7 về tiêu thụ rượu và dị dạng trẻ sơ sinh.

  1. Sử dụng các điểm số {0, 0.5, 1.5, 4, 7}, ước lượng mô hình xác suất tuyến tính. Giải thích và so sánh tỷ lệ mẫu với xác suất được ước lượng.

  2. Ước lượng mô hình logit hoặc probit và giải thích

3.5. Một thí nghiệm phân tích tỷ lệ không hoàn hảo cho hai quy trình được sử dụng để chế tạo các tấm silicon cho chip máy tính. Đối với phương pháp A áp dụng cho 10 tấm, số lượng không hoàn hảo là 8, 7, 6, 6, 3, 4, 7, 2, 3, 4. Phương pháp B áp dụng cho 10 tấm có 9, 9, 8, 14, 8, 13, 11, 5, 7, 6 không hoàn hảo. Xem các giá trị là các biến ngẫu nhiên phân phối Poisson độc lập có trung bình là \(\mu_A\)\(\mu_B\).

  1. Ước lượng mô hình \(log\mu = \alpha + \beta x\), trong đó \(x = 1\) đối với phương pháp A. Chứng tỏ \(\beta = log\mu_B - log\mu_A\) và giải thích ước lượng của nó.

  2. Kiểm định \(H_0\): \(\mu_A = \mu_B\) bằng cách tiến hành kiểm định tỷ lệ Wald hoặc tỷ lệ hợp lý \(H_0\): \(\beta = 0\). Giải thích.

  3. Tìm khoảng ước ượng với độ tin cậy 95% cho \(\mu_B/\mu_A\). (hướng dẫn: đầu tiên xác định \(\beta = log\mu_B - log\mu_A = log(\mu_B/\mu_A))\).

3.6. Bảng 4.6 đề cập đến một mẫu các đối tượng được chọn ngẫu nhiên cho một nghiên cứu của Ý về mối quan hệ giữa thu nhập và người có thẻ tín dụng du lịch (như American Express hay Diners Club). Ở mỗi cấp độ thu nhập hàng năm triệu lira, bảng cho thấy số lượng đối tượng được lấy mẫu và số lượng họ có ít nhất một thẻ tín dụng du lịch. Phân tích các dữ liệu này.

Thu
nhập
Số
trường hợp
Thẻ
tín dụng
Thu
nhập
Số
trường hợp
Thẻ
tín dụng
24 1 0 48 1 0
27 1 0 49 1 0
28 5 2 50 10 2
29 3 0 52 1 0
30 9 1 59 1 0
31 5 1 60 5 2
32 8 0 65 6 6
33 1 0 68 3 3
34 7 1 70 5 3
35 1 1 79 1 0
38 3 1 80 1 0
39 2 0 84 1 0
40 5 0 94 1 0
41 2 0 120 6 6
42 2 0 130 1 1
45 1 1

Nguồn: phân tích dữ liệu định tính, Quaderni del Corso Estivo di Statistica e Calcolo delle., Istituto di Metodi Quantita Universita Luigi Bocconi, a cura di R. Piccarreta.

\[{Bảng 4.6}\]

3.7. Với bài toán trên. Thực hện kiểm định \(H_0\): \(\mu_A = \mu_B\) bằng cách sử dụng dữ liệu thực tế là nếu X là phân phối Poisson với trung bình \(\mu_1\) và Y là biến ngẫu nhiên độc lập Poisson độc lập có trung bình \(\mu_2\) thì X cho X + Y là nhị thức với chỉ số \(n = X + Y\) và tham số \(\pi = \mu_1/(\mu_1 + \mu_2)\). (Gợi ý: Cho X và Y là tổng số của sự không hoàn hảo cho hai phương pháp, sau đó kiểm định của Poisson đồng nghĩa là quy về phép kiểm định nhị thức \(\pi = 1/2\). Khi 140 thử nghiệm có 50 thành công.)

3.8. Tham khảo Bài 4.6.Các tấm silicon cũng được định tính bởi độ dày lớp silicon (z = 0, thấp, z = 1, cao). Năm số liệu không hoàn hảo đầu tiên được xem z = 0 và năm cuối cùng xem z = 1. Phân tích các dữ liệu này.

3.9. Tham khảo Bảng 4.2.

  1. Sử dụng cân nặng làm dự báo và số lượng vệ tinh như là phản ứng, ước lượng mô hình loglinear Poisson. Ước lượng số lượng vệ tinh trung bình cho cua cái có trọng lượng trung bình 2.44kg

  2. Sử dụng \(\hat{\beta}\) để mô tả ảnh hưởng của trọng lượng. Xây dựng khoảng tin cậy cho ảnh hưởng.

  3. Tiến hành kiểm định Wald về giả thuyết rằng số lượng vệ tinh trung bình không phụ thuộc vào trọng lượng. Giải thích.

  4. Tiến hành một thử nghiệm tỉ lệ khả năng độ lập. Giải thích.

3.10. Tham khảo bài tán trước.

  1. Kiểm tra sự phù hợp bằng cách xếp loại cân nặng. Sử dụng số dư để mô tả sự thiếu phù hợp.

  2. Có bằng chứng về sự phân tán quá mức không? Nếu cần thiết, điều chỉnh các sai số chuẩn cho các ước lượng tham số và giải thích.

3.11. Thamm khảo Bảng 4.2.

  1. Ước lượng mô hình loglinear Poisson sử dụng trọng lượng và màu sắc để dự đoán số lượng vệ tinh. Gán các biến giả, xem màu sắc là định danh. Giải thích tham số ước lượng.

  2. Ước tính số lượng trung bình các vệ tinh cho cua cái có trọng lượng trung bình (2.44 kg) là (i) ánh sáng trung bình, (ii) đen.

  3. Kiểm định màu sắc có cần thiết trong mô hình. (Gợi ý: từ Phần 4.5.3, thống kê tỷ lệ hợp lý so sánh hai mô hình là sự khác biệt trong số liệu thống kê về sự phù hợp của \(G^2\)).

  4. Lưu ý rằng ước lượng màu sắc là một trong bốn loại. Ước lượng với một mô hình đơn giản hơn với việc xem màu sắc như định lượng bằng cách giả sử ảnh hưởng màu sắc là tuyến tính. Giải thích ảnh hưởng màu sắc trong mô hình này, và lặp lại các phân tích của (b) và (c). So sánh sự phù hợp với mô hình trong (a). Giải thích.

  5. Mở rộng mô hình. Lưu ý ảnh hưởng của sự tương quan mạnh mẽ giữa chiều rộng và cân nặng. Có phải cả chiều rộng và trọng lượng là cần thiết?

3.12. Trong Phần 4.3.2, tham khảo mô hình hồi quy Poisson với liên kết đồng nhất cho dữ liệu cua. Giải thích tại sao mô hình khác với ước lượng bình phương tối thiểu. (Gợi ý: Ước lượng với bình phương nhỏ nhất cũng giống như ước lượng với ML của GLM giả định là phân phối chuẩn chứ không phải là thành phần ngẫu nhiên Poisson.)

Chương4

HỒI QUY LOGISTIC

Trong chương này chúng ta sẽ xem xét kỹ hơn mô hình thống kê mà trong đó phản hồi của biến đáp ứng được chia làm hai loại là “thành công” hoặc “thất bại”, chẳng hạn: Vỡ nợ/ Không vỡ nợ; Mắc bệnh/ Không mắc bệnh; Nam/ Nữ; Hoàn thành kế hoạch/ Không hoàn thành kế hoạch; Kịp tiến độ/ Không kịp tiến độ; Đạt/ Không đạt, Thích/ Không thích, v.v… . Mô hình phổ biến nhất cho dữ liệu nhị phân là mô hình hồi quy logistics. Phần 3.2.3 đã giới thiệu mô hình này như là một trường hợp riêng của mô hình tuyến tính tổng quát (GLM) cho một thành phần ngẫu nhiên. Chương này nghiên cứu ứng dụng hồi quy logistic một cách chi tiết hơn, với các nội dung: Diễn giải mô hình hồi quy logistic, suy luận thống kê cho các tham số mô hình, kiểm tra sự phù hợp của mô hình, xử lý dự báo định tính trong mô hình, mở rộng mô hình cho nhiều biến giải thích, lựa chọn mô hình, xác định quy mô mẫu cần thiết để có được lực mạnh cho dự báo và kiểm định.

4.1. Hồi quy logistic hai biến

4.1.1. Giải thích mô hình hồi quy logistic

Trong nhiều trường hợp, biến đáp ứng nhị phân (với hai đáp ứng “Thành công” và “Thất bại”) chịu ảnh hưởng của một biến dự báo theo xu thế: khả năng “Thành công” tăng hoặc giảm theo chiều gia tăng mức độ x của biến dự báo X. Để mô tả xu thế này, trong chương trước chúng ta đã biết những hạn chế của mô hình xác suất tuyến tính, hơn nữa xu thế phụ thuộc thường là phi tuyến. Mặt khác, cho dù tăng hay giảm thì hàm xác suất “Thành công” \(\pi(x)\) đều không vượt ra ngoài đoạn [0, 1], nên về hai phía, đường cong \(y = \pi(x)\) phải tiệm cận với 0 và 1, tức là có dạng hình chữ S. Vì vậy dạng hàm logistic hay probit mà đặc biệt là dạng logistic là thích hợp cho việc mô tả xu thế này.

Với biến đáp ứng nhị phân có hai kết cục mà ta gọi là “Thành công” và “Thất bại” được mô tả bởi biến Y:

\[Y=\begin{cases}1&nếu&kết&cục&là & “Thành&công”\\ 0&nếu&kết&cục&là& “Thất&bại”\end{cases}\]

Khi đó xác suất “Thành công” ứng với mức x của biến dự báo X là:

\[\pi(x) = P(Y = 1|X = x) = E(Y|X = x)\]

Vậy \(\pi(x)\) chính là hàm hồi quy của Y theo X. Mô hình hồi quy logistic là mô hình:

\[\pi(x) = E(Y|X = x) = \frac{1}{1 + exp(-\beta_0-\beta_1x)}\](4.1.1a)

4.1.2. Diễn giải ý nghĩa các tham số

a. Các biểu diễn khác nhau của mô hình logistic:

  • Hàm của logit là hàm bậc nhất:

\[log(\frac{\pi(x)}{1 - \pi(x)}) = \beta_0 + \beta_1x\](4.1.1b)

  • Biểu diễn tỷ lệ cược:

\[Odds = exp(\beta_0 + \beta_1x)\]

\[trong đó: Odds = \frac{\pi(x)}{1 - \pi(x)}\]

b. Diễn giải ý nghĩa các tham số

  • Tỷ lệ cược Odds càng lớn thì xác suất thành công càng lớn, hay càng có nhiều khả năng \(Y = 1\).

  • Khi x tăng lên 1 đơn vị thì:

    • log(Odds) được cộng thêm \(\beta_1\) đơn vị,

    • Odds được nhân lên e^\(\beta_1\) lần.

  • Khi \(\beta_1\) > 0 thì \(\pi(x)\) đồng biến theo x.

  • Khi \(\beta_1\) < 0 thì \(\pi(x)\) nghịch biến theo x.

  • Khi \(\beta_1\) = 0 thì \(\pi(x)\) là hằng số, tức là khả năng \(Y = 1\) hay \(Y = 0\) phụ thuộc vào X.

4.1.3. Ước lượng cho mô hình logistic

Xét mô hình logistic:

\[log(\frac{\pi(x)}{1 - \pi(x)}) = \beta_0 + \beta_1x\](4.1.2)

Việc ước lượng mô hình logistic là tìm các ước lượng \(\hat\beta_0\), \(\hat\beta_1\) cho các hệ số \(\beta_0, \beta_1\)

Để ý rằng biến đáp ứng (biến phụ thuộc) là biến định tính nhận một trong hai biểu hiện: “Thành công” và “Không thành công” mà nó được đại diện bởi biến ngẫu nhiên Y có phân phối 0 - 1, trong đó Y chính là số “thành công”. Vì xét trong sự phụ thuộc vào biến giải thích X nên xác suất thành công \(\pi\) phụ thuộc vào X: \(\pi = \pi(x) = P(Y = 1|X =x)\). Ở mức X = x ta có bảng phân phối xác suất:

\(\mathrm{Y}\) 0 1 \(\Sigma\)
\(\mathrm{P}\) \(1-\pi(x)\) \(\pi(x)\) 1

Do đó: \(E(Y|X = x) = \pi(x)\). Thành ra mô hình logistic là mô hình hồi quy:

\[Y = E(Y|X) + U = \pi + U\] (4.1.3)

Mô hình này có nhiễu \(U = Y - \pi\). Rõ ràng nhiễu U có phương sai

LS0tDQp0aXRsZTogIkdJw4FPIFRSw4xOSCBUUkFORyA4MS04NSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICBwZGZfZG9jdW1lbnQ6DQogICAgZXh0cmFfZGVwZW5kZW5jaWVzOg0KICAgICAgdmlldG5hbTogdXRmOA0KICAgIHRvYzogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQpnZW9tZXRyeToNCiAgICAgIC0gaW5uZXI9M2NtDQogICAgICAtIG91dGVyPTRjbQ0KICAgICAgLSB0b3A9M2NtDQogICAgICAtIGJvdHRvbT00Y20NCiAgICAgIC0gaGVhZHNlcD0yMnB0DQogICAgICAtIGhlYWRoZWlnaHQ9MTFwdA0KICAgICAgLSBmb290c2tpcD0zM3B0DQogICAgICAtIGlnbm9yZWhlYWQNCiAgICAgIC0gaWdub3JlZm9vdA0KICAgICAgLSBoZWlnaHRyb3VuZGVkDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIG9wdGlvbnMoZGlnaXRzID0gNCksICBhdHRyLnNvdXJjZT0nLm51bWJlckxpbmVzJykNCmBgYA0KDQojIELDoGkgdOG6rXAgY2jGsMahbmcgMw0KDQoqKjMuMS4qKiBUaGFtIGto4bqjbyBk4buvIGxp4buHdSDhu58gQuG6o25nIDMuMS4gQ2jhuqF5IG3DtCBow6xuaCB4w6FjIHN14bqldCB0dXnhur9uIHTDrW5oIGhv4bq3YyBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2lzdGljIHPhu60gZOG7pW5nIMSRaeG7g20gKGkpICgwLDIsNCw2KSwgKGlpKSAoMCwxLDIsMyksIChpaWkpICgxLDIsMyw0KS4gU28gc8OhbmggY8OhYyB0aGFtIHPhu5EgbcO0IGjDrG5oIMaw4bubYyB0w61uaCB0aGVvIGJhIGzGsOG7o2MgY2jhu41uLiBTbyBzw6FuaCBjw6FjIGdpw6EgdHLhu4sgxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nLiBIw6N5IG5o4bqtbiB4w6l0IHbhu4Eg4bqjbmggaMaw4bufbmcgY+G7p2Egdmnhu4djIGNodXnhu4NuIMSR4buVaSDEkWnhu4NtIHPhu5EgKMSRxrDhu6NjIGfhu41pIGzDoCB0dXnhur9uIHTDrW5oKSDEkeG7gyBi4bqjbyB0b8OgbiBjw6FjIGtob+G6o25nIGPDoWNoIGdp4buvYSBjw6FjIMSRaeG7g20/DQoNCioqMy4yLioqIFRoYW0ga2jhuqNvIELhuqNuZyAzLjIuIENobyAkWSA9IDEkIG7hur91IG3hu5l0IGNvbiBjdWEgY8OzIMOtdCBuaOG6pXQgbeG7mXQgduG7hyB0aW5oLCB2w6AgJFkgPSAwJCBu4bq/dSBraMO0bmcuIFPhu60gZOG7pW5nIGPDom4gbuG6t25nIGzDoG0gZOG7sSBiw6FvLCDGsOG7m2MgbMaw4bujbmcgbcO0IGjDrG5oIHjDoWMgc3XhuqV0IHR1eeG6v24gdMOtbmggdGhlbyBjw6FjIHBoxrDGoW5nIHBow6FwIHNhdToNCg0KICBhLiBQaMawxqFuZyBwaMOhcCBPTFMuIEdp4bqjaSB0aMOtY2ggdGhhbSBz4buRIMaw4bubYyBsxrDhu6NuZy4gVMOsbSB4w6FjIHN14bqldCBk4buxIMSRb8OhbiDhu58gdHLhu41uZyBsxrDhu6NuZyBxdWFuIHPDoXQgY2FvIG5o4bqldCBsw6AgNS4yMCBrZy4gR2nhuqNpIHRow61jaC4NCiAgDQogIGIuIFRo4butIMaw4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggc+G7rSBk4bulbmcgTUwsIHhlbSBZIG5oxrAgbmjhu4sgdGjhu6ljLiAoU+G7sSB0aOG6pXQgYuG6oWkgbMOgIGRvIG3hu5l0IHjDoWMgc3XhuqV0IMSRxrDhu6NjIMaw4bubYyBsxrDhu6NuZyDhurFtIG5nb8OgaSBwaOG6oW0gdmkgKDAsMSkuIFRyb25nIChhKSwgYsOsbmggcGjGsMahbmcgbmjhu48gbmjhuqV0IHTGsMahbmcg4bupbmcgduG7m2kgTUwgxJHhu5FpIHbhu5tpIG3hu5l0IHRow6BuaCBwaOG6p24gbmfhuqt1IG5oacOqbiBiw6xuaCB0aMaw4budbmcsIGNobyBwaMOpcCBjw6FjIGdpw6EgdHLhu4sgxrDhu5tjIGzGsOG7o25nIG7hurFtIG5nb8OgaSBwaOG6oW0gdmkgbsOgeS4pDQogIA0KICBjLiDGr+G7m2MgbMaw4bujbmcgduG7m2kgbcO0IGjDrG5oIGjhu5NpIHF1eSBsb2dpc3RpYy4gQ2hvIGJp4bq/dCBsb2dpdCBk4buxIMSRb8OhbiDhu58gdHLhu41uZyBsxrDhu6NuZyA1LjIwa2cgYuG6sW5nIDUuNzQuIENobyBiaeG6v3QgcuG6sW5nICRcaGF0e1xwaX0gPSAwLjk5NjgkIHThuqFpIHRo4budaSDEkWnhu4NtIMSRw7MgYuG6sW5nIGPDoWNoIGtp4buDbSB0cmEgcuG6sW5nICRsb2dbXGhhdHtccGl9IC8gKDEgLSBcaGF0e1xwaX0pXSA9IDUuNzQkDQogIA0KICBkLiDGr+G7m2MgbMaw4bujbmcgbcO0IGjDrG5oIHByb2JpdC4gR2nhuqNpIHRow61jaCBjw6FjIHRoYW0gc+G7kSDGsOG7m2MgbMaw4bujbmcgc+G7rSBk4bulbmcgY8OhYyB0w61uaCBjaOG6pXQgY+G7p2EgY2RmIGNodeG6qW4gbcO0IHThuqMgxJHGsOG7nW5nIGNvbmcgcGjhuqNuIOG7qW5nLiBUw6xtIHjDoWMgc3XhuqV0IGThu7EgxJFvw6FuIOG7nyB0cuG7jW5nIGzGsOG7o25nID0gNS4yMGtnLg0KDQoqKjMuNC4qKiBUaGFtIGto4bqjbyBC4bqjbmcgMi43IHbhu4EgdGnDqnUgdGjhu6Ugcsaw4bujdSB2w6AgZOG7iyBk4bqhbmcgdHLhursgc8ahIHNpbmguDQoNCiAgYS4gU+G7rSBk4bulbmcgY8OhYyDEkWnhu4NtIHPhu5EgezAsIDAuNSwgMS41LCA0LCA3fSwgxrDhu5tjIGzGsOG7o25nIG3DtCBow6xuaCB4w6FjIHN14bqldCB0dXnhur9uIHTDrW5oLiBHaeG6o2kgdGjDrWNoIHbDoCBzbyBzw6FuaCB04bu3IGzhu4cgbeG6q3UgduG7m2kgeMOhYyBzdeG6pXQgxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nLg0KICANCiAgYi4gxq/hu5tjIGzGsOG7o25nIG3DtCBow6xuaCBsb2dpdCBob+G6t2MgcHJvYml0IHbDoCBnaeG6o2kgdGjDrWNoDQogIA0KKiozLjUuKiogTeG7mXQgdGjDrSBuZ2hp4buHbSBwaMOibiB0w61jaCB04bu3IGzhu4cga2jDtG5nIGhvw6BuIGjhuqNvIGNobyBoYWkgcXV5IHRyw6xuaCDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyBjaOG6vyB04bqhbyBjw6FjIHThuqVtIHNpbGljb24gY2hvIGNoaXAgbcOheSB0w61uaC4gxJDhu5FpIHbhu5tpIHBoxrDGoW5nIHBow6FwIEEgw6FwIGThu6VuZyBjaG8gMTAgdOG6pW0sIHPhu5EgbMaw4bujbmcga2jDtG5nIGhvw6BuIGjhuqNvIGzDoCA4LCA3LCA2LCA2LCAzLCA0LCA3LCAyLCAzLCA0LiBQaMawxqFuZyBwaMOhcCBCIMOhcCBk4bulbmcgY2hvIDEwIHThuqVtIGPDsyA5LCA5LCA4LCAxNCwgOCwgMTMsIDExLCA1LCA3LCA2IGtow7RuZyBob8OgbiBo4bqjby4gWGVtIGPDoWMgZ2nDoSB0cuG7iyBsw6AgY8OhYyBiaeG6v24gbmfhuqt1IG5oacOqbiBwaMOibiBwaOG7kWkgUG9pc3NvbiDEkeG7mWMgbOG6rXAgY8OzIHRydW5nIGLDrG5oIGzDoCAkXG11X0EkIHbDoCAkXG11X0IkLg0KDQogIGEuIMav4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggJGxvZ1xtdSA9IFxhbHBoYSArIFxiZXRhIHgkLCB0cm9uZyDEkcOzICR4ID0gMSQgxJHhu5FpIHbhu5tpIHBoxrDGoW5nIHBow6FwIEEuIENo4bupbmcgdOG7jyAkXGJldGEgPSBsb2dcbXVfQiAtIGxvZ1xtdV9BJCB2w6AgZ2nhuqNpIHRow61jaCDGsOG7m2MgbMaw4bujbmcgY+G7p2EgbsOzLg0KICANCiAgYi4gS2nhu4NtIMSR4buLbmggJEhfMCQ6ICRcbXVfQSA9IFxtdV9CJCBi4bqxbmcgY8OhY2ggdGnhur9uIGjDoG5oIGtp4buDbSDEkeG7i25oIHThu7cgbOG7hyBXYWxkIGhv4bq3YyB04bu3IGzhu4cgaOG7o3AgbMO9ICRIXzAkOiAkXGJldGEgPSAwJC4gR2nhuqNpIHRow61jaC4NCiAgDQogIGMuIFTDrG0ga2hv4bqjbmcgxrDhu5tjIMaw4bujbmcgduG7m2kgxJHhu5kgdGluIGPhuq15IDk1JSBjaG8gJFxtdV9CL1xtdV9BJC4gKGjGsOG7m25nIGThuqtuOiDEkeG6p3UgdGnDqm4geMOhYyDEkeG7i25oICRcYmV0YSA9IGxvZ1xtdV9CIC0gbG9nXG11X0EgPSBsb2coXG11X0IvXG11X0EpKSQuDQogIA0KKiozLjYuKiogQuG6o25nIDQuNiDEkeG7gSBj4bqtcCDEkeG6v24gbeG7mXQgbeG6q3UgY8OhYyDEkeG7kWkgdMaw4bujbmcgxJHGsOG7o2MgY2jhu41uIG5n4bqrdSBuaGnDqm4gY2hvIG3hu5l0IG5naGnDqm4gY+G7qXUgY+G7p2Egw50gduG7gSBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIHRodSBuaOG6rXAgdsOgIG5nxrDhu51pIGPDsyB0aOG6uyB0w61uIGThu6VuZyBkdSBs4buLY2ggKG5oxrAgQW1lcmljYW4gRXhwcmVzcyBoYXkgRGluZXJzIENsdWIpLiDhu54gbeG7l2kgY+G6pXAgxJHhu5kgdGh1IG5o4bqtcCBow6BuZyBuxINtIHRyaeG7h3UgbGlyYSwgYuG6o25nIGNobyB0aOG6pXkgc+G7kSBsxrDhu6NuZyDEkeG7kWkgdMaw4bujbmcgxJHGsOG7o2MgbOG6pXkgbeG6q3UgdsOgIHPhu5EgbMaw4bujbmcgaOG7jSBjw7Mgw610IG5o4bqldCBt4buZdCB0aOG6uyB0w61uIGThu6VuZyBkdSBs4buLY2guIFBow6JuIHTDrWNoIGPDoWMgZOG7ryBsaeG7h3UgbsOgeS4NCg0KfCBUaHUgPGJyPiBuaOG6rXAgfCBT4buRIDxicj4gdHLGsOG7nW5nIGjhu6NwIHwgVGjhursgPGJyPiB0w61uIGThu6VuZyB8IFRodSA8YnI+IG5o4bqtcCB8IFPhu5EgPGJyPiB0csaw4budbmcgaOG7o3AgfCBUaOG6uyA8YnI+IHTDrW4gZOG7pW5nIHwNCnwgOi0tLTogfCA6LS0tOiB8IDotLS06IHwgOi0tLTogfCA6LS0tOiB8IDotLS06IHwNCnwgMjQgfCAxIHwgMCB8IDQ4IHwgMSB8IDAgfA0KfCAyNyB8IDEgfCAwIHwgNDkgfCAxIHwgMCB8DQp8IDI4IHwgNSB8IDIgfCA1MCB8IDEwIHwgMiB8DQp8IDI5IHwgMyB8IDAgfCA1MiB8IDEgfCAwIHwNCnwgMzAgfCA5IHwgMSB8IDU5IHwgMSB8IDAgfA0KfCAzMSB8IDUgfCAxIHwgNjAgfCA1IHwgMiB8DQp8IDMyIHwgOCB8IDAgfCA2NSB8IDYgfCA2IHwNCnwgMzMgfCAxIHwgMCB8IDY4IHwgMyB8IDMgfA0KfCAzNCB8IDcgfCAxIHwgNzAgfCA1IHwgMyB8DQp8IDM1IHwgMSB8IDEgfCA3OSB8IDEgfCAwIHwNCnwgMzggfCAzIHwgMSB8IDgwIHwgMSB8IDAgfA0KfCAzOSB8IDIgfCAwIHwgODQgfCAxIHwgMCB8DQp8IDQwIHwgNSB8IDAgfCA5NCB8IDEgfCAwIHwNCnwgNDEgfCAyIHwgMCB8IDEyMCB8IDYgfCA2IHwNCnwgNDIgfCAyIHwgMCB8IDEzMCB8IDEgfCAxIHwNCnwgNDUgfCAxIHwgMSB8ICB8ICB8ICB8DQoNCk5ndeG7k246IHBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmgsIFF1YWRlcm5pIGRlbCBDb3JzbyBFc3Rpdm8gZGkgU3RhdGlzdGljYSBlIENhbGNvbG8gZGVsbGUuLCBJc3RpdHV0byBkaSBNZXRvZGkgUXVhbnRpdGEgVW5pdmVyc2l0YSBMdWlnaSBCb2Njb25pLCBhIGN1cmEgZGkgUi4gUGljY2FycmV0YS4NCg0KXFt7QuG6o25nIDQuNn1cXQ0KDQoqKjMuNy4qKiBW4bubaSBiw6BpIHRvw6FuIHRyw6puLiBUaOG7sWMgaOG7h24ga2nhu4NtIMSR4buLbmggJEhfMCQ6ICRcbXVfQSA9IFxtdV9CJCBi4bqxbmcgY8OhY2ggc+G7rSBk4bulbmcgZOG7ryBsaeG7h3UgdGjhu7FjIHThur8gbMOgIG7hur91IFggbMOgIHBow6JuIHBo4buRaSBQb2lzc29uIHbhu5tpIHRydW5nIGLDrG5oICRcbXVfMSQgdsOgIFkgbMOgIGJp4bq/biBuZ+G6q3Ugbmhpw6puIMSR4buZYyBs4bqtcCBQb2lzc29uIMSR4buZYyBs4bqtcCBjw7MgdHJ1bmcgYsOsbmggJFxtdV8yJCB0aMOsIFggY2hvIFggKyBZIGzDoCBuaOG7iyB0aOG7qWMgduG7m2kgY2jhu4kgc+G7kSAkbiA9IFggKyBZJCB2w6AgdGhhbSBz4buRICRccGkgPSBcbXVfMS8oXG11XzEgKyBcbXVfMikkLiAoR+G7o2kgw706IENobyBYIHbDoCBZIGzDoCB04buVbmcgc+G7kSBj4bunYSBz4buxIGtow7RuZyBob8OgbiBo4bqjbyBjaG8gaGFpIHBoxrDGoW5nIHBow6FwLCBzYXUgxJHDsyBraeG7g20gxJHhu4tuaCBj4bunYSBQb2lzc29uIMSR4buTbmcgbmdoxKlhIGzDoCBxdXkgduG7gSBwaMOpcCBraeG7g20gxJHhu4tuaCBuaOG7iyB0aOG7qWMgJFxwaSA9IDEvMiQuIEtoaSAxNDAgdGjhu60gbmdoaeG7h20gY8OzIDUwIHRow6BuaCBjw7RuZy4pDQoNCioqMy44LioqIFRoYW0ga2jhuqNvIELDoGkgNC42LkPDoWMgdOG6pW0gc2lsaWNvbiBjxaluZyDEkcaw4bujYyDEkeG7i25oIHTDrW5oIGLhu59pIMSR4buZIGTDoHkgbOG7m3Agc2lsaWNvbiAoeiA9IDAsIHRo4bqlcCwgeiA9IDEsIGNhbykuIE7Eg20gc+G7kSBsaeG7h3Uga2jDtG5nIGhvw6BuIGjhuqNvIMSR4bqndSB0acOqbiDEkcaw4bujYyB4ZW0geiA9IDAgdsOgIG7Eg20gY3Xhu5FpIGPDuW5nIHhlbSB6ID0gMS4gUGjDom4gdMOtY2ggY8OhYyBk4buvIGxp4buHdSBuw6B5Lg0KDQoqKjMuOS4qKiBUaGFtIGto4bqjbyBC4bqjbmcgNC4yLg0KDQogIGEuIFPhu60gZOG7pW5nIGPDom4gbuG6t25nIGzDoG0gZOG7sSBiw6FvIHbDoCBz4buRIGzGsOG7o25nIHbhu4cgdGluaCBuaMawIGzDoCBwaOG6o24g4bupbmcsIMaw4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggbG9nbGluZWFyIFBvaXNzb24uIMav4bubYyBsxrDhu6NuZyBz4buRIGzGsOG7o25nIHbhu4cgdGluaCB0cnVuZyBiw6xuaCBjaG8gY3VhIGPDoWkgY8OzIHRy4buNbmcgbMaw4bujbmcgdHJ1bmcgYsOsbmggMi40NGtnIA0KICANCiAgYi4gU+G7rSBk4bulbmcgJFxoYXR7XGJldGF9JCDEkeG7gyBtw7QgdOG6oyDhuqNuaCBoxrDhu59uZyBj4bunYSB0cuG7jW5nIGzGsOG7o25nLiBYw6J5IGThu7FuZyBraG/huqNuZyB0aW4gY+G6rXkgY2hvIOG6o25oIGjGsOG7n25nLg0KICANCiAgYy4gVGnhur9uIGjDoG5oIGtp4buDbSDEkeG7i25oIFdhbGQgduG7gSBnaeG6oyB0aHV54bq/dCBy4bqxbmcgc+G7kSBsxrDhu6NuZyB24buHIHRpbmggdHJ1bmcgYsOsbmgga2jDtG5nIHBo4bulIHRodeG7mWMgdsOgbyB0cuG7jW5nIGzGsOG7o25nLiBHaeG6o2kgdGjDrWNoLg0KICANCiAgZC4gVGnhur9uIGjDoG5oIG3hu5l0IHRo4butIG5naGnhu4dtIHThu4kgbOG7hyBraOG6oyBuxINuZyDEkeG7mSBs4bqtcC4gR2nhuqNpIHRow61jaC4NCiAgDQoqKjMuMTAuKiogVGhhbSBraOG6o28gYsOgaSB0w6FuIHRyxrDhu5tjLg0KDQogIGEuIEtp4buDbSB0cmEgc+G7sSBwaMO5IGjhu6NwIGLhurFuZyBjw6FjaCB44bq/cCBsb+G6oWkgY8OibiBu4bq3bmcuIFPhu60gZOG7pW5nIHPhu5EgZMawIMSR4buDIG3DtCB04bqjIHPhu7EgdGhp4bq/dSBwaMO5IGjhu6NwLg0KICANCiAgYi4gQ8OzIGLhurFuZyBjaOG7qW5nIHbhu4Egc+G7sSBwaMOibiB0w6FuIHF1w6EgbeG7qWMga2jDtG5nPyBO4bq/dSBj4bqnbiB0aGnhur90LCDEkWnhu4F1IGNo4buJbmggY8OhYyBzYWkgc+G7kSBjaHXhuqluIGNobyBjw6FjIMaw4bubYyBsxrDhu6NuZyB0aGFtIHPhu5EgdsOgIGdp4bqjaSB0aMOtY2guDQogIA0KKiozLjExLioqIFRoYW1tIGto4bqjbyBC4bqjbmcgNC4yLg0KDQogIGEuIMav4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggbG9nbGluZWFyIFBvaXNzb24gc+G7rSBk4bulbmcgdHLhu41uZyBsxrDhu6NuZyB2w6AgbcOgdSBz4bqvYyDEkeG7gyBk4buxIMSRb8OhbiBz4buRIGzGsOG7o25nIHbhu4cgdGluaC4gR8OhbiBjw6FjIGJp4bq/biBnaeG6oywgeGVtIG3DoHUgc+G6r2MgbMOgIMSR4buLbmggZGFuaC4gR2nhuqNpIHRow61jaCB0aGFtIHPhu5EgxrDhu5tjIGzGsOG7o25nLg0KICANCiAgYi4gxq/hu5tjIHTDrW5oIHPhu5EgbMaw4bujbmcgdHJ1bmcgYsOsbmggIGPDoWMgduG7hyB0aW5oIGNobyBjdWEgY8OhaSBjw7MgdHLhu41uZyBsxrDhu6NuZyB0cnVuZyBiw6xuaCAoMi40NCBrZykgbMOgIChpKSDDoW5oIHPDoW5nIHRydW5nIGLDrG5oLCAoaWkpIMSRZW4uDQogIA0KICBjLiBLaeG7g20gxJHhu4tuaCBtw6B1IHPhuq9jIGPDsyBj4bqnbiB0aGnhur90IHRyb25nIG3DtCBow6xuaC4gKEfhu6NpIMO9OiB04burIFBo4bqnbiA0LjUuMywgdGjhu5FuZyBrw6ogdOG7tyBs4buHIGjhu6NwIGzDvSBzbyBzw6FuaCBoYWkgbcO0IGjDrG5oIGzDoCBz4buxIGtow6FjIGJp4buHdCB0cm9uZyBz4buRIGxp4buHdSB0aOG7kW5nIGvDqiB24buBIHPhu7EgcGjDuSBo4bujcCBj4bunYSAkR14yJCkuDQogIA0KICBkLiBMxrB1IMO9IHLhurFuZyDGsOG7m2MgbMaw4bujbmcgbcOgdSBz4bqvYyBsw6AgbeG7mXQgdHJvbmcgYuG7kW4gbG/huqFpLiDGr+G7m2MgbMaw4bujbmcgduG7m2kgbeG7mXQgbcO0IGjDrG5oIMSRxqFuIGdp4bqjbiBoxqFuIHbhu5tpIHZp4buHYyB4ZW0gbcOgdSBz4bqvYyBuaMawIMSR4buLbmggbMaw4bujbmcgYuG6sW5nIGPDoWNoIGdp4bqjIHPhu60g4bqjbmggaMaw4bufbmcgbcOgdSBz4bqvYyBsw6AgdHV54bq/biB0w61uaC4gR2nhuqNpIHRow61jaCDhuqNuaCBoxrDhu59uZyBtw6B1IHPhuq9jIHRyb25nIG3DtCBow6xuaCBuw6B5LCB2w6AgbOG6t3AgbOG6oWkgY8OhYyBwaMOibiB0w61jaCBj4bunYSAoYikgdsOgIChjKS4gU28gc8Ohbmggc+G7sSBwaMO5IGjhu6NwIHbhu5tpIG3DtCBow6xuaCB0cm9uZyAoYSkuIEdp4bqjaSB0aMOtY2guDQogIA0KICBlLiBN4bufIHLhu5luZyBtw7QgaMOsbmguIEzGsHUgw70g4bqjbmggaMaw4bufbmcgY+G7p2Egc+G7sSB0xrDGoW5nIHF1YW4gbeG6oW5oIG3hur0gZ2nhu69hIGNoaeG7gXUgcuG7mW5nIHbDoCBjw6JuIG7hurduZy4gQ8OzIHBo4bqjaSBj4bqjIGNoaeG7gXUgcuG7mW5nIHbDoCB0cuG7jW5nIGzGsOG7o25nIGzDoCBj4bqnbiB0aGnhur90Pw0KICANCioqMy4xMi4qKiBUcm9uZyBQaOG6p24gNC4zLjIsIHRoYW0ga2jhuqNvIG3DtCBow6xuaCBo4buTaSBxdXkgUG9pc3NvbiB24bubaSBsacOqbiBr4bq/dCDEkeG7k25nIG5o4bqldCBjaG8gZOG7ryBsaeG7h3UgY3VhLiBHaeG6o2kgdGjDrWNoIHThuqFpIHNhbyBtw7QgaMOsbmgga2jDoWMgduG7m2kgxrDhu5tjIGzGsOG7o25nIGLDrG5oIHBoxrDGoW5nIHThu5FpIHRoaeG7g3UuIChH4bujaSDDvTogxq/hu5tjIGzGsOG7o25nIHbhu5tpIGLDrG5oIHBoxrDGoW5nIG5o4buPIG5o4bqldCBjxaluZyBnaeG7kW5nIG5oxrAgxrDhu5tjIGzGsOG7o25nIHbhu5tpIE1MIGPhu6dhIEdMTSBnaeG6oyDEkeG7i25oIGzDoCBwaMOibiBwaOG7kWkgY2h14bqpbiBjaOG7qSBraMO0bmcgcGjhuqNpIGzDoCB0aMOgbmggcGjhuqduIG5n4bqrdSBuaGnDqm4gUG9pc3Nvbi4pDQogICAgICAgICAgICAgIA0KIyBDaMawxqFuZzQNCg0KIyBI4buSSSBRVVkgTE9HSVNUSUMNCg0KICBUcm9uZyBjaMawxqFuZyBuw6B5IGNow7puZyB0YSBz4bq9IHhlbSB4w6l0IGvhu7kgaMahbiBtw7QgaMOsbmggdGjhu5FuZyBrw6ogbcOgIHRyb25nIMSRw7MgcGjhuqNuIGjhu5NpIGPhu6dhIGJp4bq/biDEkcOhcCDhu6luZyDEkcaw4bujYyBjaGlhIGzDoG0gaGFpIGxv4bqhaSBsw6AgInRow6BuaCBjw7RuZyIgaG/hurdjICJ0aOG6pXQgYuG6oWkiLCBjaOG6s25nIGjhuqFuOiBW4buhIG7hu6MvIEtow7RuZyB24buhIG7hu6M7IE3huq9jIGLhu4duaC8gS2jDtG5nIG3huq9jIGLhu4duaDsgTmFtLyBO4buvOyBIb8OgbiB0aMOgbmgga+G6vyBob+G6oWNoLyBLaMO0bmcgaG/DoG4gdGjDoG5oIGvhur8gaG/huqFjaDsgS+G7i3AgdGnhur9uIMSR4buZLyBLaMO0bmcga+G7i3AgdGnhur9uIMSR4buZOyDEkOG6oXQvIEtow7RuZyDEkeG6oXQsIFRow61jaC8gS2jDtG5nIHRow61jaCwgdi524oCmIC4gTcO0IGjDrG5oIHBo4buVIGJp4bq/biBuaOG6pXQgY2hvIGThu68gbGnhu4d1IG5o4buLIHBow6JuIGzDoCBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2lzdGljcy4gUGjhuqduIDMuMi4zIMSRw6MgZ2nhu5tpIHRoaeG7h3UgbcO0IGjDrG5oIG7DoHkgbmjGsCBsw6AgbeG7mXQgdHLGsOG7nW5nIGjhu6NwIHJpw6puZyBj4bunYSBtw7QgaMOsbmggdHV54bq/biB0w61uaCB04buVbmcgcXXDoXQgKEdMTSkgY2hvIG3hu5l0IHRow6BuaCBwaOG6p24gbmfhuqt1IG5oacOqbi4gQ2jGsMahbmcgbsOgeSBuZ2hpw6puIGPhu6l1IOG7qW5nIGThu6VuZyBo4buTaSBxdXkgbG9naXN0aWMgbeG7mXQgY8OhY2ggY2hpIHRp4bq/dCBoxqFuLCB24bubaSBjw6FjIG7hu5lpIGR1bmc6IERp4buFbiBnaeG6o2kgbcO0IGjDrG5oIGjhu5NpIHF1eSBsb2dpc3RpYywgc3V5IGx14bqtbiANCnRo4buRbmcga8OqIGNobyBjw6FjIHRoYW0gc+G7kSBtw7QgaMOsbmgsIGtp4buDbSB0cmEgc+G7sSBwaMO5IGjhu6NwIGPhu6dhIG3DtCBow6xuaCwgeOG7rSBsw70gZOG7sSBiw6FvIMSR4buLbmggdMOtbmggdHJvbmcgbcO0IGjDrG5oLCBt4bufIHLhu5luZyBtw7QgaMOsbmggY2hvIG5oaeG7gXUgYmnhur9uIGdp4bqjaSB0aMOtY2gsIGzhu7FhIGNo4buNbiBtw7QgaMOsbmgsIHjDoWMgxJHhu4tuaCBxdXkgbcO0IG3huqt1IGPhuqduIHRoaeG6v3QgxJHhu4MgY8OzIMSRxrDhu6NjIGzhu7FjIG3huqFuaCBjaG8gZOG7sSBiw6FvIHbDoCBraeG7g20gxJHhu4tuaC4NCg0KIyMgNC4xLiBI4buTaSBxdXkgbG9naXN0aWMgaGFpIGJp4bq/biANCg0KIyMgNC4xLjEuIEdp4bqjaSB0aMOtY2ggbcO0IGjDrG5oIGjhu5NpIHF1eSBsb2dpc3RpYw0KDQogIFRyb25nIG5oaeG7gXUgdHLGsOG7nW5nIGjhu6NwLCBiaeG6v24gxJHDoXAg4bupbmcgbmjhu4sgcGjDom4gKHbhu5tpIGhhaSDEkcOhcCDhu6luZyDigJxUaMOgbmggY8O0bmfigJ0gdsOgIOKAnFRo4bqldCBi4bqhaeKAnSkgY2jhu4t1IOG6o25oIGjGsOG7n25nIGPhu6dhIG3hu5l0IGJp4bq/biBk4buxIGLDoW8gdGhlbyB4dSB0aOG6vzoga2jhuqMgbsSDbmcg4oCcVGjDoG5oIGPDtG5n4oCdIHTEg25nIGhv4bq3YyBnaeG6o20gdGhlbyBjaGnhu4F1IGdpYSB0xINuZyBt4bupYyDEkeG7mSB4IGPhu6dhIGJp4bq/biBk4buxIGLDoW8gWC4gxJDhu4MgbcO0IHThuqMgeHUgdGjhur8gbsOgeSwgdHJvbmcgY2jGsMahbmcgdHLGsOG7m2MgY2jDum5nIHRhIMSRw6MgYmnhur90IG5o4buvbmcgaOG6oW4gY2jhur8gY+G7p2EgbcO0IGjDrG5oIHjDoWMgc3XhuqV0IHR1eeG6v24gdMOtbmgsIGjGoW4gbuG7r2EgeHUgdGjhur8gcGjhu6UgdGh14buZYyB0aMaw4budbmcgbMOgIHBoaSB0dXnhur9uLiBN4bq3dCBraMOhYywgY2hvIGTDuSB0xINuZyBoYXkgZ2nhuqNtIHRow6wgaMOgbSB4w6FjIHN14bqldCDigJxUaMOgbmggY8O0bmfigJ0gJFxwaSh4KSQgxJHhu4F1IGtow7RuZyB2xrDhu6N0IHJhIG5nb8OgaSDEkW/huqFuIFswLCAxXSwgbsOqbiB24buBIGhhaSBwaMOtYSwgxJHGsOG7nW5nIGNvbmcgJHkgPSBccGkoeCkkIHBo4bqjaSB0aeG7h20gY+G6rW4gduG7m2kgMCB2w6AgMSwgdOG7qWMgbMOgIGPDsyBk4bqhbmcgaMOsbmggY2jhu68gUy4gVsOsIHbhuq15IGThuqFuZyBow6BtIGxvZ2lzdGljIGhheSBwcm9iaXQgbcOgIMSR4bq3YyBiaeG7h3QgbMOgIGThuqFuZyBsb2dpc3RpYyBsw6AgdGjDrWNoIGjhu6NwIGNobyB2aeG7h2MgbcO0IHThuqMgeHUgdGjhur8gbsOgeS4NCiAgDQogIFbhu5tpIGJp4bq/biDEkcOhcCDhu6luZyBuaOG7iyBwaMOibiBjw7MgaGFpIGvhur90IGPhu6VjIG3DoCB0YSBn4buNaSBsw6Ag4oCcVGjDoG5oIGPDtG5n4oCdIHbDoCANCuKAnFRo4bqldCBi4bqhaeKAnSDEkcaw4bujYyBtw7QgdOG6oyBi4bufaSBiaeG6v24gWToNCg0KXFtZPVxiZWdpbntjYXNlc30xJm7hur91Jmvhur90JmPhu6VjJmzDoCAmDQrigJxUaMOgbmgmY8O0bmfigJ1cXCAwJm7hur91Jmvhur90JmPhu6VjJmzDoCYg4oCcVGjhuqV0JmLhuqFp4oCdXGVuZHtjYXNlc31cXQ0KDQpLaGkgxJHDsyB4w6FjIHN14bqldCDigJxUaMOgbmggY8O0bmfigJ0g4bupbmcgduG7m2kgbeG7qWMgeCBj4bunYSBiaeG6v24gZOG7sSBiw6FvIFggbMOgOg0KDQpcW1xwaSh4KSA9IFAoWSA9IDF8WCA9IHgpID0gRShZfFggPSB4KVxdDQoNClbhuq15ICRccGkoeCkkIGNow61uaCBsw6AgaMOgbSBo4buTaSBxdXkgY+G7p2EgWSB0aGVvIFguIE3DtCBow6xuaCBo4buTaSBxdXkgbG9naXN0aWMgbMOgIG3DtCBow6xuaDoNCg0KXFtccGkoeCkgPSBFKFl8WCA9IHgpID0gXGZyYWN7MX17MSArIGV4cCgtXGJldGFfMC1cYmV0YV8xeCl9XF0oNC4xLjFhKQ0KDQojIyA0LjEuMi4gRGnhu4VuIGdp4bqjaSDDvSBuZ2jEqWEgY8OhYyB0aGFtIHPhu5ENCg0KIyMjIGEuIEPDoWMgYmnhu4N1IGRp4buFbiBraMOhYyBuaGF1IGPhu6dhIG3DtCBow6xuaCBsb2dpc3RpYzoNCg0KLSBIw6BtIGPhu6dhIGxvZ2l0IGzDoCBow6BtIGLhuq1jIG5o4bqldDoNCg0KXFtsb2coXGZyYWN7XHBpKHgpfXsxIC0gXHBpKHgpfSkgPSBcYmV0YV8wICsgXGJldGFfMXhcXSg0LjEuMWIpDQoNCi0gQmnhu4N1IGRp4buFbiB04bu3IGzhu4cgY8aw4bujYzoNCg0KXFtPZGRzID0gZXhwKFxiZXRhXzAgKyBcYmV0YV8xeClcXQ0KDQpcW3Ryb25nIMSRw7M6IE9kZHMgPSBcZnJhY3tccGkoeCl9ezEgLSBccGkoeCl9XF0NCg0KIyMjIGIuIERp4buFbiBnaeG6o2kgw70gbmdoxKlhIGPDoWMgdGhhbSBz4buRDQoNCi0gVOG7tyBs4buHIGPGsOG7o2MgT2RkcyBjw6BuZyBs4bubbiB0aMOsIHjDoWMgc3XhuqV0IHRow6BuaCBjw7RuZyBjw6BuZyBs4bubbiwgaGF5IGPDoG5nIGPDsyBuaGnhu4F1IGto4bqjIG7Eg25nICRZID0gMSQuDQoNCi0gS2hpIHggdMSDbmcgbMOqbiAxIMSRxqFuIHbhu4sgdGjDrDoNCg0KICAtIGxvZyhPZGRzKSDEkcaw4bujYyBj4buZbmcgdGjDqm0gJFxiZXRhXzEkIMSRxqFuIHbhu4ssDQogIA0KICAtIE9kZHMgxJHGsOG7o2MgbmjDom4gbMOqbiBlXiRcYmV0YV8xJCBs4bqnbi4NCiAgDQotIEtoaSAkXGJldGFfMSQgPiAwIHRow6wgJFxwaSh4KSQgxJHhu5NuZyBiaeG6v24gdGhlbyB4Lg0KDQotIEtoaSAkXGJldGFfMSQgPCAwIHRow6wgJFxwaSh4KSQgbmdo4buLY2ggYmnhur9uIHRoZW8geC4NCg0KLSBLaGkgJFxiZXRhXzEkID0gMCB0aMOsICRccGkoeCkkIGzDoCBo4bqxbmcgc+G7kSwgdOG7qWMgbMOgIGto4bqjIG7Eg25nICRZID0gMSQgaGF5ICRZID0gMCQgcGjhu6UgdGh14buZYyB2w6BvIFguDQoNCiMjIDQuMS4zLiDGr+G7m2MgbMaw4bujbmcgY2hvIG3DtCBow6xuaCBsb2dpc3RpYw0KDQpYw6l0IG3DtCBow6xuaCBsb2dpc3RpYzoNCg0KXFtsb2coXGZyYWN7XHBpKHgpfXsxIC0gXHBpKHgpfSkgPSBcYmV0YV8wICsgXGJldGFfMXhcXSg0LjEuMikNCg0KVmnhu4djIMaw4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggbG9naXN0aWMgbMOgIHTDrG0gY8OhYyDGsOG7m2MgbMaw4bujbmcgJFxoYXRcYmV0YV8wJCwgJFxoYXRcYmV0YV8xJCBjaG8gY8OhYyBo4buHIHPhu5EgJFxiZXRhXzAsIFxiZXRhXzEkDQoNCsSQ4buDIMO9IHLhurFuZyBiaeG6v24gxJHDoXAg4bupbmcgKGJp4bq/biBwaOG7pSB0aHXhu5ljKSBsw6AgYmnhur9uIMSR4buLbmggdMOtbmggbmjhuq1uIG3hu5l0IHRyb25nIGhhaSBiaeG7g3UgaGnhu4duOiDigJxUaMOgbmggY8O0bmfigJ0gdsOgIOKAnEtow7RuZyB0aMOgbmggY8O0bmfigJ0gbcOgIG7DsyDEkcaw4bujYyDEkeG6oWkgZGnhu4duIGLhu59pIGJp4bq/biBuZ+G6q3Ugbmhpw6puIFkgY8OzIHBow6JuIHBo4buRaSAwIC0gMSwgdHJvbmcgxJHDsyBZIGNow61uaCBsw6Agc+G7kSDigJx0aMOgbmggY8O0bmfigJ0uIFbDrCB4w6l0IHRyb25nIHPhu7EgcGjhu6UgdGh14buZYyB2w6BvIGJp4bq/biBnaeG6o2kgdGjDrWNoIFggbsOqbiB4w6FjIHN14bqldCB0aMOgbmggY8O0bmcgJFxwaSQgcGjhu6UgdGh14buZYyANCnbDoG8gWDogJFxwaSA9IFxwaSh4KSA9IFAoWSA9IDF8WCA9eCkkLiDhu54gbeG7qWMgWCA9IHggdGEgY8OzIGLhuqNuZyBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQ6DQoNCnwgJFxtYXRocm17WX0kIHwgMCB8IDEgfCAkXFNpZ21hJCB8DQp8IDotLS06IHwgOi0tLTogfCA6LS0tOiB8IDotLS06IHwNCnwgJFxtYXRocm17UH0kIHwgJDEtXHBpKHgpJCB8ICRccGkoeCkkIHwgMSB8DQoNCkRvIMSRw7M6ICRFKFl8WCA9IHgpID0gXHBpKHgpJC4gVGjDoG5oIHJhIG3DtCBow6xuaCBsb2dpc3RpYyBsw6AgbcO0IGjDrG5oIGjhu5NpIHF1eToNCg0KXFtZID0gRShZfFgpICsgVSA9IFxwaSArIFVcXSAgKDQuMS4zKQ0KDQpNw7QgaMOsbmggbsOgeSBjw7Mgbmhp4buFdSAkVSA9IFkgLSBccGkkLiBSw7UgcsOgbmcgbmhp4buFdSBVIGPDsyBwaMawxqFuZyBzYWkNCmBgYHtyfQ0KDQpgYGANCg0K