h H__PAGEZERO(__TEXT@@__text__TEXT.].__stubs__TEXTL<L__stub_helper__TEXTt__cstring__TEXT__const__TEXT$__unwind_info__TEXT?H?__DATA_CONST@@@@__got__DATA_CONST@@__const__DATA_CONST@#@8__DATA@@__la_symbol_ptr__DATAP__data__DATAPP__bss__DATA`H__LINKEDIT0303"0x  P& /usr/lib/dyld"~V3miI]:Y2   4*(^/ 8'/usr/lib/libSystem.B.dylib /usr/local/lib&p)(UHSPHH=Hf1R1_H=HfH1_H=BfH1~_ z_H=ft_ d_H=f^_H=fR_H=fF_H=g:_H=g._H=lg"_H=gH[]_UHAWAVAUATSPIAL&|2I^H5eHw_+H5eH`_0QIH?LtLH5}eLLCAHeH}eHDH5`eLCL\Au1UuLoL11L #MfA|H5eL^LLn"H5dLHBAIVLD7I^H5dHU^t8LHǩ:H=d11R1]L1H5dLÃuhLqAIVLDIvLڨt͉I?LuL Ic6H H H%\ \tu L)]1LTH[A\A]A^A_]UHAVSH諲H`L0H;| H5cLH1[A^]{[UHAWAVAUATSPIAH11TIDuE~.DmE1K4Hߺ HLHdIM9uH5vcHL@HcuHRH5]cHHH[A\A]A^A_]@UHSPHH5dHduAt H[]H5dH dHߺH[]饦UHSPHWHHHjH`UHHH,H0HUH;HVHhVHCHpFH]THVHJU1H[]UHAWAVAUATSH(IIIMH5j1LH14AHMuH I9Fu I9^HjLL)t9Au/MuH>LHH5jLLH1+4QMuEHpLL3)tMHXpLHrH@I7FHNLIH] HH([A\A]A^A_]DeHuLgHH]HtZILmE1H]LL(u,H3HcULgZu MIHS H HuMtH;IDLmH;ta}H5iLI@I7FHNL2M7IULHKIcF HHwMu}MeHLHu5H5iH lIFHtH@HtLLH IFHMINHH)HAF DeACA9|CA9xH5hLI@I7FHNLBM7IULH[I7Hh1L11HEL0}tHĉLHuL`HLHu(H5hH h1LLMI11UHAWAVATSH IHIHE HHE117OIH3Ht1H CuLLLH&_H3H HuH5vLHUHLzLII$uLWLHLiHHHH;EuHH [A\A^A_]TUHAWAVSPIHHt%L;HH lHLHE11=H3IH11+INHt&9t!H3HlHE11H[A^A_]H[A^A_]UHAWAVATSHIHIFHNuIGLHLLхybM?H5GfLzI@I6FHNLM&LHLI6HfL11I[A\A^A_]UHAWAVSPIAHHDLxHHDLH[A^A_] UH1]UHAWAVATSIL=HXLxLuLeLLLJHH9`HXtLuLLxHLHcMH9`Lu~LLLHH9`Hc IDDLE1MHI9keXpyIcH(H4H}H@7K@H]H覇tHHhEd McH(J1H]HH;Eu;HH[A\A]A^A_]Å.HUBH5ZH}1?"|FxdUHAVSHIHHutHIHuHwH[A^]UHAWAVSPIIH]HUH\t.HcLHLHMtI9tHcMHH[A^A_]LL H[A^A_]QHUHAWAVATS?AtLHH9tDt;HL=A@x ADu HPHCHtH@HtLHL{CCCH[A^A_]UHAWAVAUATSPAIIAu L<IEt+AD$Hc111HMcHLL:B+H1IEfIFLH[A\A]A^A_]UHAWAVATSAHIHzALHމMH QHHD`Dp[A\A^A_]UHAWAVSPAI/HL0AtDL4;CHCHH[A^A_]UHAWAVATSAIHoAu L:IƋKSB19| tH7ADMHH 0At$1H9HE/HDcKHcHMcLL9HHcKL{xHc{H;DxwCDs[A\A^A_]UHAWAVSPHIIHHu HCHPHKLLH[A^A_]UHAWAVSHIHLIWIOMG MO(t,)@)P)`)p)e)m)u)}HHHEL}HEHEH0HEMH(wHHEЃM HEHHHMHHtHL;H?HH;EuH[A^A_]6UHAWAVATSH9tTIHL7Mu HCHPL3Lc{I<$u ID$LP1E;|$uI4$LL71[A\A^A_]UHAWAVAUATSPAIHL>Mu HCHPL;DcIUHuIELPIUAMLDEH[A\A]A^A_]UHAWAVAUATSH(E1DEEXI׉IADmAZM~+[tR\Mn1A~MD)H]?uyLHu*uzJ (HA)ID$1Hr<*u9HuA)1DKUHAWAVAUATSPMIHIL&Mu HCHPL#LH,AIHu IFLPILL LDHډDEH[A\A]A^A_]UHAWAVAUATSHA9uԉMDLEtBEIHHHuD.ALHuDM+Mu)HIIcHAu1ɋEЋU99¸M DH[A\A]A^A_]UHAWAVAUATSHIHIL>MuHCHIPLL;DsHEH$LELMLLHDGt1HcEЋUHuD9uHH[A\A]A^A_]ILLH[A\A]A^A_]6UHAWAVAUATSPLMLAIILCAuTLLL}LCu>HME19оACƉ3A9кACADHL0JDH[A\A]A^A_]UHAWAVAUATSH(IIHIHHu HCHPHHECELHAHEH$LELMLLLDt1EMHcuDeHuE9tgA9H]uHLHDH([A\A]A^A_]HYrLcILDHrALLHHHCDsDcHH([A\A]A^A_]UHAWAVAUATSH8MIHIIHMH $LELMLHމLtE1]L}D}DeE9I]HuIELPI]HDqLH]Hމ‰IHIEA]EeHUHt LLAwH]H6qHcHA׋MDLLLH8[A\A]A^A_]UHAWAVATSIHIHFL%L9uL9stHH3Hu HPH3Lr11u,HCL9tHtH@HtLHLcLs[A\A^A_]UHSPH%HtH$ @$ }H[]UHAWAVAUATSHxHIH9(uI HKHH9uHCxgH;Hu HQH;HKLuЋCH56H9uS HhHcHxHIHALeHpI<$HuAt$WAD$AD$ AT$ H IL$0AT$8LhI2A@t$H]#uM}8L }uHEHEHHEEEE}tE"E;Is}LTHHshE}H]EED3ExHRBD:u@~:u:HƋSʀ~:HvtMn`MeLLHLAMnXI}HLE1HCHtH@HtLHHRHCIEHC L{Dc(!AD$H3FHNLL#1H[A\A]A^A_]UHAWAVAUATSPIHFH H9tIH H9u-AdY1A(IHLXIW E1H;7M'Mu LPM'Ic_Ht$B|#)uL(AdHA<$:uJA|$:uBIA|$:Md$tMMv`LLEII~H{HtWHXSMMvXI~L]Ht HXE1HuELmI~@AHtqL1HtdHXE1Lm1LL@AHt9IGHtH@HtLLHIGIIG I_Eg(E1ADH[A\A]A^A_]UHAWAVATSIHI HsHS LMA9Aƅt"MtEH2H52LH1ZOI(CI7FHNLaI'HsL1mHt H572LH1 D[A\A^A_]Hl2UHAWAVSPIIH@LHLANjCHK LHDH[A^A_]UHAVSHLwXHG`HGXLsX[A^]UHAWAVSPIIHֺH@LLHSANjCHK LHWDH[A^A_]UHAWAVAUATSH(HMIIItdu#H5,AIEHx+H@I]HuIELPI]Ee;:u{:uHAÀ{:H[tIG`IGXHI6HHUuIFLPHUI6>:u0~:u*AVHʀ~:HvtLIIO`HUHMAFB;A}2H53,LL1AFHANAkLLBLuHMH9thLLH]HIEHMHHCHKE1'LHH5+LL1ADH([A\A]A^A_]IcHELuI>u IFLPE9fu%I>Hu IFLPI>HHU+t*LLHM;IFH9H-L0H5}+LH@I7FHNLIHuȋFHNA,LUHAWAVAUATSPItMLH[A\A]A^A_]AHLdt>u/IFHHHtuLkXHKXH0HDILkXHuAu1E1HL薁IvIV HDH[A\A]A^A_]靂H5*E1HL1UL MUHAVSHLwXHG`HGXLsX[A^]UHAWAVSPAI`H@LHDINjCHK LHLH[A^A_]UHAVSHLwXHG`HGXLsX[A^]UHAWAVAUATSPAIIt&ÃdLL1H[A\A]A^A_]GIFHHHt#Ml$XIL$XH0L1Ml$XA~(t/IHu IFLPIAV8:u*Hpʀx:HtID$XHEHxL0HI\$`L)IH]H{HLL|t/tAtH5(LL1.H[A\A]A^A_]I$HHI$HMH1UHAWAVAUATSHIHII1 IL(AELpMtAFI$@HHI$@LmIEI$HLLLMH HHHIMHHHELx I$@HHu HCHPHCLLc1L%HUA_L9}4<_t+@x AD{)>IB|+_t)@xH D<! tEIuNjC%LmAECA)EAEH]LH޺ xHEH3Lt;1LLL19I\$ HHH;EunHH8[A\A]A^A_]IHHuHt;HXID$HtH@HtLLHID$HEID$I\$ L=)iUHAWAVSPII(Ht.HAFHpHtFHNLLs1H[A^A_]UHSPHHt H@H1H[]UHAWAVAUATSHxHHHEHxHLJx1H`WxEH 8HhHpH}LML5$IEHt@ H H9I}Hu LPI}EeA*?:u:u LAILOHHEMLH)H*|x{)>ur{>ul{.ufH{1 !E1L9AH}H`LH*H*HLHHuIMH}H`LAMm8MHEHHAE1E1EMMuAHED;`EHIcL,MtMuM}IHEH`Hu:HuIEHx+1HECHHEIHEHPH5'1HEH@HEH}HMH@*H@HEHEHHEHE@H}HHE@HU*HUHE@H2FHN H}HUHuH2FHN H}HuFHN H}dEHLsH`HMH;17H]H@Hx#HE1H H H;MuHx[A\A]A^A_] UHAVSHIHMEtHӃzuHhHHtH9tHuL1H[A^]UHAWAVAUATSPII~XA1I AHI9uLLCA1I4܋FHNLFHI9uDH[A\A]A^A_]LLH[A\A]A^A_]YCUH1]UHAWAVATSE1H1HþHH HHCHL{hWDH HCpH[xLH`DpHHPHXLDHHHLD8(H%HL HL5L0DxLxH(HL%L`L8H@H0HqL`L8LxH8H(H1hHC`HCXH(HCHH0H QHHL8W@HH5/HߺHH5HߺHH(HHL0DxLxHHL0DxLxH HHH(AHKAH AHAHAHAHA@H@H0@H8@H5\H_HH5xL5HLH5JHXHH5MHWHH5OH_HyH5UHjHcH5]HnHMH5lHL;H5qHL)HeL`L8ALpH5^HHH:L`L8LpH5SHH]H[A\A^A_]UHSPHH HHHHXH[]UHAWAVATSIIHHHt7HHpH1HHP@XHH@W@`HHpHeE1侨1W@@0@ @@@P@`@pLL`@(@8H zHHHX HHQHHLxHMtAO1ɉHLpxAF[A\A^A_]UHAWAVSPAIHHHCHWCEtH1DL9HH[A^A_]UHAWAVSPILJH_XHt#L1 L{HLH1:LMuI(FHNLI0FHNL}I8FHNL`I6FHNLGIFHNL*IFHNL IFHNLIFHNLIvFHNLIFHNLI FHNLIIHtH_1`IHHu1AI~hJI~h13I^hWAAIHIH1IHWA`ApII1IWA(A8I1II1IWAAIHtFHNLPIHtH_818HHuIHtIL{pH{t+H{H{1HCWC(C8H1LMuHL1H[A^A_]UHAWAVAUATSPIHXIHnHHxIL1HIlj]LH Ew AGMeAD$I(CAD$HAL$ LL%I]E~(ALLDkLH0>tۉÃ}u&AD$IuFHNLMe]AD$HAL$ LLAGHAO LLH[A\A]A^A_]UHAWAVAUATSHAIIHHD}LuMl$hH]ЍH HKHL|MLLHt\ILHpLnMt.HFLpID$pH@Ht I|$xLIFIHLMnIH]AGHAO LLVH{1H1LuD}Iv`HtFHNLXIvhHtFHNL9IvxFHNLEtA~(u I~-I~ I~1IFWAF(AF8I$IFpM$H[A\A]A^A_]UHAWAVAUATSHIHtbHL&Mu HCHPL#A<$#uWM|$H]HULH\tqHcLLmHL5I9]tVHcMH]IFXHc@HL%B_HJH9CtLH޺t\HKHxSIFXHc@H)'HuL A?t HMȀ9tHHt2~I^XHtHcKH9t"H[HH51LL1iI^`HH[A\A]A^A_]UHAWAVSPIHHH9FtAH޺t HCIE1DH[A^A_]UHAWAVATSIIIH1 L LpHHLH[A\A^A_]UHH調Ht H@H@1]UHH]ѽUHG0]UHAWAVSPIHHH9FtAH޺t HCIE1DH[A^A_]UHAWAVAUATSHIHFH H9teAH}I]Hu LPI]LuHLFII6H覷t:AAH5H}L1HIEHLHwL8"uBH5H]HߺI@H3FHNHqL3A-IEHtH@Ht H}LHlIEM}E1DH[A\A]A^A_]UHAWAVAUATSPIHIHFH UH9tHuLH1HCL5 L9t:LeALHrAAt H5LH1zHtIIIuKID$>Ex?ID$HtH@HtLLH<ID$1AID$HUЉ1H5LL1H[A\A]A^A_]UHAWAVAUATSPIA։IDo C4.;w$~EADLqAHHcHL}I_MMcJ1HL1Hh[A\A]A^A_]LuLuEEHHEHxFHNH}Hh[A\A]A^A_]餵Hh[A\A]A^A_]UHAWAVSPIIHHLI?HtHkH9t1VIAV INLH[A^A_]aUHSPHNC H[]UHAWAVAUATSPMAωI&x Ee A9| E1DII}HtHH9t1IELDDLH[A\A]A^A_]UHAVSIxA9^ AF 9~IFHcH1[A^]UHAWAVATSEHIHE1HuDAAt8H5EL誶I@I4$FHNLM<$D[A\A^A_]UHAWAVAUATSH8MAHUHIHHMH]Le|LLHfLANMHEIAEHEE1L}MHEJ4HHUUDeHLDH!Iǃx|"HLIHLDHE1I>HtHH9t1IIL9mkHcEHMH4HUHUHLHMAI?HtHH9t1vILuI>HtHdH9t1OIHHuL4uALuAFH3FHNHL310HEJH51H1}| HHuH8[A\A]A^A_]UHAWAVAUATSHHIHFH ңH9H H9IH]IHu LPIH5H)AMt}AEHULL!AEHAM LL+H5fLL1IFHxgH9|eEfHECt*-t+uHLH޺=IHI1H]L-?b^HEEL-tHILIH]AHH]HIIFHtH@HtLLMnEfD#1H[A\A]A^A_]UHAWAVAUATSPEIΉII%x A9\$ KAD$ 9~>ID$HcH؋HQPID$H4L貯ID$L4AF1AAt6H5LI@I7FHNLcM7H[A\A]A^A_]UHAWAVAUATSHMHUIHXE|$ H迮IHIEAEIEE~>AE1HLDHHLHuIvAV L\LLEn A1D(HIFHCLuAN$K$EE1J4H`tNHKLcJ4FPV LxHKJDJHCJ4FHNIHuL@=H9uYtt.yt){u1ILP`DždL=>L?lu1LkHHCHX)H1)HPX)‹dD`H87hJIGH@HILXDždL@뒃[XILP`DždL`=bILP`L>d?LN:1d  dLXIL@ˉHtL(L/iuDH8HHH9H8t1CHK;LHϚ+LuIH8IFIFL0Mn(H8IF0HcDHH4E11|HIF8HcDHH4HZI^@WAFLL11AjÅHcE1Ht\HHMHML|MH8HHH9t1H51L(LL0L1觱AE1}t=H5+L8H@I4$FHNL苙I$H}1vt!HuHEH)HiLo1B1DH@L8HEHCHMH)HỉC9DHHH8H9t1E1HAH8FHNL͘IEHtH@HtLLI]HIEEt1HFHH;EuHHĨ[A\A]A^A_]f sssssssssss>>?LLLLLL?UHttuHFHv1]鈽Hv]1]UHAWAVATSHI|!H@H LH[A\A^A_]dAȃH HcHH^CI4$FHNLߖI$uA$umHvHUL1"uWH]HvAL躼 HvLHt'I@I4$FHNLhM<$E1DH[A\A^A_]A$uHvLH[A\A^A_]^f,Sz,,,UHAVSIHt[A^]H3H+t1tuAոAUHAWAVSHHFIHH9FtJLH޺ u5HULH(tUHULHAuE1}E1H{ANjCHK LH DH[A^A_]fWEfI~AUHAWAVAUATSHAIHH}HHHMHu)HCHPH HHMHuHCHP1HEMl$Iu(Ht@AH]t/HߺI@H3FHNHIL316HcCHEH]H˓IH)IAGE1MwAGH裓IHID$M4$WAD$1H`M9u t21H}LLHI;] rH}LID$H`LpI}3AE1E1LmL}LHAD5TEHu,J.HTHKEH`AD9u^D)ELuHEHH@HEEE1LeH]AExHD<@!@AHutRLmE9}vIcI)H]E1B<#@xHVD<@!@At$IM9uXIcHMD:,ALmELmLeHuH]E9HEHFl1IE+)E1YE1L}LeLuHuALE1ADE1<t L}Lu9LmLuȍHwɺHrQH]LeIcD{H];@xHWD<@! @AHÅuH]LeHuDMcMI)HHuH]H5 AHUH߉ƹ'H]HuA xH}D<@! @HHu AEt A11 AT HHA9uI)H)ÊLuJHEHaLHuL葃 LHuL3IH9]t3H}͌IHKIEIEMuLhI)LE ;ME1LuV8ME1HxHuKLuAEHXA)H}DIH8u IELPAELhIHuHxHH}HL{IWE1LeLuE1AGHAO H}LEHp3AGHAO H}L H}HpHHĈ[A\A]A^A_]H}LAGHAO H}LϋH}Hp迋tUHAWAVAUATSHXIAHH2HtNIC$;C uXH5`HߺI@H3FHNHNL;A2=$C$HHEȋEHHEWHE)@ )@)HHHIHHKXIH HHH0HE1DLA~HH HDHEDeL}HtHH5DLaudDeML(AFH3FHNHBL3MA|$tHLULbIF(HHߋuLAVMt!AUJAMHLADuHHKXHt:HL5HCXLL1HHEe M}AHEHK$EЉHEHHH@HHL35HCXHt>HH5HCXHNQV HHCXWDHX[A\A]A^A_]HH1iHtHHDLUHAWAVAUATSPIIH}HcDjH41IL HxHLH8H}DLŸL1TH[A\A]A^A_]UHAVSIH]HL[A^]UHAWAVSPHv t-ICHSEANjCHKLHE1DH[A^A_]UHAWAVAUATSHIIH_wHHEHizH9Fu I<$AD$LL*Iŋp$LUu#LLZ AD$HAL$A0M(AFI7FHNL&M7IEHxAEtu`AD$HAL$E1HxH@H wH9Hu3H@ xu)H H9HuHxHp H5{H9FAEIMALJA}H`LX1HpLPL}HpHcHHxHH@AM IA |!J41%IHxHEHjLEHxE1HcHHD A u/H H@HAIILHHcIu6HHDHH֍HHpwHtHH9t1IAD$HAL$ LLlAFI7FHNLOM7E1:W,UHAWAVATSHIIHEuIvHUL2IvLHIHrI9D$tLL=I\$A|$}lI<$HtH}H9t1hI$H]I\$IvHtH9FtzLL6mH jLL8r1H]LIH+rID$I$I\$IvLLݞtLL#AD$I7FHNLM'1ۉH[A\A^A_]UHAWAVSPHHEu\IH'Hs HUL1E t17L}AGHsLL1(HAGHAO LL HH[A^A_]UHAWAVAUATSHxtAIHnHHEЃ H}}HEHEE1DH1HE1LhME11HxAFHwEHYHcHIPMEI6H} AŅu`HEHE1+I6AH}XI6H}AHt$HMJ7I6H}:AũADH HcHHEJH5#HߺyI@H3FHNH7wL;AHLQAHCXH@HHCXHL}D[A\A^A_]UHAWAVATSAIIHκbyH@LMtHLGy@HCD{ HhHCMILHAM HANjCHK LH[vD[A\A^A_]UHSPHxHHH[][UHAVSHLwXHG`HGXxHH0LsX[A^]UHAVSHLwXHG`HGX LsX[A^]UHAWAVAUATSHHIHHHJt<觱8LH5LHH1WHĘ[A\A]A^A_]H5NHEHtIHuHt\H1?IHUHL*ILLt7űL18謳H5[L蚱1a莱IcALL#xILH޺Aw@IGAG HfIGAGMMLLÃu#AF,HAN,A^(1AF(AF,u AFMAGHAOLLtUHAWAVAUATSHXAIIIHFH hH9uI\$D9{LxI$Hu LPI$LeEl$(1HEHH@H@H]DmWEHEEH HMEAEH]EED MEA [u$EuHH]EEH}$u5DE׉Du-H}t|H]H]DmEtP1ɋuE׉D$u8[uEt.\A HHH]DEAuuHH]E}uKHuU)‹MDEH H]EDmH]EEH]HHEH]CD{I(HC@HcHE11H~HII1E1HD HAELIE@IHcHII9|H]DcHHH9t1}LeID$HLxtH@HtLLH]I\$HeID$AD$CH3SLDIEKAL$QAT$LLqIE1HHX[A\A]A^A_]UHAWAVSPIωIH։{HMt$A?tLL8sLHHnCHLH޹4INjCHK LHgpH5LL1H[A^A_]UHAWAVAUATSH8EIIIH_HHEHuAtH5OLrHEAtH54LerHD͠L|ŠLtŨHULÅt*M4$HaI9FtLL)tI^H'_HH;EuH8[A\A]A^A_]pUHAWAVAUATSH(EAHIIDmDeMnL}LnH aHHHWHE@A} ~fE1IEN4N|Ht}LIDH1tt.EԨtH}HuLtEԨtH}HuL]IE9e HE@H]H3FHNH^nHEH1H([A\A]A^A_]UHSPHuHCH H[]UHAWAVAUATSH(HUImIH`IFI01աW@@ IF~tHEE1HEJ4LHUHDeEtHt8L}E~ E1JJLLLIE9L}IL;}uLLNmE1LH([A\A]A^A_]UHAWAVATSHpHIH\HHEAu_HCD@H HGE1HpdH1^LH޺YoI@I4$FHNLlM<$HQ\HH;EuDHp[A\A^A_]蛨UHnH]UHSPH[HH[]UHAWAVATSIL%aJt#N<#LnLHL1E1QHHhu[A\A^A_]UHSHHH[HHEH5UfnHUHHHBH߾"Hg[HH;EuH[]躧UHAWAVATSIIH|xLIL kIH(^IGIWAGAGI4$FHNL/kM<$I6HtVLmLLHٰIvHt2LHM<$LtmLLH誰H3HHu1L1[A\A^A_]UHAWAVSPH1HHH<uAHHH!1rIJHH$H #LLaKLH[A^A_]UHAWAVAUATSH8DMIIHIHFH KcH9uL9suM9K u C$ALEH Hu HPH HMHcCHEAIH9HEHL}EE1LeLHvuLEt.K4LHU3uA<$-u}t}y`DD}KTIHuD}EyLHCHtH@HtLHH`bHCLsEԉC D{$HED81H|HEȸEHEHH vHEH5rLHULE1臀LHHHtwL=ZL%WE1J|u!MtIuLH5 lJ IuLLE11lJ|t!IuLLkJLIHuH1H8[A\A]A^A_]UHAWAVAUATSPA~-IIA1IDtwnLubt)dud "OtXtQxtouGAA|H+t%@-t@x @A#D< @>tADH[A\A]A^A_]HAUHFBFB]UHAWAVAUATSH(AAI1HEu EDiAEu1$1A}^A)1A|]HEMlEMAE<]<\LHűUHJ(EA)A|-AH{HuȋUAAEM̋UA9|A9~ A9| A9EHL,IEo1ɋEԅ}D1IEH([A\A]A^A_]ËMLeLLUЉ4HIA)A$ẺEEI݋MD9DMUHAWAVSPAHAEt ;DH[A^A_]UHAWAVAUATSPAAIHHcG ;Gu[DEHCL3HSH I9tHH4@LH(HHH4@1HHcK HHIHL蕡DEHHcK QS H IL,DdD| DDH[A\A]A^A_]UHAWAVAUATSPIHH_G G L=SA@D#Ex CDHHEGf.f( fTf. -sqH ~Lu1ۺL1~1ۊL.tet HH9uÉ؀|u B0.fBD00H]H,FIHfAG:fWf.vH=FIAGH=EIAGH>HH;EuH([A^A_]H=WUHAWAVSPI~ ~7I1IGH؋HQPIGH4LNHIcG H9|HI1H[A^A_]UHAVSHIF B F$B$Hcv$H1HCIvIcV HHc{ ~1HKH AHHcK H9|H=@HC[A^]UHHwW ]UHAWAVAUATSHHIIH<HHEЉփ!Hu| 1# HEHEE1E1KH Hu HCHPH LcSMsED AA"t A{A| \uHEB0C_qE1D11\~]t/}t.{u3/[t(\u%HcÊTt tH ~HcHD9}jEDZ;w6H>HFG8{}I91H묅At'DHEB0tLukJ40XAx=wH8HrrI9tD 1HHEJ40CHEJ40B0Mu9#tEDDxIL;u%E1ZLeHcE11ILmIEE1LMI8HEJH3HuHCHPI8LMH3LcsHEB <tf<t, LLkI8LMMEIA{LBI8LMMIAG}EAMu>#u A\IALEE1L~%O=wHH0HCHHEHCCI4$FHNL`>I$AGHAO LLA>AFHANkqH5L@H@I4$FHNL=I$A1HE= zf"',UHAWAVSPHIHv? u HsL. tGLcLtLL1xuGHULL|HULL_~u~A<$3E1}A$A$̓MfH |HcHLW9HH+HCHLcCI7FHN}L9I1AFHAN LLb9H([A\A]A^A_]A$̓H HcHEm1MI[ISLHLIDI*?L,e2fWEfI~AEfW EfTUf)ELP8HLhHf(E@@I7FHNEfW1f.H *XL,~tf"2:I7O,,^UHAWAVAUATSH(IIHv艠ÅM4$AFL-)M9ntLLRvI^H]A=t+4HL#7ILhHHX@tHuLH]LH޺f\f|YHf)EL6IH)IGI(EAGAGI4$FHN}L6M<$1AFHAN LL6H([A\A]A^A_]rUHAVSH IH]H޺Uf\]f|Yf)EL5HH(HCH(ECCI6FHNL"6I1H [A^]UHAWAVATSHHIHv蛞AąUM>AGHULLxAąƒ6H 5HcHEtE#rEtEqwEqkEq_EsSEqGE?t;f: E 2f: E )EqErErQEEL4HH'HCHECCI6FHNL4IAGHAO LL4DH[A\A^A_]p %1=IR[gsUHSPHלt H[]H3HH[]vUHAWAVAUATSPIII!zEl$ E~%1LL<HL^9u A9u1H[A\A]A^A_]UHAWAVATSAIIHHuLIfoo1fo uHfHuE~&E10A< 8 0A HI9uHǀ1LLDD|[A\A^A_]UHAWAVAUATSPIE11qIǾ1fI1fIpD1o1CIIuLLHfL1H[A\A]A^A_]UHAWAVATSAIHHuILIEtPE1AL!ω8L!ɉ4@48L!Ί 0A HA9u[A\A^A_]UHAVSI1[~\tj}t!{u%H5# tR[uH5ʊH5H5L4H@I6FHNLl1I[A^]UHAWAVAUATSHH}L7AE1L=+1E1EK<<8u/C\<9}%uK'HULoELDmuDIIuMAEHctfIHEȋ@9ЉuHUt8)A@A>@xHO D(u=HEL0uHUII HHUHJH)rM)IAiūB$1H[A\A]A^A_]UHAWAVAUATSPH}L?L-.*1L5EIuNc$3LLntHIH u۸#K'HMHD)aK'HHAA$1H[A\A]A^A_]UHAWAVAUATSH8IHDFFpAw=~;H5>Hߺ1I@H3FHNHP/L31UH]IwMgAD$ D<Mt$ MHuȉ]IT$IWAM;gtEl$ ) tD dAA9_ tY)ulY9s9ZAAH}L1ҹAHuȋMub&9]2|0AA (Dt{u~6tAA (DTI<$Hu$HEH}v-H HHHHMHH5ADhJmLH'T;UVHLs ;U=A#sH](uYH}LAxA|$$ oIL$0IOA(u;A|$< IHMgIw@HN(IO@]H}L1A"HJ'H]DDAH}L1ҹ#HUAAIw@HN(IO@AAu2HcHLE]HHAOIO HDHF Hu H&LEBD]tX<u*HcHHHAOIO HDHFH>HcHHHHAOIO HDHFHH}*HuȋMjEH}|+H uHHHE@IcL$I $H9MtBH}H+I4$AT$H} .A>uIO0AT$AHHP H HHIw@HN(IO@HF@AH}'*HuAM~IW(H5;9HHHLH5H}1gBzH5HfH5a9u AG}sIW(H5qAGu]IW(H5لIW(H59uTMgOMg]=H5H}1AADH8[A\A]A^A_]MgAGH}4IW(H5HHx*IFIEIFMcm H'H tHH1HLhIFLpM~ I$IF(IUHL]IF01HAGH߾LWXAAGHAO LH'AtHuFHN?H'5HEHL(AFH3FHNH'L3E1H$HH;EuDHh[A\A]A^A_]lcUHAWAVAUATSHXHMIIF49H}}AAL$A}<AE89HEHHEL&HHZHCHCA}0E1E1LmLHHzW*AU&H]HCXHEH@HHCXAHHHUIHMHKXHIHL%HH@HGXHHHIHHUFANjCHKLH&#H}LBANjuDuH}ЉLAADEueH]HIcE0IH9GH]HLhHtH5~HHUHMADžu Iu HƚAAAH]HD[IމIFXH@HIFXLHu\t*u\AF,HAN,GA^(1AF(AF,7AFIFHNL"HEHI@IH@;UHAWAVATSL~AOt [A\A^A_]IAG~5E11IJ4!NQV L!AGHHcIH9|I?1rUIwFHNLX!HQUL1[A\A^A_]UHHB]UHAWAVATSIHH ~AH߾L\IvHVI@MfAD$H3FHNH L#IvHxLsxHL5E1D[A\A^A_]UHAWAVSPIIuFIwuYLFHt|I@I6FHNL< M>VH }LL6:IWL?u%I_CI6FHNLI1ۉH[A^A_]UHAWAVAUATSHII|UuԉHEȳAAK4LHs,u4K4LHU}l,tIA1L9euEAEuA9}0DADAI4LDFEtu2HI9uI(CI7FHNLI1H[A\A]A^A_]UHAWAVATSIIuKM|$u_H|LL+tpI\$H;Hu HCHPH;HJH0v[8H X|LLwI?Hu IGLPI?V\1ۉ[A\A^A_]H52|L H@I6FHNLIUH]uUH]uUH]>wUH]/wUHAWAVATSHIIu[HUIwL螇Åu[Le܃}teIwL螕tÃuIEIwLLatɉH {LLDH[A\A^A_]ÃuI(CI6FHNLI1UHAWAVAUATSH8I։IHECr"H {ALLIvHULi\AŃ|EuIvHULL\AŃEIv LeLL$\I$HEM$LuI^LuLH JHHHLpLHH;HEHEH}LuL;uAAA A Et tiAjLLéuHEHpLALuLuHtIŃx H I9EtTL IH IEIEMuHEHpLL8:1ۅ8LL(#HEHpHH9FtLL9LuMuI}HtHNH9t1NIEHEHp1H8H9FLuLL9AuEupHE5HEHEHE uAHEHE tA݃u.I(CI7FHNL%IE1ADH8[A\A]A^A_]AUHAWAVAUATSH8IIEIuLÅIuLeLLăE1E$$EIuLyHEIuL$'HHÃxH}HEЃxHxHMH t=A/H wLL1HEE1HQ:urHI tubHpH3uL%tKHHx HEHH@Hp2t,L}HEHHH9Lyu$HULLSXuE11HE1UAGHE HEHE1H@HpFLHu1S>HYHHI H9CtLH޺V0H[HEHEMtOH]LL1=HHH H9CtLH޺YVHCHEH]HEHMHH9Iu L貏LHuк=HHƒxH@H n ~H9u$H9t`LHHֺUHڃ2HZHLH + HHHHXLHuH5H:HZHHZHtHJH9tHU1JHUH1MtAGHAO LLwHuHtFHNLXw2s(I(CI6FHNL&I1ۉH8[A\A]A^A_]Ep؃eIu L éuIuL éuIuLeLLE$$UH1]rUH]rUHAWAVAUATSPII!H FtLL肤I_E1t]HEE1ALHh[D;c }HCIcAHK4Hu K4I(L4IL9muLIHIGIWAGLHZD;c }0LHZD;c }HCIcAH1LLfZAGI6FHNLvM>1H[A\A]A^A_]UHAWAVAUATSHH}ЃbAAuE9MIcIH4H}HU#~A^D9LHcH4H}Hr tADD9L}DkE9}gMcJ4LuLIHr K4LHorr AޅLDe:AE9J4gALuLHHAGHCHCCI6FHNL IE1EE9LuHcH4H}H[A\A]A^A_] H qAH}о١DH[A\A]A^A_]UHAWAVAUATSHHHUH}Ѓ}1H qAH}оHU芡DHH[A\A]A^A_]A1HEE1HELcHEN,M}MuIELPM}A?-LH5VfPLH5sqPtpLH5bqPt\LH5PqzPtKLH5@qbPrD)؃HEJDHE1 MHED)؃D9HcHMHHHKHMDAIHEuL3H}L/WEf MnEdDXEH]E1EHELuK\LHHptAD$HI9}w4HEH HcHH}HHHU1iuf1gLH5PpHELHuHHMDEAƃ}uHEHH}HCVDc LkEtLuK\IHuE9 1Lu1E1E9}.L5TH}HLtDI\AE9|HLut*HTLHtIcITH5xoLcMM(AFI7FHNLMM7HtLHHH[A\A]A^A_]\E1HEJH5nH}1&AAn|UHAVSHHBVH}DI@H3FHNHL31[A^]UHAVSHIH nL葝RHrHLELE1,ox u.H]I(CI6FHNL'I1ۉH[A^]UHAWAVSPIH YnLHLrHBuHILH,u$ICI7FHNL I1ۉH[A^A_]ÍNLLHLH[A^A_]YUHAWAVAUATSHHH]HuuPA1HxHEHE1HE1HEEEE1HpfDfHEHE1HpAL5EEE1HE1HE1HxIcIH4H}H HdE1AHjdH Ic LLHp17EMM,E}1HpHxfAHLHMHETH\H H9CtH}H޺pJHKHHMH3AL AHDHEAE9HED)H]}H lAH߾肚fMcN4HLI|QMcv LHH}HItQH5ilL H@I7FHNL IADHĈ[A\A]A^A_]Le}t*Lx H HHHWHHE@1HEHEHu}uH5jL HuHt@HEE}LXE&MME1HEHEMHt-LHcP[ HEJ4HUHu3LDwU(IEHEH1ALmLAE9IcHL}I1LHELcs LHIHtRH5`HLHaAƅCIuFHNL,I]E1HCHELIHID$I$WAD$AD$E~.1HcHEH4LD4LLHDDD9|LuHLL`AƅLmLLe'IHEID$I$WAD$}L}~11HcHHILHuILLHHD;]|H]AD$IuFHNL MeIAD$HAL$SH}LH54`H5_LTH@IuFHNLI]ADH[A\A]A^A_]H5_LeLH@I4$FHNLPI$f>GUHAWAVAUATSPII"H _ALLAIuAu$AL"IHL"HtIǰA|7LL^I%LIH|0IAGIG1EEITLLHI9uIuLL(tA}u0LL#AGI6FHNLM>E1DH[A\A]A^A_]UHAVSIH _^LΊ4uHrHLLHLsÃu AF[A^]UHAWAVAUATSPII|YAMnXI_HHu HCHPH<#t< v L1o7II7L^7AHt!A/IH ]LLH[A\A]A^A_]IFXAuIwAILDLLHLrMnXUHu Hr]:;H dV蚉]UHSPtH "LmH[]UHSPtH K>H[]UHAWAVATSIIuIvINu(L1.H \LLIF LHHE1`IHtkIvLHLHLZLLHCHK LHgI^CI7FHNLGI1[A\A^A_]UHAWAVATSIIuZIHt!FHNLILJI^H;u HCHPE1{t-IFI@H \ALL辇D[A\A^A_]UHAVSHHII@H3FHNHcL31[A^]UHAWAVAUATSH(HIEDfHuA1HE1HEAJ4LH\tJtLHUDWJ4LH[t JDHEqJ4LH[t JDHEOJ4LH[|tENlHI9EtLL6MmMIE9*HuAA1HE1HELmE9tA9tH R[LHDmHuHtAuLaH}t1Au+IFXHEIF`IFXH5@[LHUHEIFXEn(HEAF,E9u*DHCI6FHNLrIHEHADJTH5ZL1H([A\A]A^A_]UHAWAVAUATSPHAI| DuHsHLG2IA L152IAMtZA}H bZALHׄ5EAJJtLLTuIM9rE1ADH[A\A]A^A_]UHAWAVAUATSPIIH ZLLYaIGX1ۃxtUAAKHHu HCHPH8:ux:tKIO`LHu IM9u1H[A\A]A^A_]UHAWAVAUATSHhIIE/H ZALL襃DHh[A\A]A^A_]AI^IvH>HMLE1A"t H3HLHh[A\A]A^A_]鋈}HHmHc HAGfH TZ A]/I^L3Mu HCHPL3HcCH4H1'IHL1$AI^LH~H}LuLmEoAEIHcHMH4H}HHME1AGC}tQA4HHML4HI9Ft AH}L|1GMv EA_AKIvIVIN LkEDLMvIHEHuIFILPLIHEH}LsIHHMHuIFLPIHEHsLEHsLAA|Hs HUL @AAE1=AECADHDe} IA[I^TA&Au(IvHHMLE1A+H V)At%AIvHWLAGLM,IvHL XHMHA轆ATIEHHuIELPIUEuM0 EH L={H H HcHL5M9utE1HL1/tAIHHLpHLx@I4$FHNL1I$ AGOH VAAu(IvHHMLE1A谅3H UAIvHUL/AML8IH#IAFIFH]H#IWLLHuHEALmI^L+Mu HCHPL+Lc{Iw1#H[ HEB8E~5LuME1LHukHcI)LLH,AIE9|H]HHuDI@H3FHNHL3 H ;CgAIvHULu IFLPE;nIH]HLXA$MvhIEEȉEEAHEJMLmHENE};HEJtHH 'S'H |S1ۃ+3IvLHXILHHYHI9?A~4LL$EȉEH KRH}HUI^L3Mu HCHPL3HcCH4H1 IHLZLHL L+CHCMI^L#Mu HCHPL#HcCH4H1! ILmLL.hHcLA}7kLfHcLH1ZL~HL0L*CHCCI7FHNLIH;u HCHPCLcL4HH`E1}DuEH}ЋuNiAH}D?iEttA9LmMcHMLcHED HEN<(II1E8'uH}LL(HILHuLm>IvIVIN AoMF(iH PH P{ML-IHIAFIFA|EILLHI9uAFIuFHNL-MuH PLL(yAxIvLHVIvLHyUH@*D}EtfEtaE)|\H]HDgEH}DgE99LcHcEHAHHuLG'tHHueHHAE9uAMc1EE1L-H&H{HHHELeLuLHHHCHCCI6FHNLI71Ƀ}LDIvIVA1}ELDI^M~LH.H]C EШM7Mu IGLPM7LLPALHHBHCHCD}EkH]LuE1Lm}LxE1LHuDI3HL0Mu HCHPL3MLH])|!AŅtH}DLDDEt!AD;eM|]LxkE1]cHxHML}tD)H}HuLuAT$LHu2LHuHLD'eHIL}E1MD;eu"MLuMDLHucHILuˉ]ȅMH]\HMD)LHLeBH5=ML6H@IuFHNLI]sHCHPHHELeKLH]EK\HHtHEHCHPHHEK\LH&Mx uHcI9ALHcI9ALƋMH} MH}uHUE1A1Ʌ}DLcLiHHHCHLsCIuFHNLI]E1E1AAIHHHHCHLsHuH)ޅLm~FH}aL+cHcLHuH7aLuLHމH@gL=wL=nL=eHUHL'E1?L==L=4L=+L="L=xL=L=vL=EI~I1A<Aׅt2HI9uLHHjHCHHCzLHH@HC1HE1HCCIuFHNLI]XHUIHL+(E1AIE18"2H 4"4f_(33_hqzrUHAWAVAUATSPII!H JLLq>Au>MgHI9D$tLLN!Ml$MHEMeIM~IwLZtbH+ELLH H9}I@H3FHNHIL3E1DH[A^A_]UHAVSIu7HrL|HtAHCI6FHNLI1 H 2Lk[A^]UHAWAVATSIIufIt$LHtrIID$@I7NQV L|ID$II\$CI6FHNLSI1#H DLLKk[A\A^A_]UHAWAVSPHIuMHsuaLSHHXE1HCI6FHNLIcH DALHjDHSLAu.H[CI6FHNLbIE1ADH[A^A_]UHAWAVSPIuwLLcLHH?HCHL{CI6FHNLIIHt?uLHLpHLxLH@I4$FHNLI$IFXHM$M2LHeLcpHL8LHHHfHCE1L#WCLHLP LH HHL LpLHH( CIuFHNL:I]E1HܵHH;EuDHh[A\A]A^A_]Lp(H55*LL;Ht)HcPH9tH@HI;F`tHpPPXL}tH5)LH1'MtIcNH9tMvL1IHOIEIEWAEH50LLLH" H5LLLH Iv0HLHcX LxH50LLLH LH HHHHXLLH H5G0L=LLHs LLLe Iv AV(L6IH5} LLLH0 LLL" I^HtNHCHtxuH[H5* L}LLLH HCHPLL H5.H]HߺoHLH HCXLcxIcF I)H]H ޵HHHLxHLHj AEH3FHNH|L+>?>;6IIAc'UHAWAVATSHIItpEIwL11HLcLmHHHCHL{CI6FHNLI1IwH{HMLE1A?XubDeIwAi1L1HfAtDAt]EQGH -LLQH[A\A^A_]ÃxH G1H9HXUHAWAVAUATSHHIՉuVAH}MeM4$MuID$LPM4$A|$tIIuLeLuAu:H--HEAZH -L[PV1OM}IHMHuIGLPIHEM}LLALH HHHWHE@E~LeLuD}ˉ]LHu<ELmLL<M;MtAHIEu]D}M8DHu)H]HHHuH&MHcLHE]D}HcIƅv A1ALHu1<ANjEԃvwaEHu 1HþHEHHHuLLNHHcEHLHu{JL=AH}LH HHD`Le@LHuH-IcIE,0LuHuA)LeLDLLuLH1H1LuAFI4$FHNLM4$HH[A\A]A^A_]UHAWAVATSIIuu,H;H l*LLMOM~IHu IGLPIAOIvLI@I4$FHNL?M4$1ۉ[A\A^A_]UHAWAVSPHIH )LHMHHpHLHsHt&I@I7FHNL追M71H[A^A_]UHAWAVAUATSHhH )LuH}HUHZHCH {H9L+MuHPL+Mu HCHPE1Lc{HCHtH@Ht H}HEH]~!D111A|%@HH9uC ȃ^Lc1LIHLM&IF HIH8IF0I|I~LLNLIFH]LsH HK'MJ/Iv8L<8ILHPHMHHHxEE11LuHUEICLeIJD&A}%uA}%uDBD&HcI JL&I9s&AM%u A}%uIA HII9rމHAMuI9nH}J&HA>*uIMICIJ&HHELH5'(HUHM1uKHcEIƃ;t4A>$u.EԉE}0L]3;*HcEHMHL]HML}uEA[u-BD"[H}HcLJ "AF<^uQDG^AFIFI9H=(\HIƉLCD%HMIAHLe<]uIIcAA]IcHxH4H E1Ct<]t BHI<]H AC ɍG9}TLcDL1LHEA<-uHAAL8~A A\H‰)уuLHEuMC<HULHMLI9=ABD"A H='/Hut'cHULu;HEH8L]LeH}t1%LC|%lL]HULeH}uL]LeH}IIMI9;L]H}tHEHMt;tmH Hu;ILH5u%HUHM1@uHcEHMHHcEIL]HML}I9C sIC jHT%H%H%H%L]IC(HMHQHBHp(Ht8H]Hߺ褺I@H3FHNHL3uL}|;p }VH5#HqL"HtI׉|H LLAZMgI<$HuID$LPI<$HtELHƺдH@I6FHNL$I1ۉH[A\A]A^A_]ÃIWH5Z L1I_HHuHCHPH|UHAVSIu+HZH3Hu HCHPH3L;1ۃEH  L@[A^]UHAWAVAUATSHHLrHLuE~ MfH]HհIHIEIEWAELDgE~:LHEwL}DIHELL HAHAEH]H3FHNH謰L+E1H zAH߾?DH[A\A]A^A_]UHAWAVAUATSH(IԉIHEHECr"H ALLE?It$HULAxH]HEE1HH) LIvIHID$I$WAD$LDfE~CEL;H HHHHXHELHMLIuAD$I6FHNLEM&E1HULAIt$HULIt$HULu_HuHH~H9| HySH9~NH5\L:H@I6FHNL莮IADH([A\A]A^A_]HHHHHHHHHHHH=ADLA^UHAWAVAUATSHII1HEHEЍFr!H LL=`tHHEIwHUL%E1L}M)ItH1II1H]LH޺ {HHxL9}MHII~IwHUL!IwHULLecH5L蓯H@I6FHNLIHE1MLoHHHCHL{CI6FHNL蚬I1ۉH[A\A]A^A_]UHAWAVAUATSPIHGXxt_A1ۃILhHHrLHtlIIALLDI@=H5L胮H@I4$FHNL֫I$H[A\A]A^A_]UHAWAVSPIH L:AHLAudM7LLHtGIGXHHu)10IOXHWIGXHAFL1ۉH[A^A_]UHAWAVATSHIH LH9rAHsHL6HtAIăxt8I|$t0AD$@A$ALDHAL$@LLOVHH5L1,[A\A^A_]UHAWAVAUATSPII!H tLL09cAI\$LH)C u%u;I\$LH{ |%HCLhIT$H5L1E1I\$LH{ Lm~ HCH1Ml$LLA} | IEHH1LELH1eHA_AJ41HE0IH5L覫IE@I}IHLHLLeLDL蒁IuFHNLʨL1LLTH[A\A]A^A_]UHAWAVATSIAHHOIHHAT$ AIHLDM9HL[A\A^A_] UHFHN]&]UHAWAVAUATSH(H}E1Aă|aA͉uĉHEAJH H9CtH}HI׺kLtzL{K'MALDIML9uuMLuL0HHHCHL{CI6FHNL[I1H([A\A]A^A_]I*D;uE}QLeH]J4HLEAt MY MXMLIL9uuH]HzIHpIFIEAFAFH3FHNH蝦L3=5UHAWAVAUATSH8MIIHE"H ALLb5nAI^HCucL=SL9ALH޺IvHULM}fW pH H9ALH޺Ku}IvHULhLeAMQH[}HLILxHHX@I4$FHNL0M4$PLeLkD}EAKH/H9CtH}H޺HK}uI)HTLHHIIM9uH]HPIHΖIFIMnAFH3FHNHzL3H* o^MMLHHHCHE3I*D}E9}NDEL}MI4H}LE}u M\ M^HI9uMMLuL^HHTHCHECCI6FHNL胣IH5IH]HߺI@H3FHNHDL3Aean^f(f)MML跢HHHCHf(ECCI4$FHNLۢI$E1DH8[A\A]A^A_]UHAWAVAUATSHxHZHHEЃ|8u1FHHxFAƉEH}HUMHuu"HE/H Aj1LH1;HUHEHXE1E1LNdILcuH}L0HUA|$ DNHM9uEtEH5H]HߺXI@H3FHNH謡L3A}H}t /H PHHHW@H(HE@E1E1LHHHMD|HH}HhD;{ }EIAD9uD;eE1L}LHHUH HhLpIHMJ H DIILHhUHtZHLLBIHuM(AD$LHL荿AAD$HAL$ LLrEtLpID9uALHxttAE1A(E1A}H}HHuAu,H]CL}I7FHNLןIE1L}H]CHK LH讟HE| H}1HBHH;EuDHx[A\A]A^A_]UHAWAVSPHD~L6LE;~ }HH@HcKQSH1H[A^A_]UHAWAVAUATSHHDMLAHUIIHHHEЃrIcH1ILeE~_H]DHEL,1HEH4XILuHu IFLPI>LuA^HcHEHLeLuL}DmąI)HL}I)L}LLEDeHEEt1IHLHcIA)D9euMDmH}LeuH}H}t1HcEHHEH0HMHH9tDHH)x|/H}蓔-H}蛑H H@H@ +8xHH[A\A]A^A_]UHAWAVAUATSPI>tHAIL}LLL LcI܋}Et.LT HIA<$uAEH[A\A]A^A_]UHAWAVAUATSHxHMA׉uHH5B贓LsXHK`HKXH5HHH]LsXAL}AOHEAHMHENuIHFHPL~LetIL1ۅALeЄHEHH]H8Iu IFLPA~lLeLBHH`}HCHWCH5LLHH5DAuAG(LcLL5m|LpE1L8L`H}HHH5SH}Ⱥ蠌H}HHHELc`,H}蓉LpL8L}L`LHHAulH5LILHHILHmH}t1H5LLHHDLHHU5LHuHPE1ALeH]AEtHtLHWAMt\LM'AD$L<Åu$AD$I7FHNLM'DAD$HAL$LLňD}tALcLGHHzHCHLsCI7FHNLrIE1UHSPHHHu HCHPH 1{|9:u 1y:H[]UHAWAVAUATSH(DEHMIIH}複HHzHCHWCL}Mt.HEH8HuL}IGLPI?H5JHtLAE1E1MMuAE;~}YIIcL,MtMeIUIMH}HLEDMULHu+HtHHHH}HLEDMUHH([A\A]A^A_]UHAWAVAUATSPDIIIIDȃuI~u*MtLL1tLLL rH[A\A]A^A_]ILLH[A\A]A^A_]vUHAWAVAUATSPMHIIAuyLkCLkCAuLH1HtLMt9HuL`-IHuHQ-HMЋ1HMԋ LHE1职tLLHAEHAMLHH[A\A]A^A_]H[A\A]A^A_]UHSPHH~1HCH[]UHAWAVATSIIHFL81LHIt$HL?I^HIF[A\A^A_]UHAVSHHGLpL|HLC[A^]UHH?H6]UHw @7w @?@΀@w`w& $? G@?@΀@w2$  $? G$? G@?@΀@w]UH@y@t+t1@]UHAWAVATSHAIy LI1E~LeLLÉIA)H[A\A^A_]UH=tfLHHILL;tKLL*u1A>t0AAEt)L HtIIMuPE1ADH[A\A]A^A_]UHAWAVAUATSPAAHt DALmԀ;tIHLDHcLD;}uE1LH[A\A]A^A_]UHAWAVAUATSHMHIAE1HHUAE9t+;t,HHuЋUMHHIGC; It+]ADH[A\A]A^A_]UHAWAVSPIHHwHW`~H{XHAH߾tC@A)HKXD1SH)‰QE1DH[A^A_]UHHփv H HK}HH^HHH1:H]UHH ]鮵UHAWAVAUATSH(HIE1D>EIE IcM0QAU0IcM0QAU0DGQ܃ )H HcHLRID$ IcL$0QAT$0]?[]\QINIL$(AuЃVL ~ă H5k HcIMt$(LeL}DmĄLHuD% HcLUԃ\uUdPw_sHIް L=pL B;HHuL}'Hي<-UIΊA<]LL}LHcLHLDmDuLcIދU\LLULe?HIƋuԃ\L}\A> I΃[u?<:u;L=vE1M/L蝯HHcLL蒯III uLeLUL}Dm HIL09HL__IL09AD$uLazLAZHHuHcHًUԃ\tqlH HHH IA L}wzDH VHcHLeDm 1L HcDHHu'\uLeL}LA]SLeLazLafLAFL1nLL!HL >L!/9L:@'L[`L{~/lWZid1ۀdÃL9ID$ IcL$0QAT$0IcL$0QAT$0E1D4A\$0L09LIt$ IcL$0QAT$0D4AD$msw1ۀwÃLID$ IcL$0QAT$0IcL$0QAT$0A\$0AD$uLazLAZL09L__LIt$ IcL$0QAT$0MS 1ۀsÃLID$ IcL$0QAT$0IcL$0QAT$0El$0 L5bLB3HHuALRIt$ IcL$0QAT$0DAL ID$ IcL$0QAT$0LID$ IcL$0QAT$0huAD$HIL}I)Mt$(LID$ IcL$0QAT$0IcL$0QAT$0AD$0EI\$(E1%L5GLe L:HAT$HHuANj]Ѓ\uSI\$(McB4#t9 H=H+LHHu]ЅA\LeID$(McB8HրrI<{tEHuAHHD;eMHuyDeM}McAQE1LmH]HLuLMDEAQu EuEA II B4t!JH(tH׈8|H5 HPHDXt\LLMLDH\UH\t"@cHP8$E \躉-8ҊH5LH1cyH!\LLeH\H17I$H L WVHLAH\HuH}H1E1Ct]L1HHHuI $HyLL1\EjPH1HxL1lHLcMH `L UHuLHE1P:貆8WH5LHH1bb\H':HH;EuHĸ[A\A]A^A_]mQ/I\qMxUHAWAVSHIIH9HHEuH}t/L1@H LL"IH XL THuLE1@HM9HH;Eu H[A^A_]蚅UHAWAVAUATSH8DMMIIIH 9HHEHu!ӅNHuIH!IO8HIO8H] HL1莇LH޺KIMLDAD$H|81HW@@ H@0L0L`DeD`L苅CAuǾ1KECH|SHC(HC HLHuLH^LL]I@I7FHNL1HM7H7HH;Eu-HH8[A\A]A^A_]LLx1UHAWAVAUATSH(HH~7HHELHDžIAH:~I8-I6HDP1HHAHHE1A/tFJIE(AHx88H5κHHߺII@H3FHNHFL3H1HE1H11RIIHHLEuHtH=MIE(LLP~\HLLJHHtH)H"HEtIE(LP8HHE1HlHHLlHLEAHH-AHE1HHH5yHHߺHI@H3FHNHlEL3t5LLLFA~ɀ< uIcGHHAOIDAGH3FHNH EL;E1HE1AA H4HH;EuDH([A\A]A^A_]ЀUHAWAVAUATSH(HAIHD4HHEIHHLH2HHHAu+HsHL节LM:LALE1M)DI9HHG(EOLDP~XHHG(L9u@HcII@|%HI9u1HwIALM9HI9tL1HqwLLHt'H 2H H;MueH([A\A]A^A_]LHuLLwH@IuFHNLBI]1E1s~UHAWAVSPIHH;H;HcL6wI@I7FHNLBM71H[A^A_]UHAWAVAUATSHHAIH2HHEHC~Lk0Mt HC0L11DILHC(HLPHt)L譀t HcȀ tQLLLqE}8#tHC(HP0tACLHVtLL@"AEI6FHNL@M.1H`0HH;EuH[A\A]A^A_]|UHAWAVATSHHAILuH3H[LOMt]HH;H]HAIL$(LH;u#1At4ID$(H5%LtIt$L H[A\A^A_]UHAVSHHH8|=}HcHGtI@H3FHNH?L31[A^]UHAWAVAUATSHIAHH/HHELDž\lH2HP|At)H.HH;EDHĈ[A\A]A^A_]DXHsHPH1II?{HPL`L\L1 }xiHcAD HL BI@H3FHNH>L#E1䃽XCIv\H`H A"L1HPrH1 RzUHAWAVAUATSHHIH-HHELHz?AuL`L\LH Au|H;LXLP?HI}zIc$D\L`H1{x2HcLrH@I7FHNLl=IE1 L1 H-HH;EuDHĈ[A\A]A^A_]HyUHAWAVAUATSHIAHH,HHELH\lA}H`yxvAE~#I7\H`H uZH5wHߺ+?EMLLҰH1DHjARHH1HH1 H ,H H;MuHĈ[A\A]A^A_]IxUHAWAVSPHLH2HUyAuAuyt H1 E1DH[A^A_]UHAWAVAUATSHIHHEt`IL%DI?q=It$H1zIHHuIH5ׯL10SeL11pHA IL- DEEHExCt/C/HMLEexuLIr 1}EKt/Ln=LHH褀HcuLVoLHH芀IIIqCI6FHNL:I1HHrIwHUL~unIwHULwuSEȉEHExAt$A$HMAx1y+Iv8xH5]LHH1QH[A\A]A^A_]UHAVSHH Ht&I@H3FHNH9L31H1H[A^]UHAVSHHH!)HHEHHtlxHxvx;tHxHI@H3FHNH9L31H1H (H H;Mu HĀ[A^]tUHAVSIHH;u1uHsL_[A^]UHAVSHHHG(P01@HmI@H3FHNHY8L31[A^]UHAWAVATSHHIuqHMMHsHAALE1AuHE܃s"A|$1@TvtrL1u,A|$u$AL$H3LNADH[A\A^A_]H5vL:H@I7FHNLs7IE1UHAWAVATSHIHLE1uQIvHH)Du:IvHHDAuIvHCHCAtRI6HUH:uu+I<$HuDs1uIt$HiH[A\A^A_]øUHAVSHHH8sHHkI@H3FHNHX6L31[A^]UHAVSHHLpAFH7FHNH6L31[A^]UHAWAVATSHHLtOH2HUHistAzEwE1}AD1vrBD1`rAE11MrHHjI@H3FHNHc5L;DH[A\A^A_]UHSPHH; r{Sr1H[]UHAVSHLH2H>HME1AuLEtt)u6I>111!I>1۹11I>1۹1sH[A^]UHAWAVSHIAHHxHXqt EtI6H1 1HXH+HĘ[A^A_]UHAWAVATSH IHuH2HL@ WHU)B{1pt:uJLHhI@I4$FHNL3M4$E1uo8 t o8#u;E1L1gI@I4$FHNLO3M<$.A&Bo8qH51LH1JADH [A\A^A_]UHAVSH HHWHU)Bx1o1@HUgI@H3FHNH2L31H [A^]UHAWAVATSHIHF(HP0E1u HC(HPtAHsLED[A\A^A_]UHAWAVSPHIHcHt!H5LHH1H[A^A_]ILHƺ4I@I7FHNL1M7H[A^A_]UHHt HG(Ht]` m8][pUHAWAVSPIIH։>H@LLHvPANjCHK LH_1DH[A^A_]UHAWAVATSHPHIH HHE؊FA<t <te<H1HALeA$[HsHU3UnLoH<(HǐCfHALeHsL5nLToH<(HǐCfH1nLH%LHD2H H H;Mu HP[A\A^A_]LlUHAWAVAUATSHHMMIAՃtKtkAD$IH1۾hLL1\nLnAH}L:nHLutDHHE1RH}LuL:cnHHÉD)L6'IHH= &ILL=~A?[u%IL]mHtD)L&IMuDЍ4L&IWHU))B )BBDjHMLHlH5ݢH}LH1FH=֢$&ILWHU))B )BBDjHMLHktZHnbL1H5H}L1&FeHEHp PLlH}ЋGHMȉ4k1Hb.HEHp PLkH}ЋGHMȉkHa1L1HH[A\A]A^A_]UHSHHHoHHEH|l~Hujx|HuH81H .H H;Mu HĈ[]~iUHAWAVAUATSHLEIIIH1LMEjHE0HHt}H11bDmIHHHrAVH1LMDMjHEp\HHt2HHLrAEH3FHNH,L+1 A>iA~iH1=H[A\A]A^A_]UHAWAVSPHI~u@Cu:LHxHt*IH-tL.HojLL,HsFHNL,CuH;hHs0HtL+H_HH1H[A^A_]UHHHcHH]hUHHHcHH]hUHHHH]WhUHAWAVSPIHH3hE1tAHgI?hu-Mg8#t#Cg8t9g86t/gE185ADH[A^A_]UHg8]iUHH?]gUHAVSIeBtFH5HqL^Nu"H5iH H 51LE1A[A^]UHAVSHH2PHtHH1@1H^I@H3FHNH-*L31[A^]UHAWAVATSHAIH21$PHtiIAt!L{MtHŁLL6uJE1L}t;LLtu,AD$I6FHNL)M&1[A\A^A_]LLLA[A\A^A_]UHAWAVSPHAIH21mOHt Au11H[A^A_]HSLHƹAH[A^A_]鶹UHAWAVAUATSHIHLzLsAAI6HߺNHIHHqLuA}|HLl)IE~JE1HLDHME1tAVHLHME1tHUHMHL}AE9|HEH0HL0G;H5Hߺ*I@H3FHNH(L3H[A\A]A^A_]I6HLH[A\A]A^A_]FUHAVSIH211MHtLHaÅxLL1\H@I6FHNLq'I1[A^]UHAVSIHH21oMHtHH[A^]IH5NH11>[A^]UHAWAVAUATSPIItIwH~L3tI7L1nN1H[A\A]A^A_]I7L1LHtHULH$HtbIL11|Iă}~71IwITL1z,uITILLL{H9]I7LLFEgH5xL(H@I6FHNL&I,UHAVSIeZtFH5HlLvIu"H5H"H 11LE17<[A^]UHAVSHHHZI@H3FHNHb%L31[A^]UHAWAVSHHAIHHHEB2)PH2HHict'H H H;MHĨ[A^A_]øAtAHHPLDHtHHHhPtHhb HhbHt]HXHpdH$cHt=HpL&H@I6FHNL4$I1H5L&H@I6FHNL#I`UHAVSH1HH]XI@H3FHNH#L31[A^]UHAVSI1HS㥛 HHH?HHLXH@I6FHNLR#I1[A^]UHAWAVATSHPI׉I16bHEW)EAIWHMLtnH}tmH}H]Hr`I?$HuHHaHt8tLH5L8%H@I6FHNL"IADHP[A\A^A_]Ã}EPH 1MʋU@)lIHcHiQHH?H'ipliəHcHigfffHH?H!imHiQH%Mi:)HcHcMHiHcUHkQH1EAċ}ȃLut811ZuLLxHuu*H5GLALLHU@!HuЋFHNLH]LHA ~ɀ< uIcFHHANIDAFIuFHNLuMuDH8[A\A]A^A_]UHAVSNt[A^]HL5DPH>1AIH1[A^]UHAWAVAUATSHLuyE1MuEf EhIAE1L}Ct;LZ~AN "IcH@HIH9t KHH HAH AAI׉IE1|IwHSLl(E1AAD$9urDItHULXLA}HuDSZtXAHuHyIcHuȋUH1INjEШtKLDM>H ȔLALBHEUHH1gIAGH3FHNHL;E1DH[A\A]A^A_]UHAWAVSPIu6WHcLNI@I7FHNL=M71H kL8H[A^A_]UHAWAVAUATSHMLH(HUAH HHEEH}LL%MHcH41A$HXHtL0H`MtALxHEEAFpE1HhDžLE1HPEE11HE1HEE1IcHEH<IŊ<2t?<><u AE<@a<>qETLH5p=WtLH5*Wu%EA9 D;pLDeIcAHXL,?DIELH1A}>@HEF|/1A&H1<@DHP@H2<uAE9}IcHMH<HEA&HEHDEHEEDPEAELHHhAELHHhEuoAE9}gIcHMHHIHHaAALmL_HcHH4H 1A$HEHHEwD}AAIFH8K6HHpE1L}LuLLDH@E1aH@IAT$LLH@E1aH@HMJHH5uLH1rTHHHIL9p{L%ID}H5hH]Hߺ*I@H3FHNH~L3XH5H}L18-:H5ȍH]HߺI@H3FHNH+L3L%!IHX1A$A聨1H8HEH8HHLxLuMHpHLHhHt]Eăt\uqH}1EKHcUÉHhSHcMH911R5.H} PHHH}Et-HPusH}HuPHH`H}QH5،H}E1HEE1EH`B1@H]H(}O8"RH5^E1H}HH1)+ E1EvEE E1'&O8QH5gE1H}HH1*EEEzH5H}]HOE1EQUȋEH`HEEMtBEuhH5WL1QH}L0NEMtnH}1衵+EĉNAEk1@L辶EăuRN8PH5E1H}LH1)vE}iNEăDHcLHE11A$HEEDHh1HEDE1EA9LxEIcHXL$LhHPI)E1KHH5LiOt%HH5OtIM9uγEA EE1E9Lx?IcHXHD;}u EH}NEEẺEHXHPHJ9EtI>JDuD[J9Et$I>NJDuDJD;ut}I}t2L5I>J9EtI>JDuDIDIH`tH`8t}IHxtHx8t`I}ȃtSI}t}EII<$LcIL5lI>IH5KHt6I>jII4$IcՉKHtI>OIH5K~HUH~@DG ALHL@E1E~BH1;1t H I9uL1IM9u]UHAWAVAUATSHHIH H HMH5~HHtXHE1LLHHIE~LHLD-AAtH'HAHHH;EuDH[A\A]A^A_]YGUHAWAVSH(HHHHEA L}IH5~}Hߺ IGH߾LH;uH3HUH&IuDuHrHH;EuDH([A^A_]FUHDO E~CLLL92t H Hu+AɃtIcH@ALJIHDO ADO 1]UHAWAVAUATSHỈII11?IM~]]ЃH5L LLHOLLm>LLHOELEH5qL> LLHtOLL'>LLH[OLH >Hb~HEHHEH5輳HEHHEH5ւL LLHNMt7HXHȂLȂLLHMI1jS HLLg=LLHNLHuкF LLH|NLH[A\A]A^A_]UHAWAVATSH HIIH*HHE11>IHc HKLH HKH9LLKH}LLKHLLKHLLKHLLHK`HnpLLHK HɁLLuHK0HLL_HK@HLLIHis0@BHS㥛 Hk8HH?HHHHvLLH5rL LLHM{6LHƺ LLHLMtVLL1-Ht6HUHLrLǘHthHHmLLILLL%AFI4$FHNLM4$1H 6H H;Mu3H [A\A^A_]H5LL10LLQ]BUHAWAVSPIIHHֺHLHKHL:HLHH[A^A_]KwUH HH]HWUHAVSHeAt~H5(qHLAH߹-)uYH5qHH E1HE1H5H0H1E1H5HH1E1D[A^]UHAWAVATSHL% 91A$IƾH'BHt6HLgI@H3FHNHL;1;H5Hߺ-I@H3FHNHL;L1A$[A\A^A_]UHAWAVSPIuBHz)IH@tE<@8BH5,LLH1H ~L1ۉH[A^A_]UHAVSHHH2H`|u0HuH?8I@H3FHNHL31HĐ[A^]UHAVSHHIu>HsH`LAumH; Hi`@BLHBMH3H`Lu0HuL7H@I6FHNLI1HĐ[A^]UHAVSHHIu>HsH`L@H;lH`LHpH3H`LuSHiM@BHS㥛 HmHH?HHHL6H@I6FHNLI1HĐ[A^]UHAWAVSPIAHH5}fHHDLH[A^A_]yUHAWAVSPIH2oIH}HHǾ/d@Ht6xt9H)tVNЃ|HA| /HtLH:H5)AFI7FHNL-M76H5YLH@I7FHNLIAFHAN LL1H[A^A_]UHAWAVATSIIH:HHǾ/w?IH߾.g?Ht Mt I9vIC)LHމH@I6FHNLLI1[A\A^A_]UHAWAVATSIH2 IHHHǾ/>IH߾.>Ht Mt I9rHQLHƺdH@I7FHNLIAFHAN LL1[A\A^A_]UHAWAVSPHH2@ IHNHǾ/8>Ht7HHHƺI@H3FHNH+L; AFH3FHNH L3AFHAN HL1H[A^A_]UHAWAVAUATSPHI11s4IH;IĀ8/u"H5VL'LLH]DLH]HLHH@I4$FHNLI$DH[A\A^A_]UHH2]UHAWAVSPILHBVH#H@I?H"L,LHH<1H[A^A_]UHAWAVAUATSHIAIH5j+HHLuIH-IA|:EAK%@%B%D%F%H%J%L%N%P%R%T%V%X%Z%\%^%`%b%d%f%h%j%l%n%p%r%t%v%x%z%|%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%LAS%hhh)h8hGhYhnhhhhhxhnhdhZhPhFhh44hH*hT hbhr hhhhhhhhhhhh+hChSh`vhllh{bhXhNhDh:h0h&hh hh*h9hGhVhehxhhhhhhhh|hrhhh(^h7ThHJhY@hh6hx,h"hhhhhhhhhh h-h;hJhYhijimsh version %d.%d Usage: %s or : %s [options] [filename] --version%d.%d --helpjim::argv0tcl_interactive10-eargv0-eval [info source [stdin read] stdin 1]%s argvargcWithout options: Interactive modeOptions: --version : prints the version string --help : prints this text -e CMD : executes command CMD NOTE: all subsequent options will be passed as arguments to the command [filename|-] : executes the script contained in the named file, or from stdin if "-" NOTE: all subsequent options will be passed to the script initjimsh1.0initjimsh.tcl proc _jimsh_init {} { rename _jimsh_init {} global jim::exe jim::argv0 tcl_interactive auto_path tcl_platform if {[exists jim::argv0]} { if {[string match "*/*" $jim::argv0]} { set jim::exe [file join [pwd] $jim::argv0] } else { foreach path [split [env PATH ""] $tcl_platform(pathSeparator)] { set exec [file join [pwd] [string map {\\ /} $path] $jim::argv0] if {[file executable $exec]} { set jim::exe $exec break } } } } lappend p {*}[split [env JIMLIB {}] $tcl_platform(pathSeparator)] if {[exists jim::exe]} { lappend p [file dirname $jim::exe] } lappend p {*}$auto_path set auto_path $p if {$tcl_interactive && [env HOME {}] ne ""} { foreach src {.jimrc jimrc.tcl} { if {[file exists [env HOME]/$src]} { uplevel #0 source [env HOME]/$src break } } } return "" } if {$tcl_platform(platform) eq "windows"} { set jim::argv0 [string map {\\ /} $jim::argv0] } set tcl::autocomplete_commands {info tcl::prefix socket namespace array clock file package string dict signal history} proc tcl::autocomplete {prefix} { if {[set space [string first " " $prefix]] != -1} { set cmd [string range $prefix 0 $space-1] if {$cmd in $::tcl::autocomplete_commands || [info channel $cmd] ne ""} { set arg [string range $prefix $space+1 end] return [lmap p [$cmd -commands] { if {![string match "${arg}*" $p]} continue function "$cmd $p" }] } } if {[string match "source *" $prefix]} { set path [string range $prefix 7 end] return [lmap p [glob -nocomplain "${path}*"] { function "source $p" }] } return [lmap p [lsort [info commands $prefix*]] { if {[string match "* *" $p]} { continue } function $p }] } _jimsh_init wrong # args: should be "%#s command ..." Use "%#s -help ?command?" for help-helpambiguousUsage: wrong # args: should be ""subcmd-lookupUsage: "%#s command ... ", where command is one of: %#sdummy%#s, %s command "%#s": should be %#sWelcome to Jim version %d.%d [%d] . [%s] . . %c> not enough arguments for all format specifiersformat string ended in middle of field specifier%ld.%ldformat too longbad field specifier "%s"jim.c::can't delete "%#s": command doesn't existcan't rename "%#s": command doesn't existcan't rename to "%#s": command already existscan't rename local command "%#s"invalid command name "%#s"bad variable name "%#s": upvar won't create a scalar variable that looks like an array elementvariable "%#s" already existsbad variable name "%#s": upvar won't create namespace variable that refers to procedure variablecan't upvar from variable to itselfcan't read "%#s": no such variablecan't unset "%#s": no such variable.%020lu>intexpected integer but got "%#s"Integer value too big to be representedsourcecoerced-doubledoubleNaN-InfInf%.12gexpected floating-point number but got "%#s"expected boolean but got "%#s"trueyesonfalsenoofflistListEnsureLengthidx >= 0missing value to go with keydictJimDictHashFindtvoffsetindexend%dend%dbad index "%#s": must be intexpr or end?[+-]intexpr?okerrorreturnbreakcontinuesignalexitevalreturn-codeexpected return code but got "%#s"*/%+<<>><<<>>><><=>===!=&^|&&||**eqneinniltgtlege!~ - +wideabsroundrandsrandsincostanasinacosatanatan2sinhcoshtanhceilfloorexploglog10sqrtpowhypotfmodexponentiation of zero by negative powerDivision by zerosyntax error in expression: "%#s"eENnIi.nanNANinfINFunmatched "["missing close-braceextra characters after close-bracemissing quotemissing close parenthesisExprTreeCreateTreeexpr->len <= tokenlist->count - 1Expression too complexunexpected open parenthesis in expression: "%#s"unexpected closing parenthesis in expression: "%#s"unexpected comma in expression: "%#s"too many arguments to math function: without ? in expression: "%#s"missing arguments for math functiontoo many arguments for math functionmissing operand to %s in expression: "%#s"missing operator in expression: "%#s"too %s arguments for math functionfewmanyempty expressionsyntax error in expression "%#s": premature end of expressionextra terms after expressionexpressionInfinite eval recursionproccmd ...??arg ...?wrong # args: should be "%#s%#s"varName ?increment?variablescriptaliasputsincrwhileloopforforeachlmaplassignifswitchlindexlsetlsearchllengthlappendlinsertlreplacelsortappenduplevelexprxtraceconcatupvarglobaltimetimeratecatchtryrefgetrefsetreffinalizecollectrenamesubstinfoexistssplitjoinformatscanlrangelrepeatenvlreverserangetailcalllocalupcallapplynewname command ?args ...?varName ?newValue?-nocomplain?-nonewline? string-nonewlineThe second argument must be -nonewlinenumber ?number ... number?condition bodyvar ?first? limit ?incr? bodystart test next bodyvarList list ?varList list ...? scriptforeach varlist is emptyvarList list ?varName ...?thenelseelseifcondition ?then? trueBody ?elseif ...? ?else? falseBody?options? string pattern body ... ?default body? or {pattern body ?pattern body ...?}-exact-glob-regexp-commandbad option "%#s": must be -exact, -glob, -regexp, -command procname or --defaultregexpno body specified for pattern "%#s"list ?index ...?element %#s missing from sublist "%#s"listVar ?index ...? value-bool-not-all-inline-stride-index?-exact|-glob|-regexp|-command 'command'? ?-bool|-inline? ?-not? ?-nocase? ?-all? ?-stride len? ?-index val? list valuestride length must be at least 1list size must be a multiple of the stride lengthvarName ?value value ...?list index ?element ...?list first last ?element ...?-ascii-increasing-decreasing-integer-real-unique?options? list"-command" option must be followed by comparison commandstride length must be at least 2"-index" option must be followed by list indexvarName ?value ...?arg ?arg ...??level? command ?arg ...?name arglist ?statics? bodyJimCreateProcedureCmdcmdPtrargument with no nametoo many fields in argument specifier "%#s"args'args' specified more than oncevariable for initialization of static "%#s" not found in the local contextstatic variable name "%#s" duplicated in statics listtoo many fields in static specifier "%#s"callback-code-errorinfo-errorcode-levelbad level "%#s"?-code code? ?-errorinfo stacktrace? ?-level level? ?result?errorCode?level? otherVar localVar ?otherVar localVar ...?varName ?varName ...?bytelengthlengthcomparematchequalisbyterangereplacemaprepeatreversefirstlastcattrimtrimlefttrimrighttolowertouppertotitle-lengthoption ?arguments ...??-nocase? ?-length int? string1 string2?-nocase? pattern string?-nocase? mapList stringstring first laststring first last ?string?string countJim_StringCoreCommandbufstring indexsubString string ?index?string ?trimchars?-strictclass ?-strict? strlist must contain an even number of elementsintegeralphaalnumasciidigitlowerupperspacexdigitcontrolprintgraphpunctbooleanclassscript ?count? microseconds per iterationscript ?milliseconds?us_per_iteriters_per_seccountelapsed_us?exitCode??-?no?code ... --? script ?resultVarName? ?optionVarName??-?no?code ... --? script ?on|trap codes vars script? ... ?finally script?NONE-notrapfinallyhandlerstring tag ?finalizer?reference newValuereference ?finalizerProc?oldName newNamecreategetkeyssizemergewithremovevaluesupdategetwithdefaultsubcommand ?arguments ...?subcommandgetdefdictionary ?key ...?dictionary ?key ...? key defaultvarName key ?key ...? valuedictionary key ?key ...?varName key ?key ...?dictionary ?pattern?dictionary?key value ...?dictVar ?key ...? script-nobackslashes-nocommands-novariables?options? stringbodystaticscommandsprocschannelsglobalslevelframelocalsvarsversionpatchlevelcompletehostnamestacktracenameofexecutablereturncodesreferences-nonssubcommand ?args ...?varNamecommand "%#s" is not an alias?pattern?namespace infosource ?filename line??levelNum?procnamecommand "%#s" is not a procedure%d.%dscript ?missing?os.gethostname{info nameofexecutable}?code?typelinefile*[?\-proc-alias-var?option? namestring ?splitChars? list ?joinString?formatString ?arg arg ...?string format ?varName varName ...?"%n$" argument index out of rangedifferent numbers of variable names and field specifiersvariable is not assigned by any conversion specifiersscanformatstring%d%ncannot mix "%" and "%n$" conversion specifiersvariable is assigned by multiple "%n$" conversion specifiers"%n$" conversion specifier is negativeunmatched [ in format stringhlLmissing scan conversion characterefgcsndoxuibad scan conversion characterfield width may not be specified in %c conversionunsigned wide not supportedmessage ?stacktrace?list first lastcount ?value ...?varName ?default?environment variable "%#s" does not existfileName?start? end ?step?Invalid (infinite?) range specified?min? maxInvalid arguments (max < min)tailcall can only be called from a proc or lambdacmd ?args ...?no previous command: "%#s"lambdaExpr ?arg ...?can't interpret "%#s" as a lambda expressionapply lambdaExprget-enumoption%s%s "%s": must be or , utf8_prev_lenutf8.clen > 0successno matchbad patternnull argumentunknown errortoo bigout of memorytoo many ()parentheses () not balancedbraces {} not balancedinvalid repetition count(s)extra characters*+ of empty atomnested countinternal errorcount follows nothinginvalid escape \ sequencecorrupted programcontains null charbrackets [] not balancedBad error code:alpha::alnum::space::blank::upper::lower::digit::xdigit::cntrl::graph::print::punct: ^$.[()|?{+*<>mMwWdDsSAZ%s: %sTMPDIR/tmp/tcl.tmp.XXXXXXSIGINTSIGPIPENot a filehandle: "%#s"aioopensocketpipestdinrstdoutwstderrread?-nonewline|-pending|len?copytohandle ?size?getfdgets?var??-nonewline? strisattyrecvfromlen ?addrvar?sendtostr addressaccept?addrvar?listenbacklogsockopt?opt 0|1?socknamepeernameflusheofclose?r(ead)|w(rite)?seekoffset ?start|current|endtellfilenamendelay?0|1?syncbufferingnone|line|fullstatlock?-wait?unlock-pending-pending not supported on this connection typeinvalid parameter: negative len%#s: %s]:%d:%dNot a valid address: %s:%s0.0.0.0Not a valid address: %saio.sockstream%ldr+Failed to set %#s: %sUnknown sockopt %#sbroadcastdebugkeepalivenosigpipeoobinlinesndbufrcvbuftcp_nodelay-nodeletenot supportedstartcurrentnonefull-waitlock failed: %sfilename ?mode?::popenRDONLYWRONLYRDWRAPPENDBINARYCREATEXCLNOCTTYTRUNCw+access modeJimAioOpenCommandjim-aio.cmodeaio.handle%ldunix.serverunix.dgramunix.dgram.serverdgramdgram.serverstreamstream.serverpairpty-async-ipv6?-async? ?-ipv6? type ?address?socket typeaio.sockpair%ldUnsupported socket type%s: bind: %s%s: connect: %slisten: %saio.sock%ldaio.pty%ldaio.pipe%ldJimMakeChannelfd >= 0arrayarrayNamearrayName ?pattern?arrayName listlist must have an even number of elements"%#s" isn't an arrayclockclicksseconds ?-format string? ?-gmt boolean?microsecondsmillisecondsstr -format format ?-gmt boolean?seconds%a %b %d %H:%M:%S %Z %Yformat string too long or invalid time-gmt-formatFailed to parse time according to formatexecwaitpiderror reading from output pipeerror reading from error pipe|&illegal use of | or |& in commandcan't specify "%s" as last word in commanddidn't specify command to executecouldn't write temp filecouldn't write file "%s": %scouldn't create output pipemissing command to execcouldn't create pipecouldn't fork child processcouldn't exec "" %s=%sCHILDSTATUSCHILDKILLEDkilledCHILDSUSPsuspendedchild by signal -nohang?-nohang? ?pid?devinonlinkuidgidatimemtimectimemtimeuscan't set "%#s(dev)": variable isn't arraypwdcddirectorycharacterSpecialblockSpecialfifolinknamename ?time?copy?-force? source destdirnamerootnameextensiontailnormalizename ?name ...?readablewritableexecutabledelete?-force|--? name ...mkdirdir ...tempfile?template??-symbolic|-hard? newname targetreadlinkname ?var?lstatownedisdirectoryisfilecould not read "%#s": %scan't set time on "%s": %sfile copycan't normalize "%#s": %sPath too long-forcefile delete forcecouldn't delete file "%s": %scan't create directory "%#s": %serror renaming "%#s" to "%#s": target existserror renaming "%#s" to "%#s": %s-hard-symbolicerror linking "%#s" to "%#s": %scould not read link "%#s": %sFailed to get pwdcouldn't change working directory to "%s": %sinterpjim::exeinterp.parentinterp.handle%ldscript ...childcmd parentcmd ?arg ...?JimInterpAliasProcjim-interp.cparentjsonjson::decodejsonencodenullempty JSON string-null-schema?-index? ?-null nullvalue? ?-schema? jsoninvalid JSON stringtruncated JSON stringroot element must be an object or an arrayjson_decode_get_typejim-json.cboolobjmixedstrnumjson_decode_add_schema_typetype >= 0 && type < JSON_MAX_TYPEJimCanonicalNamespacejim-namespace.cnameObj->refCount != 0nsObj->refCount != 0can't define "%#s": name refers to an element in an arraynamespacecanonicalqualifiersorigincodeinscopeimportexportwhichsubcommand ?arg ...?name arg ?arg...??current? ?name??name?name ?value?package "%s" was already provided%#s%sCan't load package %spackage.tcl.%s.tcl%s/%s.tclprovidename ?version?requirenames?-nocomplain? dirPathreaddir-indices-line-start?-switch ...? exp string ?matchVar? ?subMatchVar ...?regexp match variables not allowed when using -inlineerror while matching pattern: %s?-switch ...? exp string subSpec ?varName?regsubcouldn't compile regular expression pattern: %sensembleensemble.tcl proc ensemble {command args} { set autoprefix "$command " set badopts "should be \"ensemble command ?-automap prefix?\"" if {[llength $args] % 2 != 0} { return -code error "wrong # args: $badopts" } foreach {opt value} $args { switch -- $opt { -automap { set autoprefix $value } default { return -code error "wrong # args: $badopts" } } } proc $command {subcmd args} {autoprefix {mapping {}}} { if {![dict exists $mapping $subcmd]} { if {$subcmd in {-commands -help}} { set prefixlen [string length $autoprefix] set subcmds [lmap p [lsort [info commands $autoprefix*]] { string range $p $prefixlen end }] if {$subcmd eq "-commands"} { return $subcmds } set command [lindex [info level 0] 0] return "Usage: \"$command command ... \", where command is one of: [join $subcmds ", "]" } dict set mapping $subcmd ${autoprefix}$subcmd } tailcall [dict get $mapping $subcmd] {*}$args } } globglob.tcl package require readdir proc glob.globdir {dir pattern} { if {[file exists $dir/$pattern]} { return [list $pattern] } set result {} set files [readdir $dir] lappend files . .. foreach name $files { if {[string match $pattern $name]} { if {[string index $name 0] eq "." && [string index $pattern 0] ne "."} { continue } lappend result $name } } return $result } proc glob.explode {pattern} { set oldexp {} set newexp {""} while 1 { set oldexp $newexp set newexp {} set ob [string first \{ $pattern] set cb [string first \} $pattern] if {$ob < $cb && $ob != -1} { set mid [string range $pattern 0 $ob-1] set subexp [lassign [glob.explode [string range $pattern $ob+1 end]] pattern] if {$pattern eq ""} { error "unmatched open brace in glob pattern" } set pattern [string range $pattern 1 end] foreach subs $subexp { foreach sub [split $subs ,] { foreach old $oldexp { lappend newexp $old$mid$sub } } } } elseif {$cb != -1} { set suf [string range $pattern 0 $cb-1] set rest [string range $pattern $cb end] break } else { set suf $pattern set rest "" break } } foreach old $oldexp { lappend newexp $old$suf } list $rest {*}$newexp } proc glob.glob {base pattern} { set dir [file dirname $pattern] if {$pattern eq $dir || $pattern eq ""} { return [list [file join $base $dir] $pattern] } elseif {$pattern eq [file tail $pattern]} { set dir "" } set dirlist [glob.glob $base $dir] set pattern [file tail $pattern] set result {} foreach {realdir dir} $dirlist { if {![file isdir $realdir]} { continue } if {[string index $dir end] ne "/" && $dir ne ""} { append dir / } foreach name [glob.globdir $realdir $pattern] { lappend result [file join $realdir $name] $dir$name } } return $result } proc glob {args} { set nocomplain 0 set base "" set tails 0 set n 0 foreach arg $args { if {[info exists param]} { set $param $arg unset param incr n continue } switch -glob -- $arg { -d* { set switch $arg set param base } -n* { set nocomplain 1 } -ta* { set tails 1 } -- { incr n break } -* { return -code error "bad option \"$arg\": must be -directory, -nocomplain, -tails, or --" } * { break } } incr n } if {[info exists param]} { return -code error "missing argument to \"$switch\"" } if {[llength $args] <= $n} { return -code error "wrong # args: should be \"glob ?options? pattern ?pattern ...?\"" } set args [lrange $args $n end] set result {} foreach pattern $args { set escpattern [string map { \\\\ \x01 \\\{ \x02 \\\} \x03 \\, \x04 } $pattern] set patexps [lassign [glob.explode $escpattern] rest] if {$rest ne ""} { return -code error "unmatched close brace in glob pattern" } foreach patexp $patexps { set patexp [string map { \x01 \\\\ \x02 \{ \x03 \} \x04 , } $patexp] foreach {realname name} [glob.glob $base $patexp] { incr n if {$tails} { lappend result $name } else { lappend result [file join $base $name] } } } } if {!$nocomplain && [llength $result] == 0} { set s $(([llength $args] > 1) ? "s" : "") return -code error "no files matched glob pattern$s \"[join $args]\"" } return $result } jsonencode.tcl proc json::encode {value {schema str}} { json::subencode [lindex $schema 0] $value [lrange $schema 1 end] } proc json::subencode {type value {schema {}}} { switch -exact -- $type { str - "" { return \"[string map [list \\ \\\\ \" \\" \f \\f \n \\n / \\/ \b \\b \r \\r \t \\t] $value]\" } num { if {$value in {Inf -Inf}} { append value inity } return $value } bool { if {$value} { return true } return false } obj { set result "\{" set sep " " foreach k [lsort [dict keys $value]] { if {[dict exists $schema $k]} { set subtype [dict get $schema $k] } elseif {[dict exists $schema *]} { set subtype [dict get $schema *] } else { set subtype str } append result $sep\"$k\": append result [json::subencode [lindex $subtype 0] [dict get $value $k] [lrange $subtype 1 end]] set sep ", " } append result " \}" return $result } list { set result "\[" set sep " " foreach l $value { append result $sep append result [json::subencode [lindex $schema 0] $l [lrange $schema 1 end]] set sep ", " } append result " \]" return $result } mixed { set result "\[" set sep " " foreach l $value subtype $schema { append result $sep append result [json::subencode [lindex $subtype 0] $l [lrange $subtype 1 end]] set sep ", " } append result " \]" } default { error "bad type $type" } } } nshelpernshelper.tcl proc {namespace delete} {args} { foreach name $args { if {$name ni {:: ""}} { set name [uplevel 1 [list ::namespace canon $name]] foreach i [info commands ${name}::*] { rename $i "" } uplevel #0 [list unset {*}[info globals ${name}::*]] } } } proc {namespace origin} {name} { set nscanon [uplevel 1 [list ::namespace canon $name]] if {[exists -alias $nscanon]} { tailcall {namespace origin} [info alias $nscanon] } if {[exists -command $nscanon]} { return ::$nscanon } if {[exists -command $name]} { return ::$name } return -code error "invalid command name \"$name\"" } proc {namespace which} {{type -command} name} { set nsname ::[uplevel 1 [list ::namespace canon $name]] if {$type eq "-variable"} { return $nsname } if {$type eq "-command"} { if {[exists -command $nsname]} { return $nsname } elseif {[exists -command ::$name]} { return ::$name } return "" } return -code error {wrong # args: should be "namespace which ?-command? ?-variable? name"} } proc {namespace code} {arg} { if {[string first "::namespace inscope " $arg] == 0} { return $arg } list ::namespace inscope [uplevel 1 ::namespace current] $arg } proc {namespace inscope} {name arg args} { tailcall namespace eval $name $arg $args } proc {namespace import} {args} { set current [uplevel 1 ::namespace canon] foreach pattern $args { foreach cmd [info commands [namespace canon $current $pattern]] { if {[namespace qualifiers $cmd] eq $current} { return -code error "import pattern \"$pattern\" tries to import from namespace \"$current\" into itself" } set newcmd ${current}::[namespace tail $cmd] set alias $cmd while {[exists -alias $alias]} { set alias [info alias $alias] if {$alias eq $newcmd} { return -code error "import pattern \"$pattern\" would create a loop" } } alias $newcmd $cmd } } } proc {namespace info} {cmd {pattern *}} { set current [uplevel 1 ::namespace canon] if {[string first :: $pattern] == 0} { set global 1 set prefix :: } else { set global 0 set clen [string length $current] incr clen 2 } set fqp [namespace canon $current $pattern] switch -glob -- $cmd { co* - p* { if {$global} { set result [info $cmd $fqp] } else { set r {} foreach c [info $cmd $fqp] { dict set r [string range $c $clen end] 1 } if {[string match co* $cmd]} { foreach c [info -nons commands $pattern] { dict set r $c 1 } } set result [dict keys $r] } } ch* { set result [info channels $pattern] } v* { set result [uplevel #0 info -nons vars $fqp] } g* { set result [info globals $fqp] } l* { set result [uplevel 1 info -nons locals $pattern] } } if {$global} { set result [lmap p $result { string cat $prefix $p }] } return $result } proc {namespace upvar} {ns args} { set nscanon ::[uplevel 1 [list ::namespace canon $ns]] set script [list upvar 0] foreach {other local} $args { lappend script ${nscanon}::$other $local } tailcall {*}$script } proc {namespace ensemble} {subcommand args} { if {$subcommand ne "create"} { return -code error "only \[namespace ensemble create\] is supported" } set ns [uplevel 1 namespace canon] set cmd $ns if {$ns eq ""} { return -code error "namespace ensemble create: must be called within a namespace" } ensemble $cmd -automap ${ns}:: {*}$args } oooo.tcl proc class {classname {baseclasses {}} classvars} { set baseclassvars {} foreach baseclass $baseclasses { foreach method [$baseclass methods] { alias "$classname $method" "$baseclass $method" } set baseclassvars [dict merge $baseclassvars [$baseclass classvars]] proc "$classname baseclass" {} baseclass { return $baseclass } } set classvars [dict merge $baseclassvars $classvars] proc $classname {{cmd new} args} classname { if {![exists -command "$classname $cmd"]} { return -code error "$classname, unknown command \"$cmd\": should be [join [$classname methods] ", "]" } tailcall "$classname $cmd" {*}$args } proc "$classname new" {args} {classname classvars} { set obj ::[ref $classname $classname "$classname finalize"] set instvars $classvars proc $obj {method args} {classname instvars} { if {![exists -command "$classname $method"]} { if {![exists -command "$classname unknown"]} { return -code error "$classname, unknown method \"$method\": should be [join [$classname methods] ", "]" } return ["$classname unknown" $method {*}$args] } "$classname $method" {*}$args } $obj constructor {*}$args return $obj } proc "$classname finalize" {ref classname} { $ref destroy } proc "$classname method" {method arglist __body} classname { proc "$classname $method" $arglist {__body} { if {![uplevel exists instvars]} { return -code error -level 2 "\"[lindex [info level 0] 0]\" method called with no object" } set self [lindex [info level -1] 0] foreach __ [$self vars] {upvar 1 instvars($__) $__} unset -nocomplain __ eval $__body } } proc "$classname vars" {} classvars { lsort [dict keys $classvars] } proc "$classname classvars" {} classvars { return $classvars } proc "$classname classname" {} classname { return $classname } proc "$classname methods" {} classname { lsort [lmap p [info commands "$classname *"] { lindex [split $p " "] 1 }] } $classname method defaultconstructor {{__vars {}}} { set __classvars [$self classvars] foreach __v [dict keys $__vars] { if {![dict exists $__classvars $__v]} { return -code error -level 3 "[lindex [info level 0] 0], $__v is not a class variable" } set $__v [dict get $__vars $__v] } } alias "$classname constructor" "$classname defaultconstructor" $classname method destroy {} { rename $self "" } $classname method get {var} { set $var } $classname method eval {{__locals {}} __body} { foreach __ $__locals { upvar 2 $__ $__ } unset -nocomplain __ eval $__body } return $classname } proc super {method args} { set classname [lindex [info level -1] 0 0] uplevel 2 [list [$classname baseclass] $method {*}$args] } stdlibstdlib.tcl if {![exists -command ref]} { proc ref {args} {{count 0}} { format %08x [incr count] } } proc lambda {arglist args} { tailcall proc [ref {} function lambda.finalizer] $arglist {*}$args } proc lambda.finalizer {name val} { rename $name {} } proc curry {args} { alias [ref {} function lambda.finalizer] {*}$args } proc function {value} { return $value } proc stacktrace {{skip 0}} { set trace {} incr skip 2 loop level $skip [info level]+1 { set frame [info frame -$level] lappend trace [lindex [dict get $frame cmd] 0] [dict get $frame file] [dict get $frame line] } return $trace } proc stacktrace {{skip 0}} { set trace {} incr skip 1 set last 0 loop level $skip [info frame]+1 { set frame [info frame -$level] set file [dict get $frame file] set line [dict get $frame line] set lev [dict get $frame level] if {$lev != $last && $lev > $skip} { set proc [lindex [dict get $frame cmd] 0] lappend trace $proc $file $line } set last $lev } return $trace } proc stackdump {stacktrace} { set lines {} foreach {l f p} [lreverse $stacktrace] { set line {} if {$p ne ""} { append line "in procedure '$p' " if {$f ne ""} { append line "called " } } if {$f ne ""} { append line "at file \"$f\", line $l" } if {$line ne ""} { lappend lines $line } } join $lines \n } proc defer {script} { upvar jim::defer v lappend v $script } proc errorInfo {msg {stacktrace ""}} { if {$stacktrace eq ""} { set stacktrace [info stacktrace] lappend stacktrace {*}[stacktrace 1] } lassign $stacktrace p f l if {$f ne ""} { set result "$f:$l: Error: " } append result "$msg\n" append result [stackdump $stacktrace] string trim $result } proc {info nameofexecutable} {} { if {[exists ::jim::exe]} { return $::jim::exe } } proc {dict update} {&varName args script} { set keys {} foreach {n v} $args { upvar $v var_$v if {[dict exists $varName $n]} { set var_$v [dict get $varName $n] } } catch {uplevel 1 $script} msg opts if {[info exists varName]} { foreach {n v} $args { if {[info exists var_$v]} { dict set varName $n [set var_$v] } else { dict unset varName $n } } } return {*}$opts $msg } proc {dict replace} {dictionary {args {key value}}} { if {[llength ${key value}] % 2} { tailcall {dict replace} } tailcall dict merge $dictionary ${key value} } proc {dict lappend} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set list [dict get $dict $key] } lappend list {*}$value dict set dict $key $list } proc {dict append} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set str [dict get $dict $key] } append str {*}$value dict set dict $key $str } proc {dict incr} {varName key {increment 1}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set value [dict get $dict $key] } incr value $increment dict set dict $key $value } proc {dict remove} {dictionary {args key}} { foreach k $key { dict unset dictionary $k } return $dictionary } proc {dict for} {vars dictionary script} { if {[llength $vars] != 2} { return -code error "must have exactly two variable names" } dict size $dictionary tailcall foreach $vars $dictionary $script } tclcompattclcompat.tcl set env [env] if {[info commands stdout] ne ""} { foreach p {gets flush close eof seek tell} { proc $p {chan args} {p} { tailcall $chan $p {*}$args } } unset p proc puts {{-nonewline {}} {chan stdout} msg} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} puts $msg } tailcall $chan puts {*}${-nonewline} $msg } proc read {{-nonewline {}} chan} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} read {*}${chan} } tailcall $chan read {*}${-nonewline} } proc fconfigure {f args} { foreach {n v} $args { switch -glob -- $n { -bl* { $f ndelay $(!$v) } -bu* { $f buffering $v } -tr* { } default { return -code error "fconfigure: unknown option $n" } } } } } proc fileevent {args} { tailcall {*}$args } proc parray {arrayname {pattern *} {puts puts}} { upvar $arrayname a set max 0 foreach name [array names a $pattern]] { if {[string length $name] > $max} { set max [string length $name] } } incr max [string length $arrayname] incr max 2 foreach name [lsort [array names a $pattern]] { $puts [format "%-${max}s = %s" $arrayname\($name\) $a($name)] } } proc {file copy} {{force {}} source target} { try { if {$force ni {{} -force}} { error "bad option \"$force\": should be -force" } set in [open $source rb] if {[file exists $target]} { if {$force eq ""} { error "error copying \"$source\" to \"$target\": file already exists" } if {$source eq $target} { return } file stat $source ss file stat $target ts if {$ss(dev) == $ts(dev) && $ss(ino) == $ts(ino) && $ss(ino)} { return } } set out [open $target wb] $in copyto $out $out close } on error {msg opts} { incr opts(-level) return {*}$opts $msg } finally { catch {$in close} } } proc popen {cmd {mode r}} { lassign [pipe] r w try { if {[string match "w*" $mode]} { lappend cmd <@$r & set pids [exec {*}$cmd] $r close set f $w } else { lappend cmd >@$w & set pids [exec {*}$cmd] $w close set f $r } lambda {cmd args} {f pids} { if {$cmd eq "pid"} { return $pids } if {$cmd eq "getfd"} { $f getfd } if {$cmd eq "close"} { $f close set retopts {} foreach p $pids { lassign [wait $p] status - rc if {$status eq "CHILDSTATUS"} { if {$rc == 0} { continue } set msg "child process exited abnormally" } else { set msg "child killed: received signal" } set retopts [list -code error -errorcode [list $status $p $rc] $msg] } return {*}$retopts } tailcall $f $cmd {*}$args } } on error {error opts} { $r close $w close error $error } } local proc pid {{channelId {}}} { if {$channelId eq ""} { tailcall upcall pid } if {[catch {$channelId tell}]} { return -code error "can not find channel named \"$channelId\"" } if {[catch {$channelId pid} pids]} { return "" } return $pids } proc throw {code {msg ""}} { return -code $code $msg } proc {file delete force} {path} { foreach e [readdir $path] { file delete -force $path/$e } file delete $path } ?0C0E0C0E ;.A? x     ! #"%$'&)(+*-,/.1I325476:9<;>=@?BADCFEHGKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvzy|{~}SC=      #"%$'&)(+*-,/.1032<;?~,@,BAGFIHKJMLONPo,Qm,Rp,STVWY[\`acefhijkb,loqn,ru}d,ŧDEqpsrwv{|}0123456789:;<=>?@ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/PQRSTUVWXY Z [ \ ] ^_a`cbedgfihkjmlonqpsrutwvyx{z}|~     ! #"%$'&)(+*-,/.a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NOPQRSTUV!""*bJy}}c,Ƨ     ! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvyx{z}|~`      (!)"*#+$,%-&.'/08192:3;4<5=6>7?@HAIBJCKDLEMQYS[U]W_`haibjckdlemfngopqrstuvwxyz{|}N!2!!!0,,1,,2,,3,,4,,5,,6,,7,,8,,9, ,:, ,;, ,<, ,=, ,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O,,P, ,Q,!,R,",S,#,T,$,U,%,V,&,W,',X,(,Y,),Z,*,[,+,\,,,],-,^,.,_,/,a,`,e,:f,>h,g,j,i,l,k,s,r,v,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------- - - - - ------------------- -!-"-#-$-%-'---A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjml#"%$'&)(+*-,/.32547698;:=A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonzy|{~ħç§ȧǧʧɧѧЧק֧٧اSpqrstuvwxyz{|}~A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:      !"#$%&'()*+,-./0i2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STVWY[`cihoru      "#$%&'()*+,-./0123:e,;<=>f,ABCDEFGHIJKLMNOpqrsvw{|}PQRSTUVWX Y Z [ \ ]^_0123456789:;<=>? @!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~OPQRSTUV--------- - - - - ------------------- -!-"-#-$-%-'---pqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ( )!*"+#,$-%.&/'8091:2;3<4=5>6?7H@IAJBKCLDMEYQ[S]U_Wh`iajbkcldmenfogpqrstuvwz{xy|}&!*!k+!2!N!!!,0,,1,,2,,3,,4,,5,,6,,7,,8, ,9, ,:, ,;, ,<, ,=,,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O, ,P,!,Q,",R,#,S,$,T,%,U,&,V,',W,(,X,),Y,*,Z,+,[,,,\,-,],.,^,/,_,`,a,b,kc,}d,}g,h,i,j,k,l,m,Qn,qo,Pp,Rr,s,u,v,~,?,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}y~ef\aljS§çħŧƧǧȧɧʧЧѧ֧קا٧!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O0P1Q2R3S4T5U6V7W8X9Y:Z.44L4 8jv L3tARe-AR LYs LYsU5|q   קڧȣ̣Уԣأܣ 36'q'}./$//0z1<b26q2|2820Ĭ2ʬm3ϬX6Ӭ:۬::;=5tAAABB`JJL M'N-8S}T4T<UUVV>VA(WHWWO%ZUZ [\@manqjHrpYrtmrx#ss:tuuqu|}@*­ڧǭ/έ֭ݜڭԣ_(;"tqo!%q(.16H n8H n:Dn|H d<H d>DZADZDDZHDZLH PNH PPH PSH PVH FYH F\D2^D1`D0b eF ƣhH xk <n <q 7t 7w Kz K} K KTUTDDDDDD¨H ȨDͨDҨDרDܨDDDDDH H H ͰӰذݰ#/8>0;BJPVYckov~  &,28>EMSY_%rw۸-Ϭc %1OT\ekt|ĺպH}Z=ENZhv~ %;Ugzl   u$+(5<'DL~Vz_hnrx  F.*MS " %KݻP#)6=KPT[$$$$G%X%%'5&'&;J'(('<)*+n,,­-.AF\qLbLnM[NN OP PzQ%]R/S?THTQTT\cTx~UqVVWJXYwYYػ3ZZ[[ya\Rb_b<B5C \ OWww5wwذݰ ذ P!ʏԏޏ$.8BLV`jt~Đΐؐ (2<FPZdnxȑґܑ",6@JT^hr|’̒֒&0:DNXblvƓГړ  *4>HR\fpzʔԔޔG"p ppSApp SBppRARARAUAUAUARAppSBppppTATAppXAp `BSBp SC`Bp p SBSBRA]ARARARARARARARARARARARARARARARARARARARARApRARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARB[AZB`BpRB`AUA`ASA`ATATAUA`#ASAppSASAppSASASASASASASASAppSASASApp(RBSASAYASA[ARB[ApSASASASASASASEppSASApp0SBSASASASASASASASASASASASASASASASASASASASASASASASASASASASERA\ASAppSESA`ASASAp(WAUAR#`AQ@__DefaultRuneLocaleQr@___stack_chk_guard@___stderrp@___stdinp@___stdoutp@_isalnum@_isalpha@_isascii@_iscntrl@_isdigit@_isgraph@_islower@_isprint@_ispunct@_isspace@_isupper@_isxdigit@dyld_stub_binders@__NSGetEnvirons@___assert_rtns@___bzeros@___errors @___maskrunes(@___sprintf_chks0@___stack_chk_fails8@___tolowers@@___touppersH@__exitsP@_abortsX@_accepts`@_accesssh@_acossp@_asinsx@_atans@_atan2s@_binds@_bsearchs@_chdirs@_clearerrs@_clocks@_clock_gettimes@_closes@_closedirs@_connects@_coss@_coshs@_dups@_dup2s@_execvps@_exps@_fcloses@_fcntls@_fdopens@_feofs@_ferrors@_fflushs@_fgetss@_filenos@_fmods@_fopens@_forks@_fprintfs@_fputss@_freads@_frees@_freeaddrinfos@_fseekos@_fstat$INODE64s@_fsyncs@_ftellos@_fwrites@_getaddrinfos@_getcwds@_getenvs@_geteuids@_getpeernames@_getpids@_getsocknames@_getsockopts@_gettimeofdays@_gmtimes@_hypots@_inet_ntops@_isattys@_links@_listens@_localtimes@_localtime_rs@_logs@_log10s@_longjmps@_lseeks@_lstat$INODE64s@_mallocs@_memchrs@_memcmps@_memcpys@_memmoves@_memsets@_mkdirs@_mkstemps@_mktimes@_opens@_opendir$INODE64s@_openptys@_pipes@_pows@_printfs@_putchars@_putss@_qsorts@_rands@_readdir$INODE64s@_readlinks@_reallocs@_realpath$DARWIN_EXTSNs@_recvfroms@_removes@_renames@_rmdirs@_sendtos@_setjmps@_setsockopts@_setvbufs@_shutdowns@_sins@_sinhs@_snprintfs@_sockets@_socketpairs@_sprintfs@_sscanfs@_stat$INODE64s@_strchrs@_strcmps@_strerrors@_strftimes@_strlens@_strncmps@_strpbrks@_strptimes@_strrchrs@_strstrs@_strtods@_strtols@_strtouls@_strtoulls@_symlinks@_tans@_tanhs@_times@_umasks@_unlinks@_utimess@_waitpids@_write__mh_execute_header]9R@=nnE#IF_0.%n7m.D S!8`30#"*bJG@rg3 H@jX$[$X$KX*M+TMH# M4[ex?tLjzhre E5Qu!R $4$0YbWN4X}g"%R$"x2#C _ W? +3"cpDCw B/c `;  B e+//>#m/ Z^F58r;$N-PUZ|f@%F%B cul=>6t4qd4  L]@ ^TWU8QM<&nrN#Xon ke]fKkHE]]1nJWQ0~g?Bg^^wqyyblVbfS@  Z;wG]Uc|%.*i *RRRRRRS#####$##!!$!E\,@(( (H,4t@  H@dAJDS(ld|L\@P ` ,r4t<BEa,;IR[gv(/>EOX]chnv{ #08@IV^kw "-:?FOVemu}!8BJRYaiu~!)19BLUZ`fmu}  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGKUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ HIJLMNOPQRST  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGKUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~__mh_execute_header__DefaultRuneLocale__NSGetEnviron___assert_rtn___bzero___error___maskrune___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp___tolower___toupper__exit_abort_accept_access_acos_asin_atan_atan2_bind_bsearch_chdir_clearerr_clock_clock_gettime_close_closedir_connect_cos_cosh_dup_dup2_execvp_exp_fclose_fcntl_fdopen_feof_ferror_fflush_fgets_fileno_fmod_fopen_fork_fprintf_fputs_fread_free_freeaddrinfo_fseeko_fstat$INODE64_fsync_ftello_fwrite_getaddrinfo_getcwd_getenv_geteuid_getpeername_getpid_getsockname_getsockopt_gettimeofday_gmtime_hypot_inet_ntop_isalnum_isalpha_isascii_isatty_iscntrl_isdigit_isgraph_islower_isprint_ispunct_isspace_isupper_isxdigit_link_listen_localtime_localtime_r_log_log10_longjmp_lseek_lstat$INODE64_malloc_memchr_memcmp_memcpy_memmove_memset_mkdir_mkstemp_mktime_open_opendir$INODE64_openpty_pipe_pow_printf_putchar_puts_qsort_rand_readdir$INODE64_readlink_realloc_realpath$DARWIN_EXTSN_recvfrom_remove_rename_rmdir_sendto_setjmp_setsockopt_setvbuf_shutdown_sin_sinh_snprintf_socket_socketpair_sprintf_sscanf_stat$INODE64_strchr_strcmp_strerror_strftime_strlen_strncmp_strpbrk_strptime_strrchr_strstr_strtod_strtol_strtoul_strtoull_symlink_tan_tanh_time_umask_unlink_utimes_waitpid_writedyld_stub_binderradr://5614542