Ujian Tengah Semester 2

Sampling & Survey Techniques

Logo

1 Simulasi Kesalahan Sampling di Lapangan

Andaikan Anda adalah bagian dari tim riset lapangan yang diminta untuk melakukan survei tingkat penggunaan aplikasi transportasi online di 3 kota menengah di Sumatera. Target sampel total adalah 600 responden, masing-masing 200 per kota. Tetapi, setelah 2 minggu melakukan survei anda menemukan:

  • Di Kota A, tim berhasil mendapatkan 250 responden.

  • Di Kota B, hanya 120 responden yang dapat diwawancarai.

  • Di Kota C, 180 responden.

Instruksi:

1.1 Jelaskan dua jenis kesalahan sampling yang terjadi berdasarkan situasi ini.

Jawab:

1. Kesalahan Proporsi Sampel (Disproportionate Sampling Error)

Rencana awal adalah mengumpulkan sampel proporsional sebesar 200 responden per kota. Namun, realisasi di lapangan tidak sesuai:

Kota A: 250 (kelebihan 50)

Kota B: 120 (kekurangan 80)

Kota C: 180 (kekurangan 20)

Dampak: Ini menyebabkan distribusi sampel tidak proporsional terhadap rencana semula, yang dapat menyebabkan hasil survei terlalu merefleksikan pendapat dari kota dengan responden lebih banyak (Kota A), dan kurang mewakili kota yang kekurangan (Kota B dan C).

2. Kesalahan Nonresponse atau Coverage Bias

Terutama pada Kota B yang hanya mendapat 120 responden dari target 200. Ini bisa terjadi karena:

  • Kesulitan akses ke responden

  • Tingkat partisipasi rendah

  • Waktu survei tidak cocok

Dampak: Bila karakteristik orang yang tidak menjawab berbeda dengan yang menjawab, maka bisa terjadi bias. Misalnya, jika pengguna aktif aplikasi transportasi online lebih sulit dijangkau, maka hasil bisa underestimate penggunaan aplikasi.

1.2 Jika Anda harus menyesuaikan bobot untuk mengembalikan representasi proporsional,bagaimana Anda akan menghitungnya?

Jawab:

Langkah 1: Hitung Proporsi Ideal per Kota

Kota A, B, dan C: 200 / 600 = 0.333

Langkah 2: Hitung Proporsi Aktual per Kota

  • Total responden aktual = 250 + 120 + 180 = 550

  • Proporsi aktual:

    • Kota A: 250 / 550 ≈ 0.455

    • Kota B: 120 / 550 ≈ 0.218

    • Kota C: 180 / 550 ≈ 0.327

Langkah 3: Hitung Bobot Penyesuaian per Responden

\[ \text{Bobot Kota} = \frac{\text{Proporsi Ideal}}{\text{Proporsi Aktual}} \]

  • Kota A: 0.333 / 0.455 ≈ 0.732

  • Kota B: 0.333 / 0.218 ≈ 1.527

  • Kota C: 0.333 / 0.327 ≈ 1.018

Interpretasi:

  • Responden dari Kota A diberi bobot lebih kecil karena jumlahnya terlalu banyak.

  • Responden dari Kota B diberi bobot lebih besar karena jumlahnya terlalu sedikit.

  • Kota C mendekati target, jadi bobotnya hampir 1.

2 Mendesain Survei dengan Pembobotan Waktu Puncak

Buatlah desain rancangan survei tentang persepsi kenyamanan pengguna ojek online saat jam sibuk (07.00–09.00 dan 17.00–19.00).

Instruksi:

2.1 Desain pendekatan sampling yang memungkinkan Anda menangkap persepsi pengguna secara representatif pada jam sibuk, tanpa melakukan survei sepanjang hari.

Jawab:

Dengan menggunakan pendekatan sampling terstratifikasi berdasarkan waktu puncak. Yaitu dengan membagi waktu puncak menjadi dua strata:

  • Pagi: 07.00-09.00

  • Sore: 17.00-19.00

Dengan cara tersebut kita tidak perlu melakukan survei sepanjang hari. Hal ini dilakukan untuk menjaga representasi:

  • Kita perlakukan waktu sebagai lapisan stata, agar bisa menyesuaikan bobotnya.

  • Kuota bisa dibagi rata atau mengikuti data historis.

2.2 Sertakan rancangan waktu, metode pemilihan responden, dan justifikasi pemilihan unit sampling.

Jawab:

1. Waktu Pelaksanaan Survei

  • Dilakukan hanya pada jam sibuk

    • Pagi: 07.00-09.00

    • Sore: 17.00-19.00

  • Dalam 5 hari kerja (Senin-Jumat)

2. Metode Pemilihan Responden

  • Lokasi: Titik ramai/ naik turunnya penumpang ojek online (stasiun, kampus, kantor, pusat perbelanjaan, dll)

  • Metode Sampling: Intercept sampling di lokasi strategis:

    Pewawancara langsung menyapa penumpang yang baru turun dari ojek online

  • Kriteria Responden:

    • Usia 17+

    • Baru saja menggunakan ojek online

    • Bersedia diwawancarai singkat (3–5 menit)

3. Justifikasi Pemilihan Unit Sampling

  • Unit sampling utama: pengguna ojek online aktif saat jam sibuk.

  • Dengan intercept di lokasi padat penumpang, kita bisa mengakses pengguna sebenarnya saat mereka benar-benar menggunakan layanan, bukan hanya mengandalkan ingatan.

  • Fokus hanya pada jam sibuk menghemat biaya dan tenaga survei, sambil tetap mempertahankan fokus studi.

2.3 Jelaskan bagaimana Anda akan menyesuaikan hasil survei jika 60% responden berasal dari pagi hari, sementara 40% dari sore hari, sedangkan data historis menunjukkan pengguna ojek online saat sore hari dua kali lebih banyak dibanding pagi.

Jawab:

Masalah:

  • Distribusi Responden Aktual:

    • 60% responden pagi

    • 40% responden sore

  • Namun, data historis menunjukkan bahwa pengguna ojek online sore hari dua kali lebih banyak dibandingkan pagi hari. Artinya, pengguna sore lebih dominan, tetapi di survei kita, responden sore kurang terwakili.

Langkah-Langkah Penyesuaian Bobot Waktu

1. Tentukan Proporsi Ideal:

Berdasarkan data historis, kita tahu bahwa:

  • Pengguna Pagi = 1 bagian

  • Pengguna Sore = 2 bagian

Total = 3 bagian

Proporsi idealnya:

  • Pagi: 1 / 3 = 33.33%
  • Sore: 2 / 3 = 66.67%

Dengan kata lain, idealnya, kita ingin 33.33% responden berasal dari pagi, dan 66.67% dari sore.

2. Hitung Proporsi Aktual Responden:

  • Proporsi aktual yang tercatat di survei:

    • Pagi: 60% responden
    • Sore: 40% responden

3. Hitung Bobot Penyesuaian:

Untuk menyesuaikan perbedaan ini, kita menggunakan bobot yang dihitung sebagai perbandingan antara proporsi ideal dan aktual.

\[ \text{Bobot} = \frac{\text{Proporsi Ideal}}{\text{Proporsi Aktual}} \]

Perhitungan bobot:

  • Pagi:
    \[ \text{Bobot Pagi} = \frac{0.333}{0.60} = 0.555 \]

    Artinya, setiap responden pagi akan dihitung lebih kecil dalam analisis. Hal ini karena jumlah responden pagi lebih banyak dari yang seharusnya. Jadi, kita “mengurangi” kontribusinya untuk mencocokkan proporsi yang lebih ideal.

  • Sore:
    \[ \text{Bobot Sore} = \frac{0.667}{0.40} = 1.667 \]

    Sebaliknya, setiap responden sore akan dihitung lebih besar. Responden sore lebih sedikit dari yang seharusnya, jadi kita “meningkatkan” kontribusinya dalam analisis untuk mengimbanginya.

Interpretasi:

  • Responden Pagi yang berjumlah lebih banyak, akan dikurangi bobotnya (dibuat lebih kecil), karena seharusnya mereka tidak sebesar itu dibandingkan sore.

  • Responden Sore yang berjumlah lebih sedikit, akan diberikan bobot lebih tinggi, agar kontribusinya terhadap total hasil lebih representatif terhadap kenyataan bahwa lebih banyak orang menggunakan ojek online pada sore hari.

3 Anda ditugaskan oleh biro akademik kampus untuk merancang instrumen survei yang bertujuan mengevaluasi kepuasan mahasiswa terhadap layanan akademik, yang mencakup layanan seperti: KRS online, bimbingan akademik, pelayanan administrasi, akses informasi akademik, dan bantuan penyelesaian studi.

Tim peneliti meminta Anda untuk:

  • Merancang 25 pertanyaan utama dengan variasi skala dan bentuk pertanyaan.

  • Merancang sistem validasi instrumen.

  • Menentukan metode distribusi dan pengujian kuesioner secara statistik.

  • Menyiapkan simulasi strategi pengambilan sampel dan pengolahan data awal.

Jawab:


LAPORAN RANCANGAN SURVEI KEPUASAN MAHASISWA TERHADAP LAYANAN AKADEMIK

I. Desain Pertanyaan Survei

Survei ini bertujuan untuk mengevaluasi kepuasan mahasiswa terhadap layanan akademik di kampus. Terdiri dari 25 pertanyaan yang mencakup lima layanan utama:

  1. KRS Online
  2. Bimbingan Akademik
  3. Pelayanan Administrasi
  4. Akses Informasi Akademik
  5. Bantuan Penyelesaian Studi

Gform Desain Pertanyaan:

https://forms.gle/K3p1fWrXQpAkxAsd6

II. Skema Validasi Instrumen

Untuk memastikan kualitas dan keandalan instrumen survei, kita akan menggunakan dua jenis validasi:

  1. Validitas Isi (Content Validity)

    Validitas isi kuesioner ini dijamin dengan memastikan bahwa setiap pertanyaan relevan dan mencakup semua dimensi layanan akademik yang ingin dievaluasi, yaitu KRS online, bimbingan akademik, pelayanan administrasi, akses informasi akademik, dan bantuan penyelesaian studi. Untuk memastikan hal ini, setiap pertanyaan dikaitkan dengan aspek layanan yang relevan, yang disusun berdasarkan pedoman yang ada dalam literatur terkait evaluasi layanan akademik serta teori-teori validitas kuesioner.

  2. Validitas Konstrak (Construct Validity)

    Validitas konstrak akan diuji dengan menganalisis sejauh mana pertanyaan dalam kuesioner benar-benar mengukur kepuasan terhadap layanan akademik. Setelah pengumpulan data, analisis faktor akan dilakukan untuk memeriksa apakah setiap dimensi layanan, seperti KRS online dan bimbingan akademik, dapat diidentifikasi dan diukur secara terpisah dalam kelompok pertanyaan yang sesuai.

  3. Reliabilitas

    Reliabilitas kuesioner akan diuji dengan menghitung Cronbach’s Alpha setelah uji coba kuesioner pada sejumlah kecil responden. Nilai Cronbach’s Alpha yang lebih besar dari 0.7 akan menunjukkan bahwa kuesioner memiliki konsistensi internal yang baik dan dapat dipercaya dalam pengukuran.

  4. Penyesuaian Berdasarkan Hasil Validasi

    Berdasarkan hasil validasi isi, validitas konstrak, dan reliabilitas, jika ditemukan pertanyaan yang tidak memenuhi standar validitas atau reliabilitas yang diinginkan, perubahan atau penyesuaian akan dilakukan. Langkah-langkah perbaikan tersebut bisa berupa penghapusan, pengubahan, atau penambahan pertanyaan untuk memastikan instrumen kuesioner dapat mengukur kepuasan mahasiswa terhadap layanan akademik dengan tepat.

III. Strategi Distribusi dan Sampling

  1. Populasi dan Sampel

    Populasi Penelitian

    Populasi penelitian ini adalah seluruh mahasiswa aktif di ITSB yang terdaftar dan menggunakan layanan akademik. Layanan akademik yang dimaksud mencakup KRS online, bimbingan akademik, pelayanan administrasi, akses informasi akademik, dan bantuan penyelesaian studi.

    Sampel Penelitian

    Sampel penelitian akan terdiri dari mahasiswa yang menggunakan layanan akademik di 2 fakultas yang ada di ITSB. Sampel akan diambil secara proporsional dari 2 fakultas, dengan masing-masing fakultas menyumbangkan 200 responden. Dengan demikian, total sampel yang akan diambil adalah 600 responden, yang terdiri dari:

    • 50 responden dari Fakultas Teknik dan Desain

    • 50 responden dari Fakultas Vokasi

  2. Metode Sampling

    Metode Sampling yang Digunakan

    Penelitian ini akan menggunakan Stratified Random Sampling, yaitu teknik pengambilan sampel di mana populasi dibagi menjadi beberapa strata atau kelompok berdasarkan karakteristik tertentu, dalam penelitian ini berdasarkan fakultas. Setiap strata (fakultas) akan diwakili dalam sampel sesuai dengan jumlah yang telah ditentukan. Teknik ini dipilih untuk memastikan bahwa setiap fakultas terwakili dengan baik, sehingga hasil penelitian dapat memberikan gambaran yang lebih akurat tentang kepuasan mahasiswa terhadap layanan akademik di kampus.Responden akan dipilih secara acak dari setiap fakultas yang ada.

    Kriteria Pengambilan Sampel

    • Mahasiswa aktif yang terdaftar dalam sistem akademik kampus dan menggunakan layanan akademik yang tercakup dalam survei.

    • Sampel akan diambil secara acak dalam setiap fakultas untuk mencegah bias dalam pemilihan responden.

  3. Strategi Distribusi Kuesioner

    Kuesioner akan disebarkan secara online menggunakan platform Google Form untuk mempermudah distribusi dan pengumpulan data. Platform ini dipilih karena aksesibilitas yang mudah, sehingga mahasiswa dapat mengisi kuesioner kapan saja dan dari mana saja.

    Link Kuesioner: Link kuesioner akan dibagikan melalui email resmi kampus dan grup WhatsApp yang terkait dengan kelas atau jurusan masing-masing. Email atau pesan yang berisi link survei akan mencakup penjelasan singkat mengenai tujuan survei dan cara pengisian kuesioner.

    Waktu Pengisian: Responden diberikan waktu selama dua minggu untuk mengisi kuesioner setelah menerima undangan.

  4. Pengujian Statistik Awal

    Setelah pengumpulan data, analisis statistik awal akan dilakukan untuk menguji kelayakan dan validitas data yang dikumpulkan. Pengujian statistik yang akan digunakan meliputi:

    Analisis Deskriptif: Untuk menggambarkan karakteristik responden (misalnya, demografi) dan tingkat kepuasan terhadap layanan akademik.

    Uji Reliabilitas: Menggunakan Cronbach’s Alpha untuk memeriksa konsistensi internal dari kuesioner.

    Analisis Inferensial: Uji statistik seperti uji t atau analisis regresi akan digunakan untuk menguji hipotesis terkait hubungan antara faktor-faktor yang mempengaruhi kepuasan mahasiswa.

  5. Penjadwalan dan Pengelolaan Data

    Penjadwalan Pengisian Kuesioner: Selama dua minggu setelah distribusi, responden diminta untuk mengisi kuesioner. Setelah waktu tersebut, data akan ditutup dan analisis dimulai.

    Pengelolaan Data: Semua data yang terkumpul akan disimpan dengan aman dalam format elektronik dan akan dianalisis menggunakan perangkat lunak statistik seperti excel.

IV. Simulasi Pengambilan Sampel dan Pengolahan Data Awal

Simulasi ini bertujuan untuk menguji dan memvisualisasikan potensi hasil survei menggunakan data yang telah dikumpulkan melalui instrumen kuesioner skala Likert. Fokus analisis adalah mengevaluasi kepuasan mahasiswa terhadap lima aspek layanan akademik: KRS Online, Bimbingan Akademik, Pelayanan Administrasi, Akses Informasi Akademik, dan Bantuan Penyelesaian Studi. Data diperoleh dari kuesioner yang telah disimulasikan dan dikumpulkan dalam format CSV, terdiri atas 100 responden. Setiap pertanyaan pada lima dimensi layanan akademik menggunakan skala Likert 1–5, di mana:

1 = Sangat Tidak Setuju

2 = Tidak Setuju

3 = Netral

4 = Setuju

5 = Sangat Setuju

Dengan memberikan simbol per dimensi, yaitu:

  1. Layanan KRS Online (A)
  • Saya merasa proses pengisian KRS online mudah dipahami. (A1)

  • Sistem KRS online jarang mengalami error saat digunakan. (A2)

  1. Bimbingan Akademik (B)
  • Dosen pembimbing memberikan arahan yang jelas dan bermanfaat. (B1)

  • Saya merasa nyaman dalam konsultasi dengan dosen pembimbing. (B2)

  1. Pelayanan Administrasi Akademik (C)
  • Proses pelayanan akademik (seperti surat aktif, legalisir, dll) cepat dan efisien. (C1)

  • Staf akademik kampus ramah dan komunikatif. (C2)

  1. Akses Informasi Akademik (D)
  • Informasi akademik (jadwal kuliah, ujian, pengumuman) selalu diperbarui dengan tepat waktu. (D1)

  • Saya mudah mengakses informasi akademik melalui portal atau media sosial resmi kampus. (D2)

  1. Bantuan Penyelesaian Studi (E)
  • Kampus memberikan dukungan yang memadai bagi mahasiswa yang kesulitan menyelesaikan studi. (E1)

  • Bantuan apa yang Anda harapkan dari kampus untuk menyelesaikan studi? (E2)

Data Dummy

Mean (rata-rata)

## [1] "Mean (Rata-rata) setiap item:"
##   A1   A2   B1   B2   C1   C2   D1   D2   E1   E2 
## 2.96 3.16 2.90 3.03 3.01 3.08 2.90 3.24 3.40 3.08
## [1] "Mean per Dimensi:"
##     A     B     C     D     E 
## 3.060 2.965 3.045 3.070 3.240

Interpretasi

Berdasarkan hasil analisis deskriptif terhadap data skala Likert dari 100 responden, diperoleh bahwa tingkat kepuasan mahasiswa terhadap lima dimensi layanan akademik kampus berada pada kategori cukup puas, dengan nilai mean berkisar antara 2,96 hingga 3,24. Dimensi Bantuan Penyelesaian Studi (E) memperoleh rata-rata tertinggi (3,24), menunjukkan bahwa mahasiswa merasa cukup didukung dalam proses penyelesaian studi. Sementara itu, dimensi dengan kepuasan terendah adalah Bimbingan Akademik (B) dengan nilai mean 2,96, mengindikasikan perlunya peningkatan pada aspek pendampingan akademik, terutama terkait arahan dan kenyamanan dalam konsultasi. Secara umum, sebagian besar item berada pada rentang netral hingga cukup puas, yang mencerminkan bahwa layanan akademik sudah berjalan dengan baik namun masih memiliki ruang perbaikan, khususnya pada aspek kecepatan informasi dan kualitas interaksi dosen dengan mahasiswa.

Median

## [1] "Median setiap item:"
##  A1  A2  B1  B2  C1  C2  D1  D2  E1  E2 
## 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.5 3.0
## [1] "Median per Dimensi:"
## A B C D E 
## 3 3 3 3 3

Interpretasi

Berdasarkan hasil perhitungan median, sebagian besar responden menunjukkan nilai median yang konsisten di angka 3 (Netral) untuk hampir semua item dan dimensi layanan akademik yang diuji, yang mencakup KRS online, bimbingan akademik, pelayanan administrasi, akses informasi akademik, dan bantuan penyelesaian studi. Ini mengindikasikan bahwa mahasiswa cenderung berada pada posisi netral dalam menilai berbagai aspek layanan akademik, dengan tidak ada kecenderungan kuat untuk setuju atau tidak setuju. Namun, pada dimensi bantuan penyelesaian studi (E1), nilai median sedikit lebih tinggi (3.5), yang menunjukkan bahwa sebagian responden sedikit lebih cenderung setuju bahwa dukungan yang diberikan kampus cukup memadai. Secara keseluruhan, hasil ini mengindikasikan bahwa meskipun mayoritas mahasiswa tidak merasa sangat puas atau tidak puas dengan layanan akademik, terdapat potensi untuk meningkatkan kualitas layanan di berbagai area untuk mencapai tingkat kepuasan yang lebih tinggi.

Modus

## [1] "Modus setiap item:"
## $A1
## [1] 1 2 4
## 
## $A2
## [1] 3
## 
## $B1
## [1] 2
## 
## $B2
## [1] 3
## 
## $C1
## [1] 1 4
## 
## $C2
## [1] 4
## 
## $D1
## [1] 1
## 
## $D2
## [1] 5
## 
## $E1
## [1] 5
## 
## $E2
## [1] 3
## [1] "Modus per Dimensi:"
## A B C D E 
## 2 2 4 5 5

Interpretasi

Berdasarkan hasil analisis modus terhadap data survei, diketahui bahwa terdapat variasi yang cukup signifikan dalam persepsi mahasiswa terhadap berbagai layanan akademik. Pada dimensi Layanan KRS Online (A), item A1 menunjukkan beberapa nilai modus (1, 2, dan 4), yang mengindikasikan persebaran opini yang luas, sementara A2 cenderung netral (3). Dimensi Bimbingan Akademik (B) didominasi oleh jawaban 2 dan 3, menunjukkan kecenderungan netral hingga tidak puas. Pada Pelayanan Administrasi Akademik (C), item C1 menunjukkan dua modus (1 dan 4), yang menggambarkan ketimpangan kepuasan, sementara C2 lebih positif (4). Untuk Akses Informasi Akademik (D), responden pada D1 cenderung sangat tidak setuju (1), sedangkan D2 sangat setuju (5), menandakan kesenjangan informasi. Sementara itu, Bantuan Penyelesaian Studi (E) secara umum memiliki penilaian positif, dengan modus tertinggi pada nilai 5, baik untuk E1 maupun E2. Secara keseluruhan, modus per dimensi memperlihatkan bahwa dimensi E (bantuan studi) dan D (akses informasi) memiliki kepuasan tertinggi (modus = 5), sementara dimensi A dan B memiliki kecenderungan netral hingga rendah (modus = 2), yang menandakan perlunya peningkatan layanan pada aspek tersebut.

Kesimpulan Analisis Awal

Berdasarkan hasil analisis terhadap data simulasi sebanyak 100 responden, tingkat kepuasan mahasiswa terhadap lima dimensi layanan akademik kampus secara umum berada pada kategori cukup baik, ditunjukkan oleh nilai mean yang berkisar antara 2.965 hingga 3.240 pada skala Likert 1–5. Dimensi Bantuan Penyelesaian Studi (E) menunjukkan tingkat kepuasan tertinggi (mean = 3.240), sedangkan Bimbingan Akademik (B) mencatatkan skor rata-rata terendah (mean = 2.965), yang mengindikasikan perlunya peningkatan komunikasi dan efektivitas bimbingan akademik. Analisis median memperkuat temuan ini, dengan nilai median konsisten berada pada angka 3, menandakan kecenderungan jawaban responden pada kategori netral. Sementara itu, analisis modus menunjukkan bahwa beberapa item memiliki nilai dominan yang bervariasi, bahkan lebih dari satu nilai modus, yang mencerminkan adanya keragaman pendapat atau persepsi antar responden terhadap masing-masing layanan. Secara keseluruhan, hasil ini memberikan gambaran awal bahwa meskipun layanan akademik kampus berjalan cukup baik, masih terdapat ruang untuk peningkatan khususnya pada aspek bimbingan akademik dan akses sistem layanan digital yang lebih stabil dan informatif.

V. KESIMPULAN

Survei kepuasan mahasiswa terhadap layanan akademik di kampus telah dirancang secara sistematis untuk mengukur persepsi mahasiswa pada lima dimensi utama: KRS Online, Bimbingan Akademik, Pelayanan Administrasi, Akses Informasi Akademik, dan Bantuan Penyelesaian Studi. Instrumen survei dikembangkan menggunakan skala Likert 1–5 dan divalidasi melalui pendekatan validitas isi, validitas konstrak, serta diuji reliabilitasnya menggunakan Cronbach’s Alpha.

Berdasarkan simulasi awal dengan 100 responden, diperoleh hasil sebagai berikut:

  • Tingkat kepuasan secara umum berada pada kategori cukup baik, dengan nilai rata-rata (mean) antar dimensi berkisar antara 2,965 hingga 3,240.

  • Dimensi Bantuan Penyelesaian Studi (E) memperoleh nilai kepuasan tertinggi (mean = 3,240 dan modus = 5), menunjukkan bahwa mahasiswa merasa cukup terbantu dalam proses penyelesaian studi.

  • Sebaliknya, dimensi Bimbingan Akademik (B) mencatat skor terendah (mean = 2,965 dan modus = 2), yang mengindikasikan adanya kebutuhan untuk meningkatkan kualitas komunikasi dan arahan akademik dari dosen pembimbing.

  • Analisis median memperlihatkan bahwa sebagian besar dimensi berada pada posisi netral (median = 3), memperkuat asumsi bahwa persepsi mahasiswa cenderung belum sangat puas namun juga tidak negatif.

  • Hasil modus menunjukkan adanya variasi signifikan dalam respons mahasiswa, yang mencerminkan persepsi yang beragam terhadap kualitas layanan, terutama pada dimensi KRS Online dan Pelayanan Administrasi.

Secara keseluruhan, layanan akademik di kampus telah berjalan cukup baik namun belum optimal sepenuhnya. Hasil analisis ini menandakan perlunya peningkatan pada aspek-aspek strategis, seperti efektivitas bimbingan akademik dan penyampaian informasi akademik yang konsisten dan tepat waktu. Ke depan, data hasil survei ini akan menjadi dasar penting untuk menyusun rekomendasi peningkatan layanan akademik yang lebih terarah dan berbasis data, guna mendukung proses pembelajaran mahasiswa secara lebih efektif dan menyeluruh.

LS0tDQp0aXRsZTogIlVqaWFuIFRlbmdhaCBTZW1lc3RlciAyIg0Kc3VidGl0bGU6ICJTYW1wbGluZyAmIFN1cnZleSBUZWNobmlxdWVzIg0KYXV0aG9yOiANCiAgIklzbmFpbmkgTnVyIEhhc2FuYWggKDUyMjQwMDA1KSINCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJvYm9ib29rOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICAgIGxpYl9kaXI6IGxpYnMNCiAgICBkZl9wcmludDogInBhZ2VkIg0KICAgIGNvZGVfZm9sZGluZzogInNob3ciDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY3NzOiAic3R5bGUgKDEpLmNzcyINCiAgICBwYXJhbXM6DQogIGVjaG86IGZhbHNlDQplZGl0b3Jfb3B0aW9uczogDQogIG1hcmtkb3duOiANCiAgICB3cmFwOiA3Mg0KLS0tDQoNCjxpbWcgaWQ9IklzbmEiIHNyYz0iQzpcVXNlcnNcQVNVU1xEZXNrdG9wXFN0YXRpc3Rpa2EgRGFzYXJcSXNuYS5wbmciIGFsdD0iTG9nbyIgc3R5bGU9IndpZHRoOjIwMHB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyI+DQoNCiMgU2ltdWxhc2kgS2VzYWxhaGFuIFNhbXBsaW5nIGRpIExhcGFuZ2FuDQoNCkFuZGFpa2FuIEFuZGEgYWRhbGFoIGJhZ2lhbiBkYXJpIHRpbSByaXNldCBsYXBhbmdhbiB5YW5nIGRpbWludGEgdW50dWsgbWVsYWt1a2FuIHN1cnZlaSB0aW5na2F0IHBlbmdndW5hYW4gYXBsaWthc2kgdHJhbnNwb3J0YXNpIG9ubGluZSBkaSAzIGtvdGEgbWVuZW5nYWggZGkgU3VtYXRlcmEuIFRhcmdldCBzYW1wZWwgdG90YWwgYWRhbGFoIDYwMCByZXNwb25kZW4sIG1hc2luZy1tYXNpbmcgMjAwIHBlciBrb3RhLiBUZXRhcGksIHNldGVsYWggMiBtaW5nZ3UgbWVsYWt1a2FuIHN1cnZlaSBhbmRhIG1lbmVtdWthbjoNCg0KLSBEaSBLb3RhIEEsIHRpbSBiZXJoYXNpbCBtZW5kYXBhdGthbiAyNTAgcmVzcG9uZGVuLg0KDQotIERpIEtvdGEgQiwgaGFueWEgMTIwIHJlc3BvbmRlbiB5YW5nIGRhcGF0IGRpd2F3YW5jYXJhaS4NCg0KLSBEaSBLb3RhIEMsIDE4MCByZXNwb25kZW4uDQoNCioqSW5zdHJ1a3NpOioqDQoNCiMjIEplbGFza2FuIGR1YSBqZW5pcyBrZXNhbGFoYW4gc2FtcGxpbmcgeWFuZyB0ZXJqYWRpIGJlcmRhc2Fya2FuIHNpdHVhc2kgaW5pLg0KDQpKYXdhYjoNCg0KKioxLiBLZXNhbGFoYW4gUHJvcG9yc2kgU2FtcGVsIChEaXNwcm9wb3J0aW9uYXRlIFNhbXBsaW5nIEVycm9yKSoqDQoNClJlbmNhbmEgYXdhbCBhZGFsYWggbWVuZ3VtcHVsa2FuIHNhbXBlbCBwcm9wb3JzaW9uYWwgc2ViZXNhciAyMDAgcmVzcG9uZGVuIHBlciBrb3RhLiBOYW11biwgcmVhbGlzYXNpIGRpIGxhcGFuZ2FuIHRpZGFrIHNlc3VhaToNCg0KS290YSBBOiAyNTAgKGtlbGViaWhhbiA1MCkNCg0KS290YSBCOiAxMjAgKGtla3VyYW5nYW4gODApDQoNCktvdGEgQzogMTgwIChrZWt1cmFuZ2FuIDIwKQ0KDQpEYW1wYWs6IEluaSBtZW55ZWJhYmthbiBkaXN0cmlidXNpIHNhbXBlbCB0aWRhayBwcm9wb3JzaW9uYWwgdGVyaGFkYXAgcmVuY2FuYSBzZW11bGEsIHlhbmcgZGFwYXQgbWVueWViYWJrYW4gaGFzaWwgc3VydmVpIHRlcmxhbHUgbWVyZWZsZWtzaWthbiBwZW5kYXBhdCBkYXJpIGtvdGEgZGVuZ2FuIHJlc3BvbmRlbiBsZWJpaCBiYW55YWsgKEtvdGEgQSksIGRhbiBrdXJhbmcgbWV3YWtpbGkga290YSB5YW5nIGtla3VyYW5nYW4gKEtvdGEgQiBkYW4gQykuDQoNCioqMi4gS2VzYWxhaGFuIE5vbnJlc3BvbnNlIGF0YXUgQ292ZXJhZ2UgQmlhcyoqDQoNClRlcnV0YW1hIHBhZGEgS290YSBCIHlhbmcgaGFueWEgbWVuZGFwYXQgMTIwIHJlc3BvbmRlbiBkYXJpIHRhcmdldCAyMDAuIEluaSBiaXNhIHRlcmphZGkga2FyZW5hOg0KDQotIEtlc3VsaXRhbiBha3NlcyBrZSByZXNwb25kZW4NCg0KLSBUaW5na2F0IHBhcnRpc2lwYXNpIHJlbmRhaA0KDQotIFdha3R1IHN1cnZlaSB0aWRhayBjb2Nvaw0KDQpEYW1wYWs6IEJpbGEga2FyYWt0ZXJpc3RpayBvcmFuZyB5YW5nIHRpZGFrIG1lbmphd2FiIGJlcmJlZGEgZGVuZ2FuIHlhbmcgbWVuamF3YWIsIG1ha2EgYmlzYSB0ZXJqYWRpIGJpYXMuIE1pc2FsbnlhLCBqaWthIHBlbmdndW5hIGFrdGlmIGFwbGlrYXNpIHRyYW5zcG9ydGFzaSBvbmxpbmUgbGViaWggc3VsaXQgZGlqYW5na2F1LCBtYWthIGhhc2lsIGJpc2EgdW5kZXJlc3RpbWF0ZSBwZW5nZ3VuYWFuIGFwbGlrYXNpLg0KDQoNCiMjIEppa2EgQW5kYSBoYXJ1cyBtZW55ZXN1YWlrYW4gYm9ib3QgdW50dWsgbWVuZ2VtYmFsaWthbiByZXByZXNlbnRhc2kgcHJvcG9yc2lvbmFsLGJhZ2FpbWFuYSBBbmRhIGFrYW4gbWVuZ2hpdHVuZ255YT8NCg0KSmF3YWI6DQoNCioqTGFuZ2thaCAxOiBIaXR1bmcgUHJvcG9yc2kgSWRlYWwgcGVyIEtvdGEqKg0KDQpLb3RhIEEsIEIsIGRhbiBDOiAyMDAgLyA2MDAgPSAwLjMzMw0KDQoqKkxhbmdrYWggMjogSGl0dW5nIFByb3BvcnNpIEFrdHVhbCBwZXIgS290YSoqDQoNCi0gVG90YWwgcmVzcG9uZGVuIGFrdHVhbCA9IDI1MCArIDEyMCArIDE4MCA9IDU1MA0KDQotIFByb3BvcnNpIGFrdHVhbDoNCiAgDQogIC0gS290YSBBOiAyNTAgLyA1NTAg4omIIDAuNDU1DQogDQogIC0gS290YSBCOiAxMjAgLyA1NTAg4omIIDAuMjE4DQogDQogIC0gS290YSBDOiAxODAgLyA1NTAg4omIIDAuMzI3DQoNCioqTGFuZ2thaCAzOiBIaXR1bmcgQm9ib3QgUGVueWVzdWFpYW4gcGVyIFJlc3BvbmRlbioqDQoNClxbDQpcdGV4dHtCb2JvdCBLb3RhfSA9IFxmcmFje1x0ZXh0e1Byb3BvcnNpIElkZWFsfX17XHRleHR7UHJvcG9yc2kgQWt0dWFsfX0NClxdDQoNCi0gS290YSBBOiAwLjMzMyAvIDAuNDU1IOKJiCAwLjczMg0KDQotIEtvdGEgQjogMC4zMzMgLyAwLjIxOCDiiYggMS41MjcNCg0KLSBLb3RhIEM6IDAuMzMzIC8gMC4zMjcg4omIIDEuMDE4DQoNCioqSW50ZXJwcmV0YXNpOioqDQoNCi0gUmVzcG9uZGVuIGRhcmkgS290YSBBIGRpYmVyaSBib2JvdCBsZWJpaCBrZWNpbCBrYXJlbmEganVtbGFobnlhIHRlcmxhbHUgYmFueWFrLg0KDQotIFJlc3BvbmRlbiBkYXJpIEtvdGEgQiBkaWJlcmkgYm9ib3QgbGViaWggYmVzYXIga2FyZW5hIGp1bWxhaG55YSB0ZXJsYWx1IHNlZGlraXQuDQoNCi0gS290YSBDIG1lbmRla2F0aSB0YXJnZXQsIGphZGkgYm9ib3RueWEgaGFtcGlyIDEuDQoNCg0KIyBNZW5kZXNhaW4gU3VydmVpIGRlbmdhbiBQZW1ib2JvdGFuIFdha3R1IFB1bmNhaw0KDQpCdWF0bGFoIGRlc2FpbiByYW5jYW5nYW4gc3VydmVpIHRlbnRhbmcgcGVyc2Vwc2kga2VueWFtYW5hbiBwZW5nZ3VuYSBvamVrIG9ubGluZSBzYWF0IGphbSBzaWJ1ayAoMDcuMDDigJMwOS4wMCBkYW4gMTcuMDDigJMxOS4wMCkuDQoNCioqSW5zdHJ1a3NpOioqDQoNCiMjIERlc2FpbiBwZW5kZWthdGFuIHNhbXBsaW5nIHlhbmcgbWVtdW5na2lua2FuIEFuZGEgbWVuYW5na2FwIHBlcnNlcHNpIHBlbmdndW5hIHNlY2FyYSByZXByZXNlbnRhdGlmIHBhZGEgamFtIHNpYnVrLCB0YW5wYSBtZWxha3VrYW4gc3VydmVpIHNlcGFuamFuZyBoYXJpLg0KDQpKYXdhYjogDQoNCkRlbmdhbiBtZW5nZ3VuYWthbiBwZW5kZWthdGFuIHNhbXBsaW5nIHRlcnN0cmF0aWZpa2FzaSBiZXJkYXNhcmthbiB3YWt0dSBwdW5jYWsuIFlhaXR1IGRlbmdhbiBtZW1iYWdpIHdha3R1IHB1bmNhayBtZW5qYWRpIGR1YSBzdHJhdGE6DQoNCi0gUGFnaTogMDcuMDAtMDkuMDANCg0KLSBTb3JlOiAxNy4wMC0xOS4wMA0KDQpEZW5nYW4gY2FyYSB0ZXJzZWJ1dCBraXRhIHRpZGFrIHBlcmx1IG1lbGFrdWthbiBzdXJ2ZWkgc2VwYW5qYW5nIGhhcmkuIEhhbCBpbmkgZGlsYWt1a2FuIHVudHVrIG1lbmphZ2EgcmVwcmVzZW50YXNpOg0KDQotIEtpdGEgcGVybGFrdWthbiB3YWt0dSBzZWJhZ2FpIGxhcGlzYW4gc3RhdGEsIGFnYXIgYmlzYSBtZW55ZXN1YWlrYW4gYm9ib3RueWEuDQoNCi0gS3VvdGEgYmlzYSBkaWJhZ2kgcmF0YSBhdGF1IG1lbmdpa3V0aSBkYXRhIGhpc3RvcmlzLg0KDQojIyBTZXJ0YWthbiByYW5jYW5nYW4gd2FrdHUsIG1ldG9kZSBwZW1pbGloYW4gcmVzcG9uZGVuLCBkYW4ganVzdGlmaWthc2kgcGVtaWxpaGFuIHVuaXQgc2FtcGxpbmcuDQoNCkphd2FiOiANCg0KKioxLiBXYWt0dSBQZWxha3NhbmFhbiBTdXJ2ZWkqKg0KDQogIC0gRGlsYWt1a2FuIGhhbnlhIHBhZGEgamFtIHNpYnVrDQogICAgDQogICAgLSBQYWdpOiAwNy4wMC0wOS4wMA0KDQogICAgLSBTb3JlOiAxNy4wMC0xOS4wMA0KICAgIA0KICAtIERhbGFtIDUgaGFyaSBrZXJqYSAoU2VuaW4tSnVtYXQpDQogIA0KKioyLiBNZXRvZGUgUGVtaWxpaGFuIFJlc3BvbmRlbioqDQoNCiAgLSBMb2thc2k6IFRpdGlrIHJhbWFpLyBuYWlrIHR1cnVubnlhIHBlbnVtcGFuZyBvamVrIG9ubGluZSAoc3Rhc2l1biwga2FtcHVzLCBrYW50b3IsIHB1c2F0IHBlcmJlbGFuamFhbiwgZGxsKQ0KICANCiAgLSBNZXRvZGUgU2FtcGxpbmc6IEludGVyY2VwdCBzYW1wbGluZyBkaSBsb2thc2kgc3RyYXRlZ2lzOg0KDQogICAgICBQZXdhd2FuY2FyYSBsYW5nc3VuZyBtZW55YXBhIHBlbnVtcGFuZyB5YW5nIGJhcnUgdHVydW4gZGFyaSBvamVrIG9ubGluZQ0KDQogIC0gS3JpdGVyaWEgUmVzcG9uZGVuOg0KDQogICAgLSBVc2lhIDE3Kw0KDQogICAgLSBCYXJ1IHNhamEgbWVuZ2d1bmFrYW4gb2playBvbmxpbmUNCg0KICAgIC0gQmVyc2VkaWEgZGl3YXdhbmNhcmFpIHNpbmdrYXQgKDPigJM1IG1lbml0KQ0KICAgIA0KKiozLiBKdXN0aWZpa2FzaSBQZW1pbGloYW4gVW5pdCBTYW1wbGluZyoqDQoNCiAgLSBVbml0IHNhbXBsaW5nIHV0YW1hOiBwZW5nZ3VuYSBvamVrIG9ubGluZSBha3RpZiBzYWF0IGphbSBzaWJ1ay4NCg0KICAtIERlbmdhbiBpbnRlcmNlcHQgZGkgbG9rYXNpIHBhZGF0IHBlbnVtcGFuZywga2l0YSBiaXNhIG1lbmdha3NlcyBwZW5nZ3VuYSBzZWJlbmFybnlhIHNhYXQgbWVyZWthIGJlbmFyLWJlbmFyIG1lbmdndW5ha2FuIGxheWFuYW4sIGJ1a2FuIGhhbnlhIG1lbmdhbmRhbGthbiBpbmdhdGFuLiANCg0KICAtIEZva3VzIGhhbnlhIHBhZGEgamFtIHNpYnVrIG1lbmdoZW1hdCBiaWF5YSBkYW4gdGVuYWdhIHN1cnZlaSwgc2FtYmlsIHRldGFwIG1lbXBlcnRhaGFua2FuIGZva3VzIHN0dWRpLg0KDQoNCiMjIEplbGFza2FuIGJhZ2FpbWFuYSBBbmRhIGFrYW4gbWVueWVzdWFpa2FuIGhhc2lsIHN1cnZlaSBqaWthIDYwJSByZXNwb25kZW4gYmVyYXNhbCBkYXJpIHBhZ2kgaGFyaSwgc2VtZW50YXJhIDQwJSBkYXJpIHNvcmUgaGFyaSwgc2VkYW5na2FuIGRhdGEgaGlzdG9yaXMgbWVudW5qdWtrYW4gcGVuZ2d1bmEgb2playBvbmxpbmUgc2FhdCBzb3JlIGhhcmkgZHVhIGthbGkgbGViaWggYmFueWFrIGRpYmFuZGluZyBwYWdpLg0KDQpKYXdhYjogDQoNCioqTWFzYWxhaDoqKg0KDQotIERpc3RyaWJ1c2kgUmVzcG9uZGVuIEFrdHVhbDogIA0KDQogIC0gNjAlIHJlc3BvbmRlbiBwYWdpDQoNCiAgLSA0MCUgcmVzcG9uZGVuIHNvcmUNCg0KLSBOYW11biwgZGF0YSBoaXN0b3JpcyBtZW51bmp1a2thbiBiYWh3YSBwZW5nZ3VuYSBvamVrIG9ubGluZSBzb3JlIGhhcmkgZHVhIGthbGkgbGViaWggYmFueWFrIGRpYmFuZGluZ2thbiBwYWdpIGhhcmkuIEFydGlueWEsIHBlbmdndW5hIHNvcmUgbGViaWggZG9taW5hbiwgdGV0YXBpIGRpIHN1cnZlaSBraXRhLCByZXNwb25kZW4gc29yZSBrdXJhbmcgdGVyd2FraWxpLg0KDQoqKkxhbmdrYWgtTGFuZ2thaCBQZW55ZXN1YWlhbiBCb2JvdCBXYWt0dSoqDQoNCioqMS4gVGVudHVrYW4gUHJvcG9yc2kgSWRlYWw6KioNCg0KQmVyZGFzYXJrYW4gZGF0YSBoaXN0b3Jpcywga2l0YSB0YWh1IGJhaHdhOg0KDQotIFBlbmdndW5hIFBhZ2kgPSAxIGJhZ2lhbg0KDQotIFBlbmdndW5hIFNvcmUgPSAyIGJhZ2lhbiAgDQoNClRvdGFsID0gMyBiYWdpYW4gDQoNClByb3BvcnNpIGlkZWFsbnlhOg0KDQotIFBhZ2k6IDEgLyAzID0gMzMuMzMlDQotIFNvcmU6IDIgLyAzID0gNjYuNjclDQoNCkRlbmdhbiBrYXRhIGxhaW4sIGlkZWFsbnlhLCBraXRhIGluZ2luIDMzLjMzJSByZXNwb25kZW4gYmVyYXNhbCBkYXJpIHBhZ2ksIGRhbiA2Ni42NyUgZGFyaSBzb3JlLg0KDQoqKjIuIEhpdHVuZyBQcm9wb3JzaSBBa3R1YWwgUmVzcG9uZGVuOioqDQoNCi0gUHJvcG9yc2kgYWt0dWFsIHlhbmcgdGVyY2F0YXQgZGkgc3VydmVpOg0KDQogIC0gUGFnaTogNjAlIHJlc3BvbmRlbg0KICAtIFNvcmU6IDQwJSByZXNwb25kZW4NCg0KKiozLiBIaXR1bmcgQm9ib3QgUGVueWVzdWFpYW46KioNCg0KVW50dWsgbWVueWVzdWFpa2FuIHBlcmJlZGFhbiBpbmksIGtpdGEgbWVuZ2d1bmFrYW4gYm9ib3QgeWFuZyBkaWhpdHVuZyBzZWJhZ2FpIHBlcmJhbmRpbmdhbiBhbnRhcmEgcHJvcG9yc2kgaWRlYWwgZGFuIGFrdHVhbC4NCg0KXFsNClx0ZXh0e0JvYm90fSA9IFxmcmFje1x0ZXh0e1Byb3BvcnNpIElkZWFsfX17XHRleHR7UHJvcG9yc2kgQWt0dWFsfX0NClxdDQoNCioqUGVyaGl0dW5nYW4gYm9ib3Q6KioNCg0KLSBQYWdpOiAgDQogIFxbDQogIFx0ZXh0e0JvYm90IFBhZ2l9ID0gXGZyYWN7MC4zMzN9ezAuNjB9ID0gMC41NTUNCiAgXF0NCiAgDQogIEFydGlueWEsIHNldGlhcCByZXNwb25kZW4gcGFnaSBha2FuIGRpaGl0dW5nIGxlYmloIGtlY2lsIGRhbGFtIGFuYWxpc2lzLiBIYWwgaW5pIGthcmVuYSBqdW1sYWggcmVzcG9uZGVuIHBhZ2kgbGViaWggYmFueWFrIGRhcmkgeWFuZyBzZWhhcnVzbnlhLiBKYWRpLCBraXRhICJtZW5ndXJhbmdpIiBrb250cmlidXNpbnlhIHVudHVrIG1lbmNvY29ra2FuIHByb3BvcnNpIHlhbmcgbGViaWggaWRlYWwuDQoNCi0gU29yZTogIA0KICBcWw0KICBcdGV4dHtCb2JvdCBTb3JlfSA9IFxmcmFjezAuNjY3fXswLjQwfSA9IDEuNjY3DQogIFxdDQogIA0KICBTZWJhbGlrbnlhLCBzZXRpYXAgcmVzcG9uZGVuIHNvcmUgYWthbiBkaWhpdHVuZyBsZWJpaCBiZXNhci4gUmVzcG9uZGVuIHNvcmUgbGViaWggc2VkaWtpdCBkYXJpIHlhbmcgc2VoYXJ1c255YSwgamFkaSBraXRhICJtZW5pbmdrYXRrYW4iIGtvbnRyaWJ1c2lueWEgZGFsYW0gYW5hbGlzaXMgdW50dWsgbWVuZ2ltYmFuZ2lueWEuDQoNCioqSW50ZXJwcmV0YXNpOioqDQoNCi0gUmVzcG9uZGVuIFBhZ2kgeWFuZyBiZXJqdW1sYWggbGViaWggYmFueWFrLCBha2FuIGRpa3VyYW5naSBib2JvdG55YSAoZGlidWF0IGxlYmloIGtlY2lsKSwga2FyZW5hIHNlaGFydXNueWEgbWVyZWthIHRpZGFrIHNlYmVzYXIgaXR1IGRpYmFuZGluZ2thbiBzb3JlLg0KDQotIFJlc3BvbmRlbiBTb3JlIHlhbmcgYmVyanVtbGFoIGxlYmloIHNlZGlraXQsIGFrYW4gZGliZXJpa2FuIGJvYm90IGxlYmloIHRpbmdnaSwgYWdhciBrb250cmlidXNpbnlhIHRlcmhhZGFwIHRvdGFsIGhhc2lsIGxlYmloIHJlcHJlc2VudGF0aWYgdGVyaGFkYXAga2VueWF0YWFuIGJhaHdhIGxlYmloIGJhbnlhayBvcmFuZyBtZW5nZ3VuYWthbiBvamVrIG9ubGluZSBwYWRhIHNvcmUgaGFyaS4NCg0KDQojIEFuZGEgZGl0dWdhc2thbiBvbGVoIGJpcm8gYWthZGVtaWsga2FtcHVzIHVudHVrIG1lcmFuY2FuZyBpbnN0cnVtZW4gc3VydmVpIHlhbmcgYmVydHVqdWFuIG1lbmdldmFsdWFzaSBrZXB1YXNhbiBtYWhhc2lzd2EgdGVyaGFkYXAgbGF5YW5hbiBha2FkZW1paywgeWFuZyBtZW5jYWt1cCBsYXlhbmFuIHNlcGVydGk6IEtSUyBvbmxpbmUsIGJpbWJpbmdhbiBha2FkZW1paywgcGVsYXlhbmFuIGFkbWluaXN0cmFzaSwgYWtzZXMgaW5mb3JtYXNpIGFrYWRlbWlrLCBkYW4gYmFudHVhbiBwZW55ZWxlc2FpYW4gc3R1ZGkuDQoNClRpbSBwZW5lbGl0aSBtZW1pbnRhIEFuZGEgdW50dWs6DQoNCi0gTWVyYW5jYW5nIDI1IHBlcnRhbnlhYW4gdXRhbWEgZGVuZ2FuIHZhcmlhc2kgc2thbGEgZGFuIGJlbnR1ayBwZXJ0YW55YWFuLg0KDQotIE1lcmFuY2FuZyBzaXN0ZW0gdmFsaWRhc2kgaW5zdHJ1bWVuLg0KDQotIE1lbmVudHVrYW4gbWV0b2RlIGRpc3RyaWJ1c2kgZGFuIHBlbmd1amlhbiBrdWVzaW9uZXIgc2VjYXJhIHN0YXRpc3Rpay4NCg0KLSBNZW55aWFwa2FuIHNpbXVsYXNpIHN0cmF0ZWdpIHBlbmdhbWJpbGFuIHNhbXBlbCBkYW4gcGVuZ29sYWhhbiBkYXRhIGF3YWwuDQoNCkphd2FiOg0KDQotLS0NCioqTEFQT1JBTiBSQU5DQU5HQU4gU1VSVkVJIEtFUFVBU0FOIE1BSEFTSVNXQSBURVJIQURBUCBMQVlBTkFOIEFLQURFTUlLKioNCg0KDQoqKkkuIERlc2FpbiBQZXJ0YW55YWFuIFN1cnZlaSoqDQoNClN1cnZlaSBpbmkgYmVydHVqdWFuIHVudHVrIG1lbmdldmFsdWFzaSBrZXB1YXNhbiBtYWhhc2lzd2EgdGVyaGFkYXAgbGF5YW5hbiBha2FkZW1payBkaSBrYW1wdXMuIFRlcmRpcmkgZGFyaSAyNSBwZXJ0YW55YWFuIHlhbmcgbWVuY2FrdXAgbGltYSBsYXlhbmFuIHV0YW1hOg0KDQoxLiBLUlMgT25saW5lDQoyLiBCaW1iaW5nYW4gQWthZGVtaWsNCjMuIFBlbGF5YW5hbiBBZG1pbmlzdHJhc2kgIA0KNC4gQWtzZXMgSW5mb3JtYXNpIEFrYWRlbWlrICANCjUuIEJhbnR1YW4gUGVueWVsZXNhaWFuIFN0dWRpDQoNCioqR2Zvcm0gRGVzYWluIFBlcnRhbnlhYW46KioNCg0KaHR0cHM6Ly9mb3Jtcy5nbGUvSzNwMWZXclhRcEFreEFzZDYNCg0KDQoqKklJLiBTa2VtYSBWYWxpZGFzaSBJbnN0cnVtZW4qKg0KDQpVbnR1ayBtZW1hc3Rpa2FuIGt1YWxpdGFzIGRhbiBrZWFuZGFsYW4gaW5zdHJ1bWVuIHN1cnZlaSwga2l0YSBha2FuIG1lbmdndW5ha2FuIGR1YSBqZW5pcyB2YWxpZGFzaToNCg0KMS4gKipWYWxpZGl0YXMgSXNpIChDb250ZW50IFZhbGlkaXR5KSoqDQoNCiAgICBWYWxpZGl0YXMgaXNpIGt1ZXNpb25lciBpbmkgZGlqYW1pbiBkZW5nYW4gbWVtYXN0aWthbiBiYWh3YSBzZXRpYXAgcGVydGFueWFhbiByZWxldmFuIGRhbiBtZW5jYWt1cCBzZW11YSBkaW1lbnNpIGxheWFuYW4gYWthZGVtaWsgeWFuZyBpbmdpbiBkaWV2YWx1YXNpLCB5YWl0dSBLUlMgb25saW5lLCBiaW1iaW5nYW4gYWthZGVtaWssIHBlbGF5YW5hbiBhZG1pbmlzdHJhc2ksIGFrc2VzIGluZm9ybWFzaSBha2FkZW1paywgZGFuIGJhbnR1YW4gcGVueWVsZXNhaWFuIHN0dWRpLiBVbnR1ayBtZW1hc3Rpa2FuIGhhbCBpbmksIHNldGlhcCBwZXJ0YW55YWFuIGRpa2FpdGthbiBkZW5nYW4gYXNwZWsgbGF5YW5hbiB5YW5nIHJlbGV2YW4sIHlhbmcgZGlzdXN1biBiZXJkYXNhcmthbiBwZWRvbWFuIHlhbmcgYWRhIGRhbGFtIGxpdGVyYXR1ciB0ZXJrYWl0IGV2YWx1YXNpIGxheWFuYW4gYWthZGVtaWsgc2VydGEgdGVvcmktdGVvcmkgdmFsaWRpdGFzIGt1ZXNpb25lci4NCg0KMi4gKipWYWxpZGl0YXMgS29uc3RyYWsgKENvbnN0cnVjdCBWYWxpZGl0eSkqKg0KDQogICAgVmFsaWRpdGFzIGtvbnN0cmFrIGFrYW4gZGl1amkgZGVuZ2FuIG1lbmdhbmFsaXNpcyBzZWphdWggbWFuYSBwZXJ0YW55YWFuIGRhbGFtIGt1ZXNpb25lciBiZW5hci1iZW5hciBtZW5ndWt1ciBrZXB1YXNhbiB0ZXJoYWRhcCBsYXlhbmFuIGFrYWRlbWlrLiBTZXRlbGFoIHBlbmd1bXB1bGFuIGRhdGEsIGFuYWxpc2lzIGZha3RvciBha2FuIGRpbGFrdWthbiB1bnR1ayBtZW1lcmlrc2EgYXBha2FoIHNldGlhcCBkaW1lbnNpIGxheWFuYW4sIHNlcGVydGkgS1JTIG9ubGluZSBkYW4gYmltYmluZ2FuIGFrYWRlbWlrLCBkYXBhdCBkaWlkZW50aWZpa2FzaSBkYW4gZGl1a3VyIHNlY2FyYSB0ZXJwaXNhaCBkYWxhbSBrZWxvbXBvayBwZXJ0YW55YWFuIHlhbmcgc2VzdWFpLg0KDQozLiAqKlJlbGlhYmlsaXRhcyoqDQoNCiAgICBSZWxpYWJpbGl0YXMga3Vlc2lvbmVyIGFrYW4gZGl1amkgZGVuZ2FuIG1lbmdoaXR1bmcgQ3JvbmJhY2gncyBBbHBoYSBzZXRlbGFoIHVqaSBjb2JhIGt1ZXNpb25lciBwYWRhIHNlanVtbGFoIGtlY2lsIHJlc3BvbmRlbi4gTmlsYWkgQ3JvbmJhY2gncyBBbHBoYSB5YW5nIGxlYmloIGJlc2FyIGRhcmkgMC43IGFrYW4gbWVudW5qdWtrYW4gYmFod2Ega3Vlc2lvbmVyIG1lbWlsaWtpIGtvbnNpc3RlbnNpIGludGVybmFsIHlhbmcgYmFpayBkYW4gZGFwYXQgZGlwZXJjYXlhIGRhbGFtIHBlbmd1a3VyYW4uDQoNCjQuICoqUGVueWVzdWFpYW4gQmVyZGFzYXJrYW4gSGFzaWwgVmFsaWRhc2kqKg0KDQogICAgQmVyZGFzYXJrYW4gaGFzaWwgdmFsaWRhc2kgaXNpLCB2YWxpZGl0YXMga29uc3RyYWssIGRhbiByZWxpYWJpbGl0YXMsIGppa2EgZGl0ZW11a2FuIHBlcnRhbnlhYW4geWFuZyB0aWRhayBtZW1lbnVoaSBzdGFuZGFyIHZhbGlkaXRhcyBhdGF1IHJlbGlhYmlsaXRhcyB5YW5nIGRpaW5naW5rYW4sIHBlcnViYWhhbiBhdGF1IHBlbnllc3VhaWFuIGFrYW4gZGlsYWt1a2FuLiBMYW5na2FoLWxhbmdrYWggcGVyYmFpa2FuIHRlcnNlYnV0IGJpc2EgYmVydXBhIHBlbmdoYXB1c2FuLCBwZW5ndWJhaGFuLCBhdGF1IHBlbmFtYmFoYW4gcGVydGFueWFhbiB1bnR1ayBtZW1hc3Rpa2FuIGluc3RydW1lbiBrdWVzaW9uZXIgZGFwYXQgbWVuZ3VrdXIga2VwdWFzYW4gbWFoYXNpc3dhIHRlcmhhZGFwIGxheWFuYW4gYWthZGVtaWsgZGVuZ2FuIHRlcGF0Lg0KDQoqKklJSS4gU3RyYXRlZ2kgRGlzdHJpYnVzaSBkYW4gU2FtcGxpbmcqKg0KDQoxLiAqKlBvcHVsYXNpIGRhbiBTYW1wZWwqKg0KDQogICAgKipQb3B1bGFzaSBQZW5lbGl0aWFuKioNCg0KICAgIFBvcHVsYXNpIHBlbmVsaXRpYW4gaW5pIGFkYWxhaCBzZWx1cnVoIG1haGFzaXN3YSBha3RpZiBkaSBJVFNCIHlhbmcgdGVyZGFmdGFyIGRhbiBtZW5nZ3VuYWthbiBsYXlhbmFuIGFrYWRlbWlrLiBMYXlhbmFuIGFrYWRlbWlrIHlhbmcgZGltYWtzdWQgbWVuY2FrdXAgS1JTIG9ubGluZSwgYmltYmluZ2FuIGFrYWRlbWlrLCBwZWxheWFuYW4gYWRtaW5pc3RyYXNpLCBha3NlcyBpbmZvcm1hc2kgYWthZGVtaWssIGRhbiBiYW50dWFuIHBlbnllbGVzYWlhbiBzdHVkaS4NCg0KICAgICoqU2FtcGVsIFBlbmVsaXRpYW4qKg0KDQogICAgU2FtcGVsIHBlbmVsaXRpYW4gYWthbiB0ZXJkaXJpIGRhcmkgbWFoYXNpc3dhIHlhbmcgbWVuZ2d1bmFrYW4gbGF5YW5hbiBha2FkZW1payBkaSAyIGZha3VsdGFzIHlhbmcgYWRhIGRpIElUU0IuIFNhbXBlbCBha2FuIGRpYW1iaWwgc2VjYXJhIHByb3BvcnNpb25hbCBkYXJpIDIgZmFrdWx0YXMsIGRlbmdhbiBtYXNpbmctbWFzaW5nIGZha3VsdGFzIG1lbnl1bWJhbmdrYW4gMjAwIHJlc3BvbmRlbi4gRGVuZ2FuIGRlbWlraWFuLCB0b3RhbCBzYW1wZWwgeWFuZyBha2FuIGRpYW1iaWwgYWRhbGFoIDYwMCByZXNwb25kZW4sIHlhbmcgdGVyZGlyaSBkYXJpOg0KDQogICAgLSA1MCByZXNwb25kZW4gZGFyaSBGYWt1bHRhcyBUZWtuaWsgZGFuIERlc2Fpbg0KDQogICAgLSA1MCByZXNwb25kZW4gZGFyaSBGYWt1bHRhcyBWb2thc2kNCg0KMi4gKipNZXRvZGUgU2FtcGxpbmcqKg0KDQogICAgKipNZXRvZGUgU2FtcGxpbmcgeWFuZyBEaWd1bmFrYW4qKg0KDQogICAgUGVuZWxpdGlhbiBpbmkgYWthbiBtZW5nZ3VuYWthbiBTdHJhdGlmaWVkIFJhbmRvbSBTYW1wbGluZywgeWFpdHUgdGVrbmlrIHBlbmdhbWJpbGFuIHNhbXBlbCBkaSBtYW5hIHBvcHVsYXNpIGRpYmFnaSBtZW5qYWRpIGJlYmVyYXBhIHN0cmF0YSBhdGF1IGtlbG9tcG9rIGJlcmRhc2Fya2FuIGthcmFrdGVyaXN0aWsgdGVydGVudHUsIGRhbGFtIHBlbmVsaXRpYW4gaW5pIGJlcmRhc2Fya2FuIGZha3VsdGFzLiBTZXRpYXAgc3RyYXRhIChmYWt1bHRhcykgYWthbiBkaXdha2lsaSBkYWxhbSBzYW1wZWwgc2VzdWFpIGRlbmdhbiBqdW1sYWggeWFuZyB0ZWxhaCBkaXRlbnR1a2FuLiBUZWtuaWsgaW5pIGRpcGlsaWggdW50dWsgbWVtYXN0aWthbiBiYWh3YSBzZXRpYXAgZmFrdWx0YXMgdGVyd2FraWxpIGRlbmdhbiBiYWlrLCBzZWhpbmdnYSBoYXNpbCBwZW5lbGl0aWFuIGRhcGF0IG1lbWJlcmlrYW4gZ2FtYmFyYW4geWFuZyBsZWJpaCBha3VyYXQgdGVudGFuZyBrZXB1YXNhbiBtYWhhc2lzd2EgdGVyaGFkYXAgbGF5YW5hbiBha2FkZW1payBkaSBrYW1wdXMuUmVzcG9uZGVuIGFrYW4gZGlwaWxpaCBzZWNhcmEgYWNhayBkYXJpIHNldGlhcCBmYWt1bHRhcyB5YW5nIGFkYS4NCg0KICAgICoqS3JpdGVyaWEgUGVuZ2FtYmlsYW4gU2FtcGVsKioNCg0KICAgIC0gTWFoYXNpc3dhIGFrdGlmIHlhbmcgdGVyZGFmdGFyIGRhbGFtIHNpc3RlbSBha2FkZW1payBrYW1wdXMgZGFuIG1lbmdndW5ha2FuIGxheWFuYW4gYWthZGVtaWsgeWFuZyB0ZXJjYWt1cCBkYWxhbSBzdXJ2ZWkuDQoNCiAgICAtIFNhbXBlbCBha2FuIGRpYW1iaWwgc2VjYXJhIGFjYWsgZGFsYW0gc2V0aWFwIGZha3VsdGFzIHVudHVrIG1lbmNlZ2FoIGJpYXMgZGFsYW0gcGVtaWxpaGFuIHJlc3BvbmRlbi4NCg0KMy4gKipTdHJhdGVnaSBEaXN0cmlidXNpIEt1ZXNpb25lcioqDQoNCiAgICBLdWVzaW9uZXIgYWthbiBkaXNlYmFya2FuIHNlY2FyYSBvbmxpbmUgbWVuZ2d1bmFrYW4gcGxhdGZvcm0gR29vZ2xlIEZvcm0gdW50dWsgbWVtcGVybXVkYWggZGlzdHJpYnVzaSBkYW4gcGVuZ3VtcHVsYW4gZGF0YS4gUGxhdGZvcm0gaW5pIGRpcGlsaWgga2FyZW5hIGFrc2VzaWJpbGl0YXMgeWFuZyBtdWRhaCwgc2VoaW5nZ2EgbWFoYXNpc3dhIGRhcGF0IG1lbmdpc2kga3Vlc2lvbmVyIGthcGFuIHNhamEgZGFuIGRhcmkgbWFuYSBzYWphLg0KDQogICAgTGluayBLdWVzaW9uZXI6IExpbmsga3Vlc2lvbmVyIGFrYW4gZGliYWdpa2FuIG1lbGFsdWkgZW1haWwgcmVzbWkga2FtcHVzIGRhbiBncnVwIFdoYXRzQXBwIHlhbmcgdGVya2FpdCBkZW5nYW4ga2VsYXMgYXRhdSBqdXJ1c2FuIG1hc2luZy1tYXNpbmcuIEVtYWlsIGF0YXUgcGVzYW4geWFuZyBiZXJpc2kgbGluayBzdXJ2ZWkgYWthbiBtZW5jYWt1cCBwZW5qZWxhc2FuIHNpbmdrYXQgbWVuZ2VuYWkgdHVqdWFuIHN1cnZlaSBkYW4gY2FyYSBwZW5naXNpYW4ga3Vlc2lvbmVyLg0KDQogICAgV2FrdHUgUGVuZ2lzaWFuOiBSZXNwb25kZW4gZGliZXJpa2FuIHdha3R1IHNlbGFtYSBkdWEgbWluZ2d1IHVudHVrIG1lbmdpc2kga3Vlc2lvbmVyIHNldGVsYWggbWVuZXJpbWEgdW5kYW5nYW4uDQoNCjQuICoqUGVuZ3VqaWFuIFN0YXRpc3RpayBBd2FsKioNCg0KICAgIFNldGVsYWggcGVuZ3VtcHVsYW4gZGF0YSwgYW5hbGlzaXMgc3RhdGlzdGlrIGF3YWwgYWthbiBkaWxha3VrYW4gdW50dWsgbWVuZ3VqaSBrZWxheWFrYW4gZGFuIHZhbGlkaXRhcyBkYXRhIHlhbmcgZGlrdW1wdWxrYW4uIFBlbmd1amlhbiBzdGF0aXN0aWsgeWFuZyBha2FuIGRpZ3VuYWthbiBtZWxpcHV0aToNCg0KICAgICoqQW5hbGlzaXMgRGVza3JpcHRpZioqOiBVbnR1ayBtZW5nZ2FtYmFya2FuIGthcmFrdGVyaXN0aWsgcmVzcG9uZGVuIChtaXNhbG55YSwgZGVtb2dyYWZpKSBkYW4gdGluZ2thdCBrZXB1YXNhbiB0ZXJoYWRhcCBsYXlhbmFuIGFrYWRlbWlrLg0KDQogICAgKipVamkgUmVsaWFiaWxpdGFzKio6IE1lbmdndW5ha2FuIENyb25iYWNoJ3MgQWxwaGEgdW50dWsgbWVtZXJpa3NhIGtvbnNpc3RlbnNpIGludGVybmFsIGRhcmkga3Vlc2lvbmVyLg0KDQogICAgKipBbmFsaXNpcyBJbmZlcmVuc2lhbCoqOiBVamkgc3RhdGlzdGlrIHNlcGVydGkgdWppIHQgYXRhdSBhbmFsaXNpcyByZWdyZXNpIGFrYW4gZGlndW5ha2FuIHVudHVrIG1lbmd1amkgaGlwb3Rlc2lzIHRlcmthaXQgaHVidW5nYW4gYW50YXJhIGZha3Rvci1mYWt0b3IgeWFuZyBtZW1wZW5nYXJ1aGkga2VwdWFzYW4gbWFoYXNpc3dhLg0KDQo1LiAqKlBlbmphZHdhbGFuIGRhbiBQZW5nZWxvbGFhbiBEYXRhKioNCg0KICAgICoqUGVuamFkd2FsYW4gUGVuZ2lzaWFuIEt1ZXNpb25lcioqOiBTZWxhbWEgZHVhIG1pbmdndSBzZXRlbGFoIGRpc3RyaWJ1c2ksIHJlc3BvbmRlbiBkaW1pbnRhIHVudHVrIG1lbmdpc2kga3Vlc2lvbmVyLiBTZXRlbGFoIHdha3R1IHRlcnNlYnV0LCBkYXRhIGFrYW4gZGl0dXR1cCBkYW4gYW5hbGlzaXMgZGltdWxhaS4NCg0KICAgICoqUGVuZ2Vsb2xhYW4gRGF0YSoqOiBTZW11YSBkYXRhIHlhbmcgdGVya3VtcHVsIGFrYW4gZGlzaW1wYW4gZGVuZ2FuIGFtYW4gZGFsYW0gZm9ybWF0IGVsZWt0cm9uaWsgZGFuIGFrYW4gZGlhbmFsaXNpcyBtZW5nZ3VuYWthbiBwZXJhbmdrYXQgbHVuYWsgc3RhdGlzdGlrIHNlcGVydGkgZXhjZWwuDQoNCioqSVYuIFNpbXVsYXNpIFBlbmdhbWJpbGFuIFNhbXBlbCBkYW4gUGVuZ29sYWhhbiBEYXRhIEF3YWwqKg0KDQpTaW11bGFzaSBpbmkgYmVydHVqdWFuIHVudHVrIG1lbmd1amkgZGFuIG1lbXZpc3VhbGlzYXNpa2FuIHBvdGVuc2kgaGFzaWwgc3VydmVpIG1lbmdndW5ha2FuIGRhdGEgeWFuZyB0ZWxhaCBkaWt1bXB1bGthbiBtZWxhbHVpIGluc3RydW1lbiBrdWVzaW9uZXIgc2thbGEgTGlrZXJ0LiBGb2t1cyBhbmFsaXNpcyBhZGFsYWggbWVuZ2V2YWx1YXNpIGtlcHVhc2FuIG1haGFzaXN3YSB0ZXJoYWRhcCBsaW1hIGFzcGVrIGxheWFuYW4gYWthZGVtaWs6IEtSUyBPbmxpbmUsIEJpbWJpbmdhbiBBa2FkZW1paywgUGVsYXlhbmFuIEFkbWluaXN0cmFzaSwgQWtzZXMgSW5mb3JtYXNpIEFrYWRlbWlrLCBkYW4gQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkuIERhdGEgZGlwZXJvbGVoIGRhcmkga3Vlc2lvbmVyIHlhbmcgdGVsYWggZGlzaW11bGFzaWthbiBkYW4gZGlrdW1wdWxrYW4gZGFsYW0gZm9ybWF0IENTViwgdGVyZGlyaSBhdGFzIDEwMCByZXNwb25kZW4uIFNldGlhcCBwZXJ0YW55YWFuIHBhZGEgbGltYSBkaW1lbnNpIGxheWFuYW4gYWthZGVtaWsgbWVuZ2d1bmFrYW4gc2thbGEgTGlrZXJ0IDHigJM1LCBkaSBtYW5hOg0KDQoxID0gU2FuZ2F0IFRpZGFrIFNldHVqdQ0KDQoyID0gVGlkYWsgU2V0dWp1DQoNCjMgPSBOZXRyYWwNCg0KNCA9IFNldHVqdQ0KDQo1ID0gU2FuZ2F0IFNldHVqdQ0KDQpEZW5nYW4gbWVtYmVyaWthbiBzaW1ib2wgcGVyIGRpbWVuc2ksIHlhaXR1Og0KDQoxLiAqKkxheWFuYW4gS1JTIE9ubGluZSAoQSkqKg0KDQogIC0gU2F5YSBtZXJhc2EgcHJvc2VzIHBlbmdpc2lhbiBLUlMgb25saW5lIG11ZGFoIGRpcGFoYW1pLiAoQTEpDQoNCiAgLSBTaXN0ZW0gS1JTIG9ubGluZSBqYXJhbmcgbWVuZ2FsYW1pIGVycm9yIHNhYXQgZGlndW5ha2FuLiAoQTIpDQoNCjIuICoqQmltYmluZ2FuIEFrYWRlbWlrIChCKSoqCQ0KDQogIC0gRG9zZW4gcGVtYmltYmluZyBtZW1iZXJpa2FuIGFyYWhhbiB5YW5nIGplbGFzIGRhbiBiZXJtYW5mYWF0LiAoQjEpDQoNCiAgLSBTYXlhIG1lcmFzYSBueWFtYW4gZGFsYW0ga29uc3VsdGFzaSBkZW5nYW4gZG9zZW4gcGVtYmltYmluZy4gKEIyKQ0KDQozLiAqKlBlbGF5YW5hbiBBZG1pbmlzdHJhc2kgQWthZGVtaWsgKEMpKioNCg0KICAtIFByb3NlcyBwZWxheWFuYW4gYWthZGVtaWsgKHNlcGVydGkgc3VyYXQgYWt0aWYsIGxlZ2FsaXNpciwgZGxsKSBjZXBhdCBkYW4gZWZpc2llbi4gKEMxKQkNCg0KICAtIFN0YWYgYWthZGVtaWsga2FtcHVzIHJhbWFoIGRhbiBrb211bmlrYXRpZi4gKEMyKQ0KDQo0LiAqKkFrc2VzIEluZm9ybWFzaSBBa2FkZW1payAoRCkqKg0KDQogIC0gSW5mb3JtYXNpIGFrYWRlbWlrIChqYWR3YWwga3VsaWFoLCB1amlhbiwgcGVuZ3VtdW1hbikgc2VsYWx1IGRpcGVyYmFydWkgZGVuZ2FuIHRlcGF0IHdha3R1LiAoRDEpDQoNCiAgLSBTYXlhIG11ZGFoIG1lbmdha3NlcyBpbmZvcm1hc2kgYWthZGVtaWsgbWVsYWx1aSBwb3J0YWwgYXRhdSBtZWRpYSBzb3NpYWwgcmVzbWkga2FtcHVzLiAoRDIpDQoNCjUuICoqQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkgKEUpKioNCg0KICAtIEthbXB1cyBtZW1iZXJpa2FuIGR1a3VuZ2FuIHlhbmcgbWVtYWRhaSBiYWdpIG1haGFzaXN3YSB5YW5nIGtlc3VsaXRhbiBtZW55ZWxlc2Fpa2FuIHN0dWRpLiAoRTEpCQ0KDQogIC0gQmFudHVhbiBhcGEgeWFuZyBBbmRhIGhhcmFwa2FuIGRhcmkga2FtcHVzIHVudHVrIG1lbnllbGVzYWlrYW4gc3R1ZGk/IChFMikNCg0KKipEYXRhIER1bW15KioNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQ0KZGF0YSA8LSByZWFkLmNzdigic2ltdWxhc2kuY3N2Iiwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQ0KaGVhZChkYXRhKQ0KYGBgDQoNCioqTWVhbiAocmF0YS1yYXRhKSoqDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCiMgSmlrYSBoYW55YSBrb2xvbSBudW1lcmlrIHlhbmcgaW5naW4gZGloaXR1bmcNCmxpa2VydF9kYXRhIDwtIGRhdGFbLCBzYXBwbHkoZGF0YSwgaXMubnVtZXJpYyldDQoNCiMgSGl0dW5nIG1lYW4gcGVyIGl0ZW0NCm1lYW5fcGVyX2l0ZW0gPC0gc2FwcGx5KGxpa2VydF9kYXRhLCBtZWFuLCBuYS5ybSA9IFRSVUUpDQoNCiMgVGFtcGlsa2FuIGhhc2lsDQpwcmludCgiTWVhbiAoUmF0YS1yYXRhKSBzZXRpYXAgaXRlbToiKQ0KcHJpbnQobWVhbl9wZXJfaXRlbSkNCg0KIyBIaXR1bmcgTWVhbiBwZXIgRGltZW5zaQ0KZGltZW5zaV9sYWJlbHMgPC0gc3Vic3RyKGNvbG5hbWVzKGxpa2VydF9kYXRhKSwgMSwgMSkNCg0KIyBHdW5ha2FuIHRhcHBseSB1bnR1ayBtZW5naGl0dW5nIHJhdGEtcmF0YSB0aWFwIGRpbWVuc2kNCm1lYW5fcGVyX2RpbWVuc2kgPC0gdGFwcGx5KGNvbE1lYW5zKGxpa2VydF9kYXRhLCBuYS5ybSA9IFRSVUUpLCBkaW1lbnNpX2xhYmVscywgbWVhbikNCg0KcHJpbnQoIk1lYW4gcGVyIERpbWVuc2k6IikNCnByaW50KG1lYW5fcGVyX2RpbWVuc2kpDQpgYGANCg0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBEYXRhIG1lYW4gcGVyIGRpbWVuc2kNCm1lYW5fZGltZW5zaSA8LSBkYXRhLmZyYW1lKA0KICBEaW1lbnNpID0gYygiQSAtIEtSUyBPbmxpbmUiLCANCiAgICAgICAgICAgICAgIkIgLSBCaW1iaW5nYW4gQWthZGVtaWsiLCANCiAgICAgICAgICAgICAgIkMgLSBBZG1pbmlzdHJhc2kgQWthZGVtaWsiLCANCiAgICAgICAgICAgICAgIkQgLSBBa3NlcyBJbmZvcm1hc2kiLCANCiAgICAgICAgICAgICAgIkUgLSBCYW50dWFuIFN0dWRpIiksDQogIE1lYW4gPSBjKDMuMDYwLCAyLjk2NSwgMy4wNDUsIDMuMDcwLCAzLjI0MCkNCikNCg0KIyBXYXJuYSBiZXJiZWRhIHVudHVrIHNldGlhcCBiYXINCndhcm5hX2RpbWVuc2kgPC0gYygiIzFmNzdiNCIsICIjZmY3ZjBlIiwgIiMyY2EwMmMiLCAiI2Q2MjcyOCIsICIjOTQ2N2JkIikNCg0KIyBCYXIgY2hhcnQgaW50ZXJha3RpZg0KZmlnIDwtIHBsb3RfbHkobWVhbl9kaW1lbnNpLCANCiAgICAgICAgICAgICAgIHggPSB+RGltZW5zaSwgDQogICAgICAgICAgICAgICB5ID0gfk1lYW4sIA0KICAgICAgICAgICAgICAgdHlwZSA9ICdiYXInLCANCiAgICAgICAgICAgICAgIG1hcmtlciA9IGxpc3QoY29sb3IgPSB3YXJuYV9kaW1lbnNpKSkgJT4lDQogIGxheW91dCh0aXRsZSA9ICJSYXRhLXJhdGEgS2VwdWFzYW4gTWFoYXNpc3dhIHBlciBEaW1lbnNpIExheWFuYW4gQWthZGVtaWsiLA0KICAgICAgICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIkRpbWVuc2kgTGF5YW5hbiBBa2FkZW1payIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlJhdGEtcmF0YSBTa29yIChTa2FsYSBMaWtlcnQgMeKAkzUpIiksDQogICAgICAgICBtYXJnaW4gPSBsaXN0KGIgPSA4MCkpDQoNCmZpZw0KYGBgDQoNCioqSW50ZXJwcmV0YXNpKioNCg0KQmVyZGFzYXJrYW4gaGFzaWwgYW5hbGlzaXMgZGVza3JpcHRpZiB0ZXJoYWRhcCBkYXRhIHNrYWxhIExpa2VydCBkYXJpIDEwMCByZXNwb25kZW4sIGRpcGVyb2xlaCBiYWh3YSB0aW5na2F0IGtlcHVhc2FuIG1haGFzaXN3YSB0ZXJoYWRhcCBsaW1hIGRpbWVuc2kgbGF5YW5hbiBha2FkZW1payBrYW1wdXMgYmVyYWRhIHBhZGEga2F0ZWdvcmkgY3VrdXAgcHVhcywgZGVuZ2FuIG5pbGFpIG1lYW4gYmVya2lzYXIgYW50YXJhIDIsOTYgaGluZ2dhIDMsMjQuIERpbWVuc2kgQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkgKEUpIG1lbXBlcm9sZWggcmF0YS1yYXRhIHRlcnRpbmdnaSAoMywyNCksIG1lbnVuanVra2FuIGJhaHdhIG1haGFzaXN3YSBtZXJhc2EgY3VrdXAgZGlkdWt1bmcgZGFsYW0gcHJvc2VzIHBlbnllbGVzYWlhbiBzdHVkaS4gU2VtZW50YXJhIGl0dSwgZGltZW5zaSBkZW5nYW4ga2VwdWFzYW4gdGVyZW5kYWggYWRhbGFoIEJpbWJpbmdhbiBBa2FkZW1payAoQikgZGVuZ2FuIG5pbGFpIG1lYW4gMiw5NiwgbWVuZ2luZGlrYXNpa2FuIHBlcmx1bnlhIHBlbmluZ2thdGFuIHBhZGEgYXNwZWsgcGVuZGFtcGluZ2FuIGFrYWRlbWlrLCB0ZXJ1dGFtYSB0ZXJrYWl0IGFyYWhhbiBkYW4ga2VueWFtYW5hbiBkYWxhbSBrb25zdWx0YXNpLiBTZWNhcmEgdW11bSwgc2ViYWdpYW4gYmVzYXIgaXRlbSBiZXJhZGEgcGFkYSByZW50YW5nIG5ldHJhbCBoaW5nZ2EgY3VrdXAgcHVhcywgeWFuZyBtZW5jZXJtaW5rYW4gYmFod2EgbGF5YW5hbiBha2FkZW1payBzdWRhaCBiZXJqYWxhbiBkZW5nYW4gYmFpayBuYW11biBtYXNpaCBtZW1pbGlraSBydWFuZyBwZXJiYWlrYW4sIGtodXN1c255YSBwYWRhIGFzcGVrIGtlY2VwYXRhbiBpbmZvcm1hc2kgZGFuIGt1YWxpdGFzIGludGVyYWtzaSBkb3NlbiBkZW5nYW4gbWFoYXNpc3dhLg0KDQoqKk1lZGlhbioqDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCiMgTWVuZ2hpdHVuZyBtZWRpYW4gdW50dWsgc2V0aWFwIGl0ZW0NCm1lZGlhbl9wZXJfaXRlbSA8LSBzYXBwbHkoZGF0YSwgZnVuY3Rpb24oeCkgbWVkaWFuKGFzLm51bWVyaWMoeCksIG5hLnJtID0gVFJVRSkpDQpwcmludCgiTWVkaWFuIHNldGlhcCBpdGVtOiIpDQpwcmludChtZWRpYW5fcGVyX2l0ZW0pDQoNCiMgTWVuZ2hpdHVuZyBtZWRpYW4gcGVyIGRpbWVuc2kNCiMgUGFzdGlrYW4gZGF0YSBoYW55YSBiZXJ1cGEgbmlsYWkgbnVtZXJpaw0KZGltZW5zaV9BIDwtIGRhdGFbLCBjKCJBMSIsICJBMiIpXSAgIyBNaXNhbG55YSwgQTEgZGFuIEEyIHVudHVrIGRpbWVuc2kgQQ0KZGltZW5zaV9CIDwtIGRhdGFbLCBjKCJCMSIsICJCMiIpXSAgIyBNaXNhbG55YSwgQjEgZGFuIEIyIHVudHVrIGRpbWVuc2kgQg0KZGltZW5zaV9DIDwtIGRhdGFbLCBjKCJDMSIsICJDMiIpXSAgIyBNaXNhbG55YSwgQzEgZGFuIEMyIHVudHVrIGRpbWVuc2kgQw0KZGltZW5zaV9EIDwtIGRhdGFbLCBjKCJEMSIsICJEMiIpXSAgIyBNaXNhbG55YSwgRDEgZGFuIEQyIHVudHVrIGRpbWVuc2kgRA0KZGltZW5zaV9FIDwtIGRhdGFbLCBjKCJFMSIsICJFMiIpXSAgIyBNaXNhbG55YSwgRTEgZGFuIEUyIHVudHVrIGRpbWVuc2kgRQ0KDQojIE1lbmdoaXR1bmcgbWVkaWFuIHBlciBkaW1lbnNpIGRlbmdhbiBtZW1hc3Rpa2FuIGRhdGEgbnVtZXJpaw0KbWVkaWFuX3Blcl9kaW1lbnNpIDwtIGMoDQogIEEgPSBtZWRpYW4oYXMubnVtZXJpYyh1bmxpc3QoZGltZW5zaV9BKSksIG5hLnJtID0gVFJVRSksDQogIEIgPSBtZWRpYW4oYXMubnVtZXJpYyh1bmxpc3QoZGltZW5zaV9CKSksIG5hLnJtID0gVFJVRSksDQogIEMgPSBtZWRpYW4oYXMubnVtZXJpYyh1bmxpc3QoZGltZW5zaV9DKSksIG5hLnJtID0gVFJVRSksDQogIEQgPSBtZWRpYW4oYXMubnVtZXJpYyh1bmxpc3QoZGltZW5zaV9EKSksIG5hLnJtID0gVFJVRSksDQogIEUgPSBtZWRpYW4oYXMubnVtZXJpYyh1bmxpc3QoZGltZW5zaV9FKSksIG5hLnJtID0gVFJVRSkNCikNCg0KcHJpbnQoIk1lZGlhbiBwZXIgRGltZW5zaToiKQ0KcHJpbnQobWVkaWFuX3Blcl9kaW1lbnNpKQ0KYGBgDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQ0KbGlicmFyeShwbG90bHkpDQoNCiMgRGF0YSBtZWRpYW4gc2V0aWFwIGl0ZW0NCm1lZGlhbl9pdGVtIDwtIGRhdGEuZnJhbWUoDQogIEl0ZW0gPSBjKCJBMSIsICJBMiIsICJCMSIsICJCMiIsICJDMSIsICJDMiIsICJEMSIsICJEMiIsICJFMSIsICJFMiIpLA0KICBNZWRpYW4gPSBjKDMuMCwgMy4wLCAzLjAsIDMuMCwgMy4wLCAzLjAsIDMuMCwgMy4wLCAzLjUsIDMuMCkNCikNCg0KIyBXYXJuYSBiZXJiZWRhLWJlZGEgdW50dWsgc2V0aWFwIGl0ZW0NCml0ZW1fY29sb3JzIDwtIGMoImJyb3duIiwgInJlZCIsICJibHVlIiwgImN5YW4iLCAiZGFya2dyZWVuIiwgImdyZWVuIiwNCiAgICAgICAgICAgICAgICAgIm9yYW5nZSIsICJnb2xkIiwicHVycGxlIiwgInBpbmsiKQ0KDQojIFZpc3VhbGlzYXNpIGludGVyYWt0aWYgbWVkaWFuIHNldGlhcCBpdGVtDQpmaWcgPC0gcGxvdF9seSgNCiAgbWVkaWFuX2l0ZW0sDQogIHggPSB+SXRlbSwNCiAgeSA9IH5NZWRpYW4sDQogIHR5cGUgPSAnYmFyJywNCiAgbWFya2VyID0gbGlzdChjb2xvciA9IGl0ZW1fY29sb3JzKQ0KKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gIk1lZGlhbiBTa29yIFNldGlhcCBJdGVtIExheWFuYW4gQWthZGVtaWsiLA0KICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJJdGVtIiksDQogICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIk1lZGlhbiAoU2thbGEgTGlrZXJ0IDHigJM1KSIpLA0KICAgIG1hcmdpbiA9IGxpc3QoYiA9IDgwKQ0KICApDQoNCmZpZw0KYGBgDQoNCioqSW50ZXJwcmV0YXNpKioNCg0KQmVyZGFzYXJrYW4gaGFzaWwgcGVyaGl0dW5nYW4gbWVkaWFuLCBzZWJhZ2lhbiBiZXNhciByZXNwb25kZW4gbWVudW5qdWtrYW4gbmlsYWkgbWVkaWFuIHlhbmcga29uc2lzdGVuIGRpIGFuZ2thIDMgKE5ldHJhbCkgdW50dWsgaGFtcGlyIHNlbXVhIGl0ZW0gZGFuIGRpbWVuc2kgbGF5YW5hbiBha2FkZW1payB5YW5nIGRpdWppLCB5YW5nIG1lbmNha3VwIEtSUyBvbmxpbmUsIGJpbWJpbmdhbiBha2FkZW1paywgcGVsYXlhbmFuIGFkbWluaXN0cmFzaSwgYWtzZXMgaW5mb3JtYXNpIGFrYWRlbWlrLCBkYW4gYmFudHVhbiBwZW55ZWxlc2FpYW4gc3R1ZGkuIEluaSBtZW5naW5kaWthc2lrYW4gYmFod2EgbWFoYXNpc3dhIGNlbmRlcnVuZyBiZXJhZGEgcGFkYSBwb3Npc2kgbmV0cmFsIGRhbGFtIG1lbmlsYWkgYmVyYmFnYWkgYXNwZWsgbGF5YW5hbiBha2FkZW1paywgZGVuZ2FuIHRpZGFrIGFkYSBrZWNlbmRlcnVuZ2FuIGt1YXQgdW50dWsgc2V0dWp1IGF0YXUgdGlkYWsgc2V0dWp1LiBOYW11biwgcGFkYSBkaW1lbnNpIGJhbnR1YW4gcGVueWVsZXNhaWFuIHN0dWRpIChFMSksIG5pbGFpIG1lZGlhbiBzZWRpa2l0IGxlYmloIHRpbmdnaSAoMy41KSwgeWFuZyBtZW51bmp1a2thbiBiYWh3YSBzZWJhZ2lhbiByZXNwb25kZW4gc2VkaWtpdCBsZWJpaCBjZW5kZXJ1bmcgc2V0dWp1IGJhaHdhIGR1a3VuZ2FuIHlhbmcgZGliZXJpa2FuIGthbXB1cyBjdWt1cCBtZW1hZGFpLiBTZWNhcmEga2VzZWx1cnVoYW4sIGhhc2lsIGluaSBtZW5naW5kaWthc2lrYW4gYmFod2EgbWVza2lwdW4gbWF5b3JpdGFzIG1haGFzaXN3YSB0aWRhayBtZXJhc2Egc2FuZ2F0IHB1YXMgYXRhdSB0aWRhayBwdWFzIGRlbmdhbiBsYXlhbmFuIGFrYWRlbWlrLCB0ZXJkYXBhdCBwb3RlbnNpIHVudHVrIG1lbmluZ2thdGthbiBrdWFsaXRhcyBsYXlhbmFuIGRpIGJlcmJhZ2FpIGFyZWEgdW50dWsgbWVuY2FwYWkgdGluZ2thdCBrZXB1YXNhbiB5YW5nIGxlYmloIHRpbmdnaS4NCg0KKipNb2R1cyoqDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCmxpYnJhcnkobW9kZWVzdCkNCg0KIyBIaXR1bmcgbW9kdXMgc2V0aWFwIGl0ZW0NCm1vZHVzX3Blcl9pdGVtIDwtIHNhcHBseShkYXRhLCBmdW5jdGlvbih4KSB7DQogIG1mdihhcy5udW1lcmljKHgpLCBuYV9ybSA9IFRSVUUpDQp9KQ0KDQpwcmludCgiTW9kdXMgc2V0aWFwIGl0ZW06IikNCnByaW50KG1vZHVzX3Blcl9pdGVtKQ0KDQojIEtlbG9tcG9ra2FuIGJlcmRhc2Fya2FuIGRpbWVuc2kNCmRpbWVuc2lfQSA8LSBkYXRhWywgYygiQTEiLCAiQTIiKV0NCmRpbWVuc2lfQiA8LSBkYXRhWywgYygiQjEiLCAiQjIiKV0NCmRpbWVuc2lfQyA8LSBkYXRhWywgYygiQzEiLCAiQzIiKV0NCmRpbWVuc2lfRCA8LSBkYXRhWywgYygiRDEiLCAiRDIiKV0NCmRpbWVuc2lfRSA8LSBkYXRhWywgYygiRTEiLCAiRTIiKV0NCg0KIyBIaXR1bmcgbW9kdXMgcGVyIGRpbWVuc2kNCm1vZHVzX3Blcl9kaW1lbnNpIDwtIGMoDQogIEEgPSBtZnYodW5saXN0KGRpbWVuc2lfQSksIG5hX3JtID0gVFJVRSksDQogIEIgPSBtZnYodW5saXN0KGRpbWVuc2lfQiksIG5hX3JtID0gVFJVRSksDQogIEMgPSBtZnYodW5saXN0KGRpbWVuc2lfQyksIG5hX3JtID0gVFJVRSksDQogIEQgPSBtZnYodW5saXN0KGRpbWVuc2lfRCksIG5hX3JtID0gVFJVRSksDQogIEUgPSBtZnYodW5saXN0KGRpbWVuc2lfRSksIG5hX3JtID0gVFJVRSkNCikNCg0KcHJpbnQoIk1vZHVzIHBlciBEaW1lbnNpOiIpDQpwcmludChtb2R1c19wZXJfZGltZW5zaSkNCmBgYA0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0NCmxpYnJhcnkocGxvdGx5KQ0KDQojIEJ1YXQgZGF0YWZyYW1lIG1vZHVzIChhbWJpbCBzYXR1IG5pbGFpIHNhamEgamlrYSBhZGEgbGViaWggZGFyaSBzYXR1IG1vZHVzKQ0KbW9kdXNfZGF0YSA8LSBkYXRhLmZyYW1lKA0KICBJdGVtID0gYygNCiAgICAiQTEgLSBLUlMgT25saW5lIiwNCiAgICAiQTIgLSBLUlMgT25saW5lIiwNCiAgICAiQjEgLSBCaW1iaW5nYW4gQWthZGVtaWsiLA0KICAgICJCMiAtIEJpbWJpbmdhbiBBa2FkZW1payIsDQogICAgIkMxIC0gQWRtaW5pc3RyYXNpIEFrYWRlbWlrIiwNCiAgICAiQzIgLSBBZG1pbmlzdHJhc2kgQWthZGVtaWsiLA0KICAgICJEMSAtIEFrc2VzIEluZm9ybWFzaSIsDQogICAgIkQyIC0gQWtzZXMgSW5mb3JtYXNpIiwNCiAgICAiRTEgLSBCYW50dWFuIFN0dWRpIiwNCiAgICAiRTIgLSBCYW50dWFuIFN0dWRpIg0KICApLA0KICBNb2R1cyA9IGMoMSwgNCwgNCwgMSwgMywgMiwgMiwgNSwgMSwgMikNCikNCg0KIyBXYXJuYSBiZXJiZWRhIHRpYXAgaXRlbQ0KY29sb3JzIDwtIGMoInJlZCIsICJibHVlIiwgImdyZWVuIiwgIm9yYW5nZSIsICJwdXJwbGUiLCANCiAgICAgICAgICAgICJicm93biIsICJwaW5rIiwgImN5YW4iLCAiZ29sZCIsICJkYXJrZ3JlZW4iKQ0KDQojIFBsb3QgaW50ZXJha3RpZg0KZmlnIDwtIHBsb3RfbHkoDQogIG1vZHVzX2RhdGEsDQogIHggPSB+SXRlbSwNCiAgeSA9IH5Nb2R1cywNCiAgdHlwZSA9ICdiYXInLA0KICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gY29sb3JzKQ0KKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gIk1vZHVzIFNrb3IgU2V0aWFwIEl0ZW0gTGF5YW5hbiBBa2FkZW1payIsDQogICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIkl0ZW0iLCB0aWNrYW5nbGUgPSAtNDUpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJNb2R1cyAoU2thbGEgTGlrZXJ0IDHigJM1KSIpLA0KICAgIG1hcmdpbiA9IGxpc3QoYiA9IDEwMCkNCiAgKQ0KDQpmaWcNCmBgYA0KDQoqKkludGVycHJldGFzaSoqDQoNCkJlcmRhc2Fya2FuIGhhc2lsIGFuYWxpc2lzIG1vZHVzIHRlcmhhZGFwIGRhdGEgc3VydmVpLCBkaWtldGFodWkgYmFod2EgdGVyZGFwYXQgdmFyaWFzaSB5YW5nIGN1a3VwIHNpZ25pZmlrYW4gZGFsYW0gcGVyc2Vwc2kgbWFoYXNpc3dhIHRlcmhhZGFwIGJlcmJhZ2FpIGxheWFuYW4gYWthZGVtaWsuIFBhZGEgZGltZW5zaSBMYXlhbmFuIEtSUyBPbmxpbmUgKEEpLCBpdGVtIEExIG1lbnVuanVra2FuIGJlYmVyYXBhIG5pbGFpIG1vZHVzICgxLCAyLCBkYW4gNCksIHlhbmcgbWVuZ2luZGlrYXNpa2FuIHBlcnNlYmFyYW4gb3BpbmkgeWFuZyBsdWFzLCBzZW1lbnRhcmEgQTIgY2VuZGVydW5nIG5ldHJhbCAoMykuIERpbWVuc2kgQmltYmluZ2FuIEFrYWRlbWlrIChCKSBkaWRvbWluYXNpIG9sZWggamF3YWJhbiAyIGRhbiAzLCBtZW51bmp1a2thbiBrZWNlbmRlcnVuZ2FuIG5ldHJhbCBoaW5nZ2EgdGlkYWsgcHVhcy4gUGFkYSBQZWxheWFuYW4gQWRtaW5pc3RyYXNpIEFrYWRlbWlrIChDKSwgaXRlbSBDMSBtZW51bmp1a2thbiBkdWEgbW9kdXMgKDEgZGFuIDQpLCB5YW5nIG1lbmdnYW1iYXJrYW4ga2V0aW1wYW5nYW4ga2VwdWFzYW4sIHNlbWVudGFyYSBDMiBsZWJpaCBwb3NpdGlmICg0KS4gVW50dWsgQWtzZXMgSW5mb3JtYXNpIEFrYWRlbWlrIChEKSwgcmVzcG9uZGVuIHBhZGEgRDEgY2VuZGVydW5nIHNhbmdhdCB0aWRhayBzZXR1anUgKDEpLCBzZWRhbmdrYW4gRDIgc2FuZ2F0IHNldHVqdSAoNSksIG1lbmFuZGFrYW4ga2VzZW5qYW5nYW4gaW5mb3JtYXNpLiBTZW1lbnRhcmEgaXR1LCBCYW50dWFuIFBlbnllbGVzYWlhbiBTdHVkaSAoRSkgc2VjYXJhIHVtdW0gbWVtaWxpa2kgcGVuaWxhaWFuIHBvc2l0aWYsIGRlbmdhbiBtb2R1cyB0ZXJ0aW5nZ2kgcGFkYSBuaWxhaSA1LCBiYWlrIHVudHVrIEUxIG1hdXB1biBFMi4gU2VjYXJhIGtlc2VsdXJ1aGFuLCBtb2R1cyBwZXIgZGltZW5zaSBtZW1wZXJsaWhhdGthbiBiYWh3YSBkaW1lbnNpIEUgKGJhbnR1YW4gc3R1ZGkpIGRhbiBEIChha3NlcyBpbmZvcm1hc2kpIG1lbWlsaWtpIGtlcHVhc2FuIHRlcnRpbmdnaSAobW9kdXMgPSA1KSwgc2VtZW50YXJhIGRpbWVuc2kgQSBkYW4gQiBtZW1pbGlraSBrZWNlbmRlcnVuZ2FuIG5ldHJhbCBoaW5nZ2EgcmVuZGFoIChtb2R1cyA9IDIpLCB5YW5nIG1lbmFuZGFrYW4gcGVybHVueWEgcGVuaW5na2F0YW4gbGF5YW5hbiBwYWRhIGFzcGVrIHRlcnNlYnV0Lg0KDQoqKktlc2ltcHVsYW4gQW5hbGlzaXMgQXdhbCoqDQoNCkJlcmRhc2Fya2FuIGhhc2lsIGFuYWxpc2lzIHRlcmhhZGFwIGRhdGEgc2ltdWxhc2kgc2ViYW55YWsgMTAwIHJlc3BvbmRlbiwgdGluZ2thdCBrZXB1YXNhbiBtYWhhc2lzd2EgdGVyaGFkYXAgbGltYSBkaW1lbnNpIGxheWFuYW4gYWthZGVtaWsga2FtcHVzIHNlY2FyYSB1bXVtIGJlcmFkYSBwYWRhIGthdGVnb3JpIGN1a3VwIGJhaWssIGRpdHVuanVra2FuIG9sZWggbmlsYWkgbWVhbiB5YW5nIGJlcmtpc2FyIGFudGFyYSAyLjk2NSBoaW5nZ2EgMy4yNDAgcGFkYSBza2FsYSBMaWtlcnQgMeKAkzUuIERpbWVuc2kgQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkgKEUpIG1lbnVuanVra2FuIHRpbmdrYXQga2VwdWFzYW4gdGVydGluZ2dpIChtZWFuID0gMy4yNDApLCBzZWRhbmdrYW4gQmltYmluZ2FuIEFrYWRlbWlrIChCKSBtZW5jYXRhdGthbiBza29yIHJhdGEtcmF0YSB0ZXJlbmRhaCAobWVhbiA9IDIuOTY1KSwgeWFuZyBtZW5naW5kaWthc2lrYW4gcGVybHVueWEgcGVuaW5na2F0YW4ga29tdW5pa2FzaSBkYW4gZWZla3Rpdml0YXMgYmltYmluZ2FuIGFrYWRlbWlrLiBBbmFsaXNpcyBtZWRpYW4gbWVtcGVya3VhdCB0ZW11YW4gaW5pLCBkZW5nYW4gbmlsYWkgbWVkaWFuIGtvbnNpc3RlbiBiZXJhZGEgcGFkYSBhbmdrYSAzLCBtZW5hbmRha2FuIGtlY2VuZGVydW5nYW4gamF3YWJhbiByZXNwb25kZW4gcGFkYSBrYXRlZ29yaSBuZXRyYWwuIFNlbWVudGFyYSBpdHUsIGFuYWxpc2lzIG1vZHVzIG1lbnVuanVra2FuIGJhaHdhIGJlYmVyYXBhIGl0ZW0gbWVtaWxpa2kgbmlsYWkgZG9taW5hbiB5YW5nIGJlcnZhcmlhc2ksIGJhaGthbiBsZWJpaCBkYXJpIHNhdHUgbmlsYWkgbW9kdXMsIHlhbmcgbWVuY2VybWlua2FuIGFkYW55YSBrZXJhZ2FtYW4gcGVuZGFwYXQgYXRhdSBwZXJzZXBzaSBhbnRhciByZXNwb25kZW4gdGVyaGFkYXAgbWFzaW5nLW1hc2luZyBsYXlhbmFuLiBTZWNhcmEga2VzZWx1cnVoYW4sIGhhc2lsIGluaSBtZW1iZXJpa2FuIGdhbWJhcmFuIGF3YWwgYmFod2EgbWVza2lwdW4gbGF5YW5hbiBha2FkZW1payBrYW1wdXMgYmVyamFsYW4gY3VrdXAgYmFpaywgbWFzaWggdGVyZGFwYXQgcnVhbmcgdW50dWsgcGVuaW5na2F0YW4ga2h1c3VzbnlhIHBhZGEgYXNwZWsgYmltYmluZ2FuIGFrYWRlbWlrIGRhbiBha3NlcyBzaXN0ZW0gbGF5YW5hbiBkaWdpdGFsIHlhbmcgbGViaWggc3RhYmlsIGRhbiBpbmZvcm1hdGlmLg0KDQoqKlYuIEtFU0lNUFVMQU4qKg0KDQpTdXJ2ZWkga2VwdWFzYW4gbWFoYXNpc3dhIHRlcmhhZGFwIGxheWFuYW4gYWthZGVtaWsgZGkga2FtcHVzIHRlbGFoIGRpcmFuY2FuZyBzZWNhcmEgc2lzdGVtYXRpcyB1bnR1ayBtZW5ndWt1ciBwZXJzZXBzaSBtYWhhc2lzd2EgcGFkYSBsaW1hIGRpbWVuc2kgdXRhbWE6IEtSUyBPbmxpbmUsIEJpbWJpbmdhbiBBa2FkZW1paywgUGVsYXlhbmFuIEFkbWluaXN0cmFzaSwgQWtzZXMgSW5mb3JtYXNpIEFrYWRlbWlrLCBkYW4gQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkuIEluc3RydW1lbiBzdXJ2ZWkgZGlrZW1iYW5na2FuIG1lbmdndW5ha2FuIHNrYWxhIExpa2VydCAx4oCTNSBkYW4gZGl2YWxpZGFzaSBtZWxhbHVpIHBlbmRla2F0YW4gdmFsaWRpdGFzIGlzaSwgdmFsaWRpdGFzIGtvbnN0cmFrLCBzZXJ0YSBkaXVqaSByZWxpYWJpbGl0YXNueWEgbWVuZ2d1bmFrYW4gQ3JvbmJhY2jigJlzIEFscGhhLg0KDQpCZXJkYXNhcmthbiBzaW11bGFzaSBhd2FsIGRlbmdhbiAxMDAgcmVzcG9uZGVuLCBkaXBlcm9sZWggaGFzaWwgc2ViYWdhaSBiZXJpa3V0Og0KDQotIFRpbmdrYXQga2VwdWFzYW4gc2VjYXJhIHVtdW0gYmVyYWRhIHBhZGEga2F0ZWdvcmkgY3VrdXAgYmFpaywgZGVuZ2FuIG5pbGFpIHJhdGEtcmF0YSAobWVhbikgYW50YXIgZGltZW5zaSBiZXJraXNhciBhbnRhcmEgMiw5NjUgaGluZ2dhIDMsMjQwLg0KDQotIERpbWVuc2kgQmFudHVhbiBQZW55ZWxlc2FpYW4gU3R1ZGkgKEUpIG1lbXBlcm9sZWggbmlsYWkga2VwdWFzYW4gdGVydGluZ2dpIChtZWFuID0gMywyNDAgZGFuIG1vZHVzID0gNSksIG1lbnVuanVra2FuIGJhaHdhIG1haGFzaXN3YSBtZXJhc2EgY3VrdXAgdGVyYmFudHUgZGFsYW0gcHJvc2VzIHBlbnllbGVzYWlhbiBzdHVkaS4NCg0KLSBTZWJhbGlrbnlhLCBkaW1lbnNpIEJpbWJpbmdhbiBBa2FkZW1payAoQikgbWVuY2F0YXQgc2tvciB0ZXJlbmRhaCAobWVhbiA9IDIsOTY1IGRhbiBtb2R1cyA9IDIpLCB5YW5nIG1lbmdpbmRpa2FzaWthbiBhZGFueWEga2VidXR1aGFuIHVudHVrIG1lbmluZ2thdGthbiBrdWFsaXRhcyBrb211bmlrYXNpIGRhbiBhcmFoYW4gYWthZGVtaWsgZGFyaSBkb3NlbiBwZW1iaW1iaW5nLg0KDQotIEFuYWxpc2lzIG1lZGlhbiBtZW1wZXJsaWhhdGthbiBiYWh3YSBzZWJhZ2lhbiBiZXNhciBkaW1lbnNpIGJlcmFkYSBwYWRhIHBvc2lzaSBuZXRyYWwgKG1lZGlhbiA9IDMpLCBtZW1wZXJrdWF0IGFzdW1zaSBiYWh3YSBwZXJzZXBzaSBtYWhhc2lzd2EgY2VuZGVydW5nIGJlbHVtIHNhbmdhdCBwdWFzIG5hbXVuIGp1Z2EgdGlkYWsgbmVnYXRpZi4NCg0KLSBIYXNpbCBtb2R1cyBtZW51bmp1a2thbiBhZGFueWEgdmFyaWFzaSBzaWduaWZpa2FuIGRhbGFtIHJlc3BvbnMgbWFoYXNpc3dhLCB5YW5nIG1lbmNlcm1pbmthbiBwZXJzZXBzaSB5YW5nIGJlcmFnYW0gdGVyaGFkYXAga3VhbGl0YXMgbGF5YW5hbiwgdGVydXRhbWEgcGFkYSBkaW1lbnNpIEtSUyBPbmxpbmUgZGFuIFBlbGF5YW5hbiBBZG1pbmlzdHJhc2kuDQoNClNlY2FyYSBrZXNlbHVydWhhbiwgbGF5YW5hbiBha2FkZW1payBkaSBrYW1wdXMgdGVsYWggYmVyamFsYW4gY3VrdXAgYmFpayBuYW11biBiZWx1bSBvcHRpbWFsIHNlcGVudWhueWEuIEhhc2lsIGFuYWxpc2lzIGluaSBtZW5hbmRha2FuIHBlcmx1bnlhIHBlbmluZ2thdGFuIHBhZGEgYXNwZWstYXNwZWsgc3RyYXRlZ2lzLCBzZXBlcnRpIGVmZWt0aXZpdGFzIGJpbWJpbmdhbiBha2FkZW1payBkYW4gcGVueWFtcGFpYW4gaW5mb3JtYXNpIGFrYWRlbWlrIHlhbmcga29uc2lzdGVuIGRhbiB0ZXBhdCB3YWt0dS4gS2UgZGVwYW4sIGRhdGEgaGFzaWwgc3VydmVpIGluaSBha2FuIG1lbmphZGkgZGFzYXIgcGVudGluZyB1bnR1ayBtZW55dXN1biByZWtvbWVuZGFzaSBwZW5pbmdrYXRhbiBsYXlhbmFuIGFrYWRlbWlrIHlhbmcgbGViaWggdGVyYXJhaCBkYW4gYmVyYmFzaXMgZGF0YSwgZ3VuYSBtZW5kdWt1bmcgcHJvc2VzIHBlbWJlbGFqYXJhbiBtYWhhc2lzd2Egc2VjYXJhIGxlYmloIGVmZWt0aWYgZGFuIG1lbnllbHVydWguDQoNCg==