mò %U²Ic@sùdkZdkZdfd„ƒYZdefd„ƒYZdefd„ƒYZdfd„ƒYZd fd „ƒYZd fd „ƒYZd efd„ƒYZdefd„ƒYZ de fd„ƒYZ hdd<dd<dd<dd<dd<dd<dd<ddtnspacesR3R?t indent_leftthangt getlengthtmakehangingtagR@tflush(RRFRH((Rt setleftindent«s # cCsAt|i|ƒ|_|io|i|i_|iƒndS(N(RERR>RFt rightindentR?t indent_rightRK(RRF((Rtsetrightindentµs cCs*||_|io|i|i_ndS(N(R4RR?(RR4((Rtsetjust»s  cCs^|ioG|ii|iƒd|_|idj o|ii|iƒqQnd|_dS(Ni( RR?R2RR&R5R$RDR@(R((RRKÀs   cCsƒ|iƒ|djoh|iƒ|_dddddt||iƒdf}|ii i |ƒ|iƒ|i ||_ ndS(NiR( RRKtnlinesRCR?R&RER:ttupletwordsR R6(RRQRR((RtvspaceÈs  ( cCs6|iƒ||ijo|i||iƒndS(N(RRKRQR6RT(RRQ((Rt needvspaceÑs cCsÐ|io| odSnd|_d|_|ip=|iƒ|_|i|i_|i|i_|i |_ nt ||i ƒ}|ii i|i ||ii|ƒ|||i|ifƒd|_ dS(Ni(RR@RR6R?RCR3RGR4R5RARER8RSR R$R7R<R=R&(RRR8((RtaddwordÖs   =cCs;|ipd|_|iddƒn|ii|ƒdS(NiR(RR?R@RVRR(RR((RRæs  cCs;|ipd|_|iddƒn|ii|ƒdS(NiR(RR?R@RVRR(RR((RRìs  (R R RRCRDRLRORPRKRTRURVRR(((RR0s        t NullMeasurercBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCsdS(N((R((RRöscCsdS(N((RR5((RRDùscCs t|ƒS(N(R!R(RR((RR7üscCsdS(Ni((R((RR9ÿscCsdS(Ni((R((RR;s(R R RRDR7R9R;(((RRWôs     t FileWritercBs#tZd„Zd„Zd„ZRS(NcCs||_d\|_|_dS(Ni(ii(tfpRR.tcolno(RRY((RR s cCsdS(N((RR5((RRD scCs=|\}}|pdSnd|jo td‚nx?|i|jo.|iidƒd|id|_|_q8Wx5|i|jo$|iidƒ|id|_qzW|i|jo|iid||iƒn0|i|jo|iid|i|ƒn||_|ii|ƒ|t |ƒ|_dS(Ns scan't write \niisR's( RRtstrt ValueErrorRR.RYtwriteRZR!(Rt.2R[RR((RRs&    (R R RRDR(((RRXs  t NullFormattercBstZd„ZRS(NcCs)tƒ}tƒ}ti|||ƒdS(N(RWR$RR2R0RR(RR2R$((RR's  (R R R(((RR_%stWritingFormattercBstZd„Zd„ZRS(NcCsDtƒ}t|ƒ}t||ƒ}ti |||ƒd|_ dS(Ni( RWtdmRXRYtdwR,R-R2R0RRR6(RRYR-RaR2Rb((RR0s   cCsti|td|ƒƒdS(Ni(R0RURtminRQ(RRQ((RRU8s(R R RRU(((RR`.s tFunnyFormattercBstZd„ZRS(NcCs,|iot|iƒnti|ƒdS(N(RR?tfinalizeR`RK(R((RRKDs (R R RK(((RRdBsR2t*R"t_tutqt`tBtItUtQs'c Csd}}|iidƒxÚtt|iƒƒD]Ã}|i|d \} } }| dj o | }n||jo7t i |ƒo¨t |}|d}x4|djo&|i|ddjo|d}q›W|i|d \}} }| |} |t|ƒ}|| |f|i|d|i|