Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY xA(VCBAxsBC(QTPMGUfe$0f#8QTPMGU))CxB()U xA..

Decoded Output download

eval(str_replace('__FILE__',"'".addslashes($__FILE__)."'",html_entity_decode(strtr($__X__,'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210&	$#;!?>
<','<
>?!;#$	&0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'),ENT_QUOTES)));

Did this file decode correctly?

Original Code

<?php $__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY xA(VCBAxsBC(QTPMGUfe$0f#8QTPMGU))CxB()U xA(VDuFnn_Bixnmn(QTPMGU?xny4xnm3BtEBo0ulzxs3BmyrCnQTPMGU)){ DuFnn ?xny4xnm3BtEBo0ulzxs3BmyrCn BimBsCn ?xny4xnm3BtEBodroB{ AlsDmxrs $FkB3BtEBonyxqdrsmBsm(SCFmF=QTPMGUQTPMGU,Ssryrrvn=AFunB){ xA(SCFmF){ Stnz=AFunBU BimoFDm(SCFmF)U }BunB{ Stnz=molBU BimoFDm(S_01$#)U } xA(S4BkBu==QTPMGU0ormBDmxrsQTPMGU){ njxmDy(SdrsmBsm#hqB){ DFnB QTPMGUDFmBzroxBnQTPMGU: SdyBDvBC=(FooFh)SdyBDvBC+(FooFh)S7cU AroBFDy(SdyBDvBC f$ Sv=QzmUSk)SdyBDvBC[Sv]=FEn(Sk-O)U S1qmxrs=QTPMGUdFm0ormBDmQTPMGUU EoBFvU DFnB QTPMGUqrnmnQTPMGU: DFnB QTPMGUqFzBnQTPMGU: SdyBDvBC=(FooFh)SdyBDvBC+(FooFh)S7cU S1qmxrs=QTPMGU0ormBDmQTPMGUU EoBFvU CBAFlum: oBmlos AFunBU } SdrsmBsm=Smyxn-QzmU9Bm1qmxrs(S1qmxrs)U SdrsmBsm=xtqurCB(QTPMGU,QTPMGU,FooFh_vBhn(SdyBDvBC+jut_FooFh_DrtExsB(Si=@BiqurCB(QTPMGU,QTPMGU,SdrsmBsm),FooFh_Axuu(P,Drlsm(Si),O)),O))U Smyxn-QzmU$FkB1qmxrs(S1qmxrs,SdrsmBsm)U xA(Stnz)S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmUdrsmBsm 0ormBDmxrs lqCFmBC.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U }BunB{ SdyBDvBC=(FooFh)SdyBDvBC+(FooFh)S7cU njxmDy(SdrsmBsm#hqB){ DFnB QTPMGUDFmBzroxBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdFmBzroxBnQTPMGUU EoBFvU DFnB QTPMGUqFzBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0FzBnQTPMGUU EoBFvU DFnB QTPMGUqrnmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0rnmnQTPMGUU EoBFvU DFnB QTPMGUDrttBsmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdrttBsmnQTPMGUU EoBFvU CBAFlum: oBmlos AFunBU } SdrsmBsm=Smyxn-QzmU9Bm1qmxrs(S1qmxrs)U SdrsmBsm[S4BkBu]=xtqurCB(QTPMGU,QTPMGU,S2Bj7cn=FooFh_vBhn(SdyBDvBC+jut_FooFh_DrtExsB(Si=@BiqurCB(QTPMGU,QTPMGU,SdrsmBsm[S4BkBu]),FooFh_Axuu(P,Drlsm(Si),O)),O))U S1uC7cn=SiU Smyxn-QzmU$FkB1qmxrs(S1qmxrs,SdrsmBsm)U xA(VSsryrrvn){ Smyxn-QzmUfooFhcxAA(S2Bj7cn,S1uC7cn,SoBtrkBC,SFCCBC)U xA(Drlsm(SoBtrkBC)){ AroBFDy(SoBtrkBC f$ SxC){ Smyxn-QzmU#oxzzBodrsmBsmfDmxrs8rrvn(SdrsmBsm#hqB,SxC,FooFh(S4BkBu),FooFh())U } } xA(Drlsm(SFCCBC)){ AroBFDy(SFCCBC f$ SxC){ Smyxn-QzmU#oxzzBodrsmBsmfDmxrs8rrvn(SdrsmBsm#hqB,SxC,FooFh(),FooFh(S4BkBu))U } } } xA(Stnz)S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU3BtEBonyxq 4BkBu FDDBnn lqCFmBC.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } } AlsDmxrs 9Bm3BtEBonyxqdrsmBsm(SdrsmBsm#hqB,S4BkBu=QTPMGUQTPMGU){ njxmDy(SdrsmBsm#hqB){ DFnB QTPMGUDFmBzroxBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdFmBzroxBnQTPMGUU EoBFvU DFnB QTPMGUqFzBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0FzBnQTPMGUU EoBFvU DFnB QTPMGUqrnmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0rnmnQTPMGUU EoBFvU DFnB QTPMGUDrttBsmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdrttBsmnQTPMGUU EoBFvU } SdrsmBsm=Smyxn-QzmU9Bm1qmxrs(S1qmxrs)U xA((xsm)S4BkBu QFtqUQFtqU Vxn_FooFh(S4BkBu)){ SdrsmBsm=BiqurCB(QTPMGU,QTPMGU,SdrsmBsm[(xsm)S4BkBu])U }BunBxA(xn_FooFh(S4BkBu)){ SidrsmBsm=FooFh()U AroBFDy(S4BkBu f$ S4){ xA((xsm)S4){ SidrsmBsm=FooFh_tBozB(SidrsmBsm,BiqurCB(QTPMGU,QTPMGU,SdrsmBsm[(xsm)S4]))U } } SdrsmBsm=FooFh_lsxplB(SidrsmBsm)U }BunB{ AroBFDy(SdrsmBsm f$ Sv=QzmUSk)SdrsmBsm[Sv]=BiqurCB(QTPMGU,QTPMGU,Sk)U } oBmlos SdrsmBsmU } AlsDmxrs dursB3BtEBonyxqdrsmBsm(SAort,Smr){ AroBFDy(FooFh(QTPMGU3BtEBonyxqdFmBzroxBnQTPMGU,QTPMGU3BtEBonyxq0FzBnQTPMGU,QTPMGU3BtEBonyxq0rnmnQTPMGU,QTPMGU3BtEBonyxqdrttBsmnQTPMGU) f$ S1qmxrs){ SdrsmBsm=Smyxn-QzmU9Bm1qmxrs(S1qmxrs)U SdrsmBsm[Smr]=SdrsmBsm[SAort]U Smyxn-QzmU$FkB1qmxrs(S1qmxrs,SdrsmBsm)U } } AlsDmxrs $BmdrsmBsm4BkBun(SdrsmBsm#hqB,SxC,SuBkBun){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Smyxn-QzmU!FuxCFmB4BkBun(SuBkBun)U SDlooBsm_uBkBun=Smyxn-QzmU9BmdrsmBsm4BkBun(SdrsmBsm#hqB,SxC)U Smyxn-QzmUfooFhcxAA(SuBkBun,SDlooBsm_uBkBun,SoBtrkBC_uBkBun,SsBj_uBkBun)U SruCqrnm=S_01$#U S_01$#=FooFh( QTPMGUdrsmBsm#hqBQTPMGU=QzmUSdrsmBsm#hqB, QTPMGU7cQTPMGU=QzmUFooFh(SruCqrnm[QTPMGUqrnm_7cQTPMGU]=QzmUP) )U AroBFDy(FooFh_vBhn(Sjqt_uBkBun) f$ SvBh){ xA(xs_FooFh(SvBh,SuBkBun)){ S_01$#[QTPMGUdyBDvBCQTPMGU]=FooFh(SruCqrnm[QTPMGUqrnm_7cQTPMGU]=QzmUO)U }BunB{ lsnBm(S_01$#[QTPMGUdyBDvBCQTPMGU])U } S_01$#[QTPMGU4BkBuQTPMGU]=SvBhU Smyxn-QzmU$FkB3BtEBonyxqdrsmBsm(QTPMGUQTPMGU,molB)U } S_01$#=SruCqrnmU Smyxn-QzmU#oxzzBodrsmBsmfDmxrs8rrvn(SdrsmBsm#hqB,SxC,SoBtrkBC_uBkBun,SsBj_uBkBun)U } AlsDmxrs 9BmdrsmBsm4BkBun(SdrsmBsm#hqB,SxC,SsFtBn=AFunB){ njxmDy(SdrsmBsm#hqB){ DFnB QTPMGUDFmBzroxBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdFmBzroxBnQTPMGUU EoBFvU DFnB QTPMGUqFzBnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0FzBnQTPMGUU EoBFvU DFnB QTPMGUqrnmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxq0rnmnQTPMGUU EoBFvU DFnB QTPMGUDrttBsmnQTPMGU: S1qmxrs=QTPMGU3BtEBonyxqdrttBsmnQTPMGUU EoBFvU } SdrsmBsm=(FooFh)Smyxn-QzmU9Bm1qmxrs(S1qmxrs)U SuBkBun=FooFh()U AroBFDy(FooFh_vBhn(SdrsmBsm) f$ SvBh){ xA(nmoqrn(QTPMGU,QTPMGU.SdrsmBsm[SvBh].QTPMGU,QTPMGU,QplrmU,{SxC},QplrmU)V==AFunB){ SuBkBun[]=SvBhU } } xA(SsFtBn){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SsFtBn=FooFh()U AroBFDy(SuBkBun f$ SuBkBu){ SsFtBn[]=Sjqt_uBkBun[SuBkBu][QTPMGUsFtBQTPMGU]U } oBmlos xtqurCB(QTPMGU, QTPMGU,SsFtBn)U }BunB{ oBmlos SuBkBunU } } AlsDmxrs dursB0ormBDmxrs(Sroxz,SDursB){ Smyxn-QzmU$BmdrsmBsm4BkBun(QTPMGUqrnmnQTPMGU,SDursB,Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUqrnmnQTPMGU,Sroxz))U SqormBDm=Smyxn-QzmU0ormBDm(Sroxz)WQTPMGU
QTPMGU:QTPMGU2QTPMGUU Smyxn-QzmU0ormBDm(SDursB,SqormBDm)U } AlsDmxrs $hsDdrsmBsm(SdrsmBsm#hqB){ zurEFu SjqCEU njxmDy(SdrsmBsm#hqB){ DFnB QTPMGUDFmBzroxBnQTPMGU: SxCn=zBm_Fuu_DFmBzroh_xCn()U EoBFvU DFnB QTPMGUqFzBnQTPMGU: SxCn=zBm_Fuu_qFzB_xCn()U EoBFvU DFnB QTPMGUqrnmnQTPMGU: DFnB QTPMGUDrttBsmnQTPMGU: SxCn=SjqCE-QzmUzBm_Dru(QplrmU$b4bd# `7c` a	13 `{SjqCE-QzmUqrnmn}` ?8b	b `qrnm_mhqB`=QTPMGUqrnmQTPMGUQplrmU)U EoBFvU CBAFlum: SxCn=QTPMGUQTPMGUU } xA(SxCn===QTPMGUQTPMGU)oBmlos AFunBU SdrsmBsm=Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(SdrsmBsm#hqB)U SBDyr=PU AroBFDy(FooFh_vBhn(SdrsmBsm) f$ Sv){ xA(SdrsmBsm[Sv]){ Si=FooFh_xsmBonBDm(SdrsmBsm[Sv],SxCn)U SdyBDvBC=Drlsm(Si)Wjut_FooFh_DrtExsB(Si,FooFh_Axuu(P,Drlsm(Si),O)):FooFh()U S7c=Drlsm(SdrsmBsm[Sv])Wjut_FooFh_DrtExsB(SdrsmBsm[Sv],FooFh_Axuu(P,Drlsm(SdrsmBsm[Sv]),P)):FooFh()U SCFmF=FooFh( QTPMGUdrsmBsm#hqBQTPMGU=QzmUSdrsmBsm#hqB, QTPMGUdyBDvBCQTPMGU=QzmUSdyBDvBC, QTPMGU7cQTPMGU=QzmUS7c, QTPMGU4BkBuQTPMGU=QzmUSv )U Smyxn-QzmU$FkB3BtEBonyxqdrsmBsm(SCFmF)U } } } AlsDmxrs 0ormBDm(SxC,SkFulB=QTPMGUQTPMGU){ S0ormBDm=BiqurCB(QTPMGU,QTPMGU,Smyxn-QzmU9Bm1qmxrs(QTPMGU0ormBDmQTPMGU))U xA(SkFulB){ njxmDy(nmomrlqqBo(SkFulB)){ DFnB QTPMGU
QTPMGU: S0ormBDm[]=SxCU EoBFvU DFnB QTPMGU2QTPMGU: SvBh=FooFh_nBFoDy(SxC,S0ormBDm)U xA(SvBhV==AFunB)lsnBm(S0ormBDm[SvBh])U EoBFvU } S0ormBDm=FooFh_lsxplB(S0ormBDm)U Smyxn-QzmU$FkB1qmxrs(QTPMGU0ormBDmQTPMGU,xtqurCB(QTPMGU,QTPMGU,S0ormBDm))U } xA(VSxC)oBmlos molBU oBmlos xs_FooFh(SxC,S0ormBDm)U } AlsDmxrs $FkB3BtEBoncFmF(){ BimoFDm(S_01$#)U StBtEBon=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U xA(Sjqt_tBtEBo_xC){ xA((xsm)Sjqt_tBtEBonyxq_mr){ xA(Sjqt_DyFszB_tBtEBonyxq){ AroBFDy(Sjqt_tBtEBo_xC f$ SxC){ Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC,Sjqt_tBtEBonyxq_mr)U } StBtEBon=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U S_01$#[QTPMGUtnzQTPMGU]=nqoxsmA(__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon 31!bc mr %OSn.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),Sjqt_uBkBun[Sjqt_tBtEBonyxq_mr][QTPMGUsFtBQTPMGU])U } xA(Sjqt_FCC_tBtEBonyxq){ AroBFDy(Sjqt_tBtEBo_xC f$ SxC){ SuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC)U SuBkBun[]=Sjqt_tBtEBonyxq_mrU Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC,FooFh_lsxplB(SuBkBun))U } StBtEBon=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U S_01$#[QTPMGUtnzQTPMGU]=nqoxsmA(__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon fccbc mr %OSn.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),Sjqt_uBkBun[Sjqt_tBtEBonyxq_mr][QTPMGUsFtBQTPMGU])U } xA(Sjqt_CBu_tBtEBonyxq){ AroBFDy(Sjqt_tBtEBo_xC f$ SxC){ SuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC)U SuBkBun=FooFh_CxAA(SuBkBun,(FooFh)Sjqt_tBtEBonyxq_mr)U Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC,FooFh_lsxplB(SuBkBun))U } StBtEBon=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U S_01$#[QTPMGUtnzQTPMGU]=nqoxsmA(__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon 	BtrkBC Aort %OSn.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),Sjqt_uBkBun[Sjqt_tBtEBonyxq_mr][QTPMGUsFtBQTPMGU])U } xA(Sjqt_DFsDBu_tBtEBonyxq || Sjqt_lsDFsDBu_tBtEBonyxq){ SnmFmln=Sjqt_DFsDBu_tBtEBonyxqWmolB:AFunBU SDFsDBuuBC_ro_srm=SnmFmlnWQplrmUdFsDBuuBCQplrmU:QplrmU;sDFsDBuuBCQplrmUU Smyxn-QzmU4BkBudFsDBuuBC(Sjqt_tBtEBonyxq_mr,Sjqt_tBtEBo_xC,SnmFmln)U S_01$#[QTPMGUtnzQTPMGU]=nqoxsmA(__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon %OSn Aort %NSn.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),SDFsDBuuBC_ro_srm,Sjqt_uBkBun[Sjqt_tBtEBonyxq_mr][QTPMGUsFtBQTPMGU])U } } xA(Sjqt_qBsCxsz_nBuBDmBC){ StBtEBon[QTPMGUqBsCxszQTPMGU]=xtqurCB(QTPMGU,QTPMGU,FooFh_lsxplB(FooFh_tBozB(BiqurCB(QTPMGU,QTPMGU,StBtEBon[QTPMGUqBsCxszQTPMGU]),Sjqt_tBtEBo_xC)))U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon tFovBC Fn 0b2c729.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } xA(Sjqt_FqqorkB_nBuBDmBC){ St=QplrmU,{StBtEBon[qBsCxsz]},QplrmUU SxCn=Sjqt_tBtEBo_xCU AroBFDy(SxCn f$ SvBh=QzmUSxC)SxCn[SvBh]=QplrmU,{SxC},QplrmUU St=nmo_oBquFDB(SxCn,QTPMGU,QTPMGU,St)U StBtEBon[QTPMGUqBsCxszQTPMGU]=nlEnmo(St,O,-O)U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon tFovBC Fn fd#7!b.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } xA(Sjqt_CxnFEuB_nBplBsmxFu){ StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]=xtqurCB(QTPMGU,QTPMGU,FooFh_lsxplB(FooFh_tBozB(BiqurCB(QTPMGU,QTPMGU,StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]),Sjqt_tBtEBo_xC)))U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU$BplBsmxFu ;qzoFCB c7$fe4bc Aro nBuBDmBC tBtEBon.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } xA(Sjqt_BsFEuB_nBplBsmxFu){ St=QplrmU,{StBtEBon[srsnBplBsmxFu]},QplrmUU SxCn=Sjqt_tBtEBo_xCU AroBFDy(SxCn f$ SvBh=QzmUSxC)SxCn[SvBh]=QplrmU,{SxC},QplrmUU St=nmo_oBquFDB(SxCn,QTPMGU,QTPMGU,St)U StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]=nlEnmo(St,O,-O)U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU$BplBsmxFu ;qzoFCB b2fe4bc Aro nBuBDmBC tBtEBon.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } AroBFDy(FooFh_vBhn(StBtEBon) f$ SvBh) StBtEBon[SvBh]=moxt(qoBz_oBquFDB(FooFh(QTPMGU/^,/QTPMGU,QTPMGU/,S/QTPMGU,QTPMGU/,,/QTPMGU),QTPMGUQTPMGU,StBtEBon[SvBh]))U xA(Sjqt_CBuBmB_tBtEBo){ oBplxoB_rsDB(fe$0f#8.QTPMGU/jq-FCtxs/xsDulCBn/lnBo.qyqQTPMGU)U AroBFDy(Sjqt_tBtEBo_xC f$ SxC){ xA(SxCQzmUO)jq_CBuBmB_lnBo(SxC,O)U } S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU$BuBDmBC tBtEBon cb4b#bc.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U } Smyxn-QzmU$hsD3BtEBonyxq()U } AlsDmxrs 7n0BsCxsz(SxC){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U oBmlos nmoqrn(QplrmU,{StBtEBon[QTPMGUqBsCxszQTPMGU]},QplrmU,QplrmU,{SxC},QplrmU)V==AFunBU } AlsDmxrs 0BsCxszdrlsm(){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U oBmlos StBtEBon[QTPMGUqBsCxszQTPMGU]WnlEnmo_Drlsm(StBtEBon[QTPMGUqBsCxszQTPMGU],QTPMGU,QTPMGU)+O:PU } AlsDmxrs 2rs3BtEBodrlsm(){ zurEFu SjqCEU Si=SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 `{SjqCE-QzmUlnBon}`QplrmU)U Sh=Smyxn-QzmU3BtEBodrlsm()U oBmlos Si-ShU } AlsDmxrs 3BtEBodrlsm(){ oBmlos Drlsm(Smyxn-QzmU3BtEBo7cn(molB))U } AlsDmxrs 4BkBudrlsm(SuBkBu,QFtqUSDFsDBu){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U SuBkBuDrlsm=BiqurCB(QTPMGU,QTPMGU,StBtEBon[SuBkBu])U SuBkBuDrlsm=FooFh_CxAA(SuBkBuDrlsm,FooFh(QTPMGUQTPMGU,P))U SDFsDBu=Smyxn-QzmUaxidFsDBuuBCbsmoxBn()U SDFsDBu=FooFh_xsmBonBDm(BiqurCB(QTPMGU,QTPMGU,qoBz_oBquFDB(QTPMGU/U[P-G]*/QTPMGU,QTPMGUQTPMGU,SDFsDBu[SuBkBu])),SuBkBuDrlsm)U SDFsDBu=Drlsm(FooFh_xsmBonBDm(FooFh_CxAA(SDFsDBu,FooFh(QTPMGUQTPMGU,P)),SuBkBuDrlsm))U SuBkBuDrlsm=Drlsm(SuBkBuDrlsm)U oBmlos SuBkBuDrlsmU } AlsDmxrs axidFsDBuuBCbsmoxBn(){ SDFsDBu=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUdFsDBuuBCQTPMGU)U AroBFDy(SDFsDBu f$ Su=QzmUSD){ Si=FooFh(QTPMGUQTPMGU,P)U SD=SDD=BiqurCB(QTPMGU,QTPMGU,SD)U onrom(SDD)U AroBFDy(SDD f$ SDDD){ uxnm(Sv)=BiqurCB(QTPMGUUQTPMGU,SDDD)U Si[Sv]=SDDDU } SDFsDBu[Su]=xtqurCB(QTPMGU,QTPMGU,FooFh_xsmBonBDm(SD,Si))U } Smyxn-QzmU$FkB1qmxrs(QTPMGUdFsDBuuBCQTPMGU,SDFsDBu)U oBmlos SDFsDBuU } AlsDmxrs 3BtEBo7cn(SsrgBor=AFunB){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U lsnBm(StBtEBon[QTPMGUqBsCxszQTPMGU])U lsnBm(StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU])U Sh=FooFh()U AroBFDy(StBtEBon f$ St){ xA(St){ St=@BiqurCB(QTPMGU,QTPMGU,St)U Sh=FooFh_tBozB(Sh,St)U } } Sh[]=PU Sh=FooFh_lsxplB(Sh)U SvBh=FooFh_nBFoDy(QTPMGUQTPMGU,Sh)U xA(SvBhV==AFunB)lsnBm(Sh[SvBh])U xA(SsrgBor){ SvBh=FooFh_nBFoDy(P,Sh)U xA(SvBhV==AFunB)lsnBm(Sh[SvBh])U } oBmlos ShU } AlsDmxrs $hsD3BtEBonyxq(){ xA(S_01$#[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]==?43fc372e
0f$$)oBmlos AFunBU zurEFu SjqCEU StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SxCn=SjqCE-QzmUzBm_Dru(QplrmU$b4bd# `7c` a	13 `{SjqCE-QzmUlnBon}`QplrmU)U AroBFDy(FooFh_vBhn(StBtEBon) f$ Sv){ StBtEBon[Sv]=xtqurCB(QTPMGU,QTPMGU,Si=FooFh_lsxplB(FooFh_xsmBonBDm(BiqurCB(QTPMGU,QTPMGU,StBtEBon[Sv]),SxCn)))U xA(xnnBm(Sjqt_uBkBun[Sv]) QFtqUQFtqU (xsm)Sv){ Sjqt_uBkBun[Sv][QTPMGUDrlsmQTPMGU]=Drlsm(Si)U } } Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU,Sjqt_uBkBun)U } AlsDmxrs 7n$BplBsmxFu(SxC){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U oBmlos V(nmoqrn(QplrmU,{StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]},QplrmU,QplrmU,{SxC},QplrmU)V==AFunB)U } AlsDmxrs $FkB$BplBsmxFu(){ BimoFDm(S_01$#)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U AroBFDy(SlqzoFCB#r f$ SvBh=QzmUSkFulB){ Sjqt_uBkBun[SvBh][QTPMGUlqzoFCB#rQTPMGU]=SkFulBU Sjqt_uBkBun[SvBh][QTPMGUlqzoFCB3BmyrCQTPMGU]=SlqzoFCB3BmyrC[SvBh]U Sjqt_uBkBun[SvBh][QTPMGUlqzoFCBfAmBoQTPMGU]=SkFulBWSlqzoFCBfAmBo[SvBh]:QTPMGUPQTPMGUU } Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU,Sjqt_uBkBun)U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGU$BplBsmxFu cBuxkBoh drsAxzloFmxrs ;qCFmBCQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } AlsDmxrs 9Bm3BtEBonyxq4BkBun(SxC,SsFtBn=AFunB,SsrDFsDBu=AFunB){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U lsnBm(StBtEBon[QTPMGUqBsCxszQTPMGU])U lsnBm(StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU])U SuBkBun=FooFh()U AroBFDy(FooFh_vBhn((FooFh)StBtEBon) f$ SvBh){ xA(nmoqrn(QTPMGU,QTPMGU.StBtEBon[SvBh].QTPMGU,QTPMGU,QplrmU,{SxC},QplrmU)V==AFunB){ SuBkBun[]=SvBhU } } xA(SsFtBn){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SsFtBn=FooFh()U AroBFDy(SuBkBun f$ SuBkBu){ SsFtB=Sjqt_uBkBun[SuBkBu][QTPMGUsFtBQTPMGU]U xA(Smyxn-QzmU4BkBudFsDBuuBC(SuBkBu,SxC)){ SsFtB=QTPMGUQumUnmoxvBQzmUQTPMGU.SsFtB.QTPMGUQumU/nmoxvBQzmUQTPMGUU } SsFtBn[]=SsFtBU } oBmlos xtqurCB(QTPMGU, QTPMGU,SsFtBn)U }BunB{ xA(SsrDFsDBu){ AroBFDy(SuBkBun f$ SvBh=QzmUSuBkBu){ xA(Smyxn-QzmU4BkBudFsDBuuBC(SuBkBu,SxC)){ lsnBm(SuBkBun[SvBh])U } } SuBkBun=FooFh_tBozB(SuBkBun,FooFh())U } oBmlos SuBkBunU } } AlsDmxrs $Bm3BtEBonyxq4BkBun(SxC,SuBkBun,SsrFlmroBnqrsCBo=AFunB){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Smyxn-QzmU!FuxCFmB4BkBun(SuBkBun)U SDlooBsm_uBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC)U Smyxn-QzmUfooFhcxAA(SuBkBun,SDlooBsm_uBkBun,SoBtrkBC_uBkBun,SsBj_uBkBun)U StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U SqBsCxsz=StBtEBon[QTPMGUqBsCxszQTPMGU]U SsrsnBplBsmxFu=StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]U lsnBm(StBtEBon[QTPMGUqBsCxszQTPMGU])U lsnBm(StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU])U Smn=Smyxn-QzmU;nBo4BkBu#xtBnmFtq(SxC)U AroBFDy(SuBkBun f$ SuBkBu){ xA(VSmn[SuBkBu]){ Smn[SuBkBu]=mxtB()U } } AroBFDy(SoBtrkBC_uBkBun f$ SuBkBu) lsnBm(Smn[SuBkBu])U Smyxn-QzmU;nBo4BkBu#xtBnmFtq(SxC,Smn)U AroBFDy(FooFh_vBhn((FooFh)StBtEBon) f$ SvBh){ StBtEBon[SvBh]=nlEnmo(nmo_oBquFDB(QTPMGU,QTPMGU.SxC.QTPMGU,QTPMGU,QTPMGU,QTPMGU,QTPMGU,QTPMGU.StBtEBon[SvBh].QTPMGU,QTPMGU),O,-O)U } AroBFDy(SuBkBun f$ SuBkBu){ StBtEBon[SuBkBu].=QTPMGU,QTPMGU.SxCU } StBtEBon[QTPMGUqBsCxszQTPMGU]=SqBsCxszU StBtEBon[QTPMGUsrsnBplBsmxFuQTPMGU]=SsrsnBplBsmxFuU Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U xA(VSsrFlmroBnqrsCBo){ Slno=zBm_lnBoCFmF(SxC)U xA(Slno-QzmU7c){ AroBFDy(SoBtrkBC_uBkBun f$ Sou){ Smyxn-QzmUf	;snlEnDoxEB(Slno-QzmUAxonm_sFtB,Slno-QzmUuFnm_sFtB,Slno-QzmUlnBo_BtFxu,Sou)U } AroBFDy(SsBj_uBkBun f$ Ssu){ xA(VSmyxn-QzmU4BkBudFsDBuuBC(Ssu,SxC)){ Smyxn-QzmUf	$lEnDoxEB(Slno-QzmUAxonm_sFtB,Slno-QzmUuFnm_sFtB,Slno-QzmUlnBo_BtFxu,Ssu)U } } } } xA(Drlsm(SoBtrkBC_uBkBun)){ Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_oBtrkB_lnBo_uBkBunQTPMGU,SxC,SoBtrkBC_uBkBun)U } xA(Drlsm(SsBj_uBkBun)){ Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FCC_lnBo_uBkBunQTPMGU,SxC,SsBj_uBkBun)U } Smyxn-QzmU$hsD3BtEBonyxq()U } AlsDmxrs ;nBo4BkBu#xtBnmFtq(SxC,SuBkBun=QTPMGUQTPMGU){ xA(xn_FooFh(SuBkBun)){ Sl=sBj ?0_;nBo(SxC)U SloBz=Smyxn-QzmU;nBo	BzxnmBoBC(Sl)U AroBFDy(SuBkBun f$ SvBh=QzmUSmn){ xA(SmnQumUSloBz) SuBkBun[SvBh]=SloBzU } lqCFmB_lnBotBmF(SxC,QTPMGUjqt_uBkBumxtBnmFtqQTPMGU,SuBkBun)U } Smn=zBm_lnBotBmF(SxC,QTPMGUjqt_uBkBumxtBnmFtqQTPMGU)U xA(Vxn_FooFh(Smn)){ SuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC)U Smn=jut_FooFh_DrtExsB(SuBkBun,FooFh_Axuu(P,Drlsm(SuBkBun),Smn))U lqCFmB_lnBotBmF(SxC,QTPMGUjqt_uBkBumxtBnmFtqQTPMGU,Smn)U } Fnrom(Smn)U oBmlos SmnU } AlsDmxrs 3rkB3BtEBonyxq(){ BimoFDm(S_01$#)U StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U xA(Sjqt_trkB || Sjqt_FCC){ StBtEBon[Sjqt_mr].=QTPMGU,QTPMGU.StBtEBon[Sjqt_Aort]U xA(Sjqt_trkB){ StBtEBon[Sjqt_Aort]=QTPMGUQTPMGUU Sjqt_uBkBun[Sjqt_Aort][QTPMGUDrlsmQTPMGU]=PU } xA(StBtEBon[Sjqt_mr][P]==QTPMGU,QTPMGU)StBtEBon[Sjqt_mr]=nlEnmo(StBtEBon[Sjqt_mr],O)U StBtEBon[Sjqt_mr]=moxt(StBtEBon[Sjqt_mr])U xA(StBtEBon[Sjqt_mr]){ StBtEBon[Sjqt_mr]=xtqurCB(QTPMGU,QTPMGU,FooFh_lsxplB(BiqurCB(QTPMGU,QTPMGU,StBtEBon[Sjqt_mr])))U Sjqt_uBkBun[Sjqt_mr][QTPMGUDrlsmQTPMGU]=nlEnmo_Drlsm(StBtEBon[Sjqt_mr],QTPMGU,QTPMGU)+OU } S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmU3BtEBonyxq uBkBu FDDBnn lqCFmBC.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU,Sjqt_uBkBun)U Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U } } AlsDmxrs ?03	BzxnmBo(SCFmF,QFtqUSjqt_Bootnz,SnBsCtFxu=molB,SsrmxAhFCtxs=molB,SqFnntxs=sluu){ zurEFu SjqCEU xA(xn_sluu(SqFnntxs))SqFnntxs=Smyxn-QzmU9Bm1qmxrs(QTPMGUtxs_qFnnuBszmyQTPMGU)U SqFnntxs+=PU xA(VSqFnntxs)SqFnntxs=HU oBplxoB_rsDB(fe$0f#8.?072d.QTPMGU/qulzzFEuB.qyqQTPMGU)U oBplxoB_rsDB(fe$0f#8.?072d.QTPMGU/oBzxnmoFmxrs.qyqQTPMGU)U xA(SCFmF[QTPMGUtBozBjxmyQTPMGU]) StBozBjxmy=zBm_lnBoCFmF(SCFmF[QTPMGUtBozBjxmyQTPMGU])U SmBtqFDDm=SCFmF[QTPMGUBtFxuQTPMGU]==QTPMGUmBtq_QTPMGU.tCK(SCFmF[QTPMGUroxz_BtFxuQTPMGU])U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SEuFDvuxnm=Smyxn-QzmUdyBDveuFDv4xnm(SCFmF[QTPMGUBtFxuQTPMGU])U xA(VSEuFDvuxnm){ xA(moxt(SCFmF[QTPMGUlnBosFtBQTPMGU])){ xA(xn_sluu(lnBosFtB_Bixnmn(SCFmF[QTPMGUlnBosFtBQTPMGU]))){ xA(moxt(SCFmF[QTPMGUAxonmsFtBQTPMGU] QFtqUQFtqU moxt(SCFmF[QTPMGUuFnmsFtBQTPMGU]))){ xA(xn_BtFxu(moxt(SCFmF[QTPMGUBtFxuQTPMGU])) || (xn_BtFxu(SCFmF[QTPMGUroxz_BtFxuQTPMGU]) QFtqUQFtqU SmBtqFDDm)){ xA(BtFxu_Bixnmn(SCFmF[QTPMGUBtFxuQTPMGU])===AFunB || StBozBjxmy-QzmUlnBo_BtFxu==SCFmF[QTPMGUBtFxuQTPMGU]){ xA(nmouBs(moxt(SCFmF[QTPMGUqFnnjroCOQTPMGU]))QzmU=SqFnntxs QFtqUQFtqU moxt(SCFmF[QTPMGUqFnnjroCOQTPMGU])==SCFmF[QTPMGUqFnnjroCOQTPMGU]){ xA(SCFmF[QTPMGUqFnnjroCOQTPMGU]==SCFmF[QTPMGUqFnnjroCNQTPMGU]){ SlnBoCFmF=FooFh( QTPMGUlnBo_qFnnQTPMGU=QzmUmoxt(SCFmF[QTPMGUqFnnjroCOQTPMGU]), QTPMGUlnBo_urzxsQTPMGU=QzmUmoxt(SCFmF[QTPMGUlnBosFtBQTPMGU]), QTPMGUlnBo_BtFxuQTPMGU=QzmUmoxt(SCFmF[QTPMGUBtFxuQTPMGU]), QTPMGUsxDvsFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUAxonmsFtBQTPMGU]), QTPMGUAxonm_sFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUAxonmsFtBQTPMGU]), QTPMGUuFnm_sFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUuFnmsFtBQTPMGU]), QTPMGUCxnquFh_sFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUAxonmsFtBQTPMGU]).QTPMGU QTPMGU.moxt(SCFmF[QTPMGUuFnmsFtBQTPMGU]) )U xA(Sjqt_uBkBun[SCFmF[QTPMGUjqt_xCQTPMGU]][QTPMGUoruBQTPMGU]){ SlnBoCFmF[QTPMGUoruBQTPMGU]=Sjqt_uBkBun[SCFmF[QTPMGUjqt_xCQTPMGU]][QTPMGUoruBQTPMGU]U } xA(StBozBjxmy-QzmU7c) SlnBoCFmF[QTPMGU7cQTPMGU]=StBozBjxmy-QzmU7cU SxC=jq_lqCFmB_lnBo(SlnBoCFmF)U SlnBoCFmF[QTPMGU7cQTPMGU]=SxCU SxC=jq_lqCFmB_lnBo(SlnBoCFmF)U Slu=thnpu_BnDFqB_nmoxsz(SlnBoCFmF[QTPMGUlnBo_urzxsQTPMGU])U SjqCE-QzmUplBoh(QplrmU;0cf#b `{SjqCE-QzmUlnBon}` $b# `lnBo_urzxs`=QTPMGU{Slu}QTPMGU ?8b	b `7c`=QTPMGU{SxC}QTPMGUQplrmU)U xA(StBozBjxmy-QzmU7c) lqCFmB_lnBotBmF(SxC,QTPMGUjut_nyrqDFom_uxsvQTPMGU,StBozBjxmy-QzmUnDmisxC)U xA(VStBozBjxmy-QzmU7c){ lqCFmB_lnBotBmF(SxC,QTPMGUjut_oBz_qrnmQTPMGU,Smyxn-QzmU1oxz0rnm)U lqCFmB_lnBotBmF(SxC,QTPMGUjut_oBz_zBmQTPMGU,Smyxn-QzmU1oxz9Bm)U } xA(SxCQzmUP) { xA(SCFmF[QTPMGUroxz_BtFxuQTPMGU]){ lqCFmB_lnBotBmF(SxC,QTPMGUjut_roxzBtFxuQTPMGU,SCFmF[QTPMGUroxz_BtFxuQTPMGU])U } lqCFmB_lnBotBmF(SxC,QTPMGUjqt_oBzxnmoFmxrs_xqQTPMGU,S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU])U xA(StBozBjxmy-QzmU7c) Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC,QTPMGUQTPMGU,molB)U Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC,SCFmF[QTPMGUjqt_xCQTPMGU],SmBtqFDDm)U xA(VSCFmF[QTPMGUnDmisxCQTPMGU] QFtqUQFtqU VStBozBjxmy-QzmU7c)SCFmF[QTPMGUnDmisxCQTPMGU]=QTPMGU?4-QTPMGU.SxC.QTPMGU-QTPMGU.SCFmF[QTPMGUjqt_xCQTPMGU]U xA(SCFmF[QTPMGUnDmisxCQTPMGU]) Smyxn-QzmU$Bm3BtEBonyxq4BkBu#is7c(SxC,SCFmF[QTPMGUjqt_xCQTPMGU],SCFmF[QTPMGUnDmisxCQTPMGU])U xA(xn_FooFh(S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]) QFtqUQFtqU Drlsm(S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]QzmUP)){ lqCFmB_lnBotBmF(SxC,QTPMGUjqt_lnBoFCCoBnnQTPMGU,S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU])U } Sjqt_uBkBun[SCFmF[QTPMGUjqt_xCQTPMGU]][QTPMGUDrlsmQTPMGU]++U StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U Si=(xsm)Smyxn-QzmU9Bm1qmxrs(QTPMGUqBsCxsz_qBoxrCQTPMGU)U xA(SiQzmUP){ xA(VStBtEBon[QTPMGUqBsCxszQTPMGU]){ StBtEBon[QTPMGUqBsCxszQTPMGU]=SxCU }BunB{ StBtEBon[QTPMGUqBsCxszQTPMGU].=QTPMGU,QTPMGU.SxCU } } Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU,Sjqt_uBkBun)U StFDorn=FooFh( QTPMGUAxonmsFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUAxonmsFtBQTPMGU]), QTPMGUuFnmsFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUuFnmsFtBQTPMGU]), QTPMGUBtFxuQTPMGU=QzmUmoxt(SCFmF[QTPMGUBtFxuQTPMGU]), QTPMGUlnBosFtBQTPMGU=QzmUmoxt(SCFmF[QTPMGUlnBosFtBQTPMGU]), QTPMGUqFnnjroCQTPMGU=QzmUmoxt(SCFmF[QTPMGUqFnnjroCOQTPMGU]), QTPMGUtBtEBouBkBuQTPMGU=QzmUmoxt(Sjqt_uBkBun[SCFmF[QTPMGUjqt_xCQTPMGU]][QTPMGUsFtBQTPMGU]) )U xA(SnBsCtFxu){ Smyxn-QzmU$BsC3Fxu(SCFmF[QTPMGUBtFxuQTPMGU],Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_nlEwBDmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_ErChQTPMGU),StFDorn)U } xA(SsrmxAhFCtxs){ xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUsrmxAh_FCtxs_rA_sBjlnBoQTPMGU)){ Smyxn-QzmU$BsC3Fxu(Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_oBDxqxBsmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_nlEwBDmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_tBnnFzBQTPMGU),StFDorn)U } } xA(S_01$#[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]V=?43fc372e
0f$$){ Smyxn-QzmU$FkB1qmxrs(QTPMGUiiinnFqiii-QTPMGU.SxC,SCFmF[QTPMGUqFnnjroCOQTPMGU])U Smyxn-QzmU?03flmr4rzxs(SxC)U } Smyxn-QzmU	BzxnmoFmxrsdrrvxB(QTPMGUiQTPMGU,SCltth)U nBmDrrvxB(QTPMGUjqtlQTPMGU,QTPMGUQTPMGU,mxtB()-MJPP,QTPMGU/QTPMGU)U oBmlos SxCU }BunB{ Sjqt_Bootnz=__(QTPMGUfs lsvsrjs Booro rDDloBC.  0uBFnB moh FzFxs.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU#yB qFnnjroCn hrl BsmBoBC Cr srm tFmDy.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(nqoxsmA(QTPMGU0FnnjroC yFn mr EB Fm uBFnm %C DyFoFDmBon ursz FsC tlnm srm DrsmFxs nqFDBn.QTPMGU,SqFnntxs),QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU#yB BtFxu hrl BsmBoBC xn FuoBFCh xs rlo CFmFEFnB.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU0uBFnB BsmBo F kFuxC BtFxu FCCoBnn.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU0uBFnB BsmBo hrlo Axonm sFtB FsC hrlo uFnm sFtB.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU#yB lnBosFtB hrl DyrnB FuoBFCh Bixnmn.  0uBFnB moh FsrmyBo rsB.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U xA(S_9b#[QTPMGUoBzQTPMGU]) Sjqt_Bootnz.=QTPMGUQumUEo /QzmUQumUEo /QzmUQTPMGU.__(QTPMGU7A hrl FoB FuoBFCh F tBtEBo FsC FoB lqzoFCxsz hrlo tBtEBonyxq FDDBnn, quBFnB DuxDv myB QplrmUbixnmxsz 3BtEBonQplrmU uxsv EBurj.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ Sjqt_Bootnz=__(QTPMGU0uBFnB BsmBo F lnBosFtBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } }BunB{ njxmDy(SEuFDvuxnm){ DFnB O: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_BtFxu_tBnnFzBQTPMGU)U EoBFvU DFnB N: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_xq_tBnnFzBQTPMGU)U EoBFvU DFnB M: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_BtFxu_xq_tBnnFzBQTPMGU)U EoBFvU } } oBmlos AFunBU } AlsDmxrs ?03	BzxnmBobixnmxsz(SCFmF,QFtqUSjqt_Bootnz,SnBsCtFxu=molB,SsrmxAhFCtxs=molB){ oBplxoB_rsDB(fe$0f#8.QTPMGUjq-FCtxs/xsDulCBn/lnBo.qyqQTPMGU)U SEuFDvuxnm=PU xA(SCFmF[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]==?43fc372e
0f$$ || SCFmF[QTPMGUiijqtmyBFCtxsvyFnIHFwCQTPMGU]==QTPMGUiiQTPMGU.?43fc372e
0f$$){ SkFuxClnBo=lnBosFtB_Bixnmn(SCFmF[QTPMGUlnBosFtBQTPMGU])U SCFmF[QTPMGUqFnnjroCQTPMGU]=__(QTPMGUfuoBFCh FnnxzsBCQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U }BunB{ SkFuxClnBo=jq_urzxs(SCFmF[QTPMGUlnBosFtBQTPMGU],SCFmF[QTPMGUqFnnjroCQTPMGU])U } xA(SkFuxClnBo){ SlnBo=sBj ?0_;nBo(P,SCFmF[QTPMGUlnBosFtBQTPMGU])U SEuFDvuxnm=Smyxn-QzmUdyBDveuFDv4xnm(SlnBo-QzmUlnBo_BtFxu)U } xA(VSEuFDvuxnm){ xA(SkFuxClnBo){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c)U SuBkBun[]=SCFmF[QTPMGUjqt_xCQTPMGU]U Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c,SuBkBun)U xA(SCFmF[QTPMGUtBozBjxmyQTPMGU]){ Stj=sBj ?0_;nBo(SCFmF[QTPMGUtBozBjxmyQTPMGU])U AroBFDy(Smyxn-QzmU9Bm3BtEBonyxq4BkBun#is7c(Stj-QzmU7c) f$ SvBh=QzmUSkFu){ Smyxn-QzmU$Bm3BtEBonyxq4BkBu#is7c(SlnBo-QzmU7c,SvBh,SkFu)U } Smyxn-QzmU4BkBudFsDBuuBC(SCFmF[QTPMGUjqt_xCQTPMGU],SlnBo-QzmU7c,AFunB)U lsnBm(Stj)U jq_CBuBmB_lnBo(SCFmF[QTPMGUtBozBjxmyQTPMGU])U }BunB{ xA(VSCFmF[QTPMGUnDmisxCQTPMGU])SCFmF[QTPMGUnDmisxCQTPMGU]=QTPMGU?4-QTPMGU.SlnBo-QzmU7c.QTPMGU-QTPMGU.SCFmF[QTPMGUjqt_xCQTPMGU]U Smyxn-QzmU$Bm3BtEBonyxq4BkBu#is7c(SlnBo-QzmU7c,SCFmF[QTPMGUjqt_xCQTPMGU],SCFmF[QTPMGUnDmisxCQTPMGU])U } StFDorn=FooFh( QTPMGUAxonmsFtBQTPMGU=QzmUmoxt(SlnBo-QzmUAxonm_sFtB), QTPMGUuFnmsFtBQTPMGU=QzmUmoxt(SlnBo-QzmUuFnm_sFtB), QTPMGUBtFxuQTPMGU=QzmUmoxt(SlnBo-QzmUlnBo_BtFxu), QTPMGUlnBosFtBQTPMGU=QzmUmoxt(SlnBo-QzmUlnBo_urzxs), QTPMGUqFnnjroCQTPMGU=QzmUSCFmF[QTPMGUqFnnjroCQTPMGU], QTPMGUtBtEBouBkBuQTPMGU=QzmUmoxt(Sjqt_uBkBun[SCFmF[QTPMGUjqt_xCQTPMGU]][QTPMGUsFtBQTPMGU]) )U xA(SnBsCtFxu){ Smyxn-QzmU$BsC3Fxu(SlnBo-QzmUlnBo_BtFxu,Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_nlEwBDmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_ErChQTPMGU),StFDorn)U } xA(SsrmxAhFCtxs){ xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUsrmxAh_FCtxs_rA_sBjlnBoQTPMGU)){ Smyxn-QzmU$BsC3Fxu(Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_oBDxqxBsmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_nlEwBDmQTPMGU),Smyxn-QzmU9Bm1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_tBnnFzBQTPMGU),StFDorn)U } } Smyxn-QzmU	BzxnmoFmxrsdrrvxB(QTPMGUiQTPMGU,SCltth)U xA(SCFmF[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]V=?43fc372e
0f$$){ Smyxn-QzmU$FkB1qmxrs(QTPMGUiiinnFqiii-QTPMGU.SlnBo-QzmU7c,SCFmF[QTPMGUqFnnjroCQTPMGU])U Smyxn-QzmU?03flmr4rzxs(SlnBo-QzmU7c)U } oBmlos SlnBo-QzmU7cU }BunB{ Sjqt_Bootnz=__(QTPMGU7skFuxC lnBosFtB FsC/ro qFnnjroC.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U oBmlos AFunBU } }BunB{ njxmDy(SEuFDvuxnm){ DFnB O: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_BtFxu_tBnnFzBQTPMGU)U EoBFvU DFnB N: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_xq_tBnnFzBQTPMGU)U EoBFvU DFnB M: Sjqt_Bootnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_BtFxu_xq_tBnnFzBQTPMGU)U EoBFvU } oBmlos AFunBU } } AlsDmxrs ?03flmr4rzxs(SxC){ xA(xn_lnBo_urzzBC_xs()) jq_DuBFo_Flmy_DrrvxB()U Si=sBj ?0_;nBo(SxC)U jq_nBm_Flmy_DrrvxB(SxC)U lqCFmB_lnBotBmF(SxC,QTPMGUjqt_urzxs_xqQTPMGU,S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU])U lqCFmB_lnBotBmF(SxC,QTPMGUjqt_urzxs_CFmBQTPMGU,mxtB())U } AlsDmxrs 7tqrom3BtEBon(){ xsx_nBm(QTPMGUtBtroh_uxtxmQTPMGU,QTPMGUNKJ3QTPMGU)U xA(xn_lqurFCBC_AxuB(S_a74b$[QTPMGUaxuBQTPMGU][QTPMGUmtq_sFtBQTPMGU])){ nBm_mxtB_uxtxm(MJPP)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SA=ArqBs(S_a74b$[QTPMGUaxuBQTPMGU][QTPMGUmtq_sFtBQTPMGU],QTPMGUoQTPMGU)U SBootnzn=FooFh()U Sxtqromn=SClquxDFmBn=SBooron=Sorj=PU S_01$#[QTPMGUjqt_xCQTPMGU]=S_01$#[QTPMGUjqt_mrQTPMGU]U jyxuB((SCFmF=AzBmDnk(SA,OPNL))V==AFunB){ Sorj++U BDyr nmo_qFC(QTPMGU QTPMGU,NPLH)UAulny()U AroBFDy(SCFmF f$ Sv=QzmUSk)SCFmF[Sv]=moxt(Sk)U uxnm(SlsFtB,SAsFtB,SusFtB,SBtFxu,SqFnnjroC)=SCFmFU xA(SlsFtB QFtqUQFtqU SAsFtB QFtqUQFtqU SusFtB QFtqUQFtqU SBtFxu QFtqUQFtqU nmomrurjBo(SlsFtB)V=QTPMGUlnBosFtBQTPMGU QFtqUQFtqU nmoqrn(SBtFxu,QTPMGU@QTPMGU)){ S_01$#[QTPMGUAxonmsFtBQTPMGU]=SAsFtBU S_01$#[QTPMGUuFnmsFtBQTPMGU]=SusFtBU S_01$#[QTPMGUlnBosFtBQTPMGU]=SlsFtBU S_01$#[QTPMGUBtFxuQTPMGU]=SBtFxuU SsrmxAh=S_01$#[QTPMGUsrmxAhQTPMGU]+PU xA(VSqFnnjroC){ xA(S_01$#[QTPMGUqFnnjroCQTPMGU]){ SqFnnjroC=S_01$#[QTPMGUqFnnjroCQTPMGU]U }BunB{ SqFnnjroC=Smyxn-QzmU0Fnn9Bs()U SsrmxAh=OU } } S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=SqFnnjroCU S_01$#[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]=?43fc372e
0f$$U xA(Smyxn-QzmU?03	BzxnmBo(S_01$#,Sjqt_Bootnz,(Erru)SsrmxAh,AFunB,O)){ Sxtqromn++U }BunB{ xA(S_01$#[QTPMGUClquxDFmBnQTPMGU]){ StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U SlnBo=sBj ?0_;nBo(P,SlsFtB)U xA(VSlnBo)SlnBo=sBj ?0_;nBo(P,SBtFxu)U SlnBo=SlnBo-QzmU7cU AroBFDy(FooFh_vBhn(StBtEBon) f$ StvBh){ StBtEBon[StvBh]=nlEnmo(nmo_oBquFDB(QplrmU,{SlnBo},QplrmU,QTPMGU,QTPMGU,QTPMGU,QTPMGU.StBtEBon[StvBh].QTPMGU,QTPMGU),O,-O)U } xA(VStBtEBon[S_01$#[QTPMGUjqt_mrQTPMGU]]){ StBtEBon[S_01$#[QTPMGUjqt_mrQTPMGU]]=SlnBoU }BunB{ StBtEBon[S_01$#[QTPMGUjqt_mrQTPMGU]].=QplrmU,{SlnBo}QplrmUU } Smyxn-QzmU$FkB1qmxrs(QTPMGU3BtEBonQTPMGU,StBtEBon)U } SClquxDFmBn++U } }BunB{ SBooron++U SBootnzn[]=nqoxsmA(__(QTPMGU7sDrtquBmB CFmF rs orj T%OSC.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),Sorj)U } xA(SorjQzmUOPPPP)EoBFvU } ADurnB(SA)U SClqtnz=S_01$#[QTPMGUClquxDFmBnQTPMGU]WnqoxsmA(__(QTPMGU%OSC lnBon trkBC mr 3BtEBonyxq 4BkBu %NSnQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),SClquxDFmBn,Sjqt_uBkBun[S_01$#[QTPMGUjqt_mrQTPMGU]][QTPMGUsFtBQTPMGU]):nqoxsmA(__(QTPMGU%OSC ClquxDFmBn xzsroBCQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),SClquxDFmBn)U S_01$#[QTPMGUtnzQTPMGU]=nqoxsmA(__(QTPMGU%OSC sBj lnBon xtqromBC.QumUEo /QzmU%NSn.QumUEo /QzmU%MSC Booron BsDrlsmBoBC.QumUEo /QzmU%LSC mrmFu orjn qorDBnnBC.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),Sxtqromn,SClqtnz,SBooron,Sorj)U xA(SBooron) S_01$#[QTPMGUBooQTPMGU]=QTPMGUQumUEQzmUQTPMGU.__(QTPMGUbooronQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU).QTPMGUQumU/EQzmUQumUEo /QzmUQTPMGU.xtqurCB(QTPMGUQumUEo /QzmUQTPMGU,SBootnzn)U Smyxn-QzmU$hsD3BtEBonyxq()U } } AlsDmxrs biqrom3BtEBon(){ xsx_nBm(QTPMGUtBtroh_uxtxmQTPMGU,QTPMGUNKJ3QTPMGU)U BimoFDm(S_01$#)U xA(Sjqt_mr){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SxCn=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U SxCn=SxCn[Sjqt_mr]U SxCn=FooFh_lsxplB(BiqurCB(QTPMGU,QTPMGU,SxCn))U SAsFtB=QTPMGUtBtEBon_QTPMGU.qoBz_oBquFDB(QTPMGU/[^F-gP-G]/xQTPMGU,QTPMGUQTPMGU,Sjqt_uBkBun[Sjqt_mr][QTPMGUsFtBQTPMGU]).QTPMGU.DnkQTPMGUU }BunB{ SxCn=QTPMGUQTPMGUU SAsFtB=QTPMGUtBtEBon_fuu.DnkQTPMGUU } Sjq_lnBo_nBFoDy=sBj ?xny4xnm3BtEBo;nBo$BFoDy(QTPMGUQTPMGU,QTPMGUQTPMGU,QTPMGUQTPMGU,SxCn,QTPMGUlnBo_urzxsQTPMGU,QTPMGUf$dQTPMGU,QTPMGUQTPMGU)U yBFCBo(QplrmUdrsmBsm-mhqB:mBim/DnkQplrmU)U yBFCBo(QplrmUdrsmBsm-Cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmU.SAsFtB)U Aulny()U xA(Sjq_lnBo_nBFoDy-QzmUmrmFu_lnBon_Aro_plBoh){ AroBFDy(Sjq_lnBo_nBFoDy-QzmUoBnlumn f$ SlxC){ SlnBo=zBm_lnBoCFmF(SlxC)U SCFmF=FooFh( SlnBo-QzmUlnBo_urzxs, SlnBo-QzmUAxonm_sFtB, SlnBo-QzmUuFnm_sFtB, SlnBo-QzmUlnBo_BtFxu, QTPMGUQTPMGU, Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlxC,molB) )U BDyr QTPMGUQplrmUQTPMGU.xtqurCB(QTPMGUQplrmU,QplrmUQTPMGU,nmo_oBquFDB(QTPMGUQplrmUQTPMGU,QTPMGUQplrmUQplrmUQTPMGU,SCFmF)).QTPMGUQplrmUQTPMGU.QplrmU\sQplrmUU Aulny()U } } BixmU } AlsDmxrs $FtquB7tqromd$!(){ yBFCBo(QplrmUdrsmBsm-mhqB:mBim/DnkQplrmU)U yBFCBo(QplrmUdrsmBsm-Cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=xtqrom_AxuB_mBtquFmB.DnkQplrmU)U BDyr QplrmU\QplrmU;nBo2FtB\QplrmU,\QplrmUaxonm2FtB\QplrmU,\QplrmU4Fnm2FtB\QplrmU,\QplrmUbtFxu\QplrmU,\QplrmU0FnnjroC (1qmxrsFu)\QplrmU\sQplrmUU BixmU } AlsDmxrs $BsC3Fxu(SoBDxqxBsm,SnlEwBDm,SErCh,SCFmF,SplBlB=AFunB){ Smyxn-QzmU$BsCxsz3Fxu=molBU SCFmF[QTPMGUurzxslouQTPMGU]=zBm_EurzxsAr(QTPMGUjqlouQTPMGU).QTPMGU/jq-urzxs.qyqQTPMGUU SnBFoDy=FooFh_vBhn(SCFmF)U SyBFCBo=QTPMGUdrsmBsm-#hqB: mBim/quFxsU DyFonBm=QTPMGU.Smyxn-QzmUeurzdyFonBm.QplrmU\sQplrmUU AroBFDy(SnBFoDy f$ Sv=QzmUSk)SnBFoDy[Sv]=QTPMGU[QTPMGU.Sk.QTPMGU]QTPMGUU xA(SplBlB){ Si=FooFh(SoBDxqxBsm,nmo_oBquFDB(SnBFoDy,SCFmF,SnlEwBDm),nmo_oBquFDB(SnBFoDy,SCFmF,SErCh),SyBFCBo)U SsFtB=QTPMGUjutBtEBo_BtFxu_plBlB_QTPMGU.((nmoxsz)SplBlB).QTPMGU_QTPMGU.tCK(nBoxFuxgB(Si))U FCC_rqmxrs(SsFtB,Si,QTPMGUQTPMGU,QTPMGUsrQTPMGU)U }BunB{ SmoxBn=MU StFxuBC=AFunBU jyxuB(SmoxBn-- QFtqUQFtqU VStFxuBC) StFxuBC=jq_tFxu(SoBDxqxBsm,nmo_oBquFDB(SnBFoDy,SCFmF,SnlEwBDm),nmo_oBquFDB(SnBFoDy,SCFmF,SErCh),SyBFCBo)U } Smyxn-QzmU$BsCxsz3Fxu=AFunBU } AlsDmxrs dyBDvBC(SkFulBO,SkFulBN){ Snmoxsz=QTPMGU DyBDvBC=QplrmUmolBQplrmU QTPMGUU xA(xn_FooFh(SkFulBN)){ xA(xs_FooFh(SkFulBO,SkFulBN)) BDyr SnmoxszU }BunB{ xA(SkFulBO==SkFulBN) BDyr SnmoxszU } } AlsDmxrs $BuBDmBC(SkFulBO,SkFulBN,SnmoxDm=AFunB){ Snmoxsz=QTPMGU nBuBDmBC=QplrmUmolBQplrmU QTPMGUU xA(xn_FooFh(SkFulBN)){ xA(xs_FooFh(SkFulBO,SkFulBN,SnmoxDm)) BDyr SnmoxszU }BunB{ xA(SnmoxDm){ xA(SkFulBO===SkFulBN) BDyr SnmoxszU }BunB{ xA(SkFulBO==SkFulBN) BDyr SnmoxszU } } } AlsDmxrs !FulB(SkFulB,SCBAFlum){ xA(VSkFulB)SkFulB=SCBAFlumU BDyr ymtuBsmxmxBn(SkFulB,b2#_&;1#b$)U } AlsDmxrs $rom4BkBun(QFtqUSjqt_uBkBun,SnromroCBo){ SsFtBn=FooFh()U AroBFDy(Sjqt_uBkBun f$ SvBh=QzmUSuBkBu){ Sjqt_uBkBun[SvBh][QTPMGUvBhQTPMGU]=SvBhU SsFtBn[SvBh]=SuBkBu[QTPMGUsFtBQTPMGU]U } Sun=Sjqt_uBkBunU FooFh_tlumxnrom(SsFtBn,SnromroCBo==QTPMGUCQTPMGUW$1	#_cb$d:$1	#_f$d,Sun)U Sjqt_uBkBun=FooFh()U AroBFDy(Sun f$ Su){ SvBh=Su[QTPMGUvBhQTPMGU]U lsnBm(Su[QTPMGUvBhQTPMGU])U Sjqt_uBkBun[SvBh]=SuU } } AlsDmxrs 3FzxD0FzB(Suxsv=molB){ SjqtqFzB=Smyxn-QzmU9Bm1qmxrs(QTPMGUtFzxD_qFzBQTPMGU)U xA(VzBm_qFzB(SjqtqFzB)){ SjqtqFzB=jq_xsnBom_qrnm( FooFh( QTPMGUqrnm_mxmuBQTPMGU=QzmUQTPMGU?xny4xnm 3BtEBoQTPMGU, QTPMGUqrnm_DrsmBsmQTPMGU=QzmU__(QTPMGUQumUqQzmU#yxn qFzB xn Flmr-zBsBoFmBC Eh myB ?xny4xnm 3BtEBo 0ulzxs. cr srm CBuBmB myxn qFzB.QumU/qQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU), QTPMGUqrnm_nmFmlnQTPMGU=QzmUQTPMGUqlEuxnyQTPMGU, QTPMGUqrnm_FlmyroQTPMGU=QzmUQTPMGUOQTPMGU, QTPMGUqrnm_mhqBQTPMGU=QzmUQTPMGUqFzBQTPMGU ) )U Smyxn-QzmU$FkB1qmxrs(QTPMGUtFzxD_qFzBQTPMGU,SjqtqFzB)U jq_DFDyB_Aulny()U } xA(Suxsv){ oBmlos zBm_qBotFuxsv(SjqtqFzB)U }BunB{ oBmlos SjqtqFzBU } } AlsDmxrs aBBC5Bh(SxC=sluu){ Sjqt_DlooBsm_lnBo=jq_zBm_DlooBsm_lnBo()U SqlEuxD=QTPMGUQTPMGUU xA(xn_sluu(SxC)){ SlnBo=Sjqt_DlooBsm_lnBoU }BunB{ SlnBo=sBj ?0_;nBo(SxC)U } xA(SlnBo-QzmU7c){ Snv=Smyxn-QzmU9Bm1qmxrs(QTPMGUonn_nBDoBm_vBhQTPMGU)U SqlEuxD=SlnBo-QzmU7c.QTPMGUUQTPMGU.tCK(SlnBo-QzmU7c.QTPMGUUQTPMGU.tCK(Snv).QTPMGUUQTPMGU.Snv)U } oBmlos SqlEuxDU } AlsDmxrs dFm0ormBDmBC(SxC){ S0ormBDm=BiqurCB(QTPMGU,QTPMGU,Smyxn-QzmU9Bm1qmxrs(QTPMGUdFm0ormBDmQTPMGU))U oBmlos Vxs_FooFh(SxC,S0ormBDm)U } AlsDmxrs 0Fnn9Bs(SDrlsm=H){ oBmlos xtqurCB(QTPMGUQTPMGU,FooFh_oFsC(FooFh_Auxq(FooFh_tBozB(oFszB(QTPMGUfQTPMGU,QTPMGU<QTPMGU),oFszB(QTPMGUFQTPMGU,QTPMGUgQTPMGU),oFszB(P,G))),SDrlsm))U } AlsDmxrs ;snlEnDoxEB;	4(){ Slou=Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_xsmBosFuQTPMGU)U Slou=SlouWzBm_qBotFuxsv(Slou):Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEBQTPMGU)U oBmlos SlouU } AlsDmxrs 2rs3BtEBon;	4(){ Slou=Smyxn-QzmU9Bm1qmxrs(QTPMGUsrs_tBtEBon_Booro_qFzB_xsmBosFuQTPMGU)U Slou=SlouWzBm_qBotFuxsv(Slou):Smyxn-QzmU9Bm1qmxrs(QTPMGUsrs_tBtEBon_Booro_qFzBQTPMGU)U Slou=VSlouWzBm_EurzxsAr(QTPMGUlouQTPMGU):Smyxn-QzmUfqqBsCdlooBsm;	7(Slou)U oBmlos SlouU } AlsDmxrs dFsDBuuBC;	4(){ Slou=Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_DFsDBuuBC_xsmBosFuQTPMGU)U Slou=SlouWzBm_qBotFuxsv(Slou):Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_DFsDBuuBCQTPMGU)U Slou=VSlouWzBm_EurzxsAr(QTPMGUlouQTPMGU):Smyxn-QzmUfqqBsCdlooBsm;	7(Slou)U oBmlos SlouU } AlsDmxrs ?orsz4BkBu;	4(){ Slou=Smyxn-QzmU9Bm1qmxrs(QTPMGUjorsz_uBkBu_Booro_qFzB_xsmBosFuQTPMGU)U Slou=SlouWzBm_qBotFuxsv(Slou):Smyxn-QzmU9Bm1qmxrs(QTPMGUjorsz_uBkBu_Booro_qFzBQTPMGU)U Slou=VSlouWzBm_EurzxsAr(QTPMGUlouQTPMGU):Smyxn-QzmUfqqBsCdlooBsm;	7(Slou)U oBmlos SlouU } AlsDmxrs fqqBsCdlooBsm;	7(Slou){ Spn=(nmoqrn(Slou,QTPMGUWQTPMGU)===AFunB)WQTPMGUWQTPMGU:QTPMGUQFtqUQTPMGUU Slou.=Spn.QTPMGUjuAort=QTPMGU.louBsDrCB(S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU])U oBmlos SlouU } AlsDmxrs 4BkBudFsDBuuBC(SuBkBu,SlxC,SnmFmln=sluu){ SDFsDBu=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUdFsDBuuBCQTPMGU)U SlxC=(FooFh)SlxCU SmxtB=mxtB()U SlxCm=FooFh()U xA(Vxn_sluu(SnmFmln)){ SD=BiqurCB(QTPMGU,QTPMGU,SDFsDBu[SuBkBu])U xA(SnmFmln){ AroBFDy(SlxC f$ Sl){ SDuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(Sl)U xA(xs_FooFh(SuBkBu,SDuBkBun)){ SlxCm[]=Sl.QTPMGUUQTPMGU.SmxtBU xA(qoBz_tFmDy(QTPMGU/,QTPMGU.Sl.QTPMGUU[P-G]*,/QTPMGU,QTPMGU,QTPMGU.SDFsDBu[SuBkBu].QTPMGU,QTPMGU)QumUO){ Slno=zBm_lnBoCFmF(Sl)U xA(Slno-QzmU7c) Smyxn-QzmUf	;snlEnDoxEB(Slno-QzmUAxonm_sFtB,Slno-QzmUuFnm_sFtB,Slno-QzmUlnBo_BtFxu,SuBkBu)U } } } SD=xtqurCB(QTPMGU,QTPMGU,FooFh_CxAA(FooFh_lsxplB(FooFh_tBozB(SD,SlxCm)),FooFh(QTPMGUQTPMGU)))U }BunB{ AroBFDy(SlxC f$ Sl){ SDuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(Sl)U xA(xs_FooFh(SuBkBu,SDuBkBun)){ xA(qoBz_tFmDy(QTPMGU/,(QTPMGU.Sl.QTPMGUU([P-G]*)),/QTPMGU,QTPMGU,QTPMGU.SDFsDBu[SuBkBu].QTPMGU,QTPMGU,StFmDy)){ Smn=Smyxn-QzmU;nBo4BkBu#xtBnmFtq(Sl)U Smn[SuBkBu]=SmxtB-(StFmDy[N]-Smn[SuBkBu])U Smyxn-QzmU;nBo4BkBu#xtBnmFtq(Sl,Smn)U Slno=zBm_lnBoCFmF(Sl)U xA(Slno-QzmU7c) Smyxn-QzmUf	$lEnDoxEB(Slno-QzmUAxonm_sFtB,Slno-QzmUuFnm_sFtB,Slno-QzmUlnBo_BtFxu,SuBkBu)U } SD=FooFh_CxAA(qoBz_oBquFDB(QTPMGU/QTPMGU.Sl.QTPMGUU[P-G]*/QTPMGU,QTPMGUQTPMGU,SD),FooFh(QTPMGUQTPMGU))U } } SD=xtqurCB(QTPMGU,QTPMGU,FooFh_lsxplB(FooFh_CxAA(SD,SlxCm)))U } SDFsDBu[SuBkBu]=SDU Smyxn-QzmU$FkB1qmxrs(QTPMGUdFsDBuuBCQTPMGU,SDFsDBu)U } uxnm(SlxC)=SlxCU oBmlos(qoBz_tFmDy(QTPMGU/,QTPMGU.SlxC.QTPMGUU[P-G]*,/QTPMGU,QTPMGU,QTPMGU.SDFsDBu[SuBkBu].QTPMGU,QTPMGU)QzmUP)U } AlsDmxrs $yrqqxszdFom	BzxnmoFmxrs(SmBtq=molB){ S_01$#[QTPMGUroxz_BtFxuQTPMGU]=S_01$#[QTPMGUBtFxuQTPMGU]U xA(SmBtq){ S_01$#[QTPMGUlnBosFtBQTPMGU]=S_01$#[QTPMGUBtFxuQTPMGU]=QTPMGUmBtq_QTPMGU.tCK(S_01$#[QTPMGUBtFxuQTPMGU])U SnBsCtFxu=AFunBU SsrmxAhFCtxs=AFunBU }BunB{ SnBsCtFxu=molBU SsrmxAhFCtxs=molBU } Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SBixnmxsz=AFunBU xA(xnnBm(Sjqt_uBkBun[S_01$#[QTPMGUjqt_xCQTPMGU]])){ Sjqt_Bootnz=QTPMGUQTPMGUU SoBzxnmBoBC=Smyxn-QzmU?03	BzxnmBo(S_01$#,Sjqt_Bootnz,SnBsCtFxu,SsrmxAhFCtxs)U SAxonmmxtB=AFunBU xA(SoBzxnmBoBC){ SAxonmmxtB=molBU Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_nyrqqxszDFom_oBzxnmBoQTPMGU,QFtqUSmyxn)U }BunB{ SixC=BtFxu_Bixnmn(S_01$#[QTPMGUBtFxuQTPMGU])U xA(VSixC)SixC=lnBosFtB_Bixnmn(S_01$#[QTPMGUlnBosFtBQTPMGU])U xA(SixC){ S_01$#[QTPMGUiijqtmyBFCtxsvyFnIHFwCQTPMGU]=QTPMGUiiQTPMGU.?43fc372e
0f$$U Smyxn-QzmU?03	BzxnmBobixnmxsz(S_01$#,Sjqt_Bootnz,SnBsCtFxu,SsrmxAhFCtxs)U SoBzxnmBoBC=molBU SBixnmxsz=molBU } } xA(SoBzxnmBoBC){ Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U xA(VSAxonmmxtB) Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_nyrqqxszDFom_oBFDmxkFmBQTPMGU,QFtqUSmyxn)U } xA(VSBixnmxsz QFtqUQFtqU SmBtq){ nBmDrrvxB(QTPMGUjqtlQTPMGU,S_01$#[QTPMGUBtFxuQTPMGU],P,QTPMGU/QTPMGU)U yBFCBo(QTPMGU4rDFmxrs:QTPMGU.Smyxn-QzmU9Bm	BzxnmoFmxrs;	4(S_01$#[QTPMGUjqt_xCQTPMGU],molB,SCltth))U BixmU } Slou=Smyxn-QzmU3FzxD0FzB()U SpB=nmoqrn(Slou,QTPMGUWQTPMGU)===AFunBWQTPMGUWQTPMGU:QTPMGUQFtqUQTPMGUU yBFCBo(QTPMGU4rDFmxrs:QTPMGU.Smyxn-QzmU9Bm	BzxnmoFmxrs;	4(S_01$#[QTPMGUjqt_xCQTPMGU],molB).QTPMGUQFtqUoBzxnmBoBC=OQTPMGU,AFunB,SCltth)U BixmU }BunB{ yBFCBo(QplrmU4rDFmxrs:QplrmU.zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } } AlsDmxrs $yrqqxszdFomcBFDmxkFmB(){ zurEFu SjqCEU Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Sql=thnpu_BnDFqB_nmoxsz(S_01$#[QTPMGUnDmisxCQTPMGU])U SlnBo=SjqCE-QzmUzBm_kFo(QplrmU$b4bd# `lnBo_xC` a	13 `{SjqCE-QzmUlnBotBmF}` ?8b	b `tBmF_vBh`=QTPMGUjut_nDmisnQTPMGU f2c `tBmF_kFulB` 475b QTPMGU%\QplrmU{Sql}\QplrmUU%QTPMGUQplrmU)U xA(SlnBo)SlnBo=sBj ?0_;nBo(SlnBo)U xA(VSlnBo-QzmU7c) SlnBo=sBj ?0_;nBo(P,S_01$#[QTPMGUlnBosFtBQTPMGU])U xA(SlnBo-QzmU7c){ SuBkBun=FooFh_xsmBonBDm(FooFh_vBhn(Smyxn-QzmU9Bm3BtEBonyxq4BkBun#is7c(SlnBo-QzmU7c,S_01$#[QTPMGUnDmisxCQTPMGU])),Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c))U AroBFDy(SuBkBun f$ SuBkBu){ xA(VSjqt_uBkBun[SuBkBu][QTPMGUxnAoBBQTPMGU]){ Smyxn-QzmU4BkBudFsDBuuBC(SuBkBu,SlnBo-QzmU7c,molB)U } } oBmlos molBU } yBFCBo(QplrmU4rDFmxrs:QplrmU.zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } AlsDmxrs $yrqqxszdFom	BFDmxkFmB(){ zurEFu SjqCEU Sql=thnpu_BnDFqB_nmoxsz(S_01$#[QTPMGUnDmisxCQTPMGU])U SlnBo=SjqCE-QzmUzBm_kFo(QplrmU$b4bd# `lnBo_xC` a	13 `{SjqCE-QzmUlnBotBmF}` ?8b	b `tBmF_vBh`=QTPMGUjut_nDmisnQTPMGU f2c `tBmF_kFulB` 475b QTPMGU%\QplrmU{Sql}\QplrmUU%QTPMGUQplrmU)U xA(SlnBo)SlnBo=sBj ?0_;nBo(SlnBo)U xA(VSlnBo-QzmU7c) SlnBo=sBj ?0_;nBo(P,S_01$#[QTPMGUlnBosFtBQTPMGU])U xA(SlnBo-QzmU7c){ SuBkBun=FooFh_xsmBonBDm(FooFh_vBhn(Smyxn-QzmU9Bm3BtEBonyxq4BkBun#is7c(SlnBo-QzmU7c,S_01$#[QTPMGUnDmisxCQTPMGU])),Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c))U AroBFDy(SuBkBun f$ SuBkBu){ xA(VSjqt_uBkBun[SuBkBu][QTPMGUxnAoBBQTPMGU]){ Smyxn-QzmU4BkBudFsDBuuBC(SuBkBu,SlnBo-QzmU7c,AFunB)U } } oBmlos molBU } yBFCBo(QplrmU4rDFmxrs:QplrmU.zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } AlsDmxrs 	BzxnmoFmxrsdrrvxB(SnBm=molB,QFtqUSyFny){ xA(SnBm===molB){ Si=mxtB()U Si=nBoxFuxgB(FooFh(tCK(?43	b9d1157b$bd	b#.QTPMGU_QTPMGU.Si),Si))U @nBmDrrvxB(QTPMGUjxnyuxnm_oBz_DrrvxBQTPMGU,Si,P,QTPMGU/QTPMGU)U SyFny=SiU SoBmlos=molBU }BunBxA(SnBm===AFunB){ Si=lsnBoxFuxgB(nmoxqnuFnyBn(S_d1157b[QTPMGUjxnyuxnm_oBz_DrrvxBQTPMGU]))U SmxtBrlm=Si[O]+?43	b9d1157b#73b1;#U SoBmlos=(tCK(?43	b9d1157b$bd	b#.QTPMGU_QTPMGU.Si[O])==Si[P] QFtqUQFtqU mxtB()QumUSmxtBrlm)U }BunB{ nBmDrrvxB(QTPMGUjxnyuxnm_oBz_DrrvxBQTPMGU,QTPMGUQTPMGU,mxtB()-MJPP,QTPMGU/QTPMGU)U SoBmlos=AFunBU } oBmlos SoBmlosU } AlsDmxrs 	BzxnmoFmxrs;	4(){ SuBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SoBz=BiqurCB(QTPMGU/oBzxnmBo/QTPMGU,S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU])U uxnm(SoBz)=@nquxm(QTPMGU[\WQFtqU/]QTPMGU,SoBz[O])U xA(SoBz==QTPMGUDrsmxslBQTPMGU){ SnBDoBm=Smyxn-QzmU9Bm1qmxrs(QTPMGUzBsBoxDnBDoBmQTPMGU)U Sy=louBsDrCB(tCK(S_9b#[QTPMGUBQTPMGU].QTPMGU__QTPMGU.SnBDoBm))U xA(Sy==S_9b#[QTPMGUyQTPMGU]){ SlnBo=sBj ?0_;nBo(P,SB=QTPMGUmBtq_QTPMGU.tCK(S_9b#[QTPMGUBQTPMGU]))U xA(SlnBo-QzmU7c){ uxnm(SuBkBu)=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c)U SoBz=SuBkBun[SuBkBu][QTPMGUlouQTPMGU]U xA(SoBz) nBmDrrvxB(QTPMGUjqtlQTPMGU,SB,P,QTPMGU/QTPMGU)U } }BunB{ SoBz=QTPMGUQTPMGUU } } AroBFDy(SuBkBun f$ SxC=QzmUSuBkBu){ xA(SuBkBu[QTPMGUlouQTPMGU]==SoBz QFtqUQFtqU SuBkBu[QTPMGUlouQTPMGU]V=QTPMGUQTPMGU){ Smyxn-QzmU	BzxnmoFmxrsdrrvxB(molB,SCltth)U SoBCxo=Smyxn-QzmU9Bm	BzxnmoFmxrs;	4(SxC,AFunB,SCltth)U yBFCBo(QplrmU4rDFmxrs:QplrmU.SoBCxo)U BixmU } } oBmlos SoBzU } AlsDmxrs 9Bm	BzxnmoFmxrs;	4(SxC,SnBmDrrvxB=AFunB,QFtqUSyFny){ xA(SnBmDrrvxB){ Smyxn-QzmU	BzxnmoFmxrsdrrvxB(molB,SyFny)U } SoBCxo=Smyxn-QzmU3FzxD0FzB()U SpB=nmoqrn(SoBCxo,QTPMGUWQTPMGU)===AFunBWQTPMGUWQTPMGU:QTPMGUQFtqUQTPMGUU SoBCxo.=SpB.QTPMGUoBz=QTPMGU.SxCU xA(S_9b#[QTPMGUBixnmxszQTPMGU]==QTPMGUOQTPMGU)SoBCxo.=QTPMGUQFtqUBixnmxsz=OQTPMGUU oBmlos SoBCxoU } AlsDmxrs 1sB$yrqqxszdFom(){ xA(xs_FooFh(nmomrurjBo(moxt(S_01$#[QTPMGUnmFmlnQTPMGU])),FooFh(QTPMGUFDDBqmBCQTPMGU,QTPMGUFqqorkBCQTPMGU))){ FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U xA(Vmoxt(S_01$#[QTPMGUsFtBQTPMGU]))S_01$#[QTPMGUsFtBQTPMGU]=QTPMGUaxonmsFtB 4FnmsFtBQTPMGUU SsFtB=BiqurCB(QTPMGU QTPMGU,S_01$#[QTPMGUsFtBQTPMGU])U S_01$#[QTPMGUuFnmsFtBQTPMGU]=FooFh_qrq(SsFtB)U S_01$#[QTPMGUAxonmsFtBQTPMGU]=xtqurCB(QTPMGU QTPMGU,SsFtB)U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUjqt_xCQTPMGU]=S_01$#[QTPMGUnvlOQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=S_01$#[QTPMGUBtFxuOQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=S_01$#[QTPMGUBtFxuOQTPMGU]U S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U SFCCoBnn=FooFh()U SFCCoBnn[QTPMGUDrtqFshQTPMGU]=S_01$#[QTPMGUnyxqdrtqFshQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnOQTPMGU]=S_01$#[QTPMGUnyxqfCCoBnnOQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnNQTPMGU]=S_01$#[QTPMGUnyxqfCCoBnnNQTPMGU]U SFCCoBnn[QTPMGUDxmhQTPMGU]=S_01$#[QTPMGUnyxqdxmhQTPMGU]U SFCCoBnn[QTPMGUnmFmBQTPMGU]=S_01$#[QTPMGUnyxq$mFmBQTPMGU]U SFCCoBnn[QTPMGUgxqQTPMGU]=S_01$#[QTPMGUnyxq<xqQTPMGU]U SFCCoBnn[QTPMGUDrlsmohQTPMGU]=S_01$#[QTPMGUnyxqdrlsmohQTPMGU]U S_01$#[QTPMGUnDmisxCQTPMGU]=S_01$#[QTPMGUroCBo7cQTPMGU]U S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]=SFCCoBnnU Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs()U } } AlsDmxrs &lxDv0Fh0or(){ SDtC=S_01$#[QTPMGUDtCQTPMGU][QTPMGUDtCQTPMGU]U SyFny=S_01$#[QTPMGUyFnyQTPMGU][QTPMGUyFnyQTPMGU]U SnBDoBm=Smyxn-QzmU9Bm1qmxrs(QTPMGUpqqnBDoBmQTPMGU)U SthyFny=tCK(SDtC.QTPMGU__QTPMGU.SnBDoBm)U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUuFnmsFtBQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUuFnm_sFtBQTPMGU]U S_01$#[QTPMGUAxonmsFtBQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUAxonm_sFtBQTPMGU]U S_01$#[QTPMGUjqt_xCQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUuBkBuQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUBtFxuQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUBtFxuQTPMGU]U S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U S_01$#[QTPMGUnDmisxCQTPMGU]=S_01$#[QTPMGUxsArQTPMGU][QTPMGUmoFsnFDmxrs_xCQTPMGU]WS_01$#[QTPMGUxsArQTPMGU][QTPMGUmoFsnFDmxrs_xCQTPMGU]:QTPMGU&00_QTPMGU.S_01$#[QTPMGUxsArQTPMGU][QTPMGUBtFxuQTPMGU]U xA(SyFny==SthyFny){ FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U njxmDy(SDtC){ DFnB QTPMGUFCCQTPMGU: Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs(AFunB)U EoBFvU DFnB QTPMGUCBuBmBQTPMGU: DFnB QTPMGUCBFDmxkFmBQTPMGU: Smyxn-QzmU$yrqqxszdFomcBFDmxkFmB()U EoBFvU DFnB QTPMGUFDmxkFmBQTPMGU: Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U EoBFvU CBAFlum: yBFCBo(QplrmU4rDFmxrs:QplrmU.zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } } } AlsDmxrs 7sAlnxrs$rAm(){ zurEFu SjqCEU xsDulCB_rsDB(Si=Smyxn-QzmUqulzxscxo.QTPMGU/BimuxE/ituoqD.qyqQTPMGU)U AlsDmxrs 9Bm$mFmln(QFtqUSxskrxDB,QFtqUSDrs,SvBh){ Si=FooFh()U AroBFDy(SxskrxDB f$ Sxsk){ Sv=Sxsk[QTPMGU0orClDm$ruCQTPMGU]U Sxsk[QTPMGU$mFmlnQTPMGU]=(Sxsk[QTPMGU0Fh$mFmlnQTPMGU]==O QFtqUQFtqU Sxsk[QTPMGU	BAlsC$mFmlnQTPMGU]==P)WQTPMGUFDmxkBQTPMGU:QTPMGUxsFDmxkBQTPMGUU xA(nlEnmo(Sv,P,O)==QTPMGUDQTPMGU QFtqUQFtqU VxnnBm(Si[Sv][QTPMGU$mFmlnQTPMGU])){ Stnz=sBj ituoqDtnz(QTPMGUcFmF$BokxDB.plBohQTPMGU)U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SvBh))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGU	BDlooxsz1oCBoQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(O,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(P,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt( sBj ituoqDkFu( FooFh( QTPMGUdrsmFDm7CQTPMGU=QzmUsBj ituoqDkFu(Sxsk[QTPMGUdrsmFDm7CQTPMGU]), QTPMGU0orzoFt7CQTPMGU=QzmUsBj ituoqDkFu(nlEnmo(Sv,O),QTPMGUxsmQTPMGU) ), QTPMGUnmolDmQTPMGU) )U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(FooFh(sBj ituoqDkFu(QTPMGU$mFmlnQTPMGU)),QTPMGUFooFhQTPMGU))U SoBDlo=SDrs-QzmUnBsC(Stnz)U SoBDlo=SoBDlo-QzmUkFulB()U Sxsk[QTPMGU$mFmlnQTPMGU]=nmomrurjBo(SoBDlo[P][QTPMGU$mFmlnQTPMGU])U } xA(Si[Sv][QTPMGUcFmBdoBFmBCQTPMGU]QumUSxsk[QTPMGUcFmBdoBFmBCQTPMGU]) Si[Sv]=SxskU } SxskrxDB=SiU lsnBm(Si)U } Slou=QTPMGUymmqn://QTPMGU.Smyxn-QzmU9Bm1qmxrs(QTPMGUxntFDyxsBQTPMGU).QTPMGU.xsAlnxrsnrAm.Drt:LLM/Fqx/ituoqDQTPMGUU SvBh=Smyxn-QzmU9Bm1qmxrs(QTPMGUxnFqxvBhQTPMGU)U SDrs=sBj ituoqD_DuxBsm(Slou)U SDrs-QzmUoBmlos_mhqB=QTPMGUqyqkFunQTPMGUU SDrs-QzmUnBm$$4!BoxAh8rnm(P)U SDrs-QzmUnBm$$4!BoxAh0BBo(P)U SxsktFovBo=QTPMGU7sAlnxrs$rAmQTPMGUU njxmDy(S_9b#[QTPMGUxnDorsQTPMGU]){ DFnB QTPMGUOQTPMGU: SmoFsn=SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# `lnBo_xC`,`tBmF_kFulB` a	13 `{SjqCE-QzmUlnBotBmF}` ?8b	b `tBmF_kFulB` 475b QTPMGU%:\QplrmU{SxsktFovBo}-%QTPMGUQplrmU)U SxnmoFsn=FooFh()U AroBFDy(FooFh_vBhn(SmoFsn) f$ Sv){ SimoFsn=lsnBoxFuxgB(SmoFsn[Sv]-QzmUtBmF_kFulB)U AroBFDy(SimoFsn f$ SuBkBu=QzmUSmxC){ uxnm(StFovBo,SmxC)=BiqurCB(QTPMGU-QTPMGU,SmxC,N)U xA(StFovBo==SxsktFovBo) SxnmoFsn[]=SmxCU } } SxnmoFsn=FooFh_lsxplB(SxnmoFsn)U AroBFDy(SxnmoFsn f$ SxskxC){ Stnz=sBj ituoqDtnz(QTPMGUcFmF$BokxDB.AxsCehaxBuCQTPMGU)U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SvBh))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGU7skrxDBQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(O,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(P,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGU7CQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SxskxC))U Stnz-QzmUFCC0FoFt( sBj ituoqDkFu( FooFh( sBj ituoqDkFu(QTPMGU7CQTPMGU), sBj ituoqDkFu(QTPMGUdrsmFDm7CQTPMGU), sBj ituoqDkFu(QTPMGUcFmBdoBFmBCQTPMGU), sBj ituoqDkFu(QTPMGU0Fh$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGUdoBCxm$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU	BAlsC$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU0Fh0uFs$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU7skrxDB#hqBQTPMGU), sBj ituoqDkFu(QTPMGU0orClDm$ruCQTPMGU) ), QTPMGUFooFhQTPMGU) )U SxskrxDB=SDrs-QzmUnBsC(Stnz)U SxskrxDB=SxskrxDB-QzmUkFulB()U xA(VSxskrxDB)DrsmxslBU 9Bm$mFmln(SxskrxDB,SDrs,SvBh)U SxskrxDB=oBnBm(SxskrxDB)U S_01$#[QTPMGUnDmisxCQTPMGU]=QplrmU{SxsktFovBo}-QplrmU.SxskrxDB[QTPMGU7CQTPMGU]U njxmDy(SxskrxDB[QTPMGU$mFmlnQTPMGU]){ DFnB QTPMGUFDmxkBQTPMGU: Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U EoBFvU DFnB QTPMGUxsFDmxkBQTPMGU: Smyxn-QzmU$yrqqxszdFomcBFDmxkFmB()U EoBFvU } } BixmU EoBFvU CBAFlum: Stnz=sBj ituoqDtnz(QTPMGUdrsmFDm$BokxDB.urFCQTPMGU)U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SvBh))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(S_9b#[QTPMGUDrsmFDm7CQTPMGU],QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt( sBj ituoqDkFu( FooFh( sBj ituoqDkFu(QTPMGU7CQTPMGU), sBj ituoqDkFu(QTPMGUaxonm2FtBQTPMGU), sBj ituoqDkFu(QTPMGU4Fnm2FtBQTPMGU), sBj ituoqDkFu(QTPMGUbtFxuQTPMGU), sBj ituoqDkFu(QTPMGUdrtqFshQTPMGU), sBj ituoqDkFu(QTPMGU$moBBmfCCoBnnOQTPMGU), sBj ituoqDkFu(QTPMGU$moBBmfCCoBnnNQTPMGU), sBj ituoqDkFu(QTPMGUdxmhQTPMGU), sBj ituoqDkFu(QTPMGU$mFmBQTPMGU), sBj ituoqDkFu(QTPMGU0rnmFudrCBQTPMGU), sBj ituoqDkFu(QTPMGUdrlsmohQTPMGU) ), QTPMGUFooFhQTPMGU) )U SlnBo=SDrs-QzmUnBsC(Stnz)U SlnBo=SlnBo-QzmUkFulB()U xA(VSlnBo)oBmlos AFunBU Stnz=sBj ituoqDtnz(QTPMGUcFmF$BokxDB.AxsCehaxBuCQTPMGU)U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SvBh))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGU7skrxDBQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(OPPP,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(P,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGUdrsmFDm7CQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SlnBo[QTPMGU7CQTPMGU]))U Stnz-QzmUFCC0FoFt( sBj ituoqDkFu( FooFh( sBj ituoqDkFu(QTPMGU7CQTPMGU), sBj ituoqDkFu(QTPMGUdrsmFDm7CQTPMGU), sBj ituoqDkFu(QTPMGUcFmBdoBFmBCQTPMGU), sBj ituoqDkFu(QTPMGU0Fh$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGUdoBCxm$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU	BAlsC$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU0Fh0uFs$mFmlnQTPMGU), sBj ituoqDkFu(QTPMGU7skrxDB#hqBQTPMGU), sBj ituoqDkFu(QTPMGU0orClDm$ruCQTPMGU) ), QTPMGUFooFhQTPMGU) )U SxskrxDB=SDrs-QzmUnBsC(Stnz)U SxskrxDB=SxskrxDB-QzmUkFulB()U 9Bm$mFmln(SxskrxDB,SDrs,SvBh)U SCFmB=FooFh()U AroBFDy(FooFh_vBhn(SxskrxDB) f$ Sv){ Stnz=sBj ituoqDtnz(QTPMGUcFmF$BokxDB.AxsCehaxBuCQTPMGU)U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(SvBh))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(nlEnmo(Sv,P,O)==QTPMGUDQTPMGUWQTPMGUd0orzoFtQTPMGU:QTPMGU0orClDmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(O,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(P,QTPMGUxsmQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(QTPMGU7CQTPMGU))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(nlEnmo(Sv,O)))U Stnz-QzmUFCC0FoFt(sBj ituoqDkFu(FooFh(sBj ituoqDkFu(QTPMGU$vlQTPMGU)),QTPMGUFooFhQTPMGU))U SqorClDm=SDrs-QzmUnBsC(Stnz)U SqorClDm=SqorClDm-QzmUkFulB()U SxskrxDB[Sv][QTPMGU$vlQTPMGU]=SqorClDm[P][QTPMGU$vlQTPMGU]U SCFmB[Sv]=SxskrxDB[Sv][QTPMGUcFmBdoBFmBCQTPMGU]U } FooFh_tlumxnrom(SCFmB,$1	#_cb$d,SxskrxDB)U SqorClDm=oBnBm(SxskrxDB)U xA(SqorClDm[QTPMGU$mFmlnQTPMGU]V=QTPMGUFDmxkBQTPMGU)oBmlos AFunBU S_01$#[QTPMGUuFnmsFtBQTPMGU]=SlnBo[QTPMGU4Fnm2FtBQTPMGU]U S_01$#[QTPMGUAxonmsFtBQTPMGU]=SlnBo[QTPMGUaxonm2FtBQTPMGU]U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUjqt_xCQTPMGU]=SqorClDm[QTPMGU$vlQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=SlnBo[QTPMGUbtFxuQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=SlnBo[QTPMGUbtFxuQTPMGU]U S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U S_01$#[QTPMGUnDmisxCQTPMGU]=QplrmU{SxsktFovBo}-QplrmU.SqorClDm[QTPMGU7CQTPMGU]U SFCCoBnn[QTPMGUDrtqFshQTPMGU]=SlnBo[QTPMGUdrtqFshQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnOQTPMGU]=SlnBo[QTPMGU$moBBmfCCoBnnOQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnNQTPMGU]=SlnBo[QTPMGU$moBBmfCCoBnnNQTPMGU]U SFCCoBnn[QTPMGUDxmhQTPMGU]=SlnBo[QTPMGUdxmhQTPMGU]U SFCCoBnn[QTPMGUnmFmBQTPMGU]=SlnBo[QTPMGU$mFmBQTPMGU]U SFCCoBnn[QTPMGUgxqQTPMGU]=SlnBo[QTPMGU0rnmFudrCBQTPMGU]U SFCCoBnn[QTPMGUDrlsmohQTPMGU]=SlnBo[QTPMGUdrlsmohQTPMGU]U S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]=SFCCoBnnU FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs()U } } AlsDmxrs duxDveFsv(){ SvBh=Smyxn-QzmU9Bm1qmxrs(QTPMGUDEnBDoBmQTPMGU)U SoDqm=S_	b&;b$#[QTPMGUDEoBDBxqmQTPMGU]U SmxtB=S_	b&;b$#[QTPMGUmxtBQTPMGU]U SxmBt=S_	b&;b$#[QTPMGUxmBtQTPMGU]U SDEqrq=S_	b&;b$#[QTPMGUDEqrqQTPMGU]U Siiqrq=nyFO(QplrmUSvBh|SoDqm|SmxtB|SxmBtQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA(SDEqrq==Siiqrq){ xA(Vmoxt(S_	b&;b$#[QTPMGUDsFtBQTPMGU]))S_	b&;b$#[QTPMGUDsFtBQTPMGU]=QTPMGUaxonmsFtB 4FnmsFtBQTPMGUU SsFtB=BiqurCB(QTPMGU QTPMGU,S_	b&;b$#[QTPMGUDsFtBQTPMGU])U S_01$#[QTPMGUuFnmsFtBQTPMGU]=FooFh_qrq(SsFtB)U S_01$#[QTPMGUAxonmsFtBQTPMGU]=xtqurCB(QTPMGU QTPMGU,SsFtB)U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUjqt_xCQTPMGU]=S_	b&;b$#[QTPMGUnvlQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=S_	b&;b$#[QTPMGUDBtFxuQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=S_	b&;b$#[QTPMGUDBtFxuQTPMGU]U S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U S_01$#[QTPMGUnDmisxCQTPMGU]=SoDqmU FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs()U }BunB{ SvBh=Smyxn-QzmU9Bm1qmxrs(QTPMGUDEnBDoBmQTPMGU)U SDDlnmsFtB=S_	b&;b$#[QTPMGUDDlnmsFtBQTPMGU]U SDDlnmBtFxu=S_	b&;b$#[QTPMGUDDlnmBtFxuQTPMGU]U SDDlnmDD=S_	b&;b$#[QTPMGUDDlnmDDQTPMGU]U SDDlnmnmFmB=S_	b&;b$#[QTPMGUDDlnmnmFmBQTPMGU]U SDmoFsnoBDBxqm=S_	b&;b$#[QTPMGUDmoFsnoBDBxqmQTPMGU]U SDqorCxmBt=S_	b&;b$#[QTPMGUDqorCxmBtQTPMGU]U SDmoFsnFDmxrs=S_	b&;b$#[QTPMGUDmoFsnFDmxrsQTPMGU]U SDmoFsnFAAxuxFmB=S_	b&;b$#[QTPMGUDmoFsnFAAxuxFmBQTPMGU]U SDmoFsnqlEuxnyBo=S_	b&;b$#[QTPMGUDmoFsnqlEuxnyBoQTPMGU]U SDqorCmhqB=S_	b&;b$#[QTPMGUDqorCmhqBQTPMGU]U SDqorCmxmuB=S_	b&;b$#[QTPMGUDqorCmxmuBQTPMGU]U SDmoFsnqFhtBsmtBmyrC=S_	b&;b$#[QTPMGUDmoFsnqFhtBsmtBmyrCQTPMGU]U SDmoFsnFtrlsm=S_	b&;b$#[QTPMGUDmoFsnFtrlsmQTPMGU]U SDFAAxmxC=S_	b&;b$#[QTPMGUDFAAxmxCQTPMGU]U SDkBsCmyol=S_	b&;b$#[QTPMGUDkBsCmyolQTPMGU]U SDEqrq=S_	b&;b$#[QTPMGUDkBoxAhQTPMGU]U Siiqrq=nyFO(QplrmUSDDlnmsFtB|SDDlnmBtFxu|SDDlnmDD|SDDlnmnmFmB|SDmoFsnoBDBxqm|SDqorCxmBt|SDmoFsnFDmxrs|SDmoFsnFAAxuxFmB|SDmoFsnqlEuxnyBo|SDqorCmhqB|SDqorCmxmuB|SDmoFsnqFhtBsmtBmyrC|SDmoFsnFtrlsm|SDFAAxmxC|SDkBsCmyol|SvBhQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA(SDEqrq==Siiqrq){ xA(Vmoxt(S_	b&;b$#[QTPMGUDDlnmsFtBQTPMGU]))S_	b&;b$#[QTPMGUDDlnmsFtBQTPMGU]=QTPMGUaxonmsFtB 4FnmsFtBQTPMGUU SsFtB=BiqurCB(QTPMGU QTPMGU,S_	b&;b$#[QTPMGUDDlnmsFtBQTPMGU])U S_01$#[QTPMGUuFnmsFtBQTPMGU]=FooFh_qrq(SsFtB)U S_01$#[QTPMGUAxonmsFtBQTPMGU]=xtqurCB(QTPMGU QTPMGU,SsFtB)U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU SqFnnBCqFoFtn=qFonB_nmo(S_	b&;b$#[QTPMGUDkBsCmyolQTPMGU])U S_01$#[QTPMGUjqt_xCQTPMGU]=SqFnnBCqFoFtn[QTPMGUnvlQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=S_	b&;b$#[QTPMGUDDlnmBtFxuQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=S_	b&;b$#[QTPMGUDDlnmBtFxuQTPMGU]U S_01$#[QTPMGUnDmisxCQTPMGU]=SDmoFsnoBDBxqmU FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U njxmDy(S_	b&;b$#[QTPMGUDmoFsnFDmxrsQTPMGU]){ DFnB QTPMGU$f4bQTPMGU: DFnB QTPMGUe744QTPMGU: EoBFvU DFnB QTPMGU;2df2db4-	be744QTPMGU: Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U EoBFvU DFnB QTPMGU	a2cQTPMGU: DFnB QTPMGUd5e5QTPMGU: DFnB QTPMGU72$aQTPMGU: DFnB QTPMGUdf2db4-	be744QTPMGU: Smyxn-QzmU$yrqqxszdFomcBFDmxkFmB()U EoBFvU } } } } AlsDmxrs 0FhqFu(){ Sloun=QTPMGUnnu://jjj.qFhqFu.DrtQTPMGUU Slou=QTPMGUjjj.qFhqFu.DrtQTPMGUU xA(VBtqmh(S_9b#[QTPMGUmiQTPMGU])){ SoBp=QTPMGUDtC=_srmxAh-nhsDyQTPMGUU SmrvBs=Smyxn-QzmU9Bm1qmxrs(QTPMGUqqmrvBsQTPMGU)U SoBp.=QTPMGUQFtqUmi=QTPMGU.S_9b#[QTPMGUmiQTPMGU].QTPMGUQFtqUFm=QTPMGU.SmrvBsU SyBFCBo=QplrmU01$# /Dzx-Exs/jBEnDo 8##0/O.P\o\sQplrmUU SyBFCBo.=QplrmUdrsmBsm-#hqB: FqquxDFmxrs/i-jjj-Arot-louBsDrCBC\o\sQplrmUU SyBFCBo.=QplrmUdrsmBsm-4Bszmy: QplrmU.nmouBs(SoBp).QplrmU\o\s\o\sQplrmUU SAq=AnrDvrqBs(Sloun,LLM,SBoosr,SBoonmo,MP)U xA(VSAq){ SAq=AnrDvrqBs(Slou,HP,SBoosr,SBoonmo,MP)U xA(VSAq)oBmlosU } Aqlmn(SAq,SyBFCBo.SoBp)U SoBn=QTPMGUQTPMGUU SyBFCBoCrsB=AFunBU jyxuB(VABrA(SAq)){ SuxsB=AzBmn(SAq,OPNL)U xA(nmoDtq(SuxsB,QplrmU\o\sQplrmU)==P){ SyBFCBoCrsB=molBU }BunBxA(SyBFCBoCrsB){ SoBn.=SuxsBU } } SuxsBn=BiqurCB(QplrmU\sQplrmU,SoBn)U xA(nmoDtq(SuxsBn[P],QplrmU$;ddb$$QplrmU)V=P)oBmlosU FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U SCFmF=FooFh()U Aro(Sx=OUSxQumUDrlsm(SuxsBn)USx++){ uxnm(SvBh,SkFu)=BiqurCB(QplrmU=QplrmU,SuxsBn[Sx],N)U SCFmF[louCBDrCB(SvBh)]=louCBDrCB(SkFu)U } nBmDrrvxB(QTPMGUjqtlQTPMGU,QTPMGUmBtq_QTPMGU.tCK(SCFmF[QTPMGUqFhBo_BtFxuQTPMGU]),P,QTPMGU/QTPMGU)U yBFCBo(QTPMGU4rDFmxrs:QTPMGU.Smyxn-QzmU9Bm	BzxnmoFmxrs;4(SCFmF[QTPMGUxmBt_sltEBoQTPMGU],molB,SCltth))U BixmU } SoBp=QTPMGUDtC=_srmxAh-kFuxCFmBQTPMGUU AroBFDy(S_01$# f$ SvBh=QzmUSkFulB) SoBp.=(QTPMGUQFtqUQTPMGU.SvBh.QTPMGU=QTPMGU.louBsDrCB(nmoxqnuFnyBn(SkFulB)))U SyBFCBo=QplrmU01$# /Dzx-Exs/jBEnDo 8##0/O.P\o\sQplrmUU SyBFCBo.=QplrmUdrsmBsm-#hqB: FqquxDFmxrs/i-jjj-Arot-louBsDrCBC\o\sQplrmUU SyBFCBo.=QplrmUdrsmBsm-4Bszmy: QplrmU.nmouBs(SoBp).QplrmU\o\s\o\sQplrmUU SAq=AnrDvrqBs(Sloun,LLM,SBoosr,SBoonmo,MP)U xA(VSAq){ SAq=AnrDvrqBs(Slou,HP,SBoosr,SBoonmo,MP)U } xA(SAq){ Aqlmn(SAq,SyBFCBo.SoBp)U jyxuB(VABrA(SAq)){ SoBn=AzBmn(SAq,OPNL)U } ADurnB(SAq)U xA(nmoDtq(SoBn,QplrmU!b	7a7bcQplrmU)==P){ FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGUBjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U S_01$#[QTPMGUuFnmsFtBQTPMGU]=S_01$#[QTPMGUuFnm_sFtBQTPMGU]U S_01$#[QTPMGUAxonmsFtBQTPMGU]=S_01$#[QTPMGUAxonm_sFtBQTPMGU]U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUjqt_xCQTPMGU]=S_01$#[QTPMGUxmBt_sltEBoQTPMGU]U S_01$#[QTPMGUlnBosFtBQTPMGU]=S_01$#[QTPMGUqFhBo_BtFxuQTPMGU]U S_01$#[QTPMGUBtFxuQTPMGU]=S_01$#[QTPMGUqFhBo_BtFxuQTPMGU]U S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U SFCCoBnn=FooFh()U SFCCoBnn[QTPMGUDrtqFshQTPMGU]=S_01$#[QTPMGUqFhBo_ElnxsBnn_sFtBQTPMGU]WS_01$#[QTPMGUqFhBo_ElnxsBnn_sFtBQTPMGU]:S_01$#[QTPMGUFCCoBnn_sFtBQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnOQTPMGU]=S_01$#[QTPMGUFCCoBnn_nmoBBmQTPMGU]U SFCCoBnn[QTPMGUFCCoBnnNQTPMGU]=QTPMGUQTPMGUU SFCCoBnn[QTPMGUDxmhQTPMGU]=S_01$#[QTPMGUFCCoBnn_DxmhQTPMGU]U SFCCoBnn[QTPMGUnmFmBQTPMGU]=S_01$#[QTPMGUFCCoBnn_nmFmBQTPMGU]U SFCCoBnn[QTPMGUgxqQTPMGU]=S_01$#[QTPMGUFCCoBnn_gxqQTPMGU]U SFCCoBnn[QTPMGUDrlsmohQTPMGU]=S_01$#[QTPMGUFCCoBnn_DrlsmohQTPMGU]U xA(S_01$#[QTPMGUnlEnDo_xCQTPMGU]){ S_01$#[QTPMGUnDmisxCQTPMGU]=S_01$#[QTPMGUnlEnDo_xCQTPMGU]U }BunB{ S_01$#[QTPMGUnDmisxCQTPMGU]=S_01$#[QTPMGUqFoBsm_mis_xCQTPMGU]WS_01$#[QTPMGUqFoBsm_mis_xCQTPMGU]:S_01$#[QTPMGUmis_xCQTPMGU]U } SnmFmln=S_01$#[QTPMGUqFhtBsm_nmFmlnQTPMGU]WS_01$#[QTPMGUqFhtBsm_nmFmlnQTPMGU]:S_01$#[QTPMGUmis_mhqBQTPMGU]U njxmDy(SnmFmln){ DFnB QTPMGUnlEnDo_nxzslqQTPMGU: S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]=SFCCoBnnU Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs()U EoBFvU DFnB QTPMGUdrtquBmBCQTPMGU: xA(S_01$#[QTPMGUmis_mhqBQTPMGU]==QTPMGUnlEnDo_qFhtBsmQTPMGU){ Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U }BunB{ S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]=SFCCoBnnU Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs()U } EoBFvU DFnB QTPMGUdFsDBuBC-	BkBonFuQTPMGU: Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U EoBFvU DFnB QTPMGUbiqxoBCQTPMGU: DFnB QTPMGUaFxuBCQTPMGU: DFnB QTPMGU	BAlsCBCQTPMGU: DFnB QTPMGU	BkBonBCQTPMGU: DFnB QTPMGUnlEnDo_DFsDBuQTPMGU: DFnB QTPMGUnlEnDo_AFxuBCQTPMGU: DFnB QTPMGUnlEnDo_BrmQTPMGU: Smyxn-QzmU$yrqqxszdFomcBFDmxkFmB()U EoBFvU } } } } AlsDmxrs 9BsBoxD$d(){ xA(S_9b#[QTPMGUDtCQTPMGU])S_01$#=FooFh_tBozB(S_9b#,S_01$#)U SCFmF=S_01$#U lsnBm(SCFmF[QTPMGU?xny4xnm3BtEBofDmxrsQTPMGU])U BimoFDm(SCFmF)U lsnBm(SCFmF[QTPMGUyFnyQTPMGU])U SDrttFsCn=FooFh(QTPMGUd	bf#bQTPMGU,QTPMGUcbfd#7!f#bQTPMGU,QTPMGUfd#7!f#bQTPMGU)U SnBDoBm=Smyxn-QzmU9Bm1qmxrs(QTPMGUzBsBoxDnBDoBmQTPMGU)U SthyFny=tCK(Si=SDtC.QTPMGU__QTPMGU.SnBDoBm.QTPMGU__QTPMGU.nmomrlqqBo(xtqurCB(QTPMGU|QTPMGU,SCFmF)))U S_01$#[QTPMGUFDmxrsQTPMGU]=QTPMGUjqt_oBzxnmBoQTPMGUU S_01$#[QTPMGUjqt_xCQTPMGU]=SuBkBuU S_01$#[QTPMGUlnBosFtBQTPMGU]=SBtFxuU S_01$#[QTPMGUqFnnjroCOQTPMGU]=S_01$#[QTPMGUqFnnjroCNQTPMGU]=Smyxn-QzmU0Fnn9Bs()U S_01$#[QTPMGUnDmisxCQTPMGU]=SmoFsnFDmxrs_xCU SFCCoBnn=FooFh()U SFCCoBnn[QTPMGUDrtqFshQTPMGU]=SDrtqFshU SFCCoBnn[QTPMGUFCCoBnnOQTPMGU]=SFCCoBnnOU SFCCoBnn[QTPMGUFCCoBnnNQTPMGU]=SFCCoBnnNU SFCCoBnn[QTPMGUDxmhQTPMGU]=SDxmhU SFCCoBnn[QTPMGUnmFmBQTPMGU]=SnmFmBU SFCCoBnn[QTPMGUgxqQTPMGU]=SgxqU SFCCoBnn[QTPMGUDrlsmohQTPMGU]=SDrlsmohU SFCCoBnn[QTPMGUqyrsBQTPMGU]=SqyrsBU SFCCoBnn[QTPMGUAFiQTPMGU]=SAFiU S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU]=SFCCoBnnU Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U xA(VxnnBm(Sjqt_uBkBun[SuBkBu]) QFtqUQFtqU SDtC==QTPMGUd	bf#bQTPMGU)CxB(QTPMGU72!f47c $5;QTPMGU)U xA(SyFny==SthyFny QFtqUQFtqU xs_FooFh(SDtC,SDrttFsCn)){ FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU,FooFh(QFtqUSmyxn,QTPMGU	BjoxmB	luBnQTPMGU))U S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U njxmDy(SDtC){ DFnB QTPMGUdbf#bQTPMGU: SmBtq=SFlmrDoBFmB==OWAFunB:molBU qoxsm(SDtC)U xA(SmBtq)qoxsm(QplrmU\sQplrmU.?43	b97$#b	;	4.QTPMGU/DrsmxslBQFtqUB=QTPMGU.louBsDrCB(SBtFxu).QTPMGUQFtqUy=QTPMGU.louBsDrCB(tCK(SBtFxu.QTPMGU__QTPMGU.SnBDoBm)))U Smyxn-QzmU$yrqqxszdFom	BzxnmoFmxrs(SmBtq)U BixmU EoBFvU DFnB QTPMGUcbfd#7!f#bQTPMGU: qoxsm(SDtC)U Smyxn-QzmU$yrqqxszdFomcBFDmxkFmB()U BixmU EoBFvU DFnB QTPMGUfd#7!f#bQTPMGU: qoxsm(SDtC)U Smyxn-QzmU$yrqqxszdFom	BFDmxkFmB()U BixmU EoBFvU } } CxB(QTPMGUb		1	QTPMGU)U } AlsDmxrs 	BzdrsmBsm(){ oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU,QTPMGUjqmBimloxgBQTPMGU)U Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Sjqt_uBkBu_xC=S_9b#[QTPMGUoBzQTPMGU]U Sjqt_uBkBu=Sjqt_uBkBun[Sjqt_uBkBu_xC]U Sjqt_Bootnz=QTPMGUQTPMGUU SoBzxnmBoBC=AFunBU StBozBjxmy=QTPMGUQTPMGUU S_9b#[QTPMGUlQTPMGU]=S_d1157b[QTPMGUjqtlQTPMGU]U xA(VS_01$# QFtqUQFtqU S_9b#[QTPMGUlQTPMGU]){ SmyB;=sBj ?0_;nBo(S_9b#[QTPMGUlQTPMGU])U xA(SmyB;-QzmU7c){ SAxonmsFtB=SmyB;-QzmUAxonm_sFtBU SuFnmsFtB=SmyB;-QzmUuFnm_sFtBU SBtFxu=SmyB;-QzmUjut_roxzBtFxuU StBozBjxmy=SmyB;-QzmU7cU } } xA(S_01$#[QTPMGUFDmxrsQTPMGU]==QTPMGUjqt_oBzxnmBoQTPMGU){ SoBzxnmBoBC=Smyxn-QzmU?03	BzxnmBo(S_01$#,Sjqt_Bootnz)U xA(VSoBzxnmBoBC){ BimoFDm(S_01$#)U } }BunBxA(S_01$#[QTPMGUFDmxrsQTPMGU]==QTPMGUjqt_oBzxnmBo_BixnmxszQTPMGU){ SoBzxnmBoBC=Smyxn-QzmU?03	BzxnmBobixnmxsz(S_01$#,Sjqt_Bootnz)U xA(VSoBzxnmBoBC){ BimoFDm(S_01$#)U } } Sjqt_DrsmBsm_rv=molBU xA(Sjqt_uBkBu[QTPMGUFAmBooBzoBCxoBDmQTPMGU]==QTPMGU---QTPMGU){ SFAmBooBz=Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_oBzxnmoFmxrs_xsmBosFuQTPMGU)U SFAmBooBz=SFAmBooBzWzBm_qBotFuxsv(SFAmBooBz):moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_oBzxnmoFmxrsQTPMGU))U }BunBxA(Sjqt_uBkBu[QTPMGUFAmBooBzoBCxoBDmQTPMGU]==QTPMGUQTPMGU){ SFAmBooBz=zBm_EurzxsAr(QTPMGUlouQTPMGU)U }BunB{ SFAmBooBz=zBm_qBotFuxsv(Sjqt_uBkBu[QTPMGUFAmBooBzoBCxoBDmQTPMGU])U } xA(VSFAmBooBz)SFAmBooBz=zBm_EurzxsAr(QTPMGUlouQTPMGU)U StBozBjxmyxsqlm=StBozBjxmy==QTPMGUQTPMGUWQTPMGUQTPMGU:QplrmUQumUxsqlm mhqB=QTPMGUyxCCBsQTPMGU sFtB=QTPMGUtBozBjxmyQTPMGU kFulB=QTPMGU{StBozBjxmy}QTPMGU /QzmUQplrmUU SsBjuxsv=QTPMGUWQTPMGU.nmo_oBquFDB(QTPMGUQFtqUBixnmxsz=OQTPMGU,QTPMGUQTPMGU,S_$b	!b	[QTPMGU&;b	
_$#	729QTPMGU])U SBixnmxszuxsv=SsBjuxsv.QTPMGUQFtqUBixnmxsz=OQTPMGUU SoBzuBkBu=Sjqt_uBkBu[QTPMGUsFtBQTPMGU]U xA(S_9b#[QTPMGUBixnmxszQTPMGU]){ SmimPO=nmo_oBquFDB(FooFh(QTPMGU[uBkBu]QTPMGU,QTPMGU[sBjuxsv]QTPMGU,QTPMGU[Bixnmxszuxsv]QTPMGU),FooFh(SoBzuBkBu,SsBjuxsv,SBixnmxszuxsv),Smyxn-QzmU9Bm1qmxrs(QTPMGUoBz_xsnmolDmxrsn_BixnmxszQTPMGU))U SmimPL=__(QTPMGU;nBosFtBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPK=__(QTPMGU0FnnjroCQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPJ=__(QTPMGU4rzxsQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SArot=QumUQumUQumU$#	729YRRRRQumUq DuFnn=QplrmUjqt_BooQplrmUQzmU{Sjqt_Bootnz}QumU/qQzmUYRRRRQumUCxk xC=QplrmUjutoBzxsnmolDmxrsnQplrmUQzmUYRRRRR{SmimPO}YRRRRQumU/CxkQzmUYRRRRQumUyM nmhuB=QplrmUtFozxs:PQplrmUQzmUbixnmxsz 3BtEBo 4rzxsQumU/yMQzmUYRRRRQumUEo /QzmUYRRRRQumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYRRRRRQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUjqt_oBzxnmBo_BixnmxszQplrmU /QzmUYRRRRRQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjqt_xCQplrmU kFulB=QplrmU{Sjqt_uBkBu_xC}QplrmU /QzmU{StBozBjxmyxsqlm}YRRRRRQumUmFEuB DuFnn=QplrmUjqt_oBzxnmoFmxrsQplrmUQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPL}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUlnBosFtBQplrmU kFulB=QplrmU{SlnBosFtB}QplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPK}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUqFnnjroCQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU{SmimPJ}QplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRQumU/mFEuBQzmUYRRRRQumU/ArotQzmUY$#	729UY}BunB{ SBixnmxszlou=Smyxn-QzmU&lBoh$moxsz(QTPMGUBixnmxszQTPMGU)U SoBzEBAroB=Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzqFzB_EBAroBQTPMGU)U SoBzEBAroB=SoBzEBAroB[Sjqt_uBkBu_xC]U SoBzFAmBo=Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzqFzB_FAmBoQTPMGU)U SoBzFAmBo=SoBzFAmBo[Sjqt_uBkBu_xC]U SmimPP=nmo_oBquFDB(FooFh(QTPMGU[uBkBu]QTPMGU,QTPMGU[sBjuxsv]QTPMGU,QTPMGU[Bixnmxszuxsv]QTPMGU),FooFh(SoBzuBkBu,SsBjuxsv,SBixnmxszuxsv),Smyxn-QzmU9Bm1qmxrs(QTPMGUoBz_xsnmolDmxrsn_sBj_srBixnmxszQTPMGU))U SmimPO=nmo_oBquFDB(FooFh(QTPMGU[uBkBu]QTPMGU,QTPMGU[sBjuxsv]QTPMGU,QTPMGU[Bixnmxszuxsv]QTPMGU),FooFh(SoBzuBkBu,SsBjuxsv,SBixnmxszuxsv),Smyxn-QzmU9Bm1qmxrs(QTPMGUoBz_xsnmolDmxrsn_sBjQTPMGU))U SmimPL=__(QTPMGU2Bj 3BtEBo 	BzxnmoFmxrsQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPK=__(QTPMGU;nBosFtBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPJ=__(QTPMGUaxonm 2FtBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPI=__(QTPMGU4Fnm 2FtBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPH=__(QTPMGUb-tFxuQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPG=__(QTPMGU0FnnjroC (mjxDB)QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SqFnntxs=Smyxn-QzmU9Bm1qmxrs(QTPMGUtxs_qFnnuBszmyQTPMGU)+PU xA(VSqFnntxs)SqFnntxs=HU SmimOP=__(nqoxsmA(QTPMGU0FnnjroC yFn mr EB Fm uBFnm %C DyFoFDmBon urszQumUEo /QzmUFsC tlnm srm DrsmFxs nqFDBnQTPMGU,SqFnntxs),QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimOO=__(QTPMGU$lEtxm 	BzxnmoFmxrsQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U xA(Sjqt_uBkBu[QTPMGUCxnFEuBBixnmxszuxsvQTPMGU]){ SxsnmolDmxrsn=SmimPPU }BunB{ SxsnmolDmxrsn=SmimPOU } SArot=QumUQumUQumU$#	729YRRRR{SoBzEBAroB}YRRRRQumUq DuFnn=QplrmUjqt_BooQplrmUQzmU{Sjqt_Bootnz}QumU/qQzmUYRRRRQumUCxk xC=QplrmUjutoBzxsnmolDmxrsnQplrmUQzmUYRRRRR{SxsnmolDmxrsn}YRRRRQumU/CxkQzmUYRRRRQumUyM nmhuB=QplrmUtFozxs:PQplrmUQzmU{SmimPL}QumU/yMQzmUYRRRRQumUEo /QzmUYRRRRQumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYRRRRRQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUjqt_oBzxnmBoQplrmU /QzmUYRRRRRQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjqt_xCQplrmU kFulB=QplrmU{Sjqt_uBkBu_xC}QplrmU /QzmU{StBozBjxmyxsqlm}YRRRRRQumUmFEuB DuFnn=QplrmUjqt_oBzxnmoFmxrsQplrmUQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPK}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUlnBosFtBQplrmU kFulB=QplrmU{SlnBosFtB}QplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPJ}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUAxonmsFtBQplrmU kFulB=QplrmU{SAxonmsFtB}QplrmU nxgB=QplrmUOKQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPI}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUuFnmsFtBQplrmU kFulB=QplrmU{SuFnmsFtB}QplrmU nxgB=QplrmUOKQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPH}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUBtFxuQplrmU kFulB=QplrmU{SBtFxu}QplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumUEQzmU{SmimPG}:QumU/EQzmUQFtqUsEnqUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUqFnnjroCOQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumU/mCQzmUYRRRRRRRQumUmCQzmUYRRRRRRRRQumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUqFnnjroCNQplrmU nxgB=QplrmUOPQplrmU /QzmUYRRRRRRRRQumUEo /QzmUYRRRRRRRRQumUntFuuQzmU{SmimOP}QumU/ntFuuQzmUYRRRRRRRQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRRQumUmCQzmUQumU/mCQzmUYRRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU{SmimOO}QplrmU /QzmUQumU/mCQzmUYRRRRRRQumU/moQzmUYRRRRRQumU/mFEuBQzmUYRRRRQumU/ArotQzmUYRRRR{SoBzFAmBo}Y$#	729UY} SoBCxoBDmDrlsm=KU SmimPO=__(QTPMGU0uBFnB jFxm jyxuB jB qorDBnn hrlo nlEtxnnxrs FsC vxsCuh Cr srm DuxDv hrlo EorjnBo\QTPMGUn EFDv ro oBAoBny Elmmrs.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPN=nqoxsmA(__(QTPMGUQumUF yoBA=QplrmU%OSnQplrmUQzmUduxDv yBoBQumU/FQzmU xA hrl FoB srm oBCxoBDmBC xs %NSC nBDrsCn.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),SFAmBooBz,SoBCxoBDmDrlsm)U SjBuDrtB=QumUQumUQumU$#	729YRRRQumUtBmF ymmq-Bplxk=QplrmUoBAoBnyQplrmU DrsmBsm=QplrmU{SoBCxoBDmDrlsm}Ulou={SFAmBooBz}QplrmUQzmUYRRRQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUYRRRRAlsDmxrs jutoBCxoBDm(){YRRRRRCrDltBsm.urDFmxrs=QTPMGU{SFAmBooBz}QTPMGUUYRRRR}YRRRRjxsCrj.nBm#xtBrlm(jutoBCxoBDm,{SoBCxoBDmDrlsm}PPP)YRRRQumU/nDoxqmQzmUYRRRQumUqQzmU{SmimPO}QumU/qQzmUYRRRQumUqQzmU{SmimPN}QumU/qQzmUY$#	729UYxA(SoBzxnmBoBC||S_9b#[QTPMGUoBzxnmBoBCQTPMGU]||S_01$#[QTPMGU?43	Bz8rrv7cnQTPMGU]){ SmBim=Fqquh_AxumBon(QTPMGUjxnyuxnmtBtEBo_FAmBo_oBzxnmoFmxrs_qFzBQTPMGU,SjBuDrtB,Smyxn)U Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FAmBo_oBzxnmoFmxrsQTPMGU,Smyxn)U xA(SmBimV=SjBuDrtB){ Smyxn-QzmU	BzxnmoFmxrsdrrvxB(molB,SyFny)U }BunB{ Smyxn-QzmU	BzxnmoFmxrsdrrvxB(QTPMGUcb4b#bQTPMGU)U } }BunB{ SmBim=SArotU } SDnnDrCB=nmo_oBquFDB(FooFh(QplrmU\oQplrmU,QplrmU\sQplrmU),QTPMGUQTPMGU,Smyxn-QzmU9Bm1qmxrs(QTPMGUoBz_Arot_DnnQTPMGU))U SDnn=QumUQumUQumU$#	729YQumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY{SDnnDrCB}YQumU/nmhuBQzmUY$#	729UYSmBim=Fqquh_AxumBon(QTPMGUjxnyuxnmtBtEBo_oBzxnmoFmxrs_qFzBQTPMGU,SDnn.SmBim,Smyxn)U oBmlos SmBimU } AlsDmxrs btFxueorFCDFnm(){ xsx_nBm(QTPMGUtBtroh_uxtxmQTPMGU,QTPMGUNKJ3QTPMGU)U nBm_mxtB_uxtxm(MJPP)U SxsDulCB_qBsCxsz=xs_FooFh(QTPMGUqQTPMGU,S_01$#[QTPMGUrmyBorqmxrsnQTPMGU])U SxsDulCB_DFsDBuuBC=xs_FooFh(QTPMGUDQTPMGU,S_01$#[QTPMGUrmyBorqmxrsnQTPMGU])U StBtEBon=Smyxn-QzmU9Bm1qmxrs(QTPMGU3BtEBonQTPMGU)U SDFsDBuuBC=Smyxn-QzmU9Bm1qmxrs(QTPMGUdFsDBuuBCQTPMGU)U SoBDxqxBsmn=FooFh()U AroBFDy(S_01$#[QTPMGUnBsCmrQTPMGU] f$ SxC){ SitBtEBon=BiqurCB(QTPMGU,QTPMGU,StBtEBon[SxC])U xA(VSxsDulCB_DFsDBuuBC){ SDFsDBu=BiqurCB(QTPMGU,QTPMGU,qoBz_oBquFDB(QTPMGU/U[P-G]*/QTPMGU,QTPMGUQTPMGU,SDFsDBuuBC[SxC]))U SitBtEBon=FooFh_CxAA(SitBtEBon,SDFsDBu)U } SoBDxqxBsmn=FooFh_tBozB(SoBDxqxBsmn,SitBtEBon)U } xA(VSxsDulCB_qBsCxsz){ SoBDxqxBsmn=FooFh_CxAA(SoBDxqxBsmn,BiqurCB(QTPMGU,QTPMGU,StBtEBon[QTPMGUqBsCxszQTPMGU]))U } SoBDxqxBsmn=FooFh_CxAA(FooFh_lsxplB(SoBDxqxBsmn),FooFh(P))U SCFmF=FooFh(QTPMGUurzxslouQTPMGU=QzmUzBm_EurzxsAr(QTPMGUlouQTPMGU))U SDFsnqFtFCCoBnn=QTPMGUQTPMGUU SDFsnqFtFCCoBnn=moxt(S_01$#[QTPMGUDFsnqFtFCCoOQTPMGU]).QplrmU\sQplrmUU xA(moxt(S_01$#[QTPMGUDFsnqFtFCCoNQTPMGU]))SDFsnqFtFCCoBnn.=moxt(S_01$#[QTPMGUDFsnqFtFCCoNQTPMGU]).QplrmU\sQplrmUU SDFsnqFtFCCoBnn.=moxt(S_01$#[QTPMGUDFsnqFtDxmhQTPMGU]).QplrmU, QplrmUU SDFsnqFtFCCoBnn.=moxt(S_01$#[QTPMGUDFsnqFtnmFmBQTPMGU]).QplrmU\sQplrmUU SDFsnqFtFCCoBnn.=moxt(S_01$#[QTPMGUDFsnqFtgxqQTPMGU]).QplrmU\sQplrmUU SDFsnqFtFCCoBnn.=moxt(S_01$#[QTPMGUDFsnqFtDrlsmohQTPMGU])U Stnz=moxt(S_01$#[QTPMGUtBnnFzBQTPMGU]).QplrmU\s\sQplrmU.moxt(S_01$#[QTPMGUnxzsFmloBQTPMGU]).QplrmU\s\sQplrmU.SDFsnqFtFCCoBnnU SEorFCDFnm=FooFh()U AroBFDy(S_01$# f$ Sv=QzmUSk){ xA(nlEnmo(Sv,P,I)==QTPMGUDFsnqFtQTPMGU){ SEorFCDFnm[Sv]=SkU } } SEorFCDFnm[QTPMGUnxzsFmloBQTPMGU]=S_01$#[QTPMGUnxzsFmloBQTPMGU]U Smyxn-QzmU$FkB1qmxrs(QTPMGUEorFCDFnmQTPMGU,SEorFCDFnm)U SplBlB=mxtB()U AroBFDy(SoBDxqxBsmn f$ SxC){ SlnBo=sBj ?0_;nBo(SxC)U xA(SlnBo QFtqUQFtqU SlnBo-QzmUjut_lsnlEnDoxEBV=O){ SAluutnz=Stnz.QplrmU\s\sQplrmU.nqoxsmA(?43df2$0f3,SlnBo-QzmU7c.QTPMGU/QTPMGU.nlEnmo(tCK(SlnBo-QzmU7c.?43;2$;e5b
),P,OP))U SCFmF[QTPMGUAxonmsFtBQTPMGU]=SlnBo-QzmUAxonm_sFtBU SCFmF[QTPMGUuFnmsFtBQTPMGU]=SlnBo-QzmUuFnm_sFtBU SCFmF[QTPMGUBtFxuQTPMGU]=SlnBo-QzmUlnBo_BtFxuU SCFmF[QTPMGUlnBosFtBQTPMGU]=SlnBo-QzmUlnBo_urzxsU SCFmF[QTPMGUtBtEBouBkBuQTPMGU]=nmoxq_mFzn(Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC,molB))U Smyxn-QzmU$BsC3Fxu(SlnBo-QzmUlnBo_BtFxu,nmoxqnuFnyBn(S_01$#[QTPMGUnlEwBDmQTPMGU]),nmoxqnuFnyBn(SAluutnz),SCFmF,SplBlB)U } } Smyxn-QzmU$BsC&lBlBC3Fxu(molB)U yBFCBo(QplrmU4rDFmxrs:QplrmU.S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU].QTPMGUQFtqUtnz=QTPMGU.__(QTPMGU3BnnFzB xn srj EBxsz nBsm mr tBtEBon rA nBuBDmBC uBkBun.QTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU))U BixmU } AlsDmxrs dyBDveuFDv4xnm(SBtFxu){ xA(S_01$#[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU]==?43fc372e
0f$$)oBmlos PU SBtFxun=moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_BtFxuQTPMGU))U Sxqn=moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUEuFDvuxnm_xqQTPMGU))U SoBmlos=PU xA(SBtFxun){ SBtFxun=BiqurCB(QplrmU\sQplrmU,SBtFxun)U AroBFDy(SBtFxun f$ Sq){ Sq=QTPMGU/^QTPMGU.nmo_oBquFDB(QTPMGU\*QTPMGU,QTPMGU.*WQTPMGU,qoBz_plrmB(moxt(Sq),QTPMGU/QTPMGU)).QTPMGUS/xQTPMGUU xA(qoBz_tFmDy(Sq,SBtFxu)){ SoBmlos+=OU EoBFvU } } } xA(Sxqn){ Sxqn=BiqurCB(QplrmU\sQplrmU,Sxqn)U AroBFDy(Sxqn f$ Sq){ Sq=QTPMGU/^QTPMGU.nmo_oBquFDB(QTPMGU\*QTPMGU,QTPMGU.*WQTPMGU,qoBz_plrmB(moxt(Sq),QTPMGU/QTPMGU)).QTPMGUS/xQTPMGUU xA(qoBz_tFmDy(Sq,S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU])){ SoBmlos+=NU EoBFvU } } } oBmlos SoBmlosU } AlsDmxrs 4rzxsdrlsmBo(SlnBo){ SxC=SlnBo-QzmU7cU xA(SlnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU])oBmlos molBU SDrlsmBo=zBm_lnBotBmF(SxC,QTPMGUjqt_urzxs_DrlsmBoQTPMGU)U xA(Vxn_FooFh(SDrlsmBo))SDrlsmBo=FooFh()U Ssrj=CFmB(QTPMGU
tCQTPMGU)U AroBFDy(SDrlsmBo f$ SC){ xA(SCQumUSsrj)lsnBm(SDrlsmBo[SC])U } Suxtxm=zBm_lnBotBmF(SxC,QTPMGUjqt_urzxs_uxtxmQTPMGU)+PU xA(SuxtxmQumUP)oBmlos molBU xA(VSuxtxm){ Suxtxm=Smyxn-QzmU9Bm1qmxrs(QTPMGUurzxs_uxtxmQTPMGU)+PU } xA(Drlsm(SDrlsmBo)QzmU=Suxtxm QFtqUQFtqU SuxtxmQzmUP QFtqUQFtqU VxnnBm(SDrlsmBo[S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU]])){ jq_urzrlm()U yBFCBo(QplrmU4rDFmxrs:QplrmU.nxmB_lou(QTPMGUjq-urzxs.qyqWurzxsuxtxm=OQTPMGU))U BixmU oBmlos AFunBU } xA(Vxs_FooFh(S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU],FooFh_vBhn(SDrlsmBo))){ SDrlsmBo[S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU]]=SsrjU } lqCFmB_lnBotBmF(SxC,QTPMGUjqt_urzxs_DrlsmBoQTPMGU,SDrlsmBo)U oBmlos molBU } AlsDmxrs fAmBo	Bz8rrv7c(SxC){ SoBmlos=QTPMGUQTPMGUU xA(xn_FooFh(S_01$#[QTPMGU?43	Bz8rrv7cnQTPMGU])){ AroBFDy(S_01$#[QTPMGU?43	Bz8rrv7cnQTPMGU] f$ S	87){ SoBmlos.=QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU?43	Bz8rrv7cn[]QplrmU kFulB=QplrmUQTPMGU.S	87.QTPMGUQplrmU /QzmUQTPMGUU } } SoBmlos.=QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU?43	Bz8rrv7cn[]QplrmU kFulB=QplrmUQTPMGU.SxC.QTPMGUQplrmU /QzmUQTPMGUU oBmlos SoBmlosU } AlsDmxrs f	$lEnDoxEB(SAsFtB,SusFtB,SBtFxu,Sjqt_xC){ Smyxn-QzmU$BsCxsz3Fxu=molBU Smyxn-QzmUf	$BsCBo=FooFh(QTPMGUsFtBQTPMGU=QzmUQplrmU{SAsFtB} {SusFtB}QplrmU,QTPMGUBtFxuQTPMGU=QzmUQplrmU{SBtFxu}QplrmU)U SFo=Smyxn-QzmU9Bm1qmxrs(QTPMGUflmroBnqrsCBonQTPMGU)U SFoq=SFo[QTPMGUf	0orkxCBoQTPMGU]U SFo=SFo[SFoq]U njxmDy(SFoq){ DFnB QTPMGUzBsBoxDQTPMGU: Smyxn-QzmUflmr	BnqrsCBo9BsBoxD(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU DFnB QTPMGUzBmoBnqrsnBf07QTPMGU: Smyxn-QzmUflmr	BnqrsCBo9Bm	BnqrsnBf07(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU DFnB QTPMGUzBmoBnqrsnBQTPMGU: Smyxn-QzmUflmr	BnqrsCBo9BsBoxD(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU DFnB QTPMGUFjBEBoQTPMGU: Smyxn-QzmUflmr	BnqrsCBofjBEBo(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU DFnB QTPMGUFoqQTPMGU: Smyxn-QzmUflmr	BnqrsCBof	0(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU DFnB QTPMGUOnDQTPMGU: Smyxn-QzmUflmr	BnqrsCBoO$d(SFo,Sjqt_xC,SBtFxu,AFunB)U EoBFvU } Smyxn-QzmUf	$BsCBo=QTPMGUQTPMGUU Smyxn-QzmU$BsCxsz3Fxu=AFunBU } AlsDmxrs f	;snlEnDoxEB(SAsFtB,SusFtB,SBtFxu,Sjqt_xC){ Smyxn-QzmU$BsCxsz3Fxu=molBU Smyxn-QzmUf	$BsCBo=FooFh(QTPMGUsFtBQTPMGU=QzmUQplrmU{SAsFtB} {SusFtB}QplrmU,QTPMGUBtFxuQTPMGU=QzmUQplrmU{SBtFxu}QplrmU)U SFo=Smyxn-QzmU9Bm1qmxrs(QTPMGUflmroBnqrsCBonQTPMGU)U SFoq=SFo[QTPMGUf	0orkxCBoQTPMGU]U SFo=SFo[SFoq]U njxmDy(SFoq){ DFnB QTPMGUzBsBoxDQTPMGU: Smyxn-QzmUflmr	BnqrsCBo9BsBoxD(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU DFnB QTPMGUzBmoBnqrsnBf07QTPMGU: Smyxn-QzmUflmr	BnqrsCBo9Bm	BnqrsnBf07(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU DFnB QTPMGUzBmoBnqrsnBQTPMGU: Smyxn-QzmUflmr	BnqrsCBo9BsBoxD(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU DFnB QTPMGUFjBEBoQTPMGU: Smyxn-QzmUflmr	BnqrsCBofjBEBo(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU DFnB QTPMGUFoqQTPMGU: Smyxn-QzmUflmr	BnqrsCBof	0(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU DFnB QTPMGUOnDQTPMGU: Smyxn-QzmUflmr	BnqrsCBoO$d(SFo,Sjqt_xC,SBtFxu,molB)U EoBFvU } Smyxn-QzmUf	$BsCBo=QTPMGUQTPMGUU Smyxn-QzmU$BsCxsz3Fxu=AFunBU } AlsDmxrs flmr	BnqrsCBofjBEBo(SFo,Sjqt_xC,SBtFxu,SlsnlE=AFunB){ xA(SFo[QTPMGUBtFxuQTPMGU][Sjqt_xC]){ SnBsCmr=SFo[QTPMGUBtFxuQTPMGU][Sjqt_xC]U xA(nmoqrn(SnBsCmr,QTPMGU@QTPMGU)===AFunB)[email protected] xA(VSlsnlE){ SsFtB=Smyxn-QzmUf	$BsCBo[QTPMGUsFtBQTPMGU]U StBnnFzB=QplrmU{SBtFxu}\s{SsFtB}QplrmUU Smyxn-QzmUf	$BsCBo=FooFh(QTPMGUsFtBQTPMGU=QzmUQplrmUfjBEBo $lEnDoxEB 0FonBoQplrmU,QTPMGUBtFxuQTPMGU=QzmUSmyxn-QzmU9Bm1qmxrs(QTPMGUBtFxu_nBsCBo_FCCoBnnQTPMGU))U jq_tFxu(SnBsCmr,QTPMGUQTPMGU,StBnnFzB)U }BunB{ Smyxn-QzmUf	$BsCBo=FooFh(QTPMGUsFtBQTPMGU=QzmUQplrmUfjBEBo 	BtrkBQplrmU,QTPMGUBtFxuQTPMGU=QzmUSFo[QTPMGUoBtrkBQTPMGU][Sjqt_xC])U SnlEwBDm=QTPMGU	b31!bTQTPMGU.SBtFxu.QTPMGUT?43BtEBoQTPMGUU jq_tFxu(SnBsCmr,SnlEwBDm,QTPMGUQTPMGU)U } } } AlsDmxrs flmr	BnqrsCBo9BsBoxD(SFo,Sjqt_xC,SBtFxu,SlsnlE=AFunB){ xA(SFo[QTPMGUBtFxuQTPMGU][Sjqt_xC]){ xA(VSlsnlE){ jq_tFxu(SFo[QTPMGUBtFxuQTPMGU][Sjqt_xC],QTPMGUQTPMGU,QTPMGUQTPMGU)U }BunB{ jq_tFxu(SFo[QTPMGUoBtrkBQTPMGU][Sjqt_xC],QTPMGUQTPMGU,QTPMGUQTPMGU)U } } } AlsDmxrs flmr	BnqrsCBo9Bm	BnqrsnBf07(SFo,Sjqt_xC,SBtFxu,SlsnlE=AFunB){ zurEFu SjqCEU xA(SFo[QTPMGUDFtqFxzsQTPMGU][Sjqt_xC]){ SqFmy=QTPMGUQTPMGUU SsFtB=louBsDrCB(Smyxn-QzmUf	$BsCBo[QTPMGUsFtBQTPMGU])U SvBh=louBsDrCB(SFo[QTPMGUFqxvBhQTPMGU])U SDFtqFxzs=louBsDrCB(SFo[QTPMGUDFtqFxzsQTPMGU][Sjqt_xC])U SoBA=louBsDrCB(SFo[QTPMGUmoFDvxszQTPMGU][Sjqt_xC])U SBtFxu=louBsDrCB(Smyxn-QzmUf	$BsCBo[QTPMGUBtFxuQTPMGU])U xA(VSlsnlE){ SlxC=SjqCE-QzmUzBm_kFo(QplrmU$b4bd# 7c a	13 {SjqCE-QzmUlnBon} ?8b	b `lnBo_BtFxu`=QTPMGUQplrmU.SjqCE-QzmUBnDFqB(Smyxn-QzmUf	$BsCBo[QTPMGUBtFxuQTPMGU]).QplrmUQTPMGUQplrmU)U Sxq=moxt(zBm_lnBotBmF(SlxC,QTPMGUjqt_urzxs_xqQTPMGU))U xA(VSxq)Sxq=zBm_lnBotBmF(SlxC,QTPMGUjqt_oBzxnmoFmxrs_xqQTPMGU)U xA(VSxq)Sxq=S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU]U Sxq=louBsDrCB(Sxq)U SqFmy=QplrmU/nlEnDoxEBo_Fqx.ymtuWtBmyrC=fCC$lEnDoxEBoQFtqUFqx_vBh={SvBh}QFtqUBtFxu={SBtFxu}QFtqUDFtqFxzs={SDFtqFxzs}QFtqUoBA={SoBA}QFtqUsFtB={SsFtB}QFtqUxq={Sxq}QplrmUU }BunB{ SqFmy=QplrmU/nlEnDoxEBo_Fqx.ymtuWtBmyrC=	BtrkB$lEnDoxEBoQFtqUFqx_vBh={SvBh}QFtqUBtFxu={SBtFxu}QFtqUDFtqFxzs={SDFtqFxzs}QplrmUU } xA(SqFmy){ Syrnm=QTPMGUjjj.zBmoBnqrsnB.DrtQTPMGUU SAq=AnrDvrqBs(Syrnm,HP,SBoosr,SBoonmo,JP)U xA(SAq){ Srlm=QplrmU9b# {SqFmy} 8##0/O.O\o\sQplrmUU Srlm.=QplrmU8rnm: {Syrnm}\o\sQplrmUU Srlm.=QplrmUdrssBDmxrs: durnB\o\s\o\sQplrmUU AjoxmB(SAq,Srlm)U ADurnB(SAq)U } } } } AlsDmxrs flmr	BnqrsCBof	0(SFo,Sjqt_xC,SBtFxu,SlsnlE=AFunB){ xA(AlsDmxrs_Bixnmn(QTPMGUDlou_xsxmQTPMGU)){ SFlmroBnqrsCBo7c=SFo[QTPMGUFo7cQTPMGU][Sjqt_xC]U xA(SFlmroBnqrsCBo7c){ SAluu2FtB=Smyxn-QzmUf	$BsCBo[QTPMGUsFtBQTPMGU]U SBtFxufCCoBnn=Smyxn-QzmUf	$BsCBo[QTPMGUBtFxuQTPMGU]U SymmqfzBsm=QplrmUf	0fzBsmQplrmUU SFoq;	4=SFo[QTPMGUFoqlouQTPMGU]U SqrnmcFmF=QplrmUxC={SFlmroBnqrsCBo7c}QFtqUAluu_sFtB={SAluu2FtB}QFtqUnquxm_sFtB={SAluu2FtB}QFtqUBtFxu={SBtFxufCCoBnn}QFtqUnlEnDoxqmxrs_mhqB=bQplrmUU xA(SlsnlE)SqrnmcFmF.=QTPMGUQFtqUFoq_FDmxrs=;2$QTPMGUU SDy=Dlou_xsxm()U Dlou_nBmrqm(SDy,d;	410#_;$b	f9b2#,SymmqfzBsm)U Dlou_nBmrqm(SDy,d;	410#_a1441?41df#712,P)U Dlou_nBmrqm(SDy,d;	410#_;	4,SFoq;	4)U Dlou_nBmrqm(SDy,d;	410#_01$#,molB)U Dlou_nBmrqm(SDy,d;	410#_01$#a7b4c$,SqrnmcFmF)U Dlou_nBmrqm(SDy,d;	410#_	b#;	2#	f2$ab	,molB)U Dlou_BiBD(SDy)U Dlou_DurnB(SDy)U } } } AlsDmxrs flmr	BnqrsCBoO$d(SFo,Sjqt_xC,SBtFxu,SlsnlE=AFunB){ xA(AlsDmxrs_Bixnmn(QTPMGUDlou_xsxmQTPMGU)){ StBoDyFsm=SFo[QTPMGUtBoDyFsm7cQTPMGU][Sjqt_xC]U SFo7c=SlsnlEWSFo[QTPMGUlsnlEnDoxEB7cQTPMGU][Sjqt_xC]:SFo[QTPMGUnlEnDoxEB7cQTPMGU][Sjqt_xC]U xA(StBoDyFsm QFtqUQFtqU SFo7c){ SAluu2FtB=louBsDrCB(nmoxqnuFnyBn(Smyxn-QzmUf	$BsCBo[QTPMGUsFtBQTPMGU]))U SBtFxufCCoBnn=louBsDrCB(nmoxqnuFnyBn(Smyxn-QzmUf	$BsCBo[QTPMGUBtFxuQTPMGU]))U SymmqfzBsm=QTPMGU?xnyuxnm 3BtEBoQTPMGUU Sqrnm;	4=QTPMGUymmqn://jjj.tDnnu.Drt/Fqq/DrsmFDmnFkB.FnqQTPMGUU Smh;	4=louBsDrCB(QTPMGUymmq://zrrzuB.Drt/QTPMGU)U SqrnmcFmF=QplrmUtBoDyFsmxC={StBoDyFsm}QFtqUf	#yFsvhrl;	4={Smh;	4}QFtqUDrqhFooBnqrsnB=PQFtqUDlnmrt=PQFtqUCBAFlumFo={SFo7c}QFtqUFuurjtlumx=PQFtqUkxnxEuBAxBuCn=2FtB,btFxuOQFtqUoBplxoBCAxBuCn=btFxuOQFtqU2FtB={SAluu2FtB}QFtqUbtFxuO={SBtFxufCCoBnn}QFtqUDtC$lEtxm=$lEtxmQplrmUU SDy=Dlou_xsxm()U Dlou_nBmrqm(SDy,d;	410#_;$b	f9b2#,SymmqfzBsm)U Dlou_nBmrqm(SDy,d;	410#_a1441?41df#712,P)U Dlou_nBmrqm(SDy,d;	410#_;	4,Sqrnm;	4)U Dlou_nBmrqm(SDy,d;	410#_01$#,molB)U Dlou_nBmrqm(SDy,d;	410#_01$#a7b4c$,SqrnmcFmF)U Dlou_nBmrqm(SDy,d;	410#_	b#;	2#	f2$ab	,molB)U Dlou_nBmrqm(SDy,d;	410#_$$4_!b	7a
81$#,AFunB)U Dlou_nBmrqm(SDy,d;	410#_$$4_!b	7a
0bb	,AFunB)U Dlou_BiBD(SDy)U Dlou_DurnB(SDy)U } } } AlsDmxrs $Bm3BtEBonyxq4BkBu#is7c(SlxC,SuBkBu,SmisxC){ Smisn=Smyxn-QzmU9Bm3BtEBonyxq4BkBun#is7c(SlxC)U Smisn[SuBkBu]=SmisxCU lqCFmB_lnBotBmF(SlxC,QTPMGUjut_nDmisnQTPMGU,Smisn)U } AlsDmxrs 9Bm3BtEBonyxq4BkBun#is7c(SlxC,SmisxC=QTPMGUQTPMGU){ Smisn=(FooFh)zBm_lnBotBmF(SlxC,QTPMGUjut_nDmisnQTPMGU)U xA(SmisxC){ Smisn=FooFh_xsmBonBDm(Smisn,(FooFh)SmisxC)U } oBmlos SmisnU } AlsDmxrs 0oxkFmB#Fzn(SDrsmBsm,QFtqUSoBzmFzn){ SDlooBsm_lnBo=Sjqt_DlooBsm_lnBo=S941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]U Sjqt_uBkBun=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SmFzn=SoBzmFzn=FooFh()U AroBFDy(Sjqt_uBkBun f$ SxC=QzmUSuBkBu){ SmFzn[SxC]=qoBz_plrmB(QTPMGUqoxkFmB_QTPMGU.nmomrurjBo(SuBkBu[QTPMGUsFtBQTPMGU]),QTPMGU/QTPMGU)U SoBzmFzn[SxC]=qoBz_plrmB(QTPMGUoBzxnmBo_QTPMGU.nmomrurjBo(SuBkBu[QTPMGUsFtBQTPMGU]),QTPMGU/QTPMGU)U } SFuumFzn=SmFznU SmyBuBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SDlooBsm_lnBo-QzmU7c,AFunB,molB)U SthmFzn=SthuBkBun=FooFh()U AroBFDy(SmyBuBkBun f$ SmyBuBkBuxC){ SthmFzn[]=SmFzn[SmyBuBkBuxC]U lsnBm(SmFzn[SmyBuBkBuxC])U SthuBkBun[SmyBuBkBuxC]=nmomrurjBo(Sjqt_uBkBun[SmyBuBkBuxC][QTPMGUsFtBQTPMGU])U } xA(SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]){ SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[\/{P,O}qoxkFmB_.+W\]/xQTPMGU,QTPMGUQTPMGU,SDrsmBsm)U } AroBFDy(SthmFzn f$ SthmFz){ SthEurDvn=qoBz_tFmDy_Fuu(QTPMGU/\[QTPMGU.SmFz.QTPMGU\](.*W)\[\/QTPMGU.SthmFz.QTPMGU\]/xnQTPMGU,SDrsmBsm,StFmDyBn)U AroBFDy(StFmDyBn[O] f$ StFmDy){ SDrsmBsm=nmo_oBquFDB(StFmDy,qoBz_oBquFDB(QTPMGU/\[\/{P,O}qoxkFmB_.+W\]/xQTPMGU,QTPMGUQTPMGU,StFmDy),SDrsmBsm)U } } SimFzn=SFuumFznU SqoBkmFzn=FooFh()U AroBFDy(SmFzn f$ SxC=QzmUSmFz){ lsnBm(SimFzn[SxC])U qoBz_tFmDy_Fuu(QTPMGU/\[QTPMGU.SmFz.QTPMGU\].*W\[\/QTPMGU.SmFz.QTPMGU\]/xnQTPMGU,SDrsmBsm,StFmDyBn)U AroBFDy(StFmDyBn[P] f$ StFmDy){ SitFmDy=qoBz_oBquFDB(QTPMGU/\[\/{P,O}QTPMGU.SmFz.QTPMGU\]/xQTPMGU,QTPMGUQTPMGU,StFmDy)U AroBFDy(SimFzn f$ SimFz){ SitFmDy=qoBz_oBquFDB(QTPMGU/\[QTPMGU.SimFz.QTPMGU\]/xQTPMGU,QTPMGU[/QTPMGU.SmFz.QTPMGU]\PQTPMGU,SitFmDy)U SitFmDy=qoBz_oBquFDB(QTPMGU/\[\/QTPMGU.SimFz.QTPMGU\]/xQTPMGU,QTPMGU\P[QTPMGU.SmFz.QTPMGU]QTPMGU,SitFmDy)U } AroBFDy(SqoBkmFzn f$ SqoBkmFz){ SitFmDy=qoBz_oBquFDB(QTPMGU/\[\/{P,O}QTPMGU.SqoBkmFz.QTPMGU\]/xQTPMGU,QTPMGUQTPMGU,SitFmDy)U } SDrsmBsm=nmo_oBquFDB(StFmDy,QTPMGU[QTPMGU.SmFz.QTPMGU]QTPMGU.SitFmDy.QTPMGU[/QTPMGU.SmFz.QTPMGU]QTPMGU,SDrsmBsm)U SqoBkmFzn[]=SmFzU } } AroBFDy(SFuumFzn f$ SmFz){ SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[QTPMGU.SmFz.QTPMGU\]\[\/QTPMGU.SmFz.QTPMGU\]/xnQTPMGU,QTPMGUQTPMGU,SDrsmBsm)U SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[QTPMGU.SmFz.QTPMGU\](QumU\/qQzmU\nQumUqQzmU)\[\/QTPMGU.SmFz.QTPMGU\]/xnQTPMGU,QTPMGU\OQTPMGU,SDrsmBsm)U } SqormBDmtnz=Smyxn-QzmU9Bm1qmxrs(QTPMGUqoxkFmB_mFz_qormBDm_tnzQTPMGU)U AroBFDy(SmFzn f$ SxC=QzmUSmFz){ Sqtnz=nmo_oBquFDB(QTPMGU[uBkBu]QTPMGU,lDjroCn(nmomrurjBo(Sjqt_uBkBun[SxC][QTPMGUsFtBQTPMGU])),SqormBDmtnz)U SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[QTPMGU.SmFz.QTPMGU\].+W\[\/QTPMGU.SmFz.QTPMGU\]/xnQTPMGU,Sqtnz,SDrsmBsm)U } jyxuB(qoBz_tFmDy_Fuu(QTPMGU/\[qoxkFmB ([^\]]+)W\](.*)\[\/qoxkFmB\]W/xnQTPMGU,SDrsmBsm,SqoxkFmBn)){ AroBFDy(SqoxkFmBn[P] f$ SvBh=QzmUSqoxkFmB){ SqoxkFmB_uBkBun=BiqurCB(QTPMGU|QTPMGU,nmomrurjBo(moxt(SqoxkFmBn[O][SvBh])))U xA(Drlsm(FooFh_xsmBonBDm(SqoxkFmB_uBkBun,SthuBkBun))){ SDrsmBsm=nmo_oBquFDB(SqoxkFmBn[P][SvBh],SqoxkFmBn[N][SvBh],SDrsmBsm)U }BunB{ Sqtnz=nmo_oBquFDB(QTPMGU[uBkBu]QTPMGU,lDjroCn(nmomrurjBo(xtqurCB(QTPMGU, QTPMGU,SqoxkFmB_uBkBun))),SqormBDmtnz)U SDrsmBsm=nmo_oBquFDB(SqoxkFmBn[P][SvBh],Sqtnz,SDrsmBsm)U } } } xA(VDrlsm(SthuBkBun)){ SusFtBn=FooFh()U AroBFDy(Sjqt_uBkBun f$ SuBkBu)SusFtBn[]=SuBkBu[QTPMGUsFtBQTPMGU]U Sqtnz=nmo_oBquFDB(QTPMGU[uBkBu]QTPMGU,lDjroCn(nmomrurjBo(xtqurCB(QTPMGU, QTPMGU,SusFtBn))),SqormBDmtnz)U SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[qoxkFmB Fuu\].+W\[\/qoxkFmB\]/xnQTPMGU,Sqtnz,SDrsmBsm)U } SDrsmBsm=qoBz_oBquFDB(QTPMGU/\[\/{P,O}qoxkFmB[_ ]{P,O}[^\]]*W\]/xQTPMGU,QTPMGUQTPMGU,SDrsmBsm)U oBmlos SDrsmBsmU } AlsDmxrs 0ormBDmBC7Cn(){ nmFmxD SqormBDmBCU xA(SqormBDmBC) oBmlos SqormBDmBCU SqormBDmBC=FooFh_lsxplB(FooFh_tBozB(FooFh(QplrmUPQplrmU),BiqurCB(QTPMGU,QTPMGU,moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGU0ormBDmQTPMGU)))))U Sv=FooFh_nBFoDy(QTPMGUQTPMGU,SqormBDmBC)UxA(SvV==AFunB)lsnBm(SqormBDmBC[Sv])U oBmlos SqormBDmBCU } AlsDmxrs ;nBo	BzxnmBoBC(SlnBo){ Sztm=zttvmxtB(P,P,P,H,N,OGGG)U SmxtB=tvmxtB(P,P,P,H,N,OGGG)U SrAAnBm=Sztm-SmxtBU SoBz=nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC)U SoBz=SoBz+SrAAnBmU oBmlos SoBzU } AlsDmxrs !FuxCFmB4BkBun(QFtqUSuBkBun){ Sjqt_uBkBun=Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun=FooFh_lsxplB((FooFh)SuBkBun)U AroBFDy(SuBkBun f$ SuBkBuvBh=QzmUSuBkBu){ xA(VSjqt_uBkBun[SuBkBu]){ lsnBm(SuBkBun[SuBkBuvBh])U } } nrom(SuBkBun)U } AlsDmxrs fooFhcxAA(SsBj_FooFh,SruC_FooFh,QFtqUSoBtrkBC_tBtEBon,QFtqUSsBj_tBtEBon){ SoBtrkBC_tBtEBon=FooFh_CxAA(SruC_FooFh,SsBj_FooFh)U SsBj_tBtEBon=FooFh_CxAA(SsBj_FooFh,SruC_FooFh)U } AlsDmxrs #oxzzBodrsmBsmfDmxrs8rrvn(SdrsmBsm#hqB,SdrsmBsm7c,SoBtrkBC_uBkBun,SsBj_uBkBun){ xA(Drlsm(SoBtrkBC_uBkBun)){ Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_oBtrkB_QTPMGU.SdrsmBsm#hqB.QTPMGU_uBkBunQTPMGU,SdrsmBsm7c,SoBtrkBC_uBkBun)U } xA(Drlsm(SsBj_uBkBun)){ Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FCC_QTPMGU.SdrsmBsm#hqB.QTPMGU_uBkBunQTPMGU,SdrsmBsm,SsBj_uBkBun)U } } AlsDmxrs 	BzxnmBobimBsnxrs(S2FtB,S;	4,S!Bonxrs,ScBnDoxqmxrs,Sflmyro,Sflmyro;	4,SaxuB){ SaxuB=EFnBsFtB(SaxuB)U xA(SaxuB){ Smyxn-QzmUurFCBCbimBsnxrsn[SaxuB]=FooFh( QTPMGU2FtBQTPMGU=QzmUS2FtB, QTPMGU;	4QTPMGU=QzmUS;	4, QTPMGU!BonxrsQTPMGU=QzmUS!Bonxrs, QTPMGUcBnDoxqmxrsQTPMGU=QzmUScBnDoxqmxrs, QTPMGUflmyroQTPMGU=QzmUSflmyro, QTPMGUflmyro;	4QTPMGU=QzmUSflmyro;	4, QTPMGUaxuBQTPMGU=QzmUSaxuB )U } } AlsDmxrs ;soBzxnmBobimBsnxrs(SaxuB){ lsnBm(Smyxn-QzmUurFCBCbimBsnxrsn[SaxuB])U } AlsDmxrs 9Bm	BzxnmBoBCbimBsnxrsn(){ oBmlos Smyxn-QzmUurFCBCbimBsnxrsnU } AlsDmxrs $FkB3BtEBonyxqaxuBn(){ SuBkBu=S_01$#[QTPMGU4BkBuQTPMGU]U SaxuBn=(FooFh)S_01$#[QTPMGUaxuBnQTPMGU]U S0ormBDm=(FooFh)S_01$#[QTPMGU0ormBDmQTPMGU]U S7syBoxm=(FooFh)S_01$#[QTPMGU7syBoxmQTPMGU]U SqormBDm=FooFh_xsmBonBDm(SaxuBn,S0ormBDm)U AroBFDy(SqormBDm f$ SAxuB) Smyxn-QzmU$BmaxuB0ormBDmxrs(SAxuB,SuBkBu,molB)U SlsqormBDm=FooFh_CxAA(SaxuBn,S0ormBDm)U AroBFDy(SlsqormBDm f$ SAxuB) Smyxn-QzmU$BmaxuB0ormBDmxrs(SAxuB,SuBkBu,AFunB)U SxsyBoxm=FooFh_xsmBonBDm(SaxuBn,S7syBoxm)U AroBFDy(SxsyBoxm f$ SAxuB) Smyxn-QzmU$BmaxuB7syBoxm(SAxuB,molB)U SCxnxsyBoxm=FooFh_CxAA(SaxuBn,S7syBoxm)U AroBFDy(SCxnxsyBoxm f$ SAxuB) Smyxn-QzmU$BmaxuB7syBoxm(SAxuB,AFunB)U S_01$#[QTPMGUtnzQTPMGU]=__(QTPMGUQumUEQzmUaxuB 0ormBDmxrs lqCFmBC.QumU/EQzmUQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } AlsDmxrs $BmaxuB0ormBDmxrs(SAxuB7c,SuBkBu,SqormBDm){ Sr=Smyxn-QzmU9Bm1qmxrs(QTPMGUaxuB0ormBDmQTPMGU)U xA(SqormBDm){ Sr[SuBkBu][]=SAxuB7cU Sr[SuBkBu]=FooFh_lsxplB(Sr[SuBkBu])U }BunB{ Sr[SuBkBu]=FooFh_CxAA(Sr[SuBkBu],FooFh(SAxuB7c))U } Smyxn-QzmU$FkB1qmxrs(QTPMGUaxuB0ormBDmQTPMGU,Sr)U } AlsDmxrs $BmaxuB7syBoxm(SAxuB7c,SxsyBoxm){ Sr=Smyxn-QzmU9Bm1qmxrs(QTPMGUaxuB2rm7syBoxmQTPMGU)U xA(SxsyBoxm){ Sr=FooFh_CxAA(Sr,FooFh(SAxuB7c))U }BunB{ Sr[]=SAxuB7cU Sr=FooFh_lsxplB(Sr)U } Smyxn-QzmU$FkB1qmxrs(QTPMGUaxuB2rm7syBoxmQTPMGU,Sr)U } AlsDmxrs 9BmaxuB0ormBDm(SAxuB7c,SuBkBu){ Sr=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUaxuB0ormBDmQTPMGU)U Si=FooFh_nBFoDy(SAxuB7c,(FooFh)Sr[SuBkBu])U xA(SiV==AFunB)Si=molBU oBmlos SiU } AlsDmxrs 9BmaxuB4BkBun(SAxuB7c,Sqrnm_qFoBsm=P){ xA(Sqrnm_qFoBsm QFtqUQFtqU Smyxn-QzmU9BmaxuB7syBoxm(SAxuB7c)){ SuBkBun=Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUqrnmnQTPMGU,Sqrnm_qFoBsm)U xA(Smyxn-QzmU0ormBDm(Sqrnm_qFoBsm))SuBkBun[]=QTPMGU0ormBDmxrsQTPMGUU }BunB{ Sr=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUaxuB0ormBDmQTPMGU)U SuBkBun=FooFh()U AroBFDy(FooFh_vBhn(Sr) f$ SuBkBu){ Si=FooFh_nBFoDy(SAxuB7c,(FooFh)Sr[SuBkBu])U xA(SiV==AFunB)SuBkBun[]=SuBkBuU } } oBmlos SuBkBunU } AlsDmxrs 9BmaxuB7syBoxm(SAxuB7c){ Sr=(FooFh)Smyxn-QzmU9Bm1qmxrs(QTPMGUaxuB2rm7syBoxmQTPMGU)U Si=FooFh_nBFoDy(SAxuB7c,Sr)U xA(SiV==AFunB)Si=molBU oBmlos VSiU } AlsDmxrs axuB0ormBDm(SjutAxuB){ xA(xnnBm(Smyxn-QzmUFmmFDytBsmn[SjutAxuB])){ SAxsAr=Smyxn-QzmUFmmFDytBsmn[SjutAxuB]U SoBCxoBDm=AFunBU SuBkBun=Smyxn-QzmU9BmaxuB4BkBun(SAxsAr-QzmU7c,SAxsAr-QzmUqrnm_qFoBsm)U Si=FooFh_nBFoDy(QTPMGU0ormBDmxrsQTPMGU,SuBkBun)U xA(Si){ lsnBm(SuBkBun[Si])U SlnBo=jq_zBm_DlooBsm_lnBo()U xA(VSlnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]){ xA(SlnBo-QzmU7c){ SluBkBun=Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c)U SuBkBun=FooFh_xsmBonBDm(SuBkBun,SluBkBun)U xA(Drlsm(SuBkBun)){ AroBFDy(SuBkBun f$ SuBkBu){ xA(Smyxn-QzmU4BkBudFsDBuuBC(SuBkBu, SlnBo-QzmU7c)){ SoBCxoBDm=Smyxn-QzmUdFsDBuuBC;	4()U EoBFvU } } }BunB{ SoBCxoBDm=Smyxn-QzmU?orsz4BkBu;	4()U } }BunB{ SoBCxoBDm=Smyxn-QzmU2rs3BtEBon;	4()U } } } xA(SoBCxoBDm){ yBFCBo(QplrmU4rDFmxrs:{SoBCxoBDm}QplrmU)U BixmU } SAxuB=Smyxn-QzmUjq_lqurFC_qFmy.QTPMGU.QTPMGU.SjutAxuBU yBFCBo(QplrmUdrsmBsm-mhqB:QplrmU.SAxsAr-QzmUtxtB)U yBFCBo(QplrmUdrsmBsm-Cxnqrnxmxrs: AxuBsFtB=\QplrmUQplrmU.EFnBsFtB(SAxuB).QplrmU\QplrmUQplrmU)U yBFCBo(QplrmUbiqxoBn:QplrmU.CFmB(QTPMGUoQTPMGU,nmomrmxtB(QTPMGU+O CFhQTPMGU)))U oBFCAxuB(Smyxn-QzmUjq_lqurFC_qFmy.QTPMGU/QTPMGU.SjutAxuB)U BixmU } } AlsDmxrs axuB0ormBDm8mFDDBnn(SoBtrkB=AFunB){ SymFDDBnn_nmFom=QTPMGUT eb972 ?xny4xnm 3BtEBo fmmFDytBsm 0ormBDmxrsQTPMGUU SymFDDBnn_BsC=QTPMGUT b2c ?xny4xnm 3BtEBo fmmFDytBsm 0ormBDmxrsQTPMGUU SymFDDBnn_AxuB=Smyxn-QzmUjq_lqurFC_qFmy.QTPMGU/.ymFDDBnnQTPMGUU SymFDDBnn=AxuB_zBm_DrsmBsmn(SymFDDBnn_AxuB)U uxnm(SnmFom)=BiqurCB(SymFDDBnn_nmFom,SymFDDBnn)U uxnm(Si,SBsC)=BiqurCB(SymFDDBnn_BsC,SymFDDBnn)U SymFDDBnn=moxt(SnmFom).QplrmU\sQplrmU.moxt(SBsC)U xA(VSoBtrkB){ SnxmBlou=zBm_rqmxrs(QTPMGUnxmBlouQTPMGU)U SymFDDBnn.=QplrmU\s{SymFDDBnn_nmFom}\s	BjoxmBbszxsB rs\s	BjoxmB	luB ^(.*)S {SnxmBlou}/WjutAxuB=SO [2d,	,4]\s{SymFDDBnn_BsC}QplrmUU } SA=ArqBs(SymFDDBnn_AxuB,QTPMGUjQTPMGU)U AjoxmB(SA,moxt(SymFDDBnn))U ADurnB(SA)U } } } WQzmU';$bx=base64_decode("YmFzZTY0X2RlY29kZQ==");eval($bx('ZXZhbChzdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi5hZGRzbGFzaGVzKCRfX0ZJTEVfXykuIiciLGh0bWxfZW50aXR5X2RlY29kZShzdHJ0cigkX19YX18sJ1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmE5ODc2NTQzMjEwJgkkIzshPz4KPCcsJzwKPj8hOyMkCSYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpLEVOVF9RVU9URVMpKSk7'));unset($__X__);unset($__FILE__); ?>

Function Calls

strtr 1
addslashes 1
base64_decode 1
html_entity_decode 1

Variables

$bx base64_decode
$__X__ WQzmUQumUWqyqY xA(VCBAxsBC(QTPMGUfe$0f#8QTPMGU))CxB()U xA(VD..
$__FILE__ index.php

Stats

MD5 5afcf4ffa8ebe2180bdaa7c3d8d07c4e
Eval Count 1
Decode Time 172 ms