Binomial Distribution (이항 분포) : 성공/실패 가 있는 도전이고 개별 도전이 독립적인 경우
dbinom(0, size=12, prob=0.2); dbinom(1, size=12, prob=0.2); dbinom(2, size=12, prob=0.2); dbinom(3, size=12, prob=0.2); dbinom(4, size=12, prob=0.2)
[1] 0.06871948
[1] 0.2061584
[1] 0.2834678
[1] 0.2362232
[1] 0.1328756
구조가 이렇다. 12개의 판정을 하는데, 0.2의 당첨 확률이 있다고 치고, n개가 당첨되는 확률. 당연하지만 20%니까 10번 하면 2개 당첨될 확률이 가장 높고, 3개가 그 다음, 1개가 또 그 다음의 형태가 될 것이고, 그것이 위의 결과값
역으로 이 확률값의 sum, 그러니까 누적 확률값은 pbinom 을 쓴다.
pbinom(4, size=12, prob=0.2); dbinom(0, size=12, prob=0.2)+ dbinom(1, size=12, prob=0.2)+ dbinom(2, size=12, prob=0.2)+ dbinom(3, size=12, prob=0.2)+ dbinom(4, size=12, prob=0.2)
[1] 0.9274445
[1] 0.9274445
누적값은 그때까지의 합과 같다. 즉, 4개까지 당첨될 확률의 합은 92.7%.
역으로 계산한다면, 80% 확률에서 7개까지 당첨될 확률을 1에서 빼면 같은 값이 되지 않을까?
1- pbinom(7, size=12, prob=0.8)
[1] 0.9274445
맞네..
Poisson Distribution (쁘아송 분포) : 특정 시간 동안 평균적으로 벌어지는 확률
언급되어 있는 예시는, ’평균 분당 12대의 차가 지나가는 다리가 있다고 했을 때, 어떤 1분동안 17대 이상이 지나갈 확률은 얼마일까?
ppois(16, lambda=12); ppois(16, lambda=12, lower=FALSE)
[1] 0.898709
[1] 0.101291
lower FALSE 를 달아주면, 윗쪽 부분의 확률을 잡아준다. 앞쪽의 결과 (89.9%) 는 16대 미만으로 지나갈 확률이 된다.
Continuous Uniform Distribution (연속 균등 분포) : 특정 범위 내에서 분포가 균일하다 unif 가 보통 쓰이는 모양이고 runif(10, min=1, max=3) 로 만들면 1 과 3 사이의 균등으로 랜덤하게 숫자를 만들어냄
바꿔 말하면 누적을 그래프로 그리면 기울기가 일정하다

1만개 정도 랜덤으로 뽑아서 density 를 출력하면 대충 이런 모양이 된다. 중간에 약간 들어간 건 운좋게(나쁘게) 아랫쪽으로 내려간 게 된다
Exponential Distribution (지수 분포) : 말이 어려운데 (…) 특정시간동안 몇 번 정도 독립적으로 발생하는 확률을 따르는 어떤 사건이 있을 때 (=쁘아송 분포), 한 사건이 있은 뒤에 다음 사건이 있을 때 까지 걸리는 시간은 지수 분포를 이룬다. 예를 들어 1분동안 3번 있는 일이라면, 평균 20초 정도가 대기 시간이 될 것이고, 실제 대기 시간의 분포는 지수 분포를 이루는 식이다.
예시를 검색해보면 대충 이런 식인데, 예를 들어 평균 수명이 5년인 부품이 6년간 살아있을 가능성은? 이라고 한다면
1- pexp(6, rate=1/5) ; pexp(6, rate=1/5)
[1] 0.3011942
[1] 0.6988058
이 된다. 후자로 나오는 1- 가 없는 부분은 6년 이내에 망가질 확률이 된다. 시간 단위 내에 독립시행으로 발생하는 사건의 평균이 해당 기준이기 때문에 딱히 확률상 차이가 없다.
Normal Distribution (정규분포) : 독립적인 확률변수들의 평균은 정규분포가 된다 (중심극한정리). 그래서 뭐든 독립시행을 잔뜩 하면 그냥 다 이쪽을 쓰게 된다.
평균이 72, 표준편차가 15.2인 정규분포에서, 84 이상인 값이 발생할 확률은
pnorm(84, mean=72, sd=15.2, lower.tail=FALSE)
[1] 0.2149176
Chi-squared Distribution (치스퀘어/카이스퀘어/카이제곱 분포) : m개의 여러 독립 랜덤 변수가 표준 정규 분포를 따른다고 할 때, 그 확률변수를 각각 제곱하여 합해서 얻어지는 분포.
라고는 하지만 확률 변수가 어떻게 정해지고 해당 확률 변수를 제곱하면 어떻게 계산되는지를 이해하는 것이 상당히 어려웠기 때문에 우선 여기서는 표준 정규 분포를 따르는 여러 독립 변수가 있을 때 일어나는 일을 검증하는 데 사용하는 거라고 이해하고 넘어가기로 했음.
어쨌건
qchisq(.95, df=7)
[1] 14.06714
의미는 이렇다: 자유도(df, degree of freedom)가 7인 (즉, 8개의 표준 정규 분포를 따르는 독립 확률 변수가 있다고 가정할 때) 95%의 신뢰도를 가지는 카이제곱 값의 한계는 14가 된다. 카이제곱 값을 계산해봤더니 14보다 작은 분산값이 나온다면 그건 같은 데이터를 기반으로 하는 것일 가능성이 있고, 14보다 큰 분산값이 나온다면 그건 다른 데이터를 기반으로 하는 독립 확률 변수일 가능성이 높다.
Student t Distribution (T 분포) : 독립 확률 변수 Z가 표준 정규 분포를 갖고, 다른 확률 변수 V가 자유도 m의 카이제곱 분포 를 따른다고 가정할 때, 이 두 개를 적당히 섞어서 계산한 값의 분포. 평균을 계산할 때에 모집단의 분산이 포함되지 않으므로 그 부분을 몰라도 평균값을 추정할 수 있다.
여전히 이해하기가 까다롭기 때문에 의미론적으로만 접근하기로 한다
qt(c(0.025, 0.975), df=5)
[1] -2.570582 2.570582
자유도가 5 일때 (즉 6개의 독립 확률 변수가 있다) 95% 의 신뢰도를 갖는 T 분포의 범위는 -2.57~2.57 사이에 있고, T검증 계산에서 해당 범위 내에 존재할 경우에는 p 값은 95% 보다 작게 된다.
실제로는 그냥 t.test() 를 호출하여 계산할 것으로 생각됨. 호출하면 p-value 까지 같이 다 계산해 준다.
F Distribution (F 분포): 두 개의 확률 변수가 카이제곱 분포를 따를 때 (각각 자유도가 다를 수 있다) 그것들을 이용해서 만들어낸 분포
qf(.95, df1=5, df2=2)
[1] 19.29641
한 집단의 자유도가 5 (변수 6개) 다른 집단의 자유도가 2(변수 3개) 일 때, 두 집단에서 F 검증을 했을 때 두 집단이 다를 수도 있다- 라는 얘기를 하려면 19.3 이상의 값이 나와야 한다. 는 의미.
그러나 실제로는 그냥 var.test() 를 호출하면 p값이 나와준다.
x = rnorm(6, mean=1); y = rnorm(3, mean=10) ; var.test(x, y)
F test to compare two variances
data: x and y
F = 1.47, num df = 5, denom df = 2, p-value = 0.9042
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.03740709 12.39769556
sample estimates:
ratio of variances
1.470032
LS0tCnRpdGxlOiAiUiBTdHVkeSA0IC0gUHJvYmFiaWxpdHkgRGlzdHJpYnV0aW9ucyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKQmlub21pYWwgRGlzdHJpYnV0aW9uICjsnbTtla0g67aE7Y+sKSA6IOyEseqztS/si6TtjKgg6rCAIOyeiOuKlCDrj4TsoITsnbTqs6Ag6rCc67OEIOuPhOyghOydtCDrj4Xrpr3soIHsnbgg6rK97JqwCgpgYGB7cn0KZGJpbm9tKDAsIHNpemU9MTIsIHByb2I9MC4yKTsgZGJpbm9tKDEsIHNpemU9MTIsIHByb2I9MC4yKTsgZGJpbm9tKDIsIHNpemU9MTIsIHByb2I9MC4yKTsgZGJpbm9tKDMsIHNpemU9MTIsIHByb2I9MC4yKTsgZGJpbm9tKDQsIHNpemU9MTIsIHByb2I9MC4yKQpgYGAKCuq1rOyhsOqwgCDsnbTroIfri6QuIDEy6rCc7J2YIO2MkOygleydhCDtlZjripTrjbAsIDAuMuydmCDri7nssqgg7ZmV66Wg7J20IOyeiOuLpOqzoCDsuZjqs6AsIG7qsJzqsIAg64u57LKo65CY64qUIO2ZleuloC4K64u57Jew7ZWY7KeA66eMIDIwJeuLiOq5jCAxMOuyiCDtlZjrqbQgMuqwnCDri7nssqjrkKAg7ZmV66Wg7J20IOqwgOyepSDrhpLqs6AsIDPqsJzqsIAg6re4IOuLpOydjCwgMeqwnOqwgCDrmJAg6re4IOuLpOydjOydmCDtmJXtg5zqsIAg65CgIOqyg+ydtOqzoCwg6re46rKD7J20IOychOydmCDqsrDqs7zqsJIgCgrsl63snLzroZwg7J20IO2ZleuloOqwkuydmCBzdW0sIOq3uOufrOuLiOq5jCDriITsoIEg7ZmV66Wg6rCS7J2AIHBiaW5vbSDsnYQg7JO064ukLgoKYGBge3J9CnBiaW5vbSg0LCBzaXplPTEyLCBwcm9iPTAuMik7IGRiaW5vbSgwLCBzaXplPTEyLCBwcm9iPTAuMikrIGRiaW5vbSgxLCBzaXplPTEyLCBwcm9iPTAuMikrIGRiaW5vbSgyLCBzaXplPTEyLCBwcm9iPTAuMikrIGRiaW5vbSgzLCBzaXplPTEyLCBwcm9iPTAuMikrIGRiaW5vbSg0LCBzaXplPTEyLCBwcm9iPTAuMikKYGBgCgrriITsoIHqsJLsnYAg6re465WM6rmM7KeA7J2YIO2VqeqzvCDqsJnri6QuIOymiSwgNOqwnOq5jOyngCDri7nssqjrkKAg7ZmV66Wg7J2YIO2VqeydgCA5Mi43JS4KCuyXreycvOuhnCDqs4TsgrDtlZzri6TrqbQsIDgwJSDtmZXrpaDsl5DshJwgN+qwnOq5jOyngCDri7nssqjrkKAg7ZmV66Wg7J2EIDHsl5DshJwg67m866m0IOqwmeydgCDqsJLsnbQg65CY7KeAIOyViuydhOq5jD8KCmBgYHtyfQoxLSBwYmlub20oNywgc2l6ZT0xMiwgcHJvYj0wLjgpCmBgYAoK66ee64SkLi4KCgpQb2lzc29uIERpc3RyaWJ1dGlvbiAo7IGY7JWE7IahIOu2hO2PrCkgOiDtirnsoJUg7Iuc6rCEIOuPmeyViCDtj4nqt6DsoIHsnLzroZwg67KM7Ja07KeA64qUIO2ZleuloAoK7Ja46riJ65CY7Ja0IOyeiOuKlCDsmIjsi5zripQsICftj4nqt6Ag67aE64u5IDEy64yA7J2YIOywqOqwgCDsp4DrgpjqsIDripQg64uk66as6rCAIOyeiOuLpOqzoCDtlojsnYQg65WMLCDslrTrlqQgMeu2hOuPmeyViCAxN+uMgCDsnbTsg4HsnbQg7KeA64KY6rCIIO2ZleuloOydgCDslrzrp4jsnbzquYw/IAoKYGBge3J9CnBwb2lzKDE2LCBsYW1iZGE9MTIpOyBwcG9pcygxNiwgbGFtYmRhPTEyLCBsb3dlcj1GQUxTRSkKYGBgCgpsb3dlciBGQUxTRSDrpbwg64us7JWE7KO866m0LCDsnJfsqr0g67aA67aE7J2YIO2ZleuloOydhCDsnqHslYTspIDri6QuIOyVnuyqveydmCDqsrDqs7wgKDg5LjklKSDripQgMTbrjIAg66+466eM7Jy866GcIOyngOuCmOqwiCDtmZXrpaDsnbQg65Cc64ukLgoKCkNvbnRpbnVvdXMgVW5pZm9ybSBEaXN0cmlidXRpb24gKOyXsOyGjSDqt6Drk7Eg67aE7Y+sKSA6IO2KueyglSDrspTsnIQg64K07JeQ7IScIOu2hO2PrOqwgCDqt6DsnbztlZjri6QKdW5pZiDqsIAg67O07Ya1IOyTsOydtOuKlCDrqqjslpHsnbTqs6AKcnVuaWYoMTAsIG1pbj0xLCBtYXg9Mykg66GcIOunjOuTpOuptCAxIOqzvCAzIOyCrOydtOydmCDqt6Drk7HsnLzroZwg656c642k7ZWY6rKMIOyIq+yekOulvCDrp4zrk6TslrTrg4QKCuuwlOq/lCDrp5DtlZjrqbQg64iE7KCB7J2EIOq3uOuemO2UhOuhnCDqt7jrpqzrqbQg6riw7Jq46riw6rCAIOydvOygle2VmOuLpCAKYGBge3J9CnBsb3QoZGVuc2l0eShydW5pZigxMDAwMCwgbWluPTEsIG1heD0zKSkpCmBgYAoKMeunjOqwnCDsoJXrj4Qg656c642k7Jy866GcIOu9keyVhOyEnCBkZW5zaXR5IOulvCDstpzroKXtlZjrqbQg64yA7LapIOydtOufsCDrqqjslpHsnbQg65Cc64ukLiDspJHqsITsl5Ag7JW96rCEIOuTpOyWtOqwhCDqsbQg7Jq07KKL6rKMKOuCmOyBmOqyjCkg7JWE656r7Kq97Jy866GcIOuCtOugpOqwhCDqsowg65Cc64ukIAoKCkV4cG9uZW50aWFsIERpc3RyaWJ1dGlvbiAo7KeA7IiYIOu2hO2PrCkgOiDrp5DsnbQg7Ja066Ck7Jq0642wICguLi4pIO2KueygleyLnOqwhOuPmeyViCDrqocg67KIIOygleuPhCDrj4Xrpr3soIHsnLzroZwg67Cc7IOd7ZWY64qUIO2ZleuloOydhCDrlLDrpbTripQg7Ja065akIOyCrOqxtOydtCDsnojsnYQg65WMICg97IGY7JWE7IahIOu2hO2PrCksIO2VnCDsgqzqsbTsnbQg7J6I7J2AIOuSpOyXkCDri6TsnYwg7IKs6rG07J20IOyeiOydhCDrlYwg6rmM7KeAIOqxuOumrOuKlCDsi5zqsITsnYAg7KeA7IiYIOu2hO2PrOulvCDsnbTro6zri6QuIOyYiOulvCDrk6TslrQgMeu2hOuPmeyViCAz67KIIOyeiOuKlCDsnbzsnbTrnbzrqbQsIO2Pieq3oCAyMOy0iCDsoJXrj4TqsIAg64yA6riwIOyLnOqwhOydtCDrkKAg6rKD7J206rOgLCDsi6TsoJwg64yA6riwIOyLnOqwhOydmCDrtoTtj6zripQg7KeA7IiYIOu2hO2PrOulvCDsnbTro6jripQg7Iud7J2064ukLgoK7JiI7Iuc66W8IOqygOyDie2VtOuztOuptCDrjIDstqkg7J2065+wIOyLneyduOuNsCwg7JiI66W8IOuTpOyWtCDtj4nqt6Ag7IiY66qF7J20IDXrhYTsnbgg67aA7ZKI7J20IDbrhYTqsIQg7IK07JWE7J6I7J2EIOqwgOuKpeyEseydgD8g7J2065286rOgIO2VnOuLpOuptAoKYGBge3J9CjEtIHBleHAoNiwgcmF0ZT0xLzUpIDsgcGV4cCg2LCByYXRlPTEvNSkKYGBgCgrsnbQg65Cc64ukLiDtm4TsnpDroZwg64KY7Jik64qUIDEtIOqwgCDsl4bripQg67aA67aE7J2AIDbrhYQg7J2064K07JeQIOunneqwgOyniCDtmZXrpaDsnbQg65Cc64ukLiDsi5zqsIQg64uo7JyEIOuCtOyXkCDrj4Xrpr3si5ztlonsnLzroZwg67Cc7IOd7ZWY64qUIOyCrOqxtOydmCDtj4nqt6DsnbQg7ZW064u5IOq4sOykgOydtOq4sCDrlYzrrLjsl5Ag65Sx7Z6IIO2ZleuloOyDgSDssKjsnbTqsIAg7JeG64ukLiAKCgpOb3JtYWwgRGlzdHJpYnV0aW9uICjsoJXqt5zrtoTtj6wpIDog64+F66a97KCB7J24IO2ZleuloOuzgOyImOuTpOydmCDtj4nqt6DsnYAg7KCV6rec67aE7Y+s6rCAIOuQnOuLpCAo7KSR7Ius6re57ZWc7KCV66asKS4g6re4656Y7IScIOutkOuToCDrj4Xrpr3si5ztlonsnYQg7J6U65ypIO2VmOuptCDqt7jrg6Ug64ukIOydtOyqveydhCDsk7Dqsowg65Cc64ukLgoK7Y+J6reg7J20IDcyLCDtkZzspIDtjrjssKjqsIAgMTUuMuyduCDsoJXqt5zrtoTtj6zsl5DshJwsIDg0IOydtOyDgeyduCDqsJLsnbQg67Cc7IOd7ZWgIO2ZleuloOydgAoKYGBge3J9CnBub3JtKDg0LCBtZWFuPTcyLCBzZD0xNS4yLCBsb3dlci50YWlsPUZBTFNFKQpgYGAKCkNoaS1zcXVhcmVkIERpc3RyaWJ1dGlvbiAo7LmY7Iqk7YCY7Ja0L+y5tOydtOyKpO2AmOyWtC/subTsnbTsoJzqs7Eg67aE7Y+sKSA6IG3qsJzsnZgg7Jes65+sIOuPheumvSDrnpzrjaQg67OA7IiY6rCAIO2RnOykgCDsoJXqt5wg67aE7Y+s66W8IOuUsOuluOuLpOqzoCDtlaAg65WMLCDqt7gg7ZmV66Wg67OA7IiY66W8IOqwgeqwgSDsoJzqs7HtlZjsl6wg7ZWp7ZW07IScIOyWu+yWtOyngOuKlCDrtoTtj6wuIAoK65286rOg64qUIO2VmOyngOunjCDtmZXrpaAg67OA7IiY6rCAIOyWtOuWu+qyjCDsoJXtlbTsp4Dqs6Ag7ZW064u5IO2ZleuloCDrs4DsiJjrpbwg7KCc6rOx7ZWY66m0IOyWtOuWu+qyjCDqs4TsgrDrkJjripTsp4Drpbwg7J207ZW07ZWY64qUIOqyg+ydtCDsg4Hri7ntnogg7Ja066Ck7Jug6riwIOuVjOusuOyXkCDsmrDshKAg7Jes6riw7ISc64qUIO2RnOykgCDsoJXqt5wg67aE7Y+s66W8IOuUsOultOuKlCDsl6zrn6wg64+F66a9IOuzgOyImOqwgCDsnojsnYQg65WMIOydvOyWtOuCmOuKlCDsnbzsnYQg6rKA7Kad7ZWY64qUIOuNsCDsgqzsmqntlZjripQg6rGw65286rOgIOydtO2VtO2VmOqzoCDrhJjslrTqsIDquLDroZwg7ZaI7J2MLgoK7Ja07KiM6rG0IAoKYGBge3J9CnFjaGlzcSguOTUsIGRmPTcpCmBgYArsnZjrr7jripQg7J2066CH64ukOiDsnpDsnKDrj4QoZGYsIGRlZ3JlZSBvZiBmcmVlZG9tKeqwgCA37J24ICjspoksIDjqsJzsnZgg7ZGc7KSAIOygleq3nCDrtoTtj6zrpbwg65Sw66W064qUIOuPheumvSDtmZXrpaAg67OA7IiY6rCAIOyeiOuLpOqzoCDqsIDsoJXtlaAg65WMKSA5NSXsnZgg7Iug66Kw64+E66W8IOqwgOyngOuKlCDsubTsnbTsoJzqs7Eg6rCS7J2YIO2VnOqzhOuKlCAxNOqwgCDrkJzri6QuIOy5tOydtOygnOqzsSDqsJLsnYQg6rOE7IKw7ZW067Sk642U64uIIDE067O064ukIOyekeydgCDrtoTsgrDqsJLsnbQg64KY7Jio64uk66m0IOq3uOqxtCDqsJnsnYAg642w7J207YSw66W8IOq4sOuwmOycvOuhnCDtlZjripQg6rKD7J28IOqwgOuKpeyEseydtCDsnojqs6AsIDE067O064ukIO2BsCDrtoTsgrDqsJLsnbQg64KY7Jio64uk66m0IOq3uOqxtCDri6Trpbgg642w7J207YSw66W8IOq4sOuwmOycvOuhnCDtlZjripQg64+F66a9IO2ZleuloCDrs4DsiJjsnbwg6rCA64ql7ISx7J20IOuGkuuLpC4KClN0dWRlbnQgdCBEaXN0cmlidXRpb24gKFQg67aE7Y+sKSA6IOuPheumvSDtmZXrpaAg67OA7IiYIFrqsIAg7ZGc7KSAIOygleq3nCDrtoTtj6zrpbwg6rCW6rOgLCDri6Trpbgg7ZmV66WgIOuzgOyImCBW6rCAIOyekOycoOuPhCBt7J2YIOy5tOydtOygnOqzsSDrtoTtj6wg66W8IOuUsOuluOuLpOqzoCDqsIDsoJXtlaAg65WMLCDsnbQg65GQIOqwnOulvCDsoIHri7ntnogg7ISe7Ja07IScIOqzhOyCsO2VnCDqsJLsnZgg67aE7Y+sLiDtj4nqt6DsnYQg6rOE7IKw7ZWgIOuVjOyXkCDrqqjsp5Hri6jsnZgg67aE7IKw7J20IO2PrO2VqOuQmOyngCDslYrsnLzrr4DroZwg6re4IOu2gOu2hOydhCDrqrDrnbzrj4Qg7Y+J6reg6rCS7J2EIOy2lOygle2VoCDsiJgg7J6I64ukLgoK7Jes7KCE7Z6IIOydtO2VtO2VmOq4sOqwgCDquYzri6Troa3quLAg65WM66y47JeQIOydmOuvuOuhoOyggeycvOuhnOunjCDsoJHqt7ztlZjquLDroZwg7ZWc64ukCgpgYGB7cn0KcXQoYygwLjAyNSwgMC45NzUpLCBkZj01KQpgYGAK7J6Q7Jyg64+E6rCAIDUg7J2865WMICjspokgNuqwnOydmCDrj4Xrpr0g7ZmV66WgIOuzgOyImOqwgCDsnojri6QpIDk1JSDsnZgg7Iug66Kw64+E66W8IOqwluuKlCBUIOu2hO2PrOydmCDrspTsnITripQgLTIuNTd+Mi41NyDsgqzsnbTsl5Ag7J6I6rOgLCBU6rKA7KadIOqzhOyCsOyXkOyEnCDtlbTri7kg67KU7JyEIOuCtOyXkCDsobTsnqztlaAg6rK97Jqw7JeQ64qUIHAg6rCS7J2AIDk1JSDrs7Tri6Qg7J6R6rKMIOuQnOuLpC4gCgrsi6TsoJzroZzripQg6re464OlIHQudGVzdCgpIOulvCDtmLjstpztlZjsl6wg6rOE7IKw7ZWgIOqyg+ycvOuhnCDsg53qsIHrkKguIO2YuOy2nO2VmOuptCBwLXZhbHVlIOq5jOyngCDqsJnsnbQg64ukIOqzhOyCsO2VtCDspIDri6QuCgpGIERpc3RyaWJ1dGlvbiAoRiDrtoTtj6wpOiDrkZAg6rCc7J2YIO2ZleuloCDrs4DsiJjqsIAg7Lm07J207KCc6rOxIOu2hO2PrOulvCDrlLDrpbwg65WMICjqsIHqsIEg7J6Q7Jyg64+E6rCAIOuLpOulvCDsiJgg7J6I64ukKSDqt7jqsoPrk6TsnYQg7J207Jqp7ZW07IScIOunjOuTpOyWtOuCuCDrtoTtj6wgCgpgYGB7cn0KcWYoLjk1LCBkZjE9NSwgZGYyPTIpCmBgYAoK7ZWcIOynkeuLqOydmCDsnpDsnKDrj4TqsIAgNSAo67OA7IiYIDbqsJwpIOuLpOuluCDsp5Hri6jsnZgg7J6Q7Jyg64+E6rCAIDIo67OA7IiYIDPqsJwpIOydvCDrlYwsIOuRkCDsp5Hri6jsl5DshJwgRiDqsoDspp3snYQg7ZaI7J2EIOuVjCDrkZAg7KeR64uo7J20IOuLpOulvCDsiJjrj4Qg7J6I64ukLSDrnbzripQg7JaY6riw66W8IO2VmOugpOuptCAxOS4zIOydtOyDgeydmCDqsJLsnbQg64KY7JmA7JW8IO2VnOuLpC4g64qUIOydmOuvuC4KCuq3uOufrOuCmCDsi6TsoJzroZzripQg6re464OlIHZhci50ZXN0KCkg66W8IO2YuOy2nO2VmOuptCBw6rCS7J20IOuCmOyZgOykgOuLpC4gCgpgYGB7cn0KeCA9IHJub3JtKDYsIG1lYW49MSk7IHkgPSBybm9ybSgzLCBtZWFuPTEwKSA7IHZhci50ZXN0KHgsIHkpCmBgYAoKCg==