;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::;;;;::::;::::;;;::;;;:::::::::::::::::;;;::::::;::::::::::::::::;:::::::::::::::::::::::;:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::;;;;;;::;;;:;;;;;;::::::::::;;:::;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;;::::::;;;;;;::;;::::::;;::::::::::;;:::;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;:::;;;;;:::::::;;;::::::::::::::::::;::::;;;;::;;;:;:::::::::::::::::::::::::::::::::::::::,::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;:::;;;;;::::::::;;::::;;;:;;:::::::::::::;::;:::;:::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;:::;::::;;;;::::;;::::;;:::::;;::::::::::;::;:::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;::;;::::;;;;:::::::::::::::::::::::::::::;::;:::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;:;;;::;;;;;;::::;:::::::;;::;;;;::::::::;::::;;;;::;;;::::::;:::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;:;;:::;;;:;::;;;:::;:;:;ll;ll;;l1l:;;:;:::::::;:::::::::::;;::;;:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;:::;;::;;;;:,:;;;;;lll;;;;:ll;l;,:::;;::;;::::::::::;::::;:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;:::;;;;:,:;;::;;;;1|=/!x+!!!==/!/ll;:::;::;::::::::::;::;::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;::;;;::;;:;;ll;;;1|>]><[{zzzz>][(+!1/;,,;;;:::::::::::;;;;::::::::;::::::::::::::::,::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;::;;;;;;;;;l//!!=<[>[omDOssmOD0{<)((!!!1;::;:::::::::::::::::::::::::;:::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:::;;;;;:;ll/|=+(<{s0sbJYZ2T4Vszss0Vp<<<=!/1;::;::::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;1!!|(}{{pp075ZZ3LmsDOJT7Dbb722O*})/lll;:;:::::::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;ll(][>[zs0OV55YFF43T2375$$&AXXZZPTVDp<==!;;;:::;::::::::::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;;;;;;;::;;;;;;;l//11=<(pp70b03PZXH#PXG9B8#GR#$AYTX52FF0>(<+!;l;:;;:,;::;;:::::::::::::,,:::;::::::::::::::;::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;:::l;;:;l111/!+!!+>mTVsO7YHA$G#ARGN9&%%9RR$$%HPXP3Z%m=x>[>|l;;;;;:::,:;:::::::::::::::::::::::::,:::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::1;;;/|!=)([][z{<>{bPTDTX#G&&9%&&#9&8E8%&GG$%N##RZT5AV{><[()=!1,:,:;;:,:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:lll/=x>}*ODJVOOVVLDVP25$898*EEE@8G899N8N889GHG&G##X3Z#Tpo{>{[<x/:;;::::;::;:::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;1|=[z7423TT270TPSFPA#GN@@@BNM*8%&BEN88BBE8MEG$KAN8RPYXJs})>]<)(+l;lll;:;;;;::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;;:;ll;l/>*7bmO7J4O35YXP$G$#%98*N8899%&&EEEN9N98BN8BME#A#8%#SK$5J0z[><){x/l;;;l::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l;;ll;;/>ss*o*0L743XPAGRNNB@*EEBENGRAKSH%&9%G88989%9@M*NH$G$&&G$HP40p{++(x1;l:;;:::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;:l|]o*zp7L2FLLYS#899W*MW@B9R$HPZFY3FXAHXKR%%GGG9B*BNG#G9#G#&&RZ570b]><=/1ll;;:::::::::,::::::::,:::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::,=}}{opVTZXS$9GNE88BW*EN9GAZ2T4T333TFKX55ZSA#AH$%8B*NE9&9#%%&%#RFVpm{>(!!;1l::::::::,,,:::::::::::::::::,::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;:l[[]oz0LFAR9%E**B@&*MNGRRSF47O0DVVLTYF55223FSYYSH$%BENNE8&9E8EG#$Z7pp>x|!/;l;;:::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:l;::+{]o0VJ5P&EB&NMWMM&M@#SPY340mbbbbD445FF3JLVJ355ZPZK#%9EB8%%%GGR9%AH2o(>=l1;;;;;::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;|[]{DV2YPA%8B&BWWW&RW&S3J4J34LOOL4T4LmmO77OODV23T23ZX$%9BE9B%RHAGGGRS2z>(!/;:;;;::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;/<[{7JOLSAA&N88@WWEZS*AF40mbOJL0OOb*p*ppos0mmbODTJ45333S##G&9N&#$RRR#KP2Do+|1:;;::,::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;1=((p7p4%GG#$G9%*WEGPXHXJLOspzbzpOp*sozz{oz*pspmmL7VLVJ4TZR$A#&G#&%$A$HX3VV0(1l;:;;::::::,,,::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;l/=)]*b3%9GR#R$GGEE9HZZPYJOmbz**mbs*po}}[[{}{z{bm00sbpmDDOLYH$#N*&%%RA$R$XTbbm}=l:;;:::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;l|=)ss2$G&G##%%A$B%%KPY5JVboszop*ozzo][[][][{{{mso**b*obs0bDYK$R8*N#GRRR#HS4mop<!:::::::::::::::::::::::::::::;::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;ll+[pLP$%8&GRRHS#RR%SS347m*o{z*o}{}{][[[]}]>]{}oo}}oob*p{sbs02HR%NB8R$A$$R$X2b{>(/l:::;:::::::::::::::,::::,:::,:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;l1+}7FA&&9&%G$ZARSA$XZ3V*spooo{[[}}[[[]]>>]>]{zo]}}]>p}[o}ombm4H#NEBE#RAKAAH50zo]=l:;:::::::::::::::;::::::::::::::::
;;;;;;;;;;;:;;;;;;;;;;;;;;;;:;;;ll/=}3$9&&88&GHZXAARRP3VObppso[[}}[[>]]<>><[>>]{>]]{>)<p<]{]zbp0YA8WBBN#KXXSFZJpoz(/1,;;::::::::::::::::::::::::::::::
;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;;;;1=bA%%G&&&&#XPX$%G$Z4Osp**z[}}{}}]]>><>>>[>>]](>]>]>(}[)>[]zsz7$$&ENNNAZZXYP50z}{)!l;;::::::::::::::::::::::::::::::
;;;;;;;;;;;::;;;;;;;;;;;;;;;::;;lll=7#GG####GAPSKG%%AYDbb*bp[}o{]]]<]><<<<]>((][)((<[]x]{<(<([zop5XHG%RG9#HXFYZ2b{>+=l;;::::::::::::::::::::::::::::::
;;;;;;;;;;;;:;;;;;;;;;;;;;;;;::::;lx3R$R$RG%#HK$$GGAX2Ospspz{{{}]}]><>((<)><<(]}>())x[(x}<)>]<){zD2RRA9G#GRK2234D[>+==l:::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;:<SRHRR#&&&AA$RG#XYLO*pszz{}}]}}]>(<)(<(>>]>>})((+)x(<][x<[>][{*7Z#G#&GH$AKFF2Ls]|!1;:::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;ll[$$HGR%9G&HAR%#AP3L0pps*zo}][}>]]]<<<<<><<<)[)x)(xx(x>}><<>]>][s7Y#G#&$AHRKF5L0[|l;;;::::::::::::::::::::::::::::::
;;;;;;;;;;;::;;;;;;;;;;;;;;;::;;;ll}K$R&G&#&%K#%8HSZ4Lb*p0pzo{oz]]>><>]]>>><()x><)))))xxx>x(<<<>([}OLPH$%KR$$XZ34O{+l;;,::::::::,:::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:1]Z%&R&%%9&RGG&#AY3Dppmb*zzzo}[]]><(()(((())+)>))((())+)<+x<<<<]}p73KR9GRKSXXTV4sx/;l;::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;:::+Y9G#9888899%&GAZ4Dbmb*zooz{[[]>><<<<(((()x=+)+xx==+))=>x))))]<]}mVYR%HARHXYTDVV<!/l;;:::;:::::::::::::,:::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;:;:148%R8E89N8NEERHZLDbbsp*z{{}[}[>><<<()(<<()+=)++=!/|+||)x=)())(>[om2&&AKXH$PJsb4[//l;;:::;::::::::::::::::::;::::::
;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;!4BN%N88EBNE@BRP3Lbspspzz{}}[[[]>><()(<((((++)x++x+)()x)+|=)()((]>p4N9RHYZKALzmD[=1;;;;;::::::::;;::::::::::;::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:/2B&&8%EBBM@*&AF3Vpms*p{o{}}[]]>>>><<(<()))=|xx+xx+++)|xx(xx)(((>>}mXW&#SPXGZ}*z]+l;;::::::::::::::::;:::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::JM89N9BBEWWERX55Osmpppzo}}[]>>><<(((<<>><(x=|==|=|||=!|/+))x((((<>*3@E9HXZHA*}}o=l;;:::::::::::::::::::,::::::::::
;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;:::;:JW&9*E@MMWWNGZ5Vmmbpspzo}}[[>>>>><(<<<<<xxxx=x==x+++++|=!++(x)(<<>}7*E&GKS$Xb<+{+1:;;::::::::::::::,::::::;:::::::
;;;;;;;;;;;;;;;:;;;;::::;;::::;;;;,;pMGN@8*MWWW*#YJObmpppp*o}}[[[>>>><(<(<()xx++x+=++=|+x=|=+x))))<(>>]b%*E%$AHSD)!]x;;::;::::::::::,,::::::::::::::::
;;;;;;;:;;;:::;;;;;;::::;;::::;;;:;:>99E&9MWM@@NH370sbsssp*z}[[}[]>><<<((())x++x+)=!=)+|x+|==+x)))<<>>>zS@EGH#%Pm+l(!;;:::::::::::::::::::::::::::::::
;;;;;;;:;;;:::;;;;;;;:::;;::::;;::;,=X%9GNM@M@@GZJOmsspsspp*}[}}]><(((<((<<)x+++=x+|++==x+++xx))()((<<>}P*8$XHGXs<!(1::;::::::;:::::::::::::::::::::::
;;;;;;;;;;;;;;;:;;;;;;;;;;::::;;:::,l7SARBW@WWEA270mbsspsspo}}[>>>(((()))()+=++=x+==(+=+x++++x)()))(<>]}2AG$XZRHs]+=;;:;;:::::;:::::::::::::::::::::::
;;;;;;;;;;;;;;;:;;;;;;;;::;;;;::l,;;:s$$%@@B@W%FLObsssbssspoo{}[]<<<())))x++||======)+====++x+x))))<]>]{2XSKSXRK*(x/;;:;:::,::::::::::::::::::::::::::
;;;;;;;;;;;:::;;;;;;;;;;::;;;;:::;:,;{HA$@MM*EK2Dmspppsssp*zo}}z{]]](xx+x++=||||!=+=+++==|===++x)))(]<>o3$ZA#AAX]1|/;:;;:;:,::::::::::::::::::::::::::
;;;;;;;;;;;:::;;;;;;;;;;::;;;;::::/!;>GG#EB*B#PJmsspppssp*zo{[{pssspo](x+==|!|=!|!|++x+||!=+++++)()<>>]z2#XR#HSZ>111;;;:::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;:;;;;;;;;::;;;;::,)*s}[H%R&9NNSYLbpspp*psp**zoop0J3522Vsz<x==|!||=|=)=x+||!|===++x)(>]][z5XX$HAKT+1;;:::;:,::::::::::::::::::::::::::::
;;:;::;;;;;;;;;;:;;;;;:;;;:;:;:,|0XTzs2&K%&9#SY7sp**pppp*z*s*pmmLFAX34OOz])=|==|=|=+++=|==!/||+=+(<>[>}sTAH#$A%V1;:;;;:::::::::::::,::::::::::::::::::
;;;;;::;;;;;;;;;:;;;;;;;;;:;:;::>Z4L7}*YSR%%GR20s**zz****ppssppsbs0DOmpzo[<)+=====+++==+)(<}}}>](((>]]ob5$&9%RNb;:::;;;;::::::::::::::::::::::::::::::
;;;;;::;;;;;;;;;;;;;;;;:;;:::;:;*Tmsms[z4X$G&#Jbp*****pp*pp*zooz}]]{zzz}[]]<x++x==++xx+x)<}p7SFb(x([[]obF$98&9H];::::::::::::::::::;;:::::::::::::::::
;;;;;;;;;;;;;;;;;;:;;;;:;:;::;,1OOppzO0]pFPR9S7p**zz***p**p*o{}[]{[}oz*z}[]>(xx)x+xxx)xx((>{DTLmb[<]}[}p5RE8*&V+;;:::::,:::::::::::;:::::::::::,::::::
;;;;;;;;;;;;;;;;;;::;;;:;:;;::,/D0pbp*Dmz4P#%50*z*zz**z*s*oooo{[][]}z**pzo}[>(()))))xx(((<><[b7bo]>]}]}m2#E9*P>;::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;::;;;;;;:;:::/DssbszpOpOA%A4s*z*zzpp*pppp*z{><)+x)<}z*zzoo}>><(()()(>>>}>](x({*{}}{[]bTGE9M41;::;::::;::::::::,:::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;:::;;:;:;;::lbssp**oompS#ZJp*zzzz*p*p**p*o[><()x==([{zzzz{]]><<)<>][[{{]>==x<[}{}{><pJ$N9Wp::::;::::;::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;::;;:;:::;::{Op*pp*p7*3K3Vpzzz*zzppppzzz}]<)==!!=x]}ozz*o[]><]<>[][{zzz]<)xx<>[[o[(oTR&*8),:;:::;;;:::::::::::::::::;:::::::::::::
;;;;;;;;;;;;;;::;;;;;:::;;::;;:,)LpzpbOHYpJYFOzzzzzozpmmppo*ppsbp}>+=([[{ozzo{]]>>[{}{o{o{}}{[<(<(][{>(}5KGWm,::;:::::::::::;;::::::::::::::::::::::::
;;;;;;;;;;;;;;;:;;;;;:::;;::;;::|DpzssO3TmJZTszozozooz*p7TZKG8%SWWWBZo>z{{ozo}]<>]}o}{{>><(+)}]>(>>>}]){YA92/,::;:::::::::::;;::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;:;::;;::;0p}*pmOO0TZ4zzozozooo*ssbDmozps$8EH7%*[o}oo{>(+)>[}{}}}>x=/1=+<><<>]>)oKXR>;;:;::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;::;;;;;:::;;;::;;;;:::zb}z*szoz42Joozzzzoo}opo{**])x(*bm<]ZS<}}}{{(x=)(>[o{o{obo>|1|)[]>[]<)sZSJ=x(l,::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;:::;;;::::;;;::;;;::;:]O]**z{ozJJ7o{zozzo{}{o{zzz}(x)+)=+=+z}>[[[})=!)x<}}{VJG@W*%O)=([]]]<)7$5(xsbx,::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;:::;;::::;;;;::;;;::;,)O{{m*o{pODboozozz{{}{{oo[zbbspo{z*{}<}>[[[])!1)x)<]0Y{4W*BR9A<x>[]]><LB7{T4Y<,::::::::::::::;:::::::::::::::::::::::
;;;;;;;;;;;;:;;;::;;;;;;;;;;;::;:!mO}bp*z*sbzoozzoz{}}}]}{[]{**zp*zo{<<(]][{])|!)xx<}<}>b$$RzJNH{<[[<(>2A[z0OY(-::::::::::::::;:::::::::::::::::::::::
;;;;;;;;;;;;;;;;:;;;;;;:;;;;;::;::{0b{zLszpp*ooz*ozo{}}><>[>(<>>><]><)x(]]{z>(+x(+<+>]]](<{<<([24o}]<)o&b![p4V1,::::::::::::::;;::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:,xb*{}0D**b*ooo**zo{{}]>>>]><>]]]](xx)>]>}{](++(xx=x]{ps[x/1|)>}z>(<xpKx(<s5{,::::::::::::::::::::::::::::::;;:::::::
;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;::/**}z}pbps*zzoz*zo{}}[]<(><<<<><<(((<]>][}])|=xx)=|x(>[zmp>)<)(>)()+OO(x]Om=.:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;l,,(p{{{zOpp*z*ozzzo}][]]<)((<<<<())(<<>>[}{>x==xxx=!+xx)(<op}(x)<(<)x4*>xz0<-::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::l*oooosbppp*zozoo{[]>><(((()x))))<>][][oo>x==)))x++)x)(x+x()=x)))((Vo<>s{.,::::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;,,)Oo[[zbpbps*zzzzo}]<<<<(())x+x))(>[}][o{>x!|)xxx=|x)))))<<+)x)))<]m[)z[;,,,:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:;;;>70mODpp*s*p**zz}[>]<(()xx))()x(]}}[{o}])1=()x)+=+x()++>]+xx()))]o)][:-;:,:::::::::::::::::::::::::;:::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;:;::::=>](ps*bpbspp*z{}]<()))x+xx)xx<[{{{oo}]x/+()))x=!/!|)+=++)))x)(]<x[,,:;:;:::::::::::::::::::::::::::::::::::::::
;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;::;:;:.,.-)O*pbmbbs*poo[>>()x)x+x((>[{z**{}}<+!=(((x=|!//!|||=+x)(()<(=}/.:;:,;::::::::,::::::::::::::::::::::::::::::
;;;;;;;:;;;:;;::;::;;;;;;:;;;;;:;::;;;::;.!0p*pmmbbs*zo{[]>())())(<>obsp**[](+/|x>>)x+|/!|!|||=+xx((<=])-:;:::::;:::::;;::::::::::::::::::::::::::::::
;;;;:;;;;::;;;;;;:;;:::::,,,........-.....l0spbbmmbbp**z{[]<((((()(}pbpo*oo]xxl=({]()++|||!|===+)))>)]<;,::::::::,::::::::::::::::::::::::::::::::::::
;;;;;;;:;:;;,;;.,...,:::l1/|x(<>>][><(x=|!|b0ssbmmmbsss*z{}]><<><<>{bso[{{[>)=1|x[{>((+||!/!==++x(>]<(|.:;:,::::::::::::::::::::::::::::::::::::::::::
::;;;:;;;::.,::1=<}*0V2YK$%8*MWWWWWWW@E9&8Rbsbbbmmmmbss**o}]]><>>>]pbo}}>zo<(x=x+(}]((x+|!/!||+x)<]<(x,:;;::;:::::::::;;::::::::::::::::::::::::::::::
l;;;l;;:,.l(z7YAE@WWWM@M*@@@@@*@*BE9%G%9@WWbsmbmmbmmmssp**o}}[>]]}o0bz*}[{o]>xx+)+)]]()+==|||=xx(([():,::::::::::::::::::::::::::::::::::::::::;::::::
:;;;,.,:+bP@WMW*E89&8BB*@MM@@@@*BB8GR%EMWWWDs0mmmmb0mbsbpppzz{}{}ozbmp*o[{o]>(()<))<]>()x++++xx)(}]<1:::::::::::::::::::::::::::::::::::::::::::::::::
;:,,1<bJ&MNE***BNNNE*@WWWWW@@@@*E&GG8@WWWWWJpmm0mmbm0bbmssp*z{}{zo{*Dbp2Pmo{<])x<(>>]}]>())x)))<]o}!.:,;:::::::::;:::;::;:::::::::::::::::::::::::::::
..!pXNBN%9N*@W@BENB@MWWWWWMM@@BN&G%N@WWWWWWJsmmbbbbmmbbbmbs*o}[{{{o}07J%8#0*z{[LLz(<>{*[]>(((((>z<,.,::;::;:;;:,:;:::;;;;::::::::::::;:::::::;::::;;;;
[mZ9%G#&8E@MWM*EEE@WWWWWM@*@*E&%G&N@WWWWWBG3p00mbmmmmmmbbss*o}[}}}ooobDmb7VO0m2SO(=(>]{o}}>((>][p:.:::;:::::::::::::::::::::::::::::::::::::::::::::::
N&RRR%&9B@WWW@BBB*WWWWW@*BBEN8&99N@MWWWM&#GPmm00bmmmmmbbbspo{{{[[{o{}o*pzpO0z{zo)=+x(<[*o}[[]]}o>,,;::;::::::::::::::::::::::::::::::::::::::::::::;;:
$##G%&9E@MWWM*BB*WWWWWM@*BEN8888EBMWW@N%%REA0O0mmbbbmspsbspzooo}]}{oooz*z}>))()xx))x)(<[o**z{{}*1.:;;:;:;;:::::::::::::::::::::::::::::::::::::::::;;:
G%GG998*MWWWM**@WWWWWM@@*BENNNNE*MWMB9%G%GW5mD0mmbsbbspppppz}[o{}{oo{oo}[}<(((+)()xx)((>{**zzoz].,;,;:::;:::::::::::::::::::::::::::::::::::::::::::::
%&&9NNBMWWWWM@@MWWWWW@**BBBENNEBBWMN&998&&W{DVOO0mbsssp*pp**o{{}{ozooo{[][]{>))<(x)(())<[{zzo}pl.:::;:::::::::::::::::::::::::::::::::::;::::::;;;::::
%&&9N*MWWWWWM@MWWWWW@@*BBEENNEE*@@N98N89%W5)DJD0mmbbssp****p*pzooz*zzz{{}]]o[(<<<((<(()<][{o}z>-:::;::;,::::::::::::::::::::::::::::::::::::::::;;::::
%%&98E@WWWWWMMWWWWW@@@@*@BEEE**@@E88N8999Ws)LVDD00mbsbs*zz*p**zps**zo{][(x(><x)<>>(((<(<]>[}o*1,;::;::;:::::::::::::::::::::::::::::::::::::::::::::::
%%%8NE*WWWWWWWWWWWM@@@*@@**BB*@MBNNNNNN8NW)]LOJ7DO0bsbbpszzbO0zz*o*z}}}[])((x+x(<>]]((<<>]{o*).::;::::,;:;;;::::::::::::::::::::::::::::::;;;;::::;;;;
%&98NB@MWWWWWMMMWWWMM@@@**B***MMBNN8NEN9WZ!zV0V400O0mmbbbp*sDT34TLJLJVLVVm}[oo}><<[[]<((>z{{<.::::;::;,;::::::::::::::::::;:::::::::::;;::::;;:::;;;;;
%&&9NB@WWWWWWMWWWMM@@*@@*BEBBB@*NNENEENNWOlpV00JVOD0m0mmmsp*pbOOL5TJ#MW@9AY3&*%YDp[]}<)<[*[[Jx.::,;::,l,:::::::::::::::::::::::::::::::;::::;;::;;;;;;
%&&9EB*WWWWWWWWWWWM@@@@@@B***@@BEEBENNEEWz!bDODJ4DDOODOmOmbpzz*smbmo>{72YZFGBBPOT5Lbo<<]o}>0M%>.;:;:;:,;::::::::::::::::::::::::::::::::::::;;::;;;;;;
&%98NB@@MWWWWWWWWWMM@@@@M@@*@@BEEEENEBB*W>|0DbDV2J7O0OO0O0bp**zsJL7Os>x>><<[[>x]]]oo[<<{o]oWW8G>.:;::;::::::::::::::::::::::::::::::::::::::::::;;;::;
%%&8NB@MMWWWWWWWWWMM@@@*@@*B@@EEEEEEBBB**(=ODm77T2LDO0O0mbs*ps*ppJ5T7p[>(()+)x{pp]>}><oo}]%WWE%S).:;;;;:::::::::::::::::::::::::::::::::::::::::;;;::;
G%%9NB*WWWWWWWWWWWMM@@@@*@@*M@EBBBBBBBE@G)+mO0D7L24V70000bpzzsssppD22Dp{{}{>>osmo<>{]{*{]LWWWW&A5+.:::;:::::::::::::::::::::::::::::;;;:::::::::;;;;;;
%&&&NE*WWWWWWWWWWWMMM@@M@MM@@BEEBBEBBBBWK+=b7007VT2J7O00mbspz*sssspmJ527bs*s00*><><<[*o[0GWWWW*$HT=.;:,;::::::::;::::::;::::::;;;:::;;;;;::;;;;:;;;;;;
%%&98E*MWWWWWWWWWWM@@@@M@M@@BEBBBBEB**BWZ)!zDDDO7J32J700OmbszopssbbbsO4FPYT7*[>[[<>(}o>D#KRWWWW&HPT+.:::::::::::;::::::;::;;;;;;;;;:;;;;;;;;;;;::;;;;;
&%&98E*MWWWWWWWWWMMM@@@MM@M*BBB*EBB*B*BWP+!]LmOD7V433JOOOO0bp**ppmsm000O0mz}[[{{]<<}o(08$HH%WWWE#PFT<.:;;;;;;;;::::;::;;::::::::;;;;;;:::;;;;;;;;;;;;;
%%%98B@MWWWWWWWWWWMMM@MM@MM@B*****B**@BWX+=xO0007DLT32LO00mpp*ozzssbp*o{>>>][]><<>[o]sKG$HH$8MWW9AY23[,,;;:;;::;:;;::;;:::::::::;;;;;;::;;;;;;;;;;;;;;
GG%9NB@MWWWWWWWWWWMMMMMMMWM*BB******@@BWS)+/zD0ODO7JT2TLDDOmbpo{{oz*zo[><))(<<()>>{}*PSH$HAH%WWW*%X325].,;;:;::;;::;;;::;;;;;;;;;;;;;;::;;:::;;;;;;;;;
GG%&8B*@MWWWWWWWWWMM@M@@MW@BB*@@B*****BWH(=!<O0DDOOVJ4T2JDmbp**z{}}ozo}{z}>))<<<>[*{2SXK$HHAGWWWW9$Z3T4{1;,.,;;;;;;;::;;;;;;;;;;;;;;;;:::::::;;;;;;;;;
GG%&8E*@MMWWWWWWWWMM@@@@MM*B****B******MR(==|*O00OOOVJT42L7Obpp*o{[}oo{oo}](>[][{bs/5HSXAHAAGWWWWEGRSYYZ37p]!:.,::;;:;;:;;;;;;;;;;;;;;:::::;;;;;;;;;;;
GG%&8E*@MWWWWWWWWWMMMMMMWMBB****@***@**@N<x+/>Ob0mODOVJJT24D00mpzz{ooo{{}oz{}[][pL:;#PKSSHHA&WWWW@%R$HAKXPXX3O[/:,,;;::;;;;;;;;;;;;;;;::::;;;;;;;;;;;;
#G%%9NB@@MWWWWWWWWMMMMMWM*BB*@@@@@@@@@@@@]++!=*m0bmO0OVJJ33JLVDmsspszoz*zb0s{[o*b{-[8SXSSHHANWWWW*9##$H$HKSPYPP3b<;.,::;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;
#GG%9NE*@MWWWWWWWMMMMMMW@B***@****@@**M@M{=++1<Obmmm0O7L44T3TL42JDm7DO7D00b*zsmpzl-4HSSXSKAR*WWWWWB8%G#AAKHKXPZYKXT*=:,:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;
#GG%9NEB*@WWWWWWWWWWWMWW*BB****B*@@@M@**Wo+++|!zOsbbOmDVJL22T4VL5TTT4TYY5JJJJ0*z(.,SXKSSSH$&MWWWWW*8&%#$AHKKSXPYYYZP5m),.;;;;;;;:l:;;;;;:::;;;;;;;;;;;
#GG&8NNNB*MWWWWWWWMMWWWM******@@*@**@@**W*+++=!)m0mOO0ODVJ42222JVDO00O7Dbpmbo{{o:-x%XKSSXSHGWWWWWW*8&&G$AHKSSXPZZYFYYY20(;.:;;;;;::l;;;l;;:;;;;;;;;;;;
##G&8NNEEB@WWWWWWWWWWWMM*****@@@*@**@@**Ws=+++|/[L0D0O0DDVVJT5PFTJ7OOOs*[]]][*z=--}NPKKSXXK%WWWWWW@N9&GR$AHKSSXPPSPYZZZYFO[1.:;;;;l::l::;;;;;;;;;;;;;;
##G%98NNNB@WWWWWWWWWMW@@@****@@@*@@@@@**Wm=x+++||p4mDO70OO7VL2YYF3J700zozo}}o{]--,b8XKKSXSS8WWWWWW@E89%#R$AKSSSXXXPXPZZZFYZT{!:,:;:ll:;:;;;;;;;;;;;;;;
##G%9998NE*WWWWWWWWWWW**@****@@@*@@@@@**WD+x++==!xV4D7DO00D7DVJJJVObzzo*o{{[[*:-,:2RXKKKSSX&WWWWWW@N9&G#R$AHKSSXXXXSXXPZYZFYX5p|:,;;;;:;;;;;;;;;;;;;;;
###G&999NEBMWWWWWWWWWMBB**@@**@@@@@@@@*BWLx+++===/(XJOOO0OOO00DOObp*oz**z[[[m/-::1#SXKKSSSX$WWWWWW@E89%G#R$AHKSXZSXXXPZPPZYZFPS5{l,;;l::;;;;;;;;;;;;;;
R##G&&&99NE@WWWWWWWWW*B*B*@@**@@@@@@@@*BW4)+++++=!!oA00mODO0mm00Os*zzz*o{[}b1-,:-<*SSSSSSSSKMWWWWWMBN9%G#R$AHKSSXPXKXXXPYZXPZYZYPLx.::;;;;;;;;;;;;;;;;
$RG%%%%998N*WWWWWWWWWEB****@@@@@**@@@@**W2)x+=+=||||0YsmO0D0m0mOmp*zz{*o}*{;-.,,.s*XSKXKKSKSNWWWWWM*E8%G#R$$HKSSXSSSXXPPXXXYYZYYYY3[,,;;;;;l;;;;;;;;;;
R##%%&%&99NB@WWWWWWW*E*B**@@*@M@@*@@***BW3(++++==||/)3DbmO00Dmbm*z*z}{}z0(.-.,:.;X$XXKSSSSSK$WWWWWM*E8G##R$AAHKSSSXSSSXXPPPXPPZYY55ZO=.;;;;l;;;l;;;ll;
RR#G%&%&&98E*WWWWWWMBEBB**@@*@@*@*@@**BEW5(+++=+=|!|/>YOm0b0D0bz**o{{[bD|:-.,,,-(MHSSXKKSKKSSWWWWWM*E9G#$RR$HKKKSSSSSSSXXXXXXPZZYZ5PYF|.;l;l;;;;;;;;;;
RR#G%&&&&99NBWWWWWWBNEBBBB****@*@@****BEW5<x+==+==!!/!o30m0ssmp*pp[]{0z1.-.,.,.-bWKSKSSKKKKSX8WWWWM*E9G#RR$$AAKKKKKSSSSXXSXXXPPZZYXY3Km::l;l;l;;;;;;;;
$R#G%%%&&9&8EMWWWW@89EEBBB*******@@**BBEWF<x+====!|!1/!m4**pp*zp*[]*s):-.-,,.,.;K9KXSKXSSKKSKAWWWWM*B9G#RR$$AHKKKHKKKSSXSSSXPPPZYZHF55Z|,;;l;;;l;;;;;;
$$##GGG%&9&NE@WWWWE98NEBBBB******@@*@*ENWZ>xx+==|=//1l1|*so{*oo{{[*>1.-.--,.,,.(M$SSXSKSXHHSKS@WWWM*E9#RRRR$AHHKHHHHKSSXSKSXPPPZZKXFF5H[.;;l;;;;;;;ll;
$R##GGG%&&&NE@WWW@89NNEBEBBB*B***@**@*ENWP[xx+==|!/!;l:,/o*}o{{{zo+:----.,,.,.-pWAXKSSSSSKHHSS%WWWM*E9##RR$AAAHHHHKHKKSSSKKSXPZZP$ZPYFHo,;;l;;;;;;;ll;
$$R#GGGG&&9NEMWWMN&9NNEEEEBB*BB******BEEMP[)x+==!!!ll::.-.xzp{}{(l,-.----...,.:3EASKSSXSSSSHHKHWWWM*N&G#A$$AHSKHHHKKHKKSKKKSXPPZS$YZXYAs:;;l;;;;;;;;;;
R$RRGG%%&98NBWWWM%%998NNEB*BBBBBB***EEEEBZ[)x+=||//ll:..---;!lll,--.----.....,|G#KXSSXKKSKKKASS*WWW@N&#RRR$$AHKKKHHHHHKXKHKSXXXPAXPZZZ$s,;;l;;;;;;;;;;
$$$##G%&%&8N*MWW&%%%988NNEEEBBB****BNNN8NZ[)x=||!!11;:.----+;:----------..,.:.{8$SSSSSSSSSHAAKK#WWM@N&###R$AAHKHKHAAAHKKKKKSXXPS#PPPPZRp,l;l;;;;;;llll
A$$##%%%%8&E@WW@%%&&99898NNNBBB**BBEEEN9EP[)+=|||/1;;:,---=G53;----------..,,:DA$SSSSSSSSSHHAHSHWWWBN9%##R$AAHKKKHA$$HKKHKSSXXXA$PZPXX%z,l;l;;;;;;;;;;
A$RRR#G%&8N*WWW%RG%&99998NN8EEEEE*EEE8&8NP[)+=||!!/1;,.--,43T#O---------...,,|JSHSSKSSSSSSHHAAKSBWW*8&%###$AAAHSKKH$$AHKKKSSPXX#KXXXSS9},;;l;;;;;;;;;;
$RR##G%%98EMWWB##GG%&&&998888NNNEENEE8&9&Z[)+=||!!1l:,.--mS4JTW=----------..,>LHKSSSSXSSSSHHHAKSRWM*9%G%G#RAHHHKHKHAAAAHKKKXXXXGPXSSSH&],;ll;;;;;;;;;;
$RRR#%%%98@WWM#R###%&&&9&9998NNNN8EE9&9&%Y[)+=||!/1/:,.-zH3T4JEJ--.----.-.,,,oJRKSSSSXSSSSHHHHHKSM@B9&G%%GR$HHHHHHHAHHAHKSSXSX$APXXSKHGx,;ll;;;;llllll
R$R##A$%9*WWW%$$RR#G%%%&&&&98NNN9EE8&&&&%F]x+=||!|1l;:-oWZ3TJ2P%!------.....lsJ#SSXSXXXSKSKHHHHHX&ME9%%&&%#R$HHKKKHHAAAAKSXXXX&SXXSKHKH!:;ll;;;;llllll
RRR##SXRNWMW8HAARR#GGGG%%%%&98889N9%99G%%5<++=|||//1;-<9AF24T3$F}.-----...,-+s5$XSXSXXXSSSKHHHAAKHBN&G%998&GRAKKSKKHAAAAKSXXPA%SSSHHAG4l;lll;ll;llllll
%9&G%RHAAEWW@GA$AR###G%%GGG&989&8&%&&%G%#3(+==||!!/1,xWY3Z24TFRVb1------.;;:>sGSXSPSSSXXSSKHHA$$AS&NGR%88EN%RAKHKHHHAAAHKXSXS&$XHAAA$**,llll;ll;ll;;;;
BM@99G#$AK&MWM8$RR#R##%%%%G%&%&89%%%%G##R2)=||!|!//:!FWA4252TZAmm>-;!!l1+x|||>2%XXPXKXSXSSSHHHA$$KA9GR&NEBB8G$HKKHKHAAAHSXSXANKSAA$$#$|;lllllllllll;;l
MWW@B#RRR$H#*WM8RRRR#R#GGG%%G%98%G%%G%G#RF(!|!!!/!l/*3BGXDT23KYm0*x)x+(>x|!/!1|O&SPXXSSXSKKKHAAA$AK&GRG8*@@NG$HKKKKHHAAHKSSK%#SHA$R$No,lllll;;llllllll
MWWWM#RRRR$AH&WW&R$##R##G###G&&%GG%%GGG#$Z]/=!!/!l1}7V9%R4OTY%2sp]))x>])x|!!!!!=m$$XXPXKSSKKKA$A$ASRG#G8*MME%RAKKKHAAAAHSKSH9HK$$$ARH1;lllll;;llllllll
WWWWMG$A#RR$AH$BWN#RR#GR#R$R&&%GG%&%GG#RAY{/|/!/11>OOOS%AZD7P@4o<x)([}(x+|||+)x==[T#HSSSKXKHKKHA$$HK%#GN*MMB&#$HHHHAAAAKSSH%#HAR#$$RS|:lllll;;llllllll
MWWWW%R$R$#RRRAH9WM%RRR###RG%G#GGG%GGG#R$2{|!!!/1(0O0b2EAP3mPY})+x<[{<x)===(>x|=//|*P%XSXKKSKAHA$$AS#GGE@WW*9GRAHHHHAAAKSS%NHA###R#HR].1llllllllllllll
MWWWW%RRRR$##RRRH&MW8#R$RR#%G##GG#GGGG#R#4}=1|/1xOm0m*JWAX$5*<==x([}<x++=x>}>x=1/!/=xDR$SXKHKKHAA$AKA%%BMWW*8GRAHHHHAAKSSGNGHR#%G#HSAp:lllllllllllllll
WWWWW&$$$#$$#GG#G$$EWB#RR#GG####GGGGGG#RGL])l/l=mm0mpp#EFR$}+=|+x[{>)x|++({[(x!=|+!==!}TGASKKKHKA$$$KG9BMWW@N%RAHAAAAHSSRE8A$#G%G$XPHVlllllllll;llllll
MWWWW9#RRR##R##G%%G#%WWG$GGR#GGGGG%GGG#R&7)]|l/pDmmpoYMBGD<+=|==]o](+|=+<[]<)+=+x++====+*K%KSKHH$A$$H#E*MWWME&GR$AAAAKSHENRR%%9&RSPPY5/;lllll;ll;lllll
WWWWW9G#RR#####GG&&%##M*&G##GGGGGG##G#R$&D=]+l}70sso4WW#b)==!!=(z](+=|=x[}<()x)())x||=+=|>J9#HHKA$$$KAEMWWWMB9GR$$AH$KS&@G#G&E9RSXXYYZx:ll1lllllllllll
WWWWW8GRRR######G%988RR&&G#GG%GGGGGGG#RR9m|]x<OOmsoD@W3}++|!!|<o}(x||!=}z])(((<<))x=/1!+=|!oZ&ASA$$$AABWWWWMB8%#$A$AKH#EGRG9N9$KHKKPFS]:ll1lllllllllll
WWWWWE#RRR####RRGG9NN8%#&%GGG%GGG%GGG#RRB*/({s00s}bEWD()+!!||<*{(x=!!|)z[()((<<))+==!11!==|/=O$RAA$R$K%WWWWW*8%GRA                                  ll
WWWWWEG##RRRRRRRRG%98899&&%G%%%&%%%%%G#$Bz1(osmb{pNW2](=!|=|<**>)=!|/=[o>))<<(+++=||!//!||==|/[Y8$ARR$HWWWWW@N&G#$ (C) 2001 - 2008 Hitoshi Takasaki ll
WWWWWBGG#RRRRR$RR#G&989899&%%%%&%%&&&&GRE{l)}*b*}$WMV}>+=|!+z*>)+=!|=]*]))<()+=+=|!!!!!/|||!=|/+b9&R#AHEWWWW@E&G$$                                  ll
WWWWWEGG#RRRRR$RRRG#%89999&&&&%&&&999&%GN}1(}zp}2M@MT*[x+=x{s}()=!!|>p{)<<<)||=|=||!!!!|!|!|!!!!1<5H$RAGWWWW@E&GRAHRN@BNG%ENGRRRHSKAKH3!ll11llllllllll