SAMPLING & SURVEY TECHNIQUES

PRINCIPLES OF SAMPLING

1 Prinsip Pengambilan Sampel

1.1 Apa itu Pengambilan Sampel?

Pengambilan sampel adalah proses pemilihan sebagian individu, item, atau pengamatan dari populasi yang lebih besar untuk memperkirakan karakteristik seluruh populasi. Pengambilan sampel banyak digunakan dalam penelitian, bisnis, dan kebijakan publik untuk membuat keputusan berdasarkan data secara efisien.

1.2 Pengambilan Sampel: Definisi dan Proses

Pengambilan sampel merupakan teknik penting dalam statistik yang memungkinkan peneliti mengumpulkan data dari bagian yang lebih kecil dan mudah dikelola dari populasi yang lebih besar. Dengan memahami populasi dan memilih metode pengambilan sampel yang tepat, peneliti dapat memastikan bahwa data yang dikumpulkan mewakili kelompok yang lebih luas.

Proses pengambilan sampel meliputi beberapa langkah utama:

  • Memahami Populasi: Identifikasi seluruh kelompok yang ingin Anda pelajari, serta ciri-ciri utama populasi yang relevan dengan penelitian, seperti usia, jenis kelamin, dan pendapatan.

  • Menentukan Metode Pengambilan Sampel: Pilih teknik yang sesuai, termasuk:

    • Pengambilan Sampel Acak Sederhana: Setiap anggota memiliki kesempatan yang sama untuk dipilih.

    • Pengambilan Sampel Berstrata: Populasi dibagi ke dalam subkelompok (strata), dan sampel diambil dari setiap strata.

    • Pengambilan Sampel Sistematis: Memilih setiap anggota ke-n dari daftar atau antrian.

    • Pengambilan Sampel Klaster: Membagi populasi ke dalam klaster, kemudian memilih seluruh klaster secara acak.

  • Menentukan Ukuran Sampel: Hitung ukuran sampel ideal menggunakan rumus

\[ n = \frac{N}{1 + N(e^2)} \]

di mana \(n\) = ukuran sampel, \(N\) = ukuran populasi, dan \(e\) = margin kesalahan (misalnya, 0,05 untuk 5%). Pilih juga tingkat keyakinan (umumnya 95% atau 99%).

  • Mengumpulkan Sampel: Terapkan metode yang dipilih dengan mematuhi pedoman etika. Catat detail tentang proses pengambilan sampel dan data yang relevan.

  • Menganalisis Hasil Sampel: Evaluasi apakah sampel mencerminkan karakteristik populasi dengan baik dan analisis data untuk menemukan wawasan atau pola yang relevan.

Kesimpulan

Pengambilan sampel memungkinkan peneliti untuk mengumpulkan informasi secara efisien tentang populasi yang lebih besar tanpa perlu melakukan pengumpulan data yang menyeluruh. Dengan memahami langkah-langkah di atas, Anda dapat memastikan bahwa temuan penelitian Anda valid dan dapat diandalkan, sembari juga terbuka untuk mengeksplorasi konsep statistik lainnya guna meningkatkan keterampilan penelitian Anda.

1.2 Populasi vs. Sampel

Dalam statistik, memahami perbedaan antara populasi dan sampel sangat penting untuk analisis data, inferensi, dan pengambilan keputusan.

1.2.1 Populasi dan Sampel: Konsep, Definisi, dan Aplikasi

Tutorial ini menjelaskan konsep populasi dan sampel dalam statistik, serta pentingnya dan penerapannya dalam skenario dunia nyata. Memahami istilah-istilah ini sangat penting bagi siapa pun yang terlibat dalam analisis data, penelitian, atau statistik, karena merupakan dasar bagi studi statistik.

  • Populasi: Merujuk pada keseluruhan kelompok individu atau item yang ingin Anda pelajari. Contoh populasi meliputi:

    • Semua siswa di sekolah tertentu.
    • Setiap warga negara di suatu negara.
    • Semua produk yang diproduksi oleh suatu perusahaan.

    Parameter populasi merupakan simbol yang digunakan untuk menunjukkan karakteristik populasi:

    • \(N\): Jumlah total individu dalam suatu populasi.
    • \(\mu\) (mu): Melambangkan mean (rata-rata) populasi.
    • \(\sigma\) (sigma): Menunjukkan deviasi standar populasi.
  • Sampel: Bagian dari populasi yang dipilih untuk tujuan penelitian. Sampel digunakan ketika tidak praktis atau tidak mungkin mempelajari seluruh populasi. Statistik sampel menunjukkan karakteristik sampel dengan simbol:

    • \(n\): Jumlah total individu dalam sampel.
    • \(\bar{x}\) (x-bar): Mewakili rata-rata sampel.
    • \(s\): Menunjukkan deviasi standar sampel.
  • Hubungan Antara Populasi dan Sampel: Sampel diambil dari populasi untuk membuat kesimpulan tentang populasi tersebut. Metode pengambilan sampel yang umum meliputi:

    • Pengambilan Sampel Acak: Setiap anggota populasi memiliki kesempatan yang sama untuk dipilih.
    • Pengambilan Sampel Berstrata: Populasi dibagi menjadi subkelompok, dan sampel diambil dari setiap subkelompok.

    Kualitas sampel sangat memengaruhi keakuratan kesimpulan yang dibuat tentang populasi.

  • Aplikasi di Dunia Nyata:

    • Dalam penelitian ilmu sosial, peneliti sering mensurvei sampel orang daripada seluruh populasi untuk menghemat waktu dan sumber daya.
    • Bisnis menggunakan sampel untuk mengukur preferensi konsumen sebelum meluncurkan produk.
    • Ahli epidemiologi mempelajari sampel populasi untuk memahami penyebaran penyakit dan tren kesehatan.

1.2.2 Kesimpulan

Memahami perbedaan antara populasi dan sampel sangat penting untuk analisis statistik yang efektif. Populasi mewakili seluruh kelompok, sementara sampel menyediakan cara yang lebih mudah untuk mengumpulkan data. Metode pengambilan sampel yang tepat sangat mempengaruhi keandalan temuan Anda. Untuk pembelajaran lebih lanjut, pertimbangkan untuk mengeksplorasi teknik pengambilan sampel tertentu dan penerapannya di bidang minat Anda.

1.2.3 Populasi

Populasi \(N\) adalah keseluruhan kelompok individu, objek, atau peristiwa yang ingin diteliti oleh seorang peneliti. Ini mencakup semua kemungkinan pengamatan yang relevan dengan penelitian.

Contoh:

  • Semua penduduk suatu kota saat mempelajari perilaku pemilih.
  • Setiap telepon pintar yang diproduksi dari pabrik saat menganalisis tingkat kerusakan.
  • Setiap mahasiswa di universitas saat mengukur nilai ujian rata-rata.

Jenis-jenis Populasi:

  • Populasi Terbatas: Populasi dengan jumlah elemen yang tetap (misalnya, karyawan di suatu perusahaan).
  • Populasi Tak Terbatas: Populasi dengan jumlah elemen yang tidak dapat dihitung (misalnya, bakteri dalam cawan petri).
  • Populasi Target: Populasi spesifik yang ingin dipelajari oleh peneliti.
  • Populasi yang Dapat Diakses: Bagian dari populasi sasaran yang tersedia untuk penelitian.

1.2.4 Sampel

Sebuah sampel \(n\) adalah bagian dari populasi yang dipilih untuk analisis. Karena mempelajari keseluruhan populasi sering kali tidak praktis karena biaya, waktu, atau aksesibilitas, sampel digunakan untuk membuat kesimpulan tentang populasi.

Contoh:

  • Survei terhadap 1.000 penduduk suatu kota untuk memperkirakan opini publik.
  • Memeriksa 500 telepon pintar yang dipilih secara acak untuk menilai tingkat kerusakan.
  • Mengambil nilai ujian dari 200 siswa yang dipilih secara acak.

Sampel yang baik harus memenuhi beberapa karakteristik berikut:

  • Representatif: Secara akurat mencerminkan populasi.
  • Acak: Dipilih tanpa bias.
  • Cukup Besar: Memastikan estimasi yang dapat diandalkan.
  • Bias Minimal: Menghindari kesalahan sistematis.

1.2.5 Perbedaan Utama

Saat melakukan penelitian atau analisis statistik, penting untuk membedakan antara populasi dan sampel. Populasi mengacu pada seluruh kelompok yang menjadi perhatian dalam sebuah penelitian, sedangkan sampel adalah bagian yang lebih kecil yang dipilih dari populasi tersebut untuk dianalisis. Memahami perbedaannya sangat penting untuk membuat kesimpulan yang akurat dan memastikan validitas kesimpulan.

Berikut adalah perbedaan utama antara populasi dan sampel:

Fitur Populasi (N) Sampel (n)
Definisi Seluruh kelompok yang diminati Subset yang dipilih untuk dipelajari
Ukuran Besar atau tak terbatas Porsi lebih kecil dan mudah diatur
Notasi Menggunakan huruf besar (misalnya, N, \(\sigma\)) Menggunakan huruf kecil (misalnya, n, \(\bar{x}\))
Parameter Nilai sebenarnya (misalnya, \(\mu\), \(\sigma\)) Perkiraan (misalnya, \(\bar{x}\), s)
Biaya & Waktu Tinggi Lebih rendah
Ketepatan Memberikan informasi yang akurat Memberikan perkiraan dengan beberapa margin kesalahan

Dengan penjelasan ini, diharapkan Anda dapat memahami konsep dasar populasi dan sampel serta pentingnya keduanya dalam analisis statistik.

1.3 Mengapa Menggunakan Sampel?

Dalam penelitian dan pengumpulan data, mempelajari keseluruhan populasi sering kali tidak praktis atau mustahil. Sebaliknya, peneliti menggunakan sampel, yang merupakan bagian populasi yang lebih kecil dan mudah dikelola. Berikut ini adalah alasan utama penggunaan sampel:

  • Efektivitas Biaya

    Pengumpulan data dari seluruh populasi membutuhkan sumber daya keuangan yang signifikan. Sampel mengurangi biaya yang terkait dengan pengumpulan, pemrosesan, dan analisis data.

  • Efisiensi Waktu

    Mempelajari keseluruhan populasi memakan banyak waktu. Sampel yang dipilih dengan baik memungkinkan pengumpulan dan analisis data yang lebih cepat.

  • Kelayakan

    Beberapa populasi terlalu besar atau tidak dapat diakses untuk diteliti secara menyeluruh. Sampel memungkinkan penelitian dilakukan ketika pengumpulan data pada seluruh populasi tidak praktis.

  • Akurasi dan Keandalan

    Bila dipilih dengan tepat, sampel dapat memberikan wawasan yang sangat akurat dan andal. Teknik statistik memastikan bahwa sampel mewakili seluruh populasi secara efektif.

  • Mengurangi Kompleksitas Pengelolaan Data

    Menangani sejumlah besar data bisa jadi sulit. Sampel menyederhanakan pengelolaan data sekaligus memberikan kesimpulan yang bermakna.

  • Pertimbangan Etis

    Beberapa penelitian (misalnya, uji coba medis) mungkin mengandung risiko, sehingga tidak etis untuk diuji pada seluruh populasi. Sampel memungkinkan eksperimen yang terkontrol dan etis.

1.4 Menghindari Bias Sampel

Bias pengambilan sampel terjadi ketika anggota populasi tertentu secara sistematis dikecualikan atau terwakili secara berlebihan dalam sampel.

1.4.1 Menghindari Bias dalam Pengujian Ilmiah: Strategi dan Aplikasi

Dalam pengujian ilmiah, menghindari bias sangat penting untuk memperoleh hasil yang andal dan valid. Bias dapat memengaruhi seluruh proses penelitian, mulai dari pengumpulan data hingga analisis, sehingga peneliti yang terlibat harus memiliki pemahaman yang mendalam tentang bias yang mungkin muncul dan cara menguranginya. Tutorial ini membahas tiga jenis bias umum: bias pengukuran, bias seleksi, dan bias konfirmasi, serta strategi yang dapat diterapkan untuk menguranginya. Dengan menerapkan langkah-langkah ini, Anda dapat meningkatkan integritas pengujian ilmiah Anda dan memastikan data yang dihasilkan lebih kredibel.

Bias Pengukuran

Bias pengukuran terjadi ketika alat atau metode yang digunakan untuk mengumpulkan data menghasilkan hasil yang tidak akurat atau tidak konsisten. Untuk mengatasi bias ini, ada beberapa langkah yang bisa diambil:

  • Gunakan Instrumen yang Andal:

Pastikan semua alat ukur yang digunakan dalam penelitian telah dikalibrasi dan memenuhi standar yang relevan untuk jenis pengujian tertentu. Penggunaan perangkat yang tidak akurat dapat mengarah pada kesalahan sistematis dalam data yang diperoleh.

  • Standarisasi Prosedur:

Penting untuk mengikuti protokol yang konsisten saat melakukan pengukuran guna meminimalkan variabilitas yang tidak perlu. Menetapkan prosedur standar dapat membantu mengurangi kesalahan manusia dalam pengumpulan data.

  • Melatih Pengumpul Data:

Pelatihan komprehensif harus diberikan kepada individu yang bertanggung jawab dalam pengumpulan data. Ini termasuk pemahaman tentang cara menggunakan peralatan dengan benar dan bagaimana mengingat berbagai variabel yang bisa memengaruhi hasil pengukuran.

Tips Praktis untuk Mengatasi Bias Pengukuran:

  • Lakukan uji coba atau pilot study untuk mengidentifikasi potensi masalah pengukuran sebelum melakukan percobaan utama. Ini dapat membantu mengungkap masalah yang tidak terduga yang mungkin muncul.
  • Verifikasi keakuratan peralatan Anda secara berkala. Pastikan untuk melakukan kalibrasi secara reguler dan memeriksa kondisi alat untuk memastikan semua tetap dalam keadaan baik.

Bias Seleksi

Bias seleksi terjadi ketika partisipan yang diikutsertakan dalam penelitian tidak mewakili populasi yang lebih besar, berpotensi memberikan hasil yang menyimpang. Untuk menghindari bias ini, peneliti dapat menerapkan beberapa strategi:
- Pengambilan Sampel Acak:

Metode pemilihan acak sangat membantu untuk memastikan bahwa setiap individu dalam populasi memiliki kesempatan yang sama untuk dipilih menjadi partisipan. Ini akan menciptakan sampel yang lebih beragam dan representatif terhadap populasi.

  • Stratifikasi:

Membagi populasi ke dalam subkelompok (strata) yang relevan dan mengambil sampel secara acak dari masing-masing subkelompok tersebut dapat menghasilkan data yang lebih akurat. Misalnya, jika penelitian dilakukan di antara siswa, strata bisa dibagi berdasarkan tingkat kelas, jenis kelamin, atau latar belakang etnis.

  • Hindari Perekrutan Tidak Acak:

Berhati-hatilah terhadap metode perekrutan yang tidak acak, seperti memilih partisipan hanya berdasarkan ketersediaan atau kemauan mereka untuk berpartisipasi. Hal ini bisa membawa pada bias signifikan, mengurangi validitas hasil penelitian.

Perangkap Umum dalam Bias Seleksi:

  • Hindari memilih partisipan hanya berdasarkan ketersediaan, karena hal ini dapat mengabaikan keberagaman yang penting dalam populasi yang lebih luas, sehingga berpotensi mendistorsi hasil penelitian Anda.

Bias Konfirmasi

Bias konfirmasi adalah kecenderungan untuk memihak pada informasi atau data yang mengonfirmasi keyakinan atau hipotesis yang telah ada sebelumnya, sambil mengabaikan atau meremehkan informasi yang kontra. Untuk mengurangi bias ini, beberapa pro tip yang dapat dijalankan adalah:

  • Studi Buta:

Terapkan desain studi buta atau double-blind, di mana baik partisipan maupun peneliti tidak mengetahui kelompok partisipan mana yang termasuk dalam perlakuan tertentu. Ini dapat mengurangi bias dalam interpretasi data dan hasil penelitian.

  • Mencari Buktiyang Bertentangan:

Secara aktif cari dan pertimbangkan data yang menantang hipotesis Anda. Dengan cara ini, Anda akan mendapatkan pandangan yang lebih seimbang dan menghindari kesalahan pemikiran yang biasanya muncul dalam situasi bias konfirmasi.

  • Tinjauan Sejawat:

Berinteraksi dengan peneliti lain untuk mengkritik metodologi dan temuan Anda, sehingga dapat memberikan perspektif eksternal yang berharga. Tinjauan sejawat dapat membantu mengidentifikasi potensi bias yang mungkin terlewat oleh peneliti sendiri.

Aplikasi Dunia Nyata:

Dalam konteks uji coba obat, penerapan metode double-blind sangat efektif dalam mencegah pengaruh ekspektasi partisipan dan peneliti terhadap hasil. Ini sangat krusial dalam penelitian medis, di mana hasilnya bisa berdampak pada kebijakan kesehatan yang lebih luas.

1.4.2 Kesimpulan

Dengan memahami dan mengatasi bias pengukuran, bias seleksi, dan bias konfirmasi, Anda dapat secara signifikan meningkatkan keandalan pengujian ilmiah Anda. Penerapan langkah-langkah ini dalam penelitian Anda tidak hanya meningkatkan integritas dan kepercayaan data tetapi juga memfasilitasi komunitas ilmiah untuk menghasilkan penemuan yang lebih dapat diandalkan. Meminimalkan bias pengambilan sampel sangat penting untuk memastikan temuan yang valid, andal, dan dapat digeneralisasi. Bias yang tidak teratasi dapat memberikan hasil yang menyimpang dan tidak representatif, mendistorsi kesimpulan, dan mengurangi validitas suatu studi. Untuk pembelajaran lebih lanjut, pertimbangkan untuk menjelajahi sumber daya tambahan tentang metodologi ilmiah dan teknik pengurangan bias, serta berpartisipasi dalam kursus atau seminar dampak bias dalam penelitian.

1.4.3 Penyebab Bias Pengambilan Sampel

Berikut ini adalah beberapa penyebab bias pengambilan sampel:

Aspek Keterangan Cara Mengatasi
Kurangnya Cakupan Beberapa kelompok dalam populasi tidak dimasukkan dalam kerangka sampel. Gunakan kerangka sampel yang representatif untuk memastikan semua kelompok tercakup.
Representasi Berlebih Kelompok tertentu memiliki peluang yang jauh lebih tinggi untuk dipilih. Gunakan pengambilan sampel berstrata untuk menjaga proporsi yang seimbang.
Bias Seleksi Diri Peserta secara sukarela memilih untuk mengambil bagian, sehingga menghasilkan sampel non-acak. Gunakan undangan acak dan pertimbangkan insentif untuk menarik kelompok responden yang lebih beragam.

Dengan memastikan kerangka pengambilan sampel yang dibangun dengan baik, menerapkan metode pemilihan acak, dan mengurangi efek pemilihan sendiri, peneliti dapat meningkatkan kualitas dan akurasi penelitian mereka.

1.5 Pengacakan dalam Pengambilan Sampel

Pengacakan adalah proses yang memastikan setiap anggota populasi memiliki peluang yang sama untuk dipilih. Hal ini mengurangi bias pengambilan sampel dan meningkatkan generalisasi temuan penelitian.

1.5.1 Pengambilan Sampel dan Pengacakan dalam Ilmu Data: Konsep dan Langkah-Langkah

Tutorial ini memberikan gambaran umum tentang pengambilan sampel dan pengacakan dalam konteks ilmu data, khususnya membahas kompleksitas penentuan gaji rata-rata seorang Ilmuwan Data di AS. Memahami konsep-konsep ini sangat penting bagi calon ilmuwan data, karena menjadi dasar bagi analisis data dan pengambilan keputusan yang efektif.

  • Proses Ilmu Data: Familiarisasi dengan alur kerja ilmu data mencakup beberapa langkah kunci:

    • Definisi Masalah: Jelaskan masalah yang ingin Anda pecahkan, seperti memperkirakan gaji rata-rata Ilmuwan Data.
    • Pengumpulan Data: Identifikasi sumber data yang relevan, seperti survei gaji, lowongan pekerjaan, dan laporan industri.
    • Pembersihan Data: Siapkan data dengan menghilangkan ketidakakuratan dan menangani nilai yang hilang.

    Saran Praktis: Gunakan kumpulan data yang memiliki reputasi baik untuk memastikan kualitas analisis, dan pertimbangkan kerangka waktu serta lokasi pengumpulan data.

  • Teknik Pengambilan Sampel: Pahami berbagai metode pengambilan sampel untuk mengumpulkan data:

    • Pengambilan Sampel Acak: Pilih subset acak dari populasi untuk memberikan setiap individu kesempatan yang sama untuk dipilih.
    • Pengambilan Sampel Berstrata: Bagi populasi menjadi subkelompok (strata) dan ambil sampel dari masing-masing untuk memastikan representasi di seluruh demografi utama.

    Saran Praktis: Pastikan ukuran sampel yang diambil benar-benar mewakili populasi guna menghindari bias dalam hasil.

  • Penerapan Pengacakan: Pelajari cara menerapkan pengacakan dalam proses pengambilan sampel:

    • Gunakan generator angka acak atau perangkat lunak untuk memilih sampel secara acak.
    • Pastikan proses pengacakan Anda transparan dan dapat direproduksi.

    Saran Praktis: Dokumentasikan metodologi Anda dengan jelas untuk memungkinkan orang lain mengulangi temuan Anda.

  • Analisis Data: Setelah data dikumpulkan dan diambil sampelnya, analisis untuk mendapatkan wawasan:

    • Hitung statistik deskriptif, seperti rata-rata dan median.
    • Gunakan visualisasi (seperti histogram atau diagram kotak) untuk memahami distribusi gaji.

    Saran Praktis: Berhati-hatilah dalam menafsirkan rata-rata; pertimbangkan distribusi dan variabilitas data untuk pemahaman yang lebih baik.

  • Pertimbangan Etis: Renungkan implikasi etis dari temuan Anda:

    • Pertimbangkan bagaimana faktor-faktor seperti jenis kelamin, ras, dan pengalaman dapat memengaruhi rata-rata gaji.
    • Pastikan analisis Anda mengutamakan keadilan dan transparansi.

    Saran Praktis: Bersiaplah untuk membahas keterbatasan analisis dan potensi bias dari metode pengambilan sampel Anda.

1.5.2 Kesimpulan

Dalam tutorial ini, kami telah membahas konsep dasar pengambilan sampel dan pengacakan dalam ilmu data, menekankan pentingnya konsep tersebut dalam menjawab pertanyaan rumit seperti gaji rata-rata seorang Ilmuwan Data. Dengan mengikuti langkah-langkah ini, Anda dapat meningkatkan keterampilan analisis data dan membuat keputusan yang tepat berdasarkan praktik statistik yang kuat. Teruslah eksplorasi teknik pengambilan sampel tingkat lanjut dan pertimbangan etika dalam pekerjaan Anda.

1.5.3 Pengambilan Sampel Acak Sederhana

Metode di mana setiap elemen dalam populasi memiliki probabilitas pemilihan yang sama, sehingga menghasilkan sampel yang benar-benar acak. Berikut cara kerjanya:

  • \(\checkmark\) Tetapkan nomor unik untuk setiap anggota populasi.
  • \(\checkmark\) Gunakan generator angka acak atau sistem lotere untuk memilih peserta.

Contoh: Sebuah perusahaan ingin mensurvei 500 karyawan dari 5.000 karyawan. Setiap karyawan diberi nomor, dan 500 orang dipilih secara acak menggunakan sistem undian.

1.5.4 Pengambilan Sampel Sistematis

Metode yang memilih elemen secara berkala dari daftar berurutan. Berikut cara kerjanya:

  • \(\checkmark\) Tentukan ukuran sampel (misalnya, memilih 100 orang dari daftar 1.000).
  • \(\checkmark\) Hitung interval pengambilan sampel: Ukuran Populasi ÷ Ukuran Sampel (misalnya, \(1.000 ÷ 100 = 10\)).
  • \(\checkmark\) Pilih titik awal secara acak, lalu pilih setiap orang ke-10.

Contoh: Seorang peneliti ingin mensurvei pelanggan ke-5 dari daftar 1.000 pembeli. Jika titik awalnya adalah 3, individu yang dipilih akan berada di urutan ke-3, ke-8, ke-13, dan seterusnya.

1.5.5 Pengambilan Sampel Berstrata

Metode yang membagi populasi ke dalam subkelompok (strata) berdasarkan karakteristik yang sama, kemudian secara acak memilih sejumlah partisipan yang proporsional dari setiap strata. Berikut cara kerjanya:

  • \(\checkmark\) Identifikasi strata yang relevan (misalnya, kelompok usia, tingkat pendapatan, pendidikan).
  • \(\checkmark\) Tentukan proporsi setiap strata dalam populasi.
  • \(\checkmark\) Lakukan pengambilan sampel secara acak dalam setiap strata.

Contoh: Sebuah universitas ingin mensurvei mahasiswa dari berbagai tahun akademik. Jika 40% mahasiswa adalah mahasiswa baru, 30% adalah mahasiswa tingkat dua, 20% adalah mahasiswa tingkat tiga, dan 10% adalah mahasiswa tingkat empat, maka sampel akan mencerminkan proporsi ini.

1.5.6 Kesimpulan Pengambilan Sampel

Penggunaan metode pengambilan sampel acak seperti pengambilan sampel acak sederhana (SRS), pengambilan sampel sistematis, dan pengambilan sampel berstrata membantu memastikan sampel yang adil, tidak bias, dan representatif. Hal ini meningkatkan keandalan dan validitas tema penelitian, sehingga hasilnya lebih dapat digeneralisasikan ke seluruh populasi.

1.5.7 Rekomendasi untuk Ilmuwan Data

  • Praktik Terbaik: Selalu gunakan teknik pengambilan sampel yang sesuai berdasarkan karakteristik populasi dan pertanyaan penelitian Anda.
  • Transparansi: Dokumentasikan proses pengambilan sampel Anda, termasuk segala asumsi dan keputusan yang diambil selama pengumpulan data.
  • Konsistensi: Lakukan pengulangan dan verifikasi untuk memastikan hasil yang diperoleh konsisten dan dapat diandalkan.

Dengan mengikuti pedoman ini, Anda sebagai calon ilmuwan data akan lebih siap untuk menjalankan penelitian yang kuat dan menghasilkan temuan yang signifikan.

1.6 Tantangan dalam Pengambilan Sampel

Pengambilan sampel merupakan proses penting dalam penelitian, tetapi proses ini memiliki beberapa tantangan yang dapat memengaruhi akurasi dan keandalan. Berikut ini adalah ikhtisar tantangan utama pengambilan sampel beserta penyebab dan kemungkinan solusinya.

Tantangan Penyebab Solusi
Bias Non-Respon Peserta tidak mau atau tidak mampu menanggapi. Survei terlalu panjang atau rumit. Kelompok tertentu cenderung tidak berpartisipasi. Kirim pengingat tindak lanjut. Tawarkan insentif. Sederhanakan format survei.
Kesalahan Kerangka Sampling Daftar yang kedaluarsa atau tidak lengkap. Klasifikasi yang salah. Peserta yang duplikat atau tidak memenuhi syarat disertakan. Selalu perbarui kerangka sampel. Periksa kembali sumber data. Gunakan sampel berstrata.
Ukuran Sampel Tidak Memadai Sumber daya terbatas untuk sampel besar. Ukuran sampel salah perhitungan. Tingkat putus sekolah tinggi dalam studi longitudinal. Gunakan metode statistik untuk menentukan ukuran sampel yang tepat. Perhitungkan kemungkinan adanya dropout.
Kendala Biaya dan Waktu Biaya tinggi untuk pengumpulan data. Keterlambatan dalam menjangkau partisipan. Perlunya peralatan atau personel khusus. Gunakan metode yang hemat biaya seperti survei online. Otomatisasi pengumpulan data. Optimalkan sumber daya.

Mengatasi tantangan ini memastikan bahwa proses pengambilan sampel lebih andal, efisien, dan mewakili populasi sasaran. Dengan menerapkan solusi yang efektif, peneliti dapat meminimalkan kesalahan dan meningkatkan kualitas studi mereka secara keseluruhan.

1.7 Aplikasi dalam Industri

Pengambilan sampel memainkan peran penting di berbagai industri, memungkinkan organisasi untuk mengumpulkan wawasan, membuat keputusan yang tepat, dan mengoptimalkan proses. Berikut ini adalah area utama di mana pengambilan sampel digunakan secara luas:

Industri Aplikasi Tujuan
Riset Pasar Melakukan survei dan kelompok fokus. Memahami preferensi, tren, dan perilaku pelanggan.
Pelayanan Kesehatan Mempelajari data pasien dan uji klinis. Memperkirakan prevalensi penyakit, efektivitas pengobatan, dan tren kesehatan masyarakat.
Kontrol Kualitas Memeriksa sebagian produk dalam proses produksi. Memastikan kualitas produk dan kepatuhan terhadap standar industri.
Keuangan Menganalisis transaksi keuangan dan tren pasar. Menilai risiko, mendeteksi penipuan, dan membuat keputusan investasi.

Dengan menerapkan teknik pengambilan sampel yang tepat, industri dapat memperoleh wawasan yang akurat dan andal sekaligus meminimalkan kesalahan dan bias. Hal ini memastikan pengambilan keputusan yang lebih baik, penghematan biaya, dan peningkatan efisiensi operasional.

LS0tDQp0aXRsZTogIlNBTVBMSU5HICYgU1VSVkVZIFRFQ0hOSVFVRVMiDQpzdWJ0aXRsZTogIlBSSU5DSVBMRVMgT0YgU0FNUExJTkciDQphdXRob3I6ICJEYWRhbiBSYW1kYW4gSGlkYXlhdCAoNTIyNDAwMjgpIg0KZGF0ZTogICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQotLS0NCg0KPGltZyBzcmM9InN0YXRpc3Rpa2EuanBnIiB3aWR0aD0iOTAwIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsiIGFsdD0iIj4NCg0KDQojIDEgUHJpbnNpcCBQZW5nYW1iaWxhbiBTYW1wZWwgIA0KDQojIyAxLjEgQXBhIGl0dSBQZW5nYW1iaWxhbiBTYW1wZWw/ICANCg0KUGVuZ2FtYmlsYW4gc2FtcGVsIGFkYWxhaCBwcm9zZXMgcGVtaWxpaGFuIHNlYmFnaWFuIGluZGl2aWR1LCBpdGVtLCBhdGF1IHBlbmdhbWF0YW4gZGFyaSBwb3B1bGFzaSB5YW5nIGxlYmloIGJlc2FyIHVudHVrIG1lbXBlcmtpcmFrYW4ga2FyYWt0ZXJpc3RpayBzZWx1cnVoIHBvcHVsYXNpLiBQZW5nYW1iaWxhbiBzYW1wZWwgYmFueWFrIGRpZ3VuYWthbiBkYWxhbSBwZW5lbGl0aWFuLCBiaXNuaXMsIGRhbiBrZWJpamFrYW4gcHVibGlrIHVudHVrIG1lbWJ1YXQga2VwdXR1c2FuIGJlcmRhc2Fya2FuIGRhdGEgc2VjYXJhIGVmaXNpZW4uICANCg0KIyMgMS4yIFBlbmdhbWJpbGFuIFNhbXBlbDogRGVmaW5pc2kgZGFuIFByb3NlcyAgDQoNClBlbmdhbWJpbGFuIHNhbXBlbCBtZXJ1cGFrYW4gdGVrbmlrIHBlbnRpbmcgZGFsYW0gc3RhdGlzdGlrIHlhbmcgbWVtdW5na2lua2FuIHBlbmVsaXRpIG1lbmd1bXB1bGthbiBkYXRhIGRhcmkgYmFnaWFuIHlhbmcgbGViaWgga2VjaWwgZGFuIG11ZGFoIGRpa2Vsb2xhIGRhcmkgcG9wdWxhc2kgeWFuZyBsZWJpaCBiZXNhci4gRGVuZ2FuIG1lbWFoYW1pIHBvcHVsYXNpIGRhbiBtZW1pbGloIG1ldG9kZSBwZW5nYW1iaWxhbiBzYW1wZWwgeWFuZyB0ZXBhdCwgcGVuZWxpdGkgZGFwYXQgbWVtYXN0aWthbiBiYWh3YSBkYXRhIHlhbmcgZGlrdW1wdWxrYW4gbWV3YWtpbGkga2Vsb21wb2sgeWFuZyBsZWJpaCBsdWFzLiAgIA0KDQpQcm9zZXMgcGVuZ2FtYmlsYW4gc2FtcGVsIG1lbGlwdXRpIGJlYmVyYXBhIGxhbmdrYWggdXRhbWE6ICANCg0KLSAqKk1lbWFoYW1pIFBvcHVsYXNpKio6IElkZW50aWZpa2FzaSBzZWx1cnVoIGtlbG9tcG9rIHlhbmcgaW5naW4gQW5kYSBwZWxhamFyaSwgc2VydGEgY2lyaS1jaXJpIHV0YW1hIHBvcHVsYXNpIHlhbmcgcmVsZXZhbiBkZW5nYW4gcGVuZWxpdGlhbiwgc2VwZXJ0aSB1c2lhLCBqZW5pcyBrZWxhbWluLCBkYW4gcGVuZGFwYXRhbi4gIA0KDQotICoqTWVuZW50dWthbiBNZXRvZGUgUGVuZ2FtYmlsYW4gU2FtcGVsKio6IFBpbGloIHRla25payB5YW5nIHNlc3VhaSwgdGVybWFzdWs6ICANCg0KICAtICpQZW5nYW1iaWxhbiBTYW1wZWwgQWNhayBTZWRlcmhhbmEqOiBTZXRpYXAgYW5nZ290YSBtZW1pbGlraSBrZXNlbXBhdGFuIHlhbmcgc2FtYSB1bnR1ayBkaXBpbGloLiAgDQogIA0KICAtICpQZW5nYW1iaWxhbiBTYW1wZWwgQmVyc3RyYXRhKjogUG9wdWxhc2kgZGliYWdpIGtlIGRhbGFtIHN1YmtlbG9tcG9rIChzdHJhdGEpLCBkYW4gc2FtcGVsIGRpYW1iaWwgZGFyaSBzZXRpYXAgc3RyYXRhLiAgDQogIC0gKlBlbmdhbWJpbGFuIFNhbXBlbCBTaXN0ZW1hdGlzKjogTWVtaWxpaCBzZXRpYXAgYW5nZ290YSBrZS1uIGRhcmkgZGFmdGFyIGF0YXUgYW50cmlhbi4gDQogIA0KICAtICpQZW5nYW1iaWxhbiBTYW1wZWwgS2xhc3Rlcio6IE1lbWJhZ2kgcG9wdWxhc2kga2UgZGFsYW0ga2xhc3Rlciwga2VtdWRpYW4gbWVtaWxpaCBzZWx1cnVoIGtsYXN0ZXIgc2VjYXJhIGFjYWsuICANCg0KLSAqKk1lbmVudHVrYW4gVWt1cmFuIFNhbXBlbCoqOiBIaXR1bmcgdWt1cmFuIHNhbXBlbCBpZGVhbCBtZW5nZ3VuYWthbiBydW11cyAgDQoNClxbICANCm4gPSBcZnJhY3tOfXsxICsgTihlXjIpfSAgDQpcXSAgDQoNCmRpIG1hbmEgXChuXCkgPSB1a3VyYW4gc2FtcGVsLCBcKE5cKSA9IHVrdXJhbiBwb3B1bGFzaSwgZGFuIFwoZVwpID0gbWFyZ2luIGtlc2FsYWhhbiAobWlzYWxueWEsIDAsMDUgdW50dWsgNVwlKS4gUGlsaWgganVnYSB0aW5na2F0IGtleWFraW5hbiAodW11bW55YSA5NVwlIGF0YXUgOTlcJSkuICANCg0KLSAqKk1lbmd1bXB1bGthbiBTYW1wZWwqKjogVGVyYXBrYW4gbWV0b2RlIHlhbmcgZGlwaWxpaCBkZW5nYW4gbWVtYXR1aGkgcGVkb21hbiBldGlrYS4gQ2F0YXQgZGV0YWlsIHRlbnRhbmcgcHJvc2VzIHBlbmdhbWJpbGFuIHNhbXBlbCBkYW4gZGF0YSB5YW5nIHJlbGV2YW4uICANCg0KLSAqKk1lbmdhbmFsaXNpcyBIYXNpbCBTYW1wZWwqKjogRXZhbHVhc2kgYXBha2FoIHNhbXBlbCBtZW5jZXJtaW5rYW4ga2FyYWt0ZXJpc3RpayBwb3B1bGFzaSBkZW5nYW4gYmFpayBkYW4gYW5hbGlzaXMgZGF0YSB1bnR1ayBtZW5lbXVrYW4gd2F3YXNhbiBhdGF1IHBvbGEgeWFuZyByZWxldmFuLiAgDQoNCiMjIEtlc2ltcHVsYW4gIA0KDQpQZW5nYW1iaWxhbiBzYW1wZWwgbWVtdW5na2lua2FuIHBlbmVsaXRpIHVudHVrIG1lbmd1bXB1bGthbiBpbmZvcm1hc2kgc2VjYXJhIGVmaXNpZW4gdGVudGFuZyBwb3B1bGFzaSB5YW5nIGxlYmloIGJlc2FyIHRhbnBhIHBlcmx1IG1lbGFrdWthbiBwZW5ndW1wdWxhbiBkYXRhIHlhbmcgbWVueWVsdXJ1aC4gRGVuZ2FuIG1lbWFoYW1pIGxhbmdrYWgtbGFuZ2thaCBkaSBhdGFzLCBBbmRhIGRhcGF0IG1lbWFzdGlrYW4gYmFod2EgdGVtdWFuIHBlbmVsaXRpYW4gQW5kYSB2YWxpZCBkYW4gZGFwYXQgZGlhbmRhbGthbiwgc2VtYmFyaSBqdWdhIHRlcmJ1a2EgdW50dWsgbWVuZ2Vrc3Bsb3Jhc2kga29uc2VwIHN0YXRpc3RpayBsYWlubnlhIGd1bmEgbWVuaW5na2F0a2FuIGtldGVyYW1waWxhbiBwZW5lbGl0aWFuIEFuZGEuDQoNCiMjIDEuMiBQb3B1bGFzaSB2cy4gU2FtcGVsICANCg0KRGFsYW0gc3RhdGlzdGlrLCBtZW1haGFtaSBwZXJiZWRhYW4gYW50YXJhICoqcG9wdWxhc2kqKiBkYW4gKipzYW1wZWwqKiBzYW5nYXQgcGVudGluZyB1bnR1ayBhbmFsaXNpcyBkYXRhLCBpbmZlcmVuc2ksIGRhbiBwZW5nYW1iaWxhbiBrZXB1dHVzYW4uICANCg0KIyMjIDEuMi4xIFBvcHVsYXNpIGRhbiBTYW1wZWw6IEtvbnNlcCwgRGVmaW5pc2ksIGRhbiBBcGxpa2FzaSAgDQoNClR1dG9yaWFsIGluaSBtZW5qZWxhc2thbiBrb25zZXAgcG9wdWxhc2kgZGFuIHNhbXBlbCBkYWxhbSBzdGF0aXN0aWssIHNlcnRhIHBlbnRpbmdueWEgZGFuIHBlbmVyYXBhbm55YSBkYWxhbSBza2VuYXJpbyBkdW5pYSBueWF0YS4gTWVtYWhhbWkgaXN0aWxhaC1pc3RpbGFoIGluaSBzYW5nYXQgcGVudGluZyBiYWdpIHNpYXBhIHB1biB5YW5nIHRlcmxpYmF0IGRhbGFtIGFuYWxpc2lzIGRhdGEsIHBlbmVsaXRpYW4sIGF0YXUgc3RhdGlzdGlrLCBrYXJlbmEgbWVydXBha2FuIGRhc2FyIGJhZ2kgc3R1ZGkgc3RhdGlzdGlrLiAgDQoNCi0gKipQb3B1bGFzaSoqOiBNZXJ1anVrIHBhZGEga2VzZWx1cnVoYW4ga2Vsb21wb2sgaW5kaXZpZHUgYXRhdSBpdGVtIHlhbmcgaW5naW4gQW5kYSBwZWxhamFyaS4gQ29udG9oIHBvcHVsYXNpIG1lbGlwdXRpOiAgDQogIC0gU2VtdWEgc2lzd2EgZGkgc2Vrb2xhaCB0ZXJ0ZW50dS4gIA0KICAtIFNldGlhcCB3YXJnYSBuZWdhcmEgZGkgc3VhdHUgbmVnYXJhLiAgDQogIC0gU2VtdWEgcHJvZHVrIHlhbmcgZGlwcm9kdWtzaSBvbGVoIHN1YXR1IHBlcnVzYWhhYW4uICANCg0KICBQYXJhbWV0ZXIgcG9wdWxhc2kgbWVydXBha2FuIHNpbWJvbCB5YW5nIGRpZ3VuYWthbiB1bnR1ayBtZW51bmp1a2thbiBrYXJha3RlcmlzdGlrIHBvcHVsYXNpOiAgDQogIC0gJE4kOiBKdW1sYWggdG90YWwgaW5kaXZpZHUgZGFsYW0gc3VhdHUgcG9wdWxhc2kuICANCiAgLSAkXG11JCAobXUpOiBNZWxhbWJhbmdrYW4gbWVhbiAocmF0YS1yYXRhKSBwb3B1bGFzaS4gIA0KICAtICRcc2lnbWEkIChzaWdtYSk6IE1lbnVuanVra2FuIGRldmlhc2kgc3RhbmRhciBwb3B1bGFzaS4gIA0KDQotICoqU2FtcGVsKio6IEJhZ2lhbiBkYXJpIHBvcHVsYXNpIHlhbmcgZGlwaWxpaCB1bnR1ayB0dWp1YW4gcGVuZWxpdGlhbi4gU2FtcGVsIGRpZ3VuYWthbiBrZXRpa2EgdGlkYWsgcHJha3RpcyBhdGF1IHRpZGFrIG11bmdraW4gbWVtcGVsYWphcmkgc2VsdXJ1aCBwb3B1bGFzaS4gU3RhdGlzdGlrIHNhbXBlbCBtZW51bmp1a2thbiBrYXJha3RlcmlzdGlrIHNhbXBlbCBkZW5nYW4gc2ltYm9sOiAgDQogIC0gJG4kOiBKdW1sYWggdG90YWwgaW5kaXZpZHUgZGFsYW0gc2FtcGVsLiAgDQogIC0gJFxiYXJ7eH0kICh4LWJhcik6IE1ld2FraWxpIHJhdGEtcmF0YSBzYW1wZWwuICANCiAgLSAkcyQ6IE1lbnVuanVra2FuIGRldmlhc2kgc3RhbmRhciBzYW1wZWwuICANCg0KLSAqKkh1YnVuZ2FuIEFudGFyYSBQb3B1bGFzaSBkYW4gU2FtcGVsKio6IFNhbXBlbCBkaWFtYmlsIGRhcmkgcG9wdWxhc2kgdW50dWsgbWVtYnVhdCBrZXNpbXB1bGFuIHRlbnRhbmcgcG9wdWxhc2kgdGVyc2VidXQuIE1ldG9kZSBwZW5nYW1iaWxhbiBzYW1wZWwgeWFuZyB1bXVtIG1lbGlwdXRpOiAgDQogIC0gKlBlbmdhbWJpbGFuIFNhbXBlbCBBY2FrKjogU2V0aWFwIGFuZ2dvdGEgcG9wdWxhc2kgbWVtaWxpa2kga2VzZW1wYXRhbiB5YW5nIHNhbWEgdW50dWsgZGlwaWxpaC4gIA0KICAtICpQZW5nYW1iaWxhbiBTYW1wZWwgQmVyc3RyYXRhKjogUG9wdWxhc2kgZGliYWdpIG1lbmphZGkgc3Via2Vsb21wb2ssIGRhbiBzYW1wZWwgZGlhbWJpbCBkYXJpIHNldGlhcCBzdWJrZWxvbXBvay4gIA0KDQogIEt1YWxpdGFzIHNhbXBlbCBzYW5nYXQgbWVtZW5nYXJ1aGkga2Vha3VyYXRhbiBrZXNpbXB1bGFuIHlhbmcgZGlidWF0IHRlbnRhbmcgcG9wdWxhc2kuICANCg0KLSAqKkFwbGlrYXNpIGRpIER1bmlhIE55YXRhKio6ICAgDQogIC0gRGFsYW0gcGVuZWxpdGlhbiBpbG11IHNvc2lhbCwgcGVuZWxpdGkgc2VyaW5nIG1lbnN1cnZlaSBzYW1wZWwgb3JhbmcgZGFyaXBhZGEgc2VsdXJ1aCBwb3B1bGFzaSB1bnR1ayBtZW5naGVtYXQgd2FrdHUgZGFuIHN1bWJlciBkYXlhLiAgDQogIC0gQmlzbmlzIG1lbmdndW5ha2FuIHNhbXBlbCB1bnR1ayBtZW5ndWt1ciBwcmVmZXJlbnNpIGtvbnN1bWVuIHNlYmVsdW0gbWVsdW5jdXJrYW4gcHJvZHVrLiAgDQogIC0gQWhsaSBlcGlkZW1pb2xvZ2kgbWVtcGVsYWphcmkgc2FtcGVsIHBvcHVsYXNpIHVudHVrIG1lbWFoYW1pIHBlbnllYmFyYW4gcGVueWFraXQgZGFuIHRyZW4ga2VzZWhhdGFuLiAgDQoNCiMjIyAxLjIuMiBLZXNpbXB1bGFuICANCg0KTWVtYWhhbWkgcGVyYmVkYWFuIGFudGFyYSBwb3B1bGFzaSBkYW4gc2FtcGVsIHNhbmdhdCBwZW50aW5nIHVudHVrIGFuYWxpc2lzIHN0YXRpc3RpayB5YW5nIGVmZWt0aWYuIFBvcHVsYXNpIG1ld2FraWxpIHNlbHVydWgga2Vsb21wb2ssIHNlbWVudGFyYSBzYW1wZWwgbWVueWVkaWFrYW4gY2FyYSB5YW5nIGxlYmloIG11ZGFoIHVudHVrIG1lbmd1bXB1bGthbiBkYXRhLiBNZXRvZGUgcGVuZ2FtYmlsYW4gc2FtcGVsIHlhbmcgdGVwYXQgc2FuZ2F0IG1lbXBlbmdhcnVoaSBrZWFuZGFsYW4gdGVtdWFuIEFuZGEuIFVudHVrIHBlbWJlbGFqYXJhbiBsZWJpaCBsYW5qdXQsIHBlcnRpbWJhbmdrYW4gdW50dWsgbWVuZ2Vrc3Bsb3Jhc2kgdGVrbmlrIHBlbmdhbWJpbGFuIHNhbXBlbCB0ZXJ0ZW50dSBkYW4gcGVuZXJhcGFubnlhIGRpIGJpZGFuZyBtaW5hdCBBbmRhLiAgDQoNCiMjIyAxLjIuMyBQb3B1bGFzaSAgDQoNClBvcHVsYXNpICROJCBhZGFsYWgga2VzZWx1cnVoYW4ga2Vsb21wb2sgaW5kaXZpZHUsIG9iamVrLCBhdGF1IHBlcmlzdGl3YSB5YW5nIGluZ2luIGRpdGVsaXRpIG9sZWggc2VvcmFuZyBwZW5lbGl0aS4gSW5pIG1lbmNha3VwIHNlbXVhIGtlbXVuZ2tpbmFuIHBlbmdhbWF0YW4geWFuZyByZWxldmFuIGRlbmdhbiBwZW5lbGl0aWFuLiAgDQoNCioqQ29udG9oKio6ICANCg0KLSBTZW11YSBwZW5kdWR1ayBzdWF0dSBrb3RhIHNhYXQgbWVtcGVsYWphcmkgcGVyaWxha3UgcGVtaWxpaC4gIA0KLSBTZXRpYXAgdGVsZXBvbiBwaW50YXIgeWFuZyBkaXByb2R1a3NpIGRhcmkgcGFicmlrIHNhYXQgbWVuZ2FuYWxpc2lzIHRpbmdrYXQga2VydXNha2FuLiAgDQotIFNldGlhcCBtYWhhc2lzd2EgZGkgdW5pdmVyc2l0YXMgc2FhdCBtZW5ndWt1ciBuaWxhaSB1amlhbiByYXRhLXJhdGEuICANCg0KKipKZW5pcy1qZW5pcyBQb3B1bGFzaSoqOiAgDQoNCi0gKipQb3B1bGFzaSBUZXJiYXRhcyoqOiBQb3B1bGFzaSBkZW5nYW4ganVtbGFoIGVsZW1lbiB5YW5nIHRldGFwIChtaXNhbG55YSwga2FyeWF3YW4gZGkgc3VhdHUgcGVydXNhaGFhbikuICANCi0gKipQb3B1bGFzaSBUYWsgVGVyYmF0YXMqKjogUG9wdWxhc2kgZGVuZ2FuIGp1bWxhaCBlbGVtZW4geWFuZyB0aWRhayBkYXBhdCBkaWhpdHVuZyAobWlzYWxueWEsIGJha3RlcmkgZGFsYW0gY2F3YW4gcGV0cmkpLiAgDQotICoqUG9wdWxhc2kgVGFyZ2V0Kio6IFBvcHVsYXNpIHNwZXNpZmlrIHlhbmcgaW5naW4gZGlwZWxhamFyaSBvbGVoIHBlbmVsaXRpLiAgDQotICoqUG9wdWxhc2kgeWFuZyBEYXBhdCBEaWFrc2VzKio6IEJhZ2lhbiBkYXJpIHBvcHVsYXNpIHNhc2FyYW4geWFuZyB0ZXJzZWRpYSB1bnR1ayBwZW5lbGl0aWFuLiAgDQoNCi0tLSAgDQoNCiMjIyAxLjIuNCBTYW1wZWwgIA0KDQpTZWJ1YWggc2FtcGVsICRuJCBhZGFsYWggYmFnaWFuIGRhcmkgcG9wdWxhc2kgeWFuZyBkaXBpbGloIHVudHVrIGFuYWxpc2lzLiBLYXJlbmEgbWVtcGVsYWphcmkga2VzZWx1cnVoYW4gcG9wdWxhc2kgc2VyaW5nIGthbGkgdGlkYWsgcHJha3RpcyBrYXJlbmEgYmlheWEsIHdha3R1LCBhdGF1IGFrc2VzaWJpbGl0YXMsIHNhbXBlbCBkaWd1bmFrYW4gdW50dWsgbWVtYnVhdCBrZXNpbXB1bGFuIHRlbnRhbmcgcG9wdWxhc2kuICAgDQoNCioqQ29udG9oKio6ICANCg0KLSBTdXJ2ZWkgdGVyaGFkYXAgMS4wMDAgcGVuZHVkdWsgc3VhdHUga290YSB1bnR1ayBtZW1wZXJraXJha2FuIG9waW5pIHB1Ymxpay4gIA0KLSBNZW1lcmlrc2EgNTAwIHRlbGVwb24gcGludGFyIHlhbmcgZGlwaWxpaCBzZWNhcmEgYWNhayB1bnR1ayBtZW5pbGFpIHRpbmdrYXQga2VydXNha2FuLiAgDQotIE1lbmdhbWJpbCBuaWxhaSB1amlhbiBkYXJpIDIwMCBzaXN3YSB5YW5nIGRpcGlsaWggc2VjYXJhIGFjYWsuICANCg0KKipTYW1wZWwgeWFuZyBiYWlrIGhhcnVzIG1lbWVudWhpIGJlYmVyYXBhIGthcmFrdGVyaXN0aWsgYmVyaWt1dCoqOiAgDQoNCi0gKipSZXByZXNlbnRhdGlmKio6IFNlY2FyYSBha3VyYXQgbWVuY2VybWlua2FuIHBvcHVsYXNpLiAgDQotICoqQWNhayoqOiBEaXBpbGloIHRhbnBhIGJpYXMuICANCi0gKipDdWt1cCBCZXNhcioqOiBNZW1hc3Rpa2FuIGVzdGltYXNpIHlhbmcgZGFwYXQgZGlhbmRhbGthbi4gIA0KLSAqKkJpYXMgTWluaW1hbCoqOiBNZW5naGluZGFyaSBrZXNhbGFoYW4gc2lzdGVtYXRpcy4gIA0KDQotLS0gIA0KDQojIyMgMS4yLjUgUGVyYmVkYWFuIFV0YW1hICANCg0KU2FhdCBtZWxha3VrYW4gcGVuZWxpdGlhbiBhdGF1IGFuYWxpc2lzIHN0YXRpc3RpaywgcGVudGluZyB1bnR1ayBtZW1iZWRha2FuIGFudGFyYSBwb3B1bGFzaSBkYW4gc2FtcGVsLiBQb3B1bGFzaSBtZW5nYWN1IHBhZGEgc2VsdXJ1aCBrZWxvbXBvayB5YW5nIG1lbmphZGkgcGVyaGF0aWFuIGRhbGFtIHNlYnVhaCBwZW5lbGl0aWFuLCBzZWRhbmdrYW4gc2FtcGVsIGFkYWxhaCBiYWdpYW4geWFuZyBsZWJpaCBrZWNpbCB5YW5nIGRpcGlsaWggZGFyaSBwb3B1bGFzaSB0ZXJzZWJ1dCB1bnR1ayBkaWFuYWxpc2lzLiBNZW1haGFtaSBwZXJiZWRhYW5ueWEgc2FuZ2F0IHBlbnRpbmcgdW50dWsgbWVtYnVhdCBrZXNpbXB1bGFuIHlhbmcgYWt1cmF0IGRhbiBtZW1hc3Rpa2FuIHZhbGlkaXRhcyBrZXNpbXB1bGFuLiAgDQoNCkJlcmlrdXQgYWRhbGFoIHBlcmJlZGFhbiB1dGFtYSBhbnRhcmEgcG9wdWxhc2kgZGFuIHNhbXBlbDogIA0KDQp8ICoqRml0dXIqKiAgICAgICAgICB8ICoqUG9wdWxhc2kgKE4pKiogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqU2FtcGVsIChuKSoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgDQp8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAgDQp8ICoqRGVmaW5pc2kqKiAgICAgICB8IFNlbHVydWgga2Vsb21wb2sgeWFuZyBkaW1pbmF0aSAgICAgICAgICAgICB8IFN1YnNldCB5YW5nIGRpcGlsaWggdW50dWsgZGlwZWxhamFyaSAgICAgICAgICAgfCAgDQp8ICoqVWt1cmFuKiogICAgICAgICB8IEJlc2FyIGF0YXUgdGFrIHRlcmJhdGFzICAgICAgICAgICAgICAgICAgICB8IFBvcnNpIGxlYmloIGtlY2lsIGRhbiBtdWRhaCBkaWF0dXIgICAgICAgICAgICAgfCAgDQp8ICoqTm90YXNpKiogICAgICAgICB8IE1lbmdndW5ha2FuIGh1cnVmIGJlc2FyIChtaXNhbG55YSwgTiwgJFxzaWdtYSQpIHwgTWVuZ2d1bmFrYW4gaHVydWYga2VjaWwgKG1pc2FsbnlhLCBuLCAkXGJhcnt4fSQpIHwgIA0KfCAqKlBhcmFtZXRlcioqICAgICAgfCBOaWxhaSBzZWJlbmFybnlhIChtaXNhbG55YSwgJFxtdSQsICRcc2lnbWEkKSB8IFBlcmtpcmFhbiAobWlzYWxueWEsICRcYmFye3h9JCwgcykgICAgICAgICAgIHwgIA0KfCAqKkJpYXlhICYgV2FrdHUqKiAgfCBUaW5nZ2kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMZWJpaCByZW5kYWggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICANCnwgKipLZXRlcGF0YW4qKiAgICAgIHwgTWVtYmVyaWthbiBpbmZvcm1hc2kgeWFuZyBha3VyYXQgICAgICAgICAgfCBNZW1iZXJpa2FuIHBlcmtpcmFhbiBkZW5nYW4gYmViZXJhcGEgbWFyZ2luIGtlc2FsYWhhbiB8ICANCg0KLS0tICANCg0KRGVuZ2FuIHBlbmplbGFzYW4gaW5pLCBkaWhhcmFwa2FuIEFuZGEgZGFwYXQgbWVtYWhhbWkga29uc2VwIGRhc2FyIHBvcHVsYXNpIGRhbiBzYW1wZWwgc2VydGEgcGVudGluZ255YSBrZWR1YW55YSBkYWxhbSBhbmFsaXNpcyBzdGF0aXN0aWsuDQoNCiMjIDEuMyBNZW5nYXBhIE1lbmdndW5ha2FuIFNhbXBlbD8gIA0KDQpEYWxhbSBwZW5lbGl0aWFuIGRhbiBwZW5ndW1wdWxhbiBkYXRhLCBtZW1wZWxhamFyaSBrZXNlbHVydWhhbiBwb3B1bGFzaSBzZXJpbmcga2FsaSB0aWRhayBwcmFrdGlzIGF0YXUgbXVzdGFoaWwuIFNlYmFsaWtueWEsIHBlbmVsaXRpIG1lbmdndW5ha2FuIHNhbXBlbCwgeWFuZyBtZXJ1cGFrYW4gYmFnaWFuIHBvcHVsYXNpIHlhbmcgbGViaWgga2VjaWwgZGFuIG11ZGFoIGRpa2Vsb2xhLiBCZXJpa3V0IGluaSBhZGFsYWggYWxhc2FuIHV0YW1hIHBlbmdndW5hYW4gc2FtcGVsOiAgDQoNCi0gKipFZmVrdGl2aXRhcyBCaWF5YSoqICANCg0KICBQZW5ndW1wdWxhbiBkYXRhIGRhcmkgc2VsdXJ1aCBwb3B1bGFzaSBtZW1idXR1aGthbiBzdW1iZXIgZGF5YSBrZXVhbmdhbiB5YW5nIHNpZ25pZmlrYW4uIFNhbXBlbCBtZW5ndXJhbmdpIGJpYXlhIHlhbmcgdGVya2FpdCBkZW5nYW4gcGVuZ3VtcHVsYW4sIHBlbXJvc2VzYW4sIGRhbiBhbmFsaXNpcyBkYXRhLiAgDQoNCi0gKipFZmlzaWVuc2kgV2FrdHUqKiAgDQoNCiAgTWVtcGVsYWphcmkga2VzZWx1cnVoYW4gcG9wdWxhc2kgbWVtYWthbiBiYW55YWsgd2FrdHUuIFNhbXBlbCB5YW5nIGRpcGlsaWggZGVuZ2FuIGJhaWsgbWVtdW5na2lua2FuIHBlbmd1bXB1bGFuIGRhbiBhbmFsaXNpcyBkYXRhIHlhbmcgbGViaWggY2VwYXQuICANCg0KLSAqKktlbGF5YWthbioqICANCg0KICBCZWJlcmFwYSBwb3B1bGFzaSB0ZXJsYWx1IGJlc2FyIGF0YXUgdGlkYWsgZGFwYXQgZGlha3NlcyB1bnR1ayBkaXRlbGl0aSBzZWNhcmEgbWVueWVsdXJ1aC4gU2FtcGVsIG1lbXVuZ2tpbmthbiBwZW5lbGl0aWFuIGRpbGFrdWthbiBrZXRpa2EgcGVuZ3VtcHVsYW4gZGF0YSBwYWRhIHNlbHVydWggcG9wdWxhc2kgdGlkYWsgcHJha3Rpcy4gIA0KDQotICoqQWt1cmFzaSBkYW4gS2VhbmRhbGFuKiogIA0KDQogIEJpbGEgZGlwaWxpaCBkZW5nYW4gdGVwYXQsIHNhbXBlbCBkYXBhdCBtZW1iZXJpa2FuIHdhd2FzYW4geWFuZyBzYW5nYXQgYWt1cmF0IGRhbiBhbmRhbC4gVGVrbmlrIHN0YXRpc3RpayBtZW1hc3Rpa2FuIGJhaHdhIHNhbXBlbCBtZXdha2lsaSBzZWx1cnVoIHBvcHVsYXNpIHNlY2FyYSBlZmVrdGlmLiAgDQoNCi0gKipNZW5ndXJhbmdpIEtvbXBsZWtzaXRhcyBQZW5nZWxvbGFhbiBEYXRhKiogIA0KDQogIE1lbmFuZ2FuaSBzZWp1bWxhaCBiZXNhciBkYXRhIGJpc2EgamFkaSBzdWxpdC4gU2FtcGVsIG1lbnllZGVyaGFuYWthbiBwZW5nZWxvbGFhbiBkYXRhIHNla2FsaWd1cyBtZW1iZXJpa2FuIGtlc2ltcHVsYW4geWFuZyBiZXJtYWtuYS4gIA0KDQotICoqUGVydGltYmFuZ2FuIEV0aXMqKiAgDQoNCiAgQmViZXJhcGEgcGVuZWxpdGlhbiAobWlzYWxueWEsIHVqaSBjb2JhIG1lZGlzKSBtdW5na2luIG1lbmdhbmR1bmcgcmlzaWtvLCBzZWhpbmdnYSB0aWRhayBldGlzIHVudHVrIGRpdWppIHBhZGEgc2VsdXJ1aCBwb3B1bGFzaS4gU2FtcGVsIG1lbXVuZ2tpbmthbiBla3NwZXJpbWVuIHlhbmcgdGVya29udHJvbCBkYW4gZXRpcy4NCiAgDQojIyAxLjQgTWVuZ2hpbmRhcmkgQmlhcyBTYW1wZWwgIA0KDQpCaWFzIHBlbmdhbWJpbGFuIHNhbXBlbCB0ZXJqYWRpIGtldGlrYSBhbmdnb3RhIHBvcHVsYXNpIHRlcnRlbnR1IHNlY2FyYSBzaXN0ZW1hdGlzIGRpa2VjdWFsaWthbiBhdGF1IHRlcndha2lsaSBzZWNhcmEgYmVybGViaWhhbiBkYWxhbSBzYW1wZWwuICANCg0KIyMjIDEuNC4xIE1lbmdoaW5kYXJpIEJpYXMgZGFsYW0gUGVuZ3VqaWFuIElsbWlhaDogU3RyYXRlZ2kgZGFuIEFwbGlrYXNpICANCg0KRGFsYW0gcGVuZ3VqaWFuIGlsbWlhaCwgbWVuZ2hpbmRhcmkgYmlhcyBzYW5nYXQgcGVudGluZyB1bnR1ayBtZW1wZXJvbGVoIGhhc2lsIHlhbmcgYW5kYWwgZGFuIHZhbGlkLiBCaWFzIGRhcGF0IG1lbWVuZ2FydWhpIHNlbHVydWggcHJvc2VzIHBlbmVsaXRpYW4sIG11bGFpIGRhcmkgcGVuZ3VtcHVsYW4gZGF0YSBoaW5nZ2EgYW5hbGlzaXMsIHNlaGluZ2dhIHBlbmVsaXRpIHlhbmcgdGVybGliYXQgaGFydXMgbWVtaWxpa2kgcGVtYWhhbWFuIHlhbmcgbWVuZGFsYW0gdGVudGFuZyBiaWFzIHlhbmcgbXVuZ2tpbiBtdW5jdWwgZGFuIGNhcmEgbWVuZ3VyYW5naW55YS4gVHV0b3JpYWwgaW5pIG1lbWJhaGFzIHRpZ2EgamVuaXMgYmlhcyB1bXVtOiBiaWFzIHBlbmd1a3VyYW4sIGJpYXMgc2VsZWtzaSwgZGFuIGJpYXMga29uZmlybWFzaSwgc2VydGEgc3RyYXRlZ2kgeWFuZyBkYXBhdCBkaXRlcmFwa2FuIHVudHVrIG1lbmd1cmFuZ2lueWEuIERlbmdhbiBtZW5lcmFwa2FuIGxhbmdrYWgtbGFuZ2thaCBpbmksIEFuZGEgZGFwYXQgbWVuaW5na2F0a2FuIGludGVncml0YXMgcGVuZ3VqaWFuIGlsbWlhaCBBbmRhIGRhbiBtZW1hc3Rpa2FuIGRhdGEgeWFuZyBkaWhhc2lsa2FuIGxlYmloIGtyZWRpYmVsLiAgDQoNCiMjIyMgQmlhcyBQZW5ndWt1cmFuICANCg0KQmlhcyBwZW5ndWt1cmFuIHRlcmphZGkga2V0aWthIGFsYXQgYXRhdSBtZXRvZGUgeWFuZyBkaWd1bmFrYW4gdW50dWsgbWVuZ3VtcHVsa2FuIGRhdGEgbWVuZ2hhc2lsa2FuIGhhc2lsIHlhbmcgdGlkYWsgYWt1cmF0IGF0YXUgdGlkYWsga29uc2lzdGVuLiBVbnR1ayBtZW5nYXRhc2kgYmlhcyBpbmksIGFkYSBiZWJlcmFwYSBsYW5na2FoIHlhbmcgYmlzYSBkaWFtYmlsOiAgDQoNCi0gKipHdW5ha2FuIEluc3RydW1lbiB5YW5nIEFuZGFsKio6IA0KDQpQYXN0aWthbiBzZW11YSBhbGF0IHVrdXIgeWFuZyBkaWd1bmFrYW4gZGFsYW0gcGVuZWxpdGlhbiB0ZWxhaCBkaWthbGlicmFzaSBkYW4gbWVtZW51aGkgc3RhbmRhciB5YW5nIHJlbGV2YW4gdW50dWsgamVuaXMgcGVuZ3VqaWFuIHRlcnRlbnR1LiBQZW5nZ3VuYWFuIHBlcmFuZ2thdCB5YW5nIHRpZGFrIGFrdXJhdCBkYXBhdCBtZW5nYXJhaCBwYWRhIGtlc2FsYWhhbiBzaXN0ZW1hdGlzIGRhbGFtIGRhdGEgeWFuZyBkaXBlcm9sZWguICANCg0KLSAqKlN0YW5kYXJpc2FzaSBQcm9zZWR1cioqOiANCg0KUGVudGluZyB1bnR1ayBtZW5naWt1dGkgcHJvdG9rb2wgeWFuZyBrb25zaXN0ZW4gc2FhdCBtZWxha3VrYW4gcGVuZ3VrdXJhbiBndW5hIG1lbWluaW1hbGthbiB2YXJpYWJpbGl0YXMgeWFuZyB0aWRhayBwZXJsdS4gTWVuZXRhcGthbiBwcm9zZWR1ciBzdGFuZGFyIGRhcGF0IG1lbWJhbnR1IG1lbmd1cmFuZ2kga2VzYWxhaGFuIG1hbnVzaWEgZGFsYW0gcGVuZ3VtcHVsYW4gZGF0YS4gDQoNCi0gKipNZWxhdGloIFBlbmd1bXB1bCBEYXRhKio6IA0KDQpQZWxhdGloYW4ga29tcHJlaGVuc2lmIGhhcnVzIGRpYmVyaWthbiBrZXBhZGEgaW5kaXZpZHUgeWFuZyBiZXJ0YW5nZ3VuZyBqYXdhYiBkYWxhbSBwZW5ndW1wdWxhbiBkYXRhLiBJbmkgdGVybWFzdWsgcGVtYWhhbWFuIHRlbnRhbmcgY2FyYSBtZW5nZ3VuYWthbiBwZXJhbGF0YW4gZGVuZ2FuIGJlbmFyIGRhbiBiYWdhaW1hbmEgbWVuZ2luZ2F0IGJlcmJhZ2FpIHZhcmlhYmVsIHlhbmcgYmlzYSBtZW1lbmdhcnVoaSBoYXNpbCBwZW5ndWt1cmFuLiAgDQoNCioqVGlwcyBQcmFrdGlzIHVudHVrIE1lbmdhdGFzaSBCaWFzIFBlbmd1a3VyYW4qKjogDQoNCi0gTGFrdWthbiB1amkgY29iYSBhdGF1IHBpbG90IHN0dWR5IHVudHVrIG1lbmdpZGVudGlmaWthc2kgcG90ZW5zaSBtYXNhbGFoIHBlbmd1a3VyYW4gc2ViZWx1bSBtZWxha3VrYW4gcGVyY29iYWFuIHV0YW1hLiBJbmkgZGFwYXQgbWVtYmFudHUgbWVuZ3VuZ2thcCBtYXNhbGFoIHlhbmcgdGlkYWsgdGVyZHVnYSB5YW5nIG11bmdraW4gbXVuY3VsLiAgDQotIFZlcmlmaWthc2kga2Vha3VyYXRhbiBwZXJhbGF0YW4gQW5kYSBzZWNhcmEgYmVya2FsYS4gUGFzdGlrYW4gdW50dWsgbWVsYWt1a2FuIGthbGlicmFzaSBzZWNhcmEgcmVndWxlciBkYW4gbWVtZXJpa3NhIGtvbmRpc2kgYWxhdCB1bnR1ayBtZW1hc3Rpa2FuIHNlbXVhIHRldGFwIGRhbGFtIGtlYWRhYW4gYmFpay4gIA0KDQojIyMjIEJpYXMgU2VsZWtzaSAgDQoNCkJpYXMgc2VsZWtzaSB0ZXJqYWRpIGtldGlrYSBwYXJ0aXNpcGFuIHlhbmcgZGlpa3V0c2VydGFrYW4gZGFsYW0gcGVuZWxpdGlhbiB0aWRhayBtZXdha2lsaSBwb3B1bGFzaSB5YW5nIGxlYmloIGJlc2FyLCBiZXJwb3RlbnNpIG1lbWJlcmlrYW4gaGFzaWwgeWFuZyBtZW55aW1wYW5nLiBVbnR1ayBtZW5naGluZGFyaSBiaWFzIGluaSwgcGVuZWxpdGkgZGFwYXQgbWVuZXJhcGthbiBiZWJlcmFwYSBzdHJhdGVnaTogIA0KLSAqKlBlbmdhbWJpbGFuIFNhbXBlbCBBY2FrKio6IA0KDQpNZXRvZGUgcGVtaWxpaGFuIGFjYWsgc2FuZ2F0IG1lbWJhbnR1IHVudHVrIG1lbWFzdGlrYW4gYmFod2Egc2V0aWFwIGluZGl2aWR1IGRhbGFtIHBvcHVsYXNpIG1lbWlsaWtpIGtlc2VtcGF0YW4geWFuZyBzYW1hIHVudHVrIGRpcGlsaWggbWVuamFkaSBwYXJ0aXNpcGFuLiBJbmkgYWthbiBtZW5jaXB0YWthbiBzYW1wZWwgeWFuZyBsZWJpaCBiZXJhZ2FtIGRhbiByZXByZXNlbnRhdGlmIHRlcmhhZGFwIHBvcHVsYXNpLiAgDQoNCi0gKipTdHJhdGlmaWthc2kqKjogDQoNCk1lbWJhZ2kgcG9wdWxhc2kga2UgZGFsYW0gc3Via2Vsb21wb2sgKHN0cmF0YSkgeWFuZyByZWxldmFuIGRhbiBtZW5nYW1iaWwgc2FtcGVsIHNlY2FyYSBhY2FrIGRhcmkgbWFzaW5nLW1hc2luZyBzdWJrZWxvbXBvayB0ZXJzZWJ1dCBkYXBhdCBtZW5naGFzaWxrYW4gZGF0YSB5YW5nIGxlYmloIGFrdXJhdC4gTWlzYWxueWEsIGppa2EgcGVuZWxpdGlhbiBkaWxha3VrYW4gZGkgYW50YXJhIHNpc3dhLCBzdHJhdGEgYmlzYSBkaWJhZ2kgYmVyZGFzYXJrYW4gdGluZ2thdCBrZWxhcywgamVuaXMga2VsYW1pbiwgYXRhdSBsYXRhciBiZWxha2FuZyBldG5pcy4gIA0KDQotICoqSGluZGFyaSBQZXJla3J1dGFuIFRpZGFrIEFjYWsqKjogDQoNCkJlcmhhdGktaGF0aWxhaCB0ZXJoYWRhcCBtZXRvZGUgcGVyZWtydXRhbiB5YW5nIHRpZGFrIGFjYWssIHNlcGVydGkgbWVtaWxpaCBwYXJ0aXNpcGFuIGhhbnlhIGJlcmRhc2Fya2FuIGtldGVyc2VkaWFhbiBhdGF1IGtlbWF1YW4gbWVyZWthIHVudHVrIGJlcnBhcnRpc2lwYXNpLiBIYWwgaW5pIGJpc2EgbWVtYmF3YSBwYWRhIGJpYXMgc2lnbmlmaWthbiwgbWVuZ3VyYW5naSB2YWxpZGl0YXMgaGFzaWwgcGVuZWxpdGlhbi4gIA0KDQoqKlBlcmFuZ2thcCBVbXVtIGRhbGFtIEJpYXMgU2VsZWtzaSoqOiANCg0KLSBIaW5kYXJpIG1lbWlsaWggcGFydGlzaXBhbiBoYW55YSBiZXJkYXNhcmthbiBrZXRlcnNlZGlhYW4sIGthcmVuYSBoYWwgaW5pIGRhcGF0IG1lbmdhYmFpa2FuIGtlYmVyYWdhbWFuIHlhbmcgcGVudGluZyBkYWxhbSBwb3B1bGFzaSB5YW5nIGxlYmloIGx1YXMsIHNlaGluZ2dhIGJlcnBvdGVuc2kgbWVuZGlzdG9yc2kgaGFzaWwgcGVuZWxpdGlhbiBBbmRhLiAgDQoNCiMjIyMgQmlhcyBLb25maXJtYXNpICANCg0KQmlhcyBrb25maXJtYXNpIGFkYWxhaCBrZWNlbmRlcnVuZ2FuIHVudHVrIG1lbWloYWsgcGFkYSBpbmZvcm1hc2kgYXRhdSBkYXRhIHlhbmcgbWVuZ29uZmlybWFzaSBrZXlha2luYW4gYXRhdSBoaXBvdGVzaXMgeWFuZyB0ZWxhaCBhZGEgc2ViZWx1bW55YSwgc2FtYmlsIG1lbmdhYmFpa2FuIGF0YXUgbWVyZW1laGthbiBpbmZvcm1hc2kgeWFuZyBrb250cmEuIFVudHVrIG1lbmd1cmFuZ2kgYmlhcyBpbmksIGJlYmVyYXBhIHBybyB0aXAgeWFuZyBkYXBhdCBkaWphbGFua2FuIGFkYWxhaDogIA0KDQotICoqU3R1ZGkgQnV0YSoqOiANCg0KVGVyYXBrYW4gZGVzYWluIHN0dWRpIGJ1dGEgYXRhdSBkb3VibGUtYmxpbmQsIGRpIG1hbmEgYmFpayBwYXJ0aXNpcGFuIG1hdXB1biBwZW5lbGl0aSB0aWRhayBtZW5nZXRhaHVpIGtlbG9tcG9rIHBhcnRpc2lwYW4gbWFuYSB5YW5nIHRlcm1hc3VrIGRhbGFtIHBlcmxha3VhbiB0ZXJ0ZW50dS4gSW5pIGRhcGF0IG1lbmd1cmFuZ2kgYmlhcyBkYWxhbSBpbnRlcnByZXRhc2kgZGF0YSBkYW4gaGFzaWwgcGVuZWxpdGlhbi4gIA0KDQotICoqTWVuY2FyaSBCdWt0aXlhbmcgQmVydGVudGFuZ2FuKio6IA0KDQpTZWNhcmEgYWt0aWYgY2FyaSBkYW4gcGVydGltYmFuZ2thbiBkYXRhIHlhbmcgbWVuYW50YW5nIGhpcG90ZXNpcyBBbmRhLiBEZW5nYW4gY2FyYSBpbmksIEFuZGEgYWthbiBtZW5kYXBhdGthbiBwYW5kYW5nYW4geWFuZyBsZWJpaCBzZWltYmFuZyBkYW4gbWVuZ2hpbmRhcmkga2VzYWxhaGFuIHBlbWlraXJhbiB5YW5nIGJpYXNhbnlhIG11bmN1bCBkYWxhbSBzaXR1YXNpIGJpYXMga29uZmlybWFzaS4gIA0KDQotICoqVGluamF1YW4gU2VqYXdhdCoqOiANCg0KQmVyaW50ZXJha3NpIGRlbmdhbiBwZW5lbGl0aSBsYWluIHVudHVrIG1lbmdrcml0aWsgbWV0b2RvbG9naSBkYW4gdGVtdWFuIEFuZGEsIHNlaGluZ2dhIGRhcGF0IG1lbWJlcmlrYW4gcGVyc3Bla3RpZiBla3N0ZXJuYWwgeWFuZyBiZXJoYXJnYS4gVGluamF1YW4gc2VqYXdhdCBkYXBhdCBtZW1iYW50dSBtZW5naWRlbnRpZmlrYXNpIHBvdGVuc2kgYmlhcyB5YW5nIG11bmdraW4gdGVybGV3YXQgb2xlaCBwZW5lbGl0aSBzZW5kaXJpLiAgDQoNCioqQXBsaWthc2kgRHVuaWEgTnlhdGEqKjogIA0KDQpEYWxhbSBrb250ZWtzIHVqaSBjb2JhIG9iYXQsIHBlbmVyYXBhbiBtZXRvZGUgZG91YmxlLWJsaW5kIHNhbmdhdCBlZmVrdGlmIGRhbGFtIG1lbmNlZ2FoIHBlbmdhcnVoIGVrc3Bla3Rhc2kgcGFydGlzaXBhbiBkYW4gcGVuZWxpdGkgdGVyaGFkYXAgaGFzaWwuIEluaSBzYW5nYXQga3J1c2lhbCBkYWxhbSBwZW5lbGl0aWFuIG1lZGlzLCBkaSBtYW5hIGhhc2lsbnlhIGJpc2EgYmVyZGFtcGFrIHBhZGEga2ViaWpha2FuIGtlc2VoYXRhbiB5YW5nIGxlYmloIGx1YXMuICANCg0KIyMjIDEuNC4yIEtlc2ltcHVsYW4gIA0KDQpEZW5nYW4gbWVtYWhhbWkgZGFuIG1lbmdhdGFzaSBiaWFzIHBlbmd1a3VyYW4sIGJpYXMgc2VsZWtzaSwgZGFuIGJpYXMga29uZmlybWFzaSwgQW5kYSBkYXBhdCBzZWNhcmEgc2lnbmlmaWthbiBtZW5pbmdrYXRrYW4ga2VhbmRhbGFuIHBlbmd1amlhbiBpbG1pYWggQW5kYS4gUGVuZXJhcGFuIGxhbmdrYWgtbGFuZ2thaCBpbmkgZGFsYW0gcGVuZWxpdGlhbiBBbmRhIHRpZGFrIGhhbnlhIG1lbmluZ2thdGthbiBpbnRlZ3JpdGFzIGRhbiBrZXBlcmNheWFhbiBkYXRhIHRldGFwaSBqdWdhIG1lbWZhc2lsaXRhc2kga29tdW5pdGFzIGlsbWlhaCB1bnR1ayBtZW5naGFzaWxrYW4gcGVuZW11YW4geWFuZyBsZWJpaCBkYXBhdCBkaWFuZGFsa2FuLiBNZW1pbmltYWxrYW4gYmlhcyBwZW5nYW1iaWxhbiBzYW1wZWwgc2FuZ2F0IHBlbnRpbmcgdW50dWsgbWVtYXN0aWthbiB0ZW11YW4geWFuZyB2YWxpZCwgYW5kYWwsIGRhbiBkYXBhdCBkaWdlbmVyYWxpc2FzaS4gQmlhcyB5YW5nIHRpZGFrIHRlcmF0YXNpIGRhcGF0IG1lbWJlcmlrYW4gaGFzaWwgeWFuZyBtZW55aW1wYW5nIGRhbiB0aWRhayByZXByZXNlbnRhdGlmLCBtZW5kaXN0b3JzaSBrZXNpbXB1bGFuLCBkYW4gbWVuZ3VyYW5naSB2YWxpZGl0YXMgc3VhdHUgc3R1ZGkuIFVudHVrIHBlbWJlbGFqYXJhbiBsZWJpaCBsYW5qdXQsIHBlcnRpbWJhbmdrYW4gdW50dWsgbWVuamVsYWphaGkgc3VtYmVyIGRheWEgdGFtYmFoYW4gdGVudGFuZyBtZXRvZG9sb2dpIGlsbWlhaCBkYW4gdGVrbmlrIHBlbmd1cmFuZ2FuIGJpYXMsIHNlcnRhIGJlcnBhcnRpc2lwYXNpIGRhbGFtIGt1cnN1cyBhdGF1IHNlbWluYXIgZGFtcGFrIGJpYXMgZGFsYW0gcGVuZWxpdGlhbi4gIA0KDQojIyMgMS40LjMgUGVueWViYWIgQmlhcyBQZW5nYW1iaWxhbiBTYW1wZWwgIA0KDQpCZXJpa3V0IGluaSBhZGFsYWggYmViZXJhcGEgcGVueWViYWIgYmlhcyBwZW5nYW1iaWxhbiBzYW1wZWw6ICANCg0KfCAqKkFzcGVrKiogICAgICAgICAgICAgICAgfCAqKktldGVyYW5nYW4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqQ2FyYSBNZW5nYXRhc2kqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIA0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICANCnwgKipLdXJhbmdueWEgQ2FrdXBhbioqICAgIHwgQmViZXJhcGEga2Vsb21wb2sgZGFsYW0gcG9wdWxhc2kgdGlkYWsgZGltYXN1a2thbiBkYWxhbSBrZXJhbmdrYSBzYW1wZWwuIHwgR3VuYWthbiBrZXJhbmdrYSBzYW1wZWwgeWFuZyByZXByZXNlbnRhdGlmIHVudHVrIG1lbWFzdGlrYW4gc2VtdWEga2Vsb21wb2sgdGVyY2FrdXAuIHwgIA0KfCAqKlJlcHJlc2VudGFzaSBCZXJsZWJpaCoqIHwgS2Vsb21wb2sgdGVydGVudHUgbWVtaWxpa2kgcGVsdWFuZyB5YW5nIGphdWggbGViaWggdGluZ2dpIHVudHVrIGRpcGlsaWguICB8IEd1bmFrYW4gcGVuZ2FtYmlsYW4gc2FtcGVsIGJlcnN0cmF0YSB1bnR1ayBtZW5qYWdhIHByb3BvcnNpIHlhbmcgc2VpbWJhbmcuIHwgIA0KfCAqKkJpYXMgU2VsZWtzaSBEaXJpKiogICAgIHwgUGVzZXJ0YSBzZWNhcmEgc3VrYXJlbGEgbWVtaWxpaCB1bnR1ayBtZW5nYW1iaWwgYmFnaWFuLCBzZWhpbmdnYSBtZW5naGFzaWxrYW4gc2FtcGVsIG5vbi1hY2FrLiB8IEd1bmFrYW4gdW5kYW5nYW4gYWNhayBkYW4gcGVydGltYmFuZ2thbiBpbnNlbnRpZiB1bnR1ayBtZW5hcmlrIGtlbG9tcG9rIHJlc3BvbmRlbiB5YW5nIGxlYmloIGJlcmFnYW0uIHwgIA0KDQpEZW5nYW4gbWVtYXN0aWthbiBrZXJhbmdrYSBwZW5nYW1iaWxhbiBzYW1wZWwgeWFuZyBkaWJhbmd1biBkZW5nYW4gYmFpaywgbWVuZXJhcGthbiBtZXRvZGUgcGVtaWxpaGFuIGFjYWssIGRhbiBtZW5ndXJhbmdpIGVmZWsgcGVtaWxpaGFuIHNlbmRpcmksIHBlbmVsaXRpIGRhcGF0IG1lbmluZ2thdGthbiBrdWFsaXRhcyBkYW4gYWt1cmFzaSBwZW5lbGl0aWFuIG1lcmVrYS4NCg0KIyMgMS41IFBlbmdhY2FrYW4gZGFsYW0gUGVuZ2FtYmlsYW4gU2FtcGVsICANCg0KUGVuZ2FjYWthbiBhZGFsYWggcHJvc2VzIHlhbmcgbWVtYXN0aWthbiBzZXRpYXAgYW5nZ290YSBwb3B1bGFzaSBtZW1pbGlraSBwZWx1YW5nIHlhbmcgc2FtYSB1bnR1ayBkaXBpbGloLiBIYWwgaW5pIG1lbmd1cmFuZ2kgYmlhcyBwZW5nYW1iaWxhbiBzYW1wZWwgZGFuIG1lbmluZ2thdGthbiBnZW5lcmFsaXNhc2kgdGVtdWFuIHBlbmVsaXRpYW4uICANCg0KIyMjIDEuNS4xIFBlbmdhbWJpbGFuIFNhbXBlbCBkYW4gUGVuZ2FjYWthbiBkYWxhbSBJbG11IERhdGE6IEtvbnNlcCBkYW4gTGFuZ2thaC1MYW5na2FoICANCg0KVHV0b3JpYWwgaW5pIG1lbWJlcmlrYW4gZ2FtYmFyYW4gdW11bSB0ZW50YW5nIHBlbmdhbWJpbGFuIHNhbXBlbCBkYW4gcGVuZ2FjYWthbiBkYWxhbSBrb250ZWtzIGlsbXUgZGF0YSwga2h1c3VzbnlhIG1lbWJhaGFzIGtvbXBsZWtzaXRhcyBwZW5lbnR1YW4gZ2FqaSByYXRhLXJhdGEgc2VvcmFuZyBJbG11d2FuIERhdGEgZGkgQVMuIE1lbWFoYW1pIGtvbnNlcC1rb25zZXAgaW5pIHNhbmdhdCBwZW50aW5nIGJhZ2kgY2Fsb24gaWxtdXdhbiBkYXRhLCBrYXJlbmEgbWVuamFkaSBkYXNhciBiYWdpIGFuYWxpc2lzIGRhdGEgZGFuIHBlbmdhbWJpbGFuIGtlcHV0dXNhbiB5YW5nIGVmZWt0aWYuICANCg0KLSAqKlByb3NlcyBJbG11IERhdGEqKjogRmFtaWxpYXJpc2FzaSBkZW5nYW4gYWx1ciBrZXJqYSBpbG11IGRhdGEgbWVuY2FrdXAgYmViZXJhcGEgbGFuZ2thaCBrdW5jaTogIA0KICAtICoqRGVmaW5pc2kgTWFzYWxhaCoqOiBKZWxhc2thbiBtYXNhbGFoIHlhbmcgaW5naW4gQW5kYSBwZWNhaGthbiwgc2VwZXJ0aSBtZW1wZXJraXJha2FuIGdhamkgcmF0YS1yYXRhIElsbXV3YW4gRGF0YS4gIA0KICAtICoqUGVuZ3VtcHVsYW4gRGF0YSoqOiBJZGVudGlmaWthc2kgc3VtYmVyIGRhdGEgeWFuZyByZWxldmFuLCBzZXBlcnRpIHN1cnZlaSBnYWppLCBsb3dvbmdhbiBwZWtlcmphYW4sIGRhbiBsYXBvcmFuIGluZHVzdHJpLiAgDQogIC0gKipQZW1iZXJzaWhhbiBEYXRhKio6IFNpYXBrYW4gZGF0YSBkZW5nYW4gbWVuZ2hpbGFuZ2thbiBrZXRpZGFrYWt1cmF0YW4gZGFuIG1lbmFuZ2FuaSBuaWxhaSB5YW5nIGhpbGFuZy4gIA0KDQogICoqU2FyYW4gUHJha3RpcyoqOiBHdW5ha2FuIGt1bXB1bGFuIGRhdGEgeWFuZyBtZW1pbGlraSByZXB1dGFzaSBiYWlrIHVudHVrIG1lbWFzdGlrYW4ga3VhbGl0YXMgYW5hbGlzaXMsIGRhbiBwZXJ0aW1iYW5na2FuIGtlcmFuZ2thIHdha3R1IHNlcnRhIGxva2FzaSBwZW5ndW1wdWxhbiBkYXRhLiAgDQoNCi0gKipUZWtuaWsgUGVuZ2FtYmlsYW4gU2FtcGVsKio6IFBhaGFtaSBiZXJiYWdhaSBtZXRvZGUgcGVuZ2FtYmlsYW4gc2FtcGVsIHVudHVrIG1lbmd1bXB1bGthbiBkYXRhOiAgDQogIC0gKipQZW5nYW1iaWxhbiBTYW1wZWwgQWNhayoqOiBQaWxpaCBzdWJzZXQgYWNhayBkYXJpIHBvcHVsYXNpIHVudHVrIG1lbWJlcmlrYW4gc2V0aWFwIGluZGl2aWR1IGtlc2VtcGF0YW4geWFuZyBzYW1hIHVudHVrIGRpcGlsaWguICANCiAgLSAqKlBlbmdhbWJpbGFuIFNhbXBlbCBCZXJzdHJhdGEqKjogQmFnaSBwb3B1bGFzaSBtZW5qYWRpIHN1YmtlbG9tcG9rIChzdHJhdGEpIGRhbiBhbWJpbCBzYW1wZWwgZGFyaSBtYXNpbmctbWFzaW5nIHVudHVrIG1lbWFzdGlrYW4gcmVwcmVzZW50YXNpIGRpIHNlbHVydWggZGVtb2dyYWZpIHV0YW1hLiAgDQoNCiAgKipTYXJhbiBQcmFrdGlzKio6IFBhc3Rpa2FuIHVrdXJhbiBzYW1wZWwgeWFuZyBkaWFtYmlsIGJlbmFyLWJlbmFyIG1ld2FraWxpIHBvcHVsYXNpIGd1bmEgbWVuZ2hpbmRhcmkgYmlhcyBkYWxhbSBoYXNpbC4gIA0KDQotICoqUGVuZXJhcGFuIFBlbmdhY2FrYW4qKjogUGVsYWphcmkgY2FyYSBtZW5lcmFwa2FuIHBlbmdhY2FrYW4gZGFsYW0gcHJvc2VzIHBlbmdhbWJpbGFuIHNhbXBlbDogIA0KICAtIEd1bmFrYW4gZ2VuZXJhdG9yIGFuZ2thIGFjYWsgYXRhdSBwZXJhbmdrYXQgbHVuYWsgdW50dWsgbWVtaWxpaCBzYW1wZWwgc2VjYXJhIGFjYWsuICANCiAgLSBQYXN0aWthbiBwcm9zZXMgcGVuZ2FjYWthbiBBbmRhIHRyYW5zcGFyYW4gZGFuIGRhcGF0IGRpcmVwcm9kdWtzaS4gIA0KDQogICoqU2FyYW4gUHJha3RpcyoqOiBEb2t1bWVudGFzaWthbiBtZXRvZG9sb2dpIEFuZGEgZGVuZ2FuIGplbGFzIHVudHVrIG1lbXVuZ2tpbmthbiBvcmFuZyBsYWluIG1lbmd1bGFuZ2kgdGVtdWFuIEFuZGEuICANCg0KLSAqKkFuYWxpc2lzIERhdGEqKjogU2V0ZWxhaCBkYXRhIGRpa3VtcHVsa2FuIGRhbiBkaWFtYmlsIHNhbXBlbG55YSwgYW5hbGlzaXMgdW50dWsgbWVuZGFwYXRrYW4gd2F3YXNhbjogIA0KICAtIEhpdHVuZyBzdGF0aXN0aWsgZGVza3JpcHRpZiwgc2VwZXJ0aSByYXRhLXJhdGEgZGFuIG1lZGlhbi4gIA0KICAtIEd1bmFrYW4gdmlzdWFsaXNhc2kgKHNlcGVydGkgaGlzdG9ncmFtIGF0YXUgZGlhZ3JhbSBrb3RhaykgdW50dWsgbWVtYWhhbWkgZGlzdHJpYnVzaSBnYWppLiAgDQoNCiAgKipTYXJhbiBQcmFrdGlzKio6IEJlcmhhdGktaGF0aWxhaCBkYWxhbSBtZW5hZnNpcmthbiByYXRhLXJhdGE7IHBlcnRpbWJhbmdrYW4gZGlzdHJpYnVzaSBkYW4gdmFyaWFiaWxpdGFzIGRhdGEgdW50dWsgcGVtYWhhbWFuIHlhbmcgbGViaWggYmFpay4gIA0KDQotICoqUGVydGltYmFuZ2FuIEV0aXMqKjogUmVudW5na2FuIGltcGxpa2FzaSBldGlzIGRhcmkgdGVtdWFuIEFuZGE6ICANCiAgLSBQZXJ0aW1iYW5na2FuIGJhZ2FpbWFuYSBmYWt0b3ItZmFrdG9yIHNlcGVydGkgamVuaXMga2VsYW1pbiwgcmFzLCBkYW4gcGVuZ2FsYW1hbiBkYXBhdCBtZW1lbmdhcnVoaSByYXRhLXJhdGEgZ2FqaS4gIA0KICAtIFBhc3Rpa2FuIGFuYWxpc2lzIEFuZGEgbWVuZ3V0YW1ha2FuIGtlYWRpbGFuIGRhbiB0cmFuc3BhcmFuc2kuICANCg0KICAqKlNhcmFuIFByYWt0aXMqKjogQmVyc2lhcGxhaCB1bnR1ayBtZW1iYWhhcyBrZXRlcmJhdGFzYW4gYW5hbGlzaXMgZGFuIHBvdGVuc2kgYmlhcyBkYXJpIG1ldG9kZSBwZW5nYW1iaWxhbiBzYW1wZWwgQW5kYS4gIA0KDQojIyMgMS41LjIgS2VzaW1wdWxhbiAgDQoNCkRhbGFtIHR1dG9yaWFsIGluaSwga2FtaSB0ZWxhaCBtZW1iYWhhcyBrb25zZXAgZGFzYXIgcGVuZ2FtYmlsYW4gc2FtcGVsIGRhbiBwZW5nYWNha2FuIGRhbGFtIGlsbXUgZGF0YSwgbWVuZWthbmthbiBwZW50aW5nbnlhIGtvbnNlcCB0ZXJzZWJ1dCBkYWxhbSBtZW5qYXdhYiBwZXJ0YW55YWFuIHJ1bWl0IHNlcGVydGkgZ2FqaSByYXRhLXJhdGEgc2VvcmFuZyBJbG11d2FuIERhdGEuIERlbmdhbiBtZW5naWt1dGkgbGFuZ2thaC1sYW5na2FoIGluaSwgQW5kYSBkYXBhdCBtZW5pbmdrYXRrYW4ga2V0ZXJhbXBpbGFuIGFuYWxpc2lzIGRhdGEgZGFuIG1lbWJ1YXQga2VwdXR1c2FuIHlhbmcgdGVwYXQgYmVyZGFzYXJrYW4gcHJha3RpayBzdGF0aXN0aWsgeWFuZyBrdWF0LiBUZXJ1c2xhaCBla3NwbG9yYXNpIHRla25payBwZW5nYW1iaWxhbiBzYW1wZWwgdGluZ2thdCBsYW5qdXQgZGFuIHBlcnRpbWJhbmdhbiBldGlrYSBkYWxhbSBwZWtlcmphYW4gQW5kYS4gIA0KDQojIyMgMS41LjMgUGVuZ2FtYmlsYW4gU2FtcGVsIEFjYWsgU2VkZXJoYW5hICANCg0KTWV0b2RlIGRpIG1hbmEgc2V0aWFwIGVsZW1lbiBkYWxhbSBwb3B1bGFzaSBtZW1pbGlraSBwcm9iYWJpbGl0YXMgcGVtaWxpaGFuIHlhbmcgc2FtYSwgc2VoaW5nZ2EgbWVuZ2hhc2lsa2FuIHNhbXBlbCB5YW5nIGJlbmFyLWJlbmFyIGFjYWsuIEJlcmlrdXQgY2FyYSBrZXJqYW55YTogIA0KDQotICRcY2hlY2ttYXJrJCBUZXRhcGthbiBub21vciB1bmlrIHVudHVrIHNldGlhcCBhbmdnb3RhIHBvcHVsYXNpLiAgDQotICRcY2hlY2ttYXJrJCBHdW5ha2FuIGdlbmVyYXRvciBhbmdrYSBhY2FrIGF0YXUgc2lzdGVtIGxvdGVyZSB1bnR1ayBtZW1pbGloIHBlc2VydGEuICANCg0KKipDb250b2gqKjogU2VidWFoIHBlcnVzYWhhYW4gaW5naW4gbWVuc3VydmVpIDUwMCBrYXJ5YXdhbiBkYXJpIDUuMDAwIGthcnlhd2FuLiBTZXRpYXAga2FyeWF3YW4gZGliZXJpIG5vbW9yLCBkYW4gNTAwIG9yYW5nIGRpcGlsaWggc2VjYXJhIGFjYWsgbWVuZ2d1bmFrYW4gc2lzdGVtIHVuZGlhbi4gIA0KDQojIyMgMS41LjQgUGVuZ2FtYmlsYW4gU2FtcGVsIFNpc3RlbWF0aXMgIA0KDQpNZXRvZGUgeWFuZyBtZW1pbGloIGVsZW1lbiBzZWNhcmEgYmVya2FsYSBkYXJpIGRhZnRhciBiZXJ1cnV0YW4uIEJlcmlrdXQgY2FyYSBrZXJqYW55YTogIA0KDQotICRcY2hlY2ttYXJrJCBUZW50dWthbiB1a3VyYW4gc2FtcGVsIChtaXNhbG55YSwgbWVtaWxpaCAxMDAgb3JhbmcgZGFyaSBkYWZ0YXIgMS4wMDApLiAgDQotICRcY2hlY2ttYXJrJCBIaXR1bmcgaW50ZXJ2YWwgcGVuZ2FtYmlsYW4gc2FtcGVsOiBVa3VyYW4gUG9wdWxhc2kgw7cgVWt1cmFuIFNhbXBlbCAobWlzYWxueWEsICQxLjAwMCDDtyAxMDAgPSAxMCQpLiAgDQotICRcY2hlY2ttYXJrJCBQaWxpaCB0aXRpayBhd2FsIHNlY2FyYSBhY2FrLCBsYWx1IHBpbGloIHNldGlhcCBvcmFuZyBrZS0xMC4gIA0KDQoqKkNvbnRvaCoqOiBTZW9yYW5nIHBlbmVsaXRpIGluZ2luIG1lbnN1cnZlaSBwZWxhbmdnYW4ga2UtNSBkYXJpIGRhZnRhciAxLjAwMCBwZW1iZWxpLiBKaWthIHRpdGlrIGF3YWxueWEgYWRhbGFoIDMsIGluZGl2aWR1IHlhbmcgZGlwaWxpaCBha2FuIGJlcmFkYSBkaSB1cnV0YW4ga2UtMywga2UtOCwga2UtMTMsIGRhbiBzZXRlcnVzbnlhLiAgDQoNCiMjIyAxLjUuNSBQZW5nYW1iaWxhbiBTYW1wZWwgQmVyc3RyYXRhICANCg0KTWV0b2RlIHlhbmcgbWVtYmFnaSBwb3B1bGFzaSBrZSBkYWxhbSBzdWJrZWxvbXBvayAoc3RyYXRhKSBiZXJkYXNhcmthbiBrYXJha3RlcmlzdGlrIHlhbmcgc2FtYSwga2VtdWRpYW4gc2VjYXJhIGFjYWsgbWVtaWxpaCBzZWp1bWxhaCBwYXJ0aXNpcGFuIHlhbmcgcHJvcG9yc2lvbmFsIGRhcmkgc2V0aWFwIHN0cmF0YS4gQmVyaWt1dCBjYXJhIGtlcmphbnlhOiAgDQoNCi0gJFxjaGVja21hcmskIElkZW50aWZpa2FzaSBzdHJhdGEgeWFuZyByZWxldmFuIChtaXNhbG55YSwga2Vsb21wb2sgdXNpYSwgdGluZ2thdCBwZW5kYXBhdGFuLCBwZW5kaWRpa2FuKS4gIA0KLSAkXGNoZWNrbWFyayQgVGVudHVrYW4gcHJvcG9yc2kgc2V0aWFwIHN0cmF0YSBkYWxhbSBwb3B1bGFzaS4gIA0KLSAkXGNoZWNrbWFyayQgTGFrdWthbiBwZW5nYW1iaWxhbiBzYW1wZWwgc2VjYXJhIGFjYWsgZGFsYW0gc2V0aWFwIHN0cmF0YS4gIA0KDQoqKkNvbnRvaCoqOiBTZWJ1YWggdW5pdmVyc2l0YXMgaW5naW4gbWVuc3VydmVpIG1haGFzaXN3YSBkYXJpIGJlcmJhZ2FpIHRhaHVuIGFrYWRlbWlrLiBKaWthIDQwXCUgbWFoYXNpc3dhIGFkYWxhaCBtYWhhc2lzd2EgYmFydSwgMzBcJSBhZGFsYWggbWFoYXNpc3dhIHRpbmdrYXQgZHVhLCAyMFwlIGFkYWxhaCBtYWhhc2lzd2EgdGluZ2thdCB0aWdhLCBkYW4gMTBcJSBhZGFsYWggbWFoYXNpc3dhIHRpbmdrYXQgZW1wYXQsIG1ha2Egc2FtcGVsIGFrYW4gbWVuY2VybWlua2FuIHByb3BvcnNpIGluaS4gIA0KDQojIyMgMS41LjYgS2VzaW1wdWxhbiBQZW5nYW1iaWxhbiBTYW1wZWwgIA0KDQpQZW5nZ3VuYWFuIG1ldG9kZSBwZW5nYW1iaWxhbiBzYW1wZWwgYWNhayBzZXBlcnRpIHBlbmdhbWJpbGFuIHNhbXBlbCBhY2FrIHNlZGVyaGFuYSAoU1JTKSwgcGVuZ2FtYmlsYW4gc2FtcGVsIHNpc3RlbWF0aXMsIGRhbiBwZW5nYW1iaWxhbiBzYW1wZWwgYmVyc3RyYXRhIG1lbWJhbnR1IG1lbWFzdGlrYW4gc2FtcGVsIHlhbmcgYWRpbCwgdGlkYWsgYmlhcywgZGFuIHJlcHJlc2VudGF0aWYuIEhhbCBpbmkgbWVuaW5na2F0a2FuIGtlYW5kYWxhbiBkYW4gdmFsaWRpdGFzIHRlbWEgcGVuZWxpdGlhbiwgc2VoaW5nZ2EgaGFzaWxueWEgbGViaWggZGFwYXQgZGlnZW5lcmFsaXNhc2lrYW4ga2Ugc2VsdXJ1aCBwb3B1bGFzaS4gIA0KDQojIyMgMS41LjcgUmVrb21lbmRhc2kgdW50dWsgSWxtdXdhbiBEYXRhICANCg0KLSAqKlByYWt0aWsgVGVyYmFpayoqOiBTZWxhbHUgZ3VuYWthbiB0ZWtuaWsgcGVuZ2FtYmlsYW4gc2FtcGVsIHlhbmcgc2VzdWFpIGJlcmRhc2Fya2FuIGthcmFrdGVyaXN0aWsgcG9wdWxhc2kgZGFuIHBlcnRhbnlhYW4gcGVuZWxpdGlhbiBBbmRhLiAgDQotICoqVHJhbnNwYXJhbnNpKio6IERva3VtZW50YXNpa2FuIHByb3NlcyBwZW5nYW1iaWxhbiBzYW1wZWwgQW5kYSwgdGVybWFzdWsgc2VnYWxhIGFzdW1zaSBkYW4ga2VwdXR1c2FuIHlhbmcgZGlhbWJpbCBzZWxhbWEgcGVuZ3VtcHVsYW4gZGF0YS4gIA0KLSAqKktvbnNpc3RlbnNpKio6IExha3VrYW4gcGVuZ3VsYW5nYW4gZGFuIHZlcmlmaWthc2kgdW50dWsgbWVtYXN0aWthbiBoYXNpbCB5YW5nIGRpcGVyb2xlaCBrb25zaXN0ZW4gZGFuIGRhcGF0IGRpYW5kYWxrYW4uICANCg0KRGVuZ2FuIG1lbmdpa3V0aSBwZWRvbWFuIGluaSwgQW5kYSBzZWJhZ2FpIGNhbG9uIGlsbXV3YW4gZGF0YSBha2FuIGxlYmloIHNpYXAgdW50dWsgbWVuamFsYW5rYW4gcGVuZWxpdGlhbiB5YW5nIGt1YXQgZGFuIG1lbmdoYXNpbGthbiB0ZW11YW4geWFuZyBzaWduaWZpa2FuLg0KDQojIyAxLjYgVGFudGFuZ2FuIGRhbGFtIFBlbmdhbWJpbGFuIFNhbXBlbCAgDQoNClBlbmdhbWJpbGFuIHNhbXBlbCBtZXJ1cGFrYW4gcHJvc2VzIHBlbnRpbmcgZGFsYW0gcGVuZWxpdGlhbiwgdGV0YXBpIHByb3NlcyBpbmkgbWVtaWxpa2kgYmViZXJhcGEgdGFudGFuZ2FuIHlhbmcgZGFwYXQgbWVtZW5nYXJ1aGkgYWt1cmFzaSBkYW4ga2VhbmRhbGFuLiBCZXJpa3V0IGluaSBhZGFsYWggaWtodGlzYXIgdGFudGFuZ2FuIHV0YW1hIHBlbmdhbWJpbGFuIHNhbXBlbCBiZXNlcnRhIHBlbnllYmFiIGRhbiBrZW11bmdraW5hbiBzb2x1c2lueWEuICANCg0KfCAqKlRhbnRhbmdhbioqICAgICAgICAgICAgICAgICAgIHwgKipQZW55ZWJhYioqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKlNvbHVzaSoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgDQp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICANCnwgKipCaWFzIE5vbi1SZXNwb24qKiAgICAgICAgICAgICB8IFBlc2VydGEgdGlkYWsgbWF1IGF0YXUgdGlkYWsgbWFtcHUgbWVuYW5nZ2FwaS4gU3VydmVpIHRlcmxhbHUgcGFuamFuZyBhdGF1IHJ1bWl0LiBLZWxvbXBvayB0ZXJ0ZW50dSBjZW5kZXJ1bmcgdGlkYWsgYmVycGFydGlzaXBhc2kuIHwgS2lyaW0gcGVuZ2luZ2F0IHRpbmRhayBsYW5qdXQuIFRhd2Fya2FuIGluc2VudGlmLiBTZWRlcmhhbmFrYW4gZm9ybWF0IHN1cnZlaS4gfCAgDQp8ICoqS2VzYWxhaGFuIEtlcmFuZ2thIFNhbXBsaW5nKiogIHwgRGFmdGFyIHlhbmcga2VkYWx1YXJzYSBhdGF1IHRpZGFrIGxlbmdrYXAuIEtsYXNpZmlrYXNpIHlhbmcgc2FsYWguIFBlc2VydGEgeWFuZyBkdXBsaWthdCBhdGF1IHRpZGFrIG1lbWVudWhpIHN5YXJhdCBkaXNlcnRha2FuLiB8IFNlbGFsdSBwZXJiYXJ1aSBrZXJhbmdrYSBzYW1wZWwuIFBlcmlrc2Ega2VtYmFsaSBzdW1iZXIgZGF0YS4gR3VuYWthbiBzYW1wZWwgYmVyc3RyYXRhLiB8ICANCnwgKipVa3VyYW4gU2FtcGVsIFRpZGFrIE1lbWFkYWkqKiAgfCBTdW1iZXIgZGF5YSB0ZXJiYXRhcyB1bnR1ayBzYW1wZWwgYmVzYXIuIFVrdXJhbiBzYW1wZWwgc2FsYWggcGVyaGl0dW5nYW4uIFRpbmdrYXQgcHV0dXMgc2Vrb2xhaCB0aW5nZ2kgZGFsYW0gc3R1ZGkgbG9uZ2l0dWRpbmFsLiB8IEd1bmFrYW4gbWV0b2RlIHN0YXRpc3RpayB1bnR1ayBtZW5lbnR1a2FuIHVrdXJhbiBzYW1wZWwgeWFuZyB0ZXBhdC4gUGVyaGl0dW5na2FuIGtlbXVuZ2tpbmFuIGFkYW55YSBkcm9wb3V0LiB8ICANCnwgKipLZW5kYWxhIEJpYXlhIGRhbiBXYWt0dSoqICAgICAgfCBCaWF5YSB0aW5nZ2kgdW50dWsgcGVuZ3VtcHVsYW4gZGF0YS4gS2V0ZXJsYW1iYXRhbiBkYWxhbSBtZW5qYW5na2F1IHBhcnRpc2lwYW4uIFBlcmx1bnlhIHBlcmFsYXRhbiBhdGF1IHBlcnNvbmVsIGtodXN1cy4gfCBHdW5ha2FuIG1ldG9kZSB5YW5nIGhlbWF0IGJpYXlhIHNlcGVydGkgc3VydmVpIG9ubGluZS4gT3RvbWF0aXNhc2kgcGVuZ3VtcHVsYW4gZGF0YS4gT3B0aW1hbGthbiBzdW1iZXIgZGF5YS4gfCAgDQoNCk1lbmdhdGFzaSB0YW50YW5nYW4gaW5pIG1lbWFzdGlrYW4gYmFod2EgcHJvc2VzIHBlbmdhbWJpbGFuIHNhbXBlbCBsZWJpaCBhbmRhbCwgZWZpc2llbiwgZGFuIG1ld2FraWxpIHBvcHVsYXNpIHNhc2FyYW4uIERlbmdhbiBtZW5lcmFwa2FuIHNvbHVzaSB5YW5nIGVmZWt0aWYsIHBlbmVsaXRpIGRhcGF0IG1lbWluaW1hbGthbiBrZXNhbGFoYW4gZGFuIG1lbmluZ2thdGthbiBrdWFsaXRhcyBzdHVkaSBtZXJla2Egc2VjYXJhIGtlc2VsdXJ1aGFuLg0KDQojIyAxLjcgQXBsaWthc2kgZGFsYW0gSW5kdXN0cmkgIA0KDQpQZW5nYW1iaWxhbiBzYW1wZWwgbWVtYWlua2FuIHBlcmFuIHBlbnRpbmcgZGkgYmVyYmFnYWkgaW5kdXN0cmksIG1lbXVuZ2tpbmthbiBvcmdhbmlzYXNpIHVudHVrIG1lbmd1bXB1bGthbiB3YXdhc2FuLCBtZW1idWF0IGtlcHV0dXNhbiB5YW5nIHRlcGF0LCBkYW4gbWVuZ29wdGltYWxrYW4gcHJvc2VzLiBCZXJpa3V0IGluaSBhZGFsYWggYXJlYSB1dGFtYSBkaSBtYW5hIHBlbmdhbWJpbGFuIHNhbXBlbCBkaWd1bmFrYW4gc2VjYXJhIGx1YXM6ICANCg0KfCAqKkluZHVzdHJpKiogICAgICAgICAgIHwgKipBcGxpa2FzaSoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipUdWp1YW4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIA0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICANCnwgKipSaXNldCBQYXNhcioqICAgICAgICB8IE1lbGFrdWthbiBzdXJ2ZWkgZGFuIGtlbG9tcG9rIGZva3VzLiAgICAgICB8IE1lbWFoYW1pIHByZWZlcmVuc2ksIHRyZW4sIGRhbiBwZXJpbGFrdSBwZWxhbmdnYW4uICAgICAgICAgfCAgDQp8ICoqUGVsYXlhbmFuIEtlc2VoYXRhbioqfCBNZW1wZWxhamFyaSBkYXRhIHBhc2llbiBkYW4gdWppIGtsaW5pcy4gICAgfCBNZW1wZXJraXJha2FuIHByZXZhbGVuc2kgcGVueWFraXQsIGVmZWt0aXZpdGFzIHBlbmdvYmF0YW4sIGRhbiB0cmVuIGtlc2VoYXRhbiBtYXN5YXJha2F0LiB8ICANCnwgKipLb250cm9sIEt1YWxpdGFzKiogICB8IE1lbWVyaWtzYSBzZWJhZ2lhbiBwcm9kdWsgZGFsYW0gcHJvc2VzIHByb2R1a3NpLiB8IE1lbWFzdGlrYW4ga3VhbGl0YXMgcHJvZHVrIGRhbiBrZXBhdHVoYW4gdGVyaGFkYXAgc3RhbmRhciBpbmR1c3RyaS4gfCAgDQp8ICoqS2V1YW5nYW4qKiAgICAgICAgICAgfCBNZW5nYW5hbGlzaXMgdHJhbnNha3NpIGtldWFuZ2FuIGRhbiB0cmVuIHBhc2FyLiB8IE1lbmlsYWkgcmlzaWtvLCBtZW5kZXRla3NpIHBlbmlwdWFuLCBkYW4gbWVtYnVhdCBrZXB1dHVzYW4gaW52ZXN0YXNpLiB8ICANCg0KRGVuZ2FuIG1lbmVyYXBrYW4gdGVrbmlrIHBlbmdhbWJpbGFuIHNhbXBlbCB5YW5nIHRlcGF0LCBpbmR1c3RyaSBkYXBhdCBtZW1wZXJvbGVoIHdhd2FzYW4geWFuZyBha3VyYXQgZGFuIGFuZGFsIHNla2FsaWd1cyBtZW1pbmltYWxrYW4ga2VzYWxhaGFuIGRhbiBiaWFzLiBIYWwgaW5pIG1lbWFzdGlrYW4gcGVuZ2FtYmlsYW4ga2VwdXR1c2FuIHlhbmcgbGViaWggYmFpaywgcGVuZ2hlbWF0YW4gYmlheWEsIGRhbiBwZW5pbmdrYXRhbiBlZmlzaWVuc2kgb3BlcmFzaW9uYWwu