5.2 Model Risiko Individu
Seperti yang telah disebutkan sebelumnya, untuk model risiko
individu, kita menganggap \(X_i\)
sebagai kerugian dari kontrak ke-i dan menginterpretasikan
\[S_n=X_1 +X_2 +\cdots+X_n ,\]
menjadi kerugian agregat dari semua kontrak dalam portofolio atau
kelompok kontrak. Di sini, \(X_i\)
sebagai kerugian dari kontrak ke-i dan menginterpretasikantidak harus
terdistribusi secara identik dan kita memiliki
\[{\rm E}(S_n) = \sum_{i=1}^{n} {\rm
E}(X_i)~.\]
Dengan asumsi independensi pada \(X_i\) (yang mengimplikasikan \(\mathrm{Cov}\left( X_i, X_j \right) = 0\)
untuk semua \(i≠j\)), selanjutnya dapat
ditunjukkan bahwa
\[\begin{aligned}
{\rm Var}(S_n) &= \sum_{i=1}^{n} {\rm Var}(X_i) \\
P_{S_n}(z) &= \prod_{i=1}^{n}P_{X_i}(z) \\
M_{S_n}(t) &= \prod_{i=1}^{n}M_{X_i}(t),
\end{aligned}\]
dimana \(P_{S_n}(\cdot)\) dan \(M_{S_n}(\cdot)\) masing-masing adalah
probability generating function (pgf) dan moment generating function
(mgf) dari \(S_n\). Distribusi dari
setiap \(X_i\) mengandung massa
probabilitas nol, yang berhubungan dengan tidak adanya klaim dari
kontrak ke-i. Salah satu strategi untuk memasukkan massa nol dalam
distribusi adalah dengan menggunakan kerangka kerja dua bagian:
\[\begin{aligned}
X_i = I_i\times B_i = \left\{\begin{array}{ll}
0~, & \text{if }~ I_i=0 \\
B_i~, & \text{if }~ I_i=1 .
\end{array}
\right.
\end{aligned}\]
Di sini, \(I_i\) adalah variabel
Bernoulli yang mengindikasikan apakah kerugian terjadi untuk kontrak
ke-i atau tidak, dan \(B_i\) adalah
variabel acak dengan dukungan non-negatif yang mewakili jumlah kerugian
dari kontrak yang mengalami kerugian. Asumsikan bahwa \(I_1 ,\ldots,I_n ,B_1 ,\ldots,B_n\) saling
bebas. Nyatakan \({\rm Pr} (I_i
=1)=q_i\), dan \(\sigma_i^2={\rm
Var}(B_i)\).
\[\begin{aligned}
\mathrm{E}(S_n)& =\sum_{i=1}^n ~q_i ~\mu _i \\
\mathrm{Var}(S_n) & =\sum_{i=1}^n \left( q_i \sigma _i^2+q_i
(1-q_i)\mu_i^2 \right)\\
P_{S_n}(z) & =\prod_{i=1}^n \left( 1-q_i+q_i P_{B_i}(z) \right)\\
M_{S_n}(t) & =\prod_{i=1}^n \left( 1-q_i+q_i M_{B_i}(t) \right) .
\end{aligned}\]
Kasus khusus dari model di atas adalah ketika \(B_i\) mengikuti distribusi degenerasi
dengan \(\mu_i=b_i\) dan \(\sigma^2_i=0\). Salah satu contohnya adalah
asuransi jiwa berjangka atau asuransi dwiguna murni di mana \(b_i\) merepresentasikan jumlah manfaat
asuransi dari kontrak ke-i.
Strategi lain untuk mengakomodasi massa nol dalam kerugian dari
setiap kontrak adalah dengan mempertimbangkannya secara agregat di
tingkat portofolio, seperti dalam model risiko kolektif. Di sini,
kerugian agregat adalah \(S_{N} = X_1 + \cdots
+ X_N\), di mana \(N\) adalah
variabel acak yang merepresentasikan jumlah klaim yang tidak nol yang
terjadi dari seluruh kelompok kontrak. Dengan demikian, tidak semua
kontrak dalam portofolio dapat diwakili dalam penjumlahan ini, dan \(S_N=0\) ketika \(N=0\) Model risiko kolektif akan dibahas
secara rinci pada bagian selanjutnya.
Example 5.2.1
Pertanyaan Ujian Aktuaria. Sebuah perusahaan
asuransi menjual 300 polis asuransi kebakaran sebagai berikut:
\[{\small
\begin{matrix}
\begin{array}{c c c} \hline
\text{Number of} & \text{Policy} & \text{Probability
of}\\
\text{Policies} & \text{Maximum} & \text{Claim Per
Policy}\\
& (M_i) & (q_i) \\ \hline
100 & 400 & 0.05\\
200 & 300 & 0.06\\ \hline
\end{array}
\end{matrix}
}\]
Diberikan: (i) Jumlah klaim untuk setiap polis, \(X_i\), terdistribusi secara seragam antara
\(0\) dan maksimum polis \(M_i\). (ii) Probabilitas terjadinya lebih
dari satu klaim per polis adalah \(0\).
(iii) Kejadian klaim bersifat independen.
Hitunglah rata-rata (mean), \(E(S_{300})\), dan varians, \(Var(S_{300})\), dari keseluruhan klaim.
Bagaimana hasil ini akan berubah jika setiap klaim sama dengan maksimum
polis?
Solusi. Klaim keseluruhan adalah \(S_{300} = X_1+\cdots+X_{300}\) dimana \(X_1, \ldots, X_{300}\) adalah independen
namun tidak terdistribusi secara identik. Jumlah klaim polis
terdistribusi secara seragam pada \((0,M_i)\) sehingga rata-rata jumlah klaim
adalah \(M_i/2\) dan variansnya adalah
\(M_i^2/12\) . Dengan demikian, untuk
polis \(i=1,\ldots,300\) , kita
memiliki
\[{\small
\begin{matrix}
\begin{array}{ccccc} \hline
\text{Number of} & \text{Policy} & \text{Probability of}
& \text{Mean} & \text{Variance}\\
\text{Policies} & \text{Maximum} & \text{Claim Per
Policy} & \text{Amount} & \text{Amount}\\
& (M_i) & (q_{i}) & (\mu_{i}) & (\sigma_{i}^2)
\\ \hline
100 & 400 & 0.05 & 200 & 400^2/12\\
200 & 300 & 0.06 & 150 & 300^2/12 \\ \hline
\end{array}
\end{matrix}
}\]
Rata-rata dari klaim agregat adalah
\[\mathrm{E~} (S_{300}) = \sum_{i=1}^{300}
q_i \mu_i = 100\left\{0.05(200)\right\} + 200\left\{0.06 (150) \right\}
= 2,800\]
Varians dari klaim agregat adalah
\[\begin{array}{ll}
\mathrm{Var~}(S_{300}) &= \sum_{i=1}^{300} \left( q_i \sigma
_i^2+q_i (1-q_i)\mu_i^2 \right) ~~~~ \text{since } X_i \text{'s are
independent} \\
&= 100\left\{ 0.05 \left(\frac{400^2}{12}\right) +0.05 (1-0.05
)200^2 \right\} \\
& \ \ \ \ +
200\left\{
0.06 \left(\frac{300^2}{12}\right) +0.06 (1-0.06 )150^2 \right\}\\
&= 600,467.
\end{array}\]
Sekarang anggaplah kita menerima \(M_i\) maksimum polis jika terjadi klaim.
Berapakah ekspektasi kerugian keseluruhan \(\mathrm{E~}(\tilde{S})\) dan varians
kerugian keseluruhan \(\mathrm{Var~}(\tilde{S})\)?
Setiap jumlah klaim polis \(X_i\)
sekarang bersifat deterministik dan ditetapkan pada \(M_i\), bukan jumlah yang terdistribusi
secara acak, sehingga \(\sigma_i^2 =
\mathrm{Var~} (X_i) = 0\) dan \(\mu_i =
M_i\). Sekali lagi, probabilitas terjadinya klaim untuk setiap
polis adalah \(q_i\). Dalam keadaan
ini, kerugian agregat yang diharapkan adalah
\[\begin{aligned}
\mathrm{E~}(\tilde{S}) &= \sum_{i=1}^{300} q_i \mu_i = 100
\left\{0.05(400) \right\} + 200 \left\{ 0.06(300) \right\} = 5,600 .
\end{aligned}\]
Varians dari kerugian agregat adalah
\[\begin{aligned}
\mathrm{Var~}(\tilde{S}) &= \sum_{i=1}^{300} \left( q_i \sigma
_i^2+q_i (1-q_i
)\mu_i^2 \right) = \sum_{i=1}^{300} \left( q_i (1-q_i) \mu_i^2 \right)
\\
&= 100 \left\{(0.05) (1-0.05) 400^2\right\} +
200 \left\{(0.06) (1-0.06)300^2\right\} \\
&= 1,775,200 .
\end{aligned}\]
Example 5.2.2
Sebuah perusahaan asuransi menjual portofolio 100 polis asuransi
pemilik rumah independen, yang masing-masing memiliki frekuensi klaim
mengikuti distribusi Poisson yang dimodifikasi nol, sebagai berikut:
\[{\small
\begin{matrix}
\begin{array}{cccc} \hline
\text{Type of} & \text{Number of} & \text{Probability
of} & \lambda \\
\text{Policy} & \text{Policies} & \text{At Least 1
Claim} & \\ \hline
\text{Low-risk} & 40 & 0.03 & 1 \\
\text{High-risk} & 60 & 0.05 & 2 \\ \hline
\end{array}
\end{matrix}
}\]
Temukan nilai ekspektasi dan varians frekuensi klaim untuk seluruh
portofolio.
Solution. Untuk setiap polis, kita dapat menulis
frekuensi klaim Poisson yang dimodifikasi nol \(N_i\) sebagai \(N_i = I_i \times B_i\) dimana,
\[q_i = \Pr(I_i = 1) = \Pr(N_i > 0) =
1-p_{i0} .\]
\[\begin{aligned}
\mu_i &={\rm E}(B_i) = {\rm E}(N_i^T) =
\frac{\lambda}{1-e^{-\lambda}} \\
\sigma_i^2 &={\rm Var}(B_i) = {\rm Var}(N_i^T) = \frac{\lambda
[1-(\lambda+1)e^{-\lambda}]}{(1-e^{-\lambda})^2} .
\end{aligned}\]
gunakan \(n=100\) frekuensi klaim
portofolio menjadi \(S_{100} =
\sum_{i=1}^{100} N_i\). Dengan menggunakan rumus di atas,
frekuensi klaim yang diharapkan dari portofolio adalah
\[\begin{aligned}
\mathrm{E~} (S_{100}) &= \sum_{i=1}^{100} q_i \mu_i \\
& = 40\left[0.03 \left(\frac{1}{1-e^{-1}} \right) \right] + 60
\left[0.05 \left( \frac{2}{1-e^{-2}} \right) \right] \\
&= 40(0.03)(1.5820) + 60(0.05)(2.3130) = 8.8375 .
\end{aligned}\]
Varians dari frekuensi klaim portofolio adalah
\[\begin{aligned}
\mathrm{Var~}(S_{100}) &= \sum_{i=1}^{100} \left( q_i \sigma
_i^2+q_i (1-q_i
)\mu_i^2 \right) \\
&= 40 \left[ 0.03 \left(\frac{1-2e^{-1}}{(1-e^{-1})^2} \right) +
0.03(0.97)(1.5820^2) \right] \\
& \ \ \ + 60 \left[0.05 \left( \frac{2[1-3e^{-2}]}{
(1-e^{-2})^2} \right) + 0.05(0.95)(2.3130^2) \right] \\
&= 23.7214 .
\end{aligned}\]
Perhatikan bahwa secara ekuivalen, kita dapat menghitung rata-rata
dan varians dari polis individu secara langsung menggunakan hubungan
antara distribusi Poisson yang dimodifikasi-nol dan distribusi Poisson
terpotong-nol
Example 5.2.3
Seperti pada Contoh 5.2.1 sebelumnya, sebuah perusahaan asuransi
menjual 300 polis asuransi kebakaran, dengan jumlah klaim \(X_i\) terdistribusi seragam antara 0 dan
maksimum polis \(M_i\). Dengan
menggunakan pendekatan normal, hitunglah probabilitas bahwa jumlah klaim
keseluruhan \(S_300\) melebihi \(\$3,500\).
Solution. Kita telah melihat sebelumnya bagaimana
\(\mathrm{E}(S_{300})=2,800\) dan \(\mathrm{Var}(S_{300}) = 600,467\).
Kemudian
\[\begin{aligned}
{\rm Pr}(S_{300} > 3,500) &= 1 - {\rm Pr}(S_{300} \leq 3,500) \\
&\approx 1- \Phi \left( \frac{3,500-2,800}{\sqrt{600,467}} \right) =
1 - \Phi \left( 0.90334 \right) \\
&= 1 - 0.8168 = 0.1832 .
\end{aligned}\]
Table Distribusi Jumlah Parsial Bentuk Tertutup
\[{\small
\begin{matrix}
\begin{array}{l|l|l} \hline
\text{Distribution of } X_i & \text{Abbreviation} &
\text{Distribution of } S_n \\ \hline
\text{Normal with mean } \mu_i \text{ and variance } \sigma_i^2 &
N(\mu_i,\sigma_i^2) &
N\left(\sum_{i=1}^{n}\mu_i,~\sum_{i=1}^{n}\sigma_i^2\right) \\
\text{Exponential with mean } \theta & Exp(\theta) &
Gam(n,\theta)\\
\text{Gamma with shape } \alpha_i \text{ and scale } \theta &
Gam(\alpha_i,\theta) & Gam\left(\sum_{i=1}^n\alpha_i,\theta\right)
\\
\text{Poisson with mean (and variance) } \lambda_i &
Poi(\lambda_i)& Poi\left(\sum_{i=1}^{n}\lambda_i\right)\\
\text{Binomial with } m_i \text{ trials and } q \text{ success
probability} & Bin(m_i, q)& Bin\left(\sum_{i=1}^n m_i,
q\right)\\
\text{Geometric with mean } \beta & Geo(\beta) & NB(\beta,n)\\
\text{Negative binomial with mean } r_i \beta~& NB(\beta,r_i)&
NB\left(\beta,\sum_{i=1}^n r_i\right)\\
~ ~ ~ \text{ and variance } ~r_i \beta (1+\beta) & & \\
\hline
\end{array}
\end{matrix}
}\] .
LS0tDQp0aXRsZTogIlRlb3JpIFJpc2lrbyINCnN1YnRpdGxlOiAiQWdncmVnYXRlIExvc3MgTW9kZWxzIg0KYXV0aG9yOiAiWW9zaWEiDQpkYXRlOiAgIjAxLzAzLzIwMjMiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJvYm9ib29rOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgaGlnaGxpZ2h0OiBweWdtZW50cw0KICAgIHRoZW1lOiBzYW5kc3RvbmUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQoNCi0tLQ0KDQo8Qk9EWSB7DQogdXNlci1zZWxlY3Q6bm9uZTsNCiAtbW96LXVzZXItc2VsZWN0Om5vbmU7DQogLW1zLXVzZXItc2VsZWN0Om5vbmU7DQogLWtodG1sLXVzZXItc2VsZWN0Om5vbmU7DQogLXdlYmtpdC11c2VyLXNlbGVjdDpub25lDQp9Lz4NCg0KPGJyPg0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogLTUwcHggNTBweCAwcHggNTBweDsgd2lkdGg6MzAlIiBzcmM9ImRvd25sb2FkLnBuZyIvPiANCg0KfA0KOi0tLS0gfDotLS0tDQoqKktvbnRhayoqfCAqKjogJFxkb3duYXJyb3ckKioNCkVtYWlsfCB5b3NpYS55b3NpYUBzdHVkZW50Lm1hdGFuYXVuaXZlcnNpdHkuYWMuaWQNCkluc3RhZ3JhbSB8IFt5eW9zaWFdKGh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20veXlvc2lhLykgDQpSUHVicyAgfCBodHRwczovL3JwdWJzLmNvbS95b3NpYS8NCg0KKioqDQoNCiMgNS4yIE1vZGVsIFJpc2lrbyBJbmRpdmlkdQ0KDQpTZXBlcnRpIHlhbmcgdGVsYWggZGlzZWJ1dGthbiBzZWJlbHVtbnlhLCB1bnR1ayBtb2RlbCByaXNpa28gaW5kaXZpZHUsIGtpdGEgbWVuZ2FuZ2dhcCAkWF9pJCBzZWJhZ2FpIGtlcnVnaWFuIGRhcmkga29udHJhayBrZS1pIGRhbiBtZW5naW50ZXJwcmV0YXNpa2FuDQoNCiQkU19uPVhfMSArWF8yICtcY2RvdHMrWF9uICwkJA0KDQptZW5qYWRpIGtlcnVnaWFuIGFncmVnYXQgZGFyaSBzZW11YSBrb250cmFrIGRhbGFtIHBvcnRvZm9saW8gYXRhdSBrZWxvbXBvayBrb250cmFrLiBEaSBzaW5pLCAkWF9pJCBzZWJhZ2FpIGtlcnVnaWFuIGRhcmkga29udHJhayBrZS1pIGRhbiBtZW5naW50ZXJwcmV0YXNpa2FudGlkYWsgaGFydXMgdGVyZGlzdHJpYnVzaSBzZWNhcmEgaWRlbnRpayBkYW4ga2l0YSBtZW1pbGlraQ0KDQokJHtccm0gRX0oU19uKSA9IFxzdW1fe2k9MX1ee259IHtccm0gRX0oWF9pKX4uJCQNCg0KRGVuZ2FuIGFzdW1zaSBpbmRlcGVuZGVuc2kgcGFkYSAkWF9pJCAoeWFuZyBtZW5naW1wbGlrYXNpa2FuICRcbWF0aHJte0Nvdn1cbGVmdCggWF9pLCBYX2ogXHJpZ2h0KSA9IDAkIHVudHVrIHNlbXVhICRp4omgaiQpLCBzZWxhbmp1dG55YSBkYXBhdCBkaXR1bmp1a2thbiBiYWh3YQ0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIHtccm0gVmFyfShTX24pICY9IFxzdW1fe2k9MX1ee259IHtccm0gVmFyfShYX2kpIFxcDQogICAgUF97U19ufSh6KSAmPSBccHJvZF97aT0xfV57bn1QX3tYX2l9KHopIFxcDQogICAgTV97U19ufSh0KSAmPSBccHJvZF97aT0xfV57bn1NX3tYX2l9KHQpLCANClxlbmR7YWxpZ25lZH0kJA0KDQpkaW1hbmEgJFBfe1Nfbn0oXGNkb3QpJCBkYW4gJE1fe1Nfbn0oXGNkb3QpJCBtYXNpbmctbWFzaW5nIGFkYWxhaCBwcm9iYWJpbGl0eSBnZW5lcmF0aW5nIGZ1bmN0aW9uIChwZ2YpIGRhbiBtb21lbnQgZ2VuZXJhdGluZyBmdW5jdGlvbiAobWdmKSBkYXJpICRTX24kLiBEaXN0cmlidXNpIGRhcmkgc2V0aWFwICRYX2kkIG1lbmdhbmR1bmcgbWFzc2EgcHJvYmFiaWxpdGFzIG5vbCwgeWFuZyBiZXJodWJ1bmdhbiBkZW5nYW4gdGlkYWsgYWRhbnlhIGtsYWltIGRhcmkga29udHJhayBrZS1pLiBTYWxhaCBzYXR1IHN0cmF0ZWdpIHVudHVrIG1lbWFzdWtrYW4gbWFzc2Egbm9sIGRhbGFtIGRpc3RyaWJ1c2kgYWRhbGFoIGRlbmdhbiBtZW5nZ3VuYWthbiBrZXJhbmdrYSBrZXJqYSBkdWEgYmFnaWFuOg0KDQokJFxiZWdpbnthbGlnbmVkfQ0KWF9pID0gSV9pXHRpbWVzIEJfaSA9IFxsZWZ0XHtcYmVnaW57YXJyYXl9e2xsfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB+LCAmIFx0ZXh0e2lmIH1+IElfaT0wIFxcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQl9pfiwgJiBcdGV4dHtpZiB9fiBJX2k9MSAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxlbmR7YXJyYXl9DQogICAgICAgICAgICAgXHJpZ2h0Lg0KXGVuZHthbGlnbmVkfSQkDQoNCkRpIHNpbmksICRJX2kkIGFkYWxhaCB2YXJpYWJlbCBCZXJub3VsbGkgeWFuZyBtZW5naW5kaWthc2lrYW4gYXBha2FoIGtlcnVnaWFuIHRlcmphZGkgdW50dWsga29udHJhayBrZS1pIGF0YXUgdGlkYWssIGRhbiAkQl9pJCBhZGFsYWggdmFyaWFiZWwgYWNhayBkZW5nYW4gZHVrdW5nYW4gbm9uLW5lZ2F0aWYgeWFuZyBtZXdha2lsaSBqdW1sYWgga2VydWdpYW4gZGFyaSBrb250cmFrIHlhbmcgbWVuZ2FsYW1pIGtlcnVnaWFuLiBBc3Vtc2lrYW4gYmFod2EgJElfMSAsXGxkb3RzLElfbiAsQl8xICxcbGRvdHMsQl9uJCBzYWxpbmcgYmViYXMuIE55YXRha2FuICR7XHJtIFByfSAoSV9pID0xKT1xX2kkLCBkYW4gJFxzaWdtYV9pXjI9e1xybSBWYXJ9KEJfaSkkLg0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtFfShTX24pJiA9XHN1bV97aT0xfV5uIH5xX2kgIH5cbXUgX2kgXFwNClxtYXRocm17VmFyfShTX24pICYgPVxzdW1fe2k9MX1ebiBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kpXG11X2leMiBccmlnaHQpXFwNClBfe1Nfbn0oeikgJiA9XHByb2Rfe2k9MX1ebiBcbGVmdCggMS1xX2krcV9pIFBfe0JfaX0oeikgXHJpZ2h0KVxcDQpNX3tTX259KHQpICYgPVxwcm9kX3tpPTF9Xm4gXGxlZnQoIDEtcV9pK3FfaSBNX3tCX2l9KHQpIFxyaWdodCkgLg0KXGVuZHthbGlnbmVkfSQkDQoNCkthc3VzIGtodXN1cyBkYXJpIG1vZGVsIGRpIGF0YXMgYWRhbGFoIGtldGlrYSAkQl9pJCBtZW5naWt1dGkgZGlzdHJpYnVzaSBkZWdlbmVyYXNpIGRlbmdhbiAkXG11X2k9Yl9pJCBkYW4gJFxzaWdtYV4yX2k9MCQuIFNhbGFoIHNhdHUgY29udG9obnlhIGFkYWxhaCBhc3VyYW5zaSBqaXdhIGJlcmphbmdrYSBhdGF1IGFzdXJhbnNpIGR3aWd1bmEgbXVybmkgZGkgbWFuYSAkYl9pJCBtZXJlcHJlc2VudGFzaWthbiBqdW1sYWggbWFuZmFhdCBhc3VyYW5zaSBkYXJpIGtvbnRyYWsga2UtaS4NCg0KU3RyYXRlZ2kgbGFpbiB1bnR1ayBtZW5nYWtvbW9kYXNpIG1hc3NhIG5vbCBkYWxhbSBrZXJ1Z2lhbiBkYXJpIHNldGlhcCBrb250cmFrIGFkYWxhaCBkZW5nYW4gbWVtcGVydGltYmFuZ2thbm55YSBzZWNhcmEgYWdyZWdhdCBkaSB0aW5na2F0IHBvcnRvZm9saW8sIHNlcGVydGkgZGFsYW0gbW9kZWwgcmlzaWtvIGtvbGVrdGlmLiBEaSBzaW5pLCBrZXJ1Z2lhbiBhZ3JlZ2F0IGFkYWxhaCAkU197Tn0gPSBYXzEgKyBcY2RvdHMgKyBYX04kLCBkaSBtYW5hICROJCBhZGFsYWggdmFyaWFiZWwgYWNhayB5YW5nIG1lcmVwcmVzZW50YXNpa2FuIGp1bWxhaCBrbGFpbSB5YW5nIHRpZGFrIG5vbCB5YW5nIHRlcmphZGkgZGFyaSBzZWx1cnVoIGtlbG9tcG9rIGtvbnRyYWsuIERlbmdhbiBkZW1pa2lhbiwgdGlkYWsgc2VtdWEga29udHJhayBkYWxhbSBwb3J0b2ZvbGlvIGRhcGF0IGRpd2FraWxpIGRhbGFtIHBlbmp1bWxhaGFuIGluaSwgZGFuICRTX049MCQga2V0aWthICROPTAkIE1vZGVsIHJpc2lrbyBrb2xla3RpZiBha2FuIGRpYmFoYXMgc2VjYXJhIHJpbmNpIHBhZGEgYmFnaWFuIHNlbGFuanV0bnlhLg0KDQojIyBFeGFtcGxlIDUuMi4xDQoNCioqUGVydGFueWFhbiBVamlhbiBBa3R1YXJpYS4qKiBTZWJ1YWggcGVydXNhaGFhbiBhc3VyYW5zaSBtZW5qdWFsIDMwMCBwb2xpcyBhc3VyYW5zaSBrZWJha2FyYW4gc2ViYWdhaSBiZXJpa3V0Og0KDQokJHtcc21hbGwgDQpcYmVnaW57bWF0cml4fQ0KICAgIFxiZWdpbnthcnJheX17YyBjIGN9IFxobGluZQ0KICAgICAgICBcdGV4dHtOdW1iZXIgb2Z9ICYgXHRleHR7UG9saWN5fSAmIFx0ZXh0e1Byb2JhYmlsaXR5IG9mfVxcDQogICAgICAgIFx0ZXh0e1BvbGljaWVzfSAmICBcdGV4dHtNYXhpbXVtfSAmICBcdGV4dHtDbGFpbSBQZXIgUG9saWN5fVxcIA0KICAgICAgICAmIChNX2kpICYgKHFfaSkgXFwgXGhsaW5lDQogICAgICAgIDEwMCAmIDQwMCAmIDAuMDVcXA0KICAgICAgICAyMDAgJiAzMDAgJiAwLjA2XFwgXGhsaW5lDQogICAgXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNCkRpYmVyaWthbjogDQooaSkgSnVtbGFoIGtsYWltIHVudHVrIHNldGlhcCBwb2xpcywgJFhfaSQsIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIHNlcmFnYW0gYW50YXJhICQwJCBkYW4gbWFrc2ltdW0gcG9saXMgJE1faSQuDQooaWkpIFByb2JhYmlsaXRhcyB0ZXJqYWRpbnlhIGxlYmloIGRhcmkgc2F0dSBrbGFpbSBwZXIgcG9saXMgYWRhbGFoICQwJC4gDQooaWlpKSBLZWphZGlhbiBrbGFpbSBiZXJzaWZhdCBpbmRlcGVuZGVuLg0KDQpIaXR1bmdsYWggcmF0YS1yYXRhIChtZWFuKSwgJEUoU197MzAwfSkkLCBkYW4gdmFyaWFucywgJFZhcihTX3szMDB9KSQsIGRhcmkga2VzZWx1cnVoYW4ga2xhaW0uIEJhZ2FpbWFuYSBoYXNpbCBpbmkgYWthbiBiZXJ1YmFoIGppa2Egc2V0aWFwIGtsYWltIHNhbWEgZGVuZ2FuIG1ha3NpbXVtIHBvbGlzPw0KDQoqKlNvbHVzaS4qKiBLbGFpbSBrZXNlbHVydWhhbiBhZGFsYWggJFNfezMwMH0gPSBYXzErXGNkb3RzK1hfezMwMH0kIGRpbWFuYSAkWF8xLCBcbGRvdHMsIFhfezMwMH0kIGFkYWxhaCBpbmRlcGVuZGVuIG5hbXVuIHRpZGFrIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIGlkZW50aWsuIEp1bWxhaCBrbGFpbSBwb2xpcyB0ZXJkaXN0cmlidXNpIHNlY2FyYSBzZXJhZ2FtIHBhZGEgJCgwLE1faSkkIHNlaGluZ2dhIHJhdGEtcmF0YSBqdW1sYWgga2xhaW0gYWRhbGFoICRNX2kvMiQgZGFuIHZhcmlhbnNueWEgYWRhbGFoICRNX2leMi8xMiQgLiBEZW5nYW4gZGVtaWtpYW4sIHVudHVrIHBvbGlzICRpPTEsXGxkb3RzLDMwMCQgLCBraXRhIG1lbWlsaWtpDQoNCiQke1xzbWFsbCANClxiZWdpbnttYXRyaXh9DQogICAgXGJlZ2lue2FycmF5fXtjY2NjY30gXGhsaW5lDQogICAgICAgIFx0ZXh0e051bWJlciBvZn0gJiBcdGV4dHtQb2xpY3l9ICYgXHRleHR7UHJvYmFiaWxpdHkgb2Z9ICYgXHRleHR7TWVhbn0gJiBcdGV4dHtWYXJpYW5jZX1cXA0KICAgICAgICBcdGV4dHtQb2xpY2llc30gJiAgXHRleHR7TWF4aW11bX0gJiAgXHRleHR7Q2xhaW0gUGVyIFBvbGljeX0gJiBcdGV4dHtBbW91bnR9ICYgXHRleHR7QW1vdW50fVxcDQogICAgICAgICYgKE1faSkgJiAocV97aX0pICYgKFxtdV97aX0pICYgKFxzaWdtYV97aX1eMikgXFwgXGhsaW5lDQogICAgICAgIDEwMCAmIDQwMCAmIDAuMDUgJiAyMDAgJiA0MDBeMi8xMlxcDQogICAgICAgIDIwMCAmIDMwMCAmIDAuMDYgJiAxNTAgJiAzMDBeMi8xMiBcXCBcaGxpbmUNCiAgICBcZW5ke2FycmF5fQ0KXGVuZHttYXRyaXh9DQp9JCQNCg0KUmF0YS1yYXRhIGRhcmkga2xhaW0gYWdyZWdhdCBhZGFsYWgNCg0KJCRcbWF0aHJte0V+fSAoU197MzAwfSkgPSBcc3VtX3tpPTF9XnszMDB9IHFfaSBcbXVfaSA9IDEwMFxsZWZ0XHswLjA1KDIwMClccmlnaHRcfSArIDIwMFxsZWZ0XHswLjA2ICgxNTApIFxyaWdodFx9ID0gMiw4MDAkJA0KDQpWYXJpYW5zIGRhcmkga2xhaW0gYWdyZWdhdCBhZGFsYWgNCg0KJCRcYmVnaW57YXJyYXl9e2xsfQ0KICAgIFxtYXRocm17VmFyfn0oU197MzAwfSkgJj0gXHN1bV97aT0xfV57MzAwfSBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kpXG11X2leMiBccmlnaHQpIH5+fn4gXHRleHR7c2luY2UgfSBYX2kgXHRleHR7J3MgYXJlIGluZGVwZW5kZW50fSBcXA0KICAgICY9IDEwMFxsZWZ0XHsgMC4wNSBcbGVmdChcZnJhY3s0MDBeMn17MTJ9XHJpZ2h0KSArMC4wNSAoMS0wLjA1ICkyMDBeMiBccmlnaHRcfSBcXA0KICAgICYgXCBcIFwgXCArDQogICAgMjAwXGxlZnRcew0KICAgIDAuMDYgXGxlZnQoXGZyYWN7MzAwXjJ9ezEyfVxyaWdodCkgKzAuMDYgKDEtMC4wNiApMTUwXjIgXHJpZ2h0XH1cXA0KICAgICY9IDYwMCw0NjcuDQogICAgXGVuZHthcnJheX0kJA0KDQpTZWthcmFuZyBhbmdnYXBsYWgga2l0YSBtZW5lcmltYSAkTV9pJCBtYWtzaW11bSBwb2xpcyBqaWthIHRlcmphZGkga2xhaW0uIEJlcmFwYWthaCBla3NwZWt0YXNpIGtlcnVnaWFuIGtlc2VsdXJ1aGFuICRcbWF0aHJte0V+fShcdGlsZGV7U30pJCBkYW4gdmFyaWFucyBrZXJ1Z2lhbiBrZXNlbHVydWhhbiAkXG1hdGhybXtWYXJ+fShcdGlsZGV7U30pJD8NCg0KU2V0aWFwIGp1bWxhaCBrbGFpbSBwb2xpcyAkWF9pJCBzZWthcmFuZyBiZXJzaWZhdCBkZXRlcm1pbmlzdGlrIGRhbiBkaXRldGFwa2FuIHBhZGEgJE1faSQsIGJ1a2FuIGp1bWxhaCB5YW5nIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIGFjYWssIHNlaGluZ2dhICRcc2lnbWFfaV4yID0gXG1hdGhybXtWYXJ+fSAoWF9pKSA9IDAkIGRhbiAkXG11X2kgPSBNX2kkLiBTZWthbGkgbGFnaSwgcHJvYmFiaWxpdGFzIHRlcmphZGlueWEga2xhaW0gdW50dWsgc2V0aWFwIHBvbGlzIGFkYWxhaCAkcV9pJC4gRGFsYW0ga2VhZGFhbiBpbmksIGtlcnVnaWFuIGFncmVnYXQgeWFuZyBkaWhhcmFwa2FuIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtFfn0oXHRpbGRle1N9KSAmPSBcc3VtX3tpPTF9XnszMDB9IHFfaSBcbXVfaSA9IDEwMCBcbGVmdFx7MC4wNSg0MDApIFxyaWdodFx9ICsgMjAwIFxsZWZ0XHsgMC4wNigzMDApIFxyaWdodFx9ID0gNSw2MDAgLg0KXGVuZHthbGlnbmVkfSQkDQoNClZhcmlhbnMgZGFyaSBrZXJ1Z2lhbiBhZ3JlZ2F0IGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtWYXJ+fShcdGlsZGV7U30pICY9IFxzdW1fe2k9MX1eezMwMH0gXGxlZnQoIHFfaSBcc2lnbWEgX2leMitxX2kgKDEtcV9pDQopXG11X2leMiBccmlnaHQpID0gXHN1bV97aT0xfV57MzAwfSBcbGVmdCggcV9pICgxLXFfaSkgXG11X2leMiBccmlnaHQpIFxcDQomPSAxMDAgXGxlZnRceygwLjA1KSAoMS0wLjA1KSA0MDBeMlxyaWdodFx9ICsNCjIwMCBcbGVmdFx7KDAuMDYpICgxLTAuMDYpMzAwXjJccmlnaHRcfSBcXA0KJj0gMSw3NzUsMjAwIC4NClxlbmR7YWxpZ25lZH0kJA0KDQojIyBFeGFtcGxlIDUuMi4yDQoNClNlYnVhaCBwZXJ1c2FoYWFuIGFzdXJhbnNpIG1lbmp1YWwgcG9ydG9mb2xpbyAxMDAgcG9saXMgYXN1cmFuc2kgcGVtaWxpayBydW1haCBpbmRlcGVuZGVuLCB5YW5nIG1hc2luZy1tYXNpbmcgbWVtaWxpa2kgZnJla3VlbnNpIGtsYWltIG1lbmdpa3V0aSBkaXN0cmlidXNpIFBvaXNzb24geWFuZyBkaW1vZGlmaWthc2kgbm9sLCBzZWJhZ2FpIGJlcmlrdXQ6DQoNCiQke1xzbWFsbCANClxiZWdpbnttYXRyaXh9DQogICAgXGJlZ2lue2FycmF5fXtjY2NjfSBcaGxpbmUNCiAgICAgICAgXHRleHR7VHlwZSBvZn0gJiBcdGV4dHtOdW1iZXIgb2Z9ICAmIFx0ZXh0e1Byb2JhYmlsaXR5IG9mfSAmIFxsYW1iZGEgXFwNCiAgICAgICAgXHRleHR7UG9saWN5fSAmIFx0ZXh0e1BvbGljaWVzfSAgJiAgXHRleHR7QXQgTGVhc3QgMSBDbGFpbX0gJiAgXFwgXGhsaW5lDQogICAgICAgIFx0ZXh0e0xvdy1yaXNrfSAmIDQwICYgMC4wMyAmIDEgXFwNCiAgICAgICAgXHRleHR7SGlnaC1yaXNrfSAmIDYwICYgMC4wNSAmIDIgXFwgXGhsaW5lDQogICAgXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNClRlbXVrYW4gbmlsYWkgZWtzcGVrdGFzaSBkYW4gdmFyaWFucyBmcmVrdWVuc2kga2xhaW0gdW50dWsgc2VsdXJ1aCBwb3J0b2ZvbGlvLg0KDQoqKlNvbHV0aW9uKiouIFVudHVrIHNldGlhcCBwb2xpcywga2l0YSBkYXBhdCBtZW51bGlzIGZyZWt1ZW5zaSBrbGFpbSBQb2lzc29uIHlhbmcgZGltb2RpZmlrYXNpIG5vbCAkTl9pJCBzZWJhZ2FpICROX2kgPSBJX2kgXHRpbWVzIEJfaSQgZGltYW5hLA0KDQokJHFfaSA9IFxQcihJX2kgPSAxKSA9IFxQcihOX2kgPiAwKSA9IDEtcF97aTB9IC4kJA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG11X2kgJj17XHJtIEV9KEJfaSkgPSB7XHJtIEV9KE5faV5UKSA9IFxmcmFje1xsYW1iZGF9ezEtZV57LVxsYW1iZGF9fSBcXA0KXHNpZ21hX2leMiAmPXtccm0gVmFyfShCX2kpID0ge1xybSBWYXJ9KE5faV5UKSA9IFxmcmFje1xsYW1iZGEgWzEtKFxsYW1iZGErMSllXnstXGxhbWJkYX1dfXsoMS1lXnstXGxhbWJkYX0pXjJ9IC4NClxlbmR7YWxpZ25lZH0kJA0KDQpndW5ha2FuICRuPTEwMCQgZnJla3VlbnNpIGtsYWltIHBvcnRvZm9saW8gbWVuamFkaSAkU197MTAwfSA9IFxzdW1fe2k9MX1eezEwMH0gTl9pJC4gRGVuZ2FuIG1lbmdndW5ha2FuIHJ1bXVzIGRpIGF0YXMsIGZyZWt1ZW5zaSBrbGFpbSB5YW5nIGRpaGFyYXBrYW4gZGFyaSBwb3J0b2ZvbGlvIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIFxtYXRocm17RX59IChTX3sxMDB9KSAmPSBcc3VtX3tpPTF9XnsxMDB9IHFfaSBcbXVfaSBcXA0KICAgICYgPSA0MFxsZWZ0WzAuMDMgXGxlZnQoXGZyYWN7MX17MS1lXnstMX19IFxyaWdodCkgXHJpZ2h0XSArIDYwIFxsZWZ0WzAuMDUgXGxlZnQoIFxmcmFjezJ9ezEtZV57LTJ9fSBccmlnaHQpIFxyaWdodF0gXFwNCiAgICAmPSA0MCgwLjAzKSgxLjU4MjApICsgNjAoMC4wNSkoMi4zMTMwKSA9IDguODM3NSAuDQpcZW5ke2FsaWduZWR9JCQNCg0KVmFyaWFucyBkYXJpIGZyZWt1ZW5zaSBrbGFpbSBwb3J0b2ZvbGlvIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIFxtYXRocm17VmFyfn0oU197MTAwfSkgJj0gXHN1bV97aT0xfV57MTAwfSBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kNCiAgICApXG11X2leMiBccmlnaHQpIFxcDQogICAgJj0gNDAgXGxlZnRbIDAuMDMgXGxlZnQoXGZyYWN7MS0yZV57LTF9fXsoMS1lXnstMX0pXjJ9IFxyaWdodCkgKyAwLjAzKDAuOTcpKDEuNTgyMF4yKSBccmlnaHRdIFxcDQogICAgJiBcIFwgXCArIDYwIFxsZWZ0WzAuMDUgXGxlZnQoIFxmcmFjezJbMS0zZV57LTJ9XX17ICgxLWVeey0yfSleMn0gXHJpZ2h0KSArIDAuMDUoMC45NSkoMi4zMTMwXjIpIFxyaWdodF0gXFwNCiAgICAmPSAyMy43MjE0IC4NClxlbmR7YWxpZ25lZH0kJA0KDQpQZXJoYXRpa2FuIGJhaHdhIHNlY2FyYSBla3VpdmFsZW4sIGtpdGEgZGFwYXQgbWVuZ2hpdHVuZyByYXRhLXJhdGEgZGFuIHZhcmlhbnMgZGFyaSBwb2xpcyBpbmRpdmlkdSBzZWNhcmEgbGFuZ3N1bmcgbWVuZ2d1bmFrYW4gaHVidW5nYW4gYW50YXJhIGRpc3RyaWJ1c2kgUG9pc3NvbiB5YW5nIGRpbW9kaWZpa2FzaS1ub2wgZGFuIGRpc3RyaWJ1c2kgUG9pc3NvbiB0ZXJwb3Rvbmctbm9sDQoNCiMjIEV4YW1wbGUgNS4yLjMNCg0KU2VwZXJ0aSBwYWRhIENvbnRvaCA1LjIuMSBzZWJlbHVtbnlhLCBzZWJ1YWggcGVydXNhaGFhbiBhc3VyYW5zaSBtZW5qdWFsIDMwMCBwb2xpcyBhc3VyYW5zaSBrZWJha2FyYW4sIGRlbmdhbiBqdW1sYWgga2xhaW0gJFhfaSQgdGVyZGlzdHJpYnVzaSBzZXJhZ2FtIGFudGFyYSAwIGRhbiBtYWtzaW11bSBwb2xpcyAkTV9pJC4gRGVuZ2FuIG1lbmdndW5ha2FuIHBlbmRla2F0YW4gbm9ybWFsLCBoaXR1bmdsYWggcHJvYmFiaWxpdGFzIGJhaHdhIGp1bWxhaCBrbGFpbSBrZXNlbHVydWhhbiAkU18zMDAkIG1lbGViaWhpICRcJDMsNTAwJC4NCg0KKipTb2x1dGlvbi4qKiBLaXRhIHRlbGFoIG1lbGloYXQgc2ViZWx1bW55YSBiYWdhaW1hbmEgJFxtYXRocm17RX0oU197MzAwfSk9Miw4MDAkIGRhbiAkXG1hdGhybXtWYXJ9KFNfezMwMH0pID0gNjAwLDQ2NyQuIEtlbXVkaWFuDQoNCiQkXGJlZ2lue2FsaWduZWR9DQp7XHJtIFByfShTX3szMDB9ID4gMyw1MDApICY9IDEgLSB7XHJtIFByfShTX3szMDB9IFxsZXEgMyw1MDApIFxcDQomXGFwcHJveCAxLSBcUGhpIFxsZWZ0KCBcZnJhY3szLDUwMC0yLDgwMH17XHNxcnR7NjAwLDQ2N319IFxyaWdodCkgPSAxIC0gXFBoaSBcbGVmdCggMC45MDMzNCBccmlnaHQpIFxcDQomPSAxIC0gMC44MTY4ID0gMC4xODMyIC4NClxlbmR7YWxpZ25lZH0kJA0KDQoNCioqVGFibGUgRGlzdHJpYnVzaSBKdW1sYWggUGFyc2lhbCBCZW50dWsgVGVydHV0dXAqKg0KJCR7XHNtYWxsDQpcYmVnaW57bWF0cml4fQ0KICAgIFxiZWdpbnthcnJheX17bHxsfGx9IFxobGluZQ0KICAgICAgICBcdGV4dHtEaXN0cmlidXRpb24gb2YgfSBYX2kgJiBcdGV4dHtBYmJyZXZpYXRpb259ICYgXHRleHR7RGlzdHJpYnV0aW9uIG9mIH0gU19uICAgXFwgXGhsaW5lDQpcdGV4dHtOb3JtYWwgd2l0aCBtZWFuIH0gXG11X2kgXHRleHR7IGFuZCB2YXJpYW5jZSB9IFxzaWdtYV9pXjIgJiBOKFxtdV9pLFxzaWdtYV9pXjIpICYgTlxsZWZ0KFxzdW1fe2k9MX1ee259XG11X2ksflxzdW1fe2k9MX1ee259XHNpZ21hX2leMlxyaWdodCkgXFwNClx0ZXh0e0V4cG9uZW50aWFsIHdpdGggbWVhbiB9IFx0aGV0YSAmIEV4cChcdGhldGEpICYgR2FtKG4sXHRoZXRhKVxcICANClx0ZXh0e0dhbW1hIHdpdGggc2hhcGUgfSBcYWxwaGFfaSBcdGV4dHsgYW5kIHNjYWxlIH0gXHRoZXRhICYgR2FtKFxhbHBoYV9pLFx0aGV0YSkgJiBHYW1cbGVmdChcc3VtX3tpPTF9Xm5cYWxwaGFfaSxcdGhldGFccmlnaHQpIFxcICANClx0ZXh0e1BvaXNzb24gd2l0aCBtZWFuIChhbmQgdmFyaWFuY2UpIH0gXGxhbWJkYV9pICAmIFBvaShcbGFtYmRhX2kpJiBQb2lcbGVmdChcc3VtX3tpPTF9XntufVxsYW1iZGFfaVxyaWdodClcXCAgDQpcdGV4dHtCaW5vbWlhbCB3aXRoIH0gbV9pIFx0ZXh0eyB0cmlhbHMgYW5kIH0gcSBcdGV4dHsgc3VjY2VzcyBwcm9iYWJpbGl0eX0gJiBCaW4obV9pLCBxKSYgQmluXGxlZnQoXHN1bV97aT0xfV5uIG1faSwgcVxyaWdodClcXCAgDQpcdGV4dHtHZW9tZXRyaWMgd2l0aCBtZWFuIH0gXGJldGEgJiBHZW8oXGJldGEpICYgTkIoXGJldGEsbilcXCAgDQpcdGV4dHtOZWdhdGl2ZSBiaW5vbWlhbCB3aXRoIG1lYW4gfSAgcl9pIFxiZXRhfiYgTkIoXGJldGEscl9pKSYgTkJcbGVmdChcYmV0YSxcc3VtX3tpPTF9Xm4gcl9pXHJpZ2h0KVxcICANCn4gfiB+ICBcdGV4dHsgYW5kIHZhcmlhbmNlIH0gfnJfaSBcYmV0YSAoMStcYmV0YSkgJiAmIFxcICANClxobGluZQ0KICAgIFxlbmR7YXJyYXl9DQpcZW5ke21hdHJpeH0NCn0kJA0KIC4=