Code
UTS TEKNIK SAMPLING DAN SURVEY
Soal 1: Simulasi Kesalahan Sampling di
Lapangan
a. Dua Jenis Kesalahan Sampling yang Terjadi
1. Kesalahan Sampling Acak (Random Sampling
Error)
Ini terjadi karena jumlah responden yang diperoleh dari setiap kota
berbeda dari target awal. Targetnya adalah 200 per kota (sampel
proporsional), tetapi hasil aktual:
Kota A: 250 (kelebihan)
Kota B: 120 (kekurangan)
Kota C: 180 (kekurangan)
Ketidakseimbangan ini menciptakan penyimpangan dari populasi
target.
2. Kesalahan Non-sampling (Non-sampling Error)
Kesalahan ini timbul karena masalah operasional survei di lapangan,
seperti:
Kesulitan akses di Kota B (hanya 120 responden)
Potensi bias karena keterbatasan waktu/tim yang menyebabkan beberapa
responden tidak bisa diwawancarai.
b. Penyesuaian Bobot (Weighting) untuk Representasi
Proporsional
Total target = 600 responden Proporsi target per kota = 200 / 600 =
⅓ atau 0.333
Total aktual = 250 (A) + 120 (B) + 180 (C) = 550 responden
Bobot dihitung dengan: \[
\text{Bobot kota} = \frac{\text{Proporsi aktual}}{\text{Proporsi
target}}
\]
Perhitungan :
Kota A : \[
\text{Proporsi aktual A} = \frac{250}{550} = 0.4545 \Rightarrow
\text{Bobot A} = \frac{0.333}{0.4545} \approx 0.732
\]
Kota B : \[
\text{Proporsi aktual B} = \frac{120}{550} = 0.2182 \Rightarrow
\text{Bobot B} = \frac{0.333}{0.2182} \approx 1.527
\]
Kota C : \[
\text{Proporsi aktual C} = \frac{180}{550} = 0.3273 \Rightarrow
\text{Bobot C} = \frac{0.333}{0.3273} \approx 1.017
\]
c. Visualisasi: Distribusi dan Pembobotan
Berikut adalah grafik batang (bar chart) yang menggambarkan
distribusi aktual & target serta bobot koreksi:
## Warning: package 'plotly' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
Soal 2: Mendesain Survei dengan Pembobotan Waktu
Puncak
a. Desain Pendekatan Sampling di Jam Sibuk
Tujuan :
Mengukur persepsi kenyamanan pengguna ojek online saat jam
sibuk , yaitu:
Pagi :07.00–09.00
Sore :17.00–19.00
Desain Sampling :
Gunakan Stratified Time Sampling berdasarkan
waktu:
Strata 1 : Pagi (07.00–09.00)
Strata 2 : Sore (17.00–19.00)
Daripada melakukan survei seharian penuh, fokus hanya pada dua
jendela waktu tersebut. Lakukan sampling acak dalam setiap strata
waktu.
b. Rancangan Waktu, Metode Pemilihan Responden, dan
Justifikasi
Rancangan Waktu :
Hari kerja (Senin-Jumat)
Survei dilakukan selama 5 hari, masing-masing:
07.00–09.00 (Pagi)
17.00–19.00 (Sore)
Metode Pemilihan Responden :
Intercept Sampling di titik ramai (stasiun, halte,
mall, kampus, dsb)
Responden dipilih secara systematic random tiap 3-5
menit, atau setiap pengguna yang turun dari ojek online.
Justifikasi Pemilihan Unit Sampling :
Unit sampling = pengguna aktif ojek online pada jam tersebut.
Metode ini menjamin keterwakilan waktu tanpa harus survei seharian
penuh.
Fokus pada waktu sibuk yang relevan dengan pengalaman kenyamanan
pengguna.
c. Penyesuaian Hasil Survei jika Proporsi Responden Tidak
Sesuai
Diketahui:
Responden aktual:
Data historis: Pengguna ojek dua kali lebih banyak
dari pagi -> ideal distribusi:
Penyesuaian Bobot :
Gunakan rumus bobot sama seperti soal 1: \[
\text{Bobot kota} = \frac{\text{Proporsi ideal}}{\text{Proporsi aktual}}
\]
d. Visualisasi Distribusi Waktu dan Pembobotan
Soal 3: Desain Survei Evaluasi Kepuasan Mahasiswa terhadap
Layanan Akademik
Permintaan :
Rancang 25 pertanyaan utama (variasi skala & bentuk)
Rancang sistem validasi instrumen
Tentukan metode distribusi dan uji statistik kuesioner
Simulasikan strategi sampling & pengolahan data awal
a. Desain Pertanyaan (25 Butir)
Pertanyaan dibagi ke dalam 5 aspek layanan:
KRS Online
Bimbingan Akademik
Pelayanan Administrasi
Akses Informasi Akademik
Bantuan Penyelesaian Studi
No
Aspek
Pertanyaan
Skala_Bentuk
1
KRS
Apakah Anda mengalami kendala saat menggunakan sistem KRS online?
Ya/Tidak
2
KRS
Seberapa mudah Anda memahami tampilan antarmuka KRS?
Likert 1–5
3
KRS
Berapa kali sistem KRS mengalami error saat Anda gunakan?
Isian angka
4
KRS
Apa fitur yang paling membantu Anda di sistem KRS?
Pilihan Ganda
5
KRS
Komentar Anda terkait sistem KRS online
Esai singkat
6
Bimbingan
Seberapa sering Anda bertemu dosen wali?
Pilihan Ganda
7
Bimbingan
Dosen wali saya memberikan solusi yang tepat atas permasalahan akademik
saya
Likert 1–5
8
Bimbingan
Apakah Anda merasa didengarkan oleh dosen wali Anda?
Ya/Tidak
9
Bimbingan
Seberapa puas Anda dengan kualitas bimbingan akademik?
Likert 1–5
10
Bimbingan
Saran Anda untuk meningkatkan bimbingan akademik
Esai
11
Administrasi
Bagaimana kemudahan proses administrasi akademik?
Likert 1–5
12
Administrasi
Pernahkah Anda mengajukan surat akademik (cuti, aktif kuliah, dll)?
Ya/Tidak
13
Administrasi
Seberapa cepat layanan administrasi merespon permintaan Anda?
Likert 1–5
14
Administrasi
Apakah staf admin ramah dan membantu?
Ya/Tidak
15
Administrasi
Komentar Anda mengenai layanan administrasi
Esai
16
Info Akademik
Seberapa mudah Anda mendapatkan informasi terkait akademik (jadwal,
nilai)?
Likert 1–5
17
Info Akademik
Apa sumber utama Anda mendapatkan info akademik?
Pilihan Ganda
18
Info Akademik
Apakah informasi yang diberikan sering berubah tanpa pemberitahuan?
Ya/Tidak
19
Info Akademik
Apakah kampus punya saluran informasi yang efektif?
Likert 1–5
20
Info Akademik
Saran Anda untuk perbaikan akses info akademik
Esai
21
Bantuan Studi
Apakah Anda tahu cara mendapatkan bantuan penyelesaian studi?
Ya/Tidak
22
Bantuan Studi
Layanan bantuan studi yang pernah Anda gunakan
Pilihan Ganda
23
Bantuan Studi
Apakah layanan tersebut membantu menyelesaikan masalah Anda?
Ya/Tidak
24
Bantuan Studi
Seberapa puas Anda dengan layanan bantuan studi?
Likert 1–5
25
Bantuan Studi
Harapan Anda terkait layanan penyelesaian studi
Esai
b. Skema Validasi Instrumen
1. Validasi Isi (Content Validity) :
Melibatkan pakar akademik/penelitian untuk menilai relevansi setiap
item.
2. Validasi Konstruk (Construct Validity) :
Melalui Analisis Faktor (Exploratory Factor Analysis /
EFA) untuk mengelompokkan item sesuai dimensi layanan.
3. Reliabilitas :
Uji konsistensi internal menggunakan Cronbach’s
Alpha , target ≥ 0.7.
c. Strategi Distribusi dan Sampling
Distribusi Kuesioner :
Google Form atau Microsoft Form
Dibagikan via email kampus, grup WA, media sosial resmi kampus
Strategi Sampling :
Stratified Random Sampling berdasarkan:
Fakultas
Tingkat semester (awal, tengah, akhir)
Target jumlah responden: minimal 150 mahasiswa
d. Simulasi Pengolahan Data & Visualisasi
Awal
Simulasi Responden (Dummy Data 50 Orang) :
Menggunakan Python & Pandas
Analisis Awal: Distribusi nilai kepuasan (Likert) tiap aspek
Visualisasi :
LS0tDQp0aXRsZTogIlVUUyBURUtOSUsgU0FNUExJTkcgREFOIFNVUlZFWSINCg0KYXV0aG9yOiANCiAgICAtICJOYWJpbGEgQW5nZ2l0YSBQdXRyaSINCiAgICANCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246DQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS9zdHlsZS5jc3MiDQotLS0NCjxpbWcgc3JjPSJpbWcvcHJvZmlsZS5qcGciIGFsdD0iUHJvZmlsZSIgaWQ9ImxvZ28tdXRhbWEiIHN0eWxlPSJ3aWR0aDozMDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsiLz4NCg0KIyAqKlNvYWwgMTogU2ltdWxhc2kgS2VzYWxhaGFuIFNhbXBsaW5nIGRpIExhcGFuZ2FuKioNCg0KIyMgKiphLiBEdWEgSmVuaXMgS2VzYWxhaGFuIFNhbXBsaW5nIHlhbmcgVGVyamFkaSoqDQoNCioqMS4gS2VzYWxhaGFuIFNhbXBsaW5nIEFjYWsgKFJhbmRvbSBTYW1wbGluZyBFcnJvcikqKg0KDQpJbmkgdGVyamFkaSBrYXJlbmEganVtbGFoIHJlc3BvbmRlbiB5YW5nIGRpcGVyb2xlaCBkYXJpIHNldGlhcCBrb3RhIGJlcmJlZGEgZGFyaSB0YXJnZXQgYXdhbC4gVGFyZ2V0bnlhIGFkYWxhaCAyMDAgcGVyIGtvdGEgKHNhbXBlbCBwcm9wb3JzaW9uYWwpLCB0ZXRhcGkgaGFzaWwgYWt0dWFsOg0KDQotIEtvdGEgQTogMjUwIChrZWxlYmloYW4pDQotIEtvdGEgQjogMTIwIChrZWt1cmFuZ2FuKQ0KLSBLb3RhIEM6IDE4MCAoa2VrdXJhbmdhbikNCg0KS2V0aWRha3NlaW1iYW5nYW4gaW5pIG1lbmNpcHRha2FuIHBlbnlpbXBhbmdhbiBkYXJpIHBvcHVsYXNpIHRhcmdldC4NCg0KKioyLiBLZXNhbGFoYW4gTm9uLXNhbXBsaW5nIChOb24tc2FtcGxpbmcgRXJyb3IpKioNCg0KS2VzYWxhaGFuIGluaSB0aW1idWwga2FyZW5hIG1hc2FsYWggb3BlcmFzaW9uYWwgc3VydmVpIGRpIGxhcGFuZ2FuLCBzZXBlcnRpOg0KDQotIEtlc3VsaXRhbiBha3NlcyBkaSBLb3RhIEIgKGhhbnlhIDEyMCByZXNwb25kZW4pDQotIFBvdGVuc2kgYmlhcyBrYXJlbmEga2V0ZXJiYXRhc2FuIHdha3R1L3RpbSB5YW5nIG1lbnllYmFia2FuIGJlYmVyYXBhIHJlc3BvbmRlbiB0aWRhayBiaXNhIGRpd2F3YW5jYXJhaS4NCg0KDQojIyAqKmIuICBQZW55ZXN1YWlhbiBCb2JvdCAoV2VpZ2h0aW5nKSB1bnR1ayBSZXByZXNlbnRhc2kgUHJvcG9yc2lvbmFsKioNCg0KVG90YWwgdGFyZ2V0ID0gNjAwIHJlc3BvbmRlbg0KUHJvcG9yc2kgdGFyZ2V0IHBlciBrb3RhID0gMjAwIC8gNjAwID0gKirihZMgYXRhdSAwLjMzMyoqDQoNClRvdGFsIGFrdHVhbCA9IDI1MCAoQSkgKyAxMjAgKEIpICsgMTgwIChDKSA9IDU1MCByZXNwb25kZW4NCg0KQm9ib3QgZGloaXR1bmcgZGVuZ2FuOg0KXFsNClx0ZXh0e0JvYm90IGtvdGF9ID0gXGZyYWN7XHRleHR7UHJvcG9yc2kgYWt0dWFsfX17XHRleHR7UHJvcG9yc2kgdGFyZ2V0fX0NClxdDQoNCioqUGVyaGl0dW5nYW4qKjoNCg0KLSBLb3RhICoqQSoqOg0KXFsNClx0ZXh0e1Byb3BvcnNpIGFrdHVhbCBBfSA9IFxmcmFjezI1MH17NTUwfSA9IDAuNDU0NSBcUmlnaHRhcnJvdyBcdGV4dHtCb2JvdCBBfSA9IFxmcmFjezAuMzMzfXswLjQ1NDV9IFxhcHByb3ggMC43MzINClxdDQoNCi0gS290YSAqKkIqKjoNClxbDQpcdGV4dHtQcm9wb3JzaSBha3R1YWwgQn0gPSBcZnJhY3sxMjB9ezU1MH0gPSAwLjIxODIgXFJpZ2h0YXJyb3cgXHRleHR7Qm9ib3QgQn0gPSBcZnJhY3swLjMzM317MC4yMTgyfSBcYXBwcm94IDEuNTI3DQpcXQ0KDQotIEtvdGEgKipDKio6DQpcWw0KXHRleHR7UHJvcG9yc2kgYWt0dWFsIEN9ID0gXGZyYWN7MTgwfXs1NTB9ID0gMC4zMjczIFxSaWdodGFycm93IFx0ZXh0e0JvYm90IEN9ID0gXGZyYWN7MC4zMzN9ezAuMzI3M30gXGFwcHJveCAxLjAxNw0KXF0NCg0KIyMgKipjLiBWaXN1YWxpc2FzaTogRGlzdHJpYnVzaSBkYW4gUGVtYm9ib3RhbioqDQoNCkJlcmlrdXQgYWRhbGFoIGdyYWZpayBiYXRhbmcgKGJhciBjaGFydCkgeWFuZyBtZW5nZ2FtYmFya2FuIGRpc3RyaWJ1c2kgYWt0dWFsICYgdGFyZ2V0IHNlcnRhIGJvYm90IGtvcmVrc2k6DQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSx9DQojIFNlbWJ1bnlpa2FuIHBlc2FuIHNhYXQgbG9hZCBwYWNrYWdlDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMoew0KICBsaWJyYXJ5KHBsb3RseSkNCn0pDQoNCiMgRGF0YQ0Ka290YSA8LSBjKCJLb3RhIEEiLCAiS290YSBCIiwgIktvdGEgQyIpDQp0YXJnZXQgPC0gYygyMDAsIDIwMCwgMjAwKQ0KYWt0dWFsIDwtIGMoMjUwLCAxMjAsIDE4MCkNCnRvdGFsX2FrdHVhbCA8LSBzdW0oYWt0dWFsKQ0KDQojIEhpdHVuZyBwcm9wb3JzaSBkYW4gYm9ib3QNCnByb3BfdGFyZ2V0IDwtIDIwMCAvIDYwMA0KcHJvcF9ha3R1YWwgPC0gYWt0dWFsIC8gdG90YWxfYWt0dWFsDQpib2JvdCA8LSBwcm9wX3RhcmdldCAvIHByb3BfYWt0dWFsDQoNCiMgQmFyIGNoYXJ0DQpmaWcgPC0gcGxvdF9seSgNCiAgeCA9IGtvdGEsDQogIHkgPSB0YXJnZXQsDQogIHR5cGUgPSAnYmFyJywNCiAgbmFtZSA9ICdUYXJnZXQnLA0KICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gJ3NreWJsdWUnKQ0KKSAlPiUNCiAgYWRkX3RyYWNlKA0KICAgIHkgPSBha3R1YWwsDQogICAgbmFtZSA9ICdBa3R1YWwnLA0KICAgIHR5cGUgPSAnYmFyJywNCiAgICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gJ29yYW5nZScpDQogICkgJT4lDQogIGxheW91dCgNCiAgICB5YXhpcyA9IGxpc3QodGl0bGUgPSAiSnVtbGFoIFJlc3BvbmRlbiIpLA0KICAgIHRpdGxlID0gIkRpc3RyaWJ1c2kgUmVzcG9uZGVuIGRhbiBCb2JvdCBQZW55ZXN1YWlhbiBwZXIgS290YSIsDQogICAgYmFybW9kZSA9ICdncm91cCcNCiAgKSAlPiUNCiAgYWRkX3RyYWNlKA0KICAgIHggPSBrb3RhLA0KICAgIHkgPSBib2JvdCwNCiAgICB0eXBlID0gJ3NjYXR0ZXInLA0KICAgIG1vZGUgPSAnbGluZXMrbWFya2VycycsDQogICAgeWF4aXMgPSAieTIiLA0KICAgIG5hbWUgPSAiQm9ib3QgUGVueWVzdWFpYW4iLA0KICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gJ2dyZWVuJyksDQogICAgbWFya2VyID0gbGlzdChjb2xvciA9ICdncmVlbicpDQogICkgJT4lDQogIGxheW91dCgNCiAgICB5YXhpczIgPSBsaXN0KA0KICAgICAgb3ZlcmxheWluZyA9ICJ5IiwNCiAgICAgIHNpZGUgPSAicmlnaHQiLA0KICAgICAgdGl0bGUgPSAiQm9ib3QgUGVueWVzdWFpYW4iLA0KICAgICAgc2hvd2dyaWQgPSBGQUxTRQ0KICAgICkNCiAgKQ0KDQpmaWcNCmBgYA0KDQojICoqU29hbCAyOiBNZW5kZXNhaW4gU3VydmVpIGRlbmdhbiBQZW1ib2JvdGFuIFdha3R1IFB1bmNhayoqDQoNCiMjICoqYS4gRGVzYWluIFBlbmRla2F0YW4gU2FtcGxpbmcgZGkgSmFtIFNpYnVrKioNCg0KKipUdWp1YW4qKjoNCg0KTWVuZ3VrdXIgKipwZXJzZXBzaSBrZW55YW1hbmFuIHBlbmdndW5hIG9qZWsgb25saW5lIHNhYXQgamFtIHNpYnVrKiosIHlhaXR1Og0KDQotICoqUGFnaSoqOjA3LjAw4oCTMDkuMDANCi0gKipTb3JlKio6MTcuMDDigJMxOS4wMA0KDQoqKkRlc2FpbiBTYW1wbGluZyoqOg0KDQpHdW5ha2FuICoqU3RyYXRpZmllZCBUaW1lIFNhbXBsaW5nKiogYmVyZGFzYXJrYW4gd2FrdHU6DQoNCi0gKipTdHJhdGEgMSoqOiBQYWdpICgwNy4wMOKAkzA5LjAwKQ0KLSAqKlN0cmF0YSAyKio6IFNvcmUgKDE3LjAw4oCTMTkuMDApDQoNCkRhcmlwYWRhIG1lbGFrdWthbiBzdXJ2ZWkgc2VoYXJpYW4gcGVudWgsIGZva3VzIGhhbnlhIHBhZGEgZHVhIGplbmRlbGEgd2FrdHUgdGVyc2VidXQuIExha3VrYW4gc2FtcGxpbmcgYWNhayBkYWxhbSBzZXRpYXAgc3RyYXRhIHdha3R1Lg0KDQojIyAqKmIuIFJhbmNhbmdhbiBXYWt0dSwgTWV0b2RlIFBlbWlsaWhhbiBSZXNwb25kZW4sIGRhbiBKdXN0aWZpa2FzaSoqDQoNCioqUmFuY2FuZ2FuIFdha3R1Kio6IA0KDQotIEhhcmkga2VyamEgKFNlbmluLUp1bWF0KQ0KLSBTdXJ2ZWkgZGlsYWt1a2FuIHNlbGFtYSA1IGhhcmksIG1hc2luZy1tYXNpbmc6DQogICAgLSAwNy4wMOKAkzA5LjAwIChQYWdpKQ0KICAgIC0gMTcuMDDigJMxOS4wMCAoU29yZSkNCg0KKipNZXRvZGUgUGVtaWxpaGFuIFJlc3BvbmRlbioqOg0KDQotICoqSW50ZXJjZXB0IFNhbXBsaW5nKiogZGkgdGl0aWsgcmFtYWkgKHN0YXNpdW4sIGhhbHRlLCBtYWxsLCBrYW1wdXMsIGRzYikNCi0gUmVzcG9uZGVuIGRpcGlsaWggc2VjYXJhICoqc3lzdGVtYXRpYyByYW5kb20qKiB0aWFwIDMtNSBtZW5pdCwgYXRhdSBzZXRpYXAgcGVuZ2d1bmEgeWFuZyB0dXJ1biBkYXJpIG9qZWsgb25saW5lLg0KDQoqKkp1c3RpZmlrYXNpIFBlbWlsaWhhbiBVbml0IFNhbXBsaW5nKio6DQoNCi0gVW5pdCBzYW1wbGluZyA9IHBlbmdndW5hIGFrdGlmIG9qZWsgb25saW5lIHBhZGEgamFtIHRlcnNlYnV0Lg0KLSBNZXRvZGUgaW5pIG1lbmphbWluIGtldGVyd2FraWxhbiB3YWt0dSB0YW5wYSBoYXJ1cyBzdXJ2ZWkgc2VoYXJpYW4gcGVudWguDQotIEZva3VzIHBhZGEgd2FrdHUgc2lidWsgeWFuZyByZWxldmFuIGRlbmdhbiBwZW5nYWxhbWFuIGtlbnlhbWFuYW4gcGVuZ2d1bmEuDQoNCg0KIyMgKipjLiBQZW55ZXN1YWlhbiBIYXNpbCBTdXJ2ZWkgamlrYSBQcm9wb3JzaSBSZXNwb25kZW4gVGlkYWsgU2VzdWFpKioNCg0KRGlrZXRhaHVpOg0KDQotIFJlc3BvbmRlbiBha3R1YWw6DQogICAgLSBQYWdpOiA2MCUNCiAgICAtIFNvcmU6IDQwJQ0KDQotIERhdGEgaGlzdG9yaXM6IFBlbmdndW5hIG9qZWsgKipkdWEga2FsaSBsZWJpaCBiYW55YWsqKiBkYXJpIHBhZ2kgLT4gaWRlYWwgZGlzdHJpYnVzaToNCiAgICAtIFBhZ2k6IDMzLDMlDQogICAgLSBTb3JlOiA2Niw3JQ0KICAgIA0KKipQZW55ZXN1YWlhbiBCb2JvdCoqOg0KDQpHdW5ha2FuIHJ1bXVzIGJvYm90IHNhbWEgc2VwZXJ0aSBzb2FsIDE6DQpcWw0KXHRleHR7Qm9ib3Qga290YX0gPSBcZnJhY3tcdGV4dHtQcm9wb3JzaSBpZGVhbH19e1x0ZXh0e1Byb3BvcnNpIGFrdHVhbH19DQpcXQ0KDQotICoqUGFnaSoqOiANClxbDQpcdGV4dHtCb2JvdCBwYWdpfSA9IFxmcmFjezAuNn17MC4zMzN9IFxhcHByb3ggMC41NTUNClxdDQoNCi0gKipTb3JlKio6DQpcWw0KXHRleHR7Qm9ib3Qgc29yZX0gPSBcZnJhY3swLjR9ezAuNjY3fSBcYXBwcm94IDEuNjY3DQpcXQ0KDQojIyAqKmQuIFZpc3VhbGlzYXNpIERpc3RyaWJ1c2kgV2FrdHUgZGFuIFBlbWJvYm90YW4qKg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsfQ0KbGlicmFyeShwbG90bHkpDQoNCiMgRGF0YQ0Kd2FrdHUgPC0gYygiUGFnaSAoMDctMDkpIiwgIlNvcmUgKDE3LTE5KSIpDQpyZXNwb25kZW5fYWt0dWFsIDwtIGMoNjAsIDQwKQ0KcHJvcF9pZGVhbCA8LSBjKDMzLjMsIDY2LjcpDQpib2JvdCA8LSBwcm9wX2lkZWFsIC8gcmVzcG9uZGVuX2FrdHVhbA0KDQojIFBsb3QgYmF0YW5nIGRpc3RyaWJ1c2kgYWt0dWFsIGRhbiBpZGVhbA0KcCA8LSBwbG90X2x5KHggPSB3YWt0dSwgeSA9IHJlc3BvbmRlbl9ha3R1YWwsIHR5cGUgPSAnYmFyJywgbmFtZSA9ICdBa3R1YWwnLA0KICAgICAgICAgICAgIG1hcmtlciA9IGxpc3QoY29sb3IgPSAnbGlnaHRjb3JhbCcpKSAlPiUNCiAgYWRkX3RyYWNlKHkgPSBwcm9wX2lkZWFsLCBuYW1lID0gJ0lkZWFsJywgdHlwZSA9ICdiYXInLA0KICAgICAgICAgICAgbWFya2VyID0gbGlzdChjb2xvciA9ICdsaWdodGdyZWVuJykpICU+JQ0KICBsYXlvdXQoDQogICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlBlcnNlbnRhc2UgUmVzcG9uZGVuICglKSIpLA0KICAgIHRpdGxlID0gIkRpc3RyaWJ1c2kgQWt0dWFsIHZzIElkZWFsIiwNCiAgICBiYXJtb2RlID0gJ2dyb3VwJw0KICApDQoNCiMgVGFtYmFoa2FuIGdhcmlzIGJvYm90DQpwIDwtIHAgJT4lDQogIGFkZF90cmFjZSh4ID0gd2FrdHUsIHkgPSBib2JvdCAqIDEwMCwgdHlwZSA9ICdzY2F0dGVyJywgbW9kZSA9ICdsaW5lcyttYXJrZXJzJywNCiAgICAgICAgICAgIHlheGlzID0gInkyIiwgbmFtZSA9ICJCb2JvdCBQZW55ZXN1YWlhbiIsIGxpbmUgPSBsaXN0KGNvbG9yID0gJ2JsdWUnKSkgJT4lDQogIGxheW91dCgNCiAgICB5YXhpczIgPSBsaXN0KA0KICAgICAgb3ZlcmxheWluZyA9ICJ5IiwNCiAgICAgIHNpZGUgPSAicmlnaHQiLA0KICAgICAgdGl0bGUgPSAiQm9ib3QgUGVueWVzdWFpYW4iLA0KICAgICAgc2hvd2dyaWQgPSBGQUxTRQ0KICAgICkNCiAgKQ0KDQpwDQpgYGANCg0KIyAqKlNvYWwgMzogRGVzYWluIFN1cnZlaSBFdmFsdWFzaSBLZXB1YXNhbiBNYWhhc2lzd2EgdGVyaGFkYXAgTGF5YW5hbiBBa2FkZW1payoqDQoNCioqUGVybWludGFhbioqOg0KDQotIFJhbmNhbmcgMjUgcGVydGFueWFhbiB1dGFtYSAodmFyaWFzaSBza2FsYSAmIGJlbnR1aykNCi0gUmFuY2FuZyBzaXN0ZW0gdmFsaWRhc2kgaW5zdHJ1bWVuDQotIFRlbnR1a2FuIG1ldG9kZSBkaXN0cmlidXNpIGRhbiB1amkgc3RhdGlzdGlrIGt1ZXNpb25lcg0KLSBTaW11bGFzaWthbiBzdHJhdGVnaSBzYW1wbGluZyAmIHBlbmdvbGFoYW4gZGF0YSBhd2FsDQoNCiMjICoqYS4gRGVzYWluIFBlcnRhbnlhYW4gKDI1IEJ1dGlyKSoqDQoNClBlcnRhbnlhYW4gZGliYWdpIGtlIGRhbGFtIDUgYXNwZWsgbGF5YW5hbjoNCg0KLSBLUlMgT25saW5lDQotIEJpbWJpbmdhbiBBa2FkZW1paw0KLSBQZWxheWFuYW4gQWRtaW5pc3RyYXNpDQotIEFrc2VzIEluZm9ybWFzaSBBa2FkZW1paw0KLSBCYW50dWFuIFBlbnllbGVzYWlhbiBTdHVkaQ0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIEluc3RhbGwgZGFuIHBhbmdnaWwgbGlicmFyeSBqaWthIGJlbHVtIGFkYQ0KaWYgKCFyZXF1aXJlKCJrYWJsZUV4dHJhIikpIGluc3RhbGwucGFja2FnZXMoImthYmxlRXh0cmEiLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KbGlicmFyeShrYWJsZUV4dHJhKQ0KDQojIERhdGEga3Vlc2lvbmVyDQprdWVzaW9uZXIgPC0gZGF0YS5mcmFtZSgNCiAgTm8gPSAxOjI1LA0KICBBc3BlayA9IGMoDQogICAgcmVwKCJLUlMiLCA1KSwNCiAgICByZXAoIkJpbWJpbmdhbiIsIDUpLA0KICAgIHJlcCgiQWRtaW5pc3RyYXNpIiwgNSksDQogICAgcmVwKCJJbmZvIEFrYWRlbWlrIiwgNSksDQogICAgcmVwKCJCYW50dWFuIFN0dWRpIiwgNSkNCiAgKSwNCiAgUGVydGFueWFhbiA9IGMoDQogICAgIkFwYWthaCBBbmRhIG1lbmdhbGFtaSBrZW5kYWxhIHNhYXQgbWVuZ2d1bmFrYW4gc2lzdGVtIEtSUyBvbmxpbmU/IiwNCiAgICAiU2ViZXJhcGEgbXVkYWggQW5kYSBtZW1haGFtaSB0YW1waWxhbiBhbnRhcm11a2EgS1JTPyIsDQogICAgIkJlcmFwYSBrYWxpIHNpc3RlbSBLUlMgbWVuZ2FsYW1pIGVycm9yIHNhYXQgQW5kYSBndW5ha2FuPyIsDQogICAgIkFwYSBmaXR1ciB5YW5nIHBhbGluZyBtZW1iYW50dSBBbmRhIGRpIHNpc3RlbSBLUlM/IiwNCiAgICAiS29tZW50YXIgQW5kYSB0ZXJrYWl0IHNpc3RlbSBLUlMgb25saW5lIiwNCiAgICANCiAgICAiU2ViZXJhcGEgc2VyaW5nIEFuZGEgYmVydGVtdSBkb3NlbiB3YWxpPyIsDQogICAgIkRvc2VuIHdhbGkgc2F5YSBtZW1iZXJpa2FuIHNvbHVzaSB5YW5nIHRlcGF0IGF0YXMgcGVybWFzYWxhaGFuIGFrYWRlbWlrIHNheWEiLA0KICAgICJBcGFrYWggQW5kYSBtZXJhc2EgZGlkZW5nYXJrYW4gb2xlaCBkb3NlbiB3YWxpIEFuZGE/IiwNCiAgICAiU2ViZXJhcGEgcHVhcyBBbmRhIGRlbmdhbiBrdWFsaXRhcyBiaW1iaW5nYW4gYWthZGVtaWs/IiwNCiAgICAiU2FyYW4gQW5kYSB1bnR1ayBtZW5pbmdrYXRrYW4gYmltYmluZ2FuIGFrYWRlbWlrIiwNCiAgICANCiAgICAiQmFnYWltYW5hIGtlbXVkYWhhbiBwcm9zZXMgYWRtaW5pc3RyYXNpIGFrYWRlbWlrPyIsDQogICAgIlBlcm5haGthaCBBbmRhIG1lbmdhanVrYW4gc3VyYXQgYWthZGVtaWsgKGN1dGksIGFrdGlmIGt1bGlhaCwgZGxsKT8iLA0KICAgICJTZWJlcmFwYSBjZXBhdCBsYXlhbmFuIGFkbWluaXN0cmFzaSBtZXJlc3BvbiBwZXJtaW50YWFuIEFuZGE/IiwNCiAgICAiQXBha2FoIHN0YWYgYWRtaW4gcmFtYWggZGFuIG1lbWJhbnR1PyIsDQogICAgIktvbWVudGFyIEFuZGEgbWVuZ2VuYWkgbGF5YW5hbiBhZG1pbmlzdHJhc2kiLA0KICAgIA0KICAgICJTZWJlcmFwYSBtdWRhaCBBbmRhIG1lbmRhcGF0a2FuIGluZm9ybWFzaSB0ZXJrYWl0IGFrYWRlbWlrIChqYWR3YWwsIG5pbGFpKT8iLA0KICAgICJBcGEgc3VtYmVyIHV0YW1hIEFuZGEgbWVuZGFwYXRrYW4gaW5mbyBha2FkZW1paz8iLA0KICAgICJBcGFrYWggaW5mb3JtYXNpIHlhbmcgZGliZXJpa2FuIHNlcmluZyBiZXJ1YmFoIHRhbnBhIHBlbWJlcml0YWh1YW4/IiwNCiAgICAiQXBha2FoIGthbXB1cyBwdW55YSBzYWx1cmFuIGluZm9ybWFzaSB5YW5nIGVmZWt0aWY/IiwNCiAgICAiU2FyYW4gQW5kYSB1bnR1ayBwZXJiYWlrYW4gYWtzZXMgaW5mbyBha2FkZW1payIsDQogICAgDQogICAgIkFwYWthaCBBbmRhIHRhaHUgY2FyYSBtZW5kYXBhdGthbiBiYW50dWFuIHBlbnllbGVzYWlhbiBzdHVkaT8iLA0KICAgICJMYXlhbmFuIGJhbnR1YW4gc3R1ZGkgeWFuZyBwZXJuYWggQW5kYSBndW5ha2FuIiwNCiAgICAiQXBha2FoIGxheWFuYW4gdGVyc2VidXQgbWVtYmFudHUgbWVueWVsZXNhaWthbiBtYXNhbGFoIEFuZGE/IiwNCiAgICAiU2ViZXJhcGEgcHVhcyBBbmRhIGRlbmdhbiBsYXlhbmFuIGJhbnR1YW4gc3R1ZGk/IiwNCiAgICAiSGFyYXBhbiBBbmRhIHRlcmthaXQgbGF5YW5hbiBwZW55ZWxlc2FpYW4gc3R1ZGkiDQogICksDQogIFNrYWxhX0JlbnR1ayA9IGMoDQogICAgIllhL1RpZGFrIiwgIkxpa2VydCAx4oCTNSIsICJJc2lhbiBhbmdrYSIsICJQaWxpaGFuIEdhbmRhIiwgIkVzYWkgc2luZ2thdCIsDQogICAgIlBpbGloYW4gR2FuZGEiLCAiTGlrZXJ0IDHigJM1IiwgIllhL1RpZGFrIiwgIkxpa2VydCAx4oCTNSIsICJFc2FpIiwNCiAgICAiTGlrZXJ0IDHigJM1IiwgIllhL1RpZGFrIiwgIkxpa2VydCAx4oCTNSIsICJZYS9UaWRhayIsICJFc2FpIiwNCiAgICAiTGlrZXJ0IDHigJM1IiwgIlBpbGloYW4gR2FuZGEiLCAiWWEvVGlkYWsiLCAiTGlrZXJ0IDHigJM1IiwgIkVzYWkiLA0KICAgICJZYS9UaWRhayIsICJQaWxpaGFuIEdhbmRhIiwgIllhL1RpZGFrIiwgIkxpa2VydCAx4oCTNSIsICJFc2FpIg0KICApLA0KICBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UNCikNCg0KIyBNZW5hbXBpbGthbiB0YWJlbCBkZW5nYW4gc3R5bGluZw0Ka3Vlc2lvbmVyICU+JQ0KICBrYmwoYWxpZ24gPSAiYyIpICU+JQ0KICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpLCBmdWxsX3dpZHRoID0gRikgJT4lDQogIHJvd19zcGVjKDAsIGJvbGQgPSBUUlVFLCBiYWNrZ3JvdW5kID0gIiM0Q0FGNTAiLCBjb2xvciA9ICJ3aGl0ZSIpICU+JQ0KICBjb2x1bW5fc3BlYygyLCBiYWNrZ3JvdW5kID0gIiNFOEY1RTkiKSAlPiUgICMgS29sb20gQXNwZWsgd2FybmEgaGlqYXUgbXVkYQ0KICBjb2x1bW5fc3BlYyg0LCBiYWNrZ3JvdW5kID0gIiNGRkY5QzQiKSAgICAgICMgS29sb20gU2thbGEvQmVudHVrIHdhcm5hIGt1bmluZyBtdWRhDQpgYGANCg0KIyMgKipiLiBTa2VtYSBWYWxpZGFzaSBJbnN0cnVtZW4qKg0KDQoqKjEuIFZhbGlkYXNpIElzaSAoQ29udGVudCBWYWxpZGl0eSkqKjoNCiAgICAgIA0KICAgLSBNZWxpYmF0a2FuIHBha2FyIGFrYWRlbWlrL3BlbmVsaXRpYW4gdW50dWsgbWVuaWxhaSByZWxldmFuc2kgc2V0aWFwIGl0ZW0uDQogICANCioqMi4gVmFsaWRhc2kgS29uc3RydWsgKENvbnN0cnVjdCBWYWxpZGl0eSkqKjoNCg0KICAtIE1lbGFsdWkgKipBbmFsaXNpcyBGYWt0b3IgKEV4cGxvcmF0b3J5IEZhY3RvciBBbmFseXNpcyAvIEVGQSkqKiB1bnR1ayBtZW5nZWxvbXBva2thbiBpdGVtIHNlc3VhaSBkaW1lbnNpIGxheWFuYW4uDQogIA0KKiozLiBSZWxpYWJpbGl0YXMqKjoNCg0KICAtIFVqaSBrb25zaXN0ZW5zaSBpbnRlcm5hbCBtZW5nZ3VuYWthbiAqKkNyb25iYWNo4oCZcyBBbHBoYSoqLCB0YXJnZXQg4omlIDAuNy4NCg0KIyMgKipjLiBTdHJhdGVnaSBEaXN0cmlidXNpIGRhbiBTYW1wbGluZyoqDQoNCioqRGlzdHJpYnVzaSBLdWVzaW9uZXIqKjoNCg0KICAtIEdvb2dsZSBGb3JtIGF0YXUgTWljcm9zb2Z0IEZvcm0NCiAgLSBEaWJhZ2lrYW4gdmlhIGVtYWlsIGthbXB1cywgZ3J1cCBXQSwgbWVkaWEgc29zaWFsIHJlc21pIGthbXB1cw0KDQoqKlN0cmF0ZWdpIFNhbXBsaW5nKio6DQoNCiAgLSAqKlN0cmF0aWZpZWQgUmFuZG9tIFNhbXBsaW5nKiogYmVyZGFzYXJrYW46DQogICAgLSBGYWt1bHRhcw0KICAgIC0gVGluZ2thdCBzZW1lc3RlciAoYXdhbCwgdGVuZ2FoLCBha2hpcikNCi0gVGFyZ2V0IGp1bWxhaCByZXNwb25kZW46ICoqbWluaW1hbCAxNTAgbWFoYXNpc3dhKioNCg0KDQojIyAqKmQuIFNpbXVsYXNpIFBlbmdvbGFoYW4gRGF0YSAmIFZpc3VhbGlzYXNpIEF3YWwqKg0KDQoqKlNpbXVsYXNpIFJlc3BvbmRlbiAoRHVtbXkgRGF0YSA1MCBPcmFuZykqKjoNCg0KICAtIE1lbmdndW5ha2FuIFB5dGhvbiAmIFBhbmRhcw0KICAtIEFuYWxpc2lzIEF3YWw6IERpc3RyaWJ1c2kgbmlsYWkga2VwdWFzYW4gKExpa2VydCkgdGlhcCBhc3Blaw0KICANCioqVmlzdWFsaXNhc2kqKjoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLH0NCmxpYnJhcnkocGxvdGx5KQ0KDQojIFNpbXVsYXNpIGRhdGENCnNldC5zZWVkKDEyMykNCnJlc3BvbmRlbiA8LSAxOjUwDQphc3BlayA8LSBjKCJLUlMgT25saW5lIiwgIkJpbWJpbmdhbiIsICJBZG1pbmlzdHJhc2kiLCAiSW5mbyBBa2FkZW1payIsICJCYW50dWFuIFN0dWRpIikNCg0KIyBCdWF0IGRhdGEgZnJhbWUNCmRhdGEgPC0gZXhwYW5kLmdyaWQoUmVzcG9uZGVuID0gcmVzcG9uZGVuLCBBc3BlayA9IGFzcGVrKQ0KZGF0YSRTa29yIDwtIHNhbXBsZSgxOjUsIHNpemUgPSBucm93KGRhdGEpLCByZXBsYWNlID0gVFJVRSkNCg0KIyBQbG90IDNEDQpmaWcgPC0gcGxvdF9seSgNCiAgZGF0YSwNCiAgeCA9IH5SZXNwb25kZW4sDQogIHkgPSB+QXNwZWssDQogIHogPSB+U2tvciwNCiAgdHlwZSA9ICdzY2F0dGVyM2QnLA0KICBtb2RlID0gJ21hcmtlcnMnLA0KICBtYXJrZXIgPSBsaXN0KHNpemUgPSA0LCBjb2xvciA9IH5Ta29yLCBjb2xvcnNjYWxlID0gJ1ZpcmlkaXMnLCBzaG93c2NhbGUgPSBUUlVFKQ0KKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gIlZpc3VhbGlzYXNpIDNEIEtlcHVhc2FuIE1haGFzaXN3YSB0ZXJoYWRhcCBMYXlhbmFuIEFrYWRlbWlrIiwNCiAgICBzY2VuZSA9IGxpc3QoDQogICAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiUmVzcG9uZGVuIiksDQogICAgICB5YXhpcyA9IGxpc3QodGl0bGUgPSAiQXNwZWsgTGF5YW5hbiIpLA0KICAgICAgemF4aXMgPSBsaXN0KHRpdGxlID0gIlNrb3IgS2VwdWFzYW4iKQ0KICAgICkNCiAgKQ0KDQpmaWcNCmBgYA0K