From b430d2fb429f369e3770efbdc6c7d04d3e971f51 Mon Sep 17 00:00:00 2001
From: hjulienn <hanna.julienne@pasteur.fr>
Date: Wed, 30 Nov 2022 14:40:46 +0100
Subject: [PATCH] add report prints

---
 .../_autosummary/jass_preprocessing.doctree   | Bin 66856 -> 71118 bytes
 .../doctrees/_autosummary/modules.doctree     | Bin 2652 -> 2805 bytes
 doc/_build/doctrees/environment.pickle        | Bin 37654 -> 65669 bytes
 doc/_build/doctrees/index.doctree             | Bin 47663 -> 123845 bytes
 doc/_build/html/.buildinfo                    |   2 +-
 .../html/_autosummary/jass_preprocessing.html | 335 +++-----
 doc/_build/html/_autosummary/modules.html     | 215 ++---
 doc/_build/html/_modules/index.html           | 167 +---
 .../jass_preprocessing/compute_score.html     | 160 +---
 .../jass_preprocessing/dna_utils.html         | 160 +---
 .../_modules/jass_preprocessing/map_gwas.html | 189 ++--
 .../jass_preprocessing/map_reference.html     | 222 ++---
 .../jass_preprocessing/save_output.html       | 189 ++--
 doc/_build/html/_sources/index.rst.txt        |  64 +-
 doc/_build/html/_static/basic.css             | 261 ++++--
 doc/_build/html/_static/doctools.js           | 376 +++-----
 .../html/_static/documentation_options.js     |   8 +-
 doc/_build/html/_static/jquery.js             |   4 +-
 doc/_build/html/_static/pygments.css          |   7 +-
 doc/_build/html/_static/searchtools.js        | 804 ++++++++++--------
 doc/_build/html/_static/underscore.js         |  37 +-
 doc/_build/html/genindex.html                 | 231 +++--
 doc/_build/html/index.html                    | 511 +++++------
 doc/_build/html/objects.inv                   | Bin 545 -> 680 bytes
 doc/_build/html/py-modindex.html              | 179 ++--
 doc/_build/html/search.html                   | 178 ++--
 doc/_build/html/searchindex.js                |   2 +-
 jass_preprocessing/__main__.py                |  16 +-
 28 files changed, 1803 insertions(+), 2514 deletions(-)

diff --git a/doc/_build/doctrees/_autosummary/jass_preprocessing.doctree b/doc/_build/doctrees/_autosummary/jass_preprocessing.doctree
index 21720e6739f21406af758d3ad572b9c65697995b..60825b9ca8e299287ff7e2cf7a82cc7ea7fcd170 100644
GIT binary patch
literal 71118
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
Q2%4yp3n8p+u4HEaFIDGGasU7T

literal 66856
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

diff --git a/doc/_build/doctrees/_autosummary/modules.doctree b/doc/_build/doctrees/_autosummary/modules.doctree
index adbb1224878275e58a1f99845253ac74761f99f4..97ce28a38448b98831cdc61717cd5c891c9a44a9 100644
GIT binary patch
literal 2805
zcmZuzOK%%D5O!?qX-R%0DGDTRP!wqrG`5POhoYwfJsL5Jq6m;fKv27s$e2rR`H1C1
z(Dsm`26zkmC;Kb<ad)+roEQ+i91e#w-+VKiKRf^aH{7cJ!oDrJP|H)A=St_y#?a4o
z<_o4={1Bi072n0DVPNQ`)!t+*hAn7hT*%xo6<^0NN$O5Wd)l1uS(Z7WRePLwc$fEH
z$ESP{I!-vr*0#dY8)_{n4J(b#n6*MJV$z24?r&_Fy!fQf`&jt~<99>1r0~W?ei#O%
zb)WBqZsYZN*p))Dc<yI345@QQ%)CRiDY_kz+Z0JJlW+w>e0LNr>aTw8%bUfFW*3Id
zla3EPM;B=;@_qh*kN88r!;iy@Dc1#?@;6=zrquKoqu&6L>Bn(S;p(*Za7w6m+WMlP
z=4x8#+)HLpjYUjfoNfCV(CBBnD79Dl8hSObd<(AV%o(<hY_s<WA@VPQ=U4bW#_tJ!
z&+vN??tSV~-~cF%sG>g)k2Z8Zjv@XXX&4EWNuRU1fY*SA|3pK-pv#<<j>ofIKugPt
z6G+5D>RG%FT`uw*6uJ)M=5#CQD__i*VR<~;3d4#qRx5c0-65EG<DTc=@bCCBe-4m#
zk%B4G%hv-A`wcE9mxh)lGm)-ikj|gnq%PS3Ls)B~Cf>;=Iq3??PtuaE@J+Udu)R~$
zqVf@m-1KkVnU<{lc{+P1Ofqj0tw~Gb(MnR2IrJ@a4h4g%J#5QxZnSa?Gzs08RC*+2
zRmXh)JPa00F+-g;5sRFn2pla+EcWVa2y9<qIc%2RNUX-dktFh`U0l~mNw`8~&b4+*
zJGQoYb|;Ke4?q^la;{AgA(>ckswCiWYAqHfAJh^iStTKt!f~=HLEP9JXln92jL;&q
zaYVAWOvbbAFyvIW%T73CO98ALb>6O&I-!%ZnP1?#$t5)kSV6-uT0k;zhGr}U75@nn
zp-S%vQ<=_F3kn18<|jX#Sb^_{o126gqYdFy<r0)a;t*TrV%XQ-ZCdG6R$@55wR6h^
z|07Ilqc;w$jy~MnxOFldqyQ{X;=o5DpcuxIs)eTu2Do#qw^3%{u3?!rIYCW=9JnS`
z_<87NTFnt7;1GFg!*j8Wyc;H|ACVhT*cM>aIQK<KTGj#8N+3Wuqo_;<_bUmYRW{}R
zMpRnnb4`{-;?n_JmfAA1ezKxS=Ez%NMa|EBk_$^`G6m9j*;`cue;!5%#)AK}X)WVM
zjjZ}m_$+<l63a}|L3)$59QocuBWai5=V2--&_*r5LMaO2;){bPVN$Y^02Fj1h1Ut5
zkCJ3Y;d`o#@Huy`v_DR#5Zlx8%5kkuwOLGKxSupD2cStDE07+Cbo3!VdHn77z;j~e
z*)8))a%2AMm3dSuO?<sz=2S2@ukJ|i2X}?UWdlcND4{&{+kQ9(Aq&#hW*Y#pWn##6
zIIvgB(Iw$x!6kkm@2=E|_aloZ$dTVYirNCGyVbg05~(v<xA<_JaSDHs_`2ADas?qy
zU-%MNq`{!--AxlfqlZMOIXJND3P-6=SU<a^CyGQ~scBt`>FvIV;0#`c9QAtz7dT@M
zm)y^wbwOA`g(R3^3?_)m?ZajY0a@j|?rGOyR9mRbTb$lu>TQ|{Lci`UC}vPos9c~}
z9C6ev7<v`vfkQY6syR$Lpb=iWG&+Q%4QV|kKn!d1cF|2Gg#iQdUJ};d{1ty`!ypOV
zRSA#ZMgHpC@-OlKB_G)^UQb?idYlPRAYBiOwItQ(O0RZvT~h18c_h1-Y1#6jQoVOe
z*lG_pEDlz;R)>x@?4#Ejmzw+i+qRk=yx!;_8HN_nB!<0AO9@~R1D=rH&yD;8f`1=>
uMKxfILtSC;vdDjZVcSSH#Cxr{O4(jBL4Y!gl&xW&dR@~N();UYr~d=uP+-{r

literal 2652
zcmaJ@U27aS6m{&iz3bTPk2ozQ3290~9fG}mD75q?AEkY$VM$5ahk_Y2BkfADMw;rw
zyZaDmA6jA%ed+Z7_DHj{&YBRzf=6@b>fUqCJ<=bY|9;+DNq?bFb>W?m_C#sQY#q9B
zp=8R{|JINHtl!p0;edFjM_N0j9m}jE#?_}cLcj3FATYDqn}XHDu-&dmq2lw-;v>UG
z7P-PsAslf+tE^q=;vYpyY>n54c2?$EX3O85p(?{FZ5%Vmdea%A>`0q3J>I_l&Ah;s
z&@*H*uPv<9Vc+`PI^obR_NViTx&;@KqL2El<||>-vLe2}>VAtjXGHE@D)A_+H`Su3
zgEz$5tU_r<7tC6r#x)6Rf?DKi-X33n+s#RFo_a^fW+9OQd1HsvS8Zk=HXRwqr<#Ap
zZ}2sKiy!h&&*~#oxQ-SiThzzzfg*k%#ead{BmBO^@9|mf`4fKJeEh*mV?Lzoyk^tL
z^#^1As*?g@matKg$ac*KVWVXnb$t^$4ck5^{3*Y~pM~Lo>yi!l8!rV@YVgwNH$Zjp
z)ALuavX_Pdloqc6)HZ0c4YDXR>&udu*`U<aOJ+}u#g5NUSAC9JyM-<*?G^oa_hHxR
z!WqVnCx%oNR6<%nzJDLhuxl$W)bxZ<I#>VZ{LAGHLT4;>USEc;@@38pqxI=Z#5!yO
z5hD_V!*GA8gAa(~ZxjNS!j4dd^ptTyDTH?!s|(xn#gRbYQH;Nlu(5~$sgMh)k~W8l
z@2BB#X~Q{WkWxvelvR$`r=75s<YKjwv-&b>;w68^U$lY(V?O}i&VoF=dOq|y!;7^P
zn6M{df5`({0dL@+DEGH@=(Urb)ZB+yEXy#~mW&&L@4TNOHTVQ%B=ttsMg;?gq~3^8
zt1<q<hl9n$FJ;^liV6c|Ww4|%b7|+zI5tg9`~iPxLs!r%&+1y{9Oe{8x4&?{k<rRA
zs48syN~A}*3+wAqg1L93tYAESW{fr&Q-!8+*2DTQuYWxL7SvU&%5s8+y^(eJoI6+9
z?*@a(WO7o?9M|eZoAH3Mivc3-01Ck7LXC7bjXoCL^q%&v@@|nmYc}IVQ3(YD4+yPr
zb=al8tg;0n7KPozt8&RSp;1-9t1ALyz6=M^)nI=~3-diML*I;w=)+BLOthO(VM#7o
zR%kU6V=V14C_W-MgDg2?4(WDM2@5D=(6rKMUjRp=h)lUsP-U5?XtR{awZ(~anPeAC
z)~D-XvpqTZi?B1_F>B=?Zh={CD2%!SH)to0*)ZIWSjV7<b>>)ENl*mQWBvHiS6_q0
z+lAERJYyvhGQ(^es1V=23%l1a27}&>B7;5PS+MBM2)irPN0{LMgzX6272kJTzMa-M
zNCk7F#5Z@P1lRrLbl5CydTfDj=s}%0BSvCc^TTj=Sz*^TuonxoI5RlT92uz%JCdle
z$BY3#isx1MN!YV9<;XPSV$3CeP)$ebsMvm^qU=Ig;dDAp8~4p%;^%<3AK_in#CCJ^
zwzRE=eKr+1^l^@R+pezTA`xZzz5s4nIJx`X<I;dQU697t!a8NSkJ9Q#N64-K2&)3@
z^&H8wiJ;NGx?vmq<Iq;=(tvMzW2TrPP3`gWvMlMFIPx(<QNr+OOjW@Nn1w2vN>N}u
ztuj=0?yD$e7(S>h&SU>@h4pCYGvFG5s<QTg9`a+<J73dfydOm|ev*VJlw~GeD%zdj
zg*#0wlPtxeA;+(>h5m#X1rGs?hLIAfwi8-e0~bWNv6#TEIYZG~aHoo+jAQ7^Io6oE
zz>9;$rRl1j(;Gf-E+lVj{*d3XVT;D8YSBDcx)L?l4|qBBvvdthZXNFcy%^$V6{ZOZ
P9}I2iwY$a`pP&2>grgzu

diff --git a/doc/_build/doctrees/environment.pickle b/doc/_build/doctrees/environment.pickle
index 0e2a4461c68e576828433c99f3dd95c1b29d96f5..fd9a4b29bf43a3f9fab77f5e84507a48a73297ef 100644
GIT binary patch
literal 65669
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

literal 37654
zcmc(IYiu0ZmEMdV6h*xsBh5qhmYd`0rbISH&Df(M%<<BarI9(}%ns$u#1!2rb{ARI
z?ALU4i=<>3&U)<`0hP6p?FABK5$q<vHVKSmf7sY0Ko*N2h_l%Qd0-!Lf(3#_vVZ);
z*#LPUS?4?F+*|inb#?RMct@CNc30iUx#ynuJ@?+P9s1>Czw{LUi_V5EKWJ<fy~cx}
z-E7poMyD5@{#-YxRX%S$`la5)U+z8b6{52bymlBg8$n~eRBqN=ZrkfUiB7KtH7_i6
znx(e4N_9~-`k9j3?KHz~z3#TRr>kxlmRfDE)ozx(Fhu>{x6t1CM4@`K(nUkPZ->#5
zN{t)sMaL9~-A+*JMJH}HHygF4Te(GD_872etkNuZ+MZVl+P&!YX}?+bru}NS7I=-u
z^xN%b)hl<Vzc9bFRC>GZO&JiTQE$4$5Yty`BJ4%SgGR;M0w&r4e$uE9^ON36&mUXa
z#lTj2g+eq!W2||-Xrh1UMM7P-<CVg4v+X$r8TUjl%FDN@ovQSrr+SN>UcrAZ`dr+W
zTW{6SWbn`{OgM$0;Yef7PK}}8S9U66AU3`9{7VXk*EI|eWkh@K|LU&$S3Q`%KbcXr
z(r`;eE}@0m@xiE#i<?$oqh~a#nnygb<ACBOfXpkyASxysHa)(cd{J6;!=2~R?ludD
z@%vP_+`8%e#SDn+ZmYDu>DnmF4Mw3ZZQA_Va<c(p(J9pfX7|zqx7PK-9Wkj}0wS*s
z0Sg3~)x7EdGX#7oXmq@G!>yHSL1SYteHVxI-QTq7_jMXTxmoMh8xVNSFz7&B?xp9f
zdDKWLW;Jg5e!1<r6`r-dbeP3Kaffk>rkAUmZf#?2PcxYthD~YCw4Ws~37)pM=C!>>
zd6xn+QN^@AuVqybmfTvf-ta2BLRQ>62=nCu!->np;?i`I4Z&J1XtjRY5U5TJ1fSP9
z2pcVhgk4Fw1WJL2S9gtvWJd;)&r*}k2F-1$<u<(9p66m_M;OvwnBM1@y5m{fbKe<O
z4RdJRVlml)={cVPb?83uO3iKumVu?WJ~>$ES`|#o*R7{J4#+Bt>AXA~sG?Qc^mog8
zT3X#MmHl?J-V9-a?XmakyYD^OkAdZd{w6F;J~t4P(t_8Gj=(k~W3d;VR90vF;E1v#
z#pEQba1<tE!>z+cgeB{r_s9H;--g-OF0&c>sXdyZVYAyV!(2QeUrJ$jZ7tY>`3qfA
z14z&!uuYG>)viDYR&E9W62|X4z35P}9d>$)VRzN{{I%$4$E&wW6}RJ(5k6LHHr6{q
zhiqlQ?4OTL0&2F6ij8K4%-zHM+6-&V?ZEO~g?XxsUl}6|--AIVgb^H#uDaz7&^Z4%
zQm(<YM_GDN>9%xfAhYAH)32W2j*hn7O*KOQQZ!oj;UqwolS%!4bm*S9MWczXzU$Q>
znmnh|%&=Pj^Vj}*=n(WIt6W0JCwkxLiC;28o(OywzvF*BDh_QX-`7ZY)dlj#{7{@6
z{{dlY3!pv3|6jrXU&a4lTj_QEpZDAT*ZoWWFW|uk(b;}-(*XIA|BHYmtAzA+anHRy
z-`|_l!bG_1p4IEGpjT#t`$=yrF3R0^qm!LxxfFWkMz_8SmyT%V#Col{3MWqaLEi$k
zkywVI)uH)839hsTooOn;^{TsYkA&U|(SfQ^%@O4&_7<Lsjx<+^skoCP!i4m_8$DfS
zqWs?Dp8ws2r@EkvKqi(RM@RK9flmJ-T|rNz%Ava3@wxa3ANHR2ewQhO3V_<5_+wA}
zi%+_K+{J;`HoroD^swN+>R*gT*SZbnu--R&{#^ROE9nO_=?CwnAKXbj$Rq@m84+wy
zw{NAY_=VI1nbzd2vbG^>wC7*+{}8RbnX2UH(hq(n{a`lz;70nvt<-}kgE^CWPlNNt
zbj?fsM9i)UOC(h*`glemOUvlSucRB#0xPz3$kSFeyZ&#|%>M`&1}|TF0<rN&*7rZP
zzW>nr{s-3g|6#s&yV1dNtHm^USfrm2C)lUi?3BXo`f3xA3ms|^h6#&QCmLCjw{d{w
zh*B!O#pqNJzT;Iq$k#U0Gy*NhNx0YCjyK<44^iZ#{{1$})al95paMDgR{O0Mew-+|
zjb`J9C2S*<fQpW#Z*<J=V6nT}jSh91m8Oh_z9~+Ez(efAzerM$dG%=7cN^<o=#gY7
zL`T$5{E+tt!w!Xk5D2Nct6q(piAL8wgpLqh=~c&{e(EWxf)h&5)|zFPq9tca_u6hF
z#26vpp>nsjp%@C)7g0JoRjRoUw@V#Wz$2A0BK3RG5j5?!T_F1K9qyq6)le;<UUh;#
zF4M;qe0%_ITm67)dTzVy_o_2^=wGV7gg=E;h3ME47joVvDVx>eHLJx@aI=gqI@a2r
zihm7i{P<mtcR7RMoi(j9+DT-g?RIm$*%FHYzsG2j4U!qN3ccTy(WxQg*L5^leGMP}
zrEm6#a>;feX3zq%8=Zi_hm0?U5XIfFx9~J#aV+C$3ZsKA$aXP0t<(e@>~gJ3b_6wY
zUQx-Y+l|hMlJF`CjdG^+An-QJuslj4`h+fa;`qXQe{|%jr-FK`+3rA-LEVH7{%cjn
z@UP;nIhJ@x8i$2CiN{IjPQ7(o8P}y-%^HlTNvFPzL3S(K6SHFu{^fEx{`+n_=)eT=
zJ;%f=y^3?2f+1_owgWJ_qNWnnxFcxG*0wX}@DEu3U=N@O1dn(e7`N=r-EwQ8H!;Rl
zO_ic4n1cnKn{;&fd+jcY6MR<bO1lX|s{or1_2!myO3GDA4|6M%j^Esz%ejs1%vNXw
zY@?$GyGe$!*lh&wcVW5D3V>F(ejCGTRf;#E>2E>Uc!fs{6%|SU%eTWjH}kW0^Wg7g
z?sla}zF<(999$bwlYy1-Zb;4fs{<>-Y8X~=CO>Q8*Mioqb%xaY(!l=Alnkl<_Q2{b
zgv$~bdOYc<sM4IXEC`--@`Nh<!MG=#-24n?JohE~csu8;C?ccD0m-gw>Zh<erm~+Q
zoGVWLVJUwl<_qUap4_?om9Wz;@Z?Qg$rU?W9pMvdxYb64t&n^7ojdpLEZ%l*yz!3n
z=&=L3@76lPE%@1K&f;mV2-1VKCM_B6%i_%mp?K;+&5GYHhG2djMO@vU%VF%fi6Ryq
z%He}TdW4fs=(Xl@_dCo4V8EF1((>Y`AR%fM3GBOwJZ^_U$P=l>iy^b!$O#JtkSxW0
zGCl*4=y(^LoaZS|@CBY^Q*#E#4`Xwt+k|`=$k#;MiIM{uIX|Cd;(?r-PjT%|teQ`;
zX@WPCd?_fK+zWrEDR;NLX>nqT3x~5`%-%y7PZ~4?Q}hv7E-0?F9@{LrtmtKuCwFD<
zoXOVWa|1OwY!7Jq-ooL9=V84av&!|V%dlt`KDIFPL9a_D=a5F=GbF0|7rQ(98wdvt
z_gf0@-2(uc!Ebq+uoJ|gq(}z-QxxXhT%70cvZ^#jHN<|&TKs_p(CyGNkg`uwWhw{(
zfmR;n=kv4qd!z;K;mbUIxs5M3=*ta!xt)K^?B8i`i=9IvrR{aP?M5M^$>q3PC=e>@
zZI!)N$64^UKi_UQ+kI{17n>bt{@(2yc_<tfuE|!(^67Te7*xN@$s)4YwKc)!)fO2h
zTn7L!O`OXpt>%1W;TVYFWU_#IcXHvBqKC`|Kndx3L=3}c8l;dBWHfGg;k|!&PAK87
z+j4HdJHIqGHV;+Qahhw6jxvNq5^FHHxB$K(I!A+sIk(29sRIjl3}q0x)=Ga&hy}ue
zOyFiXroM&S@z;c1tX{(ihdm0zwb9Zw)*lA(_qL~|OfBia=5KcpzMN$62r$bwW@@+%
zdPan|yY91vY~Zz^*P|m7I&696U@d_COs$DkNzSVwBi*M{fSEBd3-i9?6Sk<fY90-G
zTdf*Ac!q(flF-MNjH*SBcU+4s90ded(42{pm7CoLvCUO}K`o@7z&s|mebPZ;_zhHo
zC#M+}2}$TqP^1t;umqS|4GyM}tC;ao2_buGl6#Y8rQ<77zR31>LANt8i8(G3DvH%+
z&?pE<@!J>;x<%*8oHG+YHN(Q=n%6+H7=^I&xYKBMkn^z)<aQgCNe$a#v*CdV!ww`p
zA<_l8)@m{v<TLPepc(FD@OUO2YDiI4|2k=bSfbQ%S8LuRQ$JRHI=)3@gspdhXYP**
z3j{Vv@l$Rh%%UgL!%vB#7z6LH05!AhYPXakp=;zHIhz3yGO#LkI}10BMIzUDy1?yr
zISRNUq)Jmn#YuP6Jb0wc7(j$>Lk6#D`!=m`gRqxZ<T=e5V+s_BfXTX7xH`$SVDK|x
z(J((HGGRuVleu9eFVm})7+CJ7h$w*9s1zRMbrslXi6*kl#JpaOCm-@nfQw2>@Niuk
zprQ)h?8Nf5mB&K3dVmSbl^+_<s9@lM_Ur3T88C`^xvrwr>}-NUWi3UTHze!8alslY
zvBBZQ1_#0mGsdFb#Se;6Ku|YY#fICEB0CYQlHV}_K^78P9C|<^+~sdfTYDnGB%A~}
zMagR<Aq6~cP16x<ES<7J)RZSPVtjF$?F#)j{>e|LW{Tr?7H?8P`ucN=^Nabc>Bs9u
zci=0aiCQpi#Z5VR)!!m_xA?_3-=va*+fq$6Tq;(~D~4!jJcvlN#wqlLTBQeGnFgI(
zoX@Q|mmOV&5u|0_8p1jp$|+b)OggH%wt;BTxi1T(Umi|6N;;ItoJ$egEiw_5@PL2B
znItSlJh$v?&06NbR2FUZ_ofA+<}R%;4Ve{KXt7K-98V%!;)_nf<~|T8qU!KATFnLm
zpX*SZo4U!MA>KZsxUAp=z_ip<B){ZQs+|bT^ms`)s%IQrCr)5pnV?#6So%jSQ_Ih3
z(3sr*GR3e}3p$1TbbexaYDOg8_*>n!;bIxQiiyGhlr$8<37Qn}cm_p{BPdY|LS&6G
zi~?J#n!Fl!6kZ{uNv!ik5TFt=fT^*L03ynu7hwJlM-uJsB&jOyPg+IN2^o3FD?zok
zhu9(ox(n@GasA<oh==r}K-F7wOjV=W)(C58uh@jlFAS<oiW@43P)r=+R_KSqfc1`^
z7P01l2yh|a?W|2*huc8!u|(h{``mYTY*<mo7XfosD32UiPlYfAjSPuQz0wQdXNT~u
zd983~a?4VY2?vTmRubV(kteBHE^NtAcsPT+Caa>7zC3)UgScnFy_|qVz@H4nMGDAU
zFvOt*97N9gCTfCEgrN$_Mk%IDfv`+U)Rp;fk>a0Um9IgFK=Z^((G5G>Ef3CIM+PZx
z?EnCLHjZ#h#F|I7RxH<=l*h=w6u!8oc#3g$Ss{ZcwOTKsLP|2eLq;l5B21f2R*NvH
zy$+<JFbC8yR;M;t8|&EwJHvsf00|6?;v%$7-WKMP4If?IEkm-gOoNs*MTNchCTxvx
z&CuaQ4W@aBSF#&IN9GUmRY}H_Nf-|acDmHoqoVdmkZ82<P}5R(kgci}q!=_i844=s
zL{q`u1f<q%P9}P|G&V8@#QKwqC$f*BgD5K<?d3^Q<$2giiIOZPP6}a5U^R146p?BV
z#CpjbB=5*Q;<;sxV@jq#biaIrE9upOdTG<gx>AUg4R4NEB-2D9i1fcM(leUKVU86H
zXjMVCV_j>sbJq7A>pA0Uuw;%b=aT{?zf#=rwvqU`V>7I&6L2%)cC6<(BIxGes~`be
zredfS3fpvVMySSa_FrY9!c^VS9%UNKZe_sJ{4NdH0oB#xe9F8fvpbJfzY59cxkov~
z-GfSQ7XAp<f!rDSmUFMEFKcb@{oL#twoo9(k$b4W=0Z<@b#fHoR=<?<C0wFOJ`oO%
zA6iS80z=j!<}Mln!Rt1czpB3}!wLyzwV;dyh)Q9@!vYWdJ*;5oCzREuOEb@8<%bt^
z3AH$;RFZxw@x~ExN>v!~%t8(!#tYdVqAK&5g*Q>=Y(MX-_n%yN4eyV}>P|iW%EGVV
z@p<rdpRb@wytVL9#V`i}fH0<p7hkhLz+<at{L1c-f}cZUn}~g8W!Mn(u}RS@ym#_~
z35BZ!2P^gof15l_6`tH>$TA}zh$6nS#RKY+f9N(h-8RKe5E~+Uj!_<iC(=3oDJjQT
zigd$`(%m<1$QmJjBl=SB)=PKiZ_SaWpdi^g^b759qO$xjWs>+_tpx*9$9UPhrYI15
zNaap#oAt6tR~8+~C@7Oo3NY=islX2gRuSc{JrIgHc{TB`w9wFFaSE%=W(_99yS@jD
zKmvFeqZ*16`ps^w;;ec+de}vX7a=lOgtA(5v3d(vz~NklSkB!FYS>JX3Bl?%7HS1)
z6dLj1X_1`iB3pmkDfsI%uK^EiP=R$teG<GDo}B`VB)~hc9g1kV&eG!BY}NsAFfZa{
zYzxEWVO+$(CMV1(h<lCt<d|`Mvr=J)8i5cg%dHajxQ(>UgsF+GGdn`V#+IHBp(pWU
z=|v*=O}InY44cv_+=C9dP|F!6M2Z%W)xjQ&qDNZXc6fC=9<e3>`76Hi952ct48n`$
z_#=z5lp%oj=?@l3=?^F!nIi+*62E~&)SPZW=5Sn*#1f@sRUEgz8mxDlU2$GzT=*1k
zqCns9{}uX+UMGqHcE}Z$bMyBIfP3@!%-^`3pUh(=X$1nEfk9|p6SQ#-(E>0=?U0|s
z4P)Ka`NZ6(C%(eJU>`f5ajso|<<(bTeeG52;p@)JFTe82^_M^Oirs<Xb|QK(0mrZh
z^+){zUC!&8Qb|l0a8rbr*&tCe$`R!zi<>@a76*=#Y9Z+dc|t1_&Q}~WW`52q6nJBB
z@w!w%#1@Z5Rf^)HniR2OQAvV4u@z%|vs77gNcgGE87Yx>*F$(h@}gpvFvO2qYP*i%
z%)9OexT1?akMPerEJ{KWlFZb|;MTmHs>>c4F%(J3Z10O8)!tJK45SHL=$z%1ik>P2
zE0)cwng$|nRv<`Ah&o}T#QkNp#;@Unb}I;V38!fZz;S9x6BD`?pp?nOZ{Z41z8~}#
z1}ZO<1!Hx~QiOlgylUmfRR*#)&_L;8h?OII5`qGDI@wpvw)iMmF<4U>Z0bQfSoiHG
z3JkI9ay*e%u8)DP82WC@TfVx2U<<SMxN}Dq`50v!ol|bE3h*H!sFndY02L*zU7ppR
z@1z4|OA$uLRgICegi^FxrX`1kELx%EmBJ$IV%j@Mnj<XazD%t`@|3a6t}=v*$eg1D
zI3f`G7o&1H5AWw%eg$*HyhoBu%@kURdq5ghZZ_vwZvk}tHf|P+a9+Cvc`U+zz_bmW
zoVYCkH1)|dM?SHD4L0tZIbFldk^lqzfCdW7F^n*YV(P}KJa=rKppyB4xKUhmN25K}
zkSZ^+n1a?dS#E?9U#2Sn#X^jnUD{cVAcNjp$N4HL(RIW3${VzBo6z6No+4dF&zUfZ
z>m46kvy8Ng1p|XG_D&IWLMaunFv#xmXwe5e+iVxJ<Q0RoYk4Kutz?K+AwLEqEshKV
zGW%i78F9o-XnCX%C$w-A<5&5fWHV^2=A2n<ts;3$O5K^$DX;D|EM1dTkx>v&t%5TX
z%C}VA!M@Pjt%vqp9^7>~)wf+V)p?nE=TTdTVgYIoSb;{qFvrtjxYP<W=w;lw2Le&1
zu1G0vOmkGm-(3GV<94mFt1cez(A)%zsTr}u6zQ3f^znk;>H1Og0^x-)7rRNu4Iz%R
zNB~I9nE~Y-Y)Er9VLV`4e~rt5%Na*hud|7S8nuUqJTLD7HbG#G6JA#ZOXo<G+Vlc=
zPbB7fN4r=c2%@8+%pzy23PB(V!o@aY!L4Qrg~4pnY;FuBN}?9#heVkqHD1%KpgOV0
zVekFLOfam&1o;mfntG9&RbPH0^6wv8+^#j=pN#xfA4&2jpGRKsCg&^`n6JQl0aeki
zeWD+c&&n2}=yso`ARR%ASmMhmK>%Z4F*#Ex3|c4>N!W;WhUl0gQyL7QfE?{f(Jk0m
zr!5{(U<ZzBP<HBF_^WVsRl{5_89HEKX92&8ro?utZp`R0mihuRODJCLB?d}?$GvFE
zANLx@WLG04TfK`FM(iaZmQqWj49Rldona%1e-+&sHo3U4S_jg_#FkRUt|f{w0J_{v
zncL$iPwF5GrGi`~2z8BXJJ+~o#J{2%u$pB(sE5*lhyo*yl10_j=%Nh!ICiQ+)X+X?
z@@^bL7<rZu1(;^af65`}$KahSp@2S<pyblm8an!_z2sh41`rA~*hR6CgKU4XTb=RW
z{#9-(SS$25CuJ<-RtL+F+lF+|{1Sl+enGN{f>+}P-Wq{3h+ytFh#@vfHWRIKq{yqx
z-fuj5oY#5(GSR#cK%-DtTghBaxQT;;JlLS{dENzNU_qGzqFQbTh>`Yqsj`2h${|<a
zm!J^Z+ncbsX-Rn32!*m&Grv~oZ>bNN1YFw<LeKdNbk+%{%cgO<3Y!|3<Z~z3tyO5)
zKdPwLEOgl{6rw*yI5U!!^<!{o(N!)kjw~3RSC}ZNfQDvE7M+?An@XGKWFM*|-qY#u
zf{JioUU-8-=N9Lw#?||Uh5M=Z3VZ7PmltYykLb8MQ7IwpRhh=ZUqzXd$yl&@cWmJ$
z6=Cm(kOJzuVMDRl1(|rP;lblUVBl4{cM7-f98Mn)bJsxeHWS3$Zy(Lx9XB`&cz+>v
zopf9duos1N6mP=|;}m3Mnyfa-34-Kn#80v52g$pgTCiGdZPPb;->P+V;7N~0pB}}e
zmUh@=ew~N1vxZj&nSY1?CG*vV5*H)V&Pg&#o!)WNsYnp%IVCc&0V+>1C?R&KYNsj_
z8<ATFt^gBJ*Gd6B6giPxa)!~6d+VLtkOql&nS-(#U8c$_&XhA#yo#X0%+<@63scus
zt_sym_C`<oqz{ja-spe%d%yy*B_jb*dJ4ahs%qpqP=6d3alExP8l;S$()y`3<0QG&
zP@&=dcBc?xL$e=TLr`~3P_mq-RYY2toSB$FE}a?XW!)4%B5uzqX|4Pi?kQ!%nPbPK
zdCJem@e)n4kxG&#4l4@d$EqgGlBFfUcD48_s3@M=#;~caZ!e;T%)11T#;2yHcojpU
zLsNttXAz0$u*<kjEb6Zn3VDP|!v2;goR=JWhe{bQEe(tV@~ocG7N%N(L6zeP#Gr1#
z)G|O)(P;!z>x*$283ea@nXteWE<1&pDfL6Bltva}QHz#nWIW7CKX=a_R_JBG&4Z$9
z8Skty2^=%iiaEF+215o$zb7s`*FY8WAoMO@hCN19Ca?)qAv=8yxOS*8=}b>MNQoem
zNyTaC@m@eC`zy`db`Eq3Yzp#QP~+zypp%R^oC))vBMV@O=^0G%5K#nJPD`IJtYS55
zg6%Gqhck;^%@h%lQesn)FH&|JG!ocZYB@<|(2WB%oPmWwVy6IYViqxp)j5`Z?iMUF
zeoiU+gl#esTf7hhuH9Z#He_-pmlGw(Ai#sVyG0e`oixe~AUH_v(!Zo>nbW2vVrlTT
zXw^=^Vhs}MLtMSS{cZ`nOkh8AXCU4({COl8Q6G8_B>d{vu1a?}T2dG1Rm1{nEG?1L
ziCdC(N$^=BY?197w8?Lwk&v#orcA!p3_6DrD^|eoq_h+<D`izFEh5s%@h|fPnB-(R
zfvPoAbhjRG8syfT22ozEHPLwP(bdP(LI`|nBN9j{i5!6rT55hY^SIb*tjD`%2Z_75
zFYMXJ!U`YKgs+9Qro0(<^dcR+5H{ak_@qrItdl*jkY5romOzez3fb1XNS@28hd4Wk
zFpCxw`+5~Gn=n670YAiG<t4Az0pHH+z^$4zwIJ1Ba3FexNYsi0!|1Nj>gqm0%rI6@
zrA(68R=fl|@|=Dt{qfwX0v}(vp^VAC7GMHqRvcsp#+~rNB^{iWGl~f-;dl^r*23-i
z-`^blh3{PbEq_eD{+-{s>R(h}S3iyN>THGzc1uE)TZc%gC4O2Hr!zE0=>*gc)<dwx
z5=lIG^o<@4mKq7_IQ0TY%N&nRgN8Uk@{2eh;HFf=VM*WWtwy7$fx0-3gmzw@s9~!~
z7u68bso*$|132Re+w5?r5S>9)+M*>JI>)5twRqECsoTbh9gg4Ww8Gix>CMeen1~&}
z*(f&K>(dqQ!8A&S(>RnB^os4@?{}MYF4c$8m`^e08vME%wuD9}slhmiK?k8cgUnNR
zqvYXqqFM>2A*Bd%&6Dl5a<b?J$X2WvG(sF#NvwyF!auK|mvh{!bXo%O;)oJH=<2kG
zQ<Ew<Jz^UVd=EH#5`7H3TZbvq>_9quriT)z{Gq@}-qeWJff^tT`9PfiJOwidh{p-M
zJ^vt1iGk&Xjese95zMp|RPc34;|q*j3yXo*Sz~<poqBB=lyagCM;9kSy0uMrTOCjK
z?dW*LqfI;LpU$<d{#`l><U9DF$@VYOX}lA~;xzv2_YI~K)QBnSMK2C4TLLPBPN~Gj
zJ~^;hoWZk0bL2O&oTXj|LrBG90^la|1G~2N4pT`SH;hAXG+*IBvSX{r?WDwe2xM@>
z&c}jPe*iq{lfepT;V4xtK?T=$SO33I{iyn%>}H}<>TDcPuR5#k49$aEMv6Ml`&n<h
zEq`~-|2Jv=Ppsw%$QWPAR_H{TvJXEFz5$NL<0H^;99lGj^4)gO!&!GY4UJDl!wG35
zXXKF8-iJ6Lt@?kZum5iM^}+s+b^}&^EKU6tKDrD?wN?Kk9_)5fqN+XW>W@$rC)3Fx
zXQ^Qyq65&tsH6Jm8alje#1AUqncfq9B3yJr$yNO#8bh{q+2sRyz|=QjwZmEoXZa*)
zJ{^bT3&{<Am>f<^QpKw;9w2y7o)4Qw5nwioPqRB8jl$9b-{Oq3g#*!;oaBeoezto!
z)a>W0&r<CXeRSYw_jTmpG)Lt45J64B!1*a^`4AZ|y@jKUcn^sGue(Eh1~pgzbaz!1
zrM`mhH8j;fOIA&gXY|7OCQ?bJf{+i*#^K)f5##$K-8rjs9P@YSUCLEKY@g(!btVwm
z;-57~?^SPcwH=CU8YVLSbHnC))_{g%^XPaJky1LNNr-jNZ0}lK0e7Qs>E_f)jUcV6
z;K{uDNO1BM3((;>IWbP#qG5c=DQx?rsc%@_0WZhz*i9PT{G#9{`T8Tl&#zhl56904
z@PnL-eG<&CTm1krhwpG(1|z>A7*Wsv|Dd9<M``p=Ef|O6;sxxVz=a2m$`pytscr~U
zc*@&i-)Wx+`dzDYAn1h~(t&KY;|>rl;SOdkVf1@~wxOjpGWV!Y6WG|B4EqynEPI@T
zAK6uhYJ}6{i!fX&4pvF|s91O~bcpMoMcMzhdIaK6rCT*LdhnoVD~(VHcl`I~sxZ$h
z5a?*y;Uszv><Z7%3#W)o<s5~5V(4R5r@+wJJJK*mv{b_eNiT8X%t994fHZ$>PXwvX
z<K3e+y>5ZNS8*_J)g6lKEZcc(7q;^ktPTjT{SKMM=}S`hZ)ha$33*X9F_`B-@|Iy8
z?bjkcu1w_E@EvvgZQn)P?p^dpzu9w>*6)~Y{T|A;eydjja<sTV%Qx%tnY1BX270S6
zqmzY0nybOv{>43^d4Dweb&Cx4N~4igch59>aThfD%T@=V(OsQRUHzL<>DTv3tM;G@
zdt~_USn%#q^?c8+I#l%>8%O9yA8gvMb#{Z--?BObUdNV9gGQEqp9>{kYLxEXvG@rv
z^8*Xmp;Q(XhTOlC2rgx)qTQhFk1a@mwygUV65XiFkt{j-L%}KEK9V{-U0>&MUtQQF
zGu-<~Q2t|Upu<uA;t-U_!MA;)d-Ra;&w=joehp=g_3lUY8Ll1i#WQJC1G4*SXWvJO
z=5cF)!_hoG1kE~jxlb%lT0j8H!*0>(NAjlx$$Ym{8p(j`zTEEgQR4WvHN4?C9wt2!
zf!}>1`fUr60n#JUO+U8(qF_5ydN8)*SgWr4kw}jXYoNnX{?ZV#w&LgeM0m%70|?K$
zg39Vdqs%D4$AWGa^J(Iyiud(JIv*u{f6E%=aAZF}7}@(o@L#j~27*uBm80e<rG$dh
zmfrg{L1kYFi$39$;Xhaw-DpHY&~n^6Zd)0{Jtr6aU+G5Y)rB93iel{#jvy_iA()Ou
zPwP1O5^fS{yI53+P9X+gLZBV%VG{f11LPM*{jr6o{fi5uIPabo6w|jR(5(VElKz}p
z8bNbKeWE-)e@;Eumn>A>2X0ty2dxg?@<jj(*Q1N6Li%PAYT$JG9X-?wG1MF1j(}MF
zGpT~IY)PdxY#Ii>p=9Ae^)SNNc>QduqPa%_FVn-N<M|h!2HFLSxTHnZ*1tz?FnZ&a
zjOYw5YoWupXr)+%KURQ8b%kZ7FPW8x=-jj~+QAy`8^}6woiE6xnqIH^yC9p$c?)MO
zQKSpoECkJ%bV@r{*CrJK@ZBIRdkCI3JnRg{9SUv~-&%nS@^IuI7Dl46lD^3zM1e8v
z`NfhF4WU>4mqec{(%;F}_Bti;hqCnA;~B+8F*q8Vcemj%g=<%5u1`8CXrohfX~tF(
zC){#$A;WY*(O&ckdXbVXDXdigH6dXH@jmP|;h~Li#tpB9SN{cGR(}T{i;Kt_c!m~d
zag-O91-mVz=wtbKt&V$}qC@neM@24{Dfmu{=SVC>&PA!rD~Qw@uG&O_(+%8lic4;`
zz{7Oj4ZY#U&r>FlM@JA~4YW?n&$O<NyFTLQ+<{dLOY0~~hZ^9*46lJmWv}`}g7t%5
z^$!T}KctU8mM76UK_52jY+}mRvAT>ac%E?Ar+8e*FRFWbHsfmN=>}L#BJO%9Z<Hi?
zl-9wj-v=wufKGa??rI5HU9$TXEAEHr2?IN38pg<l>`OSE7O6hys~2}7Z5R>|$p4Rm
zd;}n1DYM5@7596B+pZ!BU9HT;t({_suwxS&*z`LM?FqUEsnqZ`iQ<tgaR|31;3gCO
z`n;wwx)6y5L_xORht}+4ZC{oa<J-Ls6df~?^IDRr41^Nn;)%@tSq4n-Y%c$(>T#Yx
z!*pv0C0Mv}CCi9p1mS9wTfutK`6M77qpXanRb(=3;K!R-qozeHdUHhWFvjC0WFQb5
z)8oS&#={!#JxYn7N8Nb5hcUPAHb^smaxo@1PXFNiPUi6F%yc(wPp<|IWD-DBfWBjL
zi%ue2pcN2-Fx7)T7-cg5oMO>ijORyYn+Xvl4hTnr22DpV#>BG*h*cbLi_8wCnR?OF
zGp5(mIM<qPE+L|&<!ho#Tvj8u0b?2Wo{vkeko~oa@5P%-r6oE&tmnmJJwsw0_f3Hn
zG}0IK%j!P^eLvB^B4H8GPTTEckuv~(qfEO|OPkI123^IqaG1w`%*s9KeHb@(o=BHD
zo#;~&l0ncpCQ_sf*tdI`>K1nNOkiVxi}W3^r4j(qX=V=~85uXM?~(4&FD5xJS!)?t
z8;hsuyahbumANBEl8tZ_pWyo-WG5JjVD5Ryno!w8^b%KzxjomA+c9Q<1UqZuKaR8V
zc-Y-;P=U>XyMXw2N~&(s#V#c}M}sNmLt(7r+^(jP+dn%hS7XQYbn1OD9Rw?--*83*
zt0JDFkHrEz+z47FP#a_&cwa5ZE6zPbQjl-SBg2TyFYp!rHnQU=^O9(Uc&eX^n^*ck
zZ*e5_2=IL>L+o8s;1YGNF5y-Z7@DU}`Aa+n(##m_3`m=x)?5d#X@PbWlf&Yk=Ze)O
zkG=Y@AY4H%r2X85r=ijr8;WY^Fij=SpTzWVK`4q6s44)1bQ}>r=vu3oQ6&YC*}$!x
zB>t+pTZA(RGD`%U<+l1Hp>F7$Cf-d{)pmjD=PYR?q=f-UouS$@a2{8aEjlJT+-Nr3
z2S!4R-UxBW)~d^w=EdNjie<N`x!$5+_8G!Ik%h{+Gt8#3e3tXZPy~r>v}>Ap(eUdD
z5&O-uN&-2kXUAXnH}v;N#!PyY4$V{-TR|{uoGA0h5}OAaO%b!$;G&EU%8FaZ#plM}
zIM%6!r7{kzYr|tOba7G?9ZvaSTTB}vr?d%IT5Sgv+?Qp9QaqVTSd*wdaK8W^zdr$)
zs=<6#G#0ERl|)D)j(IM+@Q98;e_VW|-#vZ=neo_g(D{bj!oGW??-3esQUk;(rSNfL
z9oZT}HY~MqzyKtW*S5xl<TyU|sMJOy)^lZDAXzmw2ei~V%7g}%0Vd-ijEEivN$L4L
zZS>IwY#p-8VnKUBFbQd`&LWC?VIDYVs^aj<7L5pI+HXR+#4VgQ`Xi}6&m`~>JaF59
z>F*yFyNg8<Q6-%jhr{48z0pz9%DD0iT28~R%x?WNdd9$`RI3q)F+|VW5+`B!RsR<R
zM%>s*Mqk;+tfm7YXYrqmAr<5Jlot0C(M2{K*yT%VV8<j$6RFfJ-J&BpY157SeNJ!=
zd~)_EsYx<-C?j)`vCdYj7MXIZT*o8zsAtrPc^w;1YA}g~<t@3YRg2i`V!Nu=&q7hL
ze+FEF4B1B17LPIU#GHwBkVt_H4fKh4meq<I?uW!&L(NgDH#<=Atoz@!Ots@$yo!Cc
ztTRf>l|~g?d1}pW1)>P~<iPQ?3pqTE?OWlrsx^JB_-gS}(}c;eQ>=!c6(K!$&wFob
z{_fJ$-Mep=-ne)7&1M_ljQD&uhPI4d&CR;TJqZ_0nx_>@^kGNze+XL%)_-)Q+t_F{
zH(^F<c09(ct=P{9(BmxhK$Ea$;IqV&cuFI{GNv{CDQ(3!@)Cb(D+_n+;`S>uo<8l%
zS{(vZt7pr)LzX$G_$@rmM0SF7tC7d7^Qym3{4qi7tsyziOtR)a2!LTr%&-+G^~Kmo
zX;aa~Hta@3Nt;AWB#bOAAylRXtP(UDz0Vom#|dq4*V}cZU*mFN-;!rzOu_50!o1!@
zjB2GXAaBI#QBJGCNIF^@Oh!we!`Wc#@My_rj@4~70+(ylRR0|z>)+FdMwapzDbsw<
z2CKN|mLMiKmo#DAy66wlt+Ec(CL@egiws*VWwDSn)<$D&8uiKBcEnl7jt}yy*rP|f
zZ4CzuBB5JZK+lp9uT4JKVRXT<j~fMT^WY+G5fx(##!kHs?S}+Nx;NSqS7!)|NfS1D
zrr(^$^oT`pqz%mu>OfLDb{-nB_gu`q>&+%6holQ_Sb^aDFlOJeEzB5T=ybL%E5>pR
z;TIziBMHXDkJ{%rYkLe3>KvIk`2J0!jZA3E@C~l+RSEY3`w2P~)Hdw2%znX;Z|wK*
zRjC00H46Eha-+plhtbBFw@=5U46)f@%20}2H{WNfx3=}A$66M=7^9C26t{xOVx>>s
zBM5*qxCkLy5Q-8c8o+KQY}SDsf|fq;+ut=Ld79acoC@AHL}8BqNi3qN?<AA~woPnf
zrYI)S^S>VtL|KFc3e-_WTiqA5xvFeqY-XoRpRB1o$@Vi#7Rf`78RR_CB9kc&FA#`W
z6vlmu(2^VOt!)s8c^iZom00LnpHX*2@tVocYUNLmDsSCL`wM28na~hK6a{xG4nX(;
zof{fEyVd_dBIF17U{<~W2TDk^kDoLIXBg|`OoH_38dGq}7_>|95EFqoV2pn30g6p)
zhC-9VX>9|fO=uR)uawwPC3{VGX`KFSkuFv$*e<poW28UBj<L`)e7;zfapXyp@7V-x
z(&mD?#nUE?$8KW@W+-guXw0p(eBAAe9k@nFh)^F8nlO{2%tv_ZhWE~}EW@sqOyYSd
z0b+`M;>9(afu4^k#hBM}Xg(?E7(u6XF)|fd>{#ZcSY+_Nx-E+b2&ZhrHJT6+I7+St
zN2sgCHcgR4bd;1cfvxDkmp`GrWzoXKyA=Dd^vrqN1%*FHASD!$7|z7GOsF<*ByiLw
z<KCJ^%NWt(_d}-n*c5^~!Uoc9V29kZWpd9}EcZ+~_;fT)S=b6_)FdkEQCZ}?bH?Uc
z4lrO*AQ@md<Ksv=oP~h{1+8&vqKsW%Z28APa1F7zXlCjpSSw;2cZ{XQpNL0mWg;aW
zr8=~wL?noIbl)$C6-r2!Z*?4r3mc3M2vYN`;tYJZh7G<(h~@W*6O!`WE@&c3`#EM#
zXnl-$7P;pZY^O;lNSvoc{+DeJh$X^u#~5JM-y;!6>nQQ~P8n8I0ltg<7J>5y;$E?!
zjI7lIII@_`N*BIY)&dHy0fOD2HT#(mhyT#_JENB^_8Vmuqqv>uE<FRMu|knFT1?!{
z_z^%5%*QN4<OQwC;+HTawS#LEhQ$<}ppGRfEXl|Oh+S>;RP~>eVXncGaJ-Ho$FTwZ
z`aF*cdv{c@Ycr_O79Lao<1wphMaP@w`n|U3xDX&rZ3=Toqb+jGKs#daC`Ul3&@whP
z6`oYXfJ}!fXE~x_JZWe^c^7)dp4Yew8aOfsk+K+vHm&vho_yXhtk{fEoHeW-Ls|XD
zBNj$!;j*JWLM(~`*yzaRxv8(_uKXp#@=6BLLX>i=jcH&2%CN9#Q>LvQl*;U`Vy7Mk
zsTPQ|<uoQpm*5W5!$pk~9Vp6>SYs3~gUS!qY~%N|66nmUbp3<z<GR&<L-yLg#Rtdp
z4$?0Qt5(;6nh&do>GueI{24v`F@5|k`uVr<5gjG-0--jH3;N?95Hf!QAJJiK$%VdJ
ztWM(BBD@o`UPzMtf?7hx<01`8g*p%+OTECXW4E*QP}6MkskU;G4Jh}zSN%r>^gp4G
z=W&O-Ucko9MnzJ5UiG^)p6}7er)UJ9rjHK&?9#_|`uQ3@IC}9iJ$i*co~4iH@X=k3
wM)<ft+VneGhc>43&(!wTzXz6$4k5@AZ)!dZI}MBkB9$mK?Pq+9Oupj(0|3%@WB>pF

diff --git a/doc/_build/doctrees/index.doctree b/doc/_build/doctrees/index.doctree
index 3a79313c70a1d3ffaa95b8b69159c0c2db221dcd..baa64bcc66b50ee5eec7f9081789c4bd60a1c450 100644
GIT binary patch
literal 123845
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

literal 47663
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
Y0%y#AA|@cl1iYC2o3WxJkM;HcU&-Ikw*UYD

diff --git a/doc/_build/html/.buildinfo b/doc/_build/html/.buildinfo
index b684fa9..a88da0e 100644
--- a/doc/_build/html/.buildinfo
+++ b/doc/_build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: f0cd103aab646a141229409df671f02e
+config: 44f0b0a404ac943c811b6f5e7575e3b2
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/doc/_build/html/_autosummary/jass_preprocessing.html b/doc/_build/html/_autosummary/jass_preprocessing.html
index 3cbc003..887dca5 100644
--- a/doc/_build/html/_autosummary/jass_preprocessing.html
+++ b/doc/_build/html/_autosummary/jass_preprocessing.html
@@ -1,65 +1,34 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
-  <title>jass_preprocessing package &mdash; jass_preprocessing 1.0 documentation</title>
-  
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../_static/jquery.js"></script>
-        <script type="text/javascript" src="../_static/underscore.js"></script>
-        <script type="text/javascript" src="../_static/doctools.js"></script>
-        <script type="text/javascript" src="../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../_static/js/theme.js"></script>
-
-    
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>jass_preprocessing package &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
+        <script src="../_static/jquery.js"></script>
+        <script src="../_static/underscore.js"></script>
+        <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../_static/doctools.js"></script>
+        <script src="../_static/sphinx_highlight.js"></script>
+    <script src="../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,135 +36,81 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
-
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"><ul>
-<li><a class="reference internal" href="#">jass_preprocessing package</a><ul>
-<li><a class="reference internal" href="#submodules">Submodules</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing.compute_score">jass_preprocessing.compute_score module</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing.dna_utils">jass_preprocessing.dna_utils module</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas module</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference module</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing.save_output">jass_preprocessing.save_output module</a></li>
-<li><a class="reference internal" href="#module-jass_preprocessing">Module contents</a></li>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
 </ul>
-</li>
-</ul>
-</div>
-            
-          
+
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../index.html">Docs</a> &raquo;</li>
-        
-      <li>jass_preprocessing package</li>
-    
-    
+      <li><a href="../index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">jass_preprocessing package</li>
       <li class="wy-breadcrumbs-aside">
-        
-            
             <a href="../_sources/_autosummary/jass_preprocessing.rst.txt" rel="nofollow"> View page source</a>
-          
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
-  <div class="section" id="jass-preprocessing-package">
-<h1>jass_preprocessing package<a class="headerlink" href="#jass-preprocessing-package" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="submodules">
-<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
-</div>
-<div class="section" id="module-jass_preprocessing.compute_score">
-<span id="jass-preprocessing-compute-score-module"></span><h2>jass_preprocessing.compute_score module<a class="headerlink" href="#module-jass_preprocessing.compute_score" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="jass_preprocessing.compute_score.compute_sample_size">
-<code class="sig-prename descclassname">jass_preprocessing.compute_score.</code><code class="sig-name descname">compute_sample_size</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">diagnostic_folder</em>, <em class="sig-param">trait</em>, <em class="sig-param">perSS=0.7</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_sample_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_sample_size" title="Permalink to this definition">¶</a></dt>
+             
+  <section id="jass-preprocessing-package">
+<h1>jass_preprocessing package<a class="headerlink" href="#jass-preprocessing-package" title="Permalink to this heading"></a></h1>
+<section id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this heading"></a></h2>
+</section>
+<section id="module-jass_preprocessing.compute_score">
+<span id="jass-preprocessing-compute-score-module"></span><h2>jass_preprocessing.compute_score module<a class="headerlink" href="#module-jass_preprocessing.compute_score" title="Permalink to this heading"></a></h2>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.compute_score.compute_sample_size">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.compute_score.</span></span><span class="sig-name descname"><span class="pre">compute_sample_size</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">diagnostic_folder</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trait</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">perSS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.7</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_sample_size"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_sample_size" title="Permalink to this definition"></a></dt>
 <dd></dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.compute_score.compute_z_score">
-<code class="sig-prename descclassname">jass_preprocessing.compute_score.</code><code class="sig-name descname">compute_z_score</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_z_score"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_z_score" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.compute_score.compute_z_score">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.compute_score.</span></span><span class="sig-name descname"><span class="pre">compute_z_score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_z_score"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_z_score" title="Permalink to this definition"></a></dt>
 <dd><p>Compute zscore value and sign1
 add the corresponding column to the mgwas dataframe</p>
 </dd></dl>
 
-</div>
-<div class="section" id="module-jass_preprocessing.dna_utils">
-<span id="jass-preprocessing-dna-utils-module"></span><h2>jass_preprocessing.dna_utils module<a class="headerlink" href="#module-jass_preprocessing.dna_utils" title="Permalink to this headline">¶</a></h2>
+</section>
+<section id="module-jass_preprocessing.dna_utils">
+<span id="jass-preprocessing-dna-utils-module"></span><h2>jass_preprocessing.dna_utils module<a class="headerlink" href="#module-jass_preprocessing.dna_utils" title="Permalink to this heading"></a></h2>
 <p>Few fonction to to compute DNA complement</p>
-<dl class="function">
-<dt id="jass_preprocessing.dna_utils.dna_complement">
-<code class="sig-prename descclassname">jass_preprocessing.dna_utils.</code><code class="sig-name descname">dna_complement</code><span class="sig-paren">(</span><em class="sig-param">input</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.dna_utils.dna_complement">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.dna_utils.</span></span><span class="sig-name descname"><span class="pre">dna_complement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement" title="Permalink to this definition"></a></dt>
 <dd></dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.dna_utils.dna_complement_base">
-<code class="sig-prename descclassname">jass_preprocessing.dna_utils.</code><code class="sig-name descname">dna_complement_base</code><span class="sig-paren">(</span><em class="sig-param">inputbase</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement_base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement_base" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.dna_utils.dna_complement_base">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.dna_utils.</span></span><span class="sig-name descname"><span class="pre">dna_complement_base</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">inputbase</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement_base"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement_base" title="Permalink to this definition"></a></dt>
 <dd></dd></dl>
 
-</div>
-<div class="section" id="module-jass_preprocessing.map_gwas">
-<span id="jass-preprocessing-map-gwas-module"></span><h2>jass_preprocessing.map_gwas module<a class="headerlink" href="#module-jass_preprocessing.map_gwas" title="Permalink to this headline">¶</a></h2>
+</section>
+<section id="module-jass_preprocessing.map_gwas">
+<span id="jass-preprocessing-map-gwas-module"></span><h2>jass_preprocessing.map_gwas module<a class="headerlink" href="#module-jass_preprocessing.map_gwas" title="Permalink to this heading"></a></h2>
 <p>Map GWAS</p>
 <p>A set of functions to find GWAS files in subfolder and
 to map columns</p>
-<dl class="function">
-<dt id="jass_preprocessing.map_gwas.convert_missing_values">
-<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">convert_missing_values</code><span class="sig-paren">(</span><em class="sig-param">df</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#convert_missing_values"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.convert_missing_values" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_gwas.convert_missing_values">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_gwas.</span></span><span class="sig-name descname"><span class="pre">convert_missing_values</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">df</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#convert_missing_values"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.convert_missing_values" title="Permalink to this definition"></a></dt>
 <dd><p>Convert all missing value strings to a standart np.nan value</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -207,9 +122,9 @@ to map columns</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_gwas.gwas_internal_link">
-<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">gwas_internal_link</code><span class="sig-paren">(</span><em class="sig-param">GWAS_table</em>, <em class="sig-param">GWAS_path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#gwas_internal_link"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.gwas_internal_link" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_gwas.gwas_internal_link">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_gwas.</span></span><span class="sig-name descname"><span class="pre">gwas_internal_link</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">GWAS_table</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">GWAS_path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#gwas_internal_link"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.gwas_internal_link" title="Permalink to this definition"></a></dt>
 <dd><p>Walk the GWAS path to find the GWAS tables</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -225,9 +140,9 @@ and one column containing the complete path to the file</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_gwas.map_columns_position">
-<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">map_columns_position</code><span class="sig-paren">(</span><em class="sig-param">gwas_internal_link</em>, <em class="sig-param">column_dict</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#map_columns_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.map_columns_position" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_gwas.map_columns_position">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_gwas.</span></span><span class="sig-name descname"><span class="pre">map_columns_position</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gwas_internal_link</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">column_dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#map_columns_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.map_columns_position" title="Permalink to this definition"></a></dt>
 <dd><p>Find column position for each specific Gwas</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -242,9 +157,9 @@ and one column containing the complete path to the file</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_gwas.read_gwas">
-<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">read_gwas</code><span class="sig-paren">(</span><em class="sig-param">gwas_internal_link</em>, <em class="sig-param">column_map</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#read_gwas"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.read_gwas" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_gwas.read_gwas">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_gwas.</span></span><span class="sig-name descname"><span class="pre">read_gwas</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gwas_internal_link</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">column_map</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputation_treshold</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#read_gwas"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.read_gwas" title="Permalink to this definition"></a></dt>
 <dd><p>Read gwas raw data, fetch columns thanks to position stored in
 column_map and rename columns according to column_map.index</p>
 <dl class="field-list simple">
@@ -252,7 +167,7 @@ column_map and rename columns according to column_map.index</p>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>gwas_internal_link</strong> (<em>str</em>) – GWAS data as a dataframe</p></li>
 <li><p><strong>column_map</strong> (<em>pandas Series</em>) – Series containing the position of column in</p></li>
-<li><p><strong>raw data</strong> (<em>the</em>) – </p></li>
+<li><p><strong>data</strong> (<em>the raw</em>) – </p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns</dt>
@@ -261,9 +176,9 @@ column_map and rename columns according to column_map.index</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_gwas.walkfs">
-<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">walkfs</code><span class="sig-paren">(</span><em class="sig-param">startdir</em>, <em class="sig-param">findfile</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#walkfs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.walkfs" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_gwas.walkfs">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_gwas.</span></span><span class="sig-name descname"><span class="pre">walkfs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">startdir</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">findfile</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#walkfs"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.walkfs" title="Permalink to this definition"></a></dt>
 <dd><p>Go through the folder and subfolder to find the specified file</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -275,13 +190,13 @@ column_map and rename columns according to column_map.index</p>
 </dl>
 </dd></dl>
 
-</div>
-<div class="section" id="module-jass_preprocessing.map_reference">
-<span id="jass-preprocessing-map-reference-module"></span><h2>jass_preprocessing.map_reference module<a class="headerlink" href="#module-jass_preprocessing.map_reference" title="Permalink to this headline">¶</a></h2>
+</section>
+<section id="module-jass_preprocessing.map_reference">
+<span id="jass-preprocessing-map-reference-module"></span><h2>jass_preprocessing.map_reference module<a class="headerlink" href="#module-jass_preprocessing.map_reference" title="Permalink to this heading"></a></h2>
 <p>Module of function</p>
-<dl class="function">
-<dt id="jass_preprocessing.map_reference.compute_is_aligned">
-<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_is_aligned</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_aligned"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_aligned" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_reference.compute_is_aligned">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_reference.</span></span><span class="sig-name descname"><span class="pre">compute_is_aligned</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_aligned"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_aligned" title="Permalink to this definition"></a></dt>
 <dd><p>Check if the reference panel and the GWAS data have the same reference
 allele. return a boolean vector.
 The function should be the complement of “is_flipped” but we still compute
@@ -289,9 +204,9 @@ the two function to eventually detect weird cases (more than two alleles for
 instance)</p>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_reference.compute_is_flipped">
-<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_is_flipped</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_flipped"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_flipped" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_reference.compute_is_flipped">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_reference.</span></span><span class="sig-name descname"><span class="pre">compute_is_flipped</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_flipped"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_flipped" title="Permalink to this definition"></a></dt>
 <dd><p>Check if the reference panel and the GWAS data have the same reference
 allele. return a boolean vector.</p>
 <dl class="field-list simple">
@@ -307,9 +222,9 @@ allele. return a boolean vector.</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_reference.compute_snp_alignement">
-<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_snp_alignement</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_snp_alignement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_snp_alignement" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_reference.compute_snp_alignement">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_reference.</span></span><span class="sig-name descname"><span class="pre">compute_snp_alignement</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_snp_alignement"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_snp_alignement" title="Permalink to this definition"></a></dt>
 <dd><p>Add a column to mgwas indicating if the reference and coded
 allele is flipped compared to the reference panel.
 If it is, the sign of the statistic must be flipped
@@ -319,9 +234,9 @@ If it is, the sign of the statistic must be flipped
 </div></blockquote>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_reference.map_on_ref_panel">
-<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">map_on_ref_panel</code><span class="sig-paren">(</span><em class="sig-param">gw_df</em>, <em class="sig-param">ref_panel</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#map_on_ref_panel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.map_on_ref_panel" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_reference.map_on_ref_panel">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_reference.</span></span><span class="sig-name descname"><span class="pre">map_on_ref_panel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gw_df</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ref_panel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">index_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'rs-number'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#map_on_ref_panel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_reference.map_on_ref_panel" title="Permalink to this definition"></a></dt>
 <dd><p>Merge Gwas dataframe with the reference panel
 Make sure that the same SNPs are in the reference panel and the gwas</p>
 <dl class="field-list simple">
@@ -340,9 +255,9 @@ Make sure that the same SNPs are in the reference panel and the gwas</p>
 </dl>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.map_reference.read_reference">
-<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">read_reference</code><span class="sig-paren">(</span><em class="sig-param">gwas_reference_panel</em>, <em class="sig-param">mask_MHC=False</em>, <em class="sig-param">minimum_MAF=None</em>, <em class="sig-param">region_to_mask=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#read_reference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.read_reference" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.map_reference.read_reference">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.map_reference.</span></span><span class="sig-name descname"><span class="pre">read_reference</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gwas_reference_panel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mask_MHC</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">minimum_MAF</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">region_to_mask</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#read_reference"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.map_reference.read_reference" title="Permalink to this definition"></a></dt>
 <dd><p>helper function to name correctly the column
 :param gwas_reference_panel: path toward the reference panel file
 :type gwas_reference_panel: str
@@ -353,7 +268,9 @@ Make sure that the same SNPs are in the reference panel and the gwas</p>
 :param minimum_MAF: minimum allele frequency for a SNPs to be retain in the panel
 :type minimum_MAF: float
 :param region_to_mask: a list of additional regions to mask
-:type region_to_mask: dict</p>
+:type region_to_mask: dict
+:param type_of_index: ‘rs-number’ or ‘positional’
+:type type_of_index: str</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
 <dd class="field-odd"><p>the reference_panel with the specified filter applied</p>
@@ -364,88 +281,76 @@ Make sure that the same SNPs are in the reference panel and the gwas</p>
 </dl>
 </dd></dl>
 
-</div>
-<div class="section" id="module-jass_preprocessing.save_output">
-<span id="jass-preprocessing-save-output-module"></span><h2>jass_preprocessing.save_output module<a class="headerlink" href="#module-jass_preprocessing.save_output" title="Permalink to this headline">¶</a></h2>
-<dl class="function">
-<dt id="jass_preprocessing.save_output.save_output">
-<code class="sig-prename descclassname">jass_preprocessing.save_output.</code><code class="sig-name descname">save_output</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">ImpG_output_Folder</em>, <em class="sig-param">my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output" title="Permalink to this definition">¶</a></dt>
+</section>
+<section id="module-jass_preprocessing.save_output">
+<span id="jass-preprocessing-save-output-module"></span><h2>jass_preprocessing.save_output module<a class="headerlink" href="#module-jass_preprocessing.save_output" title="Permalink to this heading"></a></h2>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.save_output.save_output">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.save_output.</span></span><span class="sig-name descname"><span class="pre">save_output</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ImpG_output_Folder</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">my_study</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output" title="Permalink to this definition"></a></dt>
 <dd><p>Write the preprocessed Gwas for ldscore analysis</p>
 </dd></dl>
 
-<dl class="function">
-<dt id="jass_preprocessing.save_output.save_output_by_chromosome">
-<code class="sig-prename descclassname">jass_preprocessing.save_output.</code><code class="sig-name descname">save_output_by_chromosome</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">ImpG_output_Folder</em>, <em class="sig-param">my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output_by_chromosome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output_by_chromosome" title="Permalink to this definition">¶</a></dt>
+<dl class="py function">
+<dt class="sig sig-object py" id="jass_preprocessing.save_output.save_output_by_chromosome">
+<span class="sig-prename descclassname"><span class="pre">jass_preprocessing.save_output.</span></span><span class="sig-name descname"><span class="pre">save_output_by_chromosome</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mgwas</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ImpG_output_Folder</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">my_study</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output_by_chromosome"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output_by_chromosome" title="Permalink to this definition"></a></dt>
 <dd><p>Write the preprocessed Gwas for imputation</p>
 </dd></dl>
 
-</div>
-<div class="section" id="module-jass_preprocessing">
-<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-jass_preprocessing" title="Permalink to this headline">¶</a></h2>
-<table class="longtable docutils align-default">
+</section>
+<section id="module-jass_preprocessing">
+<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-jass_preprocessing" title="Permalink to this heading"></a></h2>
+<table class="autosummary longtable docutils align-default">
 <colgroup>
 <col style="width: 10%" />
 <col style="width: 90%" />
 </colgroup>
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.map_gwas" title="jass_preprocessing.map_gwas"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_gwas</span></code></a></p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas" title="jass_preprocessing.map_gwas"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_gwas</span></code></a></p></td>
 <td><p>Map GWAS</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#module-jass_preprocessing.dna_utils" title="jass_preprocessing.dna_utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">dna_utils</span></code></a></p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils" title="jass_preprocessing.dna_utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">dna_utils</span></code></a></p></td>
 <td><p>Few fonction to to compute DNA complement</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.map_reference" title="jass_preprocessing.map_reference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_reference</span></code></a></p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference" title="jass_preprocessing.map_reference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_reference</span></code></a></p></td>
 <td><p>Module of function</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="#module-jass_preprocessing.compute_score" title="jass_preprocessing.compute_score"><code class="xref py py-obj docutils literal notranslate"><span class="pre">compute_score</span></code></a></p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score" title="jass_preprocessing.compute_score"><code class="xref py py-obj docutils literal notranslate"><span class="pre">compute_score</span></code></a></p></td>
 <td><p></p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.save_output" title="jass_preprocessing.save_output"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_output</span></code></a></p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="jass_preprocessing.save_output.html#module-jass_preprocessing.save_output" title="jass_preprocessing.save_output"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_output</span></code></a></p></td>
 <td><p></p></td>
 </tr>
 </tbody>
 </table>
-</div>
-</div>
+</section>
+</section>
 
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_autosummary/modules.html b/doc/_build/html/_autosummary/modules.html
index 1e41c94..10c9aaa 100644
--- a/doc/_build/html/_autosummary/modules.html
+++ b/doc/_build/html/_autosummary/modules.html
@@ -1,65 +1,34 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
-  <title>jass_preprocessing &mdash; jass_preprocessing 1.0 documentation</title>
-  
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../_static/jquery.js"></script>
-        <script type="text/javascript" src="../_static/underscore.js"></script>
-        <script type="text/javascript" src="../_static/doctools.js"></script>
-        <script type="text/javascript" src="../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../_static/js/theme.js"></script>
-
-    
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>jass_preprocessing &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
+        <script src="../_static/jquery.js"></script>
+        <script src="../_static/underscore.js"></script>
+        <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../_static/doctools.js"></script>
+        <script src="../_static/sphinx_highlight.js"></script>
+    <script src="../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,140 +36,116 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
-
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"><ul>
-<li><a class="reference internal" href="#">jass_preprocessing</a></li>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
 </ul>
-</div>
-            
-          
+
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../index.html">Docs</a> &raquo;</li>
-        
-      <li>jass_preprocessing</li>
-    
-    
+      <li><a href="../index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">jass_preprocessing</li>
       <li class="wy-breadcrumbs-aside">
-        
-            
             <a href="../_sources/_autosummary/modules.rst.txt" rel="nofollow"> View page source</a>
-          
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
-  <div class="section" id="jass-preprocessing">
-<h1>jass_preprocessing<a class="headerlink" href="#jass-preprocessing" title="Permalink to this headline">¶</a></h1>
+             
+  <section id="jass-preprocessing">
+<h1>jass_preprocessing<a class="headerlink" href="#jass-preprocessing" title="Permalink to this heading"></a></h1>
 <div class="toctree-wrapper compound">
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="jass_preprocessing.html">jass_preprocessing package</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.compute_score">jass_preprocessing.compute_score module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.dna_utils">jass_preprocessing.dna_utils module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.save_output">jass_preprocessing.save_output module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing">Module contents</a></li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.compute_score">jass_preprocessing.compute_score module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.compute_score.compute_sample_size"><code class="docutils literal notranslate"><span class="pre">compute_sample_size()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.compute_score.compute_z_score"><code class="docutils literal notranslate"><span class="pre">compute_z_score()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.dna_utils">jass_preprocessing.dna_utils module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.dna_utils.dna_complement"><code class="docutils literal notranslate"><span class="pre">dna_complement()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.dna_utils.dna_complement_base"><code class="docutils literal notranslate"><span class="pre">dna_complement_base()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_gwas.convert_missing_values"><code class="docutils literal notranslate"><span class="pre">convert_missing_values()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_gwas.gwas_internal_link"><code class="docutils literal notranslate"><span class="pre">gwas_internal_link()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_gwas.map_columns_position"><code class="docutils literal notranslate"><span class="pre">map_columns_position()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_gwas.read_gwas"><code class="docutils literal notranslate"><span class="pre">read_gwas()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_gwas.walkfs"><code class="docutils literal notranslate"><span class="pre">walkfs()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_reference.compute_is_aligned"><code class="docutils literal notranslate"><span class="pre">compute_is_aligned()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_reference.compute_is_flipped"><code class="docutils literal notranslate"><span class="pre">compute_is_flipped()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_reference.compute_snp_alignement"><code class="docutils literal notranslate"><span class="pre">compute_snp_alignement()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_reference.map_on_ref_panel"><code class="docutils literal notranslate"><span class="pre">map_on_ref_panel()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.map_reference.read_reference"><code class="docutils literal notranslate"><span class="pre">read_reference()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.save_output">jass_preprocessing.save_output module</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.save_output.save_output"><code class="docutils literal notranslate"><span class="pre">save_output()</span></code></a></li>
+<li class="toctree-l3"><a class="reference internal" href="jass_preprocessing.html#jass_preprocessing.save_output.save_output_by_chromosome"><code class="docutils literal notranslate"><span class="pre">save_output_by_chromosome()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing">Module contents</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l3"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l3"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l3"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l3"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
 </div>
-</div>
+</section>
 
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/index.html b/doc/_build/html/_modules/index.html
index 685e610..d3bad4d 100644
--- a/doc/_build/html/_modules/index.html
+++ b/doc/_build/html/_modules/index.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Overview: module code &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../_static/jquery.js"></script>
-        <script type="text/javascript" src="../_static/underscore.js"></script>
-        <script type="text/javascript" src="../_static/doctools.js"></script>
-        <script type="text/javascript" src="../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
+        <script src="../_static/jquery.js"></script>
+        <script src="../_static/underscore.js"></script>
+        <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../_static/doctools.js"></script>
+        <script src="../_static/sphinx_highlight.js"></script>
+    <script src="../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,77 +35,48 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Welcome to jass_preprocessing’s documentation!</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#command-line-usage-example">Command line usage example:</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../index.html#indices-and-tables">Indices and tables</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../index.html">Docs</a> &raquo;</li>
-        
-      <li>Overview: module code</li>
-    
-    
+      <li><a href="../index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">Overview: module code</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>All modules for which code is available</h1>
 <ul><li><a href="jass_preprocessing/compute_score.html">jass_preprocessing.compute_score</a></li>
 <li><a href="jass_preprocessing/dna_utils.html">jass_preprocessing.dna_utils</a></li>
@@ -147,42 +86,30 @@
 </ul>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/jass_preprocessing/compute_score.html b/doc/_build/html/_modules/jass_preprocessing/compute_score.html
index 5f53904..75dd0d9 100644
--- a/doc/_build/html/_modules/jass_preprocessing/compute_score.html
+++ b/doc/_build/html/_modules/jass_preprocessing/compute_score.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>jass_preprocessing.compute_score &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../../_static/jquery.js"></script>
-        <script type="text/javascript" src="../../_static/underscore.js"></script>
-        <script type="text/javascript" src="../../_static/doctools.js"></script>
-        <script type="text/javascript" src="../../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
+        <script src="../../_static/jquery.js"></script>
+        <script src="../../_static/underscore.js"></script>
+        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../_static/doctools.js"></script>
+        <script src="../../_static/sphinx_highlight.js"></script>
+    <script src="../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../genindex.html" />
     <link rel="search" title="Search" href="../../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,79 +35,39 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../../index.html">Docs</a> &raquo;</li>
-        
-          <li><a href="../index.html">Module code</a> &raquo;</li>
-        
-      <li>jass_preprocessing.compute_score</li>
-    
-    
+      <li><a href="../../index.html" class="icon icon-home"></a></li>
+          <li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">jass_preprocessing.compute_score</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>Source code for jass_preprocessing.compute_score</h1><div class="highlight"><pre>
 <span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
@@ -211,42 +139,30 @@
 </pre></div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/jass_preprocessing/dna_utils.html b/doc/_build/html/_modules/jass_preprocessing/dna_utils.html
index 431e99d..abde84c 100644
--- a/doc/_build/html/_modules/jass_preprocessing/dna_utils.html
+++ b/doc/_build/html/_modules/jass_preprocessing/dna_utils.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>jass_preprocessing.dna_utils &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../../_static/jquery.js"></script>
-        <script type="text/javascript" src="../../_static/underscore.js"></script>
-        <script type="text/javascript" src="../../_static/doctools.js"></script>
-        <script type="text/javascript" src="../../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
+        <script src="../../_static/jquery.js"></script>
+        <script src="../../_static/underscore.js"></script>
+        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../_static/doctools.js"></script>
+        <script src="../../_static/sphinx_highlight.js"></script>
+    <script src="../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../genindex.html" />
     <link rel="search" title="Search" href="../../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,79 +35,39 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../../index.html">Docs</a> &raquo;</li>
-        
-          <li><a href="../index.html">Module code</a> &raquo;</li>
-        
-      <li>jass_preprocessing.dna_utils</li>
-    
-    
+      <li><a href="../../index.html" class="icon icon-home"></a></li>
+          <li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">jass_preprocessing.dna_utils</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>Source code for jass_preprocessing.dna_utils</h1><div class="highlight"><pre>
 <span></span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Few fonction to to compute DNA complement</span>
@@ -159,42 +87,30 @@
 </pre></div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/jass_preprocessing/map_gwas.html b/doc/_build/html/_modules/jass_preprocessing/map_gwas.html
index 0cbd1a3..79620a5 100644
--- a/doc/_build/html/_modules/jass_preprocessing/map_gwas.html
+++ b/doc/_build/html/_modules/jass_preprocessing/map_gwas.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>jass_preprocessing.map_gwas &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../../_static/jquery.js"></script>
-        <script type="text/javascript" src="../../_static/underscore.js"></script>
-        <script type="text/javascript" src="../../_static/doctools.js"></script>
-        <script type="text/javascript" src="../../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
+        <script src="../../_static/jquery.js"></script>
+        <script src="../../_static/underscore.js"></script>
+        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../_static/doctools.js"></script>
+        <script src="../../_static/sphinx_highlight.js"></script>
+    <script src="../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../genindex.html" />
     <link rel="search" title="Search" href="../../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,79 +35,39 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../../index.html">Docs</a> &raquo;</li>
-        
-          <li><a href="../index.html">Module code</a> &raquo;</li>
-        
-      <li>jass_preprocessing.map_gwas</li>
-    
-    
+      <li><a href="../../index.html" class="icon icon-home"></a></li>
+          <li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">jass_preprocessing.map_gwas</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>Source code for jass_preprocessing.map_gwas</h1><div class="highlight"><pre>
 <span></span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">Map GWAS</span>
@@ -156,10 +84,8 @@
 <span class="kn">import</span> <span class="nn">gzip</span>
 <span class="kn">import</span> <span class="nn">re</span>
 
-
 <div class="viewcode-block" id="walkfs"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.walkfs">[docs]</a><span class="k">def</span> <span class="nf">walkfs</span><span class="p">(</span><span class="n">startdir</span><span class="p">,</span> <span class="n">findfile</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-
 <span class="sd">    Go through the folder and subfolder to find the specified file</span>
 
 <span class="sd">    Args:</span>
@@ -264,7 +190,7 @@
     <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
     <span class="k">return</span> <span class="n">mapgw</span></div>
 
-<div class="viewcode-block" id="read_gwas"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.read_gwas">[docs]</a><span class="k">def</span> <span class="nf">read_gwas</span><span class="p">(</span> <span class="n">gwas_internal_link</span><span class="p">,</span> <span class="n">column_map</span><span class="p">):</span>
+<div class="viewcode-block" id="read_gwas"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.read_gwas">[docs]</a><span class="k">def</span> <span class="nf">read_gwas</span><span class="p">(</span> <span class="n">gwas_internal_link</span><span class="p">,</span> <span class="n">column_map</span><span class="p">,</span> <span class="n">imputation_treshold</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Read gwas raw data, fetch columns thanks to position stored in</span>
 <span class="sd">    column_map and rename columns according to column_map.index</span>
@@ -276,9 +202,11 @@
 <span class="sd">    Return:</span>
 <span class="sd">        a pandas dataframe with missing value all equal to np.nan</span>
 <span class="sd">    &quot;&quot;&quot;</span>
+
     <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Reading file:&quot;</span><span class="p">)</span>
     <span class="nb">print</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span>
-    <span class="n">is_gzipped</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;.gz$&quot;</span><span class="p">,</span> <span class="n">gwas_internal_link</span><span class="p">)</span>
+    <span class="n">is_gzipped</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;.gz|.bgz$&quot;</span><span class="p">,</span> <span class="n">gwas_internal_link</span><span class="p">)</span>
+
     <span class="k">if</span> <span class="n">is_gzipped</span><span class="p">:</span>
         <span class="n">compression</span> <span class="o">=</span> <span class="s1">&#39;gzip&#39;</span>
     <span class="k">else</span><span class="p">:</span>
@@ -296,8 +224,29 @@
                                                  <span class="s1">&#39;NA&#39;</span><span class="p">,</span> <span class="s1">&#39;NULL&#39;</span><span class="p">,</span> <span class="s1">&#39;NaN&#39;</span><span class="p">,</span>
                                                  <span class="s1">&#39;nan&#39;</span><span class="p">,</span> <span class="s1">&#39;na&#39;</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;-&#39;</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;snpid&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="s2">&quot;a1&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span><span class="s2">&quot;a2&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span><span class="s2">&quot;freq&quot;</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span> <span class="s2">&quot;z&quot;</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span><span class="s2">&quot;se&quot;</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span> <span class="s2">&quot;pval&quot;</span><span class="p">:</span><span class="nb">float</span><span class="p">})</span>
     <span class="nb">print</span><span class="p">(</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">head</span><span class="p">())</span>
+    <span class="c1">#Ensure that allele are written in upper cases:</span>
+
+    <span class="n">fullGWAS</span><span class="o">.</span><span class="n">a1</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">a1</span><span class="o">.</span><span class="n">str</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+    <span class="n">fullGWAS</span><span class="o">.</span><span class="n">a2</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">a2</span><span class="o">.</span><span class="n">str</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+
+
+    <span class="k">def</span> <span class="nf">sorted_alleles</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
+        <span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+    <span class="c1"># either rs ID or full position must be available:</span>
+
+    <span class="k">if</span> <span class="ow">not</span><span class="p">((</span><span class="s2">&quot;CHR&quot;</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="s2">&quot;POS&quot;</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="s2">&quot;snpid&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Summary statistic file </span><span class="si">{0}</span><span class="s2"> doesn&#39;t contain rsID or full SNP position&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">))</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;CHR&quot;</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="s2">&quot;POS&quot;</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">):</span>
+        <span class="n">fullGWAS</span><span class="p">[</span><span class="s2">&quot;positional_index&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">CHR</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">+</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">POS</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">+</span><span class="p">(</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">a1</span><span class="o">+</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">a2</span><span class="p">)</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="n">sorted_alleles</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="s2">&quot;snpid&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">):</span>
+        <span class="n">fullGWAS</span><span class="p">[</span><span class="s2">&quot;snpid&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="p">[</span><span class="s2">&quot;positional_index&quot;</span><span class="p">]</span>
     <span class="n">fullGWAS</span><span class="o">.</span><span class="n">set_index</span><span class="p">(</span><span class="s2">&quot;snpid&quot;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+
     <span class="nb">print</span><span class="p">(</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">head</span><span class="p">())</span>
+    <span class="k">if</span> <span class="n">imputation_treshold</span><span class="p">:</span>
+        <span class="n">fullGWAS</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">imputation_quality</span> <span class="o">&gt;</span> <span class="n">imputation_treshold</span><span class="p">]</span>
     <span class="n">fullGWAS</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="p">[</span><span class="o">~</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">duplicated</span><span class="p">(</span><span class="n">keep</span><span class="o">=</span><span class="s1">&#39;first&#39;</span><span class="p">)]</span>
     <span class="c1">#fullGWAS = convert_missing_values(fullGWAS)</span>
 
@@ -305,42 +254,30 @@
 </pre></div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/jass_preprocessing/map_reference.html b/doc/_build/html/_modules/jass_preprocessing/map_reference.html
index 3279e2d..7abe24d 100644
--- a/doc/_build/html/_modules/jass_preprocessing/map_reference.html
+++ b/doc/_build/html/_modules/jass_preprocessing/map_reference.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>jass_preprocessing.map_reference &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../../_static/jquery.js"></script>
-        <script type="text/javascript" src="../../_static/underscore.js"></script>
-        <script type="text/javascript" src="../../_static/doctools.js"></script>
-        <script type="text/javascript" src="../../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
+        <script src="../../_static/jquery.js"></script>
+        <script src="../../_static/underscore.js"></script>
+        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../_static/doctools.js"></script>
+        <script src="../../_static/sphinx_highlight.js"></script>
+    <script src="../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../genindex.html" />
     <link rel="search" title="Search" href="../../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,84 +35,42 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../../index.html">Docs</a> &raquo;</li>
-        
-          <li><a href="../index.html">Module code</a> &raquo;</li>
-        
-      <li>jass_preprocessing.map_reference</li>
-    
-    
+      <li><a href="../../index.html" class="icon icon-home"></a></li>
+          <li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">jass_preprocessing.map_reference</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>Source code for jass_preprocessing.map_reference</h1><div class="highlight"><pre>
 <span></span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Module of function</span>
-
-
 <span class="sd">&quot;&quot;&quot;</span>
 <span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
@@ -160,15 +86,22 @@
 <span class="sd">        Filter the reference panel by  minimum allele frequency (hg19 coordinate)</span>
 <span class="sd">        minimum_MAF (float): minimum allele frequency for a SNPs to be retain in the panel</span>
 <span class="sd">        region_to_mask (dict): a list of additional regions to mask</span>
+<span class="sd">        type_of_index(str): &#39;rs-number&#39; or &#39;positional&#39;</span>
 <span class="sd">    Return:</span>
 <span class="sd">        ref (pandas dataframe): the reference_panel with the specified filter applied</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">ref</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">gwas_reference_panel</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span> <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">,</span>
-                      <span class="n">names</span> <span class="o">=</span><span class="p">[</span><span class="s1">&#39;chr&#39;</span><span class="p">,</span> <span class="s2">&quot;pos&quot;</span><span class="p">,</span> <span class="s2">&quot;snp_id&quot;</span><span class="p">,</span> <span class="s2">&quot;ref&quot;</span><span class="p">,</span> <span class="s2">&quot;alt&quot;</span><span class="p">,</span> <span class="s2">&quot;MAF&quot;</span><span class="p">],</span>
+                      <span class="n">names</span> <span class="o">=</span><span class="p">[</span> <span class="s1">&#39;chr&#39;</span><span class="p">,</span> <span class="s2">&quot;snp_id&quot;</span><span class="p">,</span> <span class="s2">&quot;MAF&quot;</span><span class="p">,</span><span class="s2">&quot;pos&quot;</span><span class="p">,</span>  <span class="s2">&quot;ref&quot;</span><span class="p">,</span> <span class="s2">&quot;alt&quot;</span><span class="p">],</span>
+                      <span class="n">dtype</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chr&quot;</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="s2">&quot;snp_id&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="s2">&quot;MAF&quot;</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">float</span><span class="p">,</span> <span class="s2">&quot;pos&quot;</span><span class="p">:</span><span class="n">np</span><span class="o">.</span><span class="n">int</span><span class="p">,</span> <span class="s2">&quot;ref&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="s2">&quot;alt&quot;</span><span class="p">:</span><span class="nb">str</span><span class="p">},</span>
                        <span class="n">index_col</span><span class="o">=</span><span class="s2">&quot;snp_id&quot;</span><span class="p">)</span>
-    <span class="c1">#Filter Strand ambiguous</span>
+
+    <span class="k">def</span> <span class="nf">sorted_alleles</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
+        <span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+    <span class="c1">#Filter Strand ambiguous if biallelic</span>
     <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="o">~</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">ref</span><span class="o">+</span><span class="n">ref</span><span class="o">.</span><span class="n">alt</span><span class="p">)</span><span class="o">.</span><span class="n">isin</span><span class="p">([</span><span class="s2">&quot;AT&quot;</span><span class="p">,</span> <span class="s2">&quot;TA&quot;</span><span class="p">,</span> <span class="s1">&#39;CG&#39;</span><span class="p">,</span><span class="s1">&#39;GC&#39;</span><span class="p">])]</span>
 
+    <span class="n">ref</span><span class="p">[</span><span class="s2">&quot;positional_index&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">chr</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">+</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">+</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">ref</span><span class="o">+</span><span class="n">ref</span><span class="o">.</span><span class="n">alt</span><span class="p">)</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="n">sorted_alleles</span><span class="p">)</span>
+
     <span class="k">if</span> <span class="n">mask_MHC</span><span class="p">:</span>
         <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[(</span><span class="n">ref</span><span class="o">.</span><span class="n">chr</span> <span class="o">!=</span><span class="mi">6</span><span class="p">)</span><span class="o">|</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o">&lt;</span> <span class="mi">28477797</span><span class="p">)</span><span class="o">|</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o">&gt;</span> <span class="mi">33448354</span><span class="p">)]</span>
 
@@ -182,7 +115,7 @@
 
 
 
-<div class="viewcode-block" id="map_on_ref_panel"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.map_on_ref_panel">[docs]</a><span class="k">def</span> <span class="nf">map_on_ref_panel</span><span class="p">(</span><span class="n">gw_df</span> <span class="p">,</span> <span class="n">ref_panel</span><span class="p">):</span>
+<div class="viewcode-block" id="map_on_ref_panel"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.map_on_ref_panel">[docs]</a><span class="k">def</span> <span class="nf">map_on_ref_panel</span><span class="p">(</span><span class="n">gw_df</span> <span class="p">,</span> <span class="n">ref_panel</span><span class="p">,</span> <span class="n">index_type</span><span class="o">=</span><span class="s2">&quot;rs-number&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Merge Gwas dataframe with the reference panel</span>
 <span class="sd">    Make sure that the same SNPs are in the reference panel and the gwas</span>
@@ -194,23 +127,46 @@
 <span class="sd">    Return:</span>
 <span class="sd">        merge_GWAS (pandas dataframe): merge studies,</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-    <span class="n">inter_index</span> <span class="o">=</span> <span class="n">ref_panel</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">gw_df</span><span class="o">.</span><span class="n">index</span><span class="p">)</span>
-
-    <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">ref_panel</span><span class="p">,</span> <span class="n">gw_df</span><span class="p">,</span>
-                          <span class="n">how</span><span class="o">=</span><span class="s1">&#39;inner&#39;</span><span class="p">,</span> <span class="n">indicator</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">left_index</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">right_index</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
 
-    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;SNPs </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
 
-    <span class="c1"># If the GWAS file contains indexes of the kind chr*:position, perform a</span>
-    <span class="c1"># second join</span>
-    <span class="k">if</span> <span class="n">gw_df</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">.</span><span class="n">str</span><span class="o">.</span><span class="n">contains</span><span class="p">(</span><span class="s2">&quot;^chr*&quot;</span><span class="p">,</span> <span class="n">case</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
-        <span class="n">ref_panel</span><span class="p">[</span><span class="s1">&#39;key2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;chr&quot;</span><span class="o">+</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">chr</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;:&quot;</span> <span class="o">+</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">pos</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span>
-        <span class="n">other_snp</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">ref_panel</span><span class="p">,</span> <span class="n">gw_df</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;inner&#39;</span><span class="p">,</span> <span class="n">indicator</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-                             <span class="n">left_on</span> <span class="o">=</span><span class="s1">&#39;key2&#39;</span><span class="p">,</span> <span class="n">right_index</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-        <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">([</span><span class="n">other_snp</span><span class="p">,</span> <span class="n">merge_GWAS</span><span class="p">])</span>
+    <span class="k">if</span> <span class="n">index_type</span><span class="o">==</span><span class="s2">&quot;rs-number&quot;</span><span class="p">:</span>
+        <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">ref_panel</span><span class="p">,</span> <span class="n">gw_df</span><span class="p">,</span>
+                            <span class="n">how</span><span class="o">=</span><span class="s1">&#39;inner&#39;</span><span class="p">,</span> <span class="n">indicator</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">left_index</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">right_index</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;SNPs </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
+
+        <span class="c1"># If the GWAS file contains indexes of the kind chr*:position, perform a</span>
+        <span class="c1"># second join</span>
+        <span class="k">if</span> <span class="n">gw_df</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span><span class="o">.</span><span class="n">str</span><span class="o">.</span><span class="n">contains</span><span class="p">(</span><span class="s2">&quot;^chr*&quot;</span><span class="p">,</span> <span class="n">case</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
+            <span class="n">ref_panel</span><span class="p">[</span><span class="s1">&#39;key2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;chr&quot;</span><span class="o">+</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">chr</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;:&quot;</span> <span class="o">+</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">pos</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span>
+            <span class="n">other_snp</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">ref_panel</span><span class="p">,</span> <span class="n">gw_df</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s1">&#39;inner&#39;</span><span class="p">,</span> <span class="n">indicator</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                                 <span class="n">left_on</span> <span class="o">=</span><span class="s1">&#39;key2&#39;</span><span class="p">,</span> <span class="n">right_index</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+            <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">([</span><span class="n">other_snp</span><span class="p">,</span> <span class="n">merge_GWAS</span><span class="p">])</span>
+
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">index_type</span><span class="o">==</span><span class="s2">&quot;positional&quot;</span><span class="p">:</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;length of intersection&quot;</span><span class="p">)</span>
+            <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">positional_index</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">gw_df</span><span class="o">.</span><span class="n">positional_index</span><span class="p">))))</span>
+            <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">ref_panel</span><span class="o">.</span><span class="n">reset_index</span><span class="p">(),</span> <span class="n">gw_df</span><span class="p">,</span>
+                                <span class="n">how</span><span class="o">=</span><span class="s1">&#39;inner&#39;</span><span class="p">,</span> <span class="n">indicator</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;positional_index&quot;</span><span class="p">)</span>
+            <span class="nb">print</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="p">)</span>
+            <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">set_index</span><span class="p">(</span><span class="s2">&quot;snp_id&quot;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;index_type can take only two values: &#39;rs-number&#39; or &#39;positional&#39;&quot;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="p">((</span><span class="s2">&quot;pos&quot;</span> <span class="ow">in</span> <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="s2">&quot;POS&quot;</span> <span class="ow">in</span> <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">columns</span><span class="p">)):</span>
+        <span class="k">if</span> <span class="p">((</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">pos</span> <span class="o">==</span> <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">POS</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">&gt;</span> <span class="mf">0.95</span><span class="p">):</span>
+            <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">loc</span><span class="p">[(</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">pos</span> <span class="o">==</span> <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">POS</span><span class="p">)]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;SNP positions in reference panel and in Summary statistic are different! Different assembly?&quot;</span><span class="p">)</span>
+
+    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;before filter&quot;</span><span class="p">)</span>
+    <span class="nb">print</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
 
     <span class="n">merge_GWAS</span> <span class="o">=</span> <span class="n">merge_GWAS</span><span class="p">[</span><span class="o">~</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">duplicated</span><span class="p">(</span><span class="n">keep</span><span class="o">=</span><span class="s1">&#39;first&#39;</span><span class="p">)]</span>
 
+    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;after filter&quot;</span><span class="p">)</span>
+    <span class="nb">print</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
+
     <span class="n">merge_GWAS</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="s2">&quot;snp_id&quot;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
     <span class="k">return</span><span class="p">(</span><span class="n">merge_GWAS</span><span class="p">)</span></div>
 
@@ -290,42 +246,30 @@
 </pre></div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_modules/jass_preprocessing/save_output.html b/doc/_build/html/_modules/jass_preprocessing/save_output.html
index 4b47c43..93894fb 100644
--- a/doc/_build/html/_modules/jass_preprocessing/save_output.html
+++ b/doc/_build/html/_modules/jass_preprocessing/save_output.html
@@ -1,65 +1,33 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>jass_preprocessing.save_output &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
-        <script type="text/javascript" src="../../_static/jquery.js"></script>
-        <script type="text/javascript" src="../../_static/underscore.js"></script>
-        <script type="text/javascript" src="../../_static/doctools.js"></script>
-        <script type="text/javascript" src="../../_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="../../_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
+        <script src="../../_static/jquery.js"></script>
+        <script src="../../_static/underscore.js"></script>
+        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../_static/doctools.js"></script>
+        <script src="../../_static/sphinx_highlight.js"></script>
+    <script src="../../_static/js/theme.js"></script>
     <link rel="index" title="Index" href="../../genindex.html" />
     <link rel="search" title="Search" href="../../search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="../../index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,79 +35,39 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="../../index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="../../index.html">Docs</a> &raquo;</li>
-        
-          <li><a href="../index.html">Module code</a> &raquo;</li>
-        
-      <li>jass_preprocessing.save_output</li>
-    
-    
+      <li><a href="../../index.html" class="icon icon-home"></a></li>
+          <li class="breadcrumb-item"><a href="../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">jass_preprocessing.save_output</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <h1>Source code for jass_preprocessing.save_output</h1><div class="highlight"><pre>
 <span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
 
@@ -153,20 +81,23 @@
 
     <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">set_index</span><span class="p">(</span><span class="s2">&quot;chr&quot;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
     <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">dropna</span><span class="p">(</span><span class="n">subset</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;computed_z&quot;</span><span class="p">],</span> <span class="n">how</span><span class="o">=</span><span class="s2">&quot;any&quot;</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+    <span class="nb">print</span><span class="p">(</span><span class="n">mgwas_copy</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">unique</span><span class="p">())</span>
     <span class="k">for</span> <span class="n">chrom</span> <span class="ow">in</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">unique</span><span class="p">():</span>
-
-        <span class="n">mgwas_chr</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">({</span>
-                        <span class="s1">&#39;rsID&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">snp_id</span><span class="p">,</span>
-                        <span class="s1">&#39;pos&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">pos</span><span class="p">,</span>
-                        <span class="s1">&#39;A0&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">ref</span><span class="p">,</span>
-                        <span class="s1">&#39;A1&#39;</span><span class="p">:</span><span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">alt</span><span class="p">,</span>
-                        <span class="s1">&#39;Z&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">computed_z</span><span class="p">,</span>
-                        <span class="s1">&#39;P&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">pval</span>
-            <span class="p">},</span> <span class="n">columns</span><span class="o">=</span> <span class="p">[</span><span class="s1">&#39;rsID&#39;</span><span class="p">,</span> <span class="s1">&#39;pos&#39;</span><span class="p">,</span> <span class="s1">&#39;A0&#39;</span><span class="p">,</span> <span class="s2">&quot;A1&quot;</span><span class="p">,</span> <span class="s2">&quot;Z&quot;</span><span class="p">,</span> <span class="s2">&quot;P&quot;</span> <span class="p">])</span>
-
-        <span class="n">impg_output_file</span> <span class="o">=</span> <span class="n">ImpG_output_Folder</span> <span class="o">+</span> <span class="s1">&#39;z_&#39;</span><span class="o">+</span> <span class="n">my_study</span> <span class="o">+</span><span class="s1">&#39;_chr&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">chrom</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;.txt&quot;</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;WRITING CHR </span><span class="si">{}</span><span class="s2"> results for </span><span class="si">{}</span><span class="s2"> to: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">chrom</span><span class="p">,</span> <span class="n">my_study</span><span class="p">,</span> <span class="n">ImpG_output_Folder</span><span class="p">))</span>
-        <span class="n">mgwas_chr</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="s2">&quot;pos&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="n">impg_output_file</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></div>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">])</span> <span class="ow">is</span> <span class="n">pd</span><span class="o">.</span><span class="n">core</span><span class="o">.</span><span class="n">frame</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
+            <span class="n">mgwas_chr</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">({</span>
+                            <span class="s1">&#39;rsID&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">snp_id</span><span class="p">,</span>
+                            <span class="s1">&#39;pos&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">pos</span><span class="p">,</span>
+                            <span class="s1">&#39;A0&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">ref</span><span class="p">,</span>
+                            <span class="s1">&#39;A1&#39;</span><span class="p">:</span><span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">alt</span><span class="p">,</span>
+                            <span class="s1">&#39;Z&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">computed_z</span><span class="p">,</span>
+                            <span class="s1">&#39;P&#39;</span><span class="p">:</span> <span class="n">mgwas_copy</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">chrom</span><span class="p">]</span><span class="o">.</span><span class="n">pval</span>
+                <span class="p">},</span> <span class="n">columns</span><span class="o">=</span> <span class="p">[</span><span class="s1">&#39;rsID&#39;</span><span class="p">,</span> <span class="s1">&#39;pos&#39;</span><span class="p">,</span> <span class="s1">&#39;A0&#39;</span><span class="p">,</span> <span class="s2">&quot;A1&quot;</span><span class="p">,</span> <span class="s2">&quot;Z&quot;</span><span class="p">,</span> <span class="s2">&quot;P&quot;</span> <span class="p">])</span>
+
+            <span class="n">impg_output_file</span> <span class="o">=</span> <span class="n">ImpG_output_Folder</span> <span class="o">+</span> <span class="s1">&#39;z_&#39;</span><span class="o">+</span> <span class="n">my_study</span> <span class="o">+</span><span class="s1">&#39;_chr&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">chrom</span><span class="p">)</span><span class="o">+</span><span class="s2">&quot;.txt&quot;</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;WRITING CHR </span><span class="si">{}</span><span class="s2"> results for </span><span class="si">{}</span><span class="s2"> to: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">chrom</span><span class="p">,</span> <span class="n">my_study</span><span class="p">,</span> <span class="n">ImpG_output_Folder</span><span class="p">))</span>
+            <span class="n">mgwas_chr</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="s2">&quot;pos&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="n">impg_output_file</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;NO or 1 value for CHR </span><span class="si">{}</span><span class="s2"> results for </span><span class="si">{}</span><span class="s2"> to: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">chrom</span><span class="p">,</span> <span class="n">my_study</span><span class="p">,</span> <span class="n">ImpG_output_Folder</span><span class="p">))</span></div>
 
 
 <div class="viewcode-block" id="save_output"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.save_output.save_output">[docs]</a><span class="k">def</span> <span class="nf">save_output</span><span class="p">(</span><span class="n">mgwas</span><span class="p">,</span> <span class="n">ImpG_output_Folder</span><span class="p">,</span> <span class="n">my_study</span><span class="p">):</span>
@@ -193,42 +124,30 @@
 </pre></div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/_sources/index.rst.txt b/doc/_build/html/_sources/index.rst.txt
index 83387d8..1998c87 100644
--- a/doc/_build/html/_sources/index.rst.txt
+++ b/doc/_build/html/_sources/index.rst.txt
@@ -10,6 +10,8 @@ Welcome to jass_preprocessing's documentation!
    :maxdepth: 2
    :caption: Contents:
 
+   index
+
 What is jass preprocessing ?
 ============================
 Jass preprocessing is a tool that takes in input
@@ -38,9 +40,9 @@ The QC and preprocessing step goes as follow:
 (input format needed to perform LD-score)
 
 +-------+-----------+--------+----+----+-----+-----+
-| chrom	|    rsID   |  pos   | A0	| A1 |  Z  | P   |
+| chrom	|    rsID   |  pos   | A0 | A1 |  Z  |  P  |
 +-------+-----------+--------+----+----+-----+-----+
-|   1	  | rs4075116	|1003629 | C  | T	 |0.30 | 0.76|
+|   1   | rs4075116 |1003629 | C  | T  | 0.3 | 0.76|
 +-------+-----------+--------+----+----+-----+-----+
 
 
@@ -56,19 +58,21 @@ In a terminal, execute the following lines:
 Input
 ======
 
-* A reference panel (1000 genome format). The user is expected to provide a reference panel in tsv format with the following columns in that order, without header:
+* A reference panel (1000 genome format). The user is expected to provide a reference panel
+ in tsv format with the following columns in the following order, without header:
+
++-----+------------+---------+-------+-----+-----+
+| chr |   snp_id   |   MAF   |  pos  | ref | alt |
++=====+============+=========+=======+=====+=====+
+|  1  | rs62635286 |0.0970447| 13116 |  T  |  G  |
++-----+------------+---------+-------+-----+-----+
+|  1  | rs63125786 |0.0970447| 15116 |  T  |  A  |
++-----+------------+---------+-------+-----+-----+
+|  1  | rs5686     |0.1970447| 17116 |  A  |  G  |
++-----+------------+---------+-------+-----+-----+
+|  1  | rs892586   |0.7670447| 23116 |  C  |  G  |
++-----+------------+---------+-------+-----+-----+
 
-+-----+-----+------------+-----+-----+---------+
-| chr | pos |   snp_id   | ref | alt |   MAF   |
-+=====+=====+============+=====+=====+=========+
-|  1  |13116| rs62635286 |  T  |  G  |0.0970447|
-+-----+-----+------------+-----+-----+---------+
-|  1  |13118| rs200579949|  A  |  G  |0.0970447|
-+-----+-----+------------+-----+-----+---------+
-|  1  |14604| rs541940975|  A  |  G  | 0.147564|
-+-----+-----+------------+-----+-----+---------+
-|  1  |14930| rs75454623 |  A  |  G  | 0.482228|
-+-----+-----+------------+-----+-----+---------+
 
 * Folder containing all raw gwas data : (all chromosomes in one file) (minimal conditions?? tab separated?)
 * a list containing the name of GWAS file to the string format.
@@ -79,27 +83,31 @@ Input
   * the fields are:
 
 
-+-------------------------------------------+------------------------------------------------------------+
-|                     category              |                         field name                         |
-+===========================================+============================================================+
-|             path to the data              |                            filename                        |
-+-------------------------------------------+------------------------------------------------------------+
-|            study info fields              | Consortium,Outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp|
-+-------------------------------------------+------------------------------------------------------------+
-|    names of the header in the GWAS file   |      snpid,a1,a2,freq,pval,n,z,OR,se,code,imp,ncas,ncont   |
-+-------------------------------------------+------------------------------------------------------------+
++-------------------------------------------+---------------------------------------------------------------+
+|                     category              |                            field name                         |
++===========================================+===============================================================+
+|             path to the data              |                            filename                           |
++-------------------------------------------+---------------------------------------------------------------+
+|            study info fields              | Consortium,Outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp  |
++-------------------------------------------+---------------------------------------------------------------+
+|    names of the header in the GWAS file   |      snpid,a1,a2,freq,pval,n,z,OR,se,code,imp,ncas,ncont      |
++-------------------------------------------+---------------------------------------------------------------+
 
 .. Give an example
 .. |               I don't know                 |                          altNcas,altNcont|
 
 Note that the combination of Consortium and outcome must be unique because it will be used as an index in the cleaning process.
 
-Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na. 
+Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na.
+Some fields are optional like the imputation_quality. If not used they can be filled with na.
+
+.. csv-table:: GWAS information table
+  :header-rows: 1
+
+  "filename","consortia","outcome","fullName","type","Nsample","Ncase","Ncontrol","Nsnp","snpid","a1","a2","freq","pval","n","z","OR","se","code","imp","ncas","ncont","imputation_quality","index_type"
+  "GIANT_HEIGHT_Wood_et_al.txt","GIANT","HEIGHT","Height","Anthropometry",253288,	na,	na, 2550858,	"MarkerName",	"Allele1", "Allele2", "Freq.Allele1.HapMapCEU","p","N","b",na,"SE",na,na,na,na, "imputationInfo","rsID"
 
-.. csv-table:: GWAS information table!
 
-   :header: "filename","consortia","outcome","fullName","type","Nsample","Ncase","Ncontrol","Nsnp","snpid","a1","a2","freq","pval","n","z","OR","se","code","imp","ncas","ncont"
-   "GIANT_HEIGHT_Wood_et_al.txt","GIANT","HEIGHT","Height","Anthropometry",253288,	na,	na, 2550858,	"MarkerName",	"Allele1", "Allele2", "Freq.Allele1.HapMapCEU","p","N","b",na,"SE",na,na,na,na
 
 
 Command line usage example:
@@ -117,6 +125,6 @@ Indices and tables
 
 * :ref:`genindex`
 * :ref:`modindex`
-.. automodule:: impute_jass
+.. automodule:: jass_preprocessing
    :members:
 * :ref:`search`
diff --git a/doc/_build/html/_static/basic.css b/doc/_build/html/_static/basic.css
index ea6972d..eeb0519 100644
--- a/doc/_build/html/_static/basic.css
+++ b/doc/_build/html/_static/basic.css
@@ -4,7 +4,7 @@
  *
  * Sphinx stylesheet -- basic theme.
  *
- * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -15,6 +15,12 @@ div.clearer {
     clear: both;
 }
 
+div.section::after {
+    display: block;
+    content: '';
+    clear: left;
+}
+
 /* -- relbar ---------------------------------------------------------------- */
 
 div.related {
@@ -124,7 +130,7 @@ ul.search li a {
     font-weight: bold;
 }
 
-ul.search li div.context {
+ul.search li p.context {
     color: #888;
     margin: 2px 0 0 30px;
     text-align: left;
@@ -216,7 +222,7 @@ table.modindextable td {
 /* -- general body styles --------------------------------------------------- */
 
 div.body {
-    min-width: 450px;
+    min-width: 360px;
     max-width: 800px;
 }
 
@@ -230,7 +236,6 @@ div.body p, div.body dd, div.body li, div.body blockquote {
 a.headerlink {
     visibility: hidden;
 }
-
 a.brackets:before,
 span.brackets > a:before{
     content: "[";
@@ -241,6 +246,7 @@ span.brackets > a:after {
     content: "]";
 }
 
+
 h1:hover > a.headerlink,
 h2:hover > a.headerlink,
 h3:hover > a.headerlink,
@@ -271,25 +277,25 @@ p.rubric {
     font-weight: bold;
 }
 
-img.align-left, .figure.align-left, object.align-left {
+img.align-left, figure.align-left, .figure.align-left, object.align-left {
     clear: left;
     float: left;
     margin-right: 1em;
 }
 
-img.align-right, .figure.align-right, object.align-right {
+img.align-right, figure.align-right, .figure.align-right, object.align-right {
     clear: right;
     float: right;
     margin-left: 1em;
 }
 
-img.align-center, .figure.align-center, object.align-center {
+img.align-center, figure.align-center, .figure.align-center, object.align-center {
   display: block;
   margin-left: auto;
   margin-right: auto;
 }
 
-img.align-default, .figure.align-default {
+img.align-default, figure.align-default, .figure.align-default {
   display: block;
   margin-left: auto;
   margin-right: auto;
@@ -313,24 +319,29 @@ img.align-default, .figure.align-default {
 
 /* -- sidebars -------------------------------------------------------------- */
 
-div.sidebar {
+div.sidebar,
+aside.sidebar {
     margin: 0 0 0.5em 1em;
     border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
+    padding: 7px;
     background-color: #ffe;
     width: 40%;
     float: right;
+    clear: right;
+    overflow-x: auto;
 }
 
 p.sidebar-title {
     font-weight: bold;
 }
+div.admonition, div.topic, blockquote {
+    clear: left;
+}
 
 /* -- topics ---------------------------------------------------------------- */
-
 div.topic {
     border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
+    padding: 7px;
     margin: 10px 0 10px 0;
 }
 
@@ -352,10 +363,6 @@ div.admonition dt {
     font-weight: bold;
 }
 
-div.admonition dl {
-    margin-bottom: 0;
-}
-
 p.admonition-title {
     margin: 0px 10px 5px 0px;
     font-weight: bold;
@@ -366,9 +373,30 @@ div.body p.centered {
     margin-top: 25px;
 }
 
+/* -- content of sidebars/topics/admonitions -------------------------------- */
+
+div.sidebar > :last-child,
+aside.sidebar > :last-child,
+div.topic > :last-child,
+div.admonition > :last-child {
+    margin-bottom: 0;
+}
+
+div.sidebar::after,
+aside.sidebar::after,
+div.topic::after,
+div.admonition::after,
+blockquote::after {
+    display: block;
+    content: '';
+    clear: both;
+}
+
 /* -- tables ---------------------------------------------------------------- */
 
 table.docutils {
+    margin-top: 10px;
+    margin-bottom: 10px;
     border: 0;
     border-collapse: collapse;
 }
@@ -398,10 +426,6 @@ table.docutils td, table.docutils th {
     border-bottom: 1px solid #aaa;
 }
 
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
 th {
     text-align: left;
     padding-right: 5px;
@@ -416,32 +440,34 @@ table.citation td {
     border-bottom: none;
 }
 
-th > p:first-child,
-td > p:first-child {
+th > :first-child,
+td > :first-child {
     margin-top: 0px;
 }
 
-th > p:last-child,
-td > p:last-child {
+th > :last-child,
+td > :last-child {
     margin-bottom: 0px;
 }
 
 /* -- figures --------------------------------------------------------------- */
 
-div.figure {
+div.figure, figure {
     margin: 0.5em;
     padding: 0.5em;
 }
 
-div.figure p.caption {
+div.figure p.caption, figcaption {
     padding: 0.3em;
 }
 
-div.figure p.caption span.caption-number {
+div.figure p.caption span.caption-number,
+figcaption span.caption-number {
     font-style: italic;
 }
 
-div.figure p.caption span.caption-text {
+div.figure p.caption span.caption-text,
+figcaption span.caption-text {
 }
 
 /* -- field list styles ----------------------------------------------------- */
@@ -468,10 +494,71 @@ table.field-list td, table.field-list th {
 
 /* -- hlist styles ---------------------------------------------------------- */
 
+table.hlist {
+    margin: 1em 0;
+}
+
 table.hlist td {
     vertical-align: top;
 }
 
+/* -- object description styles --------------------------------------------- */
+
+.sig {
+	font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
+}
+
+.sig-name, code.descname {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+.sig-name {
+	font-size: 1.1em;
+}
+
+code.descname {
+    font-size: 1.2em;
+}
+
+.sig-prename, code.descclassname {
+    background-color: transparent;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.sig-paren {
+    font-size: larger;
+}
+
+.sig-param.n {
+	font-style: italic;
+}
+
+/* C++ specific styling */
+
+.sig-inline.c-texpr,
+.sig-inline.cpp-texpr {
+	font-family: unset;
+}
+
+.sig.c   .k, .sig.c   .kt,
+.sig.cpp .k, .sig.cpp .kt {
+	color: #0033B3;
+}
+
+.sig.c   .m,
+.sig.cpp .m {
+	color: #1750EB;
+}
+
+.sig.c   .s, .sig.c   .sc,
+.sig.cpp .s, .sig.cpp .sc {
+	color: #067D17;
+}
+
 
 /* -- other body styles ----------------------------------------------------- */
 
@@ -495,17 +582,36 @@ ol.upperroman {
     list-style: upper-roman;
 }
 
-li > p:first-child {
+:not(li) > ol > li:first-child > :first-child,
+:not(li) > ul > li:first-child > :first-child {
     margin-top: 0px;
 }
 
-li > p:last-child {
+:not(li) > ol > li:last-child > :last-child,
+:not(li) > ul > li:last-child > :last-child {
     margin-bottom: 0px;
 }
 
+ol.simple ol p,
+ol.simple ul p,
+ul.simple ol p,
+ul.simple ul p {
+    margin-top: 0;
+}
+
+ol.simple > li:not(:first-child) > p,
+ul.simple > li:not(:first-child) > p {
+    margin-top: 0;
+}
+
+ol.simple p,
+ul.simple p {
+    margin-bottom: 0;
+}
 dl.footnote > dt,
 dl.citation > dt {
     float: left;
+    margin-right: 0.5em;
 }
 
 dl.footnote > dd,
@@ -530,11 +636,11 @@ dl.field-list > dt {
     padding-left: 0.5em;
     padding-right: 5px;
 }
-
 dl.field-list > dt:after {
     content: ":";
 }
 
+
 dl.field-list > dd {
     padding-left: 0.5em;
     margin-top: 0em;
@@ -546,7 +652,7 @@ dl {
     margin-bottom: 15px;
 }
 
-dd > p:first-child {
+dd > :first-child {
     margin-top: 0px;
 }
 
@@ -560,6 +666,11 @@ dd {
     margin-left: 30px;
 }
 
+dl > dd:last-child,
+dl > dd:last-child > :last-child {
+    margin-bottom: 0;
+}
+
 dt:target, span.highlighted {
     background-color: #fbe54e;
 }
@@ -573,14 +684,6 @@ dl.glossary dt {
     font-size: 1.1em;
 }
 
-.optional {
-    font-size: 1.3em;
-}
-
-.sig-paren {
-    font-size: larger;
-}
-
 .versionmodified {
     font-style: italic;
 }
@@ -621,8 +724,9 @@ dl.glossary dt {
 
 .classifier:before {
     font-style: normal;
-    margin: 0.5em;
+    margin: 0 0.5em;
     content: ":";
+    display: inline-block;
 }
 
 abbr, acronym {
@@ -637,29 +741,69 @@ pre {
     overflow-y: hidden;  /* fixes display issues on Chrome browsers */
 }
 
+pre, div[class*="highlight-"] {
+    clear: both;
+}
+
 span.pre {
     -moz-hyphens: none;
     -ms-hyphens: none;
     -webkit-hyphens: none;
     hyphens: none;
+    white-space: nowrap;
+}
+
+div[class*="highlight-"] {
+    margin: 1em 0;
 }
 
 td.linenos pre {
-    padding: 5px 0px;
     border: 0;
     background-color: transparent;
     color: #aaa;
 }
 
 table.highlighttable {
-    margin-left: 0.5em;
+    display: block;
+}
+
+table.highlighttable tbody {
+    display: block;
+}
+
+table.highlighttable tr {
+    display: flex;
 }
 
 table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
+    margin: 0;
+    padding: 0;
+}
+
+table.highlighttable td.linenos {
+    padding-right: 0.5em;
+}
+
+table.highlighttable td.code {
+    flex: 1;
+    overflow: hidden;
+}
+
+.highlight .hll {
+    display: block;
+}
+
+div.highlight pre,
+table.highlighttable pre {
+    margin: 0;
+}
+
+div.code-block-caption + div {
+    margin-top: 0;
 }
 
 div.code-block-caption {
+    margin-top: 1em;
     padding: 2px 5px;
     font-size: small;
 }
@@ -668,8 +812,14 @@ div.code-block-caption code {
     background-color: transparent;
 }
 
-div.code-block-caption + div > div.highlight > pre {
-    margin-top: 0;
+table.highlighttable td.linenos,
+span.linenos,
+div.highlight span.gp {  /* gp: Generic.Prompt */
+  user-select: none;
+  -webkit-user-select: text; /* Safari fallback only */
+  -webkit-user-select: none; /* Chrome/Safari */
+  -moz-user-select: none; /* Firefox */
+  -ms-user-select: none; /* IE10+ */
 }
 
 div.code-block-caption span.caption-number {
@@ -681,21 +831,7 @@ div.code-block-caption span.caption-text {
 }
 
 div.literal-block-wrapper {
-    padding: 1em 1em 0;
-}
-
-div.literal-block-wrapper div.highlight {
-    margin: 0;
-}
-
-code.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-code.descclassname {
-    background-color: transparent;
+    margin: 1em 0;
 }
 
 code.xref, a code {
@@ -736,8 +872,7 @@ span.eqno {
 }
 
 span.eqno a.headerlink {
-    position: relative;
-    left: 0px;
+    position: absolute;
     z-index: 1;
 }
 
diff --git a/doc/_build/html/_static/doctools.js b/doc/_build/html/_static/doctools.js
index b33f87f..527b876 100644
--- a/doc/_build/html/_static/doctools.js
+++ b/doc/_build/html/_static/doctools.js
@@ -2,313 +2,155 @@
  * doctools.js
  * ~~~~~~~~~~~
  *
- * Sphinx JavaScript utilities for all documentation.
+ * Base JavaScript utilities for all Sphinx HTML documentation.
  *
- * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
-
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
-if (!window.console || !console.firebug) {
-  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
-    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
-    "profile", "profileEnd"];
-  window.console = {};
-  for (var i = 0; i < names.length; ++i)
-    window.console[names[i]] = function() {};
-}
- */
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
-  return decodeURIComponent(x).replace(/\+/g, ' ');
-};
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
-  if (typeof s === 'undefined')
-    s = document.location.search;
-  var parts = s.substr(s.indexOf('?') + 1).split('&');
-  var result = {};
-  for (var i = 0; i < parts.length; i++) {
-    var tmp = parts[i].split('=', 2);
-    var key = jQuery.urldecode(tmp[0]);
-    var value = jQuery.urldecode(tmp[1]);
-    if (key in result)
-      result[key].push(value);
-    else
-      result[key] = [value];
+"use strict";
+
+const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
+  "TEXTAREA",
+  "INPUT",
+  "SELECT",
+  "BUTTON",
+]);
+
+const _ready = (callback) => {
+  if (document.readyState !== "loading") {
+    callback();
+  } else {
+    document.addEventListener("DOMContentLoaded", callback);
   }
-  return result;
 };
 
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
-  function highlight(node, addItems) {
-    if (node.nodeType === 3) {
-      var val = node.nodeValue;
-      var pos = val.toLowerCase().indexOf(text);
-      if (pos >= 0 &&
-          !jQuery(node.parentNode).hasClass(className) &&
-          !jQuery(node.parentNode).hasClass("nohighlight")) {
-        var span;
-        var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
-        if (isInSVG) {
-          span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
-        } else {
-          span = document.createElement("span");
-          span.className = className;
-        }
-        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
-        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
-          document.createTextNode(val.substr(pos + text.length)),
-          node.nextSibling));
-        node.nodeValue = val.substr(0, pos);
-        if (isInSVG) {
-          var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
-          var bbox = node.parentElement.getBBox();
-          rect.x.baseVal.value = bbox.x;
-          rect.y.baseVal.value = bbox.y;
-          rect.width.baseVal.value = bbox.width;
-          rect.height.baseVal.value = bbox.height;
-          rect.setAttribute('class', className);
-          addItems.push({
-              "parent": node.parentNode,
-              "target": rect});
-        }
-      }
-    }
-    else if (!jQuery(node).is("button, select, textarea")) {
-      jQuery.each(node.childNodes, function() {
-        highlight(this, addItems);
-      });
-    }
-  }
-  var addItems = [];
-  var result = this.each(function() {
-    highlight(this, addItems);
-  });
-  for (var i = 0; i < addItems.length; ++i) {
-    jQuery(addItems[i].parent).before(addItems[i].target);
-  }
-  return result;
-};
-
-/*
- * backward compatibility for jQuery.browser
- * This will be supported until firefox bug is fixed.
- */
-if (!jQuery.browser) {
-  jQuery.uaMatch = function(ua) {
-    ua = ua.toLowerCase();
-
-    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
-      /(webkit)[ \/]([\w.]+)/.exec(ua) ||
-      /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
-      /(msie) ([\w.]+)/.exec(ua) ||
-      ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
-      [];
-
-    return {
-      browser: match[ 1 ] || "",
-      version: match[ 2 ] || "0"
-    };
-  };
-  jQuery.browser = {};
-  jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
-}
-
 /**
  * Small JavaScript module for the documentation.
  */
-var Documentation = {
-
-  init : function() {
-    this.fixFirefoxAnchorBug();
-    this.highlightSearchWords();
-    this.initIndexTable();
-    if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
-      this.initOnKeyListeners();
-    }
+const Documentation = {
+  init: () => {
+    Documentation.initDomainIndexTable();
+    Documentation.initOnKeyListeners();
   },
 
   /**
    * i18n support
    */
-  TRANSLATIONS : {},
-  PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
-  LOCALE : 'unknown',
+  TRANSLATIONS: {},
+  PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
+  LOCALE: "unknown",
 
   // gettext and ngettext don't access this so that the functions
   // can safely bound to a different name (_ = Documentation.gettext)
-  gettext : function(string) {
-    var translated = Documentation.TRANSLATIONS[string];
-    if (typeof translated === 'undefined')
-      return string;
-    return (typeof translated === 'string') ? translated : translated[0];
-  },
-
-  ngettext : function(singular, plural, n) {
-    var translated = Documentation.TRANSLATIONS[singular];
-    if (typeof translated === 'undefined')
-      return (n == 1) ? singular : plural;
-    return translated[Documentation.PLURALEXPR(n)];
+  gettext: (string) => {
+    const translated = Documentation.TRANSLATIONS[string];
+    switch (typeof translated) {
+      case "undefined":
+        return string; // no translation
+      case "string":
+        return translated; // translation exists
+      default:
+        return translated[0]; // (singular, plural) translation tuple exists
+    }
   },
 
-  addTranslations : function(catalog) {
-    for (var key in catalog.messages)
-      this.TRANSLATIONS[key] = catalog.messages[key];
-    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
-    this.LOCALE = catalog.locale;
+  ngettext: (singular, plural, n) => {
+    const translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated !== "undefined")
+      return translated[Documentation.PLURAL_EXPR(n)];
+    return n === 1 ? singular : plural;
   },
 
-  /**
-   * add context elements like header anchor links
-   */
-  addContextElements : function() {
-    $('div[id] > :header:first').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this headline')).
-      appendTo(this);
-    });
-    $('dt[id]').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this definition')).
-      appendTo(this);
-    });
+  addTranslations: (catalog) => {
+    Object.assign(Documentation.TRANSLATIONS, catalog.messages);
+    Documentation.PLURAL_EXPR = new Function(
+      "n",
+      `return (${catalog.plural_expr})`
+    );
+    Documentation.LOCALE = catalog.locale;
   },
 
   /**
-   * workaround a firefox stupidity
-   * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
+   * helper function to focus on search bar
    */
-  fixFirefoxAnchorBug : function() {
-    if (document.location.hash && $.browser.mozilla)
-      window.setTimeout(function() {
-        document.location.href += '';
-      }, 10);
+  focusSearchBar: () => {
+    document.querySelectorAll("input[name=q]")[0]?.focus();
   },
 
   /**
-   * highlight the search words provided in the url in the text
+   * Initialise the domain index toggle buttons
    */
-  highlightSearchWords : function() {
-    var params = $.getQueryParameters();
-    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
-    if (terms.length) {
-      var body = $('div.body');
-      if (!body.length) {
-        body = $('body');
+  initDomainIndexTable: () => {
+    const toggler = (el) => {
+      const idNumber = el.id.substr(7);
+      const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
+      if (el.src.substr(-9) === "minus.png") {
+        el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
+        toggledRows.forEach((el) => (el.style.display = "none"));
+      } else {
+        el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
+        toggledRows.forEach((el) => (el.style.display = ""));
       }
-      window.setTimeout(function() {
-        $.each(terms, function() {
-          body.highlightText(this.toLowerCase(), 'highlighted');
-        });
-      }, 10);
-      $('<p class="highlight-link"><a href="javascript:Documentation.' +
-        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
-          .appendTo($('#searchbox'));
-    }
-  },
-
-  /**
-   * init the domain index toggle buttons
-   */
-  initIndexTable : function() {
-    var togglers = $('img.toggler').click(function() {
-      var src = $(this).attr('src');
-      var idnum = $(this).attr('id').substr(7);
-      $('tr.cg-' + idnum).toggle();
-      if (src.substr(-9) === 'minus.png')
-        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
-      else
-        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
-    }).css('display', '');
-    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
-        togglers.click();
-    }
-  },
-
-  /**
-   * helper function to hide the search marks again
-   */
-  hideSearchWords : function() {
-    $('#searchbox .highlight-link').fadeOut(300);
-    $('span.highlighted').removeClass('highlighted');
-  },
-
-  /**
-   * make the url absolute
-   */
-  makeURL : function(relativeURL) {
-    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
-  },
+    };
 
-  /**
-   * get the current relative url
-   */
-  getCurrentURL : function() {
-    var path = document.location.pathname;
-    var parts = path.split(/\//);
-    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
-      if (this === '..')
-        parts.pop();
-    });
-    var url = parts.join('/');
-    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+    const togglerElements = document.querySelectorAll("img.toggler");
+    togglerElements.forEach((el) =>
+      el.addEventListener("click", (event) => toggler(event.currentTarget))
+    );
+    togglerElements.forEach((el) => (el.style.display = ""));
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
   },
 
-  initOnKeyListeners: function() {
-    $(document).keyup(function(event) {
-      var activeElementType = document.activeElement.tagName;
-      // don't navigate when in search box or textarea
-      if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
-        switch (event.keyCode) {
-          case 37: // left
-            var prevHref = $('link[rel="prev"]').prop('href');
-            if (prevHref) {
-              window.location.href = prevHref;
-              return false;
+  initOnKeyListeners: () => {
+    // only install a listener if it is really needed
+    if (
+      !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
+      !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
+    )
+      return;
+
+    document.addEventListener("keydown", (event) => {
+      // bail for input elements
+      if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+      // bail with special keys
+      if (event.altKey || event.ctrlKey || event.metaKey) return;
+
+      if (!event.shiftKey) {
+        switch (event.key) {
+          case "ArrowLeft":
+            if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+            const prevLink = document.querySelector('link[rel="prev"]');
+            if (prevLink && prevLink.href) {
+              window.location.href = prevLink.href;
+              event.preventDefault();
             }
-          case 39: // right
-            var nextHref = $('link[rel="next"]').prop('href');
-            if (nextHref) {
-              window.location.href = nextHref;
-              return false;
+            break;
+          case "ArrowRight":
+            if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
+
+            const nextLink = document.querySelector('link[rel="next"]');
+            if (nextLink && nextLink.href) {
+              window.location.href = nextLink.href;
+              event.preventDefault();
             }
+            break;
         }
       }
+
+      // some keyboard layouts may need Shift to get /
+      switch (event.key) {
+        case "/":
+          if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
+          Documentation.focusSearchBar();
+          event.preventDefault();
+      }
     });
-  }
+  },
 };
 
 // quick alias for translations
-_ = Documentation.gettext;
+const _ = Documentation.gettext;
 
-$(document).ready(function() {
-  Documentation.init();
-});
+_ready(Documentation.init);
diff --git a/doc/_build/html/_static/documentation_options.js b/doc/_build/html/_static/documentation_options.js
index ad3a3d9..a7f754b 100644
--- a/doc/_build/html/_static/documentation_options.js
+++ b/doc/_build/html/_static/documentation_options.js
@@ -1,10 +1,14 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
     VERSION: '1.0',
-    LANGUAGE: 'None',
+    LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
+    BUILDER: 'html',
     FILE_SUFFIX: '.html',
+    LINK_SUFFIX: '.html',
     HAS_SOURCE: true,
     SOURCELINK_SUFFIX: '.txt',
-    NAVIGATION_WITH_KEYS: false
+    NAVIGATION_WITH_KEYS: false,
+    SHOW_SEARCH_SUMMARY: true,
+    ENABLE_SEARCH_SHORTCUTS: true,
 };
\ No newline at end of file
diff --git a/doc/_build/html/_static/jquery.js b/doc/_build/html/_static/jquery.js
index a1c07fd..c4c6022 100644
--- a/doc/_build/html/_static/jquery.js
+++ b/doc/_build/html/_static/jquery.js
@@ -1,2 +1,2 @@
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
diff --git a/doc/_build/html/_static/pygments.css b/doc/_build/html/_static/pygments.css
index 20c4814..691aeb8 100644
--- a/doc/_build/html/_static/pygments.css
+++ b/doc/_build/html/_static/pygments.css
@@ -1,5 +1,10 @@
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
 .highlight .hll { background-color: #ffffcc }
-.highlight  { background: #eeffcc; }
+.highlight { background: #eeffcc; }
 .highlight .c { color: #408090; font-style: italic } /* Comment */
 .highlight .err { border: 1px solid #FF0000 } /* Error */
 .highlight .k { color: #007020; font-weight: bold } /* Keyword */
diff --git a/doc/_build/html/_static/searchtools.js b/doc/_build/html/_static/searchtools.js
index 6031f99..e89e34d 100644
--- a/doc/_build/html/_static/searchtools.js
+++ b/doc/_build/html/_static/searchtools.js
@@ -4,22 +4,24 @@
  *
  * Sphinx JavaScript utilities for the full-text search.
  *
- * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
+"use strict";
 
-if (!Scorer) {
-  /**
-   * Simple result scoring code.
-   */
+/**
+ * Simple result scoring code.
+ */
+if (typeof Scorer === "undefined") {
   var Scorer = {
     // Implement the following function to further tweak the score for each result
-    // The function takes a result array [filename, title, anchor, descr, score]
+    // The function takes a result array [docname, title, anchor, descr, score, filename]
     // and returns the new score.
     /*
-    score: function(result) {
-      return result[4];
+    score: result => {
+      const [docname, title, anchor, descr, score, filename] = result
+      return score
     },
     */
 
@@ -28,9 +30,11 @@ if (!Scorer) {
     // or matches in the last dotted part of the object name
     objPartialMatch: 6,
     // Additive scores depending on the priority of the object
-    objPrio: {0:  15,   // used to be importantResults
-              1:  5,   // used to be objectResults
-              2: -5},  // used to be unimportantResults
+    objPrio: {
+      0: 15, // used to be importantResults
+      1: 5, // used to be objectResults
+      2: -5, // used to be unimportantResults
+    },
     //  Used when the priority is not in the mapping.
     objPrioDefault: 0,
 
@@ -39,436 +43,495 @@ if (!Scorer) {
     partialTitle: 7,
     // query found in terms
     term: 5,
-    partialTerm: 2
+    partialTerm: 2,
   };
 }
 
-if (!splitQuery) {
-  function splitQuery(query) {
-    return query.split(/\s+/);
+const _removeChildren = (element) => {
+  while (element && element.lastChild) element.removeChild(element.lastChild);
+};
+
+/**
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
+ */
+const _escapeRegExp = (string) =>
+  string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
+
+const _displayItem = (item, searchTerms) => {
+  const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
+  const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
+  const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
+  const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
+  const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
+
+  const [docName, title, anchor, descr, score, _filename] = item;
+
+  let listItem = document.createElement("li");
+  let requestUrl;
+  let linkUrl;
+  if (docBuilder === "dirhtml") {
+    // dirhtml builder
+    let dirname = docName + "/";
+    if (dirname.match(/\/index\/$/))
+      dirname = dirname.substring(0, dirname.length - 6);
+    else if (dirname === "index/") dirname = "";
+    requestUrl = docUrlRoot + dirname;
+    linkUrl = requestUrl;
+  } else {
+    // normal html builders
+    requestUrl = docUrlRoot + docName + docFileSuffix;
+    linkUrl = docName + docLinkSuffix;
+  }
+  let linkEl = listItem.appendChild(document.createElement("a"));
+  linkEl.href = linkUrl + anchor;
+  linkEl.dataset.score = score;
+  linkEl.innerHTML = title;
+  if (descr)
+    listItem.appendChild(document.createElement("span")).innerHTML =
+      " (" + descr + ")";
+  else if (showSearchSummary)
+    fetch(requestUrl)
+      .then((responseData) => responseData.text())
+      .then((data) => {
+        if (data)
+          listItem.appendChild(
+            Search.makeSearchSummary(data, searchTerms)
+          );
+      });
+  Search.output.appendChild(listItem);
+};
+const _finishSearch = (resultCount) => {
+  Search.stopPulse();
+  Search.title.innerText = _("Search Results");
+  if (!resultCount)
+    Search.status.innerText = Documentation.gettext(
+      "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+    );
+  else
+    Search.status.innerText = _(
+      `Search finished, found ${resultCount} page(s) matching the search query.`
+    );
+};
+const _displayNextItem = (
+  results,
+  resultCount,
+  searchTerms
+) => {
+  // results left, load the summary and display it
+  // this is intended to be dynamic (don't sub resultsCount)
+  if (results.length) {
+    _displayItem(results.pop(), searchTerms);
+    setTimeout(
+      () => _displayNextItem(results, resultCount, searchTerms),
+      5
+    );
   }
+  // search finished, update title and status message
+  else _finishSearch(resultCount);
+};
+
+/**
+ * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
+ * custom function per language.
+ *
+ * The regular expression works by splitting the string on consecutive characters
+ * that are not Unicode letters, numbers, underscores, or emoji characters.
+ * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
+ */
+if (typeof splitQuery === "undefined") {
+  var splitQuery = (query) => query
+      .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
+      .filter(term => term)  // remove remaining empty strings
 }
 
 /**
  * Search Module
  */
-var Search = {
-
-  _index : null,
-  _queued_query : null,
-  _pulse_status : -1,
-
-  htmlToText : function(htmlString) {
-      var htmlElement = document.createElement('span');
-      htmlElement.innerHTML = htmlString;
-      $(htmlElement).find('.headerlink').remove();
-      docContent = $(htmlElement).find('[role=main]')[0];
-      return docContent.textContent || docContent.innerText;
+const Search = {
+  _index: null,
+  _queued_query: null,
+  _pulse_status: -1,
+
+  htmlToText: (htmlString) => {
+    const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
+    htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() });
+    const docContent = htmlElement.querySelector('[role="main"]');
+    if (docContent !== undefined) return docContent.textContent;
+    console.warn(
+      "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
+    );
+    return "";
   },
 
-  init : function() {
-      var params = $.getQueryParameters();
-      if (params.q) {
-          var query = params.q[0];
-          $('input[name="q"]')[0].value = query;
-          this.performSearch(query);
-      }
+  init: () => {
+    const query = new URLSearchParams(window.location.search).get("q");
+    document
+      .querySelectorAll('input[name="q"]')
+      .forEach((el) => (el.value = query));
+    if (query) Search.performSearch(query);
   },
 
-  loadIndex : function(url) {
-    $.ajax({type: "GET", url: url, data: null,
-            dataType: "script", cache: true,
-            complete: function(jqxhr, textstatus) {
-              if (textstatus != "success") {
-                document.getElementById("searchindexloader").src = url;
-              }
-            }});
-  },
+  loadIndex: (url) =>
+    (document.body.appendChild(document.createElement("script")).src = url),
 
-  setIndex : function(index) {
-    var q;
-    this._index = index;
-    if ((q = this._queued_query) !== null) {
-      this._queued_query = null;
-      Search.query(q);
+  setIndex: (index) => {
+    Search._index = index;
+    if (Search._queued_query !== null) {
+      const query = Search._queued_query;
+      Search._queued_query = null;
+      Search.query(query);
     }
   },
 
-  hasIndex : function() {
-      return this._index !== null;
-  },
+  hasIndex: () => Search._index !== null,
 
-  deferQuery : function(query) {
-      this._queued_query = query;
-  },
+  deferQuery: (query) => (Search._queued_query = query),
 
-  stopPulse : function() {
-      this._pulse_status = 0;
-  },
+  stopPulse: () => (Search._pulse_status = -1),
 
-  startPulse : function() {
-    if (this._pulse_status >= 0)
-        return;
-    function pulse() {
-      var i;
+  startPulse: () => {
+    if (Search._pulse_status >= 0) return;
+
+    const pulse = () => {
       Search._pulse_status = (Search._pulse_status + 1) % 4;
-      var dotString = '';
-      for (i = 0; i < Search._pulse_status; i++)
-        dotString += '.';
-      Search.dots.text(dotString);
-      if (Search._pulse_status > -1)
-        window.setTimeout(pulse, 500);
-    }
+      Search.dots.innerText = ".".repeat(Search._pulse_status);
+      if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
+    };
     pulse();
   },
 
   /**
    * perform a search for something (or wait until index is loaded)
    */
-  performSearch : function(query) {
+  performSearch: (query) => {
     // create the required interface elements
-    this.out = $('#search-results');
-    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
-    this.dots = $('<span></span>').appendTo(this.title);
-    this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
-    this.output = $('<ul class="search"/>').appendTo(this.out);
-
-    $('#search-progress').text(_('Preparing search...'));
-    this.startPulse();
+    const searchText = document.createElement("h2");
+    searchText.textContent = _("Searching");
+    const searchSummary = document.createElement("p");
+    searchSummary.classList.add("search-summary");
+    searchSummary.innerText = "";
+    const searchList = document.createElement("ul");
+    searchList.classList.add("search");
+
+    const out = document.getElementById("search-results");
+    Search.title = out.appendChild(searchText);
+    Search.dots = Search.title.appendChild(document.createElement("span"));
+    Search.status = out.appendChild(searchSummary);
+    Search.output = out.appendChild(searchList);
+
+    const searchProgress = document.getElementById("search-progress");
+    // Some themes don't use the search progress node
+    if (searchProgress) {
+      searchProgress.innerText = _("Preparing search...");
+    }
+    Search.startPulse();
 
     // index already loaded, the browser was quick!
-    if (this.hasIndex())
-      this.query(query);
-    else
-      this.deferQuery(query);
+    if (Search.hasIndex()) Search.query(query);
+    else Search.deferQuery(query);
   },
 
   /**
    * execute search (requires search index to be loaded)
    */
-  query : function(query) {
-    var i;
-
-    // stem the searchterms and add them to the correct list
-    var stemmer = new Stemmer();
-    var searchterms = [];
-    var excluded = [];
-    var hlterms = [];
-    var tmp = splitQuery(query);
-    var objectterms = [];
-    for (i = 0; i < tmp.length; i++) {
-      if (tmp[i] !== "") {
-          objectterms.push(tmp[i].toLowerCase());
-      }
+  query: (query) => {
+    const filenames = Search._index.filenames;
+    const docNames = Search._index.docnames;
+    const titles = Search._index.titles;
+    const allTitles = Search._index.alltitles;
+    const indexEntries = Search._index.indexentries;
+
+    // stem the search terms and add them to the correct list
+    const stemmer = new Stemmer();
+    const searchTerms = new Set();
+    const excludedTerms = new Set();
+    const highlightTerms = new Set();
+    const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
+    splitQuery(query.trim()).forEach((queryTerm) => {
+      const queryTermLower = queryTerm.toLowerCase();
+
+      // maybe skip this "word"
+      // stopwords array is from language_data.js
+      if (
+        stopwords.indexOf(queryTermLower) !== -1 ||
+        queryTerm.match(/^\d+$/)
+      )
+        return;
 
-      if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
-          tmp[i] === "") {
-        // skip this "word"
-        continue;
-      }
       // stem the word
-      var word = stemmer.stemWord(tmp[i].toLowerCase());
-      // prevent stemmer from cutting word smaller than two chars
-      if(word.length < 3 && tmp[i].length >= 3) {
-        word = tmp[i];
-      }
-      var toAppend;
+      let word = stemmer.stemWord(queryTermLower);
       // select the correct list
-      if (word[0] == '-') {
-        toAppend = excluded;
-        word = word.substr(1);
-      }
+      if (word[0] === "-") excludedTerms.add(word.substr(1));
       else {
-        toAppend = searchterms;
-        hlterms.push(tmp[i].toLowerCase());
+        searchTerms.add(word);
+        highlightTerms.add(queryTermLower);
       }
-      // only add if not already in the list
-      if (!$u.contains(toAppend, word))
-        toAppend.push(word);
-    }
-    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
+    });
 
-    // console.debug('SEARCH: searching for:');
-    // console.info('required: ', searchterms);
-    // console.info('excluded: ', excluded);
+    if (SPHINX_HIGHLIGHT_ENABLED) {  // set in sphinx_highlight.js
+      localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
+    }
 
-    // prepare search
-    var terms = this._index.terms;
-    var titleterms = this._index.titleterms;
+    // console.debug("SEARCH: searching for:");
+    // console.info("required: ", [...searchTerms]);
+    // console.info("excluded: ", [...excludedTerms]);
+
+    // array of [docname, title, anchor, descr, score, filename]
+    let results = [];
+    _removeChildren(document.getElementById("search-progress"));
+
+    const queryLower = query.toLowerCase();
+    for (const [title, foundTitles] of Object.entries(allTitles)) {
+      if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) {
+        for (const [file, id] of foundTitles) {
+          let score = Math.round(100 * queryLower.length / title.length)
+          results.push([
+            docNames[file],
+            titles[file] !== title ? `${titles[file]} > ${title}` : title,
+            id !== null ? "#" + id : "",
+            null,
+            score,
+            filenames[file],
+          ]);
+        }
+      }
+    }
 
-    // array of [filename, title, anchor, descr, score]
-    var results = [];
-    $('#search-progress').empty();
+    // search for explicit entries in index directives
+    for (const [entry, foundEntries] of Object.entries(indexEntries)) {
+      if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
+        for (const [file, id] of foundEntries) {
+          let score = Math.round(100 * queryLower.length / entry.length)
+          results.push([
+            docNames[file],
+            titles[file],
+            id ? "#" + id : "",
+            null,
+            score,
+            filenames[file],
+          ]);
+        }
+      }
+    }
 
     // lookup as object
-    for (i = 0; i < objectterms.length; i++) {
-      var others = [].concat(objectterms.slice(0, i),
-                             objectterms.slice(i+1, objectterms.length));
-      results = results.concat(this.performObjectSearch(objectterms[i], others));
-    }
+    objectTerms.forEach((term) =>
+      results.push(...Search.performObjectSearch(term, objectTerms))
+    );
 
     // lookup as search terms in fulltext
-    results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
+    results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
 
     // let the scorer override scores with a custom scoring function
-    if (Scorer.score) {
-      for (i = 0; i < results.length; i++)
-        results[i][4] = Scorer.score(results[i]);
-    }
+    if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
 
     // now sort the results by score (in opposite order of appearance, since the
     // display function below uses pop() to retrieve items) and then
     // alphabetically
-    results.sort(function(a, b) {
-      var left = a[4];
-      var right = b[4];
-      if (left > right) {
-        return 1;
-      } else if (left < right) {
-        return -1;
-      } else {
+    results.sort((a, b) => {
+      const leftScore = a[4];
+      const rightScore = b[4];
+      if (leftScore === rightScore) {
         // same score: sort alphabetically
-        left = a[1].toLowerCase();
-        right = b[1].toLowerCase();
-        return (left > right) ? -1 : ((left < right) ? 1 : 0);
+        const leftTitle = a[1].toLowerCase();
+        const rightTitle = b[1].toLowerCase();
+        if (leftTitle === rightTitle) return 0;
+        return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
       }
+      return leftScore > rightScore ? 1 : -1;
     });
 
+    // remove duplicate search results
+    // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
+    let seen = new Set();
+    results = results.reverse().reduce((acc, result) => {
+      let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
+      if (!seen.has(resultStr)) {
+        acc.push(result);
+        seen.add(resultStr);
+      }
+      return acc;
+    }, []);
+
+    results = results.reverse();
+
     // for debugging
     //Search.lastresults = results.slice();  // a copy
-    //console.info('search results:', Search.lastresults);
+    // console.info("search results:", Search.lastresults);
 
     // print the results
-    var resultCount = results.length;
-    function displayNextItem() {
-      // results left, load the summary and display it
-      if (results.length) {
-        var item = results.pop();
-        var listItem = $('<li style="display:none"></li>');
-        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
-          // dirhtml builder
-          var dirname = item[0] + '/';
-          if (dirname.match(/\/index\/$/)) {
-            dirname = dirname.substring(0, dirname.length-6);
-          } else if (dirname == 'index/') {
-            dirname = '';
-          }
-          listItem.append($('<a/>').attr('href',
-            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
-            highlightstring + item[2]).html(item[1]));
-        } else {
-          // normal html builders
-          listItem.append($('<a/>').attr('href',
-            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
-            highlightstring + item[2]).html(item[1]));
-        }
-        if (item[3]) {
-          listItem.append($('<span> (' + item[3] + ')</span>'));
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
-                  dataType: "text",
-                  complete: function(jqxhr, textstatus) {
-                    var data = jqxhr.responseText;
-                    if (data !== '' && data !== undefined) {
-                      listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
-                    }
-                    Search.output.append(listItem);
-                    listItem.slideDown(5, function() {
-                      displayNextItem();
-                    });
-                  }});
-        } else {
-          // no source available, just display title
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        }
-      }
-      // search finished, update title and status message
-      else {
-        Search.stopPulse();
-        Search.title.text(_('Search Results'));
-        if (!resultCount)
-          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
-        else
-            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
-        Search.status.fadeIn(500);
-      }
-    }
-    displayNextItem();
+    _displayNextItem(results, results.length, searchTerms);
   },
 
   /**
    * search for object names
    */
-  performObjectSearch : function(object, otherterms) {
-    var filenames = this._index.filenames;
-    var docnames = this._index.docnames;
-    var objects = this._index.objects;
-    var objnames = this._index.objnames;
-    var titles = this._index.titles;
-
-    var i;
-    var results = [];
-
-    for (var prefix in objects) {
-      for (var name in objects[prefix]) {
-        var fullname = (prefix ? prefix + '.' : '') + name;
-        var fullnameLower = fullname.toLowerCase()
-        if (fullnameLower.indexOf(object) > -1) {
-          var score = 0;
-          var parts = fullnameLower.split('.');
-          // check for different match types: exact matches of full name or
-          // "last name" (i.e. last dotted part)
-          if (fullnameLower == object || parts[parts.length - 1] == object) {
-            score += Scorer.objNameMatch;
-          // matches in last name
-          } else if (parts[parts.length - 1].indexOf(object) > -1) {
-            score += Scorer.objPartialMatch;
-          }
-          var match = objects[prefix][name];
-          var objname = objnames[match[1]][2];
-          var title = titles[match[0]];
-          // If more than one term searched for, we require other words to be
-          // found in the name/title/description
-          if (otherterms.length > 0) {
-            var haystack = (prefix + ' ' + name + ' ' +
-                            objname + ' ' + title).toLowerCase();
-            var allfound = true;
-            for (i = 0; i < otherterms.length; i++) {
-              if (haystack.indexOf(otherterms[i]) == -1) {
-                allfound = false;
-                break;
-              }
-            }
-            if (!allfound) {
-              continue;
-            }
-          }
-          var descr = objname + _(', in ') + title;
-
-          var anchor = match[3];
-          if (anchor === '')
-            anchor = fullname;
-          else if (anchor == '-')
-            anchor = objnames[match[1]][1] + '-' + fullname;
-          // add custom score for some objects according to scorer
-          if (Scorer.objPrio.hasOwnProperty(match[2])) {
-            score += Scorer.objPrio[match[2]];
-          } else {
-            score += Scorer.objPrioDefault;
-          }
-          results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
-        }
+  performObjectSearch: (object, objectTerms) => {
+    const filenames = Search._index.filenames;
+    const docNames = Search._index.docnames;
+    const objects = Search._index.objects;
+    const objNames = Search._index.objnames;
+    const titles = Search._index.titles;
+
+    const results = [];
+
+    const objectSearchCallback = (prefix, match) => {
+      const name = match[4]
+      const fullname = (prefix ? prefix + "." : "") + name;
+      const fullnameLower = fullname.toLowerCase();
+      if (fullnameLower.indexOf(object) < 0) return;
+
+      let score = 0;
+      const parts = fullnameLower.split(".");
+
+      // check for different match types: exact matches of full name or
+      // "last name" (i.e. last dotted part)
+      if (fullnameLower === object || parts.slice(-1)[0] === object)
+        score += Scorer.objNameMatch;
+      else if (parts.slice(-1)[0].indexOf(object) > -1)
+        score += Scorer.objPartialMatch; // matches in last name
+
+      const objName = objNames[match[1]][2];
+      const title = titles[match[0]];
+
+      // If more than one term searched for, we require other words to be
+      // found in the name/title/description
+      const otherTerms = new Set(objectTerms);
+      otherTerms.delete(object);
+      if (otherTerms.size > 0) {
+        const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
+        if (
+          [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
+        )
+          return;
       }
-    }
 
+      let anchor = match[3];
+      if (anchor === "") anchor = fullname;
+      else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
+
+      const descr = objName + _(", in ") + title;
+
+      // add custom score for some objects according to scorer
+      if (Scorer.objPrio.hasOwnProperty(match[2]))
+        score += Scorer.objPrio[match[2]];
+      else score += Scorer.objPrioDefault;
+
+      results.push([
+        docNames[match[0]],
+        fullname,
+        "#" + anchor,
+        descr,
+        score,
+        filenames[match[0]],
+      ]);
+    };
+    Object.keys(objects).forEach((prefix) =>
+      objects[prefix].forEach((array) =>
+        objectSearchCallback(prefix, array)
+      )
+    );
     return results;
   },
 
   /**
    * search for full-text terms in the index
    */
-  performTermsSearch : function(searchterms, excluded, terms, titleterms) {
-    var docnames = this._index.docnames;
-    var filenames = this._index.filenames;
-    var titles = this._index.titles;
+  performTermsSearch: (searchTerms, excludedTerms) => {
+    // prepare search
+    const terms = Search._index.terms;
+    const titleTerms = Search._index.titleterms;
+    const filenames = Search._index.filenames;
+    const docNames = Search._index.docnames;
+    const titles = Search._index.titles;
 
-    var i, j, file;
-    var fileMap = {};
-    var scoreMap = {};
-    var results = [];
+    const scoreMap = new Map();
+    const fileMap = new Map();
 
     // perform the search on the required terms
-    for (i = 0; i < searchterms.length; i++) {
-      var word = searchterms[i];
-      var files = [];
-      var _o = [
-        {files: terms[word], score: Scorer.term},
-        {files: titleterms[word], score: Scorer.title}
+    searchTerms.forEach((word) => {
+      const files = [];
+      const arr = [
+        { files: terms[word], score: Scorer.term },
+        { files: titleTerms[word], score: Scorer.title },
       ];
       // add support for partial matches
       if (word.length > 2) {
-        for (var w in terms) {
-          if (w.match(word) && !terms[word]) {
-            _o.push({files: terms[w], score: Scorer.partialTerm})
-          }
-        }
-        for (var w in titleterms) {
-          if (w.match(word) && !titleterms[word]) {
-              _o.push({files: titleterms[w], score: Scorer.partialTitle})
-          }
-        }
+        const escapedWord = _escapeRegExp(word);
+        Object.keys(terms).forEach((term) => {
+          if (term.match(escapedWord) && !terms[word])
+            arr.push({ files: terms[term], score: Scorer.partialTerm });
+        });
+        Object.keys(titleTerms).forEach((term) => {
+          if (term.match(escapedWord) && !titleTerms[word])
+            arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
+        });
       }
 
       // no match but word was a required one
-      if ($u.every(_o, function(o){return o.files === undefined;})) {
-        break;
-      }
+      if (arr.every((record) => record.files === undefined)) return;
+
       // found search word in contents
-      $u.each(_o, function(o) {
-        var _files = o.files;
-        if (_files === undefined)
-          return
-
-        if (_files.length === undefined)
-          _files = [_files];
-        files = files.concat(_files);
-
-        // set score for the word in each file to Scorer.term
-        for (j = 0; j < _files.length; j++) {
-          file = _files[j];
-          if (!(file in scoreMap))
-            scoreMap[file] = {}
-          scoreMap[file][word] = o.score;
-        }
+      arr.forEach((record) => {
+        if (record.files === undefined) return;
+
+        let recordFiles = record.files;
+        if (recordFiles.length === undefined) recordFiles = [recordFiles];
+        files.push(...recordFiles);
+
+        // set score for the word in each file
+        recordFiles.forEach((file) => {
+          if (!scoreMap.has(file)) scoreMap.set(file, {});
+          scoreMap.get(file)[word] = record.score;
+        });
       });
 
       // create the mapping
-      for (j = 0; j < files.length; j++) {
-        file = files[j];
-        if (file in fileMap)
-          fileMap[file].push(word);
-        else
-          fileMap[file] = [word];
-      }
-    }
+      files.forEach((file) => {
+        if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
+          fileMap.get(file).push(word);
+        else fileMap.set(file, [word]);
+      });
+    });
 
     // now check if the files don't contain excluded terms
-    for (file in fileMap) {
-      var valid = true;
-
+    const results = [];
+    for (const [file, wordList] of fileMap) {
       // check if all requirements are matched
-      var filteredTermCount = // as search terms with length < 3 are discarded: ignore
-        searchterms.filter(function(term){return term.length > 2}).length
+
+      // as search terms with length < 3 are discarded
+      const filteredTermCount = [...searchTerms].filter(
+        (term) => term.length > 2
+      ).length;
       if (
-        fileMap[file].length != searchterms.length &&
-        fileMap[file].length != filteredTermCount
-      ) continue;
+        wordList.length !== searchTerms.size &&
+        wordList.length !== filteredTermCount
+      )
+        continue;
 
       // ensure that none of the excluded terms is in the search result
-      for (i = 0; i < excluded.length; i++) {
-        if (terms[excluded[i]] == file ||
-            titleterms[excluded[i]] == file ||
-            $u.contains(terms[excluded[i]] || [], file) ||
-            $u.contains(titleterms[excluded[i]] || [], file)) {
-          valid = false;
-          break;
-        }
-      }
+      if (
+        [...excludedTerms].some(
+          (term) =>
+            terms[term] === file ||
+            titleTerms[term] === file ||
+            (terms[term] || []).includes(file) ||
+            (titleTerms[term] || []).includes(file)
+        )
+      )
+        break;
 
-      // if we have still a valid result we can add it to the result list
-      if (valid) {
-        // select one (max) score for the file.
-        // for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
-        var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
-        results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
-      }
+      // select one (max) score for the file.
+      const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
+      // add result to the result list
+      results.push([
+        docNames[file],
+        titles[file],
+        "",
+        null,
+        score,
+        filenames[file],
+      ]);
     }
     return results;
   },
@@ -476,31 +539,28 @@ var Search = {
   /**
    * helper function to return a node containing the
    * search summary for a given text. keywords is a list
-   * of stemmed words, hlwords is the list of normal, unstemmed
-   * words. the first one is used to find the occurrence, the
-   * latter for highlighting it.
+   * of stemmed words.
    */
-  makeSearchSummary : function(htmlText, keywords, hlwords) {
-    var text = Search.htmlToText(htmlText);
-    var textLower = text.toLowerCase();
-    var start = 0;
-    $.each(keywords, function() {
-      var i = textLower.indexOf(this.toLowerCase());
-      if (i > -1)
-        start = i;
-    });
-    start = Math.max(start - 120, 0);
-    var excerpt = ((start > 0) ? '...' : '') +
-      $.trim(text.substr(start, 240)) +
-      ((start + 240 - text.length) ? '...' : '');
-    var rv = $('<div class="context"></div>').text(excerpt);
-    $.each(hlwords, function() {
-      rv = rv.highlightText(this, 'highlighted');
-    });
-    return rv;
-  }
+  makeSearchSummary: (htmlText, keywords) => {
+    const text = Search.htmlToText(htmlText);
+    if (text === "") return null;
+
+    const textLower = text.toLowerCase();
+    const actualStartPosition = [...keywords]
+      .map((k) => textLower.indexOf(k.toLowerCase()))
+      .filter((i) => i > -1)
+      .slice(-1)[0];
+    const startWithContext = Math.max(actualStartPosition - 120, 0);
+
+    const top = startWithContext === 0 ? "" : "...";
+    const tail = startWithContext + 240 < text.length ? "..." : "";
+
+    let summary = document.createElement("p");
+    summary.classList.add("context");
+    summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
+
+    return summary;
+  },
 };
 
-$(document).ready(function() {
-  Search.init();
-});
+_ready(Search.init);
diff --git a/doc/_build/html/_static/underscore.js b/doc/_build/html/_static/underscore.js
index 5b55f32..cf177d4 100644
--- a/doc/_build/html/_static/underscore.js
+++ b/doc/_build/html/_static/underscore.js
@@ -1,31 +1,6 @@
-// Underscore.js 1.3.1
-// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
-// Underscore is freely distributable under the MIT license.
-// Portions of Underscore are inspired or borrowed from Prototype,
-// Oliver Steele's Functional, and John Resig's Micro-Templating.
-// For all details and documentation:
-// http://documentcloud.github.com/underscore
-(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
-c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
-h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
-b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==
-null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
-function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
-e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
-function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});
-return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
-c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=
-b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]);
-return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,
-d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};
-var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,
-c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true:
-a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};
-b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
-1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
-b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
-b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),
-function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
-u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
-function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
-true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
+!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){
+//     Underscore.js 1.13.1
+//     https://underscorejs.org
+//     (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var $n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr}));
\ No newline at end of file
diff --git a/doc/_build/html/genindex.html b/doc/_build/html/genindex.html
index 7ec4d12..69d0f2e 100644
--- a/doc/_build/html/genindex.html
+++ b/doc/_build/html/genindex.html
@@ -1,66 +1,33 @@
-
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Index &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
-        <script type="text/javascript" src="_static/jquery.js"></script>
-        <script type="text/javascript" src="_static/underscore.js"></script>
-        <script type="text/javascript" src="_static/doctools.js"></script>
-        <script type="text/javascript" src="_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/jquery.js"></script>
+        <script src="_static/underscore.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="#" />
     <link rel="search" title="Search" href="search.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -68,79 +35,48 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="index.html">Welcome to jass_preprocessing’s documentation!</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#command-line-usage-example">Command line usage example:</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#indices-and-tables">Indices and tables</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="index.html">Docs</a> &raquo;</li>
-        
-      <li>Index</li>
-    
-    
+      <li><a href="index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">Index</li>
       <li class="wy-breadcrumbs-aside">
-        
-            
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
 
 <h1 id="index">Index</h1>
 
@@ -198,20 +134,50 @@
 <h2 id="J">J</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing">jass_preprocessing (module)</a>
+      <li>
+    jass_preprocessing
+
+      <ul>
+        <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing">module</a>, <a href="index.html#module-jass_preprocessing">[1]</a>
 </li>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.compute_score">jass_preprocessing.compute_score (module)</a>
+      </ul></li>
+      <li>
+    jass_preprocessing.compute_score
+
+      <ul>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score">module</a>, <a href="_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score">[1]</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.compute_score">[2]</a>
 </li>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.dna_utils">jass_preprocessing.dna_utils (module)</a>
+      </ul></li>
+      <li>
+    jass_preprocessing.dna_utils
+
+      <ul>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils">module</a>, <a href="_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils">[1]</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.dna_utils">[2]</a>
 </li>
+      </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas (module)</a>
+      <li>
+    jass_preprocessing.map_gwas
+
+      <ul>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas">module</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_gwas">[1]</a>, <a href="_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas">[2]</a>
 </li>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference (module)</a>
+      </ul></li>
+      <li>
+    jass_preprocessing.map_reference
+
+      <ul>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference">module</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_reference">[1]</a>, <a href="_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference">[2]</a>
 </li>
-      <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.save_output">jass_preprocessing.save_output (module)</a>
+      </ul></li>
+      <li>
+    jass_preprocessing.save_output
+
+      <ul>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output">module</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.save_output">[1]</a>, <a href="_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output">[2]</a>
 </li>
+      </ul></li>
   </ul></td>
 </tr></table>
 
@@ -220,10 +186,25 @@
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.map_columns_position">map_columns_position() (in module jass_preprocessing.map_gwas)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.map_on_ref_panel">map_on_ref_panel() (in module jass_preprocessing.map_reference)</a>
 </li>
+      <li>
+    module
+
+      <ul>
+        <li><a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing">jass_preprocessing</a>, <a href="index.html#module-jass_preprocessing">[1]</a>
+</li>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score">jass_preprocessing.compute_score</a>, <a href="_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score">[1]</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.compute_score">[2]</a>
+</li>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils">jass_preprocessing.dna_utils</a>, <a href="_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils">[1]</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.dna_utils">[2]</a>
+</li>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_gwas">[1]</a>, <a href="_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas">[2]</a>
+</li>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_reference">[1]</a>, <a href="_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference">[2]</a>
+</li>
+        <li><a href="_autosummary/_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output">jass_preprocessing.save_output</a>, <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.save_output">[1]</a>, <a href="_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output">[2]</a>
+</li>
+      </ul></li>
   </ul></td>
 </tr></table>
 
@@ -262,42 +243,30 @@
 
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/index.html b/doc/_build/html/index.html
index 0e893ca..59f8bac 100644
--- a/doc/_build/html/index.html
+++ b/doc/_build/html/index.html
@@ -1,65 +1,35 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
-  <title>Welcome to jass_preprocessing’s documentation! &mdash; jass_preprocessing 1.0 documentation</title>
-  
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
-        <script type="text/javascript" src="_static/jquery.js"></script>
-        <script type="text/javascript" src="_static/underscore.js"></script>
-        <script type="text/javascript" src="_static/doctools.js"></script>
-        <script type="text/javascript" src="_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="_static/js/theme.js"></script>
-
-    
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Welcome to jass_preprocessing’s documentation! &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/jquery.js"></script>
+        <script src="_static/underscore.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
-    <link rel="search" title="Search" href="search.html" /> 
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="jass_preprocessing.map_gwas" href="_autosummary/jass_preprocessing.map_gwas.html" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="#" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -67,105 +37,95 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
-
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"><ul>
-<li><a class="reference internal" href="#">Welcome to jass_preprocessing’s documentation!</a></li>
-<li><a class="reference internal" href="#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
-<li><a class="reference internal" href="#overview">Overview</a></li>
-<li><a class="reference internal" href="#installation">Installation</a></li>
-<li><a class="reference internal" href="#input">Input</a></li>
-<li><a class="reference internal" href="#command-line-usage-example">Command line usage example:</a><ul>
-<li><a class="reference internal" href="#Named Arguments">Named Arguments</a></li>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Welcome to jass_preprocessing’s documentation!</a><ul class="simple">
 </ul>
 </li>
-<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#command-line-usage-example">Command line usage example:</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#named-arguments">Named Arguments</a></li>
 </ul>
-</div>
-            
-          
+</li>
+<li class="toctree-l1"><a class="reference internal" href="#indices-and-tables">Indices and tables</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
+
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="#">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="#">Docs</a> &raquo;</li>
-        
-      <li>Welcome to jass_preprocessing’s documentation!</li>
-    
-    
+      <li><a href="#" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">Welcome to jass_preprocessing’s documentation!</li>
       <li class="wy-breadcrumbs-aside">
-        
-            
             <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a>
-          
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
-  <div class="section" id="welcome-to-jass-preprocessing-s-documentation">
-<h1>Welcome to jass_preprocessing’s documentation!<a class="headerlink" href="#welcome-to-jass-preprocessing-s-documentation" title="Permalink to this headline">¶</a></h1>
+             
+  <section id="welcome-to-jass-preprocessing-s-documentation">
+<h1>Welcome to jass_preprocessing’s documentation!<a class="headerlink" href="#welcome-to-jass-preprocessing-s-documentation" title="Permalink to this heading"></a></h1>
 <div class="toctree-wrapper compound">
+<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Welcome to jass_preprocessing’s documentation!</a><ul class="simple">
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="#command-line-usage-example">Command line usage example:</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#named-arguments">Named Arguments</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="#indices-and-tables">Indices and tables</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l2"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
+</li>
+</ul>
 </div>
-</div>
-<div class="section" id="what-is-jass-preprocessing">
-<h1>What is jass preprocessing ?<a class="headerlink" href="#what-is-jass-preprocessing" title="Permalink to this headline">¶</a></h1>
+</section>
+<section id="what-is-jass-preprocessing">
+<h1>What is jass preprocessing ?<a class="headerlink" href="#what-is-jass-preprocessing" title="Permalink to this heading"></a></h1>
 <p>Jass preprocessing is a tool that takes in input
 heterogeneous GWAS summary statistics and performs standardization and quality checks to output standardized summary statistic files that can be used as input in the JASS python package and the RAISS imputation package.</p>
-</div>
-<div class="section" id="overview">
-<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h1>
+</section>
+<section id="overview">
+<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this heading"></a></h1>
 <p>The QC and preprocessing step goes as follow:</p>
 <ul class="simple">
 <li><p>map column from of a specific GWAS to standardize names</p></li>
@@ -205,65 +165,97 @@ heterogeneous GWAS summary statistics and performs standardization and quality c
 <li><p>(Optional) Save the output to one file with a chromosome column</p></li>
 </ul>
 <p>(input format needed to perform LD-score)</p>
-</div>
-<div class="section" id="installation">
-<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
+<table class="docutils align-default">
+<colgroup>
+<col style="width: 16%" />
+<col style="width: 25%" />
+<col style="width: 18%" />
+<col style="width: 9%" />
+<col style="width: 9%" />
+<col style="width: 11%" />
+<col style="width: 11%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p>chrom</p></td>
+<td><p>rsID</p></td>
+<td><p>pos</p></td>
+<td><p>A0</p></td>
+<td><p>A1</p></td>
+<td><p>Z</p></td>
+<td><p>P</p></td>
+</tr>
+<tr class="row-even"><td><p>1</p></td>
+<td><p>rs4075116</p></td>
+<td><p>1003629</p></td>
+<td><p>C</p></td>
+<td><p>T</p></td>
+<td><p>0.3</p></td>
+<td><p>0.76</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+<section id="installation">
+<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h1>
 <p>In a terminal, execute the following lines:</p>
 <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pip3 install git+https://gitlab.pasteur.fr/statistical-genetics/JASS_Pre-processing
 </pre></div>
 </div>
-</div>
-<div class="section" id="input">
-<h1>Input<a class="headerlink" href="#input" title="Permalink to this headline">¶</a></h1>
+</section>
+<section id="input">
+<h1>Input<a class="headerlink" href="#input" title="Permalink to this heading"></a></h1>
 <ul class="simple">
-<li><p>A reference panel (1000 genome format). The user is expected to provide a reference panel in tsv format with the following columns in that order, without header:</p></li>
+<li><p>A reference panel (1000 genome format). The user is expected to provide a reference panel</p></li>
 </ul>
+<blockquote>
+<div><p>in tsv format with the following columns in the following order, without header:</p>
+</div></blockquote>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 12%" />
-<col style="width: 12%" />
-<col style="width: 29%" />
+<col style="width: 28%" />
+<col style="width: 21%" />
+<col style="width: 16%" />
 <col style="width: 12%" />
 <col style="width: 12%" />
-<col style="width: 22%" />
 </colgroup>
 <thead>
 <tr class="row-odd"><th class="head"><p>chr</p></th>
-<th class="head"><p>pos</p></th>
 <th class="head"><p>snp_id</p></th>
+<th class="head"><p>MAF</p></th>
+<th class="head"><p>pos</p></th>
 <th class="head"><p>ref</p></th>
 <th class="head"><p>alt</p></th>
-<th class="head"><p>MAF</p></th>
 </tr>
 </thead>
 <tbody>
 <tr class="row-even"><td><p>1</p></td>
-<td><p>13116</p></td>
 <td><p>rs62635286</p></td>
+<td><p>0.0970447</p></td>
+<td><p>13116</p></td>
 <td><p>T</p></td>
 <td><p>G</p></td>
-<td><p>0.0970447</p></td>
 </tr>
 <tr class="row-odd"><td><p>1</p></td>
-<td><p>13118</p></td>
-<td><p>rs200579949</p></td>
-<td><p>A</p></td>
-<td><p>G</p></td>
+<td><p>rs63125786</p></td>
 <td><p>0.0970447</p></td>
+<td><p>15116</p></td>
+<td><p>T</p></td>
+<td><p>A</p></td>
 </tr>
 <tr class="row-even"><td><p>1</p></td>
-<td><p>14604</p></td>
-<td><p>rs541940975</p></td>
+<td><p>rs5686</p></td>
+<td><p>0.1970447</p></td>
+<td><p>17116</p></td>
 <td><p>A</p></td>
 <td><p>G</p></td>
-<td><p>0.147564</p></td>
 </tr>
 <tr class="row-odd"><td><p>1</p></td>
-<td><p>14930</p></td>
-<td><p>rs75454623</p></td>
-<td><p>A</p></td>
+<td><p>rs892586</p></td>
+<td><p>0.7670447</p></td>
+<td><p>23116</p></td>
+<td><p>C</p></td>
 <td><p>G</p></td>
-<td><p>0.482228</p></td>
 </tr>
 </tbody>
 </table>
@@ -278,63 +270,87 @@ heterogeneous GWAS summary statistics and performs standardization and quality c
 </ul>
 </li>
 </ul>
+<table class="docutils align-default">
+<colgroup>
+<col style="width: 41%" />
+<col style="width: 59%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>category</p></th>
+<th class="head"><p>field name</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>path to the data</p></td>
+<td><p>filename</p></td>
+</tr>
+<tr class="row-odd"><td><p>study info fields</p></td>
+<td><p>Consortium,Outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp</p></td>
+</tr>
+<tr class="row-even"><td><p>names of the header in the GWAS file</p></td>
+<td><p>snpid,a1,a2,freq,pval,n,z,OR,se,code,imp,ncas,ncont</p></td>
+</tr>
+</tbody>
+</table>
 <p>Note that the combination of Consortium and outcome must be unique because it will be used as an index in the cleaning process.</p>
-<p>Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na.</p>
+<p>Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na.
+Some fields are optional like the imputation_quality. If not used they can be filled with na.</p>
 <table class="docutils align-default" id="id1">
-<caption><span class="caption-text">GWAS information table!</span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
+<caption><span class="caption-text">GWAS information table</span><a class="headerlink" href="#id1" title="Permalink to this table"></a></caption>
 <colgroup>
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
-<col style="width: 5%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
+<col style="width: 4%" />
 </colgroup>
-<tbody>
-<tr class="row-odd"><td><dl class="field-list simple">
-<dt class="field-odd">header</dt>
-<dd class="field-odd"><p>“filename”</p>
-</dd>
-</dl>
-</td>
-<td><p>consortia</p></td>
-<td><p>outcome</p></td>
-<td><p>fullName</p></td>
-<td><p>type</p></td>
-<td><p>Nsample</p></td>
-<td><p>Ncase</p></td>
-<td><p>Ncontrol</p></td>
-<td><p>Nsnp</p></td>
-<td><p>snpid</p></td>
-<td><p>a1</p></td>
-<td><p>a2</p></td>
-<td><p>freq</p></td>
-<td><p>pval</p></td>
-<td><p>n</p></td>
-<td><p>z</p></td>
-<td><p>OR</p></td>
-<td><p>se</p></td>
-<td><p>code</p></td>
-<td><p>imp</p></td>
-<td><p>ncas</p></td>
-<td><p>ncont</p></td>
+<thead>
+<tr class="row-odd"><th class="head"><p>filename</p></th>
+<th class="head"><p>consortia</p></th>
+<th class="head"><p>outcome</p></th>
+<th class="head"><p>fullName</p></th>
+<th class="head"><p>type</p></th>
+<th class="head"><p>Nsample</p></th>
+<th class="head"><p>Ncase</p></th>
+<th class="head"><p>Ncontrol</p></th>
+<th class="head"><p>Nsnp</p></th>
+<th class="head"><p>snpid</p></th>
+<th class="head"><p>a1</p></th>
+<th class="head"><p>a2</p></th>
+<th class="head"><p>freq</p></th>
+<th class="head"><p>pval</p></th>
+<th class="head"><p>n</p></th>
+<th class="head"><p>z</p></th>
+<th class="head"><p>OR</p></th>
+<th class="head"><p>se</p></th>
+<th class="head"><p>code</p></th>
+<th class="head"><p>imp</p></th>
+<th class="head"><p>ncas</p></th>
+<th class="head"><p>ncont</p></th>
+<th class="head"><p>imputation_quality</p></th>
+<th class="head"><p>index_type</p></th>
 </tr>
+</thead>
+<tbody>
 <tr class="row-even"><td><p>GIANT_HEIGHT_Wood_et_al.txt</p></td>
 <td><p>GIANT</p></td>
 <td><p>HEIGHT</p></td>
@@ -357,24 +373,23 @@ heterogeneous GWAS summary statistics and performs standardization and quality c
 <td><p>na</p></td>
 <td><p>na</p></td>
 <td><p>na</p></td>
+<td><p>imputationInfo</p></td>
+<td><p>rsID</p></td>
 </tr>
 </tbody>
 </table>
-</div>
-<div class="section" id="command-line-usage-example">
-<h1>Command line usage example:<a class="headerlink" href="#command-line-usage-example" title="Permalink to this headline">¶</a></h1>
+</section>
+<section id="command-line-usage-example">
+<h1>Command line usage example:<a class="headerlink" href="#command-line-usage-example" title="Permalink to this heading"></a></h1>
 <p>It is possible to launch the complete preprocessing (all steps described in section Overview section) from the command line:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">jass_preprocessing</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">--</span><span class="n">gwas</span><span class="o">-</span><span class="n">info</span> <span class="n">GWAS_INFO</span> <span class="o">--</span><span class="n">ref</span><span class="o">-</span><span class="n">path</span> <span class="n">REF_PATH</span>
-                          <span class="o">--</span><span class="nb">input</span><span class="o">-</span><span class="n">folder</span> <span class="n">INPUT_FOLDER</span> <span class="o">--</span><span class="n">diagnostic</span><span class="o">-</span><span class="n">folder</span>
-                          <span class="n">DIAGNOSTIC_FOLDER</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span> <span class="n">OUTPUT_FOLDER</span>
-                          <span class="p">[</span><span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="n">file</span> <span class="n">OUTPUT_FOLDER_1_FILE</span><span class="p">]</span>
-                          <span class="p">[</span><span class="o">--</span><span class="n">percent</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">size</span> <span class="n">PERCENT_SAMPLE_SIZE</span><span class="p">]</span>
-                          <span class="p">[</span><span class="o">--</span><span class="n">minimum</span><span class="o">-</span><span class="n">MAF</span> <span class="n">MINIMUM_MAF</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">mask</span><span class="o">-</span><span class="n">MHC</span> <span class="n">MASK_MHC</span><span class="p">]</span>
-                          <span class="p">[</span><span class="o">--</span><span class="n">additional</span><span class="o">-</span><span class="n">masked</span><span class="o">-</span><span class="n">region</span> <span class="n">ADDITIONAL_MASKED_REGION</span><span class="p">]</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">jass_preprocessing</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">--</span><span class="n">gwas</span><span class="o">-</span><span class="n">info</span> <span class="n">GWAS_INFO</span> <span class="o">--</span><span class="n">ref</span><span class="o">-</span><span class="n">path</span> <span class="n">REF_PATH</span> <span class="o">--</span><span class="nb">input</span><span class="o">-</span><span class="n">folder</span> <span class="n">INPUT_FOLDER</span> <span class="o">--</span><span class="n">diagnostic</span><span class="o">-</span><span class="n">folder</span> <span class="n">DIAGNOSTIC_FOLDER</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span>
+                          <span class="n">OUTPUT_FOLDER</span> <span class="p">[</span><span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="n">file</span> <span class="n">OUTPUT_FOLDER_1_FILE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">percent</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">size</span> <span class="n">PERCENT_SAMPLE_SIZE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">minimum</span><span class="o">-</span><span class="n">MAF</span> <span class="n">MINIMUM_MAF</span><span class="p">]</span>
+                          <span class="p">[</span><span class="o">--</span><span class="n">mask</span><span class="o">-</span><span class="n">MHC</span> <span class="n">MASK_MHC</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">additional</span><span class="o">-</span><span class="n">masked</span><span class="o">-</span><span class="n">region</span> <span class="n">ADDITIONAL_MASKED_REGION</span><span class="p">]</span>
+                          <span class="p">[</span><span class="o">--</span><span class="n">imputation</span><span class="o">-</span><span class="n">quality</span><span class="o">-</span><span class="n">treshold</span> <span class="n">IMPUTATION_QUALITY_TRESHOLD</span><span class="p">]</span>
 </pre></div>
 </div>
-<div class="section" id="Named Arguments">
-<h2>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline">¶</a></h2>
+<section id="named-arguments">
+<h2>Named Arguments<a class="headerlink" href="#named-arguments" title="Permalink to this heading"></a></h2>
 <dl class="option-list">
 <dt><kbd>--gwas-info</kbd></dt>
 <dd><p>Path to the file describing the format of the individual GWASs files with correct header</p>
@@ -400,67 +415,85 @@ heterogeneous GWAS summary statistics and performs standardization and quality c
 </dd>
 <dt><kbd>--minimum-MAF</kbd></dt>
 <dd><p>Filter the reference panel by  minimum allele frequency</p>
-<p>Default: 0.01</p>
+<p>Default: “0.01”</p>
 </dd>
 <dt><kbd>--mask-MHC</kbd></dt>
 <dd><p>Whether the MHC region should be masked or not. default is False</p>
-<p>Default: False</p>
+<p>Default: “False”</p>
 </dd>
 <dt><kbd>--additional-masked-region</kbd></dt>
 <dd><p>List of dictionary containing coordinate of region to mask. For example :[{‘chr’:6, ‘start’:50000000, ‘end’: 70000000}, {‘chr’:6, ‘start’:100000000, ‘end’: 120000000}]</p>
+<p>Default: “None”</p>
+</dd>
+<dt><kbd>--imputation-quality-treshold</kbd></dt>
+<dd><p>minimum imputation quality in summary statistics</p>
+<p>Default: “None”</p>
 </dd>
 </dl>
-</div>
-</div>
-<div class="section" id="indices-and-tables">
-<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
+</section>
+</section>
+<section id="indices-and-tables">
+<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading"></a></h1>
 <ul class="simple">
 <li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
 <li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
 </ul>
+<span class="target" id="module-jass_preprocessing"></span><table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas" title="jass_preprocessing.map_gwas"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_gwas</span></code></a></p></td>
+<td><p>Map GWAS</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils" title="jass_preprocessing.dna_utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">dna_utils</span></code></a></p></td>
+<td><p>Few fonction to to compute DNA complement</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference" title="jass_preprocessing.map_reference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_reference</span></code></a></p></td>
+<td><p>Module of function</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score" title="jass_preprocessing.compute_score"><code class="xref py py-obj docutils literal notranslate"><span class="pre">compute_score</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output" title="jass_preprocessing.save_output"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_output</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
 <ul class="simple">
 <li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
 </ul>
-</div>
+</section>
 
 
            </div>
-           
           </div>
-          <footer>
-  
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="_autosummary/jass_preprocessing.map_gwas.html" class="btn btn-neutral float-right" title="jass_preprocessing.map_gwas" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/objects.inv b/doc/_build/html/objects.inv
index 82a46b99e139cbf660b44a2c0de0fb5639805a65..56a9c08431471b58c5899e2ffb3e7e212db522a0 100644
GIT binary patch
delta 562
zcmV-20?qxQ1gHg&fqz#^lG88{-TM@xV4DEjxd98RriukiRY&ePn&?;hWbmxG2G`>x
zSauTIA&Da+vvFjpU%&3Qo?3YU=cuu0tY+vOR~0e!lhkDpNIns+O8l|jc`4p^bE^+z
zRlNKKS~D$8@JJog7Dp~91g~9?5^Vi(3YkpRzkxKO`QdLZ{eLzn=DAkn^JD-mWfIq0
zpJpbWQUMK~3zt;7GwPAD^~P}&QxPap`6aTrpr9LYIjbeX(CQV^igf}#QmeBq)9QfM
zQ_0%}dH@m7Es)AOJ}6fntpY&>SNkPc;(%!pq-spG<E`%ncq~GB{zSQ*zk=9rb9=V9
zMT?4I@}@c?AAj9hJ>Ybpa7RJ#N@2NFRzs?-;Kuw1DyPgbt<2}lm@d9)6(^_xg<>(H
zc2ke`NhTTx2c$aqrfNyMZ-9Gb?+wi_DDx*W9Merr+0JUIotCo;H!@7RRS@UPr&2Sr
zx}ZzHn~*81v@rX=KR3kj9e~`kNDJ-UWamaUYPjT%L4SH&y$Js$xbeYFrmWJ!913i1
zkeB)<_ic&^e>dZ}p}H${!~okvg+(6yEg`vCD$6OXIa<mmpV^98LL@VFky{E~TfANU
z<N7VfMTM&UBiuR=uxaiXjf>N42m2C-MQ?WG8CZNr!D9RK`U=PIpT8VwFd<%*AhyPL
zMHAK)S}RkpP79siuibT_3t+H10ei0fu4%v{v_r6LHwJcd9p+oN{v1z$Kc{g>U<7gv
AB>(^b

delta 426
zcmV;b0agB}1)&6xfq#@sPQx$|hW9;%5p2t2%MDl{A+ca-O`U0KYL6|C-BMOugX?h;
z;<!&J;vt7k;>Y;^X8uh42+Yz4^uZ})*3=5Wy0)%K2F0b2kfP&cEriv@<EPm3S+wS~
zM32wJcyuI0IqOqI$;t&BRD3rB>rMC4&pmLONJZ^PT>T9BD}UDWuCPj+hCrsM4c9hn
zE8LHA0R}Bn93uA*2sr_+>5&C5+a*-DXrtSGURq#?(&~OgF2E$@0V+7p52-0)ATZKs
znh!zA1LaJz)P*?Kz4ic{fY5BeOl|QcnEAA}a=<ADB!xrt(pG$XUuc$KbW7L_RmVPR
zYP9$NfMW9NvVSUHD2KQ_bCegP2SPI#sBhzg&ZvZ8SfF$%cCOX#w>{~PnEJ`@kL6?~
z)hsyc*x5gu^-ZAQ*jzVGiSf@g#SsY)Y7Q+PqKc{frT%*VE74Jlq^ZHDUckVl>&i}I
zvs#Yb<l$%+w&v_bJfKn8yy%WF-d<i=bZ1ijxgZ;RG9&8JI)e49@n)mw-j)U{2{1xX
Uv%?c*tpwkf{k!bZJ4Dmn(a&7kxBvhE

diff --git a/doc/_build/html/py-modindex.html b/doc/_build/html/py-modindex.html
index ecef577..4182839 100644
--- a/doc/_build/html/py-modindex.html
+++ b/doc/_build/html/py-modindex.html
@@ -1,38 +1,22 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Python Module Index &mdash; jass_preprocessing 1.0 documentation</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
   
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
-  
-    
-      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
-        <script type="text/javascript" src="_static/jquery.js"></script>
-        <script type="text/javascript" src="_static/underscore.js"></script>
-        <script type="text/javascript" src="_static/doctools.js"></script>
-        <script type="text/javascript" src="_static/language_data.js"></script>
-    
-    <script type="text/javascript" src="_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/jquery.js"></script>
+        <script src="_static/underscore.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
  
@@ -40,29 +24,13 @@
 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -70,77 +38,48 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="index.html">Welcome to jass_preprocessing’s documentation!</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#command-line-usage-example">Command line usage example:</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#indices-and-tables">Indices and tables</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="index.html">Docs</a> &raquo;</li>
-        
-      <li>Python Module Index</li>
-    
-    
+      <li><a href="index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">Python Module Index</li>
       <li class="wy-breadcrumbs-aside">
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
 
    <h1>Python Module Index</h1>
 
@@ -156,73 +95,61 @@
        <td><img src="_static/minus.png" class="toggler"
               id="toggle-1" style="display: none" alt="-" /></td>
        <td>
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing"><code class="xref">jass_preprocessing</code></a></td><td>
+       <a href="index.html#module-jass_preprocessing"><code class="xref">jass_preprocessing</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.compute_score"><code class="xref">jass_preprocessing.compute_score</code></a></td><td>
+       <a href="_autosummary/jass_preprocessing.compute_score.html#module-jass_preprocessing.compute_score"><code class="xref">jass_preprocessing.compute_score</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.dna_utils"><code class="xref">jass_preprocessing.dna_utils</code></a></td><td>
+       <a href="_autosummary/jass_preprocessing.dna_utils.html#module-jass_preprocessing.dna_utils"><code class="xref">jass_preprocessing.dna_utils</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_gwas"><code class="xref">jass_preprocessing.map_gwas</code></a></td><td>
+       <a href="_autosummary/jass_preprocessing.map_gwas.html#module-jass_preprocessing.map_gwas"><code class="xref">jass_preprocessing.map_gwas</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.map_reference"><code class="xref">jass_preprocessing.map_reference</code></a></td><td>
+       <a href="_autosummary/jass_preprocessing.map_reference.html#module-jass_preprocessing.map_reference"><code class="xref">jass_preprocessing.map_reference</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing.save_output"><code class="xref">jass_preprocessing.save_output</code></a></td><td>
+       <a href="_autosummary/jass_preprocessing.save_output.html#module-jass_preprocessing.save_output"><code class="xref">jass_preprocessing.save_output</code></a></td><td>
        <em></em></td></tr>
    </table>
 
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
-  </script>
-
-  
-  
-    
-   
+  </script> 
 
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/_build/html/search.html b/doc/_build/html/search.html
index b5326cc..626b0ed 100644
--- a/doc/_build/html/search.html
+++ b/doc/_build/html/search.html
@@ -1,66 +1,36 @@
-
-
 <!DOCTYPE html>
-<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
-  
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Search &mdash; jass_preprocessing 1.0 documentation</title>
-  
-
-  
-  
-  
-  
-
-  
-  <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
-  
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
     
-      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
-        <script type="text/javascript" src="_static/jquery.js"></script>
-        <script type="text/javascript" src="_static/underscore.js"></script>
-        <script type="text/javascript" src="_static/doctools.js"></script>
-        <script type="text/javascript" src="_static/language_data.js"></script>
-        <script type="text/javascript" src="_static/searchtools.js"></script>
-    
-    <script type="text/javascript" src="_static/js/theme.js"></script>
-
-    
-
-  
-  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
-  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/jquery.js"></script>
+        <script src="_static/underscore.js"></script>
+        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="_static/doctools.js"></script>
+        <script src="_static/sphinx_highlight.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <script src="_static/searchtools.js"></script>
+    <script src="_static/language_data.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="#" /> 
 </head>
 
-<body class="wy-body-for-nav">
-
-   
+<body class="wy-body-for-nav"> 
   <div class="wy-grid-for-nav">
-    
     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
       <div class="wy-side-scroll">
         <div class="wy-side-nav-search" >
-          
-
-          
             <a href="index.html" class="icon icon-home"> jass_preprocessing
-          
-
-          
           </a>
-
-          
-            
-            
-          
-
-          
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="#" method="get">
     <input type="text" name="q" placeholder="Search docs" />
@@ -68,84 +38,52 @@
     <input type="hidden" name="area" value="default" />
   </form>
 </div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="index.html">Welcome to jass_preprocessing’s documentation!</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#what-is-jass-preprocessing">What is jass preprocessing ?</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#overview">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#installation">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#input">Input</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#command-line-usage-example">Command line usage example:</a></li>
+<li class="toctree-l1"><a class="reference internal" href="index.html#indices-and-tables">Indices and tables</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_gwas.html">jass_preprocessing.map_gwas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.dna_utils.html">jass_preprocessing.dna_utils</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.map_reference.html">jass_preprocessing.map_reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.compute_score.html">jass_preprocessing.compute_score</a></li>
+<li class="toctree-l1"><a class="reference internal" href="_autosummary/jass_preprocessing.save_output.html">jass_preprocessing.save_output</a></li>
+</ul>
 
-          
-        </div>
-
-        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
-          
-            
-            
-              
-            
-            
-              <!-- Local TOC -->
-              <div class="local-toc"></div>
-            
-          
         </div>
       </div>
     </nav>
 
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
-      
-      <nav class="wy-nav-top" aria-label="top navigation">
-        
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
           <a href="index.html">jass_preprocessing</a>
-        
       </nav>
 
-
       <div class="wy-nav-content">
-        
         <div class="rst-content">
-        
-          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div role="navigation" aria-label="breadcrumbs navigation">
-
+          <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
-    
-      <li><a href="index.html">Docs</a> &raquo;</li>
-        
-      <li>Search</li>
-    
-    
+      <li><a href="index.html" class="icon icon-home"></a></li>
+      <li class="breadcrumb-item active">Search</li>
       <li class="wy-breadcrumbs-aside">
-        
-            
-        
       </li>
-    
   </ul>
-
-  
   <hr/>
 </div>
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
-            
+             
   <noscript>
   <div id="fallback" class="admonition warning">
     <p class="last">
-      Please activate JavaScript to enable the search
-      functionality.
+      Please activate JavaScript to enable the search functionality.
     </p>
   </div>
   </noscript>
@@ -156,47 +94,35 @@
   </div>
 
            </div>
-           
           </div>
           <footer>
-  
 
   <hr/>
 
   <div role="contentinfo">
-    <p>
-        &copy; Copyright 2018, Hanna Julienne
-
-    </p>
+    <p>&#169; Copyright 2018, Hanna Julienne.</p>
   </div>
-  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 
 
-</footer>
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
 
+</footer>
         </div>
       </div>
-
     </section>
-
   </div>
-  
-
-
-  <script type="text/javascript">
+  <script>
       jQuery(function () {
           SphinxRtdTheme.Navigation.enable(true);
       });
   </script>
-
-  
-  
-    
-  
-  <script type="text/javascript">
+  <script>
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
   
-  <script type="text/javascript" id="searchindexloader"></script>
+  <script id="searchindexloader"></script>
    
 
 
diff --git a/doc/_build/html/searchindex.js b/doc/_build/html/searchindex.js
index aeb01f7..3770a44 100644
--- a/doc/_build/html/searchindex.js
+++ b/doc/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["_autosummary/jass_preprocessing","_autosummary/modules","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_autosummary/jass_preprocessing.rst","_autosummary/modules.rst","index.rst"],objects:{"":{jass_preprocessing:[0,0,0,"-"]},"jass_preprocessing.compute_score":{compute_sample_size:[0,1,1,""],compute_z_score:[0,1,1,""]},"jass_preprocessing.dna_utils":{dna_complement:[0,1,1,""],dna_complement_base:[0,1,1,""]},"jass_preprocessing.map_gwas":{convert_missing_values:[0,1,1,""],gwas_internal_link:[0,1,1,""],map_columns_position:[0,1,1,""],read_gwas:[0,1,1,""],walkfs:[0,1,1,""]},"jass_preprocessing.map_reference":{compute_is_aligned:[0,1,1,""],compute_is_flipped:[0,1,1,""],compute_snp_alignement:[0,1,1,""],map_on_ref_panel:[0,1,1,""],read_reference:[0,1,1,""]},"jass_preprocessing.save_output":{save_output:[0,1,1,""],save_output_by_chromosome:[0,1,1,""]},jass_preprocessing:{compute_score:[0,0,0,"-"],dna_utils:[0,0,0,"-"],map_gwas:[0,0,0,"-"],map_reference:[0,0,0,"-"],save_output:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"90th":2,"boolean":0,"case":0,"default":[0,2],"float":0,"function":0,"return":0,For:2,The:[0,2],accord:0,add:0,addit:[0,2],additional_masked_region:2,align:2,all:[0,2],allel:[0,2],allele1:2,allele2:2,alt:2,analysi:0,anthropometri:2,appli:0,becaus:2,between:2,bool:0,can:2,check:[0,2],chr:2,chromosom:2,clean:2,code:[0,2],column:[0,2],column_dict:0,column_map:0,combin:2,compar:0,complement:0,complet:[0,2],comput:[0,2],compute_is_align:0,compute_is_flip:0,compute_sample_s:0,compute_scor:1,compute_snp_align:0,compute_z_scor:0,condit:2,consortia:2,consortium:2,contain:[0,2],content:1,continu:2,convert:0,convert_missing_valu:0,coordin:[0,2],correct:2,correctli:0,correl:2,correspond:0,csv:2,data:[0,2],datafram:0,describ:2,descriptor:2,detect:0,determin:2,diagnost:2,diagnostic_fold:[0,2],dict:0,dictionari:2,distribut:2,dna:0,dna_compl:0,dna_complement_bas:0,dna_util:1,each:[0,2],effect:2,end:2,equal:0,eventu:0,execut:2,expect:2,explor:0,fals:[0,2],fetch:0,few:0,field:2,file:[0,2],filenam:[0,2],fill:2,filter:[0,2],find:0,findfil:0,flip:0,folder:[0,2],follow:2,fonction:0,format:2,freq:2,frequenc:[0,2],from:2,fullnam:2,genet:2,genom:2,giant:2,giant_height_wood_et_:2,git:2,gitlab:2,goe:2,gw_df:0,gwa:0,gwas_info:2,gwas_internal_link:0,gwas_label:0,gwas_path:0,gwas_reference_panel:0,gwas_tabl:0,gwass:2,hapmapceu:2,have:[0,2],header:2,height:2,helper:0,here:2,heterogen:2,hg19:0,http:2,imp:2,impg_output_fold:0,imput:[0,2],index:[0,2],indic:0,individu:2,infer:2,info:2,inform:0,input:0,input_fold:2,inputbas:0,instanc:[0,2],irrelev:2,is_flip:0,jass_pr:2,launch:2,ldsc:2,ldscore:0,list:[0,2],locat:2,maf:2,main:2,make:0,map:[0,2],map_columns_posit:0,map_gwa:1,map_on_ref_panel:0,map_refer:1,markernam:2,mask:[0,2],mask_mhc:[0,2],merg:0,merge_gwa:0,mgwa:0,mhc:[0,2],minim:2,minimum:[0,2],minimum_maf:[0,2],miss:0,modul:[1,2],more:0,must:[0,2],my_studi:0,name:0,nan:0,nca:2,ncase:2,ncont:2,ncontrol:2,need:2,none:0,normal:2,note:2,nsampl:2,nsnp:2,number:2,odd:2,one:[0,2],option:2,order:2,ouput:2,outcom:2,output:2,output_fold:2,output_folder_1_fil:2,packag:[1,2],page:2,panda:0,panel:[0,2],param:0,paramet:0,pasteur:2,path:[0,2],per:2,percent:2,percent_sample_s:2,percentil:2,perform:2,perss:0,pip3:2,pos:2,posit:0,possibl:2,preprocess:0,present:2,process:2,proport:2,provid:2,pval:2,python:2,qualiti:2,raiss:2,ratio:2,raw:[0,2],read:0,read_gwa:0,read_refer:0,ref:[0,2],ref_panel:0,ref_path:2,refer:[0,2],reference_panel:0,region:[0,2],region_to_mask:0,renam:0,report:2,retain:0,row:0,rs200579949:2,rs541940975:2,rs62635286:2,rs6548219:2,rs75454623:2,rsid:2,same:0,sampl:2,save:2,save_output:1,save_output_by_chromosom:0,score:2,search:2,section:2,select:2,separ:2,seri:0,set:0,should:[0,2],sign1:0,sign:0,size:2,small:2,snp:[0,2],snp_id:2,snpid:2,sourc:0,specif:[0,2],specifi:0,split:2,standard:2,standart:0,start:2,startdir:0,statist:[0,2],step:2,still:0,store:[0,2],str:0,string:[0,2],studi:[0,2],subfold:0,submodul:1,summari:2,sure:0,tab:2,tabl:0,tabular:2,take:2,termin:2,than:0,thank:0,through:0,tool:2,toward:0,trait:[0,2],tsv:2,two:0,txt:2,type:[0,2],uniqu:2,used:2,useful:2,user:2,valu:0,vector:0,walk:0,walkf:0,weird:0,whether:[0,2],which:2,without:2,write:0,zscore:0},titles:["jass_preprocessing package","jass_preprocessing","Welcome to jass_preprocessing\u2019s documentation!"],titleterms:{argument:2,command:2,compute_scor:0,content:0,dna_util:0,document:2,exampl:2,gwa:2,indic:2,inform:2,input:2,instal:2,jass:2,jass_preprocess:[0,1,2],line:2,map_gwa:0,map_refer:0,modul:0,name:2,overview:2,packag:0,preprocess:2,save_output:0,submodul:0,tabl:2,usag:2,welcom:2,what:2}})
\ No newline at end of file
+Search.setIndex({"docnames": ["_autosummary/_autosummary/jass_preprocessing.compute_score", "_autosummary/_autosummary/jass_preprocessing.dna_utils", "_autosummary/_autosummary/jass_preprocessing.map_gwas", "_autosummary/_autosummary/jass_preprocessing.map_reference", "_autosummary/_autosummary/jass_preprocessing.save_output", "_autosummary/jass_preprocessing", "_autosummary/jass_preprocessing.compute_score", "_autosummary/jass_preprocessing.dna_utils", "_autosummary/jass_preprocessing.map_gwas", "_autosummary/jass_preprocessing.map_reference", "_autosummary/jass_preprocessing.save_output", "_autosummary/modules", "index"], "filenames": ["_autosummary/_autosummary/jass_preprocessing.compute_score.rst", "_autosummary/_autosummary/jass_preprocessing.dna_utils.rst", "_autosummary/_autosummary/jass_preprocessing.map_gwas.rst", "_autosummary/_autosummary/jass_preprocessing.map_reference.rst", "_autosummary/_autosummary/jass_preprocessing.save_output.rst", "_autosummary/jass_preprocessing.rst", "_autosummary/jass_preprocessing.compute_score.rst", "_autosummary/jass_preprocessing.dna_utils.rst", "_autosummary/jass_preprocessing.map_gwas.rst", "_autosummary/jass_preprocessing.map_reference.rst", "_autosummary/jass_preprocessing.save_output.rst", "_autosummary/modules.rst", "index.rst"], "titles": ["jass_preprocessing.compute_score", "jass_preprocessing.dna_utils", "jass_preprocessing.map_gwas", "jass_preprocessing.map_reference", "jass_preprocessing.save_output", "jass_preprocessing package", "jass_preprocessing.compute_score", "jass_preprocessing.dna_utils", "jass_preprocessing.map_gwas", "jass_preprocessing.map_reference", "jass_preprocessing.save_output", "jass_preprocessing", "Welcome to jass_preprocessing\u2019s documentation!"], "terms": {"function": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "few": [1, 5, 7], "fonction": [1, 5, 7], "comput": [1, 5, 7, 12], "dna": [1, 5, 7], "complement": [1, 5, 7], "map": [2, 5, 8, 12], "gwa": [2, 5, 8], "A": [2, 5, 8, 12], "set": [2, 5, 8], "find": [2, 5, 8], "file": [2, 5, 8, 12], "subfold": [2, 5, 8], "column": [2, 5, 8, 12], "modul": [3, 9, 11, 12], "compute_sample_s": [5, 11], "mgwa": 5, "diagnostic_fold": [5, 12], "trait": [5, 12], "perss": 5, "0": [5, 12], "7": [5, 12], "sourc": 5, "compute_z_scor": [5, 11], "zscore": 5, "valu": 5, "sign1": 5, "add": 5, "correspond": 5, "datafram": 5, "dna_compl": [5, 11], "input": 5, "dna_complement_bas": [5, 11], "inputbas": 5, "convert_missing_valu": [5, 11], "df": 5, "convert": 5, "all": [5, 12], "miss": 5, "string": [5, 12], "standart": 5, "np": 5, "nan": 5, "paramet": 5, "gwas_tabl": 5, "panda": 5, "data": [5, 12], "return": 5, "equal": 5, "gwas_internal_link": [5, 11], "gwas_path": 5, "walk": 5, "path": [5, 12], "tabl": 5, "str": 5, "folder": [5, 12], "explor": 5, "findfil": 5, "name": 5, "one": [5, 12], "filenam": [5, 12], "contain": [5, 12], "complet": [5, 12], "map_columns_posit": [5, 11], "column_dict": 5, "posit": 5, "each": [5, 12], "specif": [5, 12], "gwas_label": 5, "pd": 5, "row": 5, "inform": 5, "seri": 5, "index": [5, 12], "read_gwa": [5, 11], "column_map": 5, "imputation_treshold": 5, "none": [5, 12], "read": 5, "raw": [5, 12], "fetch": 5, "thank": 5, "store": [5, 12], "renam": 5, "accord": 5, "walkf": [5, 11], "startdir": 5, "go": 5, "through": 5, "specifi": 5, "compute_is_align": [5, 11], "check": [5, 12], "refer": [5, 12], "panel": [5, 12], "have": [5, 12], "same": 5, "allel": [5, 12], "boolean": 5, "vector": 5, "The": [5, 12], "should": [5, 12], "is_flip": 5, "we": 5, "still": 5, "two": 5, "eventu": 5, "detect": 5, "weird": 5, "case": 5, "more": 5, "than": 5, "instanc": [5, 12], "compute_is_flip": [5, 11], "studi": [5, 12], "merg": 5, "reference_panel": 5, "type": [5, 12], "compute_snp_align": [5, 11], "indic": 5, "code": [5, 12], "i": 5, "flip": 5, "compar": 5, "If": [5, 12], "sign": 5, "statist": [5, 12], "must": [5, 12], "param": 5, "map_on_ref_panel": [5, 11], "gw_df": 5, "ref_panel": 5, "index_typ": [5, 12], "r": 5, "number": [5, 12], "make": 5, "sure": 5, "snp": [5, 12], "ar": [5, 12], "merge_gwa": 5, "read_refer": [5, 11], "gwas_reference_panel": 5, "mask_mhc": [5, 12], "fals": [5, 12], "minimum_maf": [5, 12], "region_to_mask": 5, "helper": 5, "correctli": 5, "toward": 5, "whether": [5, 12], "mhc": [5, 12], "region": [5, 12], "mask": [5, 12], "default": [5, 12], "bool": 5, "filter": [5, 12], "minimum": [5, 12], "frequenc": [5, 12], "hg19": 5, "coordin": [5, 12], "retain": 5, "float": 5, "list": [5, 12], "addit": [5, 12], "dict": 5, "type_of_index": 5, "appli": 5, "ref": [5, 12], "impg_output_fold": 5, "my_studi": 5, "write": 5, "preprocess": 5, "ldscore": 5, "analysi": 5, "save_output_by_chromosom": [5, 11], "imput": [5, 12], "packag": [11, 12], "submodul": 11, "compute_scor": [11, 12], "dna_util": [11, 12], "map_gwa": [11, 12], "map_refer": [11, 12], "save_output": [11, 12], "content": 11, "tool": 12, "take": 12, "heterogen": 12, "summari": 12, "perform": 12, "standard": 12, "qualiti": 12, "output": 12, "can": 12, "us": 12, "python": 12, "raiss": 12, "qc": 12, "step": 12, "goe": 12, "follow": 12, "from": 12, "select": 12, "align": 12, "infer": 12, "sampl": 12, "present": 12, "small": 12, "size": 12, "normal": 12, "effect": 12, "z": 12, "score": 12, "save": 12, "chromosom": 12, "rsid": 12, "po": 12, "a0": 12, "a1": 12, "rs6548219": 12, "30762": 12, "g": 12, "1": 12, "133": 12, "option": 12, "format": 12, "need": 12, "ld": 12, "chrom": 12, "p": 12, "rs4075116": 12, "1003629": 12, "c": 12, "t": 12, "3": 12, "76": 12, "In": 12, "termin": 12, "execut": 12, "pip3": 12, "git": 12, "http": 12, "gitlab": 12, "pasteur": 12, "fr": 12, "genet": 12, "jass_pr": 12, "process": 12, "1000": 12, "genom": 12, "user": 12, "expect": 12, "provid": 12, "tsv": 12, "order": 12, "without": 12, "header": 12, "chr": 12, "snp_id": 12, "maf": 12, "alt": 12, "rs62635286": 12, "0970447": 12, "13116": 12, "rs63125786": 12, "15116": 12, "rs5686": 12, "1970447": 12, "17116": 12, "rs892586": 12, "7670447": 12, "23116": 12, "minim": 12, "condit": 12, "tab": 12, "separ": 12, "descriptor": 12, "csv": 12, "describ": 12, "per": 12, "field": 12, "categori": 12, "info": 12, "consortium": 12, "outcom": 12, "fullnam": 12, "nsampl": 12, "ncase": 12, "ncontrol": 12, "nsnp": 12, "snpid": 12, "a2": 12, "freq": 12, "pval": 12, "n": 12, "OR": 12, "se": 12, "imp": 12, "nca": 12, "ncont": 12, "note": 12, "combin": 12, "uniqu": 12, "becaus": 12, "an": 12, "clean": 12, "here": 12, "irrelev": 12, "odd": 12, "ratio": 12, "continu": 12, "fill": 12, "na": 12, "some": 12, "like": 12, "imputation_qu": 12, "thei": 12, "consortia": 12, "giant_height_wood_et_": 12, "txt": 12, "giant": 12, "height": 12, "anthropometri": 12, "253288": 12, "2550858": 12, "markernam": 12, "allele1": 12, "allele2": 12, "hapmapceu": 12, "b": 12, "imputationinfo": 12, "It": 12, "possibl": 12, "launch": 12, "section": 12, "h": 12, "gwas_info": 12, "ref_path": 12, "input_fold": 12, "diagnost": 12, "output_fold": 12, "output_folder_1_fil": 12, "percent": 12, "percent_sample_s": 12, "additional_masked_region": 12, "treshold": 12, "imputation_quality_treshold": 12, "individu": 12, "gwass": 12, "correct": 12, "locat": 12, "determin": 12, "which": 12, "end": 12, "report": 12, "distribut": 12, "main": 12, "ouput": 12, "split": 12, "tabular": 12, "ldsc": 12, "correl": 12, "proport": 12, "between": 12, "90th": 12, "percentil": 12, "01": 12, "dictionari": 12, "For": 12, "6": 12, "start": 12, "50000000": 12, "70000000": 12, "100000000": 12, "120000000": 12, "search": 12, "page": 12}, "objects": {"": [[12, 0, 0, "-", "jass_preprocessing"]], "jass_preprocessing": [[6, 0, 0, "-", "compute_score"], [7, 0, 0, "-", "dna_utils"], [8, 0, 0, "-", "map_gwas"], [9, 0, 0, "-", "map_reference"], [10, 0, 0, "-", "save_output"]], "jass_preprocessing.compute_score": [[5, 1, 1, "", "compute_sample_size"], [5, 1, 1, "", "compute_z_score"]], "jass_preprocessing.dna_utils": [[5, 1, 1, "", "dna_complement"], [5, 1, 1, "", "dna_complement_base"]], "jass_preprocessing.map_gwas": [[5, 1, 1, "", "convert_missing_values"], [5, 1, 1, "", "gwas_internal_link"], [5, 1, 1, "", "map_columns_position"], [5, 1, 1, "", "read_gwas"], [5, 1, 1, "", "walkfs"]], "jass_preprocessing.map_reference": [[5, 1, 1, "", "compute_is_aligned"], [5, 1, 1, "", "compute_is_flipped"], [5, 1, 1, "", "compute_snp_alignement"], [5, 1, 1, "", "map_on_ref_panel"], [5, 1, 1, "", "read_reference"]], "jass_preprocessing.save_output": [[5, 1, 1, "", "save_output"], [5, 1, 1, "", "save_output_by_chromosome"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"jass_preprocess": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "compute_scor": [0, 5, 6], "dna_util": [1, 5, 7], "map_gwa": [2, 5, 8], "map_refer": [3, 5, 9], "save_output": [4, 5, 10], "packag": 5, "submodul": 5, "modul": 5, "content": [5, 12], "welcom": 12, "": 12, "document": 12, "what": 12, "i": 12, "jass": 12, "preprocess": 12, "overview": 12, "instal": 12, "input": 12, "command": 12, "line": 12, "usag": 12, "exampl": 12, "name": 12, "argument": 12, "indic": 12, "tabl": 12, "gwa": 12, "inform": 12}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"jass_preprocessing.compute_score": [[0, "module-jass_preprocessing.compute_score"], [6, "module-jass_preprocessing.compute_score"]], "jass_preprocessing.dna_utils": [[1, "module-jass_preprocessing.dna_utils"], [7, "module-jass_preprocessing.dna_utils"]], "jass_preprocessing.map_gwas": [[2, "module-jass_preprocessing.map_gwas"], [8, "module-jass_preprocessing.map_gwas"]], "jass_preprocessing.map_reference": [[3, "module-jass_preprocessing.map_reference"], [9, "module-jass_preprocessing.map_reference"]], "jass_preprocessing.save_output": [[4, "module-jass_preprocessing.save_output"], [10, "module-jass_preprocessing.save_output"]], "jass_preprocessing package": [[5, "jass-preprocessing-package"]], "Submodules": [[5, "submodules"]], "jass_preprocessing.compute_score module": [[5, "module-jass_preprocessing.compute_score"]], "jass_preprocessing.dna_utils module": [[5, "module-jass_preprocessing.dna_utils"]], "jass_preprocessing.map_gwas module": [[5, "module-jass_preprocessing.map_gwas"]], "jass_preprocessing.map_reference module": [[5, "module-jass_preprocessing.map_reference"]], "jass_preprocessing.save_output module": [[5, "module-jass_preprocessing.save_output"]], "Module contents": [[5, "module-jass_preprocessing"]], "jass_preprocessing": [[11, "jass-preprocessing"]], "Welcome to jass_preprocessing\u2019s documentation!": [[12, "welcome-to-jass-preprocessing-s-documentation"]], "Contents:": [[12, null]], "What is jass preprocessing ?": [[12, "what-is-jass-preprocessing"]], "Overview": [[12, "overview"]], "Installation": [[12, "installation"]], "Input": [[12, "input"]], "GWAS information table": [[12, "id1"]], "Command line usage example:": [[12, "command-line-usage-example"]], "Named Arguments": [[12, "named-arguments"]], "Indices and tables": [[12, "indices-and-tables"]]}, "indexentries": {"jass_preprocessing": [[12, "module-jass_preprocessing"]], "module": [[12, "module-jass_preprocessing"]]}})
\ No newline at end of file
diff --git a/jass_preprocessing/__main__.py b/jass_preprocessing/__main__.py
index b089d3c..30d6985 100644
--- a/jass_preprocessing/__main__.py
+++ b/jass_preprocessing/__main__.py
@@ -47,30 +47,26 @@ def launch_preprocessing(args):
         start = time.time()
         print(args.input_folder)
         GWAS_link = jp.map_gwas.walkfs(args.input_folder, gwas_filename)[2]
-        print(GWAS_link)
+        print('GWAS file found at: {}'.format(GWAS_link))
         mapgw = jp.map_gwas.map_columns_position(GWAS_link, gwas_map.loc[tag])
-        print(mapgw)
-        print(args.imputation_quality_treshold)
 
         if args.imputation_quality_treshold is not 'None':
             gw_df = jp.map_gwas.read_gwas(GWAS_link, mapgw, imputation_treshold=eval(args.imputation_quality_treshold))
         else:
             gw_df = jp.map_gwas.read_gwas(GWAS_link, mapgw)
 
+        print("#SNPs in GWAS summary statistic file: {}".format(gw_df.shape[0]))
         ref = jp.map_reference.read_reference(args.ref_path, bool(args.mask_MHC), float(args.minimum_MAF), region_to_mask=eval(args.additional_masked_region))
-        print(ref.shape)
-        print(ref.head())
-        print(gw_df.shape)
-        print(gw_df.head())
         mgwas = jp.map_reference.map_on_ref_panel(gw_df, ref, gwas_map.loc[tag, "index_type"])
-        print(mgwas.shape)
+
+        print("#SNPs mapped to reference panel: {}".format(mgwas.shape[0]))
         mgwas = jp.map_reference.compute_snp_alignement(mgwas)
         mgwas = jp.compute_score.compute_z_score(mgwas)
         mgwas = jp.compute_score.compute_sample_size(mgwas, args.diagnostic_folder, tag, args.percent_sample_size)
         end = time.time()
-
+        
+        print("#SNPs remaining after sample size filter: {}".format(mgwas.shape[0]))
         print("Preprocessing of {0} in {1}s".format(tag, end-start))
-        print(mgwas.head())
         jp.save_output.save_output_by_chromosome(mgwas, args.output_folder, tag)
 
         if(args.output_folder_1_file):
-- 
GitLab