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 /** * * Plugin Name: Paper Template * Plugin URI: http://www.papertemplate...

Decoded Output download

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

Did this file decode correctly?

Original Code

<?php

/**
 *
 * Plugin Name: Paper Template
 * Plugin URI: http://www.papertemplate.com
 * Description: Display a plain piece of paper template on selected WordPress pages.
 * Version: 3.0.6.9
 * Author: Robert Plank
 * Author URI: http://www.robertplank.com
*/



 $__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY xA (xnnBm(S_9b#[QplrmUqFqBomBtquFmB-BCxmroQplrmU])) { @rE_BsC_DuBFs()U oBplxoB(CxosFtB(__a74b__).QplrmU/qFqBomBtquFmB-BCxmro.qyqQplrmU)U CxB()U } zurEFu SqFqBomBtquFmB_DFuuU SqFqBomBtquFmB_DFuu = QplrmUQplrmUU qFqBomBtquFmB_DFuu()U SqFqBomBtquFmB_vBh = QplrmUQplrmUU SqFqBomBtquFmB_BtFxu = QplrmUQplrmUU @uxnm(SqFqBomBtquFmB_vBh, SqFqBomBtquFmB_BtFxu) = qFqBomBtquFmB_nBmmxszn_zBm(QplrmUvBhQplrmU, QplrmUBtFxuQplrmU)U xA (xnnBm(S_9b#[QplrmUAQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU, S_9b#[QplrmUAQplrmU], mxtB()+MOKMJPPP, QplrmU/QplrmU)U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU, S_9b#[QplrmUAxonmsFtBQplrmU], mxtB()+MOKMJPPP, QplrmU/QplrmU)U } xA (xnnBm(S_	b&;b$#[QplrmUqFqBomBtquFmB_DrskBonxrsQplrmU])) { xA (VAlsDmxrs_Bixnmn(QTPMGUzBm_qrnm_tBmFQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qrnm.qyqQplrmU)) { oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qrnm.qyqQplrmU)U } Sqrnm7c = xsmkFu(S_	b&;b$#[QplrmUqFqBomBtquFmB_DrskBonxrsQplrmU])U xA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU])) { SDrskBonxrsn = BiqurCB(QplrmU,QplrmU,S_d1157b[QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU])U } BunB { SDrskBonxrsn = FooFh()U } xA (Vxs_FooFh(Sqrnm7c, SDrskBonxrsn)) { xA (SDrskBonxrs = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, molB)) { SDrskBonxrs = xsmkFu(SDrskBonxrsn)U } BunB { SDrskBonxrs = PU } SDrskBonxrs++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, SDrskBonxrs)U SDrskBonxrsn[] = Sqrnm7cU SDrskBonxrsn = xtqurCB(QplrmU,QplrmU,SDrskBonxrsn)U nBmDrrvxB(QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, SDrskBonxrsn, mxtB()+HJLPP, QplrmU/QplrmU)U } CxB()U } xA (VAlsDmxrs_Bixnmn(QTPMGUjq_zBm_DlooBsm_lnBoQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qulzzFEuB.qyqQplrmU)) { oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qulzzFEuB.qyqQplrmU)U } CBAxsB(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU, QplrmU0FqBo #BtquFmBQplrmU)U CBAxsB(QplrmU0f0b	#b304f#b_0	1c;d#_$4;9QplrmU, QplrmUqFqBomBtquFmBQplrmU)U CBAxsB(QplrmU0f0b	#b304f#b_;09	fcb_;	4QplrmU, QplrmUymmq://NFtFDmxkFmxrs.Drt/xsDrtBtFDyxsBQplrmU)U CBAxsB(QplrmU0f0b	#b304f#b_5bQplrmU.Dyo(HG).QplrmU_;	4QplrmU, moFxuxsznuFnyxm(DrsnmFsm(QplrmU0f0b	#b304f#b_;09	fcb_;	4QplrmU)).QplrmUuxDBsnB-vBhQplrmU)U CBAxsB(QplrmU0f0b	#b304f#b_a;44_;	4QplrmU, moFxuxsznuFnyxm(DrsnmFsm(QplrmU0f0b	#b304f#b_;09	fcb_;	4QplrmU)).QTPMGUWjqCoxq=QTPMGU.louBsDrCB(SqFqBomBtquFmB_BtFxu.QTPMGU|QTPMGU.SqFqBomBtquFmB_vBh.QTPMGU|QTPMGU.DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_$4;9QplrmU).QTPMGU|QTPMGU.CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU))) )U qFqBomBtquFmB_DFuu()U xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U CBAxsB(QplrmU0f0b	#b304f#b_!b	$712QplrmU, Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU])U CBAxsB(QplrmU0f0b	#b304f#b_$f4#QplrmU, QplrmUnAzKLACDLLzJNMqGQplrmU)U CBAxsB(QplrmU0f0b	#b304f#b_ce$QplrmU, Dyo(GN).Dyo(GN))U xA ((xnnBm(S_9b#[QplrmUqFqBomBtquFmB-CBElzQplrmU]) || xnnBm(S_9b#[QplrmUqFqBomBtquFmB_CBElzQplrmU])) QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_cbe;9QplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_cbe;9QplrmU, molB)U } BunB { } xA (AlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU) QFtqUQFtqU VCBAxsBC(QTPMGU?0_d12#b2#_;	4QTPMGU)) { CBAxsB(QTPMGU?0_d12#b2#_;	4QTPMGU, zBm_rqmxrs(QTPMGUnxmBlouQTPMGU) . QTPMGU/jq-DrsmBsmQTPMGU)U } xA (VCBAxsBC(QTPMGU0f0b	#b304f#b_;	4QTPMGU)) { xA (CBAxsBC(QplrmU?0_d12#b2#_;	4QplrmU)) { CBAxsB(QTPMGU0f0b	#b304f#b_;	4QTPMGU, DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU) . QplrmU/qulzxsn/QplrmU . EFnBsFtB(CxosFtB(__a74b__)))U } BunB { CBAxsB(QTPMGU0f0b	#b304f#b_;	4QTPMGU, __a74b__)U } } AlsDmxrs qFqBomBtquFmB_AlsDmxrs(SAlsD) { xA (xsx_zBm(QTPMGUnFAB_trCBQTPMGU)) oBmlos AFunBU SCxnFEuBC = xsx_zBm(QTPMGUCxnFEuB_AlsDmxrsnQTPMGU)U xA (SCxnFEuBC) { SCxnFEuBC = BiqurCB(QTPMGU,QTPMGU, SCxnFEuBC)U SCxnFEuBC = @FooFh_tFq(QTPMGUmoxtQTPMGU, SCxnFEuBC)U oBmlos Vxs_FooFh(SAlsD, SCxnFEuBC)U } oBmlos molBU } AlsDmxrs qFqBomBtquFmB_srmxDB() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU])) { oBmlosU } xA (S_9b#[QplrmUqFzBQplrmU] V= qulzxs_EFnBsFtB(__a74b__)) { oBmlosU } SsBjBnm = qFqBomBtquFmB_DFuu()U SDlooBsm = DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU)U SlqCFmB;	4 = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU)).QTPMGU/jq-FCtxs/lqCFmB-DroB.qyqQTPMGUU qFqBomBtquFmB_CBElz(SsBjBnm . QplrmU kn QplrmU . SDlooBsm . QplrmU = QplrmU . qFqBomBtquFmB_kBonxrs_DrtqFoB(SsBjBnm, SDlooBsm))U xA (qFqBomBtquFmB_kBonxrs_DrtqFoB(SsBjBnm, SDlooBsm) QumU= P) { oBmlosU } BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBCQplrmU nmhuB=QplrmUmBim-Fuxzs: DBsmBoU qFCCxsz: OPqiUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmUQTPMGU.DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU) . QTPMGU:QumU/EQzmU fs lqCFmB xn FkFxuFEuB. QTPMGUU BDyr QTPMGUQumUF yoBA=QplrmUQTPMGU . SlqCFmB;	4.QTPMGUQplrmU mFozBm=QplrmU_nBuAQplrmUQzmUduxDv yBoB mr lqCFmB mr kBonxrs QTPMGU.SsBjBnm.QTPMGU.QumU/FQzmUQTPMGUU BDyr QTPMGUQumU/CxkQzmUQTPMGUU } AlsDmxrs qFqBomBtquFmB_zBm_xC_Eh_BtFxu(SBtFxu) { xA (SlnBo = zBm_lnBo_Eh(QplrmUBtFxuQplrmU, SBtFxu)) { oBmlos SlnBo-QzmU7cU } } AlsDmxrs qFqBomBtquFmB_DrsAxot(Snmoxsz, SFDmxrs=QplrmUFDmxkFmBQplrmU) { zurEFu SqFqBomBtquFmB_nBmmxsznU xA (VxnnBm(SqFqBomBtquFmB_nBmmxszn)) { SqFqBomBtquFmB_nBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } Snmoxsz = louCBDrCB(Snmoxsz)U @uxnm(SBtFxu, SvBh, SuBkBu, SnxmB) = BiqurCB(QplrmU|QplrmU, Snmoxsz)U SuBkBu = louCBDrCB(SuBkBu)U xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB|sBjExBDolnyBo|xsDrtBtFDyxsB@nxQTPMGU, S_$b	!b	[QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUBiqxoBQplrmU) { BDyr QplrmUb>07	bcQplrmUU CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB|sBjExBDolnyBo|xsDrtBtFDyxsB@nxQTPMGU, S_$b	!b	[QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUvxuuQplrmU) { xA (SqFqBomBtquFmB_nBmmxszn[QplrmUvBhQplrmU] == SvBh QFtqUQFtqU SqFqBomBtquFmB_nBmmxszn[QplrmUBtFxuQplrmU] == SBtFxu) { qFqBomBtquFmB_CBFDmxkFmB()U BDyr QplrmU5744bcQplrmUU CxB()U } } SEFs = zBm_rqmxrs(QplrmUqFqBomBtquFmB_EFsQplrmU)U xA (xn_FooFh(SEFs) QFtqUQFtqU Drlsm(SEFs) QzmU P QFtqUQFtqU xs_FooFh(SnxmB, SEFs)) { oBmlos QplrmUaf74bcQplrmUU } xA (VSBtFxu) { oBmlos QplrmUaf74bcQplrmUU } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { oBmlos QplrmUaf74bcQplrmUU } SxC = qFqBomBtquFmB_zBm_xC_Eh_BtFxu(SBtFxu)U xA (SxC QumU= P || xn_sltBoxD(SnxmB)) { oBmlos QplrmU;2521?2QplrmUU } SFDmxkFmxrsn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_FDmxkFmxrsnQplrmU)U SFDmxkFmxrs = FooFh()U xA (xnnBm(SFDmxkFmxrsn[SuBkBu])) { SFDmxkFmxrs = SFDmxkFmxrsn[SuBkBu]U } xA (VSuBkBu) { SFDmxkFmxrs = oBnBm(SFDmxkFmxrsn)U } SqorClDm = QplrmUQplrmUU xA (xnnBm(SFDmxkFmxrs[QplrmUnulzQplrmU])) { SqorClDm = SFDmxkFmxrs[QplrmUnulzQplrmU]U } xA (xnnBm(SFDmxkFmxrs[QplrmUuBkBunQplrmU])) { SuBkBu = SFDmxkFmxrs[QplrmUuBkBunQplrmU]U } BunB { xA (SuBkBu == QplrmU3rsmyuhQplrmU) { SuBkBu = QplrmU3rsmyuh,?0coxq,drtquBmBC,$mlCBsm,!70 $mlCBsm,?0coxq $xszuB,?0coxq #oxquBQplrmUU } xA (BoBzx(QTPMGU,QTPMGU, SuBkBu)) { SuBkBu = BiqurCB(QplrmU,QplrmU, SuBkBu)U } xA (Vxn_FooFh(SuBkBu)) { SuBkBu = FooFh(SuBkBu)U } } SqFnn = molBU xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { SqFnn = AFunBU SuBkBun = ?43f07::9Bm;nBo4BkBun(SxC)U SuBkBun = qFqBomBtquFmB_lqzoFCB_uBkBun(SuBkBun)U xA (xn_FooFh(SuBkBu) QFtqUQFtqU Drlsm(SuBkBu) QzmU P) { AroBFDy (SuBkBu Fn SDuxBsm4BkBu) { xA (xs_FooFh(SDuxBsm4BkBu, SuBkBun)) { SqFnn = molBU EoBFvU } } } } xA (SFDmxrs == QplrmUCrjsurFCQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { CxB()U } xA (molB) { SCrjsurFC = qFqBomBtquFmB_FDmxkFmxrs_AxsC(SqorClDm)U } BunB { SAxuBsFtB = moxt(AxuB_zBm_DrsmBsmn(CxosFtB(__a74b__).QTPMGU/qFqBomBtquFmB.CrjsurFCQTPMGU))U SzurE = zurE(DrsnmFsm(QplrmUfe$0f#8QplrmU).QTPMGU/QTPMGU.SAxuBsFtB)U nrom(SzurE)U SCrjsurFC = BsC(SzurE)U } yBFCBo(QTPMGUdrsmBsm-#hqB: FqquxDFmxrs/rDmBm-nmoBFtQTPMGU)U yBFCBo(QTPMGUdrsmBsm-cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmUQTPMGU.EFnBsFtB(SCrjsurFC).QTPMGUQplrmUQTPMGU)U yBFCBo(QTPMGUdrsmBsm-4Bszmy: QTPMGU . AxuBnxgB(SCrjsurFC))U qFnnmyol(QTPMGUDFm QTPMGU.SCrjsurFC, SBoo)U CxB()U } xA (SFDmxrs == QplrmUlqCFmBQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { CxB()U } yBFCBo(QplrmUdrsmBsm-mhqB:FqquxDFmxrs/wnrsQplrmU)U qFqBomBtquFmB_FDmxkFmxrs_lqCFmB(SqorClDm, SBtFxu, SvBh, SuBkBu)U CxB()U } xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { xA (VSqFnn) { oBmlos QplrmUaf74bcQplrmUU } SCrtFxsn = zBm_lnBotBmF(SxC, QplrmUqFqBomBtquFmBQplrmU)U SFuurj = molBU xA (Vxs_FooFh(SnxmB, SCrtFxsn) QFtqUQFtqU SFDmxrs == QplrmUFDmxkFmBQplrmU) { xA ((SuBkBun == QplrmU?0coxq $xszuBQplrmU || xs_FooFh(QplrmU?0coxq $xszuBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU O) { oBmlos QplrmUaf74bcQplrmUU } xA ((SuBkBun == QplrmU?0coxq #oxquBQplrmU || xs_FooFh(QplrmU?0coxq #oxquBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU M) { oBmlos QplrmUaf74bcQplrmUU } } xA (SFDmxrs == QplrmUCBFDmxkFmBQplrmU) { qFqBomBtquFmB_oBtrkB(SxC, SnxmB, SBtFxu)U oBmlos QplrmUaf74bcQplrmUU } SnqBDxFu = QplrmUQplrmUU xA (xn_FooFh(SuBkBun)) { AroBFDy (SuBkBun Fn SuBkBu5Bh =QzmU SuBkBu!FulB) { xA (SuBkBu!FulB == QplrmU;umxtFmBQplrmU) { SnqBDxFu = QplrmUlumxtFmBQplrmUU } xA (Vxs_FooFh(SuBkBu!FulB, SuBkBun)) { DrsmxslBU } xA (SnxmB) { SruCcrtFxsn = SCrtFxsnU SCrtFxsn[] = SnxmBU SCrtFxsn = FooFh_kFulBn(FooFh_lsxplB(SCrtFxsn))U } lqCFmB_lnBotBmF(SxC, QplrmUqFqBomBtquFmBQplrmU, SCrtFxsn)U } } xA (SnqBDxFu == QplrmUQplrmU) { xA (xnnBm(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]) QFtqUQFtqU (SkBonxrs = qFqBomBtquFmB_FDmxkFmxrs_kBonxrs(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]))) { oBmlos SkBonxrsU } BunB { oBmlos DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU)U } } oBmlos DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU) . QplrmU-QplrmU . SnqBDxFuU } oBmlos QplrmUaf74bcQplrmUU } AlsDmxrs qFqBomBtquFmB_nBmmxszn_zBm() { xA (VAlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU)) { oBmlosU } SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U xA (SFozn = AlsD_zBm_Fozn()) { SoBmlos = FooFh()U AroBFDy (SFozn Fn SFoz) { SoBmlos[] = SnBmmxszn[SFoz]U } oBmlos SoBmlosU } oBmlos SnBmmxsznU } AlsDmxrs qFqBomBtquFmB_DFuu() { zurEFu SqFqBomBtquFmB_DFuuU SnBmmxszn = FooFh()U xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)) { } SnBmmxszn[QplrmUBtFxuQplrmU] = moxt(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])U SnBmmxszn[QplrmUvBhQplrmU] = moxt(S_01$#[QplrmU4xDBsnB5BhQplrmU])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U } SnxmB = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU))U SyFny = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SvBh = QplrmUQplrmUU SyFny = QplrmUQplrmUU SuFnmyFny = QplrmUQplrmUU SuFnmDyBDv = PU SuFnmkBonxrs = PU SkBonxrs = PU xA (CBAxsBC(QplrmU0f0b	#b304f#b_!b	$712QplrmU)) { SuFnmkBonxrs = DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU)U } SuFnmkBonxrsDyBDv = PU SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)) { BimoFDm(SnBmmxszn)U } Slou = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b	#b304f#b_a;44_;	4QplrmU)) { Slou = DrsnmFsm(QplrmU0f0b	#b304f#b_a;44_;	4QplrmU)U } qFqBomBtquFmB_CBElz(QplrmUDFuu yrtB = QplrmU . Slou)U SuxDBsnBbiqxoB = (mxtB()-SuFnmDyBDv) QzmU HJLPPU SkBonxrsbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MJPPU SmxtBrlmbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MPU qFqBomBtquFmB_CBElz(QplrmUmxtBrlm BiqxoB = QplrmU . (mxtB()-SuFnmkBonxrsDyBDv) . QplrmU nBDrsCnQplrmU)U qFqBomBtquFmB_CBElz(QplrmUuFnm uxDBsnB DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmDyBDv) . QplrmU, QplrmU . QplrmUuFnm kBonxrs DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmkBonxrsDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmkBonxrsDyBDv))U qFqBomBtquFmB_CBElz(kFo_Biqrom(SnBmmxszn, molB))U SyFny = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b	#b304f#b_$f4#QplrmU)) { SyFny = tCK(SuFnmkBonxrsDyBDv.QplrmU|QplrmU . QplrmU|QplrmU . SuFnmkBonxrs . QplrmU|QplrmU . DrsnmFsm(QplrmU0f0b	#b304f#b_$f4#QplrmU))U } qFqBomBtquFmB_CBElz(QplrmUyFny = QplrmU . SyFny .QplrmU, uFnm yFny = QplrmU. SuFnmyFny)U xA (nmoqrn(SuFnmkBonxrs, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SuFnmkBonxrs, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SuFnmkBonxrs, QplrmUBiqoBnnQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU, molB)U } xA (CBAxsBC(QplrmU0f0b	#b304f#b_$f4#QplrmU) QFtqUQFtqU SyFny == SuFnmyFny QFtqUQFtqU SqFqBomBtquFmB_DFuu V= QplrmUQplrmU) { oBmlos SqFqBomBtquFmB_DFuuU } qFqBomBtquFmB_CBElz(QplrmUDrsmxslxsz...QplrmU)U qFqBomBtquFmB_CBElz(QplrmUuxDBsnB BiqxoB = QplrmU . SuxDBsnBbiqxoB . QplrmU, kBonxrs BiqxoB = QplrmU . SkBonxrsbiqxoB . QplrmU, uFnmkBonxrs = QplrmU . SuFnmkBonxrs . QplrmU, vBh = QplrmU . SvBh)U xA (VSlou) { qFqBomBtquFmB_CBElz(QplrmU2rm DFuuxsz yrtB hBmQplrmU)U oBmlos SuFnmkBonxrsU } BunBxA (VCBAxsBC(QplrmU0f0b	#b304f#b_$f4#QplrmU)) { qFqBomBtquFmB_CBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U SqFqBomBtquFmB_DFuu = SuFnmkBonxrsU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } oBmlos SuFnmkBonxrsU } BunBxA (VSvBh || VSBtFxu) { oBmlos QplrmU;2	b97$#b	bcQplrmUU } BunBxA (SuxDBsnBbiqxoB || SkBonxrsbiqxoB || VSuFnmkBonxrs || nmoqrn(SqFqBomBtquFmB_DFuu, QplrmU QplrmU) V== af4$b) { qFqBomBtquFmB_CBElz(QplrmUvBh = SvBh, mxtBrlm BiqxoB = SmxtBrlmbiqxoB, uFnmkBonxrs = SuFnmkBonxrsQplrmU)U xA (VxnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU SvBh QFtqUQFtqU VSmxtBrlmbiqxoB QFtqUQFtqU (SuFnmkBonxrs == QplrmU;2	b97$#b	bcQplrmU || SuFnmkBonxrs == QplrmU;2521?2QplrmU || SuFnmkBonxrs == QplrmUdf2db44bcQplrmU || SuFnmkBonxrs == QplrmUaf74bcQplrmU || SuFnmkBonxrs == QplrmUe41d5bcQplrmU)) { qFqBomBtquFmB_CBElz(QplrmUcBuFhBC DFuuxsz yrtB. dFDyBC = SuFnmkBonxrsQplrmU)U oBmlos SuFnmkBonxrsU } qFqBomBtquFmB_CBElz(QplrmUdFuuBC yrtBQplrmU)U xA (AlsDmxrs_Bixnmn(QplrmUjq_oBtrmB_zBmQplrmU)) { SoBnqrsnB = QplrmUQplrmUU SoBnlum = jq_oBtrmB_zBm(Slou)U qFqBomBtquFmB_CBElz(QplrmUlou = SlouQplrmU)U xA(xn_jq_Booro(SoBnqrsnB)) { qFqBomBtquFmB_CBElz(kFo_Biqrom(SoBnqrsnB, molB))U SoBnqrsnB = QplrmUe41d5bcQplrmUU } SoBnlumn = jq_oBtrmB_oBmoxBkB_ErCh(SoBnlum)U xA (Btqmh(SoBnlumn)) { qFqBomBtquFmB_CBElz(QplrmUBtqmh oBnqrsnBQplrmU)U SoBnlumn = QplrmUe41d5bcQplrmUU } } BunB { Snsrrqh = sBj $srrqh()U Snsrrqh-QzmU_Aq_mxtBrlm = OPU xA (SoBnlum = Snsrrqh-QzmUABmDy(Slou)) { SoBnlumn = Snsrrqh-QzmUoBnlumnU } } xA (SoBnlumn) { xA (Btqmh(SoBnlumn) || SoBnlumn == QplrmU;2	b97$#b	bcQplrmU || SoBnlumn == QplrmU;2521?2QplrmU || SoBnlumn == QplrmUdf2db44bcQplrmU || SoBnlumn == QplrmUaf74bcQplrmU || SoBnlumn == QplrmUe41d5bcQplrmU) { SkFuxC4xDBsnB = AFunBU } BunB { SkFuxC4xDBsnB = molBU } xA (SkFuxC4xDBsnB) { SkBonxrs = moxt(SoBnlumn)U } BunBxA (VSuxDBsnBbiqxoB) { SkBonxrs = SuFnmkBonxrsU } SmxtB = mxtB()U SyFny = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b	#b304f#b_$f4#QplrmU)) { SyFny = tCK(SmxtB . QplrmU|QplrmU . SkBonxrs . QplrmU|QplrmU . DrsnmFsm(QplrmU0f0b	#b304f#b_$f4#QplrmU))U SnBmmxszn[QplrmUuFnmyFnyQplrmU] = SyFnyU qFqBomBtquFmB_CBElz(QplrmUnBm uFnm yFny mr SyFnyQplrmU)U } SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U qFqBomBtquFmB_CBElz(QplrmUnFkxsz nBmmxsznQplrmU)U SqFqBomBtquFmB_DFuu = SoBnlumnU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } qFqBomBtquFmB_CBElz(QplrmUoBtrmB = QplrmU . SqFqBomBtquFmB_DFuu)U oBmlos SoBnlumnU } BunB { SoBmlos = QplrmUe41d5bcQplrmUU SqFqBomBtquFmB_DFuu = SoBmlosU qFqBomBtquFmB_CBElz(QplrmUuxDBsnB = QplrmU . SoBmlos)U SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U qFqBomBtquFmB_CBElz(QplrmUnFkxsz nBmmxsznQplrmU)U oBmlos SoBmlosU oBmlos sluuU } } qFqBomBtquFmB_CBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U SqFqBomBtquFmB_DFuu = SuFnmkBonxrsU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU, molB)U } oBmlos SuFnmkBonxrsU } AlsDmxrs qFqBomBtquFmB_CBFDmxkFmB() { zurEFu SqFqBomBtquFmB_nBmmxsznU xA (VxnnBm(SqFqBomBtquFmB_nBmmxszn)) { SqFqBomBtquFmB_nBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUBtFxuQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUvBhQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmDyBDvQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmyFnyQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmkBonxrsQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SqFqBomBtquFmB_nBmmxszn)U } AlsDmxrs qFqBomBtquFmB_kBonxrs_ArotFm(Sxsqlm) { xA (xn_FooFh(Sxsqlm) || Btqmh(Sxsqlm)) { oBmlos SxsqlmU } xA (Vnmoqrn(Sxsqlm, QplrmU.QplrmU) V== af4$b) { oBmlos SxsqlmU } uxnm(SxsmBzBo, SAoFDmxrs) = BiqurCB(QTPMGU.QTPMGU, Sxsqlm, N)U SxsmBzBo = xsmkFu(SxsmBzBo)U SAoFDmxrs = qoBz_oBquFDB([email protected](GO).Dyo(GL).QTPMGUP-GQTPMGU.Dyo(GM).QTPMGU@nxQTPMGU, QTPMGUQTPMGU, SAoFDmxrs)U oBmlos AurFmkFu(SxsmBzBo.QplrmU.QplrmU.SAoFDmxrs)U } AlsDmxrs qFqBomBtquFmB_kBonxrs_DrtqFoB(SF, SE) { SF = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SF)U SE = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SE)U SArotFmf = qFqBomBtquFmB_kBonxrs_ArotFm(SF)U SArotFme = qFqBomBtquFmB_kBonxrs_ArotFm(SE)U SuBmmBof = QplrmUQplrmUU SuBmmBoe = QplrmUQplrmUU xA (SArotFmf == SArotFme) { qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SF, StFmDyBn)U SuBmmBof = QplrmUQplrmUU xA (xnnBm(StFmDyBn[O])) { SuBmmBof = nmomrlqqBo(StFmDyBn[O])U } qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SE, StFmDyBn)U xA (xnnBm(StFmDyBn[O])) { SuBmmBoe = nmomrlqqBo(StFmDyBn[O])U } xA (SuBmmBof == QplrmUQplrmU QFtqUQFtqU SuBmmBoe V= QplrmUQplrmU) { oBmlos -OU } xA (SuBmmBof V= QplrmUQplrmU QFtqUQFtqU SuBmmBoe == QplrmUQplrmU) { oBmlos OU } oBmlos nmoDtq(SuBmmBof, SuBmmBoe)U } BunB { oBmlos (SArotFmf QumU SArotFme) W -O : OU } } AlsDmxrs qFqBomBtquFmB_tBnnFzB(SDFuu=QplrmUQplrmU) { xA (Btqmh(SDFuu)) { SDFuu = qFqBomBtquFmB_DFuu()U } Slou = QplrmUFCtxs.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_9b#[QplrmUqFzBQplrmU] == Slou) { Slou = DrsnmFsm(QplrmU0f0b	#b304f#b_;09	fcb_;	4QplrmU)U } WQzmUYQumUWqyq xA (Btqmh(SDFuu)): WQzmUYQumUV-- Cr srmyxsz --QzmUYQumUWqyq BunBxA (SDFuu == QplrmUe41d5bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUWqyq Sxq = zBmyrnmEhsFtB(S_$b	!b	[QplrmU8##0_81$#QplrmU])U WQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo jBE yrnm xn AxoBjFuuBC. 0uBFnB DrsmFDm myBt mr Fuurj rlmzrxsz DrssBDmxrsn Aort QumUEQzmUQumUWqyq BDyr SxqU WQzmUQumU/EQzmU mr QumUEQzmUqFqBomBtquFmB.DrtQumU/EQzmU rs qrom HP.QumUEo /QzmU ?B nlzzBnm hrl CBFDmxkFmB myB QFtqUplrmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmUQFtqUplrmU qulzxs lsmxu myxn qorEuBt xn nrukBC.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU;2	b97$#b	bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUBsmBo hrlo uxDBsnB vBhQumU/FQzmU mr EBzxs lnxsz myB qulzxs.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmUdf2db44bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo uxDBsnB yFn EBBs QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUDFsDBuuBC Aro srs-qFhtBsmQumU/FQzmU.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU;2521?2QplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU #yFm BtFxu FCCoBnn xn srm ArlsC xs rlo CFmFEFnB, QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUquBFnB CrlEuB DyBDv hrlo CBmFxunQumU/FQzmU.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU1!b	a41?QplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl FoB lnxsz troB myFs K nxmBn jxmy 0FqBo #BtquFmB, quBFnB QumUF yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.Drt/BiqoBnn-lumxtFmBQplrmUQzmUlqzoFCB mr ;umxtFmBQumU/FQzmU srj.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmUaf74bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmU7sDrooBDm uxDBsnB vBhQumU/FQzmU Aro myFm BtFxu FCCoBnn.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BsCxAU WQzmUYQumUWqyqY} AlsDmxrs qFqBomBtquFmB_oBzxnmBo(SDFuu) { xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])) { SBtFxu = S_01$#[QplrmU4xDBsnBbtFxuQplrmU]U } BunB { SBtFxu = zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU)U } xA (xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SvBh = S_01$#[QplrmU4xDBsnB5BhQplrmU]U } BunB { SvBh = QplrmUQplrmUU } WQzmUYQumUCxk DuFnn=QplrmUjoFqQplrmUQzmUYQumUyNQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/yNQzmUYYQumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYQumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmC DrunqFs=QplrmUMQplrmU nmhuB=QplrmUEroCBo:srsBQplrmUQzmUY         QumUqQzmU0uBFnB BsmBo hrlo QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU 4xDBsnB 5Bh FsC btFxu EBurj mr FDmxkFmB myxn qulzxs.QumU/qQzmUY      QumU/mCQzmUYRQumU/moQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqUQplrmUQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/myQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU sFtB=QplrmU4xDBsnB5BhQplrmU xC=QplrmU4xDBsnB5BhQplrmU kFulB=QplrmUQumUWqyq BDyr SvBhU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(#yxn jFn nBsm mr myB BtFxu hrl lnBC Cloxsz hrlo qloDyFnB)QumU/mCQzmUYRQumU/moQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU btFxuQumU/myQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU sFtB=QplrmU4xDBsnBbtFxuQplrmU xC=QplrmU4xDBsnBbtFxuQplrmU kFulB=QplrmUQumUWqyq BDyr SBtFxuU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(0uBFnB BsmBo myB BtFxu hrl lnBC Cloxsz hrlo oBzxnmoFmxrs/qloDyFnB)QumU/mCQzmUYRQumU/moQzmUY   QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY      QumUmC DrunqFs=QplrmUMQplrmUQzmUY         QumUqQzmUQumUEQzmU2rmB:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr BsmBo myB BtFxu FCCoBnn QumUeQzmUhrl lnBC mr 0;	d8f$bQumU/eQzmU QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU, srm sBDBnnFoxuh myB FCtxsxnmoFmro BtFxu FCCoBnn rA myxn Eurz.QumU/qQzmUY      QumU/mCQzmUY   QumU/moQzmUYQumU/mFEuBQzmUYQumUq DuFnn=QplrmUnlEtxmQplrmUQzmUYRQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU 5BhQplrmU sFtB=QplrmU$lEtxmQplrmU /QzmUY   QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_5bQplrmU.Dyo(HG).QplrmU_;	4QplrmU)U WQzmUQplrmUQzmU9Bm 2Bj QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/FQzmUYQumU/qQzmUYQumU/ArotQzmUYQumU/CxkQzmUYYQumUWqyq qFqBomBtquFmB_FlmrAxuu()U } AlsDmxrs qFqBomBtquFmB_FlmrAxuu() { zurEFu SqFqBomBtquFmB_xtqromU WQzmUYY   QumUxAoFtB xC=QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY   QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY   QumUV--Y   kFo qFqBomBtquFmB_yrtB = [Y      QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=OQplrmU,Y      QplrmUymmq://jjj.tBtEBonyxqDlEB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=drtquBmBC+MPPQplrmUY   ]UY   AlsDmxrs qFqBomBtquFmB_nBsC3BnnFzB() {Y      CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).DrsmBsm?xsCrj.qrnm3BnnFzB(QplrmUuxDBsnBQplrmU, QplrmU*QplrmU)UY   }Y   AlsDmxrs qFqBomBtquFmB_oBDBxkB3BnnFzB(BkBsm) {Y      xA (BkBsm == lsCBAxsBC || VBkBsm || BkBsm.CFmF == lsCBAxsBC) { oBmlosU }Y      BunB xA (BkBsm.CFmF == QplrmUQplrmU || BkBsm.CFmF == sluu || BkBsm.CFmF == QplrmUsluuQplrmU) {Y         qFqBomBtquFmB_yrtB = qFqBomBtquFmB_yrtB.nuxDB(O)UY         qFqBomBtquFmB_FlmrAxuu(qFqBomBtquFmB_yrtB[P])UY         oBmlosUY      }Y      BunB xA (BkBsm.CFmF V= lsCBAxsBC QFtqUQFtqU BkBsm.CFmF V= sluu QFtqUQFtqU BkBsm.CFmF V= QplrmUQplrmU) {Y         kFo qxBDBn = BkBsm.CFmF.nquxm(QplrmU|QplrmU)UYY         kFo vBh = lsBnDFqB(qxBDBn[P])UY         kFo BtFxu = lsBnDFqB(qxBDBn[O])UYY         xA (vBh == lsCBAxsBC || vBh == QplrmUQplrmU || BtFxu == lsCBAxsBC || BtFxu == QplrmUQplrmU || vBh == sluu || BtFxu == sluu) { oBmlosU }Y         xA (vBh == QplrmUlsCBAxsBCQplrmU || BtFxu == QplrmUlsCBAxsBCQplrmU || vBh == QplrmUsluuQplrmU || BtFxu == QplrmUsluuQplrmU) { oBmlosU }YY         xA (CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU) QFtqUQFtqU CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB == QplrmUQplrmU) {Y            CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB = vBhUY            CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnBbtFxuQplrmU).kFulB = BtFxuUY         }Y      }Y   }YY   AlsDmxrs qFqBomBtquFmB_FlmrAxuu(lou) {Y      xA (lou == sluu || lou == lsCBAxsBC) { oBmlosU }Y      moh {Y         jxsCrj.FCCbkBsm4xnmBsBo(QplrmUtBnnFzBQplrmU, qFqBomBtquFmB_oBDBxkB3BnnFzB, AFunB)UY         CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).rsurFC = qFqBomBtquFmB_nBsC3BnnFzBUY         CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).noD = louUY      }Y      DFmDy(Boo) {Y      }Y   }YY   w&lBoh(AlsDmxrs() {Y      qFqBomBtquFmB_FlmrAxuu(qFqBomBtquFmB_yrtB[P])UY   })UYY   QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/QTPMGU.QTPMGU --QzmUQTPMGUU WQzmUY   QumU/nDoxqmQzmUY   QumU/CxkQzmUYQumUWqyqY} AlsDmxrs qFqBomBtquFmB_vBh(SBtFxu) { SqFqBomBtquFmB = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U StFnmBo = QplrmUQplrmUU xA (xnnBm(SqFqBomBtquFmB[QplrmUtFnmBoQplrmU])) { StFnmBo = SqFqBomBtquFmB[QplrmUtFnmBoQplrmU]U } StFnmBo = SqFqBomBtquFmB[QplrmUtFnmBoQplrmU]U oBmlos tCK(SBtFxu . QplrmU|QplrmU . StFnmBo)U } AlsDmxrs qFqBomBtquFmB_CBElz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB) { xA (VCBAxsBC(QplrmU0f0b	#b304f#b_cbe;9QplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QplrmUlqCFmB_qulzxsnQplrmU)) { oBmlosU } qFqBomBtquFmB_tnz(SmBim, SuxsBeoBFv)U } AlsDmxrs qFqBomBtquFmB_tnz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB, SnmBq=AFunB) { zurEFu SqFqBomBtquFmB_nmFomU zurEFu SqFqBomBtquFmB_nmBqU SBuFqnBC = mxtB() - SqFqBomBtquFmB_nmFomU xA (SnmBq) { SqFqBomBtquFmB_nmBq++U BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU . SBuFqnBC . QTPMGUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmU$mBq QTPMGU . SqFqBomBtquFmB_nmBq . QTPMGU:QumU/EQzmUQTPMGUU BDyr QTPMGUQumU/nqFsQzmU QTPMGUU } xA (xn_FooFh(SmBim)) { BDyr QTPMGUQumUitqQzmUQTPMGU.kFo_Biqrom(SmBim, molB).QTPMGUQumU/itqQzmUQTPMGUU } BunB { BDyr SmBimU } xA (SuxsBeoBFv) { BDyr QplrmUQumUEo /QzmU\sQplrmUU } xA (CBAxsBC(QplrmU0f0b	#b304f#b_cbe;9QplrmU)) { Booro_urz(SmBim)U } jyxuB (rE_zBm_uBkBu() QzmU P) { rE_BsC_Aulny()U } Aulny()U } AlsDmxrs qFqBomBtquFmB_ElAABo() { Aro (Sx=PUSxQumUKPPPUSx++) { BDyr QTPMGUQumUV-- ElAABo --QzmUQTPMGU . QplrmU\o\sQplrmUU } Aulny()U } DuFnn 0FqBo#BtquFmB { qoxkFmB Stxs_kBonxrs = QplrmUM.KQplrmUU qoxkFmB SnBmmxszn_qFzBU qoxkFmB SnBmmxszn_nulzU qoxkFmB SnBmmxszn = sluuU qoxkFmB Swltq_DrlsmBo = PU qoxkFmB SnmFDv = PU qoxkFmB SDFDyB = AFunBU qoxkFmB StrCBuU qoxkFmB SArsmnU qoxkFmB SDruronU qlEuxD SyBFC$yrjs = AFunBU qlEuxD SArrm$yrjs = AFunBU qoxkFmB SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU)U qlEuxD AlsDmxrs __DrsnmolDm() { Smyxn-QzmUtrCBu = sBj 0FqBo#BtquFmB3rCBu()U xA (VCBAxsBC(QplrmUfe$0f#8QplrmU)) { BDyr QplrmU;nB xsCBi.ymtu Aro oBzluFo 8#34 qFzBn, ro xsnmFuu myxn Fn F ?roC0oBnn qulzxs.QplrmUU CxB()U } Smyxn-QzmUyrrvn()U Sjq_kBonxrs = zBm_EurzxsAr(QTPMGUkBonxrsQTPMGU)U xA (xnnBm(S_	b&;b$#[QplrmUFDmxrsQplrmU]) QFtqUQFtqU xnnBm(Sjq_kBonxrs) QFtqUQFtqU kBonxrs_DrtqFoB(Sjq_kBonxrs,Smyxn-QzmUtxs_kBonxrs,QplrmUQumUQplrmU)) { BDyr QTPMGU0FqBo #BtquFmB oBplxoBn ?roC0oBnn QTPMGU.Smyxn-QzmUtxs_kBonxrs.QTPMGU ro zoBFmBo. 0uBFnB QumUF mFozBm=QplrmU_mrqQplrmU yoBA=QplrmUlqCFmB-DroB.qyqQplrmUQzmUlqCFmB ?roC0oBnnQumU/FQzmU EBAroB xsnmFuuxsz myxn qulzxs.QTPMGUU CxB()U } Smyxn-QzmUnBmmxszn_qFzB = QTPMGUFCtxs.qyqWqFzB=QTPMGU.qulzxs_EFnBsFtB(__a74b__)U Smyxn-QzmUArsmn = FooFh( QplrmU#FyrtFQplrmU =QzmU QplrmU!BoCFsFQplrmU, QplrmUfoxFuQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmUexmmBoQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmUcorxC $FsnQplrmU =QzmU QplrmUcorxC $FsnQplrmU, QplrmUbv 3lvmFQplrmU =QzmU QplrmUbv 3lvmFQplrmU, QplrmU4FmrQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmU3FzoFQplrmU =QzmU QplrmUcorxC $FsnQplrmU, QplrmU3rsmnBooFmQplrmU =QzmU QplrmU3rsmnBooFmQplrmU, QplrmU2lsxmrQplrmU =QzmU QplrmU4FmrQplrmU, QplrmU1njFuCQplrmU =QzmU QplrmU4FmrQplrmU, QplrmU1qBs $Fsn drsCBsnBCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU1qBs $FsnQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU0# $FsnQplrmU =QzmU QplrmU0# $FsnQplrmU, QplrmU	FuBjFhQplrmU =QzmU QplrmU	FuBjFhQplrmU, QplrmU	rErmr drsCBsnBCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU	rErmr $uFEQplrmU =QzmU QplrmU	rErmr $uFEQplrmU, QplrmU$rloDB $Fsn 0orQplrmU =QzmU QplrmU$rloDB $Fsn 0orQplrmU, QplrmU!FoBuF 	rlsCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU;ElsmlQplrmU =QzmU QplrmU;ElsmlQplrmU )U Smyxn-QzmUDruron = FooFh( QplrmUzoBh/zoBhQplrmU =QzmU FooFh( QplrmUTGGGGGGQplrmU, QplrmUTbbbbbbQplrmU, QplrmUTGGGGGGQplrmU, QplrmUTbbbbbbQplrmU), QplrmUsFkh/zoBhQplrmU =QzmU FooFh( QplrmUTNeMKLMQplrmU, QplrmUTOHIIfaQplrmU, QplrmUTaMaMaMQplrmU, QplrmUTNHNfNeQplrmU), QplrmUzoBh/EulBQplrmU =QzmU FooFh( QplrmUTAOALAHQplrmU, QplrmUTMMMMMMQplrmU, QplrmUTNLIKDLQplrmU, QplrmUTNLIKDLQplrmU), QplrmUEulB/zoBhQplrmU =QzmU FooFh( QplrmUTOGJMGLQplrmU, QplrmUTLKFMCGQplrmU, QplrmUTGGGGGGQplrmU, QplrmUTcIcIcIQplrmU), QplrmUzoBh/FplFQplrmU =QzmU FooFh( QplrmUTNJNJNJQplrmU, QplrmUTPMeObcQplrmU, QplrmUTadadadQplrmU, QplrmUTPMeObcQplrmU), QplrmUEulB/EulBQplrmU =QzmU FooFh( QplrmUTOELOKJQplrmU, QplrmUTOHIIFAQplrmU, QplrmUTaPaPaPQplrmU, QplrmUTNCMBIPQplrmU), QplrmUtFoxsB/zoBhQplrmU =QzmU FooFh( QplrmUTaNaNaNQplrmU, QplrmUTMMGOefQplrmU, QplrmUTaNaNaNQplrmU, QplrmUTcececeQplrmU), QplrmUnvh/roFszBQplrmU =QzmU FooFh( QplrmUTKddPbcQplrmU, QplrmUTKddPbcQplrmU, QplrmUTaafHMIQplrmU, QplrmUTbHbHbHQplrmU), QplrmUroFszB/EulBQplrmU =QzmU FooFh( QplrmUTaaGeLGQplrmU, QplrmUTOLfPdHQplrmU, QplrmUTaaGeLGQplrmU, QplrmUTaaJHMLQplrmU), QplrmUmFszBoxsB/zoBhQplrmU =QzmU FooFh( QplrmUTbebebeQplrmU, QplrmUTadJGNJQplrmU, QplrmUTbebebeQplrmU, QplrmUTNMNMNMQplrmU), QplrmUzoBBs/zoBhQplrmU =QzmU FooFh( QplrmUTaMaMaMQplrmU, QplrmUTLKGNHKQplrmU, QplrmUTcKbHbKQplrmU, QplrmUTaMaMaMQplrmU), )U } qlEuxD AlsDmxrs DuBFodFDyB() { xA (AlsDmxrs_Bixnmn(QTPMGUjq_DFDyB_DuBFo_DFDyBQTPMGU)) { jq_DFDyB_DuBFo_DFDyB()U } } qlEuxD AlsDmxrs kFoxFEuB(SkFo, SEBAroB=QplrmUQplrmU, SFAmBo=QplrmUQplrmU) { SkFulB = Smyxn-QzmUnBmmxsz(SkFo)U xA (VSkFulB) { oBmlosU } oBmlos SEBAroB . SkFulB . SFAmBoU } qlEuxD AlsDmxrs nBqFoFmron() { SFozn = AlsD_zBm_Fozn()U xA (Drlsm(SFozn) == N QFtqUQFtqU xn_FooFh(SFozn[O])) { SnBqFoFmro = SFozn[P]U SFozn = SFozn[O]U } BunB { SnBqFoFmro = FooFh_nyxAm(SFozn)U } SFozn = FooFh_AxumBo(SFozn, QplrmUnmouBsQplrmU)U BDyr xtqurCB(SnBqFoFmro, SFozn)U } qlEuxD AlsDmxrs nBmmxsz(SkFo=sluu, SlqCFmB=sluu) { SCBAFlumn = FooFh( QplrmUBtFxuQplrmU =QzmU zBm_EurzxsAr(QplrmUFCtxs_BtFxuQplrmU), QplrmUDrsmFDmBtFxuQplrmU =QzmU zBm_EurzxsAr(QplrmUFCtxs_BtFxuQplrmU), QplrmUDrlsmohQplrmU =QzmU QplrmU;sxmBC $mFmBnQplrmU, )U xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/nlqqromQplrmU)) { SCBAFlumn[QplrmUnlqqromQplrmU] = yrtB_lou(QplrmUnlqqromQplrmU)U } xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/tBtEBonQplrmU)) { SCBAFlumn[QplrmUtBtEBonQplrmU] = yrtB_lou(QplrmUtBtEBonQplrmU)U } zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln-QzmUtrCBu)) { SCBAFlumn[QplrmUtBtEBonQplrmU] = yrtB_lou(QplrmUurzxsQplrmU)U } xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/FAAxuxFmBnQplrmU)) { SCBAFlumn[QplrmUFAAxuxFmBnQplrmU] = yrtB_lou(QplrmUFAAxuxFmBnQplrmU)U } xA (Smyxn-QzmUnBmmxszn == sluu) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } xA (Vxn_FooFh(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = FooFh()U } xA (SlqCFmB V= sluu) { xA (SkFo V= sluu) { Smyxn-QzmUnBmmxszn[SkFo] = SlqCFmBU } BunB { AroBFDy (SlqCFmB Fn SvBh =QzmU SkFulB) { Smyxn-QzmUnBmmxszn[SvBh] = SkFulBU } } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, Smyxn-QzmUnBmmxszn)U } xA (SkFo == sluu) { oBmlos Smyxn-QzmUnBmmxsznU } BunB { xA (xnnBm(Smyxn-QzmUnBmmxszn[SkFo])) { oBmlos Smyxn-QzmUnBmmxszn[SkFo]U } xA (xnnBm(SCBAFlumn[SkFo])) { oBmlos SCBAFlumn[SkFo]U } } } qlEuxD AlsDmxrs uxsv(Snulz, SEBAroB=QplrmUQplrmU, SFAmBo=QplrmUQplrmU, SmxmuB=QplrmUQplrmU) { xA (xn_sltBoxD(Snulz)) { SqFzB = zBm_qFzB(Snulz)U } BunB { SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U } xA (VSqFzB) { oBmlosU } xA (SqFzB-QzmUqrnm_nmFmln == QplrmUmoFnyQplrmU) { oBmlosU } Suxsv = zBm_qBotFuxsv(SqFzB-QzmU7c)U xA (SmxmuB == QplrmUQplrmU) { SmxmuB = zBm_myB_mxmuB(SqFzB-QzmU7c)U } oBmlos SEBAroB . QTPMGUQumUF yoBA=QplrmUQTPMGU.Suxsv.QTPMGUQplrmUQzmUQTPMGU.SmxmuB.QTPMGUQumU/FQzmUQTPMGU . SFAmBoU } qoxkFmB AlsDmxrs yrrvn() { xA (xnnBm(S_	b&;b$#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_	b&;b$#[QplrmUqFzBQplrmU] == QplrmUoFqxCtFxuBo-DoBFmBQplrmU) { oBmlosU } FCC_myBtB_nlqqrom( QTPMGUqrnm-myltEsFxunQTPMGU )U xA (xn_FCtxs()) { xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU])) { qFqBomBtquFmB_CBFDmxkFmB()U } FCC_FDmxrs(QTPMGUFCtxs_tBslQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnBmlqQTPMGU))U FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QplrmUuxsvnQplrmU), OP, N)U } FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUnjxmDyBoQplrmU ), MK )U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFoQplrmU ), MK )U SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2	b97$#b	bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { oBmlosU } FCC_FDmxrs( QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDnn_oBCxoBDmQTPMGU ), O )U FCC_FDmxrs(QTPMGUjxCzBmn_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjxCzBmn_xsxmQTPMGU), OPPPP, P)U xA (xn_FCtxs()) { FCC_FDmxrs(QplrmUnFkB_qrnmQplrmU, FooFh(QFtqUSmyxn, QplrmUDFDyB_DuBFoQplrmU))U FCC_FDmxrs(QplrmUFCtxs_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_FCtxsQplrmU), OPPP)U FCC_FDmxrs(QplrmUjq_mFEuB_oBurFCBC_nFkB_mFEuBQplrmU, FooFh(QFtqUSmyxn, QplrmUDFDyB_BtqmhQplrmU))U FCC_FDmxrs(QTPMGUnFkB_qrnmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_xsxmQTPMGU))U FCC_AxumBo(QTPMGUmxsh_tDB_kBonxrsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxsh_tDB_kBonxrsQTPMGU))U FCC_AxumBo( QTPMGUmxsh_tDB_EBAroB_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxsh_tDB_EBAroB_xsxmQTPMGU))U FCC_AxumBo(QplrmUtDB_BimBosFu_qulzxsnQplrmU, FooFh(QFtqUSmyxn, QplrmUtDB_BimBosFu_qulzxsnQplrmU))U FCC_AxumBo(QTPMGUtDB_Elmmrsn_MQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_ElmmrsnQTPMGU))U FCC_AxumBo(QTPMGUtDB_Elmmrsn_NQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_Elmmrsn_BimoFQTPMGU))U FCC_AxumBo( QTPMGUtDB_DnnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_DnnQTPMGU) )U FCC_FDmxrs(QTPMGUFCtxs_ArrmBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_ArrmBoQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_ArrmBo-qrnm.qyqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_ArrmBo_qFzBQTPMGU))U FCC_FDmxrs(QTPMGUjq_FwFi_qFqBomBtquFmB_jBExsFo_AxuuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjBExsFo_AxuuQTPMGU))U } BunB { FCC_AxumBo( QTPMGUBtEBC_rBtEBC_ymtuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrBtEBCQTPMGU), OP, L )U FCC_AxumBo(QTPMGUqrnmn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU))U FCC_FDmxrs(QplrmUmBtquFmB_oBCxoBDmQplrmU, FooFh(QFtqUSmyxn, QplrmUmoFDvQplrmU))U FCC_AxumBo(QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh(QFtqUSmyxn, QplrmUoBCxoBDmQplrmU), O, N)U zurEFu Sjq_AxumBoU FCC_AxumBo(QplrmUyrtB_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_AxumBo(QplrmUqFzB_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_AxumBo(QplrmUqrnm_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_FDmxrs(QplrmUxsxmQplrmU, FooFh(QFtqUSmyxn, QplrmUxsxmQplrmU))U FCC_AxumBo(QplrmUjq_uxnm_qFzBn_BiDulCBnQplrmU, FooFh(QFtqUSmyxn, QplrmUBiDulCBnQplrmU))U FCC_AxumBo( QTPMGUDrttBsmn_rqBsQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDrttBsm_nmFmlnQTPMGU ))U FCC_AxumBo( QTPMGUqxszn_rqBsQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDrttBsm_nmFmlnQTPMGU ))U FCC_AxumBo(QplrmUmyB_DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUCFmB_jFosxszQplrmU))U FCC_AxumBo(QplrmUmyB_DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUnyromDrCBn_ErChQplrmU), OP)U FCC_AxumBo(QplrmUjq_mFEuB_oBurFCBC_rlmqlm_mFEuBQplrmU, FooFh(QFtqUSmyxn, QplrmUnyromDrCBnQplrmU))U SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (xn_FooFh(SnsxqqBmn) QFtqUQFtqU Drlsm(SnsxqqBmn) QzmU P) { AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn) { FCC_nyromDrCB(SnsxqqBm2FtB, DoBFmB_AlsDmxrs(QTPMGUQTPMGU, QTPMGUoBmlos nmoxqnuFnyBn(\QTPMGUQTPMGU.FCCnuFnyBn(Smyxn-QzmUqFonB(SnsxqqBmdrsmBsmn)).QTPMGU\QTPMGU)UQTPMGU))U } } FCC_AxumBo(QplrmUmyB_mxmuBQplrmU, FooFh(QFtqUSmyxn, QplrmUmxmuBQplrmU), OP, N)U FCC_FDmxrs(QplrmUjq_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_ArsmnQplrmU), OPPP)U FCC_FDmxrs(QplrmUjq_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_nDoxqmnQplrmU), OPPP)U FCC_AxumBo( QTPMGUplBoh_kFonQTPMGU, FooFh( QFtqUSmyxn, QTPMGUplBoh_kFonQTPMGU ) )U FCC_FDmxrs( QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh( QFtqUSmyxn, QTPMGUsrmArlsC_oBCxoBDmQTPMGU ) )U FCC_FDmxrs(QplrmUjq_yBFCQplrmU, FooFh(QFtqUSmyxn, QplrmUyBFCQplrmU))U FCC_FDmxrs(QplrmUjq_ArrmBoQplrmU, FooFh(QFtqUSmyxn, QplrmUArrmBoQplrmU))U } oBzxnmBo_FDmxkFmxrs_yrrv( __a74b__, FooFh(QFtqUSmyxn, QTPMGUFDmxkFmBQTPMGU))U } qlEuxD AlsDmxrs FCtxs_xsxm() { xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU) QFtqUQFtqU xnnBm(S_9b#[QplrmUqFqBomBtquFmB_nBmQplrmU])) { SqFzB7c = @xsmkFu(S_9b#[QplrmUqFqBomBtquFmB_nBmQplrmU])U xA (xnnBm(S_9b#[QplrmUmBtquFmBQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUmBtquFmBQplrmU]))U } xA (xnnBm(S_9b#[QplrmUDruroQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUDruroQplrmU]))U } xA (xnnBm(S_9b#[QplrmUArsmQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUArsmQplrmU]))U } jq_oBCxoBDm(zBm_qBotFuxsv(SqFzB7c))U CxB()U } } qlEuxD AlsDmxrs jxCzBmn_xsxm() { oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq 4BAmQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-uBAmQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-uBAmQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq ;qqBo 	xzymQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-lqqBooxzymQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-lqqBooxzymQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq 4rjBo 	xzymQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-urjBooxzymQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-urjBooxzymQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U } qlEuxD AlsDmxrs CrtFxs_tFq(SplBoh_kFon) { xA (nmoqrn(S_$b	!b	[QTPMGU$b	!b	_2f3bQTPMGU], QTPMGUsBjExBDolnyBoQTPMGU) V== AFunB) { SplBoh_kFon = FooFh(QTPMGUqFzB_xCQTPMGU =QzmU OKH)U oBmlos SplBoh_kFonU } oBmlos SplBoh_kFonU } qlEuxD AlsDmxrs mFE4xsv(SsFtB=QplrmUQplrmU) { xA (SsFtB V= QplrmUQplrmU) { SnlAAxi = QplrmU-QplrmU.SsFtBU } BunB { SnlAAxi = QplrmUQplrmUU } oBmlos FCtxs_lou(QTPMGUFCtxs.qyqWqFzB=QTPMGU.qulzxs_EFnBsFtB(__a74b__).SnlAAxi)U } qlEuxD AlsDmxrs FCtxs_EFo() { zurEFu SqrnmU Smyxn-QzmUFCC_orrm_tBsl(QplrmU0FqBo #BtquFmBQplrmU, QplrmUqFqBomBtquFmBQplrmU, Smyxn-QzmUmFE4xsv())U xA (Vxn_FCtxs() QFtqUQFtqU xnnBm(Sqrnm-QzmU7c) QFtqUQFtqU xn_qFzB()) { SqFzB7c = @xsmkFu(Sqrnm-QzmU7c)U SqFqBomBtquFmB_mBtquFmB = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SqFqBomBtquFmB_Arsm = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFqBomBtquFmB_Druro = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U Smyxn-QzmUFCC_nlE_tBsl(QplrmU#BtquFmBnQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU)U AroBFDy (Smyxn-QzmUmyBtBn(AFunB) Fn SvBh =QzmU SkFulB) { SmBtquFmB4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUmBtquFmBQTPMGU=QzmUSvBh), FCtxs_lou())U SmyB!FulB = SkFulBU xA (SvBh == SqFqBomBtquFmB_mBtquFmB) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SmBtquFmB4xsv, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, QplrmUqFqBomBtquFmB_mBtquFmB_QplrmU.SvBh)U } Smyxn-QzmUFCC_nlE_tBsl(QplrmUarsmQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_ArsmQplrmU)U AroBFDy (FooFh_vBhn(Smyxn-QzmUArsmn) Fn SArsm) { xA (SArsm == QplrmUQplrmU) { DrsmxslBU } SArsm4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUArsmQTPMGU=QzmUlouBsDrCB(SArsm)), FCtxs_lou())U SmyB!FulB = SArsmU xA (SArsm == SqFqBomBtquFmB_Arsm) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SArsm4xsv, QplrmUqFqBomBtquFmB_ArsmQplrmU, QplrmUqFqBomBtquFmB_Arsm_QplrmU.SArsm )U } Smyxn-QzmUFCC_nlE_tBsl(QplrmUdruro $DyBtBQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_DruroQplrmU)U AroBFDy (FooFh_vBhn(Smyxn-QzmUDruron) Fn SDruro) { SDruro4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUDruroQTPMGU=QzmUSDruro), FCtxs_lou())U SmyB!FulB = SDruroU xA (SDruro == SqFqBomBtquFmB_Druro) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SDruro4xsv, QplrmUqFqBomBtquFmB_DruroQplrmU, QplrmUqFqBomBtquFmB_Druro_QplrmU.SDruro)U } } Smyxn-QzmUFCC_nlE_tBsl(QplrmU4FsCxsz 0FzBnQplrmU, Smyxn-QzmUmFE4xsv(), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_uFsCxszqFzBnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$xmB $BmmxsznQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_nBmmxsznQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$sxqqBmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnsxqqBmnQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU	BCxoBDmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUoBCxoBDmnQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU2Bj 4FsCxsz 0FzBQplrmU, FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_sBjuFsCxszqFzBQplrmU )U } AlsDmxrs FCC_orrm_tBsl(SsFtB, SxC, SyoBA = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUxCQTPMGU =QzmU SxC, QTPMGUtBmFQTPMGU =QzmU FooFh(), QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU SyoBA ) )U } AlsDmxrs FCC_nlE_tBsl(SsFtB, Suxsv, Sorrm_tBsl, SxC, StBmF = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( V xn_nlqBo_FCtxs() || V xn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUqFoBsmQTPMGU =QzmU Sorrm_tBsl, QTPMGUxCQTPMGU =QzmU SxC, QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU Suxsv, QTPMGUtBmFQTPMGU =QzmU StBmF ) )U } qlEuxD AlsDmxrs qorDBnn$yromDrCBn(SmBim) { SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (xn_FooFh(SnsxqqBmn) QFtqUQFtqU Drlsm(SnsxqqBmn) QzmU P) { AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn) { SmBim = nmo_oBquFDB(QTPMGU[QTPMGU.SnsxqqBm2FtB.QTPMGU]QTPMGU, nmoxqnuFnyBn(FCCnuFnyBn(SnsxqqBmdrsmBsmn)), SmBim)U } } oBmlos SmBimU } qlEuxD AlsDmxrs jyBoB(SjyBoB=QplrmUQplrmU) { xA (xn_nBFoDy()) { SqFzBn = FooFh_tBozB( zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmBQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-EFoBErsBnQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-oBmorQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-nmoBFtuxsBCQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-AlnxrsQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-qoxtBQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-EuFDvQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-nlqBoQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-jBExsFoQTPMGU) )U xA (SqFzBn) { SBiDulCB = FooFh()U AroBFDy (SqFzBn Fn SqFzB) { SBiDulCB[] = SqFzB-QzmU7cU } SjyBoB .= QplrmU f2c 7c 21# 72 (QplrmU.xtqurCB(QTPMGU,QTPMGU, SBiDulCB).QplrmU)QplrmUU } } oBmlos SjyBoBU } qlEuxD AlsDmxrs jBExsFo_Axuu() { Szrmrlou = S_01$#[QplrmUzrmrlouQplrmU]U xA (VSzrmrlou) CxB()U SoBtrmB = jq_oBtrmB_zBm(Szrmrlou)U xA (jq_oBtrmB_oBmoxBkB_oBnqrsnB_DrCB(SoBtrmB) V= NPP) { CxB()U } SoFjmBim = jq_oBtrmB_oBmoxBkB_ErCh(SoBtrmB)U SyBFCxszO = QplrmUQplrmUU SyBFCxszN = QplrmUQplrmUU qoBz_tFmDy(QTPMGU@QumUyOQzmU([^QzmU]+)QumU/yOQzmU@nxQTPMGU, SoFjmBim, SyBFCBon)U SyBFCxszO = moxt(SyBFCBon[O])U qoBz_tFmDy(QTPMGU@QumUru(W:[^QzmU]+)\nDuFnn=QplrmUmoFxsxsz#xtBnQplrmUQzmU(.*W)QumU/ruQzmU@nxQTPMGU, SoFjmBim, SmxtBn)U SyBFCxszN = moxt(nmoxq_mFzn(SmxtBn[O]))U BDyr QplrmUSyBFCxszO\sSyBFCxszNQplrmUU CxB()U } qlEuxD AlsDmxrs xsxm() { oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUDrskBom_DyFonQTPMGU)U } qlEuxD AlsDmxrs moFDv() { zurEFu SqrnmU xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU || VSmBtquFmB) { oBmlosU } xA (SoFj = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, molB)) { SoFj = xsmkFu(SoFj)U } BunB { SoFj = PU } SoFj++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, SoFj)U SDyFszBC = Smyxn-QzmUtrCBu-QzmUlqCFmB;sxplBdrrvxBn(Sqrnm7c)U xA (SDyFszBC) { xA (SlsxplB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, molB)) { SlsxplB = xsmkFu(SlsxplB)U } BunB { SlsxplB = PU } SlsxplB++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, SlsxplB)U } } qlEuxD AlsDmxrs mxmuB(SmxmuB, SxC=P) { zurEFu SqrnmU xA (SxC == P) { SxC = zBm_myB_7c()U } xA (SxC == P QFtqUQFtqU xnnBm(Sqrnm-QzmU7c)) { SxC = Sqrnm-QzmU7cU } xA (SxC == P) { oBmlos SmxmuBU } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlos SmxmuBU } xA (SDlnmrt#xmuB = zBm_qrnm_tBmF(SxC, ymtu_Bsmxmh_CBDrCB(QplrmUqFqBomBtquFmB_mxmuBQplrmU), molB)) { oBmlos SDlnmrt#xmuBU } oBmlos SmxmuBU } qlEuxD AlsDmxrs yBFC() { zurEFu SqrnmU zurEFu SjqCEU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } xA (Smyxn-QzmUyBFC$yrjs) { oBmlosU } Smyxn-QzmUyBFC$yrjs = molBU xA (SqFzByBFCBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, molB)) { SqFzByBFCBo = Cr_nyromDrCB(SqFzByBFCBo)U BkFu( QTPMGUWQzmUQTPMGU.nmoxqnuFnyBn(SqFzByBFCBo).QTPMGUQumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs FCtxs_ArrmBo() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU]) || nmoqrn(S_9b#[QplrmUqFzBQplrmU], QplrmUqFqBo-mBtquFmBQplrmU) V== P) { oBmlosU } Smyxn-QzmUCr_FCtxs_ArrmBo()U } qlEuxD AlsDmxrs FCtxs_ArrmBo_qFzB() { Smyxn-QzmUCr_FCtxs_ArrmBo()U } qlEuxD AlsDmxrs Cr_FCtxs_ArrmBo() { jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U WQzmUY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      .qFqBomBtquFmB_Dnn, .qFqBomBtquFmB_DrCB, TqFqBomBtquFmB_qFzBDnn, TqFqBomBtquFmB_qFzByBFCBo, TqFqBomBtquFmB_qFzBArrmBo { Arsm-nxgB:ONqiU }Y      --QzmUY      QumU/nmhuBQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      w&lBoh(AlsDmxrs() {Y         w&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_DyrrnBo FQTPMGU).DuxDv(AlsDmxrs() {Y            kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY            xA (VoBu) { oBmlos AFunBU }Y            qFqBomBtquFmB_Dnn_DyrrnB(oBu)UY            oBmlos molBUY         })UYY         xA (jxsCrj.urDFmxrs.yFny == QplrmUTCBnvmrqQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_DnnQTPMGU)U }Y         BunB xA (jxsCrj.urDFmxrs.yFny == QplrmUTtrExuBQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_Dnn_trExuBQTPMGU)U }Y         BunB xA (jxsCrj.urDFmxrs.yFny == QplrmUTmFEuBmQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_Dnn_mFEuBmQTPMGU)U }YY         w&lBoh(QTPMGU.qFqBomBtquFmB_Dnn, .qFqBomBtquFmB_DrCB, TqFqBomBtquFmB_qFzBDnn, TqFqBomBtquFmB_qFzByBFCBo, TqFqBomBtquFmB_qFzBArrmBoQTPMGU)Y            .ArDln(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, ON)U })Y            .Eulo(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, K)U })Y         UYY         w&lBoh(QTPMGU.qFqBomBtquFmB_nsxqqBm_DrsmBsmnQTPMGU)Y            .ArDln(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, MP)U })Y            .Eulo(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, K)U })Y         UY      })UYY      AlsDmxrs qFqBomBtquFmB_Dnn_DyrrnB(mFE) {Y         w&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_DyrrnBo FQTPMGU).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUsrotFuQplrmU)UY         //w&lBoh(myxn).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUEruCQplrmU)UY         w&lBoh(QplrmU[oBu=QTPMGUQplrmU+mFE+QplrmUQTPMGU]QplrmU).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUEruCQplrmU)UY         w&lBoh(QTPMGU.qFqBomBtquFmB_DnnQTPMGU).yxCB()UY         w&lBoh(QTPMGUTQTPMGU+mFE).nyrj().Fmmo(QplrmUorjnQplrmU, ON).ArDln()UY      }YY      AlsDmxrs qFqBomBtquFmB_myBtB_DyFszB(DFuuBo) {Y        kFo myB!FulB = w&lBoh(DFuuBo).kFu()UYRR  xA (myB!FulB == QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmB-nlqBoQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmBQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmB-EFoBErsBnQTPMGU) {Y           w&lBoh(DFuuBo).nxEuxszn(QTPMGU.qFqBomBtquFmB_Druro,.qFqBomBtquFmB_Arsm_roxzxsFuQTPMGU).nyrj()UY        }YRR  BunB {Y           w&lBoh(DFuuBo).nxEuxszn(QTPMGU.qFqBomBtquFmB_Druro,.qFqBomBtquFmB_ArsmQTPMGU).yxCB()UY        }YR  }YY      w&lBoh(jxsCrj).urFC(AlsDmxrs() {Y         kFo tBnnFzB = QTPMGUQumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FqBo #BtquFmB lqCFmBn yFkB BiqxoBC. 0uBFnB QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBonQplrmUQzmUurzxs mr myB tBtEBon FoBFQumU/FQzmU mr DrsmxslB.QTPMGUUY         w&lBoh(QplrmUCxk.BooroQplrmU).BFDy(AlsDmxrs(x, rEw) {Y            kFo ymtu = w&lBoh(rEw).ymtu()UYY            xA (sBj 	Bzbiq(QplrmU0FqBo #BtquFmBQplrmU, QplrmUzQplrmU).mBnm(ymtu) QFtqUQFtqU sBj 	Bzbiq(QplrmU0d4<70QplrmU, QplrmUzQplrmU).mBnm(ymtu)) {Y               w&lBoh(rEw).ymtu(tBnnFzB)UY            }Y         })UY      })UYY      xA ( mhqBrA mE_qFmy#r7tFzB V= QTPMGUnmoxszQTPMGU )Y      {Y          kFo mE_qFmy#r7tFzB = QplrmUQumUWqyq BDyr zBm_EurzxsAr(QTPMGUlouQTPMGU).QTPMGU/jq-xsDulCBn/wn/myxDvEriQTPMGUU WQzmU/urFCxszfsxtFmxrs.zxAQplrmUUY      }Y      xA ( mhqBrA mE_DurnB7tFzB V= QTPMGUnmoxszQTPMGU )Y      {Y          kFo mE_DurnB7tFzB = QplrmUQumUWqyq BDyr zBm_EurzxsAr(QTPMGUlouQTPMGU).QTPMGU/jq-xsDulCBn/wn/myxDvEriQTPMGUU WQzmU/mE-DurnB.qszQplrmUUY      }YY      QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY      QumU/nDoxqmQzmUY   QumUWqyqY } qlEuxD AlsDmxrs ArrmBo() { zurEFu SqrnmU Sqrnm7c = PU xA (xnnBm(Sqrnm-QzmU7c)) { Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U } BunB { oBmlosU } xA (Smyxn-QzmUArrm$yrjs) { oBmlosU } Smyxn-QzmUArrm$yrjs = molBU WQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--YY         w&lBoh(AlsDmxrs() {Y            w&lBoh(QplrmUTjqFCtxsEFoQplrmU)Y               .trlnBrkBo(AlsDmxrs() { w&lBoh(QplrmU.tFxs-sFkxzFmxrsQplrmU).yxCB()U })Y               .trlnBrlm(AlsDmxrs() { w&lBoh(QplrmU.tFxs-sFkxzFmxrsQplrmU).nyrj()U })Y            UYY            // DyBDv Aro F AxonmsFtB AxBuCY            kFo AxonmsFtBaxBuC = w&lBoh(QplrmUxsqlm:kxnxEuB.AxonmsFtB:AxonmQplrmU)UY            kFo BtFxuaxBuC = w&lBoh(QplrmUxsqlm:kxnxEuB.BtFxu:AxonmQplrmU)UY            xA (AxonmsFtBaxBuC.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_FErkBAruC(AxonmsFtBaxBuC) QFtqUQFtqU AxonmsFtBaxBuC.kFu() == QplrmUQplrmU) {Y               AxonmsFtBaxBuC.ArDln()UY            }Y            BunB xA (BtFxuaxBuC.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_FErkBAruC(BtFxuaxBuC) QFtqUQFtqU BtFxuaxBuC.kFu() == QplrmUQplrmU) {Y               BtFxuaxBuC.ArDln()UY            }YY            xA (w&lBoh(QplrmU.qFqBomBtquFmB_DrlsmCrjsQplrmU).uBszmy QzmU P) {Y               nBm7smBokFu(qFqBomBtquFmB_DrlsmCrjs_xsmBokFu, OPPP)UY            }Y         })UYY         kFo qFqBomBtquFmB_DrlsmCrjs_srj = sBj cFmB()UYY         AlsDmxrs qFqBomBtquFmB_FErkBAruC(rEw) {Y            //oBmlos (w&lBoh(jxsCrj).nDoruu#rq() + w&lBoh(jxsCrj).yBxzym() QzmU w&lBoh(rEw).rAAnBm().mrq)UY            oBmlos w&lBoh(rEw).rAAnBm().mrq QumU OPPPUY         }YY         AlsDmxrs qFqBomBtquFmB_DrlsmCrjs(r) {Y            kFo BsC = qFonB7sm(w&lBoh(r).Fmmo(QplrmUoBuQplrmU))*OPPPUY            kFo uBAm = BsC - sBj cFmB().zBm#xtB()UY            kFo CxnquFh = qFqBomBtquFmB_mxtB_oBtFxsxsz(uBAm, QplrmUAluuQplrmU)UY            w&lBoh(r).ymtu(CxnquFh)UY         }YY         AlsDmxrs qFqBomBtquFmB_DrlsmCrjs_xsmBokFu() {Y            w&lBoh(QplrmU.qFqBomBtquFmB_DrlsmCrjsQplrmU).BFDy(AlsDmxrs(x, rEw) {Y               qFqBomBtquFmB_DrlsmCrjs(rEw)UY            })UY         }YY         kFo qFqBomBtquFmB_mxtB_uFnm = sluuUY         AlsDmxrs qFqBomBtquFmB_mxtB_oBtFxsxsz(nBDrsCn, nmhuB) {Y            kFo nmhuBUY            kFo CxknUY            xA (nmhuB == lsCBAxsBC) { nmhuB = QplrmUDrtqFDmQplrmUU }YY            // $BB xA jB sBBC mr oBAoBnyY            nBDrsCn = 3Fmy.Aurro(nBDrsCn/OPPP)U // FCwlnm Aro wFkFnDoxqm txuuxnBDrsCnY            xA (qFqBomBtquFmB_mxtB_uFnm == O QFtqUQFtqU nBDrsCn == P) { urDFmxrs.oBurFC()U oBmlosU }YY            // $FkB rlmqlmY            qFqBomBtquFmB_mxtB_uFnm = nBDrsCnUYY            xA (nmhuB == QplrmUDrtqFDmQplrmU) {Y               Cxkn = {QplrmUhonQplrmU: MJK*HJLPP, QplrmUtrQplrmU: MP*HJLPP, QplrmUCQplrmU: HJLPP, QplrmUyoQplrmU: MJPP, QplrmUtxsQplrmU: JP}UY            }Y            BunB xA (nmhuB == QplrmUAluuQplrmU) {Y               Cxkn = {QplrmUhBFonQplrmU: MJK*HJLPP, QplrmUtrsmynQplrmU: MP*HJLPP, QplrmUCFhnQplrmU: HJLPP, QplrmUyrlonQplrmU: MJPP, QplrmUtxslmBnQplrmU: JP, QplrmUnBDrsCnQplrmU : O}UY            }YY            xA (nBDrsCn QumU= P) { oBmlos QplrmU21?QplrmUU }YY            kFo rlmqlm = sBj fooFh()UY            Aro (lsxm xs Cxkn) {Y               kFo Ftrlsm = Cxkn[lsxm]UY               kFo p = 3Fmy.Aurro(nBDrsCn/Ftrlsm)UY               kFo o = nBDrsCn % FtrlsmUY               xA (p QzmU P) { rlmqlm[rlmqlm.uBszmy] = p + QplrmU QplrmU + lsxmU }Y               nBDrsCn = oUY            }YY            xA (nmhuB == QplrmUAluuQplrmU) {Y               oBmlos rlmqlm.wrxs(QplrmU, QplrmU)UY            }Y            oBmlos rlmqlm.wrxs(QplrmU QplrmU)UY         }YY         AlsDmxrs qFqBomBtquFmB_plBoh(qFoFtBmBo, lou) {Y            xA (lou == lsCBAxsBC) { lou = jxsCrj.urDFmxrs.nBFoDy.nlEnmoxsz(P)U }Y            BunB { lou = lou.nlEnmoxsz(P)U }YY            xA (lou == QplrmUQplrmU) { oBmlos lsCBAxsBCU }YY            kFo oBnlumn = lou.tFmDy(Y               sBj 	Bzbiq(QplrmU(W:QFtqU|QumUWqyq BDyr Dyo(GN)U BDyr Dyo(GN)U WQzmUW)QplrmU + qFoFtBmBo + QplrmU=(.*W)(W:QFtqU|QumUWqyq BDyr Dyo(MJ)U WQzmU)QplrmU, QplrmUQplrmU)Y            )UYY            xA (oBnlumn QFtqUQFtqU oBnlumn V= sluu QFtqUQFtqU oBnlumn.uBszmy QzmU= O) {Y               oBmlos lsBnDFqB(oBnlumn[O])UY            }Y            oBmlos lsCBAxsBCUY         }YY         // Flmr-Axuu plBoh nmoxsz kFoxFEuBn: B, A, BtFxu, AxonmsFtBY         kFo AxonmsFtB = lsCBAxsBCUY         kFo uFnmsFtB = lsCBAxsBCUY         kFo BtFxu = lsCBAxsBCUY         kFo qyrsB = lsCBAxsBCUYY         // 4rrv Aro nplBBgB.ymtuWAxonmsFtB=	rEBomQFtqUuFnmsFtB=0uFsv srmFmxrsY         kFo qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_plBoh(QplrmUAxonmsFtBQplrmU)UY         kFo qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_plBoh(QplrmUBtFxuQplrmU)UYY         xA (VqFqBomBtquFmB_AxonmsFtB) { qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_plBoh(QplrmUAQplrmU)U }Y         xA (VqFqBomBtquFmB_BtFxu) { qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_plBoh(QplrmUBQplrmU)U }YY         xA (qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC QFtqUQFtqU qFqBomBtquFmB_AxonmsFtB.tFmDy(/AsFtB|AxonmsFtB/zx) V= sluu) {Y            qFqBomBtquFmB_AxonmsFtB = lsCBAxsBCUY         }YY         xA (qFqBomBtquFmB_BtFxu V= lsCBAxsBC QFtqUQFtqU qFqBomBtquFmB_BtFxu.tFmDy(/BtFxu/zx) V= sluu) {Y            qFqBomBtquFmB_BtFxu = lsCBAxsBCUY         }YY         xA (qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC) {Y            qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_AxonmsFtB.oBquFDB(/.ymtuWS/, QTPMGUQTPMGU)UY         }Y         xA (qFqBomBtquFmB_BtFxu V= lsCBAxsBC) {Y            qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_BtFxu.oBquFDB(/.ymtuWS/, QTPMGUQTPMGU)UY         }Y         Y         xA (qFqBomBtquFmB_AxonmsFtB QFtqUQFtqU qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC) {Y            //w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].AxonmsFtBQplrmU).kFu(qFqBomBtquFmB_AxonmsFtB)UY         }YY         xA (qFqBomBtquFmB_AxonmsFtB QFtqUQFtqU qFqBomBtquFmB_BtFxu) {Y            w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].BtFxuQplrmU).kFu(qFqBomBtquFmB_BtFxu)UY            w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].AxonmsFtBQplrmU).kFu(qFqBomBtquFmB_AxonmsFtB)UYY            w&lBoh(QplrmUArot.qFqBomBtquFmB_FlmrnlEtxmQplrmU).BFDy(AlsDmxrs(x, rEw) {Y               // 7A Fuu kxnxEuB mBim AxBuCn FoB srs-Btqmh, nlEtxmY               kFo mBimEriBn = w&lBoh(rEw).AxsC(QTPMGUxsqlm:mBimQTPMGU)UYY               kFo qFqBomBtquFmB_nyrluCnlEtxm = molBUY               mBimEriBn.BFDy(AlsDmxrs (w, nlE1Ew) {Y                  xA (nlE1Ew.kFulB == QplrmUQplrmU) { qFqBomBtquFmB_nyrluCnlEtxm = AFunBU oBmlosU }Y               })UYY               xA (mBimEriBn.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_nyrluCnlEtxm) {Y                  w&lBoh(rEw).nlEtxm()UY               }Y            })UY         }YY         // moFDv DrskBonxrsnY         kFo qFqBomBtquFmB_ArotDrskBom = CrDltBsm.urDFmxrs.qFmysFtB + QTPMGUWqFqBomBtquFmB_DrskBonxrs=QTPMGU+QumUWqyq BDyr Sqrnm7cU WQzmUUYY         AlsDmxrs qFqBomBtquFmB_ArotnlEtxm() {Y            // cr srm Drlsm FsDyro ElmmrsnY            xA (w&lBoh(myxn).Fmmo(QplrmUFDmxrsQplrmU) V= lsCBAxsBC QFtqUQFtqU w&lBoh(myxn).Fmmo(QplrmUFDmxrsQplrmU).xsCBi1A(QplrmUTQplrmU) == P) { oBmlosU }Y            xA (w&lBoh(myxn).Fmmo(QplrmUyoBAQplrmU) V= lsCBAxsBC QFtqUQFtqU w&lBoh(myxn).Fmmo(QplrmUyoBAQplrmU).xsCBi1A(QplrmUTQplrmU) == P) { oBmlosU }YY            // 	Bqrom EFDv mr myB nBokBo kxF FwFiY            w&lBoh.FwFi({Y               FnhsD:AFunB,Y               lou: CrDltBsm.urDFmxrs.yoBA,Y               CFmF: { qFqBomBtquFmB_DrskBonxrs:QumUWqyq BDyr Sqrnm7cU WQzmU }Y            })UYY            oBmlos molBUYY            // ;nB xtFzB urFCxsz Fn F EFDvlq -- myxn jFn srm oBuxFEuBY            //kFo x = sBj 7tFzB(O,O)U Y            //x.noD=qFqBomBtquFmB_ArotDrskBomUY            //FuBom(x.noD)UY         }YY         w&lBoh(CrDltBsm).oBFCh(AlsDmxrs() {Y            //w&lBoh(jxsCrj).lsurFC(qFqBomBtquFmB_ArotnlEtxm)UY            w&lBoh(QplrmUArotQplrmU).BFDy(AlsDmxrs (x, rEw) { w&lBoh(rEw).nlEtxm(qFqBomBtquFmB_ArotnlEtxm)U })UY            w&lBoh(QplrmUTroCBo QzmU FQplrmU).DuxDv(qFqBomBtquFmB_ArotnlEtxm)UY         })UY      QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY      QumU/nDoxqmQzmUY      QumUWqyqY xA (SqFzBArrmBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, molB)) { SqFzBArrmBo = Cr_nyromDrCB(SqFzBArrmBo)U BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SqFzBArrmBo).QTPMGU QumUWqyq QTPMGU )U } xA (@AxuB_Bixnmn(S_$b	!b	[QplrmUc1d;3b2#_	11#QplrmU].QTPMGU/zurEFu.ArrmBo.qyqQTPMGU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(S_$b	!b	[QplrmUc1d;3b2#_	11#QplrmU].QTPMGU/zurEFu.ArrmBo.qyqQTPMGU)).QTPMGU QumUWqyq QTPMGU )U } SArrmBoaxuB = CxosFtB(S_$b	!b	[QplrmUc1d;3b2#_	11#QplrmU]).QTPMGU/.ArrmBoQTPMGUU xA (@AxuB_Bixnmn(SArrmBoaxuB) QFtqUQFtqU xn_AxuB(SArrmBoaxuB) QFtqUQFtqU xn_oBFCFEuB(SArrmBoaxuB)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(SArrmBoaxuB)).QTPMGU QumUWqyq QTPMGU )U } SArrmBoaxuB = CxosFtB(CxosFtB(S_$b	!b	[QplrmUc1d;3b2#_	11#QplrmU])).QTPMGU/.ArrmBoQTPMGUU xA (@AxuB_Bixnmn(SArrmBoaxuB) QFtqUQFtqU xn_AxuB(SArrmBoaxuB) QFtqUQFtqU xn_oBFCFEuB(SArrmBoaxuB)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(SArrmBoaxuB)).QTPMGU QumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs tBmF_mFzn() { zurEFu SqrnmU SmxmuB = zBm_myB_mxmuB()U zurEFu SFxrnqU xA (DuFnn_Bixnmn(QTPMGUfuu_xs_1sB_$b1_0FDvQTPMGU) QFtqUQFtqU xnnBm(SFxrnq)) { SmxmuB = SFxrnq-QzmUjq_mxmuB(SmxmuB)U } SCBnDoxqmxrs = Cr_nyromDrCB(Sqrnm-QzmUqrnm_DrsmBsm)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\[kxCBrquFhBo\].*W\[/kxCBrquFhBo\]@nxQTPMGU, QTPMGUQTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\[.*W\]@nxQTPMGU, QTPMGUQTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = ymtu_Bsmxmh_CBDrCB(SCBnDoxqmxrs)U SCBnDoxqmxrs = nmoxq_mFzn(SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU/[\iPP-\iOa\iHP-\iaa]/QTPMGU, QTPMGU QTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\n+@nxQTPMGU, QTPMGU QTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = nlEnmo(SCBnDoxqmxrs, P, NPP)U SoBFusFtB = Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU)U SDrsmFDmBtFxu = Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU)U SElnxsBnnsFtB = Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU)U SDrqhoxzym = sluuU xA (SElnxsBnnsFtB QFtqUQFtqU SoBFusFtB) { SDrqhoxzym = SoBFusFtB . QplrmU FsC QplrmU . SElnxsBnnsFtBU } BunBxA (SElnxsBnnsFtB) { SDrqhoxzym = SElnxsBnnsFtBU } BunBxA (SoBFusFtB) { SDrqhoxzym = SoBFusFtBU } WQzmUY      QumUtBmF sFtB=QplrmUkxBjqromQplrmU DrsmBsm=QplrmUjxCmy=CBkxDB-jxCmy, xsxmxFu-nDFuB=O.P, tFixtlt-nDFuB=O.P, lnBo-nDFuFEuB=srQplrmU /QzmUY      QumUtBmF qorqBomh=QplrmUrz:nxmB_sFtBQplrmU DrsmBsm=QplrmUQumUWqyq EurzxsAr(QplrmUsFtBQplrmU)U WQzmUQplrmU/QzmUY      QumUtBmF qorqBomh=QplrmUrz:mhqBQplrmU DrsmBsm=QplrmUjBEnxmBQplrmU/QzmUY      QumUtBmF qorqBomh=QplrmUrz:mxmuBQplrmU DrsmBsm=QplrmUQumUWqyq BDyr SmxmuBU WQzmUQplrmU/QzmUY      QumUtBmF qorqBomh=QplrmUrz:louQplrmU DrsmBsm=QplrmUQumUWqyq myB_qBotFuxsv()U WQzmUQplrmU/QzmUY      QumUWqyq xA (SmyltEsFxu = jq_zBm_FmmFDytBsm_xtFzB_noD(zBm_qrnm_myltEsFxu_xC(Sqrnm-QzmU7c), QplrmUAluuQplrmU)): WQzmUQumUtBmF qorqBomh=QplrmUrz:xtFzBQplrmU DrsmBsm=QplrmUQumUWqyq BDyr SmyltEsFxu[P]U WQzmUQplrmU/QzmUQumUWqyq BsCxAU WQzmUYY      QumUtBmF qorqBomh=QplrmUrz:CBnDoxqmxrsQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SCBnDoxqmxrs)U WQzmUQplrmU/QzmUY      QumUtBmF sFtB=QplrmUCBnDoxqmxrsQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SCBnDoxqmxrs)U WQzmUQplrmU/QzmUYY      QumUWqyq xA (SoBFusFtB): WQzmUQumUtBmF sFtB=QplrmUFlmyroQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBFusFtB)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY      QumUWqyq xA (SDrsmFDmBtFxu): WQzmUQumUtBmF sFtB=QplrmUDrsmFDmQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDrsmFDmBtFxu)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY      QumUWqyq xA (SDrqhoxzym): WQzmUQumUtBmF sFtB=QplrmUDrqhoxzymQplrmU DrsmBsm=QplrmUQFtqUDrqhU QumUWqyq BDyr CFmB(Dyo(HG))U WQzmU QumUWqyq BDyr ymtuBsmxmxBn(SDrqhoxzym)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY      QumUWqyqY } qlEuxD AlsDmxrs DrsmFDm() { WQzmUY   QumUntFuuQzmUY      QumUWqyqY Smyxn-QzmUnBqFoFmron( QplrmU, QplrmU, Smyxn-QzmUkFoxFEuB(QplrmUoBFusFtBQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUDrsmFDmBtFxuQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUFCCoBnnQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUqyrsBQplrmU) )U WQzmUQumU/ntFuuQzmUY   QumUWqyqY } qlEuxD AlsDmxrs DrttBsm_nmFmln(SrqBs) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos SrqBsU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU || VSmBtquFmB) { oBmlos SrqBsU } BunB { Sqrnm-QzmUDrttBsm_nmFmln = QplrmUDurnBCQplrmUU Sqrnm-QzmUqxsz_nmFmln = QplrmUDurnBCQplrmUU oBmlos AFunBU } } qlEuxD AlsDmxrs DFDyB_zBm(SqFzB7c) { oBmlos jq_DFDyB_zBm(QplrmUqFzB-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U } qlEuxD AlsDmxrs DFDyB_Btqmh() { Smyxn-QzmUDFDyB_DuBFo()U } qlEuxD AlsDmxrs DFDyB_DuBFo(SqFzB7c=P, SDrsmBsmn=QplrmUQplrmU) { xA (SqFzB7c QzmU P) { xA (CBAxsBC( QTPMGUc1729_f;#1$f!bQTPMGU ) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU) ) { oBmlosU } xA (VDlooBsm_lnBo_DFs( QTPMGUBCxm_qFzBQTPMGU, SqFzB7c ) ) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_FlmrnFkBQplrmU) QFtqUQFtqU jq_xn_qrnm_FlmrnFkB(SqFzB7c)) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_oBkxnxrsQplrmU) QFtqUQFtqU (Sqrnm	Bkxnxrs = jq_xn_qrnm_oBkxnxrs(SqFzB7c))) { SqFzB7c = Sqrnm	BkxnxrsU } } SqFzB7c = @xsmkFu(SqFzB7c)U xA (SqFzB7c QzmU P) { jq_DFDyB_CBuBmB(QplrmUqFzB-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U jq_DFDyB_CBuBmB(QplrmUDnn-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U } } qlEuxD AlsDmxrs uxsvn(Suxsvn, SAxuB=sluu) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUnBmmxszn_qFzB.QTPMGUQplrmUQzmU4FsCxsz 0FzBnQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs CFmB_jFosxsz(SElAABo) { zurEFu SqrnmU SDFDyB = QplrmUQplrmUU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (SnmFmln V= QplrmUrqBs_CFmBQplrmU QFtqUQFtqU SnmFmln V= QplrmUDurnB_CFmBQplrmU) { oBmlos SElAABoU } SCFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB)U SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SCFmB = SCFmB - SmxtBgrsB1AAnBmU xA (mxtB() QzmU SCFmB) { oBmlos SElAABoU } SCFmB?Fosxsz = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U xA (VSCFmB?Fosxsz) { oBmlos SElAABoU } Smrq = QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQumUnqFs DuFnn=QplrmUyxzyuxzymQplrmUQzmUQTPMGUU xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { Smrq .= QTPMGU1AABo 1qBsn rs [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { Smrq .= QTPMGU?f	2729: #yxn 1AABo ?xuu durnB rsQumUEo /QzmU [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } Smrq .= QTPMGUQumU/nqFsQzmUQumU/qQzmUQTPMGUU SErmmrt = QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQumUnqFs DuFnn=QplrmUyxzyuxzymQplrmUQzmUQTPMGUU xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { SErmmrt .= QTPMGU1AABo 1qBsn rs [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { SErmmrt .= QTPMGU?f	2729: #yxn 1AABo durnBn rsQumUEo /QzmU [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } SErmmrt .= QTPMGUQumU/nqFsQzmUQumUEo /QzmUQumUEQzmU[qFqBomBtquFmB-DrlsmCrjs] 	BtFxsxszQumU/EQzmUQTPMGUU SErmmrt .= QTPMGUQumU/qQzmUQTPMGUU SElAABo = Smrq . SElAABoU xA (nmoqrn(SElAABo, QTPMGU[qFqBomBtquFmB-Elmmrs]QTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@^(.*)(\[qFqBomBtquFmB\-Elmmrs\])@nxQTPMGU, QTPMGU\OQTPMGU.SErmmrt.QTPMGUSNQTPMGU, SElAABo)U } BunBxA (nmoqrn(SElAABo, QTPMGUQumUmFEuB xC=QplrmUroCBoQplrmUQTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@(QumUmFEuB xC=QplrmUroCBoQplrmU)@nxQTPMGU, QTPMGUQumUEo /QzmUQTPMGU.SErmmrt.QTPMGUSOQTPMGU, SElAABo, O)U } BunBxA (nmoqrn(SElAABo, QTPMGUQumUCxk xC=QplrmUroCBoQplrmUQTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@(QumUCxk xC=QplrmUroCBoQplrmU)@nxQTPMGU, QTPMGUQumUEo /QzmUQTPMGU.SErmmrt.QTPMGUSOQTPMGU, SElAABo, O)U } oBmlos SElAABoU } qlEuxD AlsDmxrs nyromDrCBn_ErCh(SElAABo) { zurEFu SqrnmU SDFDyB = QplrmUQplrmUU xA (Smyxn-QzmUDFDyB) { SDFDyB = Smyxn-QzmUDFDyB_zBm(Sqrnm-QzmU7c)U } xA (SDFDyB) { oBmlos SDFDyBU } SElAABo = qoBz_oBquFDB(QTPMGUTQumUq [^QzmU]*QzmU([^QumU]+(hrlmlEB\.Drt|hrlml\.EB)[^QumU]+)QumU/qQzmUTnxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SElmmrs	BzBi = QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGUU xA (SDFuumrFDmxrs QFtqUQFtqU VqoBz_tFmDy(SElmmrs	BzBi, SElAABo) QFtqUQFtqU nmoqrn(SElAABo, QTPMGUQumUmFEuB xC=QplrmUroCBoQplrmUQTPMGU) === AFunB) { SElAABo .= QplrmU\s\sQplrmU . QTPMGU[qFqBomBtquFmB-Elmmrs]duxDv 8BoB 2rj[/qFqBomBtquFmB-Elmmrs]QTPMGUU } xA (Smyxn-QzmUDFDyB) { Smyxn-QzmUDFDyB_DuBFo(Sqrnm-QzmU7c, SElAABo)U } oBmlos Smyxn-QzmUnyromDrCBn(SElAABo)U } qlEuxD AlsDmxrs rBtEBC(Symtu, Slou, SFmmo, Sqrnm7c) { xA (nmoqrn(Slou, QplrmUhrlmlEB.DrtQplrmU) === AFunB QFtqUQFtqU nmoqrn(Slou, QplrmUhrlml.EBQplrmU) === AFunB) { oBmlos SymtuU } oBmlos QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQTPMGU.Symtu.QTPMGUQumU/qQzmUQTPMGUU } qlEuxD AlsDmxrs DrCBn(SFmmn, SDrsmBsm = sluu) { oBmlos QplrmUQumUEQzmUSDrsmBsmQumU/EQzmUQplrmUU } qlEuxD AlsDmxrs nyromDrCBn(SElAABo) { zurEFu SqrnmU Sjqlou = qFonB_lou(zBm_EurzxsAr(QTPMGUjqlouQTPMGU))U Slou = Sjqlou[QplrmUyrnmQplrmU]U Slou = qoBz_oBquFDB(QTPMGU@^jjj.@nxQTPMGU, QTPMGUQTPMGU, Slou)U SsFtB = zBm_EurzxsAr(QTPMGUsFtBQTPMGU)U SElnxsBnnsFtB = Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU)U SoBFusFtB = Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU)U SBtFxu = Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU)U SFCCoBnn = Smyxn-QzmUnBmmxsz(QplrmUFCCoBnnQplrmU)U SqyrsB = Smyxn-QzmUnBmmxsz(QplrmUqyrsBQplrmU)U SDrlsmoh = Smyxn-QzmUnBmmxsz(QplrmUDrlsmohQplrmU)U xA (SElnxsBnnsFtB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUElnxsBnnsFtBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUElnxsBnnsFtBQplrmU\].*W\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SoBFusFtB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUoBFusFtBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUoBFusFtBQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SFCCoBnn) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUFCCoBnnQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUFCCoBnnQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SqyrsB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUqyrsBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUqyrsBQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SDrlsmoh) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUDrlsmohQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUDrlsmohQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-ElnxsBnnsFtB]QTPMGU, SElnxsBnnsFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-nxmBsFtB]QTPMGU, SsFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-oBFusFtB]QTPMGU, SoBFusFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-FCCoBnn]QTPMGU, SFCCoBnn, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-BtFxu]QTPMGU, SBtFxu, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-Drlsmoh]QTPMGU, SDrlsmoh, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-qyrsB]QTPMGU, SqyrsB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-hBFo]QTPMGU, CFmB(Dyo(HG)), SElAABo)U xA (Smyxn-QzmUAxonmsFtB_DFuuEFDv() == QplrmUaoxBsCQplrmU) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-qBonrsFu\](.*W)\[\/qFqBomBtquFmB\-qBonrsFu\]@nxQTPMGU, QplrmUQplrmU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[/WqFqBomBtquFmB\-qBonrsFu\]@nxQTPMGU, QplrmUQplrmU, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-qorih=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorih_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-tBsl=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-AxonmsFtB=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-AxonmsFtB]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-zoFkFmFo=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUzoFkFmFo_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CBFCuxsB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCBFCuxsB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-DrlsmCrjs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrlsmCrjs_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-wltq=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwltq_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-wltq\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwltq_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[(W:qm|qFqBomBtquFmB)\-nmFDv=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFDv_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[(W:qm|qFqBomBtquFmB)\-nmFDv\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFDv_DFuuEFDvQTPMGU), SElAABo)U SElmmrs	BzBi = QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGUU SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SDFuumrFDmxrs_FumBosFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, molB)U SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U SCFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB)U SCFmB = SCFmB - SmxtBgrsB1AAnBmU xA (VSnmFmln) { SnmFmln = QplrmUrqBsQplrmUU } SCxnquFh = QplrmUrqBsQplrmUU xA (SnmFmln == QplrmUDurnBCQplrmU) { SCxnquFh = QplrmUDurnBCQplrmUU } BunBxA (SnmFmln == QplrmUrqBs_CFmBQplrmU QFtqUQFtqU SCFmB) { xA (mxtB() QumU SCFmB) { SCxnquFh = QplrmUDurnBCQplrmUU } } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU QFtqUQFtqU SCFmB) { xA (mxtB() QzmU SCFmB) { SCxnquFh = QplrmUDurnBCQplrmUU } } xA (SCxnquFh == QplrmUDurnBCQplrmU) { xA (SDFuumrFDmxrs_FumBosFmB) { SDFuumrFDmxrs = QTPMGUQumUnqFs xC=QplrmUroCBoQplrmUQzmUQTPMGU.SDFuumrFDmxrs_FumBosFmB.QTPMGUQumU/nqFsQzmUQTPMGUU } BunB { SDFuumrFDmxrs = QTPMGUQumUyN xC=QplrmUroCBoQplrmUQzmUQumUEQzmUd41$bcQumU/EQzmUQumU/yNQzmUQTPMGUU } } SDoBFmBarot#Fz = AFunBU SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@(QumUEurDvplrmB)([^QzmU]*WQzmU)(.*W)(QumU/EurDvplrmBQzmU)@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUEurDvplrmB_DFuuEFDvQTPMGU), SElAABo)U xA (VSDFuumrFDmxrs) { SDFuumrFDmxrs = QplrmUTQplrmUU } Szmj = Smyxn-QzmUCBmBDm_zrmrjBExsFo(SDFuumrFDmxrs)U xA (Szmj QzmU P) { SDoBFmBarot#Fz = molBU SArot = Smyxn-QzmUArot_zrmrjBExsFo(Szmj)U } BunBxA(nmoqrn(SDFuumrFDmxrs, QplrmUymmqQplrmU) === P || nmoqrn(SDFuumrFDmxrs, QplrmUTQplrmU) === P) { SArot = QTPMGUQumUArot tBmyrC=QplrmU01$#QplrmU FDmxrs=QplrmUQTPMGU.(SDFuumrFDmxrs).QTPMGUQplrmUQzmUQTPMGUU SDoBFmBarot#Fz = molBU } BunB { SArot = Smyxn-QzmUBkFulFmB(SDFuumrFDmxrs)U SDoBFmBarot#Fz = AFunBU } xA (SDoBFmBarot#Fz) { SElAABo = qoBz_oBquFDB(SElmmrs	BzBi, QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGU.SArot.QTPMGUSPQumU/ArotQzmUQumU/CxkQzmUQTPMGU, SElAABo)U } BunB { } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB\](.*W)\[/qFqBomBtquFmB-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), SElAABo)U xA (SCxnquFh == QplrmUDurnBCQplrmU) { SElAABo = qoBz_oBquFDB(QTPMGU@QumU(mFEuB|Cxk) xC=QplrmUroCBoQplrmU.*W(QumUq nmhuB=QplrmUDuBFo: ErmyUQplrmUQzmU)@nxQTPMGU, QTPMGUSNQTPMGU.SDFuumrFDmxrs, SElAABo)U SElAABo = qoBz_oBquFDB(QTPMGU@QumUmFEuB xC=QplrmUroCBoQplrmU.*WQumU/mFEuBQzmU@nxQTPMGU, SDFuumrFDmxrs, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), SElAABo)U xA (SDoBFmBarot#Fz) { SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), SElAABo)U } BunB { SArot = Smyxn-QzmUqFonB(SArot)U SElAABo = qoBz_oBquFDB(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, SArot, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@(QumUEurDvplrmB)([^QzmU]*WQzmU)(.*W)(QumU/EurDvplrmBQzmU)@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUEurDvplrmB_DFuuEFDvQTPMGU), SElAABo)U oBmlos SElAABoU } qlEuxD AlsDmxrs qormBDm#Bim(SDrCB) { SDrCB = qoBz_oBquFDB(QTPMGU@\S([P-G])@nxQTPMGU, QTPMGUQFtqUTiNLUSOQTPMGU, SDrCB)U oBmlos SDrCBU } qlEuxD AlsDmxrs lsqormBDm#Bim(SDrCB) { SDrCB = nmo_oBquFDB(QTPMGUQFtqUFtqUTiNLUQTPMGU, QTPMGUQFtqUTiNLUQTPMGU, SDrCB)U oBmlos SDrCBU } qlEuxD AlsDmxrs BkFulFmB(SDrCB) { rE_nmFom()U SDrCB = Smyxn-QzmUqormBDm#Bim(SDrCB)U BkFu( QTPMGUWQTPMGU.QTPMGUQzmU QTPMGU.nmoxqnuFnyBn(SDrCB).QTPMGU QumUQTPMGU.QTPMGUWqyq QTPMGU )U SoBmlos = rE_zBm_DrsmBsmn()U rE_BsC_DuBFs()U oBmlos SoBmlosU } qlEuxD AlsDmxrs qFonB(Symtu) { Symtu = Smyxn-QzmUqorDBnn$yromDrCBn(Symtu)U Symtu = Smyxn-QzmUBkFulFmB(Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB\](.*W)\[/qFqBomBtquFmB-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), Symtu)U oBmlos SymtuU } qoxkFmB AlsDmxrs CBmBDm_zrmrjBExsFo(Slou) { SxC = PU xA (qoBz_tFmDy(QTPMGU@(zrmrtBBmxsz|zrmrjBExsFo)\.Drt@nxQTPMGU, Slou)) { qoBz_tFmDy(QTPMGU@([P-G]QTPMGU.Dyo(ONM).QTPMGUG,NLQTPMGU.Dyo(ONK).QTPMGU)@nQTPMGU, Slou, StFmDyBn)U SxC = qoBz_oBquFDB(QTPMGU@[^P-G]@QTPMGU, QTPMGUQTPMGU, StFmDyBn[O])U } oBmlos xsmkFu(SxC)U } qoxkFmB AlsDmxrs Arot_zrmrjBExsFo(SxC) { zurEFu SqrnmU SAxonmsFtB = sluuU xA (xnnBm(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAQplrmU]U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAxonmsFtBQplrmU]U } Sursz7C = qoBz_tFmDy(QTPMGU@^[P-G]QTPMGU.Dyo(ONM).QTPMGUON,QTPMGU.Dyo(ONK).QTPMGUS@QTPMGU, SxC)U SDrCB = QplrmUQplrmUU xA (VxnnBm(Sqrnm-QzmU7c)) { SmBtquFmB = QplrmUQplrmUU } BunB { SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U } xA (Sursz7C) { SDrCB .= QTPMGUQumUArot FDmxrs=QplrmUymmqn://FmmBsCBB.zrmrjBExsFo.Drt/oBzxnmoFmxrs.mtquQplrmU tBmyrC=QplrmUqrnmQplrmU DuFnn=QplrmUqFqBomBtquFmB_FlmrnlEtxmQplrmUQzmUQTPMGUU } BunB { SDrCB .= QTPMGUQumUArot FDmxrs=QplrmUymmqn://jjjN.zrmrtBBmxsz.Drt/Bs_;$/xnuFsC/jBExsFo/oBzxnmoFmxrs.AurjQplrmU tBmyrC=QplrmUqrnmQplrmU DuFnn=QplrmUqFqBomBtquFmB_FlmrnlEtxmQplrmUQzmUQTPMGUU } xA (Sursz7C) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUjBExsFoQplrmU sFtB=QplrmUjBExsFoQplrmU kFulB=QplrmUQTPMGU.SxC.QTPMGUQplrmUQzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUarotQplrmU kFulB=QplrmUjBExsFo	BzxnmoFmxrsarotQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU?BExsFo5BhQplrmU kFulB=QplrmUQTPMGU.SxC.QTPMGUQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUCxkQzmUQTPMGUU xA (Sursz7C) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUoBzxnmoFsm.nlosFtBQplrmU DuFnn=QplrmUuFnmsFtBQplrmU kFulB=QplrmU-QplrmU /QzmUQTPMGU . QplrmU\sQplrmUU xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUoBzxnmoFsm.zxkBs2FtBQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmUbsmBo QTPMGU.Dyo(HG).QTPMGUrlo axonm 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUoBzxnmoFsm.zxkBs2FtBQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmU0oxtFoh btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUoBzxnmoFsm.BtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_4FnmQplrmU DuFnn=QplrmUuFnmsFtBQplrmU kFulB=QplrmU-QplrmU /QzmUQTPMGU . QplrmU\sQplrmUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { SDrCB .= QTPMGUQumUCxk nmhuB=QplrmUCxnquFh:EurDvU DuBFo:oxzymU txs-yBxzym:LPqiUQplrmUQzmUQTPMGUU SDrCB .= QTPMGUQumUmFEuB EroCBo=QplrmUPQplrmU Fuxzs=QplrmUuBAmQplrmUQzmUQumUmoQzmUQTPMGUU xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUmCQzmUQumUuFEBuQzmUQumUnqFs DuFnn=QplrmUoBplxoBCQplrmUQzmU*QumU/nqFsQzmU QumUEQzmUaxonm 2FtB:QumU/EQzmUQumUEo /QzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumU/mCQzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUmCQzmUQumUuFEBuQzmUQumUnqFs DuFnn=QplrmUoBplxoBCQplrmUQzmU*QumU/nqFsQzmU QumUEQzmUbtFxu fCCoBnn:QumU/EQzmUQumUEo /QzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUbtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumU/mCQzmUQTPMGU . QplrmU\sQplrmUU SDrCB .= QTPMGUQumU/moQzmUQumU/mFEuBQzmUQumUEo /QzmUQTPMGUU SDrCB .= QTPMGUQumU/CxkQzmUQTPMGUU } BunB { xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU/QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmUbsmBo QTPMGU.Dyo(HG).QTPMGUrlo axonm 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmU0oxtFoh btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUbtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } } SDrCB .= QTPMGUQumU/CxkQzmUQTPMGUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { SDrCB .= QTPMGUQumUq Fuxzs=QplrmUuBAmQplrmUQzmU* 7sCxDFmBn F oBplxoBC AxBuCQumU/qQzmUQTPMGUU SDrCB .= QTPMGUQumUq Fuxzs=QplrmUuBAmQplrmUQzmUeh DuxDvxsz myB QFtqUplrmU	BzxnmBo 2rjQFtqUplrmU Elmmrs hrl nlEtxm hrlo xsArotFmxrs mr myB ?BExsFo rozFsxgBo, jyr jxuu lnB xm mr DrttlsxDFmB jxmy hrl oBzFoCxsz myxn BkBsm FsC myBxo rmyBo nBokxDBn.QumU/qQzmUQTPMGUU } oBmlos SDrCBU } qoxkFmB AlsDmxrs EurDvplrmB_DFuuEFDv(StFmDyBn) { SroCBoArot = nmoqrn(StFmDyBn[P], QplrmU[qFqBomBtquFmB-ElmmrsQplrmU) V== af4$bU xA (nmoqrn(StFmDyBn[P], QplrmUEBnmrqmxrsQplrmU) V== af4$b) { oBmlos StFmDyBn[P]U } xA (nmoqrn(StFmDyBn[P], QplrmUzrrCrqmxrsQplrmU) V== af4$b) { oBmlos StFmDyBn[P]U } xA (VSroCBoArot) { qoBz_tFmDy_Fuu(QTPMGU@(QumUxsqlm[^QzmU]+QzmU)@nxQTPMGU, StFmDyBn[P], SnlEtFmDyBn)U AroBFDy (SnlEtFmDyBn[P] Fn SnlEtFmDy) { xA (nmoqrn(SnlEtFmDy, QplrmUnlEtxmQplrmU) V== af4$b) { SroCBoArot = molBU EoBFvU } } } xA (SroCBoArot) { oBmlos StFmDyBn[O] . QTPMGU DuFnn=QplrmUroCBoArotQplrmU xC=QplrmUroCBoQplrmU QTPMGU . StFmDyBn[N] . StFmDyBn[M] . StFmDyBn[L]U } oBmlos StFmDyBn[P]U } qoxkFmB AlsDmxrs CFmB_DFuuEFDv(StFmDyBn) { SArotFmmxsz = QplrmUc, 3 w, QplrmU.Dyo(HG)U xA (Drlsm(StFmDyBn) == N) { uxnm(, SmxtBnmFtq) = StFmDyBnU Slou = QplrmUQplrmUU } BunB { uxnm(, SArotFmmxsz, SmxtBnmFtq) = StFmDyBnU } oBmlos CFmB(SArotFmmxsz, nmomrmxtB(SmxtBnmFtq))U } qoxkFmB AlsDmxrs Elmmrs_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SmBim) = StFmDyBnU Slou = QplrmUQplrmUU } BunB { uxnm(, Slou, SmBim) = StFmDyBnU } oBmlos Smyxn-QzmUElmmrs(SmBim, Slou)U } qoxkFmB AlsDmxrs nmFDv_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SqoxDB) = StFmDyBnU } BunB { SqoxDB = P.PU } oBmlos Smyxn-QzmUnmFDv(SqoxDB)U } qlEuxD AlsDmxrs nmFDv(SFCC=sluu) { SnhtEru = QTPMGUSQTPMGUU xA (CBAxsBC(QplrmU?04f29QplrmU)) { xA (DrsnmFsm(QplrmU?04f29QplrmU) == QplrmUBs_9eQplrmU) { SnhtEru = QTPMGUQFtqUqrlsCUQTPMGUU } } xA (SFCC === sluu || SFCC QumU= P) { oBmlos SnhtEru.sltEBo_ArotFm(Smyxn-QzmUnmFDv, N)U } BunB { Smyxn-QzmUnmFDv = Smyxn-QzmUnmFDv + AurFmkFu(SFCC)U oBmlos SnhtEru.sltEBo_ArotFm(SFCC, N)U } } qoxkFmB AlsDmxrs zoFkFmFo_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } oBmlos Smyxn-QzmUzoFkFmFo(StFmDyBn[O])U } qoxkFmB AlsDmxrs zoFkFmFo(SBtFxu, SsFtB=QplrmUQplrmU, SnxgB=OPP) { oBmlos QTPMGUQumUxtz noD=QplrmUymmq://jjj.zoFkFmFo.Drt/FkFmFo.qyqWzoFkFmFo_xC=QTPMGU . tCK(SBtFxu) . QTPMGUQFtqUnxgB=QTPMGU . xsmkFu(SnxgB) . QTPMGUQplrmU DuFnn=QplrmUyBFCnyrmQplrmU Fum=QplrmUQTPMGU . ymtuBsmxmxBn(SsFtB) . QTPMGUQplrmU Fuxzs=QplrmUoxzymQplrmU /QzmUQTPMGUU } qoxkFmB AlsDmxrs qorih_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } Sqorih = StFmDyBn[O]U Sqorih = ymtu_Bsmxmh_CBDrCB(Sqorih)U Sqorih = FCC_plBoh_Foz(FooFh_tFq(QplrmUlouBsDrCBQplrmU, S_9b#), Sqorih)U Sqorih = FCC_plBoh_Foz(FooFh_tFq(QplrmUlouBsDrCBQplrmU, S_01$#), Sqorih)U SzBm = jq_oBtrmB_zBm(Sqorih)U oBmlos jq_oBtrmB_oBmoxBkB_ErCh(SzBm)U } qoxkFmB AlsDmxrs tBsl_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } StBsl = StFmDyBn[O]U rE_nmFom()U WQzmUQumUWqyq jq_sFk_tBsl( FooFh( QTPMGUDrsmFxsBoQTPMGU =QzmU AFunB, QTPMGUtBslQTPMGU =QzmU StBsl, QTPMGUtBsl_DuFnnQTPMGU =QzmU QTPMGUnBDrsCFoh-sFkxzFmxrsQTPMGU, QTPMGUCBqmyQTPMGU =QzmU O ) )U WQzmUQumUWqyqY SoBmlos = rE_zBm_DrsmBsmn()U rE_BsC_DuBFs()U oBmlos SoBmlosU } qoxkFmB AlsDmxrs qBonrsFu_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } xA (VSmyxn-QzmUAxonmsFtB_DFuuEFDv(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (Smyxn-QzmUAxonmsFtB_DFuuEFDv(StFmDyBn[O]) == QplrmUaoxBsCQplrmU) { oBmlos QplrmUQplrmUU } oBmlos StFmDyBn[O]U } qoxkFmB AlsDmxrs AxonmsFtB_DFuuEFDv(StFmDyBn=sluu) { xA (StFmDyBn == sluu) { StFmDyBn = FooFh()U } xA (Drlsm(StFmDyBn) QzmU P) { SAxonmsFtB = StFmDyBn[O]U } BunB { SAxonmsFtB = QplrmUaoxBsCQplrmUU } xA (xnnBm(S_9b#[QplrmUAQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAQplrmU]U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAxonmsFtBQplrmU]U } BunBxA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_d1157b[QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU]U } oBmlos ymtuBsmxmxBn(SAxonmsFtB)U } qoxkFmB AlsDmxrs DrlsmCrjs_DFuuEFDv(StFmDyBn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos QplrmUsr qrnm 7cQplrmUU } SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SCFmB = SCFmB - SmxtBgrsB1AAnBmU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSCFmB) { oBmlos QplrmUQplrmUU } xA (SnmFmln == QplrmUrqBsQplrmU) { oBmlos QplrmU(1qBs 2rj)QplrmUU } SuBAm = tFi(P, SCFmB - mxtB())U oBmlos QTPMGUQumUnqFs DuFnn=QplrmUqFqBomBtquFmB_DrlsmCrjsQplrmU oBu=QplrmUQTPMGU.SCFmB.QTPMGUQplrmUQzmUQTPMGU.Smyxn-QzmUmxtB	BtFxsxsz(SuBAm, QplrmUAluuQplrmU).QTPMGUQumU/nqFsQzmUQTPMGUU } qoxkFmB AlsDmxrs CBFCuxsB_DFuuEFDv(StFmDyBn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos QplrmUsr qrnm 7cQplrmUU } SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSCFmB) { oBmlos QplrmUsr CFmBQplrmUU } xA (SnmFmln == QplrmUrqBsQplrmU) { oBmlos QplrmU(1qBs 2rj)QplrmUU } oBmlos CFmB(QplrmUa w, QplrmU.Dyo(HG), SCFmB) . QplrmU Fm QplrmU . CFmB(QplrmUz:x fQplrmU, SCFmB) . QplrmU QplrmU . Smyxn-QzmUmxtBgrsB()U } qoxkFmB AlsDmxrs wltq_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SmBim) = StFmDyBnU } BunB { SmBim = QplrmUQplrmUU } oBmlos Smyxn-QzmUwltq(SmBim)U } qoxkFmB AlsDmxrs wltq(SmBim=QplrmUQplrmU) { Swltqn = FooFh( QplrmUfDDBnn myB crjsurFC foBF 8BoBQplrmU, QplrmUfDmxkFmB QplrmU.Dyo(HG).QplrmUrlo 3BtEBonyxqQplrmU, QplrmUfDmxkFmB QplrmU.Dyo(HG).QplrmUrlo 3BtEBonyxq 8BoBQplrmU, QplrmUfuu #yBnB #lmroxFun: QplrmU.Dyo(HG).QplrmUrlon #rCFhQplrmU, QplrmUduFxt QplrmU.Dyo(HG).QplrmUrlo #oFxsxsz 	xzym 2rjQplrmU, QplrmUduFxt QplrmU.Dyo(HG).QplrmUrlo #oFxsxsz 8BoBQplrmU, QplrmUduxDv 8BoB mr 6rxsQplrmU, QplrmUduxDv 8BoB mr 6rxs 	xzym 2rjQplrmU, QplrmUduxDv 8BoB mr 1oCBoQplrmU, QplrmUduxDv 2rj: 9Bm $mFomBC 8BoBQplrmU, QplrmUduxDv 	xzym 2rj: 6rxs 7snmFsmuhQplrmU, QplrmUduxDv mr fDmxkFmB QplrmU.Dyo(HG).QplrmUrlo fDDrlsmQplrmU, QplrmUduxDv mr elh: 7snmFsm cBuxkBohQplrmU, QplrmUduxDv mr 9Bm 7s 	xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s 	xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s 	xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s 	xzym 2rjQplrmU, QplrmUduxDv mr 6rxsQplrmU, QplrmUcxzxmFu crjsurFC: 7snmFsm cBuxkBohQplrmU, QplrmUcrjsurFC myB aluu #oFxsxsz drlonBQplrmU, QplrmUbFnh fDDBnn: duxDv 8BoBQplrmU, QplrmU9Bm $mFomBC #rCFh: duxDv 8BoBQplrmU, QplrmU7QTPMGUt 	BFCh mr 9Bm $mFomBC #rCFhQplrmU, QplrmU7snmFsm fDDBnn: duxDv 8BoB 2rjQplrmU, QplrmU7snmFsm fDDBnn: duxDv 	xzym 8BoBQplrmU, QplrmU7snmFsm fDDBnn: crjsurFC 2rjQplrmU, QplrmU7snmFsm fDDBnn: 9Bm $mFomBC #rCFhQplrmU, QplrmU7snmFsm cBuxkBoh: duxDv 8BoBQplrmU, QplrmU7snmFsm cxzxmFu fDDBnn: 6rxs 8BoBQplrmU, QplrmU7snmFsm crjsurFCQplrmU, QplrmU7snmFsm 3BtEBonyxq fDmxkFmxrs: 9r 2rjQplrmU, QplrmU6rxs 	xzym 2rjQplrmU, QplrmU6rxs myB 3BtEBonyxq #rCFhQplrmU, QplrmU4Bm 3B 7s 	xzym 2rjQplrmU, QplrmU3BtEBonyxq fDDBnn: crjsurFC 2rjQplrmU, QplrmU1oCBo 2rj: 7snmFsm fDDBnnQplrmU, QplrmU$rlsCn 9rrC: 1oCBo 	xzym 2rjQplrmU, QplrmU#yxn dFs eB QplrmU.Dyo(HG).QplrmUrl xs myB 2Bim aBj 3xslmBnQplrmU, QplrmU#yxn xn biFDmuh ?yFm 7 2BBCQplrmU, QplrmU#yxn xn 6lnm ?yFm 7 2BBC: 6rxs 8BoBQplrmU )U xA (SmBim == QplrmUQplrmU) { SmBim = Swltqn[FooFh_oFsC(Swltqn)]U } SoBmlos = QTPMGUQTPMGUU xA (Smyxn-QzmUwltq_DrlsmBo % N == P) { SmBim = qoBz_oBquFDB(QTPMGU@\n+@nxQTPMGU, QTPMGU QTPMGU, SmBim)U SoBmlos .= QTPMGUQumUArot FDmxrs=QplrmUTroCBoQplrmU tBmyrC=QplrmU9b#QplrmU rsnlEtxm=QplrmUCrDltBsm.urDFmxrs=\QTPMGUTroCBo\QTPMGUU oBmlos AFunBUQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-joFqqBo qFqBomBtquFmB-wltquxsvQplrmUQzmUQumUmFEuB EroCBo=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmU DBuuqFCCxsz=QplrmUKQplrmU Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-mFEuBQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUmoQzmUQumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUxsqlm DuFnn=QplrmUqFqBomBtquFmB-nlEtxmQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUQTPMGU.ymtuBsmxmxBn(SmBim).QTPMGU QFtqUoFplrUQplrmUQzmUQumU/mCQzmUQumU/moQzmUQumU/mFEuBQzmUQTPMGUU SoBmlos .= QTPMGUQumU/CxkQzmUQTPMGUU SoBmlos .= QTPMGUQumU/ArotQzmUQTPMGUU } BunB { SoBmlos .= QTPMGUQumUyNQzmUQumUF yoBA=QplrmUTroCBoQplrmUQzmUQTPMGU.suNEo(ymtuBsmxmxBn(SmBim)).QTPMGU QFtqUoFplrUQumU/FQzmUQumU/yNQzmUQTPMGUU } Smyxn-QzmUwltq_DrlsmBo++U oBmlos SoBmlosU } qoxkFmB AlsDmxrs Elmmrs(SmBim, Slou=QplrmUQplrmU) { SoBmlos = QplrmUQplrmUU xA (CBAxsBC(QplrmUb2#_8#34KQplrmU)) { SnFABelmmrs = ymtuBsmxmxBn(ymtu_Bsmxmh_CBDrCB(SmBim), DrsnmFsm(QplrmUb2#_8#34KQplrmU))U } BunB { SnFABelmmrs = ymtuBsmxmxBn(ymtu_Bsmxmh_CBDrCB(SmBim))U } xA (Slou V= QplrmUQplrmU) { SoBmlos .= QTPMGUQumUArot FDmxrs=QplrmUQTPMGU.Slou.QTPMGUQplrmU tBmyrC=QplrmUqrnmQplrmUQzmUQTPMGUU } SoBmlos .= QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-joFqqBoQplrmU nmhuB=QplrmUtFozxs:FlmrUQplrmUQzmUQumUmFEuB EroCBo=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmU DBuuqFCCxsz=QplrmUKQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-mFEuBQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUmoQzmUQumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUxsqlm DuFnn=QplrmUqFqBomBtquFmB-nlEtxmQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUQTPMGU.SnFABelmmrs.QTPMGUQplrmUQzmUQumU/mCQzmUQumU/moQzmUQumU/mFEuBQzmUQTPMGUU SoBmlos .= QTPMGUQumU/CxkQzmUQTPMGUU xA (Slou V= QplrmUQplrmU) { SoBmlos .= QTPMGUQumU/ArotQzmUQTPMGUU } oBmlos SoBmlosU } qlEuxD AlsDmxrs CBFDmxkFmB() { } qlEuxD AlsDmxrs DoBFmB_qFzBn(Snulz=sluu) { SqFzBn = FooFh()U SqFzBn[QplrmUDrqhoxzymQplrmU] = QumUQumUQumUb1cY         #yxn jBEnxmB FsC xmn DrsmBsm xn Drqhoxzym rA [qFqBomBtquFmB-ElnxsBnnsFtB] - QFtqUDrqhU [qFqBomBtquFmB-ElnxsBnnsFtB] [qFqBomBtquFmB-hBFo]. fuu oxzymn oBnBokBC.YY         fsh oBCxnmoxElmxrs ro oBqorClDmxrs rA qFom ro Fuu rA myB DrsmBsmn xs Fsh Arot xn qoryxExmBC rmyBo myFs myB Aruurjxsz:YY         QumUluQzmUY         QumUuxQzmU\iKGrl tFh qoxsm ro CrjsurFC mr F urDFu yFoC Cxnv BimoFDmn Aro hrlo qBonrsFu FsC srs-DrttBoDxFu lnB rsuh.QumU/uxQzmUY         QumUuxQzmU\iKGrl tFh Drqh myB DrsmBsm mr xsCxkxClFu myxoC qFomxBn Aro myBxo qBonrsFu lnB, Elm rsuh xA hrl FDvsrjuBCzB myB jBEnxmB Fn myB nrloDB rA myB tFmBoxFuQumU/uxQzmUY         QumU/luQzmUYY         \iKGrl tFh srm, BiDBqm jxmy rlo BiqoBnn joxmmBs qBotxnnxrs, CxnmoxElmB ro DrttBoDxFuuh Biqurxm myB DrsmBsm. 2ro tFh hrl moFsntxm xm ro nmroB xm xs Fsh rmyBo jBEnxmB ro rmyBo Arot rA BuBDmorsxD oBmoxBkFu nhnmBt.Yb1cUYSqFzBn[QplrmUBFosxsznQplrmU] = QumUQumUQumUb1cY         QumUyOQzmUbFosxszn cxnuFxtBoQumU/yOQzmUY      Y      fsh BFosxszn ro xsDrtB nmFmBtBsmn, ro BFosxszn ro xsDrtB BiFtquBn, FoB rsuh BnmxtFmBn rA jyFm jB myxsv hrl DrluC BFos. myBoB xn sr FnnloFsDB hrl jxuu Cr Fn jBuu. 7A hrl oBuh lqrs rlo AxzloBn, hrl tlnm FDDBqm myB oxnv rA srm Crxsz Fn jBuu.YY      ?yBoB nqBDxAxD xsDrtB AxzloBn FoB lnBC, FsC FmmoxElmBC mr Fs xsCxkxClFu ro ElnxsBnn, myrnB qBonrsn ro ElnxsBnnBn yFkB BFosBC myFm Ftrlsm. #yBoB xn sr FnnloFsDB hrl jxuu Cr Fn jBuu. 7A hrl oBuh lqrs rlo AxzloBnU hrl tlnm FDDBqm myB oxnv rA srm Crxsz Fn jBuu.YY      fsh FsC Fuu DuFxtn ro oBqoBnBsmFmxrsn, Fn mr xsDrtB BFosxszn rs myxn jBE nxmB, FoB srm mr EB DrsnxCBoBC Fn FkBoFzB BFosxszn.YY      #yBoB DFs EB sr FnnloFsDB myFm Fsh qoxro nlDDBnnBn, ro qFnm oBnlumn, Fn mr xsDrtB BFosxszn, DFs EB lnBC Fn Fs xsCxDFmxrs rA hrlo AlmloB nlDDBnn ro oBnlumn.YY      QumUyNQzmU7sDrtB cxnDuFxtBoQumU/yNQzmUYY      #yxn jBEnxmB FsC myB xmBtn xm CxnmoxElmBn DrsmFxs ElnxsBnn nmoFmBzxBn, tFovBmxsz tBmyrCn FsC rmyBo ElnxsBnn FCkxDB myFm, oBzFoCuBnn rA th rjs oBnlumn FsC BiqBoxBsDB, tFh srm qorClDB myB nFtB oBnlumn (ro Fsh oBnlumn) Aro hrl. elnxsBnn 2FtB tFvBn FEnrulmBuh sr zlFoFsmBB, BiqoBnnBC ro xtquxBC, myFm Eh Aruurjxsz myB FCkxDB ro DrsmBsm FkFxuFEuB Aort myxn jBE nxmB hrl jxuu tFvB Fsh trsBh ro xtqorkB DlooBsm qorAxmn, Fn myBoB FoB nBkBoFu AFDmron FsC kFoxFEuBn myFm DrtB xsmr quFh oBzFoCxsz Fsh zxkBs ElnxsBnn.YY      0oxtFoxuh, oBnlumn jxuu CBqBsC rs myB sFmloB rA myB qorClDm ro ElnxsBnn trCBu, myB DrsCxmxrsn rA myB tFovBmquFDB, myB BiqBoxBsDB rA myB xsCxkxClFu, FsC nxmlFmxrsn FsC BuBtBsmn myFm FoB EBhrsC hrlo Drsmoru.YY      fn jxmy Fsh ElnxsBnn BsCBFkrlo, hrl FnnltB Fuu oxnv oBuFmBC mr xskBnmtBsm FsC trsBh EFnBC rs hrlo rjs CxnDoBmxrs FsC Fm hrlo rjs qrmBsmxFu BiqBsnB.YY      QumUyNQzmU4xFExuxmh cxnDuFxtBoQumU/yNQzmUYY      eh oBFCxsz myxn jBEnxmB ro myB CrDltBsmn xm rAABon, hrl FnnltB Fuu oxnvn FnnrDxFmBC jxmy lnxsz myB FCkxDB zxkBs, jxmy F Aluu lsCBonmFsCxsz myFm hrl, nruBuh, FoB oBnqrsnxEuB Aro Fshmyxsz myFm tFh rDDlo Fn F oBnlum rA qlmmxsz myxn xsArotFmxrs xsmr FDmxrs xs Fsh jFh, FsC oBzFoCuBnn rA hrlo xsmBoqoBmFmxrs rA myB FCkxDB.YY      \iKGrl AlomyBo FzoBB myFm rlo DrtqFsh DFssrm EB yBuC oBnqrsnxEuB xs Fsh jFh Aro myB nlDDBnn ro AFxuloB rA hrlo ElnxsBnn Fn F oBnlum rA myB xsArotFmxrs qorkxCBC Eh rlo DrtqFsh. 7m xn hrlo oBnqrsnxExuxmh mr DrsClDm hrlo rjs ClB CxuxzBsDB oBzFoCxsz myB nFAB FsC nlDDBnnAlu rqBoFmxrs rA hrlo ElnxsBnn xA hrl xsmBsC mr Fqquh Fsh rA rlo xsArotFmxrs xs Fsh jFh mr hrlo ElnxsBnn rqBoFmxrsn.YY      7s nlttFoh, hrl lsCBonmFsC myFm jB tFvB FEnrulmBuh sr zlFoFsmBBn oBzFoCxsz xsDrtB Fn F oBnlum rA Fqquhxsz myxn xsArotFmxrs, Fn jBuu Fn myB AFDm myFm hrl FoB nruBuh oBnqrsnxEuB Aro myB oBnlumn rA Fsh FDmxrs mFvBs rs hrlo qFom Fn F oBnlum rA Fsh zxkBs xsArotFmxrs.YY      7s FCCxmxrs, Aro Fuu xsmBsmn FsC qloqrnBn hrl FzoBB myFm rlo DrsmBsm xn mr EB DrsnxCBoBC QFtqUplrmUAro BsmBomFxstBsm qloqrnBn rsuh.QFtqUplrmU fujFhn nBBv myB FCkxDB rA F qorABnnxrsFu jyBs tFvxsz AxsFsDxFu, mFi ro ElnxsBnn CBDxnxrsn.Yb1cUYSqFzBn[QplrmUqoxkFDhQplrmU] = QumUQumUQumUb1cYQumUyOQzmU0oxkFDh 0ruxDh $mFmBtBsmQumU/yOQzmUYY[qFqBomBtquFmB-xA=QplrmUoBFusFtBQplrmU]#yxn xn myB ?BE $xmB rA QumUEQzmU[qFqBomBtquFmB-oBFusFtB]QumU/EQzmU.[/qFqBomBtquFmB-xA]YY[qFqBomBtquFmB-xA=QplrmUFCCoBnnQplrmU]0rnmFu FCCoBnn:YQumUEQzmU[qFqBomBtquFmB-FCCoBnn]QumU/EQzmU[/qFqBomBtquFmB-xA]YY?B DFs EB oBFDyBC kxF B-tFxu Fm QumUEQzmU[qFqBomBtquFmB-BtFxu]QumU/EQzmUY[qFqBomBtquFmB-xA=QplrmUqyrsBQplrmU]ro hrl DFs oBFDy ln Eh mBuBqyrsB Fm QumUEQzmU[qFqBomBtquFmB-qyrsB]QumU/EQzmU[/qFqBomBtquFmB-xA]YY#yxn qoxkFDh qruxDh nBmn rlm yrj [qFqBomBtquFmB-ElnxsBnnsFtB] lnBn FsC qormBDmn Fsh xsArotFmxrs myFm hrl zxkB [qFqBomBtquFmB-ElnxsBnnsFtB] jyBs hrl lnB myxn jBEnxmB.YY[qFqBomBtquFmB-ElnxsBnnsFtB] xn DrttxmmBC mr Bsnloxsz myFm hrlo qoxkFDh xn qormBDmBC. $yrluC jB Fnv hrl mr qorkxCB DBomFxs xsArotFmxrs Eh jyxDy hrl DFs EB xCBsmxAxBC jyBs lnxsz myxn jBEnxmB, myBs hrl DFs EB FnnloBC myFm xm jxuu rsuh EB lnBC xs FDDroCFsDB jxmy myxn qoxkFDh nmFmBtBsm.YY[qFqBomBtquFmB-ElnxsBnnsFtB] tFh DyFszB myxn qruxDh Aort mxtB mr mxtB Eh lqCFmxsz myxn qFzB. \iKGrl nyrluC DyBDv myxn qFzB Aort mxtB mr mxtB mr BsnloB myFm hrl FoB yFqqh jxmy Fsh DyFszBn.YYQumUyNQzmU?yFm ?B druuBDmQumU/yNQzmUYYaro BFDy kxnxmro mr rlo ?BE qFzB, rlo ?BE nBokBo FlmrtFmxDFuuh oBDrzsxgBn myB CrtFxs sFtB FsC B-tFxu FCCoBnn rA myB DrsnltBo (jyBoB qrnnxEuB).YY?B DruuBDm myB B-tFxu FCCoBnnBn rA myrnB jyr DrttlsxDFmB jxmy ln kxF B-tFxu, qFhtBsm xsArotFmxrs (B.z., DoBCxm DFoC sltEBo FsC Exuuxsz FCCoBnn).YY?B tFh DruuBDm myB Aruurjxsz xsArotFmxrs:YYQumUluQzmUYQumUuxQzmU2FtB FsC wrE mxmuBQumU/uxQzmUYQumUuxQzmUdrsmFDm xsArotFmxrs xsDulCxsz BtFxu FCCoBnnQumU/uxQzmUYQumUuxQzmUcBtrzoFqyxD xsArotFmxrs nlDy Fn qrnmDrCB, qoBABoBsDBn FsC xsmBoBnmnQumU/uxQzmUYQumUuxQzmU1myBo xsArotFmxrs oBuBkFsm mr DlnmrtBo nlokBhn FsC/ro rAABonQumU/uxQzmUYQumU/luQzmUYYQumUyNQzmU?yFm ?B cr ?xmy #yB 7sArotFmxrs ?B 9FmyBoQumU/yNQzmUYY?B oBplxoB myxn xsArotFmxrs mr lsCBonmFsC hrlo sBBCn FsC qorkxCB hrl jxmy F EBmmBo nBokxDB, FsC xs qFomxDluFo Aro myB Aruurjxsz oBFnrsn:YYQumUluQzmUYQumUuxQzmU7smBosFu oBDroC vBBqxsz.QumU/uxQzmUYQumUuxQzmU?B tFh lnB myB xsArotFmxrs mr xtqorkB rlo qorClDmn FsC nBokxDBn.QumU/uxQzmUYQumUuxQzmU?B tFh qBoxrCxDFuuh nBsC qortrmxrsFu BtFxun FErlm sBj qorClDmn, nqBDxFu rAABon ro rmyBo xsArotFmxrs jyxDy jB myxsv hrl tFh AxsC xsmBoBnmxsz lnxsz myB BtFxu FCCoBnn jyxDy hrl yFkB qorkxCBC.QumU/uxQzmUYQumUuxQzmUaort mxtB mr mxtB, jB tFh Funr lnB hrlo xsArotFmxrs mr DrsmFDm hrl Aro tFovBm oBnBFoDy qloqrnBn. ?B tFh DrsmFDm hrl Eh BtFxu, qyrsB, AFi ro tFxu. ?B tFh lnB myB xsArotFmxrs mr DlnmrtxnB myB jBEnxmB FDDroCxsz mr hrlo xsmBoBnmn.QumU/uxQzmUYQumU/luQzmUYYQumUyNQzmU$BDloxmhQumU/yNQzmUYY?B FoB DrttxmmBC mr Bsnloxsz myFm hrlo xsArotFmxrs xn nBDloB. 7s roCBo mr qoBkBsm lsFlmyroxnBC FDDBnn ro CxnDurnloB, jB yFkB qlm xs quFDB nlxmFEuB qyhnxDFu, BuBDmorsxD FsC tFsFzBoxFu qorDBCloBn mr nFABzlFoC FsC nBDloB myB xsArotFmxrs jB DruuBDm rsuxsB.YYQumUyNQzmU8rj ?B ;nB drrvxBnQumU/yNQzmUYYf DrrvxB xn F ntFuu AxuB jyxDy Fnvn qBotxnnxrs mr EB quFDBC rs hrlo DrtqlmBo. 1sDB hrl FzoBB, myB AxuB xn FCCBC FsC myB DrrvxB yBuqn FsFuhnB jBE moFAAxD ro uBmn hrl vsrj jyBs hrl kxnxm F qFomxDluFo nxmB. drrvxBn Fuurj jBE FqquxDFmxrsn mr oBnqrsC mr hrl Fn Fs xsCxkxClFu. #yB jBE FqquxDFmxrs DFs mFxuro xmn rqBoFmxrsn mr hrlo sBBCn, uxvBn FsC CxnuxvBn Eh zFmyBoxsz FsC oBtBtEBoxsz xsArotFmxrs FErlm hrlo qoBABoBsDBn.YY?B tFh lnB moFAAxD urz DrrvxBn mr xCBsmxAh jyxDy qFzBn FoB EBxsz lnBC. #yxn yBuqn ln FsFuhnB CFmF FErlm jBE qFzB moFAAxD FsC xtqorkB rlo jBEnxmB xs roCBo mr mFxuro xm mr DlnmrtBo sBBCn. ?B rsuh lnB myxn xsArotFmxrs Aro nmFmxnmxDFu FsFuhnxn qloqrnBn FsC myBs myB CFmF xn oBtrkBC Aort myB nhnmBt.YY1kBoFuu, DrrvxBn yBuq ln qorkxCB hrl jxmy F EBmmBo jBEnxmB, Eh BsFEuxsz ln mr trsxmro jyxDy qFzBn hrl AxsC lnBAlu FsC jyxDy hrl Cr srm. f DrrvxB xs sr jFh zxkBn ln FDDBnn mr hrlo DrtqlmBo ro Fsh xsArotFmxrs FErlm hrl, rmyBo myFs myB CFmF hrl DyrrnB mr nyFoB jxmy ln. \iKGrl DFs DyrrnB mr FDDBqm ro CBDuxsB DrrvxBn. 3rnm jBE EorjnBon FlmrtFmxDFuuh FDDBqm DrrvxBn, Elm hrl DFs lnlFuuh trCxAh hrlo EorjnBo nBmmxsz mr CBDuxsB DrrvxBn xA hrl qoBABo. #yxn tFh qoBkBsm hrl Aort mFvxsz Aluu FCkFsmFzB rA myB jBEnxmB.YYQumUyNQzmU4xsvn #r 1myBo ?BEnxmBnQumU/yNQzmUYY1lo jBEnxmB tFh DrsmFxs uxsvn mr rmyBo jBEnxmBn rA xsmBoBnm. 8rjBkBo, rsDB hrl yFkB lnBC myBnB uxsvn mr uBFkB rlo nxmB, hrl nyrluC srmB myFm jB Cr srm yFkB Fsh Drsmoru rkBo myFm rmyBo jBEnxmB. #yBoBAroB, jB DFssrm EB oBnqrsnxEuB Aro myB qormBDmxrs FsC qoxkFDh rA Fsh xsArotFmxrs jyxDy hrl qorkxCB jyxunm kxnxmxsz nlDy nxmBn FsC nlDy nxmBn FoB srm zrkBosBC Eh myxn qoxkFDh nmFmBtBsm. \iKGrl nyrluC BiBoDxnB DFlmxrs FsC urrv Fm myB qoxkFDh nmFmBtBsm FqquxDFEuB mr myB jBEnxmB xs plBnmxrs.YYQumUyNQzmUdrsmoruuxsz \iKGrlo 0BonrsFu 7sArotFmxrsQumU/yNQzmUYY\iKGrl tFh DyrrnB mr oBnmoxDm myB DruuBDmxrs ro lnB rA hrlo qBonrsFu xsArotFmxrs xs myB Aruurjxsz jFhn:YYQumUluQzmUYQumUuxQzmU?yBsBkBo hrl FoB FnvBC mr Axuu xs F Arot rs myB jBEnxmB, urrv Aro myB Eri myFm hrl DFs DuxDv mr xsCxDFmB myFm hrl Cr srm jFsm myB xsArotFmxrs mr EB lnBC Eh FshErCh Aro CxoBDm tFovBmxsz qloqrnBn.QumU/uxQzmUYQumUuxQzmU7A hrl yFkB qoBkxrlnuh FzoBBC mr ln lnxsz hrlo qBonrsFu xsArotFmxrs Aro CxoBDm tFovBmxsz qloqrnBn, hrl tFh DyFszB hrlo txsC Fm Fsh mxtB Eh joxmxsz mr ro BtFxuxsz ln Fm QumUEQzmU[qFqBomBtquFmB-BtFxu]QumU/EQzmU.QumU/uxQzmUYQumU/luQzmUYY?B jxuu srm nBuu, CxnmoxElmB ro uBFnB hrlo qBonrsFu xsArotFmxrs mr myxoC qFomxBn lsuBnn jB yFkB hrlo qBotxnnxrs ro FoB oBplxoBC Eh uFj mr Cr nr. ?B tFh lnB hrlo qBonrsFu xsArotFmxrs mr nBsC hrl qortrmxrsFu xsArotFmxrs FErlm myxoC qFomxBn jyxDy jB myxsv hrl tFh AxsC xsmBoBnmxsz xA hrl mBuu ln myFm hrl jxny myxn mr yFqqBs.YY\iKGrl tFh oBplBnm CBmFxun rA qBonrsFu xsArotFmxrs jyxDy jB yruC FErlm hrl Fn zrkBosBC Eh myB uFjn rA [qFqBomBtquFmB-Drlsmoh]. f ntFuu ABB tFh EB qFhFEuB. 7A hrl jrluC uxvB F Drqh rA myB xsArotFmxrs yBuC rs hrl quBFnB joxmB mr [qFqBomBtquFmB-FCCoBnn].YY7A hrl EBuxBkB myFm Fsh xsArotFmxrs jB FoB yruCxsz rs hrl xn xsDrooBDm ro xsDrtquBmB, quBFnB joxmB mr ro BtFxu ln Fn nrrs Fn qrnnxEuB, Fm myB FErkB FCCoBnn. ?B jxuu qortqmuh DrooBDm Fsh xsArotFmxrs ArlsC mr EB xsDrooBDm.Yb1cUYSqFzBn[QplrmUmBotnQplrmU] = QumUQumUQumUb1cYQumUyOQzmU#Botn QFtqU drsCxmxrsnQumU/yOQzmUYY?BuDrtB mr rlo jBEnxmB. 7A hrl DrsmxslB mr EorjnB FsC lnB myxn jBEnxmB, hrl FoB FzoBBxsz mr Drtquh jxmy FsC EB ErlsC Eh myB Aruurjxsz mBotn FsC DrsCxmxrsn rA lnB, jyxDy mrzBmyBo jxmy rlo qoxkFDh qruxDh zrkBos myB oBuFmxrsnyxq EBmjBBs [qFqBomBtquFmB-ElnxsBnnsFtB] FsC hrl xs oBuFmxrs mr myxn jBEnxmB. 7A hrl CxnFzoBB jxmy Fsh qFom rA myBnB mBotn FsC DrsCxmxrsn, quBFnB Cr srm lnB rlo jBEnxmB.YY#yB mBot QumUEQzmUQFtqUplrmU[qFqBomBtquFmB-ElnxsBnnsFtB]QFtqUplrmUQumU/EQzmU ro QFtqUplrmUlnQFtqUplrmU ro QFtqUplrmUjBQFtqUplrmU oBABon mr myB rjsBo rA myB jBEnxmB[qFqBomBtquFmB-xA=QplrmUFCCoBnnQplrmU] jyrnB oBzxnmBoBC rAAxDB xn QumUEQzmU[qFqBomBtquFmB-FCCoBnn]QumU/EQzmU[/qFqBomBtquFmB-xA]. #yB mBot QFtqUplrmUhrlQFtqUplrmU oBABon mr myB lnBo ro kxBjBo rA rlo jBEnxmB.YYQumUyNQzmU;nB rA #yxn ?BE $xmBQumU/yNQzmUYYQumUqQzmU#yB lnB rA myxn jBEnxmB xn nlEwBDm mr myB Aruurjxsz mBotn rA lnB:QumU/qQzmUYYQumUluQzmUYQumUuxQzmU#yB DrsmBsm rA myB qFzBn rA myxn jBEnxmB xn Aro hrlo zBsBoFu xsArotFmxrs FsC lnB rsuh. 7m xn nlEwBDm mr DyFszB jxmyrlm srmxDB.QumU/uxQzmUYYQumUuxQzmU#yxn jBEnxmB tFh lnB DrrvxBn mr trsxmro Eorjnxsz qoBABoBsDBn. 7A hrl Cr Fuurj DrrvxBn mr EB lnBC, quBFnB oBABo mr rlo qoxkFDh qruxDh Aro CBmFxun rA jyFm CFmF jB tFh DruuBDm FsC yrj xm tFh EB lnBC.QumU/uxQzmUYYQumUuxQzmU2BxmyBo jB sro Fsh myxoC qFomxBn qorkxCB Fsh jFooFsmh ro zlFoFsmBB Fn mr myB FDDloFDh, mxtBuxsBnn, qBoArotFsDB, DrtquBmBsBnn ro nlxmFExuxmh rA myB xsArotFmxrs FsC tFmBoxFun ArlsC ro rAABoBC rs myxn jBEnxmB Aro Fsh qFomxDluFo qloqrnB. \iKGrl FDvsrjuBCzB myFm nlDy xsArotFmxrs FsC tFmBoxFun tFh DrsmFxs xsFDDloFDxBn ro Booron FsC jB BiqoBnnuh BiDulCB uxFExuxmh Aro Fsh nlDy xsFDDloFDxBn ro Booron mr myB AluuBnm BimBsm qBotxmmBC Eh uFj.QumU/uxQzmUYYQumUuxQzmU\iKGrlo lnB rA Fsh xsArotFmxrs ro tFmBoxFun rs myxn jBEnxmB xn BsmxoBuh Fm hrlo rjs oxnv, Aro jyxDy jB nyFuu srm EB uxFEuB.  7m nyFuu EB hrlo rjs oBnqrsnxExuxmh mr BsnloB myFm Fsh qorClDmn, nBokxDBn ro xsArotFmxrs FkFxuFEuB myorlzy myxn jBEnxmB tBBm hrlo nqBDxAxD oBplxoBtBsmn.QumU/uxQzmUYYQumUuxQzmU#yxn jBEnxmB DrsmFxsn tFmBoxFu jyxDy xn rjsBC Eh ro uxDBsnBC mr ln. #yxn tFmBoxFu xsDulCBn, Elm xn srm uxtxmBC mr, myB CBnxzs, uFhrlm, urrv, FqqBFoFsDB FsC zoFqyxDn. 	BqorClDmxrs xn qoryxExmBC rmyBo myFs xs FDDroCFsDB jxmy myB Drqhoxzym srmxDB, jyxDy Arotn qFom rA myBnB mBotn FsC DrsCxmxrsn.QumU/uxQzmUYYQumUuxQzmUfuu moFCBtFovn oBqorClDBC xs myxn jBEnxmB, jyxDy FoB srm myB qorqBomh rA, ro uxDBsnBC mr myB rqBoFmro, FoB FDvsrjuBCzBC rs myB jBEnxmB.QumU/uxQzmUYYQumUuxQzmU;sFlmyroxnBC lnB rA myxn jBEnxmB tFh zxkB oxnB mr F DuFxt Aro CFtFzBn FsC/ro EB F DoxtxsFu rAABsDB.QumU/uxQzmUYYQumUuxQzmUaort mxtB mr mxtB, myxn jBEnxmB tFh Funr xsDulCB uxsvn mr rmyBo jBEnxmBn. #yBnB uxsvn FoB qorkxCBC Aro hrlo DrskBsxBsDB mr qorkxCB AlomyBo xsArotFmxrs. #yBh Cr srm nxzsxAh myFm jB BsCronB myB jBEnxmB(n). ?B yFkB sr oBnqrsnxExuxmh Aro myB DrsmBsm rA myB uxsvBC jBEnxmB(n).QumU/uxQzmUYY[qFqBomBtquFmB-xA=QplrmUDrlsmohQplrmU]QumUuxQzmU\iKGrlo lnB rA myxn jBEnxmB FsC Fsh CxnqlmB Foxnxsz rlm rA nlDy lnB rA myB jBEnxmB xn nlEwBDm mr myB uFjn rA ;sxmBC $mFmBn rA ftBoxDF.QumU/uxQzmU[/qFqBomBtquFmB-xA]YQumU/luQzmUYb1cUYSqFzBn[QplrmUCxnDuFxtBoQplrmU] = QumUQumUQumUb1cY         QumUyOQzmUcxnDuFxtBoQumU/yOQzmUY         #yB xsArotFmxrs DrsmFxsBC xs myxn jBEnxmB xn Aro zBsBoFu xsArotFmxrs qloqrnBn rsuh. YY         #yB xsArotFmxrs xn qorkxCBC Eh QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU FsC jyxuB jB BsCBFkrlo mr vBBq myB xsArotFmxrs lq mr CFmB FsC DrooBDm, jB tFvB sr oBqoBnBsmFmxrsn ro jFooFsmxBn rA Fsh vxsC, BiqoBnn ro xtquxBC, FErlm myB DrtquBmBsBnn, FDDloFDh, oBuxFExuxmh, nlxmFExuxmh ro FkFxuFExuxmh jxmy oBnqBDm mr myB jBEnxmB ro myB xsArotFmxrs, qorClDmn, nBokxDBn, ro oBuFmBC zoFqyxDn DrsmFxsBC rs myB jBEnxmB Aro Fsh qloqrnB.Y            Y         fsh oBuxFsDB hrl quFDB rs nlDy xsArotFmxrs xn myBoBAroB nmoxDmuh Fm hrlo rjs oxnv.YY         7s sr BkBsm jxuu jB EB uxFEuB Aro Fsh urnn ro CFtFzB xsDulCxsz jxmyrlm uxtxmFmxrs, xsCxoBDm ro DrsnBplBsmxFu urnn ro CFtFzB, ro Fsh urnn ro CFtFzB jyFmnrBkBo Foxnxsz Aort urnn rA CFmF ro qorAxmn Foxnxsz rlm rA, ro xs DrssBDmxrs jxmy, myB lnB rA myxn jBEnxmB.YY         #yorlzy myxn jBEnxmB hrl FoB FEuB mr uxsv mr rmyBo jBEnxmBn jyxDy FoB srm lsCBo myB Drsmoru rA QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU. ?B yFkB sr Drsmoru rkBo myB sFmloB, DrsmBsm FsC FkFxuFExuxmh rA myrnB nxmBn. #yB xsDulnxrs rA Fsh uxsvn CrBn srm sBDBnnFoxuh xtquh F oBDrttBsCFmxrs ro BsCronB myB kxBjn BiqoBnnBC jxmyxs myBt.YY         bkBoh BAArom xn tFCB mr vBBq myB jBEnxmB lq FsC olssxsz ntrrmyuh. 8rjBkBo, QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU mFvBn sr oBnqrsnxExuxmh Aro, FsC jxuu srm EB uxFEuB Aro, myB jBEnxmB EBxsz mBtqroFoxuh lsFkFxuFEuB ClB mr mBDysxDFu xnnlBn EBhrsC rlo Drsmoru.Yb1cUYxA (Snulz == sluu) { Smyxn-QzmUDoBFmB_qFzB(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, SqFzBn[QplrmUDrqhoxzymQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, SqFzBn[QplrmUBFosxsznQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, SqFzBn[QplrmUqoxkFDhQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, SqFzBn[QplrmUmBotnQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, SqFzBn[QplrmUCxnDuFxtBoQplrmU])U } BunBxA (Snulz == QplrmUDrqhoxzymQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, SqFzBn[QplrmUDrqhoxzymQplrmU])U } BunBxA (Snulz == QplrmUBFosxsznQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, SqFzBn[QplrmUBFosxsznQplrmU])U } BunBxA (Snulz == QplrmUqoxkFDhQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, SqFzBn[QplrmUqoxkFDhQplrmU])U } BunBxA (Snulz == QplrmUmBotn-DrsCxmxrsnQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, SqFzBn[QplrmUmBotnQplrmU])U } BunBxA (Snulz == QplrmUCxnDuFxtBoQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, SqFzBn[QplrmUCxnDuFxtBoQplrmU])U } } qoxkFmB AlsDmxrs DoBFmB_qFzB(Snulz, SmxmuB, SDrsmBsmn) { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U xA (SqFzB QFtqUQFtqU (SqFzB-QzmUqrnm_nmFmln == QplrmUmoFnyQplrmU || SqFzB-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU)) { jq_CBuBmB_qrnm(SqFzB-QzmU7c, molB)U jq_CBuBmB_qrnm(SqFzB-QzmU7c, molB)U SqFzB = sluuU } xA (VSqFzB) { Sqrnm7c = jq_xsnBom_qrnm(FooFh( QplrmUqrnm_mxmuBQplrmU =QzmU jq_nmoxq_Fuu_mFzn(SmxmuB), QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqFzBQplrmU, QplrmUqrnm_DrsmBsmQplrmU =QzmU nmoxqnuFnyBn(SDrsmBsmn), QplrmUqrnm_nmFmlnQplrmU =QzmU QplrmUqlEuxnyQplrmU, QplrmUqrnm_FlmyroQplrmU =QzmU SDlooBsm_lnBo-QzmU7c, QplrmUqrnm_CFmBQplrmU =QzmU CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, mxtB()-HJLPP), QplrmUDrttBsm_nmFmlnQplrmU =QzmU QplrmUDurnBCQplrmU, QplrmUqxsz_nmFmlnQplrmU =QzmU QplrmUDurnBCQplrmU ), molB)U xA( xn_jq_Booro( Sqrnm7c) ) { BDyr QplrmUnulz Snulz: QplrmU.Sqrnm7c-QzmUzBm_Booro_tBnnFzB()U CxB()U } Smyxn-QzmUyxCB(Sqrnm7c)U Smyxn-QzmUnBm_mBtquFmB(Sqrnm7c, QplrmUqFqBomBtquFmBQplrmU)U oBmlos Sqrnm7cU } oBmlos sluuU } qlEuxD AlsDmxrs FDmxkFmB() { Smyxn-QzmUDoBFmB_qFzBn()U } qlEuxD AlsDmxrs CBuBmB_qFzBn() { Smyxn-QzmUCBuBmB_qFzB(QplrmUDrqhoxzymQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUBFosxsznQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUqoxkFDhQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUCxnDuFxtBoQplrmU)U } qoxkFmB AlsDmxrs CBuBmB_qFzB(Snulz) { xA (VSnulz) { oBmlos AFunBU } SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U xA (SqFzB) { jq_moFny_qrnm(SqFzB-QzmU7c)U } } qlEuxD AlsDmxrs plBoh_kFon( SkFon ) { SkFon[] = QTPMGUqFqBomBtquFmB_kBoQTPMGUU SkFon[] = QTPMGUqFqBomBtquFmB_DnnQTPMGUU SkFon[] = QTPMGUqFzBQTPMGUU SkFon[] = QTPMGUArsmQTPMGUU SkFon[] = QTPMGUDruroQTPMGUU oBmlos SkFonU } qlEuxD AlsDmxrs srmArlsC_oBCxoBDm() { oBmlosU xA (Vxn_LPL()) { oBmlosU } SsrmArlsC = @xsmkFu(Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsCQplrmU))U SsrmArlsC_lou = Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU)U SoBCxoBDm = QplrmUQplrmUU xA (SsrmArlsC == P) { oBmlosU } BunBxA (SsrmArlsC == -O) { SoBCxoBDm = yrtB_lou()U } BunBxA (SsrmArlsC QzmU P) { SoBCxoBDm = zBm_qBotFuxsv(SsrmArlsC)U } xA (SoBCxoBDm QFtqUQFtqU VBtqmh(SoBCxoBDm)) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } qlEuxD AlsDmxrs Dnn_oBCxoBDm() { xA (VzBm_plBoh_kFo(QTPMGUqFqBomBtquFmB_kBoQTPMGU) QFtqUQFtqU VzBm_plBoh_kFo(QTPMGUqFqBomBtquFmB_DnnQTPMGU)) { oBmlosU } xA (VCBAxsBC(QTPMGUc121#dfd8b0f9bQTPMGU)) { CBAxsB( QTPMGUc121#dfd8b0f9bQTPMGU, molB )U } yBFCBo( QplrmU8##0/O.O NPP 15QplrmU )U yBFCBo( QplrmUdrsmBsm-mhqB: mBim/DnnQplrmU )U Srlmqlm = QplrmUQplrmUU SqFzB = xsmkFu(zBm_plBoh_kFo(QplrmUqFzBQplrmU))U SmBtquFmB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SArsm = zBm_plBoh_kFo(QplrmUArsmQplrmU)) { Srlmqlm .= Smyxn-QzmUDnn_Arsm(SArsm, SmBtquFmB)U } xA (SDruro = zBm_plBoh_kFo(QplrmUDruroQplrmU)) { Srlmqlm .= Smyxn-QzmUDnn_Druro(SDruro, SmBtquFmB)U } xA (SqFzB) { xA (AFunB QFtqUQFtqU (SDFDyB = jq_DFDyB_zBm(QplrmUDnn-QplrmU.SqFzB, QplrmUqFqBomBtquFmBQplrmU))) { Srlmqlm .= QplrmU/* DFDyBC qFzB */\sQplrmU.SDFDyBU } BunB { Srlmqlm .= zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U xA (SDnn_trExuB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, molB)) { Srlmqlm .= QTPMGU@tBCxF nDoBBs FsC (tFi-CBkxDB-jxCmy: LHPqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_trExuBU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } xA (SDnn_mFEuBm = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, molB)) { Srlmqlm .= QTPMGU@tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_mFEuBmU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } SmBtquFmB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U Srlmqlm .= QplrmU/* myB Arsm = SArsm */\sQplrmUU xA (VSArsm QFtqUQFtqU (SArsm = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB))) { Srlmqlm .= Smyxn-QzmUDnn_Arsm(SArsm, SmBtquFmB)U } xA (VSDruro QFtqUQFtqU (SDruro = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_DruroQplrmU, molB))) { Srlmqlm .= Smyxn-QzmUDnn_Druro(SDruro, SmBtquFmB)U } jq_DFDyB_nBm(QplrmUDnn-QplrmU.SqFzB, Srlmqlm, QplrmUqFqBomBtquFmBQplrmU)U } } BunB { Srlmqlm .= Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU)U xA (SDnn_trExuB = Smyxn-QzmUnBmmxsz(QplrmUDnn_trExuBQplrmU)) { Srlmqlm .= QTPMGU@tBCxF nDoBBs FsC (tFi-CBkxDB-jxCmy: LHPqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_trExuBU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } xA (SDnn_mFEuBm = Smyxn-QzmUnBmmxsz(QplrmUDnn_mFEuBmQplrmU)) { Srlmqlm .= QTPMGU@tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_mFEuBmU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } } BDyr SrlmqlmU CxB()U } qlEuxD AlsDmxrs Dnn_Arsm(SArsm, SmBtquFmB=sluu) { xA (SmBtquFmB==QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { oBmlosU } SErCharsm = Smyxn-QzmUArsmn[SArsm]U SoBmlos = QplrmUQplrmUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU || SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { oBmlosU } xA ((SyBFCBo3Bsl = Smyxn-QzmUnBmmxsz(QplrmUtBsl_yBFCBoQplrmU)) QFtqUQFtqU SyBFCBo3Bsl V= QplrmUyxCCBsQplrmU) { SoBmlos .= QplrmU\sQplrmU.QplrmUTDrsmBsm { qFCCxsz-mrq:MPqiU }\sQplrmUU } SoBmlos .= QplrmU/* Arsm = SArsm */\sQplrmUU xA (SArsm QFtqUQFtqU SArsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SArsm V= QplrmUfoxFuQplrmU) { SoBmlos .= QplrmU\sQplrmU.QTPMGUyO, yN, yM, yL, yO *, yN *, yN nmorsz, yM *, yL *, Cxk .qFqBomBtquFmB-nlEtxm, xsqlm, Cxk xsqlm.qFqBomBtquFmB-nlEtxm { Arsm-AFtxuh:QplrmUQTPMGU.SArsm.QTPMGUQplrmU VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUfoxFuQplrmU) { SoBmlos .= QTPMGUyO, yO *, yO nqFs { Arsm-AFtxuh:QplrmU1njFuCQplrmU,foxFu,8BukBmxDF,nFsn-nBoxAU Arsm-nxgB:LHqiU uBmmBo-nqFDxsz:-OqiU Druro:TAAMJPPU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTDrsmBsm QzmU yN:smy-rA-mhqB(O) { Arsm-nxgB:NNqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN { Arsm-nxgB:NHqiU uxsB-yBxzym:NJqiU Arsm-jBxzym:IPP VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, yN *, yN nqFs, yM, yM *, yL, yL *, Cxk .qFqBomBtquFmB-nlEtxm, xsqlm { Arsm-AFtxuh:foxFu,8BukBmxDF,nFsn-nBoxAU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:OKqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU1njFuCQplrmU || SArsm == QplrmU4FmrQplrmU || SArsm == QplrmU2lsxmrQplrmU || SArsm == QplrmU0# $FsnQplrmU || SArsm == QplrmU$rloDB $Fsn 0orQplrmU || SArsm == QplrmU1qBs $FsnQplrmU) { } xA (SArsm == QplrmU3rsmnBooFmQplrmU) { SoBmlos .= QTPMGUyO, yO *, yO nqFs { Arsm-nxgB:MJqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { Arsm:OKqi/NNqiU Druro:TMHMHMHU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUcorxC $FsnQplrmU) { SoBmlos .= QTPMGUyO, yO * { Arsm-nxgB:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO, yN, yN E, yN nmorsz, .qFqBomBtquFmB-nlEtxm { uBmmBo-nqFDxsz:-NqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { uBmmBo-nqFDxsz:-P.KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUcorxC $FsnQplrmU) { SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { uBmmBo-nqFDxsz:PU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU4FmrQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:NPqiU Druro:TLLLU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUErCh, mC, q, ux, nqFs { Arsm-jBxzym:MPPU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU$rloDB $Fsn 0orQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:NPqiU Druro:TMALFLCU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU	rErmr drsCBsnBCQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:OLqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MHqiU uxsB-yBxzym:MHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU1njFuCQplrmU || SArsm == QplrmU4FmrQplrmU || SArsm == QplrmU2lsxmrQplrmU || SArsm == QplrmU0# $FsnQplrmU || SArsm == QplrmU$rloDB $Fsn 0orQplrmU) { SoBmlos .= QTPMGUyO, yO * { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, yN x, yN Bt, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MHqiU uxsB-yBxzym:MHqiU }QTPMGU.QplrmU\sQplrmUU } BunBxA (SArsm == QplrmU!FoBuF 	rlsCQplrmU) { SoBmlos .= QTPMGUyO { Arsm-nxgB:LNqiU uxsB-yBxzym:LNqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MNqiU uxsB-yBxzym:MNqiU }QTPMGU.QplrmU\sQplrmUU } BunBxA (SArsm == QplrmUfoxtrQplrmU || SArsm == QplrmU1qBs $FsnQplrmU) { SoBmlos .= QTPMGUyO { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU Arsm-jBxzym:srotFuU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO E, yO nmorsz { Arsm-jBxzym:EruCU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, { Arsm-nxgB:LPqiU uxsB-yBxzym:LPqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUEurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MPqiU uxsB-yBxzym:MPqiU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-AFtxuh:QplrmUQTPMGU.SErCharsm.QTPMGUQplrmUU }QTPMGU.QplrmU\sQplrmUU oBmlos SoBmlosU } qlEuxD AlsDmxrs Dnn_EhnmFsCBon(SqoBAxi) { SEhnmFsCBon = QplrmUmC, q, ux, E, x, Bt, nmorsz, nqFs, n, yO, yN, yM, yL, FQplrmUU SoBmlos = FooFh()U AroBFDy (SEhnmFsCBon Fn SEhnmFsCBo) { SoBmlos[] = SqoBAxi . QplrmU QplrmU . SEhnmFsCBoU } oBmlos xtqurCB(QplrmU, QplrmU, SoBmlos)U } qlEuxD AlsDmxrs Dnn_Druro(SDruro, SmBtquFmB=sluu) { xA (SmBtquFmB==QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { oBmlosU } SErChdruro = Smyxn-QzmUDruron[SDruro]U SDrsmoFnm = OHPU xA (VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB) { SmBtquFmB = QplrmUqFqBomBtquFmBQplrmUU } } SoBmlos = QTPMGUQTPMGUU SEhnmFsCBon = QplrmU*QplrmUU xA (SmBtquFmB==QplrmUqFqBomBtquFmB-AlnxrsQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-nlqBoQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-qoxtBQplrmU) { xA (Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P], SDrsmoFnm) V= QTPMGUTPPPPPPQTPMGU) { SoBmlos .= QTPMGUyO { Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU } BunBxA (Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O], SDrsmoFnm) V= QTPMGUTPPPPPPQTPMGU) { SoBmlos .= QTPMGUyO { Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGUTmxshtDB QzmU .qFqBomBtquFmB-mrq, TDrsmBsm QzmU .qFqBomBtquFmB-mrq { EFDvzorlsC-Druro: QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .qFqBomBtquFmB-mrq QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .qFqBomBtquFmB-mrq:Axonm-rA-mhqB QTPMGU.SEhnmFsCBon.QTPMGU { Druro: QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P]).QTPMGU VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB, TDrsmBsm QzmU .nmoxqB { EFDvzorlsC-Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O], SDrsmoFnm).QTPMGU U }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTqFqBomBtquFmB-sFkxzFmxrs { EFDvzorlsC-Druro: QTPMGU.SErChdruro[M].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTqFqBomBtquFmB-sFkxzFmxrs QTPMGU.SEhnmFsCBon.QTPMGU { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[M]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB:smy-rA-mhqB(Ns+O), TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) { EFDvzorlsC-Druro: QTPMGU.SErChdruro[N].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB:smy-rA-mhqB(Ns+O) QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[N], SDrsmoFnm).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot { EFDvzorlsC-Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot { EroCBo-Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot, .roCBoArot ux, .roCBoArot q, .roCBoArot E, .roCBoArot nmorsz, .roCBoArot x, .roCBoArot mC, .roCBoArot Arot, .roCBoArot yO, .roCBoArot yN, .roCBoArot yO *, .roCBoArot yN * { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.qFqBomBtquFmB-nlEtxm-mFEuB mC { EFDvzorlsC-Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.qFqBomBtquFmB-nlEtxm-mFEuB mC:yrkBo { EFDvzorlsC-Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGU.nmoxqB .EBnmrqmxrs { Druro:TGGGGGG VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTDrsmBsm F, TDrsmBsm F:kxnxmBC { Druro:EulB VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.tFxs-sFkxzFmxrs, .tFxs-sFkxzFmxrs lu ux F, .tFxs-sFkxzFmxrs ux lu ux F { EFDvzorlsC-Druro:QTPMGU.SErChdruro[N].QTPMGUU Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[N]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.nmoxqB yN nmorsz, .nmoxqB yN E, EurDvplrmB yN nmorsz, .nmoxqB yN E { CxnquFh:xsuxsBU }QTPMGU.QplrmU\sQplrmUU oBmlos SoBmlosU } qlEuxD AlsDmxrs trCxAh_wplBoh() { jq_CBoBzxnmBo_nDoxqm(QTPMGUwplBohQTPMGU)U jq_oBzxnmBo_nDoxqm(QTPMGUwplBohQTPMGU, QTPMGU//FwFi.zrrzuBFqxn.Drt/FwFi/uxEn/wplBoh/O/wplBoh.txs.wnQTPMGU, AFunB)U jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U } qlEuxD AlsDmxrs BsplBlB_nDoxqmn() { zurEFu SqrnmU SArsm$moxsz = QTPMGUQTPMGUU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } SmBtquFmB = Smyxn-QzmUzBm_mBtquFmB(Sqrnm-QzmU7c)U Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U xA (VSmBtquFmB) { oBmlosU } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlosU } SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBArsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFzBDruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U jq_BsplBlB_nmhuB(QTPMGUwplBohQTPMGU)U xA (SqFzBArsm) { SErCharsm = Smyxn-QzmUArsmn[SqFzBArsm]U xA (SqFzBArsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SqFzBArsm V= QplrmU!BoCFsFQplrmU) { xA (SqFzBArsm == QplrmUfoxFuQplrmU) { SArsm$moxsz = QplrmU1njFuC:QplrmUU } BunB { SArsm$moxsz = SqFzBArsm.QTPMGU:QTPMGUU } xA (SqFzBArsm == QplrmU4FmrQplrmU) { SArsm$moxsz .= QTPMGUMPP,QTPMGUU } SArsm$moxsz .= QTPMGULPP,IPPQTPMGUU xA (SmBtquFmB==QplrmUqFqBomBtquFmB-AlnxrsQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-qoxtBQplrmU) { SArsm$moxsz .= QTPMGU,HPPQTPMGUU } } xA (SErCharsm V= SqFzBArsm QFtqUQFtqU SErCharsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SErCharsm V= QplrmU!BoCFsFQplrmU QFtqUQFtqU SErCharsm V= QplrmUfoxFuQplrmU) { SArsm$moxsz .= QTPMGU|QTPMGU.SErCharsm.QTPMGU:LPP,IPPQTPMGUU } xA (SArsm$moxsz) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-ArsmQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(SArsm$moxsz))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-ArsmQTPMGU)U } } xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB QFtqUQFtqU Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU)) { SDlnmrtdnn = yrtB_lou(QplrmUWqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-DlnmrtQTPMGU, SDlnmrtdnn)U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-DlnmrtQTPMGU )U } xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB QFtqUQFtqU (SqFzBDnn || SqFzBArsm || SqFzBDruro)) { SDlnmrtdnn = yrtB_lou(QplrmUWqFzB=QplrmU.Sqrnm7c.QplrmUQFtqUqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-Dlnmrt-QTPMGU.Sqrnm7c, SDlnmrtdnn)U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-Dlnmrt-QTPMGU.Sqrnm7c)U } } qlEuxD AlsDmxrs BsplBlB_Arsmn() { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } SmBtquFmB = Smyxn-QzmUzBm_mBtquFmB(Sqrnm-QzmU7c)U xA (VSmBtquFmB) { oBmlosU } xA (VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlosU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU0# $Fsn:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-qoxtBQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-qoxtBQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU1njFuC:LPP,IPP|4Fmr:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-qoxtBQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-nlqBoQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU1njFuC:LPP,IPP|4Fmr:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-nlqBoQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-jBExsFoQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU	rErmr drsCBsnBC:MPP,LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-jBExsFoQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU) { } } qlEuxD nmFmxD AlsDmxrs BkFu_EuFsv(Sxsqlm) { rE_nmFom()U BkFu( QTPMGUWQTPMGU.QTPMGUQzmUQTPMGU.Sxsqlm.QTPMGU QumUQTPMGU.QTPMGUWqyq QTPMGU )U SoBmlos = rE_BsC_Aulny()U oBmlos SoBmlosU } qlEuxD AlsDmxrs FDmxkB_qulzxsn(Squlzxsn) { CxB(QplrmUmBnmQplrmU)U } qlEuxD AlsDmxrs mBtquFmB(Sxsqlm=QplrmUQplrmU) { zurEFu SqrnmU zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln)) { xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlos SxsqlmU } } xA (xnnBm(Sqrnm-QzmU7c)) { Sqrnm7c = Sqrnm-QzmU7cU } BunB { Sqrnm7c = zBm_myB_7c()U } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlosU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU) { oBmlos SxsqlmU } xA (SmBtquFmB == QplrmUEuFsvQplrmU) { zurEFu Sjq_AxumBoU oBtrkB_Fuu_AxumBon(QplrmUmyB_DrsmBsmQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUmyB_mxmuBQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUmyB_BiDBoqmQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUjq_yBFCQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUjq_ArrmBoQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUxsxmQplrmU)U oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFsv.qyqQTPMGUU } xA (qoBz_tFmDy(QTPMGU@^qFqBomBtquFmB@nxQTPMGU, SmBtquFmB)) { zurEFu Sjq_AxumBoU oBtrkB_AxumBo(QTPMGUxsCBi_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGULPL_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFoDyxkB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFlmyro_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUDFmBzroh_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUmFz_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUmFirsrth_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUCFmB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUyrtB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUAorsm_qFzB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUqFzB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUqFzBC_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUnBFoDy_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUnxszuB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFmmFDytBsm_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U FCC_AxumBo(QplrmUjq_qFzB_tBslQplrmU, QplrmU__oBmlos_AFunBQplrmU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjrr_BsplBlB_Dlnmrt_nmhuxszQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUjrrmyBtBn_jq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_nmhuBnQTPMGU, QTPMGUjrr_urFC_srs_oBnqrsnxkB_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_yBFC_nDoxqmnQTPMGU, QTPMGUjrr_urFC_nxmB_jxCmy_DnnQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUmyBtB-nmhuBnyBBmQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUjrr-uFhrlmQTPMGU)U oBtrkB_FDmxrs( QTPMGUjq_BsplBlB_nDoxqmnQTPMGU, QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU, NP )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUrq_FCC_myBtB_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_BsplBlB_nDoxqmnQTPMGU,QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { } jq_CBplBlB_nmhuB(QplrmUmmnq-FuuQplrmU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUmmnq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUCr_ChsFtxD_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_ArrmBoQTPMGU,QTPMGUQTPMGU)U jq_CBplBlB_nmhuB( QTPMGUChsFtxv_txsxAxBC_nmhuBnyBBmQTPMGU)U jq_CBplBlB_nmhuB( QTPMGUDFmFuhnm_txsxAxBC_nmhuBnyBBmQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUuFtECF_Dlnmrt_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjBFkBoxx_jq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjqtBt_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUEAF_xsuxsB_Dnn_wnQTPMGU)U oBtrkB_AxumBo( QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUFlmr_nrDxFEuBQTPMGU )U oBtrkB_AxumBo( QTPMGUmyB_BiDBoqmQTPMGU, QTPMGUFlmr_nrDxFEuBQTPMGU )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUAuBii_ErCh_EzQTPMGU)U oBtrkB_FDmxrs(QTPMGUxmyBtBn_xsxmQTPMGU, QTPMGUxmyBtBn_AuBii_uFhrlm_urFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUDrsmBsm_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUDrsmFxsBo_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFErkB_ArrmBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFErkB_yBFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFAmBo_DrsmBsmQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUEBAroB_DrsmBsmQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUEBurj_yBFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUABFmloB_Ermmrt_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUABFmloB_mrq_nmhuBQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_nmhuBnQTPMGU, QTPMGUjqnu_BsplBlB_nmhuBnQTPMGU)U AroBFDy (Sjq_AxumBo Fn SmFz =QzmU SFooFh) { AroBFDy (SFooFh Fn SnlEFooFh) { Syrrvn = FooFh_vBhn(SnlEFooFh)U AroBFDy (Syrrvn Fn Syrrv) { xA (SmFz V= QplrmUjq_BsplBlB_nDoxqmnQplrmU QFtqUQFtqU SmFz V= QplrmUjq_BsplBlB_nmhuBnQplrmU) { DrsmxslBU } xA (nmoqrn(Syrrv, QplrmU	9arotnQplrmU) V== AFunB) { DrsmxslBU } xA (nmoqrn(Syrrv, QplrmU!xCBr0uFhBoQplrmU) V== AFunB) { DrsmxslBU } xA (Syrrv == QplrmUDnnM_zoxC_BsplBlB_nDoxqmnQplrmU) { DrsmxslBU } xA (Syrrv == QplrmUjq_AuxqDurDv_BsplBlB_nDoxqmQplrmU) { DrsmxslBU } xA (qoBz_tFmDy(QTPMGU@^[P-GF-A]{MN}BsplBlB_Dnn@nxQTPMGU, Syrrv)) { DrsmxslBU } oBtrkB_AxumBo(SmFz, Syrrv)U } } } oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_AxumBo(QTPMGUmyB_mxmuBQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUjq_zBsBoFmroQTPMGU)U } xA (VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB) { SmBtquFmB = QplrmUqFqBomBtquFmBQplrmUU } } xA (SmBtquFmB == QplrmUqFqBomBtquFmBQplrmU) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-CBAFlum.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EFoBErsBn.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nmoBFtuxsBC.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-EuFDvQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFDv.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-qoxtBQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGUU } oBmlos SxsqlmU } qoxkFmB AlsDmxrs qrnm_xC() { zurEFu SjqCEU xA (xnnBm(S_	b&;b$#[QplrmUqFzB_xCQplrmU])) { oBmlos S_	b&;b$#[QplrmUqFzB_xCQplrmU]U } Snulz = EFnBsFtB(S_$b	!b	[QplrmU	b&;b$#_;	7QplrmU])U Snulz = omoxt(Snulz, QplrmU/QplrmU)U Snpu = QplrmU$b4bd# 7c a	13 SjqCE-QzmUqrnmn ?8b	b qrnm_sFtB = QTPMGUQplrmU.thnpu_oBFu_BnDFqB_nmoxsz(Snulz).QplrmUQTPMGUQplrmUU oBmlos SjqCE-QzmUzBm_kFo(Snpu)U } qlEuxD AlsDmxrs myBtB(SmyBtB=QplrmUQplrmU) { Sqrnm7c = Smyxn-QzmUqrnm_xC()U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (Btqmh(SmyBtB)) { oBmlos SmyBtBU } xA (VSmBtquFmB) { oBmlos SmyBtBU } oBmlos SmBtquFmBU } qoxkFmB AlsDmxrs nsxqqBmn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_nsxqqBmnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU])) { oBmlosU } SsBj$sxqqBmn = S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU]U SnsxqqBmn = FooFh()U AroBFDy (SsBj$sxqqBmn Fn SnsxqqBm) { xA (xnnBm(SnsxqqBm[QplrmUCBuBmBQplrmU])) { DrsmxslBU } SnsxqqBm2FtB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-]+@nxQTPMGU, QTPMGUQTPMGU, SnsxqqBm[QplrmUsFtBQplrmU])U xA (SnsxqqBm2FtB == QplrmUQplrmU) { DrsmxslBU } xA (nmoqrn(SnsxqqBm2FtB, QplrmUqFqBomBtquFmBQplrmU) === P) { DrsmxslBU } SnsxqqBmdrsmBsmn = moxt(nmoxqnuFnyBn(SnsxqqBm[QplrmUDrsmBsmnQplrmU]))U xA (VBtqmh(SnsxqqBmdrsmBsmn)) { SnsxqqBmn[SnsxqqBm2FtB] = SnsxqqBmdrsmBsmnU } } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU, SnsxqqBmn)U } qoxkFmB AlsDmxrs CrtFxsn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_CrtFxsnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU])) { oBmlosU } SsBjcrtFxsn = S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU]U SCrtFxsn = FooFh()U AroBFDy (SsBjcrtFxsn Fn SCrtFxs) { xA (xnnBm(SCrtFxs[QplrmUCBuBmBQplrmU])) { DrsmxslBU } SCrtFxs2FtB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-\.\/]+@nxQTPMGU, QTPMGUQTPMGU, SCrtFxs[QplrmUsFtBQplrmU])U xA (SCrtFxs2FtB == QplrmUQplrmU) { DrsmxslBU } SCrtFxs0FzB = @xsmkFu(SnsxqqBm[QplrmUqFzBQplrmU])U } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_CrtFxsnQplrmU, SnsxqqBmn)U } qoxkFmB AlsDmxrs oBCxoBDmn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_oBCxoBDmnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU])) { oBmlosU } SsBj	BCxoBDmn = S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU]U AroBFDy (SsBj	BCxoBDmn Fn SoBCxoBDm7c =QzmU SsBj	BCxoBDm) { SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U xA (xnnBm(SsBj	BCxoBDm[QplrmUCBuBmBQplrmU])) { Smyxn-QzmUtrCBu-QzmUoBtrkB	BCxoBDm(SoBCxoBDm7c)U DrsmxslBU } xA (VxnnBm(SsBj	BCxoBDm[QplrmUsFtBQplrmU]) || VxnnBm(SsBj	BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])) { DrsmxslBU } xA (xnnBm(SsBj	BCxoBDm[QplrmUoBnBmQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, QplrmUQplrmU, mxtB()-HJLPP, QplrmU/QplrmU)U Smyxn-QzmUtrCBu-QzmUoBnBm#oFDvxsz(SoBCxoBDm7c)U DrsmxslBU } xA (SoBCxoBDm7c == P) { Smyxn-QzmUtrCBu-QzmUFCC	BCxoBDm(SsBj	BCxoBDm[QplrmUsFtBQplrmU], SsBj	BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])U DrsmxslBU } xA (SsBj	BCxoBDm[QplrmUsFtBQplrmU] V= SsBj	BCxoBDm[QplrmUsFtB_roxzxsFuQplrmU] || SsBj	BCxoBDm[QplrmUCBnmxsFmxrsQplrmU] V= SsBj	BCxoBDm[QplrmUCBnmxsFmxrs_roxzxsFuQplrmU]) { Smyxn-QzmUtrCBu-QzmUlqCFmB	BCxoBDm(SoBCxoBDm7c, SsBj	BCxoBDm[QplrmUsFtBQplrmU], SsBj	BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])U } } } qoxkFmB AlsDmxrs rqmxrsn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmBQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU]) QFtqUQFtqU VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])) { oBmlosU } SnBmmxszn = Smyxn-QzmUnBmmxsz()U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU])) { SnBmmxszn[QplrmUoBFusFtBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_oBFusFtBQplrmU]U SnBmmxszn[QplrmUElnxsBnnsFtBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU]U SnBmmxszn[QplrmUDrsmFDmBtFxuQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_BtFxuQplrmU]U SnBmmxszn[QplrmUFCCoBnnQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_FCCoBnnQplrmU]U SnBmmxszn[QplrmUqyrsBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_qyrsBQplrmU]U SnBmmxszn[QplrmUDrlsmohQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_DrlsmohQplrmU]U SnBmmxszn[QplrmUnlqqromQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_nlqqromQplrmU]U SnBmmxszn[QplrmUFAAxuxFmBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_FAAxuxFmBQplrmU]U SnBmmxszn[QplrmUtBtEBonQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBtEBonQplrmU]U SnBmmxszn[QplrmUtBslQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBslQplrmU]U SnBmmxszn[QplrmUtBsl_yBFCBoQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBsl_yBFCBoQplrmU]U SnjxqByBFCuxsB = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_njxqByBFCuxsBQplrmU])U SnjxqByBFCuxsB = BiqurCB(QplrmU\sQplrmU, SnjxqByBFCuxsB)U SnjxqByBFCuxsB = FooFh_tFq(QplrmUmoxtQplrmU, SnjxqByBFCuxsB)U SnjxqByBFCuxsB = FooFh_AxumBo(SnjxqByBFCuxsB, QplrmUnmouBsQplrmU)U SnjxqByBFCuxsB = xtqurCB(QplrmU\sQplrmU, SnjxqByBFCuxsB)U SnBmmxszn[QplrmUnjxqByBFCuxsBQplrmU] = SnjxqByBFCuxsBU } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU])) { SnBmmxszn[QplrmUAorsmQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU]U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_srmArlsCQplrmU])) { SnBmmxszn[QplrmUqFqBomBtquFmB_srmArlsCQplrmU] = @xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_srmArlsCQplrmU])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU])) { SnBmmxszn[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU]) QFtqUQFtqU xn_sltBoxD(SnBmmxszn[QplrmUAorsmQplrmU])) { xA (SnBmmxszn[QplrmUAorsmQplrmU] == P) { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqrnmnQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, P)U } BunB { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqFzBQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, SnBmmxszn[QplrmUAorsmQplrmU])U } } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU])) { SnBmmxszn[QplrmUDnnQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU])U SnBmmxszn[QplrmUDnn_trExuBQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU])U SnBmmxszn[QplrmUDnn_mFEuBmQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU])U SnBmmxszn[QplrmUArrmBoQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_ArrmBoQplrmU])U SnBmmxszn[QplrmUyBFCBoQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_yBFCBoQplrmU])U } Smyxn-QzmUnBmmxsz(sluu, SnBmmxszn)U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])) { SqFzB7cn = FooFh_vBhn(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])U AroBFDy (SqFzB7cn Fn SqFzB7c) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU][SqFzB7c])U lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][SqFzB7c])U lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, S_01$#[QplrmUqFqBomBtquFmB_ArsmQplrmU][SqFzB7c])U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_yxCBQplrmU][SqFzB7c])) { Smyxn-QzmUlsyxCB(SqFzB7c)U } BunB { Smyxn-QzmUyxCB(SqFzB7c)U } } } } qoxkFmB AlsDmxrs sFtB(SnlEmxmuB=QplrmUQplrmU) { xA (CBAxsBC(QplrmU0f0b	#b304f#b_!b	$712QplrmU) QFtqUQFtqU CBAxsBC(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU)) { SoBmlos = DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_2f3bQplrmU) . QplrmU QplrmU . DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU)U } BunB { SoBmlos = QplrmU0FqBo #BtquFmBQplrmUU } xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { SoBmlos .= QplrmU ;umxtFmBQplrmUU } BunBxA (CBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { SoBmlos .= QplrmU biqoBnnQplrmUU } xA (SnlEmxmuB) { oBmlos SoBmlos . QplrmU: QplrmU . SnlEmxmuBU } BunB { oBmlos SoBmlosU } } qoxkFmB AlsDmxrs rqmxrsn_yBFCBo() { Sqm = QplrmUQplrmUU xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-qFzBnQplrmU) { Sqm = QplrmUqFzBnQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU) { Sqm = QplrmUnBmmxsznQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nsxqqBmnQplrmU) { Sqm = QplrmUnsxqqBmnQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-oBCxoBDmnQplrmU) { Sqm = QplrmUoBCxoBDmnQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-CrtFxsnQplrmU) { Sqm = QplrmUCrtFxsnQplrmUU } SoBDBsm0FzBn = zBm_qFzBn(QplrmUnrom_Drults=qrnm_trCxAxBCQFtqUnrom_roCBo=CBnDQFtqUsltEBo=KQFtqUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUqrnm=nmFmln=qlEuxny,qoxkFmB,CoFAmQplrmU)U Snvxq = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, QplrmUjxnyuxnm-tBtEBoQplrmU, QplrmUtBtEBozBsxlnQplrmU)U SoBDBsm = FooFh()U xA (Drlsm(SoBDBsm0FzBn) QzmU P) { Sx = OU AroBFDy (SoBDBsm0FzBn Fn SoBDBsm0FzB) { xA (xs_FooFh(SoBDBsm0FzB-QzmUqrnm_sFtB, Snvxq)) { DrsmxslBU } SoBDBsm[SoBDBsm0FzB-QzmU7c] = SoBDBsm0FzB-QzmUqrnm_mxmuBU } } SsBj0FzBn = FooFh( QplrmUrqmxsqFzBQplrmU =QzmU QplrmU1qmxs 0FzBQplrmU, QplrmUjBExsFoQplrmU =QzmU QplrmU?BExsFo $xzslqQplrmU, QplrmUoBquFhqFzBQplrmU =QzmU QplrmU?BExsFo 	BquFhQplrmU, QplrmUnFuBnqFzBQplrmU =QzmU QplrmU$FuBn 0FzBQplrmU, QplrmUCrjsurFCqFzBQplrmU =QzmU QplrmUcrjsurFC 0FzBQplrmU, QplrmUzxAmqFzBQplrmU =QzmU QplrmU9xAm 0FzBQplrmU )U WQzmUY      QumUyM nmhuB=QplrmUArsm-nxgB:OLqiU tFozxs:PUQplrmUQzmUdoBFmB 8xzy-drskBomxsz $FuBn 4BmmBon, 1qmxs 0FzBn, 1o !xCBr 0FzBn 	xzym ?xmyxs ?roC0oBnn.QumU/yMQzmUYY      QumUCxk xC=QplrmUqFqBomBtquFmB-mFEnQplrmUQzmUY      QumUyN DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmUQplrmU rstrlnBrkBo=QplrmUw&lBoh(QTPMGU.qFqBomBtquFmB-nlEmFEnQTPMGU).yxCB()U w&lBoh(QTPMGUTqFqBomBtquFmB-nlEmFE-qFzBnQTPMGU).nyrj()UQplrmUQzmU4FsCxsz 0FzBnQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnBmmxsznQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-nBmmxsznQplrmUQzmU$xmB $BmmxsznQumU/FQzmUYY         QumUWqyq xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)): WQzmUY            QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnsxqqBmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-nsxqqBmnQplrmUQzmU$sxqqBmnQumU/FQzmUY            QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUoBCxoBDmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-oBCxoBDmnQplrmUQzmU	BCxoBDmnQumU/FQzmUY         QumUWqyq BsCxAU WQzmUYY         QumUV--Y         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUCrtFxsnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-CrtFxsnQplrmUQzmU0FovBC crtFxsnQumU/FQzmUY         --QzmUYY         QumUF DuFnn=QplrmUsFk-mFEQplrmU yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU rstrlnBrkBo=QplrmUw&lBoh(QTPMGU.qFqBomBtquFmB-nlEmFEnQTPMGU).yxCB()U w&lBoh(QTPMGUTqFqBomBtquFmB-nlEmFE-sBjQTPMGU).nyrj()UQplrmUQzmU2Bj 4FsCxsz 0FzBQumU/FQzmUY      QumU/yNQzmUYY      QumUWqyq xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)): WQzmUY      QumUlu DuFnn=QplrmUnlEnlEnlE qFqBomBtquFmB-nlEmFEnQplrmU xC=QplrmUqFqBomBtquFmB-nlEmFE-qFzBnQplrmU nmhuB=QplrmUAurFm:srsB VxtqromFsmU tFozxs-uBAm:NPqiU CxnquFh:QumUWqyq BDyr (Sqm == QplrmUqFzBnQplrmU || Sqm == QplrmUQplrmU) W QTPMGUEurDvQTPMGU : QTPMGUsrsBQTPMGUU WQzmUUQplrmUQzmUY      QumUWqyq AroBFDy (SoBDBsm Fn SoBDBsm0FzB =QzmU SoBDBsm#xmuB): WQzmUY         QumUux DuFnn=QplrmUFDmxkBQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_qrnm_uxsv(SoBDBsm0FzB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm#xmuB)U WQzmUQumU/FQzmU QumUWqyq xA (SoBDBsm#xmuB V= BsC(SoBDBsm)): WQzmU |QumUWqyq BsCxAU WQzmUQumU/uxQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/luQzmUYY      QumUlu DuFnn=QplrmUnlEnlEnlE qFqBomBtquFmB-nlEmFEnQplrmU xC=QplrmUqFqBomBtquFmB-nlEmFE-sBjQplrmU nmhuB=QplrmUAurFm:srsB VxtqromFsmU tFozxs-uBAm:NPqiU CxnquFh:QumUWqyq BDyr (Sqm == QplrmUsBjQplrmU) W QTPMGUEurDvQTPMGU : QTPMGUsrsBQTPMGUU WQzmUUQplrmUQzmUY      QumUWqyq AroBFDy (SsBj0FzBn Fn SsBj0FzB =QzmU SsBj#xmuB): WQzmUY         QumUux DuFnn=QplrmUFDmxkBQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=QplrmU.SsBj0FzB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SsBj#xmuB)U WQzmUQumU/FQzmU QumUWqyq xA (SsBj#xmuB V= BsC(SsBj0FzBn)): WQzmU |QumUWqyq BsCxAU WQzmUQumU/uxQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumUWqyq BsCxAU WQzmUY      QumU/luQzmUY      QumU/CxkQzmUYY      QumUqQzmUQumUxQzmU#r EBzxs, DyrrnB F qFzB mr BCxm EBurj ro QumUF yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQplrmUQzmUDoBFmB F sBj qFzBQumU/FQzmU DFuuBC QFtqUplrmU$FuBn 4BmmBoQFtqUplrmU ... lsCBo myB qrnm xmnBuA hrl jxuu nBB F Eri DFuuBC QFtqUplrmU0FqBo #BtquFmBQFtqUplrmU jyBoB hrl DFs DyrrnB jyxDy mBtquFmB mr lnB.QumUEo /QzmU Y      #yBs 0lEuxny myFm qFzB FsC hrl yFkB F qFqBo-mBtquFmB BsFEuBC nFuBn uBmmBo.QumU/xQzmUQumU/qQzmUYY      QumUWqyqY } qoxkFmB AlsDmxrs Fuuarsmn() { SArsm$moxsz = QplrmUQplrmUU SArsm4xnm = FooFh()U SElxum7s = FooFh(QplrmU#FyrtFQplrmU, QplrmU!BoCFsFQplrmU)U AroBFDy (Smyxn-QzmUArsmn Fn SqFzBArsm =QzmU SErChArsm) { xA (xs_FooFh(SqFzBArsm, SElxum7s) || xs_FooFh(SErChArsm, SElxum7s)) { DrsmxslBU } SArsm4xnm[] = SqFzBArsmU SArsm4xnm[] = SErChArsmU } SArsm4xnm = FooFh_kFulBn(FooFh_lsxplB(SArsm4xnm))U AroBFDy (SArsm4xnm Fn SArsm) { xA (SArsm == QplrmU	rErmr drsCBsnBCQplrmU) { SArsm$moxsz .= SArsm.QTPMGU:MPP,LPP|QTPMGUU } BunB { SArsm$moxsz .= SArsm.QTPMGU:LPP,IPP|QTPMGUU } } oBmlos SArsm$moxszU } qoxkFmB AlsDmxrs zBm_qFzBn(SplBoh=QplrmUqrnm_nmFmln=qlEuxny,CoFAm,moFnyQplrmU) { qFonB_nmo(SplBoh, SFozn)U SmyB0FzBn = zBm_qFzBn(SplBoh)U SqFzBn = FooFh()U AroBFDy (SmyB0FzBn Fn SmyB0FzB) { SxC = SmyB0FzB-QzmU7cU Snulz = SmyB0FzB-QzmUqrnm_sFtBU SmxmuB = SmyB0FzB-QzmUqrnm_mxmuBU SqFoBsm = SmyB0FzB-QzmUqrnm_qFoBsmU SnmFmln = SmyB0FzB-QzmUqrnm_nmFmlnU SxmBt = FooFh(QplrmUmxmuBQplrmU =QzmU SmxmuB, QplrmUqFoBsmQplrmU =QzmU SqFoBsm, QplrmUnulzQplrmU =QzmU Snulz, QplrmUnmFmlnQplrmU =QzmU SnmFmln)U xA (Snulz == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } BunBxA (Snulz == QplrmUtBtEBozBsxlnQplrmU || Snulz == QplrmUtBtEBo-zBsxlnQplrmU) { DrsmxslBU } BunBxA (xnnBm(SFozn[QplrmUuBzFuQplrmU]) QFtqUQFtqU VSFozn[QplrmUuBzFuQplrmU] QFtqUQFtqU xs_FooFh(Snulz, Smyxn-QzmUuBzFu$ulzn)) { DrsmxslBU } xA (SmyB0FzB-QzmUqrnm_nmFmln == QplrmUqlEuxnyQplrmU || SmyB0FzB-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU) { SqFzBn[SxC] = SxmBtU } } oBmlos SqFzBnU } qlEuxD AlsDmxrs qFzBn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } zurEFu SqFqBomBtquFmB_BtFxuU zurEFu SqFqBomBtquFmB_vBhU SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2	b97$#b	bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { jq_CxB( __(Dyo(HG).QTPMGUrl Cr srm yFkB nlAAxDxBsm qBotxnnxrsn mr FDDBnn myxn qFzB.QTPMGU) )U } jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn()))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU)U SEFnB;	4 = QplrmUFCtxs.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFqBomBtquFmB_oBDrkBoQplrmU])) { Smyxn-QzmUDoBFmB_qFzBn(S_9b#[QplrmUqFqBomBtquFmB_oBDrkBoQplrmU])U } SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU =QzmU QplrmUdrqhoxzymQplrmU, QplrmUCxnDuFxtBoQplrmU =QzmU QplrmUcxnDuFxtBoQplrmU, QplrmUBFosxsznQplrmU =QzmU QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU =QzmU QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU =QzmU QplrmU#Botn QFtqU drsCxmxrsnQplrmU)U SuBzFu = FooFh()U SqFzBn = Smyxn-QzmUzBm_qFzBn(QplrmUqrnm_nmFmln=qlEuxny,CoFAm,moFny,qoxkFmBQplrmU)U AroBFDy (SqFzBn Fn SxC =QzmU SxmBt) { Snulz = SxmBt[QplrmUnulzQplrmU]U xA (xnnBm(SuBzFu$ulzn[Snulz])) { SuBzFu[SxC] = SxmBtU lsnBm(SuBzFu$ulzn[Snulz])U lsnBm(SqFzBn[SxC])U } } AroBFDy (SuBzFu$ulzn Fn SuBzFu$ulz =QzmU SuBzFu#xmuB) { SuBzFu[SuBzFu$ulz] = FooFh(QplrmUmxmuBQplrmU =QzmU SuBzFu#xmuB, QplrmUqFoBsmQplrmU =QzmU P, QplrmUnulzQplrmU =QzmU SuBzFu$ulz, QplrmUnmFmlnQplrmU =QzmU QplrmUtxnnxszQplrmU)U } SmyBtBn = Smyxn-QzmUmyBtBn(AFunB)U WQzmUYY      QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY      QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU4FsCxsz 0FzBnQplrmU)U WQzmUQumU/yNQzmUYY      QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY      QumUmFEuB DBuuqFCCxsz=QplrmUOPQplrmUQzmUY      QumUmoQzmUY      QumUmC kFuxzs=QplrmUmrqQplrmUQzmUYY      QumUyMQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FzBnQumU/yMQzmUYY      QumUWqyq xA (Drlsm(SqFzBn) == P): WQzmUY      QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl yFkBsQTPMGUm DoBFmBC Fsh qFzBn hBm. QumUF yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=nFuBnqFzBQplrmUQzmUdoBFmB F sBj uFsCxsz qFzBQumU/FQzmU FsC hrlQTPMGUuu nBB xm uxnmBC yBoB.QumU/qQzmUYY      QumUWqyq BunB: WQzmUY      QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUtxs-jxCmy:JPPqiUQplrmUQzmUY      QumUmoQzmUY         QumUmyQzmU0FzB 2FtBQumU/myQzmUY         QumUmyQzmU#BtquFmBQumU/myQzmUY         QumUmyQzmU7sDulCB xsQumUEo /QzmU 2FkxzFmxrsWQumU/myQzmUY      QumU/moQzmUYY      QumUWqyq AroBFDy (SqFzBn Fn SqFzB7c =QzmU SqFzB7sAr): WQzmUY      QumUWqyqY SqFonB4xsv = qFonB_lou(zBm_qBotFuxsv(SqFzB7c))U Snyrom4xsv = SqFonB4xsv[QplrmUqFmyQplrmU]U xA (xnnBm(SqFonB4xsv[QplrmUplBohQplrmU]) QFtqUQFtqU VBtqmh(SqFonB4xsv[QplrmUplBohQplrmU])) { Snyrom4xsv .= QplrmUWQplrmU . SqFonB4xsv[QplrmUplBohQplrmU]U } Snyrom4xsv = omoxt(Snyrom4xsv, QplrmU/QplrmU)U WQzmUY      QumUmoQzmUY         QumUmC DuFnn=QplrmUqFqBomBtquFmB_FCtxs_qFzBQplrmUQzmUY            QumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU])U WQzmUQumU/EQzmU YY            QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUCoFAmQplrmU): WQzmUQumUntFuuQzmUc	fa#QumU/ntFuuQzmUY            QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU): WQzmUQumUntFuuQzmU#	f$8QumU/ntFuuQzmUY            QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUqoxkFmBQplrmU): WQzmUQumUntFuuQzmU0	7!f#bQumU/ntFuuQzmUY            QumUWqyq BsCxAU WQzmUYY            (QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUkxBjQumU/FQzmU | QumUF yoBA=QplrmUqrnm.qyqWqrnm=QumUWqyq BDyr SqFzB7cU WQzmUQFtqUFDmxrs=BCxmQplrmUQzmUBCxmQumU/FQzmU | QumUF rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBuBmB myB QumUWqyq BDyr FCCnuFnyBn(ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU]))U WQzmU qFzBW\s\sduxDv 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_CBuBmB_qrnm_uxsv(SqFzB7c)U WQzmUQplrmUQzmUCBuBmBQumU/FQzmU)QumUEo /QzmUYY            QumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUY            QumUntFuuQzmUY               QumUF nmhuB=QplrmUDruro:TLLLU mBim-CBDroFmxrs:srsBUQplrmU mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUQumUWqyq BDyr Snyrom4xsvU WQzmUQumU/FQzmUY            QumU/ntFuuQzmUY         QumU/mCQzmUYY         QumUmC DuFnn=QplrmUqFqBomBtquFmB_FCtxs_myBtBQplrmUQzmUYRRRQumUWqyq SmBtquFmB = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U WQzmUY            QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_myBtB[QplrmU.SqFzB7c.QplrmU]QplrmU, SmyBtBn, SmBtquFmB, QplrmUqFqBomBtquFmB_myBtB_DyFszB(myxn)UQplrmU)U WQzmUY            QumUWqyq Smyxn-QzmUqFzB_AuFkron(SqFzB7c, SmBtquFmB)U WQzmUY         QumU/mCQzmUYY         QumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCB[QumUWqyq BDyr SqFzB7cU WQzmU]QplrmU QumUWqyq DyBDvBC(Smyxn-QzmUyxCCBs(SqFzB7c, molB))U WQzmU /QzmUQumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/mFEuBQzmUY      QumUWqyq BsCxAU WQzmUYY      QumUyMQzmU4BzFu 0FzBnQumU/yMQzmUYY      QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmUQzmUY      QumUmoQzmUY         QumUmyQzmU0FzB 2FtBQumU/myQzmUY         QumUmyQzmU#BtquFmBQumU/myQzmUY      QumU/moQzmUYY      QumUWqyq Fnrom(SuBzFu)U WQzmUY      QumUWqyq AroBFDy (SuBzFu Fn SqFzB7c =QzmU SqFzB7sAr): WQzmUY      QumUmoQzmUY         QumUmCQzmUQumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU])U WQzmUQumU/EQzmUYY            QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU || SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUtxnnxszQplrmU): WQzmUY            (QumUF yoBA=QplrmUQumUWqyq BDyr SEFnB;	4U WQzmUQFtqUqFqBomBtquFmB_oBDrkBo=QumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUnulzQplrmU])U WQzmUQplrmUQzmUoBDrkBoQumU/FQzmU)Y            QumUWqyq BunB: WQzmUY            (QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUkxBjQumU/FQzmU | QumUF yoBA=QplrmUqrnm.qyqWqrnm=QumUWqyq BDyr SqFzB7cU WQzmUQFtqUFDmxrs=BCxmQplrmUQzmUBCxmQumU/FQzmU | QumUF rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBuBmB myB QumUWqyq BDyr FCCnuFnyBn(ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU]))U WQzmU qFzBW\s\sduxDv 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_CBuBmB_qrnm_uxsv(SqFzB7c, QplrmUQplrmU, molB)U WQzmUQplrmUQzmUCBuBmBQumU/FQzmU)Y            QumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUY            QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU): WQzmUQumUxQzmU#oFnyQumU/xQzmUY            QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUtxnnxszQplrmU): WQzmUQumUxQzmU3xnnxszQumU/xQzmUY            QumUWqyq BunB: WQzmUQumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_myBtB[QplrmU.SqFzB7c.QplrmU]QplrmU, SmyBtBn, zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB))U WQzmUY            QumUWqyq BsCxAU WQzmUY            QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCB[QumUWqyq BDyr SqFzB7cU WQzmU]QplrmU /QzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/mFEuBQzmUYY      QumUmC xC=QplrmUqFqBomBtquFmB_FCQplrmU jxCmy=QplrmULHPQplrmU kFuxzs=QplrmUmrqQplrmU nmhuB=QplrmUqFCCxsz:OPqiUQplrmUQzmUY      QumUxAoFtB  FuurjmoFsnqFoBsDh=QplrmUmolBQplrmU noD=QplrmUymmq://jjj.qFqBomBtquFmB.Drt/FCn/WBtFxu=QumUWqyq BDyr louBsDrCB(SqFqBomBtquFmB_BtFxu)U WQzmUQFtqUkBonxrs=QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_!b	$712QplrmU)U WQzmUQplrmU jxCmy=QplrmULHPQplrmU yBxzym=QplrmUMJPQplrmU AoFtBEroCBo=QplrmUOQplrmU EroCBo=QplrmUOQplrmUQzmUQumU/xAoFtBQzmUY      QumU/mCQzmUYY      QumU/moQzmUY      QumU/mFEuBQzmUYY      QumUqQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY      QumU/qQzmUYY      QumU/CxkQzmUYY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--YR  .qFqBomBtquFmB_FCtxs_qFzB, .qFqBomBtquFmB_FCtxs_myBtB { jyxmB-nqFDB:srjoFqU }Y      .qFqBomBtquFmB_FCtxs_myBtB nBuBDm { Arsm-nxgB:OHqiU yBxzym:MPqiU Arsm-jBxzym:EruCU }YYR  @tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {Y        TqFqBomBtquFmB_FC { CxnquFh:srsBU }Y     }Y      --QzmUY      QumU/nmhuBQzmUY      QumUWqyqY } qlEuxD AlsDmxrs qFzB_AuFkron(SqFzB7c, SmBtquFmB=sluu) { xA (VCBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { oBmlosU } SyxCB = (SmBtquFmB V= QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-qoxtBQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmBQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU)U Sqrnmarsm = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U xA (VSqrnmarsm) { oBnBm(Smyxn-QzmUArsmn)U Sqrnmarsm = vBh(Smyxn-QzmUArsmn)U } Sqrnmdruro = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (VSqrnmdruro) { oBnBm(Smyxn-QzmUDruron)U Sqrnmdruro = vBh(Smyxn-QzmUDruron)U } SDrurocFmF = Smyxn-QzmUDruron[Sqrnmdruro]U WQzmUY      QumUWqyqY SxCBsmxAxBo = DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU).QTPMGU[QTPMGU.SqFzB7c.DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU).QTPMGU]QTPMGUU WQzmUY      QumUnBuBDm nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SyxCB) W QTPMGUsrsBQTPMGU:QTPMGUxsuxsBQTPMGUU WQzmUU Arsm-AFtxuh:QTPMGUQumUWqyq BDyr SqrnmarsmU WQzmUQTPMGUU EFDvzorlsC-Druro:QumUWqyq BDyr SDrurocFmF[P]U WQzmUU Druro:QumUWqyq BDyr Smyxn-QzmUoBFCFEuBdruro(SDrurocFmF[P])U WQzmUU Arsm-jBxzym:EruCU txs-yBxzym:LPqiU jxCmy:FlmrUQplrmU xC=QplrmUqFqBomBtquFmB_DruroQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_DruroQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_DruroQplrmU rsDyFszB=QplrmUkFo DyrnBs = w&lBoh(myxn).AxsC(QTPMGU:nBuBDmBCQTPMGU)U w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmU, TqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).Dnn(QTPMGUEFDvzorlsC-DruroQTPMGU, DyrnBs.CFmF(QTPMGUEFDvzorlsC-kFulBQTPMGU)).Dnn(QTPMGUDruroQTPMGU, DyrnBs.CFmF(QTPMGUmBim-kFulBQTPMGU))UQplrmUQzmUY      QumUWqyq AroBFDy (Smyxn-QzmUDruron Fn SDruro =QzmU SDruro!FulBn): WQzmUY      QumUWqyqY SDruro!Fu = SDruro!FulBn[P]U SmBimdruro = Smyxn-QzmUoBFCFEuBdruro(SDruro!Fu)U WQzmUY      QumUrqmxrs QumUWqyq nBuBDmBC(Sqrnmdruro==SDruro)U WQzmU kFulB=QplrmUQumUWqyq BDyr SDruroU WQzmUQplrmU CFmF-EFDvzorlsC-kFulB=QplrmUQumUWqyq BDyr SDruro!FuU WQzmUQplrmU CFmF-mBim-kFulB=QplrmUQumUWqyq BDyr SmBimdruroU WQzmUQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:QumUWqyq BDyr SDruro!FuU WQzmUU Druro:QumUWqyq BDyr SmBimdruroU WQzmUQplrmUQzmUQumUWqyq BDyr SDruroU WQzmUQumU/rqmxrsQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU kFulB=QplrmUQumUWqyq BDyr SDruroU WQzmUQplrmU /QzmUYY      QumUnBuBDm nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SyxCB) W QTPMGUsrsBQTPMGU:QTPMGUxsuxsBQTPMGUU WQzmUU Arsm-AFtxuh:QTPMGUQumUWqyq BDyr SqrnmarsmU WQzmUQTPMGUU EFDvzorlsC-Druro:QumUWqyq BDyr SDrurocFmF[P]U WQzmUU Druro:QumUWqyq BDyr Smyxn-QzmUoBFCFEuBdruro(SDrurocFmF[P])U WQzmUU Arsm-jBxzym:EruCU txs-yBxzym:LPqiU jxCmy:FlmrUQplrmU xC=QplrmUqFqBomBtquFmB_ArsmQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_ArsmQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_ArsmQplrmU rsDyFszB=QplrmUkFo DyrnBs = w&lBoh(myxn).AxsC(QTPMGU:nBuBDmBCQTPMGU)U w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmU, TqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).Dnn(QTPMGUArsm-AFtxuhQTPMGU, DyrnBs.kFu())U kFo qFqBomBtquFmB_oBAoBnyUQplrmUQzmUY      QumUWqyq AroBFDy (FooFh_vBhn(Smyxn-QzmUArsmn) Fn SArsm): WQzmUY         QumUrqmxrs QumUWqyq nBuBDmBC(Sqrnmarsm==SArsm)U WQzmU kFulB=QplrmUQumUWqyq BDyr SArsmU WQzmUQplrmU nmhuB=QplrmUArsm-AFtxuh:QTPMGUQumUWqyq BDyr SArsmU WQzmUQTPMGUU Arsm-jBxzym:EruCU QplrmUQzmUQumUWqyq BDyr SArsmU WQzmUQumU/rqmxrsQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU kFulB=QplrmUQumUWqyq BDyr SArsmU WQzmUQplrmU /QzmUY      QumUWqyqY } qlEuxD AlsDmxrs zBm_nsxqqBmn() { SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (Vxn_FooFh(SnsxqqBmn)) { SnsxqqBmn = FooFh()U } oBmlos SnsxqqBmnU } qlEuxD AlsDmxrs zBm_CrtFxsn() { SCrtFxsn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_CrtFxsnQplrmU)U xA (Vxn_FooFh(SCrtFxsn)) { SCrtFxsn = FooFh()U } oBmlos SCrtFxsnU } qlEuxD AlsDmxrs CrtFxsn() { oBmlosU xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SqFonB = qFonB_lou(nxmB_lou())U SqFzBn = Smyxn-QzmUzBm_qFzBn(QplrmUuBzFu=PQplrmU)U SCrtFxsn = Smyxn-QzmUzBm_CrtFxsn()U WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY      QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU0FovBC crtFxsnQplrmU)U WQzmUQumU/yNQzmUY      QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY      Y      QumUqQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.CrlEuBFzBsmCrtFxsn.DrtQplrmUQzmU	BzxnmBo F CrtFxs sFtBQumU/FQzmU, qrxsm myB sFtBnBokBon mr hrlo jBEyrnm, FsC qFov myB CrtFxs sFtB rsmr hrlo jBEnxmB QumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFonB[QplrmUyrnmQplrmU])U WQzmUQumU/EQzmU.QumUEo /QzmU      Y      #yBs FCC mhqB xs myB qFovBC CrtFxs sFtB yBoB FsC FmmFDy xm mr Fs Bixnmxsz 0FqBo #BtquFmB qFzB.QumU/qQzmUY      QumU/CxkQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_CrtFxsnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY      QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUjxCmy:JPPqiUQplrmUQzmUY      QumUmoQzmUY         QumUmyQzmUQFtqUsEnqUQumU/myQzmUY         QumUmyQzmUcrtFxs 2FtBQumU/myQzmUY         QumUmyQzmUfmmFDyBC 0FzBQumU/myQzmUY      QumU/moQzmUYY      QumUWqyq AroBFDy (SCrtFxsn Fn SCrtFxs2FtB =QzmU SCrtFxs0FzB): WQzmUY      QumUmoQzmUY         QumUmCQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs_CBuBmB[QumUWqyq BDyr @xsmkFu(SCrtFxs2FtB)U WQzmU]QplrmU /QzmUQumU/mCQzmUY         QumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs[QumUWqyq BDyr @xsmkFu(SCrtFxs7C)U WQzmU]QplrmU kFulB=QplrmUQplrmU quFDByruCBo=QplrmUjjj.BiFtquB.DrtQplrmU /QzmUQumU/mCQzmUY         QumUmCQzmUY         QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_CrtFxs_qFzB[QumUWqyq BDyr @xsmkFu(SCrtFxs7C)U WQzmU]QplrmUQzmUY         QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB): WQzmUY         QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr @xsmkFu(SqFzB7C)U WQzmUQplrmU QumUWqyq nBuBDmBC(@xsmkFu(SqFzB7C)==@xsmkFu(SCrtFxs0FzB))U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB[QplrmUmxmuBQplrmU])U WQzmUQumU/rqmxrsQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/nBuBDmQzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUYY      QumUmoQzmUY         QumUmCQzmUQFtqUsEnqUQumU/mCQzmUY         QumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs[sBj]QplrmU kFulB=QplrmUQplrmU quFDByruCBo=QplrmUjjj.BiFtquB.DrtQplrmU /QzmUQumU/mCQzmUY         QumUmCQzmUY         QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_CrtFxs_qFzB[sBj]QplrmUQzmUY         QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB): WQzmUY         QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr @xsmkFu(SqFzB7C)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB[QplrmUmxmuBQplrmU])U WQzmUQumU/rqmxrsQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/nBuBDmQzmUY         QumU/mCQzmUY      QumU/moQzmUYY      QumU/mFEuBQzmUYY      QumUqQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY      QumU/qQzmUYY      QumU/ArotQzmUY      QumUWqyqY } qlEuxD AlsDmxrs nsxqqBmn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SnsxqqBmn = Smyxn-QzmUzBm_nsxqqBmn()U xA (Vxn_FooFh(SnsxqqBmn)) { SnsxqqBmn = FooFh()U } Sx=OU jyxuB (xnnBm(SnsxqqBmn[QplrmUnsxqqBmQplrmU.Sx])) { Sx++U } SnsxqqBmn[QplrmUnsxqqBmQplrmU.Sx] = QplrmUQplrmUU WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY      QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU$sxqqBmnQplrmU)U WQzmUQumU/yNQzmUYY      QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY      QumUqQzmUdoBFmB [nsxqqBmn] ro [nyromDrCBn] rA 8#34 Aro lnB rkBo FsC rkBo FDornn hrlo nxmB.QumUEo /QzmU Y      aro BiFtquB, hrl DrluC qFnmB myB 8#34 DrCB Aro F nqBDxFu qFhtBsm Elmmrs FsC uFEBu xm QumUDrCBQzmU[OGIqFh]QumU/DrCBQzmU FsC oB-lnB myFm QumUDrCBQzmU[OGIqFh]QumU/DrCBQzmU mBim xs tFsh qFzBn xs hrlo nxmB.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_nsxqqBmnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY      QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUmoQzmUY         QumUmyQzmU$sxqqBm #xmuBQumU/myQzmUY         QumUmyQzmU$sxqqBm drsmBsmnQumU/myQzmUY      QumU/moQzmUYY      QumUWqyq Sx = PU AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn): WQzmUY      QumUmoQzmUY         QumUmC jxCmy=QplrmUNPPQplrmUQzmUY            QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][CBuBmB]QplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_nsxqqBmQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU]QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU[DrsmBsmnQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU]QTPMGU).qorq(QTPMGUCxnFEuBCQTPMGU, myxn.DyBDvBC)UQplrmU /QzmUY            QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUNKQplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][sFtB]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY            QumUntFuuQzmU$yromDrCB: [QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU]QumU/ntFuuQzmUY         QumU/mCQzmUY         QumUmC jxCmy=QplrmUJPPQplrmUQzmUQumUmBimFoBF DuFnn=QplrmUqFqBomBtquFmB_nsxqqBm_DrsmBsmnQplrmU DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:OPP%UQplrmU xC=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][DrsmBsmn]QplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][DrsmBsmn]QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBmdrsmBsmn)U WQzmUQumU/mBimFoBFQzmUQumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU Sx++U WQzmUYY      QumU/mFEuBQzmUYY      QumUqQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY      QumU/qQzmUY      QumU/ArotQzmUYY      QumU/CxkQzmUY      QumUW } qlEuxD AlsDmxrs oBCxoBDm() { xA (VAlsDmxrs_Bixnmn(QplrmUxn_LPLQplrmU)) { oBmlosU } xA (Vxn_LPL()) { oBmlosU } SqFonB = qFonB_lou(S_$b	!b	[QplrmU	b&;b$#_;	7QplrmU])U SqFmy = SqFonB[QplrmUqFmyQplrmU]U SqFmy = omoxt(SqFmy, QTPMGU/QTPMGU)U SqFmy = umoxt(SqFmy, QTPMGU/QTPMGU)U SqFmy = EFnBsFtB(SqFmy)U xA (SoBCxoBDm = Smyxn-QzmUtrCBu-QzmUzBm	BCxoBDm(SqFmy)) { SurDFmxrs = SoBCxoBDm-QzmUoBCxoBDm_louU Smyxn-QzmUtrCBu-QzmUxsDoBtBsm#oFDvxsz(SoBCxoBDm-QzmU7c, Smyxn-QzmUtrCBu-QzmUlqCFmB;sxplBdrrvxBn(SqFmy))U yBFCBo(QplrmU4rDFmxrs:QplrmU.SurDFmxrs)U CxB()U } } qlEuxD AlsDmxrs oBCxoBDmn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SoBCxoBDmn = Smyxn-QzmUtrCBu-QzmUzBm	BCxoBDmn()U xA (Vxn_FooFh(SoBCxoBDmn)) { SoBCxoBDmn = FooFh()U } Sx=OU jyxuB (xnnBm(SoBCxoBDmn[QplrmUoBCxoBDmQplrmU.Sx])) { Sx++U } SoBCxoBDmn[QplrmUoBCxoBDmQplrmU.Sx] = QplrmUQplrmUU WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY      QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU	BCxoBDmnQplrmU)U WQzmUQumU/yNQzmUYY      QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY      QumUqQzmUdurFv hrlo uxsvn ro nBsC kxnxmron rlmnxCB hrlo jBEnxmB.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_oBCxoBDmnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmUQzmUY      QumUmoQzmUY         QumUmyQzmU	BCxoBDm 2FtBQumU/myQzmUY         QumUmyQzmU	BCxoBDm cBnmxsFmxrsQumU/myQzmUY         QumUmy Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmUQzmUQumUsrEoQzmU	Fj duxDvnQumU/srEoQzmUQumU/myQzmUY         QumUmy Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmUQzmUQumUsrEoQzmU;sxplB duxDvnQumU/srEoQzmUQumU/myQzmUY         QumUmy jxCmy=QplrmUOPPQplrmUQzmUQFtqUsEnqUQumU/myQzmUY      QumU/moQzmUYY      QumUWqyq Sx = PU SmFE = PU AroBFDy (SoBCxoBDmn Fn SoBCxoBDm): WQzmUY      QumUWqyqY SoBCxoBDm7c = PU xA (xnnBm(SoBCxoBDm-QzmU7c)) { SoBCxoBDm7c = @xsmkFu(SoBCxoBDm-QzmU7c)U } SoBCxoBDm2FtB = (xnnBm(SoBCxoBDm-QzmUoBCxoBDm_qFmy)) W SoBCxoBDm-QzmUoBCxoBDm_qFmy : sluuU SoBCxoBDmcBnmxsFmxrs = (xnnBm(SoBCxoBDm-QzmUoBCxoBDm_lou)) W SoBCxoBDm-QzmUoBCxoBDm_lou : sluuU Suxsv = yrtB_lou(QplrmU/QplrmU.SoBCxoBDm2FtB)U WQzmUY      QumUmoQzmUY         QumUmC jxCmy=QplrmULPPQplrmUQzmUY            QumUsrEoQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmU][CBuBmB]QplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_oBCxoBDmQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU]QumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU[DrsmBsmnQumUWqyq BDyr DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU)U WQzmU]QTPMGU).qorq(QTPMGUCxnFEuBCQTPMGU, myxn.DyBDvBC)UQplrmU /QzmUY            QumUDrCBQzmUQumUWqyq BDyr moFxuxsznuFnyxm(yrtB_lou())U WQzmUQumU/DrCBQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU mFExsCBi=QplrmUQumUWqyq BDyr ++SmFEU WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUOKQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][sFtB]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDm2FtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY            QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][sFtB_roxzxsFu]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDm2FtB)U WQzmUQplrmU /QzmUYY            QumUWqyq xA (SoBCxoBDm2FtB): WQzmUQumUntFuuQzmUcxoBDm 4xsv: QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUWqyq BDyr SuxsvU WQzmUQumU/FQzmUQumU/ntFuuQzmUQumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY         QumUmCQzmUY            QumUmBimFoBF mFExsCBi=QplrmUQumUWqyq BDyr ++SmFEU WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:OPP%UQplrmU xC=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][DrsmBsmn]QplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][CBnmxsFmxrs]QplrmU rsvBhqoBnn=QplrmUoBmlos qFqBomBtquFmB_vBhqoBnn(BkBsm, myxn)UQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDmcBnmxsFmxrs)U WQzmUQumU/mBimFoBFQzmUY            QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmU][CBnmxsFmxrs_roxzxsFu]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDmcBnmxsFmxrs)U WQzmUQplrmU /QzmUY         QumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmU nmhuB=QplrmUqFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqiUQplrmUQzmUQumUWqyq BDyr @xsmkFu(SoBCxoBDm-QzmUmoFDvxsz_yxmn)U WQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmU nmhuB=QplrmUqFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqiUQplrmUQzmUQumUWqyq BDyr @xsmkFu(SoBCxoBDm-QzmUmoFDvxsz_lsxplBn)U WQzmUQumU/mCQzmUY         QumUmC jxCmy=QplrmUOPPQplrmUQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][oBnBm]QplrmU kFulB=QplrmU	BnBm $mFmnQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr oBnBm myB DuxDvn Aro QumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmU EFDv mr gBorWQTPMGU)UQplrmU /QzmUQumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU Sx++U WQzmUYY      QumU/mFEuBQzmUYY      QumUqQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY      QumU/qQzmUY      QumU/ArotQzmUYY      QumU/CxkQzmUYY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      AlsDmxrs qFqBomBtquFmB_vBhqoBnn(B, DFuuBo) {Y         kFo DrCB = (B.vBhdrCB W B.vBhdrCB : B.jyxDy)UY         xA (DrCB == OM) { DFuuBo.Eulo()U DFuuBo.Arot.nlEtxm()U oBmlos AFunBU }Y         xA (DrCB == MN || DrCB == G) { oBmlos AFunBU } // Cr srm Fuurj nqFDB ro mFEY         oBmlos molBUY      }Y      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs rqmxrsn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2	b97$#b	bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUtFsFzB_rqmxrsnQTPMGU)) { jq_CxB( __(Dyo(HG).QTPMGUrl Cr srm yFkB nlAAxDxBsm qBotxnnxrsn mr FDDBnn myxn qFzB.QTPMGU) )U } StBsl = Smyxn-QzmUnBmmxsz(QplrmUtBslQplrmU)U StBsl_yBFCBo = Smyxn-QzmUnBmmxsz(QplrmUtBsl_yBFCBoQplrmU)U xA (VStBsl_yBFCBo) { StBsl_yBFCBo = QplrmUyxCCBsQplrmUU } StBsln = FooFh( QplrmUuBzFuQplrmU =QzmU QplrmU4BzFu 0FzBnQplrmU, )U xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { SsFk3Bsln = zBm_mBotn(QTPMGUsFk_tBslQTPMGU)U AroBFDy(SsFk3Bsln Fn SsFk3Bsl){ SvBh = SsFk3Bsl-QzmUsFtBU SkFulB = QplrmU3b2;: QplrmU . SsFk3Bsl-QzmUsFtBU StBsln[SvBh] = SkFulBU } SmBotn = zBm_mBotn(FooFh(QplrmUuxsv_DFmBzrohQplrmU), FooFh(QplrmUyxCB_BtqmhQplrmU =QzmU AFunB))U SuxsvdFmBzroxBn = zBm_mBotn(QTPMGUuxsv_DFmBzrohQTPMGU)U AroBFDy(SuxsvdFmBzroxBn Fn SuxsvdFmBzroh){ SvBh = SuxsvdFmBzroh-QzmUsFtBU SkFulB = QplrmU4725$: QplrmU . SuxsvdFmBzroh-QzmUsFtB . QplrmU (QplrmU.SuxsvdFmBzroh-QzmUDrlsm.QplrmU)QplrmUU StBsln[SuxsvdFmBzroh-QzmUmBot_xC] = SkFulBU } } StBsln[QplrmUyxCCBsQplrmU] = QplrmU8xCCBs / cxnFEuBCQplrmUU SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU)U SmyB0FzBn = zBm_qFzBn()U SqFzBn = FooFh()U AroBFDy (SmyB0FzBn Fn SmyB0FzB) { SxC = SmyB0FzB-QzmU7cU SmxmuB = SmyB0FzB-QzmUqrnm_mxmuBU xA (SmyB0FzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SmyB0FzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (xs_FooFh(SmyB0FzB-QzmUqrnm_sFtB, SuBzFu$ulzn)) { DrsmxslBU } SqFzBn[SxC] = SmxmuBU } SAorsm = PU xA (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) { SAorsm = xsmkFu(zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU))U } SsrmArlsC = @xsmkFu(Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsCQplrmU))U SsrmArlsC_lou = Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU)U SDrlsmoxBn = FooFh(QplrmU;sxmBC $mFmBnQplrmU, QplrmU;sxmBC 5xszCrtQplrmU, QplrmUfAzyFsxnmFsQplrmU, QplrmUfuEFsxFQplrmU, QplrmUfuzBoxFQplrmU, QplrmUfsCrooFQplrmU, QplrmUfszruFQplrmU, QplrmUfsmxzlF QFtqU cBqnQplrmU, QplrmUfozBsmxsFQplrmU, QplrmUfotBsxFQplrmU, QplrmUflnmoFuxFQplrmU, QplrmUflnmoxFQplrmU, QplrmUfgBoEFxwFsQplrmU, QplrmUeFyFtFnQplrmU, QplrmUeFyoFxsQplrmU, QplrmUeFszuFCBnyQplrmU, QplrmUeFoEFCrnQplrmU, QplrmUeBuFolnQplrmU, QplrmUeBuzxltQplrmU, QplrmUeBuxgBQplrmU, QplrmUeBsxsQplrmU, QplrmUeylmFsQplrmU, QplrmUeruxkxFQplrmU, QplrmUernsxF 8BogBzrkxsFQplrmU, QplrmUermnjFsFQplrmU, QplrmUeoFgxuQplrmU, QplrmUeolsBxQplrmU, QplrmUeluzFoxFQplrmU, QplrmUelovxsFQplrmU, QplrmUelolsCxQplrmU, QplrmUdFtErCxFQplrmU, QplrmUdFtBorrsQplrmU, QplrmUdFsFCFQplrmU, QplrmUdFqB !BoCBQplrmU, QplrmUdBsmoFu fAoxDFs 	BqQplrmU, QplrmUdyFCQplrmU, QplrmUdyxuBQplrmU, QplrmUdyxsFQplrmU, QplrmUdrurtExFQplrmU, QplrmUdrtrornQplrmU, QplrmUdrszrQplrmU, QplrmUdrnmF 	xDFQplrmU, QplrmUdorFmxFQplrmU, QplrmUdlEFQplrmU, QplrmUdhqolnQplrmU, QplrmUdgBDy 	BqlEuxDQplrmU, QplrmUcBstFovQplrmU, QplrmUcwxErlmxQplrmU, QplrmUcrtxsxDFQplrmU, QplrmUcrtxsxDFs 	BqlEuxDQplrmU, QplrmUbFnm #xtroQplrmU, QplrmUbDlFCroQplrmU, QplrmUbzhqmQplrmU, QplrmUbu $FukFCroQplrmU, QplrmUbplFmroxFu 9lxsBFQplrmU, QplrmUboxmoBFQplrmU, QplrmUbnmrsxFQplrmU, QplrmUbmyxrqxFQplrmU, QplrmUaxwxQplrmU, QplrmUaxsuFsCQplrmU, QplrmUaoFsDBQplrmU, QplrmU9FErsQplrmU, QplrmU9FtExFQplrmU, QplrmU9BrozxFQplrmU, QplrmU9BotFshQplrmU, QplrmU9yFsFQplrmU, QplrmU9oBBDBQplrmU, QplrmU9oBsFCFQplrmU, QplrmU9lFmBtFuFQplrmU, QplrmU9lxsBFQplrmU, QplrmU9lxsBF-exnnFlQplrmU, QplrmU9lhFsFQplrmU, QplrmU8FxmxQplrmU, QplrmU8rsCloFnQplrmU, QplrmU8lszFohQplrmU, QplrmU7DBuFsCQplrmU, QplrmU7sCxFQplrmU, QplrmU7sCrsBnxFQplrmU, QplrmU7oFsQplrmU, QplrmU7oFpQplrmU, QplrmU7oBuFsCQplrmU, QplrmU7noFBuQplrmU, QplrmU7mFuhQplrmU, QplrmU7kroh drFnmQplrmU, QplrmU6FtFxDFQplrmU, QplrmU6FqFsQplrmU, QplrmU6roCFsQplrmU, QplrmU5FgFvynmFsQplrmU, QplrmU5BshFQplrmU, QplrmU5xoxEFmxQplrmU, QplrmU5roBF 2romyQplrmU, QplrmU5roBF $rlmyQplrmU, QplrmU5rnrkrQplrmU, QplrmU5ljFxmQplrmU, QplrmU5hozhgnmFsQplrmU, QplrmU4FrnQplrmU, QplrmU4FmkxFQplrmU, QplrmU4BEFsrsQplrmU, QplrmU4BnrmyrQplrmU, QplrmU4xEBoxFQplrmU, QplrmU4xEhFQplrmU, QplrmU4xBDymBsnmBxsQplrmU, QplrmU4xmylFsxFQplrmU, QplrmU4liBtErlozQplrmU, QplrmU3FDBCrsxFQplrmU, QplrmU3FCFzFnDFoQplrmU, QplrmU3FuFjxQplrmU, QplrmU3FuFhnxFQplrmU, QplrmU3FuCxkBnQplrmU, QplrmU3FuxQplrmU, QplrmU3FumFQplrmU, QplrmU3FonyFuu 7nuFsCnQplrmU, QplrmU3FloxmFsxFQplrmU, QplrmU3FloxmxlnQplrmU, QplrmU3BixDrQplrmU, QplrmU3xDorsBnxFQplrmU, QplrmU3ruCrkFQplrmU, QplrmU3rsFDrQplrmU, QplrmU3rszruxFQplrmU, QplrmU3rsmBsBzorQplrmU, QplrmU3rorDDrQplrmU, QplrmU3rgFtExplBQplrmU, QplrmU3hFstFoQplrmU, QplrmU2FtxExFQplrmU, QplrmU2FlolQplrmU, QplrmU2BqFuQplrmU, QplrmU2BmyBouFsCnQplrmU, QplrmU2Bj <BFuFsCQplrmU, QplrmU2xDFoFzlFQplrmU, QplrmU2xzBoQplrmU, QplrmU2xzBoxFQplrmU, QplrmU2rojFhQplrmU, QplrmU1tFsQplrmU, QplrmU0FvxnmFsQplrmU, QplrmU0FuFlQplrmU, QplrmU0FsFtFQplrmU, QplrmU0FqlF 2Bj 9lxsBFQplrmU, QplrmU0FoFzlFhQplrmU, QplrmU0BolQplrmU, QplrmU0yxuxqqxsBnQplrmU, QplrmU0ruFsCQplrmU, QplrmU0romlzFuQplrmU, QplrmU&FmFoQplrmU, QplrmU	rtFsxFQplrmU, QplrmU	lnnxFs aBCBoFmxrsQplrmU, QplrmU	jFsCFQplrmU, QplrmU$m 5xmmn QFtqU 2BkxnQplrmU, QplrmU$m 4lDxFQplrmU, QplrmU$Fxsm !xsDBsm QFtqU myB 9oBsFCxsBnQplrmU, QplrmU$FtrFQplrmU, QplrmU$Fs 3FoxsrQplrmU, QplrmU$Fr #rtB QFtqU 0oxsDxqBQplrmU, QplrmU$FlCx foFExFQplrmU, QplrmU$BsBzFuQplrmU, QplrmU$BoExFQplrmU, QplrmU$BhDyBuuBnQplrmU, QplrmU$xBooF 4BrsBQplrmU, QplrmU$xszFqroBQplrmU, QplrmU$urkFvxFQplrmU, QplrmU$urkBsxFQplrmU, QplrmU$rurtrs 7nuFsCnQplrmU, QplrmU$rtFuxFQplrmU, QplrmU$rlmy fAoxDFQplrmU, QplrmU$rlmy $lCFsQplrmU, QplrmU$qFxsQplrmU, QplrmU$ox 4FsvFQplrmU, QplrmU$lCFsQplrmU, QplrmU$loxsFtBQplrmU, QplrmU$jFgxuFsCQplrmU, QplrmU$jBCBsQplrmU, QplrmU$jxmgBouFsCQplrmU, QplrmU$hoxFQplrmU, QplrmU#FxjFsQplrmU, QplrmU#FwxvxnmFsQplrmU, QplrmU#FsgFsxFQplrmU, QplrmU#yFxuFsCQplrmU, QplrmU#rzrQplrmU, QplrmU#rszFQplrmU, QplrmU#oxsxCFC QFtqU #rEFzrQplrmU, QplrmU#lsxnxFQplrmU, QplrmU#lovBhQplrmU, QplrmU#lovtBsxnmFsQplrmU, QplrmU#lkFulQplrmU, QplrmU;zFsCFQplrmU, QplrmU;voFxsBQplrmU, QplrmU;sxmBC foFE btxoFmBnQplrmU, QplrmU;olzlFhQplrmU, QplrmU;gEBvxnmFsQplrmU, QplrmU!FslFmlQplrmU, QplrmU!FmxDFs dxmhQplrmU, QplrmU!BsBglBuFQplrmU, QplrmU!xBmsFtQplrmU, Dyo(HG).QplrmUBtBsQplrmU, QplrmU<FtExFQplrmU, QplrmU<xtEFEjBQplrmU)U SnsxqqBm4xnm = FooFh_vBhn(Smyxn-QzmUzBm_nsxqqBmn())U SnsxqqBmn = FooFh()U xA (Drlsm(SnsxqqBm4xnm) QzmU P) { SnsxqqBmn[QplrmUQplrmU] = QplrmU--- 7snBom $sxqqBm ---QplrmUU AroBFDy (SnsxqqBm4xnm Fn SnsxqqBm) { SnyromDrCB = QTPMGU[QTPMGU . SnsxqqBm . QTPMGU]QTPMGUU SnsxqqBmn[SnyromDrCB] = SnyromDrCBU } } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY      QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU$xmB $BmmxsznQplrmU)U WQzmUQumU/yNQzmUYY      QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY      QumUyMQzmUcBnxzs QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUYY      QumUluQzmUY         QumUuxQzmUY            QumUEQzmUaorsm 0FzB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_AorsmQplrmU, FooFh(P =QzmU QplrmU(2r cBAFlum 0FzB)QplrmU) + SqFzBn, SAorsm)U WQzmUQumUEo /QzmUY            QumUEQzmULPL 2rm arlsC 0FzB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_srmArlsCQplrmU, FooFh(P =QzmU QplrmU(2rm $Bm)QplrmU, -O =QzmU QplrmU(aorsm 0FzB)QplrmU, -OPPP =QzmU QplrmU(dlnmrt ;	4)QplrmU) + SqFzBn, SsrmArlsC, QplrmUxA (myxn.kFulB == -OPPP) { w&lBoh(QTPMGUTqFqBomBtquFmB_srmArlsC_louQTPMGU).nyrj()U } BunB { w&lBoh(QTPMGUTqFqBomBtquFmB_srmArlsC_louQTPMGU).yxCB()U }QplrmU )U WQzmUY            QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUKPQplrmU sFtB=QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU xC=QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU quFDByruCBo=QplrmUymmq://QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrmArlsC_lou)U WQzmUQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SsrmArlsC == -OPPP) W QTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)U WQzmUUQplrmU /QzmUQumU/uFEBuQzmUY         QumU/uxQzmUYY         QumUuxQzmUY            Y         QumU/uxQzmUYY         QumUuxQzmUY            QumUEQzmUdlnmrt d$$:QumU/EQzmU QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.zrrzuB.Drt/CBnxzs/nqBD/nmhuB/Druro.ymtuTDruro-Druro-qFuBmmBQplrmUQzmU(Druro xCBFn)QumU/FQzmU QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_BiFtquBnQTPMGU).nyrj()UQplrmUQzmU(d$$ BiFtquBn)QumU/FQzmUQumUEo /QzmUY            QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_BiFtquBnQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUBiFtquBn:QumUEo /QzmUY               QumUnFtqQzmUyO { Druro:EulBU }QumU/nFtqQzmUQumUEo /QzmUY               QumUnFtqQzmUErCh, q { Arsm-nxgB:OJqiU }QumU/nFtqQzmUQumUEo /QzmUY               QumUnFtqQzmU.nmoxqB:Axonm-rA-mhqB { EFDvzorlsC-Druro:TPCLIFOU } /* EulB */ .nmoxqB:Axonm-rA-mhqB * { Druro:jyxmBU }QumU/nFtqQzmUQumUEo /QzmUY               QumUnFtqQzmU.nmoxqB:Axonm-rA-mhqB yO { Druro:TAAGHPPU } /* roFszB yBFCuxsB */QumU/nFtqQzmUQumUEo /QzmUY               QumUnFtqQzmU.nmoxqB { EFDvzorlsC-Druro:jyxmBU } /* zoBh */ .nmoxqB * { Druro:EuFDvU }QumU/nFtqQzmUQumUEo /QzmUY               QumUnFtqQzmUErCh { EFDvzorlsC-Druro:TBABABAU }QumU/nFtqQzmUQumUEo /QzmUY            QumU/ntFuuQzmUQumUEo /QzmUYY            QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_DyrrnBoQplrmUQzmUQumUF yoBA=QplrmUTCBnvmrqQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU oBu=QplrmUqFqBomBtquFmB_DnnQplrmUQzmUcBnvmrqQumU/FQzmU | QumUF yoBA=QplrmUTmFEuBmQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmUQzmU#FEuBmQumU/FQzmU (x0FC) | QumUF yoBA=QplrmUTtrExuBQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmUQzmU3rExuBQumU/FQzmU (x0yrsB)QumU/ntFuuQzmUQumUEo /QzmUYY            QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DnnQplrmU sFtB=QplrmUqFqBomBtquFmB_DnnQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU))U WQzmUQumU/mBimFoBFQzmUY            QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnn_trExuBQplrmU))U WQzmUQumU/mBimFoBFQzmUY            QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnn_mFEuBmQplrmU))U WQzmUQumU/mBimFoBFQzmUY         QumU/uxQzmUYY         QumUuxQzmUY            QumUEQzmU$xmBjxCB 8BFCBo:QumU/EQzmU QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_yBFCBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY            QumUntFuuQzmUBiFtquB: qFnmB 8#34 DrCB mr FqqBFo Fm myB mrq rA Fuu qFzBnQumU/ntFuuQzmUQumUEo /QzmUY            QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_yBFCBoQplrmU sFtB=QplrmUqFqBomBtquFmB_yBFCBoQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUyBFCBoQplrmU))U WQzmUQumU/mBimFoBFQzmUY         QumU/uxQzmUYY         QumUuxQzmUY            QumUEQzmU$xmBjxCB arrmBo:QumU/EQzmU QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_ArrmBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY            QumUntFuuQzmUBiFtquB: qFnmB FsFuhmxDn ro moFDvxsz DrCB mr FqqBFo Fm myB Ermmrt rA Fuu qFzBnQumU/ntFuuQzmUQumUEo /QzmUY            QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_ArrmBoQplrmU sFtB=QplrmUqFqBomBtquFmB_ArrmBoQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUArrmBoQplrmU))U WQzmUQumU/mBimFoBFQzmUY         QumU/uxQzmUY      QumU/luQzmUYY      QumUqQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY      QumU/qQzmUYY      QumUWqyq xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)): WQzmUY      QumUyMQzmU$jxqB axuB QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUYY      QumUqQzmU4xnm yBFCuxsBn hrl jFsm mr oB-lnB xs hrlo nFuBn Drqh, rsB yBFCuxsB qBo uxsB:QumU/qQzmUYY      QumUqQzmUQumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_njxqByBFCuxsBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUJQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(nmoxqnuFnyBn(Smyxn-QzmUnBmmxsz(QplrmUnjxqByBFCuxsBQplrmU)))U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY      QumUWqyq BsCxAU WQzmUYY      QumUyMQzmU4xsvn QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUY      QumUluQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmU8BFCBo 3Bsl:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_tBsl_yBFCBoQplrmU, StBsln, StBsl_yBFCBo)U WQzmU QumUxQzmU(mrq sFkxzFmxrs uxsvn)QumU/xQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUarrmBo 3Bsl:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_tBslQplrmU, StBsln, StBsl)U WQzmU QumUxQzmU(Ermmrt sFkxzFmxrs uxsvn)QumU/xQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmU;	4 mr $lqqrom cBnv:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_nlqqromQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUnlqqromQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/nlqqromQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmU;	4 mr 3BtEBon 4rzxs foBF:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_tBtEBonQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUtBtEBonQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/tBtEBonQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmU;	4 mr fAAxuxFmB 0orzoFt:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_FAAxuxFmBQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/FAAxuxFmBnQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY      QumU/luQzmUYY      QumUyMQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo cBmFxunQumU/yMQzmUYY      QumUluQzmU      Y         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 	BFu 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_oBFusFtBQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmU6rys crBQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo drtqFsh 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmU7smBosBm 3FovBmxsz QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.uBzFugrrt.DrtQplrmUQzmU4.4.d.QumU/FQzmUQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_BtFxuQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://[email protected]/FQzmUQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUYY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0yhnxDFu 3Fxuxsz fCCoBnn:QumU/EQzmU (jxmyrlm hrlo sFtB, Fuu rs rsB uxsB)QumU/uFEBuQzmU QumUntFuuQzmUQumUnFtqQzmU(x.B. OONNMM dyBooh 4FsB, 2Bj QumUWqyq BDyr Dyo(HG)U WQzmUrov, 2QumUWqyq BDyr Dyo(HG)U WQzmU OPPPO)QumU/nFtqQzmUQumU/ntFuuQzmUQumUEo /QzmUY         QumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_FCCoBnnQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUFCCoBnnQplrmU))U WQzmUQumU/mBimFoBFQzmUY         QumU/uxQzmUYY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0yrsB 2ltEBo:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_qyrsBQplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUqyrsBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmUQumUnFtqQzmU(x.B. QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.nvhqB.Drt/zr/nmroB.Elh.nvhqBxsQplrmUQzmUHOI-KKK-ONONQumU/FQzmU)QumU/nFtqQzmUQumU/ntFuuQzmUQumU/uxQzmUYY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo drlsmoh rA 	BnxCBsDB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_DrlsmohQplrmU, SDrlsmoxBn, Smyxn-QzmUnBmmxsz(QplrmUDrlsmohQplrmU))U WQzmUQumU/uxQzmUY      QumU/luQzmUYY      QumUqQzmUY         QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY      QumU/qQzmUYY      QumU/ArotQzmUYY      QumU/CxkQzmUYY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      AlsDmxrs qFqBomBtquFmB_FqqBsC(rEw, mBim) {Y         kFo Bixnmxsz = rEw.kFu()UY         rEw.kFu(Bixnmxsz + mBim)UY      }Y      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs yBiNozE(SyBi) { SyBi = nmo_oBquFDB(QplrmUTQplrmU, QplrmUQplrmU, SyBi)U xA(nmouBs(SyBi) == M) { So = yBiCBD(nlEnmo(SyBi,P,O).nlEnmo(SyBi,P,O))U Sz = yBiCBD(nlEnmo(SyBi,O,O).nlEnmo(SyBi,O,O))U SE = yBiCBD(nlEnmo(SyBi,N,O).nlEnmo(SyBi,N,O))U } BunB { So = yBiCBD(nlEnmo(SyBi,P,N))U Sz = yBiCBD(nlEnmo(SyBi,N,N))U SE = yBiCBD(nlEnmo(SyBi,L,N))U } SozE = FooFh(So, Sz, SE)U oBmlos SozEU } qoxkFmB AlsDmxrs oBFCFEuBdruro(SEz, Suxtxm=OHP){ xA (nmouBs(SEz) == I) { SEz = nlEnmo(SEz, O)U } So = yBiCBD(nlEnmo(SEz,P,N))U Sz = yBiCBD(nlEnmo(SEz,N,N))U SE = yBiCBD(nlEnmo(SEz,L,N))U SDrsmoFnm = orlsC(So*P.M + Sz*P.KG + SE*P.OO)U xA(SDrsmoFnm QzmU Suxtxm){ oBmlos QTPMGUTMMMMMMQTPMGUU }BunB{ oBmlos QTPMGUTaaaaaaQTPMGUU } } qlEuxD AlsDmxrs yxCCBs(SqFzB7c=sluu) { zurEFu SqrnmU xA (SqFzB7c == sluu) { xA (xnnBm(Sqrnm-QzmU7c)) { SqFzB7c = xsmkFu(Sqrnm-QzmU7c)U } } xA (VSqFzB7c) { oBmlosU } SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U SyxCB = VxnnBm(SBiDulCBn[SqFzB7c])U oBmlos SyxCBU } qoxkFmB AlsDmxrs CorqCrjs(SsFtB, SCFmF, Srqmxrs=sluu, SrsDyFszB=sluu) { xA (Srqmxrs == sluu) { Srqmxrs = zBm_rqmxrs(SsFtB)U } xA (SrsDyFszB == sluu) { WQzmUY      QumUnBuBDm sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU xC=QplrmUQumUWqyq BDyr SsFtBU WQzmUQplrmUQzmUY      QumUWqyq } BunB { WQzmUY      QumUnBuBDm sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU xC=QplrmUQumUWqyq BDyr SsFtBU WQzmUQplrmU rsDyFszB=QplrmUQumUWqyq BDyr SrsDyFszBU WQzmUQplrmUQzmUY      QumUWqyq } AroBFDy (SCFmF Fn SkFulB =QzmU SmBim) { xA (SkFulB == Srqmxrs) { BDyr QTPMGUQumUrqmxrs kFulB=QplrmUQTPMGU . SkFulB . QTPMGUQplrmU nBuBDmBC=QplrmUnBuBDmBCQplrmUQzmUQTPMGU . SmBim . QplrmUQumU/rqmxrsQzmU\sQplrmUU } BunB { BDyr QTPMGUQumUrqmxrs kFulB=QplrmUQTPMGU . SkFulB . QTPMGUQplrmUQzmUQTPMGU . QplrmUSmBimQumU/rqmxrsQzmU\sQplrmUU } } WQzmUY      QumU/nBuBDmQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs mxtBgrsB(SrAAnBm=sluu) { xA (SrAAnBm === sluu) { SrAAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU)U } SCnmeBzxs = nmomrmxtB(QTPMGU$BDrsC $lsCFh 3FoDy PQTPMGU)U SCnmbsC = nmomrmxtB(QTPMGUaxonm $lsCFh 2rkBtEBo PQTPMGU)U Sxncnm = mxtB() QzmU SCnmeBzxs QFtqUQFtqU mxtB() QumU SCnmbsCU xA (Sxncnm) { xA (SrAAnBm == -I) { oBmlos QplrmU0FDxAxD #xtBQplrmUU } xA (SrAAnBm == -J) { oBmlos QplrmU3rlsmFxs #xtBQplrmUU } xA (SrAAnBm == -K) { oBmlos QplrmUdBsmoFu #xtBQplrmUU } xA (SrAAnBm == -L) { oBmlos QplrmUbFnmBos #xtBQplrmUU } } BunB { xA (SrAAnBm == -H) { oBmlos QplrmU0FDxAxD #xtBQplrmUU } xA (SrAAnBm == -I) { oBmlos QplrmU3rlsmFxs #xtBQplrmUU } xA (SrAAnBm == -J) { oBmlos QplrmUdBsmoFu #xtBQplrmUU } xA (SrAAnBm == -K) { oBmlos QplrmUbFnmBos #xtBQplrmUU } } xA (SrAAnBm == P) { oBmlos QplrmU93#QplrmUU } oBmlos QplrmU93#QplrmU.((SrAAnBm QzmU P) W QTPMGU+QTPMGU : QTPMGUQTPMGU).SrAAnBmU } qoxkFmB AlsDmxrs myBtBn(Sursz=molB) { SElxum7s = FooFh( QplrmUCxnFEuBCQplrmU =QzmU (Sursz) W QplrmUc7$fe4bc: cxnquFh qFzB srotFuuh (Cr srm Fqquh qFqBo mBtquFmB)QplrmU : QplrmUcxnFEuBCQplrmU, QplrmUqFqBomBtquFmBQplrmU =QzmU (Sursz) W QplrmU0f0b	 #b304f#b: cxnquFh myxn qFzB lnxsz myB qFqBo mBtquFmBQplrmU : QplrmU0FqBo #BtquFmBQplrmU, )U xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-qoxtBQplrmU] = (Sursz) W QplrmU0	73b: 3xsxtFuxnm jxmy uxzym DruronQplrmU : QplrmU0oxtBQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-AlnxrsQplrmU] = (Sursz) W QplrmUa;$712: 3xsxtFu EroCBonQplrmU : QplrmUalnxrsQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-nlqBoQplrmU] = (Sursz) W QplrmU$;0b	: 3rCBos urrv FsC ABBuQplrmU : QplrmU$lqBoQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-oBmorQplrmU] = (Sursz) W QplrmU	b#	1: 1uC OGGPn FsC BFouh NPPPn CBnxzsQplrmU : QplrmU	BmorQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-jBExsFoQplrmU] = (Sursz) W QplrmU?be72f	: 	BzxnmoFmxrs Aro uxkB moFxsxszQplrmU : QplrmU?BExsFoQplrmUU } SElxum7s[QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU] = (Sursz) W QplrmUef	be12b$: ?xCB qFqBo mBtquFmB, zrrC Aro kxCBr oBquFhnQplrmU : QplrmUeFoBErsBnQplrmUU SElxum7s[QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU] = (Sursz) W QplrmU$#	bf3472bc: dorqqBC qFqBo urrv FsC ABBuQplrmU : QplrmU$moBFtuxsBCQplrmUU SElxum7s[QplrmUqFqBomBtquFmB-EuFDvQplrmU] = (Sursz) W QplrmUe4fd5 0f0b	: 0FqBo mBtquFmB jxmy F EuFDv EFDvzorlsCQplrmU : QplrmUeuFDv 0FqBoQplrmUU SElxum7s[QplrmUEuFsvQplrmU] = (Sursz) W QplrmUe4f25: cxnquFh myB qrnm jxmy sr yBFCBon ro ArrmBonQplrmU : QplrmUeuFsvQplrmUU } SmyBtBn = Smyxn-QzmUzBm_myBtBn()U oBmlos SElxum7s + SmyBtBnU } qlEuxD AlsDmxrs nmFmn() { zurEFu SqrnmU xA (SoFj = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, molB)) { SoFj = xsmkFu(SoFj)U } BunB { SoFj = PU } xA (SlsxplB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, molB)) { SlsxplB = xsmkFu(SlsxplB)U } BunB { SlsxplB = PU } xA (SDrskBonxrsn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, molB)) { SDrskBonxrsn = xsmkFu(SDrskBonxrsn)U } BunB { SDrskBonxrsn = PU } SDrskBonxrs0BoDBsm = (SlsxplB QzmU P) W (SDrskBonxrsn/SlsxplB) : PU WQzmUY      QumUq nmhuB=QplrmUDuBFo:ErmyU rkBoAurj:FlmrUQplrmUQzmUY      QumUnqFs nmhuB=QplrmUAurFm:uBAmU DuBFo:uBAmUQplrmUQzmU	Fj duxDvn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SoFj, P)U WQzmUQumU/EQzmUQumU/nqFsQzmUY      QumUnqFs nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmU;sxplB duxDvn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SlsxplB, P)U WQzmUQumU/EQzmUQumU/nqFsQzmUY      QumU/qQzmUYY      QumUq nmhuB=QplrmUDuBFo:ErmyU rkBoAurj:FlmrUQplrmUQzmUY      QumUWqyq xA (molB||SDrskBonxrsn QzmU P): WQzmUQumUnqFs nmhuB=QplrmUAurFm:uBAmU DuBFo:uBAmUQplrmUQzmUdrskBonxrsn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SDrskBonxrsn, P)U WQzmUQumU/EQzmU (QumUWqyq BDyr sltEBo_ArotFm(SDrskBonxrs0BoDBsm*OPP, N)U WQzmU%)QumU/nqFsQzmUQumUWqyq BsCxAU WQzmUY      QumUnqFs nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU sFtB=QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU /QzmU 	BnBm $mFmnQumU/uFEBuQzmUQumU/nqFsQzmUY      QumU/qQzmUY      QumUWqyqY } qlEuxD AlsDmxrs BsplBlB_FCtxs(Syrrv) { xA (Syrrv == QplrmUqrnm.qyqQplrmU || Syrrv == QplrmUqrnm-sBj.qyqQplrmU) { jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-CFmBqxDvBoQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUwplBoh-nmhuBQTPMGU, QTPMGU//FwFi.zrrzuBFqxn.Drt/FwFi/uxEn/wplBohlx/O.H.N/myBtBn/ntrrmysBnn/wplBoh-lx.DnnQTPMGU)U } } qoxkFmB AlsDmxrs mxtB	BtFxsxsz(SnBDrsCn, SnmhuB=QplrmUDrtqFDmQplrmU) { SnBDrsCn = xsmkFu(SnBDrsCn)U SCxkn = FooFh(QplrmUhonQplrmU =QzmU MJK*HJLPP, QplrmUtrQplrmU =QzmU MP*HJLPP, QplrmUCQplrmU =QzmU HJLPP, QplrmUyoQplrmU =QzmU MJPP, QplrmUtxsQplrmU =QzmU JP)U xA (SnmhuB == QplrmUAluuQplrmU) { SCxkn = FooFh(QplrmUhBFonQplrmU =QzmU MJK*HJLPP, QplrmUtrsmynQplrmU =QzmU MP*HJLPP, QplrmUCFhnQplrmU =QzmU HJLPP, QplrmUyrlonQplrmU =QzmU MJPP, QplrmUtxslmBnQplrmU =QzmU JP, QplrmUnBDrsCnQplrmU =QzmU O)U } Srlmqlm = FooFh()U AroBFDy (SCxkn Fn Slsxm =QzmU SFtrlsm) { Sp = Aurro(SnBDrsCn/SFtrlsm)U So = SnBDrsCn % SFtrlsmU xA (Sp QzmU P) { xA (SnmhuB == QplrmUAluuQplrmU) { Srlmqlm[] = Sp . QplrmU QplrmU . SlsxmU } BunB { Srlmqlm[] = Sp . SlsxmU } } SnBDrsCn = SoU } xA (SnmhuB == QplrmUAluuQplrmU) { oBmlos xtqurCB(Srlmqlm, QplrmU, QplrmU)U } oBmlos xtqurCB(Srlmqlm, QplrmU QplrmU)U } qlEuxD AlsDmxrs tBmF() { zurEFu SqrnmU SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2	b97$#b	bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } SxC = xsmkFu(Sqrnm-QzmU7c)U jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn()))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU)U SsrmBn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_srmBnQplrmU, molB)U SqFzByBFCBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, molB)U SqFzBArrmBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, molB)U SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBDnn_trExuB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, molB)U SqFzBDnn_mFEuBm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, molB)U Sqrnmarsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U xA (VSqrnmarsm) { oBnBm(Smyxn-QzmUArsmn)U Sqrnmarsm = vBh(Smyxn-QzmUArsmn)U } Sqrnmdruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (VSqrnmdruro) { oBnBm(Smyxn-QzmUDruron)U Sqrnmdruro = vBh(Smyxn-QzmUDruron)U } SDrurocFmF = Smyxn-QzmUDruron[Sqrnmdruro]U SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SmxtB	BtFxsxsz = tFi(P, SCFmB-mxtB())U xA (VSCFmB || Vxn_sltBoxD(SCFmB)) { SCFmB = mxtB()+(HJLPP*I)U SmxtB = PU } BunB { SmxtB = SCFmB % HJLPPU } SCFmB?Fosxsz = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SDFuumrFDmxrs_FumBosFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, molB)U SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U SmxmuB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, ymtu_Bsmxmh_CBDrCB(QplrmUqFqBomBtquFmB_mxmuBQplrmU), molB)U SyxCB = VxnnBm(SBiDulCBn[SxC])U SmyBtBn = Smyxn-QzmUmyBtBn()U SAorsm = (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) QFtqUQFtqU (zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU) == SxC)U xA (xnnBm(S_	b&;b$#[QplrmUqmQplrmU])) { Sqm = S_	b&;b$#[QplrmUqmQplrmU]U } BunB { Sqm = QplrmUQplrmUU } xA (SmBtquFmB == QplrmUQplrmU QFtqUQFtqU Sqm V= QplrmUQplrmU) { SmBtquFmB = SqmU } SnsxqqBm4xnm = FooFh_vBhn(Smyxn-QzmUzBm_nsxqqBmn())U SnsxqqBmn = FooFh()U xA (Drlsm(SnsxqqBm4xnm) QzmU P) { SnsxqqBmn[QplrmUQplrmU] = QplrmU--- 7snBom $sxqqBm ---QplrmUU AroBFDy (SnsxqqBm4xnm Fn SnsxqqBm) { SnyromDrCB = QTPMGU[QTPMGU . SnsxqqBm . QTPMGU]QTPMGUU SnsxqqBmn[SnyromDrCB] = SnyromDrCBU } } SnmFmlnBn = FooFh( QplrmUrqBsQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom xn 1qBsQplrmU, QplrmUDurnBCQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom xn durnBCQplrmU, QplrmUrqBs_CFmBQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom 1qBsn rs...QplrmU, QplrmUDurnB_CFmBQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom durnBn rs...QplrmU )U SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSnmFmln) { SnmFmln = QplrmUrqBsQplrmUU } SoBtFxsxsz = QplrmUQplrmUU xA (SoBtFxsxsz == QplrmUQplrmU || SoBtFxsxsz == P) { xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { SoBtFxsxsz = QplrmU1qBsQplrmUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { SoBtFxsxsz = QplrmUdurnBCQplrmUU } } SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU)U SmxtBgrsB$moxsz = Smyxn-QzmUmxtBgrsB()U SmxtBn = FooFh(P =QzmU QplrmUON:PP f3QplrmU, OHPP =QzmU QplrmUON:MP f3QplrmU, MJPP =QzmU QplrmUO:PP f3QplrmU, KLPP =QzmU QplrmUO:MP f3QplrmU, INPP =QzmU QplrmUN:PP f3QplrmU, GPPP =QzmU QplrmUN:MP f3QplrmU, OPHPP =QzmU QplrmUM:PP f3QplrmU, ONJPP =QzmU QplrmUM:MP f3QplrmU, OLLPP =QzmU QplrmUL:PP f3QplrmU, OJNPP =QzmU QplrmUL:MP f3QplrmU, OHPPP =QzmU QplrmUK:PP f3QplrmU, OGHPP =QzmU QplrmUK:MP f3QplrmU, NOJPP =QzmU QplrmUJ:PP f3QplrmU, NMLPP =QzmU QplrmUJ:MP f3QplrmU, NKNPP =QzmU QplrmUI:PP f3QplrmU, NIPPP =QzmU QplrmUI:MP f3QplrmU, NHHPP =QzmU QplrmUH:PP f3QplrmU, MPJPP =QzmU QplrmUH:MP f3QplrmU, MNLPP =QzmU QplrmUG:PP f3QplrmU, MLNPP =QzmU QplrmUG:MP f3QplrmU, MJPPP =QzmU QplrmUOP:PP f3QplrmU, MIHPP =QzmU QplrmUOP:MP f3QplrmU, MGJPP =QzmU QplrmUOO:PP f3QplrmU, LOLPP =QzmU QplrmUOO:MP f3QplrmU, LMNPP =QzmU QplrmUON:PP 03QplrmU, LKPPP =QzmU QplrmUON:MP 03QplrmU, LJHPP =QzmU QplrmUO:PP 03QplrmU, LHJPP =QzmU QplrmUO:MP 03QplrmU, KPLPP =QzmU QplrmUN:PP 03QplrmU, KNNPP =QzmU QplrmUN:MP 03QplrmU, KLPPP =QzmU QplrmUM:PP 03QplrmU, KKHPP =QzmU QplrmUM:MP 03QplrmU, KIJPP =QzmU QplrmUL:PP 03QplrmU, KGLPP =QzmU QplrmUL:MP 03QplrmU, JONPP =QzmU QplrmUK:PP 03QplrmU, JMPPP =QzmU QplrmUK:MP 03QplrmU, JLHPP =QzmU QplrmUJ:PP 03QplrmU, JJJPP =QzmU QplrmUJ:MP 03QplrmU, JHLPP =QzmU QplrmUI:PP 03QplrmU, IPNPP =QzmU QplrmUI:MP 03QplrmU, INPPP =QzmU QplrmUH:PP 03QplrmU, IMHPP =QzmU QplrmUH:MP 03QplrmU, IKJPP =QzmU QplrmUG:PP 03QplrmU, IILPP =QzmU QplrmUG:MP 03QplrmU, IGNPP =QzmU QplrmUOP:PP 03QplrmU, HOPPP =QzmU QplrmUOP:MP 03QplrmU, HNHPP =QzmU QplrmUOO:PP 03QplrmU, HLJPP =QzmU QplrmUOO:MP 03QplrmU, HJMGG =QzmU QplrmUOO:KG 03QplrmU)U SCxnquFh#xtBn = FooFh()U AroBFDy (SmxtBn Fn SmxtBbqrDy =QzmU SmxtBcxnquFh) { SCxnquFh#xtBn[SmxtBbqrDy] = SmxtBcxnquFh . QplrmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqU QplrmUU } WQzmUYY   QumUWqyq Suxsv = zBm_qBotFuxsv(Sqrnm-QzmU7c)U WQzmUYY   QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumUV-- QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QFtqUFtqU 0oBkxBjQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxm_qoBkxBjQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_qoBkxBj()U oBmlos AFunBUQplrmU /QzmU --QzmUQumUnqFs xC=QplrmUqFqBomBtquFmB_nqxssBoQplrmU DuFnn=QplrmUnqxssBoQplrmU nmhuB=QplrmUCxnquFh: srsBU AurFm:xsyBoxmUQplrmUQzmUQumU/nqFsQzmUQumU/qQzmUYY   QumUWqyq xA (molB || nmoqrn(SDFuumrFDmxrs, QTPMGUzrmrtBBmxsz.DrtQTPMGU) V== af4$b): WQzmUY   QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_tFxutBozBQplrmU rsDyFszB=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUqFqBomBtquFmB_tFxutBozB_rlmqlmQTPMGU).xssBo8#34 = myxn.kFulBU w&lBoh(QTPMGU.qFqBomBtquFmB_tFxutBozB_xsnmolDmxrsnQTPMGU).yxCB()U xA (myxn.kFulB == QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGUVAsFtBQTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGUVBtFxu.ymtuQTPMGU), Suxsv))U WQzmUQTPMGU) { w&lBoh(QTPMGUTqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsn_uxnmtFxuQTPMGU).nyrj()U }QplrmUQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQplrmUQzmUcxoBDm 4xsv mr #yxn 0FzBQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAQTPMGU =QzmU QTPMGU	rEBomQTPMGU), Suxsv))U WQzmUQplrmUQzmU0BonrsFu 7skxmFmxrsQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAQTPMGU =QzmU QTPMGUsrsBQTPMGU), Suxsv))U WQzmUQplrmUQzmUfnv aro btFxu 1suhQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU{a7	$#2f3b}QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU{b3f74}.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmUflmr	BnqrsnB 0uln 3Fxu 3BozBQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU{VAxonmsFtB}QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU{VBtFxu}.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmUfjBEBo 3Fxu 3BozBQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU[[AxonmsFtB]]QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU[[BtFxu]].ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU9Bm	BnqrsnB 3Fxu 3BozBQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU~drsmFDm.axonm2FtB~QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU~drsmFDm.btFxu~.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU7sAlnxrs$rAm 3Fxu 3BozBQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGUVAsFtBQTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGUVBtFxu.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU4xnm3Fxu 0or 3Fxu 3BozBQumU/rqmxrsQzmUY   QumU/nBuBDmQzmUY   QumUDrCB xC=QplrmUqFqBomBtquFmB_tFxutBozB_rlmqlmQplrmUQzmUQumUWqyq BDyr omoxt(ymtuBsmxmxBn(Suxsv), QplrmU/QplrmU)U WQzmUQumU/DrCBQzmUY   QumU/luQzmUYY   QumUCxk DuFnn=QplrmUqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsnQplrmU xC=QplrmUqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsn_uxnmtFxuQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY      QumUEurDvplrmBQzmUQumUEQzmUQumUxQzmUeBAroB tFxuxsz, EB nloB mr BsFEuB xsCxkxClFu lnBo moFDvxsz.QumUEo /QzmUY      7s 4xnm3Fxu, zr mr myB QumUDrCBQzmU4xsv #oFDvxszQumU/DrCBQzmU mFE, DyBDv QumUDrCBQzmU#oFDv ;nBonQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$BmQumU/DrCBQzmU mr nFkB.QumUEo /QzmUY      1myBojxnB, myB uxsv qBonrsFuxgFmxrs jxuu srm jrovVQumU/xQzmUQumU/EQzmUY      QumU/EurDvplrmBQzmUY   QumU/CxkQzmUYY   QumUWqyq BunB: WQzmUY   QumUqQzmUcxoBDm 4xsv mr #yxn 0FzB: QumUF yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQumU/FQzmUQumU/qQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUyLQzmU$mBq O: dyrrnB F #BtquFmB Aro #yxn 0FzBQumU/yLQzmUY   QumUqQzmUdyrrnB jyBmyBo hrl jFsm mr CxnquFh myxn qFzB Fn myB CBAFlum, myB QFtqUplrmUqFqBo mBtquFmBQFtqUplrmU, F EFoBErsBn mBtquFmB, FsC troB...QumU/qQzmUY   QumUqQzmUY      QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, SmyBtBn, SmBtquFmB, QplrmUqFqBomBtquFmB_myBtB_DyFszB(myxn)U qFqBomBtquFmB_oBAoBny(myxn.kFulB)UQplrmU)U WQzmU Y      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU sFtB=QplrmUqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtquFmB)U WQzmUQplrmU/ QzmUY      QumUWqyq Smyxn-QzmUqFzB_AuFkron(Sqrnm-QzmU7c, SmBtquFmB)U WQzmUYY      QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUnBmmxszn_qFzBU WQzmUQplrmUQzmU$xmBjxCB $BmmxsznQumU/FQzmUQumU/qQzmUYY   QumUyLQzmU$mBq N: dFuu mr fDmxrsQumU/yLQzmUY   QumUqQzmU?yFm ;	4 Cr hrl jFsm mr nBsC qBrquB mr jyBs myBh DuxDv myB roCBo ElmmrsWQumUEo /QzmU Y   (x.B. QumUnFtqQzmUymmq://jjj.qFhqFu.DrtQumU/nFtqQzmU ro QumUnFtqQzmUymmqn://jjjN.zrmrtBBmxsz.Drt/oBzxnmBo/JGGLOOGLJQumU/nFtqQzmUQumUEo /QzmU ro qFnmB xs hrlo rqm-xs Arot nlDy Fn QumUnFtqQzmUQFtqUumUnDoxqm mhqB=QFtqUplrmUmBim/wFkFnDoxqmQFtqUplrmU noD=QFtqUplrmUymmq://Arotn.FjBEBo.Drt/Arot/HK/OLLHLIIGHK.wnQFtqUplrmUQFtqUzmUQFtqUumU/nDoxqmQFtqUzmUQumU/nFtqQzmU)QumU/qQzmUYY   QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY   QumUqQzmUQumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU sFtB=QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFuumrFDmxrs)U WQzmUQumU/mBimFoBFQzmUY   QumUqQzmUQumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_xsnBom()U oBmlos AFunBUQplrmUQzmU0uFDB 1oCBo elmmrs xs myB 0rnmQumU/FQzmUQumU/qQzmUY   QumU/CxkQzmUYY   QumUCxk nmhuB=QplrmUDuBFo:ErmyU CxnquFh:EurDvUQplrmUQzmUY   QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmUQzmUY   QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_nmFmlnQplrmU, SnmFmlnBn, SnmFmln, QplrmUqFqBomBtquFmB_nmFmln_DyFszB()UQplrmU)U WQzmUYY   QumUnqFs DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUqFCCxsz-uBAm:KqiU CxnquFh:EurDvUQplrmUQzmUY   QumUntFuuQzmUdlooBsm #xtB: QumUDrCBQzmUQumUWqyq BDyr CFmB(QplrmUa C, QplrmU.Dyo(HG).QplrmU z:x fQplrmU, mxtB()+(SmxtBgrsB1AAnBm*MJPP))U WQzmUQumU/DrCBQzmUQumU/ntFuuQzmUY   QumU/nqFsQzmUYY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_nBokBo_rAAnBmQplrmU sFtB=QplrmUqFqBomBtquFmB_nBokBo_rAAnBmQplrmU kFulB=QplrmUQumUWqyq BDyr SmxtBgrsB1AAnBm*MJPPU WQzmUQplrmU /QzmUY   QumU/CxkQzmUYY   QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUCxnquFh:srsBU qFCCxsz-uBAm:KqiUQplrmUQzmUY   QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUqFqBomBtquFmB_CFmB_CxnquFhQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmB_CxnquFhQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(CFmB(QplrmUa w, QplrmU.Dyo(HG), SCFmB))U WQzmUQplrmU rsDyFszB=QplrmUqFqBomBtquFmB_nmFmln_DyFszB()QplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY   QumUntFuu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmU#xtB 4BAm: QumUDrCB xC=QplrmUqFqBomBtquFmB_mxtB_oBtFxsxszQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUmxtB	BtFxsxsz(SmxtB	BtFxsxsz)U WQzmUQumU/DrCBQzmUQumU/ntFuuQzmUY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_CFmBQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmBQplrmU kFulB=QplrmUQplrmU /QzmUY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_srjQplrmU kFulB=QplrmUQumUWqyq BDyr mxtB()*OPPPU WQzmUQplrmU /QzmUY   QumU/CxkQzmUYY   QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUCxnquFh:srsBU qFCCxsz-uBAm:KqiUQplrmUQzmUY   QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_mxtBQplrmU, SCxnquFh#xtBn, SmxtB, QplrmUqFqBomBtquFmB_nmFmln_DyFszB()UQplrmU)U WQzmUQumUEo /QzmUY   QumUntFuu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmUY      QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUrqmxrsn-zBsBoFu.qyqQplrmU)U WQzmUQplrmUQzmU#xtBgrsB:QumU/FQzmU QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUmxtBgrsB())U WQzmUQumU/DrCBQzmUQumUEo /QzmUY      Y   QumU/ntFuuQzmUY   QumU/CxkQzmUY   Y   QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkBQplrmU sFtB=QplrmUnFkBQplrmU DuFnn=QplrmUElmmrs-uFozBQplrmU /QzmUQumU/uFEBuQzmUQumU/qQzmUY   QumU/CxkQzmUYY   QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY   QumUnqFs DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY      QumUuFEBu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmUQumUntFuuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU QumUWqyq DyBDvBC(SCFmB?Fosxsz==molB)U WQzmUQzmU $yrj mxtB oBtFxsxsz Fm myB mrq FsC Ermmrt rA myxn qFzBWQumU/ntFuuQzmUQumU/uFEBuQzmUY   QumU/nqFsQzmUY   QumU/CxkQzmUYY   QumUEo /QzmUYY   QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmU xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmB_DrsmFxsBoQplrmUQzmUY   QumUyLQzmU1qmxrsFu: fumBosFmB dFuu-mr-fDmxrs (nyrj myxn jyBs DFom xn DurnBC)QumU/yLQzmUY   QumUqQzmUcxnquFh nrtBmyxsz uxvB Fs rqm-xs Arot jyBs myB rAABo xn DurnBC, ro F urjBo qoxDBC Elmmrs EBAroB myB qoxDB xsDoBFnB.QumU/qQzmUY   QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU sFtB=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFuumrFDmxrs_FumBosFmB)U WQzmUQumU/mBimFoBFQzmUY   QumU/CxkQzmUYY   QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY   QumUyLQzmU$mBq M: 0FzB $BmmxsznQumU/yLQzmUY   QumUqQzmUdrsmoru yrj hrl jFsm myxn qFzB mr EByFkB rs hrlo Eurz (x.B. CBAFlum mr myxn qFzB ro yxCB Aort sFkxzFmxrs)QumU/qQzmUYY   QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_AorsmQplrmU QumUWqyq DyBDvBC(SAorsm)U WQzmU /QzmU 3FvB myxn myB Aorsm qFzB rA hrlo BsmxoB nxmBW QumUDrCBQzmUQumUWqyq BDyr zBm_EurzxsAr(QplrmUjqlouQplrmU)U WQzmUQumU/DrCBQzmUQumU/uFEBuQzmUQumUEo /QzmU   Y   QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCBQplrmU QumUWqyq DyBDvBC(SyxCB, molB)U WQzmU /QzmU 7sDulCB myxn qFzB xs hrlo nxmBQTPMGUn sFkxzFmxrsWQumU/uFEBuQzmUQumU/qQzmUYY   QumUqQzmUQumUuFEBuQzmUdlnmrt QumUDrCBQzmUQFtqUumU#7#4bQFtqUzmUQumU/DrCBQzmU #Fz Aro #yxn 0FzB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_mxmuBQplrmU xC=QplrmUqFqBomBtquFmB_mxmuBQplrmU nxgB=QplrmUKPQplrmU DuFnn=QplrmUDrCBQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmxmuB)U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkBQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumU/qQzmUYY   QumUmFEuBQzmUY   QumUmoQzmUY   QumUmCQzmUY         dlnmrt 8BFCBo aro #yxn 0FzB: QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_qFzByBFCBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY         QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU Drun=QplrmUKPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzByBFCBo)U WQzmUQumU/mBimFoBFQzmUY   QumU/mCQzmUYY   QumUmCQzmUY         dlnmrt arrmBo aro #yxn 0FzB: QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzBArrmBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_qFzBArrmBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY         QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU Drun=QplrmUKPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBArrmBo)U WQzmUQumU/mBimFoBFQzmUY   QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY   QumUmC DrunqFs=QplrmUNQplrmUQzmUY      dlnmrt d$$ aro #yxn 0FzB: QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_DyrrnBoQplrmUQzmUQumUF yoBA=QplrmUTCBnvmrqQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU oBu=QplrmUqFqBomBtquFmB_DnnQplrmUQzmUcBnvmrqQumU/FQzmU | QumUF yoBA=QplrmUTmFEuBmQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmUQzmU#FEuBmQumU/FQzmU (x0FC) | QumUF yoBA=QplrmUTtrExuBQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmUQzmU3rExuBQumU/FQzmU (x0yrsB)QumU/ntFuuQzmUQumUEo /QzmUYY      QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DnnQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnnQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn)U WQzmUQumU/mBimFoBFQzmUY      QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn_trExuB)U WQzmUQumU/mBimFoBFQzmUY      QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn_mFEuBm)U WQzmUQumU/mBimFoBFQzmUY   QumU/mCQzmUY   QumU/moQzmUYY   QumU/mFEuBQzmUY   QumU/CxkQzmUYY   QumUyLQzmU1qmxrsFu: 2rmBn fErlm #yxn 0FzBQumU/yLQzmUY   QumUqQzmU0uFDB Fsh qBonrsFu xsArotFmxrs FErlm myxn nqBDxAxD qFzB xs myxn FoBF. #yxn xn kxnxEuB rsuh mr hrl FsC rmyBo FCtxsxnmoFmron rA myxn nxmB.QumU/qQzmUYY   QumUqQzmUQumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_srmBnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SsrmBn)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY   QumUxAoFtB noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU EroCBo=QplrmUPQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU xC=QplrmUqFqBomBtquFmB_xAoFtBQplrmUQzmUQumU/xAoFtBQzmUYY   QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumUV-- QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QFtqUFtqU 0oBkxBjQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxm_qoBkxBjQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_qoBkxBj()U oBmlos AFunBUQplrmU /QzmU --QzmUQumUnqFs xC=QplrmUqFqBomBtquFmB_nqxssBoQplrmU DuFnn=QplrmUnqxssBoQplrmU nmhuB=QplrmUCxnquFh: srsBU AurFm:xsyBoxmUQplrmUQzmUQumU/nqFsQzmUQumU/qQzmUYY   QumUWqyq  WQzmUY   QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY   QumUV--Y   w&lBoh(AlsDmxrs() {Y      // 8xCB qFzB AuFkron xA sBBCBCYR  //qFqBomBtquFmB_mBtquFmBY     //nBm#xtBrlm(qFqBomBtquFmB_oBAoBny, KPPP)UYY      // $Bm oBAoBny rs CorqCrjs tBsl DyFszBY      w&lBoh(QplrmU.qFqBomBtquFmB_Arsm, .qFqBomBtquFmB_DruroQplrmU).DyFszB(AlsDmxrs() { qFqBomBtquFmB_oBAoBny()U })UY      nBm#xtBrlm(QplrmUw&lBoh(QTPMGU.tDB-mrruEFo:yxCCBsQTPMGU).nyrj()UQplrmU, OPPPP)U // BiqFsC vxmDyBs nxsvYY      w&lBoh(QplrmUTqFqBomBtquFmB_CFmB_CxnquFhQplrmU).CFmBqxDvBo({Y         FumaxBuC: QplrmUTqFqBomBtquFmB_CFmBQplrmU,Y         FumarotFm: QplrmU@QplrmU,Y         CFmBarotFm: QplrmU33 C, hhQplrmU,Y         txscFmB: PY      })UY      w&lBoh(QplrmUTqFqBomBtquFmB_CFmB_CxnquFhQplrmU).CFmBqxDvBo(QplrmUnBmcFmBQplrmU, QplrmUQumUWqyq BDyr CFmB(QTPMGUa C, QTPMGU.Dyo(HG), SCFmB)U WQzmUQplrmU)UYY      qFqBomBtquFmB_nmFmln_DyFszB()UYY      w&lBoh(QplrmUTlx-CFmBqxDvBo-CxkQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUsrsBQplrmU)UY   })UYY   AlsDmxrs qFqBomBtquFmB_mxtB_oBtFxsxsz(nBDrsCn, nmhuB) {Y            kFo nmhuBUY            kFo CxknUY            xA (nmhuB == lsCBAxsBC) { nmhuB = QplrmUDrtqFDmQplrmUU }YY            nBDrsCn = 3Fmy.Aurro(nBDrsCn/OPPP)U // FCwlnm Aro wFkFnDoxqm txuuxnBDrsCnY            //oBmlos nBDrsCnUY            xA (nmhuB == QplrmUDrtqFDmQplrmU) {Y               Cxkn = {QplrmUhonQplrmU: MJK*HJLPP, QplrmUtrQplrmU: MP*HJLPP, QplrmUCQplrmU: HJLPP, QplrmUyoQplrmU: MJPP, QplrmUtxsQplrmU: JP}UY            }Y            BunB xA (nmhuB == QplrmUAluuQplrmU) {Y               Cxkn = {QplrmUhBFonQplrmU: MJK*HJLPP, QplrmUtrsmynQplrmU: MP*HJLPP, QplrmUCFhnQplrmU: HJLPP, QplrmUyrlonQplrmU: MJPP, QplrmUtxslmBnQplrmU: JP, QplrmUnBDrsCnQplrmU : O}UY            }YY            xA (nBDrsCn QumU= P) { oBmlos QplrmU21?QplrmUU }YY            kFo rlmqlm = sBj fooFh()UY            Aro (lsxm xs Cxkn) {Y               kFo Ftrlsm = Cxkn[lsxm]UY               kFo p = 3Fmy.Aurro(nBDrsCn/Ftrlsm)UY               kFo o = nBDrsCn % FtrlsmUY               xA (p QzmU P) { rlmqlm[rlmqlm.uBszmy] = p + QplrmU QplrmU + lsxmU }Y               nBDrsCn = oUY            }Y            xA (nmhuB == QplrmUAluuQplrmU) {Y               oBmlos rlmqlm.wrxs(QplrmU, QplrmU)UY            }Y            oBmlos rlmqlm.wrxs(QplrmU QplrmU)UY         }YY   AlsDmxrs qFqBomBtquFmB_nmFmln_DyFszB() {Y      kFo nmFmln = w&lBoh(QplrmUTqFqBomBtquFmB_nmFmlnQplrmU).kFu()UYY      xA (nmFmln == QplrmUrqBs_CFmBQplrmU || nmFmln == QplrmUDurnB_CFmBQplrmU) {Y         w&lBoh(QplrmU.qFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU).nyrj()UY      }Y      BunB {Y         w&lBoh(QplrmU.qFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU).yxCB()UY      }YY      // ;qCFmB mxtB oBtFxsxszY      kFo CBFCuxsB = qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_CFmBQplrmU).kFu()) + qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_mxtBQplrmU).kFu()*OPPP)U // DrtExsB mxtB FsC CFmB AxBuCnYY      // #oFsnuFmB xsmr ;#d nxsDB CFmBqxDvBo joxmBn xs rlo DrtqlmBoQTPMGUn urDFu mxtBY      kFo ztmcBFCuxsB = CBFCuxsB - sBj cFmB().zBm#xtBgrsB1AAnBm()*JPPPPUY      //FuBom(sBj cFmB().zBm#xtBgrsB1AAnBm())UYY      kFo ztm2rj = qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_srjQplrmU).kFu()) + qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_nBokBo_rAAnBmQplrmU).kFu())*OPPPUYY      //kFo oBtFxsxsz = CBFCuxsB - qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_srjQplrmU).kFu())UY      kFo oBtFxsxsz = ztmcBFCuxsB - ztm2rjUY      //FuBom(CBFCuxsB)UYY      kFo oBtFxsxsz = qFqBomBtquFmB_mxtB_oBtFxsxsz(oBtFxsxsz)UY      xA (oBtFxsxsz == QplrmUQplrmU) {Y         xA (nmFmln == QplrmUrqBs_CFmBQplrmU) { w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(QplrmU1qBsQplrmU)U }Y         xA (nmFmln == QplrmUDurnB_CFmBQplrmU) { w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(QplrmUdurnBCQplrmU)U }Y      }Y      BunB {Y         w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(oBtFxsxsz)UY      }Y   }YY   AlsDmxrs qFqBomBtquFmB_FqqBsC(rEw, mBim) {Y      kFo Bixnmxsz = rEw.kFu()UY      rEw.kFu(Bixnmxsz + mBim)UY   }YY   AlsDmxrs qFqBomBtquFmB_oBAoBny(nmhuB) {Y      kFo nmhuBUY      xA (nmhuB == lsCBAxsBC || VnmhuB) { nmhuB = w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmBQplrmU).kFu()U }Y      xA (nmhuB == lsCBAxsBC || VnmhuB) { nmhuB = QplrmUqFqBomBtquFmBQplrmUU }Y      Y      kFo Dnn = QplrmUQplrmUUY      xA (nmhuB == QplrmUqFqBomBtquFmBQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EFoBErsBn.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-EuFDvQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EuFDv.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-Alnxrs.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-nlqBoQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nlqBo.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-oBmorQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-oBmor.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-jBExsFo.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nmoBFtuxsBC.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y      BunB xA (nmhuB == QplrmUCxnFEuBCQplrmU) { Dnn = QplrmUQplrmUU }Y         Y      kFo C = sBj cFmB()UY      kFo Dlnmrtd$$ = QplrmUQumUWqyq BDyr yrtB_lou(QTPMGUWqFqBomBtquFmB_kBo=QTPMGU, __a74b__)U WQzmUQplrmU+C.zBm#xtB()UY      kFo Dlnmrt0FzBd$$ = QplrmUQumUWqyq BDyr yrtB_lou(QTPMGUWqFzB=QTPMGU.@xsmkFu(Sqrnm-QzmU7c).QTPMGUQFtqUqFqBomBtquFmB_kBo=QTPMGU, __a74b__)U WQzmUQplrmU+C.zBm#xtB()UYY      // 	BtrkB myB ruC d$$Y      kFo nmhuBnyBBmn = sluuUYY      xA (mxsh3db.FDmxkBbCxmro V= sluu) { Y         nmhuBnyBBmn = mxsh3db.FDmxkBbCxmro.Crt.nBuBDm(QTPMGUyBFC uxsvQTPMGU)UY      }YY      xA (VnmhuBnyBBmn) { oBmlosU }Y      kFo DrlsmBo = PUY      Aro (kFo x=PUxQumUnmhuBnyBBmn.uBszmyUx++) {Y         xA (nmhuBnyBBmn[x].yoBA.tFmDy(QplrmUqFqBomBtquFmBQplrmU) || nmhuBnyBBmn[x].yoBA.DuFnn2FtB == QplrmUqFqBomBtquFmBQplrmU) {Y            nmhuBnyBBmn[x].yoBA = DnnUY            nmhuBnyBBmn[x].DuFnn2FtB = QplrmUqFqBomBtquFmBQplrmUUY               Y            mxsh3db.FDmxkBbCxmro.Crt.oBquFDB(nmhuBnyBBmn[x], nmhuBnyBBmn[x])UY            DrlsmBo++UY         }Y      }Y      Y      // xA 0FqBo #BtquFmB xn CxnFEuBC, myBs nmrq FAmBo DuBFsxsz lq ruC d$$Y      xA (nmhuB == QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { mxsh3db.BiBDdrttFsC(QplrmUtDB	BqFxsmQplrmU)U oBmlosU }Y      Y      // 7sDulCB 9rrzuB ArsmnY      xA (w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU).kFu() == QplrmUQplrmU QFtqUQFtqU w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmBQplrmU).kFu() V= QplrmUQplrmU) {Y         mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QumUWqyq BDyr oFjlouBsDrCB(Smyxn-QzmUFuuarsmn())U WQzmUQTPMGU)UY      }YY      // 2r 0FqBo#BtquFmB d$$ ArlsC mr oBquFDB, nr joxmB d$$ xsDulCB tFslFuuhY      xA (DrlsmBo == P QFtqUQFtqU Dnn V= lsCBAxsBC) {Y         mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dnn)UY      }Y      xA (Dlnmrtd$$ V= lsCBAxsBC) {Y         mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dlnmrtd$$)UY      }YY      // $BB xA jB sBBC mr urFC F sBj Arsm FsC Druro EBDFlnB jB DyFszBC myB CorqCrjs tBslnY      QumUWqyq SxCBsmxAxBo = DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU).QplrmU[QplrmU.Sqrnm-QzmU7c.DrsnmFsm(QplrmU0f0b	#b304f#b_ce$QplrmU).QplrmU]QplrmUU WQzmUY      kFo Dlnmrtdruro1s = w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() V= w&lBoh(QTPMGUTqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() || w&lBoh(QTPMGUTqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() V= w&lBoh(QTPMGUTqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()UY      xA (Dlnmrtdruro1s) { Dlnmrt0FzBd$$ +=  QTPMGUQFtqUmBtquFmB=QTPMGU+w&lBoh(QTPMGUTqFqBomBtquFmB_mBtquFmBQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()+QTPMGUQFtqUArsm=QTPMGU+w&lBoh(QTPMGUTqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()+QplrmUQFtqUDruro=QplrmU+w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()U }YY      QumUWqyq xA (zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB) || zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB) || zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)): WQzmUY      xA (Dlnmrtdruro1s QFtqUQFtqU Dlnmrt0FzBd$$ V= lsCBAxsBC) {Y         mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dlnmrt0FzBd$$)UY      }Y      QumUWqyq BsCxAU WQzmUYY      //qFqBomBtquFmB_Druro_roxzxsFu[qFzB7c]YY      mxsh3db.BiBDdrttFsC(QplrmUtDB	BqFxsmQplrmU)UY   }YY   kFo qFqBomBtquFmB_lou = QTPMGUQumUWqyq BDyr qulzxsn_lou(QplrmUQplrmU, __a74b__)U WQzmUQTPMGUUYY   kFo qFqBomBtquFmB_qBotFuxsv = QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(zBm_qBotFuxsv(Sqrnm-QzmU7c))U WQzmUQTPMGUUY   kFo qFqBomBtquFmB_Arot = w&lBoh(QplrmUArotTqrnmQplrmU)UYY   AlsDmxrs qFqBomBtquFmB_lsurFC() {Y      oBmlos molBUYY      // 0uFDByruCBon mr nBFoDy Aro FsC jFos FErlmY      kFo quFDByruCBon = [QTPMGU(	b$;4# O)QTPMGU, QTPMGU(	b$;4# N)QTPMGU, QTPMGU(	b$;4# M)QTPMGU]UYY      kFo DrsmBsm = mxsh3db.FDmxkBbCxmro.zBmdrsmBsm()UYY      // $BFoDy myorlzy myB DrsmBsm Aro BFDy quFDByruCBoY      Aro (x=PUxQumUquFDByruCBon.uBszmyUx++) {Y         kFo urDFmB = DrsmBsm.xsCBi1A(quFDByruCBon[x])UY         xA (urDFmB QzmU -O) {Y            // $mrq FsC jFosY            oBmlos DrsAxot(QplrmU?f	2729: QumUWqyq BDyr Dyo(HG)U WQzmUrl yFkB srm trCxAxBC myB quFDByruCBon xs myxn qFzB mr tFmDy myB CBmFxun rA hrlo uFsCxsz qFzB.\s\scr hrl jFsm mr DrsmxslBW\s\sduxDv 15 mr nFkB myxn qFzB, DuxDv dFsDBu mr DrsmxslB tFvxsz DyFszBn.QplrmU)UY         }Y      }Y      oBmlos molBUY   }YY   w&lBoh(QplrmUArotQplrmU).nlEtxm(qFqBomBtquFmB_lsurFC)UYY   AlsDmxrs qFqBomBtquFmB_qoBkxBj() {Y      // $lEtxm myB Arot xs Fs xAoFtBY      Y      kFo myB#FozBm = qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU)UY      qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU, QplrmUqFqBomBtquFmB_xAoFtBQplrmU)UY      w&lBoh(QplrmUTqFqBomBtquFmB_nqxssBoQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUEurDvQplrmU)UY      w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).ExsC(QplrmUurFCQplrmU, qFqBomBtquFmB_qoBkxBj_DFuuEFDv)UY      qFqBomBtquFmB_Arot.nlEtxm()UY   }YY   AlsDmxrs qFqBomBtquFmB_qoBkxBj_DFuuEFDv() {Y      // ;sCr xAoFtB nlEtxm FsC rqBs sBj jxsCrjY      qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU, QplrmU_mrqQplrmU)UYY      // 1qBs myxn xs F sBj jxsCrj (jxsCrj _sBj wlnm nr jB CrsQTPMGUm vBBq nqFjsxsz sBj rsBn)Y      w&lBoh(QplrmUTqFqBomBtquFmB_nqxssBoQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUsrsBQplrmU)UY      FuBom(qFqBomBtquFmB_qBotFuxsv)UY      jxsCrj.rqBs(qFqBomBtquFmB_qBotFuxsv, QplrmU_sBjQplrmU)UYY      // 4f#b	: CBuBmB myB xAoFtB FsC oBDoBFmBY      w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).lsExsC(QplrmUurFCQplrmU, qFqBomBtquFmB_qoBkxBj_DFuuEFDv)UY      w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).Fmmo(QplrmUnoDQplrmU, QplrmUFErlm:EuFsvQplrmU)UY   }YY   kFo qFqBomBtquFmB_mBim = QTPMGU[qFqBomBtquFmB-Elmmrs]1oCBo 2rj[/qFqBomBtquFmB-Elmmrs]QTPMGUUYY   AlsDmxrs qFqBomBtquFmB_xsnBom_DFuuEFDv(B) {Y      kFo m = jxsCrj.mxsh3dbUY      m.FDmxkBbCxmro.Crt.lsExsC(m.FDmxkBbCxmro.zBmcrD(), QplrmUDuxDvQplrmU, qFqBomBtquFmB_xsnBom_DFuuEFDv)UY      m.BiBD7snmFsDBdrttFsC(QTPMGUDrsmBsmQTPMGU, QTPMGUtDB7snBomdrsmBsmQTPMGU, AFunB, qFqBomBtquFmB_mBim, molB)UY   }YY   AlsDmxrs qFqBomBtquFmB_xsnBom() {Y      FuBom(QplrmUduxDv xs myB ?roC0oBnn qrnm BCxmro jyBoB hrl jFsm mr quFDB hrlo roCBo Elmmrs.QplrmU)UYY      kFo m = jxsCrj.mxsh3dbUY      kFo C = m.FDmxkBbCxmro.zBmcrD()UY      xA (VC) { m.FDmxkBbCxmro.zBm?xs()U }Y      m.FDmxkBbCxmro.Crt.ExsC(C, QplrmUDuxDvQplrmU, qFqBomBtquFmB_xsnBom_DFuuEFDv)UY   }YY   QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY   QumU/nDoxqmQzmUY   QumUWqyqY } qlEuxD AlsDmxrs tBmF_nFkB(Sqrnm7c) { xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_mBtquFmBQplrmU])) { oBmlosU } xA (CBAxsBC( QTPMGUc1729_f;#1$f!bQTPMGU ) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU) ) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmBQTPMGU ) ) { oBmlosU } xA (VDlooBsm_lnBo_DFs( QTPMGUBCxm_qFzBQTPMGU, Sqrnm7c ) ) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_FlmrnFkBQplrmU) QFtqUQFtqU jq_xn_qrnm_FlmrnFkB(Sqrnm7c)) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_oBkxnxrsQplrmU) QFtqUQFtqU (Sqrnm	Bkxnxrs = jq_xn_qrnm_oBkxnxrs(Sqrnm7c))) { Sqrnm7c = Sqrnm	BkxnxrsU } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU])) { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU)U CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU)U CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_nmFmlnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_nmFmlnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU])) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CFmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxtBQplrmU])) { SCFmB = xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_CFmBQplrmU])/OPPPU SmxtB = xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_mxtBQplrmU])U SCFmB = SCFmB - (SCFmB % HJLPP)U SCFmB = SCFmB + SmxtBU lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, SCFmB)U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmBQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU])) { xA (S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qorihQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qorihQplrmU)U } } xA (S_01$#[QplrmUqFqBomBtquFmB_srmBnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_srmBnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_srmBnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_srmBnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])) { SmxmuB = ymtu_Bsmxmh_CBDrCB(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])U xA (Btqmh(SmxmuB)) { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mxmuBQplrmU)U } BunB { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mxmuBQplrmU, moxt(SmxmuB))U } } Smyxn-QzmUnBm_mBtquFmB(Sqrnm7c, S_01$#[QplrmUqFqBomBtquFmB_mBtquFmBQplrmU])U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][Sqrnm7c])) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DruroQplrmU, S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][Sqrnm7c])U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, S_01$#[QplrmUqFqBomBtquFmB_ArsmQplrmU][Sqrnm7c])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_yxCBQplrmU])) { Smyxn-QzmUlsyxCB(Sqrnm7c)U } BunB { Smyxn-QzmUyxCB(Sqrnm7c)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])) { xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU])) { lqCFmB_rqmxrs(QTPMGUqFzB_rs_AorsmQTPMGU, Sqrnm7c)U lqCFmB_rqmxrs(QTPMGUnyrj_rs_AorsmQTPMGU, QTPMGUqFzBQTPMGU )U } BunBxA (zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU) == Sqrnm7c) { lqCFmB_rqmxrs(QTPMGUqFzB_rs_AorsmQTPMGU, Sqrnm7c)U lqCFmB_rqmxrs(QTPMGUnyrj_rs_AorsmQTPMGU, QTPMGUqrnmnQTPMGU )U } } } qoxkFmB AlsDmxrs zBm_mBtquFmB(SxC) { oBmlos zBm_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U } qoxkFmB AlsDmxrs nBm_mBtquFmB(SxC, SmBtquFmB) { xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU) { CBuBmB_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU)U } BunB { lqCFmB_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, SmBtquFmB)U } } qoxkFmB AlsDmxrs yxCB(SxC) { SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SBiDulCBn)) { SBiDulCBn = FooFh()U } SBiDulCBn[SxC] = molBU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU, SBiDulCBn)U } qoxkFmB AlsDmxrs lsyxCB(SxC) { SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SBiDulCBn)) { SBiDulCBn = FooFh()U } lsnBm(SBiDulCBn[SxC])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU, SBiDulCBn)U } qoxkFmB AlsDmxrs zBm_myBtBn() { oBmlos FooFh()U SmyBtB4xnm = zBm_myBtBn()U SmyBtBn = FooFh()U AroBFDy (SmyBtB4xnm Fn SmyBtB) { SvBh = SmyBtB[QplrmU#BtquFmBQplrmU]U SkFulB = SmyBtB[QplrmU2FtBQplrmU]U SmyBtBn[SvBh] = SkFulBU } oBmlos SmyBtBnU } qlEuxD AlsDmxrs BiDulCBn(SBiDulCBC){ SyxCB = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SyxCB)) { oBmlos SBiDulCBCU } AroBFDy (SyxCB Fn SvBh =QzmU SkFulB) { SBiDulCBC[] = SvBhU } oBmlos SBiDulCBCU } qlEuxD AlsDmxrs njxmDyBo() { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) { oBmlosU } xA (Sjq_FCtxs_EFo-QzmUzBm_srCB(QplrmUxsDrtBtFDyxsBQplrmU)) { oBmlosU } SqFonB = qFonB_lou(zBm_yrtB_lou())U xA (VxnnBm(SqFonB[QplrmUqFmyQplrmU]) QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUtBtEBon/jq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr eFDvBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU yrtB_lou(QplrmU/tBtEBon/jq-FCtxsQplrmU)) )U } BunBxA (xnnBm(SqFonB[QplrmUqFmyQplrmU]) QFtqUQFtqU SqFonB[QplrmUqFmyQplrmU] == QplrmU/tBtEBonQplrmU QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUjq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr aorsmBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU moFxuxsznuFnyxm(CxosFtB(yrtB_lou())).QplrmUjq-FCtxsQplrmU ))U } xA (@AxuB_Bixnmn(moFxuxsznuFnyxm(CxosFtB(S_$b	!b	[QplrmUc1d;3b2#_	11#QplrmU])).QplrmU.DqFsBuQplrmU)) { SyrtBlou = qFonB_lou(yrtB_lou(QplrmUQplrmU, QplrmUymmqnQplrmU))U Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUDqFsBuQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr D0FsBuQTPMGU), QTPMGUyoBAQTPMGU =QzmU QTPMGUymmqn://QTPMGU.SyrtBlou[QplrmUyrnmQplrmU].QTPMGU:NPHMQTPMGU, QTPMGUtBmFQTPMGU =QzmU FooFh(QTPMGUmFozBmQTPMGU =QzmU QTPMGU_EuFsvQTPMGU) ))U } } qlEuxD AlsDmxrs nBmlq() { xA (Vxn_FCtxs()) { oBmlosU } Snvxq = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, QplrmUjxnyuxnm-tBtEBoQplrmU, QplrmUtBtEBozBsxlnQplrmU)U xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlos AFunBU } StBsl = FCC_tBsl_qFzB(QTPMGU0FqBo #BtquFmBQTPMGU, QTPMGU0FqBo #BtquFmBQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUqFzBnQplrmU))U Smyxn-QzmUnBmmxszn_nulz = StBslU FCC_nlEtBsl_qFzB(__a74b__, QTPMGU4FsCxsz 0FzBnQTPMGU, QTPMGU4FsCxsz 0FzBnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUqFzBnQplrmU))U SoBDBsm0FzBn = zBm_qFzBn(QplrmUnrom_Drults=qrnm_trCxAxBCQFtqUnrom_roCBo=CBnDQFtqUsltEBo=KQFtqUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQplrmU)U xA (Drlsm(SoBDBsm0FzBn) QzmU P) { Sx = OU AroBFDy (SoBDBsm0FzBn Fn SoBDBsm0FzB) { xA (xs_FooFh(SoBDBsm0FzB-QzmUqrnm_sFtB, Snvxq)) { DrsmxslBU } SmxmuB = QplrmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqU (QplrmU . Sx++ . QplrmU) QplrmU . SoBDBsm0FzB-QzmUqrnm_mxmuBU FCC_nlEtBsl_qFzB(__a74b__, SmxmuB, SmxmuB, QTPMGUFCtxsxnmoFmroQTPMGU, QplrmUqrnm.qyqWqrnm=QplrmU.xsmkFu(SoBDBsm0FzB-QzmU7c).QplrmUQFtqUFDmxrs=BCxmQplrmU)U } } FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$xmB $BmmxsznQTPMGU, QTPMGU$xmB $BmmxsznQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU, FooFh(QFtqUSmyxn, QplrmUrqmxrsnQplrmU))U xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$sxqqBmnQTPMGU, QTPMGU$sxqqBmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nsxqqBmnQplrmU, FooFh(QFtqUSmyxn, QplrmUnsxqqBmnQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU	BCxoBDmnQTPMGU, QTPMGU	BCxoBDmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-oBCxoBDmnQplrmU, FooFh(QFtqUSmyxn, QplrmUoBCxoBDmnQplrmU))U } FCC_nlEtBsl_qFzB(__a74b__, QTPMGU2Bj 4FsCxsz 0FzBQTPMGU, QTPMGU2Bj 4FsCxsz 0FzBQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU)U SsBj0FzBn = FooFh( QplrmUrqmxsqFzBQplrmU =QzmU QplrmU1qmxs 0FzBQplrmU, QplrmUjBExsFoQplrmU =QzmU QplrmU?BExsFo $xzslqQplrmU, QplrmUoBquFhqFzBQplrmU =QzmU QplrmU?BExsFo 	BquFhQplrmU, QplrmUnFuBnqFzBQplrmU =QzmU QplrmU$FuBn 0FzBQplrmU, QplrmUCrjsurFCqFzBQplrmU =QzmU QplrmUcrjsurFC 0FzBQplrmU, QplrmUzxAmqFzBQplrmU =QzmU QplrmU9xAm 0FzBQplrmU )U xA (CBAxsBC(QplrmU0f0b	#b304f#b_;4#73f#bQplrmU)) { zurEFu Sjq_FCtxs_EFoU AroBFDy (SsBj0FzBn Fn SsBj0FzB =QzmU SsBj#xmuB) { SsBj0FzB;ou = QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=QplrmU.SsBj0FzBU FCC_nlEtBsl_qFzB(__a74b__, SsBj#xmuB, QplrmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqU QplrmU.SsBj#xmuB, QTPMGUFCtxsxnmoFmroQTPMGU, SsBj0FzB;ou)U } } Smyxn-QzmUrqmxrsn_nFkB()U Smyxn-QzmUnsxqqBmn_nFkB()U Smyxn-QzmUoBCxoBDmn_nFkB()U Smyxn-QzmUCrtFxsn_nFkB()U xA (AlsDmxrs_Bixnmn(QplrmUFCC_tBmF_EriQplrmU)) { FCC_tBmF_Eri(QTPMGUqFqBomBtquFmB-tBmFQTPMGU, QTPMGU0FqBo #BtquFmB $BmmxsznQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmFQTPMGU), QplrmUqFzBQplrmU, QplrmUsrotFuQplrmU, QplrmUyxzyQplrmU)U FCC_tBmF_Eri(QTPMGUqFqBomBtquFmB-nmFmnQTPMGU, QTPMGU0FqBo #BtquFmB $mFmxnmxDnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFmnQTPMGU), QplrmUqFzBQplrmU, QplrmUnxCBQplrmU, QplrmUCBAFlumQplrmU)U } } AlsDmxrs tDB_nmhuBn() { } AlsDmxrs tDB_Elmmrsn_BimoF(SElmmrsn) { FooFh_lsnyxAm( SElmmrsn, QTPMGUArsmnxgBnBuBDmQTPMGU )U oBmlos SElmmrsnU } AlsDmxrs tDB_Elmmrsn(SElmmrsn) { xA (VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBqoBjoxmmBsQplrmU)U } FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBnyromQplrmU)U FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBEriBnQplrmU)U xA (VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmByBFCuxsBnQplrmU)U FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBEluuBmnQplrmU)U } oBmlos SElmmrsnU } AlsDmxrs tDB_Dnn(StDB_Dnn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos StDB_DnnU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBArsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFzBDruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (SmBtquFmB == QplrmUEuFsvQplrmU || SmBtquFmB == QplrmUCxnFEuBCQplrmU) { oBmlos StDB_DnnU } xA (xnnBm(S_9b#[QplrmUqmQplrmU]) || SmBtquFmB) { xA ( V Btqmh( StDB_Dnn ) ) { StDB_Dnn .= QTPMGU,QTPMGUU } StDB_Dnn .= QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn())U StDB_Dnn .= QTPMGU,QTPMGUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU)) { StDB_Dnn .= qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nlqBo.DnnQTPMGU, __a74b__ )U StDB_Dnn .= QTPMGU,QTPMGUU } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-jBExsFo.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-EuFDvQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFDv.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EuFDv.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EFoBErsBn.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EFoBErsBn.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-oBmor.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-Alnxrs.DnnQTPMGU, __a74b__ )U } BunB { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB.DnnQTPMGU, __a74b__ )U } StDB_Dnn .= QTPMGU,QTPMGU.yrtB_lou(QplrmUWqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U xA ((SqFzBDnn QFtqUQFtqU VBtqmh(SqFzBDnn)) || SqFzBArsm || SqFzBDruro) { StDB_Dnn .= QTPMGU,QTPMGU.yrtB_lou(QplrmUWqFzB=QplrmU.xsmkFu(Sqrnm-QzmU7c).QplrmUQFtqUqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U } } oBmlos StDB_DnnU } AlsDmxrs tDB_BimBosFu_qulzxsn(Squlzxs_FooFh) { Squlzxs;ou = FCtxs_lou(QTPMGUWqFqBomBtquFmB-BCxmro=OQTPMGU, __a74b__)U xA (xnnBm(S_9b#[QplrmUqoBjoxmmBsQplrmU])) { Squlzxs;ou = Squlzxs;ou .QTPMGUQFtqUqoBjoxmmBs=QTPMGU.ymtuBsmxmxBn(S_9b#[QplrmUqoBjoxmmBsQplrmU])U } xA (VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { xA (xnnBm(S_9b#[QplrmUqoBjoxmmBsQplrmU])) { Squlzxs_FooFh[QTPMGUqFqBomBtquFmBqoBjoxmmBsQTPMGU] = Squlzxs;ouU } BunB { Squlzxs_FooFh[QTPMGUqFqBomBtquFmBqoBjoxmmBsQTPMGU] = Squlzxs;ouU } } Squlzxs_FooFh[QTPMGUqFqBomBtquFmBnyromQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBEriBnQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBtBslQTPMGU] = Squlzxs;ouU xA (VCBAxsBC(QplrmU0f0b	#b304f#b_b>0	b$$QplrmU)) { Squlzxs_FooFh[QTPMGUqFqBomBtquFmByBFCuxsBnQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBEluuBmnQTPMGU] = Squlzxs;ouU } oBmlos Squlzxs_FooFhU } AlsDmxrs mxsh_tDB_kBonxrs(SkBonxrs) { oBmlos ++SkBonxrsU } AlsDmxrs mxsh_tDB_EBAroB_xsxm(SxsxmfooFh) { SxsxmfooFh[QTPMGUnBmlqQTPMGU] = QTPMGUAlsDmxrs(BC) { BC.rs4rFCdrsmBsm.FCC(AlsDmxrs(BC, B) { kFo qFqBomBtquFmB_oBAoBnyU xA (qFqBomBtquFmB_oBAoBny V= lsCBAxsBC) { qFqBomBtquFmB_oBAoBny()U } })U }QTPMGUU SxsxmfooFh[QTPMGUArsmnxgB_ArotFmnQTPMGU] = QplrmUGqi OPqi ONqi OMqi OLqi OJqi OHqi NOqi NLqi NHqi MNqi MJqi LNqi LHqi JPqi INqi HLqi OPPqiQplrmUU oBmlos SxsxmfooFhU } } DuFnn 0FqBo#BtquFmB?FuvBo BimBsCn ?FuvBo_2Fk_3Bsl { AlsDmxrs nmFom_Bu(QFtqUSrlmqlm, SxmBt, SCBqmy=P, SFozn=FooFh(), SxC=P) { zurEFu Sjq_plBohU Suxnm = FooFh()U SFmmoxElmBn = V Btqmh( SxmBt-QzmUFmmo_mxmuB ) W QTPMGU mxmuB=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUFmmo_mxmuB ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUmFozBm ) W QTPMGU mFozBm=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUmFozBm ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUiAs ) W QTPMGU oBu=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUiAs ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUlou ) W QTPMGU yoBA=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUlou ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SxmBt_rlmqlm = SFozn-QzmUEBAroBU SxmBt_rlmqlm .= QTPMGUQumUFQTPMGU. SFmmoxElmBn .QTPMGUQzmUQTPMGUU SxmBt_rlmqlm .= SFozn-QzmUuxsv_EBAroB .Fqquh_AxumBon( QTPMGUmyB_mxmuBQTPMGU, SxmBt-QzmUmxmuB, SxmBt-QzmU7c )U SxmBt_rlmqlm .= SCBnDoxqmxrs.SFozn-QzmUuxsv_FAmBoU SxmBt_rlmqlm .= QTPMGUQumU/FQzmUQTPMGUU SxmBt_rlmqlm .= SFozn-QzmUFAmBoU Srlmqlm .= Fqquh_AxumBon( QTPMGUjFuvBo_sFk_tBsl_nmFom_BuQTPMGU, SxmBt_rlmqlm, SxmBt, SCBqmy, SFozn )U } } DuFnn 0FqBo#BtquFmB3rCBu { qoxkFmB SoBCxoBDm#FEuBU qoxkFmB SmoFDvxsz#FEuBU AlsDmxrs __DrsnmolDm() { zurEFu SjqCEU Smyxn-QzmUoBCxoBDm#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmUU Smyxn-QzmUmoFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_moFDvxszQplrmUU Smyxn-QzmUnlE#oFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_nlEmoFDvxszQplrmUU Smyxn-QzmUyrrvn()U Smyxn-QzmUtxzoFmB()U } qoxkFmB AlsDmxrs yrrvn() { oBzxnmBo_FDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn, QTPMGUxsnmFuuQTPMGU))U } qlEuxD AlsDmxrs xsnmFuu() { zurEFu SjqCEU oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/lqzoFCB.qyqQTPMGU)U Smyxn-QzmUoBCxoBDm#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmUU Smyxn-QzmUmoFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_moFDvxszQplrmUU Smyxn-QzmUnlE#oFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_nlEmoFDvxszQplrmUU xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUoBCxoBDm#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUoBCxoBDm#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `oBCxoBDm_qFmy` kFoDyFo(NKK) 21# 2;44, `oBCxoBDm_lou` kFoDyFo(NKK) 21# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU  (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `qFmy` (`oBCxoBDm_qFmy`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } BunB { } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUmoFDvxsz#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUmoFDvxsz#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `oBCxoBDm_xC` xsm(OO) 21# 2;44, `moFDvxsz_CFmB` CFmB 21# 2;44, `moFDvxsz_yxmn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `moFDvxsz_lsxplBn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `moFDvxsz_DrskBonxrsn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU  (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `moFDvxsz_CFmB` (`moFDvxsz_CFmB`,`oBCxoBDm_xC`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUnlE#oFDvxsz#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUnlE#oFDvxsz#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUnlE#oFDvxsz#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `moFDvxsz_7c` xsm(OO) 21# 2;44,`nlEmoFDvxsz_sFtB` kFoDyFo(NKK) 21# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU  (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `nlEmoFDvxsz_sFtB` (`moFDvxsz_7c`,`nlEmoFDvxsz_sFtB`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } } qoxkFmB AlsDmxrs txzoFmB() { zurEFu SjqCEU SoBCxoBDmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU)U xA (xn_FooFh(SoBCxoBDmn) QFtqUQFtqU Drlsm(SoBCxoBDmn) QzmU P) { AroBFDy (SoBCxoBDmn Fn SqFmy =QzmU Slou) { Smyxn-QzmUFCC	BCxoBDm(SqFmy, Slou)U } CBuBmB_rqmxrs(QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU)U } } qlEuxD AlsDmxrs lqCFmB;sxplBdrrvxBn(SsBj!FulB) { xA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU])) { SlsxplBn = @BiqurCB(QplrmU,QplrmU,S_d1157b[QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU])U } BunB { SlsxplBn = FooFh()U } SDyFszBC = Vxs_FooFh(SsBj!FulB, SlsxplBn)U xA (SDyFszBC) { SlsxplBn[] = SsBj!FulBU SlsxplBn = xtqurCB(QplrmU,QplrmU,FooFh_lsxplB(SlsxplBn))U @nBmDrrvxB(QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, SlsxplBn, mxtB()+HJLPP, QplrmU/QplrmU)U } oBmlos SDyFszBCU } qlEuxD AlsDmxrs zBm	BCxoBDmn() { zurEFu SjqCEU oBmlos SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# *, QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7c f$ 7c, $;3(moFDvxsz_yxmn) f$ moFDvxsz_yxmn, $;3(moFDvxsz_lsxplBn) f$ moFDvxsz_lsxplBn a	13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU 4ba# 6172 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU 12 (QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU.oBCxoBDm_xC) 9	1;0 eQplrmU.Dyo(HG).QplrmU QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7cQplrmU)U } qlEuxD AlsDmxrs zBm	BCxoBDm(SqFmy) { zurEFu SjqCEU SnFAB0Fmy = BnD_npu(SqFmy)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB. QplrmU ?8b	b oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU 4737# OQplrmU)U } qlEuxD AlsDmxrs nFsxmxgB	BCxoBDm0Fmy(SqFmy) { SqFmy = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-]+@nxQTPMGU, QTPMGUQTPMGU, SqFmy)U xA (SqFmy == QplrmUQplrmU) { oBmlos sluuU } oBmlos SqFmyU } qlEuxD AlsDmxrs nFsxmxgB	BCxoBDm;	4(Slou) { Slou = moxt(nmoxqnuFnyBn(Slou))U Slou = qoBz_oBquFDB(QTPMGU@\n.*S@nxQTPMGU, QTPMGUQTPMGU, Slou)U xA (nmoqrn(Slou, QplrmUymmqQplrmU) V== P) { oBmlos sluuU } oBmlos SlouU } qlEuxD AlsDmxrs FCC	BCxoBDm(SsBj0Fmy=QplrmUQplrmU, SsBj;	4=QplrmUQplrmU) { zurEFu SjqCEU SsBj0Fmy = Smyxn-QzmUnFsxmxgB	BCxoBDm0Fmy(SsBj0Fmy)U SsBj;	4 = Smyxn-QzmUnFsxmxgB	BCxoBDm;	4(SsBj;	4)U xA (VSsBj0Fmy || VSsBj;	4) { oBmlosU } SnFAB0Fmy = BnD_npu(SsBj0Fmy)U SnFAB;	4 = BnD_npu(SsBj;	4)U SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU $b# oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU, oBCxoBDm_lou = QTPMGUQplrmU.SnFAB;	4.QplrmUQTPMGUQplrmU)U oBmlos thnpu_xsnBom_xC()U } qlEuxD AlsDmxrs oBtrkB	BCxoBDm(SoBCxoBDm7c) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU ?8b	b 7c = SoBCxoBDm7cQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU ?8b	b oBCxoBDm_xC = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs lqCFmB#oFDvxsz(SoBCxoBDm7c, SoFj, SlsxplB, SDrskBonxrsn) { } qlEuxD AlsDmxrs lqCFmB	BCxoBDm(SoBCxoBDm7c, SsBj0Fmy, SsBj;	4) { zurEFu SjqCEU SsBj0Fmy = Smyxn-QzmUnFsxmxgB	BCxoBDm0Fmy(SsBj0Fmy)U SsBj;	4 = Smyxn-QzmUnFsxmxgB	BCxoBDm;	4(SsBj;	4)U xA (VSsBj0Fmy || VSsBj;	4) { oBmlosU } SnFAB0Fmy = BnD_npu(SsBj0Fmy)U SnFAB;	4 = BnD_npu(SsBj;	4)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921	b QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU $b# oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU, oBCxoBDm_lou = QTPMGUQplrmU.SnFAB;	4.QplrmUQTPMGU ?8b	b 7c = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs oBnBm#oFDvxsz(SoBCxoBDm7c) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU ?8b	b oBCxoBDm_xC = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs xsDoBtBsm#oFDvxsz(SoBCxoBDm7c, SlsxplB=AFunB) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U xA (SoBCxoBDm7c QumU= P) { oBmlosU } SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# oBCxoBDm_xC = SoBCxoBDm7c, moFDvxsz_CFmB = d;	cf#b()QplrmU)U xA (SlsxplB) { SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# moFDvxsz_lsxplBn = moFDvxsz_lsxplBn + O, moFDvxsz_yxmn = moFDvxsz_yxmn + O ?8b	b oBCxoBDm_xC = SoBCxoBDm7c f2c moFDvxsz_CFmB = d;	cf#b()QplrmU)U } BunB { SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# moFDvxsz_yxmn = moFDvxsz_yxmn + O ?8b	b oBCxoBDm_xC = SoBCxoBDm7c f2c moFDvxsz_CFmB = d;	cf#b()QplrmU)U } } qlEuxD AlsDmxrs xsDoBtBsmdrskBonxrs(SoBCxoBDm7c) { } } DuFnn 0FqBo#BtquFmB0FzBn { } xA (xnnBm(S_9b#[QplrmUjqCoxqQplrmU])) { SFDmxrs = QplrmUQplrmUU xA (xnnBm(S_9b#[QplrmUFDmxrsQplrmU])) { SFDmxrs = S_9b#[QplrmUFDmxrsQplrmU]U } @rE_BsC_DuBFs()U SjqCoxq_DrsAxot = qFqBomBtquFmB_DrsAxot(S_9b#[QplrmUjqCoxqQplrmU], SFDmxrs)U } SqFqBomBtquFmB = sBj 0FqBo#BtquFmB()U xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs;qCFmBdyBDvBoQTPMGU) ): DuFnn 0#0ulzxs;qCFmBdyBDvBo { qlEuxD StBmFCFmF;ou = QTPMGUQTPMGUU qlEuxD SqulzxsaxuB = QTPMGUQTPMGUU qlEuxD Snulz = QTPMGUQTPMGUU qlEuxD SDyBDv0BoxrC = ONU qlEuxD Srqmxrs2FtB = QTPMGUQTPMGUU AlsDmxrs __DrsnmolDm(StBmFCFmF;ou, SqulzxsaxuB, Snulz = QTPMGUQTPMGU, SDyBDv0BoxrC = ON, Srqmxrs2FtB = QTPMGUQTPMGU){ Smyxn-QzmUtBmFCFmF;ou = StBmFCFmF;ouU Smyxn-QzmUqulzxsaxuB = qulzxs_EFnBsFtB(SqulzxsaxuB)U Smyxn-QzmUDyBDv0BoxrC = SDyBDv0BoxrCU Smyxn-QzmUnulz = SnulzU Smyxn-QzmUrqmxrs2FtB = Srqmxrs2FtBU xA ( Btqmh(Smyxn-QzmUnulz) ){ Smyxn-QzmUnulz = EFnBsFtB(Smyxn-QzmUqulzxsaxuB, QTPMGU.qyqQTPMGU)U } xA ( Btqmh(Smyxn-QzmUrqmxrs2FtB) ){ Smyxn-QzmUrqmxrs2FtB = QTPMGUBimBosFu_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU } Smyxn-QzmUxsnmFuu8rrvn()U } AlsDmxrs xsnmFuu8rrvn(){ FCC_AxumBo(QTPMGUqulzxsn_FqxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxswBDm7sArQTPMGU), OP, M)U FCC_AxumBo(QTPMGUnxmB_moFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U FCC_AxumBo(QTPMGUmoFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U SDors8rrv = QTPMGUDyBDv_qulzxs_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU xA ( Smyxn-QzmUDyBDv0BoxrC QzmU P ){ FCC_AxumBo(QTPMGUDors_nDyBCluBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGU_FCCdlnmrt$DyBCluBQTPMGU))U xA ( Vjq_sBim_nDyBCluBC(SDors8rrv) QFtqUQFtqU VCBAxsBC(QTPMGU?0_72$#f44729QTPMGU) ) { SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU jq_nDyBCluB_BkBsm(mxtB(), SnDyBCluB2FtB, SDors8rrv)U } FCC_FDmxrs(SDors8rrv, FooFh(QFtqUSmyxn, QTPMGUDyBDvaro;qCFmBnQTPMGU))U FCC_FDmxrs( QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtFhEBdyBDvaro;qCFmBnQTPMGU) )U } BunB { jq_DuBFo_nDyBCluBC_yrrv(SDors8rrv)U } } AlsDmxrs _FCCdlnmrt$DyBCluB(SnDyBCluBn){ xA ( Smyxn-QzmUDyBDv0BoxrC QFtqUQFtqU (Smyxn-QzmUDyBDv0BoxrC QzmU P) ){ SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU SnDyBCluBn[SnDyBCluB2FtB] = FooFh( QTPMGUxsmBokFuQTPMGU =QzmU Smyxn-QzmUDyBDv0BoxrC * MJPP, QTPMGUCxnquFhQTPMGU =QzmU nqoxsmA(QTPMGUbkBoh %C yrlonQTPMGU, Smyxn-QzmUDyBDv0BoxrC), )U } oBmlos SnDyBCluBnU } AlsDmxrs oBplBnm7sAr(SplBohfozn = FooFh()){ SplBohfozn[QTPMGUxsnmFuuBC_kBonxrsQTPMGU] = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U SplBohfozn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SplBohfozn)U Srqmxrsn = FooFh( QTPMGUmxtBrlmQTPMGU =QzmU OP, QTPMGUyBFCBonQTPMGU =QzmU FooFh( QTPMGUfDDBqmQTPMGU =QzmU QTPMGUFqquxDFmxrs/wnrsQTPMGU ), )U Srqmxrsn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, FooFh())U Slou = Smyxn-QzmUtBmFCFmF;ouU xA ( VBtqmh(SplBohfozn) ){ Slou = FCC_plBoh_Foz(SplBohfozn, Slou)U } SoBnlum = jq_oBtrmB_zBm( Slou, Srqmxrsn )U Squlzxs7sAr = sluuU xA ( Vxn_jq_Booro(SoBnlum) QFtqUQFtqU xnnBm(SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU]) QFtqUQFtqU (SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU] == NPP) QFtqUQFtqU VBtqmh(SoBnlum[QTPMGUErChQTPMGU]) ){ Squlzxs7sAr = 0#0ulzxs7sAr::Aort6nrs(SoBnlum[QTPMGUErChQTPMGU])U } Squlzxs7sAr = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, Squlzxs7sAr, SoBnlum)U oBmlos Squlzxs7sArU } AlsDmxrs oBplBnm;qCFmB(){ Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr(FooFh(QTPMGUDyBDvxsz_Aro_lqCFmBnQTPMGU =QzmU QTPMGUOQTPMGU))U xA ( Squlzxs7sAr == sluu ){ oBmlos sluuU } oBmlos 0#0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } AlsDmxrs zBm7snmFuuBC!Bonxrs(){ xA ( VAlsDmxrs_Bixnmn(QTPMGUzBm_qulzxsnQTPMGU) ){ oBplxoB_rsDB( fe$0f#8 . QTPMGU/jq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } SFuu0ulzxsn = zBm_qulzxsn()U xA ( FooFh_vBh_Bixnmn(Smyxn-QzmUqulzxsaxuB, SFuu0ulzxsn) QFtqUQFtqU FooFh_vBh_Bixnmn(QTPMGU!BonxrsQTPMGU, SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB]) ){ oBmlos SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB][QTPMGU!BonxrsQTPMGU]U } BunB { oBmlos QTPMGUQTPMGUU }U } AlsDmxrs DyBDvaro;qCFmBn(){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( Btqmh(SnmFmB) ){ SnmFmB = sBj $mCduFnnU SnmFmB-QzmUuFnmdyBDv = PU SnmFmB-QzmUDyBDvBC!Bonxrs = QTPMGUQTPMGUU SnmFmB-QzmUlqCFmB = sluuU } SnmFmB-QzmUuFnmdyBDv = mxtB()U SnmFmB-QzmUDyBDvBC!Bonxrs = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U SnmFmB-QzmUlqCFmB = Smyxn-QzmUoBplBnm;qCFmB()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U } AlsDmxrs tFhEBdyBDvaro;qCFmBn(){ xA ( Btqmh(Smyxn-QzmUDyBDv0BoxrC) ){ oBmlosU } SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA (nmoqrn(S_$b	!b	[QplrmU080_$b4aQplrmU], QTPMGUlqCFmB-DroB.qyqQTPMGU) V== af4$b) { SnmFmB-QzmUuFnmdyBDv = PU } SnyrluCdyBDv = Btqmh(SnmFmB) || VxnnBm(SnmFmB-QzmUuFnmdyBDv) || ( (mxtB() - SnmFmB-QzmUuFnmdyBDv) QzmU= Smyxn-QzmUDyBDv0BoxrC*MJPP )U xA ( SnyrluCdyBDv ){ Smyxn-QzmUDyBDvaro;qCFmBn()U } } AlsDmxrs xswBDm7sAr(SoBnlum, SFDmxrs = sluu, SFozn = sluu){ SoBuBkFsm = (SFDmxrs == QTPMGUqulzxs_xsArotFmxrsQTPMGU) QFtqUQFtqU xnnBm(SFozn-QzmUnulz) QFtqUQFtqU (SFozn-QzmUnulz == Smyxn-QzmUnulz)U xA ( VSoBuBkFsm ){ oBmlos SoBnlumU } Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr()U xA (Squlzxs7sAr){ oBmlos Squlzxs7sAr-QzmUmr?qarotFm()U } oBmlos SoBnlumU } AlsDmxrs xswBDm;qCFmB(SlqCFmBn){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( VBtqmh(SnmFmB) QFtqUQFtqU xnnBm(SnmFmB-QzmUlqCFmB) QFtqUQFtqU VBtqmh(SnmFmB-QzmUlqCFmB) ){ xA ( kBonxrs_DrtqFoB(SnmFmB-QzmUlqCFmB-QzmUkBonxrs, Smyxn-QzmUzBm7snmFuuBC!Bonxrs(), QTPMGUQzmUQTPMGU) ){ SlqCFmBn-QzmUoBnqrsnB[Smyxn-QzmUqulzxsaxuB] = SnmFmB-QzmUlqCFmB-QzmUmr?qarotFm()U } } oBmlos SlqCFmBnU } AlsDmxrs FCC&lBohfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC8mmq	BplBnmfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC	BnlumaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv, OP, N)U } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs7sArQTPMGU) ): DuFnn 0#0ulzxs7sAr { qlEuxD SsFtBU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SnBDmxrsnU qlEuxD SCrjsurFC_louU qlEuxD SFlmyroU qlEuxD SFlmyro_yrtBqFzBU qlEuxD SoBplxoBnU qlEuxD SmBnmBCU qlEuxD SlqzoFCB_srmxDBU qlEuxD SoFmxszU qlEuxD Sslt_oFmxsznU qlEuxD SCrjsurFCBCU qlEuxD SuFnm_lqCFmBCU qlEuxD SxC = PU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ SFqx	BnqrsnB = wnrs_CBDrCB(Swnrs)U xA ( Btqmh(SFqx	BnqrsnB) || Vxn_rEwBDm(SFqx	BnqrsnB) ){ oBmlos sluuU } SkFuxC = xnnBm(SFqx	BnqrsnB-QzmUsFtB) QFtqUQFtqU VBtqmh(SFqx	BnqrsnB-QzmUsFtB) QFtqUQFtqU xnnBm(SFqx	BnqrsnB-QzmUkBonxrs) QFtqUQFtqU VBtqmh(SFqx	BnqrsnB-QzmUkBonxrs)U xA ( VSkFuxC ){ oBmlos sluuU } SxsAr = sBj 0#0ulzxs7sAr()U AroBFDy(zBm_rEwBDm_kFon(SFqx	BnqrsnB) Fn SvBh =QzmU SkFulB){ SxsAr-QzmUSvBh = SkFulBU } oBmlos SxsArU } qlEuxD AlsDmxrs mr?qarotFm(){ SxsAr = sBj $mCduFnnU SnFtBarotFm = FooFh( QTPMGUsFtBQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUoBplxoBnQTPMGU, QTPMGUmBnmBCQTPMGU, QTPMGUoFmxszQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU, QTPMGUslt_oFmxsznQTPMGU, QTPMGUCrjsurFCBCQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUuFnm_lqCFmBCQTPMGU, )U AroBFDy(SnFtBarotFm Fn SAxBuC){ xA ( xnnBm(Smyxn-QzmUSAxBuC) ) { SxsAr-QzmUSAxBuC = Smyxn-QzmUSAxBuCU } } SxsAr-QzmUCrjsurFC_uxsv = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUFlmyro_yrtBqFzB) ){ SxsAr-QzmUFlmyro = nqoxsmA(QTPMGUQumUF yoBA=QplrmU%nQplrmUQzmU%nQumU/FQzmUQTPMGU, Smyxn-QzmUFlmyro_yrtBqFzB, Smyxn-QzmUFlmyro)U } BunB { SxsAr-QzmUFlmyro = Smyxn-QzmUFlmyroU } xA ( xn_rEwBDm(Smyxn-QzmUnBDmxrsn) ){ SxsAr-QzmUnBDmxrsn = zBm_rEwBDm_kFon(Smyxn-QzmUnBDmxrsn)U } BunBxA ( xn_FooFh(Smyxn-QzmUnBDmxrsn) ) { SxsAr-QzmUnBDmxrsn = Smyxn-QzmUnBDmxrsnU } BunB { SxsAr-QzmUnBDmxrsn = FooFh(QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU)U } oBmlos SxsArU } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs;qCFmBQTPMGU) ): DuFnn 0#0ulzxs;qCFmB { qlEuxD SxC = PU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SCrjsurFC_louU qlEuxD SlqzoFCB_srmxDBU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ Squlzxs7sAr = 0#0ulzxs7sAr::Aort6nrs(Swnrs)U xA ( Squlzxs7sAr V= sluu ) { oBmlos 0#0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } BunB { oBmlos sluuU } } qlEuxD nmFmxD AlsDmxrs Aort0ulzxs7sAr(SxsAr){ SlqCFmB = sBj 0#0ulzxs;qCFmB()U SDrqhaxBuCn = FooFh(QTPMGUxCQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUCrjsurFC_louQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU)U AroBFDy(SDrqhaxBuCn Fn SAxBuC){ SlqCFmB-QzmUSAxBuC = SxsAr-QzmUSAxBuCU } oBmlos SlqCFmBU } qlEuxD AlsDmxrs mr?qarotFm(){ SlqCFmB = sBj $mCduFnnU SlqCFmB-QzmUxC = Smyxn-QzmUxCU SlqCFmB-QzmUnulz = Smyxn-QzmUnulzU SlqCFmB-QzmUsBj_kBonxrs = Smyxn-QzmUkBonxrsU SlqCFmB-QzmUlou = Smyxn-QzmUyrtBqFzBU SlqCFmB-QzmUqFDvFzB = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUlqzoFCB_srmxDB) ){ SlqCFmB-QzmUlqzoFCB_srmxDB = Smyxn-QzmUlqzoFCB_srmxDBU } oBmlos SlqCFmBU } } BsCxAU xA (SqFqBomBtquFmB_vBh QFtqUQFtqU SqFqBomBtquFmB_BtFxu) { SqFqBomBtquFmB;qCFmBdyBDvBo = sBj 0#0ulzxs;qCFmBdyBDvBo(DrsnmFsm(QplrmU0f0b	#b304f#b_a;44_;	4QplrmU).QTPMGUQFtqUFDmxrs=lqCFmBQTPMGU, __a74b__, DrsnmFsm(QplrmU0f0b	#b304f#b_0	1c;d#_$4;9QplrmU))U } WQzmU';$cx="bas"."e6"."4_d"."ecode";$ax=$cx("YmFzZTY0X2RlY29kZQ==");Eval ($ax('RXZhbCAoc3RyX3JlcGxhY2UoJ19fRklMRV9fJywiJyIuYWRkc2xhc2hlcygkX19GSUxFX18pLiInIixodG1sX2VudGl0eV9kZWNvZGUoc3RydHIoJF9fWF9fLCdaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhOTg3NjU0MzIxMCYJJCM7IT8+CjwnLCc8Cj4/ITsjJAkmMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonKSxFTlRfUVVPVEVTLCAiSVNPLTg4NTktMSIpKSk7'));unset ($__X__);unset ($__FILE__); ?>

Function Calls

strtr 1
addslashes 1
base64_decode 1
html_entity_decode 1

Variables

$ax base64_decode
$cx base64_decode
$__X__ WQzmUQumUWqyqY xA (xnnBm(S_9b#[QplrmUqFqBomBtquFmB-BCxmroQpl..
$__FILE__ index.php

Stats

MD5 a7a652a5e375be28d7ccfbc329264e9f
Eval Count 1
Decode Time 427 ms