Teori Resiko

Tugas 7


*Kontak : \(\downarrow\)*
Email
Instagram https://www.instagram.com/m_naufalardiansyah/
RPubs https://rpubs.com/muhamad_naufal/

7.3 Prinsip-prinsip Penetapan Harga

Di bagian ini, Anda akan belajar cara:

  • Menjelaskan prinsip-prinsip harga aktuarial yang umum
  • Menjelaskan sifat-sifat dari prinsip-prinsip harga
  • Memilih prinsip harga berdasarkan sifat yang diinginkan.

Pendekatan dalam penetapan harga berbeda-beda tergantung pada jenis kontrak. Sebagai contoh, produk mobil pribadi adalah produk yang tersedia secara luas di seluruh dunia dan dikenal sebagai bagian dari pasar asuransi umum ritel di Inggris. Di sini, kita dapat mengharapkan penetapan harga berdasarkan sejumlah besar kontrak independen, situasi di mana harapan kerugian memberikan titik awal yang sangat baik. Sebaliknya, seorang aktuaris mungkin ingin menetapkan harga untuk kontrak asuransi yang dikeluarkan kepada majikan besar yang mencakup manfaat kesehatan yang kompleks bagi ribuan karyawan. Dalam contoh ini, pengetahuan tentang seluruh distribusi kerugian potensial, bukan hanya nilai yang diharapkan, sangat penting untuk memulai negosiasi penetapan harga. Untuk mencakup berbagai aplikasi potensial, bagian ini menjelaskan prinsip-prinsip premi umum dan sifat-sifatnya yang dapat digunakan untuk memutuskan apakah suatu prinsip tertentu dapat diterapkan dalam situasi yang diberikan atau tidak.

7.3.1 Prinsip-Prinsip Premi

Bab ini memperkenalkan prinsip-prinsip penetapan harga aktuarial tradisional yang menyediakan harga berdasarkan distribusi kerugian asuransi saja; harga tidak tergantung pada permintaan asuransi atau aspek biaya lainnya seperti biaya-biaya. Diasumsikan bahwa kerugian \(X\) memiliki fungsi distribusi \(F(⋅)\) dan bahwa ada beberapa aturan (yang dalam matematika dikenal sebagai fungsi), katakanlah \(H\), yang mengambil \(F(⋅)\) ke dalam garis bilangan real positif, dilambangkan sebagai \(P=H(F)\). Untuk tujuan notasi, seringkali lebih nyaman untuk menggantikan variabel acak \(X\) dengan fungsinya dan menuliskan \(P=H(X)\). Tabel 7.1 menyediakan beberapa contoh.

Tabel 7.1. Prinsip-Prinsip Premi yang Umum

\[\small{ \begin{array}{ll} \text{Description } & \text{Definition } (H(X)) \\\hline \text{Net (pure) premium} & {\rm E}[X] \\ \text{Expected value} & (1+\alpha){\rm E}[X]\\ \text{Standard deviation} & {\rm E}[X]+\alpha ~SD(X)\\ \text{Variance} & {\rm E}[X]+\alpha ~{\rm Var}(X)\\ \text{Zero utility} & \text{solution of }u(w) = {\rm E} [u(w + P - X)]\\ \text{Exponential} & \frac{1}{\alpha} \log {\rm E} [e^{\alpha X}]\\ \hline \end{array} }\]

Sebuah prinsip premi mirip dengan ukuran risiko yang diperkenalkan pada Bagian 10.3. Secara matematis, keduanya adalah aturan yang memetakan variabel acak kerugian yang diminati menjadi nilai numerik. Dari sudut pandang praktis, prinsip premi memberikan panduan seberapa banyak asuransi akan membebankan biaya untuk menerima risiko \(X\). Sebaliknya, ukuran risiko mengkuantifikasi tingkat ketidakpastian, atau tingkat risiko, yang dapat digunakan oleh asuransi untuk memutuskan tingkat modal yang harus dipertahankan untuk tetap solvent.

Premi net, atau murni, pada dasarnya mengasumsikan tidak adanya ketidakpastian. Prinsip nilai harapan, deviasi standar, dan varian masing-masing menambahkan beban eksplisit untuk ketidakpastian melalui parameter risiko \(α≥0\). Untuk prinsip nol utilitas, kita menganggap perusahaan asuransi dengan fungsi utilitas \(u(⋅)\) dan kekayaan w sama-sama tidak peduli untuk menerima dan tidak menerima risiko \(X\). Dalam hal ini, \(P\) dikenal sebagai harga kesetaraan atau, dalam ekonomi, harga reservasi. Dengan utilitas eksponensial, prinsip nol utilitas berkurang menjadi prinsip premi eksponensial, yaitu, mengasumsikan \(u(x)=(1−e−αx)/α\).

Untuk nilai parameter risiko yang kecil, prinsip varian hampir sama dengan prinsip premi eksponensial, seperti yang diilustrasikan dalam kasus khusus berikut.

7.3.2 Sifat Prinsip Premium

Sifat-sifat dari prinsip-prinsip premi membantu memandu pemilihan prinsip premi dalam aplikasi. Tabel 7.2 menyediakan contoh-contoh sifat-sifat dari prinsip-prinsip premi.

Tabel 7.2. Properti Umum dari Prinsip-prinsip Premium.

\[\small{ \begin{array}{ll} \text{Description } & \text{Definition }\\\hline \text{Nonnegative loading} & H(X) \ge {\rm E}[X] \\ \text{Additivity} & H(X_1+X_2) = H(X_1) + H(X_2), \text{ for independent }X_1, X_2 \\ \text{Scale invariance} & H(cX) = c H(X), \text{ for }c \ge 0 \\ \text{Consistency} & H(c+X) = c + H(X)\\ \text{No rip-off } & H(X) \le \max \{X\}\\ \hline \end{array} }\]

Ini hanya merupakan subset dari banyak properti yang dikutip dalam literatur aktuaria. Sebagai contoh, makalah tinjauan dari Young (2014) mencantumkan 15 properti. Lihat juga properti yang dijelaskan sebagai aksioma kohesif yang kami perkenalkan untuk pengukur risiko dalam Bagian 10.3.

Beberapa properti yang tercantum di Tabel 7.2 ringan dalam arti bahwa properti tersebut hampir selalu terpenuhi. Misalnya, properti tidak ada penipuan menunjukkan bahwa biaya premi akan lebih kecil dari nilai kerugian maksimal \(X\) (di sini, kami menggunakan notasi \(max{X}\) untuk nilai maksimal ini yang didefinisikan sebagai “essential supremum” dalam matematika). Properti lain mungkin tidak begitu ringan. Sebagai contoh, untuk portofolio risiko independen, aktuaris mungkin ingin agar properti aditivitas terpenuhi. Mudah dilihat bahwa properti ini terpenuhi untuk prinsip premi nilai harapan, varians, dan eksponensial tetapi tidak untuk prinsip simpangan baku. Contoh lain adalah properti konsistensi yang tidak terpenuhi untuk prinsip nilai harapan ketika parameter pemuatan risiko \(α\) positif.

Prinsip invariansi skala dikenal sebagai homogenitas derajat satu dalam ekonomi. Misalnya, ini memungkinkan kita untuk bekerja dengan mata uang yang berbeda (misalnya, dari dolar ke euro) serta sejumlah aplikasi lainnya dan akan dibahas lebih lanjut dalam Bagian 7.4 berikutnya. Meskipun prinsip yang secara umum diterima, kami mencatat bahwa prinsip ini tidak berlaku untuk nilai besar \(X\) yang mungkin berbatasan dengan kendala surplus dari perusahaan asuransi; jika perusahaan asuransi memiliki probabilitas besar menjadi tidak likuid, maka perusahaan asuransi tersebut mungkin tidak ingin menggunakan penetapan harga linear. Mudah diperiksa bahwa prinsip ini terpenuhi untuk prinsip nilai harapan dan simpangan baku, meskipun tidak untuk prinsip varians dan eksponensial.

7.4 Risiko Heterogen


Di bagian ini, Anda akan belajar bagaimana:

  • Mendeskripsikan paparan asuransi dalam hal distribusi skala
  • Menjelaskan paparan dalam hal jenis-jenis asuransi umum seperti asuransi mobil dan asuransi pemilik rumah
  • Mendeskripsikan bagaimana faktor rating dapat digunakan untuk memperhitungkan heterogenitas di antara risiko dalam suatu kumpulan
  • Mengukur dampak faktor rating melalui relativitas

Seperti yang dicatat di Bagian 7.1, terdapat banyak variasi dalam risiko yang diasuransikan, fitur kontrak, dan orang yang diasuransikan. Sebagai contoh, Anda mungkin memiliki saudara kembar yang bekerja di kota yang sama dan menghasilkan jumlah uang yang relatif sama. Namun, ketika memilih pilihan dalam asuransi sewa untuk mengasuransikan isi apartemen Anda, Anda dapat membayangkan perbedaan dalam jumlah isi yang akan diasuransikan, pilihan deductible untuk jumlah risiko yang ditanggung, dan mungkin juga perbedaan tingkat ketidakpastian mengingat tingkat keamanan lingkungan tempat tinggal Anda. Orang-orang dan risiko yang mereka asuransikan berbeda.

Ketika memikirkan tentang kumpulan risiko yang berbeda (heterogen), satu opsi adalah untuk menetapkan harga sama untuk semua risiko. Hal ini umum terjadi dalam program asuransi banjir atau kesehatan yang disponsori oleh pemerintah. Namun, hal ini juga umum terjadi untuk menetapkan harga yang berbeda di mana perbedaan tersebut sebanding dengan risiko yang diasuransikan.

7.4.1 Paparan Risiko

Salah satu cara untuk membuat risiko heterogen dapat dibandingkan adalah melalui konsep exposure. Untuk menjelaskan exposure, mari gunakan distribusi skala yang telah dipelajari pada Bab 3. Untuk mengingat kembali distribusi skala, misalkan \(X\) memiliki distribusi parametrik dan kita mendefinisikan versi yang diskalakan sebagai \(R=X/E, E>0\) . Jika \(R\) ada dalam keluarga parametrik yang sama dengan \(X\) , maka distribusinya dikatakan sebagai distribusi skala. Seperti yang telah kita lihat, distribusi gamma, eksponensial, dan Pareto adalah contoh dari distribusi skala.

Secara intuitif, ide di balik exposure adalah untuk membuat risiko lebih dapat dibandingkan satu sama lain. Misalnya, mungkin terdapat risiko \(X_1,...,X_n\) berasal dari distribusi yang berbeda dan namun, dengan memilih exposure yang tepat, tarif \(R_1,...,R_n\) berasal dari distribusi yang sama. Di sini, kita menafsirkan tarif \(R_i=X_i/E_i\) sebagai kerugian dibagi dengan exposure.

Tabel 7.3 menyediakan beberapa contoh. Kami mencatat bahwa tabel ini mengacu pada tahun mobil dan rumah yang “diperoleh”, konsep yang akan dijelaskan di Bagian 7.5.

Tabel 7.3. Paparan yang Biasa Digunakan dalam Jenis Asuransi yang Berbeda.

\[\small{ \begin{matrix} \begin{array}{ll} \text{Type of Insurance} & \text{Exposure Basis} \\\hline \text{Personal Automobile} & \text{Earned Car Year, Amount of Insurance Coverage} \\ \text{Homeowners} & \text{Earned House Year, Amount of Insurance Coverage}\\ \text{Workers Compensation} & \text{Payroll}\\ \text{Commercial General Liability} & \text{Sales Revenue, Payroll, Square Footage, Number of Units}\\ \text{Commercial Business Property} & \text{Amount of Insurance Coverage}\\ \text{Physician's Professional Liability} & \text{Number of Physician Years}\\ \text{Professional Liability} & \text{Number of Professionals (e.g., Lawyers or Accountants)}\\ \text{Personal Articles Floater} & \text{Value of Item} \\ \hline \end{array} \end{matrix} }\]

Sebuah paparan adalah jenis faktor penilaian, konsep yang kami definisikan secara eksplisit di Bagian selanjutnya, yaitu 7.4.2. Biasanya, ini adalah faktor penilaian yang paling penting, sangat penting sehingga premi dan kerugian dikutip secara “per paparan”.

Untuk pemodelan frekuensi dan keparahan, biasanya dipikirkan bahwa aspek frekuensi proporsional terhadap paparan dan aspek keparahan dalam hal kerugian per klaim (tidak bergantung pada paparan). Namun, hal ini tidak mencakup seluruh cerita. Untuk banyak jenis bisnis, paparan yang proporsional terhadap inflasi sangat nyaman. Inflasi biasanya dilihat sebagai tidak terkait dengan frekuensi tetapi proporsional terhadap keparahan.

Kriteria untuk Memilih Paparan

Sebuah dasar paparan harus memenuhi kriteria berikut. Ini harus:

  • menjadi ukuran yang akurat dari paparan kuantitatif terhadap kerugian,
  • mudah bagi perusahaan asuransi untuk menentukan (pada saat kebijakan dimulai) dan tidak dapat dimanipulasi oleh tertanggung,
  • mudah dipahami oleh tertanggung dan dapat dihitung oleh perusahaan asuransi, memperhatikan setiap dasar paparan yang ada sebelumnya yang telah ditetapkan dalam industri, dan
  • untuk beberapa jenis bisnis, proporsional terhadap inflasi. Dengan cara ini, tarif tidak sensitif terhadap perubahan nilai uang dari waktu ke waktu karena perubahan ini tercakup dalam dasar paparan.

Untuk menjelaskan, pertimbangkan cakupan mobil pribadi. Sebagai gantinya dari dasar paparan “tahun mobil yang diperoleh”, sebuah ukuran yang lebih akurat dari paparan kuantitatif terhadap kerugian mungkin adalah jumlah mil yang dikemudikan. Secara historis, pengukuran ini sulit ditentukan pada saat kebijakan diterbitkan dan rentan terhadap manipulasi oleh tertanggung sehingga masih tidak biasa digunakan. Perangkat modern telematika yang memungkinkan pencatatan mil yang akurat sedang mengubah penggunaan variabel ini di beberapa pasar.

Sebagai contoh lain, ukuran paparan dalam properti bisnis komersial, misalnya asuransi kebakaran, umumnya adalah jumlah cakupan asuransi. Ketika nilai properti tumbuh dengan inflasi, jumlah cakupan asuransi juga akan bertambah. Dengan demikian, tarif yang dikutip per jumlah cakupan asuransi kurang sensitif terhadap inflasi daripada sebaliknya.

7.4.2 Faktor Penilaian

Faktor penilaian, atau variabel penilaian, adalah karakteristik dari pemegang polis atau risiko yang diasuransikan yang mempengaruhi tarif. Sebagai contoh, ketika Anda membeli asuransi mobil, kemungkinan perusahaan asuransi memiliki tarif yang berbeda berdasarkan usia, jenis kelamin, jenis mobil, tempat parkir mobil, riwayat kecelakaan, dan sebagainya. Variabel-variabel ini dikenal sebagai faktor penilaian. Meskipun beberapa variabel dapat bersifat kontinu, seperti usia, sebagian besar bersifat kategorikal - faktor adalah label yang digunakan untuk variabel kategorikal. Bahkan, bahkan dengan variabel kontinu seperti usia, umumnya dilakukan kategorisasi dengan membuat kelompok seperti “muda”, “menengah”, dan “tua” untuk tujuan penilaian.

Tabel 7.4 hanya memberikan sedikit contoh. Di banyak yurisdiksi, pasar asuransi pribadi (seperti asuransi mobil dan rumah) sangat kompetitif - menggunakan 10 atau 20 variabel untuk tujuan penilaian tidak jarang terjadi.

Tabel 7.4. Faktor Penilaian yang Umum Digunakan dalam Jenis Asuransi yang Berbeda.

\[\small{ \begin{matrix} \begin{array}{l|l}\hline \text{Type of Insurance} & \text{Rating Factors}\\\hline\hline \text{Personal Automobile} & \text{Driver Age and Gender, Model Year, Accident History}\\ \text{Homeowners} & \text{Amount of Insurance, Age of Home, Construction Type}\\ \text{Workers Compensation} & \text{Occupation Class Code}\\ \text{Commercial General Liability} & \text{Classification, Territory, Limit of Liability}\\ \text{Medical Malpractice} & \text{Specialty, Territory, Limit of Liability}\\ \text{Commercial Automobile} & \text{Driver Class, Territory, Limit of Liability}\\ \hline \end{array} \end{matrix} }\]

Contoh. Kerugian dan Premi Berdasarkan Jumlah Asuransi dan Wilayah. Untuk mengilustrasikan, Tabel 7.5 menyajikan satu set data fiktif kecil dari Werner dan Modlin (2016). Data terdiri dari kerugian dan biaya penyesuaian kerugian (LossLAE), yang didekomposisi berdasarkan tiga tingkat jumlah asuransi (AOI), dan tiga wilayah (Terr). Untuk setiap kombinasi AOI dan Terr, kami juga memiliki jumlah kebijakan yang dikeluarkan, yang diberikan sebagai Exposure.

Tabel 7.5. Kerugian dan Premi Berdasarkan Jumlah Asuransi dan Wilayah.

\[\small{ \begin{matrix} \begin{array}{cc|rrr} \hline AOI & Terr & Exposure & LossLAE & Premium \\\hline \text{Low} & 1 & 7 & 210.93 & 335.99 \\ \text{Medium} & 1 & 108 & 4,458.05 & 6,479.87 \\ \text{High} & 1 & 179 & 10,565.98 & 14,498.71 \\\hline \text{Low} & 2 & 130 & 6,206.12 & 10,399.79 \\ \text{Medium} & 2 & 126 & 8,239.95 & 12,599.75 \\ \text{High} & 2 & 129 & 12,063.68 & 17,414.65 \\\hline \text{Low} & 3 & 143 & 8,441.25 & 14,871.70 \\ \text{Medium} & 3 & 126 & 10,188.70 & 16,379.68 \\ \text{High} & 3 & 40 & 4,625.34 & 7,019.86 \\ \hline \text{Total} & & 988 & 65,000.00 & 99,664.01 \\\hline \hline \end{array} \end{matrix} }\]

Dalam kasus ini, faktor penilaian AOI dan Terr menghasilkan sembilan sel. Perhatikan bahwa kita dapat menggabungkan sel “wilayah satu dengan jumlah asuransi rendah” dengan sel lain karena hanya ada 7 kebijakan di sel tersebut. Melakukan hal ini adalah wajar - pertimbangan semacam ini merupakan salah satu tugas utama analis. Garis besar dalam pemilihan variabel dijelaskan pada Bab 8, termasuk Pelengkap Teknis TS 8.B. Sebagai alternatif, kita juga dapat memperkuat informasi tentang sel (Terr 1, AOI Rendah) dengan “meminjam” informasi dari sel tetangga (misalnya, wilayah lain dengan AOI yang sama, atau jumlah AOI yang berbeda di dalam Terr 1). Ini adalah subjek kredibilitas yang diperkenalkan dalam Bab 9.


Untuk memahami dampak faktor penilaian, umumnya digunakan relatif. Relatif membandingkan risiko yang diharapkan pada tingkat faktor penilaian tertentu dengan nilai dasar yang diterima. Dalam buku ini, kami bekerja dengan relatif yang didefinisikan melalui rasio; juga mungkin untuk mendefinisikan relatif melalui selisih aritmatika. Oleh karena itu, relatif kami didefinisikan sebagai:

\[\text{Relativity}_j = \frac{\text{(Loss/Exposure)}_j}{\text{(Loss/Exposure)}_{Base}} .\]


Contoh. Kerugian dan Premi Berdasarkan Jumlah Asuransi dan Wilayah - Lanjutan. Metode klasifikasi tradisional hanya mempertimbangkan satu variabel klasifikasi pada satu waktu - mereka univariat. Oleh karena itu, jika kami ingin mendapatkan relatif untuk kerugian dan biaya penyesuaian kerugian (LossLAE) berdasarkan jumlah asuransi, kami mungkin akan menjumlahkan wilayah untuk mendapatkan informasi yang ditampilkan di Tabel 7.6.

Tabel 7.6. Kerugian dan Relatifitas berdasarkan Jumlah Asuransi.

\[\small{ \begin{matrix} \begin{array}{c|rrrr} \hline AOI & Exposure & LossLAE & Loss/Exp &Relativity \\\hline \text{Low} & 280 & 14858.3 & 53.065 &0.835 \\ \text{Medium} & 360 & 22886.7 & 63.574 &1.000 \\ \text{High} & 348 & 27255.0 & 78.319 & 1.232 \\\hline \text{Total} & 988 & 65,000.0 & \\\hline \hline \end{array} \end{matrix} }\]

Oleh karena itu, kerugian dan biaya penyesuaian kerugian per unit paparan adalah 23,2% lebih tinggi untuk risiko dengan jumlah asuransi tinggi dibandingkan dengan yang memiliki jumlah asuransi sedang. Relatifitas ini tidak mengontrol wilayah.


Pengenalan faktor rating memungkinkan analis untuk membuat sel yang mendefinisikan koleksi risiko kecil - tujuannya adalah memilih kombinasi faktor rating yang tepat sehingga semua risiko dalam sel dapat diperlakukan secara sama. Dalam terminologi statistik, kita ingin semua risiko dalam sel memiliki distribusi yang sama (tergantung pada penskalaan oleh variabel paparan). Ini adalah dasar dari penetapan harga asuransi. Semua risiko dalam sel memiliki harga yang sama per paparan, namun risiko dari sel yang berbeda dapat memiliki harga yang berbeda.

Dengan kata lain, perusahaan asuransi diizinkan untuk menetapkan tarif yang berbeda untuk risiko yang berbeda; diskriminasi risiko legal dan dilakukan secara rutin. Namun demikian, dasar diskriminasi, pemilihan faktor risiko, adalah subjek dari debat yang luas. Komunitas aktuaria, manajemen asuransi, regulator, dan advokat konsumen semua merupakan peserta aktif dalam debat ini. Lampiran Teknis TS 7.A menjelaskan masalah ini dari sudut pandang regulasi.

Selain kriteria statistik untuk menilai signifikansi faktor rating, analis harus memperhatikan masalah bisnis perusahaan (misalnya, apakah mahal untuk menerapkan faktor rating?), kriteria sosial (apakah variabel berada di bawah kendali pemegang polis?), kriteria hukum (apakah ada regulasi yang melarang penggunaan faktor rating seperti gender?), dan masalah sosial lainnya. Pertanyaan-pertanyaan ini sebagian besar di luar cakupan teks ini. Namun demikian, karena mereka sangat mendasar untuk penetapan harga asuransi, gambaran singkat diberikan di Bab 8, termasuk Lampiran Teknis TS 8.B.

LS0tDQp0aXRsZTogIlRlb3JpIFJlc2lrbyAiDQpzdWJ0aXRsZTogIlR1Z2FzIDciDQphdXRob3I6ICJNdWhhbW1hZCBOYXVmYWwgQXJkaWFuc3lhaCAoMjAyMDQ5MjAwMTcpIg0KZGF0ZTogICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cm9ib2Jvb2s6ICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQoNCi0tLQ0KDQoNCg0KDQo8YnI+DQoNCg0KPGltZyBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IC01MHB4IDUwcHggMHB4IDUwcHg7IHdpZHRoOjI1JSIgc3JjPSJuYXVmYWwuanBlZyIvPiANCg0KfA0KOi0tLS0gfDotLS0tDQoqS29udGFrfCAqOiAqJFxkb3duYXJyb3ckKg0KRW1haWx8IG5hdWZhbDM0MzNAZ21haWwuY29tDQpJbnN0YWdyYW0gfCBodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL21fbmF1ZmFsYXJkaWFuc3lhaC8gDQpSUHVicyAgfCBodHRwczovL3JwdWJzLmNvbS9tdWhhbWFkX25hdWZhbC8gDQoNCioqKg0KDQojIDcuMyBQcmluc2lwLXByaW5zaXAgUGVuZXRhcGFuIEhhcmdhDQoNCkRpIGJhZ2lhbiBpbmksIEFuZGEgYWthbiBiZWxhamFyIGNhcmE6DQoNCi0gTWVuamVsYXNrYW4gcHJpbnNpcC1wcmluc2lwIGhhcmdhIGFrdHVhcmlhbCB5YW5nIHVtdW0NCi0gTWVuamVsYXNrYW4gc2lmYXQtc2lmYXQgZGFyaSBwcmluc2lwLXByaW5zaXAgaGFyZ2ENCi0gTWVtaWxpaCBwcmluc2lwIGhhcmdhIGJlcmRhc2Fya2FuIHNpZmF0IHlhbmcgZGlpbmdpbmthbi4NCg0KKioqDQoNClBlbmRla2F0YW4gZGFsYW0gcGVuZXRhcGFuIGhhcmdhIGJlcmJlZGEtYmVkYSB0ZXJnYW50dW5nIHBhZGEgamVuaXMga29udHJhay4gU2ViYWdhaSBjb250b2gsIHByb2R1ayBtb2JpbCBwcmliYWRpIGFkYWxhaCBwcm9kdWsgeWFuZyB0ZXJzZWRpYSBzZWNhcmEgbHVhcyBkaSBzZWx1cnVoIGR1bmlhIGRhbiBkaWtlbmFsIHNlYmFnYWkgYmFnaWFuIGRhcmkgcGFzYXIgYXN1cmFuc2kgdW11bSByaXRlbCBkaSBJbmdncmlzLiBEaSBzaW5pLCBraXRhIGRhcGF0IG1lbmdoYXJhcGthbiBwZW5ldGFwYW4gaGFyZ2EgYmVyZGFzYXJrYW4gc2VqdW1sYWggYmVzYXIga29udHJhayBpbmRlcGVuZGVuLCBzaXR1YXNpIGRpIG1hbmEgaGFyYXBhbiBrZXJ1Z2lhbiBtZW1iZXJpa2FuIHRpdGlrIGF3YWwgeWFuZyBzYW5nYXQgYmFpay4gU2ViYWxpa255YSwgc2VvcmFuZyBha3R1YXJpcyBtdW5na2luIGluZ2luIG1lbmV0YXBrYW4gaGFyZ2EgdW50dWsga29udHJhayBhc3VyYW5zaSB5YW5nIGRpa2VsdWFya2FuIGtlcGFkYSBtYWppa2FuIGJlc2FyIHlhbmcgbWVuY2FrdXAgbWFuZmFhdCBrZXNlaGF0YW4geWFuZyBrb21wbGVrcyBiYWdpIHJpYnVhbiBrYXJ5YXdhbi4gRGFsYW0gY29udG9oIGluaSwgcGVuZ2V0YWh1YW4gdGVudGFuZyBzZWx1cnVoIGRpc3RyaWJ1c2kga2VydWdpYW4gcG90ZW5zaWFsLCBidWthbiBoYW55YSBuaWxhaSB5YW5nIGRpaGFyYXBrYW4sIHNhbmdhdCBwZW50aW5nIHVudHVrIG1lbXVsYWkgbmVnb3NpYXNpIHBlbmV0YXBhbiBoYXJnYS4gVW50dWsgbWVuY2FrdXAgYmVyYmFnYWkgYXBsaWthc2kgcG90ZW5zaWFsLCBiYWdpYW4gaW5pIG1lbmplbGFza2FuIHByaW5zaXAtcHJpbnNpcCBwcmVtaSB1bXVtIGRhbiBzaWZhdC1zaWZhdG55YSB5YW5nIGRhcGF0IGRpZ3VuYWthbiB1bnR1ayBtZW11dHVza2FuIGFwYWthaCBzdWF0dSBwcmluc2lwIHRlcnRlbnR1IGRhcGF0IGRpdGVyYXBrYW4gZGFsYW0gc2l0dWFzaSB5YW5nIGRpYmVyaWthbiBhdGF1IHRpZGFrLg0KDQojIyA3LjMuMSBQcmluc2lwLVByaW5zaXAgUHJlbWkNCg0KQmFiIGluaSBtZW1wZXJrZW5hbGthbiBwcmluc2lwLXByaW5zaXAgcGVuZXRhcGFuIGhhcmdhIGFrdHVhcmlhbCB0cmFkaXNpb25hbCB5YW5nIG1lbnllZGlha2FuIGhhcmdhIGJlcmRhc2Fya2FuIGRpc3RyaWJ1c2kga2VydWdpYW4gYXN1cmFuc2kgc2FqYTsgaGFyZ2EgdGlkYWsgdGVyZ2FudHVuZyBwYWRhIHBlcm1pbnRhYW4gYXN1cmFuc2kgYXRhdSBhc3BlayBiaWF5YSBsYWlubnlhIHNlcGVydGkgYmlheWEtYmlheWEuIERpYXN1bXNpa2FuIGJhaHdhIGtlcnVnaWFuICRYJCBtZW1pbGlraSBmdW5nc2kgZGlzdHJpYnVzaSAkRijii4UpJA0KZGFuIGJhaHdhIGFkYSBiZWJlcmFwYSBhdHVyYW4gKHlhbmcgZGFsYW0gbWF0ZW1hdGlrYSBkaWtlbmFsIHNlYmFnYWkgZnVuZ3NpKSwga2F0YWthbmxhaCAkSCQsIHlhbmcgbWVuZ2FtYmlsICRGKOKLhSkkIGtlIGRhbGFtIGdhcmlzIGJpbGFuZ2FuIHJlYWwgcG9zaXRpZiwgZGlsYW1iYW5na2FuIHNlYmFnYWkgJFA9SChGKSQuIFVudHVrIHR1anVhbiBub3Rhc2ksIHNlcmluZ2thbGkgbGViaWggbnlhbWFuIHVudHVrIG1lbmdnYW50aWthbiB2YXJpYWJlbCBhY2FrICRYJCBkZW5nYW4gZnVuZ3NpbnlhIGRhbiBtZW51bGlza2FuICRQPUgoWCkkLiBUYWJlbCA3LjEgbWVueWVkaWFrYW4gYmViZXJhcGEgY29udG9oLg0KDQoqKlRhYmVsIDcuMS4qKiBQcmluc2lwLVByaW5zaXAgUHJlbWkgeWFuZyBVbXVtDQoNCiQkXHNtYWxsew0KXGJlZ2lue2FycmF5fXtsbH0NClx0ZXh0e0Rlc2NyaXB0aW9uIH0gJiBcdGV4dHtEZWZpbml0aW9uIH0gKEgoWCkpIFxcXGhsaW5lDQpcdGV4dHtOZXQgKHB1cmUpIHByZW1pdW19ICYgIHtccm0gRX1bWF0gXFwNClx0ZXh0e0V4cGVjdGVkIHZhbHVlfSAmICgxK1xhbHBoYSl7XHJtIEV9W1hdXFwNClx0ZXh0e1N0YW5kYXJkIGRldmlhdGlvbn0gICYge1xybSBFfVtYXStcYWxwaGEgflNEKFgpXFwNClx0ZXh0e1ZhcmlhbmNlfSAmIHtccm0gRX1bWF0rXGFscGhhIH57XHJtIFZhcn0oWClcXA0KXHRleHR7WmVybyB1dGlsaXR5fSAgJiBcdGV4dHtzb2x1dGlvbiBvZiB9dSh3KSA9IHtccm0gRX0gW3UodyArIFAgLSBYKV1cXA0KXHRleHR7RXhwb25lbnRpYWx9ICAmIFxmcmFjezF9e1xhbHBoYX0gXGxvZyB7XHJtIEV9IFtlXntcYWxwaGEgWH1dXFwNClxobGluZQ0KXGVuZHthcnJheX0NCn0kJA0KDQpTZWJ1YWggcHJpbnNpcCBwcmVtaSBtaXJpcCBkZW5nYW4gKnVrdXJhbiByaXNpa28qIHlhbmcgZGlwZXJrZW5hbGthbiBwYWRhIEJhZ2lhbiAxMC4zLiBTZWNhcmEgbWF0ZW1hdGlzLCBrZWR1YW55YSBhZGFsYWggYXR1cmFuIHlhbmcgbWVtZXRha2FuIHZhcmlhYmVsIGFjYWsga2VydWdpYW4geWFuZyBkaW1pbmF0aSBtZW5qYWRpIG5pbGFpIG51bWVyaWsuIERhcmkgc3VkdXQgcGFuZGFuZyBwcmFrdGlzLCBwcmluc2lwIHByZW1pIG1lbWJlcmlrYW4gcGFuZHVhbiBzZWJlcmFwYSBiYW55YWsgYXN1cmFuc2kgYWthbiBtZW1iZWJhbmthbiBiaWF5YSB1bnR1ayBtZW5lcmltYSByaXNpa28gJFgkLiBTZWJhbGlrbnlhLCB1a3VyYW4gcmlzaWtvIG1lbmdrdWFudGlmaWthc2kgdGluZ2thdCBrZXRpZGFrcGFzdGlhbiwgYXRhdSB0aW5na2F0IHJpc2lrbywgeWFuZyBkYXBhdCBkaWd1bmFrYW4gb2xlaCBhc3VyYW5zaSB1bnR1ayBtZW11dHVza2FuIHRpbmdrYXQgbW9kYWwgeWFuZyBoYXJ1cyBkaXBlcnRhaGFua2FuIHVudHVrIHRldGFwIHNvbHZlbnQuDQoNClByZW1pIG5ldCwgYXRhdSBtdXJuaSwgcGFkYSBkYXNhcm55YSBtZW5nYXN1bXNpa2FuIHRpZGFrIGFkYW55YSBrZXRpZGFrcGFzdGlhbi4gUHJpbnNpcCBuaWxhaSBoYXJhcGFuLCBkZXZpYXNpIHN0YW5kYXIsIGRhbiB2YXJpYW4gbWFzaW5nLW1hc2luZyBtZW5hbWJhaGthbiBiZWJhbiBla3NwbGlzaXQgdW50dWsga2V0aWRha3Bhc3RpYW4gbWVsYWx1aSBwYXJhbWV0ZXIgcmlzaWtvICTOseKJpTAkLiBVbnR1ayBwcmluc2lwIG5vbCB1dGlsaXRhcywga2l0YSBtZW5nYW5nZ2FwIHBlcnVzYWhhYW4gYXN1cmFuc2kgZGVuZ2FuIGZ1bmdzaSB1dGlsaXRhcyAkdSjii4UpJCBkYW4ga2VrYXlhYW4gKncqIHNhbWEtc2FtYSB0aWRhayBwZWR1bGkgdW50dWsgbWVuZXJpbWEgZGFuIHRpZGFrIG1lbmVyaW1hIHJpc2lrbyAkWCQuIERhbGFtIGhhbCBpbmksICRQJCBkaWtlbmFsIHNlYmFnYWkgaGFyZ2Ega2VzZXRhcmFhbiBhdGF1LCBkYWxhbSBla29ub21pLCBoYXJnYSByZXNlcnZhc2kuIERlbmdhbiB1dGlsaXRhcyBla3Nwb25lbnNpYWwsIHByaW5zaXAgbm9sIHV0aWxpdGFzIGJlcmt1cmFuZyBtZW5qYWRpIHByaW5zaXAgcHJlbWkgZWtzcG9uZW5zaWFsLCB5YWl0dSwgbWVuZ2FzdW1zaWthbiAkdSh4KT0oMeKIkmXiiJLOsXgpL86xJC4NCg0KVW50dWsgbmlsYWkgcGFyYW1ldGVyIHJpc2lrbyB5YW5nIGtlY2lsLCBwcmluc2lwIHZhcmlhbiBoYW1waXIgc2FtYSBkZW5nYW4gcHJpbnNpcCBwcmVtaSBla3Nwb25lbnNpYWwsIHNlcGVydGkgeWFuZyBkaWlsdXN0cmFzaWthbiBkYWxhbSBrYXN1cyBraHVzdXMgYmVyaWt1dC4NCg0KIyMgNy4zLjIgU2lmYXQgUHJpbnNpcCBQcmVtaXVtDQoNClNpZmF0LXNpZmF0IGRhcmkgcHJpbnNpcC1wcmluc2lwIHByZW1pIG1lbWJhbnR1IG1lbWFuZHUgcGVtaWxpaGFuIHByaW5zaXAgcHJlbWkgZGFsYW0gYXBsaWthc2kuIFRhYmVsIDcuMiBtZW55ZWRpYWthbiBjb250b2gtY29udG9oIHNpZmF0LXNpZmF0IGRhcmkgcHJpbnNpcC1wcmluc2lwIHByZW1pLg0KDQoqKlRhYmVsIDcuMi4qKiBQcm9wZXJ0aSBVbXVtIGRhcmkgUHJpbnNpcC1wcmluc2lwIFByZW1pdW0uDQoNCiQkXHNtYWxsew0KXGJlZ2lue2FycmF5fXtsbH0NClx0ZXh0e0Rlc2NyaXB0aW9uIH0gJiBcdGV4dHtEZWZpbml0aW9uIH1cXFxobGluZQ0KXHRleHR7Tm9ubmVnYXRpdmUgbG9hZGluZ30gJiBIKFgpIFxnZSB7XHJtIEV9W1hdIFxcDQpcdGV4dHtBZGRpdGl2aXR5fSAmIEgoWF8xK1hfMikgPSBIKFhfMSkgKyBIKFhfMiksIFx0ZXh0eyBmb3IgaW5kZXBlbmRlbnQgfVhfMSwgWF8yICBcXA0KXHRleHR7U2NhbGUgaW52YXJpYW5jZX0gICYgSChjWCkgPSBjIEgoWCksIFx0ZXh0eyBmb3IgfWMgXGdlIDAgXFwNClx0ZXh0e0NvbnNpc3RlbmN5fSAmIEgoYytYKSA9IGMgKyBIKFgpXFwNClx0ZXh0e05vIHJpcC1vZmYgfSAgJiBIKFgpIFxsZSBcbWF4IFx7WFx9XFwNClxobGluZQ0KXGVuZHthcnJheX0NCn0kJA0KDQpJbmkgaGFueWEgbWVydXBha2FuIHN1YnNldCBkYXJpIGJhbnlhayBwcm9wZXJ0aSB5YW5nIGRpa3V0aXAgZGFsYW0gbGl0ZXJhdHVyIGFrdHVhcmlhLiBTZWJhZ2FpIGNvbnRvaCwgbWFrYWxhaCB0aW5qYXVhbiBkYXJpIFlvdW5nICgyMDE0KSBtZW5jYW50dW1rYW4gMTUgcHJvcGVydGkuIExpaGF0IGp1Z2EgcHJvcGVydGkgeWFuZyBkaWplbGFza2FuIHNlYmFnYWkgYWtzaW9tYSBrb2hlc2lmIHlhbmcga2FtaSBwZXJrZW5hbGthbiB1bnR1ayBwZW5ndWt1ciByaXNpa28gZGFsYW0gQmFnaWFuIDEwLjMuDQoNCkJlYmVyYXBhIHByb3BlcnRpIHlhbmcgdGVyY2FudHVtIGRpIFRhYmVsIDcuMiByaW5nYW4gZGFsYW0gYXJ0aSBiYWh3YSBwcm9wZXJ0aSB0ZXJzZWJ1dCBoYW1waXIgc2VsYWx1IHRlcnBlbnVoaS4gTWlzYWxueWEsIHByb3BlcnRpIHRpZGFrIGFkYSBwZW5pcHVhbiBtZW51bmp1a2thbiBiYWh3YSBiaWF5YSBwcmVtaSBha2FuIGxlYmloIGtlY2lsIGRhcmkgbmlsYWkga2VydWdpYW4gbWFrc2ltYWwgJFgkIChkaSBzaW5pLCBrYW1pIG1lbmdndW5ha2FuIG5vdGFzaSAkbWF4e1h9JCB1bnR1ayBuaWxhaSBtYWtzaW1hbCBpbmkgeWFuZyBkaWRlZmluaXNpa2FuIHNlYmFnYWkgImVzc2VudGlhbCBzdXByZW11bSIgZGFsYW0gbWF0ZW1hdGlrYSkuIFByb3BlcnRpIGxhaW4gbXVuZ2tpbiB0aWRhayBiZWdpdHUgcmluZ2FuLiBTZWJhZ2FpIGNvbnRvaCwgdW50dWsgcG9ydG9mb2xpbyByaXNpa28gaW5kZXBlbmRlbiwgYWt0dWFyaXMgbXVuZ2tpbiBpbmdpbiBhZ2FyIHByb3BlcnRpIGFkaXRpdml0YXMgdGVycGVudWhpLiBNdWRhaCBkaWxpaGF0IGJhaHdhIHByb3BlcnRpIGluaSB0ZXJwZW51aGkgdW50dWsgcHJpbnNpcCBwcmVtaSBuaWxhaSBoYXJhcGFuLCB2YXJpYW5zLCBkYW4gZWtzcG9uZW5zaWFsIHRldGFwaSB0aWRhayB1bnR1ayBwcmluc2lwIHNpbXBhbmdhbiBiYWt1LiBDb250b2ggbGFpbiBhZGFsYWggcHJvcGVydGkga29uc2lzdGVuc2kgeWFuZyB0aWRhayB0ZXJwZW51aGkgdW50dWsgcHJpbnNpcCBuaWxhaSBoYXJhcGFuIGtldGlrYSBwYXJhbWV0ZXIgcGVtdWF0YW4gcmlzaWtvICTOsSQgcG9zaXRpZi4NCg0KUHJpbnNpcCBpbnZhcmlhbnNpIHNrYWxhIGRpa2VuYWwgc2ViYWdhaSBob21vZ2VuaXRhcyBkZXJhamF0IHNhdHUgZGFsYW0gZWtvbm9taS4gTWlzYWxueWEsIGluaSBtZW11bmdraW5rYW4ga2l0YSB1bnR1ayBiZWtlcmphIGRlbmdhbiBtYXRhIHVhbmcgeWFuZyBiZXJiZWRhIChtaXNhbG55YSwgZGFyaSBkb2xhciBrZSBldXJvKSBzZXJ0YSBzZWp1bWxhaCBhcGxpa2FzaSBsYWlubnlhIGRhbiBha2FuIGRpYmFoYXMgbGViaWggbGFuanV0IGRhbGFtIEJhZ2lhbiA3LjQgYmVyaWt1dG55YS4gTWVza2lwdW4gcHJpbnNpcCB5YW5nIHNlY2FyYSB1bXVtIGRpdGVyaW1hLCBrYW1pIG1lbmNhdGF0IGJhaHdhIHByaW5zaXAgaW5pIHRpZGFrIGJlcmxha3UgdW50dWsgbmlsYWkgYmVzYXIgJFgkIHlhbmcgbXVuZ2tpbiBiZXJiYXRhc2FuIGRlbmdhbiBrZW5kYWxhIHN1cnBsdXMgZGFyaSBwZXJ1c2FoYWFuIGFzdXJhbnNpOyBqaWthIHBlcnVzYWhhYW4gYXN1cmFuc2kgbWVtaWxpa2kgcHJvYmFiaWxpdGFzIGJlc2FyIG1lbmphZGkgdGlkYWsgbGlrdWlkLCBtYWthIHBlcnVzYWhhYW4gYXN1cmFuc2kgdGVyc2VidXQgbXVuZ2tpbiB0aWRhayBpbmdpbiBtZW5nZ3VuYWthbiBwZW5ldGFwYW4gaGFyZ2EgbGluZWFyLiBNdWRhaCBkaXBlcmlrc2EgYmFod2EgcHJpbnNpcCBpbmkgdGVycGVudWhpIHVudHVrIHByaW5zaXAgbmlsYWkgaGFyYXBhbiBkYW4gc2ltcGFuZ2FuIGJha3UsIG1lc2tpcHVuIHRpZGFrIHVudHVrIHByaW5zaXAgdmFyaWFucyBkYW4gZWtzcG9uZW5zaWFsLg0KDQojIDcuNCBSaXNpa28gSGV0ZXJvZ2VuDQoqKioNCg0KRGkgYmFnaWFuIGluaSwgQW5kYSBha2FuIGJlbGFqYXIgYmFnYWltYW5hOg0KDQotIE1lbmRlc2tyaXBzaWthbiBwYXBhcmFuIGFzdXJhbnNpIGRhbGFtIGhhbCBkaXN0cmlidXNpIHNrYWxhDQotIE1lbmplbGFza2FuIHBhcGFyYW4gZGFsYW0gaGFsIGplbmlzLWplbmlzIGFzdXJhbnNpIHVtdW0gc2VwZXJ0aSBhc3VyYW5zaSBtb2JpbCBkYW4gYXN1cmFuc2kgcGVtaWxpayBydW1haA0KLSBNZW5kZXNrcmlwc2lrYW4gYmFnYWltYW5hIGZha3RvciByYXRpbmcgZGFwYXQgZGlndW5ha2FuIHVudHVrIG1lbXBlcmhpdHVuZ2thbiBoZXRlcm9nZW5pdGFzIGRpIGFudGFyYSByaXNpa28gZGFsYW0gc3VhdHUga3VtcHVsYW4NCi0gTWVuZ3VrdXIgZGFtcGFrIGZha3RvciByYXRpbmcgbWVsYWx1aSByZWxhdGl2aXRhcw0KDQoqKioNCg0KU2VwZXJ0aSB5YW5nIGRpY2F0YXQgZGkgQmFnaWFuIDcuMSwgdGVyZGFwYXQgYmFueWFrIHZhcmlhc2kgZGFsYW0gcmlzaWtvIHlhbmcgZGlhc3VyYW5zaWthbiwgZml0dXIga29udHJhaywgZGFuIG9yYW5nIHlhbmcgZGlhc3VyYW5zaWthbi4gU2ViYWdhaSBjb250b2gsIEFuZGEgbXVuZ2tpbiBtZW1pbGlraSBzYXVkYXJhIGtlbWJhciB5YW5nIGJla2VyamEgZGkga290YSB5YW5nIHNhbWEgZGFuIG1lbmdoYXNpbGthbiBqdW1sYWggdWFuZyB5YW5nIHJlbGF0aWYgc2FtYS4gTmFtdW4sIGtldGlrYSBtZW1pbGloIHBpbGloYW4gZGFsYW0gYXN1cmFuc2kgc2V3YSB1bnR1ayBtZW5nYXN1cmFuc2lrYW4gaXNpIGFwYXJ0ZW1lbiBBbmRhLCBBbmRhIGRhcGF0IG1lbWJheWFuZ2thbiBwZXJiZWRhYW4gZGFsYW0ganVtbGFoIGlzaSB5YW5nIGFrYW4gZGlhc3VyYW5zaWthbiwgcGlsaWhhbiBkZWR1Y3RpYmxlIHVudHVrIGp1bWxhaCByaXNpa28geWFuZyBkaXRhbmdndW5nLCBkYW4gbXVuZ2tpbiBqdWdhIHBlcmJlZGFhbiB0aW5na2F0IGtldGlkYWtwYXN0aWFuIG1lbmdpbmdhdCB0aW5na2F0IGtlYW1hbmFuIGxpbmdrdW5nYW4gdGVtcGF0IHRpbmdnYWwgQW5kYS4gT3Jhbmctb3JhbmcgZGFuIHJpc2lrbyB5YW5nIG1lcmVrYSBhc3VyYW5zaWthbiBiZXJiZWRhLg0KDQpLZXRpa2EgbWVtaWtpcmthbiB0ZW50YW5nIGt1bXB1bGFuIHJpc2lrbyB5YW5nIGJlcmJlZGEgKGhldGVyb2dlbiksIHNhdHUgb3BzaSBhZGFsYWggdW50dWsgbWVuZXRhcGthbiBoYXJnYSBzYW1hIHVudHVrIHNlbXVhIHJpc2lrby4gSGFsIGluaSB1bXVtIHRlcmphZGkgZGFsYW0gcHJvZ3JhbSBhc3VyYW5zaSBiYW5qaXIgYXRhdSBrZXNlaGF0YW4geWFuZyBkaXNwb25zb3JpIG9sZWggcGVtZXJpbnRhaC4gTmFtdW4sIGhhbCBpbmkganVnYSB1bXVtIHRlcmphZGkgdW50dWsgbWVuZXRhcGthbiBoYXJnYSB5YW5nIGJlcmJlZGEgZGkgbWFuYSBwZXJiZWRhYW4gdGVyc2VidXQgc2ViYW5kaW5nIGRlbmdhbiByaXNpa28geWFuZyBkaWFzdXJhbnNpa2FuLg0KDQojIyA3LjQuMSBQYXBhcmFuIFJpc2lrbw0KDQpTYWxhaCBzYXR1IGNhcmEgdW50dWsgbWVtYnVhdCByaXNpa28gaGV0ZXJvZ2VuIGRhcGF0IGRpYmFuZGluZ2thbiBhZGFsYWggbWVsYWx1aSBrb25zZXAgZXhwb3N1cmUuIFVudHVrIG1lbmplbGFza2FuIGV4cG9zdXJlLCBtYXJpIGd1bmFrYW4gZGlzdHJpYnVzaSBza2FsYSB5YW5nIHRlbGFoIGRpcGVsYWphcmkgcGFkYSBCYWIgMy4gVW50dWsgbWVuZ2luZ2F0IGtlbWJhbGkgZGlzdHJpYnVzaSBza2FsYSwgbWlzYWxrYW4gJFgkIG1lbWlsaWtpIGRpc3RyaWJ1c2kgcGFyYW1ldHJpayBkYW4ga2l0YSBtZW5kZWZpbmlzaWthbiB2ZXJzaSB5YW5nIGRpc2thbGFrYW4gc2ViYWdhaSAkUj1YL0UsIEU+MCQgLiBKaWthICRSJCBhZGEgZGFsYW0ga2VsdWFyZ2EgcGFyYW1ldHJpayB5YW5nIHNhbWEgZGVuZ2FuICRYJCAsIG1ha2EgZGlzdHJpYnVzaW55YSBkaWthdGFrYW4gc2ViYWdhaSBkaXN0cmlidXNpIHNrYWxhLiBTZXBlcnRpIHlhbmcgdGVsYWgga2l0YSBsaWhhdCwgZGlzdHJpYnVzaSBnYW1tYSwgZWtzcG9uZW5zaWFsLCBkYW4gUGFyZXRvIGFkYWxhaCBjb250b2ggZGFyaSBkaXN0cmlidXNpIHNrYWxhLg0KDQpTZWNhcmEgaW50dWl0aWYsIGlkZSBkaSBiYWxpayBleHBvc3VyZSBhZGFsYWggdW50dWsgbWVtYnVhdCByaXNpa28gbGViaWggZGFwYXQgZGliYW5kaW5na2FuIHNhdHUgc2FtYSBsYWluLiBNaXNhbG55YSwgbXVuZ2tpbiB0ZXJkYXBhdCByaXNpa28gJFhfMSwuLi4sWF9uJCBiZXJhc2FsIGRhcmkgZGlzdHJpYnVzaSB5YW5nIGJlcmJlZGEgZGFuIG5hbXVuLCBkZW5nYW4gbWVtaWxpaCBleHBvc3VyZSB5YW5nIHRlcGF0LCB0YXJpZiAkUl8xLC4uLixSX24kIGJlcmFzYWwgZGFyaSBkaXN0cmlidXNpIHlhbmcgc2FtYS4gRGkgc2luaSwga2l0YSBtZW5hZnNpcmthbiB0YXJpZiAkUl9pPVhfaS9FX2kkIHNlYmFnYWkga2VydWdpYW4gZGliYWdpIGRlbmdhbiBleHBvc3VyZS4NCg0KVGFiZWwgNy4zIG1lbnllZGlha2FuIGJlYmVyYXBhIGNvbnRvaC4gS2FtaSBtZW5jYXRhdCBiYWh3YSB0YWJlbCBpbmkgbWVuZ2FjdSBwYWRhIHRhaHVuIG1vYmlsIGRhbiBydW1haCB5YW5nICJkaXBlcm9sZWgiLCBrb25zZXAgeWFuZyBha2FuIGRpamVsYXNrYW4gZGkgQmFnaWFuIDcuNS4NCg0KKipUYWJlbCA3LjMuKiogUGFwYXJhbiB5YW5nIEJpYXNhIERpZ3VuYWthbiBkYWxhbSBKZW5pcyBBc3VyYW5zaSB5YW5nIEJlcmJlZGEuDQoNCiQkXHNtYWxsew0KXGJlZ2lue21hdHJpeH0NClxiZWdpbnthcnJheX17bGx9DQpcdGV4dHtUeXBlIG9mIEluc3VyYW5jZX0gJiBcdGV4dHtFeHBvc3VyZSBCYXNpc30gXFxcaGxpbmUNClx0ZXh0e1BlcnNvbmFsIEF1dG9tb2JpbGV9ICYgIFx0ZXh0e0Vhcm5lZCBDYXIgWWVhciwgQW1vdW50IG9mIEluc3VyYW5jZSBDb3ZlcmFnZX0gXFwNClx0ZXh0e0hvbWVvd25lcnN9ICYgIFx0ZXh0e0Vhcm5lZCBIb3VzZSBZZWFyLCBBbW91bnQgb2YgSW5zdXJhbmNlIENvdmVyYWdlfVxcDQpcdGV4dHtXb3JrZXJzIENvbXBlbnNhdGlvbn0gICYgXHRleHR7UGF5cm9sbH1cXA0KXHRleHR7Q29tbWVyY2lhbCBHZW5lcmFsIExpYWJpbGl0eX0gJiAgXHRleHR7U2FsZXMgUmV2ZW51ZSwgUGF5cm9sbCwgU3F1YXJlIEZvb3RhZ2UsIE51bWJlciBvZiBVbml0c31cXA0KXHRleHR7Q29tbWVyY2lhbCBCdXNpbmVzcyBQcm9wZXJ0eX0gICYgXHRleHR7QW1vdW50IG9mIEluc3VyYW5jZSBDb3ZlcmFnZX1cXA0KXHRleHR7UGh5c2ljaWFuJ3MgUHJvZmVzc2lvbmFsIExpYWJpbGl0eX0gICYgXHRleHR7TnVtYmVyIG9mIFBoeXNpY2lhbiBZZWFyc31cXA0KXHRleHR7UHJvZmVzc2lvbmFsIExpYWJpbGl0eX0gICYgXHRleHR7TnVtYmVyIG9mIFByb2Zlc3Npb25hbHMgKGUuZy4sIExhd3llcnMgb3IgQWNjb3VudGFudHMpfVxcDQpcdGV4dHtQZXJzb25hbCBBcnRpY2xlcyBGbG9hdGVyfSAmICBcdGV4dHtWYWx1ZSBvZiBJdGVtfSBcXA0KICBcaGxpbmUNClxlbmR7YXJyYXl9DQpcZW5ke21hdHJpeH0NCn0kJA0KDQpTZWJ1YWggcGFwYXJhbiBhZGFsYWggamVuaXMgZmFrdG9yIHBlbmlsYWlhbiwga29uc2VwIHlhbmcga2FtaSBkZWZpbmlzaWthbiBzZWNhcmEgZWtzcGxpc2l0IGRpIEJhZ2lhbiBzZWxhbmp1dG55YSwgeWFpdHUgNy40LjIuIEJpYXNhbnlhLCBpbmkgYWRhbGFoIGZha3RvciBwZW5pbGFpYW4geWFuZyBwYWxpbmcgcGVudGluZywgc2FuZ2F0IHBlbnRpbmcgc2VoaW5nZ2EgcHJlbWkgZGFuIGtlcnVnaWFuIGRpa3V0aXAgc2VjYXJhICJwZXIgcGFwYXJhbiIuDQoNClVudHVrIHBlbW9kZWxhbiBmcmVrdWVuc2kgZGFuIGtlcGFyYWhhbiwgYmlhc2FueWEgZGlwaWtpcmthbiBiYWh3YSBhc3BlayBmcmVrdWVuc2kgcHJvcG9yc2lvbmFsIHRlcmhhZGFwIHBhcGFyYW4gZGFuIGFzcGVrIGtlcGFyYWhhbiBkYWxhbSBoYWwga2VydWdpYW4gcGVyIGtsYWltICh0aWRhayBiZXJnYW50dW5nIHBhZGEgcGFwYXJhbikuIE5hbXVuLCBoYWwgaW5pIHRpZGFrIG1lbmNha3VwIHNlbHVydWggY2VyaXRhLiBVbnR1ayBiYW55YWsgamVuaXMgYmlzbmlzLCBwYXBhcmFuIHlhbmcgcHJvcG9yc2lvbmFsIHRlcmhhZGFwIGluZmxhc2kgc2FuZ2F0IG55YW1hbi4gSW5mbGFzaSBiaWFzYW55YSBkaWxpaGF0IHNlYmFnYWkgdGlkYWsgdGVya2FpdCBkZW5nYW4gZnJla3VlbnNpIHRldGFwaSBwcm9wb3JzaW9uYWwgdGVyaGFkYXAga2VwYXJhaGFuLg0KDQoqKktyaXRlcmlhIHVudHVrIE1lbWlsaWggUGFwYXJhbioqDQoNClNlYnVhaCBkYXNhciBwYXBhcmFuIGhhcnVzIG1lbWVudWhpIGtyaXRlcmlhIGJlcmlrdXQuIEluaSBoYXJ1czoNCg0KLSBtZW5qYWRpIHVrdXJhbiB5YW5nIGFrdXJhdCBkYXJpIHBhcGFyYW4ga3VhbnRpdGF0aWYgdGVyaGFkYXAga2VydWdpYW4sDQotIG11ZGFoIGJhZ2kgcGVydXNhaGFhbiBhc3VyYW5zaSB1bnR1ayBtZW5lbnR1a2FuIChwYWRhIHNhYXQga2ViaWpha2FuIGRpbXVsYWkpIGRhbiB0aWRhayBkYXBhdCBkaW1hbmlwdWxhc2kgb2xlaCB0ZXJ0YW5nZ3VuZywNCi0gbXVkYWggZGlwYWhhbWkgb2xlaCB0ZXJ0YW5nZ3VuZyBkYW4gZGFwYXQgZGloaXR1bmcgb2xlaCBwZXJ1c2FoYWFuIGFzdXJhbnNpLA0KbWVtcGVyaGF0aWthbiBzZXRpYXAgZGFzYXIgcGFwYXJhbiB5YW5nIGFkYSBzZWJlbHVtbnlhIHlhbmcgdGVsYWggZGl0ZXRhcGthbiBkYWxhbSBpbmR1c3RyaSwgZGFuDQotIHVudHVrIGJlYmVyYXBhIGplbmlzIGJpc25pcywgcHJvcG9yc2lvbmFsIHRlcmhhZGFwIGluZmxhc2kuIERlbmdhbiBjYXJhIGluaSwgdGFyaWYgdGlkYWsgc2Vuc2l0aWYgdGVyaGFkYXAgcGVydWJhaGFuIG5pbGFpIHVhbmcgZGFyaSB3YWt0dSBrZSB3YWt0dSBrYXJlbmEgcGVydWJhaGFuIGluaSB0ZXJjYWt1cCBkYWxhbSBkYXNhciBwYXBhcmFuLg0KDQpVbnR1ayBtZW5qZWxhc2thbiwgcGVydGltYmFuZ2thbiBjYWt1cGFuIG1vYmlsIHByaWJhZGkuIFNlYmFnYWkgZ2FudGlueWEgZGFyaSBkYXNhciBwYXBhcmFuICJ0YWh1biBtb2JpbCB5YW5nIGRpcGVyb2xlaCIsIHNlYnVhaCB1a3VyYW4geWFuZyBsZWJpaCBha3VyYXQgZGFyaSBwYXBhcmFuIGt1YW50aXRhdGlmIHRlcmhhZGFwIGtlcnVnaWFuIG11bmdraW4gYWRhbGFoIGp1bWxhaCBtaWwgeWFuZyBkaWtlbXVkaWthbi4gU2VjYXJhIGhpc3RvcmlzLCBwZW5ndWt1cmFuIGluaSBzdWxpdCBkaXRlbnR1a2FuIHBhZGEgc2FhdCBrZWJpamFrYW4gZGl0ZXJiaXRrYW4gZGFuIHJlbnRhbiB0ZXJoYWRhcCBtYW5pcHVsYXNpIG9sZWggdGVydGFuZ2d1bmcgc2VoaW5nZ2EgbWFzaWggdGlkYWsgYmlhc2EgZGlndW5ha2FuLiBQZXJhbmdrYXQgbW9kZXJuIHRlbGVtYXRpa2EgeWFuZyBtZW11bmdraW5rYW4gcGVuY2F0YXRhbiBtaWwgeWFuZyBha3VyYXQgc2VkYW5nIG1lbmd1YmFoIHBlbmdndW5hYW4gdmFyaWFiZWwgaW5pIGRpIGJlYmVyYXBhIHBhc2FyLg0KDQpTZWJhZ2FpIGNvbnRvaCBsYWluLCB1a3VyYW4gcGFwYXJhbiBkYWxhbSBwcm9wZXJ0aSBiaXNuaXMga29tZXJzaWFsLCBtaXNhbG55YSBhc3VyYW5zaSBrZWJha2FyYW4sIHVtdW1ueWEgYWRhbGFoIGp1bWxhaCBjYWt1cGFuIGFzdXJhbnNpLiBLZXRpa2EgbmlsYWkgcHJvcGVydGkgdHVtYnVoIGRlbmdhbiBpbmZsYXNpLCBqdW1sYWggY2FrdXBhbiBhc3VyYW5zaSBqdWdhIGFrYW4gYmVydGFtYmFoLiBEZW5nYW4gZGVtaWtpYW4sIHRhcmlmIHlhbmcgZGlrdXRpcCBwZXIganVtbGFoIGNha3VwYW4gYXN1cmFuc2kga3VyYW5nIHNlbnNpdGlmIHRlcmhhZGFwIGluZmxhc2kgZGFyaXBhZGEgc2ViYWxpa255YS4NCg0KIyMgNy40LjIgRmFrdG9yIFBlbmlsYWlhbg0KDQpGYWt0b3IgcGVuaWxhaWFuLCBhdGF1IHZhcmlhYmVsIHBlbmlsYWlhbiwgYWRhbGFoIGthcmFrdGVyaXN0aWsgZGFyaSBwZW1lZ2FuZyBwb2xpcyBhdGF1IHJpc2lrbyB5YW5nIGRpYXN1cmFuc2lrYW4geWFuZyBtZW1wZW5nYXJ1aGkgdGFyaWYuIFNlYmFnYWkgY29udG9oLCBrZXRpa2EgQW5kYSBtZW1iZWxpIGFzdXJhbnNpIG1vYmlsLCBrZW11bmdraW5hbiBwZXJ1c2FoYWFuIGFzdXJhbnNpIG1lbWlsaWtpIHRhcmlmIHlhbmcgYmVyYmVkYSBiZXJkYXNhcmthbiB1c2lhLCBqZW5pcyBrZWxhbWluLCBqZW5pcyBtb2JpbCwgdGVtcGF0IHBhcmtpciBtb2JpbCwgcml3YXlhdCBrZWNlbGFrYWFuLCBkYW4gc2ViYWdhaW55YS4gVmFyaWFiZWwtdmFyaWFiZWwgaW5pIGRpa2VuYWwgc2ViYWdhaSBmYWt0b3IgcGVuaWxhaWFuLiBNZXNraXB1biBiZWJlcmFwYSB2YXJpYWJlbCBkYXBhdCBiZXJzaWZhdCBrb250aW51LCBzZXBlcnRpIHVzaWEsIHNlYmFnaWFuIGJlc2FyIGJlcnNpZmF0IGthdGVnb3Jpa2FsIC0gZmFrdG9yIGFkYWxhaCBsYWJlbCB5YW5nIGRpZ3VuYWthbiB1bnR1ayB2YXJpYWJlbCBrYXRlZ29yaWthbC4gQmFoa2FuLCBiYWhrYW4gZGVuZ2FuIHZhcmlhYmVsIGtvbnRpbnUgc2VwZXJ0aSB1c2lhLCB1bXVtbnlhIGRpbGFrdWthbiBrYXRlZ29yaXNhc2kgZGVuZ2FuIG1lbWJ1YXQga2Vsb21wb2sgc2VwZXJ0aSAibXVkYSIsICJtZW5lbmdhaCIsIGRhbiAidHVhIiB1bnR1ayB0dWp1YW4gcGVuaWxhaWFuLg0KDQoqVGFiZWwgNy40KiBoYW55YSBtZW1iZXJpa2FuIHNlZGlraXQgY29udG9oLiBEaSBiYW55YWsgeXVyaXNkaWtzaSwgcGFzYXIgYXN1cmFuc2kgcHJpYmFkaSAoc2VwZXJ0aSBhc3VyYW5zaSBtb2JpbCBkYW4gcnVtYWgpIHNhbmdhdCBrb21wZXRpdGlmIC0gbWVuZ2d1bmFrYW4gMTAgYXRhdSAyMCB2YXJpYWJlbCB1bnR1ayB0dWp1YW4gcGVuaWxhaWFuIHRpZGFrIGphcmFuZyB0ZXJqYWRpLg0KDQpUYWJlbCA3LjQuICpGYWt0b3IgUGVuaWxhaWFuIHlhbmcgVW11bSBEaWd1bmFrYW4gZGFsYW0gSmVuaXMgQXN1cmFuc2kgeWFuZyBCZXJiZWRhLioNCg0KJCRcc21hbGx7DQpcYmVnaW57bWF0cml4fQ0KXGJlZ2lue2FycmF5fXtsfGx9XGhsaW5lDQpcdGV4dHtUeXBlIG9mIEluc3VyYW5jZX0gJiBcdGV4dHtSYXRpbmcgRmFjdG9yc31cXFxobGluZVxobGluZQ0KXHRleHR7UGVyc29uYWwgQXV0b21vYmlsZX0gICYgXHRleHR7RHJpdmVyIEFnZSBhbmQgR2VuZGVyLCBNb2RlbCBZZWFyLCBBY2NpZGVudCBIaXN0b3J5fVxcDQpcdGV4dHtIb21lb3duZXJzfSAgJiBcdGV4dHtBbW91bnQgb2YgSW5zdXJhbmNlLCBBZ2Ugb2YgSG9tZSwgQ29uc3RydWN0aW9uIFR5cGV9XFwNClx0ZXh0e1dvcmtlcnMgQ29tcGVuc2F0aW9ufSAgJiBcdGV4dHtPY2N1cGF0aW9uIENsYXNzIENvZGV9XFwNClx0ZXh0e0NvbW1lcmNpYWwgR2VuZXJhbCBMaWFiaWxpdHl9ICAmIFx0ZXh0e0NsYXNzaWZpY2F0aW9uLCBUZXJyaXRvcnksIExpbWl0IG9mIExpYWJpbGl0eX1cXA0KXHRleHR7TWVkaWNhbCBNYWxwcmFjdGljZX0gICYgXHRleHR7U3BlY2lhbHR5LCBUZXJyaXRvcnksIExpbWl0IG9mIExpYWJpbGl0eX1cXA0KXHRleHR7Q29tbWVyY2lhbCBBdXRvbW9iaWxlfSAgJiBcdGV4dHtEcml2ZXIgQ2xhc3MsIFRlcnJpdG9yeSwgTGltaXQgb2YgTGlhYmlsaXR5fVxcDQogIFxobGluZQ0KXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNCipDb250b2guIEtlcnVnaWFuIGRhbiBQcmVtaSBCZXJkYXNhcmthbiBKdW1sYWggQXN1cmFuc2kgZGFuIFdpbGF5YWgqLiBVbnR1ayBtZW5naWx1c3RyYXNpa2FuLCBUYWJlbCA3LjUgbWVueWFqaWthbiBzYXR1IHNldCBkYXRhIGZpa3RpZiBrZWNpbCBkYXJpIFdlcm5lciBkYW4gTW9kbGluICgyMDE2KS4gRGF0YSB0ZXJkaXJpIGRhcmkga2VydWdpYW4gZGFuIGJpYXlhIHBlbnllc3VhaWFuIGtlcnVnaWFuIChMb3NzTEFFKSwgeWFuZyBkaWRla29tcG9zaXNpIGJlcmRhc2Fya2FuIHRpZ2EgdGluZ2thdCBqdW1sYWggYXN1cmFuc2kgKEFPSSksIGRhbiB0aWdhIHdpbGF5YWggKFRlcnIpLiBVbnR1ayBzZXRpYXAga29tYmluYXNpIEFPSSBkYW4gVGVyciwga2FtaSBqdWdhIG1lbWlsaWtpIGp1bWxhaCBrZWJpamFrYW4geWFuZyBkaWtlbHVhcmthbiwgeWFuZyBkaWJlcmlrYW4gc2ViYWdhaSBFeHBvc3VyZS4NCg0KVGFiZWwgNy41LiAqS2VydWdpYW4gZGFuIFByZW1pIEJlcmRhc2Fya2FuIEp1bWxhaCBBc3VyYW5zaSBkYW4gV2lsYXlhaC4qDQoNCiQkXHNtYWxsew0KXGJlZ2lue21hdHJpeH0NClxiZWdpbnthcnJheX17Y2N8cnJyfQ0KXGhsaW5lDQogICAgICAgQU9JICYgICAgICAgVGVyciAmICAgRXhwb3N1cmUgJiAgICBMb3NzTEFFICYgICAgUHJlbWl1bSBcXFxobGluZQ0KICAgICAgIFx0ZXh0e0xvd30gJiAgICAgICAgICAxICYgICAgICAgICAgNyAmICAgICAyMTAuOTMgJiAgICAgMzM1Ljk5IFxcDQogICAgXHRleHR7TWVkaXVtfSAmICAgICAgICAgIDEgJiAgICAgICAgMTA4ICYgICA0LDQ1OC4wNSAmICAgNiw0NzkuODcgXFwNCiAgICAgIFx0ZXh0e0hpZ2h9ICYgICAgICAgICAgMSAmICAgICAgICAxNzkgJiAgMTAsNTY1Ljk4ICYgIDE0LDQ5OC43MSBcXFxobGluZQ0KICAgICAgIFx0ZXh0e0xvd30gJiAgICAgICAgICAyICYgICAgICAgIDEzMCAmICAgNiwyMDYuMTIgJiAgMTAsMzk5Ljc5IFxcDQogICAgXHRleHR7TWVkaXVtfSAmICAgICAgICAgIDIgJiAgICAgICAgMTI2ICYgICA4LDIzOS45NSAmICAxMiw1OTkuNzUgXFwNCiAgICAgIFx0ZXh0e0hpZ2h9ICYgICAgICAgICAgMiAmICAgICAgICAxMjkgJiAgMTIsMDYzLjY4ICYgIDE3LDQxNC42NSBcXFxobGluZQ0KICAgICAgIFx0ZXh0e0xvd30gJiAgICAgICAgICAzICYgICAgICAgIDE0MyAmICAgOCw0NDEuMjUgJiAgMTQsODcxLjcwIFxcDQogICAgXHRleHR7TWVkaXVtfSAmICAgICAgICAgIDMgJiAgICAgICAgMTI2ICYgIDEwLDE4OC43MCAmICAxNiwzNzkuNjggXFwNCiAgICAgIFx0ZXh0e0hpZ2h9ICYgICAgICAgICAgMyAmICAgICAgICAgNDAgJiAgIDQsNjI1LjM0ICYgICA3LDAxOS44NiBcXA0KICAgICAgXGhsaW5lDQogICAgICAgXHRleHR7VG90YWx9ICAgICYgICAgICAgJiA5ODggJiAgNjUsMDAwLjAwICYgICAgIDk5LDY2NC4wMSAgIFxcXGhsaW5lDQpcaGxpbmUNClxlbmR7YXJyYXl9DQpcZW5ke21hdHJpeH0NCn0kJA0KDQpEYWxhbSBrYXN1cyBpbmksIGZha3RvciBwZW5pbGFpYW4gQU9JIGRhbiBUZXJyIG1lbmdoYXNpbGthbiBzZW1iaWxhbiBzZWwuIFBlcmhhdGlrYW4gYmFod2Ega2l0YSBkYXBhdCBtZW5nZ2FidW5na2FuIHNlbCAid2lsYXlhaCBzYXR1IGRlbmdhbiBqdW1sYWggYXN1cmFuc2kgcmVuZGFoIiBkZW5nYW4gc2VsIGxhaW4ga2FyZW5hIGhhbnlhIGFkYSA3IGtlYmlqYWthbiBkaSBzZWwgdGVyc2VidXQuIE1lbGFrdWthbiBoYWwgaW5pIGFkYWxhaCB3YWphciAtIHBlcnRpbWJhbmdhbiBzZW1hY2FtIGluaSBtZXJ1cGFrYW4gc2FsYWggc2F0dSB0dWdhcyB1dGFtYSBhbmFsaXMuIEdhcmlzIGJlc2FyIGRhbGFtIHBlbWlsaWhhbiB2YXJpYWJlbCBkaWplbGFza2FuIHBhZGEgQmFiIDgsIHRlcm1hc3VrIFBlbGVuZ2thcCBUZWtuaXMgVFMgOC5CLiBTZWJhZ2FpIGFsdGVybmF0aWYsIGtpdGEganVnYSBkYXBhdCBtZW1wZXJrdWF0IGluZm9ybWFzaSB0ZW50YW5nIHNlbCAoVGVyciAxLCBBT0kgUmVuZGFoKSBkZW5nYW4gIm1lbWluamFtIiBpbmZvcm1hc2kgZGFyaSBzZWwgdGV0YW5nZ2EgKG1pc2FsbnlhLCB3aWxheWFoIGxhaW4gZGVuZ2FuIEFPSSB5YW5nIHNhbWEsIGF0YXUganVtbGFoIEFPSSB5YW5nIGJlcmJlZGEgZGkgZGFsYW0gVGVyciAxKS4gSW5pIGFkYWxhaCBzdWJqZWsga3JlZGliaWxpdGFzIHlhbmcgZGlwZXJrZW5hbGthbiBkYWxhbSBCYWIgOS4NCg0KKioqDQoNClVudHVrIG1lbWFoYW1pIGRhbXBhayBmYWt0b3IgcGVuaWxhaWFuLCB1bXVtbnlhIGRpZ3VuYWthbiByZWxhdGlmLiBSZWxhdGlmIG1lbWJhbmRpbmdrYW4gcmlzaWtvIHlhbmcgZGloYXJhcGthbiBwYWRhIHRpbmdrYXQgZmFrdG9yIHBlbmlsYWlhbiB0ZXJ0ZW50dSBkZW5nYW4gbmlsYWkgZGFzYXIgeWFuZyBkaXRlcmltYS4gRGFsYW0gYnVrdSBpbmksIGthbWkgYmVrZXJqYSBkZW5nYW4gcmVsYXRpZiB5YW5nIGRpZGVmaW5pc2lrYW4gbWVsYWx1aSByYXNpbzsganVnYSBtdW5na2luIHVudHVrIG1lbmRlZmluaXNpa2FuIHJlbGF0aWYgbWVsYWx1aSBzZWxpc2loIGFyaXRtYXRpa2EuIE9sZWgga2FyZW5hIGl0dSwgcmVsYXRpZiBrYW1pIGRpZGVmaW5pc2lrYW4gc2ViYWdhaToNCg0KJCRcdGV4dHtSZWxhdGl2aXR5fV9qID0gXGZyYWN7XHRleHR7KExvc3MvRXhwb3N1cmUpfV9qfXtcdGV4dHsoTG9zcy9FeHBvc3VyZSl9X3tCYXNlfX0gLiQkDQoNCioqKg0KDQoqQ29udG9oLiBLZXJ1Z2lhbiBkYW4gUHJlbWkgQmVyZGFzYXJrYW4gSnVtbGFoIEFzdXJhbnNpIGRhbiBXaWxheWFoIC0gTGFuanV0YW4qLiBNZXRvZGUga2xhc2lmaWthc2kgdHJhZGlzaW9uYWwgaGFueWEgbWVtcGVydGltYmFuZ2thbiBzYXR1IHZhcmlhYmVsIGtsYXNpZmlrYXNpIHBhZGEgc2F0dSB3YWt0dSAtIG1lcmVrYSB1bml2YXJpYXQuIE9sZWgga2FyZW5hIGl0dSwgamlrYSBrYW1pIGluZ2luIG1lbmRhcGF0a2FuIHJlbGF0aWYgdW50dWsga2VydWdpYW4gZGFuIGJpYXlhIHBlbnllc3VhaWFuIGtlcnVnaWFuIChMb3NzTEFFKSBiZXJkYXNhcmthbiBqdW1sYWggYXN1cmFuc2ksIGthbWkgbXVuZ2tpbiBha2FuIG1lbmp1bWxhaGthbiB3aWxheWFoIHVudHVrIG1lbmRhcGF0a2FuIGluZm9ybWFzaSB5YW5nIGRpdGFtcGlsa2FuIGRpIFRhYmVsIDcuNi4NCg0KVGFiZWwgNy42LiAqS2VydWdpYW4gZGFuIFJlbGF0aWZpdGFzIGJlcmRhc2Fya2FuIEp1bWxhaCBBc3VyYW5zaSouDQoNCiQkXHNtYWxsew0KXGJlZ2lue21hdHJpeH0NClxiZWdpbnthcnJheX17Y3xycnJyfQ0KXGhsaW5lDQogICAgICAgQU9JICYgICBFeHBvc3VyZSAmICAgIExvc3NMQUUgJiBMb3NzL0V4cCAmUmVsYXRpdml0eSBcXFxobGluZQ0KICAgICAgIFx0ZXh0e0xvd30gJiAgICAgICAgMjgwICYgICAgMTQ4NTguMyAmICAgNTMuMDY1ICAgJjAuODM1IFxcDQogICAgXHRleHR7TWVkaXVtfSAmICAgICAgICAzNjAgJiAgICAyMjg4Ni43ICYgICAgNjMuNTc0ICAmMS4wMDAgXFwNCiAgICAgIFx0ZXh0e0hpZ2h9ICYgICAgICAgIDM0OCAmICAgICAgMjcyNTUuMCAmICAgNzguMzE5ICAmIDEuMjMyIFxcXGhsaW5lDQogICAgICAgXHRleHR7VG90YWx9ICAgICYgICAgICAgIDk4OCAmICA2NSwwMDAuMCAmICAgICAgICAgICAgXFxcaGxpbmUNClxobGluZQ0KXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNCk9sZWgga2FyZW5hIGl0dSwga2VydWdpYW4gZGFuIGJpYXlhIHBlbnllc3VhaWFuIGtlcnVnaWFuIHBlciB1bml0IHBhcGFyYW4gYWRhbGFoIDIzLDIlIGxlYmloIHRpbmdnaSB1bnR1ayByaXNpa28gZGVuZ2FuIGp1bWxhaCBhc3VyYW5zaSB0aW5nZ2kgZGliYW5kaW5na2FuIGRlbmdhbiB5YW5nIG1lbWlsaWtpIGp1bWxhaCBhc3VyYW5zaSBzZWRhbmcuIFJlbGF0aWZpdGFzIGluaSB0aWRhayBtZW5nb250cm9sIHdpbGF5YWguDQoNCioqKg0KDQpQZW5nZW5hbGFuIGZha3RvciByYXRpbmcgbWVtdW5na2lua2FuIGFuYWxpcyB1bnR1ayBtZW1idWF0IHNlbCB5YW5nIG1lbmRlZmluaXNpa2FuIGtvbGVrc2kgcmlzaWtvIGtlY2lsIC0gdHVqdWFubnlhIGFkYWxhaCBtZW1pbGloIGtvbWJpbmFzaSBmYWt0b3IgcmF0aW5nIHlhbmcgdGVwYXQgc2VoaW5nZ2Egc2VtdWEgcmlzaWtvIGRhbGFtIHNlbCBkYXBhdCBkaXBlcmxha3VrYW4gc2VjYXJhIHNhbWEuIERhbGFtIHRlcm1pbm9sb2dpIHN0YXRpc3Rpaywga2l0YSBpbmdpbiBzZW11YSByaXNpa28gZGFsYW0gc2VsIG1lbWlsaWtpIGRpc3RyaWJ1c2kgeWFuZyBzYW1hICh0ZXJnYW50dW5nIHBhZGEgcGVuc2thbGFhbiBvbGVoIHZhcmlhYmVsIHBhcGFyYW4pLiBJbmkgYWRhbGFoIGRhc2FyIGRhcmkgcGVuZXRhcGFuIGhhcmdhIGFzdXJhbnNpLiBTZW11YSByaXNpa28gZGFsYW0gc2VsIG1lbWlsaWtpIGhhcmdhIHlhbmcgc2FtYSBwZXIgcGFwYXJhbiwgbmFtdW4gcmlzaWtvIGRhcmkgc2VsIHlhbmcgYmVyYmVkYSBkYXBhdCBtZW1pbGlraSBoYXJnYSB5YW5nIGJlcmJlZGEuDQoNCkRlbmdhbiBrYXRhIGxhaW4sIHBlcnVzYWhhYW4gYXN1cmFuc2kgZGlpemlua2FuIHVudHVrIG1lbmV0YXBrYW4gdGFyaWYgeWFuZyBiZXJiZWRhIHVudHVrIHJpc2lrbyB5YW5nIGJlcmJlZGE7IGRpc2tyaW1pbmFzaSByaXNpa28gbGVnYWwgZGFuIGRpbGFrdWthbiBzZWNhcmEgcnV0aW4uIE5hbXVuIGRlbWlraWFuLCBkYXNhciBkaXNrcmltaW5hc2ksIHBlbWlsaWhhbiBmYWt0b3IgcmlzaWtvLCBhZGFsYWggc3ViamVrIGRhcmkgZGViYXQgeWFuZyBsdWFzLiBLb211bml0YXMgYWt0dWFyaWEsIG1hbmFqZW1lbiBhc3VyYW5zaSwgcmVndWxhdG9yLCBkYW4gYWR2b2thdCBrb25zdW1lbiBzZW11YSBtZXJ1cGFrYW4gcGVzZXJ0YSBha3RpZiBkYWxhbSBkZWJhdCBpbmkuIExhbXBpcmFuIFRla25pcyBUUyA3LkEgbWVuamVsYXNrYW4gbWFzYWxhaCBpbmkgZGFyaSBzdWR1dCBwYW5kYW5nIHJlZ3VsYXNpLg0KDQpTZWxhaW4ga3JpdGVyaWEgc3RhdGlzdGlrIHVudHVrIG1lbmlsYWkgc2lnbmlmaWthbnNpIGZha3RvciByYXRpbmcsIGFuYWxpcyBoYXJ1cyBtZW1wZXJoYXRpa2FuIG1hc2FsYWggYmlzbmlzIHBlcnVzYWhhYW4gKG1pc2FsbnlhLCBhcGFrYWggbWFoYWwgdW50dWsgbWVuZXJhcGthbiBmYWt0b3IgcmF0aW5nPyksIGtyaXRlcmlhIHNvc2lhbCAoYXBha2FoIHZhcmlhYmVsIGJlcmFkYSBkaSBiYXdhaCBrZW5kYWxpIHBlbWVnYW5nIHBvbGlzPyksIGtyaXRlcmlhIGh1a3VtIChhcGFrYWggYWRhIHJlZ3VsYXNpIHlhbmcgbWVsYXJhbmcgcGVuZ2d1bmFhbiBmYWt0b3IgcmF0aW5nIHNlcGVydGkgZ2VuZGVyPyksIGRhbiBtYXNhbGFoIHNvc2lhbCBsYWlubnlhLiBQZXJ0YW55YWFuLXBlcnRhbnlhYW4gaW5pIHNlYmFnaWFuIGJlc2FyIGRpIGx1YXIgY2FrdXBhbiB0ZWtzIGluaS4gTmFtdW4gZGVtaWtpYW4sIGthcmVuYSBtZXJla2Egc2FuZ2F0IG1lbmRhc2FyIHVudHVrIHBlbmV0YXBhbiBoYXJnYSBhc3VyYW5zaSwgZ2FtYmFyYW4gc2luZ2thdCBkaWJlcmlrYW4gZGkgQmFiIDgsIHRlcm1hc3VrIExhbXBpcmFuIFRla25pcyBUUyA4LkIuDQoNCg==