ELF FreeBSD4<[4 (444TT@q5/usr/libexec/ld-elf.so.1FreeBSDhp2iO'~_8Pd5*q61eMv XD:Z\T. g;r@fI"=NEk\oC3|-`YSQA $vw!,upV$G!@Flhy/~ysicK NB4 bBTn^Y  "61GQU^'lFDXf`wnk<Hm?A:&*_jzSuo{h[4}OZtr-/%M|bq,73)0E R( 9;Pg+ C85# % &#I+UKVLe.]Wam[t=2>{}R]xJc)>xsLad?JjH097(Wz< &$Y74yD*T?dtI&&>t&P(/c.t$n4 DTdP0t 1W'I bNv:\Tvn7b$G 4nD;T~dutv[V$:4DTd9t AG$3=%$x 4 D% T;d(Bt^bdLj, 76 J Q t` $z4-Do T dtA z2  j$h4{ DTld|t / Sp#    %t$74OBD$ T'3 d tLJC x !8kaGHw$#R 4Xb D.T7t d7Zt 4 V J G  p$O4 D TWwdT  tT = = R,E$B L45 DfTEdO~t & ^D %-I /5*;@,Q 'i { $4"DTd tO }8h?0F  'h p   r' $L4)D T +d)0tP4 R& z' l(8 )B WT 2$84mDT6d9tQ ?'Y r  =)DpK :P$f{ 4bDL1TBd t& JC)$U9\G&3 "j]$L4& Dx tvTE d>t{c|  ~WuMQv{(eq $G^4:fDT d= t}& VO7 '9D $4.K DZ T d&tLVrj Kw   !v:$ A4(0\KDsTCd% t? WL_\ ZLR&k  $}4 DT Vdt 2r9 ZiV$X4pDST0dPBt_&TԻ kvB( $4D{&T&@ dlta 4/cD#]bw9r 1d;3h?0$$4QDTY3d^0ntx|NF[V4CU'$'4bDTydt!038pD|{? $b\4&lD'TCd t 8s=gd&I i)}%]$@Y  4DT{kdut7S[tlibXmu.so.6XFreePixmapXtDisplayToApplicationContextstrcpyXCreateFontCursorXCreateGlyphCursorXmuInternStringsXmuCompareISOLatin1XFillRectanglesXtGetApplicationResourcesXCopyPlaneXSyncXtErrorMsgmemmove_DYNAMIC_XA_TEXT_XA_TARGETSXGetVisualInfoXCloseDisplayXtGetValuesgetenvXtOwnSelection__srgetXtFreeXmuPrintDefaultErrorMessageqsortfgetsXmuCvtStringToBitmapXmuCvtStringToLongXmuCvtStringToBackingStoremallocXmuInternAtomXSetForegroundXFillPolygonXmuUpdateMapHintsXGetWindowAttributesXtCalloc_XA_CHARACTER_POSITION_XA_COMPOUND_TEXTXQueryTreeXFreeGC_XEditResCheckMessagesXtWarningXtIsManagedXmuReshapeWidgetXStoreColorsXmuCvtStringToColorCursor_XA_SPANXUngrabServerXtMalloc_initXtStringConversionWarning_DefaultRuneLocaleXmuCreatePixmapFromBitmapXtDisplayStringConversionWarningstrrchrcallocXmuCvtStringToOrientationXmuCopyISOLatin1LoweredXLookupStringXtAppSetWarningMsgHandlerfprintfXmuCvtStringToJustify_XA_NULLXRecolorCursorXGetGCValuesXFreeXtGetSelectionValueXtWindowOfObjectXFreeColorsXSetRGBColormapsXAllocColorCellsstrncmp_XA_LENGTHstrncpyXmuDistinguishablePixelsreallocXrmGetDatabase__sFXmuAddInitializerXCreateColormapsscanfXShapeCombineMaskXmuCvtStringToCursorfopenXtDestroyWidgetXGetWMNormalHintsXtNameXtAppWarningMsgXmuCvtStringToShapeStylefcloseXDrawLineXmuCallInitializersXGrabServerXtGetResourceListstrcmpXQueryColorsXmuCvtStringToGravityXSetCloseDownMode_finigethostnamesprintfXrmStringToQuarkXGetAtomNameXInternAtomXAllocColorXCreatePixmapCursorXFillArc_XA_DELETEXtRealloc_GLOBAL_OFFSET_TABLE_XGetGeometry_XA_LIST_LENGTHXtVaSetValuesXmuConvertStandardSelectionexitXrmSetDatabaseXmuNewCvtStringToWidgetatoiXtCreateWidgetXFillRectangleXtTranslateCoordsXGetRGBColormapsXtWidgetToApplicationContextXCreatePixmapFromBitmapDatafputsXVisualIDFromVisualXCreatePixmapXCreateGCXOpenDisplayXrmPermStringToQuarkfreeXmuLocatePixmapFilelibXt.so.6XtOverrideTranslationsXtAppPendingXrmCombineDatabaseobjectClassXtDestroyGCprintfXtMakeGeometryRequestwmShellWidgetClassXtAppSetFallbackResourcesXCreateRegionXtSetValuesXtQueryGeometryXIntersectRegiongeteuidXFreeCursorXtVaGetValuesXMapWindowXtCreateManagedWidget_XtInheritTranslations_XtInheritXtErrorXtAppMainLoopXRaiseWindowXtAppAddInputgetpidXLoadFontXtGetMultiClickTimememcpywidgetClassRecXtAppPeekEventXtMakeResizeRequestXtPopupgetuidXtRegisterGrabActionXtIsRealizedXtRemoveWorkProcXtAllocateGCXtCreatePopupShellXAllocNamedColorXtRemoveTimeOutXLookupColorXtManageChildrenXtSetSensitiveXtGetActionListXtShellStringsXKeysymToStringXtConvertAndStoreXDestroyRegionXtRemoveInputXtAppErrorMsgXtRemoveEventHandlerXtAppWarningXMaxRequestSizeXtWindowXtScreenOfObjectXtResizeWidgetXtConvertXtInitializeWidgetClassoverrideShellWidgetClassXtCloseDisplayatofXtGetGCXtParseAcceleratorTablecompositeClassRecstrcatXtCallCallbackListXtCallAcceptFocusXtReleaseGCoverrideShellClassRecXSendEventXQueryPointerXSetWMHintsXtAddCallbackXtScreenXtAppCreateShellXtRemoveCallbackXtCallActionProcXtPopdownXMapSubwindows__errorXtLastTimestampProcessedXtParentXSetErrorHandlerXtManageChildXtDisplayXChangePropertyXtSetKeyboardFocusobjectClassRecXtIsSensitiveconstraintClassRecXtCreateWindowXtAppErrorXClipBoxXQueryColorXConfigureWindowgettimeofdaymemsetXtNameToWidgetXtAppAddActionsXSynchronizeXtSetMappedWhenManagedXtOpenDisplayXtAugmentTranslationsXtDisplayOfObjectXtConfigureWidgetXTranslateCoordinatesXtDisownSelectiontopLevelShellWidgetClassgetpwuidXtAddEventHandlergetcwdgetpwnamXtAppProcessEventvendorShellWidgetClassXClearAreaXtIsSubclassXtAppAddTimeOutXtSetTypeConverterapplicationShellWidgetClasscoreWidgetClassvendorShellClassRecwidgetClassXWithdrawWindowXFlushwmShellClassRecXScreenNumberOfScreenXrmGetStringDatabaseXtInstallAllAcceleratorsstatXtCallCallbacksXtAddConverteraccessXtRealizeWidgetXUnionRectWithRegionXtPopupSpringLoadedXtAppInitializetransientShellWidgetClassXtParseTranslationTableXQueryFontXtUnmanageChildrenXtUnrealizeWidgetshellWidgetClassXtVaCreateManagedWidgetXtUnmanageChildstrchrXtMoveWidgetXrmQuarkToStringXUnmapWindowXtStringsXtAppAddWorkProcrectObjClassRecXtVaGetApplicationResourceslibSM.so.6timelibICE.so.6creatsocketfflushacceptwritebindsetsockoptlstatstrstrrandsignalread___runetypeunlink_CurrentRuneLocalelistenfreadsrandfwritefcntlclose___tolowerlibXext.so.6XShapeQueryExtensionlibX11.so.6XSetInputFocusXSetWMProtocolsXCheckWindowEventXCopyGCXTextWidth16XSetWindowBackgroundXChangeActivePointerGrabXDefaultColormapOfScreenXDrawStringungetcXUnionRegionXDrawLinesstrerror___toupperXDrawImageStringXDefineCursorXDrawPointXRotateBuffersXFetchBufferperrorXPolygonRegionXCreateImageXCopyAreaXSetClipMaskXSetWindowBorderPixmapXUndefineCursorXMoveResizeWindowXGetWMColormapWindowsstrtolXGetImageXTextWidthXRectInRegionXDrawString16XSetRegionXDrawArcXPointInRegionXCreateBitmapFromDataXTextExtentsXReparentWindowXBellXPeekIfEventXSetIOErrorHandlerXParseGeometryXSetDashesXSetBackgroundXKeycodeToKeysymstrncatXParseColorXSetWindowBackgroundPixmap__swbufXStoreBufferXGContextFromGCXSetTSOriginXSubtractRegionXSetWindowBorderXDrawPointsXStoreBytesXSetFontXSetFunctionXDrawRectangleXSetWMColormapWindowsXSetLineAttributesXSetClipOriginXClearWindowXShrinkRegionXSetStippleopenXWarpPointerXSetGraphicsExposuresXGetFontPropertyXPutImageXSetFillStylelibxpg4.so.3__deregister_frame_info__register_frame_infolibm.so.2logsqrtcoshceilfloorfmodcostanhsinatan2powsinhlog10exptanatanasinacoshypotlibc.so.4asctimewaitpidpopenvsprintfrandompcloseerrnofscanfreadlinkdup2tolowersystemisattyendpwentsys_nerrstrtoulmktempreaddirisspacelseekbzeroabortpiperenamestrtodenvironfstatkillctimechdirfseekwait__prognameisupperstrcasecmpbcopyfdopenforkstrdupindexlocaltimeftellsys_errlistopendirisalnumtmpnamisprintfgetcatexitstrcspnsrandomfputcisdigit_exit__assertexecvpclosedir_etext_edata__bss_start_endend/usr/X11R6/lib:=@HZlqpxtxhp|(0DWuy{~048@   ľ Ⱦ ̾оԾؾܾ  !"#$ %$&(',(0)4*8+<,@-D.H/L0P1T2X3\4`5d6h7l8p;t<x>|?ABCDEFGIJKMNOPQRSĿTȿU̿VпWԿXؿYܿ[\]^_`abcdef ghijk l$m(n,o0p4r8s<t@uDvHwLyPzT{X|\}`~dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPT X \ ` d hlptx| !"#$%&'()*+,-.0123456789:; <=>?@ A$B(C,E0F4G8H<I@JDKHLLMPNTOXP\Q`RdShTlUpVtXxY|Z[\]^_abcdefghijkmnopqrstvwxz|  $(,048<@DHLPTX\`dhlptx| ' 5%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%ľhX0%Ⱦh` %̾hh%оhp%Ծhx%ؾh%ܾh%h%h%h%h%h%hp%h`%hP%h@%h0%h % h%h%h%h%h% h%$h%(h %,h(%0h0%4h8p%8h@`%<hHP%@hP@%DhX0%Hh` %Lhh%Php%Thx%Xh%\h%`h%dh%hh%lh%ph%thp%xh`%|hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%ĿhX0%ȿh` %̿hh%пhp%Կhx%ؿh%ܿh%h%h%h%h%h%hp%h`%hP%h@%h0%h % h%h%h%h%h% h%$h%(h %,h(%0h0%4h8p%8h@`%<hHP%@hP@%DhX0%Hh` %Lhh%Php%Thx%Xh%\h%`h%dh%hh%lh%ph%thp%xh`%|hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h % h%h%h%h%h% h%$h%(h %,h(%0h0%4h8p%8h@`%<hHP%@hP@%DhX0%Hh` %Lhh%Php%Thx%Xh%\h%`h%dh%hh%lh%ph%thp%xh`%|hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h % h%h%h%h%h% h%$h%(h %,h(%0h0%4h8p%8h@`%<hHP%@hP@%DhX0%Hh` %Lhh%Php%Thx%Xh%\h%`h%dh%hh%lh%ph%thp%xh`%|hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h % h%h%h%h %h % h %$h %(h %,h( %0h0 %4h8 p%8h@ `%<hH P%@hP @%DhX 0%Hh` %Lhh %Php %Thx %Xh %\h %`h %dh %hh %lh %ph %th p%xh `%|h P%h @%h 0%h %h %h %h %h %h %h %h %h %h( %h0 %h8 p%h@ `%hH P%hP @%hX 0%h` %hh %hp %hx %h %h %h %h %h %h %h %h p%h `%h P%h @%h 0%h % h %h %h %h %h % h %$h %(h %,h( %0h0 %4h8 p%8h@ `%<hH P%@hP @%DhX 0%Hh` %Lhh %Php %Thx %Xh %\h %`h %dh %hh %lh %ph %th p%xh `%|h P%h @%h 0%h %h %h %h %h %h %h %h %h %h( %h0 %h8 p%h@ `%hH P%hP @%hX 0%h` %hh %hp %hx %h %h %h %h %h %h %h %h p%h `%h P%h @%h 0%h % h U WVSҍu^|=~)}t#ET8t8/u H T@8ut RhWVSGzPmU=Tu@vTT@СT8ut hxcTÍvUUthhx+ÐUUVShhj-CCC CjhC8C$4[(C,CX1 sddd0@;CX|CTjjdjjSKPp jh ؍e[^ÐUWVSu} E]UЉUUUUF=(UtU RSPEPh@h F, toWV~TtKu@=(UthhU REPURFTPEPW ~TuBu==(Uthh>U REPURFTPEPW 8=(UthhU RSEPUREPW hW~t WVW:vWV5W^TSI U REPURSEPW ~t WV=W19\vWV5U RSEPURFTPEPW0~t WVW8vh +We[^_ÍvUS]{8ts85xSo]ÉU VS]E uu C<"u C<h@| sLh{E0]ES@SDCHHECP=(UtJ$sLsEPPhV0EE}fUf fUm]EmPEE}fUf fUm]EmPE%Eu1&E%}fUf fUm]EmPE%EE%EE}fUf fUm]EmPEE}fUf fUm]EmPE%Eu1&E%}fUf fUm]EmPE%Eu1'E%}fUf fUm]EmPhV7 hV&hV  u/,U=,UtQ3h V;u3vhVh V hvVu2uhFVuh^V uhv uhVghVVhVH hV7Eԃ$EЃ$hV0uuhV}t/=(UthhhVuuh3Vuuuh<V0uNhQVhiV~ hVmhV_ hVNhV>hV0e[^_ULWVS] EEEEEEEEPEPEPEPEPEPEPEP Uz8KBPAhShS }h@SuhSg EEEEE̋Mq8H1҉EUm $E% $VhS }hSEE $EEEEEȋUr8ʉH1҉EUm $VhS0hSnE@P hSPhSB  E}fUf fUm]EmPm}fMf fMm]EmPhSE܃Ph#S E؃Ph9SE܃PhMS hbS5 5 hpS hSq E}fUf fUm]EmPm}fMf fMm]EmPhS E܃PhSE؃Ph9S E܃PhShbS h?jhpShS hShS h Sx? }t4 P? }tA Ph` SHh S: h S)jh S E܃ Ph Sjh S 5 5 h ShS h Sh S jh2 SE؃ PhG S jh\ So5 5 h SX hSGho S9 h S(jh S E܃ Ph Sjh S 5 5 h ShS h Sh S jh2 SE؃ PhG S jh\ Sn5 5 h SW hSF}t-Ẽ$Eȃ$uuuu؋EPSV +Ẽ$Eȃ$uuuu؋URS0hSMAP@uẼ$Eȃ$uuQSw0hSh S }U܃}~E}fEf fEm]MmEE)AuAPE}fUf fUm]EmE؃U؃}~E% }fMf fMm]EmPE}fEf fEm]MmEE)AuAPh SH? }t4 P? }tA PUB\J`)@PdB0$B4$z,t z,u  PE@($@$$h S@hShSh` S Ph SshSe =(Ut0Ur`r\h hAPh h)e[^_ÐULWVSE E(]]h EPU B;B~ r vE px)C~P]E$[UE Eu 5 5 ]ĉuEE}fEf fEm]UmE}fEf fEm]mЙ}MEM]E}fEf fEm]UmE}fEf fEm]mЙ}MEM]E]EM]܋U B;B~EEEE]uEm̉]Em]E]REED@E% }fUf fUm]EmPE}fEf fEm]]mSh EP E% }fUf fUm]EmPE uJvJE uJQẼ$h$ EPEE]Ѓ0WE% }fUf fUm]EmPE}fUf fUm]EmPh< EP8EE]EE]}E]hURhT EP h^ URU B ;B~r E p x)C~P]E$?UE Eu 5 5 ]ĉuEE}fEf fEm]UmE}fEf fEm]mЙ}MEM]E}fEf fEm]UmE}fEf fEm]mЙ}MEM]E]EM]ԋU B ;B~EEEE]؉uEmȉ]Em]E]^EED@E}fEf fEm]]mSE% }fUf fUm]EmPhk EPSE u E% &E u E%  E% }fUf fUm]EmPEȃ$h$ EPsEE]Ѓ0XE}fUf fUm]EmPE% }fUf fUm]EmPh EPEE]EE]؉}E]hURh EPe[^_ÐULWVSE E(]]Eh EPU B ;B~Z E X x)F~PuE$UE Eu 5 5 ]ĉ]EE}fEf fEm]UmE}fEf fEm]mЙ}MEM]E}fEf fEm]UmE}fEf fEm]mЙ}MEM]EuEM]܋U B ;B~E]Em؉]Em̉uEEE]E]EED@E% }fUf fUm]EmPE}fUf fUm]EmPh EPE u E% &E u E%  E% }fUf fUm]EmPE}fUf fUm]EmPẼ$h$ EPEE]Ѓ YE% }fUf fUm]EmPE}fUf fUm]EmPh< EPEE]Ee]}E]khURfhT EPU h^ URAU B;B~Z E Xx~PuE$UE Eu 5  v5 ]ĉ]EE}fEf fEm]UmE}fEf fEm]mЙ}MEM]E}fEf fEm]UmE}fEf fEm]mЙ}MEM]EuEM]ԋU B;B~EEEE]؉]EmȉuEEm]E]]EED@E}fEf fEm]]mSE% }fUf fUm]EmPhk EP[ڃE uJJE uJQEE  }fUf fUm]EmPEȃ$h$ EPEE]Ѓ XE}fUf fUm]EmPE% }fUf fUm]EmPh EP|EE]EE]؉}E]hURBh EP1e[^_ÐUEPEuEuv%%Euظ$"$PC(PB؍[^ÉUWVSE0R)ЋU_2G(PG$PG PGPGPGPGPG PGPPhu$EP诏0cU:th$h]hh$CHP$S[C CCCC$vhPCHP܍EPP011҃t< uBC<u YƇƇPPPPPPPPPPh %+P\0 U:uh@%hhh@Pʌhh@P豌LJ?LJ?UptLJLJpt hGPE P莀7Vhe%S脑 Sh) UR ~7hq%S_ Sh) EP}7U2Vh|%S40SEPU Bٽff f٭۝٭PE @ٽff f٭۝٭PE07h%S蝐0SURIE0h% t UR [^_ÐUWVS}0u7h%}1;0v@)Í730pVh%V} Pك$ك$Sh &|@;0ke[^_ÍvU WVSu 1]~=vSVEP*}讈8u1 t )DžƉe[^_U WVSu 1]~7vSVEP~R8t 1)Dž̉e[^_ÐUWVShtj豄ƋEh`& ~P Wz h^Su WSize&e& BBB dž\dž`džddžhdžldžpFPhr&S׍Sh}&EPg Ph&S譍Sh}&EP[g \h&S脍Sh}&EP2g `h&S[Sh}&EP g dh&S2Sh}&EPf نh$h&SSh}&EPf نh$h&SڌSh}&EPf ph&S豌Sh}&EP_f[^_UVSE{t1;3}vC4F;3|SՑe[^ÉU\WVSDžEDžDžDž`dDžjU Rˍt,h&h&SˋSh}&MQE P<$t)h&UR\PPPPPPPPM Q}@tDžjjP}WfeHjjh'EPDenDž h%'URGكhٝكlٝpPPVWPPPPPPPM Q脦P7DžjjP}Wh:'EP\PPPPPPPU R >@tDžjjPMQdhM'EP'كhٝكlٝpPPVWPPPPPPPU R$YPtDžjjPMQic1:h'h&SSh}&]Sb v=|ZtYم$م$V}wh'hQ0h{U;BWtc\uIh'RMqPPP 0t \h (]SpsPPPPB1ۃ0};_}~G`)Wۅٽff f٭۝٭ 3;C9|؋UBы|ABX] ؀8t8/u x@8u싅U;p;th!(MQ31ۃ}|;u;uDžfv;|';|++9} ƍCC.[U|;u;uC=|Zt4DI]|Qh@(h| }7+E@}llFFARMl;E}E];l}l}hjvvh_(SG Shi(UR^;Mq$V6SQ- C;~F]pFtvv|Phs(hx(S^ tKPPPWEPURV0} Džh(MQSh(}W^ S|ݏh(WuUҍBЍ)Ѝ|1ۃ ;0}k[)؋?t;7h(VƒVh(EPLp VUR\uC;0|ǃ0߁HYJ  h(h(P(E 8/t)hS艂tU RSh(M Qh(P܂LJ?LJ?]p)‰Љۅh)ٽff f٭۝٭t)‰Љۅٽff f٭۝٭مٓh_ مٓl_$ǃpG(ٓP_ǃTG ǃXGp)ٓ\_ۅɋEۀpٝمٓ`_ۀtۅٝمٓd_ǃLGRPmQGLPl 7Vh(S€Sh(EPLm 7h(S蝀Sh(UR'm 71Vh(So SEPr27h(SJ SMQq0=|Zuh(opـl$ـh$ـd$ـ`$ـ\$ـX$ـT$ـP$Rh)hHvPه$ه$Ph@)hu@Qt~[^_ÐU WVSE~t1;}F4>C;|jV PFPFP/pǃ tq))BGBfGB G 1ۍO ;}$"AFABu"A AC;|}AWh)EpX xW蕃e[^_ÐUWVSEEE~t 1U;}F4NG;>|jV PFPFP?oE ))MBABfAB A ˃ 1;>vF4t6t@RttDF4N.F4jQF43F4VE}t:"CUUCBu"C CMQ6EG;>G}CEPh)UrXqvMQe[^_ÐUS]S t FvS Pt,S;t1S2tЋ]ÉU|WVS}] DžEWBshW9{Wy Džh@(mu􋕘Ruvt|1ۀ9t?9,u010CA9uȋƄ("􋅘Pu1DžWIr􋕘Rmǃ l.u􋍘QDvPGP!|Dž%f=@u}tG1ۍvC;}$PGPXtDžE9r.҉PQ,u_߰@Pnk‹MU<t_S4e%f=@uh)M4upM􋅘P^lǃ􋕘R}M1Px[^_ÐUEU AB9t :t:t )ÉU WVS] t&߰tؿ)u 1;fE8u;{t ;*Uv<[<*t4ttE8t EU:u;C;uM8|:~ u:tC4C;]t!;;\u{tCC;]t;u;a>;t+;]t&;\uC;t{-u;]t ;\uC;uCEvC;};U:t;;t€;,t1;}t,;\uC:%BC:t;t;,t ;}tuԀ;tt+U;}tT;tUC;\uC;}uC;}t;;u4v;}t,;,t';t(C;\u C;}t;,uC;}t ;,t;u߀;tC;}t;?U:EC;t'u#M9;{;*C;*t1u>u ;%e[^_ÐUWVSuEUM MEUEEEuE9~9}щu1;U}Kv}:+EEE}f}f f}m]Em9~9}؋} :B;U|[^_ÐUWVSM]u FEE)]E19}=}:ffEE}f}f f}m]Em} :B9|hojVS\e19}*}1=~M }:B9|؉EM B~e[^_ÐUEU )ÍvUVSuu h)S_tSh}&VN[^ÉUWVSE EEEE 9E|QvEEE 9E}@}+}EE463r~ ;}}EE 9E|‹EEEue[^_ÐUWVSu]E|U|EGXxh)UR PPPPPPSVEPU REP@t@Wz8tBPtPR~PPPP} xPG$G$pهl$هh$Rk~0|xp@| PS5rjS t h)Snƃh*UR7jjtPVRTy0PFPehSRPh *Sq0SURVyoPh5*SYqjjSEPKيt9/uYABuhL*SgSc t@h)Smƃu.Sh`*SpjjSURJh*EPjjtRVPw0V\ntB:u:/t9v vJ:/t9wh*9uBPh*h*pRo PSh*VoSh*So SVpPURI**BABAB A Q bh)h lƃh*EPvjjtRVPv0Vlh*UR2 | Phh*SnS@` h`ih+EP tR t1X[^_UlWVS}] uViVSd uPVot"Vh+S%nSW_1VRPh *Sm SW,[^_ÐUS] h +uSih]U WVS}\t|WUh1+hB+W>G hO+hB+W(Ghd+hB+WG hs+hB+WFh+hB+WF h+hB+WFh+hB+WF h+hB+WFh^ÉCC++C BCBC hh+VlVhB+W@F h SyXSh+VZl VhB+WF[^_ÐU WVSjEp<nIh+Ep="At ACu"A AF9|Ph+EPC[^_ÍvU WVSE} 1v~'vCW؍EPhuԉ؍e[^_UVSuu h+SiShB+VHC[^ÐU+WVS] uE|Džluh,h_jkUlȉh!,t,Ph),EPB}uhuU;hijh4,MQBh:,h;,EPpB jURjhPT MQDEtUǂ􋍀QVDž|U¨|ɍAȍ)||~э[UlƃhtqMyǁǁDž|9|Ћ|M |9||nvEǀǀDž|v|ҍMD`xtjPp ||vʋEx\tƒ`P\Mytq8QGv1U~}MhVQhEƀƀƀjwwhF,Swf0ShO,UR"@Dž|9|*Mq$WV|PQ |9|~׋UztvǂǂDž|9|}P\E؋| \B|9||E\GMpGtwwP>1UlҍBЍ)ЋM0|\PP:QDž|+v|4ŀQs||;l|ʃPPPWVSR WVSjQ>eUB }h`,h![jfv tu Džtlt9ld`l~􋅀PrUrdQ`PWjFP%F0dR`QWEpR.d lt9 l[=u lUB(B,DžpDž,ыQ0A4DžDž|v|ƿ,t]P`ƃtKhSVaaƒ~%pp\p~ÃVf||<kDž|8|xƿ,MqPPPPxP[D ll􋕀R}px:t:/u JxB:u싕x^:t4:.t/F^vB:t:.tCC)~PPPEp6Ra |p9|}=lEPN<lRMQklҍBЍ)ЋM|Dž| ||;l}24ŀPFPs_uȋ|;l|C$C$6Qh SEP<,U:t,Ph,MQ9,Uzt,Ph,MQ9,Uzt,Ph,MQ_9h,h),EPI9H[^_ÉU WVS}u uAPSVhWhV> jSVcn?|PSV'WhXV> jSV"n[^_ÍvU\WVS}lwtnuel[;l|vJu B;l~_PPPPPR+vPPPPPjW& ?t6ۅۇpۅۇtٕEuٝvDž?ؾ;lF)|C VW{'{PPPPsE PiQ sE PM jjssVjW ufjsE P)jsss VjWj0js %tjsE P~~jsE P~مS$[ jC<$C8$C,$C($C4$C0$ssPVSW4PF;l;lvVW &tlF)|PPPPsE PO jjjsE PW F;lvW h,SK[0Sh,W4[^_ÉU VS]EPEPEPEPv|O uujjjv|Ve[^ÍvUÍvUu uXÉUSMytBU ~}ҍBЍ)Ѝ|8~ $[U,WVSE|UDžtu ~}F)U|;t ;MytZtVIM#NM#tu PutRi(MjsP'{tQRMQ9#u7ҍBЍ)ЃjM,|P>{s R}ztsQ|,vjs Pzs R| VMQtHC;Gu@CgEu-Et CgEu-Eu'C$C$sR_ Vh4,MQ 2Ph;,EP1 ,{@t,Ph,UR1,{Dt,Ph,MQd1SEP;2 C<$C8$C$$C $C4$C0$C,$C($h,S8WPSh,UR0[^_U,WVSuU ҍBЍ)ЋM||HRQ1#LE RFC jvvjPQ3G }$E Pvvh -h$MvPPPPPU RMQuF-1t  uBPECjPRF0|\vuK-PECjPR&F0M9%PssPhC PU RSMQ jjsPgCPU RSMQ uZ-uPCE8%PjsRgC PM QSEP> C C #vURh`-h>KlC-[Myt-[SEP10U RMQ5 tjsPujsRDvMl;E }E PEPU[^_U WVS} G)U||Gwt;~osVfC ;Ct PVf{tsVF{tsVFE9luGPUR=Ue[^_ÐUMU ҍBЍ)Ѓjhjjjjj ||KÐUEjtpjj|[CÐUWVS}u |1LJ;l}sC;l|샿tLJGR!QWI &IuBC;l0KtLJLJSW1Dž;l}fvtLۍC؍)؍t vPRe} vC;l|1;l}Mvu3ۍC؍)؃RQ&dC;l|WC,t,Ph-SPSh,W\*[^_ÐUWVSutdž~z~p\PXPTPPPLPu V L(Pjj|Ǎ`Dž`-THLdDžh-XHPlDžp-TH@tDžx-XH@|E-FEE-EE-EE-EjW{ hEvh-WhjSW V 8[^_ÉUWVSEx{n=t%1F~;v1=t-4;;F<t~1M;lEMPPPPPFPEPHF)M <t2 <tv<tdvFPh-P0tDװЃH</tf0u--YvЍH1 t9}@< t9|Ph-QLjjE|MËЍHQh-QgLE- EE-EE-EEȺ-EE-EE-EE-E hEQh-ShEh.h-Sv hEh.h .S^hEh.h.SI hEPh(.S/hjQS[ SjjS FE;l,h[^_ÐU WVSM UҍBЍ)ЋU|t%1:tEv I ǃ:u*1M;llK C9~1LvۍC؍)؋M9t'HsFBFZFZRQO&CE;l|[^_ÐULWVSM UҍBЍ)ЋU||Et'E:tL I E:u3EU;llN EF9~EPEPEPEPEPEPEPEPEPEPEPEPEPw MQRj1@E;lmF)UHM/G0[0G4[4G([(G,[,G@C@GDCD7Rujs EP)k}Eg8C8}fMf fMm]UmEgvuuuujEPuujjjUREUREP]} tYEU ;B uNB(?B,?EZ EZ$E@EE@.Z0E@EEZ4BDB@e[^_ÉUWVSE E(E0E8E@EH͋EPٝٝٝٝٝٝE|PPPPURQ7  }u7PPPPPuEP NPPPPURQ7 c DžDž؝u U B0ٝ؝u U B4ٝtمممE H مH$P.ٽff f٭۝٭ۅEuX.EЉtIP.ٽff f٭۝٭ۅP.ٽff f٭۝٭ۅEuX.EЉtEP.ٽff f٭۝٭ۅX.E] ER J|Ixۅٽff f٭۝٭ۅٽff f٭۝٭GمۅP.؅ٽff f٭۝٭مۅ؅ٽff f٭۝٭T\91Ʌ};|~|)@v1tttȉۅ؅ٝ1҃};x~ x)@1tttЉۅ؅ٝ1v|9~} Dž;|~|}1ҋx9~} Dž;x~x}1ۉ++GI|HxۅP.مۅٽff f٭۝٭ۅۅٽff f٭۝٭ۅمۅٽff f٭۝t٭ۅۅٽff f٭۝٭1Ƀ}1|9~+ttt1҃t}t1x9~+tttt+@;}2|+‰++t@;}2x+t‰+tt|9~} Dž|9~} Džx9t~tt} Džtx9~} Džɋ+C+tAٽff f٭۝p٭ p9;}]ؙp;~ } Džp;~}jc;}[p;~}ؙp;~ } Dž+C)‰Љ~ٽff f٭۝p٭p9;}Fșp;~}p;~}SL;}Dp;~}șp;~}+tA)‰Љ~tȋU zDtP؋M y@tPtPPjEPWRQPjURMuPQمU Z0مZ4مZ8مZ<@tمr Z(مr$Z,مE X(مX,E PURM A<$A8$A$$A $A4$A0$A,$A($h,S7`Sh,EPO؍X[^_U,WVSu} FEU싆Eu EPEPEPj|Z+'~tl~Ou(UEEUEU1;l2t tB;lJtC9uKEEMȋ})ω}NjEEM)ș}tؙ}EU ؙ}EUu E+EEM]ߋE@EËU]ًE@EËUE8U e[^_ÍvUEU xu;%JU1h>DžCPu;;#P@1vPSP9F~مم_م_QhP (􋝨S} 1;uEHۅOۅۅٽff f٭ە٭;~}1҉ۅٝمٝمR81Eu4B;})̍@   81ٽff f٭۝٭ɋMfqٽff f٭۝٭}fwٽff f٭۝٭MfqF;uLevj hN1]S1;uEHۅ1ۅٽff f٭۝٭UfrMfq]fsF;u|vjhX1EP 1;uvۅEHۅٝم 11ٝ 1ݕ$Eu vم 1$^ٝ5151إ$fٝم􍅸PPP$م$م$;1؍ٽff f٭۝٭Mfq؍ٽff f٭۝٭}fw؍ٽff f٭۝٭Mfq@F;u/jh\1]SV1;uEHۅ$1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭}fw؊(ٽff f٭۝٭}fw؊,ٽff f٭۝٭]fsF;u7jha1EPn1;uEHۅ$ۅvۅٝ Hۅ؍ٽff f٭۝٭Rم ٽff f٭۝٭]fs؊(ٽff f٭۝٭]fs؊,ٽff f٭۝٭UfrF;uvjhf1MQ V1;uEHۅ[1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊[ٽff f٭۝٭]fs؊[ٽff f٭۝٭UfrF;u7 jhl1MQ V1;uEHۅs1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊sٽff f٭۝٭]fs؊sٽff f٭۝٭UfrF;u j hr1MQ V1;uEHۅ1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊ٽff f٭۝٭]fs؊ٽff f٭۝٭UfrF;uO jh|1MQ V1;u EHۅ1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊ٽff f٭۝٭]fs؊ٽff f٭۝٭UfrF;ujh1MQ%V1;u5 EHۅd1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊hٽff f٭۝٭]fs؊lٽff f٭۝٭UfrF;ugjh1MQV1;u EHۅ1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊ٽff f٭۝٭]fs؊ٽff f٭۝٭UfrF;ujh1MQ=V1;uMEHۅg1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊gٽff f٭۝٭]fs؊gٽff f٭۝٭UfrF;ujh1MQV1;uEHۅ1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊ٽff f٭۝٭]fs؊ ٽff f٭۝٭UfrF;u jh1MQU~1;u}$v]fsEfpUfrF;u|ߋu;u M)iUfrF9~u;uEMfqF9~u;u]ِ)iUfrF9~u;u M)iUfrF9~u;uEMfqF9~u;u]ِ)iUfrF9~u;u M)iUfrF9~u;uEMfqF9~u;u()i=~]fsUfrF;u~jh1MQZ1;uEHۅD1ۅٝ Hۅ؍ٽff f٭۝٭R ٽff f٭۝٭]fs؊Hٽff f٭۝٭]fs؊Lٽff f٭۝٭UfrF;u{jh1MQA=uj5W1;u# 1EfG56P5.Z5&d5t5~555u$u uuPRE HPh5S0ShW2uU\WVSh6EPvE܃uh6vMQEP ]SEP SEP SEP SEP SEP SEP~ SEPq }jYtSh6v}t^}tX}tR} tLuh@6hh6hq EPh6UR% }v2uh6h1MQe h7}tF}t@}t:uh@7huV! h7EP UUԋMMЋ]]1Ƀ}tM]]Ѓ}t} u[uủut}$u)Ɖ)‰U؋E؅}E؃}uat]MVUUU)‰UȋURMQjuVEPURjM Q uVEPjU$Rv}u"tjQMQ'E]v}u*u$E UF@BE-v}u$1Eu$ 7E U G;}|SEEăMQ6E }tu"]Szh58uV p1Eԍ@EFURMQj]S;E}tO }t#}} vuVEPEP v},t^1;uU׉UMM] UP] ‹]$EċMF;u|m]SEPuVEPEǍ@EPUR3UEǍ@M1;]}BBABABAC;]|G;}}6}%PMQ]SjuV^ 9EPG}t} ud}tURMQ]S uEEPUR MQihC8]SbuE UĉEMԉE]Љ},t#1EU$M ]G;}|E(uȉ0EP1e[^_U<WVSE}(Dž},]]SM1M ǃ9}2]]PAAFG9|1vF~M$M MU uDžMIO},tDž]9vDž]tS؅}C$)É؉)É؅}CtCSWu"tPuqMBU M$UBPM A‹M$A9ЉDžjYMEÉDž1t %tt  DžMQhEPV URAMQ/ EPUR MQEP },Dž19}cUPM ‹M$EHyMA;A| t MEPRF9|~8URWjMQEPWjU R MQWjE$PD1;}u7EǍ@M 1;u}gABABBF;u|KuMQPE P'!RMQE PPURSjQ.9t3tPR8G;}QtP1[^_ÍvU0VS1h6uÃt&SEP}jYSe[^ÉU,WVS}h6WRÃu 1SEPSEP SEPSEP SEPSEPx SEPhSEP[ jPƃ}t/}t!}t8}u8888Ph8uuuWh8V Se[^_ÉUWVS}]}tD@E EEE|ulKyS@} %@=@t,KySDt[DGEE9E}D=@tDG @܍vKySv v08E} e[^_ÐUu uh8h`Q`ÉUWVSuU 11۹;]}#} B$IFC;]|[^_ÉUWVS]u 111;U}(ҊFtAu}t҈C11G;}|مt}tҸ)ȉ[^_ÐU WVSE PoÃM Qaƃ E PPǃM QB% ‰% ‰% ‹ME @ @u1e[^_ÍvUVSu] Ky C;C| tʈvSQVKy C;C| tʈvSQt{Ky C;C| tʈvSQt?Ky C;C| tʈ SQt1e[^UVSMu u19}vAQC9|[^ÐUWVSDžtDžx|PxPtPuEPTƃ }t 9vtxSǃu X9vu8u4u0u,u(SW]Sjƃ St WXxtWGE 8tExEE$1U UU@=~1X[^_ÐUWVSu]$EPURVe#19}BUPM‹M G9|ʋ}OxjENj] DžU9}G(Ny F;F| t vVR^CM9|OyMM? `  )Ѝ@))t319}-NyF;F| VjG9|1[^_UWVSEhl9uÃtHEPEPhn9Sw9}1t u }TЉUSEe[^_UVSujP\Ã|PxPtPVEPT0t PSU}tEPu|Vh9!EPxt|Vh9S? EP؍X[^USh@ Ãu 9h@ j Sjjhw9S jjh9CPPtjjh9P_ u jh9PFujh9@P0 jjh9Puh@ jS=@ u1:]ÉU WVS]h:u u :sCC CS|ǃt SJ;C1;S }sK CCB9|SESESEe[^_ÍvUEt8t 0ÉU,WVSh@ Eu 9E0h@ jUR=@ t 5:v1EPEPjhw9MQ? FEPEPjh9EPP t}t(}t"} t}@t}t}t M:FEUBÅ}ۉ؅}CMAFEPEPjh9EP }v k:}?}5EUB FEPEPjh:EP: uEMApF vE@pEPEPjh:E@P u3EUBtF1v5:D:8;,MAt1ۋE;X }$u!U2h@ jMQ=@ u1CPh:W4EPEPjWEPO0}b~}t:UEFCE;X fUB Bx?B|׃ 1::MA BA$BA(vE<Bu^EPEPjh;EP u EUZxEPEPjh;EPe u EMY|$u%E0h@ jURc=@ a1jh0;]Su>1:'t B@:'tO~B1ɀ:'t] BAO:'uED jh9;EPtFUR1e[^_ÉU WVS]u jPj S8HtPVS}t9C=}u}tCT#CFEPhB;C PC e[^_ÍvU1;}vC C C ‰G;}|Qx=HugjhHHǀX?HDG~H<LOy1;}vESC C E܃ ։ u vH EE }}G;}|UxI=Lu{jhLu 9 vLǀ!ǀ!?4LDG~2L<DOy1;}<USC C C SC C ‰UЋEԃ ЉE EuC/v L% 1҉EUmEE }}G;}O1e[^_ÍvUWi jVh+h >WP jVh 4h>W7 jVh +h>W jVh9h!>W jVh9h&>W jVhh:h3>W jVh;h=>W jVhOhL>W jVhFhR>W jVhOh`>Wo jVhhJhe>WV jVhPhs>W= jVhRhx>W$ jVh$Sh}>W  jVh_h>W jVhxch>W jVhch>W jVhdh>We[^_ÍvUExpU WVSUE Bu>uEPrvMQEPSO1e[^_ÐUE0WÍvUEjlhP`ÍvUEjlhP`ÍvU}uEpPE04o1U`VSu}u \Ep>fEvB;l:ҍBЍ)Ѝ|9Ht9HuӃ0h>EPpjEPvP1e[^ÍvU`VSu}u TEp">fEvB;l}5ҍBЍ)Ѝ|9uكph>EPjEPv1e[^UWVSuEPEPEPEPEPEPEPEPEPEPEPEP|Pw |5@}~(wh>]S4jSEpv?, }uh>]SjSEpv , uh>SjSEp v+ uh>SjSEpv+ uh>SjSEpv+ 7h>]SljSvR1h[^_ÐUM;l}BP1Xl1UU~ H vlP2#l1ÍvUWVS]uU~vǃ~i|PxPvu `uI1ۍu;x} |4kC;x||臶1WVE0{1X[^_ÉUWVS]uU~vpp~{|PxPvu u[1ۍEt;x}&|4tC;x|ڋt|觵 Džt6=%PpRtPU2z1X[^_ÍvU tpw%1tR3,TttuDžFtfu Dž޸> ug; |Rc?t?Ph ?SSh>޸? B;}JtK}~!}w R5q8QǀQR8?t?Ph ?SSh?WHv޸? B;}}~sPPMq } WuO1;}/4H C;|փ Bv1ۋ;l}l C9|l1tPPmv޸%? uVv޸0? u*v޸ }~uPPEp U RpuQ1;}14wH C;|փ萯Bv1ۋ;l}l C9|l}G?up;t|gL?u/1;}vC9|7S? u/ HPPh^?H4d? uK ~DžDžPPh^?H4m?uDžYvq?uDž%vPPh^?P5hx?SSh~?W視 W(j1[^_ÍvU<WVSE]}C=w%1tsc=Dž;ls\P2uσ;lXjh?P uarWVSjP WVSr5pX| BB$B$2| RP1[^_ÐUWVSE0}~jC[C$C$7|f SVi1[^_UPE؃$E܃$$E$E$E$sss 3SEP"u1e[^_U,WVSEu8C(]C,]C8]C<]܃}ulvh]vZ]E jE܃$E$E$E$$E$sss 3SWwt1e[^_ÐUWVSu]EL?ٝ?ٝDžDžDžDž seٝsTٝ s @ٝus?1tҀمإٽff f٭۝٭مإٽff f٭۝٭مٽff f٭۝٭ljPPPPPPWWRQR 0􋅔PH1ۃ;<u z$Hۅ@ `5?@@@ EuX Et/vEuB Et-&Bff߅ؙ)Љ‰ۅٕ+ۅٕ$萡?ٽff f٭۝٭ؕEuٝمD@u;} ؕEuٝمD@u;} C;P肤u4مE@t4KمD@uh?PPۅإ$ۅإ$h?Po jP*vٕ;}CمEuٝEuC;|مD@u؃h?vۅٝS芧S{1ۃ 919}Sύvؕu م؍ ؕu مB9|ɋC9pV?ۅ1ۃ9}KʉĉۅC9|مٝE@tٝمٝE@t ٝ؃RlP] مإEu ?مإ?ٽff f٭۝٭PمإEu ?مإ?ٽff f٭۝٭Phx?S7jSEp1h[^_ÐU|WVSu]EEċLUـhUـlUE??]EEs:}fEf fEm]m΃s}fUf fUm]m΃ s }fEf fEm]m΃sͥ}fUf fUm]m΃ ~[C=w%v1tsEvTttu EE~CC=w%1ts英E vEus]EEEP NjUREPUREPjWjU|ۥ0jEP袠1ۃ;]?<;uUz$uo;HEEEeEEEuEEt*EEuEEtEvf;fEE}~ E$M];]G؃WxU)PE uVMv?UE$h?]S߬SEPң E$h?S軬SUR讣 }uy1;]T}vEu- EÈ@s+R$h?WK WEP;C;]|}uV1;]}$]EM$h?W WUR];]|}uN1;]}}}]EM$$h?W蚫 WEP芢];]|71;]}/}$h?W\WURO C;]|փjEPUr&Vi EPZ1x[^_ÐUWVSEuEE11ɺ9},}xtXu ytYuB9|QSEPURt1e[^_ÐU,WVSEu]E s]s] ~s E E싸~s#~S:^u R v1ҹ?~KQRPWE$E$EP 1e[^_ÐU,WVS}u] ~vsٝs ٝ ~s c1SPم$م$7 jSw1[^_ÉULWVSE|ZP} ' E@UrP裔;u},h?WrE4Wc F;u|w%v1tP uGtXP?t?PRh?J@ uGtXP?t?PRh? @ uGtXP?t?PRh?@uGtXP?t?PRh?*@ uGt ߋXP?t?PRh?(@ uGt@㿋XP?t?PRh?j3@uc9@|Sp8XShA@S3 Sh?RvJ@ tbx8ujhךB8P7hS@p8褤B08tw8蹔G8@?t?PRh? va@ u?t@ vB ?tj?cj@ u{Pt pu@<!Lt lu B<PWh?SbSh?P }av@ Tt tu@LiGt guBLFvAt auGL"vBt bu @LPRh?Xv@ r0AH@ٽff f٭۝٭;tۅ_@؋PRh@@ Gt gu@EPt puB"vRt ru GPPh?S6S@  pt PusGh@SޠSh?Pz  Ph@S谠Sh?R[z 7h@aft F@h@SUSh?Rz Ph@S%Sh?Wy$v@ xt3@h@SƟSh?Rqy SW5ǃSh@V聟 Vh?P)yEP SU Sh@V3Vh?Rx2 A uES PSh@Sў Sh?WXA uMS P蜊Sh@Sw Sh?PxvAu]PPPPh$AP R蓪 wPG@ 8Aٽff f٭۝٭PwLwvƿBuQlPhBEp跑UrhBS譕 Sh'BQUobvƿBuLpPh>EpSUrhBSI Sh'BQn1[^_UWVSEU]Eu,sBus sPe&1u'sBusEP&1mu;s蠗Es蒗ǃ s 肗ƃsu 111EPVWEPEP |1e[^_ÍvUWVSEU]EEu/sBus sEP-1u'sBusEP؞1yu;s訖Es蚖ǃ s 芖ƃs} 111EPVWEPEpPEPr|1e[^_ÍvU|WVSEUMoq~q Ѐ|/D>/uVh ?P菒&hBSqVSg PhBSFSh'BPk 􋅜P3PV蘓%f=@uLVh ?SܑShBSǑ Sh'BPok|SVPKt1x[^_ÍvU WVSEEh.1ۉ t BA:u ACuVhx>EpXVM1e[^_ÍvUlWVSE} )E@jhMËq1t uSUREPRvquSPgvquSR;vq tSDMSP hqSۆ;tSh}>R~iS1[^_ÐU\WVSu }5hqW~?~UBPhqhqSTSWJ ?~UB PhrhqS SW Ep$h rhqSSW Ur8hrhqSڎSWЅ h'rW迅huVz Vh)rhqS蚎SW萅 5lh:rhNrSwSWm Ep(hYrhqSTSWJ Ur(herhqS1SW' Ep0hqrhqSSW Ur4h|rhqSSW h'rWЄEpUL\U)ҋE)‹E);E}uEF;u$|ƒ}t"MQEPUR }E1Ʌk}6UMыU) )yMDR}M}MDЅ}BUDMUDU) )yMDR}M}MDЅ}BUDMUDU) )yMDR}M}MDЅ}BUD.vMUʋU) )yMR}MD}MDЅ}BUMUDU) )yMR}MD}MDЅ}BUMUDU) )yMR}MD}MDЅ}UMUʋMfMDUBEE1҅t}tGEOE;}1Ʌt1EUUEEMMEEUUE}ȉME̋E9E 1;]$}wMېE؉)ЙƉEĈT)ЙUĈDET)ЙUĈDU UĊDUUĊDUC;]$|1;]}vM4iC;]|EP iURA MQF 1x[^_ÐU\WVSEEURPTEEPTE }tuhT1;M}]DDA;M|uE FEFE}9}*EE9E}$UzEM9M}][u|~}9}URMtuDE܋}߉U|}؋MDEЉEԹ9}Uvu;E}E9~uD;E}E9~ǍuD;E}E;E~EA;M|*UUUҍBEE*E؈EE)҉UEEEU*UԈUU)ЍEEuuh|؍vuhjURMhjuV}PQETEE܉EHE9}9}}TA;M}9|uv}LTuvˉ])ˉ\u)։tEhĄj }WEP QU9Ev][u4ű}DEEE1119}@Uʋ}׉EDEDEDEDED\A;M|EEE9E~EEęEE9E~EĉE9~ƊUM]ˊEĈDTEM9M)Ee[^_ÉUEU )ÍvUEU HB)ÐUEU HB)ÐUEU @R)‰ÍvUVSuuVuu uà tVSƃS1e[^ÍvUWVS]U }u1; }y:umD:GudD:Gu[9~9}9DӋD DB9|"9}9~DӋDDJ9fGDED@A; |E9}3 9~DˋDDI9fGDED[^_UWVSvEEEEEEU<v)O)ʍщ)ЍAO)ʉ)ЍAȍAÉفh )֍))))ƋUv[t!:uC:GuC:GutC`EU9~EP1fj NÃuhMfGCCUCEE 9EEU9UEe[^_ÉUSh80NÃu hjM1@=6N~؋]ÉU WVS} j Mƅ)؉O)ʍщ)ЍAO)ʉ)ЍAȍAÁh ))Ѝ))Љ)fGFEFMF41e[^_ÍvU WVS}E PMÃu h@KL11vtˋBDARuF6N~ۉ؍e[^_ÐUWVSrEE 9EUMfEDEE)M)ʍщ)ЍAM)ʉ)ЍAȍAÉفh )֍))))Ƌtj KÃ[uuh'KEfECUSCEM 9M e[^_UWVS]} 7)O)ʍщ)ЍAO)ʉ)ЍAȍAƁh ))Ѝ)))Ɖt#:uB:GuB:GuB Ruݸ[^_ÍvUu^ÐU WVS}1tXP^؅uF6N~ڃWi^e[^_ÐUWVS}]M $49sCCAA9rt[^_ÉUWVSE U}MIUJNx1ACACACABKBKBKBNyщNx ABNy[^_ÉUWVSE U}]KUJNxaCACACACACACACACBIBIBIBIBIBIBIBNyNx CBNy[^_ÉUÉU,WVSU} Eu]dhuc19Zvf fEEEuf fEEf fEEEuf fEEB9|u?19vQEuQQEuQB9| u;19vEuEuB9|u;19}rvEuEuB9|Au:19}2EEuEuB9|][^_UWVSu} ]>19}1:B9|:[^_ÐU WVS1EE9}PEEEE Nj]ÍGU)‰E M1;u }vCAF;u |G;}|[^_UEeUEM]EEÈ@rEu EMUEPSWS URS؍h[^_U VSu] MUEE 19}E ,@9|][^ÐUWVSUMu119}'EE} <8u }C@9|]]tt"4AF[FH]ECEEÉEEEt؃$k9؍e[^_ÍvUWVSuE,]E9]EEE<0uKUE Et Euw؋M+M4yY1Uʀ<1tB;M9UEʋU*ʋE (ɋU$*E((1K1AUU4;U~U9|EU9UL]]؉[^_ÐUEU È@sÐU WVS}u] huvHEu 1ɉ19A~u$SVWuuu jEPd0}(t51ɉ9P119A~σEP Ide[^_ÉU WVS}(tr1ۍ };P};‹} ;19C~Q1ۍ};:};2} ; C~̃u$NjuuEUV;1ۃ 9}M  C9|PPPWjj}WEPu 05O[^_ÍvUVS1ۃhuBFƃt2Vjj]SEjShC ؃V7G؍e[^ÉU,WVShEPEEEPjj]SSEjhSCj]EPEPXCEE@EPjjSE ti}E uE ƊE$ȻjP:ESEPVWEPhEPGH0EP8FEv1e[^_ÉUSE k]QE 9@-= = h18؋]UjhEPAt Y~jEPEPAUBֿh1t tֿlt *SjjEPBCu  EU УUEU УUE$ȸ࣌U(E$p%@EE}}.E$PU REPU(2S t mvSjjEPBu K};uE 9E8 .}!u6SjjEP@Bu ` vEPSb뉐},uESjj EPBu E$%H}}nU$RU RURPS t vEPU 9U%PEPEU PEU PSBEPU 9U%PEPEU PEU PSFe[^_ÉU WVSu }19}@vEPjjEP@u EUEUE;C9|1e[^_ÐUS]E =tD=t=h Suh S ƒ` ƒ\"! УX t #Th S>u.Ph8h uCh Su1]US]SjjEP?t+}%h}tSjEPu n?u vE]ÍvU WVS}t%8<@1E 8;<||=@t DD D!h"u„u @ƒD< 8)щʃ8<181;} }6Ѕ}B Ѕ}B$) BF;u |ʋE 8e[^_ÍvU WVSM}  LAH`Pd TPjjEPl1;`}), `v0B9| ,B~l1w=lt;lj5HUR\X;`t4=l;`1;`}(, `0B9|(,B~LBH` TPljREP\XAv;du0=huSURS;P|X\;`|1,v 2;`}܋,XP=M\X PP;T| =T Tɉ TH=\=lj5HEP[^_ÍvUWVS111EPjjEP:u vEPjURa} I}t"EPjEP5}E EP/Uu `EPjEPE ËU G;} uc1}tZt~t|vv;]|Ftt +t# C;]^1e[^_UWVSuU E]ljUEE]p]EVjjhf>VMQQ VEPAEH S ЃVPq= Vub=VjW=1ۃ 9}:VM 4==VE$4.= VM(4=C9|ȃVj, =Vj VjV5 V5=t Vj@ vVj<VEP@1U UU@=~E$VH*1[^_ÍvU,WVS1hu(ƃt`Vj j]Sf(V) jhS*&u(j]SSjhS%ue[^_ÉU,WVSEPXÃhEPM(p u1qupPhjP'|xtjO`SV& jOSVjOǃ jOXXpPhj`P!',t!jjPjnP jPnP%t`jj|PjvP jjxPjzP jjtPjjPv Oj|PvPx%jxPzP`% jtPjPE%hSP'%h:ǃ hnSW&$pPt'tw/$# @ 1ۃjPƃWx|SEPhV)0Wz.X[^_ÐU`WS] jh S#uZCjOPEPX#jOuSJ#߰H H~|/ujOEPS$0vj!S%t؀;!t v@8!u@PSSe[_ULWVS]hu$EjEƉWVUBP2MM M QuE ]EE<$;}}fEf fEm]m C$XEP*E܃E$P1ۃ ;] }AURM$QjW#1Ƀ;M} uuĐUOufVA;M|C;] |W,} tEE PEPP#},t:URMjj0EÃ|=jjS!} S!^^ FVhSW*Fe[^_ÍvUS]so!{ts3CC]ÉU,2WVSE U0E@ hShSV =u/)UR1h SEtMװЍxWRSG RPP-  "PPPhEP=p~*WR55h' DžEv=tG=p~&HPVhVEPbVo tXAWh&VRƃ vK Ph1SSp =ptSWh@WKÃt^^^ FhWPhPFP Vh@SRڦFSu jjjheSpX PRPh&S =ptShl װHPRR=ptEPh~EP=ptRh1GxSPu)ǃ USPЃGt v=pt EPRh1GxSPu*SRǃ ǃGtEPxSWV)=p~!SW߰HPhWPPRVhh PhPPƃ[^_ÍvU WVSu}E <3u1hP vC<3u9|1Ҁ<3t9}v3 CB<3t9|3*9%MvC<3u9|E =p~#tM1RS3PSh 1t[^_US]CPujhJSu1bjhSu CjhRSpu #jhXSPt]ÉU WVS}EC;P.t<;u1 ;U FC;Pu<;uۋE <;{t C<;{u1MFC<;t!;U<;{uE䐀<;}u݃}ԋEe[^_ÐU WVS1}׃jGPEFU¸{tqE PCPuZURh]EP}׃WURs , =p~"EPWha FjURe[^_ÉUuu u ÍvU|WVSuEjjjÃ|w}1fEVEPЍxjEPjhS 0|'WEPS |jSN}+ 0VhhP t S1؍x[^_ÍvUVSM1ҍЍB<u 0Bv1[^US]Sh t $Shhh1]ÐU WVSu 1]~=vSVEP } 8u1 t )DžƉe[^_U WVSu 1]~7vSVEP 8t 1)Dž̉e[^_ÐUWVS=tE Ph^hURDžҍBЍ)ЋUDž;0@)Ë3VhW]WE PUR 3hW9WE PUR 30VhW  WUR=tWhB;05U;l[^_ÍvU WVS=tE PhDžsvҍBЍ)ЋU1;0}=[)؃h5WWEP C;0|E;l{U th@REPYhEURe[^_ÉU WVSu}=thN19}v4Sh]C9|獥[^_U VSuu hSShvX[^U WVS]}hTjvƺBFBfFB F BfBE hà %LtS\ÃtLhÃt7߰PjPSP džP1ۍ,tPVЃC5vԃV50;0e[^_ÍvUVSuVV u僾Dt#DDS}Du1ۍv,PVЃC5v݃PtPNVBe[^ÍvU WVSEHhPÃtSURSMQ Et$vUR MuߋE8t,UR<S u֋Mǁ8<t2vE SF uыUǂ<@tUuMǁ@ thDt,vCt;tjjE sЃ[ u׃U  M yEǀ  }$1MBABfAB A BfBǁ ǁƁHǁƁIƁJƁKDt%΁DvCu SV[ ujjjhhEPV jjjhhUR7[^_UVSuJtEKhV6t PVu KjV%IuZh h h.hLhfhhPPVhhS@ShVphVt PV JK  jVv[^UVS]u JtKjSJt)hSt PS ƃK  e[^ÍvULWVSuE } tEDt-E#Ct;tE PsЃ[ uE} tED}E#CtxE PhW.jhWhCPO^0t@jhiuPphh[ ue[^_ÐUU1JtK%ÉUVS]E uItFt SPxtPVaJtKt v1e[^ÍvUEÉU WVSu} ]Lt>PtWPtSWh"+h. jh*[WVƒ tgtSSRЉÃt_jh6huPpWh@h1jWhe[؍e[^_ÉUlWVS1EPEPx|q]ЃCPƃtYjEP{ǃ|BSVWw9u00Vu uyÃW V8EPh| W_ t Ve[^_ÉUEDP…u1vEE BEBBÐUu EDPUWVS} DžDžDž|] ;tLƍCB;t;.uCV|PWPEPH t;u|1$v|~E Phhh[^_U WVS}} t%1ۋU :tvXBNx:u} 1*S)э)ʍ)Ѝ)‹E$1tYSE Pu:1Ʌt(?t#1҃?t;tB<t ;uAtEFuEE0e[^_ÍvU WVSEH(URPǃ}tEP*ÃuURE PhzvuuURSE PURЉƃ uEPU Rh>vE PVkUuU t E 1ۋU :tvXBIx:u*S)э)ʍ)Ѝ)‹E$t$tvu񉰐:*S)э)ʍ)Ѝ)‹E$4}t~UREPiuURE Ph@hNÃt@P j4e[^_ÍvU WVS} "􋇀WЃt#~!0EPtuǃYvPENx9:tNy-UtuE UtuEU 1?tv4pBIx:u*S)э)ʍ)Ѝ)‹E$ti9tt9ut=*S)э)ʍ)Ѝ)‹E$􋇀WЃWe[^_UWVSu VP]1ۃ;}2uREPC;|πtjPhMWbWtWPWTPh[^_UlWVS}u V\E1ۃ;}.u RWC;|҃EPjEPuP ?tPP9EPEP3P Tt }jEPP PEPP e[^_ÍvU WVS}1,SWu F5v1e[^_UÍvUU1ɋE #u E#tÐUVSu؅t Ë@ uhju1 uC e[^ÉUS]E t11ыR t9ut B A vB R]ÐUVS] ;t5vRlv|4%@tC;u̍u;t>vR0v|4%@u;;t CF;uE9tpPEPu>Hu1t%X[^ÐUE ǀǀǀǀ@U WVS]hj^AljjVhhfWF0jVh|hkWF jVhhpWFe[^_ÉUEtDUWVS} EWV.tWVGÃPPWV_HurDžp~ Dž1;A;~獅P@PVEPÃ؍[^_ÐU WVS}U~2EPBPKVj:WSà VAve[^_ÉUM}~hxE@PQRqvÉU WVS}U~2EPBPJVjWS'à Vve[^_ÉU WVS}1Dt3{}&;t!EPEPE Ps ƃ [ uͅ%e[^_ÐUVS] ǃTǃǃǃ h<ƉO>ÉdžjVhhySC0jVhhSC jVhhSC jVh\hSC jVhhS{Ce[^UVSu t%;t 3@Sdže[^ÍvUS]hj]US]t0tX Ph؅u]ÉU WVSE} DjhJW30 ujhJzW3CǃuG8tj0bJjhKJRP v8tj0Je[^_ÍvUWVSUTӁCUzЍPSPCC@PEps[ Dž tv[ u1;jhPhhuPhhRhCP;J0tGjhUuPCPphhp G;}KPjhcH1[^_ÉUUDj"H1ÉU WVSUTUׁ_ vjhwhhwhhEPhCPH0tGjhsTuPCPphh, [ njh=G1e[^_ÍvU WVSU]thjǃsGP ~ tF x t v@ x ux ~ 1e[^_ÍvU WVSUt1^ ߋ[ t6EpCPuޅt C G C F S1e[^_ÐUE ǀǀǀǀU WVS]hj7ljjVhhW=0jVhh Wi= jVhhWP= jVhh!W7= jVhhh-W= jVhh3W= jVhhHW< jVhh_W< jVh$hmW< jVhhwW< jVhhW< jVhhWo< jVh<hWV< jVhhW=< jVhhW$< jVhhW < jVh<hW; jVh@hW; jVhhW; jVh hW; jVh hW; jVhhWu; jVhhW\; jVhh-WC; jVh0h:W*; jVh0hEW; jVhhNW:e[^_ÉU WVSuEtB{Ctusvs SudždžEt7Eǀe[^_ÐU WVSE] ;tzvR`v|4%@tCύv;#uvC;t; uvR |4%@tC;uװHPRSuVhZV E P:e[^_U WVSE}}~2GPVWRPf DžaDžls}~_ ߰P1ڃ:tRB:t : t: t: t5:!uB:t(: u!vBA:t: uAG B:uPU~2P0ǃPW5 WPjjRPj  uhL~j wjj 5RP.@XD t,Ct;tj sЃ[ uփjjjhhV9 ~ WxRfjI1[^_ÍvUWVSEUMI ~}AE~q EE EtjF u Ph v3 tFjh ?uPvph h VPe[^_ÉUVSu}DjjEpÃt'sfSP S1e[^ÐU\WVSEUMMM~UrE~RUҍB}t}ЍDPÃu M SS}tЉC C CCVs}tMQs Sh ECSEPp Sh ]SWjSu =01e[^_ÍvUWVSEEUj‹B u Ph Ep81 tMjh <uPUrph hk 0 Ät!EPEPURÍe[^_ÉUS}~CjjEp9ÃsL SEP;SN1]ÉUUM zuJBHJÐUS]M ;KuACu1C(SvRt9JutAB;KuS[ÍvU WVSEuE}~>^v`ǃv S vPWSEP%e[^_ÍvUvRv|4%@u;,t CF;uMxjjEPU؈E؃;Vj`jÃtAEPUREPUp  EP1e[^_ÍvUu u$ÉULWVSE]} vCẼsEԃs EЃ sKMȋC=w%1tjjsE[v{щMESPUMJERhPhEW u @8EC=w%1tjjsE؃[v{щMESPU܍M؉JERhPhE u @4E؃uuEPjjMQEPMQV%e[^_ÍvUvRv|4%@u;,t CF;uMxjjEPU؈E؃;VEPu$u(UREPURUp )vEPUREPUp &Uԉ EԉURY1e[^_ÍvU WVSEUE} YvzrZ vvRv|4%@tCύvSVWEP%e[^_ÉU,WVSEI 1ۃUuRotP1ÃjjEPu6jEPEPe}j`j|ǃtwEPjh`cSG4`cEG8G@GPGPWuUp ,0uEP EPE8 vދt8SU RGut tWEPCvhÃt U8E PSǃ1e[^_UWVS}EPEPEpt1;usshU)ttu@U9s9REM @DREDMM DF;ur}t uFe[^_ÉUVSEu 8t.tSVu u1e[^ÐUVSEu 8t.tSVu u1e[^ÐUVSu] ;t3 {ts SSe[^UlWVSE]It[ tR}~LCEsVEs VE sEsE }u ;EC=w%1tjjs?Ev{щMESPU؍MԉJERhPhE u @8EԋEԉEEPEP C=w%1tjjsEv{щM̍E̋SPUčMJERhPhE_ u @4EEEEPEP `< vߋt8SMQut tW >hÃt <EPS虷ǃMQEPEPEPMQEP F1e[^_ÉUVSEu <t.tSV)u u1e[^ÐUjjEPhu SUR0SQ1] ShT/h_Ph| ]SjjURh SMQ訿0 Dž *Dž$Ph| ]S|jVURh SMQO0Ph| SEjVURh SMQ0Vh ]SjjEPhu SURؾ0SQ] ShT/hV譸 EPrMQVS jh`1hV聸 Dž *sg$Ph| ]SC jVURh SMQ SS4Uh h詶f@PuVh h腶0BDžxtDž ‹B$Džyu y zDž{tCDž~ tF ‹Dž <щ A*tpPhQhEP膲 tT ;Fut $<z$t*DŽ* A$*${(t$DŽ*  C(*$>uS 3 jEP $0 B,t%DŽ( DŽ($yt;qh' S׼DŽ( @($t S PV荪P0M ;Y[^_ÐUWVSDžUBM ;At \DžU;B}4ӃM R;uU;B|DžE;HU|MxtRuE Džx~tpvcF,t*yPvF)􋕌zPȯFN,rv| Fx x~tpv蛹tqF, t*zPvKF)􋕌zPFN, rv&y~tqvxF,tPv諻FP{FN,r^S蜥߰щtZ+D*EPhtQhEvI0t2|t+x x ~ tp v ܷz F,tPv 舺F vPWF N,r ^ Sx߰щtZ+D*EPhtQhEv%0t2|+x F$;B$t+R$V$|xx~tpvRpװӃRh' P0F,tSv FS۫FN,rv|@x F(;B(t4B(F(|  A(x F,Q,9t\t+N,|x)f,|x~t%~P|RvE;H01X[^_ÍvU WVS}1;wv\;u{tsC,t{ts覥C,t{ ts 茥C,t{tsrC,t{tsXC, t{ts>s 0F;wCWe[^_ÉU WVSM] { 11;s}s9NtB;S}Rt9Nutn>uiv}tQjh 9uPpvzP3hL he[^_ÐUԞ=Ԟp2tԞPdԞp2zh4tBTdBh4ÉUVS]u tPS~uRh jjhSt h` jjhSZ tPS+u1e[^ÉU WVS}4;0 9;tj t uhj覥ƃt?>u FP uPEt 54;0e[^_ÉUE4;01 ы t/9ut't   4;0R赢ÍvUE @UWVS} G E}tGEqvURD8uYpEPÃtA{t;hh2Ufƃsɪ VEDEU;W|e[^_ÉUÍvUWVS0;0EpѮPSà tjSj54;0U9t vE9ugt&{aEPs<u8Ph#]SS  ~P|PjjUR3 jzPhEP號G$W fxW"fvz|~f|#GXX x9~+xf}1f|$GXXv9~ f+vf}1jPhPhW8 jWEPPdЍX[^_ÍvUWVS54;0 t E9uuEPTdEE}SE*tEEEEEEEEPEPjj]E4耲 jEPh*EPhE4۝U 9W(|#E9G(}U9W,|E9G,,E}~}uoh[^_UVSEu @t&VSru vu1e[^ÐU WVS] hj%苲ǃ ;ǃP;ǃ@ǃ$Bh謢Ɖ3ǃjShDhq%VO0jSh0Gh}%V6 jShh%V jShȅh%V jSh([h%V jShbh%V jSh0gh%V jShthh%V jSh jh%V jShmhVn jShmh%VU jSh ph V< jShph%V# jShqh%V jSh sh%V jShEPhGhSURhLOhS EPhdOhpqhjUR襪tEPhHRh DvhjURut*EPhOhS薝URhQhvjjEP4uhjURt'EPh@ShVS;URhXShd0hjEP٩u4hjUR迩uhjEP襩tURh|Oh>Dvjh@EPuujhUR[tEPhGh=$jhUR-ujhEPtURhKh=$jhEPt.URhGhSEPhGhS sjj@UR蠨ujj EP艨tDjEPhS踒URhOhgS蔛 EPhQhgS}UE PP}Ee[^_ÉU WVS}}unFtX Ph؅uF tX PL؅u냾tl~uEPWbe[^_ÉUVSu1;}3vHw RC;|Ɔe[^ÉU WVS}1;}0u RC;|Ѓve[^_UWVSUEEjh&MQ3E PVUTM QVgu$8tj6EP=18 װHPR6T}9]t{U2trM QVPt^EUMLE PVu%8tj6URM1`E8tj6UR\/jM QV辥&t&REP+FUBe[^_ÐUEÉU WVS]} PPjW"PSМ1;}4B9|9>t1 [^_UWVSUM|QDž}~ ItNDž1F $ PuӋ j@j蒣tDžhjgu8hjKuhj/t Džfjj@ u5jj uhjբtDž Džj@j褢uP2 Pph'S豝 S腠P2ĉ *vWhGh0#PXhjËShPCPӗztBx t @ x uX X1[^_ÉU WVSUt1^ߋ[ t6EpCPuޅt C G C FS͌1e[^_ÍvUL WVSuE U Džj jSuj@jSנtXDž^PjP1`h!'P֛Dž hjShtQ1;^vh&'Q耒G4Pk C;_rh jStv6h('R`vjhSП}Dž Qj{C1;0vPPPB41Gҋ@TB+Ѓ 9};= } PP! C{CCBu}CF;2/ C}C C{C1.vB4h0'S™;tC;uF;1| C}CvhjS8tEDžPjP16'taZvjhSܝt]DžPjP1e6't4'Ph8'Pʘ DžRQE Pt9tR跈[^_Ul WVS}DžoDž-DžjPE qƅ{1asYDžjP4 Ch;'S苗 ;t vC;uF~ v 9r}Cqv|;r Dž@'3DžjP4耆h;'S;tC;uPjE P[^_ÍvU!WVS}? phE'S葖jhK'S葒Dž ;G؉shN'P.RP {t4[shN'VVR {u;GvjhV'SSju [^_ÍvU !WVS]CphE'VkjhK'Vk{ whN'S>SV"vwhN'S SP uӃjhV'SSju /[^_Ujj u ÐUjj u ÐUpVSu UBPB PB PBPBPBP2hX']Si0SjVe[^ÍvUWVS} ]shjE Иt-$hn']SSjE P<v;jj@E ~tWEP7-tCE$tCE$ht'EPq ,CtC CtC$h'EPCEPjE PzX[^_ÍvUWVS} ]thj街t&Sh']SԒSjWv^jj@\tUEPt2tFE$tFE$ht'EPQ +tF tF$h'EP$EPjW^}EEPujtBЍX[^_ÉU WVS} s 1Ƀ= u# 800EA w uꋂ [{urjh&'Ph&'Wh&'CP tjh'uPCPph'h蹇 v[ ue[^_ÐUjju ÐUjju ÐU WVSEp= 1ɋU ; tA w] ; u苺 XvE 9C}t6jh&'URh&'Wh&'EPh&'CP]0(jh&'Wh&'URh&'CP3 tGjh'uPCPph'hh [ :e[^_ÉU WS]E8jj3kSRP{ÃtpEEUPjP~}Ѓ P܃ǃ t)uh!'WWjS2 We[_ÍvU, WVSE 0;0M9DžDžDžDžDžw6$'PH P$H(@,E:tvBC:u CDžM;M8$ƿ'uPEPRt vMQ€:mBC:u[ƿ'u-Ph'SX;+C;u ƿ'u-Rh'S;C;uƿ'u-Qh'S،;C;uƿ'u%Ph'S蘌;toC;ugƿ'u%Rh'S`;t7C;u/€:t$BC:uv€:t BC:u CE;Pt.0E0ph'hw[^_UUT}~EpR 1ÐUS]hu Pƃc]ÍvUSUDjPPC1]UEÍvU,WVSu]0;0EE E;>;vv踍EE;vv虍EEWEP褆/hj t$3VE Ph(WǃP jEPhEPh*EPhWyEfEEfEuEfp(]fX, f|'WH UЃ9~f+uf}1f|&WԁHUЃ9~+]f}1ۃjPhPhW踋 E 8u WċE jWze[^_ÉUE0;08t#E0R>tÍvU\WVSUtEPU1ۋEP:tXBIx:u*S)э)ʍ)Ѝ)É؋@;0t^[tSUr3mus stDžt}!hEs1t aExщMUBEhEsE&}~EPEPjPU2uj@jM E@UzHUBB@ xuEp0 hs<th/s%uFEUPEPsEPhEE0{ (EUE+hTsȅthYs豅EEEu6'u EGvu4'uE*EPsEPhEU2Sz wEUEBjRhHs t.hssthsބuGEUPEPsEPhEE0y EUEhs耄uEEU܉PEPsEPhEE0_y EUEhs$uEEU؉PEPsEPhEE0y 'EUE+h sȃthMs豃u^}EԉGEuvUR|Eԃu"WsVhEE0wx EUEsu`}EЉGEuvURZEЃu"WsVhEE0x )EUE-hsȂua}ẺGEuvURKẼu"WsVhEE0w EUEvhsPuEEUȉPEPsEPhEE0/w SEUEZvhsuYEUĉPEPsEPhEE0v EUEĉBjRU2phs脁u)EpUvƒ*vhqsDu-Ur‹EEPjPE0pOEUPEPsEPhEE0u tEUEBjRU2o1e[^_ÍvUWVSU}t}1ۋW:tXBIx:u*S)э)ʍ)Ѝ)É؋@;0t>[t3w3us s荅tʅu hTsthYsuZPjP1o6't4'PPVlhs<th/s%uBPjP1ToPh'vhHs~t.hss~ths~u?PjP1nh'hsH~uAPjP1wnم$h*(hEs}uAPjP1nzvhs}uEPjP1m{hs<}pPjP1^mh-(P} S 'ƃtu)@(tj%lrlj 󥤉1VPiVGvPjP1lh-(P$} jRA1h[^_U VSED^j@jrue(}w(EX~u'Dž@&jP6Tj~t ƅ ڀ:t BA:uz %FtI)ÉDžPvv6^^S61[^ÉUWVSUu}TUӁCEh ju8jhUuU( Uw(W~w-EEEPEPREt h jU\tEPjuu3B08jhE$tjEPjuu3H tEE1e[^_ÉUlWVSU\EPUh j~u8jhs~uM(qv}Uw(ܐE@E=w%v1tMQJ|h j}t|M1/ǃtu @'&wh']Sx؋jPEPUjSM|E0EE URYmE ME{]C1EPEPEPUB4M1}ҋM@TB+EЃ 9E}/= } EEPURyE C{CUCBu}CFM;1Z}C{{_1E;0}/UB4h0'Sw;tC;uFM;1|}CjWEPUzjMQE0URpg1e[^_ÉU WVSUt_h j{u2jh{u(xv}w(\vEpVQÃ|?;}7h j{tS7,vS71e[^_ÍvU WVSUt_h jzu2jhzu(}~EpVwh jBzt'|75,t09Xu+7+|S7% v71e[^_U WVS]} =w%v1tWwh jyt06+ÃtmW3su[CvjhCyt46Ã{tWswsu C :v31;}$W4FstC;|޸e[^_ÐUVSU\hjxt&jP1v(e[^U|WVSE}Dsjj@xu(EP3~2E$h*(]SsjSEp' t~6E$h*(]SrjSUr s~6E$h*(]SrjSEp  8~3E$h*(]SrrjSUrz1x[^_ÐUWVSEu}DUZjj@vu(w(wUh]~w?h]Et ]tEEu ]Et tEu ؃$uuU21e[^_ÉUWVSEu}DUZjj@uu(w(w%g]~wg]Et ]tEEu ]Et tEu ؃$uuU21e[^_ÉU,WVSU\whjetu2jj Ltu(v}w(Epe]Epe] ]Et ]tEEu ]]Et ]tEEu ]hjfst+E]E$E]E$7?xuuuu71e[^_USEDjhru(K}w(2vEpSjtjPP;1]UWVSEu}DZjh2ru))G~w%vuT=P tKvP2G0uՃ5P OrP PPRE Ptt%vr=Xdu6P-a‰P PR,[ tU=P tLXdP5P m‰P PXdPZ 1;}24jU R00C;|Ѓq1[^_ÐUWVS]PPSE P1t:Sh3)SEkjh9)ShF)E P0uEPeǾ;}cvPP4E P褺u1;}&v4WE PEP!C;|F;|1[^_ÍvUEDpl1UEDm1USED[tjh4'C޿jh6'CĿ1]ÐUSE\k^PcPX1]ÍvUVSEDS[tYSS^tIjS>^P O[^jPS^P %j1e[^U WVSU}D19}1vE40eƒt FC9|҃VPF[1[^_ÐU WVSU}D19}1vE40*eƒt FC9|҃VP"k1[^_ÐU WVSU]T1}~KsP) t7sY)u vsj)uP2X1e[^_ÉUED`1UEDli1U\WVSU}t}~F]EwiEEwiE jST1e[^_ÍvUlWVSUDE1} EEEp*i};FE*Epi;F }~&EEp h;FVEPE0S1e[^_ÐUlWVSUDE1} EEEp^h};FEEp8h;FE Ep h;FE*Epg;F }~&EEpg;FVEPE0R1e[^_UWVSUMTBE}7qYA EAEAEIMjEPh*EPh2/S EPEPEPEPS^à tjh)EEPEPEPEPV_^ u}}E9~Dž}1uEvEEE9E~E}}Ett UU)Uvt UU)UE)9~…}1t t uu+u uv tuu+uvuE+E9~ƅ}1Rh']SbjSEPE Vh']SbjSEPE tbWh']SbjSEPE t4EPh']SSbjSEPEZt1h[^_UWVSU]Dx} msdtsdp s dǃsdl1 }~jh)s[tj~Ph*|Phx0RP lRWh)]S9a}tC;ut"|t)ƒ  Rh)tPh)S`;t vC;ut&~pl)ƒ  Rh)pRh)S`jEPxBs1X[^_ÉU WVSUT}~TE@ƿ)t9ƿ)t&ƿ)tƿ4'uP2S1e[^_ÐUSEDZtjh4'C膵jh6'Cl1]ÐUWVSUTUU} vEE;}}Ov1FwtF>u{FjjjSRRǃ ~YOxp; ^F @4vRpVv|4%t CFCOye-f-CFu Fp0V<ƃ4VvRU |4%@<N9w,˃q,q(q$q qhU-V[ >tF>u{Fs4h'V[>tF>us0Vƃ6vVvRKU |4%@N9whh-V[>tF>u{FDž1DsMj%P =VPNà t;t CF;u FG~~v˃q,q(q$q qhU-VIZ >tF>u{Fs0VRƃ6vVvR T |4%@PN9w@hh-VY>F>u{qqhs-VY>tF>u{Fsh'V}Y>tF>us h'V]Y>tF>us$h'V=Y>F>usshs-VY>tF>u{Fsh'VX>tF>us h'VX>tF>us$h'VX>tF>u}F^hh-VX>tHF>u>hh-VjX>t(F>uhh-VJX>tF>uPt00E Pph'hN[^_ÉUVS]u th.SW;tC;uth .SW;tC;uth.SlW;tC;uth.SHW;tC;uth .S$W;tC;u th&.SW;tC;u@th,.SV;tC;u}h2.SV;tC;u؍e[^ÉUWVSh*H} =Ej]4 EPV‰8 EPRE PZ < t uEPIVƉ>t^vROv|4%t)vR*[|4C;uVWLV\N (vuWh8.WuUvh=.WbL} th?.WKLE} e[^_ÐU WVS} LJLJLJPLJ$BahjpGɜƉ3ǃjShhH.VS0jShhQ.V: jSh\h_.V! jSh\hm.V jShhy.V jShh.V֡ jShܢh.V轡 jShdh.V褡 jShh.V苡 jShth.Vr jShh.VY jShh.V@ jShh.V' jShh.V jSh,h.V jShЩh.Vܠ jShh /Và jShĩh/V誠 jSh\h'/V葠 jShh3/Vx jShh@/V_ jShhO/VF jShīh]/V- jShhg/V jSh@hs/V jShh/V jSh4h/Vɟ jShh/V谟 jSh`h/V藟 jSh4h/V~ jShh/Ve jSh4h/VL jSh h/V3 jShh/V jShxh/V jSh4h/V jShh0VϞ jShdh 0V趞 jShLh0V蝞 jShPh 0V脞 jShh*0Vk jShh70VR jShhD0V9 jShhQ0V jShh\0V jShhi0V jShhu0V՝ jShDh0V輝 jShh0V裝 jSh0h0V芝 jShh0Vq jSh(h0VX jShh0V? jSh h0V& jSh h0V jShh0V jShh0Vۜ jShHh0Vœ jShh1V詜 jShh1V萜 jSh0h!1Vw jShhh*1V^ jShh71VE jShУhD1V, jSh8hN1V jShܤhY1V jShhd1V jShlhm1Vț jShhw1V诛 jSh\h1V薛 jShh1V} jShdh1Vd jShLh1VK jShh1V2e[^_ÉUVSu t%;t 3蔘S=dže[^ÍvUuuuuu uL tAh|PNt/ǀlǀp1٘tǀx?v1U WVS}UDt!C@t;tjsЃ[ uߋlti{ Ct%t Bt+;ShV*&vSh V9,vSh(Vu+SQ<uEP蜨e[^_U WVSUM|_~EPAPs1Dt"C@t;tV7sЃ[ uޅt VP1e[^_ÍvUED1UED1UEDL1UEDt1UWVSUM]TUlUEE~_SU1~Cƿ1u Dvƿ1u 'ƿ0t vhj<ËEshURCPDU v@ tx utX Et&t Ct+;ShUR'&Sh EP6)Sh(URr(1e[^_UWVSEDlU} ExEEWCPHu|Ct( t Evt+;ShV}'&vSh V(vSh(V(}t C UB C US8][ b1e[^_UWVSUE|x/~!TpDžt1:u Džt1pr h1EPGpp$h1EPG jjhVpR=ǃ ~TOxk>  ^C@1vR|Av|4%t FCFOy11FCu Cpr0SHÃ4SvRA |4%@K9w֍Džt1>u Džt1v h1EPFv$h1EPF v4h2SwF;t vC;u Cv0S~Ã2vSvR7@ |4%@t K9w- 2 2BBB jh2Ph2h2EPh2EPh2tPh2|Rh2EPxĜ@tYjh2x:uxPEPxph&2h;X[^_ÐUWVSE0l|PxPtPpPj8 th1}WDxh1]SD jh2Sh2Wh2Vh2EPl觛0tYjh2lulPEPlph&2h:X[^_UVSujh2Ph2FP tDjh2膦uPFPph&2h?:e[^UWVSU]t} s9}fEf fEm]ms9}fEf fEm]m }~s Ev|!6Uǃ9tS6EPEP6|9t W61e[^_U\WVSUMT}~pqIMEPEPuh1]S)B jSV3uh1SB jSEP 1e[^_ÍvUWVED}~OE@ƿB2u=ƿG2u #ƿL2t PR1e^_UED<1USED}~EpCPSA 1]ÉULWVSU]D, Ph1uV@ ujVEp蒤jEPS1e[^_ÐU WVSE}D}~,w!CÃwC PSV 1e[^_ÍvU\WVSEMD}~jqIMEPEPR uh1]S? jSV螣uh1Sq? jSEPx1e[^_ÍvU WVSE]D}Os BEsAƃ }~s A vWc VURPW 1e[^_ÉU\WVSEuMD AEAE~q hA S ƍEPEPVSG uh1]S3> jSEP:uh1S > jSEPVh1S= jSɓ1e[^_ÍvU WVSE}D}~,w@Ãw@ PSV 1e[^_ÍvUSED}~%Ep1|PS 1]ÉUSED}~%Ep?|PSV 1]ÉUSED}~%Ep1|PS& 1]ÉUSED}~%Ep;2|PS 1]ÉUSED}~%Ep1|PS 1]ÉUED 1UVSED}~8EPEpn3ÃtuSV S+1ve[^UVSED}~8EPEp3ÃtuSV S+1ve[^UVSED}~8EPEp2ÃtuSVd S*1ve[^UÉU WVSE]D}~,s!=ƃs= s PVWf1e[^_ÍvUlWVSE]uDUEE~VװH~U1~~E~V UE~vuEPEPEPEPUR t)uh1]S39jSWE= }t,uh1]S9jSURE  }t,uh1]S8jSUREٜ uh1]S8jSU膎1e[^_UED`1UED1UED1U WVSE]D}~,s:ƃs: s PVW:1e[^_ÍvUlWVSE]uDUEE~VװH~U1~~E~V UE~vuEPEPEPEPUR* t)uh1]S6jSWE }t,uh1]S6jSUREǚ }t,uh1]S6jSURE蕚 uh1]Sb6jSUB1e[^_UED$1U WVSE]DE}s8NjS=w%1tR81҃mRV1ÃthuYjj :tS9Ps*S PZ*1҃ RPWEPi%t 1e[^_ÉUWVSE}uDEv7Ev7E v 7ET2~^~v7v1҉޿[21t uREPEPQEPEP$t1e[^_ÍvUSED}~Ep6PSe'1]ÉUlWVSE]uDE jvv6ƒE~FEE~F EE~FEE~vuEPEPEPEPREPO' }t)uh1]S3jSEP }t)uh1]S2jSEP }t%T2}u[2jPEP趖}t)uh1]S}2jSEP臖 jhb2Gjhd2/1e[^_ÐUPVSED!|)Ph1]S1jS·1e[^UPVSUD!Ph1]S1 jSj1e[^ÐUWVSE]DE}~Ys64Es(4ǃ s 4ƃs 4E jjVWjEPEPEP%1e[^_ÍvU\WVSEuDUE}~pv3ǃv3à v |3jjPSjEPWEP(0EPh1]SM0jSU-1e[^_ÍvUd?1ɸ`eA~0`eʀЈA9~a`eʀ©Af~A`eʀɈAF~4 EEP(#EԃUU؋MщMЋ}ЋMtf2P҉Ũ@P"ǃP];vR'v|4%@tCύvC@uS`dC~~`d;t  C~)D;EVrFIyf%u`eC~~`e;t  C~`eC~~`e;t C~ A);EEVIFIyF}uk2]vvR&v|4%@u;{uCʉuԀ;E91҉=w%1tTPCѐEFvR&v|4%@u;}uCʉ;_;uzQjhs2UR%uf]uԀ;'M9`dv8C~`d;t CEF;;urvjhx2EPq%]uԀ;U9`eC~`ev;t C`eC~`e;t  8CEF;t4;ur-MQUE;Pt ROMQEPURMQEPURMQEP UREM;At Pi1e[^_ÍvULWVSE]DUE}s,E؋CEs ,ƃ s,Es,ǃ s,Es,E܃ }~s r,E EUU܉UEPEԃhUREPWURVEPUREP  u UR0UE}@TREЃuk2U{B у}E]K+uGQ)Љ…t0A) Agfff)Љ…t0A) A0A AE}~ A A AEKf}t A}A jh}2UR"=8 1۹`f؅}C?$)ƒ 0,#7= =v>u$_AC~1۹`gƒAB7 B0ڃAB7 B0C~8 EPẼ2jhs2EP+!uHE}ԋM̋U9Uv1;U}`f+EGAB;U|EE9E|sjhx2UR u\E}ԋM̋E9E}DUU1;U}"`g+E4GAD3AB;U|}tGEE9E|}ЋUtf2URPEȃMȋE0GAxtw1 GC9tu 7GMKxEAKy;@@A_f%v%A]`gAagA?uEPUȉŨE{@ }̻?t!AH~ A A A1GC?ut A}AUREP 5jUREzUR EP1e[^_U,WVSE]DE}sN'ǃsmƃ s ]s] s]s]E $E$E$E$VWEP1e[^_ÍvUE}fEf fEm]mE}fEf fEm]}m 9rVh1]SPjSEPEWs E$h2S$jS|PE(s E$h2SjSxPEr ttHjjWEPjEPVE0g EPh1SjStPEr1X[^_ULWVSEu]DEȃ s9EE19}"8xuv8yuuB9|߅u }EPEPEPEPEPEPEPEPEPEPEPEPEPEPEP.@t]}t]uuuuuuuuuuuuűEPEP&1e[^_ÐUED脁1UWVSUuT}~/F}u*PPvu \tX}~EPrt1;}vDA;|}~I11;}=:D2C;}~σSPPh2PP }~b1[^_ÐUWVEƿ2t&ƿ2tƿ2u18vƿ2tƿ2u v^_ÍvUWVEƿ2u ?ƿ2u #ƿ2t ^_ÍvUWVEƿ2u wƿ2u [ƿ2u ?ƿ2u #ƿ2 t ^_ÍvUWVEƿ2u #ƿ3t ^_ÍvUWVU=w%1tR Qֿ 3 t&ֿ3 t-ֿ!3u1ֿ'3u vֿ-3u vֿ13u vֿ73u vֿ<3u wֿA3u [ֿI3u ?ֿP3u #ֿV3t  e^_UWVS]}uEPEPEPEPu u\EU]E\3EE)EEUEɋEe[^_UWVSEh@ǃu1EvWEu>vRv|4%@u>{uFʉEPV}fUf fUm]EmUfEPu}fUf fUm]EmUfDu 95vRv|4%@u>}uFʉEE9EEPWǃE Ue[^_ÉUWVS] E0_ 1ҋMAƿ2tƿ2tBE؃Urt `3}fMf fMm]EmUMq [t `3}fUf fUm]EmMEpt `3}fUf fUm]EmMEpt `3}fUf fUm]EmM Ep‹E$1ҋMAƿ2tƿ2tBE(؃Ur <t `3}fMf fMm]EmU,Mq$t `3v}fUf fUm]EmM0Ep(t:Eu `3}fUf fUm]EmNEu%}fUf fUm]Emv}fUf fUmUEmM4EuU4Mq,t9Eu `3}fUf fUm]EmNEu%}fUf fUm]Emv}fUf fUmUEmM8EuU8e[^_ÍvU\WVS} EPh1]SjS7EPf j2}u2PwEPf}Et5h3$h2]SMjSwEPZf tE5h3E$h2]SjSw EPf E t5h3$h2]SjSwEPe E$t5h3$h2]SjSwEPe EPh1SjSwEPe j2}u2PwEPre}E0t5h3$h2]S(jSw EP5e tE45h3vE4$h2]SjSw$EPd E8t5h3$h2]SjSw(EPd Eu#44BCBfCv44BCBCtCujjhVP*ǃ ~YOxp> ^C@4vRv|4%t FCFOy44FCu Cq0SpÃ4SvR+ |4%@K9w>u'44BCBCB C v߾5ftCup4h5S;tC;ur0S蘛Ã0SvRS |4%@t K9w-55BBB jh4Ph4h4h'5h4Qh4EPI 0U@tFjh4h4h-5h4Qh4EPI 0}}Fjh4h4h55h4Rh4EPZI 0Eƅ{ƅ 1;us6Mtt4h>5S ;tC;u C;ur}CjPh4hI5h4Ph4EPRH 08ƿ4PP0P@tDž1;PP4R@tDžc~G1v;]s8M40uۃpEtwF;ZtYjhT5RuPEPph^5h1t[^_UlWVSUM}\3~w~)y1P4EPV/Ps [v1e[^_ÐUEDp k1ÉUEP81US]UH@t SQcc} pQPc1]ÐUEDp o1ÉUWVSUDEEEE;]Uƿz5uEhƿ5u ENvƿ3u E2vƿ5 u EvPdž~EC;]o}tEp nEPUREp n1e[^_ÍvUSED1}~#EpRruPs &s1]ÍvUSED1}~#EpRuPs 2s1]ÍvUdSUM\}~NE5AEE5AEs mhEjEPs Nu jjs m1]ÉUdSUM\}~NE5AEE5AEs mhEjEPs t jjs m1]ÉUdSU\}~EE5E@Es lhEjEPs [t jjs l1]ÉU VSED}~7hESEpr 5{|jS@1[^ÐUUMD}~hEqqp Mt|1ÐU WVSEMuDDž~%u*PPvu 9tT~IPt1;}vDC;|1;}cthEW4p y}jWVMu;|%[^_ÐUWVSUMuD~%u-PPvu 8tWv~IPt1;}vDC;|11;}QL8 F;}~hEVPw px؍[^_ÍvU,WVSE]uDUENM~v1~v ~v1}P%EtkuPWEPUr ^}E9|MQ\ۃ벐E EPƃu$UR vMQ {F ^1;}vED}fMf fMm]EmPE}fUf fUm]EmPh5Se;tC;u)B@;E~%E ӃMQV$ƃ;G;}_}CjVEPUJ؃MQ(V؍e[^_ÐU,WVSU]}DE~}w~wEE~w uEEEE=}EEPǃu vWkE;vRv|4%@u;{uCʉރEPS%]EPu \] 9gvvRv|4%@u;}uCʉEE9E:EPW/ǃEuEPEPWEp IxWH1e[^_ÉUWVSE]DU|ƅsDžlDžt9t}MtUƿ5u ƅsP~lt9t|E|4MME5EEE5UUEȖ5MMEМ5EEhjEPUr r&hEPh5Mq sPƃEE^EEEE^EEEE^F x_SjPUr xh9uV널1hdsEPEPEPj6F}fUf fUm]EmP6}fMf fMm]EmPjWEp|ǃ09tdRVVjuMqg 9dluldPVVWUrKDžt d9t}96tD\td9t|ݝXFݝP݅XnݝHܝHEu݅HݝH݅Pnݝ@ܝ@Eu݅@ݝ@Dž` ƅ?`Pf8ÃEH$7vluCD@LHTP\XWh5h5evD@LHTP\XWh5h5"lu/xrrrrr rr2Wh5h5xqqqqq qq1Wh5h5vhPWh6cvluKuuD@LHTP\XWh6h 6uuD@LHTP\XWh6luKuuD@LHTP\XWh6h 6ZuuD@LHTP\XWh6lu7LHTP\XWh6h65vLHTP\XWh6h6S0luGuuD@LHTP\XWh6h 6EuuD@LHTP\XWh6h`6S@MhRWh6h 6Sƅ? %8QVQ?;tC;u{C CDžth9tlu+txt tt4h6)vtxt tt4h6S$ ;tC;u+8B@;`~5` Ӄ`P8R8th9t2}Cj8P|1V 8Q1[^_ÉUWVSEMDhd}AHQ`A \QXITE|4MME5EEE5UUE5MME5|EhjEPhr j} %}u*]MىPPEL|J)UE)‰PU|)L‹H 7 uVlP)؉tty DžtLp)ʉxxDžxH)7 u5xPtPpPlPhp p EvKlP)؃y1tLp+Ly1xlh57]S#jS`Rd$= ph57]SjS\Pd< th57]SjSXQd< xh57]SjSTRd<1([^_U WVS} LJ LJ(LJ\LJ$BhjƉ3ǃjShxh87V%0jSh0hD7Vf% jShhS7VM% jShDh[7V4% jShhc7V% jSh,hp7V% jSh\h}7V$ jShlh7V$ jShh7V$ jSh,h7V$ jSh8h7V$ jShDh7Vl$ jShh7VS$ jShh7V:$ jShh7V!$ jSh,h7V$ jShTh7V#e[^_ÍvUVSu t%;t 3P!SPdže[^ÍvU WVS}u19}ߋTىTC9|8 !C8&CSRuuu u,ƃ hpVPƃtVhh58S0Vhh%hD8S Vh!hQ8S Džd8Dž~8 jPSdžlv1[^_ÍvUVSut(ltX P؅uV&1e[^ÍvUWVSUM]DEE~CE1~sE~C E1~{tVv1jVPWEPEPE01e[^_ÉU WVSUMuDE1Ҹ8~F8~^ƿ8u 1vƿ8u vƿ8 uz޿8u `v޿8 u C޿8 u '޿81t uRE0Ãt jSUB(S1e[^_ÉULWVSU}tE}~]wZÃwM PSPh8]S( jSUB(1e[^_ÍvU\WVSE]uDUvƒE~FEE~v uEPEPRU2N}jh8R'}t-uh8]S>jSEPH5 t3}t7uh8]S jSUR5 u vjh8&1e[^_ÐU\WVSEM]DUS1~{E~[ ]EPEPRE07}jh87&~t*uh8]S(jSW54 t3}t4uh8]SjSUR4 ujh8%1e[^_ÐUPVSUT}~DEpPh8]Sn jSFK%1ve[^USU\}~#EpP61]ÉU\WVSEDUE} ExEPE0iƃttuV|ÃuVjSWU~2uVS艾NVSn Euh8]S jSUB#1e[^_U\WVSEDUE} ExEPE0YƃttuVpÃuVjSWUr1uVS}NVSb Euh8]SjSUB"1e[^_UlWVSEDUE} E@EEPE0ƃ-1E;]}6UU<ްҋ|E)ȍTUC;]|уEURσuVv{A A1;]}S{A{Aޅt :tABu}A A{ATt:t ABuv}A}A AC;]|}AjWEPU/uVW豻NVW薻 Euh8]S5jSUB!1e[^_U WVSu 119}E<ЍTC9|R觿σuEP@1B{A A19}+{AEt:t ABu}A AC9|}Ae[^_ÉUEDjj@1U VSU]tE}EjEPC@PEjEPuE E;CtREjEPC@P輾EjEPu訾UB E;CtREP61e[^U VSUTEPEPEPOÃt9}t&EU)DjuFt S1e[^UED1U,WVSE]DDž}sCSC Dž}~s8 Љ1}~s8 hiPt<di`ilihi8iDžVRhhih`iP2 5di5`ih8SsjSPt+ t?5li5hih8S4jSP5+ u Svjh8jh8BPhiʲ1[^_ÐUWVSUM]|lE~%SU8~CP+ ƃu VvhjѸÉ;shEPCPU@ tx utX E1e[^_ÐUWVSUM]DlE CE1~CtPg1EEtPs EPCPu+t9{u"}t Ep vE0S肵]u1e[^_U|WVSuE 8VuV uvh8P~jjjP6Ϻǃ ~^Oxo> ^C@4vRDv|4%t FCFOy88FCu/p4h8S9 9l{jPh 9Rh9h 9Ph9h9Ph9sPh9Rh9CPvPtSR[ ]x[^_ÉU WVS} El{uxjh 9EPh9h9sPh9Wh9CP0tSV!v0ltE[ wEe[^_ULWVSEU 8RuRuR uRu~jjjS0軷ƃ ~ZNxqv; ^G@4vR4v|4%t CGCNy88CGu7p4h8W9 91Dž;p}\P@Z<ҋ<򮋅)ȍDF9|RU1b{G{GBt;t GCuv}G G{GBt;t GCuv}G}G GF;p|l{jh9Ph9Rh9Ph9Rh 9Ph9h9Ph9sPh9Rh9CP>`tSRc[ EP [^_ÍvUWVSEU UU88u׋pu֋Elth{uYjh9Vh9Wh9sPh9URh9CPEt0tSUR[ ue[^_ÉU WVS} ltb{uUjh 9EPh9h9s#Ph9Wh9CP0t SV[ ue[^_ÉUSEjh9S< uPE Psh!9h]ÐUWVU1ֿ8ulֿ=9 u RֿH9u 6ֿV9 u ֿa9u^_U9UJw,$h98=9H9V9a9ÐUlWVS]u 誽L DDžDžEPEPjSO uEPPPEPEPuMQ5j裺+E)+u+)+}0P4PEP5j|Džit{4@trXti\t`4t.5tp)EtH)EL)EE\PEXPh|9Quuh|9Pɺ9tv8u5u Džx]PPPPS5ju ;t(t$t Ӄt랉;]PS5j]u 1vxHw$9xHw$$9++)Ƌxt|v u xt t)v !|++)ǃxt.}؃d+}ڋ}9}xt Džxt.}؃d+}ڋ}9}xt Džt}uVh9Qvh9P肸9t8ut}uWh9Q?h9P"i[^_ÐU WVSh0蚩ÍdCCjC P jC@PۋjCtP͋ǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃǃ1҃ 1DŽDŽ DŽ B~K;f4M;6ǃ@ǃDǃHǃLǃTǃXǃ\ǃ`ƃd = tQEP7C PC<Љƃ}t,j赧‹GBBB V ?uS^=tjj zjhD jajhN;S؍e[^_ÉUhuU WVS] u}j p@`u `v`zt RzuBe[^_UVSu EM1ۋ`ӋRt*92u9BuuB` vBCRUe[^ÉUWVSuXF`t0`C`WsЃS `uуEPF P轉2vX {ts CЃS輹EP豉uʃF PEPF@Pf t!]p uSmuF@PΈFtPV1+ t,u7- v7GЃGttt91;}4軸C;|衸t XP肸uჾt^1t81ۉ=3 . G ũ\t"v\X P\uVe[^_U WVSU}EPu B PB<Љƃ}u^ {ts Cj讣É^ E{EC{ e[^_USE]u P R@8Ѕt P CBCBC B 1]ÐUSE]u P R@8Ѕt P BCBCB C 1]ÐUVSEu P R@8Љƃu -^ {ts CЃS蔶V诅1e[^ÉU<WVSDž }Dž\;t+u78 7GЃGdƇdDž8$],Dž0lDž4E LLJLƅtƅ];~n`;PDž; ]S jh;0h;SgDž08XB€<t ;t u ݐ8#uq:W: uz\t A9*9 uy\t@$(Dž+X$PPPPSQPWg j;$t-1;})$B;|㋵$9҉P艟1҃;}B;|덅9tP&HtH2_ SG8ЉƒuJh;SG8Љƒ=|vDIy;R \t\v;|HQPr2QEPvFЋ v uDt+u7Ա 7GЃGdƇdSPURqЉ=DftP]SOu8E89$t$-9tQ u Džv`]Su ;6u <#vdRh%<PDžXtMQ!XG] ;t; uGC;uvvR蔤v|4%@u;;u ; uGC‰+=~DžC<XuSRPhH<QSPh<8P 8PEPXP[^_ÍvU WVS] u}jH‰rzM\B \Ѝe[^_ÉUUM 9\u A \A B QѮv\t9J tۋR uÉUS]XuAj3jh<S X Xujh<jh<Sg  ju jh<SO ]ÉUWVSE 0P Dž,Dž(400pH$($;,~U,,,,R辙ǃ(PSWۘ4 9t SuV(P$(00rF(S Rƍ49t S[^_ÍvUVS]ǃu SMe[^UMU ~ÐU}u"jh<E0h<u ÐUWVS]U%jh<2h<E Pw1JMEr=1t EuE+]]MEDž|u-EPEPE0E PƃDž|EU;UvEH9EcEM;t?vRv|4%@u ;\tC;uǀ;uJEU8duƿ@=uBUEM4EPtnUBUuEPEPEM4E P*ƃ1C;]} E4UR8tMAMu藪;]|EE;E}taEU4M QƃuDE pEUthH=]S輤SM Q E =1|t uh[^_ÐU WVS] }uGvjhc=6h<SbvS0Eu-j3vS4ujh=S S3EPh=3ܣ1e[^_ÉUS] U~EPBPgC1]ÍvU}u"jh<E0h<u $ÐU WVS} uFvjh=E0h<W_v~UB8tPWXu"jEp jh=WoX jUrWe[^_ÍvULWVS} UE!jh=0h<WJmvupWs-vPBPÃSWPƃ S§uwh=]S&SWe[^_ÉUWVS}(jh=E0h<E PuEpE Pc,S}jEpS 9}1,jh>VhjE4VW C9|׃,E PcÃ,Px؍[^_ÍvULWVSu }}t#jh>7h<VwVÃth3>VvEĉExwVÃt3t.u|vhP>EP聠EPVD Vvw V`ÃtBtuHhj>V8EPwVaÃu}eu1ۅu VI؍e[^_ÍvU|WVS}t)jh>E0h<E PEPEPEpE PyÃtv11}VEp E PvÃt9u10tǃueE ph>WFWE P ?F;u}9jE4EpE P3ujh>E Puju E P؍x[^_ÉU|WVSEE EEEEE}"jh>U2h<M Q-EEX;~}EEEEE;%t+ډ]BC;%t;u+}E?v{%u]ȿEv%GC=w%v1tJj EPSUԃ:$u0ZE}@EU9E}GC;-t;#t;0t; t;+t=w%1tj EPSwEЋ]ԃ9;*u4M9MKEPEU4M QfDEC}tuh=W謜?tG?u;.u.GC=w%1tj EPSӎE̋]ԃ9;*u4E9EEPUM4E PRfEC}tuh=W?tG?u;lt;hu EhGCGU9U0x$@GdEPME4U Re(MUEȋ<ЍxvEPUM4E PkemEPUM4E PGfE@} ~6}1U ?gPh1?M 1ҚGEC9}~}ЋE;E~OE@PCƃ}tEPURVW}tMQuEE}t)EEWuP}UM}t uu}t EPuȍEPEEP}}ЋUTUyEM }t A U B1EM `?}tE ? vU ?}t MQx[^_ÐU WVS;]EPE4U RZC;]}E4DBuC;]|jhBUth`BE P}C;]U8euƿBuC\E4BuMC;]|GjhBU R4?jhBEth BU R 1E4U R2e[^_ÉUZx(uZ}uUrStSE PEPdƒuZv}p*ShNEUrjuC~>}tjhYEE0hBvjjhgCE 0v}pShfEUr}~jhlEE0hBDvEPF PcXZ~4uZr 葑t,}uEpSMtSU REPcƒu#}sufSh~EEp:uK}tjhEU2hBE PTjTU R}tuNShEEp·u3}tjhEU2hBE PEe}vShEUrv}~jhEE0hB~ttEPWIbPvB @u8Z(uZ}uEpStSU REPbƒujhCEp h?Dph\D"jhEhFh*Fh@FEphnFU Re[^_ÐUWVSu EUu {F)tjh}F2hBVbzEPEPrVt ?1;]})u jE0 jE4WVaC;]|؃u1e[^_ÍvU VS] u}t$jhF6hBSvEPvS`Ut v}FE}|*EPEPEPEPuSD ucMy؃}tV}~E@Pl|C}tuu3z{Ev3uu1e[^ÍvUWVS}}&jhF7hBE P?EPwE PYTt EGE1ۋGE;]}<8t?jEPEPEPuE P7 C;]}E8uʋE8ujwE PqcvEu;Gt;>t6vR舃v|4%@uF>ůjwE P;]}v4E PC;]|E8tjuh{FE P1e[^_ÍvUS] U~EPBPC1]ÍvUVSu E}t jhF0hBVYP1ۋ@ECE8t'jjEPEPuV uE8uЃShgC6H1e[^ÍvUWVSu}tjhF6hBEPvE P%Rt }}EV :eu3װHPhFRu E@BOvEPv E PQt2E PjhCv hFE P#E;E~11ۋFEC;]}.jjEPEPuE Po E8ű]EE;]68t1jjEPEPuE P- ufC;]E8uЋEPvR谀v|4%@tMɐEjuE PkE1e[^_U,WVSu }}#jh G7hBVEPwVDPu݃EPw Vuƃ}}E}}EE;E~ jh`GeEGE1ۋGE;]}98tuuU B =$juh@ju9ke[^_U,WVSEU 21=kt 1v=$juVQ~=$juwEPQ5 jpIuEPV5 jVIt#h`I5 jkxE;EqE;EXN=$juwEPQ5 jIuEPV5 jIthI{E]Eu E]EDjQh@jVh@j 5@j5 j/kSh@j< =kthI5 jjvjEP j0rǡ jU;t:t15 jjh J5 jfk =ku߉e[^_ÐU WVSUDž DžDž}-jh`JhJ2hJ!MJM}B8-0J uDž]v1Jt70JnjhJ0hKU RwDž M}~8-]} *XS j0SX >t]vRvv|4%t)vRB|4C;u,S|jrS,˃ 9tsvRhuv|4%t)vR誀|4C;u0PVM Qǃt$DPPWJ t!,PXP u =Dt#j5Dh KU R5vuM ?K|E} ~JE AK`vjhkK thmKE P+Dž U9 1<7uJt!jh^Kt1E PjhdKt2M QtCD>(+HP7+PheK$SdyjSt0U Rj G7+A‹\>(+Ê jRt1U R)  E9 U K1[^_UWVSU]DžPDžL-jhK3hJE Pv@JvK@JC8-@0JuDžPov@1KuDžLGv@0JkjhK0hKU Rv@J@8-SP-XS^j@0SkX ?t`vvRPqv|4%t)vR||4G?u,Sj@rS,Dσ 9tsvRpv|4%t)vR{|4G?u@0PDVM QHu ZvDž<Dž8DDž8H+DƋ@q\uFVF9t jR@p U R5TH9y(u[+D@AVVfVu5EfEMY;tyuEVWC;u[EPӀ:t:v Mv@8tM8uRWESC;uɋM;Yt RWc1e[^_ÐU,WVS]1Ejh_OE0hJEPEװЍx}cWhvORbuntjh~OU2hJE PUr rOgƅ~E KSv}U O>E ?K.}fWhOUr&btjhOE0hJEUBUǰЍxUZ C;t,E8uWSUrau܉ދE+p }t΃Vf}iWhOEpnatjhOU2hJE PKEPUr E P11}UZ߰H9EE EU @}lWhOEp`u3~.tjhOU2hJE PE}lunWhOUrj`uS~NtjhOE0hJFExHPhyNU 2e1%}mujWh PEp_uOtjhPU2hJE PUrr 胺t E K딋U ?K뉐}rNWh(PEp_/tjh.PU2hJE P_UzЍXEPr U R/.EP:eu0װHPhHPR^u SUIEPEpU R.t+E P追jhkKUrh`PE P}}E9]|K]E;EbUZCEjEBPU RE2}t*WhPUr*^tjhPE0hJjEpU R蘹E ;vvR|]v|4%t)vRh|4C;uV}tNWhPUrN]tjhPE0hJ"jEpU R輸E ;vvR\v|4%t)vRP|4C;uz}trWhPUrr\Eu EX 2t'jhPUrhP2hJE P$PUBt v9tAU8u@UujPE P获}E װЍDr9tAU8uHU9u@t}turWhPEpr[u~UBP}tu6WhPEp6[u~EUBPjhQh@QEphkMU Rme[^_UWVS]EHESUEЋ8-2zQu EkE0Qu ELE0Qt.E0JtdjhQ0hkMM Q>EME}~U8-^}0jhQ3hJE PfME͍vEEMEE}uoEPEPE0U R2ƃtIM  RjhkKEU4h`RM Q۵ XEE5EH9Et1ۋEM:du!E9uֿBR}t8 }t p}tBfEU4MQ]ÃBEU4MQwÃ&EU4MQE P跺ÃtrUBM;U8-uxtE4U RƃuDM qEU4hR]S]SM Q褴 vEE;E1}t u)ch[^_UWVSujhRE0hREPBEװЍX}aShRRxWtjhRU2hJE P71UB 8t-v8ru8wu 8u@@8uօExЍX P;Nlj7G_@UrG PH WhlVEpU R iWa}v}d>ShREpbVt tjhRU2hJE P%1UB 8t-v8ru8wu 8u@@8uօExЍx1ov]9{ud93u`WC PUrUuFShl @PEpU R {ts`EP`=ShljUrE Pà m}iShSUrUStjhSE0hJv1qEtEr@ tw@@tu@jWE P%EPU Rͱ C PE P躱jh)SU R+S VhljEpU Rƃ hjh@SEphkM1#jhSEp hSU R肰e[^_ÐUWVSu]Dž{ts _CE#ExudKW&sC PW6 uW跶VW譶 UtjhSW.E t jhSU@tjhSPҵE xu.DžDždKj0P蟮U BBE PwǃP覶 tHU :PICU 2PBDC U R^uPE P}}'Dž{tsQ]SE][^_ULWVSu }t&jhSE0hJVD}GvEpVeÃt,t'uDvhSWAWWV $EPEpVÃu}uu1ۅu V>؍e[^_U WVS}=ujlH‰:kBkjjhTW追1 t0Ӏ;=tC;=ujCPRhTW= FŐjhjajhTWe[^_ÍvUWVSu} 1ۡt4v:uBA:t:=u9u )Cuω[^_ÍvUWVS=uEPEP}EUB;~NP4GËEP5SLF 5ZUMMD}ЍXBEM@PE PTU4qZ]} )PqFơU4MQV@= E PFP@kt"FjVURhT3 [ue[^_U WVS}tWj=EPkXǃt@+]t9CPEƃSEPVD3 GPV#VY1e[^_UVSu=u'EPVÃtQ48YTBuktjVhT3蕺[ue[^U WVS} ]uub%=th Tk9;u Ck#ދ[uh`T9;uCFS|X6 tjShTWPS @t S1e[^_ÉU WVS=18t F<uFPDE1ۃ9}A<PC‹E4RD> C9|Ee[^_ÐU WVSuE 8PdžMK} vRKv|4%@tGύv?-u_jEPS D&?+u_jEPS jEPWCJ8"uƒ JW謦URr ;FE PFPvW@ƒ WoEPp WFFFFF F F F FFC<u)^FFv^F1F#{=^F{=u^FF{&u^FFF{|u^FFFvRdEv|4%uC^FE^URVWe[^_ÍvUWVSuEVjPURÃE x jh\W0h`WE x u@U zzV4$REP"ÃstD ttuwF^u >GFD@uv;vU z1u%DPE PURÃE xPTGvtt 1^U9$~Gjtu-nFD@%džu>t u&>t!tvF FV5U REPLÃU zPT}ЋDD>vu;DvuFܝHEPv C u;DvuFܝHEPv 7Cou;DTvuFܝHÈ@-Pv Bu;DvuFܝHPv {Bu;DvuF݅HE@tvPv BVu;D?uF݅HD@vPv A%džED!7vD1'vD v}u'݅HD@%DE1>D%}u'݅HD@%DE1>u DUWd9PtP"Gfjh\WE 0hXUR7jh\W4h#XIXu4XRh\XEP {[^_ÐUS] C S)¸)Ѕ~PC PCЃu3hYs @us ssuNǃ]ÍvUWVS}uXu;X = t&vs sCPs3Wt $;u݋E EEF FF FFlFVjEPWuz}t"jh\WE PhXWTuGFD@uYEtYEu؃vvW1e[^_ÉUWVSu}DPu VÃua}u DQ}u>݅HٽBfBf f@٭@۝<<٭Bv Yd9PtPuD؍([^_UWVSu}DPu VÃu-}u ۅD}u ݅H  Yd9PtPC؍([^_UWVS}uDPu WÃuK}u D}u݅HD@%VPW Ãd9PtPOC؍([^_ÉUVS]DPu Sƃuv}uDhY3{=V}u3LHS9d9PtPCPvjPSd9PtPB([^U WVSUu}EPu B@PBpЉÃ}t j ^.C K ~119}YvB9|EAEAe[^_ÐU|WVS}EEU rvRP6v|4%u;_uCʉE XWPURE xUVE@PUBlЃu%jh\WVhEYEP耒UUp >u/WE PURNE xE1GU zgEYvU ztzEEYTvEG GWjU REP/u+FU<uDZvDDKFU<u0DG}fUf fUm]EmDvDG\H9EE xEPEPURvF uf}uLJELJE_E @10U`Yjh\WE 0hXUR蛐x[^_ÍvU VSu38!tE E@t Zjh ZhJZn28"t$E  [Et([EuRE D@u`Zjh`ZhZZjhZhZhUV谒Jl20hZ]S8jShZh[V袏0j6hThUVde[^ÐU WVSu]} 2s s_18u1w wu e[^_ÉU WVSu]}1sss s_18u1vw wu ;e[^_ÉUSM ]U;u%CEuZPCZF{}4C؉By0UjhUhUhUQ vCB1]ÍvUEU8u@@Z1ÉUSM ]U;uCyCEu70[Eu<UjhUhUhUQz98[[EtC}fMf fMm]EmB1]ÐUSM ]U;u CCEuE@[È@s(UjhUhUhUQЏMC%H[ P[[È@rCH[}fMf fMm]EmB1]ÐUVSu vvR/v|4%@tCύv;-ujEPCP'(v;+ujEPCP jEPS'Ã3EvR5/ |4%@t EE8u9utE8t"jh`[Vhb[u誋 vE1e[^ÉU$S] EPS+]2EvR. |4%@t EE8u9]tE8t"jh`[Sh[u vEE1]ÐUWVSu1ҋE t"MC<w  B E uEǰЍx]0u }1u }yuWh[EP-t}nuWh[EP-t~tuWh[EP-tAfuWh[EP-tBouG~BWh[EPt-u EWh[EPR-u.&jh`[E Ph[u襉1e[^_ÐU\WVSDžE 8u Dž \PR 4u%f=@t1d,P5Dž11]tH~t~/t~u\h\?u(EPjh\Vh\h\jPWxjFPWi^~t~/t C;t;/uC)PFPW67-ƃ u/ EPbjh\7h\EP1-W7jvW݊ jSWΊe[^_ÍvUWVS}jh\E0h\)Dž(,vjh]E4h:]U R*nC;]}U8-u7ƿ] u Dž(ЋE4]uC;]]ߍ,$$PU4E Pr8/u'x/uPhG]v@Phb\E P PhJ]U Rƃ$PΊG;}uU 8uw(unJ]jN]}uK]PhR]E P߃;}}"jU4VE Pނp]G;}|jh\U R轂1[^_ÐUEU H@@@@ @@@ @ @$P(u@,H@0&u@,t@0v@,8@0UVSuV92u&Fuh] 93uFHV0e[^U WVS}1;w}'tvP]0؃uF;w|ڍG9t 7=0G,G0e[^_ÍvUUE @@PÐUSMyu#A;C|1QAAtQA[ÍvULWVSu EKyEEE1ۋE;F}Q>M^1ҋt vBu vEЉUEFE]C;^|؃h?Evvh]R)}İЋUčt1ۃ E4Sh^VZ)ЍtC ~ыURj h@^V,)Ѝtuuh^V)Eče[^_UU1BuÍvUVS]u V#S$t)vK:Cu:uvBA:tu1e[^ÐU WVSu }VpU#B$EUt*K:Cu:u }BA:tuЃPËUSUCC VCPCE@ UB;B| Ro؍e[^_ÐUSE] imNAH #P$tv9Xtu1[U WVS}Uiu mNAO #w$tE 9CuMujÉ{SC E CGG;G| W؍e[^_ÐUWVS} 1ۋEP(~ JimNAUJ #Z$4t,^EP( vJu;t6u1[^_ÐUWVS}E EEW(Å~EJiUmNAUO }G$!EU4t1]NW(Ju E~;t6uЋUG(P}Ɖ~UFF ]NW(~JF0GG;G| W<e[^_ÉUh^I1ÐUh_11ÐUWVSuFEEEFPV~JFFF F$F$}}l~(uCP#V$<~(uiCmNAN #1ҋF(K~ HimNAN #V$SuM}F9Et EP)e[^_UVSuu{džh1ۃ;}=j(‹؋D(C;|dždže[^ÉU WVSuu VJV vE vRe |4%@tE ͐U :uEPx|1;| džE} ЍXU | u KE | tCPURSE PU2KU1 }t,E džULPEPkqdže[^_ÐUujjVl ǃ?t:wvR v|4%@tFύvU9Um}u>ub}tE9E|T}tURu5ft1E9Et U E+EPuEP +EEE>+UE9E}9E|$URHjhaEPhavE!vjhaEPhaURHg1e[^_ÐU WVSu} ^F u!EPFP1CEHƃ|EPFP}_v;]u_jWG Ћ_GECFM})}jh bUR#aU JEv_E01e[^_ÍvUWVSu E$EU$ZEM9MvEU MBuBFE<tVU$;ZuZjRB ЋM$Yu ECF>uzURVMQEu oE0}ЍxU$B)9ZWRB ЋM$YEPSu}]ERu7U$ZRMQEPFPURx M1E$X)EPV~ +uCUBvu;Et%}TjhbMQ _v}]r*E$Xu!PURMQj"FPEP: 9t2~ (U$RMQFPEP[UM\u x u@EEBGv>>"ujh@bEPB^jhbUR)^uvM1E$XCMU$; t)1;UM +EM$M B;U~E$EEU9UM$YE0EU1e[^_ÉU WVSuU ^)C9}ۃS-NjF)ЃPRWIF)F ~t R >D;FFe[^_ÍvU WVS}t E]vRv|4%@u;\u{ u{mC뺉;"uj"CPaÃ;JR;{uOC;\uuvVS];\t;}uOv;{t;u vGuC;[u#jjSÃ;tC;]u֐;\u'EPS];u}u{ u뛐;$uS&Ã;닉;;u}kE]vvRv|4%@tC,;]u } tC;} CCe[^_ÐUVSu ]h;\uEPS]N;[u#jjSÃ;t7C;]u$;$t ;u SÃ;t C9uCe[^ÍvUVSu^~{u ^~}t~t C;}t;uXvRv|4%u;_uCʉ;(uF9tj)CPCe[^ÉU\WVSDž] C;{uI{?}t5v;u'jhbEPY}tU1C;}uΉލ^%߉vRv|4%u;_uCʉ9u}tE8b8vހ>(8($U,Dž0lDž4$PPjj)FPEP tIW)PhcSSURY1$ }tpUcEP\$}tEUHt&cJhPWUReLjt89$t$[^_US]EvvR v|4%@t; uJEA;#u}tC; t;u뫍v;uEPjSÃ;tC1]ÐU,WVS] E}t'jh@cE0hQcR3XRjƉFEx PF Ur P5F EPEPEpU RPà EE;]#vEPEPEU4E PPÃ]}}t E8u'ujhcUrhc U:Ӄ}uz1DPǃ}u~ U:}E0GP}u DGEpw vGuREE;EhVhpUrE PGM u1vujhkcEU4hcE P V0v ~ F W~ uV}t u؍e[^_ÍvUWVS} uEt X41ۀ?#uEEPGPEPu}}sjhkcWhcEP_U=w%1t"EPWEPu+]] K]E1҃}t$RDqB4;EuaEEe[^_ÐU\WVS]}E E&jhc7hQcU RTEPwE Pƃu K)t|UUEUu7E PpL'WSQÃSU RSLƃ Su$E phc]S&SU RSUEe[^_ÍvUEu P R@8Ѕt@ 8pu@1UE8pt1@ÍvUWVSEPLjEPLt@4@EEEEUULEEELJP@ DUHTv}~ HD_jSDPE P_DDHMDtqD?udu}}EHPURTNjSDP} Wh_ SE}~jh_dE0hyd>vPGwE PIO WLǂ judPjhd} W_LX jjhdW^LX vu3LwE0hdTS$SU RP duGLdJjhkcE0hdDPh@dU RP uL eELEEPRp([^_UEHx PÍvUVSuvF P؃uVe[^UWVS} EU~"jh`e2hjeWOeuZ,PSWÃu t=t51St+jW(?PheSheWO ,PV[^_ÍvU WVSu 1}t$jheE0hjeVNEPjjEpV!A t EPT>0{tOC` su5jheVC>PheEpheV)N ` 3Uu5jheV=PheEpheVM { ~ jsss V" tSie[^_ÍvUS] U}t!jhe2hjeSnM?vEPjjrS?tE@ t e ve1]ÍvU<WVS]DžjheE4hfM QeB9}CM8-u8ƿe u DžѐE4euB9(jh!fM1hjeE P{LMD8&xKjjjPP)PE P-à |S,19}/}̃4hu jYEPqS̽t u-]ÍvULWVSuDž}%jhpf6hjeE PJ FǰЍXDžPvU Rǃ!dShfv}t&Ffjhfvhf6hjej/WUÃuU fC9uE f/jWU RJH/vrShfvjuk~f}t FfMj.WÃj/W tt9v jWjWU RG.veukShfvuS~N}t Ffj.W5Ãj/W( "t9jStucShfvjuK~F}t FfMj/WÃtjCPU R.jWuDžruoShfvuW~R}t FfDžRWRuE e!U ewu7Shfvru}t FfZDž늀eShfv.u'~"}t FfDž?eu?Shfvu'~"}t FfDžau[ShfvuC}t FfEPWXuhfE 0iuShfv:u#~}t Ffiu;Shfvu#~}t FflShfvuw}tjhf6hjeU RvEPW7u+jE P4PhevhgU RWEPv E PkmuOSh"gvu7}t F"gEPW?uMou3Sh(gvu}t F(g1rSh.gv~}t F.gYhPW#ƒu-jE P3Phevh7gU R!jPE PBpvs+ShKgvuO~J}t FKgEPWEЋURPhfU 2<sShPgvV}tjhUg6hje8EPWku?jU R~2PhevhigE PdBDž [EPv U Ri8vtucShygvuK~F}t FygyEPW+LEPnU jh~ghghghgh hvhRhE PADž0vEPWCtgt"t Ft'=;E&vE%f=vE%f=@Љt E e U ePlH[^_ÍvU,WVS} u6hjW,PheEphhW;.0@ t,uKuGDž,;v t3FC+}u&j4PW;AvDž(ы$P4PEpWHDž$,(}u,Ph0BZ BB1[^_ÍvUWVSu 1vRr |4%tr0<1;_ }0u̍vG4hEPjjvE P EPvE PKEV װЍxsuWholR tqcu$Whulv u EKveu#Wh}lv u E"jhlv hlE P)-KvE` EPuu_t1(vjE PPhlE P,e[^_ÍvUU E}upR jhl0hjeR,ÉUS] U}u=EPjjrS u9uPhp6p.p&qqqq#qÐUEH0$xsr#rr rrrrrrrrrrrr~rvrnsfs^sVsNsF's>/s66s.>s&FsPsYsasisÐUEH0$vr#st  tt3tCt\tctwtttttt~tvtnufu^9uVDuNYuFmu>u6u.u&uuuuisÐU WVS] ETTPSP賛ÃjjSƃ}8jR8PhvShvP! EPVu?jURPhvShvEP V:E@P藻ǃuWV ;Eu;UtFjURPhvShvEPm VW Vt9DžTDžDžx>uP1B:&u DžBPPTPsQ3WR}We ǃ L tjjjW蓹t64~0t4RF4P0,~Lt,P,uPLDžL82x>,~Lt,QDžTPx>uPDž1DžLPTPsQ3WR}W , tjjjP3T;U }$TM)ȍ }B;U |T)E NF;u } uUwp8<,ShhS8DžX }!jMQ Phw}W<KS0 I| Iyj8(BBB BBT>0jBBB BBT>0P j輩BBB BBT>0Pmv;|bXPiơP5T>0V 9}v@9|5T>05T>0e[^ÍvU WVSu} _;| SVGT>0ujҨ¡T>0:BEBB BB$uz(u  zvzShz6ȶe[^_UWVSEEU :fuQziuKzlЋE xe%t.j EP] Sƃ9]tE8uwU :suhztubzdu\փzu1Zu "zu :u &zu jh*zE Ph,z;5|<=uVEPjhBzU RhOzEPjvT>0t؃}t2}t @ujhVzU Rh*zEP0xt6@3}t*@u$jhrzE Ph*zUR  U1e[^_ÍvUSMtQ;}T>0t9t!1;}(T>0t9t9Hu@vB;|߸[ÍvU WVS} uVWEPBÃu ӭ8tމ؍e[^_U WVS} uVWEPÃu 藭8tމ؍e[^_U WVS} uVWEP躠Ãu [8tމ؍e[^_U WVS} uVWEPNÃu 8tމ؍e[^_UWVS] u1EvR脭v|4%@tCύv;{u38jh-{ jhJ{EP- v;"uECt>ލv< >$< < <\<"<{t <}tvG)FvR芬 |4%@>t<vRLv|4%@u F9sC;uŃEP] V)PhzE0i OEPV[EHƃ}})FvR葫 |4%@>t<vRTv|4%@u F9sC;uŃEPe hzV)Ph{E0l})FvRȪv|4%@tFύvEE0}tE81e[^_ÐU WVS}] u~3<\u$EPSߟFU\G)׃FCOe[^_ÉUWVSEu >t7vRv|4%@tEF>uE]+E DPfE4;pE9E|(W#jh{URE4}tuuV uFVuuE@ƃEE 8tAEPEPE PEPu URnà t W茴%E8HEE8EU1e[^_ÍvUWVS}E1u{?{t ?"t?u ;<;tF< t@ < o< |k4<$t0c<\t0<[t"U<{t<}t KEDvMy<70v{t{ uEPS觝EHÃC;u}tE 0)Ee[^_ÉUVSMu ]u{؃u{AB9u}B9u\B09{uu\B{AevtwP${tC\B=\Bf7v\Bn+v\Brv\Btv\BvvBA9u)[^ÉUlWVS} EEEP艞E1;u}"]SE 4|8F;u|WLE1;u}'E4SE 4 CF;u|;]u ECE9Et EPбEe[^_ÐUWVSEE9E}'vME <EM9M|܃R藝E}u vuEE9EUM vvR訥v|4%@tCύv߰Ѝx~4T;vRZ |4%@tOͅtWSVΥ FEU9UN;ut FvEe[^_ÉUVSu] ;u > >u;*t1v;*u+C;SV>tFv;?tp;[uR :|:~)C;]t;t:t{-uSt::|̀;]t1;t,vC;]t#;uv;\u C;[:QCF0e[^U WVSE]sUC} uƃddCauW} ҍB=~RKCdCE P3菕U t uEPۮ UR֍e[^_ÍvU WVS] sEЋUTU{uދ;u<u E;|EPV]7WPΔH{ue[^_ÉUVSu ]EPVH;u<u ;|PSM…~z{u ~z\u  BuRVe[^ÍvU WVS];t6~%<ǃǃ;<tװHE ;|PcWƃ3VT t説;tP{t'{u 3c 3CCe[^_ÍvUS]{t){u3 v3CCdƃdX]U WVS] sWPjhx}V  CuހXe[^_ÍvU WVS] u=w%1u;-u)VSEPot`>}YQv߰HPh}Sܟt!jh}Sh}EP8 @1e[^_UWVS]} HE14U; E4U R!uvtfEE O|7  IyЋUE   GJDU Rjƃ=Dtj5Dh}EP 1t豩0裩   OyЃE@PwU RPԏE  e[^_ÍvUEDÍvUVS]u uSt=DVVP^s=Dt!Sj5Dh~Se[^ÉUEP @@@ ÐU WVS]}}} ЍxC;C|4CPmƃ3VЎC 9t 3,3WE PCP4SSe[^_U WVS]} EPWC@;C|4CPƃ3VIC 9t 3襧3C…~z{u ~ z\u BCuRWCe[^_ÍvUEU }1;P} PÐUS]C 9t 3%C CCC ]ÐUVS]u {t,{u3 v3CЃCF 9t C%~63/j6SF FFF e[^ÐUMyt&yu8{ty~&Q|{u|\tjh*~Qjh,~QÉUjh/~upÉUS]uu E4PSY;t9;.t>vR7 |4%uC;u.C0C]UWVS} E@tQ%=uuhD jaEPEPW1~f43~6LJ@EPEPEPE PÃu{j EPSߑƍFw 9]tE8t=@h4~]S>EPSEPEPE P7~ vVhT~4P@1e[^_ÐU WVS}EU Uu UuPt vEu?E PRB,ЉƃuRUT5EPWU REP4EPE PRB0Љƃ}t sÉ^ s ^ Ct[uCtJUuE5Cj4藏Cjsq "CuE5xvE Ut?CURWs@0Љƃ}ta{t SÉ^ s @CWs@,Љƃu(Et5URWE PUR1F e[^_ÐUVSMU EӀ:t6;(u+ސC;uK;)u"PFPRQ"()C;uPjRQe[^ÐUWVS}uEEEPjh~VWE PEPà {u}t-Ext$ PWE PSuEP{ u5CuCXt;Ct}tE@uPh~WE PEP Ct uS1e[^_ÐU WVS}U MEӀ:t:;(u/ސC;uK;)u&PQFPRW&()C;uƃPQjRWe[^_UWVSEEEPjh~EPEPE PEPVà u 1{ u*Et5h~EPE PEPȐCt*Et5h~EPE PEPc또EtCtEtEPEPp}Ѝp3;s|N{9~WE{~sP^sß {ECEt8S…~z{u ~ z\u BuREPEPCP3c{u}tUExtLE PEPE PSuEP t$Ph~EPE PEP1 vCuC~Ct uSie[^_ÍvUVSMU EӀ:t6;(u+ސC;uK;)u"PFPRQ"()C;uPjRQe[^ÐU }tUB ER~}uU؋t9u@@uKEtE @PEPM QEP}~u}u9Ut1}u Ph~MQE PUR uSaEԍe[^_ÉU WVSU }MEӀ:t>;(u3ސC;uK;)u*PQWFPREP*()C;uƒPQWjREPe[^_UVSuEPjh~Puu uà t*j0‹EEBprCB S1e[^U WVSU }MEӀ:t>;(u3ސC;uK;)u*PQWFPREP*()C;uƒPQWjREPe[^_UWVS]EEEPjj؃Puu EPƃ t|pN1vϋI tfE9u9YuE9AuEt9JuA BRuu A FA G Q͚Ft jVIe[^_ÐU WVSU }MEӀ:t>;(u3ސC;uK;)u*PQWFPREP*()C;uƒPQWjREPe[^_UVSu]EPjjEPuu ut1@t& @$v@ t9Xu90u90t@ u1e[^US] UEuhpSuhppS.t1jh~0hS]ÍvU WVSu}$jh.7hE Pr1v9}#vh4E P@uC9|1e[^_ÉU WVS}u1"jhF6hE P49}#vh4vU R8tC9|U 1e[^_ÐU WVS}u1"jhF6hE P49}#vh4vU RtC9|U 1e[^_ÐUF@Phw]S΍jUrhShE Pk0wGPvbGFG~,jhhUrhE P%1e[^_ÉUWVS}E EPjhhuuW*E􉟴 }u tURURP@0EPEPGtPЉƃ}tÉ^ s Ov^ Cu'Cu=jh URhW<2C;Et'H@t jPlC$ CEC@1e[^_ÍvU WVS]u} !jh.6hW1vt#PjPjW uK1e[^_ÉUWVS] }]}$jh@7hSYvEPwSptM)EUu|~z;tC;(u7ސC;uK;)u.wFP7uEP()C;uwj7uUR XE}1e[^_ÉUWVS} u]Ft1NF1ɋUEE􉂸tIG}WtvB E#Bt'SEPEPEPrЉ t@t 1ɋUuŅtOfNEUȍe[^_ÐUj l{@@@ @@@@ÍvU WVSu>su~-tjhVhtj EP^S{ǃ9]tϋE8-uǃEPE@P?t(jhEPhVhEP10E v98t"@ujhVhEP1e[^_ÉUS]{tSBCR&{u]UWVS}E@Gt9E uEAEPE P]^ CtCH@tjPP{teURjFU z(uFPSjW9 {tSB CRz{u勇tv9u@@uCtEPSFU z(uFPW{~%;Cu Gs CC CC{u SߌEP\ƃE P/\e[^_ÍvUWVS}EPLEPUr^\ƃ ^ {t(;Cu GvsMCC {tpcEPUBVx(uVRE PSjW {tSB CR{u勇tv9u@@uC{u S谋EP[ƃ UrZEpxe[^_UVS]u Ct,{u&{u { ts cZS3t/Ft)~u#~u~ tv -ZVe[^ÉU WVS}] uWjShҁVhՁW0}tjh܁EPhށW juhWe[^_ÐUS]jS9|Sh _ SԈP{$]UdS]tS.|EEPjS#{]UpVS]tS{trItvE EChEEԋCX@4EkCXx$~%CURSЃu; EESXB4Ejjhrr9{Eԃ EPVS%ze[^UpVS] t SztrItvE EEԋCX@8EChEkCXx$~%CURSЃu; EESXB4Ejjhrr9zEԃ EPVS%y e[^US]E 8th)v8vjSySh _  S.PՂ$]ÉUE$tÍvU WVS]jv‰׾󥋃e[^_ÍvUS] t5t,t#thQuǃǃSǃSǃ  S]ÍvUVSu]Et5t,t#thtǃ;tE;tSEf;tE;tS Syu/;tSE;tF7ǃ;tSE;t SEEe[^ÉU\WVS]t5t,t#th@hHh/虃Sxq }tNEPCXpvURCXplv EP CXpQvSEPEPEPEPS K tu EEE 8EEEƉEE}fUf fUm]EmEEE @EEE}fUf fUm]EmfEEfEfEEfEfEUfUEfE)fEEE)fEEfE)fEjjjEPs`CXpp fqEfEfEEfEEfEfEEfEfEEE)fEEfE)fEEEfEEfEfEUfUEfE)fE֋EfEEfEfEڋEEfEEfEfEދEE)fEEfE)fEEfEfEEfEƋEfEEfEfE}f}EfE)fE΋EfEfEEfEfE҃jjjEP vEEE @EEEƉEE}fUf fUm]EmEEE 8EEE}fUf fUm]EmfEEfEEffEfEEE)fEUfUfUEE)fEEfEf+EfEjjjEPs`CXpm f:EEfEEfEEfEEffEfEEfEEffEfEEE)fEUfUfUEfEEffEfE֋EEfEEfEfEڋEE)fEEfEf+EfE}f}EffEfEEEfEEfEƋEE)fEEfEfEʋEE)fEEfEf+EfE΋EEfEEfEfE҃jjjEPs`CXpl jjjEP s`CXp{l jjjEP EEE 8EEEƉEE}fUf fUm]EmEEE @EEE}fUf fUm]EmfEEfEfEEfEf+EfEEfEUfUEE)fEEfEjjjEPs`CXpmk fEfEEfEEfEfEEfEfEEfEfEEfEf+EfEUfUEfEEEfEEfE֋EE)fEUfUڋEfEfEEfEf+EfEދEfEfEEfEfEEfEEfEƋEfEUfUʋEE)fEfufu΋EEfEEfE҃jjjEPs`CXp9j jjjEP MEEE @EEEƉEE}fUf fUm]EmEEE 8EEE}fUf fUm]EmfEEE)fEEffEfEEfEEfEEfEEfE)fEjjjEPs`CXp#i fvEfEEfEfEEEfEEffEfEEE)fEEffEfEUfUEfEf+EfEEfEEfE֋EfEUfUfUڋEE)fEEffEfEދEEfEEffEfEEfEEfEƋEfEEfEfEʋEfEEfEf+EfEufuUfUfU҃jjjEP s`CXpg jjjEPs`CXpg jjjEPs`CXpg }tEjCXphjCXph j CXphe[^_ÐU|WVS]ك$Pك$Pك$Pك$PhHuVt@dVPJiP`x[^_U,WVSu}^5T"Stt$SEPEPEPEPSvfEfEC fEC"fEEEE؎߆؎}fEf fEm]UmE M)fEEE؎߆؎}fEf fEm]UmEM)fEEE؎߆؎}fUf fUm]Em؉EEEu f"v}fUf fUm]EmfEEE؎߆؎}fMf fMm]Em؉EEEu؋Uf$}fMf fMm]EmUfe[^_ÉUWVSu} ^5T"Srt$SEPEPEPEPSvfEfEC fEC"fEtGdžFU)ЉEEض}fUf fUm]EmftGdžFU)ЉEEض}fUf fUm]EmftAdžF EEض}fUf fUm]EmftAdžF"EEض}fUf fUm]Emfe[^_UVS] ufjEPue‹E8.fEEEEPcuE8+t 8-jEPE@PCeE8.E8-ÃEPE@Pzf]Et_[EPuUfEEP:cuE8+t8-u2jEPE@Pd‹E8.uEE8-ufEe[^ÐUS]PPƒPPRƒ PPRiƒPSRP]ÍvU WVS]jc‰׾X"󥋃;T"tu e[^_ÐU,WVSuU;t^t1PǰP&cP]Z1VF"PF PFPFPV04߆؎}fMf fMm]Um}߇؏}fMf fMm]Em9|߆؎}f}f f}m]UmE߀؈}fMf fMm]Em9߆؎}f}f f}m]UmE߀؈}fMf fMm]Em9߆؎}f}f f}m]UmE߀؈}fMf fMm]Em9ucن}هD@uHنهD@u0نهD@uنهE@t-F"PF PFPFPV V-vUB9FuB 9F tjVV ً}9tN1;^xsGvEPjFt4pYEPEPEPEPEPFt4i0C;^xr1e[^_ÉUWS] t`t2PǰP_PW1S_C"PC PCPCPSrJ{=0=0u { =0=0tjSKS"SC"PC PCPCPS&e[_ÍvUS]U tEfCtEfCtEfC tEfC"RSS]ÍvU,WVS}1;wxsAGtEPjSWEPEPEPEPEPSyh0F;wxre[^_UEP RPRPRPu>ÍvU WVSME txytpqtXY tP Q"t@ A$%PPPPPQge[^_UVSuv58Vfit9tvVSNj[9ue[^ÐUEu @P_ÍvU WVS]jV]‰׾`$󥋃e[^_ÐUpVS]tS_trEtvEw EEԋCX@8EChEQCXx$~"CURshSЃu$ EChECX@4EEԃEPVS'^e[^ÉUpVS]tS^trEtvEw EChEEԋCX@4EQCXx$~"CURshSЃu$ EChECX@4EEԃEPVSC]e[^ÉUSE]Ph kphPC k]USE]Ph$kphPC$k]UWVSUE8u E|:u1e:u J: u .:u hgYU9EPEPEPEPRHiЃ MPU)RU)REPEPQe[^_ÍvU WVS]jY‰׾&󥋃e[^_ÍvUjjjjh hwhEOe jjjjh hEhw-e jh&hhMhEf jjjjh hhEd jjjjht hEhdÉUE ǀǀUS]UB8Ru ShЃjjh$s`CXp=[0uu SS]ÐUVSu]E;t*S_\ts`CXpQw;tSSayvu/;tSu{u|kC|kGhVW=G{tv;v C1kCke[^_U0VSuE]8t0jjhh6hEh׉V =PE E@t5rtf{kqCk{t;CvvkvCk{t;vyC}vk}Ckr{t;vIC[kCkFhEPVE{t;v Cq1kqCke[^ÐU WVS]jD‰׾(󥋃e[^_ÍvUjjhh/hEOQ jjjjh hEh/P jjjjh hhEO jjjjhВ hEhOÍvUS] ǃ4ǃ0SQ$u (uhBǃ(]U WVSu]E;tSP>t2PǰP3CPj:1E;tStE(;(u$;$t%$u(u ǃ(SEe[^_UWS]SFtyuu SWЃSEPEPEPEPSЃ0װHPRE)PEP0s`CXp;e[_ÐUVSu^V/ltXP3؅u닆ptXPd3؅u닆ttXPD3؅udžldžpdžt3e[^U<WVSuV;{vdF"@PF @PD<rGà t&F"PF Pjj`S<E TPPPPPPPT<-D0jd<t5t6jjHPHPjjdST<50T<~-Tdžt0jjF"PF PjjdDS<40DžDž'1,K<S>C@‰F + F"+˅}ۉЅ};}$}Ѕ}Gx,sh<ADžDž'1LV vKC@džF"+sl<@XtX<f+vdPF PD<PDXdž\F F"ؙÉF F" tu/SQjjjjDPP<B0Vl&xtxV PV"P džPpDžt2@ADADIu1;}(V(ЃG;|ލ[^_ÍvUWVS]u S47tFE~FEF E1C EC"ETtKjd<*1WEPEPEPWEPdDT<0@uS$t~t ǃPe[^_ÐUWVSEEu ]<U;tlR[8U;tlEP.U;P,t2PǰP_1P(1S"57k; %|tS#S#Sn tu({pt"xPDUR*U;t SHU;u;t SEP41҉Ѝe[^_ÉU,WVS]<ESj!@p0EEEPVEP7E }WVEPc7pEP - EPWEP2E艃E쉃EEEESE"e[^_ÐU,WVSE<EU@x0E]SWEP6UEuVWEP6 SVUEP-2EUE쉂EEEEe[^_UÍvU WVS}t1t*vvADADFIu19}5[U RW(ЃC9|؍[^_ÐU WVSUE](82Yu=S(D<' E p$p S>v8t62\u#SxD<U'e[^_ÐUVS]u VS&EPv$v S ƒ tEPRSv(tjStuF|t+S:v$v S <V9F F$e[^ÍvUS] u3t*,tSjE @0Sbh]ÍvUS] u3t* tS~lE @$SRiǃ]ÍvU WVS}W|l1t*vvADADFIu19}3[jW(ЃC9|ڍ[^_ÍvUEǀǀǀÉUVS]<~wtZH;t'@PJR@ HPjjjjQjV90jjjjjV9ǃǃǃe[^UEP%ÐUS]S%#S jh<6jjjjh<7ǃǃǃǃǃL]UU} ÍvUVSu):u 7( DŽ0()4V3e[^ÐUVSu):u o7( DŽ0()4V e[^ÐUE<5ÍvUEU MÉUSMU ][USUE M]txP@ B B"[ÐUjuuju uR$UUE |;0}LR !ÍvUELÉUEU MÉUÍvUVS]u S tU ttwjh<44h<$Jjh<3h<$jh<3e[^ÐUUE RÐU WVS]M E111ҍAw[$tv`:vc&vfvktRVjh<, jjWEPh<3 Se[^_ÍvUVSuE 04|4;},44h<O#Ve[^ÐUU tu EÐUS]S)* Tt+C"PC Pjj`T< 4 D<v3S- jh<1h<z" jjjjh<2ǃǃǃǃǃǃ(ǃ\ txt x0u@@xuSijS6]ÐU @WVSEP1;x G\{tEPPU RSau {t$jEPVs$UT< jEPVs$s U<} G;x njURd[^_ÐU @WVSEP$1;x G\{tEPPU RSu {t$jEPVs$UT<&. jEPVs$s U<. G;x njUR[^_ÐU@WVSEPLDž;P Bt~tEPPU RV] E}O~t!jURSv$T< jEPSv$v U< 1f;uDf;D~t51DPPDPPv$ET<+ 1DPPDPPv$v E<*~tJjjURSv$ET< jURSv$ET< jjURSv$v E<x jURSv$v E< ;P -jURcؿ[^_UÍvUEj<%ÐU\WVSEDULMuDžDž}W$1ɍvPPPjjQEP?09t'*2;uQuV u u'MxtSB;Q |1;Q }(YB;Q }B\st~0u;Q |Ys}xtF0 vs׍v<{*E fU% jPRS%M AfE@fBjPRSЉۅٽff f٭۝٭fЉۅٽff f٭۝٭fA E fMfJOIU 9~M } }E O I@E9~M}}Etv0MQu VjjjjWWE<+UM0VRWPUR)[^_ÉUSMU ][UWVSu] <|VA n9tb؉tt5 tV (tjVЫdž(tgtaC@ tPts`|Rpts`|PRj|R^[uDžl^ F"xDpEPEPEPFPFPHR|P$ EPEPEPEPEPEPEPH|RV0E;E|gE9E}]E;E|UxE9E}GudždždžEU)‰tE})l~u%EEEdžt:u%EEEdžtt~C9t~ x9~txlVf EhPpR|Pr}E;HtR@hRu|P3t]CHPC HPjjjjuj|R'0WtPjjjjpRj|PX'0|tHWtRV72|t+Vj WtPV V t V'Vh SP#7 7V ~ptxWD<u=7t!tt57b7H[^_ÐU VS]tEEEE苃E싃ES5&ƍEPEP< <Y#EEEE艃E쉃Et Sh PVi"e[^ÉU WVS}] uj dp@tRtzutBte[^_ÉUVS]u E1ɋtыRt)92u9But BA BtRJe[^ÍvU WVS}] uj p@lRtzutBle[^_ÉUVS]u E1ɋlыRt)92u9But BA BlRe[^ÍvU WVS}] uj p@pRtzutBpe[^_ÉUVS]u E1ɋpыRt)92u9But BA BpRe[^ÍvUWVSuEPEU fUE%E UEUBU\{tjEPEPS& EU p{t9}HPURVE Ps$UT< }HPURVE Ps$s U<a EEU;B @jEPe[^_ÉU WVSUu ,t!HPVS5vCS@EщS>Ee[^_ÍvUÍvUÍvUS]Xtw\t Scjd<FjjC PjdXTuDP<ǃ\]ÐUS]Sǃ\]ÉUS]X\jd<jC PjjdDX</@Tt:jC PjjdTX<0jS]ÐUWVS]uE EEETt8HPVEPEPlT< HPVEPEPlD< e[^_ÍvU WVSUu Lt!HPVSvCS@EщS>Ee[^_ÍvUS]8h<\ ǃS]U WVS]u }SITt;t4C"PjjC PWjdTD<0t;t4jC PC"PjjVdTD< 0ǃWC PWjpD<M C"PVjVpD<' <Ve[^_U WVS]S)jd< TtptgVjjC PC"PjdDT< 0jWC"PjjC PdDT<f ]VjjC PVjdDT<7 0jWC"PjjWdDT< ǃǃe[^_ÍvUS]E tPS詝 ǃ(S]UUtu(|tut PQRUWVS]u щMUrEMHEPhRhES uj"<BEEe[^_U<WVSEULMxǁAGET%GUDG hG$G(GG ;Au;Q uGvAۅ_A ۅ_G@ Ux9P{@0Mx<bPQ GWB0MxDG 1z0uTt B%Gj]SQEP{GG ;Ju;B uW_G)Bۅ_B ۅ_GC(;C@uC,;CDuC ;C8u C$;C<C@C(O_EuC@}C8HEEvC8_ C o _ CDC,O_EuCD}Cto}|i};~a} ~[E ;FQ}|KE;F C}$~=E$;F 5>sM<x} }$Wtu fEPEtO|}CBIyjjE$PM QtWjjjjE<TÃ0} u}MTtq}$WE PMQ}WjjSEdTxQ0}WEPM$Q} WEPMQ}dvTxP.0M$Q} WEPMQjjS}dvxP0tQCSCDЃ |>uv}WEVB(|E|ruDžpM$9p}1M Ix}CBIy|pE$9p|ыM}~E 9Fuz~u~4t(WssjWSMQn SEP vSMQ[sE$PM QEPMQSEP? 9uSMQO{vxi1X[^_UWVS} ]MEux:t|{;Zv} ~pu ;Be|a;J \}$~Vu$;B K:u^E<jhE$PE PQSu}TtTBPVE u E11 vRU߉˃EP:EUR(UÉƋUr]E}$9}}(M Ix}BCIyuEE$9E|ڃ}t URBD1e[^_ÉUWVS}E Mx4>tw]SnqE PURMQEPWU RjjjjjjjjSkPjPSMQl@]DEHULM }u!}u}u} u^]F E I}|6U;V.}~(E;F}|M;N } ~ E ;F ~ >]<`Dž} uETtE(ЉM$QEPPSW U RMQEPURSvW t&M QEPURMQSETW USW7YM$Q]SNjVr(EBEDž‹MIxBIyU 9|݋M~] 9^uz~u~4t(W/ojWSEPj SUR vSMQoE PURMQEPSUR; 9uSMQ wvxi1h[^_U|WVSuEP!tw]S~njjjjjjE PEPEPEPVE PjjShPjPSEPi(E,E0E4E E~tzE 9Fur~u~4t WmjWSEP6i SEPmE PEPEPEPSEP;: 9uSEPuvxux[^_ÉUWVS}u E Mx;{s }]SmVWEPURMQE PjjjjjjjjS\gPjPSUR>h@DHL1vM,UM1vMx;,ǁ,jWRjVQ( x;u;WQjjjVWQPRjM QjEP@uVUR&U|,CFE;0,1[^_ÍvUlWVS} u$EPE PM<N}u}tz(S+kVWEPMQEPMQjjjjjjjjStePjPS]SVf]EMx]<ujVWjSQ 1ɋE;0}p]x;uP{s E CVWPPjEPVWjjjQjMQ|1vA];0|[^_U|WVSEPc} BU<1ۅt#M 9ttu 97uh jmǃAt{ vE<1ۍW U M u  E4Buf1Buf1BUfC ~ɋM UUG9}ЉG} EEE EM} ~}uV]S]ۍD PVEP P VU R S]} ~GEE=:MQ ](uJEPD<u }u](}u}NE@ t4t!u]39}4vU4+UMQfCMQfCM QfCC SuE<tU@@8FEE9|vM |uu]+}E\8U;8~8 M+1FSU4PjEPju<+ t ؉~9|MEE9}Pʁ4]]]vM49} C M@@8C F;u|]1;u}:E@}4UrfCMqfC} wfCF;u|NjE+}WURM4Pu<w]S% fU;8~8uv}419}0vC }wfC}wfC} wfCF 9|Ӆ~!RUR]4PQ<]u jwƃ}t+$)؍9EP/U${uM19}l]4]M}4vU43}7}WfC}WfC} WfCC FU;~F9|1x[^_ÉUWVS]E <It9uu 11;]E;A}}D uf }f U fq u } C;]}6E;A},}:}f_}:}f_2U fZĉ~1;M}uu;}jv4P}fPuf@} fA;M}:E;}-@4BufNB}fOBU fJ[^_ÐUl WVSEE]E]E} DžFUFDž;N^  ҋ}4Af:Af:Af;F|6U<tM 9tvt ] 9uuظ DžF~1EuEtXEu>EuEtEuDž9^ ɋ}:f9:f92 f9|Dž9JۅٝF  ȑۅص]Eu~   È@s$؋FH<vۅ](zٽff f٭ە٭NIP9~ʉۅ ۅۅٽff f٭۝٭Njۅۅٽff f٭۝٭Ë ۅɉ ۅٽff f٭۝٭Sٽff f٭۝٭<f(f(f(9s؃PPPWj jEPO} Dž ;V}lN  ҋ}4:fA:fAfA;F|1[^_ÍvUVSM] EUut tt8=~~-<@t9uu1ctY@Ot t:@@(P~+;8v89vЉ[^ÉUE1ҋ<t9~@uBÉUS]E 1ɋ<t0v9u tBA B<R ыRuӋ]ÉUS]MEʁ~}1ҍD=~}1)ЃEPu S4PPS]ÉUMEʁ~}1ҍD=~}1)ЃEPEP4Pu ÍvUM41vfB@=~QÐUEǀ8ǀ4UWVSu44uN4E4U1ɋUJ ~ t B UA~4[^_U WVS}4E8E4Eu41ۉ1ҋE9u1BBE9 uс0N9t119u1BV9uс~  C~E8[^_UVSu] Vw8e[^ÍvU WVS]u 1S4149tvB Q9u׉e[^_ÍvUVSuV|t]1;4}.)؋xt PV`C;4|ԃdždžj|41;4}v)؋C;4|dže[^ÉUSM;4}%)Ѓ|uB;4|[ÍvUEU +U RP_ÐU WVSuME +E {tB~;4| )ȋ<;tSV^`WSV_e[^_ÍvU WVSuME +E {t{~;4|1)ȋ<;tRSV_tttwtSVH_,Cx{xtCxXtue[^_ÉUVSuU M9uC>6)Ћ)ȍt9t9t̋@xu1[^ÍvUWVSut_]SUjjEPURVjjjjjjjjjSPPjPSMQP@EDUMDžhv~~E 9F0jSVURPڋJ@}ًZD}ۅ^E;B8Rz89EC;E;B</B<9E!E)ۅБٝ|z@}ۅإ|ٝ|E+B<ۅБٝxzD}ۅإxٝxB(؍|ٝ|ۅؽ|ٝ|B ؅|ٝ|B,؍xٝxۅؽxٝxB$؅xٝx hRlExlDٝtD ٝp vtEh}LEٝ|EٝxUB HۅٝtB"HۅٝpE l}uFم|ٽff f٭۝٭U مxbم|صtؑٽff f٭۝٭U مpإxصpٽff f٭۝٭U$E(hlH[^_ÉU WVS}Wu 1uVRE4uEЉE] KU+UUU9~ڋuE402EA;M|G;}|6v1;}},]ЉE+U1;M}EA;M|G;}|EEEEE}fUf fUm]EmƋM] Eu89uEE<9E[^_ÍvULWVSM4EPEX]]u}fEf fEm]um}}`uuuEPEuFu}fUf fUm]]m}}`uu]EPEuCE0ƉE܋E8U0DƉE؉șÉEԋE<|E+Eܙ@EЉ+UԉЙ@Ẽ EEPǛEȃtSVPWUREPUREPURE PURUEȉEUЉU UẺEU܋}ԉuE]E]E]E0vE11}`tuuEPEtu]EPEuWEdPELPEHPEDPE@P$$WRU,RE(PU$RE PUREPUREPU REPUvEdPELPEHPEDPE@P$$WRU,RE(PU$RE PUREPUREPU REPB`}t UR赕e[^_ÐU,WVSE +E},@EEU$+UЙ}0@EE,E0EEPEEU9UEE0EEEEEEEE(EEPjEPϡ}0Ox6]UU܋uNxM,IxUCIyENyEEOy̋UU܋uMIxU܋}EFIyEE9EVUR蒔e[^_ÉU,WVSE8E@]]EEELE$EUH4E4EU,,M}fEf fEm]}m}XuQ1;]PE0MϐU(M}fEf fEm]Um U3C;]P|g1;]P}`EELPUHPEXPΚt8E0U(,M}fEf fEm]UmEЋU3C;]P|EET9Ee[^_ÉULWVS}(E8E@]]EP P赗EȃHƃEPT0U‰UЉE1;]P}gE0XM]E}fMf fMmUEmUԉEEM$EC;]P|EUT9UEELE$EEHEE4MЋE,,M%X]E}fUf fUmUMmEEE̋UJA9~E}ljME]E]E1;]P}3vMԋMf fEEf:fEEC;]P|^EPD}XuK19U DM }fUf fUm]EmM C;]P|g1;]P}_EELPUHPMXQNt7E DU }fMf fMm]EmUC;]P|EЋMT9McEPϐe[^_ÍvU WVSu41;u@}BvE EE UE8E0E$M4Mt#E@"HjjPi UBR6]ScSVtEHUbSVt]KE`S 3VfwUB$gvSVb]C  SVJUBExEU1>t5=w%1t|PC;uΉvRmv|4%@tCύv;c{hu|][<]Ep>@@ƋUJTY\A UB:U)‰@)} u }<_SV"ǃ} u ]{ExSV `UZSVW]]C\vSVWAUBPcvSV ]CTHSV UBX0SVW ]C`vSVR UBdSV: ]ChSVW UBpvSVW ]CtvSgSVW\UBl~S7_]sx\SVW! U@SVW ]$SVb U SVF ]C|St t6SV ƒLU]SO{|vEt`PleUt0V]\!SV^ UC]K@CtjjS~E EE@jPjjUR1e[^_ÉU WVSu }19}vEPt4ދEPC9|e[^_U WVSu}]Eu H$HSFH$ܕGxGdBGBGGv(BfGBG GGSWvvSWF-SWFvSWFvSWFP{SWv nvSWv^vSWvNvSWv>vSWF @$ %SWv\vSWvPvSWvTvSWvXvSWv`vSWvdvSWvhvSWvpvSWvtvS ~Flt~Ttt2HFBGBGB G A+f+v  BGBfG SWvlvS3 FxSWSWSWv|vS t t21ҋMLvBz;uSWRRvZS tt86W X#vSWl u 1e[^_ÉUWVSu}E;td@~PmE@~PM`u UM ]19}fEf fEm]mE}fEf fEm]mEfA}fEf fEm]mE}fEf fEm]mEfBC9u؃~tZjUDP\1ۃ;}#F BFXC;|݋E@FF N@FtVjjV"e[^_ÉU WVSu} M;|1MU9~Љ)˃~uKt)19}vBXA9|[^_UWVSEM ]u}P4@4BBB[^_ÍvUWVEƿܕu vƿu vƿ u vƿ u xƿu \ƿu @ƿu $ƿ1t 1҅u^_UWVEƿu vƿ u vƿu vƿu vƿu xƿu \ƿu @@ƿ u $ƿ' 1t 1҅u^_UWVEƿ2u 1ƿ8u vƿ< u vƿGu xvƿL u XvƿXu 8vƿ]u vƿau vƿdu vƿhu vƿnu vƿu u {ƿ u _ƿ u Cƿu 'ƿ1t u^_ÐUS]u gt~ t0Z|SQv}fUf fUm]Em.TttuFtftSgv1]ÐULWVS] ut tv=w%1t6װH R gE4EgM u u[߰щMUZE؍MԉHEPhRhEuVW8}M8EԃEPEPRQ/Pu<!VE'E1;}}EEUU]vu4AU)y+UAu)Ɖ}A+EA)Ɖ}A)?;E}}ЉEGE;|UЍRU4EԋE M8e[^_ÍvU WVS] uuh޿  tU޿ u =v޿ u  ޿+u 1e[^_ÉUS]u Ot~ t"|]EvS?X]ÐUhEu `t vEÍvUVS]u ut~ t.|'+v]EShOV%a v1e[^ÍvUS]ugt3~ t4F|?E}fUf fUm]Em$Eu uhS` 1]ÐUS]hTS_thSs_uZhSV_u=h'S:_u!hES_t v]ÉUWVEƿu tvƿ u Tvƿu 4vƿ u vƿR u vƿ u vƿ͗u vƿϗu vƿїu tvƿחu Tvƿޗ u 4vƿu vƿ u vƿ u vƿ  u vƿ u vƿ u tvƿ'u Tvƿ, u 4vƿ6 u vƿB u vƿN u vƿX u vƿb u vƿn u wƿy u [ƿu ?ƿܕu #ƿ t ^_ÍvUSM] YHt CDADADtKD(t;(u((u([ÍvUSMyHt QHADBDyDt QDAHBH9(u AD(9(u AH(ADAH(u ǃ[ÍvUWVS} EhP@VFJKx/#t#EPEPEPWEPvFЃ u Ky1([^_UWVS1EUtb͗f@Ep hOVZU r hOVZ EtP4ϗfG@UrhO4VGPZ@E phO4VG5Z@ UtX4ї՗fFG@EphO4VGY@U rhO4VGY@ Et`4חחBfFBFG@UrhO4VGY@E phO4VGnY@ UtwE@ɋU Jݝ4ޗޗBFBFG@$h4VG Y@h4VGX WPjhEPF UtS[U B @EtS[U BEtSv[U BEtSW[U BEtSN U Zh[^_ÐU WVS}7_(V6QtRGtLf{tEf{t>CPG(PCPCPCPG(PdDT<Je[^_ÐUVS]u VSE(u;4)E8uE08ƒu4)jRSƒF B F$BJǃ(zuEE@PRSe[^ÍvUVSu] SVLE(ujs$s Vqt P5e[^ÉUVSu] SVE(ujs$s V%ttxx Pe[^U WVS}] SWD(ujs$s Wƃt)1vhEEt4VE;rލe[^_ÉUVSu] SV8D(ujs$s V]t jPe[^UVSu] SVC(ujs$s Vt jPe[^U WVSu]E PVC(MujE p$p VE11ҋM;4u4 u4u4unv4uRv4u 6v4u@v4 uʀ@M;MHPCPE PRMQe[^_ÐUVS]u VS8B(ujv$v S]ƒtE0uVj Re[^ÐUVSu] SVA(ujs$s Vt Pue[^ÉU WVS}u (EVWA(uEPv$v WÃt/SE8u{t{uv$v Se[^_ÐU WVS}u VWA(ujv$v W8ÃtjjSjjSe[^_ÐU WVSu] (SV@(uWs$s Vt ?uxtxus$s P,e[^_U WVSu] (SVE@(uWs$s Vkt?us$s P$e[^_U WVSu] (SV?(uWs$s Vt ?uxtxus$s P e[^_U WVSu] (SV?(uWs$s Vt)tus$s PY vPKe[^_ÍvU WVS}] SW?(ujs$s W8ƃt2F@S)‰Ѓv#s$s V}<QCF@e[^_ÐU WVS}] SW>(ujs$s Wƃt2F@S)‰Ѓv#s$s VM</QCF@e[^_ÐU WVS}u (EVW>(uURv$v W=ÃC@V)‰ЃvwUt' t Pt7Gv$v Sa2v{t{uv$v Svv$v Su<TPFC@e[^_ÉU WVS}] SWG=(ujs$s Wlƃt2F@S)‰Ѓv#s$s VA<OCF@e[^_ÐU WVS}] (ESW<(ujs$s WƃttF@S)‰ЃveUt t.s$s V*vF ts$s Vs$s V9<OCF@e[^_ÉU WVS]3CCh)C\)CP@)CTD)CX)))H)ChT)ClL)CpP)CtT)Cl)C|t@~0=ǃǃ ǃX ǃl ǃ4 ǃǃǃǃx ǃ ǃ)tNt<􋾔)PA)P.8 ǃe[^_ÉUS]Suu u*tt ;u1]ÐUu[/ÐU,WVSU EMuF~v~lu(^TFTREP/UZTARMQ.uP<H>@@vE@TCM\A v:)@)uF))ȉљÅ@V TƋMqB>ƃ(<K V V [^_ÉU} u8hZjN PVPF)PF )PEPEPEP%0hZjN PVPF)PF )PEPEPEP0[X)t-} u'jjEPEPEP jEPEPEP } tq~d~kFdFdv`EPEP@ 1ۃ;}=vFdPPD)P)PEPEPEPB C;|ƍe[^_ÉU,WVS]U <MDu ( v(PGCv{t {,C$C$]Ce$] Ce$yCCCCEE}fEf fEm]UmCCEE}fMf fMm]EmUEEɉEEC }fEf fEm]UmMC}fMf fMm]EmPRss VWEPYe[^_ÐUS]sPjjp`@Xpn @P>Pnvjj@)P>PVjp`p`@XpP0jV>P@)Pjp`@Xp V>P@)P;PP)@9~QPj@P>Pjjp`@Xpn @P>PnvVj@)P>Pjjp`p`@XpP0jV>Pjjp`@Xp V>P;;L+L>9~QLj@P>Pjjp`@Xpv @P>Pvvjj@P>)PjVp`p`@XpL0j@PVj>)Pp`@Xp @PVj>)P;LL)>9~MLj@P>Pjjp`@Xpv @P>PyjV@P>)Pjjp`p`@XpL0j@PVjjp`@Xp @PVjjS S+e[^_ÍvUWVS}P}}Lu ;uH@ۆPD>ۆLEE}fMf fMm]]m9~Ӆ}1PRSWSVWe[^_ÍvUSMEU ;u ۂHۂD}f]f f]m]EmPRQ]UVS]uZ`Dž`Džd Džh*Džl jPS5Hjhٟ  P:Shx jh< jh;P h8{`Dž`bd jVqu@Dž`9DždjVS5`hTJ PxSht hSh h uF`Dž`9DždjPS5`hY PSht hSh hkH[^ÐU8UfEt!EEMމMjPEÐU8UfEt!EE*MމMjPgEÐU WVS]11UuuSUTuuSt%ƃPPB$P@P>PR UB$P@PB PRHt@@H)ȅ}19P~PЅ9P|HPP} ǃP@PHPTB$PB"P>PRDt>>D)ȅ}19L~LЅ9L|HLL} ǃL>PDLe[^_ÍvUWVSuVSÃVfE f9^ w ؃ fF F E)E1%)EEPV脅F"U)Ѓ9~aƆUujF )ؘP jj uV )1%)f>PƆU džPF 1)؉EEPVԄV )f>1ۃ )E<;E~E vgfff))UHED>;D~D>9DƆTu?UuEPBPRy u jj5j*uF"f+EPjF"f+EPP$ V"f+U1%,ƆT džL1%V")f@V_e[^_ÍvUU MBfABfABfAB fA B fA 1ÍvUVSu] f{ ufC fufC f{"ufC"fufC" } ǃ~ ǃ} ǃ~ ǃjXS% j6j ǃXǃǃǃǃǃ`ǃ\ Szf<SbǃLǃP Sǃǃdǃhǃlǃpǃtǃxǃ|ǃǃǃǃǃj@@ș9~K~`<t9H(};]}]UC;\}'`<t9H(}]`9P(~҉߃t]9SV辏C9~e[^_ÉUS]t_jjjjjp`@Xp @P>PjjS jjjjjs`CXp]ÐUS]Uuu STuu S]U WVS]SƃSǃ f9s w fC UuS )1%)S 1%)1>9PUuC")1);H|+U C")1);HTu#@S")1%)9Tu@S"1%)9Tunuu jj2vj$uC")PjC")PPS")1%1%S")f@SqS$ S SgS S^e[^_ÉU WVSu] [d{dt!CdxTtsTCdpTt։ddžl[`{`t!C`xTtsTC`pTt։h[\pe[^_UWVSE{TEEESEP"EhEEd\;u'sH{LECHECLC\PjSEP^$;u(sH{LECHECLSEPsH{L[`tb;]utY;u*sH{LECHECLC\PjSEP'v;u%sH{LECHECLSEP與sH{Le[^_ÉU WVS} u }}1W\B9|r}}EEP\B9E|UEPVEPW蔫t}]uEI19uC\;uCSC PRSEP;uCSEP~[`tV;]utM19u;]uEC\;uCSC PRSEP賂;uCSEPJ~e[^_ÉUEplhdPU WVS} u}}1W\B9|r}}EEP\B9E|UEPVEPW<t}]uEE19uC\;uCPRSEPv;uCSEPV}[`tR;]utI19u;]uEC\;uCPRSEPev;uCSEP|e[^_ÉU WVSudhplWSVdžddžhdžldžpdže[^_ÍvUVSud;u SVm[`t;hu߅t;u SVHV@e[^ÐUWVSEtxU|EU UEE]UU}[St}uEPSUREPEPVURW5t}EuEEPSUREP tEUUE؋]ESEPUREPkuVURWEPUt.URVEPWUR EPSUREPSVEPWt}UREPUREPtatCPVURvUBd@\PVrdWEP UB\9EMEPE@PUREPGVSWEP脦tyUREPUREPht]t FPSWGd@\PSwdUREP UB\9EDEPjUREp`@VSWEPu UREPUREPܥ9}u9t1t FPSWGd@\PSwdUREP U9Uu E9EUB\9E}EPE@PUREPvEPjUREp`URv;}u9t8tCPVEPWURUBd@\PVrdWEP U9UuE9EtKUB\9E}!EPE@PUREPUREPjUREp`URpe[^_UVSEXu C;HB7s`CXp|xtS0plhdSdtǃxl|ǃ EPv$v S+tXxTt&F F$Siv8t'~4tIxutE|ǃxǃtǃxǃ|ǃF F$Fe[^ÉU,WVSEXE EC;HBEPUr$r SIǃ?u1tE|U苃xE싓U}u-dtl|hxp xE|xtȢt-uxW謢u=t|;v|utWtt|xE}UU܅uEE}u.dthxl|p UtE쉃xU艓|E䉃UREPURVS"tExU|E4tu0dtl|hxpUB B$e[^_ÉUWVSEX} C;HByG )‰Ѕ~ ~4vG +#G$)‰Ѕ G$+-t@S~u(ǃtǃ|ǃxǃG1tXǃdǃhǃlǃpǃtǃxǃ|ǃvEPw$w Sƃtm>th;xu E;tU~uOt|EUUuUEPURVWS0txE|U􉓀e[^_ÉU,WVS}_E EC;HBEPUr$r S]ƋMA4Hw@t<tw;u+Q)‰=wMQEPURW`t;S u#tE|ǃxǃMy4u'dtǃxl|t >u1u xtxEm~_xRt|EuUUuUMQEPURWSdM艋lEhU䉓p SJǃtǃxǃ|ǃMPE uh^hEPU2MQCXpUBEME;GUM$|15.&u:P@R@R @EE}fUf fUm]Em!v@IЉЍPy1@H)‰9~Dž}1WSMjS< @PHWe[^_ÍvU,WVSE@E@;HBE 8EPU r$r MQxƃq~TgUP@M苑LE P +V$PM A$+F(PRFp4QFp蒱1^T>ug~taF8tY߰P"ÿU苂PM A$+F(PLA +F$PvThSJ0E EF{u1{Tt+E PsTu{HC@CD[`ue[^_ÉUWVSuUBXxӃdH5W=9E PEPEPURVE PUREU PËE5WC 5tWC5WC 50WCSEPRu uUE ^>t05WH9t5tW295tW9u U Eu:P@#uۃFPsPluʼn߅tG<1e[^_ÉUWVSEE1XtYTtK][`twTsT uu%ujhËGTCTEC`]F`uuU 1kvE 0P;E]@v{TPUsTPtߋ[` WNuEe[^_U WVS} EE1t<;u.h9h=sJt8t FPp[uƅu 1[7PfNjE1t3;u%h9h=sڙt 8tF[uωe[^_ÐU WVSE UU1t;)uF[uu 1l0PNjE1tC;)u5h*h/s:h4h/s"DF [ue[^_ÐUEÉUS]CXp0ppS q]ÍvUVSutjv0;t!hh330 {ts{ t{ts Sue[^U WVS} uEu$(EX{{Tt4sTEPV׉EtCHC@vCHC@CD}tXt8 tHvt3t9C\PjSVX$SVB\SV*Y SVT[`0e[^_UjuÍvU,WVSM u9~Hy|B1ۋXt.B<;u UIM$R`tB<;uUIME8~Hx|B1ۋXt.Bu1CXp0piSj fS t%?u1W4}t0E8uEMQSgf<S }tEPMQtE1҃}tXv@`t M9H;QXr4:u0GvJK;QXr}t 0v;]r;QXr:t;]sEA<+AX@G;QXEr]ԃ}t G;QX:t,GJ;QX}t0;QX:u;QXr{:uEA=kjhȸÃuhhͽjvE CCs CClC lCEUS$EC(C,C0kC4kC8kCHkCL lC@ lCDlCE H$kkChh5l肄CThh5lgCP vCTCP5,l5kEPEPUREPܛC=vU Rhh肷kCkXt=ltQlx`u=EPEPEPQWVà S5lXPkl=lu X vl@`lluhh蛶jq;CCK CClC lCEEC$EC(C,C0kC4kC8kCHkCL lC@ lCDlCGt$ kkChh5lv|CThh5l[|CP vCTCP5,l5kEPEPEPVӓCuWhh}kC<{XtsX!CXC\{TtsT{Pt sPCTCPe[^_ÐUMA@9AL~A>ALkvQ>A@‰kÉUMU ;k~kjE025kjQPÉUVSu ]=kt!lt | l#=kt}l=l~ l=k kkSVuFlkkkkklke[^ÍvU WVSM} uE9l}VuF~=kEQE)‰kVWQk VWQe[^_ÐUVSu ]=kt-lul{v~t l=k kkSVulkkkkklke[^ÐUVSlB H>=kuM kB,=kuk)vk)ʡk)9~ k) k{; k$}lk)ʉP,Kl@,=+5k klX4xdt@d9X4up,xdtPd9Z4tk);k~k[^ÐUSMkB@9BL~B>BLkvP>@@‰kljE0E 0jQk]U WVSu} U]lj2P5kjV)Élle[^_ÍvU)uZ}uTE>tFvRȦv|4% u?)uG?uǀ?tEU;kuEEMk;Ev }}u$}԰҉ЍD;TB~^TB;TB~TB5TB蜝ǃ=PBt"5PBW5PBQ =PBPBUԃVc}tPMԀ9tHQE0UR5kjMQlM+E@B0 ~lEURMQEPfUUЃ}t]؃EPEPEPEP߰HPS5k_ }u߰#}԰҉ЍD;TB~^TB;TB~TB5TB4ǃ=PBt"5PBW臖5PB =PBPBUԃSRH1Ʌtl vlEUME=l}=lu j膛(f*Cjf+fEPEPEPEP߰HPS5kEUk ;E}u߰&v}԰҉ЍD;TB~^TB;TB~TB5TB蠚ǃ=PBt"5PBW5PBU =PBPBUԃSR负z}tPMԀ9tHQE0UR5kjMQlM+E@B0 ~lEURMQEPfUUfEEMt S蟭lE82}tPUԀ:tHRM1EP5kjURFlM+E@B0 lEe[^_U WVSu}h.h2E pjÃS7U25kjVl0x=ktxTt@xu E ElB@MEk;EvAzdt;RdB4;ku-lWQVS7E05kjV,0t S0lxh6h2U riËlBX4zB@h;h2M qiÃtpS跫lB=,ltZzTtrTVGtAlP,lBV.GlBTBHvl@hAh2E phÃhGST tl@1hKSTtl@ l@t SǪlxztxTt@xu1=ku kl@@Ulxu @, lyAPЉ;k k)ЉA,Cl@,+kkH4xdt @d9H4uvX,xdtPd9J4tl@p+k;k~qkjvlB@;k k)J,DlPR2+k։5kH4xdt@d9H4uX,xdtPd9J4t=ku klle[^_ÉU WVSu} ]w3E05kjV l yto=kufA@UkD;EvLydtFQdB4;ku8 klSMQV3w3E05kjVd0lxMpVuwÅul@P(vl@PK>C@)‰ʃ=ku^kl@,=ku@@)l@@)ѡk)9~ k)k;k$}l k)щH,Kl@,=+5kklX4xdt@d9X4up,xdtHd9Y4tl@@);k~kl@@Ulle[^_ÐUj ƒuh`hvEkBkÍvUSkztBkR莦k؋]ÉU WVSuvP~^CEPmF1Ƀ 9}]KVA9|t W!VFMDN~PF1ɃEH9}vVA9|t WͥVF MD~~ ^$CEP軑F 1Ƀ9}]KvV A9|t Wm~Pp‹F MTvF t‹EF$e[^_U WVSu} t\E 8tT1ۋU :t:\t:'uCB:uҋ} ЍDDPߐÃu`VS6U ЍL:t':\t:'u \A:"u'AB܊BAVT؍e[^_ÉUE=kttt*t+t ,<,$=k=0l=$l= lu0l@ .v=,l~7=0l 0lxt Pl0lpplE0lpp|lE܃ 0lp$p clƃ0lppm 0lppm0lp$p m}ҋ}ˉ))ڃ 0l@xЍD+P0ǡfGhWn hW]URWP hW?MQW2 hW!VW h˥W0l@@PW0lBXx 5kEPMQrEP W3UR' MQV0lBX R0lk~=0lj(ۄ0l}8U P@@@ @@@$@ @kl=,lb~=$l=$l@PBǃ5$lW~ h˥W耉^~F5kURMQVEP0W̗5$l辗^F$lk ~ =$l ~ЃP脃áfCFPS hͥS诈hܥS衈$lk  =,l hhU rTEԃ.ƸEP谖U zЃP谂Eԡ2Uԉ M APRh}W܇E Xx 5kURMQP}W E X UR # v}tkuԸu@EPk5,l5kURMQ} wEP@k0 }tUR誕5kMQ}WE PURi jMQ}WEP~tF=,lt3,lkBjURWMQ5,l}W v~) =,l jEPURMQfj ,l@}8 hhvR¡,lPh hvpR¡,lP hhvNR¡,lP hhv/R¡,lPkP@ T jEPURMQ~tsE* v5k}} jEPURMQQ~tL}k9kkjEPURMQ};k HUkk9}kjMQ}WEP;kY kM ~trk=lul vljURMQ}WcBEPEk jURMQW7j}WEPURjWMQ}W kl 5kEz~trk=lul vljURMQ}WrEPFEk jURMQWgj}WEPURMjWMQ}W=kl 5k EjURMQ}WjEPURWkl 5k\MRjEPURMQUX<k;k~~[)‰;kjMQEPURS~tb[ k)ȣk;k} kk ly lkz tB kR苐[vj|ƒ uBBkB k[kl~-jEPURMQwk8u"p}WEPURNk@MQ}WEPHvjURMQ}WjEPURW X< ~k8u$[ k)ȣk;k} kkkz B kR;k8[=k)ljk;k}zkknj{ǃh#h+vL tPӎG vGk8u [kkG =kkUvjMQ}WEPUXE1Ƀt@EPEPEPEPSE pXRPwEU B$EBX؉E U R$UE @XEU B\9t)މuEE P\)ډUMU B,B(EL)EP)UuE x0t @0fE*EPEPEPEPUREPU r v EPGXp+pU B P>+PH~.REPEPURp`@Xp, E H Q@+QL~5REPA>EALPURp`@Xp EEuGXpoURGXpx EPUREEPEPp`@Xpk U z@zDt jjj jjjjGXp, }u0EPEPEPEPEPURE p uUU E P B>]ZLK11SEEPSEPp`@Xpz FU ;r@|NjE xEjjjjGXpz~ }u0EPEPEPEPUREPU r ktEԉE U B P>UPLJA>AL)ƒREEPREPp`@Xpyh[^_ÉU WVS] }u{u sLsH;{|$;s sHsLVWSEP`v;{}sLsHCHPWSEP{ ;s ~sLsHVC @PSEPs sHsLVWSEPe[^_ÍvU WVS}E P Z8B:B@9BL~ J>JLU B H>@@E @$EU B,r(ƉƉ؅}C)ƋL)E+PU B pGXpf{E pHGXpLl U rLGXpouE x?hZjPPVE)Pp`@Xp {vU zuSjjjjGXp{ PPVE)Pp`@Xp|{aE x~VjjjjGXp{ hZjPPVE)Pp`@XpYpe[^_ÐUWVS}>E)EyELU J$)MPr()ƋZ8rLGXpjSEPVURp`@Xp{t30jjjjGXpz M qHGXpNjV]]SVEPp`@Xp$v0FVSVURp`@Xpue[^_UWVS}u ~IF$EF,F(Et~TtFxu E vEL)UP)EvHGXpxivLGXpr URFۋ@PEPURp`@Xphz EPVBPEBEPURp`@Xp-z F@PEPUREPp`@Xpy FXSURURUPEPp`@XpyF x0 x,tPWFx tO~Tt9vTWu&vTWujW$vjWFxt0tvÃvXW0ЉFt;@ Fx,t@VVCBVCBVC4B44WkF@ F@W‹FP0Vz0t;EEPEEPrrjjp`r0@Xpch0Fx ~Tt{vTWuhvTW^uUvHGXpfEPVBPWEPURp`@Xpwe[^_ÉU WVS}u] ;uC\PjSW[`t9u݅t;uC\PjSWe[^_U WVSu} `fHwY$HC\PjSVDR@EșƋ]\H9~vN~U`<t]9X(}1vBu;\}`<t]9X(ِUu}u 1vuM }uMu`C(EK A@9AL~A>U4qLC P>s(@@ƋK4M@U;\}`|t Dp($مt;t I`t9ut A8q(NEUvM9K4uS B@9BL~B>C(rLvC P>s(@@ƋC4E@U;\}`M|t Dp('vمt;t I`t9ut A8q(N;uJ{$EPEPEPEPC\HPsXs iEC$ 9}9E{E9E|s*;u/{t){$C@9}|T9EOU9U|G9uB]Q;u6M;K$| E9E|9u~߃{`tًC`P8P(M;H$} 9u|9U~[`t E@9C4}]̋u+^$F P<؉֙YEċP\B9|ZEPEPEPEPCPUrXr hEMA$ 9E~Y\K|4EPEPEPEPCPuvXv nhEF$ ;ENjECEče[^_ÉU WVSE8u;hnaUEE-U E0}}ЍxU E;|Y؅}ÁS`ƃtJU2VE0jU2tE0U GPU PEPvjU :e[^_ÐULWVS] uu 1EPURVSYtu]EUUE]uE1u;uUUȍv~>uu;uuUVXVXUtD^$+] ؙ}Å}119}*UUԍEEh+UREPUR&G9|EPEPEPUR 1!>uh`EPEPEPv`;uE~>;uu UVXVXU;uuUVXUEUUߋUtE^$+] ؙ}Å}119}+UU؍EEАh+UREPEP>G9|UREPEPEP!;uu'EߋU>uh`EPEPEPEe[^_ÉUlWVS]uu 1aEPURVSEtu]܋EUUE]uEE}uZExdt@d8t @4U;B4t>}`t1;}t?ut#?uExdt@d8u Ev1E]߅;]JUUEEu `?uotIG$+E$} Ãy1ۉ]19}-UUEEvh+UREPURF9|1hbEPEPEPE?;}uUWXU vGXE؅tH_$+]$ؙ} Å}1ۉ]19}+UUEEh+UREPURF9|EPEPEPUR1?uEPEPEPh`UREPEP G U;u*eG U;u=RG U;u+>G U;u-*G U;u~G U; u.tH1ҋEt8t B;U~@uuEPEPEP h`UREPEP }tuOoE{`a;}PF?uptJ_$+]$ؙ} Ãy1ۉ]19},UUčEEh+UREPEPfF9|hbEPEPEPHEv?;}uUWXU vGXE;}uUWXUEЋEЊEϋUtI_$+]$ؙ} Å}1ۉ]19},UUȍEEh+UREPEPF9|UREPEPEP;} EϋUЈ? uEPEPEPch`EPEPEPM G U;u*fG U;u=RG U;u+>G U;u-*G U;u~G U; u.tH1ҋEt8t B;U~@uuEPEPEPh`EPEPEP }tulE}uEPEPEPMC U;u*fC U;u=RC U;u+>C U;u-*C U;u~C U; u.tH1ҋEt8t B;U~@uh`EPEPEPuEPEPEP }tukEEe[^_ÐUWVSEEE1] ; t ;t;u-{tMy EEEE;u#{t Oy1GEE}t>;u9C tn8tiuVPBU9U~MMtE8u>t8;u3C t,8t'uVPU9U~MMt8u܋[U@0tP;>0tH;?0t@{Xtj hsXe^t!Cp0FXpOC@0[`ue[^ÍvUWVS]EPU RSdD(x=(Eu319}@lvv4F9|Wh@lM QSb(EE]]19}iUBEJMZ ]vEl+MGl+EIl+U;M}M@l]tF9|EU@@lD ]fCD fCD fC*U@xM<u (Ee[^_UU| Hx}ÐU0u4CXp$shjj(h`Dp`@Xpa>0 }(=>0CXp$shj j(hDp`@Xpa>0 CXp$j*j(p`@Xpbƃ shCXpOj*j(jjV@Xp;`0jjj j(jjV5>0@Xp P0j jjj(jjV5>0@XpO05>0@XpNH5>0>0e[^UE l>0h>0p>0t>0(x>0|>0>0>0>0>0>0<t`>0t>0>0>0>0(>0*>0>0>0>0>0>0>0ÍvUU=?0u1BXp$rhj@j@h`Bp`@XpR_?0?0ÉU>0>0>0>0@>0@>0?0?0?0 ?0?0>0UlWVSUBXHt( _EЍEPEPjMAXpIËs { u/EUBXHT8UD4EESRM APKEE Eȉ‹] ;CvM A fEMȋ] C$fEC(fEEFwȋU}u^MȋEf%XEf%ËEf%É] E] )؋U*vEPMAXp0p(MȋE]EȋUȋE ;P}u5U zu,M;A}A@v]@Cu ^^tSAJEu 11E P,M}C9suAB9rMEUE ;PEu] ;s9v9@v@9w 1E pU] CH9EЉUąt)A] CH9Et [ }ttU B\}ttE XvD AE]U ;ZIEEu ;F"E9]}uABE9]|E PUBXp$M qq]Spƃ S\UBXp$M qqp`@Xp[Ã0tuFVFDЃtS]CXpBu F@F@EP06U rrjjjjVMSAXpB[0VFDЃuV[؍e[^_ÐUVSutYvC{ts[{ ts {[{tsg[S[[ue[^ÐUVSU] utS>u6}u0F u V[68uv [VZ:u2vsC؍e[^ÍvUSE] u1> 8 u1@ : uȅ}A AB:t: u؉ [ÐUVSutYv`C`{XtsXWZ{TtsTCZ{PtsP/ZS#Zue[^ÐUME Ut,9uB`@dP`Bd@`@`ÉUS] PEuh`hJjVv19}B9|UvJ4|uTR`t9Z4~]ÐUS]M utZuuIttJ9u E9E|5t;uE ;>uڊE}P:ǃuhHh?E떍vEPW'5EW ?/u)FGPBFF ~$FW~F FF Fe[^_ÐUWVS}tu>><VvR^B |4%u<~!t6~/VvR!B |4%t~EPV-Ãth; t;u*{t${tsSMSGM@{ts/M{tsMSMF>E 0;utcE}P8Ãt!EPSP3EShh=E1e[^_ÍvUWVS] Euu'1'hvhvEE]1;t|?uSuMމ]؀8t EE8uP8ǃwVWY24t ? t?uuEPSEPS?ƃu";]tqhht5vRx>v|4%@uF>ůEh!St Oh#Svt /h)SVt h,S6t h.St h0St h3St h:St oh?St OhDSvt /hHSVt !hLS6t "hQSt $hXSt h[St h^St ohaSt OhdSvt /hgSVt hjS6t hrSt hvSt h~St hSt ohSt OhSvt /hSVt hS6t hSt hSt hSt hSt ohSt OhSvt #/hSVt hS6t 'hSt )hĬSt (hǬSt hˬSt*rhҬSt+Vh٬S~t%:h߬Sbt,hSF¸t&Ue[^ÉUWVS}EEvR8v|4%@tCύvE vvRl8v|4%@u;=t ;tCŐ;u U1m1vR8v|4%@u;=u ;=uCuDUjw/ƃuhh|41"f;"uEC]}t;"tM;tHC;"tB;u;vvR`7v|4%@u ;tCʉ}t;tBU}P.ƃu"hh3UE1"URV(E}tCUe[^_UWVSUE uuj&.ǰЍDE8tdEPEPEPxËEUVu tEUt"EUt SAE8u1e[^_ÐUWVSu }jEPh@EPhMEPhWEPhcEPhEP*0jhnu1]EMEUB>R@jQh*ShEP=e[^_ÐU WVSjShpWh~u"* ~6@KWz@e[^_ÉUu _@ÐUVSu] jEPhS)jEPhV) juhSu>EEUUMĉM 1;]}T ;UFŰE؅t)8u E}tv(uE؃ ;UE؉C;]|}OvjEPh6&}t+E؀8u E}tv(u<E؃UE؉U<tN8uF=vjEPh6&}u OMvUF  EGvMv0t ;}}UE UEe[^_UWVSUE pEBEBEB EBEDžtDžxxPtPRpƍFEPX(E EPC(E1Ƀ9}&vUtUxA9|݃ttt;xtx;}toE8tgǰЃP'‹EMQE4 " hE4,hE4, (vj^'‹EEfuh|S5߰P'‹E SE4i!F}toM9tgϰЃP&‹EMQE4!! hE4+hE4+ (vjv&‹EEfuh|S4߰P+&‹E SE4 EPpQ+X[^_ÐU0VSU 2EBEBEB EBE]EPEPRESVI+e[^ÉUWVSu EjEPhUR"}ujjhEP6v~u"U1t vG[0u}vFV)‰U~u EU[0t C;Fu[01؅tU9us@0t U9up1_v{uRE9tK{tEtAVs2u.jEPh3!}tjjh35G[0t;}|e[^_ÍvU WVS} u1t @R0uAq)ƃyu R0t B;AuR01ztzu@R0t9|uuWue[^_UE@;EuEUPǃ1;U} B;U|S?/E2}P9UEP4EFuVuƃ >W}PUtt08t)8\uXSV؃ߐ8'u"@Ӑe[^ÐU WVS}u u /vD(1ۃ>tW4h%t݃<ue[^_ÉU WVSE1ۋE9E}U <t 8tEC;]|}E PƃE1ۋE9EU <8E<P2UE <PUD <tu1IvE4U4PE 4Ut;E C;]REe[^_ÉUWVSEt"U9Stv[0tM9KuIƅh0h5] Sh;h5S Zƿ@ DžhIh5Su+jOfQBhRh5M QDDžEDžUt,Dž Dž$ƅS#)DŽ(έFVRM5Sp&ƃ ZuLDž hIh5E PTuj1axDžhIh5U Ru+j%OfQAhRh5] SÃt,PURMQ2<uS'1ۃDžEDžUt,Dž Dž$ƅSA'DŽ(έFVRM5S$ƃ jV.V EPh4 hV>gDžhIh5U R@t8u7j nnBABAB A Dž]DžEtDž $VPM5~SN#ƃ jVVu EPVUR{DžhIh5M Qt8u+jDfCDžEDžUtDž $VP]5~P"ƃ jVVE URVSDžhIh5M QDž]DžEtDž $VPM5~ @Džhh5E PÃtP޿~u Dž!t-޿u Džt S"Džhh5U RÃt6SI ~u DžS"1hh5M QHÃt$u DžSZ"u DžDžhIh5] Shh5Sà PSt S!PP;~  DžfDžDžEDžUjSM5(Pƃ jSV5h1ۃ CPhQTDžjRP5R&0PTVhH hQ u&jPhPhV <HP4f;vf9tv41bu\j<t14<PPv1PhVBuu C;]jPhVQu tS  uV~MR􋍘9P 2QP Pt 1ۃ ;}Q<t04<Pd P1C;|1;}R<t04<P P?1C;|QSDžEDžUDž XDž$ jSM5̺hDžŮDž jSW5Sfƃ Vjh hV& jjPV ~[~hh 1vC;}-24u׃SV!;~ jPhԮPhPhPhVP0jPhB>R@Sh*WS 1;}􋕄4cC;|ヽt 􋍄Q;] ߮ DžhIh5] SfDžDžhh5Sà tS.fS hh5E PIÃtSSd DžUDžMDž Dž$tTS߰P9 Pp@PRp􋅰@PF DŽ(DŽ(FtuЍX~9}CCPƒ19} *@9|DŽ($v~ DŽ((FVPM5{Sƃ ~Ph4 hV hPV hPV jf1%?% $DžDž||hh5U R`Ãuwh.h5M QAÃtSǃS` h3h5] S ÃS|S" xPSƃS u6k|)~ 6M|v<ǃ VhIh5E PSP(DžUDžMDž Dž$ tDž(,VPE5{Rƃ }P|PVYjV V hh5M QVÃPS\ƃ t Sn6Džu6t<Džt.Dž6tvx VOhIh5] S Džhh5SjÃtSS DžEDžUtQQϰPnPpRQ p􋝰SpFFpLtFFp FDŽ(FVR]5{Pƃ ~pRh4 hV@hPVf jDžMDž]Dž Dž$tDž(,VPU5{Qƃ x}PtPVjV% VjV V t􋝼StDDžDž*jPVRfDžfDžPSPPPURMQ]SPVURMQdEC US;tP3uDžMDžUjP3, 3o؍X[^_ÉUU zt!Bx-u8t@-jB0ÐUpVS]1tSDSEPEPEPEPSЃ t8t EЁEEEEE܃EPVSe[^UEu PuÍvU WVS]j‰׾J󥋃e[^_ÍvUS] ǃSt_@tSSEPEPEPEPSЃ jEQBPh*EQBPhS ]ÍvUS]Smtut[8tPSEPEPEPEPSЃ EPEPEPEPs`CXp% uu S!Ћ]UVS]u9u;V;VEPEPEPEPVЋ Ct.NESBPESBPjjj VЃ xt8Vt(jpEPEPjv`FXpe[^ÍvUS]uu S!ЃSEPEPEPEPSЃ0t.xt"jpEPEPjs`CXpl]ÐUdS]0t0SChE E@EEPh @S04t4SQChE E@EEPh @S14]ÉUdS]8t8SChEjjh@JCXppEE EPh S8]ÐUVSudž(fdž<dž(ˀ9tD; u7(,)PQvK<9~f<C;u,)PQ?<9~f<PLPH(ff<ff>e[^ÐU WVS]j‰׾|L󥋃;xLtu e[^_ÐUWS]} t1WPNP ǃSAS| tISEPEPEPEPSЃ jEPEPEPEPs`CXple[_ÐU WS}]EECh;Ght SI;t2,, tE;tS?tE ; uCh;GhtStE9u9tEC':G't tE ; u$;$t tE;tXt2PǰP[P1E}SIEtpSEPEPEPEPSC <+MC"f>f+E f;K uf;C"t#S%PPjjj SEEe[_ÉUWS] tf+E K%PRjjj SЍe[_ÍvUUM~Xt%D2(t tvED2,]D1PE6uϋE9E}@EEЋEEԋEE؋EEEE]čUE؉BE+BEE}KE]Eu>E}fUf fUm]EmEEEEEċEEȋEEEEE]EEEEEp\EP(UE~X{}t] 3} 7UD2PD2H1;]EEU|}xFHtȱv};:EaUÈ@sEAE@tm|I}t:|<|"}f}f f}m]Em$}fUf fUm]Em1tx:)EC;]6؃}؍NH}ЋEH] M~XuVuE6q1ҋEH}u;ECEC }u$vhvtvduu3FXppCCC CCe[^UE xtpE@XpÍvUpVSu EEEFx@EFhEFtE]ShR@PQvSw`GXp< vvGx@>FPv w`GXpn+vvGx@>FPv w`GXpAe[^_ÐUVS]u K +N ~u;u]SxB>R@PQvv s`CXp vvCx@>FPv s`CXp軽[SxB>R@PQvv s`CXp, vvCx@>FPv s`CXp^e[^ÍvU,WVS]UE EMy t9tvE8tCxH>M@@E+ENM‰UtvE9F ~"F +UMщEUUME+F ȉEEEF U‰U}1MMEEEEȉENjUEP UPHMfHE8|aU ;|;~%;|;~M ;}/;~'WUPM 1Ps`CXp }E;|{;sU:|"WMQW2s`CXp t5~t/EPURv vjjs`vCXp0MQS8UEEM MQװHPRsx-‹E$E(Ue[^_ÉU,WVS}]uU EE҉UEEE EEPEPEPEPVEPSEPWEE0E; ~ Eƃ{ t%;t uuVEPs EPW=ƃ [(ee[^_ÍvU,WVSu]E ENxA>Q@Љ)‰]A>Q@ÉE䋖 Udždž E苖UEE܉EEPEPEPEPWURSEPVEE0E; ~ Eǃ{ t%;t uuWURs EPVǃ [(jlj}tU9u E; t V6e[^_ÉUS]s`CXpC"PjjSn]ÐUM y$tQ$A(B(y(t=Q(A$B$2ytQA(B vQ(Ey(t A(@$ÉU WVS}u t=~ tv WF ^(vRVIރ uče[^_UME UBB$B(t#x t@ x(t5@(x(u*P 5vt#x(t v@(x(uP(B$ vU WVS} u^(VWuiF(^(tv~v(~(uF(tp$e[^_ÉU WVS}] u{ t;tv;tGxP>@@…t9Q ~Q 9u|29E ENƃ{ t/;t*EPEPVs WYƃ E8t[(Ue[^_ÍvU WVS}Ev{ t;tv;tGxP>@@…t9Q ~Q 9u | 29E Eƃ{ t;tEPE PVs Wƃ [(t }gEe[^_U WVS}] u;]u E{ t;tv;tGxP>@@…t9Q ~Q ƃ{ t';t"EPEPVs Wcƃ E8u [(ge[^_ÐU WVS}E;] { t;tv;tGxP>@@…t9Q ~Q ƃ{ t%;t EPE PVs Wƃ }u[(t ;] t;] t1ƍe[^_ÉUS]S!t@t S]ÍvUEƀ@ÐUEƀ@PÐU WVS}Ӎsj0MǃSBà EPSp_wE GGG(G$G WPEP2 EPe[^_ÐU WVS] s9}ЍxP謹ƃ EPVڰs{EPe[^_UVSu] { ts V@C SVs豴 S襴VXe[^UVSu] { ts VC Ve[^ÐU WVS]u }VSHVWS Se[^_US]U z u1&B B PuS!S]ÉUUE pp~U WVSE x$t @$x$uƋVU~(t @(Gx(uPÉ3~(tvF(Gv(~(uujWSH@$1Ƀ9s'wv9s DB(t DB$A9rߋD@(}t UB USEPpe[^_ÍvUh u uÐUUE Mt@ t'QPRtQRUUE t@ t%PR{tR`ÐUVS] ut2{$t"[${$uVst[(u1e[^ÍvUVSE] ut{ t[ 6ut!v 1Vs0t[(u1e[^ÐUVS]u jjSjjVS Se[^ÍvUS]jjSaS]ÍvUS]jjS}S]ÍvUE t PuGÐU WVSu }}tjjEP+}$>t?vjj6EPI>u 19}jj4EP$C9|EPe[^_UEÉUu uÐU WVS}u G@8/t fGpVt;_ },vhVVGpVDC ;_ |׍e[^_ÍvU WVS]} t*WshVVW[ uݍ[^_ÐUS] SSd Af{"%Pf{ %PS]U,WVS}t v} uPG"PG PjjQw`GXp1ۃ E ;SW& C;|U rZBEB UUUPEPSVQw`GXp EPEPSVW EPEPUREPW H ;E~EEH;E~EEu9%v];]VSW C;]~F;u~ލe[^_ÉU WVS}U u tBG fEtB G"fEut?EPEP%P%PW€ EfFEfF u1ve[^_ÍvUUB fEB"fEEPEPjjRZUVS]uEE;u2Ch;Fhu*;u;u;t\0"  VE C':F'uC(:F(tE;th`S;u;u;tSUVEE ;t1tTC>F 9C uF9u8;u*:u;u;tEEf;thWff;th)f}t(f~"%Pf~ %PVESAt Ev1e[^ÍvUVSut;1;} tFC;|,tdždždždže[^ÍvU WVSEEu UǂEuN}u ǀ1U:t FE<uUEuǀUPkU1;}nUt <uE4<PPmCCFU;|Euǀǀ)UP诩UǂEǀǀe[^_ÐUlWVS]sXFEEChE@E}Wh @S:ChEWh @SEE Wh @SEEWh @SԭUChEE sdPRjjhTvEP+EЃ Wh ES膭e[^_UWVS]E EEEC fEC"fEtbuY1;}OTװHPR.X@;}F;|EPEPEPEPS tEPEPSe[^_Ufftd}u ǁH@fEtt}tj}uǁvH@ffutf1f%}H@f1ff}tfEEUf1f%}H@f[^_UjjusÐUS]EPEPu StuuS]ÉU,WVSu} ]VͫEPSWVE܃EPEPEPEPSWV0}ut vvkEE~'t8u*Ext7v&Ext UuuuuPv`FXp }B>R@D9~f]싆@>EE)ЉEExHPUrEPSURv`FXp覛e[^_ÉUVSM]EƋE0E ֙ [^ÉUWVSUM]u} EE [^_ÉUVSM] u|R;}J|F;}>t  ЋU;}1[^ÉU WVS]u} |U E;|1O}t E E щE }щ E [^_ÐUS]U EPEPr$r St SǃEPuuS tU<u ǃEuS]ÉUS]U EPEPr$r Sǃǃ EPuuSE<uU<t RS]US]U EPEPr$r S| EPuuStU<uǃǃuSE]US]U EPEPr$r S EPuuSe<u:U<t+uuSluS]ÍvU,WVSuE1ۋE;}BE䋆EE܍vEE|EC;]|܃EP輞1ۃ;}?th+WtWףC;|ÃEPWFXp蘭W/ EEu EEDEE싆EEPhVe[^_U WVS]} t|;|ǃ1f4>t쉻~tE;u0SF<WSe[^_USMǁ1;}DC;|1(؀8t@C;};uƒQ)]UVS]u ts|o;}gxtX@1;}190t'A;}94uDA;|VSe[^ÍvUVSu1;}&v|t SV=C;|dže[^UMU t|;}Ѐ8u1(xuRQRQÍvUML|uP|T|&TP|DT|D|D|H|UEU |;|1vDÍvUEU |;|1(vЋJEJEEÐU WVS}] uEEW}1E}1EWOEPPW Wġt jjWe[^_U WVS}1;_xsGt46C;_xr郿8tH81ۃ>t;vjjh@jhjhK4hW5@e4覫0C<uȍe[^_UWVSEE8t2jjh`hhhu覓P- E@U@t0PǰPOP膓v1EKEPVrǃt]CPUREU4]1twt>uUPEPEUExt 8w 11UBUvEX|UBX|Ee[^_U WVS}u 1uE>t EE<uUP!1ۃ;]sDE<t/PǰPP"1C;]rUe[^_ÐUVSut'1ۃ>t4 C<uVe[^ÍvU WVS]jf‰׾U󥋃e[^_ÍvUjjjjh0< hhEÐUS] 88S]USE]8;8t)P8N8 S\1]ÐU WVS}M uU]u!t f+O G )‰t't Ef+G"G"U)‰0PPW迨e[^_ÍvU WVS]j‰׾|W󥋃;xWtu e[^_ÐUUJPRÉU,WVS1ۋEfǀfǀEU;PxssMAtU$ĐShG hPqjjhjhjhjh h h5jhh)Ph*PhEPhEPhS5H\h4褚(ShG h~Pڎj0Ph`(хƃ,e[^_ÉUWVSEPEPEPEPEPEPЃ Ut[EfEËUfUfUE EVUUUE)Ѕ~ }) EfEfE\}UfUfUǍEVUUUE)Ѕ~E)fE vfE UfUfUfUjVSEPEPE H jVSEPEPU$& jPEPEPEPE(e[^_ÐUS]C,tS"6PcPSYPh@ S SȈUVSu]:th藈;tNjh)(jh ʖ jh$诖f;tTjPh(肖jPhƹ h jPhƹ$Kf;tjPh(1e[^ÐUE u(u0ÉUS]5YSuh#U Et,U Et]Et]Eu؃h قt9uuh?j( uu jj(7h?juu(Y jjuu (]ÐUdS]0t0S@E E@EEPh @S04t4S‰@E E@EEPh @S蟈4]UdS]8t8Sb@Ejjh ZCXppLEE EPh S-8]ÉUdS]tttSDtDEEv@EEPRS輇t]ÐUpVS]xtxS}trMtvE E@EEԋCX@4ElvCXx$~%CUR@SЃu; E@ESXB4Ejjh Zrr͇Eԃ EPVS蹆xe[^UpVS]|t|SytrMtvE EEԋCX@8E@ElvCXx$~%CUR@SЃu; E@ESXB4Ejjh ZrrɆEԃ EPVS赅|e[^U@VS]u Evh~SEPEPEPEPSEЃ 9F }VE fEكXأ`EtكXأ`]EEPPS讅EU9F |SE fEكX؃`EtكX؃`]EEPPSLE9F$}VE fEك\أdEtك\أd]EEPPSEU9F$|PE fEك\؃dEtك\؃d]EEPPS苄}u!ƃhE+F lE+F$pe[^ÐU(Uht9ƂhEfEقX]ق\]EPPRÍvU@VS]u hvh:|SEPEPEPEPSF fElfEF$fEpfEփ SEPEP\PXPEPEPEPEPSЃ0SEPEPEPEPEPEPSEfEكX]ك\] EPPSe[^ÉU WVS]jV‰׾L\󥋃;H\tbu u u u e[^_ÐU,WVS]u}EPEPEPEPSHLEEE؋`}fUf fUm]EmfEEE؋d}fUf fUm]Emff;HsHf;EvEff;HsHf;EvEfEE)ЉEE؋X}fEf fEm]UmE fEE)ЉEE؋\}fEf fEm]UmEfe[^_ÉU WVS}] uGURURVSWJfJfEJ)‰y1UfEJ)‰Ѕ}1Ufe[^_ÐUVS]uS%.tEVtCXpV|CXp VxCXpSEPEPEPEPSЃ EPEPEPEPts`CXp褋 |xJPLEPEPEPEPS*0tHjtCXp}{j|CXpg{ jxCXpN{Vu SLЍe[^ÐUS] ǃ\ǃXٓdٛ`ƃhSS SoǃxS@ǃ| S.]ÐU WVS}u E PUREPUREPVGXp,W`RRpJzEE09~!U2;E~E E;E~ EE;E jEPUREPV|]+] ~jSURE EPv}$jPEPURVw`GXp 9u}?j؅}؋U)‰P+EPE U9}PEEPw`GXp螆;;u}6j؅}؋U)‰PE)PE ;E}EPVw`GXpae[^_ÐUWVS]u}EPEPEPEPSHLUHf;vH9} 9|f;Hs HEfUHf;vH9} 9|f;Hs HEfEU)ЋM f;U}U9~‹E fEU)ЋMf;U}U9~‹EfEEEEEE$EEEEEE(f;Et%U U)ЉEEE)ЉEEEf;Et(MU)ЉEEE)ЉEEvE e[^_ÐU VSu]ED;Du@;@tǃDSsEJf;JtEL;LtEHf;Ht9EPEPEPEPV Ef;Hr Ef;HsET;TtTTh&wEe[^ÍvUWVSE XUT@XXBt"ZÈ@sZuB XـXٝPT@t.XÈ@s苅TXu TB Xـ\ٝLT@t.XÈ@s苅TXu TB Xـ`ٝHT@t.X È@s苅TX u TB XـdٝDXـ`مHD@u"XـdمDE@XPzt4XQvPtPrPpPQЃ مHX٘`مD٘dمP٘XمL٘\PmzfXPnPlPjPhPXQЃ jvPtPrPpPXp`S4hf`Ej`` `jE`lfClEnS҉S CnE *nƃVVS蝂XQVEPQBDЃ VZtFXـXمPD@u"Xـ\مLE@XPxt4XQ^P\PrPpPQЃ مPX٘XمL٘\PxXP^P\PjPhPXQЃ XPjPhP^P\PrPpPXQЃ T8t-}EEPXPPu([^_ÐUVSu] 5H\V~u h@nfCن\[نd[ نX[ن`[e[^U$S]5H\S~uhmU Et,U Et]Et]Eu؃hYmfEEE]E ]CURSjЋ]ÍvU$S]5H\S}uhlU Et,U Et]Et]Eu؃h@lEfE E]E ]CURSjЋ]ÐU WVS]1u1hC; t;tYtPVx~PDqƃSfG;t; tC;t; u렍ve[^_ÐUh^s\|ÉU WVS}] ǃS4HftB@fB>ff tf"uAjjEPEPSk f uEfF f"uEfF"FV@@ǃǃǃǃǃǃƃǃe[^_ÉUS] C@PsS]ÐUS]E UBRPSЃS8 ]ÍvUu ÐUWVS]]CxEƃ{tjjC PSgSRS fUfS")fUfEEf1st ;}}Vv6mt9P$RҋE)%PE)%P@Pj6ux G;}|URrts`CXpu|e[^_ÐUS]tCS@@ЃjS ]ÉU WVSEEuU;u9HftB@fB>f1^t;~xs'3lt 3G;~xrكjjF"PF PVƆ FhU;BhuFl;Blu;t*EPqtV[ V  F'U:B'tU;tRPjqt;Xp`@Xp)hSH9t V ƆÍe[^_ÉU WVSEUZxr;uF;GtBEPƃF;Gt VSC;Hcu S;URptDt$s`CXpzCjjS@DF;GtjEPS 1e[^_ÍvUS]{u\S/ptLS/rt|f9]r Uf9UsM考EPEPW8b}}MfO ]f_"tr0tu-$G fEG"fEEfEEfEƇjEPEPWQ%M)U])Ӊ)ƒf9Mf9U>_tF UfB$wxNx`3gtGP$PE)%PE)%PfPP3Gr Ny5vF )]fKF )fS F fC 1e[^_ÉU WVSu~tt+ft xt džVFV CS@@ЃSl CX@Es`PuCjjS@DЃ tVktA^xKx&7ku 7tKy܃p`EPgbe[^_ÍvUWVSU }fE~ B fER$fUEwtE;GxEEEE쐃6etgKEf;A~XAQ9E}IEf;A~@AU9E}1;t;Slu t"j6EE;Gxve[^_ÉUVS]sxE8u"hS!uPevu Ct1ɋStA9} ;uE1w!$Iy NA9|1ɋCtCtCtD vt jPe[^U WVS}wxE8u#jW{vtK1ɋStA9} ;uE1w5$ؿIy NA9|1ɋCtCtCtD vPWe[^_UExx~tjPKÐU WVSu^5HcSou>VlPhSDo SV4sP d} tVYfV-huƃv`FXp^FfxubWSjWSl VSwjVSS jWSjVS jS5SI s`CXpq CjjS@DЃVS$} tVV[e[^_UVSu ]5HcScntKSgt5;t-tjSbt jVSOe[^ÉUS]SQS jS:YPSZ PSQZ]ÉUS]SdS|d SjdS[d SId]UWVS}fE%fEEE;EEv_twxNxBv3`t(B@;Eu;tE P3WNyH9Et-jj%EPG PEEPjWs EEfEE;bWtE PW e[^_ÉUWVS]jE PUR6E XUBX@EB`EUuE PhEU RpftEEsR{u9EuxduCCUrhsR{ZCCEEsPUR\CEsE U;u{ts{(tm{0u4jC$PC"EPs,s(jjUREPsURfX0C$PC"EPs,s(jjEPURsEPt]0}tIUt=}HPURC PCEPEPUREPW E U;u jPRpe[^_UUjPB PPjRZÍvU,WVSU}] BX@EB`EuMu U}t,]TRE ]DPR] SQEP]Sg E|}W] SEPSVEP]Sf }GWE @PVEPSW ]S] ]CPEPE PVEPEPf EPCPWPEPEPEP~f EPKSEPS]SEP]S\fe[^_U,WVSU Bxp@fEE;@XHUR`UEfEf}@fEEfEfE@fEfufEf]EfEfufEf]jEPRURQT uU E;%P@PEPPPEPe[^_ÉUi]ÐUWVSEXPU3uPcƋEEUEMfKUBfS"fS{t'EfC(fKfCU+C,fC$tV}tPHPVUR*[EfCUQ>Q@)ЉfC e[^_ÐUWVSE@xEEfEfEE UZtNxe3zXtNHyE;E ~EfEEfE}uUfQEfAUfQf}NyE}u=fE}u1EXtuNx%3Wt HUfQNy݋EfEfEE}uEUfE}t EUfEe[^_ÐUjjjuÉU,WVS}EfEUZtrxNxa3BWtIE 9tBEPj3TQUEB9}ȉMUEB9}fUNyUfEfe[^_ÍvUWVS}fEu8tt)wx_tNx3VttvU~hHA)‰Uf+EfE_twxNx>32Vt'HAE}fQU‹U)fQNye[^_ÉUWVSEfEƋUfUfUEPEPEPEPEP#ǃ Ef;EEfuƍ9}ЉƃEPEPEPPURǃ ~ Ef;EwfuM}~qE9~aEȉEPEPEPSEPuǃ ~Ef;Ev f]vfuM}~UMA9UE fUEf}t EUf}t EUfe[^_UU EuuPRuÐUSU] zxtjEPSRfE1ɉڃ } EfUU } Efȋ]ULWVS]E EPEPEEȍEEP}WSC 9EtuVEPSsMufEf;EsNEf;ErDfEEPWEPEPS VEPS*MujVSMjEPSMe[^_ÐU$S] {t4C0PEPC,PC(PEPEPEPsE@Xp\auC,C(]ÐUdS]ChE@EEhqjEPh(@sdSEQ]ÉUpVS]ދSXJChE@Eu{du@EjjjjjhLcrQbEԉ hqjEPhIhqjEPh@vdVPe[^ÐU WVS]E1u1Tvu tJSj V#t }tEEGS))ÍqǃSVEPS|Ee[^_ÐUpVS]XtXS$UPt7P8t EЁPtPxt @EEEPVSSXe[^ÍvUpVS]\t\STTt7T8t EЁTtTxt @EEEPVSLS\e[^ÍvUVSu] jL%Ph<V^SLtDHPVSe[^US]Lu!jjh<Sv^u DSdS]ÍvUS]Lt!jjh<S:^u HS(S]ÍvU WVS]jP‰׾De󥋃e[^_ÍvUS] ǃXǃ\SS4 Pt PH1ɃTt T@1f9sftjPhxSV]]ÐU WVS}uP;PtVT;TtVL:LtPt PH1ɃTt TP1f9v))ӃPtPHv1ɃTt TP1f9vf9tjPhxVK\vÍe[^_ÍvUS]SSQuu S#ЃSEPEPEPEPSЃ0LPEP+BfEEPEPXCXpXEPEPXCXp[ PppEPEPXs`CXpO\TtzET+BfEEPEP\CXpWEPEP\CXp5[ TppEPEP\s`CXp[]U4SE]8t2jjhhhhu(DPL E@0hEPX{t;w 1(CUE`|C`|]ÐUÉUEd|ÍvUVSP?0u v'ہ'~'\?05?0)tPRR PHtm\?0p?0= ?0tP5 ?0KRPH…t, ?0‰8?0P?0\?0DXX?01e[^UWVS4?0?0L?0=\?0u  \?0?0 ?08?01f]E?=L?0}m L?0} L?0]U L?0M}UU9?0;X?0r 6?0?0MMf8?0 8?02&tEEf@ y ;|vhj@;C y;| thR;;t|29f;|u< y ;|@hj@e;;uh%h4h+hv4]ÐUWS]|װH9rװЍx߃W5|u8=|E 8e[_ÐUVS]u EEjEPh-S,jEPh-V, Vuh<S4Suh<V4e[^ÉUS]hKS)chRS)u OhWS)u .h\Sr)u haSR)u hiS2)u hlS)u hqS(u hvS(u nh|S(u NhS(u .hSr(u hSR(u hS2(u hS(u hS'u hS'uqhS'uUhS'u9hS~'uhSb't1]ÐUSM] UJt9u As1[ÐUu(u$u uuuuu uh00hR-.UWVS]uhv|||||hEPjI t==|~ h"|`P*ƃuh葕1||F\|h EPj tFPFQFTFXV]R 8V`~`u BFP v:uFQEteEEtG:u0Z߰H;E|]߰HER ƒuEFTEFXe[^_ÍvUWVSu E}t==| ~h'v|E|Pǃv1EP Ãu 1u(|EPÃtԃSWEu&E |8|t1}tEP"ƃVW t VSS Ãu}t!||8)t h)}u.|8t$8)u h h'+ e[^_ÉUWVS}jpE1EEPdÃu1OvE u E SVޡ|8t 8|t8)uu j Ee[^_UVSuEPÃu1|B<v?t EvEu?t h3j+t  v*u]EtSj v*u?SjjCPS@0SS3j"PSb+uEtSj f+ucjƃVS SjPjPVo0j PSX Pv?uHSjj{PS,0j gƃVS VSR||<v:?uhM豐1؍e[^ÍvU WVSE||<.?<)%<$ti"<(|v<+v<\|8^uj4|jǃ|8]tg8-u|`|8-uV||8]t8u j-L|XC0F9H9SC9~|v|P||8t 8]sj|8]thiv|EPj:Džu1$EU hvvhv|8u hpjǃ|P| jE |h5|1ÃhhX1fv|~ B<v?uKU u j:|P|QKj?e[^_ÐUU|=|t@@P||ÍvUU=||t|| v|US] EE=||u |.v|B|9v IJ9wECC[ÉUVSEu =|t-vÃSu)ڀ;u)CSe[^ÍvUEt=|t8uu PÉU WVSu} tuh8v~\th~Tt>CFTPS3ÃvXvTS)u̅ttE|~QtWVh\~Pt8SVNuCFPPST3Ãu!SVuCu1e[^_ÉUVS]u 5||C(|ڹ vIC]P!u13|C(e[^ÉUWVS}NWƃ'$v|;|!|8 |8_|G:߰Ѝx~W5|S(=||8PGP1z*|8iPGP1N|,?|V&|<?|V|ʀ>t wv|GPZ|Wxǃ?tE>uVU? ء|EGPxǃ9|bv}t |U8uVuOE|9},&hhu1e[^_ÍvU WVSE1|p<tA <twv<tR<tj߰Ѝx`:uWGC:tOGC;tHPV/u2vGC;t(PV/tvh过1|e[^_ÐUM|tQAu1v9t )ÐUVS]u jBZr =|u | |P|Ѝe[^ÐUE=Hfu DfÍvUS]E =DftTDfHfu1|Rt!:ttPSr BЃHf]ÐUM9 |uA|u7|+v|9Jt R9JuAB9 |u|QS/ÐU WVSE1Ur8t3jjh`hhhEPP >FPuC;tPtUhV1u hVuehVtNhVu4hVthEpURHEބUzt:w 1,UB8=|E@|Ue[^_ÉUVSUE]p:t/jjhhhh2uP|> $|{t;Cv|C|{t;Cv|C|{t;yCv|C|o{t;ACPv|C|7{t; Cv|C|{t;CGv|GC|{t;CSv|SC|{t;veC`w|`C|b{t;v9CiK|iC|6{t;v Cs1|sC|e[^ÐUdS]tS.tEEvEEEPRS]ÉUWVSu} El1;^xsL5liFt4%t*EPEPEPEPWFt4 tEC;^xr}t  wc$fEfENF fEF"f6F ffEfE$fEF"fF ffEF"fEEPEPEPEPV' u E;Etu E;Egu E;E|Yu E;E|K]+]E+EE+EËE;}'FVЄtEE0v1e[^_ÉU WVSuU 1ۋ~;^xs0Ft9t)C;^xs#Ft9uEPFt4u/C;^xr5liW#tGURVjWЍe[^_U WVSuU 1ۋ~;^xsFt9tC;^xsFt9uKxvEPFt4ju,Ky5liWQ#tGURVjWЍe[^_ÍvUVSu^5liS#tCuu jSjVe[^UVS]u E> thtL~t ~t~uu1CURS@XtCSƃe[^ÉUS]E 8 thatCSƃ]ÉUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUUJE PRjRÍvUMEtAURQ@XÐU WVS]j‰׾pi󥋃;liu u u u u u u u e[^_ÐUjjjjhT hhE jjjjh hEh jjjhih hhEÉUS] Cuhf}!‹CtCSC@;ƃǃS]ÍvUWVSu]E{E:t tCSWC@;C':F'uC(:F(u:t5t,5liWGtGURSjWЃf;tE;u;tǃSEEe[^_ÍvUS]U MffS )y1ҋEfS")y1ҋEf[ÉUVS]uStQtVCXptCSЃtjCXp e[^ÉUVSu^Et-F'5liStCURVjSЍe[^ÉU0VS]ft~fEfEK fMfUfEfEfUC"fE)fufEfUfEfE)fEfMfUjEPs`CXpe[^ÉUS]fjPC Pjjs`CXp jC"PPjjs`CXp jC"PPjC )Ps`CXpn jPC PC")Pjs`CXp;]ÉU WVSu} Vt-~'t't~pt~(t~&t ~qt~t1Z1;^xsWFt4u7C;^xr䀾u(7jv`FXpƆFVиe[^_ÉU WVS}W+t'tpt u1Hv1;wxs9Gt5liS;tCSЃuF;wxrȸe[^_ÍvUWVS} uEXE5wuURVPuEPVURuEPVUR5liStCURVWSvw^$fEDfE V ffUF"fE,F fEF"ffEV ffUfEtEPEPEPEPV EPEPEPEPWEP tURue[^_ÉU@VS]uuEPCXp0pVEEEM @Eu +EEEM }fUf fUm]؋EmfEEEEM @Eu +EEEM }fUf fUm]؋EmfEEEEM @Eu +EEEM }fUf fUm]؋EmfEEPCXp0pt';uu&EPEPh8CXp0p u1 UEe[^Uuu 5L5HuiUuu 5T5PuAUS]5liSt$Ctuuuu SЋ]ÐUWVSu EE}Vj WEtI}$tC)SWEPEEPURE PURVEU$EEN)ދ}G 뜍vVWUREEPEPU REPe[^_ÐUWVSu EE}Vj WEtI}$tC)SWEPEEPURE PUREU$EEN)ދ}G 뜍vVWUREEPEPU REPwe[^_ÐUÍvUÍvUÍvUÍvUÉU1ÐU1ÐUÍvUÐUhME UEUt@q vqPjEPRqdQUEu phPÉUEuuuphu PÐUlWVS]} MEU}MEtE@q Eq}u{du8M=^~}1M ERSlEԃRQWSEVjEPEPsdSe[^_ÉUdS]CX{du @8E'}t @4EE dPS(EhqjEPjsdS5]UdS]CX{dt}t @8Evd+E PSEhqjEPjsdS]ÉUpVS]KXʋq{dt}tQChE;B8uB4B8EEjjjjjhjqVOEԃ hqjEPh %d+E PS&EhqjEPjsdS6e[^ÍvU,WVSU] BXHMƋz\BhE;F4t;F8u;d~ )؉É)ٺQ)fUfUfUEPWMQ d~XUEf;Ev E9 vE9~UEf;EvU=cv c1EÉEQE)fUEÉEE)fUEÉEE)fUEEPWEPXtEvdF8F4e[^_ÐU,WVSU M]CXp{\UMEEPWV ]SWVt EPS]SEP e[^_ÍvU,WVSU} BX@ER\U_]UBd+MøQ)wuUBƸQ)}UBǸQ)ǃ}d}9}u9]}]}9~u9]~]}~=E}E )؉Ù}É )ƙ}Ɖ )Ǚ}ǃ}}}1ۅ}1}1f]fuf}EEPUREPEe[^_ÉU,WVSUBX@ER`U}}EU\SE UtVSPE$PUREPa SVURVE$PUREPC SU REPRU REPUR" EPVPU RE PUREP U fUEEfEUfUf]uE)fEfEfE+UfUEfEf]fEUfUjjj}WE$PUREPU fUEfEUfUfEf]EfE+UfUfEfEE)fEf]UfU jjjWE PUREP6e[^_ÉUVSUM BXXR`ރjjhjT%jjhjA>jjjjjhjpV(_~jjhj jjhjRSe[^ÐUE@X@ @]EEtEu UWS0}+4}=@0}P5L}uhhRL}E Pu4}L}PÍCv%4}=L}װЍD4}؍e[_UVS]} u?|D}%j2D}D}؃2D} =D}u =D}M~*|D}D}Rh1e[^ÍvU WVSUE }tu6=j5jj@kPhpv;u1;u ;u ;u ;u ;u ;u ;u ;u~; u n;u ^;u N; u >;u .;u;u;u@H;Pn~@H;Pn}1ۍjڍȍ k`nj;5ju;jt#SvkPh5jje[^_UhÍvU<}<}PPh`hS jjjUVS&1ې4qhC9|e[^ÐUH}D}8}4}0}@}jL}jj<}ÍvUWVS]} h|t-؀;t8 t8 u @8uShK(rtt4h+1ۃ4Xrh C9|4(r4hBthO th\j+hi hhxP}$h hue[^_ÐUhYhL 5<}h6U WVS]} 11ɉڀ:t<v:\uF:}AB:uu(u$StUPSh)IDP~ƃuhhy;tH<v;\u\B);}#\B0B$0B$0BC;uStUPVh-V e[^_UUE !EE5$hGu#EE5$h!EE5$hÍvUuh~US] T}@}9~@}8}@})Puh1]US];8}t8})Ph 8}]ÉUWVS111Dž;ugvUuvtL:\u~#ɋU FF1tv:\ u\~GA } >F19}":} >FB9|눝 AuQt] FF7A U F19}#] FB9|1E9tCtɋU FF*vA ] F19}} >FB9|[^_ÉUVS$1ې4rhC9|e[^ÐU WVSu }}tvPhh 1ۃ 9}t"PUPMPh@+UPM‹ RhNLgfff)Ѝ)‰Ѓ uhTC9ghThVe[^_ÐUVS 1ې4HshC9|}t*1ۍv4pshC9|&1ې4shpC9|e[^ÐU WVSu1E1;M14F$E}u!}t҃jPEC;] }u€}t5U)щ}t҃jP~EG;}} tjjXe[^_ÉU=@~ xEEP}5P}}fUf fUm]EmT}wM(Qu]؃{u;C8H}vE;C4ti1ҋK4M܉؅t9P8~P8@`tu9p4tH}{()Njs$+u$y1T}@}9~=@}EXWVRH6$;]u usXvsXE(Ps UR=ju C @HjC,P?s@V+M(Qs uVC H8@:{`t'C`8t8uC`P8s8)։S,@ PH C @HS,ƒȅ})‰Ps8sHs,{T%Ps s,qED [`t ;]L}e[^_ÐUh|~h~ h~h~ h~hq~ h\~hJ~ h5~h#~ h~h~ h~h~ h~h~ h$~h)~zÐUS]Ejjuu  wn$EPE Ph.hIhXhbSP2EPE PhhIhhbSxP]ÉUS]juu wd$,jjhhIhXhbSP.jjhhIhhbSPO]ÉUWVS}EPEPEp1;usshU)tu@U9s9REM @DREDMM DF;ur}t ure[^_ÉUǃEP ;|~uEPhwV ;;~uEPhlwV;~uEPh wV;~uEPhvV;~uEPhxV;~uEPhyVj;~uEPhxVJz;~uEPhdxV*Z;~uEPhyV :;~uEPhPzV;~uEPh`yV;~uEPhyV;~uEPhuV;~uEPhsVj;~uEPhtVJ};~uEPhuV.a;~uEPh@vVE;~u,W{p~Cp~vEPEPV+}t}tjEPEP}EPjh}EPG4}EG8G@GPGPWu䋆tVV0uEP({t;v9C8O=t~Ct~>W{t;v C1x~Cx~e[^_U WVS}tFE}&1;t 3F~EE 9E|ӃEP_e[^_ÍvUWVS}tzEuZ>t 6)FE1^9sv;t 3G;}r~tvE E 9ErEPe[^_ÍvUXÉUEt@$@(@<@8US]tVCt"{(ts$gC$C(Ct"{8ts8s1;s%<t4C;r݃SvE PM AQPuR1;s&v<t4IC;r݃R.M AA 1ۋ9wE16f8FC;vU JU rrrQ2S t/Ep8pCEE9ErEE E9EUTTABAfBe[^_ÐU,WVS}WuVu LÃuWuuVuà }t W^EP؍e[^_ÐU,WVS} uVW SEP jVWS:ƃ Sb[^_ÐUVSMu 119s)< w!PAC9s< w TP搅t9u E1[^ÉUWVSE81ÃMAMAE@C FB: u t:u݀:t U)r UBӃ1E:t3t/E:t$MAE@C F: t t:uދMqMAE@FC B: u t :u݀:u1UJuvMqEσAUNyVR vGEEU9u:tEtM9uE8t*] vVP3OKuvUB׃EEMM*NyV vGE؋M:ttU9uEMANyV^ vEGEU9u:ttM9uE8uEVPF}11e[^_ÍvUVSu>uF F VF>tFFt:u쀾t[FFm:avt:u VFF/:u" VFF:tN^t/KyS v9tuрtX$t9u V%KyS9tXuQvtE VKySB v9tȃSRZ1e[^ÐUVSu hSuVPS[^ÉU WVS}E?t ?vGځvS |4%@t9tG뾉GGE E EvSg |4%@u9tE9ErMOw8vvS |4%@t.9t#NyV uvS |4%@uF9t;t6E9Es.E E ENyVU랉듍vVSvEe[^_ÍvUWVSDžE8t 8UzAUBځvSv|4%@tU9tB뷍vEpt&9tUBBt 9uEP)Pu vRVPU:bDLvEx8vS |4%@t2U9t$OyW vuu Džj.U9ukPRhƃ#PRVDžFOyW vU9t JuP@PRƃu PVRPV-Ry7DžWSE E1[^_UVS]u ;t9{t3C@P*‰sCPRCC1e[^ÐUlWVS]uE @(߰H~:߰о|uU ShN߰H~j߰о|uEU ShShSU B)+߰ЃPǃu SW2hW PWuWh>vSWhW PWQu>WhShSU B t)E 8vhS>U BuWE WU B1[^_ÍvU WVSUuE @װH~2װо|u RhFװH~^װо|u9RhShhS蚿U Bt$E *hRU Bu E 1[^_ÉUEU BBB BǂǂƂƂǂ ÐUUE P@ÐUUt r5t%.vzt"z(trc ru1ÐU WVS}Dž?fƇƇ LJLJhVWÃjVhIuvhVWÃj_VUƒ))ÉPRhQLJ DžvhVWSÃujVhYmt*MjPh]G,uDžVvhPWÃz v<2tSP42uLJ zu8zzWAzzmzz u.zD ƇWD vW 1[^_ÐUUB.|*Bt t vÐUEU R@)ÐU,WVSE(tD@t>@DEEEBUM]u$E ]1pHuPLU@PEEvjM0QE1;}0]suvE<U,DM)yً]Cu,T)yUB],T)y؍44vEXBBÉ]M,TLD‹E)yƋUtG;}0\h jM0Q]Sl13vE,TMAE9E,LEP+E9U9E,PU RMQot\}u]SFEPvM,]uE$u u,E$1G;}0tIU4vE,LEP+E9|!U9M,T]C+E9}uuVEPLt[;}0tVURM Q]S|e}u Su0VE,PU RMQE}ze[^_ÐUWVS}u,]0hW,EPWE PEP?u EPE PEPuUtCt{DuC tÃ{Ht{Lt{Ptu8u4SV](SE P]SEPuE P]S>E1҃;UsRMЉB;UrEPURMQEP\}tw }t -}t$E"vEvE vEEU9UEEu}~^E}V?uKtEEԃ<uH<tEԐ@<t~<t4w#t)E M9Ms?ttS7uE9Et?ttWUE}O}tTMQEPU RM(QE$PU RMQEPURMQEPURMQ9@u EE]EK}uTvO<tEPURM QE(PU$RM QEPURMQ4EPURMQ@uE]EC}wO<tEPURM QE(PU$RM QEPURMQ4EPURMQ\@uE}ui}t EP}URMDUt,hwPuME UEEEEM9Mp}t EPE؍e[^_ÍvU,WVSuEEEE}t E}t U}tEtxv|(}tUtBvD0E}t UtB D$EEU B P躶E܃u U B P蒶Ãuq}tuE@DЃ}tuE@DЃ}tEP)t S}sjuuURVEU B PEuq}tuE@DЃ}tuE@DЃ}tEPt S}juuUREPEPEPSEPU r rEPVeE0|}UBtzz@tt}tuE@DЃ}tuE@DЃ}tEPt S}juuURv}SEPE p0URWVE tr}tEP@DЃ}tuE@DЃ}tEP4t S$}~juuURavEx$uEPU rr2u Ex,uEPU rr2uY mvEx,uEPU rr2umEvEx, uEPU rr2uvEPU rr2u" }}EPE p0jWVE }tEP@DЃ}tEP@DЃ}tURt S}tjuuEPVܺ }uvSU rr2u] SYuN }E@}t{U B HUB(P2ƃt5]܉1ҋE ;P s}v9tBE ;P rUr$E`@$@(UR%U܋EP$U B UB( EP}tEU}tEUEe[^_ÐUVSUu] wvjPVujjjRu u莱0t:p(P$‹Pxt1P@De[^ÍvUSUM BI1[ÐUSM] C;Ct1Ct t"AvQAQAAQ{uCPQ]ÍvUME @,wO$jQM9v1vA"vQAQAQAAQUWVS]E uƃe +} U "EMJv E" E[ UF)%E" EE;] ~+] UM "%9""% EЈ[^_ÍvULWVSuFEUUF$E]VUEE9E{EU 9UEE؍UUАUUE1ɉEEU؈Amv]^(MNș~F]ӍUEMIx CBIy~t~uVEPURjE}REPH~t~uVUR`]EF(E̋MNș~FUUO| CBIyEEE 9EEU9U7F,EEEE 9EUUԍvUUE}ue1ɋEEUEAmvUV(EF,‹]ӍUE}܃Ix CBIy~uVEPUREPEE܃PEP~uVURs]UV(EF,UO| CBIyEEE 9EEU9Ue[^_ÐUWVSUM B(Er}4{;BuMEE9EMM19sM9ruEE9ErzubEE9EMM19s*E BBB B9ruEM9Mr^EE9EsMMvM19s*E  BBBB9ruEM9Mr[^_ÍvUWVSEU H(MX}xuSEE9E҉UvًE49sEQ9r]EM9MrJEE9Es;҉UًE49sEA9r]EM9Mr[^_ÐUWVSEP(UH]1;}s-ʋu Ήu9suB;UrMG;}r[^_ÍvUWVSUM}B;BtWQEPM QR9B(EBEMM Mm z EE9Evu] 9UEҋM$ƒEҋM$ƒEҋM$ƒEҋM$ƒEҋM$ƒEҋM$ƒEҋM$EˆF9h}t,1;]}!MEt C;]|EEEU9UEM9Mu] 9EU҃EM$҃EM$҃EM$҃EM$҃EM$҃EM$҃EM$E ˆF9d}t,1;]}!MEt C;]|EEEU9U e[^_ÐU|WVSu}1Et ]}tEEEuEPSuVE tv}tpEp$p0E PV膺‰E EPjRV軺ÃEp0jjjjuS7V:@EP@DЃSVa }ty}tsEp$p0E PV ‹EE EPjRV<ÃEp0jjjjuSE0V踹@EP@DЃSVߧEx[^_ÐU WVSu E8t^~ VC9sU9u9u6;^r&FVP6腯u UF E1e[^_UU M}u%z uB B1ÉU,WVSu ]1EEEEEEEt EV t ESUE}tE tP UjEEP`EEPEt'h/ EPEPURSw à ~$u$ht/ EPEPURVB à nv~,uEPEPURV L~,uEPEPURVt 0~, uEPEPURVEPEPURVrÃjuXǃuC}tu辷}tu誷t uW\}\v]R)ЍA9w9MsM}tEPWÃu81҃EPEPuE)PЍPuIà t<}tu}tut uW0EUEBEBEB zEBu螶1e[^_UWVSE @P螢UÃ1%I)1)8{C;u sE=8{U1)ʉUI)M)UFC;u rhUBt1e[^_ÍvU,DWVSDž}tEt P MD0Dž}tE8} P4MIPfuYvPvRQP'#TDžE U9E@PˠÃj%I))8{C;}sV8{)ʡI))GC;}rM EE9"URQPUR菭tPMq4DžE U9v1t(FPFPFPQP0! tP$B3FPFPFPhS{ SAx U9PQ襲PP 1Ȼ[^_ÉUUB(U} t#EVURPC;] rG;}rExu{1;}1;] sWUB(MA A A Ѓ} t#EVURPuC;] rG;}rvo1;}se1;] sWUB(MA A A Ѓ} t#EVURPuC;] rG;}r1e[^_ÉUWVSE@EUrE@$EUExuh1;}1;] sEUB(XMQ Ѓ}t#EVURPuC;] rG;}rb]1;}sS1;] sEUB(XMA Ѓ}t#EVURPuC;] rG;}r1e[^_UWVSE@EUrE@$EU1;}sQ1;] sBUB(؋U}t#EVURPtC;] rG;}r1e[^_ÍvU WVSUB;BtMQEPU RMQwE@EUrMyup1;}1;] sLUB(ЋMك%VURPMуuC;] rG;}r^X1;}sN1;] s@UB(ЋMكVURPMуuC;] rG;}r1e[^_ÐU,WVS] u1EEEttFEFERvtEPPEPEPEPPEPS#}t)EPPEPEPEPPEPUREP0tjjuujjSURǃ }t!jjuujjEPURE VuEPWURà t WGDЃ}tEP‹BDЉ؍e[^_ÐULWVS}EEEEEEEEPÃ'EPEPEPEPEPEPEPEPURÃ0}tEPEP}v}vEPhÃEPEPuu؋URà }tEPEPEPuVuuuuuЋUR; à }v}v V=uR}tEPEPTG}G8PGjRhi謚u=EPjRhr茚uURWu 5WE$U(1[^_ÉU,WVSjE PΕu vU DžE 9evURdE@P 1ۉ;]sXvE8t8uUBMA/vUBHyrvMACG;]r}v.} v(P2MQ!ÃpDžDžƅ<Dž@{ w/װH9u׃SQRZuu~wutLP{ǃvMACG;]r}v.} v(P2MQq ÃEPƅ+thV͑;WV輑hWUR賿ÃuP!ǃHPWtzƅE H9sMQ-E 9ZE1[^_ÉUWVSEE P聋u ,}t},v1҉߉1;]s"v[MGfDž}9&EP踹DžU 91ۍ;]sPvM9t9u}GG*UBHyrF MQCF;]rP} Wh8t\@M 9_}9"BP"RQ W9vDžUR脸DžM 91ۍ;]sPv}?t?uUBB*MAHyq }WCF;]r1ۍC;]sV[U4u;]} 9LE9E$1[^_ÍvUWVSEEPhj E EPEPURÃtJEPvu譙UR EPEPEPºÃAjuhK+Ãt$j uhEuj uhEUDRPEP赎ƃuUR4}vRPv|4%@tCύv)E)؃P轄E)؃P;P6虍un EPӵEPEPUR胹à JjTF1YPvōƒ$VEGEPfEPEPURà juhKÃt j uhdEnuv臗F~Eu }M}uTEPHEUR0uEPURFuFFFF+uٖ~E@PEPq=~E@PURT#}u u蓖EUE U1e[^_ÐUj舂…t EE BÍvU WVS} Ep 1Ҁ?t)A9uЋM119s U\0;t:uރWRxu͉؍e[^_ÍvUWVS}EW UۉVUUUщ)щOP貁uVG 9v9w1];u}%;t0W‹F;u|܃EP01e[^_ÉU WVS]} WSƃ>u5uW}uC;C| SuC1e[^_ÉUS]CUCh赀…u9v9wS 1]ÐU WVS}w 09v;t37V'G e[^_U,WVShuLu1DžE ~PPPPhP u6w*|!| ~v߰PEƃtmGvRq |4%t*vR趒|4C;uBBr PhP7}\R蝊}1[^_ÉUWVSM }u]1ҋE9};8u;pu ;Xu@ B9|1[^_ÐU WVS} 1]9}vs 衑F9|e[^_ÐUWVSEu }fx"ufF"7EPV5phގ 7URV5h軎 f{"u$jP0ffC"11ҍM@~EPj V Vh[^_US];Xu P;Xu Pۇ]ÐU,WVSE fEUfUEEUEEfEfEfUfEEUUBtU{&{qtEC$fC uƍ>f;Evef;}v/f;}vf}}tOEUffEfE}2}u0jEPUREPPEPH}tVC9u UC9t?St{qts`CXp谎EPPS C$fC"f;EvfEEUE;Px}f}f;}Uf9Uf}EfEUǂ.vEfEjEPEPEPEHPUR Ef9EsUf9Uw‹Ef9EsUfUf9}t4EPEPUREPEPEPUvE}UR詁tzUE9Pxup`‹BXpDZEpxXt~Kv3ft/3{txqtp`@XpwNf;}vf;}vf}EUffEEfsUfEfsUfe[^_ÐU WVSu }fEfE ;uht Ff;uVt F f;uDE EUfBEfB > dEf9FWEf9F CDFfF ft ^ v1fFjEPEPjPW Ef;F Ef;FÉff;^v^jEPEPjPWn Ef;F vf;^rf;^tE]jEPEPjEHPW6 Ef;F rՃjEPEPjPWE EfUfBEffB > uFf;EuF f;Eu1e[^_ÍvUUjEPPB"PB PRÍvU@VS]jEPEPC"PC PSh C f;EuC"f;Eu %v1EfEEfEʍvEPEPEPEPS9v t rtJ~jEPEPC"PC PSEf;C Ef;C"svEf;Er*Ef;Er*EPEPEPEPSu8Ef;Et'jEPEPjEPSeEfEʃ *EEfEEPEPSEfEȃF 1e[^ÍvU WVSuU tBf;FtBf;FuF fBuF"fB uF$fB ~ F"fEF$fEBfF B fF"B fF$^StCS@@f~ EfF"EfF$1e[^_ÉUS]SSh]ÍvU{jjh4hhE趄UU ǂ fǂfǂfsffsffz u fB fz"u fB"ÉUE MAQRjju}ÍvU1ÐUhME UEU@EEfvE EEPh\@QwxÐUVS] ރt'EPEPCXpH~u ǃfut fǃ fǃtfǃfC$shSshS Vxƃ ǃe[^ÐUVSuftF"f;F vF ff9v1=~un~n~vn~EEfE]F fCF"S҉S C5~5~S豂fCfEf)Cf)C5~5~Ss ~P5~P~~e[^ÍvUS] u$ƃ Sxt jju S]US] t5ƃ Sxts`CXpEjju S`]ÍvUSE] MU tǀRQSP vRQSP]ÉUVSuE8udž=v8th`rE;t4;t,Pktփ5~3wtGe[^_ÉULWVSEEȋUU1ۍE։C~1<E<عuEU4huuECM;r}]ȃEؐE܋EătjEPUrdEEEEEEjEPMQ5 h5y‹]ȉ@P Mp@vEăt4Uȋ@@Mr]ǃ}teEUȋEܹt+Ӌ@"f;B"wE*B"EQEPEPcUȋM;tuura]ău C UfB C"fB"R6EŰMȋBjRb]ǃ1e[^_ÉUWVS} EE1ۋE;sQuh4su-EEFjVEcTECE;re[^_U\WVSuuEEUEEEtEEEEUEاEEEjPV5{hv ~xv`~tFx\89rO;t=;t5P9gt%5~3stPB9smEPFndže[^_US]jju5~u "b tuShPj]ÍvUUEEMHjPbEÐUWVS}uwShSr ;~u ~N;~u ~:;~u ~&;~u ~;~u~F~ vhTw gF[^_Ujh] w~hgw~ hrv~h{v~ hv~jjhq hAhE"s0jjjhhhhEqÍvUUu ÉUE P fP"fǀƀƀƀÍvULWVSM EU]]f;C uf;S"u fEfUE tEuƆEЉEP]SMQ]u%ߋEȉEPSMQ]‹]ƃ}t Euf}t EMfe[^_ÍvUWVS}EEWxUGtEÅ~@@,+E;E|fEfE]}~zv3NctVpPB fF&R$ҍ E9~fMB"N(B$E9~fM+E;E|fEUffEEfthjjEPPjWG fG"f uUf9W r Ef9G"r}ttWvƇÍe[^_U WVSuFxE~t~[3bt:JtA&fBA(fBA(PA&P3r);E|e[^_ÉUWVSMyG,tr XG,OvEATEAU@TBEPRhhhhQqPjkvGfG&GfG(wt#^VaF fC&V$fG&wt ^V7F"fC(V$fG(G,e[^_UVSE MUƋ]uft'ΉЙtu)[^ÐUWVS}GtEGxE<u1XPB`sG PP@POfE3G"PP@P0fE s G PPS"fP@$ИP‹@$fE)fS"sG"PPS$fP@$ИP‹@$E)fS$ f{"~K"f{$~S$@$PPPEPEP6j +E;EG fG"fe[^_ÐU,WVSuU ^~su u%CjjjStBF fEtB F"fEF 9Eu$CjjjSF fEF"fEEfF EfF":}|ƃSjF"PF PSEfF EfF"ƃEPEPPPjVdu`Ef;r Ef;sGXSjF"PF PSЄt(F fG"F"fG$t G01EfF EfF"e[^_U1ÐUSE HXP fQ"@"fA$A; u AA; u AA0[UVSu]VK;u8B;Au0B;Au(B ;A u B;AuB;AuB;AuB;At=SB;u(C9Fu C 9F uF$f;C$ujjjRƂ1e[^U WVSExxptu~EvSQ\t!Sf{ tC fB"f{"tC"fB$+E9|MQjA"PA PQЍe[^_ÍvUS] MUfAfA  tA9Cu1B 9At[UWVSUBxEBtE} %R`tuu}~lSI[tJ{C"PC PCPCPs`CXp:[ 0tCx@tS@@G0+E;E|e[^_UE UMEUEEPhuhU_jjhThhEhU,WVSEEUt_EPEPEPEPEPEPEPBXph0t(EMfEfEf UB@fB>Mfufǁfǁvj EjƃDUfǂfǂMt )؉PSEPR)PSUR[ƒM9~f^~tUB@fB>Mfj Ssiƃr;߰HPSUR[Mt+߰HPSURQ߰HPSURZ‹M9~xfoEװHMftf%PREPHQMPEP7ZUfe[^_ÐUdS]EChE@EEEPh @SZ]ÍvUlWVS]sX~MShU@EEsdRQjjh$vWgEE EPh ESZe[^_ÉUS]t,K"ЋB) ǃ[ÍvU$S]t=EPEPPPEPEPEPCXpd0uǃǃSG]ÉU WVS] ރu{Tt CTv1/PǰP)WP`NS SM Saf{"uffS"Sf{ u7JBt fC fǃfǃFS@@Ѝe[^_UWVS}]s5~PauUftjWu RFxЃtNt9~)PQPRWV EP,\t U E@>ffEtft]jPPjjUREp`‹BXpDN0t7)PVEPPEPUr`BXp"V+)PVEPPEPUr`BXpeM B@fB>fEwj VcǃeЍxt9PVEPPUREp`‹BXpnUWVEPPEPUr`BXpLfuFjPPPPjjEPUr`BXpLBPPPPjjEPUr`BXpQe[^_ÉUWVSMu }ƒtӋt+r t"4ff))ЉЉf9}ڋEf+ff)ЉUf+ff[^_ÉUS]EPEPC"PC PS S]ÉUWVS}EEU UuEE1ۍEC~1ۋE;sZ4h\uE4h[uE4h*[uECU;ru FTU;tEU:tEU􋂼;tZ;BTt PL;FTt:t.PǰPPP4Hv1E}u%U􋂸;u;u}tVE}UB"Uf;B"u%}uffV"VdUB Uf;B uG}uAɃtfF U􋂴;uBh;Fhu@;BtcEURtREUR_R EUBXpFVu VEU9u}t!EPEPUB"PB PV 1}u$}uEPUÃURvU8te[^_ÍvUS]HJSQ SwQCXpE]ÉUWVS]} rBt fGffW U  uG9Bu1C 9Gt[^_ÐUlWVS]{XGEE@EuVh@SOChEVh@SuO sdshjjhwEP\EE VhES/Oe[^_ÐUWVSE EUU]C fEB"fEuЃTǂu!8t‰<uuQ1;}Gv<HP4M;~F;|EPEPEPEPUR tEPEPEP e[^_ÉU<WVSE UE fEfUEЉP]SMQD:EPEPEf;E%PEf;E%PEPߋ PSMQ0DߋEPEPjjEP t7h h h SQVSMQAZPK E EPEPEPC=h!MQZPJh!EPYPJ[^_US] SB>R@Љf{"%Pf{ %PSǃǃ]ÐUWVSu M1ۀtF)‰ЙEU)‰Й;|RDvU)‰ЙE)‰Й;| H|}}}}E}1U‹E;}[^_ÉU WVSu ~^uSWEP~^ EPSWEPe[^_ÍvU WVSM u]E9|?9;t ؙӉș9|9 1[^_ÐUWVS]uf%U )‰U<HP4oIf%M)PRQEPURs`CXpVe[^_UWVSu ]SHLEt5MEE2vUENj@>E;;u,UVWMQEP vURMt M EVWURMQ;ǃ ];u,EVWURMQ )EPLt U MװHPRURMQEPUr`BXp?e[^_ÍvUWVS}U u/EEMv`FXpSEPEPRW]#SuuWt SWC;];|эe[^_ÐUVSuU ]$E tBF fEtB F"fE}utDEPEP%P}%PV€ EfC EfC u1e[^US]C fEC"fEEPEPjjS) th@!SSPD]ÍvUWVSu}E EUUMt ǁH@}tf}bf@v}tx}tl ǁH@ff}ub)‰Й ǁH@}t{f`v}uY)‰Й ǁH@f[^_ÐUWVSuU EPr$r VWt ;Et VdE<HtPE4FXp;NUEUEBRhVNe[^_ÐUuSÐUVS]U ލEPr$r Su S;Et uS5e[^ÉUlWVS}] EEE;uGh;Chu;tqEPhGXpDuЋGXp68 WCWC WCMQE f;u;t%EB>R@ЋMЉC 9F 9u9uq;uc:t;uF:u8;u*;u;u;tAu!Aȋ]ÐUAjjj jhH :ÉU,WVS}vt SEƃuH[ߍvu<h!h"SHSEPtLPK=VAu V[JN V$EX"A$CF"PPjjQwKڃ |FXH ;9~)߅}1|FXH9~)څ}1ҍEE}EUjPV5VI[^_ÐUEP-}t%}tEP;P~EP;P}PEP9PˆPE;P~PEP;P}PEU@)U9e[^_ÍvUWVS]}%PSЉUE1 Kt9s>P;B~BB;B}BBECt9r)ETtE9EtEPWU RS} tBAt=CtU PJE+EB;B~BB;B}BR)‰EKt9s.@fpPfBƃCt9rҍe[^_ÉU,WVSEEpt‹9x_MGPj6;EjGPUB P6%6@ xMQ )C )C$)‰UP@"C"f%)C$)f%jGP6DjUB"PGP65A xtUQA C f%)C$)‹Mf%‰UQ")C")C$)‰U@xt=EfCEfCw8tEPjCGp`G@Xp;UBt9hMQ0 e[^_US]t/S\8t~jAjSS]ÐU WVSE} u]MUuQRVSWp`@XpBRQSVWp`@XpAe[^_ÉU WVSuFh;%PVЉU^t9sIu @ v@)URWjPE PV Ft9re[^_ÐUWVSE EU%PRЉUEpt‹9x}u Gf;GthE}u(@@)؃URSjPEPb @@)؃URSjPEP:GfG UBt9ie[^_ÐUME w$$P(@,ƒtÍvU WVS]} uǃǃFwGPCtTtLuGPCtDW5u2Uu _Lu Qvu?=vUu -vLu vu vPw`GXp*S"St9s@f@Ct9re[^_ÉU WVS]11U)‰Ut'%Put'%PW+}}Tu\@9~Ƌ@@9}9t)lj@9~Nj@@9}9uAt @pt @xEPE @pSjSoe[^_ÍvUS]jSOS" StPBfBtPBfB]ÍvUWVSuE@EF~tCu ~u ~th@$a)ӁvR3 |4%t)ӁvR'|4Ã6UR?ECtqF@vR&3 |4%tF@84vF@vRf'ǃv|4 CtKSEƀWURPUEjEPWUREPUE#EUPjPEP'uUr`BXp& EPh$'e[^_ÍvU WVS}1_tGx9sKvB; tR+u uvt 1GxGt9re[^_UWVSEXxۃS^,EƃSP,ENjUZt Bx9sZB; t8Bxt/R+t@@v@@UBxBt9r;ut"+EPEP);}t+EPUR :EP&UR&e[^_UWVS}_EbEuu U#L(FVRS5 h$F9‹GP Wh0 hGp.e[^_ÐUpVS]EuVjS,ChEVjSq,E 3ChEE VhS?,e[^ÉUfu$jEPs\CXpr#u fǃEft EEPVSe[^ÉUdS]tSEEPjS]UdS]tSFtR;Chu3ChEEft EEPRS ǃ]ÐU VSMU UY )f+q")f+t}tf8}ff9~ff:}ff92~f2}t|߁ܱh&}fUf fUm]Emf߁ܱ}fUf fUm]EmffǁЊfǁЊ[^ÉUVSUfC99fffffAfA)fAfffffA)ffAfAƂƂ[^ÐUS]U} t^߃܋}fMf fMm]Emf߃܋}fMf fMm]Emffuffuff;vf;v%EE܋}fMf fMm]Emf‰EE܋}fUf fUm]EmfujSS]ÉUSU fu B ffu B"fB 91B"91B EEMEEEݚB"EE]EEEݚjjR]UWVSM} лQfЉƋUf2[^_ÉUVSEM ]uw"$p&vQ )‰I$)v1[^ÉU VS]uEE?E;|7vvRPv|4%@tC;}̀;+t;-uE;-u &]C;u 1ڀ;|.=w%1u;.uC;}ӃRVEEM];|6vRv|4%@tC;}̀;t(e[^_ÉU|WVSE]EU8tjCXp'EPC )PPE07ǍEPC")PPUrƒ }t ǀ}t €}t"E}UčEPjEPEP.ƃffEPju URƃx[^_ÍvU VSuujVffS߃ܳ&}fUf fUm]Emf߃ܳ}fUf fUm]Emfuj)‰f9~ff} fǃ)‰f9~ff} fǃf;uf;tijjViEfEfEfEfEfEfEEPV e[^ÉUWVSu]E8vfh&3,uPh&suTh&su7h&stjFXp 1v:tE&UBjRVe[^_ÐU WVS}1_t;wxs#3&tvF;wxr1e[^_ÐU$S]SƒtQtME EBfEBfEC fEC"fEB fEB"fEEPS" ]ÐUWVS]U MuzEf8zEf8B fB"U ft9t A}ft AUftAft A M ff;C sC f} f;C"sC"fS )‹M [")É؋}f9}fUf9}fMf9~f}f?~f[^_ÍvUSUM ]C fz ufB fz"ufB",SQR@ Ћ]ÐUVSuVÃtAEPEPEPEPjSV jEPEPEPEPS j0Ve[^U WVS} ]uV…t? B fCB"fC  uC9Gu1vF 9Cte[^_ÍvUWVS]CEPEE9t l}u E tfx t UfB EE PEPEPEPM QEPUR^ M tAUf;BtEM tAUf;BtEM tAUf;BtEM tA Uf;B tE}u vM 91ҋMAMf;At BAMfAMAMf;AtAMfAMA Mf;AtAMfA MA"Mf;A tA MfA"t REP1e[^_ÐU~tu'vh)SNSFt ~tuGtFt[^_UWVS]} sXFESCuB{xu$sdshsDjjh̙vURCx CHECxCHUB'S1EP7jjS0SuUSHe[^_UWVS]{|uS|VװщMEUEBRhc)VhESK t}t7ECt/jjh)h*h*h)*SPge[^_ÍvU WVSu]ESEV 8EtFV@tЃCt;GttE;u;uC|;G|tVE}t$V|twtv`FXp1e[^_ÍvU WVS]sX~S9S5t6{HtsHs`CXptUsDs`CXp={xu!sdshsDjjhΙvWCx sxs`CXp1e[^_ÐU-jjhh@*hE jhT ÉUUǂÍvUVSu VP u ǃǃƃt V=ƃf{ uƃjV fC ƃf{"uƃV= fC"jh hVV@e[^ÐU WVS}uuv`FXp^tFx9su3tRt2@"P@ P@P@PW !|@xDtjj3@DЃFxFt9re[^_ÐUVSUM ]֋C8tt u @Cv!SQRЍe[^ÐU WVS}WMtJ_tGx9s.v3t F fB FxFt9rՃjjWe[^_UWVS}uEEVu1u4C f;F tfEC"f;F"tfE;tw`GXp;tTu8u W$EUBjR;th +WP9tEE}t jjWEe[^_ÐU WVSu E@ fEUz"1?h4Hu TfUh*4(u|CE;rEUf;B uf;z"tPEPURx1e[^_ÉUWVSU} uBEӋE u vGfFG fF C fEC"fEF PFPRG9Fu0}}EfC EfC"jjEPiEfC EfC"Ff;GuEtF f;G uEtG9Fu(Ff;GtF f;G tЍe[^_ÉUjju ÐU WVSu] }E8th`+h+h+&7Vu07h,h4,SHSV;P{wf$<,vC(fC,҉ PC(fC,fBRQIvjQ9[^_ÉUEtǀBR@xÐU WVS} uVt[WVÃ;tDuuWVt0SiudžCS@tЍe[^_ÉUSEtSt CS@|Ћ]ÍvUS]5xS]ÉUEÉUEǀÉU VS]ރt t>hP,hk,h,h,S/ SVPjEEEEjEPVh, 1SxCt ~vtJ[^U WVS]E}t} uEfE5St1sEVzt tEt F"fE}fU^tFx9s\3t;ft;t fB"UfPf@@"fEFxFt9rfE vft;t fUu}tWVǃv~ }tV^tFx9s*v3tfx FxFt9rـ}t.EPPVvE f8f}t EUfe[^_ÐUjhuÉUVSu ]tVSu [u1e[^ÍvU,WVSu] PPPPPPPv`FXp0u5h-h)-h+SSVPrffCVF ffF ff)u tB"ffBf)CCPPV [^_ÐU,WVSE E}uEUtUQ A$Y"f|AXH 9~)f}1f|UBXP9~)f}1UM ]ljEU ƉEEPQURe[^_US]CXpPj CXp]ÍvUWVSE UfUu1utf9F uf9V"tKƆM ]%G *EGWQEPVt jjVƆe[^_U,WVSE Eu1tF i^tFx9sV3Bt4E9t EPj3TEtE@ f9vǃFxFt9rǍe[^_U WVSutF"iffu=^tFx9s;3tfx"FxFt9rvFxǍe[^_U WVSME ΋w$-X x$h`-Q_PVf|rF 9}gf|bF"9}W^tFx9sH3t' f9y}AQ"9~;tFxFt9r1e[^_ÐUU ztuAtBtzxuAxBxz|uA|B|ÐUE f@$ÉUÍvUÍvUjhuÉUSE UMtfxt& fZtf;Y u  v1[ÐUjjhThhEU WVSu ~`uV F`2vC`PǰPpPC`C"PC PVVfǃfǃfǃfǃ jVujVje[^_ÉUS]S ST 9C`t s`A]U,WVSuF0fEƆFxP>U@@EFEVvtqv9uSF"U )PF )PEPRVPVPU E U{`CpES`װHEUC|t rjt=cvUREPsxC SpKr))E'UREPsxS UCr)EC"UU)ЉEEEPUREPEEPURVxPVP EPVe[^_ÉUWVS]]uEF`;C`tsS1U9B`tr`EP 9C`t9{`t.C`PǰPnP1C`EC':F'tECh;FhtjURECl;FltjEPxEFx;CxuFt;CttUREPE }tC"PC PUR@ƃEe[^_ÐUWVSu}EE EPEPWt U Bf;EuuEfFEt U B f;EtEfF E}u&tEf;G utEf;G"uEe[^_ÐUS]ڋCtC]Wfz0tr]SMfSddʺQ)‹MfC0fe[^_U WVSu~hu~lv~0Fp)Љ^F0F")ЉÃjSWPPjjE PEPPvhEPPy0~l~ N0)Fr)^F")ЉÃjSWPPjjE PEP&PvlEPCPe[^_ÉU,WVS}}  ~hPPPPPPPvhVP0uDVPh@.hu.h.S30SV#PtDh.W=Ph.h.S SWPffv~lPPPPPPPvlWPu0uDWPh.hu.h.S&0SWP tDh.W0Ph/h.S SWPff[^_UlWVS]SESEC@hECtECx@EE @ uVWSCtEC@hEVWSE CpdphstjjhEpEPEE Vh ESoE1EEEVh SFe[^_US]SS SS]ÐUU fz"uB8fB"RÐUdS]ڋC0EEC8E{4t:C4EEEPh S/pS0PEPhRRC<]ÉUEƒx4tpEܖEu]ݖۆEuGv`FXp2V U)RjV jjjVCxЃ؋Eݜ0V@F"Eߍ )MF")ȉEEM}fUf fUm]Em)E܃F")+EPjEPSv`FXp t8ff8jv`FXp FXpe[^_ULWVS]E fEUfUfM~E苖Eu&݆}fMf fMm]Em9"݆}fEf fEm]UmB;};t\fEUfUN ME)ESS艿 t s`CXpjjjSGxЃ SY;CX@E[`]fMEfE}uUUfEEM)9E} MfMfM]E9}~}?EԉV"+MԉME }fUf fUm]Em)F"+E)PjQPMQEP CE9|;}^}EEV"U̍?)‰ЙÉEEPEPMQEPURMQ C;|Ee[^_UWVSE EUfUMQٽE@ux E)ljUz E)+@y1PM)RP*E݀ǀǀ19}-EܐEu UݚF9|ۀ}K}fMf fMm]EmU݂}fMf fMm]Um9t8Ep`‹BXpJMQ E)RjQ/]SSUB"4)PWS@PB`PPBXpq0jMA")P@SSq`AXpg} E;}Y]MQ")‰Й;RA )PREPq`AXp FU;|؍e[^_UWVSu]E1;t[~@~8Sh)ЍPEPP@܃}fUf fUm]Em9~E;tE;tEWVWSPEe[^_UWVS] 螱ǃvHP#‰;}UƉEEfDC"EEۃ}f}f f}m]EmfDA;|fre[^_ÐUVSu=uCh2~h2~ h*2~EpS}Sd;~u ~6;~u ~";~tF~F~[^ÍvUVSu=uCh2~h12 ~ h62EpS衵S舿;~u ~6;~u ~";tF~F~[^ÍvUVSu=uUh2@h;2.  hA2hH2 EpS賴S蚾;uL; u 6;u ";tFF[^ÍvU=uhM2D蟶jjhh#h1hE肿 jjhD$h]1hEd jjh %hR1hEFU WVS} 1tKt B$r C$PC"PG )%PS蜲C$)fC"")ljPPS{e[^_ÍvUVSUt(^$PB"PF PVCSSV3e[^UVSujjV5`hU2蜿É Vh@hS`Vh@AhSO ujhP-hoV1C$fC fffVV V3tSs`CXpe[^ÍvUVS]t[F$fF )‰ff ujhP-hoS7V[ǃSe[^ÐUVSu E9E@jPV5`h`20É  VhH<hSVh>hS ujhP-hoVŲVUV tSs`CXp诩e[^UVS] t1ujhP-hoSV<ǃ e[^ÍvU WVSu dždž1󫍾dž ƆDtjjjjj=H 1<dž(dž$jV,jF0dž8dž4FX@,@ƆEƆFdžHfdžLƆGdžP f~"u2ffF"tjqDfF"trwOh2h2vTh2S蒸 SP|PSdžvu Vt5h 3h`3vTh2S SQEt uNh 3h3vTh2Sѷ SP軻P蒬džu V2[^_ÍvUS]uu S@ Ѓ t( \ p`@XpE t(+p`@Xp jSS S+]ÉUS] t t]US]t9Zuj7¡Zjjjjjj pS0jjjjjj pS jjjjjj pSް jjjjjj pS jjjjjj pS袰 jjjjjjpS脰 jjjjjjpSf jjjjjjpSH]ÍvUVSuEPEPEPVy tq];}#MAD\ )ÉfM$]CMDL)f]tu EPEPa?EfEfe[^ÐU WVSu} ;}1;4}K0;<5,U;|'‹9~0;E}EzvC;4|44;8~78S,,S0ֵ04,|40MLe[^_ÐUWVS] })@PgEuuV!u9}#)PEPSEAÃ}uEe[^_ÉU WVSuu uvÉ߰Ѝp119}#B<_vw t uGA9|؍e[^_UWVS]} Mu 11H9}%f;H ~JF9} f;L E;<| <rEPEPEPj)PRu:= E;D|jjjjt@EE;<~ <EEe[^_USM] 1;}!;X|B;} ;\}[ÉUWVS]} uUfUfE;:| ;<E}t_WSg‰DUfUfEPEPEPWuP44<EfEe[^_ÉU WVS]EE1C"9~/fS")‰Ѓ%P<ƃ<;u u"WbE}u E ;t%Wj=jjU RS e[^_ÐU,WVS}u UЋE胿tt u E}#W U)EyE}ufE SfUEfC3EPEPEP%PURPVV:EfCEfE ujjjjVUR=E E;<ujjjjVEP= ;Et)EU;u93I;u@x1҉EE;}'tG"EfCfC<dB~ŋU;})ЃPjCPpʋEe[^_USE1һ;P}Hf;\s\B;P|[U0VS]E烻<PCۃ]ۃ<}]싓];<}ۃ<}] vE?s"f)ƃ t B$fB")ƃPC PSuPSW‹ f;t |EeEu S_ S7t Ee$u袶E9tl<jS%uOjjS@t5uS!vuh?je[^ÍvU$S] E烻ESCtC Q )Q$)C EE]S%EE]Eu]u#]Eu SN S  E9tjSSQ t<)ЉEEuu$  uf;uE9t(f<jSMS$]ÍvUWVS}u E};~؉ƅ<tUB<;~ <t <tMADG"EjSWA;<|W7PjG"+EPG PURj@G`PPGXp60EPjW*G"PG PG"f+EPjx40M;q}F<EP)@4vދUUjFPjjR7à jSWXt <t MADG"Et <tUBE v<ME9ptP)<tUB)RT)%vO"9t)19E~ ])v1ۋM9MEPjRG PPj@G`PPGXp蟛0URjW)PG PPj20MQUB0WlWEM9t We[^_ÐU,WVS} }EfEWI!f+Eff;~f)fUf}MUffQG )fEU҉U EG"f+EQ҉Q AEPjG"PEPEP]S@UB`PPBXpN0jSW'/f}'fEtB$fB fEuEfFU҉U EG"f+EV҉V FEPEVPFPG )PEPEP@UB`PPBXp萙0jFPW 'W )fU]fCEU҉U EFS҉S CCPCPEPEP00SWf}t5]CPCPEPEPZ0 SWMW!"We[^_UWVS} W%EEE}fUf fUm]Em)Ɖ)х}G 9}PWu 6WgfW t WW_!e[^_ÍvUWVS]uU <GU9 f9)ʉэEPEPEPjQP77/G)Ѓ 9|\} tU |t&U D;<jjjjwjjjjj\2E TU)эEPEPEPjQRu. jjjju 2 ;G}EuuSe[^_ÐU WVSu }N")ؙÅu~VSV% Ve[^_ÐUWVSEE} WOU{~%{tS|tSCt v<ۇ<E}fUf fUm]MmjjjjQ0 ;M|29.1;S}C;~B;S}C; RW@vjQW {tS|tSCD v<U;|G9C1;s}C;~F;s} CU;jEPWPW WkWe[^_ÍvUS]M 1ҋA ;Q}9u B;Q|1[ÉU,WVSUBXxU苲E5WU9iE PUREPUREPU RV/ %E PEPEPUREPU REUR EPZUËUE5W` 5tWI5W5 50W5pW EEUP jPVV}u5WΑEEPuS螎uUE U REPUREPURE PV?. ]ÔSU 2tOE苀E UU}pEPE 0tӃ}KuU:t65WؐU9t5tW运U95tW袐U9uU E}u)v6UR,UǰH*UB @PUUrPDUB UE wv50W U9t5WU9uZj謒Ã50WˏU9u v)Ɖ3EUEU  5pW}U9u;j9‹@FBE5WHUE뜃5W)U9uG}ujjEP6U5hWUE?vE PUREPUREPU REUR.u1e[^_ÍvUE u1Z uM uA u5 u)uutÐUWVS}WE(U ;t6YtEE;|΃t*|ut |t닷EU;}ev>uLt,|ut |tEE;|uPPWH| WE vsUEvU ;uEE;C|{t SC|uKt C|tsEU;S}Hv>u2KCS{tSC|uKt C|tEE;C|{uAsRsG }t EU U􉗰S"]]e[^_ÉU WVS1;]}U PMQyC;]|}j$TƃEP8FuV蕉UFFF RFǰHF U11ۃ;}}NM 4Fu1VM GjhGhBE4Pd C;]|~e[^_UWVSu ]E;}9~؃PVURE;~"9~PURE;}"9}؃UPRjE;~9}SPURBE1}tUPSVE&9OUU}KvMEUEPǃUBXpEXEPƉu u'UBXpjUBXpJ Ѝx9sЍxPVj)]9vPEPjjjURUBXPrpz 9wÃVʆ)jhGhBEUREP } URte[^_U,WVSu} FEƆFEEUPjPSk;uT}uN<j)PjjRSU$E 9uMyuE눆FjjjjWS$E싆 ;E}EEPVyEURMQWS# tU눖F*Vgjjjjj#‰<09|jRV V]Uz E)GE)MY);<}01;4}&,9<~09<|B;4|ۅt1WVPЃ;B;~E;|*M; }EPW4VPURVM눎F1e[^_U,WVSu ]<E;}URSE9REPEPEPVS 1MMUt;u~&u;uEE}t GtE vEEML MUD)E9Ef;u*f~%EPPEPj ;};jVWEPEPZ;|(; jVWEPEP,QWMQ9~P9}PEP\VURI }tnuVMA PEPMfDP }t.EfEVUB PEPP]fEMD fE}u9S")9}'E}tU<tM;ƃGe[^_ÐUWVS}MEEt Et+x =~N)=>E ;|3;+:t;u:t RUu EEH=$4] Ju jjjjvE}uEjjjEPE Pà jjjEPSà 9] t$jjjEPE Pƃ u jjjEPVƃ 9މjjjjE PScƃ jjjj&jjjjE PS;ƃ jjjjE PS!à "h3W{PR;u;u E;t8SVWU ++E 9}E}uM)ȉ9E | LJ LJe[^_ÉUWVS]u }u;u)ȉ9|ǃ]ǃOu;~u5;|-%SEH$4EuEjjjURVǃ jjjEPWǃ 9t!jjjURV vjjjURP }u 9~D@9}84}%PjEPjVlƃ }uVSxVSde[^_ÉUS]S赅tC"PC Pjj2]ÐUS]SS‹)‰ЃPSM S]US]SejS <jS@Sw]ÉUu'w7wRW_vjSEEEEEEPPPSA tjCXphPjujj S S W`_MQge[^_UWVSu}]j7FXpoE$5v15.&EEPEPFXpB^‹EEtEPEPREPEPjVKWvQCPGPE PV!=vKtj b8XU P1U RPh(tjuVge[^_ÉU WVS]}uu S6WS Se[^_ÍvU WVS}u]u WPLPVEP0W#e[^_ÍvUjjju uUjjju ujUjjju uNUjjju u2Ujjju uUjjju uUjjju uUjjju uUWVS]}u SiufLjjjjƃ EPEPEPPV %PLPWjKƃ jjjjV/ǃ EPPPjuPVu 9~S7e[^_ÍvUju uUju uUjjju ujUjjju uNUVSu]u VuLvLPVտVue[^ÉUju uUju uzUVSu}}uۃu VVSVT Ve[^ÐUju uUju uvUWVSu}tGE9E }?PE PVj߰HPSFXp>g SYEEEPEPE PV#tj2FXpbE ƆDe[^_U WVSu}]EEu V,SLPWEPoƒ0;u#SL@PWEPRDƒ u ыEPRQVV0 VTe[^_Ujjjju u,ÉUjjjju u ÉUjjjju uÉUjjjju uÉUjjjju uÉUjjjju uÉUS]u SjLPjjƒ0;u"jLPjjRƒ jRSfS SѺ]Ujjjju uÉUVSu]u VPV VVge[^Uju uUju uUWVS]LP<[Ɖ1Ƀ1fL~v ABL9|LEuEEEPPPStj2CXp?_ƃDV$Ve[^_ÉUS]u SS1 SSL]ÍvUS]u SS tAjLPjj SS1]ÉUu uxÉUWVSuE PVjjjjg0PV‰UװЍX׃t5vvR^v|4%@tGKu}HEE PVtu{TEEPPPVt,j2FXpD]u9T VIvjujjW uSV VJe[^_ÉU WVS]uu Sjjjjǃ0jjjjW 6URPWS Se[^_ÐU WVS]}uu S"6W<jSB0Se[^_ÉU WVS]u }VSVS WEPEPEPS} Sae[^_ÐUuujju uUuujju unUuujju uNUuujju u.Uuujju uUuujju uU WVS}UBX@u RE~Kx!j7RbKy߃E0PUR{EP [^_US]u S6S S]UEƀEÐUEƀEÐU0VS]fL1;}*;}F;};|NK )y1EPEPEPjQR44 E;}FE5EEEEPuEHPStjCXp$Ye[^ÐU,WVS}hPhPE PU &LPQTÉ1fL~9PSYFL9|LDžE PWPPPW u7jjjK Wvj2GXpWNWV W[^_ÍvU,WVS]}uEu Vc?}v80uuxxuoxtiE AtEeB< wEvB<w EΉB<w E뺉uEEEEǰHE}t[EPPPVCtj2FXpVV7]jjjjSEPFE jjjjSUR+E djjjjWEP E jjjjWUR+UUE PEPUR荦Ã9}};.uE;u}?vRT |4%@tE;E}F;u|ƒSJE+E)EjVjjEPURGÃ0EPSWEPkt+E)\Ee[^_ÐU,WVSE5EEEE EvjjjjuUE jjjju]uu 9)PuS8E1ۃ9}7EvRRv|4%@tC9|E)]jSjjVUƃ ]SHEPVEPUR+ utjjjj]SEE EPEPEPjUJ )Q]PEP U9Ue[^_U WVSu} ]9}ZSWV_ÃtGjjjjj- 9~SWVjV耦1e[^_ÉUVS]u Sujjjjƃ0jjjjV PVS'ujCXp3PSS膪e[^ÍvU,WVSuu Vjjjj,E0jLPjjE E;t U;ujUBXpOE艆PURVyÉ߰HEEE ;U}DB;U|L]EPUREPV薿tjUBXpNSEVxe[^_UE8u"E[^_ÍvU WVSu} ]Shv$x Shv(g ShvS ShvB tt&jh;v" jh;v e[^_ÉU|WVSE$EEE~:EE:EE:EEȼEjPEP5 h;;CE:CEE~:EE:EEȉ:EEмE jEPEP5 h;J;C EE;E:C EE~:EEȃ:EE;E jEPEP5h <:CEE<E:C EE:CEE~:EEЃ:EE<CEE;E jEPEP5h&<`:C hMǃWs?7 Ws07E:CEEE/<E~:EEȃ:EEмEjEPEP5 h=<9EE:CEE:EEE~:EEȃ:EEEE؉:EEtEEE E0jEPEP5{hI<>9Ɖs E:uEET<E~:EEȃ:EEмE jEPEP5 hb<8CE:EEE:uE~:EEȃ:EEEE؉:EEtEEE9 jEPEP5{ho<I8ECEE{<E:EEE~:EEȃ:E jEPEP5~h;7EEE<E:EEE:EEE~:EEЃ:E jEPEP5~h<7C$EE<E:EEE:C$EE~:EEЃ:E jEPEP5~h<7C(EE:E:EEE:C(EE~:EEЃ:E jEPEP5~h:6E ShhEP]?Shhs$J? Sh4hs(4?ShhEP ?EtEE jEPs6EEEjEPs4 s EPAjh;h;S hIPs 2 h`IPs2x[^_ÉUWVSUBpr ǰHDžUrX PSVǃu h<PEEuPWVPWVTE%vVjh9PUR1[^_ÍvU WVS}EWRr8uE8pt8PuPj$Tttj$Wle[^_Ujju ÐUjju ÐU<WVSuE EFXDžv EǰHEEEvEǰHEEE vxt3EPWS=E5PPSU>;EPSuvuEP SYtuVv!}uJSqXvjh9h =!uuhG=SCjSh[=V31!vEPS[^_ÍvU WVS}]uu hwShw  tjG@Xp;e[^_ÉUEU@@@$:tjhu=h=:EQ6 PRU,WVSu} V$=ujGXp ;vVv u1uuP[^ÉUEU UUBjRu.ÍvUEEUPjPu 0EÍvU,WVS}U t!~ Z(r,EEUUE*UUEUUjPW/EfEEfEEffEf)Ãf}1ۋWXER )‰f9~ËEfEff)y1WXER)‰f9~ƍEEӉUE։UjPW-e[^_ÐUÃjhb>UBXp> >!u/9Fu%9^u ?t;7EP5Ku >!tX7UR5+t=h:ho>EP=EPEP: tjhPO?e[^_ÍvUWVSEPAǃ=(uh>T@(1;50s,98t¡0F9s9]C00P5,?,jSW/:,< 5(UR2;j5UBXpi=E jEPEp`‹BXp(e[^_ÐUdS]ًCXux$uEEvEEPRQ2]ÐUdS]ًCXux$uEEvEEPRQ2]ÐUWVS]CXPUE11Ƀz$uB8Ez4Svt?Ch;B4u Ez8vCh;B8tChEz4Ch;B4t;B8t 1tr$WEPVVQrURi?e[^_ÍvUWVS]CXPUE11Ƀz$uB8Ez4Ovt;Ch;B4tCh;B8uE ChEz8Ch;B4t;B8t 1tr$WEPVVQrUR>e[^_ÍvU,WVSu] 5V:CQXzr0AhE;B4t;B8uPd+EE5?U @}fUf fUm]EmfCfCfCvہ5?]E]EPVW 6EEEM}fUf fUm]Em=~fCEEEM}fUf fUm]Em=~fCEEEM}fUf fUm]Em=)vfCfCfCe[^_ÉUWVSUBXpx0]SRVSWV9EUe[^_ÍvUWVS]u 5S 9SXzJ0ChE;B4t;B8uBۃ5@ @}fUf fUm]EmfFfFfFvEPQWf4d+EE5@EEE}fUf fUm]EmfFEEE}fUf fUm]EmfFEEE}fUf fUm]EmfFfFfFfFe[^_ÉUWVSUBXpx0]SRSWV7EUe[^_ÍvUUzxu@xBxÍvUVSu FXux$uVV 9;uVVH ǃǃVV;e[^Uuu u@ UVS]ރS-S- tCXp!tCXp!e[^ÉUjuu u"UWVS}uEEEEjjWu R@HЃ Uf;E:tt EE EEEu-;tEu;tE}t W}t W}t W}t Wu6;tEu;tEt7}t"EP,WE }}tLt!GXp ǃEP+WmE }tIt!GXpǃURT+W{EEe[^_ÍvUujS1҅tډ;;~7P6-uP9}fB9|e[^_ÐUhU BhEEftEEPQR"ÉU WVSU} Gt7Zs ;su#D0CPs -CCjSe[^UU BJ@ @@f@f@f@f@8tR0tRÉUVSUuE;uCh;Fhuf;t%R# SE ;tS1҃t u1t u9t*9u8ff9u;tjS EEe[^ÍvU WVSEu^P~;t@tV2;tV3$W t jW. 1e[^_U WVS}_W9u { ~C vǂW31;s }C43F;s |jwe[^_ÉUSMU Yt Bf;AutBf;At @vtBfA tB fA"tB fA$t jS11]ÉUjuÍvUS]StU]U,WVSEExp@X@EUR`UEUBtU AEU;x AQ$<A4Utt.Gtt.;A Q$A"f%vA"Q$A f%EUBU EXu UUt t<vt;tjQA$A"f%RAPoAKvQA$A"f%RQA$BQ P2vQA$BQ"PQA$A f%RVWSEPURQ" EEU;B EEU;BxBe[^_ÉUSM] U fBfB  u B9Cu1A 9Bt[UWVSE xEUt uEM Y$ۋEU;|@PPP=Ã}t ƋM fq ƋU fr"MUf94Psf4PM A fGfY"f_ 1fEEU;W }xvGMZE@PREP}t!f;sssCUffE%vMf;KsCfECUfEM;O |fwEfG}t-UffGf)MEf;Gv+fG%EUffGf+f;wvfwe[^_ÐU WVSU }r~bMtt7B ])f+FfFB"])f+FfFFPFPR%1;^ }GWF4EPeC;^ |e[^_U,WVSEfEUfUM IME]t uEEU B$E]MfYUfQ}t.M Q"%‹]C9~E)‰fE,vM Q %‹]C9~)‰fEEEUfBMf;vfE]fCUf;vfMy }t*}]UPDž~ ](}]MUPÅ~ E]UBMEpSWE@PEPUR_ }tMVUVEME;H |}UBH]C}tS]fZP]C"C$BQ)Ћ] S")S$)@fAUf;B~YfBSP]C C$BQ)Ћ] S )S$)@fAUf;B~fB]MfYe[^_ÍvUVS]EUƉр} t fC fS"GvfEfEEPEPPPS ujjEPEPSpe[^ÐUS]E Efǃfǃ1ҋ;}fB;|PPjS jjjSF PPEPSjSk Stjjjjjs`CXp]UjuÐU WVSuE Eyк9҉ԺغtA A"ܺA}utA}uu^1}t%A1}t tjhкV5`B}tAP%à VhhSVhhS }t _ _S؍e[^_U WVS] ǃǃǃǃ@DHLPATXA\`^dhAlpC tx*C"|jh@S5hB tjS}tjSfC fEC"fEt!C V N$9~Ef+F f+F$fEt"C"W"O$9~Ef+G"f+G$fE@EDH*ELjh@e[^_ÐUE @@4ÐU WVSuE UBRPV`ЃFV@@Ѓ tNjjSW Svjjw`s`FXp0s`CXpJe[^_ÉUVS]M΋%9u:u:t FQ@@1e[^UWVSuuFxE1^tEEE9E}-3X t;t;t;tlj;jG"PG PW EPm GEWSu4^`jjW|@`F`W^`E@4 KEx4uBjjp`w`FXpQE@4 qtw`GXpG"PG PEP VF"PF PVЍe[^_ÉUM UEEE҉UEɃ$fME$u ÍvU WVSutC PG PCP{tC"PG"PCPSe[^_ÍvU$S]tYE EBfEBfEA fEA"fEB fEB"fEEPS ]ÍvU WVSu ]EQ )G 9~ G q )Q")G"9~ G"Y")f|1f|1ۃPPW5jEP EPe[^_U\WVSE ENJUUƋ]EUBE}C EC"EEfEt6UEEPEPEPEPS 8EEuMUB ;E}E UB fEUB";E}EUB"fE򀻞uM}uUB fEB"fEڍv}t2EPEPEPjEuEfEEuEfEڋ}UfUu耻tNE;E~E}u8EujSƒB"R$)Ẽ}EEfEE;E}EujSƒB R$)Eȃ}EtNE;E~E}u8EujSBƒB"R$)Ẽ}EEfEEfE򀻝t E;E} EfEMt E;E} EfEM9ueEt f9}UEt Ef9EBUR tEp`‹BXp}tuB$fB"v1P}tuB$fB 1PEPjEPEPUR }u/E@}Vǃyv~$PF"PEPVLtF"S")‰)ؘP}tu@ vؘPVjVA }u-E@}V(ǃw~$PEPF PV}tu@"vؘPtF S )‰)ؘPV@jV }tDjEPEPEP1}tUBP1}tUBPSCj?Se[^_ÐU,WVSuE E]t2ujSP @$‹E)t2ujSP"@$‹E)U:E8uUfF uUfF}tWtmEPVWUuEtEG fFuAEt EfF 1vG"fF $tG"fF tG fFFU9~fFF U9~fF e[^_ÉUjju#ÐUS]jjS C fC"f1]U WVS}M ]t-B;u)؉B;u)؃PPQ e[^_ÍvUWVS}M ];u0B EE }fuf fum]Emr;u,B"EE }fUf fUm]EmBPPQ]e[^_ÐUMU Bf;A r B f;A"suRQ1U,WVS]E }MuPQƒB fCB"fC R uEPEPqe[^_ÐUSUM ]tSQR+tpu^Af;B t&A f;B"uSQRAf;B uA f;B"Af;B t~A f;B"ttSQjRwuctZAf;B u"A f;B"tSQRDAf;B t*A f;B"t$Af;B tA f;B"t SQjR1 SQRI]U,WVSEXM U$E9}URQSvM;uE u tfx t }u }t U B C"P}t M AC PSE}tMA M f;Au}tMA"M f;A tEs"}tRC M f;AtEt4Af;C v*ujS}ƒf+B"f+r$C fE}E f;p ttf9p vnt @f;C s_ujSƃ}u C fEMEV N$9~F$fF f)E vfEfuM A9Et}u*}tM AMfA }tM A MfA"1u}t%PjSe[^_UEu B)B"EE}fUf fUm]EmPPSu]U WVSu ]}A 9~ q vf}qA"9~Y" f}YPPW e[^_ÐU=t5ԻÐUjhػhhhE jhػhhMhEÐUjhjju ÉU WVS}WЋwx_tNt3.t3W|e[^_U WVSu U]K t; uIUB)@ 9}1ɋC(;K0}9}MA@ 9|S1rvA;K0|t @{5u 1yDt(;A r ;Aw+A QD@\v)Y0tj^VEP9É؍e[^_ÐU WVSE]UfUpURURpDF fE؃9FvUREPEPSu v`FXpU9~ft1Ǎe[^_ÐU<WVS]} EfUr&tMI<v@8tR8vI{$%PS7 ƃjVS t Ve[^ÉU WVSu }]EPVu‰7+EG+ER)‰9~ЉGe[^_ÐUWVSEExu lEPU RMQXǃEPEPURBƋMA= 9tr_ E +EGu)utWEP [ sUR 9uE+EN)ȉFPE+EP6vE+E W)‰ЉGuD u WMQ7 oUB@GMA@hE +EW)‰PE+EPE +EPx My4tE+E Q@)‹A(H9}E +EUBMA@zEPE PQ NjURUM MEx4t‹B(H9G0GM;A(u#WQ' EPE PUR ǃ GMQ()‰Ћu9~ƋE +EO)PSP VEUBPSu uw)u }XMy4t GjhEP1e[^_ÐU,WVS} EEUU}u}vE;x@~x@}uU;z@EEOEPWEP Ã{\+E3}!} }EEu}}uBЁvR |4%@t}dE\}u < J}t< u@}E7< thЁvRv|4%@uE;3s[twC3N>C9/[ tL3!M} }u}u}+} vEEǃ}uGU;z@} | UB@1e[^_ÉUWVSu ]1E}tEu NEpEUrBPEPJ EPVS ‰+E SGt E))1Mu; sRBH; rB9rR tq B9s]}uE9t뙐E]CE)@9Eu]CH9nEP*}t(F+C"UR v]Se[^_ÉU WVSu}EEG4:F4t#hBVPWG4F41CE;shE4]uE}uG$;F$tT]SW.SVPà jSVt SjEPpxEG8;F8tF8F(}u4G(;F(t,WsÃW SjVmS1e[^_ÉU WVS} ]{$uT1vFE;0sEh4hu{4tDSDEPdt TC e[^_ÍvUju ÍvUS]{>t{$tC>s C ]ÍvUVS]{4uo{$u={=tcS^ƃs V u V1=V){>us C>S C C=e[^UVS] uƃSVjà VPÍe[^ÉUE@=UVSu] VAt~>tv F>F e[^ÍvU WVSuhu Ãt:HPVStSqt1e[^_ÉU WVSUB@@P1EXDt s37P{[ uUB@0z,tREVjEPe[^_U,WVSuE ~$~ u F@Xv~4uY~ t,F PǰP<Ps1F F>ǰHF@~4~ HF@;F8~F8~8uF@F8@F(F<Ft wd2~ u#jjh ChXChaChsC zCS~ u"F P8F<|C-~C$jjhChXChaChC@ u~<tI~ t0F PǰPP?1F F>~<Sv Ãt jjSS:F@DžF (;l0&0hCSPPhChDhaChDVRPF@1[^_ÐUWVSu] E}u|~$unF@@PE~@tGjjSSv@jEP= ;F@t#jjhDhXChaCh3D F@UF EUU~4t(EPVEF(;F@~F@UBF s}^@EPVgEv(UF( 9~؋UBtPW2UB)Dž~$u}u EP5e[^_ÐUS] j…uEPDB v{ tC PC B S ZЋ]ÐU WVS}wD~t%h@D^ VWޅue[^_ÉUSM] {u C AD SC B { t S CBy4u 3TSH]ÍvUWVSE} uPD1ɅtӉC9 JR u[^_ÉU WVSu]SǃSE PW@ SWV2We[^_ÍvU WVS]u VSwǃs(& S()RP7C(C(FS()‰We[^_ÍvUVSu=tu'hDDthD2 EpSS;tu ;u F[^ÐUS|=|tvЃ;u[ÐUo0123456789abcdefCeps_print: w=%d h=%d d=%d pad=%d eps_print: straight grayscale. eps_print: pseudo cnv to grayscale. eps_print: RGB cnv to grayscale. grestore Bad colorClass specification. eps_setPage: Invalid orientation.eps_setPage: Invalid paper size.eps_setPage: orientation:%d size:%d scale:%g autoscale:%d autorotate:%d maxaspect:%d Y@eps_setCompress: Invalid compression type.eps_setColorType: Invalid output color type.setTransform: z1=%g z2=%g zt=%d offset=%g scale=%g name='%s' Rotating image.... before: scale=%g scols=%d srows=%d pixfac=%g pwidth=%d pheight=%d Image too big, autoscaling... : scale=%f scols=%d srows=%d pixfac=%g Image too big for the page, no autoscaling set... Reset autoscale flag or use scale < %g Doing max aspect...after: scale=%g scols=%d srows=%d icols=%d irows=%d llx=%g lly=%g fff?33s?33S?R@?256 %02x%02x%02x pop pop /* s */ } loop /* s l l */ 2 copy le { exit } if /* s l n */ add /* s l n */ readrlestring /* s l n nr */ getinterval /* s l n ss */ 1 index sub /* s l n s n r*/ 3 copy exch /* s l n s n l*/ dup length 0 { /* s l 0 */ /readstring { /* s -- s */ } bind def } ifelse /* nr */ pop /* nr */ } for /* n c */ rlestr exch 2 index put exch 0 exch 1 exch 1 sub { /* n c 0 1 n-1*/ 0 get /* n n c */ currentfile rlestr1 readhexstring pop /* n n s1 */ 256 exch sub dup /* n n */ } { /* c */ length /* nr */ readhexstring pop /* s */ 1 add getinterval /* f s */ 4 3 roll /* f s 0 c */ currentfile rlestr 0 /* c f s 0 */ dup 127 le { /* c */ 0 get /* c */ currentfile rlestr1 readhexstring pop /* s1 */ /rlestr exch def /* - */ /readrlestring { /* s -- nr */ /rlestr1 1 string def %%!PS-Adobe-3.0 EPSF-3.0 %%%%Title: XImtool Screen Hardcopy %%%%Creator: XImtool %%%%CreationDate: %s%%%%BoundingBox: %d %d %d %d %%%%Pages: 1 %%%%EndComments %s /readstring { currentfile exch readhexstring pop /rpicstr %d string def /gpicstr %d string def /bpicstr %d string def /picstr %d string def %%%%EndProlog %%%%Page: 1 1 gsave %g %g translate %d %d scale turnflag enabled.... 0.5 0.5 translate 90 rotate -0.5 -0.5 translate %d %d 8 [ %d 0 0 -%d 0 %d ] { rpicstr readstring } { gpicstr readstring } { bpicstr readstring } true 3 colorimage { picstr readstring } image ?N@>@pBA$@ A/labelfont /NewCenturySchlbk-Roman findfont 16 scalefont def /label { moveto labelfont setfont 90 rotate show -90 rotate } def (%s) %g %g label /label { moveto labelfont setfont show } def /imBorder { %-4d %-4d moveto %% Outer axis 0 %-4d rlineto %-4d 0 rlineto 0 -%-4d rlineto closepath %g setlinewidth stroke %-4d %-4d moveto %% Inner axis 0 %-4d rlineto 0 -%-4d rlineto } def imBorder /axlabelfont /Times-Roman findfont 8 scalefont def -90 rotate 90 rotate/axlabel { moveto axlabelfont setfont %s show %s } def /xMajorTicmark { moveto 0 %d rlineto 0 %d rmoveto 0 -%d rlineto %g setlinewidth stroke /yMajorTicmark { %d 0 rlineto %d 0 rmoveto -%d 0 rlineto /xMinorTicmark { /yMinorTicmark { /Times-Roman findfont 8 scalefont setfont %d %d moveto linearlogunitary(z1=%.2f z2=%.2f ztrans=%s Con=%.2f Brt=%.2f cmap=%s ncolors=%d) %s show %s /Times-Roman findfont 6 scalefont setfont 20 15 moveto (%s) show colormap: min/max = %d/%d label: '%s' @A@?@?A/axLabelX { %4d %4d xMajorTicmark (%g) %d %d axlabel %4d %4d xMinorTicmark axLabelX /axLabelY { %4d %4d yMajorTicmark %4d %4d yMinorTicmark axLabelY B@$@@`AzDAAAB@$@@zDAAA`A@/cblabelfont /Times-Roman findfont 10 scalefont def /cblabel { moveto cblabelfont setfont %s show %s } def /cbarBorder { %4d %4d moveto 17 0 rlineto 0 %4d rlineto -17 0 rlineto %-4d %4d moveto 0 14 rlineto %-4d 0 rlineto 0 -14 rlineto 1 setlinewidth cbarBorder (%d) %d %d cblabel /cbarstr %d string def %d %d translate %d 12 scale %d 1 8 [ %d 0 0 1 0 0 ] { cbarstr readstring } DisplayImage %d %d 12 %d %d 12 %d 1 %d 0 1 %02x%02x%02x%02x 8B\B4BB%%Page: 1 1%%EndProlog grestore class 0 gt { PseudoClassImage } { DirectClassImage } ifelse token pop /compression exch def pop token pop /class exch def pop orient 0 gt { 0.5 0.5 translate 90 rotate -0.5 -0.5 translate } if token pop /orient exch def pop token pop /rows exch def pop token pop /columns exch def x y scale x y translate token pop /y exch def pop token pop /x exch def gsave % hex color packets. % compression: 0-RunlengthEncodedCompression or 1-NoCompression. % class: 0-DirectClass or 1-PseudoClass. % orientation: 0-Portrait or 1-Landscape % image columns & rows. % x & y scale. % x & y translation. % Display a DirectClass or PseudoClass image./DisplayImage { GrayPseudoClassPacket } image { PseudoClassPacket } false 3 colorimage currentfile colormap readhexstring pop pop /colormap colors string def /colors colors 3 mul def token pop /colors exch def pop currentfile buffer readline pop % colormap: red, green, blue color packets. % colors: number of colors in the colormap. % Display a PseudoClass image./PseudoClassImage % Get a PseudoClass packet./PseudoClassPacket /color_packet colormap offset 3 getinterval def /offset exch 3 mul def currentfile byte readhexstring pop 0 get % index: index into the colormap. % Get a PseudoClass packet; convert to grayscale./GrayPseudoClassPacket pixels exch gray_packet put 0 1 number_pixels 1 sub /number_pixels exch 1 add def /number_pixels 1 def /gray_packet exch def cvi color_packet 2 get 0.114 mul add color_packet 1 get 0.587 mul add color_packet 0 get 0.299 mul % blue % green % red % Get a DirectClass packet; convert to grayscale./GrayDirectClassPacket { GrayDirectClassPacket } image % No colorimage operator; convert to grayscale. % { DirectClassPacket } false 3 colorimage ] rows neg 0 rows columns 0 0 [ columns rows 8 systemdict /colorimage known % Display a DirectClass image./DirectClassImage} bind def pixels 0 number_pixels getinterval } for pixels exch color_packet putinterval 0 3 number_pixels 1 sub } ifelse /number_pixels exch 1 add 3 mul def currentfile byte readhexstring pop 0 get } /number_pixels 3 def { compression 0 gt currentfile color_packet readhexstring pop pop % length: number of pixels minus one of this color (optional). % blue. % green. % red. % Parameters: % Get a DirectClass packet. %{/DirectClassPacket/pixels 768 string def/color_packet 3 string def/byte 1 string def/buffer 512 string def% it is displayed as grayscale.% Postscript viewers or printers that support color, otherwise% Display a color image. The image is displayed in color on%%%BeginProloguserdict begin %%%%BeginData: %d %d %u %u %u %u %d %d %d ?N@>@pBA$@ Ashowpage %%%%EndData end %%%%PageTrailer %%%%Trailer %%%%EOF %s8PD?dW]?|=$@?=NOAO/IRAF %s@%s %snoneWarning: cannot open %s ximtool: inet port %d already in use - disabled ximtool: can't open inet socket %d, errno=%d ximtool: unix addr %s already in use - disabled ximtool: cannot open unix socket '%s', errno=%d DEBUG_IISximtool: command input read error, n=%d of %d, errno=%d ximtool: bad data header checksum noswap: %6o swap:subunit=%06o tid=%06o nbytes=%7d x=%06o y=%06o z=%06o t=%06o uncache %dwcspixerase frame %d - ref = %d set_fbconfig (%d, %d) ximtool warning: attempt to display nonexistent frame %d set_frame (%d) ximtool: attempted read out of bounds on framebuf read %d bytes at [%d,%d] XIMTOOL: timeout on write XIMTOOL: timeout on read ximtool: attempted write out of bounds on framebuf write %d bytes at [%d,%d] write %d bytes at x=%d, y=%d version=%dversion query wcs: %s %s %f %f %f %f %f %f %f %f %d %s %f %f %d %d %d %d %d %d %s [NOSUCHWCS] query specified wcs=%d frame=%d [NOSUCHFRAME] query wcs: frame = %d set wcs: %7.2f %7.2f %7.1f%ccapabledisableframeTitleread cursor position write cursor position: [%d,%d] discarding %d bytes following header: MbP?,65AA3AAAAAAAAAA?9initializeEOF \%03o%10.3f %10.3f %d %s %s curval: %s?MbP?wcstran %d %g %g ?GC{Gz?{Gzt?sx=%.2f sy=%.2f / %.2f --> mp->dx=%d+%d=%d mp->dy=%d+%d=%d YES NO [%d] %s%[^ ] %f%f%f%f%f%f%f%f%dximtool: error decoding WCS [NO WCS] %7.2f %7.2f %9.3g%c %7.2f %7.2f %7.3f%c %7.2f %7.2f %7.0f%c{Gz??Y@i@i@%s%f%f%d%d%d%d%d%d %s ximtool: error decoding WCS mapping cache %s %dwcslist %dcache %s %d %dorient %d %d %d %dDEBUG_MAPPINGSNo mappings for frame %d Mapping %d of %d: id=%d frame=%d: %s %f %f %d %d %d %d %d %d %s HOME*.fits,*.imhcurdir %sloadOptionspattern %sgray %dzscale %dzrange %dz1 %gz2 %gnsample %dError: File not found.warning %sReading rasterfile...Error: 24 bit Sun rasterfile.Reading FITS file...Reading GIF fle...Reading IRAF image...Error: Unknown raster file type.Load: pix=%d w=%d h=%d xnc=%d nc=%d pcm=%d z1=%g z2=%g Quantizing colors...Sorting colormap...Initializing frame buffer...Load: new_config=%d w=%d h=%d %d %d %dframeSizeinitframeFitframeTitlecapableuncache %dwcspiximage%s%s/%scache %s %dwcslist %dcache %s %d %dorient %d %d 1 1DEBUG_MAPPINGS%s - %g %g %g %g %g %g %g %g %d %s %d %g %g %d %d %d %d %d %d C?XY [ [ [HY [ [hZsetValue {filelist/*o@status {%s}Get image data...wGenerating postscript output...Wrote %d bytes to %sCould not open file %sximpXXXXXXCannot open temporary file: %sOverwrite this file?File already exists:%s %s %sprint rename %s %sprint cancel %s/tmp/ximpXXXXXXPrinting file...cat %s | %sDone.Could not write file %sPrint cancelled.papersize letterprintOptionsorientation portraitcolortype grayautoscale Trueannotate Truedotitle Truedocolorbar Truedoborders Trueframe%d.epsprinterName %sprintCmd %sr printerListstatus {%s}no gterm-image widget!! startuprestartinitializeframeframeTitle%d %d %dframeSizeERROR: No colormap cells available. ./noneTrueFalseautoscaleantialiastileFramesdone%d %d %d %dresizetruefalsexflipyflip%g %g %g %g %g %g %g %gframeViewMbP?cannot create %dx%d frame buffer #%d fastbeNiceToServersmallunrecognized memory model `%s', default to `fast' ?%sxywidthheightlineWidthsensitivevisibleactivatedlineColor %d Blank %s %dchimageText1chblacktextBgColoryellowtextColortextonoffcursorMode?-C6??-C6?iomap %3d(%3d) iomap min = %d max = %d Gterm Colormap %3d(%3d,%3d,%3d)%s: w=%d h=%d min=%d max=%d %3d(%4d)zeros: %d?setValue {%s}setValue {%d}setValue {{%s} {%s} {%s}}alert%d %d %d %d %dframeRegioncolortables%d "%s" %0.3f %0.3fenhancement/usr/local/iraf/dev/imtoolrc/usr/iraf/dev/imtoolrc/local/lib/imtoolrc/iraf/iraf/dev/imtoolrc/opt/local/lib/imtoolrc/usr/local/lib/imtoolrcimtoolrcIMTOOLRCrHOME.imtoolrc%s/%sWarning: No frame buffer configuration file found. ximtool: bad config `%s' %d%d%d%dimtool warning: fb config %d [%d-%dx%d] - frame width should be even, reset to %d nearestbilinearareablkavgboxcarlowpassgaussiancannot open %s GrayscaleHSVHeatRampAIPS0ColorStaircaseStandardRedGreenBlueHalleyRainbow1Rainbow2Random16Random8Random-C6?v@p@H.! @UUUUUU?v@N@nframesframe%d.rasformat rassaveOptionscolor pseudocolorfname frame%%d.rassaveFile: %s -> %dx%d at %d colors Center pixel %d: val=%d (%d,%d,%d) User Colormap %3d(%3d,%3d,%3d) wWrote %d bytes to %sError %d Cannot open file %sximsXXXXXXCannot open temporary file: %sDo you want to overwrite this file?The following file already exists:%s %s %ssave rename %s %ssave cancel %sGenerating Sun rasterfile...Generating FITS file...Generating GIF file...Generating TIFF file...Generating postscript output...Save file format not implemented.\DDDDCould not write file %sSave cancelled.status {%s}Sun rasterfileGIF fileTIFF fileJPEG fileX11 window dumpFITS fileRaw bytesEPS fileunknown formattext {-- Frame %d -- %s %s %d bytes %dx%dx%d} runable to open filenot a Sun rasterfileSun rasterfile image has depth %d Depths supported are 1, 8, 24, and 32 Unsupported rasterfile depthSun rasterfile of unsupported type %d Unsupported rasterfile typeSun rasterfile colormap of unsupported type %d Unsupported rasterfile colormapLoadSunRas() - loading a %dx%d pic, %d planes type %d, maptype %d, isize %d, csize %d, lsize %d, linesize %d colorstyle=%d nc=%d out of memoryfile read errorWriteSunRas: d %d, linesize %d ncolors %d (RGB) (Byte-Encoded)(Standard)(OLD)Sun Rasterfile%-16.16s %3d %5dx%-5d %s %s%s: %s Load support for MEF files is not currently implementedInsufficient memoryr%6s = %cSIMPLE%-16.16s %3d (%2d extns) %s%-16.16s %3d %5dx%-5d %sInsufficient memory for workspaceBITPIXNAXISNAXIS1NAXIS2ENDError writing FITS filerbUnable to open FITS fileError reading FITS fileBad BITPIX value in FITS fileBad NAXIS value in FITS fileFITS file is not a two-dimensional imageEXTENDNEXTENDNAXIS%dBad NAXISn value in FITS fileNo TitleBSCALEBZEROUnexpected eof in FITS fileOBJECT END %20dKeyword %s not found in FITS fileFITS file has missing keyword valueKeyword has bad logical value in FITS fileKeyword has bad integer value in FITS file%ld%gKeyword has bad real value in FITS fileI/O error reading FITS fileUnexpected EOF reading FITS file?pAftgbyte: %s C"\>?o@QuitResetinitializesetFramegetFramegetRastergetSourcenextFrameprevFramefitFramematchFramesregisterFramesoffsetRegisterclearFramesetOptionsetColormapsetOffsetwindowColormapzoomzoomAbscentroidgetPixelspanflipretCursorValencodewcssetPrintOptionprintsetSaveOptionsavesetLoadOptionloadhelpinfowindowRGBism_startism_stopism_cmdclient%d04x35x23x34x23x22x23x12x11x13x42x52x42x31x31x2tileGeomautoscaleTrueFalse%santialiastileFramestileByRowstileTopDowntileLabelsBestSquareHorizontal%dx%dVerticalRowColumn%d %dtileOptionsRandommax0 0%g %g#tI#tGC?{%10.1f} {%10.1f%c} {%g %g} {%f} `@GC %s %sprintOptionsautorotatemaxaspectdotitledobordersdocolorbartitleimtitletitle %sannotate[Frame %d] %scompressorientationpapersizeimscale%s %dcolortypedevicetypedeviceType PrinterprintCmd %sprinterName %ddeviceType FileprintFile %sprinternameprinterName %sprintcmdprintfilecorners%d %d %d %dY@Bformatframe%d.rasframe%d.rawframe%d.gifframe%d.jpgframe%d.tiffframe%d.fitsframe%d.epsframe%d.xwdsaveOptionsfname %scolorfnameHdHGHHHHHHHHHHGH,HHHHHup/curdir %sloadOptionsroothomepatternpattern %srescanheadersgrayoffongray %szscalezscale %szrangezrange %sz1%gz1 %sz2z2 %snsamplensample %srenamecancel}This document was last updated 11/6/96.problems please contact iraf@noao.eduAstronomy Observatories in Tucson, AZ. For further information or to report XImtool was developed by the IRAF Group at the National Optical

Acknowledgements

Cool, huh. send helpButton set background redcommand such asnever need this, but for an example of what it does, bring it up and type aspecific procedures in the TCL code that makes up the GUI. Most users willTCL interpreter letting you send messages to the object manager or executetool for the GUI. It allows the user to type commands directly to the The TclShell is mostly used as a development or debugging

Tcl Interactive Shell

application ism_task resource.special data formats. This command string can also be controlled by theneed to be changed, however a custom ISM could be started when usingexecuted or to reinitialize the current one. In most cases this won'tThe last box allows the user to specify a different ISM task to bevalue.main image window marker to switch to a red background color to flag thevalue will cause the BPM field of the Coords Panel readout as well as theposition, any BPM data values found will also be displayed. A non-zeromapped along with the image. Aside from wcs/pixel readouts at each cursor(currently fixed by convention but this may be selectable later) will beenabled, a bad-pixel mask specified by the image header BPM keywordISM will try to map any bad-pixel mask associated with the image. IfCoords Panel display. The BPM Data option controls whether or not thelabels, the image name/title, and frame buffer information in the mainOther options below this group control whether or not to display the WCS(i.e. the text marker on the main image window).on the Panel (i.e. the Coords Panel window) or the ImgWinThe two toggle to the right control whether this WCS is to be displayedor whichever format is most natural for the coordinate being display.use to select a sexigesimal display, conversion to degrees or radians,information present in the image. The Format menu allows theThe selection is dependent on whether the ISM is running as well as WCSsystems, (e.g. FK5 to ICRS or galactic/ecliptic) will also be available.is supplied in the image addition entries for transformations to other skywhich may be identical depending on the image header. If a World systemprovides a selection of the image Logical, Physical or World systems,location and format to be displayed. The Type menu alwaysThe Readout Values group controls the selection of WCS type, changed (explained below). the Coords Panel will change size to reveal the options which can be
Pop-up/down the option control portion of the panel. When enabled,
Options
image are drawn. indicate N/E according to the WCS, otherwise the X/Y axes of the enabled and a WCS is present in the header, the compass will
Draw an orientation compass on the display panner. If the ISM is
Compass
the ISM is enabled. available under different tabs. This option is only active when image header as well as WCS-specific parts of the header are
Display the current image header in a new panel. Both the entire
Header
The size of the table may be selected from the menubar. values if the ISM is enabled, or scaled display values otherwise. of pixels surrounding the cursor position, either the actual pixel
Open a panel showing an image pixel table. The panel shows an array
Pix Table
other options to work. used to access the disk image). This must be enabled for certain
Toggle the real-time WCS/pixel readout capability (i.e. the ISM
WCS/Pix
(see below). Other options on the main panel include:button is used to hide most of the feature controls when not in usetaking up as little screen space as possible. To this end the Optionsmation than can fit comfortably on the main image window while stillcoordinate and image pixel readouts. The intent is provide more infor-contains the image name/title and frame buffer info, and a selection ofserve as a control panel for the various options. The display windowThe Coords Panel is meant to provide a full-featured readout as well as

Coords Panel (NEW)

Tile all in one column (1xN).
One Column
Tile all in one row (Nx1).
One Row
Preferentially tile vertically (6 frames ==> 2x3).
Vertical
Preferentially tile horizontally (6 frames ==> 3x2).
Horizontal
Always force a square layout (2x2, 3x3, etc).
Square
Optimize layout for frame buffer aspect.
Best
Tile according to Manual Configuration settings.
Manual
Do not tile the display.
Disabled
Tile Frame group in the following manner:Tile configuration will make use of all frames currently selected in thethe tiles (frame number, image title or image name).(left-to-right or top-to-bottom), as well as optional labels for each oftile configurations, the list of frames to be tiled, a fill styleA new control panel Tile frame now allows you to select from a number ofWith the additional frames, the default tiling scheme proved inadequate.

Tile Panel (NEW)

Show current frame buffer configuration table.
Imtoolrc
Log of various ISM status messages.
ISM
List all WCS and mappings for the current frame.
WCS
channels and active ISM clients.
Show currently connected clients. Lists available connection
Clients
antialias type, etc.
Info about various server options, e.g. colormaps, memory model,
Server
Info about the current display frame.
Frame
runs. Current info options include:the bottom of the frame, however all output is kept current as the programinformation. The type of output is controlled by the toggle buttons onThe Info panel was revised to provide a greater variety of status

Info Panel

previewers. At most 128 printer commands may be used.a simple 'lpr -Pfoo' or some such, but can also include converters orNormally the command will beinput from a pipe, the two fields must be separated by a tab character. than a single word, the command can be any command that accepts EPSThe name value is what appears in the selection list and may be more name < tab > commandusing the printConfig resource. The format of the file is simplyconfiguration file is /usr/local/lib/ximprint.cfg by default or may be resetThe printer selection list lets choose the printer to be used. The printer

Printer selection

annotation such as the image title, a colorbar, and axis labels.
The annotate option toggles whether or not the final file includes
Annotate
orientation. increases the scale so the image fills the page in the current
Max Aspect takes images smaller than the page and automatically
Max Aspect
orientation will be rotated and possibly scaled to fit the page. fit on the page. When set, an image larger than the current
Auto rotate determines whether or not the image will be rotated to
Auto Rotate
be used to dtermine the output image size. scaled to fit the page. If not enabled, the image scale will
The auto scale toggles whether or not the image is automatically
Auto Scale

Processing Options

Set the scale factor used to compute the final image size.
Image Scale
Select the paper size to be used.
Paper Size
Set the page orientation.
Orientation

Postscript Options

PseudoColor or 24-bit postscript will be created using the current colormap.The Color box lets you choose the color type of the image to be created.

Color Options

string to process the image.printer configuration file lets you define any commandcommand does not necessarily need to be a printer command, the automatically change the command to be used to generate the output. ThisSelecting printers from the installed list willsequence number allowing multiple frames to be saved with unique names.name. A "%d" anywhere in the name for disk output will be replaced by a box will adjust accordingly, either as a Unix printer command or as a fileThe Print To selects the type of output, the Print CommandEnacpsulated Postscript to either a named printer device or to a disk file.The Print Panel allows you dump the contents of the main display window as

Print Panel

be written with the current colormap. colormap after converting to a 24-bit image, pseudocolor images will Formats which allow 24-bit images will be written using the current e.g. FITS doesn't allow color so no color options will be allowed. to be created. The options will change depending on the format,
The Color box lets you choose the color type of the image
Color
annotation. format is similar to the \fIPrint\fR option however there is no to be created. Not all formats are currently implemented. The EPS
The Format box allows you to choose the format of the image
Format
names. sequence number allowing multiple frames to be saved with unique the saved file. A "%d" anywhere in the name will be replaced by a
The File Name text box allows you to enter the file name of
File Name
versions.number of formats are currently available, others will be added in futureother than to enable the autoscale feature. A limitedfacility for saving the undisplayed contents of the entire frame buffer only the contents of the main display window may be saved, there is nomarkers, or overlay graphics displayed by the client program). Presently,to a disk file (including the Panner/Coords markers, any general graphicsThe Save Panel lets you save the current contents of the main display window

Save Panel

available frames.a different frame using the Frame menu button to select from theBy default images will be loaded into the current frame, you may choose

Frame Selections

label of the panel.the current working directory which is displayed in the Directorybe given, if a simple filename is specified it will be searched for inLoad button to load it. An absolute or relative path name mayname in the Load File text box and either hit <cr> or theIf you know exactly which file you wish to load, you may enter its

Direct File Load

"*.imh,*.fits" to list both OIF and FITS images.multiple templates may be specified in a comma-delimited list such ascharacter. Any valid unix pattern matching string will be recognized, always be seen in the list and are identified with a trailing '/'"*.fits" using the Filter text box. Directories willfilter to select only those files with a given extension such asBy default all files and directories will be listed. You may specify a

File Patterns

Directory browsing is disabled while this option is in effect.to list all images in the current directory which match the filename filter.Selecting the List Image Headers option will change the display textworking directory is given below the file selection window.Rescan reloads the file list by rescanning the directory. The currentuser's login directory, the Up button moves up one directory level, anddirectory. The Home button will reset the current directory to theThe Root button will reset the current directory to the system rootif a filter is specified.trailing '/' character, you will always see any subdirectories listed evenerror popup will appear. Directories in the list are identified with aplain file an attempt will be made to load it as an image otherwise anis a directory the contents of the new directory will be loaded, if it's abe selected for loading by selecting with left mouse button. If the fileThe load panel contains a list of files in the current directory that may

Directory Browsing

the options box.nor Zrange are enabled, the z1/z2 values may be set explicitly usingdata range will be used to scale the image. Lastly, is neither Zscaleoption is enabled. Otherwise, if the Zrange option is set the fullautomatically using a grid of Nsample points if the Zscaledisplay than simple truncation to 8-bits. This scaling will be donewhen computing the z1/z2 values and provides a much better initialz-scale sampling and transformation used by the IRAF DISPLAY tasklinear transformation to the number of display colors. This is the samea grid to determine an optimal range in the data to be used to compute aFormats which permit pixels larger than 8-bits/pixel will be sampled onconverted to grayscale and loaded as the standard grayscale colormap.Auto Grayscale button is enabled any image colormap will bequantized to the number of available colors before display. If theImages with more colors than can be displayed will automatically bethe full frame buffer will always be visible in the Panner marker window.Display panel will scale the entire image to fit the main display window,autoscale option on the mainin the main display window. Setting thethe display window when loaded, or you may see a subsection of the imagesize of the image will be created. This means that the image may not fillimage size, if no frame buffer can be found a custom buffer exactly thesearched for a frame buffer that is the same size or larger than the newWhen loading new images the frame buffer configuration table will beimage), all others will be loaded with a grayscale colormap. brightness/contrast enhancements will render an apparently random-coloredwill be loaded using the private colormap (meaning that changing theand load it appropriately. Images with private colormaps (such as GIF)rasterfiles. The task will automatically sense the format of the imageformat (i.e. .imh extension), simple FITS files, GIF, and Sunthat browsing is possible. At present recognized formats include IRAF OIFbuffer, this is analogous to loading an image on the command line exceptThe Load Panel allows you load images from disk directly to the frame

Load Panel

when ximtool is installed.of colortable files. This can be installed as /usr/local/lib/imtoolcmapThe directory "luts" in the ximtool source directory contains a sample setused.file appears in multiple user colortable directories, the first one will beimages will be have the same name as the image loaded. If the same colortablename collisions with the builtin colortables. Private colormaps for diskcolortable name will be "rainbow". Lower case names are suggested to avoidis the root name of the file, e.g., if the file is "rainbow.lut" the The name of the colortable as it will appear in the Ximtool control paneltable when it is loaded.colors to render pixel data, so it is usually necessary to interpolate thecompute the colortable values used in Ximtool. Ximtool uses at most 201the range 1 to 256. Ximtool will interpolate the table as necessary toUsually 256 rows are provided, but the number may actually be anything inBlank lines and comment lines (# ...) are ignored. (etc.) R G Band blue values scaled to the range 0.0 (off) to 1.0 (full intensity).colortable entry, and consists of three columns defining the red, green,The format of a user lookup table is very simple: each row defines onefor each images loaded from disk.which do not look like colortables. New colortables will also be addedpanel). Ximtool will ignore any files in the colormap directorypressing the Initialize button in the control are loaded when ximtool starts up, or when it is reinitialized (e.g. byavailable or where to look for colortables respectively. The colortablesarguments are used to tell ximtool which specific colormaps to makeThe cmap[12] and cmapDir[12] resources (or command line

User-defined Colormaps

optionally be loaded.options builtin, other user-defined colormaps may Enhancement box on the control panel. Ximtool has about a dozen colormapmenu under the View menu button on the main window, or from theOnce loaded, the colormap may either be changed using the builtin colormap

Builtin Colormaps

will change automatically as you cycle through the frames.you can define different colormaps or enhancements for each frame, theydisk that contains a colormap. Each frame defines its own colormap soif loaded by a client, or a private colormap when loading an image fromBy default XImtool will display images using either a grayscale colormap

Colormap Selection

is repositioned to the local maximum value within the box. to the computed centroid of the centroiding box, otherwise the cursor
If enabled, the Ctrl-0 keystroke will reposition the cursor
Centroid Peaks
buffer, etc. in situations like overwriting an existing file, clearing the frame
The warnings options toggles whether you see warning dialog boxes
Warnings
when in tile frames mode. enhancement, cursor readback, etc.) still work for each frame even display window. All the usual operations (zoom and pan, colortable frames mode, 2 or 4 frames may be viewed simultaneously in the
The default display mode is to view one frame at a time. In tile
Tile Frames
dezooming via subsampling. The default is no antialising. fall in the sample grid, but it is significantly slower than can prevent subsampling from omitting image features that don't image is subsampled to compute the displayed image. Antialiasing to compute the displayed image. If antialiasing is disabled then smaller display window, antialiasing causes all the data to be used
When dezooming an image, i.e., displaying a large image in a
Antialias
or may not fill the display window. predictable, but the image may be clipped by the display window, autoscale disabled (the default), the image scale is more be automatically scaled to fit within the display window. With
If autoscale is enabled then at zoom=1, the frame buffer will
Autoscale
Toggles the display of the WCS Coords Box marker.
Coords Box
Toggles the display of the magnifier marker.
Magnifier
Toggles the display of the Panner marker.
Panner

Options:

mode, plus you can load frames etc.blink frames. All the ximtool controls are fully active during blinkwant to turn off the panner and coords box, and match the LUTs of all thebut many of these will slow blink down. To get the fastest blink you mayNOTE: You can blink no matter what ximtool options are in effect,frame per button press.to zero the Blink button will single step through the blink frames, oneThe Blink button turns blink on and off. When the blink rate is setaffected.the same values as the display frame. Frames not in the blink list are notThe Match LUTs button sets the enhancement of all blink frames todisplay frame. Frames not in the blink list are not affected.The Register button registers all the blink frames with the currentzero, enabling single step mode (see below).the arrow buttons. If you set the blink rate small enough it will go toThe Blink Rate can be adjusted as slow or as fast as you want usingbutton next the the Reset button to bring up a new control panel.the full list of 16 frames now supported is gained using the box iconoriginal four frames to be specified in the blink list, however access toto the desired frame number. The main control panel allows only thehit the Reset button and click on each blink frame button until it is setthe list more than once. To program an arbitrary list of blink frames,"blink rate" seconds between each frame. The same frame can be entered inin effect ximtool just cycles through these frames endlessly, pausingBlink frames is the list of frames to be blinked. When blink mode is

Blink Controls

pseudocolor colortables and for private colormaps loaded from disk images.one-to-one values (1.0, 0.5). This is the preferred setting for many of thenormalize the enhancement, i.e. set the contrast and brightness to the defaultThe Normalize button (on the bottom of the control panel) will faster.window the display. If this is annoying, using MB3 in the display window isuse of the private colormap the sliders are a bit sluggish when dragged to inverts the colormap (multiples the contrast by -1.0). Note that due to thebrightness (lower slider) of the display. The Invert button The two sliders adjust the contrast (upper slider) and colormaps to this list.colormaps. Click on the one you want to load it. You can add your ownAt the top is a scrolled list of all the available

Enhancement Controls

images to large to fit on the screen.and allows you to resize the display window to any size you want, or view buffer. Note that autoscale has much the same effect,Fit Frame makes the display window the same size as the frame if you don't want integerization).Aspect also integerizes the zoom factor (use the version in the View menu Aspect recomputes the view so that the aspect ratio is 1.0. current zoom/center values, and the unzoomed image.Center centers the field. Toggle Zoom toggles between the Control keystrokes, e.g. Ctrl-5 will set zoom factor 5.to zoom factor 10. Specific zoom factors may also be accessed directly as larger or smaller zoom factors, e.g. "Ctrl-5" followed by "Zoom In" will get youred numbers dezoom. Zoom In and Zoom Out may be used to go toThe numbers in the Zoom box are zoom factors. Blue numbers zoom,This information is also presented in the Info panel.relative to the autoscale factor, which is 1.0 if autoscaling is disabled. matter whether or not autoscale is enabled). Zoom isdisplay pixels per frame buffer pixel, and is an absolute measure (it doesn'twill be the same unless autoscale is enabled. The scale is in units of factors, and the X,Y zoom factors. The scale factor and the zoom factor The text display window gives the field X,Y center, X,Y scale automatically if requested by the client.frame buffer configuration, new frame buffers (up to 4) will be createddefined. Currently, the only way to destroy a frame buffer is to change theThe Frame box will list only the frame buffers you currently have

View Controls

on the server status, and selecting the WCS readout options (see below).setting the frame tile configuration (see below), more detailed informationpanel selectable with a Tab widget. There are also new Tab panels forhave now been integrated into a single window with the appropriate controlThe separate windows previously used for Control/Print/Load/Save/etcprovides widgets for selecting the desired control panel).Control Bar accessed by the rightmost button on the menubarof the display in the standard GUI (in the alternate GUI the pressing the leftmost button in the row of buttons at the upper right sidebyaccessed either via the Options menu from the main window menubar, orcapabilities the program has for image display. The control panel can beXImtool has a control panel which can be used to exercise most of the

Display Panel

Integrated Control Panel

drift if the box is too large and includes too many background pixels.if the box size is set appropriately, the centroid position may appear toonly pixels above the mean value within the box are used. It works bestCentroiding is done using only the scaled screen pixel values and(defaults to True). control panel or by resetting the peakCentroid GUI resource"Centroid Peaks" option from the main Displaybox however this can be changed to find the max pixel by selection thevalue. The default peak-up action is to find the centroid position in thelocal minimum value. In either case the cursor is reposition to the computedpixel value within this box region, Alt-Ctrl-0 (zero) will find theThe Ctrl-0 (zero) key finds either a centroid or the local maximumsize respectively. A marker will flash briefly to indicate the box size.Ctrl-[ and Ctrl-] commands to descrease/increase the box(defaults to 5 pixels) but can be adjusted interactively using theThe initial box size is controlled with a centerBoxSize GUI resourceand fine tune it quickly before typing the application keystroke command.cursor position, allowing you to approximate the position with the mousecursor to a centroid or min/max pixel value within a bounding box of theSeveral new keystroke commands are available to reposition the

Peak-Up Cursor Centroid Positioning

which update contuously.plots are labeled using the frame z1/z2 values and contain cursor indicatorsto avoid complications of accessing multiple images in a mosaic display. BothGraphs are (currently) drawn using only the scaled display values only one axis. then moving to one of the graphics windows to perform cut graphs in freeze the cursor in the main display using the Alt key (see above), and the complementary cut-graph. This can be used for example to and can be used to update the cursor readout on the main image window
If enabled, the graphics cursors in either of the plots are active
Graphics Cursors
but will cause a delay on slower ones. This is another option that can be set safely on faster machines
If enabled, all cursor movements cause the display to be updated.
Smooth Cursor
the display continuously. display, small movements around an object of interest will update
If enabled, large jumps of the cursor do not update the graphics
Jump Cursor
(Not Yet Implemented)
Image Pixels
this only occassionally to limit any lag in the cursor tracking. no apparent loss of speed, however older machines may wish to use accurate display. On fast modern machines this can be enabled with
Draw the graphics using all screen pixels to produce the most
Better Accuracy
but without sacrificing too much accuracy. This is done by subsampling pixels to produce a smoother graph
Draw the graphics so they update at the fastest possible rate.
Better Speed
also shows an options panel for the graphs. Current options are:the window. When both panels are enabled the corner area of the displayby the small H and V buttons in the lower right corner ofon the bottom and right side of the main display window and are controlledcut-graphs of the display, these appear as "flip-out" panels that appearXImtool now has the ability to display horizontal and vertical

Image Cut Graphics

with access to all 16 available frames.Blink/Register box of the Display control panel to bring up a new windowthe list. For accessing more than four frames, use the box icon in theusing the Display control panel. By default all frames are included inThe register display list is shared with the blink list and can be setdisplay what the offset is for each frame.remain registered with the given offset. The control/info panels nowmarker is moving around. Drag the panner around and all frames stillframe and as you blink through it remains registered but the panner boxauto-register function. What you should see is the object centered in theHitting Register will zero the offsets, as will toggling the when autoreg is enabled.
  • A Ctrl-a command will toggle the feature, offsets are only allowed frame should also be panned to the new image with the proper offset.
  • Pan around the image in one display frame, then switch frames and the new offset. command to centroid each object in the frame before the Ctrl-o cumulatively added so you can use the Ctrl-0 (Ctrl-zero) peak-up offset it to the center. Repeat as necessary. Small corrections will be each frame, position the cursor on the star and type Ctrl-o to
  • Cycle through the frames and you may see a small shift of the star. For
  • Use Mouse-Button-2 to center the star in the frame. alt-gui) and pan/zoom to some star of interest.
  • Enable Auto-Register (either on the Control Panel or the toolbar on theFor example, to use this feature do the following:zoomed to a new location in the frame buffer.maintained for all frames in the list if any one of them is panned ormore display frames with an offset. When enabled, this registration isThe auto-register feature allows you specify a registration of two or

    Auto-Registration of Images

    the position information displayed on the screen.another window (to enter text, start a program, whatever) without losingfor example to position the cursor but then allow the cursor to be moved toand draw crosshairs on the screen at the last position. This can be usedHolding down the Alt key will now freeze the cursor display readout

    Freezing Cursor Readout

    from the frame buffer.image, with the ISM off the pixel table displays the scaled image valuesaxes are shown. The pixel table will display actual pixel values from theshowing North-East if a WCS is available, otherwise just the current X-YWith the ISM enabled the Compass indicator will display a set of arrowsnon-zero value will be flagged with the color change.red background color. Only the Coords display will show the value, anythe Coords bpm display as well as the main window wcsbox will change to akeyword by convention. If the cursor passes over a bad pixel in the mask,bad pixel mask is currently assumed to be named in the image header "BPM"is able to flag pixels in images with an associated bad pixel mask. ThisBy selecting the BPM Data toggle from the Coords.Options panel ximtooldisplay.panel and wcsbox marker will adjust size automatically depending on theeach WCS. Up to four systems may be displayed at one time, the coordinatethe current panel or main image window using the remaining toggles for(sexigesimal, degrees, etc) using the Format menu, and the display tochosen using the Type menu on the panel, the readout formatOptions toggle on the Coords panel. Available coordinate systems areamplifier coords, etc) can be selected for display by hitting theto galactic coordinates or some other sky system, physical coords,marker. Alternate coordinate systems (e.g. transformation of equatorialthe Coords panel readout as well as the main display window wcsbox textBy default, the logical and world image coordinates are displayed to bothoptionally return bad pixel information during the cursor readout.The ISM task also has access to the associated BPM images and canposition), and computes one or more coordinates from the image position.determine the pixel value (or a small table of values around the currentThe ISM (ISM is Image Support Module) task then reads the image tomaps the current frame buffer position to a position in the cached image.where they are cached for access. Cursor movements generate an event thatserver or subsequently displayed will be passed to the external processtoggle on the alt-gui menubar. When enabled, images currently in theWCS/Pix button on the Coords tab in the control panel or the ISMWCS readout is enabled by default but can be toggled or reset using theaccess the image and pass the coordinate/pixel information to the GUI.external task (the 'ism_wcspix.e' binary in the new distribution) toimage WCS values (e.g. RA/DEC, GLAT/GLONG, etc). This is done using an(as well as the scaled value previously shown) and the cursor position inXImtool now has the ability to display the actual pixel value of an image

    Real-Time WCS/Pixel Readout

    backspace key in a marker to destroy the marker.
  • Destroy destroys the marker. You can also hit the delete or types of markers. buggy and it isn't very useful, but you can use it to play with different
  • Type is a menu of possible marker types. This is still a little
  • Color is a menu of possible marker colors.
  • Unrotate unrotates a rotated marker. printed in the Info Panel.
  • Info prints a description of the marked region. The text is configured by the Save Panel.
  • Save saves the region outlined by the marker to the file currently file currently configured by the Print Panel.
  • Print prints the region outlined by the marker to the printer or the aspect ratio of the resultant image will not be unitary. the display window. Since the marker is not likely to be exactly square,
  • Fill exactly zooms the area outlined by the marker, making it fill In this way you can mark a region of the image and zoom it up.
  • Zoom does an equal aspect zoom of the region outlined by the marker.
  • MB3 (mouse button 3) calls up the marker menu (by default).

    Marker Menu Options

    the original coords box back if you delete it).it with the delete or backspace key. (The Initialize button will getscreen. You can also resize the coords box by dragging a corner, or deleteMB1 and hold it down, and drag the coords box marker somewhere else on theFor example, try placing the pointer anywhere in the coords box, then press cursor is in a marker. keystroke commands will not be recognized when the
  • Markers have their own translation resources and so the default
  • Delete or backspace in a marker deletes it. the bottom of the stacking order.
  • MB2 in the body of a marker "lowers" the marker, i.e. moves it to "on top" in the stacking order. stacked markers is active. If the markers overlap, this will be marker of the other. The active marker is highlighted to tell you which of the
  • Markers stack, if you have several markers and you put one on top
  • Shift-MB1 on the corner of most markers will rotate the marker. resizes the marker.
  • MB1 near a marker corner or edge, depending on the type of marker,
  • MB1 anywhere inside a marker may be used to drag the marker.basic marker manipulation keystrokes.markers share some of the same characteristics, so it is worthwhile learningpanner and the coords box. All for the marker zoom feature discussed above, and also for the (e.g. the prototype IRAF science GUI applications). Ximtool uses markersfeature of the Gterm widget and are used more extensively in other programsAlthough ximtool doesn't do much with markers currently, they are a general

    General Markers

    marker to a new position in the frame.while the cursor is in the marker. There is presently no way to move theThe marker can also be destroyed by hitting the Delete or Backspace key
    Destroy the marker.
    Destroy
    hardcopy of the display. in the frame. Doing so will retain the marker when printing a
    (Not Yet Implemented) Draw the marker as overlay graphics
    Draw into Frame
    Select the color of the marker.
    Color
    as their default. markers created after the unit change will readout in the new units arcminutes, or degrees instead of the default logical pixels. All options, distances may also be read out in units of arcseconds, and a WCS is present in the image and selected as one of the readout
    Sub-menu to select the units of the display. If the ISM is enabled
    Units
    to shows this option to be "UnSticky" to remove this feature. ruler "sticky" so it will not be erased, subsequent use of the menu to a pan, zoom, flip, or frame change. This option will make the
    By default rulers are destroyed whenever the display changes due
    Sticky
    options:the Right-Mouse-Button can be used inside the marker to popup a menu ofDistances are measured by default in image logical pixels howevernumber of ruler markers can be created in the frame.it will be erased automatically once the mouse button is released. Anylifting the mouse button will leave the marker on the display, otherwiseinitial point to the current mouse position. Releasing the Ctrl key beforethe mouse will drag out a "ruler marker" measuring the distance from theHolding down the Ctrl key and the Left-Mouse-Button while moving

    Ruler Markers

    with the pointer like any other marker.The coords box is a marker (text marker) and it can be moved and resizeda "+" will be displayed after the intensity value.pixel values loaded into the frame buffer. If a display pixel is saturated200 pixel values can be displayed since this is the limit on the range ofbe increased however by zooming the image). More seriously, at most aboutcoordinate values are possible in either axis (the positional precision canframe buffer value. For example, if the display window is 512x512 only 512displayed quantity is limited by the range of values of the associated rawunder the pointer. All coordinate systems are linear. The precision of acoordinates of the pointer, and Z, the world equivalent of the pixel valueThe quantities displayed in the coords box are X, Y, and Z: the X,Y worldthese world coordinates as the pointer is moved about in the image window.client defined coordinate system. The coords box feature is used to displaybuffer pixel coordinates and pixel values to be converted to some arbitraryXimtool provides a limited notion of world coordinates, allowing frame

    Coords Box Marker

    magnifierAreaand magnifierGeom GUI resources respectively.The magnifier marker can be disabled by defining the displayMagnifierthe marker until the button is released.for just a quick look holding down the Shift Key and MB2 Button will displayMagnifier option from the Options menubar button. Alternatively,By default the magnifier marker is not visible, to toggle it select thecreated by hitting MB1 in the marker.of the marker. Other zoom factors may be selected using the popup menu in the marker represents and area in the image that's one-fourth the sizesize of the magnifier marker itself. The default zoom is 4, i.e. the areaimpact on the system. The zoom factor is expressed as some fraction of themouse movement or with the cursor movement keystrokes) to minimize theIt will be updated as the cursor moves but only for small motions (eitherThe magnifier marker can be used to zoom in on a small area around the cursor.

    Magnifier Marker

    pannerArea and pannerGeom GUI resources respectively.GUI resource, its size and location can be controlled using theThe panner marker can be disabled by defining the displayPannerwindow to pan the image.image to that point. This is analogous to typing MB2 in the main displayA special case is MB2. Hitting MB2 anywhere in the panner window pans thedeletes the panner.corner with MB1. Typing delete or backspace anywhere in the panner window constrained zoom. The panner window itself can be resized by dragging a image). Resizing the region marker zooms the image; this is a non-aspect display window, or to drag the region marker within the panner (pan the you can use MB1 to reposition on the panner window within the main image mentioned below apply to these markers as well, e.g. mark the displayed region of the frame. Most of the usual marker keystrokesThe panner window uses two markers, one for the window border and one toexactly where the image has been loaded into the frame.then displaying a square image (e.g. dev$pix) and the panner will show youframe buffer configuration to a nonsquare frame buffer (e.g. imtcryo) andThe panner window always displays the full frame buffer. Try setting the

    Panner Marker

    Markers

    <file> File to load on startup -unix_only Use unix sockets only -unix <name> Unix socket to use -tile Tile frames on startup? -port_only Use inet sockets only -printConfig <file> Printer configuration file -port <num> Inet port to use -nframes <num> Number of frames at startup -memModel <type> Memory model (fast,small,beNiceToServer) -maxColors <num> Number of colors -ismdev ISM socket template -invert Invert colormap on startup? -inet_only Use inet sockets only -imtoolrc <file> Frame buffer configuration file -help Print command-line summary -gui <file> GUI file to use -fifo_only Use fifo pipes only -fifo <pipe> Fifo pipe to use -displayCoords <bool> Display wcs coords box -displayPanner <bool> Display panner box -defgui Print default GUI to stdout -config <num> Initial config number -cmapName <name> Private colormap name -cmapInitialize <bool> Initialize colormap at startup -cmapDir1 <dir> User cmapDir 2 -cmapDir1 <dir> User cmapDir 1 -cmap2 <file> User cmap 2 -cmap1 <file> User cmap 1 -basePixel <num> Base colormap pixel number The following command-line options are currently recognized:

    Command-line Options

    application.a need for this, or for workaround suggestions depending on yournumerous code change to XImtool. Please contact site support if there isframes by the Load panel can be done independently but would also requireclient IRAF code to be effective. Allowing creation of more than 16More frames are possible if needed but will require further changes to thefully backwards compatible for other servers.and adjust the 'frame' parameter maximum accordingly. The changes arewhether the display server being used supports 16 frames or the original 4original four frames. The new DISPLAY task will automatically senseversions of IRAF will continue to work but cannot access more than theadvantage of this frames. All changes are backwards compatible, olderV2.11.4 or later client tasks (and CDL library) are required to takethe full 16 frames allowed by the IIS protocol is now available. IRAFAs part of the extensive GUI changes with the V1.3 release, support for

    Support for 16 Display Frames

    define up to 16 frames, configuration numbers need not be sequential.At most 128 frame buffer sizes may be defined, each configuration may 3 1 1024 1024 # comment 2 2 800 800 1 2 512 512e.g. configno nframes width height [extra fields]The format of the frame buffer configuration file isresource.using the -imtoolrc command line flag or imtoolrc application.imtoolrc file in your home directory, or a new file may be specifiedIMTOOLRC environment variable naming the file to be used, by creating afile is /usr/local/lib/imtoolrc, this can be overridden by defining aand cleared prior to the display. The default frame buffer configurationthan previously defined frames, all available frames will be initializedif it means clipping the image. If a new frame buffer is a different sizeconfiguration number is passed in by the client and loaded explicitly eventhe configuration table. When used as a display server the frame bufferbuffer the same size as the image will be created in an unused portion ofthe current image, if no suitable buffer can be found a custom framesearched for a defined frame buffer that is the same size or larger thanrun in standalone mode) the frame buffer configuration file will be(of 16 possible) frames will be created. When loading disk images (i.e.XImtool starts up using default frame buffer size of 512x512 pixels, two

    Frame Buffers

    other protocols may be supported in the future.types of ports. Clients communicate with XImtool using the IIS protocol,By default ximtool listens simultaneously for client connctions on all three customize things. multiple users to run ximtools on the same host without having to each user gets their own unix domain socket, so this option allows faster than a tcp/ip socket, and comparable to a fifo. By default
    Like a tcp/ip socket, but limited to a single host system. Usually
    unix domain socket
    server over a remote network connection anywhere on the Internet. a custom port may be specified. This permits connecting to the
    Clients connect via a tcp/ip socket. There is a default port, or
    tcp/ip socket
    be used, or a private set of fifos.
    The traditional approach. The default, global /dev/imt1[io] pipes may
    fifo pipes
    Ximtool allows clients to connect in any of the following ways:

    Client Connections

    Alt-Motion Freeze cursor readout Ctrl-Btn1Up Destroy Ruler Marker Ctrl-Btn1Motion Resize Ruler Marker being created Ctrl-Btn1Down Create Ruler Marker Btn3Down/Motion Brightness/contrast scale the image Btn2Down Zoom/center on cursor position Btn1Motion Resize marker being created Btn1Down Create a Marker Shift-Btn2Up Turn off crosshair cursor Shift-Btn2Down Turn on crosshair cursor Shift-Btn1Up Turn off magnifier Shift-Btn1Down Turn on magnifier Mouse Button Events Alt-Ctrl-0 (zero) Find local minimum Ctrl-0 (zero) Centroid/find local maximum Ctrl-] Increase centroiding box size Ctrl-[ Decrease centroiding box size Peak Up Centroiding Ctrl-Alt-Right Shift one half frame right Ctrl-Alt-Up Shift one half frame up Ctrl-Alt-Down Shift one half frame down Ctrl-Alt-Left Shift one half frame left Ctrl-Right Shift one full frame right Ctrl-Up Shift one full frame up Ctrl-Down Shift one full frame down Ctrl-Left Shift one full frame left Frame Positioning Ctrl-o Set frame offset Ctrl-a Toggle auto-registration Auto-Registration Shift-Ctrl-Right Move cursor ten pixels right Shift-Ctrl-l Move cursor ten pixels right Shift-Ctrl-Up Move cursor ten pixels up Shift-Ctrl-k Move cursor ten pixels up Shift-Ctrl-Down Move cursor ten pixels down Shift-Ctrl-j Move cursor ten pixels down Shift-Ctrl-Left Move cursor ten pixels left Shift-Ctrl-h Move cursor ten pixels left Ctrl-l / Ctrl-Right Move cursor one pixel right Ctrl-k / Ctrl-Up Move cursor one pixel up Ctrl-j / Ctrl-Down Move cursor one pixel down Ctrl-h / Ctrl-Left Move cursor one pixel left Cursor Positioning Alt-t TclShell popup Alt-s Save popup Alt-p Print popup Alt-l Load file popup Alt-i Info box popup Alt-h Help popup Alt-c Control panel Alt-b Blink frames Panel Toggles Ctrl-Alt-f Fitframe Ctrl-Alt-q Quit Ctrl-1 thru Ctrl9 Set integer zoom factor Alt-1 thru Alt-4 Set frame to be displayed Ctrl-- Zoom out Ctrl-+ Zoom in Ctrl-> Increase blink rate (blink slower) Ctrl-< Decrease blink rate (blink faster) Ctrl-= Print using current setup Ctrl-y Flip Y Ctrl-x Flip X Ctrl-u Unzoom (zoom=1) Ctrl-t Tile frames toggle Ctrl-s Match LUT scaling Ctrl-r Register Ctrl-p Toggle panner Ctrl-n Normalize Ctrl-m Toggle magnifier Ctrl-i Invert colormap Ctrl-f Forward frame Ctrl-c Center frame Ctrl-b Previous (back) frame Misc Functions The following keystrokes are currently defined in the GUI:

    Keystroke Accelerators

    to the pointer location, or click and drag to continuously adjust the display.contrast and brightness values. Click once to set the values correspondingThe position of the pointer within the display window determines the MB3 is used to adjust the contrast and brightness of the displayed image.cursor.until the button is released, this can be useful for fine positioning of thekey while clicking MB2 will cause a full-screen crosshair cursor to appearthe pointer to the center of the display window. Holding down the ShiftMoving the pointer to a new location and clicking moves the feature under clicks) the image. Further clicks cycle through the builtin zoom factors. Clicking on MB2 in the main image window pans (one click) or zooms (two information on markers.to drag or resize the marker. See below for more you can do with the marker, like zoom the outlined region. MB1 can be usedMB3 will call up a marker menu listing some thingsBACKSPACE to delete the marker. With the pointer in the marker,want the marker, put the pointer in the marker and type DELETE orto select a region of the image. If you do this accidentally and don'twindow creates a rectangular region marker, usedClicking and dragging MB1 (mouse button 1) in the main image

    Mouse Operations

    main image window).see the on-line help (i.e. use the '?' button or Alt-h keystroke in theFor more detailed information on the operation of the control panels pleaseimage as well as buttons for frame selection and the help button.the GUI. The right side of the menubar contains command buttons to flip theor blinking etc. Some of this functionality is duplicated elsewhere inOptions menu allows you to call up control panels, toggle markersmenu let's you select the image orientation, zoom, colormap or frame. Theis used to load/save/print an image as well as quit the task. The Viewwindow menubar has several menu buttons to the left: the Files menuas well as a general purpose Control Panel. The mainLoad, Save and Printpannels that control various specific functions such as imageThe GUI consists of a large image display window and a number of smaller

    GUI Overview

    they had been displayed by a client.This allows you to browse images and perform the same manipulations as ifcommand line or by using the Load Panel.When run in standalone mode, images may be loaded on the printed as Encapsulated Postscript to a printer or disk file.saved to a disk file in a number of different formats, or is loaded in the display buffer it may be enhanced,(other/different protocols may be supported in the future). Once the imagetask makes a connection and sends the image across using an IIS protocoldomain sockets, or inet sockets. A display client like the IRAF DISPLAYclient connections simultaneously on fifo pipes, unixsoftware such as IRAF. Once it is running it will accept As a display server, XImtool is started as a separate process from client

    Getting Started

    Tcl Interactie Shell Coords Panel Tile Panel Info Panel Printer selection Processing Options Color Options Postscript Options Print Panel Color Format File Name Save Panel Frame Selections Direct File Load File Patterns Directory browsing Load Panel User-defined Colormaps Builtin Colormaps Colormap Selection Centroid Peaks Warnings Tile Frames Antialias Autoscale Coords Box Magnifier Panner Options: Blink Controls Enhancement Controls View Controls Display Panel Integrated Control Panel Peak-Up Cursor Centroid Positioning Image Cut Graphics Auto-Registration of Images Freezing Cursor Readout Real-Time WCS/Pixel Readout Menu Options General Markers Ruler Markers Coords Box Marker Magnifier Marker Panner Marker Markers Support for 16 Frames Frame Buffers Client Connections Command-line Options Keystroke Accelerators Mouse Operations GUI Overview Getting Started
     

    Table of Contents:


    task.More detailed documentation is also available in the man page for thisPlease contact iraf@noao.edu with comments, bugs, or suggestions.
  • TclShell -- Expert-mode interactive shell.
  • Printer Configurations -- Configuring output devices.
  • Frame Buffers -- Explanation of Frame buffers.
  • Client Connections -- Use as a display server.
  • Command-line Options -- Startup flags.
  • Advanced Features:
  • Info Panel -- Information panel.
  • Print Panel -- Print panel operation and options.
  • Save Panel -- Save panel operation and options.
  • Load Panel -- Load panel operation and options.
  • Control Panel -- Operating the Control panel.
  • Markers -- Panner/WCS markers, general markers.
  • Keystroke Accelerators -- Keystroke summary.
  • Mouse Operations -- Doing stuff.
  • GUI Overview -- What it looks like.
  • Getting Started -- The basics.
    • Basic Usage:
      More detailed help is available on the following topics:

      load images directly when run as a standalone task.client software (such as IRAF) to load images into the display, or it canNational Optical Astronomy Observatories. To view images you needXImtool is an image display server developed by the IRAF Project at the

      Welcome to XImtool V1.3

      XImtool On-Line Help Summary setValue {serverwcsclientsimtoolrc %s Base Pixel%20s: %s Max ColorsMemory ModelAntialias Type Current ColormapColormaps Available%20s: %d User Cmap 1User Cmap 2Cmap Dir 1Cmap Dir 2Printer ConfigPrinter FilePrinter Cmd Client Communications Channels Display Client Connections ISM Client Connections -------------------------- ---------------------- inet: %d inet: Disabled unix: %s none unix: %s unix: Disabled fifo: %s %s fifo: Disabled Available ISM Components Name Channel Command ---- ------- ------- Disabled %-9.9s %-15.15s '%s' Frame %d WCS & Mappings ------------------------ Frame WCS: # Scale factors a = %9.3f b = %9.3f %s # Cross factors c = %9.3f d = %9.3f %s # Translation tx = %9.3f ty = %9.3f %s # z-scale range z1 = %9.3f z2 = %9.3f %s # z-scale type logunknownlinearunitary zt = %9s %30s Mapping %d: a = %7.3f b = %7.3f c = %7.3f d = %7.3f tx = %7.3f ty = %7.3f z1 = %7.3f z2 = %7.3f zt: %s region %d: %s src: x=%9f y=%9f nx=%d ny=%d dest: x=%9d y=%9d nx=%d ny=%d ref: %s Frame Buffer Configuration Table -------------------------------- Imtoolrc File: %s Config NFrames Width Height ------ ------- ----- ------ %4d 0 n/a n/a <--- current %4d %2d %5d %5d %s ?wcspixIsm_taskism_taskPortport/tmp/.ISM%dIsm_addrism_addr/tmp/.IMT%dUnixaddrunixaddr/dev/imt1oOutput_fifooutput_fifo/dev/imt1iInput_fifoinput_fifo/usr/local/lib/ximprint.cfgprintConfig/usr/local/lib/imtoolcmapcmapDir2UserCMapDircmapDir1cmap2noneUserCMapcmap1fastMemModelmemModel/usr/local/lib/imtoolrcImtoolrcimtoolrcdefaultGuiguiHighlightFrameshighlightFramesTileFramestileFramesInvertinvertboxcarAntialiasTypeantialiasTypeAntialiasantialiasAutoscaleautoscale9TileBorderColortileBorderColorTileBorderWidthtileBorderWidthNcolorsncolorsDefNFramesdefNFramesDefConfigdefConfigX11IRAF V1.3.1 - EXPORT VERSION send sigValue set label [ format "%10.4f" [lindex $stat 1] ] send meanValue set label [ format "%10.2f" [lindex $stat 0] ] send ptRowLabs setList $row ; send ptRowLabs highlight $c send ptColLabs setList $col ; send ptColLabs highlight $c send pixtab highlight [expr int(($psize * $psize) / 2)] send pixtab setList [lindex $tab 1] # Update the pixel table. global psizeproc wcspix_pixtab { tab col row stat } \# Display the pixel table. #resizeCoordsBox $up_todo send wtWcs$num set height $hght set hght 17 send fmtWcs$num setSensitive True send wiWcs$num setSensitive True send wpWcs$num "set on True ; setSensitive True" set hght 4 send fmtWcs$num setSensitive False send wiWcs$num "set on False ; setSensitive False" send wpWcs$num "set on False ; setSensitive False" if {[string tolower $label] == "none"} { send sysWcs$num set label $label global up_todoproc wcspix_wcstype { label num } \# Set the type of the WCS. editMenu sysMenu$i sysWcs$i $items lappend items "\"$nam\" f.exec \{setWcsSys $nam $i\}" lappend items "f.dblline" if {[string tolower $nam] == "line"} { foreach nam $wcslist { set items {} set wcslist [lindex $argv 0]proc wcspix_wcslist { argv } \# Handle the list of WCSs available for the current image. set Orient($objid) [list $frame $xflip $yflip] set yflip [lindex $argv 3] set xflip [lindex $argv 2] set frame [lindex $argv 1] set objid [lindex $argv 0] global Orientproc wcspix_orient { argv } \# Save the image display orientation information. set Compass($objid) [list $angle $xflip $yflip $transpose $xlab $ylab] #lappend Compass($objid) $angle $xflip $yflip $transpose $xlab $ylab set ylab [lindex $argv 6] set xlab [lindex $argv 5] set transpose [lindex $argv 4] set yflip [lindex $argv 3] set xflip [lindex $argv 2] set angle [lindex $argv 1] set objid [lindex $argv 0] global Compassproc wcspix_compass { argv } \# Save the object compass information. if {$redraw_compass} \ set cur_regid $regid set cur_objid $objid wcsFmtWcs [expr ($i + 1)] $wcsname $xval $yval $xunits $yunits set yunits [lindex $coord 5] set xunits [lindex $coord 4] set yval [lindex $coord 3] set xval [lindex $coord 2] set wcsname [lindex $coord 1] set coord [lindex $args $i] for {set i 0} {$i < 4} {incr i} { set nargs [llength $args] set args [lrange $argv 4 end] wcsFmtBValue $bpmval wcsFmtIValue $pixval set bpmval [ lindex [lindex $argv 3] 1] set pixval [ lindex [lindex $argv 2] 1] set regid [ lindex [lindex $argv 1] 1] set objid [ lindex [lindex $argv 0] 1] global frameCache cur_objid cur_regid redraw_compassproc wcspix_wcstran { argv } \# Format the results of the WCSTRAN method. unset Compass($id) if [info exists Compass($id)] { set frameCache($c) $new incr i2 2 incr i1 2 } lappend new [lindex $frameCache($c) $i2] lappend new [lindex $frameCache($c) $i1] if {[lindex $frameCache($c) $i2] != $id} { while { $i2 < [llength $frameCache($c)] } { set new { } set i2 1 set i1 0 set id [lindex $argv 0] global frameCache Compassproc wcspix_uncache { argv } \# Uncache an image in the GUI. set redraw_compass 1 set cur_objid $id setHdrObjMenu $frame catch { getHeader $image $id } regsub -all {[\[]} $name "\\\[" image # Automatically get the header. lappend frameCache($frame) $name $id # Store the image name and id in a local cache. set id [lindex $argv 2] set frame [lindex $argv 1] set name [lindex $argv 0] global frameCache redraw_compass cur_objidproc wcspix_cache { argv } \# Cache an image in the GUI. send ismToggle setSensitive True wcsFmtIValue "0" set ism_capable 1 global ism_capableproc wcspix_capable args \# it on at this point.# Client connected is capable of using the ISM, but don't necessarily turn send ismToggle setSensitive False wcspix_shutdown set rulerWCS 0 set ism_capable 0 send wcspix quit global ism_enable ism_capable rulerWCSproc wcspix_disable args \# ISM visible will only confuse the user.# indicated it doesn't use the new mapping facilities and having the WPIX# Disable the WPIX module. We are only called when a display client has resizeCoordsBox 0 wcsFmtBValue "0" wcsFmtIValue "N/A" send woptBPM setSensitive False send woptBPM set on False send imageHeader setSensitive False send ismToggle set on False set ism_enable 0proc wcspix_shutdown args \# Shutdown the WPIX module. send client info clients if { [send infoOptClients get on] } { send wcspix set format [send fmtWcs$i get label] $i send wcspix set wcs [send sysWcs$i get label] $i for {set i 1} {$i <= 4} {incr i} { if {$pixtab_up} { send wcspix set psize $psize } if {$c != "0"} { unset frameCache($c) } foreach c [array names frameCache] { # Initialize the frame cache. resizeCoordsBox $up_todo if {$up_todo < 3} { ismInitInfoText send woptBPM setSensitive True send imageHeader setSensitive True send ismToggle set on True set ism_enable 1 global up_todo psize pixtab_up frameCache global ism_enable frameproc wcspix_startup args \# Startup and initialize the wcspix module with the GUI state. wcspix_pixtab $tab $col $row $stat set stat [lindex [lindex $arg 1] 3] set row [lindex [lindex $arg 1] 2] set col [lindex [lindex $arg 1] 1] pixtab { set tab [lindex [lindex $arg 1] 0] wcspix_cmd { send wcsIsmCmd set string [lindex $arg 1] } send fmtWcs$num set label [lindex $arg 1] } wcsfmt { set num [lindex $arg 2] wcstype { wcspix_wcstype [lindex $arg 1] [lindex $arg 2]} orient { wcspix_orient [lrange $arg 1 end] } compass { wcspix_compass [lrange $arg 1 end] } send hdrKGText set insertPosition 0 send hdrText gotoId 0 wcsinfo { send hdrIGText append [lindex $arg 1] wcshdr { send hdrKGText append [lindex $arg 1] } [lindex $arg 1] ] [string trimright [send hdrText getText simple] "\n"]\ setText [format "
      %s\n%s
      " \ imghdr { send hdrText \ wcslist { wcspix_wcslist [lrange $arg 1 end] } wcstran { wcspix_wcstran [lrange $arg 1 end] } uncache { wcspix_uncache [lrange $arg 1 end] } cache { wcspix_cache [lrange $arg 1 end] } capable { wcspix_capable } disable { wcspix_disable } shutdown { wcspix_shutdown } startup { wcspix_startup } switch $cmd { if {$wcspix_debug} { print "wcspix_msg: $cmd" } set cmd [lindex $arg 0] set arg [string trimleft [ string trimright [lindex $argv 0] ] ] global wcspix_debugproc wcspix_msg { argc argv } \set wcspix_debug 0set Orient(0) { 1 1 1 }set Compass(0) { 0.0 1 1 0 X Y }set redraw_compass 0set cur_regid 0set cur_objid 0# WPIX module support routines.} ; ismInitInfoText ism_info " " ism_info "\t -----------------------" ism_info "\t ISM Client Message Logs" set ismInfoText "" global ismInfoTextproc ismInitInfoText args \# Initialize the text. send infoText set string $ismInfoText if {$infoMode == "infoOptIsm"} { set ismInfoText [format "%s\n%s" $ismInfoText $text]proc ism_info { text } \set ismInfoText " " # Log a client message to the info panel} ; send ism_msg addCallback ism_msg info { ism_info $ism } deliver { ${ism}_msg $argc $argv } alert { Wexec client [lindex $new 1] } source { source [lindex $new 1] } switch $cmd { set argc [llength $argv] set argv [lrange $new 2 end] ;# get args set ism [lindex $new 1] ;# determine ISM name set cmd [lindex $new 0] ;# command name global ism_enable proc ism_msg { param old new } \# callback.# Handle messages from ISM clients and pass them on to the appropiate} ; send ismToggle addCallback ismToggle catch { send client ism_stop wcspix } send woptBPM setSensitive False send woptBPM set on False send imageHeader setSensitive False catch { send client ism_start wcspix } send woptBPM setSensitive True send imageHeader setSensitive True if {$ism_enable == 1 && $ism_capable} { # Set the coord-panel header option availability. set ism_enable $state global ism_enable ism_capable psizeproc ismToggle { widget type state args } \# Turn the ISM on or off.# ISM Module support routines.send tclDismiss addCallback tclClosesend tclEntry addCallback tclCommandsend tclExecute addCallback tclCommandExecutesend tclClear addCallback tclCommandClear set tcl_up 1 send tcl_panel map set tcl_up 0 send tcl_panel unmap if {$tcl_up} {proc tclPanel args \ set tcl_up 1 send tcl_panel map global tcl_upproc tclOpen args \proc tclClose {widget args} { send tcl_panel unmap }proc tclCommand {widget mode command args} { send server $command }proc tclCommandExecute {widget args} { send server [send tclEntry {get string}]proc tclCommandClear {widget args} { send tclEntry set string "" }set tcl_up 0# Define some TCL debug procedures.################################################}; send alert addCallback setAlert Wexec client [lindex $new 0] [lindex $new 1]proc setAlert {param old new} \# The parameter "alert" is used to forward alerts from the client.send warnCancel addCallback Wbuttonsend warnOk addCallback Wbutton send warning unmap warnCancel { if [llength $W_cancel_cmd] { send $W_object $W_cancel_cmd } warnOk { if [llength $W_ok_cmd] { send $W_object $W_ok_cmd }proc Wbutton {widget args} \ send warning map send warnText set label $msg set W_cancel_cmd [lindex $args 1] set W_ok_cmd [lindex $args 0] set W_object $object global W_object W_ok_cmd W_cancel_cmdproc Wexec {object msg args} \set W_cancel_cmd ""set W_ok_cmd ""set W_object ""# completed causes the new alert to override the first.# be in effect at a time; posting another alert before the first has# button selected then it is sent to the named object. Only one alert can# cancel button to close the popup. If an action has been posted for the# The message text is displayed in a popup and the user hits the ok or# Usage: Wexec object message [ok_action [cancel_action]]# and executes the given command if the user pushes OK.# Warning dialog. This pops up a dialog box with the given warning message,}; send pixelTable addCallback ptPixelTable catch { send wcspix set psize 0 } send pixel_panel unmap send pixelTable set on False send pixel_panel map send pixelTable set on True if {$pixtab_up == 1} { set pixtab_up $state global pixtab_up psizeproc ptPixelTable {widget type state args} \} ; pixtabSetSize $psize updatePixelTable $xc $yc $xc $yc send imagewin getCursorPos xc yc catch { send wcspix set psize $psize } if ($ism_enable) { # Notify the ISM we've changed size. set psize $size send ptColLabs set defaultColumns $size send pixtab set defaultColumns $size send pixtab "set width 525 ; set height 195" 9 { send pixel_panel "resize 610 310" send pixtab "set width 410 ; set height 150" 7 { send pixel_panel "resize 495 265" send pixtab "set width 290 ; set height 105" 5 { send pixel_panel "resize 375 215" send pixtab "set width 180 ; set height 60" 3 { send pixel_panel "resize 265 175" switch $size { # Now reset the window size. global psize ism_enableproc pixtabSetSize { size args } \} ; send pixtabClose addCallback pixtabClose catch { send wcspix set psize 0 } set pixtab_up 0 send pixelTable set on False send pixel_panel unmap global pixtab_upproc pixtabClose args \ send sigValue set label [ format "%10.4f" $stdev ] send meanValue set label [ format "%10.2f" $mean ] set stdev [ expr sqrt ($var) ] set stdev 0.0 if {$var <= 0.0} { set var [ expr (($sum2 - $sum * $mean) / ($npix - 1)) ] set mean [ expr ($sum / ($npix * 1.0)) ] set sum2 [ expr ($sum2 + $val * $val) ] set sum [ expr ($sum + $val) ] set val [lindex $pix $i] for {set i 4} {$i < $nend} {incr i} { set nend [ expr ($psize * $psize) + 4 ] set npix [ expr ($psize * $psize) ] set sum2 0.0 set sum 0.0 # Update the pixtab stats. send pixtab highlight $c set c [ expr int(($psize * $psize) / 2) ] send pixtab setList [ lrange $pix 4 end ] set pix [ send client getPixels $x0 $y0 $psize $psize ] set y0 [ expr int($cy - $psize / 2. + 0.5)] set x0 [ expr int($cx - $psize / 2. + 0.5)] #set pix [ send client getPixels $cx $cy $psize True ] # Update the pixel table itself. send ptRowLabs setList $yl ; send ptRowLabs highlight $c send ptColLabs setList $xl ; send ptColLabs highlight $c lappend yl [format " %10.1f " $y] ; set y [ expr ($y - 1.) ] lappend xl [format " %10.1f " $x] ; set x [ expr ($x + 1.) ] for {set i 0} {$i < $psize} {incr i} { set y $y2 ; set yl {} set x $x1 ; set xl {} # Update the table labels. set c [ expr int($psize / 2) ] set y2 [expr ($wy + $delta) ] set y1 [expr ($wy - $delta) ] set x2 [expr ($wx + $delta) ] set x1 [expr ($wx - $delta) ] set delta [expr int($psize / 2) ] if {$ism_enable} \ if {! $pixtab_up} \ global psize pixtab_up ism_enableproc updatePixelTable { cx cy wx wy args } \ { "9x9" f.exec { pixtabSetSize 9 } } { "7x7" f.exec { pixtabSetSize 7 } } { "5x5" f.exec { pixtabSetSize 5 } } { "3x3" f.exec { pixtabSetSize 3 } }createMenu pixtabMenu pixtabSize {set hdr_up 0set pixtab_up 0set psize 5# Pixel Table Callbacks.send hdrClear addCallback { send hFindEntry set string "" }} ; foreach w { hFindEntry hdrFind } { send $w addCallback hdrFind } send hdrText setSelection $start $end send hdrText gotoId $id if {[send hdrText searchText $phrase start end forward caseless] > 0} { set phrase [send hFindEntry get string]proc hdrFind args \# Search box for the header. editMenu objMenu hdrObjMenu $items lappend items [format "%s f.exec \{getHeader %s %d\}" $l $l2 $lid] regsub -all {[\[]} $l "\\\[" l2 set lid [lindex $i 1] set l [lindex $i 0] foreach i [list $frameCache($frame)] { set items { } # Create the menu of images for the header panel. global frameCache ism_enableproc setHdrObjMenu { frame args } \# Set the image menu in the header panel.} ; send hdrFilter addCallback hdrKeywFilter catch { send wcspix objinfo $hdrImageId $hdrKeywords } send hdrText setText "" set hdrKeywords $str if {$str != ""} { set str [ send hFindEntry get string ] global hdrImageId hdrKeywordsproc hdrKeywFilter args \ catch { send wcspix objinfo $hdrImageId $hdrKeywords } send hdrKGText set string "" send hdrIGText set string "" send hdrText setText "" send hdrObjMenu set label $name set hdrImageId $id set hdrImage $name global hdrImage hdrImageId hdrKeywordsproc getHeader { name id } \}; send imageHeader addCallback ptFitsHeader send hdr_panel unmap send imageHeader set on False send hdr_panel map send imageHeader set on True if {$hdr_up == 1} { set hdr_up $stateproc ptFitsHeader {widget type state args} \} ; send hdrClose addCallback fitsHdrClose set hdr_up 0 send imageHeader set on False send hdr_panel unmap global hdr_upproc fitsHdrClose args \set hdrKeywords "*"set hdrImageId ""set hdrImage ""# Header Display Callbacks.send hfClear addCallback { send hfEntry set string "" }} ; foreach w { hfEntry hfFind } { send $w addCallback helpFind } send warning map send warnText set label "Warning: No search phrase entered." send warning map send warnText set label "Search string not found." send helpText setSelection $start $end send helpText gotoId $id set id [max 1 [expr $elid - 10] ] set elid [lindex [lindex $start 0] 0] if {[send helpText searchText $phrase start end forward caseless] > 0} { if { $phrase != "" } { set phrase [send hfEntry get string]proc helpFind args \}; send helpHome addCallback hlpHome send helpBack setSensitive False send helpForward setSensitive False send helpText gotoId 0 set linkIndex 0 set links { 0 }proc hlpHome args \}; send helpBack addCallback hlpBack incr linkIndex 1 if {$linkIndex >= 0} { send helpForward setSensitive True } if {$linkIndex == 0} { send helpBack setSensitive False } if {$linkIndex >= 0} { incr linkIndex -1proc hlpBack args \ }; send helpForward addCallback hlpForward incr linkIndex -1 send helpBack setSensitive True if {$linkIndex == [expr [llength $links] - 1]} { send helpText retestAnchors send helpText gotoId $anchID set anchID [lindex $links $linkIndex] if {$linkIndex <= [llength $links]} { incr linkIndex global links linkIndexproc hlpForward args \# Callbacks to position forwards and backwards in link list.}; send helpText addCallback testAnchor testAnchor return [info exists visited($href)] global visitedproc testAnchor {widget cbtype href} \}; send helpText addCallback anchorSelected anchor send helpText retestAnchors send helpText gotoId $anchID if {$linkIndex == [expr [llength $links] - 1]} { send helpForward setSensitive False incr linkIndex lappend links $anchID if {[lindex $links [expr $linkIndex + 1]] != $anchID} { set links [lrange $links 0 $linkIndex] if {$linkIndex > 0 && [lindex $links [expr $linkIndex + 1]] != $anchID} { send helpForward setSensitive False set links { 0 } if {[lindex $links 1] != $anchID} { send helpBack setSensitive True if {$linkIndex == 0} { set visited($href) 1 set anchID [send helpText anchorToId $href] global visited links linkIndexproc anchorSelected {widget cbtype event text href args} \}; send help addCallback getHelpText helpPanel send helpText setText $newproc getHelpText { param old new } \}; send helpClose addCallback helpQuit set help_up 0 send help_panel unmapproc helpQuit args \} ; send panelHelp addCallback panelHelp Helpproc panelHelp args \ set help_up 1 send help_panel map if {$help_up} {proc helpPanel args \ set help_up 0 send help_panel unmap send client help if {$help_up == 0} { global help_upproc Help args \set visited(0) emptyset linkIndex 0set links { 0 }# Stuff for keeping track of visited anchors.send helpInfo1 set label $version 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff}; send helpNOAOLogo "set bitmap noao_logo"0x7f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xff,0xff, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf8, 0xff,0xff, 0x01, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0xfc, 0xff,0xff, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xff,0xff, 0x0f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff,0xff, 0x1f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x80, 0xff, 0xff,0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xc0, 0xff, 0xff,0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff,0xff, 0xff, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff,0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff,0xff, 0xff, 0x03, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0xff, 0xff,0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff,0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0xff, 0xff,0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0xff, 0xff,0xff, 0xff, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0xff, 0xff,0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0xff, 0xff,0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,createBitmap noao_logo 45 45 {0xff, 0xfc, 0xff, 0xff, 0xff, 0xef}; send helpIRAFLogo "set bitmap iraf_logo"0xff, 0xf8, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xe7,0xff, 0xf1, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xe0,0xff, 0xc1, 0xff, 0xff, 0x3f, 0xf0, 0xff, 0xe1, 0xff, 0xff, 0x7f, 0xf8,0xff, 0x03, 0xff, 0xff, 0x07, 0xfc, 0xff, 0x83, 0xff, 0xff, 0x0f, 0xf8,0xff, 0x03, 0xfe, 0xff, 0x02, 0xfe, 0xff, 0x03, 0xfe, 0xff, 0x03, 0xfc,0xff, 0x07, 0xf2, 0x17, 0x03, 0xff, 0xff, 0x03, 0xfa, 0x7f, 0x02, 0xfe,0xff, 0x07, 0xc2, 0x05, 0x81, 0xff, 0xff, 0x07, 0xf2, 0x07, 0x81, 0xff,0xff, 0x07, 0x80, 0x01, 0xc1, 0xff, 0xff, 0x07, 0x00, 0x01, 0xc0, 0xff,0xff, 0x0b, 0x80, 0xc1, 0xf1, 0xff, 0xff, 0x07, 0x80, 0x81, 0xe1, 0xff,0xff, 0x08, 0xc0, 0x41, 0xf8, 0xff, 0xff, 0x09, 0xc0, 0xc1, 0xf0, 0xff,0x1f, 0x08, 0x80, 0x21, 0xf0, 0xff, 0xff, 0x08, 0xc0, 0x41, 0xf4, 0xff,0x00, 0x08, 0x00, 0x01, 0xe0, 0xff, 0x07, 0x08, 0x00, 0x01, 0xf1, 0xff,0x00, 0x18, 0x04, 0x01, 0xe0, 0xff, 0x00, 0x18, 0x00, 0x81, 0xc0, 0xff,0x7f, 0x10, 0x04, 0x21, 0xc0, 0xff, 0x1f, 0x10, 0x04, 0x41, 0xf0, 0xff,0xff, 0x1b, 0x04, 0x09, 0x00, 0xfc, 0xff, 0x11, 0x04, 0x11, 0xf8, 0xff,0xff, 0x3f, 0x84, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x84, 0xf4, 0xff, 0xff,0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x80, 0xfc, 0xff, 0xff,0xff, 0x3f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xc0, 0xff, 0xff, 0xff,0xff, 0x3f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xff, 0xff, 0xff,0xff, 0x3f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0xff, 0xff, 0xff,0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,createBitmap iraf_logo 45 45 {#-------------------# Help Panel Bitmaps# Define procedure for the help panel############################################### set rulerList [lreplace $rulerList $index $index] set index [lsearch $rulerList $name] # Remove the ruler from the list. send rulerHlab$name destroy send rulerYlab$name destroy send rulerXlab$name destroy send ruler$name destroy global rulerListproc deleteNamedRuler {name x y} \# the marker itself.# Delete a particular ruler, usually called from the translation table on deleteNamedRuler $r x y if { [lsearch $rulerSticky ruler$r] == -1 } { # Delete the ruler if it's not in the sticky list. foreach r $rulerList { global rulerList rulerStickyproc deleteAllRulers args \# We preserve the rulers marked as 'sticky'.# Delete all rulers on the screen, usually called when the view changes.proc deleteRuler {x y} { global ruleno ; deleteNamedRuler $ruleno $x $y }# Delete the current ruler, called when we have a Btn1Up on the current ruler. send rulerHlab$num \ send rulerYlab$num \ "markpos; set textBgColor $bgcolor; set textColor $fgcolor; redraw" send rulerXlab$num \ scan $ruler "ruler%d" num # Recolor the labels. "markpos; set lineColor $bgcolor; set highlightColor $bgcolor; redraw" send $ruler \ # Recolor the polygon. proc r_setColor {ruler bgcolor fgcolor} {# Change the color of the ruler.proc writeRuler { ruler } \# Draw the ruler to the frame buffer as a graphic. if { [lsearch $rulerSticky $ruler] >= 0 } { global ruler isSticky rulerSticky rulerMenuDescriptionproc setRulerMenu args \ editMenu rulerMenu imagewin $rulerMenuDescription set isSticky "UnSticky" lappend rulerSticky $ruler # Add it to the list. set isSticky "Sticky" set rulerSticky [lreplace $rulerSticky $index $index] # Remove it from the list. if { $index >= 0 } { set index [ lsearch $rulerSticky $ruler] global isSticky rulerSticky rulerMenuDescriptionproc toggleSticky { ruler } \# Menu option toggle callbacks. resizeRuler $cx $cy 1 set rulerFmt $units set cy [lindex [lindex [lindex $pts 0] 2] 1] ; incr cy -1 set cx [lindex [lindex [lindex $pts 0] 1] 0] ; incr cx -1 set rulerY [lindex [lindex [lindex $pts 0] 0] 1] set rulerX [lindex [lindex [lindex $pts 0] 0] 0] send $ruler getVertices pts global rulerFmt rulerX rulerYproc setUnits { ruler units } \# Reset the ruler format type. focusIn { set ruler $active_ruler } global rulerproc selectRuler {active_ruler event event_data} \ send rulerHlab$ruleno set visible False send rulerHlab$ruleno set visible True send rulerHlab$ruleno "set text \{$text\}; redraw erase" send rulerHlab$ruleno "setAttributes x $xp y $yp" set xp [expr "$rulerX - abs($cx - $rulerX)/2 - $len * 3"] set xp [expr "$rulerX + abs($cx - $rulerX)/2 - $len * 6"] send rulerHlab$ruleno "set width ${len}ch" if {$hdist > 30} { set hdist [ expr "sqrt($xdist * $xdist + $ydist * $ydist)" ] set ydist [ expr "abs($cy - $rulerY)" ] set xdist [ expr "abs($cx - $rulerX)" ] send rulerHlab$ruleno set visible False global cpYscale cpXscale rulerFmtproc setHRulerLabel { cx cy dist } \ } send rulerYlab$ruleno set visible True send rulerYlab$ruleno "set text \{$text\}; redraw erase" send rulerYlab$ruleno "setAttributes x $xp y $yp" set yp [expr "$rulerY - abs($cy - $rulerY)/2"] set yp [expr "$rulerY + abs($cy - $rulerY)/2"] set xp [expr "$cx - $len * 6 - 5"] set xp [expr "$cx + 2"] send rulerYlab$ruleno "set width ${len}ch" pixel { set text [format "%.1f" [expr "$dist / $cpYscale"] ] } if {[expr "abs($cy - $rulerY)"] > 20} { send rulerYlab$ruleno set visible False global cpYscale rulerFmtproc setYRulerLabel { cx cy dist } \ send rulerXlab$ruleno set visible True send rulerXlab$ruleno "set text \{$text\}; redraw erase" send rulerXlab$ruleno "setAttributes x $xp y $yp" if {$yp > $winHeight} { set yp [expr "$winHeight - 20" } if {$xp > $winWidth} { set xp [expr "$winWidth - 20" } if {$yp < 0} { set yp 1 } if {$xp < 0} { set xp 1 } # Bounds checking. set xp [expr "$rulerX - abs($cx - $rulerX)/2 - 10"] set xp [expr "$rulerX + abs($cx - $rulerX)/2 - 10"] if {$cx > $rulerX} { set yp [expr "$rulerY + 2"] set yp [expr "$rulerY - 14"] if {$cy > $rulerY} { # Compute the placement of the label marker. send rulerXlab$ruleno "set width ${len}ch" set len [expr [string length $text] + 1] degrees { set text [format "%.2fd" "$dist" ] } arcmin { set text [format "%.2f\'" [expr "$dist * 60.0"] ] } arcsec { set text [format "%.2f\"" [expr "$dist * 3600.0"] ] } pixel { set text [format "%.1f" [expr "$dist / $cpXscale"] ] } switch $rulerFmt { if {[expr "abs($cx - $rulerX)"] > 30} { send rulerXlab$ruleno set visible False global cpXscale rulerFmt global rulerX rulerY ruleno winWidth winHeightproc setXRulerLabel { cx cy dist } \ visible false activated true \ textColor black \ textBgColor yellow \ imageText true \ lineWidth 0 \ height $height \ width $width \ type text \ send $parent createMarker $name \proc makeLabelMarker { parent name width height } \# Create a label marker for the ruler. setHRulerLabel $x $y $hdist setYRulerLabel $x $y $ydist setXRulerLabel $x $y $xdist # Label the distances. send ruler$ruleno setVertices $rulerPts # Redraw the polygon. set ydist [ expr "abs($ny - $rulerYWCS)" ] set xdist [ expr "abs($nx - $rulerXWCS)" ] set hdist [ expr "sqrt($xdist * $xdist + $ydist * $ydist)" ] set ydist [ expr "abs($y - $rulerY)" ] set xdist [ expr "abs($x - $rulerX)" ] if {$rulerFmt == "pixel"} { set rulerYWCS2 $ny set rulerXWCS2 $nx set ny [wcs2log [lindex $coord(wcs$num) 1] $yl $fmt] set nx [wcs2log [lindex $coord(wcs$num) 0] $xl $fmt] set ny $rulerYWCS2 set nx $rulerXWCS2 if {$redraw} { # Save the cursor coords in WCS so we can convert labels. set fmt [string tolower [send fmtWcs$num get label] ] set yl [string tolower [lindex $coordLab(wcs$num) 1]] set xl [string tolower [lindex $coordLab(wcs$num) 0]] set num $rulerWCS if {$rulerWCS > 0} { # Compute the distances. set ry [ list $x $y ] set rx [ list $x $rulerY ] set ref [ list $rulerX $rulerY ] # Track the mouse. global rulerXWCS2 rulerYWCS2 global rulerWCS rulerXWCS rulerYWCS rulerFmt global rulerPts rulerX rulerY ruleno coord coordLabproc resizeRuler {x y redraw} \ return [expr "double($newval)" ] set newval [expr "double($newval * 15.0)"] if {$label == " ra"} { set newval [expr "double($h) + double($m) / 60.0 + double($s) / 3600.0"] scan $val "%d:%d:%f" h m s if {$fmt == "sexigesimal" || $fmt == "default"} { set newval $valproc wcs2log { val label fmt} \ lappend rulerList $ruleno editMenu rulerUnits imagewin $rulerUnitsDescription editMenu rulerMenu imagewin $rulerMenuDescription set isSticky "Sticky" # Edit the menus. set rulerYWCS [wcs2log [lindex $coord(wcs$num) 1] $yl $fmt] set rulerXWCS [wcs2log [lindex $coord(wcs$num) 0] $xl $fmt] set rulerWCS $num if {$xl==" ra" || $xl=="elon" || $xl=="glon" || $xl=="slon"} { set fmt [string tolower [send fmtWcs$num get label] ] set yl [string tolower [lindex $coordLab(wcs$num) 1]] set xl [string tolower [lindex $coordLab(wcs$num) 0]] if { [info exists coordLab(wcs$num)] } { for {set num 1} {$num <= 4 && $rulerWCS == 0} {incr num} { set rulerYWCS 0 set rulerXWCS 0 set rulerWCS 0 # See whether we have a WCS to use. send $ruler setAttribute autoRedraw True send $ruler set visible True" send $ruler setVertices $rulerPts ;# set attributes set rulerPts [list $ref $rx $ry ] set ry [ list $x [expr "$y +1"] ] set rx [ list [expr "$x +1"] $y ] set ref [ list $x $y ] ;# initialize the polygon set rulerY $y set rulerX $x ;# save the reference point send $parent set markerTextFont 6x13 makeLabelMarker $parent rulerHlab$ruleno 8ch 1ch makeLabelMarker $parent rulerYlab$ruleno 5ch 1ch makeLabelMarker $parent rulerXlab$ruleno 5ch 1ch send $parent set markerTextFont 6x9 # Create the text markers for the labels. send $ruler addCallback selectRuler focusIn focusOut # Define a callback so we can identify the ruler. x $x\ sensitive True\ visible False\ activated True\ knotSize 0\ highlightColor yellow\ highlightWidth 1\ fill False\ lineColor yellow\ translations $translations\ createMode noninteractive\ type polygon\ send $parent createMarker $ruler \ # Create the polygon for the marker. regsub -all NAME $rulerTranslations $ruleno translations # by it's number rather than the default parent widget name. # Substitute so the marker translation will delete the marker incr ruleno ; set ruler ruler$ruleno global coord coordLab global isSticky rulerMenuDescription rulerUnitsDescription global rulerPts rulerX rulerY rulerList global rulerTranslations ruleno rulerWCS rulerXWCS rulerYWCSproc makeRuler {parent x y} \} ; createMenu rulerColor rulerMenu $rulerColorDescription bitmap solid foreground yellow } { "" f.exec "r_setColor $ruler yellow black" bitmap solid foreground cyan } { "" f.exec "r_setColor $ruler cyan black" bitmap solid foreground magenta } { "" f.exec "r_setColor $ruler magenta black" bitmap solid foreground blue } { "" f.exec "r_setColor $ruler blue white" bitmap solid foreground green } { "" f.exec "r_setColor $ruler green black" bitmap solid foreground red } { "" f.exec "r_setColor $ruler red yellow" bitmap solid foreground white } { "" f.exec "r_setColor $ruler white black" bitmap solid foreground black } { "" f.exec "r_setColor $ruler black yellow" { f.dblline } { Color f.title }set rulerColorDescription {} ; createMenu rulerUnits rulerMenu $rulerUnitsDescription { "Degrees" f.exec { setUnits $ruler degrees { "Arc Minutes" f.exec { setUnits $ruler arcmin } sensitive { ($rulerWCS > 0) ? "True" : "False"} } { "Arc Seconds" f.exec { setUnits $ruler arcsec { "Pixels" f.exec { setUnits $ruler pixel } } { f.dblline } { Units f.title }set rulerUnitsDescription {} ; createMenu rulerMenu imagewin $rulerMenuDescription } } deleteNamedRuler $num x y scan $ruler "ruler%d" num { "Destroy" f.exec { } sensitive False } writeRuler $ruler { "Draw into Frame" f.exec { { "Color" f.menu rulerColor } { "Units" f.menu rulerUnits } { f.line } } } toggleSticky $ruler { "$isSticky" f.exec { { f.dblline } { "Ruler" f.title }set rulerMenuDescription { : track-cursor() call(wcsUpdate,$x,$y) call(magnifierMapImage,$x,$y) !Ctrl : call(deleteRuler,$x,$y)!Ctrl : track-cursor() call(wcsUpdate,$x,$y) call(resizeRuler,$x,$y,0) : popdown(rulerMenu) : call(setRulerMenu) popup(rulerMenu) : m_input() Delete: call(deleteNamedRuler,NAME,$x,$y) BackSpace: call(deleteNamedRuler,NAME,$x,$y) !Ctrl 9: call(cpZoom,9,9,fixed) !Ctrl 8: call(cpZoom,8,8,fixed) !Ctrl 7: call(cpZoom,7,7,fixed) !Ctrl 6: call(cpZoom,6,6,fixed) !Ctrl 5: call(cpZoom,5,5,fixed) !Ctrl 4: call(cpZoom,4,4,fixed) !Ctrl 3: call(cpZoom,3,3,fixed) !Ctrl 2: call(cpZoom,2,2,fixed) !Ctrl 1: call(cpZoom,1,1,fixed) !Alt 4: call(cpSetFrame,frame4) !Alt 3: call(cpSetFrame,frame3) !Alt 2: call(cpSetFrame,frame2) !Alt 1: call(cpSetFrame,frame1) !Ctrl p: call(togglePanner) !Ctrl r: call(cpRegisterFrames) !Ctrl m: call(cpMatchFrames) !Ctrl i: call(cpInvert) !Ctrl c: call(cpZoomAction,centerFrame) !Ctrl n: call(normalize) !Ctrl l: call(move_cursor,1,0) !Ctrl k: call(move_cursor,0,-1) !Ctrl j: call(move_cursor,0,1) !Ctrl h: call(move_cursor,-1,0) !Ctrl f: call(nextFrame,$name) !Ctrl b: call(prevFrame,$name)set rulerTranslations { \set rulerFmt pixel ;# ruler label formatset rulerYWCS2 0set rulerXWCS2 0 ;# ruler end in WCS unitsset rulerYWCS 0set rulerXWCS 0 ;# ruler start in WCS unitsset rulerWCS 0 ;# use WCS coordsset isSticky "Sticky" ;# menu labelset rulerSticky { } ;# list of sticky rulersset rulerList { } ;# ruler listset rulerPts { {0 0} {0 0} {0 0} } ;# ruler verticesset rulerY 0set rulerX 0 ;# ruler start in screen coords# RULER MARKERS} ; send compass addCallback toggleCompass set last_compass False eraseCompass set last_compass True drawCompassproc toggleCompass { widget type state args } \ send imagewin refreshMapping $panner_mappingproc eraseCompass args \} ; foreach w {xflip yflip} { send $w addCallback drawCompass } set redraw_compass 0 send imagewin setLogRes $sv_xl $sv_yl send imagewin drawAlphaText [lindex $pts 16] [lindex $pts 17] $ylab send imagewin drawAlphaText [lindex $pts 14] [lindex $pts 15] $xlab # Draw the labels. send imagewin drawPolygon $head send imagewin setFillType solid set head [lrange $pts 6 13] # Draw the compass pointer. send imagewin drawPolyline $compassPts send imagewin setColorIndex $compassColor set compassPts [lrange $pts 0 5] # Draw the compass axes. lappend pts $rx $ry set ry [expr (($yflip < 0) ? ($pcy + ($pcy - $ry)) : $ry)] set rx [expr (($xflip < 0) ? ($pcx + ($pcx - $rx)) : $rx)] set ry [expr int($pcy - $sx * $sino + $sy * $coso + 0.5)] set rx [expr int($pcx + $sx * $coso + $sy * $sino + 0.5)] set sy [expr ($scale * [lindex $p 0])] set sx [expr ($scale * [lindex $p 1])] set sy [expr ($scale * [lindex $p 1])] set sx [expr ($scale * [lindex $p 0])] if {$transpose == 0} { foreach p $cpoints { set pts {} # Now scale and rotate the compass points, do 'em all at once. set scale [expr ([min $panner_width $panner_height] * 0.3)] set sino [expr (sin ($angle * 0.01745329))] set coso [expr (cos ($angle * 0.01745329))] # Get rotation and scale factors. {-1.2 0} {0 -1.2} {-0.07 -0.85} {0 -1} {0.07 -0.85} {-0.07 -0.85} {-1 0} {0 0} {0 -1} set cpoints { # zero rotation with North up and East left, or standard X/Y orientation. # the pointer head, and last are the X/Y label coords. Assumes a # Normalized compass points. The first row are the axes, second is set yflip [ expr ($yflip * ([send yflipButton get state] ? -1 : 1))] set xflip [ expr ($xflip * ([send xflipButton get state] ? -1 : 1))] send imagewin setLineWidth 2 send imagewin setLogRes $sv_xp $sv_yp send imagewin getPhysRes sv_xp sv_yp send imagewin getLogRes sv_xl sv_yl # Setup for the overlay. set pcy [expr ($panner_y + $panner_height / 2)] set pcx [expr ($panner_x + $panner_width / 2)] set yflip [expr $yflip * [lindex $Orient($id) 2] ] set xflip [expr $xflip * [lindex $Orient($id) 1] ] if { [info exists Orient($id)] } { # used to flip an image during display). # Adjust the compass for the display orientation (e.g. image sections set Compass($id) { 0.0 -1 1 X Y } set angle 0.0 ; set transpose 0 set xlab X ; set ylab Y set xflip -1 ; set yflip 1 set ylab [lindex $Compass($id) 5] set xlab [lindex $Compass($id) 4] set transpose [lindex $Compass($id) 3] set yflip [lindex $Compass($id) 2] set xflip [lindex $Compass($id) 1] set angle [lindex $Compass($id) 0] if { [info exists Compass($id)] } { set id $cur_objid set id [lindex $frameCache($frame) 1] } elseif {$cur_objid != [lindex $frameCache($frame) 1]} { set id -1 if {! [info exists frameCache($frame)] } { eraseCompass ;# erase the old compass if {! [send compass get on]} \ global redraw_compass last_compass global panner_x panner_y panner_width panner_height cur_objid global ism_enable frame frameCache compassColor Compass Orientproc drawCompass args \set last_compass [send compass get on] ;# save compass stateset compassColor 207 ;# normally this is yellow# Compass indicator procedures.} ; initCoordsPanel setCoordPanelSensitivity # Set the WCS readout panel sensitivity. setCoordPanelHeight set wcsPTxtHeight [send wcsText get height] # Set the Coords Panel height. send wpWcs4 set on False ;send wiWcs4 set on False ;send wtWcs4 set height 4 send wpWcs3 set on False ;send wiWcs3 set on False ;send wtWcs3 set height 4 send wpWcs2 set on True ;send wiWcs2 set on True send wpWcs1 set on True ;send wiWcs1 set on True send fmtWcs1 set label Default wcsFmtWcs 4 "" "" "" " X" " Y" wcsFmtWcs 3 "" "" "" " X" " Y" wcsFmtWcs 2 "" "" "" " X" " Y" wcsFmtWcs 1 "" "" "" " X" " Y" wcsFmtIValue "0." ; wcsFmtSValue "0." ; wcsFmtBValue "0" wcsFmtImtitle "" wcsFmtImname "" # Initialize the display strings in the coords box. #send wcLine set height 2 ;# kludge for label widgetproc initCoordsPanel args \# Initialize the coordinates panel.} ; resetDefaultWcsMenu editMenu sysMenu$i sysWcs$i $menu_def regsub -all WCS_LINE $defaultWcsMenu $i menu_def for {set i 1} {$i <= 4} {incr i} { global defaultWcsMenuproc resetDefaultWcsMenu args \ catch { send wcspix set wcs $sys $line } setCoordPanelHeight send wtWcs$line set height 4 send wpWcs$line set on False ; send wiWcs$line set on False send sysWcs$line set label "None"; send fmtWcs$line set label "Default" wcsCoordB wiWcs$line junk 0 if {[string tolower $sys] == "none"} {proc setWcsSys { sys line } \ { f.dblline } { "Physical" f.exec {setWcsSys physical WCS_LINE } } { "Logical" f.exec {setWcsSys logical WCS_LINE } } { "World" f.exec {setWcsSys world WCS_LINE } } { "Display" f.exec {setWcsSys display WCS_LINE } } { "None" f.exec {setWcsSys none WCS_LINE } }set defaultWcsMenu {# Create the default WCS type menus. editMenu fmtMenu$i fmtWcs$i $items lappend items "\"Radians\" f.exec \{setWcsFmt rad $i\}" lappend items "\"Degrees\" f.exec \{setWcsFmt deg $i\}" lappend items "\"Sexigesimal\" f.exec \{setWcsFmt hms $i\}" lappend items "\"Default\" f.exec \{setWcsFmt default $i\}" set items {}for {set i 1} {$i <= 4} {incr i} { catch { send wcspix set format $format $line }proc setWcsFmt { format line } \#------------------------------------# Create the WCS format menus. set up_done 0 ;# reset counter if {$up_done >= $up_todo} { send wcsbox $txt $text $color ] set txt [format "set text \{%s\}; set textBgColor %s; redraw noerase" \ set color [expr { ($coord(bval) == 0) ? "black" : "red" } ] # Now send the string. append text [format " %12.12s %12.12s %9.9s \n" $x $y $z ] } else { $lx $x $ly $y $z ] append text [format " %4s %12.12s %4s %12.12s %9.9s \n" \ set ly [lindex $coordLab($l) 1] set lx [lindex $coordLab($l) 0] if {$wcsLabels && [info exists coordLab($l)]} { set z $labels($z) if {[info exists labels($z)]} { set z [string tolower [string trimleft [lindex $coord($l) 2] ] ] set y [lindex $coord($l) 1] set x [lindex $coord($l) 0] if {[info exists coord($l)]} { foreach l {wcs1 wcs2 wcs3 wcs4} { set text "" incr up_done if {! $ism_enable} \ global up_done up_todo labels track_enable global ism_enable coord coordLab wcsLabelsproc updateCoordsBox args \# Format the coords box marker with the selected output options.set labels(detector) "Det"set labels(ccd) "CCD"set labels(amplifier) "Amp"set labels(supergalactic) "SGal"set labels(galactic) "Gal"set labels(ecliptic) "Ecl"set labels(equatorial) "Eq"set labels(physical) "Phys"set labels(logical) "Log"set labels(display) "TV"# Shortcuts for known WCS labels. send client encodewcs [expr ($winWidth / 2)] [expr ($winHeight / 2)] set wcsboxGeom [send imagewin getGeometry $x $y $new_w $new_h] redraw" y $y; \ x $x \ height $new_h \ width $new_w \ setAttributes \ send wcsbox "\ # Finally redraw the marker. set y [expr ($winHeight - $new_h - 5)] } elseif {$y > [expr ($winHeight - $new_h - 5)]} { set y 5 if {$y < 5} { set x [expr ($winWidth - $new_w - 5)] } elseif {$x > [expr ($winWidth - $new_w - 5)]} { set x 5 if {$x < 5} { # Bounds checking. set y [expr ($y + $height - $new_h + 1)] set new_h [ expr ($nlines * 17) ] incr x 60 if {$wcsLabels == 0} { set x [expr ($x - $ew)] set new_w [expr ($width + $ew)] set new_w $width if {$width > 166} { ;# not using default wcsbox set new_h 17 set new_w 166 set y [expr ($y + $height - 17 + 1)] set x [expr ($x + $ew)] if {$nlines == 0} { # Reset to the default geometry set ew [expr (($wcsLabels == 1) ? 125 : 65)] send imagewin parseGeometry $wcsboxGeom $defGeom x y width height set defGeom [format "%sx%s-5-5" $cur_w $cur_h] send wcsbox getAttributes width cur_w height cur_h if {! $track_enable} \ global track_enable wcsLabels winWidth winHeight wcsboxGeom proc resizeCoordsBox { nlines } \# Resize the coords box depending on the panel options.foreach w $wiValues { send $w addCallback wcsCoordB }set wiValues { wiWcs1 wiWcs2 wiWcs3 wiWcs4 } incr up_todo -1 unset coord($line) incr up_todo wiWcs4 { set line wcs4 ;set coord($line) { 0. 0. "" } } wiWcs3 { set line wcs3 ;set coord($line) { 0. 0. "" } } wiWcs2 { set line wcs2 ;set coord($line) { 0. 0. "" } } wiWcs1 { set line wcs1 ;set coord($line) { 0. 0. "" } } global coord up_todoproc wcsCoordB { widget type state args } \set coord(wcs4) { 0. 0. 0. }set coord(wcs3) { 0. 0. 0. }set coord(wcs2) { 0. 0. 0. }set coord(wcs1) { 0. 0. 0. }set coord(bval) 0set coord(sval) 0.set coord(ival) 0.set up_done 0set up_todo 2#------------------------------# Handle the wcsbox readout. $xunit $yunit [string trimleft $wcsname ] ] set coordLab(wcs$num) [ format "\{%s\} \{%s\} \{%s\}" \ set coord(wcs$num) [ format "\{%s\} \{%s\} \{%s\}" $x $y $wcsname ] set coord(wcs2) [ format "\{%s\} \{%s\} \{%s\}" $x $y $coord(ival) ] } elseif {$num == 2} { set coord(wcs1) [ format "\{%s\} \{%s\} \{%s\}" $x $y $coord(sval) ] if {$num == 1} { if {[info exists coord(wcs$num)]} { send wtWcs$num set string $line " " $x " " $y [string trimleft $wcsname] ] set line [ format "%4s %12s %4s %12s %s" \ $xunit $x $yunit $y [string trimleft $wcsname] ] set line [ format "%4s: %12s %4s: %12s WCS: %s" \ if {$wcsLabels} { global coord coordLab wcsLabels{ proc wcsFmtWcs { num wcsname x y xunit yunit args } \ send wtBPixval $msg set msg [format "set string \{%s\}" $line] set line [ format " BPM: (off)" ] set coord(bval) [format "%s" $value] set msg [format "set string \{%s\}; set background %s" $line $color ] set color [expr { ($value == 0) ? "black" : "red" } ] set line [ format " BPM: %s" $value ] if { [send woptBPM get on] } {proc wcsFmtBValue { value } \ set coord(sval) [format "%s" $value] send wtSPixval set string $line set line [ format " Scaled: %.8s" $value ]proc wcsFmtSValue { value } \ set coord(ival) $value if {[info exists coord(ival)]} { send wtIPixval set string $line set line [ format " Pixel: %.11s" $value ] global coordproc wcsFmtIValue { value } \ send wtFBCfg set string $line [string trimleft $buf] $frame $nframes ] set line [ format "Frame Buf: %-13s Frame: %d of %d" \ set buf [ format "%5d x %-5d" $frameWidth $frameHeight ] global frameWidth frameHeight frame nframesproc wcsFmtFBConfig args \ send wtTitle set string [format " Title: %s" [string trimleft $title]]proc wcsFmtImtitle { title } \ send wtName set string [format " Name: %s" [string trimleft $name]]proc wcsFmtImname { name } \# Procedures to format lines in the wcsText box.} ; send woptBPM addCallback wcsBPMCB if ($ism_enable) { catch { send wcspix set bpm $state } }proc wcsBPMCB { widget type state args } \# Toggle the BPM tracking state.} ; send woptLabels addCallback wcsLabelsCB resizeCoordsBox $up_todo #resizeCoordsBox 0 set wcsLabels $state global up_todo wcsLabelsproc wcsLabelsCB { widget type state args } \set wcsLabels 1# Handle WCS label string options.foreach w $wcValues { send $w addCallback wcsCoordsCB }set wcValues { wpWcs1 wpWcs2 wpWcs3 wpWcs4 woptFBinfo woptTitles } setCoordPanelHeight woptTitles { send wtName set height $hght ; send wtTitle set height $hght } woptFBinfo { send wtFBCfg set height $hght } wpWcs4 { send wtWcs4 set height $hght } wpWcs3 { send wtWcs3 set height $hght } wpWcs2 { send wtWcs2 set height $hght } wpWcs1 { send wtWcs1 set height $hght } set hght [ expr (($state == 1) ? 17 : 4)]proc wcsCoordsCB { widget type state args } \# Handle the panel display toggles.} ; send wcsOptions addCallback wcsOptToggle send panel set height [ expr ($h - $wcsPOptHeight) ] send panel set height [ expr ($h + $wcsPOptHeight) ] if {$state == 1} { set h [ send panel get height ] global wcsPOptHeightproc wcsOptToggle { widget type state args } \# Toggle the options display for the panel. send panel set height $ph send wcsFrame set height [ expr ($wcsPTxtHeight - $shrinkage) ] send wcsGroup set height [ expr ($wcsPGrHeight - $shrinkage) ] incr ph $wcsPOptHeight if {[send wcsOptions get on] == 1} { set ph [expr ($wcsPHeight - $shrinkage)] incr shrinkage 26 if {[send woptTitles get on] == 0} { incr shrinkage 13 if {[send $w get on] == 0} { foreach w { wpWcs1 wpWcs2 wpWcs3 wpWcs4 woptFBinfo } { set shrinkage 0 set panel_h $wcsPHeight # Get the height of the text area if {$tabTop != "wcs_panel"} \ global tabTop global wcsPHeight wcsPOptHeight wcsPTxtHeight wcsPGrHeightproc setCoordPanelHeight args \# Set the Coords Panel height depending on the option settings. foreach w $widgets { send $w setSensitive False } foreach w $widgets { send $w setSensitive True } send wtWcs2 set height 17 send wpWcs2 set on True ; send wiWcs2 set on True send sysWcs2 set label "World" ; send fmtWcs2 set label "Default" if {[send ismToggle get on]} { send wtWcs$i set height 4 send wpWcs$i set on False ; send wiWcs$i set on False send sysWcs$i set label "None" ; send fmtWcs$i set label "Default" for {set i 2} {$i <= 4} {incr i} { send fmtWcs1 set label "Default" send sysWcs1 set label "Display" fmtWcs2 fmtWcs3 fmtWcs4 sysWcs2 sysWcs3 sysWcs4 wlWcs2 wlWcs3 wlWcs4 wiWcs2 wiWcs3 wiWcs4 wpWcs2 wpWcs3 wpWcs4 set widgets { proc setCoordPanelSensitivity args \# is currently enabled.# Set the WCS readout panel sensitivity depending on whether the ISMset wcsPOptHeight 233 ;# extra height for opts boxesset wcsPGrHeight 175 ;# size of text area groupset wcsPTxtHeight 132 ;# size of text area boxset wcsPHeight 267 ;# full panel no options#setCoordPanelHeight#set wcsPOptHeight 233#set wcsPGrHeight 175#set wcsPTxtHeight 132#set wcsPHeight 267#global wcsPHeight wcsPTxtHeight wcsPGrHeight wcsPOptHeight# In case we need to change the values....# Coords Panel Callbacks.selectTileLabels labelImname junk FalseselectFillStyle topDown junk TrueselectFillStyle byRows junk TrueselectTileOrientation junk junk DisabledsetAllTileFrames# Initialize the frame tiling.} ; foreach w { ncdecrease ncincrease } { send $w addCallback tileSetCols } incr nx 1 } elseif {$widget == "ncincrease" && [expr ($nx+1)] <= $nframes} { incr nx -1 if {$widget == "ncdecrease" && [expr ($nx-1)] > 0} {proc tileSetCols { widget args } \} ; foreach w { nrdecrease nrincrease } { send $w addCallback tileSetRows } send client setOption tileGeom $geom $tile_frames set geom [format "%dx%d" $nx $ny] incr ny 1 } elseif {$widget == "nrincrease" && [expr ($ny+1)] <= $nframes} { incr ny -1 if {$widget == "nrdecrease" && [expr ($ny-1)] > 0} { set ny [send nrtext get label] set nx [send nctext get label] global nframes tile_framesproc tileSetRows { widget args } \} ; send tileOptions addCallback tileOptions "Tile Geometry: %-2dx%2d" $tileNcols $tileNrows] send tileGeometry set label [format \ send nrtext set label $tileNrows send nctext set label $tileNcols # Set the geometry. set tileNrows [lindex $new 1] set tileNcols [lindex $new 0]proc tileOptions { param old new } \} ; send tNone addCallback setNoTileFrames send tFrame$i set state Falseproc setNoTileFrames args \} ; send tAll addCallback setAllTileFrames setTileFrames send tFrame$i set state True if {[send tFrame$i get sensitive]} { global tileNcols tileNrowsproc setAllTileFrames args \}; for {set i 1} {$i <= 16} {incr i} {send tFrame$i addCallback setTileFrames} 7 { send client setOption tileGeom Column \{ $tile_frames \} } 6 { send client setOption tileGeom Row \{ $tile_frames \} } 5 { send client setOption tileGeom Vertical \{ $tile_frames \} } 4 { send client setOption tileGeom Horizontal \{ $tile_frames \} } 3 { send client setOption tileGeom Square \{ $tile_frames \} } 2 { send client setOption tileGeom Best \{ $tile_frames \} } 1 { send client setOption tileGeom $geom \{ $tile_frames \} } switch $tileSel { set geom [format "%dx%d" $tileNcols $tileNrows] # Reset the geometry. lappend tile_frames $i if {[send tFrame$i get state]} { set tile_frames {} # Get the new tile frames list. if {$tileSel == 0} \ # No-op if tiling isn't enabled. global tile_frames tileSel tileNcols tileNrowsproc setTileFrames args \# Callback for the Tile Frame selection toggles. send $w addCallback selectTileLabelsforeach w {labelFrames labelImname labelTitles} { send $widget set on $state send client setOption tileLabels 0 labelTitles { send client setOption tileLabels 3 } labelImname { send client setOption tileLabels 2 } labelFrames { send client setOption tileLabels 1 } switch $widget { if {$state} { proc selectTileLabels { widget type state args } \# Callback for the tile labelling options.} ; foreach w {byCols bottomUp} { send $w addCallback selectFillStyle } bottomUp { send client setOption tileTopDown $not } byCols { send client setOption tileByRows $not }proc selectFillStyle { widget type state args } \# Callback for the fill style options. return "Best" 7 { return "One Column" } 6 { return "One Row" } 5 { return "Vertical" } 4 { return "Horizontal" } 3 { return "Square" } 2 { return "Best" } 1 { return "Manual" } 0 { return "Disabled" } switch $selection {proc tileSelToLabel { selection args } \} ; send tileMode addCallback selectTileOrientation send client setOption tileFrames "False" set tileOpt $tileSel send client setOption tileFrames "True" setTileFrames if {$tileSel > 0} { # Send the option to the client. send tileMode set selection $tileSel # Reset the button in case we're called directly from elsewhere. none { send tileMode set selection $tileSel ; return } "One Column" { set tileSel 7 } "One Row" { set tileSel 6 } Vertical { set tileSel 5 } Horizontal { set tileSel 4 } Square { set tileSel 3 } Best { set tileSel 2 } set select [format "%dx%d" $nx $ny] set ny [send nrtext get label] set nx [send nctext get label] Manual { set tileSel 1 Disabled { set tileSel 0 } switch $select { if {$select == "Disabled"} { set w { byCols bottomUp labelFrames labelImname labelTitles } foreach p $w { send $p setSensitive False } } elseif {$select != "none"} { foreach p $w { send $p setSensitive True } if {$select == "Manual"} { set w { nrowLab ncolLab nrdecrease nrincrease ncdecrease ncincrease } global tileSel tileOptproc selectTileOrientation { widget type select args } \set tile_frames {}set tileNrows 1set tileNcols 2set tileOpt 0set tileSel 2# TILE GEOMETRY} ; send okaySave addCallback Save send client save send saveStatus set label [format "output file set to %s" $args] send client setSaveOption fname $val set val [ send saveFile get string ]proc Save args \send svRGBButton addCallback "send client setSaveOption color rgb"send svPseudoButton addCallback "send client setSaveOption color pseudocolor"send svGrayButton addCallback "send client setSaveOption color grayscale"# Color group procedures.} ; send saveOptions addCallback doSaveOptions warning { if {$warnings} { Wexec server $val } text { send saveData set label $val send server synchronize status { send saveStatus set label $val fname { send saveFile set string $val } set saveColor svRGBButton rgb { send svRGBButton set on true set saveColor svPseudoButton pseudocolor { send svPseudoButton set on true set saveColor svGrayButton grayscale { send svGrayButton set on true switch [lindex $val 0] { color { send $saveColor set on false send $format set on true set format rawButton send svPseudoButton setSensitive true raw { send svRGBButton setSensitive true set format epsButton eps { send svRGBButton setSensitive true set format x11Button x11 { send svRGBButton setSensitive true set format fitsButton set saveColor svGrayButton send svGrayButton set on true send $saveColor set on false send svPseudoButton setSensitive false fits { send svRGBButton setSensitive false set format tiffButton tiff { send svRGBButton setSensitive false set format jpegButton jpeg { send svRGBButton setSensitive true set format gifButton } set saveColor svPseudoButton send svPseudoButton set on true send $saveColor set on false if {$saveColor == "svRGBButton"} { gif { send svRGBButton setSensitive false } set format rasButton send svPseudoButton setSensitive true ras { #send svRGBButton setSensitive false switch [lindex $val 0] { send $format set on false # force the color choice when needed. # Now (de)sensitize the color options depending on the format, format { #print [format "doSaveOptions %s = %s" [lindex $new 0] $val] send saveStatus set label {}proc doSaveOptions { param old new } \}; send saveFile addCallback setSaveFile send saveStatus set label [format "output file set to %s" $args] send client setSaveOption fname $argsproc setSaveFile { widget cbtype args } \} ; foreach fmt $fileFmtButtons { send $fmt addCallback set_format } rawButton { send client setSaveOption format raw } epsButton { send client setSaveOption format eps } x11Button { send client setSaveOption format x11 } fitsButton { send client setSaveOption format fits } tiffButton { send client setSaveOption format tiff } jpegButton { send client setSaveOption format jpeg } gifButton { send client setSaveOption format gif } rasButton { send client setSaveOption format ras } switch $widget { if {$widget == $format} { send $format set on false global format saveColorproc set_format { widget func state args } \# Select a format.#---------------------------------# Format group procedures. fitsButton x11Button epsButton rawButton rasButton gifButton jpegButton tiffButton set fileFmtButtons {set saveColor svPseudoButtonset format rasButton# Global variables needed for the save setup panel# Save panel functions. return 0 send client setLoadOption z2 $z1 send client setLoadOption z1 $z1 return -1 Wexec client "z1/z2 values are not set properly" if {$z1 == $z2} { set z2 [send z2Value get string] set z1 [send z1Value get string] if { ![send zscale get on] && ![send zrange get on] } {proc fileSetOptions args \# Send and selected options to the client before loading the image.} ; send filesLoadButton addCallback fileLoadB loadImage $fname Wexec client "No image name specified" if {$fname == ""} { set fname [send fnameText get string]proc fileLoadB args \# Load button callback. send fnameText set string $name send imagewin setCursorType idle send client load $name $fr send imagewin setCursorType busy if { [fileSetOptions] >= 0 } { if { $fr == "Current" } { set fr $frame } set fr [send frameFrame get label]proc loadImage { name } \# Load the named image in the display.}; send imageList addCallback flSelectPrint loadImage $selection loadImage [lindex $selection 0] if { [send zrange get on] } { foreach selection $selections { if {! [send autoload get on]} \proc flSelectPrint { widget cbtype selections args } \}; send imageList addEventHandler flResize ResizeRedirectMask send imageList setList $fileList resizeproc flResize args \}; send filelist addCallback setFileList send imageList setList $new resize send imageList set defaultColumns 5 } else { send imageList set defaultColumns 4 } elseif {$max > 5} { send imageList set defaultColumns 3 } elseif {$max > 12} { send imageList set defaultColumns 2 } elseif {$max > 21} { send imageList set defaultColumns 1 if {$max > 35} { # Optimize the number of columns for the file list. if {$len > $max} { set max $len } set len [string length $n] foreach n $new { set max 0 # the list columns appropriately. # Get the max length of the strings so we can set set fileList $new global fileListproc setFileList { param old new } \set fileList {}# Image list selection routines.} ; send fnameText addCallback fileLoad loadImage $fnameproc fileLoad { widget mode fname args } \} ; send nsampValue addCallback setNsamp send client setLoadOption nsample $patternproc setNsamp { widget mode pattern args } \} ; send z2Value addCallback setZ2 send client setLoadOption z2 $patternproc setZ2 { widget mode pattern args } \} ; send z1Value addCallback setZ1 send client setLoadOption z1 $patternproc setZ1 { widget mode pattern args } \} ; send zrange addCallback toggleZrange send client setLoadOption zrange [send zrange get on]proc toggleZrange args \} ; send zscale addCallback toggleZscale send client setLoadOption zscale [send zscale get on]proc toggleZscale args \} ; send browseHdrs addCallback toggleHeaders send imlistLabel "set height 0 ; unmap" send rescanButton setSensitive True send upButton setSensitive True send homeButton setSensitive True send rootButton setSensitive True send client setLoadOption rescan send imlistLabel "set height 10 ; map" send rescanButton setSensitive False send upButton setSensitive False send homeButton setSensitive False send rootButton setSensitive False send client setLoadOption headers if { [send browseHdrs get on] } {proc toggleHeaders args \} ; send grayscale addCallback toggleGraymap send client setLoadOption gray [ send grayscale get on ]proc toggleGraymap args \# Option utility routines.} ; send loadOptions addCallback doLoadOptions nsample { send nsampValue set string [format "%s" $val ] } z2 { send z2Value set string [format "%s" $val ] } z1 { send z1Value set string [format "%s" $val ] } send $w setSensitive True } send $w setSensitive False foreach w {z1Label z1Value z2Label z2Value} { zrange { send zrange set on $val } send zrange setSensitive True } else { send zrange setSensitive False if {$val} { zscale { send zscale set on $val gray { send grayscale set on $val } warning { if {$warnings} { Wexec server $val } } } send server synchronize if { ! $panel_up } { send imageTitle set label $val } status { send filesStatus set label $val newfile { send fnameText set string $val } curdir { send dirLabel set label [format " Directory: %s" $val ] } pattern { send imtemplateText set string [format "%s" $val ] } set val [ join [lrange $new 1 end] " " ] global warnings panel_upproc doLoadOptions { param old new } \# Load options parameter callback.} ; send imtemplateText addCallback setPattern send client setLoadOption pattern $patternproc setPattern { widget mode pattern args } \# Filename pattern callback.}; createMenu loadFrames frameFrame $loadItems lappend loadItems "\"\ \ $i\ \ \" f.exec \{send frameFrame set label $i\}"for {set i 1} {$i <= $MAX_FRAMES} {incr i} {set loadItems { "Current f.exec \{send frameFrame set label Current\}"}# Create the Frames menu on the load panel window.send imlistLabel "set height 0 ; unmap"send imlistLabel set label $label " Image" "Bitpix" " Size" " Title"] [format "%-35.35s %6s %12s %12s"\set label \send rescanButton addCallback "send client setLoadOption rescan"send upButton addCallback "send client setLoadOption up"send homeButton addCallback "send client setLoadOption home"send rootButton addCallback "send client setLoadOption root" send $w addEventHandler filesTextHighlight leaveWindowMask send $w addEventHandler filesTextHighlight enterWindowMaskforeach w {imtemplateText fnameText z1Value z2Value} { send $widget set displayCaret False send $widget set displayCaret Trueproc filesTextHighlight { widget event args } \# Image and objects list display and section} ; send info addCallback infoSetText send infoText set string $newproc infoSetText { param old new } \foreach w $iopts { send $w addCallback infoOptToggle }set iopts {infoOptFr infoOptSvr infoOptIsm infoOptClients infoOptWCS infoOptFB } infoOptFB { send client info imtoolrc } infoOptWCS { send client info wcs } infoOptClients { send client info clients } infoOptIsm { send infoText set string $ismInfoText } send client info server $bp $mc set mc [send imagewin get maxColors] infoOptSvr { set bp [send imagewin get basePixel] infoOptFr { infoFrameUpdate } set infoMode $widget send $infoMode set on $not if {$state} { set not False } else { set not True } global infoMode ismInfoTextproc infoOptToggle { widget type state args } \# Server Program State information.foreach p $params { send $p addCallback infoFrameUpdate }set params {frame frameView nframes frameSize frameTitle enhancement} ] $line1 $line2 $line3 $line4 $line5 $line6 $line7 $line8 $line9 format "%s\n\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n" \ send infoText set string [ set line9 [format "Offset:\t\tX: %0.2f\n\t\tY: %0.2f" $cpXoff $cpYoff] set line8 [format "Scale:\t\tX: %0.2f\n\t\tY: %0.2f" $cpXscale $cpYscale] set line7 [format "Zoom:\t\tX: %0.2f\n\t\tY: %0.2f" $cpXmag $cpYmag] set line6 [format "Center:\t\t%s" $cntr] set cntr [format "X: %0.1f\n\t\tY: %0.1f" $cpXcen $cpYcen] set line5 [format "Enhancement:\tBrt=%s Cont=%s" $brt $con] set line4 [format "Colormap:\t%s" $cmap] set con [lindex $enhancement($frame) 2] set brt [lindex $enhancement($frame) 1] set cmap [lindex $enhancement($frame) 0] $frame $nframes $frameWidth $frameHeight] set line3 [format "Frame %d of %d:\t%d x %d" \ set line2 [format "Image:\t\t%s" [send imageTitle get label]] set line1 $version send infoText set string "initializing display..." if {$frame == 0} { } elseif {! [send infoOptFr get on]} \ send client info wcs if { [send infoOptWCS get on] } { global cpXcen cpYcen cpXoff cpYoff global version frame nframesproc infoFrameUpdate args \# Current Frame information.set infoMode infoOptFr# INFO box. send client setPrintOption corners $llx_i $lly_i $urx_i $ury_i set ury_i [expr "int ($ury_r)"] set urx_i [expr "int ($urx_r)"] scan $str "%g %g %g" urx_r ury_r z set str [send client encodewcs $urx $ury] set ury [expr "int ($ury)"] set urx [expr "int ($urx)"] send imagewin unmapPixel $ux $uy raster urx ury set lly_i [expr "int ($lly_r)"] set llx_i [expr "int ($llx_r)"] scan $str "%g %g %g" llx_r lly_r z set str [send client encodewcs $llx $lly] set lly [expr "int ($lly)"] set llx [expr "int ($llx)"] send imagewin unmapPixel $lx $ly raster llx lly # Convert raw corner screen coordinates to frame buffer raster coords.proc setPrintCorners { lx ly ux uy args } \# setPrintCorners -- Tell the client the WCS of the image being printed.} ; send okayPrint addCallback Print send client print setPrintCorners 0 [expr $winWidth - 1] [expr $winHeight - 1] 0 send client setPrintOption title $val set val [ send titleString get string ] send client setPrintOption printcmd $val send client setPrintOption printfile $val set val [ send printcmd get string ] # Get the print command or file template if not previous reset.proc Print args \}; send printlist addCallback psSelectPrint send client setPrintOption printername $selection global printerlistproc psSelectPrint {widget cbtype selections indices} \}; send printlist addEventHandler lprResize ResizeRedirectMask send printlist setList $lprList resizeproc lprResize args \}; send printerList addCallback psSetPrintList send printlist highlight 0 send printlist setList $new resize set lprList $new global lprListproc psSetPrintList {param old new} \set lprList {}# Printer display and selection.} ; foreach w $prSimpleOptions { send $w addCallback prSimpleOptionToggle } colorbarButton { send client setPrintOption docolorbar $val } bordersButton { send client setPrintOption doborders $val } titleButton { send client setPrintOption dotitle $val } compressButton { send client setPrintOption compress $val } annotateButton { send client setPrintOption annotate $val } aspectButton { send client setPrintOption maxaspect $val } autorotateButton { send client setPrintOption autorotate $val } epsscaleButton { send client setPrintOption autoscale $val } #print [ format "prSimpleOptionToggle %s = %s" $widget $val ]proc prSimpleOptionToggle { widget args } \} ; foreach w $prOptsWidgets { send $w addCallback prOptionToggle } send $widget set on true prRGBButton { send client setPrintOption colortype rgb } prPseudoButton { send client setPrintOption colortype pseudo } prGrayButton { send client setPrintOption colortype gray } epsB5Button { send client setPrintOption papersize B5 } epsA4Button { send client setPrintOption papersize A4 } epsLegalButton { send client setPrintOption papersize legal } epsLetterButton { send client setPrintOption papersize letter } epsPortButton { send client setPrintOption orientation portrait } epsLandButton { send client setPrintOption orientation landscape } toFile { send client setPrintOption devicetype file } toPrinter { send client setPrintOption devicetype printer } if { $val == 1 } { #print [ format "prOptionToggle %s = %s" $widget $val ] set val [ send $widget get on ] # If it's not one of those it must be one of the radio toggles. send client setPrintOption imscale $scale SCdecrease { set scale [ expr $imageScale - 5 ] return send client setPrintOption imscale $scale SCincrease { set scale [expr $imageScale + 5] # Handle the image scale widgets first. global imageScaleproc prOptionToggle { widget cbtype args } \}; send titleString addCallback prTitleString send client setPrintOption title $argsproc prTitleString { widget cbtype args } \}; send printcmd addCallback prPrintCommand send printStatus set label [format "print command set to %s" $args] send client setPrintOption printcmd $args send printStatus set label [format "output file set to %s" $args] send client setPrintOption printfile $args if [send toFile get on] {proc prPrintCommand { widget cbtype args } \ titleButton bordersButton colorbarButton epsscaleButton autorotateButton aspectButton annotateButton compressButton set prSimpleOptions { SCincrease SCdecrease epsLetterButton epsLegalButton epsA4Button epsB5Button epsLandButton epsPortButton prGrayButton prPseudoButton prRGBButton toPrinter toFileset prOptsWidgets { # Print options procedures.}; send printOptions addCallback doPrintOptions warning { if {$warnings} { Wexec server $val } } send server synchronize status { send printStatus set label $val title { send titleString set string $val send colorbarButton set on false send colorbarButton set on true docolorbar { if { $val == "True" } { send bordersButton set on false send bordersButton set on true doborders { if { $val == "True" } { send titleButton set on false } elseif { $val == "False" } { send titleButton set on true dotitle { if { $val == "True" } { } send printlist unhighlight send toFile set on true send toPrinter set on false send printerLabel set label "File Name:" } elseif { $val == "File" } { send toFile set on false send toPrinter set on true send printerLabel set label "Print Command:" deviceType { if { $val == "Printer" } { printFile { if [send toFile get on] { send printcmd set string $val printCmd { if [send toPrinter get on] { send printlist highlight $val printerName { if [send toPrinter get on] { set printColor prRGBButton send prRGBButton set on true } elseif { $val == "rgb" } { set printColor prPseudoButton send prPseudoButton set on true } elseif { $val == "pseudo" } { set printColor prGrayButton send prGrayButton set on true if { $val == "gray" } { colortype { send $printColor set on false send SCtext set label [ format "%d %%" $imageScale ] imscale { set imageScale $val set page_size epsB5Button send epsB5Button set on true } elseif { $val == "B5" } { set page_size epsA4Button send epsA4Button set on true } elseif { $val == "A4" } { set page_size epsLegalButton send epsLegalButton set on true } elseif { $val == "legal" } { set page_size epsLetterButton send epsLetterButton set on true if { $val == "letter" } { papersize { send $page_size set on false set orientation epsLandButton send epsPortButton set on false } elseif { $val == "landscape" } { set orientation epsPortButton send epsPortButton set on true if { $val == "portrait" } { orientation { send $orientation set on false send compressButton set on false send compressButton set on true compress { if { $val == "True" } { send titleString setSensitive false send titleLabel setSensitive false send bordersButton setSensitive false send colorbarButton setSensitive false send titleButton setSensitive false send annotateButton set on false send titleString setSensitive true send titleLabel setSensitive true send bordersButton setSensitive true send colorbarButton setSensitive true send titleButton setSensitive true send annotateButton set on true annotate { if { $val == "True" } { send aspectButton set on false send aspectButton set on true maxaspect { if { $val == "True" } { send autorotateButton set on false send autorotateButton set on true autorotate { if { $val == "True" } { send epsscaleButton set on false } elseif { $val == "False" } { send epsscaleButton set on true autoscale { if { $val == "True" } { switch [lindex $new 0] { # print [format "doPrintOptions %s = %s" [lindex $new 0] $val] set val [join [lrange $new 1 end] " "] send printStatus set label {} global imageScale page_size orientation imageScale printColorproc doPrintOptions { param old new } \ send $page_size set on true send $orientation set on true send $printColor set on true send SCtext set label [ format "%d %%" $imageScale ] set_printer toPrinter callback 1 global printColor orientation page_size imageScale #formatproc psetup_init args \ ScaleFrame SCdecrease SCtext SCincrease epsPortButton epsLandButton epsLetterButton epsLegalButton epsA4Buttonset epsWidgets { epsPageGroup epsOrientLabel epsSizeLabel set imageScale 100set page_size epsLetterButtonset orientation epsPortButtonset printColor prGrayButton# Global variables needed for the print setup panel# Print Panel Functions.}; send initialize addCallback resetPanner set pannerGeom -5+5 setPanner [true $displayPanner] global pannerGeom displayPannerproc resetPanner {param old new} \# resetPanner -- Reinitialize the panner. drawCompass send imagewin refreshMapping $panner_mapping $panner_width == $old_width && $panner_height == $old_height} { if {$panner_x == $old_x && $panner_y == $old_y && # Refresh the panner window if it did not move. # Make sure the panner window is on top. send pannerWin "\ set defGeom [format "%sx%s-5+5" $panner_width $panner_height] # Get new location of panner window. eraseCompass set old_y $panner_y; set old_height $panner_height set old_x $panner_x; set old_width $panner_width global panner_enable panner_mapping proc pannerImagewinResized args \# track the corner.# pannerImagewinResized -- If the display window is resized make the panner # Since the panner region marker is a box marker x,y and width,height send pannerRegionMarker getAttributes width rwidth height rheight send pannerWin getRect interior p_x p_y p_width p_heightproc pannerRegionConstraint {marker event attributes} \# pannerRegionConstraint -- Called when the region marker in the panner set height $panner_height set width $panner_width global panner_width panner_heightproc pannerWinConstraint {marker event attributes} \# rotated. Constrain the panner window to remain within the image window;# pannerWinConstraint -- Called when the panner window is moved, resized, or send pannerRegionMarker raise $panner_x $panner_y $panner_width $panner_height] set pannerGeom [send imagewin getGeometry \ panner_x panner_y panner_width panner_height send pannerWin getRect boundary \ # Update the panner window position variables so that it comes up pannerSetRegion dummy dummy [concat $frame $sx $sy $snx $sny] global panner_x panner_y panner_width panner_height global frame panner_pan_enable pannerGeomproc pannerMoved {marker event position} \# pannerMoved -- Called when the user moves the panner window. We need to send client pan $rx $ryproc pannerPanXY {x y} \# system. Called when the user clicks MB2 in the panner window.# pannerPanXY -- Pan to the point X,Y in the panner window coordinate set panner_pan_enable 1 send client zoom $xscale $yscale $x $y $frameOffsetX($frame) $frameOffsetY($frame) send client zoomAbs $xscale $yscale $x $y \ if {$auto_reg == 1} { set yscale [expr ($winHeight / 2.0) / $height] set xscale [expr ($winWidth / 2.0) / $width] send client pan $x $y if {$new_width == $prm_width && $new_height == $prm_height} { set panner_pan_enable 0 set y [expr [lindex $region 3] + 1]; set height [lindex $region 5] set x [expr [lindex $region 2] + 1]; set width [lindex $region 4] set region [send pannerRegionMarker getRegion unmap] # region: type raster x y width height. set new_height [lindex $position 3] set new_width [lindex $position 2] # position: x y width height. if {!$panner_pan_enable} \ global frame auto_reg frameOffsetX frameOffsetY global prm_width prm_height global panner_pan_enableproc pannerPanImage {marker event position} \# called when the user moves the region marker within the panner window.# pannerPanImage -- Pan or zoom the image in the main image window. This is set panner_pan_enable $pan_save set panner_region_enable 1 send pannerRegionMarker getAttributes width prm_width height prm_height redraw; raise" setAttributes x $x y $y width $width height $height; \ markpos; \ send pannerRegionMarker "\ set panner_region_enable 0 set pan_save $panner_pan_enable; set panner_pan_enable 0 set height [expr ($sny/2.0) / $frameHeight * $pny + 1] set width [expr ($snx/2.0) / $frameWidth * $pnx + 1] set y [expr ($sy + $sny/2.0) / $frameHeight * $pny + $py] set x [expr ($sx + $snx/2.0) / $frameWidth * $pnx + $px] send pannerWin getRect interior px py pnx pny if {$src_frame != $frame} \ set sy [lindex $new 2]; set sny [lindex $new 4] set sx [lindex $new 1]; set snx [lindex $new 3] set src_frame [lindex $new 0] # new: frame sx sy snx sny if {!$panner_enable || !$panner_region_enable || $frame == 0} \ global frame frameWidth frameHeight prm_width prm_height global panner_region_enable panner_pan_enable global panner_enable panner_region_markerproc pannerSetRegion {param old new} \# marker is moved and resized to reflect the new view.# the frame changes or the user zooms or pans the main window. The region# to a frameRegion event when the main display mapping changes, e.g. when# region displayed in the main display window. This is called in response# pannerSetRegion -- Adjust the pannerWin region marker to outline the 0 pixel $dx $dy $dnx $dny $raster pixel 0 0 $width $height \ send imagewin setMapping $panner_mapping 0 \ send imagewin raiseMapping $panner_mapping if [send imagewin activeMapping $panner_mapping] { send imagewin queryRaster $raster width height send pannerWin getRect interior dx dy dnx dny set raster [send client getRaster] if {!$panner_enable || $frame == 0} \ global panner_enable frameproc pannerMapImage args \# The panner window displays a small dezoomed version of the full frame.# Called when the frame changes or the panner window is moved or resized.# pannerMapImage -- Map the current display frame into the panner window. send compass "setSensitive False ; set on False" # Disable the compass. send pannerWin destroy if [send server queryObject pannerWin] { send pannerRegionMarker destroy if [send server queryObject pannerRegionMarker] { send frameRegion deleteCallback pannerSetRegion send frame deleteCallback pannerMapImage send resize deleteCallback pannerImagewinResized send imagewin deleteCallback pannerImagewinResized send imagewin freeMapping $panner_mapping set panner_region_enable 0 set panner_pan_enable 0 set panner_enable 0 global panner_mappingproc pannerDestroy args \# pannerDestroy -- Delete the panner. pannerDestroy } elseif {$panner_enable} { set panner_pan_enable 1 setAttributes visible true activated true; \ addCallback pannerRegionConstraint constraint; \ addCallback pannerDestroy destroy; \ addCallback pannerPanImage moveResize; \ send pannerRegionMarker "\ pannerSetRegion dummy dummy [concat $frame $sx $sy $snx $sny] send client getSource raster sx sy snx sny # Fire up the panner region marker. highlightColor green \ lineColor green \ type box \ send imagewin createMarker pannerRegionMarker \ # Draw a marker in the panner window outlining displayed region. if { $last_compass } \ send compass "setSensitive True ; set on $last_compass" # Redraw the compass if necessary. pannerMapImage init; send imagewin refreshMapping $panner_mapping set panner_mapping [send imagewin nextMapping] set panner_region_enable 1 set panner_enable 1 # Map display frame to panner window. addCallback pannerWinConstraint constraint; addCallback pannerDestroy destroy; addCallback pannerMoved moveResize; addCallback pannerMapImage moveResize; send pannerWin { send resize addCallback pannerImagewinResized send imagewin addCallback pannerImagewinResized resize send frameRegion addCallback pannerSetRegion send frame addCallback pannerMapImage $panner_x $panner_y $panner_width $panner_height] set pannerGeom [send imagewin getGeometry \ panner_x panner_y panner_width panner_height send pannerWin getRect boundary \ # Update the panner window position variables so that it comes up translations $pannerWinTranslations \ send imagewin createMarker pannerWin \ # Create the main panner window (marker). send imagewin parseGeometry $pannerGeom $defGeom x y width height set scaled_height [expr int($frameHeight * $scale) / 2 * 2 + 1] set scaled_width [expr int($frameWidth * $scale) / 2 * 2 + 1] [expr sqrt(double($pannerArea) / ($frameWidth * $frameHeight))] set scale \ # Determine where to place the panner. if {$panner_enable} \ global last_compass global pannerGeom panner_x panner_y panner_width panner_height global panner_enable panner_region_enable panner_pan_enable global frame panner_mapping pannerWinTranslations pannerAreaproc setPanner {state} \ setPanner 1 setPanner 0 if {$panner_enable} { global panner_enableproc togglePanner args \# setPanner -- Turn the panner on or off. !Ctrl 9: call(cpZoom,9,9,fixed) !Ctrl 8: call(cpZoom,8,8,fixed) !Ctrl 7: call(cpZoom,7,7,fixed) !Ctrl 6: call(cpZoom,6,6,fixed) !Ctrl 5: call(cpZoom,5,5,fixed) !Ctrl 4: call(cpZoom,4,4,fixed) !Ctrl 3: call(cpZoom,3,3,fixed) !Ctrl 2: call(cpZoom,2,2,fixed) !Ctrl 1: call(cpZoom,1,1,fixed) !Alt 4: call(cpSetFrame,frame4) !Alt 3: call(cpSetFrame,frame3) !Alt 2: call(cpSetFrame,frame2) !Alt 1: call(cpSetFrame,frame1) !Ctrl s: call(cpMatchFrames) !Ctrl r: call(cpRegisterFrames) !Ctrl i: call(cpInvert) !Ctrl c: call(cpZoomAction,centerFrame) !Ctrl n: call(normalize) !Ctrl l: call(move_cursor,1,0) !Ctrl k: call(move_cursor,0,-1) !Ctrl j: call(move_cursor,0,1) !Ctrl h: call(move_cursor,-1,0) !Ctrl f: call(nextFrame,$name) !Ctrl b: call(prevFrame,$name) : call(pannerPanXY,$x,$y)set pannerWinTranslations { \# Panner window translations.set panner_mapping 0set panner_region_enable 0set panner_mag_enable 0set panner_pan_enable 0set panner_enable 0set prm_height 0set prm_width 0set panner_height 0set panner_width 0set panner_y 0set panner_x 0# moved or resized to pan or zoom the image in the main display window.# using a small marker within the panner window. This small marker may be# image window. The currently displayed region of the frame is indicated# reduced resolution in a marker (known as the panner window) within the main# PANNER. The full frame mapped into the main image window is displayed at a send magPointer "setAttributes x $xpos y $ypos visible true; redraw" set ypos [expr $y + 1] set xpos [expr $x + 1] send magnifierWin "getAttributes x x y y" if { !$magnifier_enable } \proc setMagPointerPosition args \# set the position of the magnifier marker in the center of the mag window Print "There was a problem setting up the magnifier ... recovering" if { $err != 0 } { 0 pixel $dx $dy $dnx $dny}] 0 pixel $sx $sy $mag_w $mag_h \ set err [catch {send imagewin setMapping $magnifier_mapping $magnifierROP \ # Map 32 x 32 centered on pointer in main window. set sy $symax if {$sy > $symax} { set symax [expr $winHeight - $mag_h] set sy 0 if {$sy < 0} { set sx $sxmax if {$sx > $sxmax} { set sxmax [expr $winWidth - $mag_w] set sx 0 if {$sx < 0} { # Make sure we don't go beyond an edge of the main window. set sy [expr $dy - $mag_h] if {$dy >= $mag_h} { } elseif {$order($i) == "t"} { set sx [expr $dx + $dnx] if {$winWidth >= $dx + $dnx + $mag_w} { } elseif {$order($i) == "r"} { set sy [expr $dy + $dny] if {$winHeight >= $dy + $dny + $mag_h} { } elseif {$order($i) == "b"} { break set sx [expr $dx - $mag_w] if {$dx >= $mag_w} { if {$order($i) == "l"} { # Try the sides in order, using the first one where there's room. set alreadyset($candidate) 1 set order($i) $candidate } elseif {$dist($j) < $minsofar} { set minsofar $dist($j) set candidate $j if {$candidate == ""} { if {!$alreadyset($j)} { foreach j [array names dist] { set candidate "" for {set i 0} {$i < 4} {incr i} { set alreadyset($j) 0 foreach j [array names dist] { # Put the distances in order. set dist(t) [expr $sy - ($dy - $mag_h)] set dist(r) [expr $dx + $dnx - $sx] set dist(b) [expr $dy + $dny - $sy] set dist(l) [expr $sx - ($dx - $mag_w)] # The source rectangle would overlap the magnifier window; fix that. $sy > [expr $dy - $mag_h] && $sy < [expr $dy + $dny] } { if {$sx > [expr $dx - $mag_w] && $sx < [expr $dx + $dnx] && # (not overlapping an edge or the magnifier window). # Constrain the source rectangle within the main image window set sy [expr $y - $mag_h / 2 ] set sx [expr $x - $mag_w / 2 ] setMagnifierZoom 4 if { !$mag_w || !$mag_h } { # initialize the magnifier zoom factor, if necessary if [send imagewin activeMapping $magnifier_mapping] { send magnifierWin getRect interior dx dy dnx dny set last_mag_y $y set last_mag_x $x# }# }# return# set last_mag_y $y# set last_mag_x $x# if {$diff > 36} {# (($last_mag_y-$y) * ($last_mag_y-$y))]# set diff [expr (($last_mag_x-$x) * ($last_mag_x-$x)) + \# # narrow in on the ROI the magnifier is still (mostly) correct.# # just compare the square. Use a threshold of 6 pixels so when we# # For efficiency we won't compute the sqrt of the distance but instead# if {abs($last_mag_x-$x) != 1 && abs($last_mag_y-$y) != 1} { if {!$magnifier_enable || $frame == 0} \ global magnifierROP global magnifier_enable frameproc magnifierMapImage {x y} \set magnifierROP 0# the magnifier window is moved or resized.# pointer moves in the main image window, or (via magnifierMovedMapImage)# pointer into the magnifier window. Called when the frame changes, the# magnifierMapImage -- Map the of the current display frame centered on the #send magPointer "setAttributes width $mw height $mh; redraw" #if { $mh < 4 } { set mh 4 } #set mh [expr int (($magnifier_height - 1) / ($mag_h * 2))] #if { $mw < 4 } { set mw 4 } #set mw [expr int (($magnifier_width - 1) / ($mag_w * 2))] set mag_h [expr int( ( $magnifier_height + $zoom - 1 ) / $zoom) ] set mag_w [expr int( ( $magnifier_width + $zoom - 1 ) / $zoom) ] magnifier_x magnifier_y magnifier_width magnifier_height global mag_w mag_hproc setMagnifierZoom { zoom } \# setMagnifierZoom -- set the zoom factor for the magnifierset mag_h 0set mag_w 0# globals for magnifier#--------------------------------------------------------------------------# The following code was borrowed from the SAOtng GUI by Eric Mandel of SAO setMagPointerPosition magnifierMapImage $last_mag_x $last_mag_y global last_mag_x last_mag_yproc magnifierMovedMapImage args \# magnifier window is moved or resized.# magnifierMovedMapImage -- Front end to magnifierMapImage, called when set last_mag_y [expr $winHeight / 2]set last_mag_x [expr $winWidth / 2]}; send initialize addCallback resetMagnifier set magnifierGeom +5+5 if {$new != "startup"} { setMagnifier [true $displayMagnifier] global magnifierGeom displayMagnifierproc resetMagnifier {param old new} \# resetMagnifier -- Reinitialize the magnifier. send imagewin refreshMapping $magnifier_mapping $magnifier_width == $old_width && $magnifier_height == $old_height} { if {$magnifier_x == $old_x && $magnifier_y == $old_y && # Refresh the magnifier window if it did not move. send imagewin raiseMapping $magnifier_mapping # Make sure the magnifier window is on top. redraw" height [expr $height / 2]; \ width [expr $width / 2] \ y [expr $y + $height / 2] \ x [expr $x + $width / 2] \ setAttributes \ markpos; \ send magnifierWin "\ # Reposition the marker. set defGeom [format "%sx%s+5+5" $magnifier_width $magnifier_height] # Get new location of magnifier window. set old_y $magnifier_y; set old_height $magnifier_height set old_x $magnifier_x; set old_width $magnifier_width global magnifier_enable magnifier_mapping magnifier_heightproc magnifierImagewinResized args \# magnifier track the corner.# magnifierImagewinResized -- If the display window is resized make the if {$new > $wh / 2} { if {$new > $ww / 2} { lappend constraints "y $bottom" } elseif {$new > $bottom} { lappend constraints "y $top" if {$new < $top} { set bottom [expr $p_y + $p_height - $rheight - 1] y { set top [expr $p_y + $rheight + 1] lappend constraints "x $right" } elseif {$new > $right} { lappend constraints "x $left" if {$new < $left} { set right [expr $p_x + $p_width - $rwidth - 1] x { set left [expr $p_x + $rwidth + 1] # independently. # will not both change in the same call, so we can process them all # Since the magnifier region marker is a box marker x,y and width,height send magnifierWin getRect interior p_x p_y p_width p_heightproc magnifierRegionConstraint {marker event attributes} \# window is moved, resized, or rotated.# magnifierRegionConstraint -- Called when the region marker in the magnifier return $constraints lappend constraints "y [expr $winHeight - $ph]" } elseif {$new > $winHeight - $ph} { lappend constraints "y $ph" if {$new < $ph} { y { set ph [expr $height / 2] lappend constraints "x [expr $winWidth - $pw]" } elseif {$new > $winWidth - $pw} { lappend constraints "x $pw" if {$new < $pw} { x { set pw [expr $width / 2] # Constrain X and Y. rotangle { lappend constraints "rotangle 0" set height $new set height $wh lappend constraints "height $wh" if {$new > $wh} { height { set wh [expr $winHeight / 2] } } set width $new } else { set width $ww lappend constraints "width $ww" if {$new > $ww} { width { set ww [expr $winWidth / 2] switch [lindex $i 0] { set new [lindex $i 2] foreach i $attributes { # Check the width and height first as we need these below. set constraints [list {}] set height $magnifier_height set width $magnifier_width global magnifier_width magnifier_heightproc magnifierWinConstraint {marker event attributes} \# rotation is not permitted.# or rotated. Constrain the magnifier window to remain within the image window;# magnifierWinConstraint -- Called when the magnifier window is moved, resized, $magnifier_x $magnifier_y $magnifier_width $magnifier_height] set magnifierGeom [send imagewin getGeometry \ magnifier_x magnifier_y magnifier_width magnifier_height send magnifierWin getRect boundary \ # in the same place the next time. # Update the magnifier window position variables so that it comes up send client getSource raster sx sy snx sny # Move the region marker to the new location. global magnifier_x magnifier_y magnifier_width magnifier_height global winWidth winHeight magnifierGeom frame proc magnifierMoved {marker event position} \# so that the window will come up in the same place if closed and reopened.# move the region marker to the new window location and record the new location# magnifierMoved -- Called when the user moves the magnifier window. We need to } send magPointer destroy if [send server queryObject magPointer] { send magnifierWin destroy if [send server queryObject magnifierWin] { send frame deleteCallback magnifierMapImage send resize deleteCallback magnifierImagewinResized send imagewin deleteCallback magnifierImagewinResized send imagewin freeMapping $magnifier_mapping set magnifier_enable 0 global magnifier_mapping global magnifier_enable proc magnifierDestroy args \# magnifierDestroy -- Delete the magnifier. magnifierDestroy } elseif {$magnifier_enable} { magnifierMapImage [expr $winWidth / 2] [expr $winHeight / 2] setMagPointerPosition # set its position and size visible true activated true \ highlightcolor green \ lineColor green \ lineWidth 3 \ height 3 \ width 3 \ createMode noninteractive \ type rectangle \ send imagewin createMarker magPointer \ # create cross-hair send imagewin refreshMapping $magnifier_mapping set magnifier_mapping [send imagewin nextMapping] set magnifier_enable 1 # Map display frame to magnifier window. addCallback magnifierWinConstraint constraint; addCallback magnifierDestroy destroy; addCallback magnifierMoved moveResize; send magnifierWin { send magnifierWin addCallback magnifierMovedMapImage moveResize send resize addCallback magnifierImagewinResized send imagewin addCallback magnifierImagewinResized resize # Register callbacks. $magnifier_x $magnifier_y $magnifier_width $magnifier_height] set magnifierGeom [send imagewin getGeometry \ magnifier_x magnifier_y magnifier_width magnifier_height send magnifierWin getRect boundary \ # in the same place the next time. # Update the magnifier window position variables so that it comes up activated true sensitive true \ translations $magnifierWinTranslations \ highlightColor 8 \ lineColor 8 \ y [expr $y + $height / 2] \ x [expr $x + $width / 2] \ height [expr $height / 2] \ width [expr $width / 2] \ createMode noninteractive \ type rectangle \ send imagewin createMarker magnifierWin \ # Create the main magnifier window (marker). send imagewin parseGeometry $magnifierGeom $defGeom x y width height set defGeom [format "%sx%s-5+5" $scaled_width $scaled_height] set scaled_height [expr int(512 * $scale) / 2 * 2 + 1] set scaled_width [expr int(512 * $scale) / 2 * 2 + 1] set scale [expr sqrt(double($magnifierArea) / (512 * 512))] # Determine where to place the magnifier. if {$magnifier_enable} \ global magnifierGeom magnifier_x magnifier_y magnifier_width global magnifier_enable magnifier_height global frame magnifier_mapping magnifierWinTranslations magnifierArea global winWidth winHeight frameWidth frameHeightproc setMagnifier {state} \ setMagnifier 1 setMagnifier 0 if {$magnifier_enable} { global magnifier_enableproc toggleMagnifier args \ setMagnifier $state if {$magAlreadyOn} { set magAlreadyOn $magnifier_enable global magAlreadyOn magnifier_enableproc setDynamicMagnifier {state} \set magAlreadyOn 0# setMagnifier -- Turn the magnifier on or off. : track-cursor() call(wcsUpdate,$x,$y) : graphics-input() Delete: m_deleteDestroy() BackSpace: m_deleteDestroy() !Ctrl p: call(togglePanner) !Ctrl m: call(toggleMagnifier) : popdown(magzoomMenu) : popup(magzoomMenu) : m_lower() : m_redraw() m_destroyNull() : m_raise() m_markposAdd() !Shift : m_raise() m_markpos() : m_moveResize() !Shift : m_rotateResize()set magnifierWinTranslations { \# Magnifier window translations. { "Zoom 16" f.exec "setMagnifierZoom 16" } { "Zoom 8" f.exec "setMagnifierZoom 8" } { "Zoom 4" f.exec "setMagnifierZoom 4" } { "Zoom 2" f.exec "setMagnifierZoom 2" } { "Zoom 1" f.exec "setMagnifierZoom 1" } { f.dblline } { "Zoom Factors" f.title }createMenu magzoomMenu imagewin {set magnifier_mapping 0set magnifier_mag_enable 0set magnifier_enable 0set mrm_height 0set mrm_width 0set magnifier_height 0set magnifier_width 0set magnifier_y 0set magnifier_x 0# within the main image window.# displayed at a high resolution in a marker (known as the magnifier window)# MAGNIFIER. A subraster around the cursor in the main image window is cpSetTileFrames send tileFramesButton set on [expr !$value]proc tileFramesToggle args \}; send tileFrames addCallback cpTrackTileFrames send tileFramesButton set on [true $new]proc cpTrackTileFrames {param old new} \} ; send tileFramesButton addCallback cpSetTileFrames [expr {$value ? "True" : "False"}] \{ $tile_frames \} send client setOption tileFrames \ selectTileOrientation junk junk Disabled selectTileOrientation junk junk [tileSelToLabel $tileOpt] if {$value} { set value [send tileFramesButton get on] global tile_frames tileOptproc cpSetTileFrames { widget type state args } \}; send antialias addCallback cpTrackAntialias send antialiasButton set on [true $new]proc cpTrackAntialias {param old new} \}; send antialiasButton addCallback cpSetAntialias send client setOption antialias [expr {$value ? "True" : "False"}] set value [send antialiasButton get on]proc cpSetAntialias args \}; send autoscale addCallback cpTrackAutoscale send autoscaleButton set on [true $new]proc cpTrackAutoscale {param old new} \}; send autoscaleButton addCallback cpSetAutoscale send client setOption autoscale [expr {$value ? "True" : "False"}] set value [send autoscaleButton get on]proc cpSetAutoscale args \}; send warningsButton addCallback cpSetWarnings set warnings [send warningsButton get on]proc cpSetWarnings args \}; trace variable track_enable w cpTraceCoordsBox send coordsBoxButton set on $track_enable upvar $name track_enableproc cpTraceCoordsBox {name element op} \}; send coordsBoxButton addCallback cpSetCoordsBox setTrack [send $widget get on]proc cpSetCoordsBox {widget args} \}; trace variable magnifier_enable w cpTraceMagnifier send magnifierButton set on $magnifier_enable upvar $name magnifier_enableproc cpTraceMagnifier {name element op} \}; send magnifierButton addCallback cpSetMagnifier setMagnifier [send $widget get on]proc cpSetMagnifier {widget args} \}; trace variable panner_enable w cpTracePanner send pannerButton set on $panner_enable upvar $name panner_enableproc cpTracePanner {name element op} \}; send pannerButton addCallback cpSetPanner setPanner [send $widget get on]proc cpSetPanner {widget args} \# Options buttons.send brMatchButton addCallback cpMatchFramessend matchButton addCallback cpMatchFrames send client matchFrames \{$blinkFrames\} global blinkFramesproc cpMatchFrames args \send brRegButton addCallback cpRegisterFramessend registerButton addCallback cpRegisterFrames set frameOffsetY($f) 0 set frameOffsetX($f) 0 global frames blinkFramesproc cpRegisterFrames args \}; send nframes addCallback cpSetBlinkFrames incr button send brFrame$button set label $i send blinkFrame$button set label $i if {$i <= 4} { for {set i 1} {$i <= $new} {incr i} { set button 1 cpResetBlink lappend blinkFrames $i if {$i <= $new} { foreach i $frames { global blinkFrames framesproc cpSetBlinkFrames {param old new} \}; trace variable blinkId w cpTraceBlink send brBlinkButton set on [expr $blinkId != 0] send blinkButton set on [expr $blinkId != 0] upvar $name blinkIdproc cpTraceBlink {name element op} \send brReset addCallback cpResetBlinksend blinkReset addCallback cpResetBlink set blinkRate $defaultBlinkRate send brFrame$i set label $i send blinkFrame$i set label " " global defaultBlinkRate global blinkRate blinkFrames blinkIndex framesproc cpResetBlink args \}; send initialize addCallback resetAutoReg toggleAutoReg if {$auto_reg} \proc resetAutoReg args \ set auto_reg 1 cpAutoRegister autoregButton dummy 1 set auto_reg 0 cpAutoRegister autoregButton dummy 0 if {$auto_reg} { global auto_regproc toggleAutoReg args \} ; foreach w {autoregButton brAregButton} {send $w addCallback cpAutoRegister} set frameOffsetY($f) 0 set frameOffsetX($f) 0 foreach f $frames { send client registerFrames \{$blinkFrames\} # Register the frames to zero the offsets. send brAregButton set on False send autoregButton set on False send brAregButton set on True send autoregButton set on True if {$auto_reg == 1} { set auto_reg $state global frameZoomX frameZoomY frameOffsetX frameOffsetY global auto_reg frame frames blinkFramesproc cpAutoRegister {widget type state args} \} ; foreach w {blinkButton brBlinkButton} {send $w addCallback cpBlink} } elseif {($blinkId != 0) != [send $widget get on]} { blink send brBlinkButton set on False send blinkButton set on False if {$blinkRate < 0.01} { global blinkRate blinkIdproc cpBlink {widget args} \}; foreach i {1 2 3 4} {send blinkFrame$i addCallback cpSetBlinkFrame} lappend blinkFrames $frame if {$frame != " "} { set frame [send blinkFrame$i get label] foreach i {1 2 3 4} { set blinkFrames {} send $widget set label $frame set frame " " if {$frame > $nframes} { incr frame set frame 1 if {$frame == " "} { set frame [send $widget get label] global blinkFrames frames nframesproc cpSetBlinkFrame {widget args} \ send $w addCallback cpSetBlinkRateforeach w {BRincrease BRdecrease brBRincrease brBRdecrease} { send brBRtext set label $blinkRate send BRtext set label $blinkRate set blinkRate 0 set blinkRate [expr $blinkRate / 2.0] set blinkRate [expr $blinkRate * 2.0] set blinkRate 0.125 if {$blinkRate < 0.01} { if {$w == "BRincrease" || $w == "brBRincrease"} { global blinkRateproc cpSetBlinkRate {w args} \send brBRtext set label $blinkRatesend BRtext set label $blinkRate# Frame blink.}; send colorlist addCallback cpSelectColor send client setColormap $selection foreach selection $selections { global colortableproc cpSelectColor {widget cbtype selections indices} \}; send colorlist addEventHandler colorlistResize ResizeRedirectMask send colorlist setList $colorTables resize global colorTablesproc colorlistResize args \}; send colortables addCallback cpSetColorList send colorlist setList $new resize set colorTables $newproc cpSetColorList {param old new} \set colorTables {}# Colortable display and selection.send invertButton addCallback cpInvertsend brightnessSlider addCallback cpSetEnhancement scrollsend contrastSlider addCallback cpSetEnhancement scroll send $i addCallback cpDisplayEnhancementforeach i {enhancement frame} { set cpEnhanceDisable 0 send brightnessSlider moveThumb $offset send contrastSlider moveThumb [expr abs($scale) / $maxContrast] set cpEnhanceDisable 1 set cpListItem $colortable send colorlist highlight $colortable if {$colortable != $cpListItem} { $colortable $scale $offset] send colordata set label [format "-- %s --\nCon %0.2f Brt %0.2f" \ set scale [lindex $enhance 2] set offset [lindex $enhance 1] set colortable [lindex $enhance 0] if {[llength $enhance] < 3} \ set enhance $enhancement($frame) if {!$frame} \ global cpListItem enhancement frame global cpEnhanceId maxContrast cpEnhanceDisableproc cpDisplayEnhancement {param old new} \ [expr -1.0 * $contrast] send client windowColormap [lindex $enhancement($frame) 1] \ set contrast [lindex $enhancement($frame) 2] global enhancement frameproc cpInvert args \ return done send client windowColormap $val [expr (($contrast < 0) ? -$val : $val) * $maxContrast] send client windowColormap [lindex $enhancement($frame) 1] \ set contrast [lindex $enhancement($frame) 2] if {$cpEnhanceMode == "contrastSlider"} { set val $cpEnhanceVal global enhancement frame maxContrast global cpEnhanceMode cpEnhanceVal cpEnhanceIdproc cpEnhanceProc args \ set cpEnhanceId [postWorkProc cpEnhanceProc] if {!$cpEnhanceId && !$cpEnhanceDisable} { set cpEnhanceVal $x set cpEnhanceMode $widget global cpEnhanceMode cpEnhanceVal cpEnhanceId cpEnhanceDisableproc cpSetEnhancement {widget cbtype x y} \ set cpEnhanceId 0 set cpListItem none global cpListItem cpEnhanceIdproc cpResetEnhance args \# windowColormap, preventing slider events from queueing up.# This allows any number of slider motion events to be processed for each# so it is necessary to execute the windowColormap in a work procedure.# Windowing the colormap is slow when the mouse is not in the image window,set cpListItem noneset cpEnhanceVal 0set cpEnhanceMode noneset cpEnhanceId 0set cpEnhanceDisable 0# Frame enhancement.}; foreach p {frame frameView} {send $p addCallback cpDisplayFrameData} ] $header $center $scale1 $scale2 $zoom1 $zoom2 $offset \ send frameData set label [format "%s\n%s\n%s\n%s\n%s\n%s\n%s" \ set offset [format " Offset: (%0.1f,%0.1f)" $cpXoff $cpYoff] set scale2 [format "Y scale: %0.2f" $cpYscale] set scale1 [format "X scale: %0.2f" $cpXscale] set scale2 [format "Y scale: %0.1f" $cpYscale] set scale1 [format "X scale: %0.1f" $cpXscale] if {int($cpXscale) >= 10} { set zoom2 [format "Y zoom: %0.1f" $cpYmag] set zoom1 [format "X zoom: %0.1f" $cpXmag] set zoom2 [format " Y zoom: %0.1f" $cpYmag] set zoom1 [format " X zoom: %0.1f" $cpXmag] if {int($cpXmag) >= 10} { set center [format "X center: %0.1f\nY center: %0.1f" $cpXcen $cpYcen] set header [format "-- Frame %d --" $cpFrame] if {$update} { set update 1 set cpYmag $ymag; set cpYoff $yoff; set cpXmag $xmag; set cpXoff $xoff; set cpYcen $ycen; set cpYscale $yscale set cpXcen $xcen; set cpXscale $xscale $xscale != $cpXscale || $yscale != $cpYscale} { $xoff != $cpXoff || $yoff != $cpYoff || $xmag != $cpXmag || $ymag != $cpYmag || if {$xcen != $cpXcen || $ycen != $cpYcen || set yscale [expr $ymag * $ynorm] set xscale [expr $xmag * $xnorm] set ycen [lindex $text 1] set xcen [lindex $text 0] set text [send client encodewcs $xcen $ycen] # We need client coords and the overall scale factors. set xoff [lindex $new 6]; set yoff [lindex $new 7] set xnorm [lindex $new 4]; set ynorm [lindex $new 5] set xcen [lindex $new 2]; set ycen [lindex $new 3] set xmag [lindex $new 0]; set ymag [lindex $new 1] frameView { # Parse the frameView input. set update 1 set cpFrame $new frame { if {$new != $cpFrame} { switch $name { set update 0 global cpXmag cpYmag cpXscale cpYscale global cpFrame cpXcen cpYcen cpXoff cpYoffproc cpDisplayFrameData {name old new} \set cpYoff 0set cpXoff 0set cpYscale 0set cpXscale 0set cpYmag 0set cpXmag 0set cpYcen 0set cpXcen 0set cpFrame 0# Frame data display. send $widget addCallback cpZoomAction x1 z2 z3 z4 z5 z8 d2 d3 d4 d5 d8 } {foreach widget { toggleZoom centerFrame zoomIn zoomOut \ send client zoom $saveView($frame) [expr $frameHeight/2.0] [expr $frameWidth/2.0] \ send client zoom 1 1 \ $frameCenterX($frame) $frameCenterY($frame)" "$frameZoomX($frame) $frameZoomY($frame) \ set saveView($frame) \ if {$frameZoomX($frame) != 1 && $frameZoomY($frame) != 1} { global frameWidth frameHeight saveView frameproc toggleZoom args \ set zoomindex($frame) 0 [expr $frameZoomY($frame) * $zoom_y] \ [expr $frameZoomX($frame) * $zoom_x] \ send client zoomAbs \ # [expr $frameZoomY($frame) * $zoom_y] # [expr $frameZoomX($frame) * $zoom_x] \ #send client zoom \ $frameOffsetX($frame) $frameOffsetY($frame) $frameCenterX($frame) $frameCenterY($frame) \ send client zoomAbs $zoom_x $zoom_y \ #send client zoom $zoom_x $zoom_y if {$mode == "fixed"} { global frameOffsetX frameOffsetY frameCenterX frameCenterY global frameZoomX frameZoomY zoomindex frameproc cpZoom {zoom_x zoom_y mode} \ toggleZoom { toggleZoom } [expr $frameHeight/2.0] [expr $frameWidth/2.0] \ centerFrame { send client pan \ zoomOut { cpZoom 0.5 0.5 relative } zoomIn { cpZoom 2.0 2.0 relative } d8 { cpZoom [expr 1.0/8] [expr 1.0/8] fixed } d5 { cpZoom [expr 1.0/5] [expr 1.0/5] fixed } d4 { cpZoom [expr 1.0/4] [expr 1.0/4] fixed } d3 { cpZoom [expr 1.0/3] [expr 1.0/3] fixed } d2 { cpZoom [expr 1.0/2] [expr 1.0/2] fixed } z8 { cpZoom 8 8 fixed } z5 { cpZoom 5 5 fixed } z4 { cpZoom 4 4 fixed } z3 { cpZoom 3 3 fixed } z2 { cpZoom 2 2 fixed } x1 { cpZoom 1 1 fixed }proc cpZoomAction {widget args} \# Zoom and pan buttons.}; send frameFit addCallback initFitFrame pannerMapImage init fitFrame if { [lindex $new 0] == "resize"} {proc initFitFrame { param old new } \ send display "resize [expr $frameWidth + $dw] [expr $frameHeight + $dh]" set dh [expr [send display get height] - $winHeight] set dw [expr [send display get width] - $winWidth] global frameWidth frameHeight winWidth winHeightproc fitFrame args \# fitFrame -- Resize the display window to fit the frame buffer. send client clearFrame clearFrame all data in the frame" \ "Clearing the frame will destroy\n\ Wexec client \ if {$warnings} { global warningsproc clearFrame args \# clearFrame -- Clear the current display frame. send $widget addCallback cpFrameActionforeach widget {aspect flipX flipY flipXY clearFrame fitFrame} { fitFrame { fitFrame } clearFrame { clearFrame } flipXY { send client flip x y } flipY { send client flip y } flipX { send client flip x } cpZoom $zoom $zoom fixed set zoom [expr round (($xmag + $ymag) / 2.0)] set ymag $frameZoomY($frame) aspect { set xmag $frameZoomX($frame) global frameZoomX frameZoomY frameproc cpFrameAction {widget args} \# Frame buttons.} ; send brClose addCallback blinkPanelClose send blinkPanel set state 0 send blink_panel unmapproc blinkPanelClose args \} ; send blinkPanel addCallback blinkPanelCB send blink_panel unmap send blink_panel mapproc blinkPanelCB { widget type state args } \send frlistBox set width 30# Initialize to hide the extra frames.for {set i 1} {$i <= 16} {incr i} {send frame$i addCallback cpSetFrame}send frame addCallback cpFrameChangedsend nextFrame addCallback nextFramesend prevFrame addCallback prevFrame getHeader [lindex $frameCache($new) 0] [lindex $frameCache($new) 1] setHdrObjMenu $new if {[info exists frameCache($new)]} { # Update the header panel object list. send frame$new set on 1 if {$new > 0} { send frame$old set on 0 if {$old > 0} { global frameCacheproc cpFrameChanged {param old new} \ send client setFrame [send $widget get label] send $widget set on 0proc cpSetFrame {widget args} \# Frame selection.proc wcsPanel args { panelTabToggle wcs_panel }proc tilePanel args { panelTabToggle tile_panel }proc printPanel args { panelTabToggle print_panel }proc savePanel args { panelTabToggle save_panel }proc loadPanel args { panelTabToggle load_panel }proc infoPanel args { panelTabToggle info_panel }proc displayPanel args { panelTabToggle display_panel } if {$panel_up == 0} { # Now fire it up if it's not already open. set tabTop $panel send panelTabs setTop $panel send client setLoadOption rescan if {$panel == "load_panel"} { # Special cases for each panel. send $widget set state 0 if {$tabTop == $panel && $panel_up} { global tabTop panel_upproc panelTabToggle { panel args } \} ; send panelClose addCallback panelDismiss set panel_up 0 send panelShell unmapproc panelDismiss args \} ; foreach w $cpTabs { send $w addEventHandler cpResizeCB exposureMask } wcs_panel { setCoordPanelHeight } tile_panel { send panel set height 405 } info_panel { send panel set height 380 } save_panel { send panel set height 325 } } } send client setLoadOption rescan } else { send imageList setList $fileList resize if { [send browseHdrs get on] } { load_panel { send panel set height 485 print_panel { send panel set height 545 } display_panel { send panel set height 595 } switch $widget { set tabTop $widget if { $a == 0 && $b == 0 && $c == 0 && $d == 0 && $e == 0 } { # Handle only the first exposure event generated. global tabTop fileListproc cpResizeCB { widget event a b c d e args } \# Resize the control panel depending on the Tab selected.set tabTop "display_panel" info_panel wcs_panel tile_panel}set cpTabs { display_panel print_panel load_panel save_panel \#----------------------------------------# Control Panel Tabs widget procedures.}; send initialize addCallback resetPanel send peakupButton set on [true $peakCentroid] send warningsButton set on $warnings send coordsBoxButton set on [true $displayCoords] send magnifierButton set on [true $displayMagnifier] send pannerButton set on [true $displayPanner] cpResetEnhance send brFrame$i set label $i for {set i 1} {$i <= 16} {incr i} { incr button send blinkFrame$button set label $i foreach i {1 2 3 4} { set button 1 cpResetBlink send frame$frame set on 1 done { if {$frame} { send frlistBox set width 30 # Initialize to hide the extra frames. } send frame$frame set on 0 restart { foreach i $frames { startup { switch $new { global blinkFrames warnings peakCentroid global displayPanner displayMagnifier displayCoords global frame nframes framesproc resetPanel {param old new} \# resetPanel -- Calling during startup or in an initialize, to reset things.} ; trace variable panel_up w pbTracePanel send controlButton set state $panel_up upvar $name panel_upproc pbTracePanel {name element op} \ set panel_up 1 send panelShell map set panel_up 0 send panelShell unmap if {$panel_up} { global panel_upproc panel args \# panel -- Toggle control panel display.send brightnessSlider resizeThumb 0.1 1.0send contrastSlider resizeThumb 0.1 1.0send brightnessLabel set bitmap brightnesssend contrastLabel set bitmap contrastsend nextFrame set bitmap rarrowsend prevFrame set bitmap larrowforeach i $frames {set saveView($i) "1 1"}#-----------------------------------------------------------------------------send optimizeButton setSensitive false# Temporarily deactivate some buttons.send normalizeButton addCallback normalizesend initializeButton addCallback cpInitialize send client initializeproc cpInitialize args \# -------------------------------# Global control panel buttons.# MAIN CONTROL PANEL send client setOffset $xoff $yoff # Adjust the display. set frameOffsetY($frame) $yoff set frameOffsetX($frame) $xoff set yoff [expr "int ($ry) - $frameCenterY($frame)" ] set xoff [expr "int ($rx) - $frameCenterX($frame)" ] Wexec client "Frame not in current\nregister list." if { [string first $frame $blinkFrames] == -1 } { # If we're not in the blink frames list ignore the request. Wexec client "Auto-Register is not enabled!" if { $auto_reg == 0 } { # No-op of auto-register isn't on. global frameCenterX frameCenterY global frame blinkFrames auto_regproc offset { x y args } \# Set the auto-register center offset position move_cursor $xoff $yoff set yoff [lindex $center 1 ] set xoff [lindex $center 0 ] # Now reposition the cursor. set center [ send client centroid $x $y $sz min ] set center [ send client centroid $x $y $sz max ] set center [ send client centroid $x $y $sz ] if {[send peakupButton get on]} { if {$type != "min"} { # Get the centroid position. set sz [expr "int ($centerBoxSize * $cpXscale)"] # Convert to image coords. global centerBoxSizeproc centroid { x y type args } \# feature.# Compute a centroid offset for the current position to peak-up on the set ctid [ postTimedCallback cbxDestroy 500] sensitive False visible True \ activated True \ height [expr $cpXscale * $centerBoxSize] \ width [expr $cpXscale * $centerBoxSize] \ y $y \ x $x \ lineColor red \ createMode noninteractive \ type box \ send imagewin createMarker cbm$cid \ incr cid # callback to delete it in about a second. # create a transient marker indicating the centering box and post a # Kill off any old markers before drawing the new one. if {$centerBoxSize <= 1} { set centerBoxSize 1 } incr centerBoxSize $delta global cpXscale cpYscaleproc setCtrBoxSize { x y delta args } \ set ctid 0 deleteTimedCallback $ctid send cbm$cid destroy if {$ctid != 0} { catch { global centerBoxSize cid ctidproc cbxDestroy args \set cid 0set ctid 0# Set the centroiding box size.# CURSOR CENTEROID AND AUTO-REGISTER FUNCTIONS. set ct_warn 0 send y_curpos destroy send x_curpos destroy send curtrack_warn destroy global ct_warnproc curtrack_destroy args \ send wcsbox raise # Raise the coordinate marker so we can see where we are. height $winHeight \ width 1 \ y 1 \ x $last_x \ send imagewin createMarker y_curpos \ sensitive False visible True \ activated True \ height 1 \ width $winWidth \ y $last_y \ x 1 \ lineColor red \ createMode noninteractive \ type box \ send imagewin createMarker x_curpos \ # Mark the position of the cursor. set ct_warn 1 send curtrack_warn "redraw noerase" send curtrack_warn "markpos; setAttributes x 5 y $ypos; redraw" set ypos [ expr ($winHeight - 25) ] send curtrack_warn "set text \{ CURSOR READOUT FROZEN \}" y 5 x 5 activated true sensitive true visible true textColor yellow textBgColor red imageText true lineWidth 0 height 21 width 25ch createMode noninteractive type text send imagewin createMarker curtrack_warn { if {! $ct_warn == 0} { global ct_warn last_x last_y winHeight winWidthproc curtrack_msg { x y args } \set ct_warn 0# Frozen Cursor Warning Message#-------------------------------}; createMenu optionsMenu optionsButton $optionsMenuDescription { "Save Panel" f.exec { panelTabToggle save_panel } } { "Load Panel" f.exec { panelTabToggle load_panel } } { "Print Panel" f.exec { panelTabToggle print_panel } } { "Control Panel" f.exec { panelTabToggle display_panel } } f.exec toggleBlink } { {$blinkId ? "Stop blink" : "Blink frames"} { "Register" f.exec cpRegisterFrames } { "Auto-Register" f.exec cpAutoRegister } { "Match LUTs" f.exec cpMatchFrames } { "Fit frame" f.exec fitFrame } { "Clear frame" f.exec clearFrame } cpSetTileFrames send tileFramesButton set on [expr !$value] set value [send tileFramesButton get on] { "Tile frames" f.exec { { "Coords box" f.exec { setTrack [expr !$track_enable] } } { "Magnifier" f.exec { setMagnifier [expr !$magnifier_enable] }} { "Panner" f.exec { setPanner [expr !$panner_enable] } } cpSetAntialias send antialiasButton set on [expr !$value] set value [send antialiasButton get on] { "Antialias" f.exec { cpSetAutoscale send autoscaleButton set on [expr !$value] set value [send autoscaleButton get on] { "Autoscale" f.exec {set optionsMenuDescription { { "Flip XY" f.exec xyflip } { "Flip Y" f.exec yflip } { "Flip X" f.exec xflip }createMenu flipMenu viewMenu { { "Random8" f.exec "send client setColormap Random8" } { "Rainbow2" f.exec "send client setColormap Rainbow2" } { "Rainbow1" f.exec "send client setColormap Rainbow1" } { "Staircase" f.exec "send client setColormap Staircase" } { "Standard" f.exec "send client setColormap Standard" } { "Ramp" f.exec "send client setColormap Ramp" } { "Halley" f.exec "send client setColormap Halley" } { "AIPS0" f.exec "send client setColormap AIPS0" } { "HSV" f.exec "send client setColormap HSV" } { "Heat" f.exec "send client setColormap Heat" } { "Color" f.exec "send client setColormap Color" } { "Grayscale" f.exec "send client setColormap Grayscale" } { "Optimize" f.exec cpOptimize sensitive false } { "Invert" f.exec cpInvert } { "Normalize" f.exec normalize }createMenu cmapMenu viewMenu { send client zoom $mag $mag $xcen $ycen set mag $zoomfactor($zoomindex($frame)) set zoomindex($frame) 0 { "Unzoom" f.exec { { "Toggle zoom" f.exec toggleZoom } cpZoom $xmag $ymag fixed set ymag [expr round ($frameZoomY($frame))] set xmag [expr round ($frameZoomX($frame))] { "Integer zoom" f.exec { } } cpZoom $zoom $zoom fixed set zoom [expr ($xmag + $ymag) / 2.0] set ymag $frameZoomY($frame) set xmag $frameZoomX($frame) { "Equal aspect" f.exec { { "Flip" f.menu flipMenu } { "Colormap" f.menu cmapMenu } { f.dblline } { "Prev frame" f.exec prevFrame } { "Next frame" f.exec nextFrame }createMenu viewMenu viewButton { { "Quit" f.exec { Quit } } #resetView initialize done done send client Reset # Do a hard reset. { "Reset" f.exec { { f.dblline } { "Print Setup" f.exec { panelTabToggle print_panel } } send imagewin setCursorType idle Print send imagewin setCursorType busy { "Print" f.exec { { "Save As..." f.exec { panelTabToggle save_panel } } { "Save" f.exec { Save } } } } set panel_up 1 panelTabToggle load_panel { "Load" f.exec { { "Info" f.exec { panelTabToggle info_panel } }createMenu fileMenu fileButton {# Popdown menus. send client windowColormap 0.5 1.0 #send client zoom 1 1 $xcen $ycen #set ycen [expr $frameHeight / 2] #set xcen [expr $frameWidth / 2] #set zoomindex($frame) 0proc normalize args \# Normalize -- Reset the view parameters for the current frame.}; send initialize addCallback resetBlink toggleBlink if {$blinkId} \ global blinkIdproc resetBlink args \ set blinkId [postTimedCallback blink [expr int($blinkRate * 1000)]] set blinkIndex 0 if {$blinkIndex >= [llength $blinkFrames]} { incr blinkIndex send client setFrame [lindex $blinkFrames $blinkIndex] global blinkId blinkRate blinkFrames blinkIndexproc blink args \ editMenu optionsMenu viewButton $optionsMenuDescription set blinkIndex 0 set blinkId [postTimedCallback blink [expr int($blinkRate * 1000)]] set blinkId 0 deleteTimedCallback $blinkId if {$blinkId} { global optionsMenuDescription global blinkId blinkRate blinkIndexproc toggleBlink args \set blinkIndex 0set blinkId 0# FRAME BLINK.#---------------------}; send initialize addCallback resetWcsbox set wcsboxGeom -5-5 if {$new == "restart"} { setTrack 0 setTrack [true $displayCoords] global track_enable wcsboxGeom displayCoordsproc resetWcsbox {param old new} \ set wcsboxGeom [send imagewin getGeometry $x $y $width $height] send wcsbox getRect boundary x y width heightproc wcsboxMoved {marker event position} \ set wcsboxGeom [send imagewin getGeometry $x $y $width $height] addCallback wcsboxMoved moveResize" markpos; setAttributes x $x y $y; redraw; \ deleteCallback wcsboxMoved; \ send wcsbox "\ # Move the marker. # Get new location. if {$track_enable} { global wcsboxGeomproc wcsboxWindowResize args \# If the window is resized make the wcsbox track the corner. set track_enable 0 send imagewin deleteCallback wcsboxWindowResize global track_enableproc wcsboxDestroyCallback args \ updateCoordsBox resizeCoordsBox 0 foreach w {wiWcs1 wiWcs2 wiWcs3 wiWcs4} { send $w set on False } # Turn off the option toggles on the control panel. send wcsbox destroy set track_enable 0 } elseif {$track_enable} { resizeCoordsBox $up_todo if {$ism_enable} { send wiWcs$n set on True if {[send sysWcs$n get label] != "None"} { foreach n {1 2 3 4} { # Turn on the option toggles on the control panel. magnifierMapImage $x $y wcsUpdate $x $y set track_enable 1 send imagewin addCallback wcsboxWindowResize resize addCallback wcsboxMoved moveResize addCallback wcsboxDestroyCallback destroy send wcsbox { sensitive true visible true \ activated true \ y $y \ x $x \ send wcsbox setAttributes \ send imagewin parseGeometry $wcsboxGeom $defGeom x y width height set defGeom [format "%sx%s-5-5" $box_width $box_height] set box_height [send wcsbox get height] set box_width [send wcsbox get width] visible false textColor yellow textBgColor black imageText true lineWidth 0 height 1ch width 27ch createMode noninteractive type text send imagewin createMarker wcsbox { return if {$track_enable} \ global winWidth winHeight up_todo global ism_enable track_enable wcsboxGeomproc setTrack {state} \ set last_y $y set last_x $x # Save the position so we can track differences with last position. cutPlots $x $y if {($plotSpeed && $dist < 30) || ! $plotSpeed} { set dist [ expr "sqrt(pow(($last_x - $x),2) + pow(($last_y - $y),2))" ] if {$doHcut || $doVcut} { # small indicating a finer motion. # track the really large cursor motions, wait till the differences are # Update the cut-plots if enabled. If we're set for speed the don't drawCompass if {$redraw_compass} \ send wtWcs1 set string $ln set ln [format " %12s %12s Display" $nx $ny] set ln [format " X: %12s Y: %12s WCS: Display" $nx $ny] if {$wcsLabels} { # Update the control panel readout (always done). send wcsbox "set text \{$text\}; redraw noerase" if {$track_enable} { # Update the on-screen marker. updateCoordsBox # options, otherwise just write the one-line frame wcs coords. # If the ISM is running update the coords box with all the selected updatePixelTable $x $y $nx $ny if {$pixtab_up} { wcsFmtSValue $nz # Update the coords panel and pixel table. set nx $rx ; set ny $ry ; set nz $rz set text [format " %7.2f %7.2f %9.1f " $rx $ry $rz] scan $text "%g %g %g" nx ny nz set text [send client encodewcs $rx $ry $rz] if {$raster} { # Update coords box. send client setFrame $track_frame if {$frame != $track_frame} { set track_frame [send client getFrame $raster] if {$frame && $raster} { # Set the current frame to the frame the pointer is within. send imagewin unmapPixel $x $y raster rx ry rz # Convert screen coords to raster pixel. curtrack_destroy if {$ct_warn} { # If the cursor was frozen release it now. global ct_warn plotSpeed doHcut doVcut global ism_enable wcsLabels last_x last_y global frameWidth frameHeight redraw_compass global track_enable frame pixtab_up tabTopproc wcsUpdate {x y} \set last_y 0set last_x 0set track_enable 0# WCSBOX -- Real time coordinate display. send $marker addCallback selectMarker focusIn focusOut y $y x $x \ translations $markerTranslations \ createMode interactive \ type rectangle \ send $parent createMarker $marker \ set marker marker$markno; incr markno global markerTranslations marknoproc makeMarker {parent x y} \# Create marker action. Makes a new marker. focusOut { } focusIn { set marker $active_marker } switch $event { global markerproc selectMarker {active_marker event event_data} \# Callback executed when a marker gets or loses the focus. set lineColor $color; set highlightColor $color; redraw" send $marker "markpos;proc m_setColor {marker color} { send $marker "markpos; set type $type; redraw"proc m_setType {marker type} { bitmap solid foreground yellow } { "" f.exec "m_setColor $marker yellow" bitmap solid foreground cyan } { "" f.exec "m_setColor $marker cyan" bitmap solid foreground magenta } { "" f.exec "m_setColor $marker magenta" bitmap solid foreground blue } { "" f.exec "m_setColor $marker blue" bitmap solid foreground green } { "" f.exec "m_setColor $marker green" bitmap solid foreground red } { "" f.exec "m_setColor $marker red" bitmap solid foreground white } { "" f.exec "m_setColor $marker white" bitmap solid foreground black } { "" f.exec "m_setColor $marker black" { Color f.title }createMenu markerColor markerMenu { { Polygon f.exec "m_setType $marker polygon" } { Ellipse f.exec "m_setType $marker ellipse" } { Circle f.exec "m_setType $marker circle" } { Box f.exec "m_setType $marker box" } { Rectangle f.exec "m_setType $marker rectangle" } { Type f.title }createMenu markerType markerMenu { { Destroy f.exec { { Type f.menu markerType } { Color f.menu markerColor } send $marker setAttribute rotangle 0 { Unrotate f.exec { [format "%s\n" [send $marker getRegion unmap]] send infoText append \ { Info f.exec { send imagewin setCursorType idle send client save $x0 $y0 $nx $ny send imagewin setCursorType busy { Save f.exec { send client print $x0 $y0 $nx $ny [expr $x0 + $nx -1] $y0 setPrintCorners $x0 [expr $y0 + $ny -1] \ send $marker getRect interior x0 y0 nx ny { Print f.exec { zoomMarker $marker fill { Fill f.exec { } } send $marker destroy zoomMarker $marker equal { Zoom f.exec { { f.dblline } { Marker f.title }createMenu markerMenu imagewin {# Popup menu in effect when inside marker. : track-cursor() call(wcsUpdate,$x,$y) call(magnifierMapImage,$x,$y) : m_input() Delete: m_deleteDestroy() BackSpace: m_deleteDestroy() !Ctrl 9: call(cpZoom,9,9,fixed) !Ctrl 8: call(cpZoom,8,8,fixed) !Ctrl 7: call(cpZoom,7,7,fixed) !Ctrl 6: call(cpZoom,6,6,fixed) !Ctrl 5: call(cpZoom,5,5,fixed) !Ctrl 4: call(cpZoom,4,4,fixed) !Ctrl 3: call(cpZoom,3,3,fixed) !Ctrl 2: call(cpZoom,2,2,fixed) !Ctrl 1: call(cpZoom,1,1,fixed) !Alt 4: call(cpSetFrame,frame4) !Alt 3: call(cpSetFrame,frame3) !Alt 2: call(cpSetFrame,frame2) !Alt 1: call(cpSetFrame,frame1) !Ctrl p: call(togglePanner) !Ctrl r: call(cpRegisterFrames) !Ctrl m: call(cpMatchFrames) !Ctrl i: call(cpInvert) !Ctrl c: call(cpZoomAction,centerFrame) !Ctrl n: call(normalize) !Ctrl l: call(move_cursor,1,0) !Ctrl k: call(move_cursor,0,-1) !Ctrl j: call(move_cursor,0,1) !Ctrl h: call(move_cursor,-1,0) !Ctrl f: call(nextFrame,$name) !Ctrl b: call(prevFrame,$name) : popdown(markerMenu) : popup(markerMenu) : m_lower() : m_redraw() m_destroyNull() : m_raise() m_markposAdd() !Shift : m_raise() m_markpos() : m_moveResize()!Shift : m_rotateResize()set markerTranslations { \# Translations when pointer is inside marker.# was most recently in.# "marker", which is the marker the pointer is in, or which the pointer# MARKER stuff. The active marker is determined by the global variablesend imagewin addCallback keyInput inputsend cursorMode addCallback setCursorMode}; send initialize addCallback resetCursorMode send client retCursorVal $x $y $frame 1 ^D send imagewin getCursorPos x y if {$cursorMode} {proc resetCursorMode args { send client retCursorVal $rx $ry $frame 1 [lindex $data 0] # Return the cursor value and exit cursor mode. send imagewin unmapPixel $sx $sy raster rx ry # Convert raw screen coordinates to raster pixel coordinates. if {[lindex $data 0] == "??"} \ if {!$cursorMode || $event != "keyPress"} \ global cursorMode frameproc keyInput {widget event sx sy data} \ set cursorMode 0 send imagewin "setCursorType idle; deactivate" } elseif {$new == "off"} { set cursorMode 1 send imagewin "activate; setCursorType ginMode" if {$new == "on"} { global cursorModeproc setCursorMode {param old new} \# CURSOR READ stuff.}; #send initialize addCallback resetView send client setFrame 1 normalize send client setColormap Grayscale set zoomindex($i) 0 send client zoom 1 1 $xcen $ycen set ycen [expr $frameHeight / 2] set xcen [expr $frameWidth / 2] send client setFrame $i foreach i $frames { if {$new == "done"} { global zoomindex xcen ycen framesproc resetView {param old new} { $frameZoomX($frame) $frameZoomY($frame) $nxc $nyc \ # Finally, send the command to move the frame. if {$nyc > $yu} { set nyc $yu } if {$nyc < $yl} { set nyc $yl } if {$nxc > $xu} { set nxc $xu } if {$nxc < $xl} { set nxc $xl } set nyc [ expr "$frameCenterY($frame) + $ystep_size" ] set nxc [ expr "$frameCenterX($frame) + $xstep_size" ] # Set the new center position. set yu [ expr "$frameHeight - $yl" ] set xu [ expr "$frameWidth - $xl" ] set yl [ expr "($winHeight / $frameZoomY($frame)) / 2 + 1" ] set xl [ expr "($winWidth / $frameZoomX($frame)) / 2 + 1" ] # Set the boundaries so we only move up to the edges. set ystep_size [ expr "$ys * $winHeight / $frameZoomY($frame)" ] set xstep_size [ expr "$xs * $winWidth / $frameZoomX($frame)" ] # Get the step size for the new position. global frameOffsetX frameOffsetY global frameWidth frameHeight global winWidth winHeight frameproc moveFrame { xs ys args } \# Pan the display frame one width/height in a given direction. set zoomindex($frame) [expr "$nzoomfactors - 1"] send imagewin setCursorPos $xcen $ycen $raster # The following causes a button2 to redisplay the full image. $frameOffsetX($frame) $frameOffsetY($frame) $xmag $ymag $xcen $ycen \ send client zoomAbs \ # Zoom the image. set xmag $mag; set ymag $mag set mag [expr "($xmag < $ymag) ? $xmag : $ymag"] if {$aspect == "equal"} { set ymag [expr "$winHeight / $sny"] set xmag [expr "$winWidth / $snx"] # Compute the magnification ratio. set sny [expr "[lindex $region 5] * 2"] set snx [expr "[lindex $region 4] * 2"] set ycen [expr "int([lindex $region 3]) + 0.5"] set xcen [expr "int([lindex $region 2]) + 0.5"] set raster [lindex $region 1] set region [send $marker getRegion unmap] # getRegion returns: "rectangle raster x y width height rotangle". global auto_reg frame frameOffsetX frameOffsetY global zoomindex nzoomfactorsproc zoomMarker {marker aspect} \# Zoom using a marker to indicate the region to be displayed. send imagewin setCursorType idle send imagewin getCursorPos xcen ycen send imagewin setCursorPos $rx $ry $raster # selected. # Move the pointer so that it tracks the object feature the user set ycen $y set xcen $x send client pan $rx $ry send client zoom $mag $mag $rx $ry set mag $zoomfactor($zoomindex($frame)) set zoomindex($frame) [expr [incr zoomindex($frame)] % $nzoomfactors] if {sqrt(pow($x-$xcen, 2) + pow($y-$ycen, 2)) < 4} { send imagewin setCursorType busy # pan it. # If the pointer did not move (much) zoom the image, otherwise set ry [expr "int ($ry)"] set rx [expr "int ($rx)"] # Select a pixel. send imagewin unmapPixel $x $y raster rx ry # Convert raw screen coordinates to frame buffer raster coordinates. set rx $x; set ry $y global nzoomfactors global zoomindex zoomfactor global xcen ycen frameproc zoom {x y} \# Zoom or pan image at given center. incr nzoomfactors set zoomfactor($nzoomfactors) $iforeach i $zoomfactors {set nzoomfactors 0foreach i $frames {set zoomindex($i) 0}set ycen 0set xcen 0# ZOOM and PAN. $maxContrast * 2.0"] $save_flag send client windowRGB $color \proc windowRGB {color x y save_flag} \# WINDOW the current frame, but only one color at a time. $maxContrast * 2.0"] [expr "(double($y) - $winHeight / 2.0) / $winHeight * \ [expr "double($x) / $winWidth"] \ send client windowColormap \ global winWidth winHeight maxContrastproc windowColormap {x y} \# WINDOW the current frame.send blinkPanel "set bitmap panel"send nextButton "set bitmap rarrow; addCallback nextFrame"send prevButton "set bitmap larrow; addCallback prevFrame"send yflipButton "set bitmap yflip; addCallback yflip"send xflipButton "set bitmap xflip; addCallback xflip"catch { send helpButton "set bitmap qmark; addCallback Help" }catch { send controlButton "set bitmap panel; addCallback panel" } 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,createBitmap solid 64 24 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,createBitmap null 16 16 { 0xe0, 0x03, 0xf0, 0x07, 0xf0, 0x07, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01,createBitmap dot 16 16 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x42, 0x00, 0x7e, 0x00,createBitmap bar 10 10 { 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00} 0x04, 0x1f, 0x04, 0x1f, 0x04, 0x1f, 0x08, 0x0f, 0x08, 0x0f, 0x30, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x30, 0x07, 0x08, 0x0f, 0x08, 0x0f,createBitmap contrast 15 15 { 0x84, 0x10, 0x80, 0x00, 0x00, 0x00} 0x08, 0x08, 0x0e, 0x38, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, 0xe8, 0x0b, 0x00, 0x00, 0x80, 0x00, 0x84, 0x10, 0xe8, 0x0b, 0x10, 0x04, 0x08, 0x08,createBitmap brightness 15 15 { 0x18, 0x18, 0x18, 0x18, 0xf8, 0x1f, 0xf8, 0x1f} 0x98, 0x19, 0x98, 0x19, 0x98, 0x19, 0x98, 0x19, 0x98, 0x19, 0x18, 0x18, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,createBitmap panel 16 16 { 0xc0, 0x03, 0xc0, 0x01, 0xc0, 0x00, 0x00, 0x00} 0x18, 0x1c, 0x18, 0x38, 0x18, 0x38, 0x18, 0x1c, 0x78, 0x0e, 0x78, 0x07, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x01, 0xc0, 0x03, 0x78, 0x07, 0x78, 0x0e,createBitmap rarrow 16 16 { 0xc0, 0x03, 0x80, 0x03, 0x00, 0x03, 0x00, 0x00} 0x38, 0x18, 0x1c, 0x18, 0x1c, 0x18, 0x38, 0x18, 0x70, 0x1e, 0xe0, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0xc0, 0x03, 0xe0, 0x1e, 0x70, 0x1e,createBitmap larrow 16 16 { 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00} 0x18, 0x0e, 0x00, 0x07, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0xf8, 0x0f, 0x18, 0x0c, 0x18, 0x0c,createBitmap qmark 16 16 { 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00} 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f, 0x80, 0x01,createBitmap yflip 16 16 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} 0x1c, 0x38, 0xfe, 0x7f, 0xfe, 0x7f, 0x1c, 0x38, 0x18, 0x18, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x18, 0x18,createBitmap xflip 16 16 {# Initialize bitmaps. send client offsetRegister \{$blinkFrames\} global auto_reg frame blinkFramesproc flipRegister args \proc xyflip args { send client flip x y ; flipRegister }proc yflip args { send client flip y ; flipRegister }proc xflip args { send client flip x ; flipRegister }proc setColormap { mapno } { send client setColormap $mapno }proc prevFrame args { send client prevFrame }proc nextFrame args { send client nextFrame } send client Quit catch { send wcspix quit } if {$ism_enable} { global ism_enableproc Quit args \# Various general callbacks.}; foreach i {xflip yflip} { send $i addCallback setFlip } send yflipButton set state [true $new] send xflipButton set state [true $new] if {$param == "xflip"} { proc setFlip {param old new} \# Called when the image is flipped in an axis.}; send frameTitle addCallback setTitle wcsFmtImtitle $title set title [lindex [ split $lab '-'] 1 ] wcsFmtImname $image set image [lindex [ split $lab '-'] 0 ] send imageTitle set label $lab set lab [string trimright $new]proc setTitle {param old new} \# Called when the frame title changes (e.g. frame change or new frame loaded).}; send enhancement addCallback setEnhancement set enhancement([lindex $new 0]) [lrange $new 1 end] global enhancementproc setEnhancement {param old new} \# Called when the color enhancement for a frame changes.}; send frameView addCallback setFrameView deleteAllRulers set frameScaleY($f) $frameScaleY($frame) set frameScaleX($f) $frameScaleX($frame) set frameCenterY($f) $frameCenterY($frame) set frameCenterX($f) $frameCenterX($frame) set frameZoomY($f) $frameZoomY($frame) set frameZoomX($f) $frameZoomX($frame) if {$f != $frame} { foreach f $blinkFrames { send client offsetRegister \{$blinkFrames\} if {[string first $frame $blinkFrames] != -1} { if {$auto_reg == 1 && $frame == [send frameButton get label]} { # the current display frame, and only if that frame is in the framelist. # If auto-registering is enabled, do it now, but only when we're updating set frameOffsetY($frame) [lindex $new 7] set frameOffsetX($frame) [lindex $new 6] set frameScaleY($frame) [lindex $new 5] set frameScaleX($frame) [lindex $new 4] set frameCenterY($frame) [lindex $new 3] set frameCenterX($frame) [lindex $new 2] set frameZoomY($frame) [lindex $new 1] set frameZoomX($frame) [lindex $new 0] # Update the position. global frame auto_reg blinkFrames global frameScaleX frameScaleY frameOffsetX frameOffsetY global frameZoomX frameZoomY frameCenterX frameCenterYproc setFrameView {param old new} \# Called when the current frame is zoomed or panned.}; send frameSize addCallback setFrameSize set frameDepth [lindex $new 2] set frameHeight [lindex $new 1] set frameWidth [lindex $new 0] global frameWidth frameHeight frameDepthproc setFrameSize {param old new} \# Called when the frame buffer configuration changes.}; send frame addCallback frameChanged drawCompass wcsFmtFBConfig send frlistBox set width 49 if {$new >= 5} { # them visible. # the extra frame buttons on the control panel to make # The first time we request frame 5 or higher reset send frameButton set label [format "%2d" $frame] set frame $new global frameproc frameChanged {param old new} \# Called when the frame being displayed changes. createMenu frame${i}Menu brFrame$i $frameMenuDescription send tFrame$i "setSensitive False ; set state 0" send brFrame$i setSensitive False send tFrame$i "setSensitive True ; set state 1" send brFrame$i setSensitive True if {$i <= 4} { send tFrame$i set label [format "%2d" $i] send brFrame$i set label [format "%2d" $i]for {set i 1} {$i <= 16} {incr i} {# Initialize the frame lists panels (blink panel and tile tab).}; createMenu frameMenu frameButton $frameMenuDescription {" 4" f.exec "send client setFrame 4" sensitive {[expr "$nframes >= 4"]} } {" 3" f.exec "send client setFrame 3" sensitive {[expr "$nframes >= 3"]} } {" 2" f.exec "send client setFrame 2" sensitive {[expr "$nframes >= 2"]} } {" 1" f.exec "send client setFrame 1" sensitive {[expr "$nframes >= 1"]} }set frameMenuDescription {# Set the default main window frame menu.}; send nframes addCallback setNFrames setAllTileFrames if {$nframes > 2} { send frame$i unmap send frame$i map if {$i <= $nframes} { for {set i 1} {$i <= 16} {incr i} { editMenu frame${i}Menu brFrame$i $frameMenuDescription editMenu frameMenu frameButton $frameMenuDescription } else { editMenu frame${i}Menu brFrame$i $nmenu regsub -all BTN $items $i nmenu send tFrame$i setSensitive True send brFrame$i setSensitive True } lappend items "$l f.exec \{send brFrameBTN set label $l\} sensitive \{[expr \"$nframes >= $i\"]\}" set l [format "%2d" $i] } else { lappend items $s set s "\"none\" f.exec \{send brFrameBTN set label \" \"\}" if {$i == 0} { set j [expr ($i + 1)] for {set i 0} {$i <= $nframes} {incr i} { # Create the menu for the blink frames list. editMenu frameMenu frameButton $items lappend items "$l f.exec \{send client setFrame $i\} sensitive \{[expr \"$nframes >= $i\"]\}" set l [format "%2d" $i] for {set i 1} {$i <= $nframes} {incr i} { set items { } # Creates the Frames menu on the main image window. if {$nframes > 0} { send $i set sensitive [expr "$nframes > 1"] foreach i {prevButton nextButton} { if {$old != $new} { set nframes $new global frameMenuDescription nframes framesproc setNFrames {param old new} \# Called when the number of frames changes. send imagewin setCursorPos [expr $rx + $xstep] [expr $ry + $ystep] $raster send imagewin getCursorPos rx ry set raster 0proc move_cursor { xstep ystep args } \#----------------------------# Cursor positioning routines return $ticstep if {$ticstep < 0.1} { set ticstep 0.10 } set ticstep [ expr "int( ($ticstep / $scale) * $scale)" ] set scale [ expr "pow(double(10.0),double($logtic))" ] set logtic [ expr "int(log10($ticstep)) - 1" ] set ticstep $df set ticstep [ expr "pow(double(10.0),double($p2 + 1.))" ] } elseif { $p3 > $t5 && $p3 <= 1.0 } { set ticstep [ expr "pow(double(10.0),double($p2 + $t5))" ] } elseif { $p3 > $t2 && $p3 <= $t5 } { set ticstep [ expr "pow(double(10.0),double($p2 + $t2))" ] } elseif { $p3 > 0. && $p3 <= $t2 } { set ticstep [ expr "pow(double(10.0),double($p2))" ] if { $p3 < 1.0e-10 } { set p2 [ expr "$p2 - 1.0" ] set p3 [ expr "$p2 + 1.0" ] if { $p3 < 0.0 } { set p3 [ expr "$p1 - $p2" ] set p2 [ expr "int($p1)" ] set p1 [ expr "log10(double(-$df))" ] set p1 [ expr "log10(double($df))" ] if {$df > 0.0} { set df [ expr "$range / double($nsteps + 1)" ] set t5 0.698970004 set t2 0.301029996proc ticstep { range nsteps } \# [ NOT CURRENTLY USED. ]# TICSTEP -- Utility routine to compute nice ticmark steps in plots.# UTILITY ROUTINES drawVcutIndicator $y wcsUpdate $cutXPos $y global cutXPos curTrackproc vcutWCSUpdate { x y args } \ set cutYPos $ypos send vcutCursor move 12 [expr ($ypos * $cutYScale)] global cutYScale cutYPosproc drawVcutIndicator { ypos } \ incr xp incr yp 10 send vcutPlot drawAlphaText $xpos $yp $ch if {$ch == "."} { incr yp -4 } foreach ch $chars { set xpos [lindex $xposns $xp] set yp 12 set chars [split $lab {} ] foreach lab $labels { set xp 0 # the text. # Draw each label vertically down the position since we can't rotate set xposns { 2 28 58 88 112 } lappend labels [ format "%.1f" $i ] foreach i [list $z2 $high $mid $low $z1] { set labels {} # Initialize the label strings and positions. set high [expr "($z2-$mid)/2.0+$mid"] set low [expr "($mid-$z1)/2.0+$z1"]proc drawVcutLabels { z1 z2 } \# Label the axes on the vertical cut plot. send vcutCursor destroy send vcutCursor set visible True send vcutCursor setVertices $pts height 8 \ width 10 \ y 256 \ x 12 \ send vcutPlot createMarker vcutCursor \ set pts { {10 252} {10 260} {1 256} }proc setVcutCursor { state } \ send vcutAxes1 destroy ; send vcutAxes2 destroy width 60 \ send vcutPlot createMarker vcutAxes2 \ width 30 \ height 4096 \ x 60 \ send vcutPlot createMarker vcutAxes1 \proc drawVcutAxes { state } \# Create markers to indicate axes on the vertical cut-plot. global cutYPos vcutVecproc eraseOldVcut args \# erase is done by redrawing the last vector in the the background color.# Erase the last plot rather than clear the screen and redraw it all. The send vcutAxes2 redraw send vcutAxes1 redraw ;# redraw the axes markers drawVcutLabels $z1 $z2 ;# redraw the labels if { [expr "$xpos % 3"] == 0} { drawVcutIndicator $ypos set vcutVec $vec ;# save for later erasure send vcutPlot drawPolyline $vec send vcutPlot setColorIndex foreground send vcutPlot drawPolyline $vcutVec send vcutPlot setColorIndex background # Draw the vector. set pix [send client getPixels $xpos 0 1 $height 3 1 $cutYScale] set pix [send client getPixels $xpos 0 1 $height 3 5 $cutYScale] set height [send imagewin get height] # Do the vertical cut plot. if { ($xpos == 0 && $ypos == 0) || ! $doVcut } \ global vcutVec cutXPos plotSpeed global doVcut cutYScaleproc plotVcut { xpos ypos } \ drawVcutLabels $z1 $z2 send vcutPlot "setColorIndex 6; reset" set cutYScale [expr ($yr * 1.0) / ($logy * 1.0)] set logy [send imagewin get height] send vcutPlot setLogRes $xr $yr send vcutPlot getPhysRes xr yr global cutYScale winWidth cutXPos cutYPosproc vcutInit args \# Initiailize the vertical cut-plotset vcutVec {}# Vertical Cut-Plot Routines drawHcutIndicator $x wcsUpdate $x $cutYPos if {$curTrack} { global cutYPos curTrackproc hcutWCSUpdate { x y args } \# Track the cursor while in the cut-graph window. set cutXPos $xpos send hcutCursor move [expr ($xpos * $cutXScale)] 12 global cutXScale cutXPosproc drawHcutIndicator { xpos } \# Draw the cursor position indicator on the horizontal cut plot. drawAlphaText 2 120 [format "%.1f" $z1]" drawAlphaText 2 94 [format "%.1f" $low] ; \ drawAlphaText 2 64 [format "%.1f" $mid] ; \ drawAlphaText 2 34 [format "%.1f" $high] ; \ drawAlphaText 2 10 [format "%.1f" $z2] ; \ send hcutPlot "setColorIndex 6 ; \ set high [expr "($z2-$mid)/2.0+$mid"] set low [expr "($mid-$z1)/2.0+$z1"] set mid [expr "($z2-$z1)/2.0+$z1"]proc drawHcutLabels { z1 z2 } \# Label the axes on the horizontal cut plot. send hcutCursor destroy send hcutCursor set visible True send hcutCursor setVertices $pts sensitive False visible False \ activated True \ knotSize 0 \ height 10 \ width 8 \ y 12 \ x 256 \ fillColor yellow \ fill True \ lineColor black \ createMode noninteractive \ type polygon \ send hcutPlot createMarker hcutCursor \ set pts { {252 10} {260 10} {256 1} }proc setHcutCursor { state } \# Create a marker to be used as the cursor indicator. send hcutAxes1 destroy ; send hcutAxes2 destroy height 60 \ y 1 \ send hcutPlot createMarker hcutAxes2 \ sensitive False visible True \ activated True \ width 4096 \ height 30 \ y 60 \ x 1 \ lineStyle 0 \ lineColor gray60 \ createMode noninteractive \ type box \ send hcutPlot createMarker hcutAxes1 \ if {$state} {proc drawHcutAxes { state } \# Create markers to indicate axes on the horizontal cut-plot. send hcutAxes2 redraw send hcutAxes1 redraw ;# redraw the axes markers } drawHcutLabels $z1 $z2 ;# redraw the labels catch { if { [expr "$ypos % 3"] == 0} { # Minimize the screen refreshes to speed things up. drawHcutIndicator $xpos # Mark the cursor position. set hcutVec $vec ;# save for later erasure send hcutPlot drawPolyline $vec send hcutPlot setColorIndex foreground send hcutPlot drawPolyline $hcutVec send hcutPlot setColorIndex background # the new vector. # Erase the last plot rather than clear the screen and redraw set vec [lrange $pix 2 end] set pix [send client getPixels 0 $ypos $width 1 2 1 $cutXScale] set pix [send client getPixels 0 $ypos $width 1 2 5 $cutXScale] if {$plotSpeed} { set width [send imagewin get width] # Do the horizontal cut plot. if { ($xpos == 0 && $ypos == 0) || ! $doHcut } \ global hcutVec cutXPos plotSpeed global doHcut cutXScaleproc plotHcut { xpos ypos } \# Draw the horizontal cut-plot. drawHcutLabels $z1 $z2 send vcutPlot "setColorIndex 6" # Initialize the labels. set cutXScale [expr ($xr * 1.0) / ($logx * 1.0)] set logz [expr ($z2 - $z1)] set logx [send imagewin get width] send hcutPlot setLogRes $xr $yr send hcutPlot getPhysRes xr yr set z2 [lindex $pix 1] set z1 [lindex $pix 0] set pix [send client getPixels $xp $yp 2 2 ] set yp [expr [send imagewin get height] / 2 ] set xp [expr [send imagewin get width] / 2 ] # initialize the labels. # Just get some dummy pixels, we only want the z1/z2 values so we can global logz cutXScale winWidth cutXPos cutYPosproc hcutInit args \# Initiailize the horizontal cut-plotset hcutVec {}# Horizontal Cut-Plot Routines set cutXPos $xpos ; set cutYPos $ypos if {$doVcut} { plotVcut $xpos $ypos } if {$doHcut} { plotHcut $xpos $ypos }proc cutPlots { xpos ypos args } \# Draw the cut plots.} ; foreach w { hcut vcut } { send $w addCallback cutPlotToggle } cutPlots $cutXPos $cutYPos print [format "display: %d x %d\n" $w $h] print [format "state: %d %d\n" $hstate $vstate] [send vcutPlot get width] [send vcutPlot get height] ] print [format " vPlot: %d x %d\n" \ [send vcutFrame get width] [send vcutFrame get height] ] print [format " vFrame: %d x %d\n" \ [send hcutPlot get width] [send hcutPlot get height] ] print [format " hPlot: %d x %d\n" \ [send hcutFrame get width] [send hcutFrame get height] ] print [format " hFrame: %d x %d\n" \ if {$debug} { set doVcut $state hcutInit send display "set width [ expr ($w - 128) ] ; set height $h" send plotOpts "set height 4" send vcutFrame "unmap; set height $vfh; set width 4" send plotOpts "unmap; set width 4" drawVcutAxes 0 setVcutCursor 0 vcutInit ;# Initialize the plot. hcutInit send plotOpts "set height 134 ; set width 134; map" setVcutCursor 1 drawVcutAxes 1 send display "set height $h; set width [ expr ($w + 132) ]" send vcutPlot "set height $vfh ; set width 128" send vcutFrame "set height $vph ; set width 132 ; map" send plotOpts set height 134 if {$hstate} { set vph [send vcutPlot get height] set vfh [expr [send vcutFrame get height] - 4] } else { set doHcut $state send display "set height [ expr ($h - 128) ] ; set width $w" send plotOpts "set width 4" send hcutFrame "unmap; set width $hfw; set height 4" send plotOpts "unmap; set height 4" drawHcutAxes 0 setHcutCursor 0 # Disable the plot and resize the main window } else { hcutInit ;# Initialize the plot. vcutInit send plotOpts "set height 134 ; map" setHcutCursor 1 drawHcutAxes 1 send display "set height [ expr ($h + 132) ]; set width $w" send hcutPlot "set width $hfw ; set height 128" send hcutFrame "set width $hpw ; set height 132; map" } send plotOpts set width 134 if {$vstate} { # Enable the plot and resize the main window if {$state} { set hpw [send hcutPlot get width] set hfw [expr [send hcutFrame get width] - 4] if {$widget == "hcut"} { if {$debug} { print " " ; print [format "display: %d x %d\n" $w $h] } set h [send display get height] set w [send display get width] set vstate [send vcut get state] set hstate [send hcut get state] set debug 0proc cutPlotToggle { widget type state args } \# Toggle the display of the horizontal or vertical cut plot windows. send $w addCallback doPlotOpts foreach w { plotSpeed plotAccurate plotImgPix curJump curSmooth curTrack } { cutPlots $cutXPos $cutYPos if {$widget == "plotSpeed" || $widget == "plotAccurate"} { # Redraw the plots right away. curTrack { set curTrack $state } curSmooth { send curJump set on $not ; set curJump $not } curJump { send curSmooth set on $not ; set curJump $state } send plotAccurate set on 0 ; send plotSpeed set on 0 plotImgPix { if {$state} { send plotImgPix set on 0 ; send plotSpeed set on 0 plotAccurate { if {$state} { } set plotSpeed $not } send plotSpeed set on True ; } else { send plotAccurate set on 0 ; send plotImgPix set on 0 plotSpeed { if {$state} { switch $widget { if {$state} { set not 0 } else { set not 1 } global cutXPos cutYPos global plotSpeed curJump curTrack doHcut doVcutproc doPlotOpts { widget type state args } \# Cut-Plot options callback.foreach w {plotOpts hcutFrame vcutFrame} { send $w unmap }#send plotOpts "set height 1 ; set width 1 ; unmap"# Disable the options when we first start up.proc cutPlotRedraw args \} ; send imagewin addEventHandler cutPlotRefresh enterWindowMask send vcutAxes1 redraw ; send vcutAxes2 redraw vcutInit send vcutPlot clearScreen if {$doVcut} { cutPlots $cutXPos $cutYPos send hcutAxes1 redraw ; send hcutAxes2 redraw hcutInit send hcutPlot clearScreen if {$doHcut} {proc cutPlotRefresh args \ send $w addEventHandler cutCursor leaveWindowMask send $w addEventHandler cutCursor enterWindowMaskforeach w {hcutPlot vcutPlot} { cutPlotRefresh if {$widget == "hcutPlot"} { set doHcut 1 } else { set doVcut 1 } # Enable the update of the graph we're leaving. send $widget setCursorType idle } elseif { $event == "leaveNotify" } { if {$widget == "hcutPlot"} { set doHcut 0 } else { set doVcut 0 } # Disable the update of the graph we're in while in the plot window. send $widget setCursorType ginMode if { $event == "enterNotify" } { if {! $curTrack} \ global doHcut doVcut curTrackproc cutCursor { widget event args } \# Change the cursor to the crosshair when in the plotset cutYScale 1.0set cutXScale 1.0set cutYPos [expr "$winHeight / 2"]set cutXPos [expr "$winWidth / 2"]set curTrack 1 ; send curTrack set on Trueset curJump 1 ; send curJump set on Trueset plotSpeed 1 ; send plotSpeed set on Trueset doVcut 0set doHcut 0# Cut-plot handling routines. puts "Variable $name set to $x" upvar $name x set name ${name}($element) if {$element != ""} {proc debug_pvar { name element op } \#trace variable frameScaleY w debug_pvar#trace variable frameScaleX w debug_pvar#trace variable frameZoomY w debug_pvar#trace variable frameZoomX w debug_pvar#trace variable frameOffsetY w debug_pvar#trace variable frameOffsetX w debug_pvar ;# Debug stuff set enhancement($i) none ;# colortable enhancement set frameOffsetY($i) 0 ;# Y register offset set frameOffsetX($i) 0 ;# X register offset set frameScaleY($i) 0 ;# Y scale factor set frameScaleX($i) 0 ;# X scale factor set frameCenterY($i) 0 ;# Y center of field set frameCenterX($i) 0 ;# X center of field set frameZoomY($i) 0 ;# Y zoom factor set frameZoomX($i) 0 ;# X zoom factorforeach i $frames {set cursorMode 0 ;# true when cursor read pendingset frameDepth 8 ;# frame buffer pixel size, bitsset frameHeight 0 ;# frame buffer height, pixelsset frameWidth 0 ;# frame buffer width, pixelsset frames {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16} ;# list of image framesset nframes 0 ;# number of frame buffersset frame 1 ;# current display frame# the parameter value changes. Others require special callbacks.# we mirror in Tcl variables here, updating the values with a callback when# Client state variables (UI parameter objects). Certain of these parametersset defaultBlinkRate $blinkRateset warnings [true $warnings] { highlight } { peakCentroid } { centerBoxSize } { warnings } { showPanelBar } { showToolBar } { maxContrast } { wcsboxGeom } { magnifierGeom } { magnifierArea } { pannerGeom } { pannerArea } { blinkRate } { displayMagnifier } { displayPanner } { displayCoords } { zoomfactors }getResources {# Additional global variables, taking default values from resources.} ; #send imagewin addCallback appResize resize send vcutAxes1 redraw ; send vcutAxes2 redraw vcutInit send vcutPlot clearScreen if {$doVcut} { } cutPlots $cutXPos $cutYPos send hcutAxes1 redraw ; send hcutAxes2 redraw hcutInit send hcutPlot clearScreen if {$doHcut} { catch { set appHeight $height set appWidth $width global appWidth appHeight global doHcut doVcut cutXPos cutYPosproc appResize {w width height} \} ; send imagewin addCallback winResize resize set winHeight $height set winWidth $width return if {$width <= 1 || $height <= 1} \ global winWidth winHeightproc winResize {w width height} { # Window resize callbacks.set tcl_precision 8# TCL constantsset MAX_FRAMES 16 ;# max frame buffers# Global constants.set eqtype "fk5" ;# default equatorial typeset ctype "equatorial" ;# default coord typeset frameCache(0) "" ;# ISM frame cacheset ism_capable 1 ;# Client is ISM capableset ism_enable 0 ;# ISM is runningset help_up 0 ;# help panel mappedset panel_up 0 ;# control panel mappedset auto_reg 0set blinkFrames "1 2" ;# list of blink framesset ruleno 0 ;# used to name new rulersset ruler none ;# selected rulerset markno 0 ;# used to name new markersset marker none ;# selected markerset appHeight [send display get height] ;# application window heightset appWidth [send display get width ] ;# application window widthset winHeight [send imagewin get height] ;# display window heightset winWidth [send imagewin get width ] ;# display window widthset version "NOAO/IRAF XImtool Version 1.3.1EXPORT"# Global variables.proc max {a b} { expr {($a > $b) ? $a : $b} }proc min {a b} { expr {($a < $b) ? $a : $b} }# Utility functions.proc true {v} {expr {$v == "true" || $v == "True" || $v == "TRUE"}}# Utility procedure to test True/False strings in resources.# Utility Procedures.##############################################################################activate# Crank it up.send imagewin setGterm ; send imagewin activatesend colorbar setGterm ; send colorbar activate# Set the gterm widget focus.Realize warningRealize xmag_panelRealize xpan_panelRealize help_panelRealize blink_panelRealize hdr_panelRealize pixel_tableRealize tcl_panelRealize panelShellRealize parametersRealize ximtoolInitWidgetTree# Bootstrap up the GUI. reset-server createObjects [format "%s_objects" $module] if { [info exists Objects($module)] } { # subsequent realizations. # flag to indicate the objects have been created so we don't do it on # Create any widgets for the module. We only do this once and set a global Objectsproc Realize { module args } \# Realize a window module, i.e. create it's objects. appInitialize ximtool XImtool $guiResources # Define all of the GUI objects and resources. set guiResources [ format "%s\n\n%s\n\n" $guiResources $ver ] regsub -all XIMTOOL_VERSION $Resources($res) $Version ver foreach res [array names Resources] { # needed. # Now append all the Resource strings, changing any version strings as $guiResources $obj $Objects($obj) ] [ format "%s\n\n*%s_objects:%s\n" \ set guiResources \ foreach obj [array names Objects] { set guiResources "" # create them by name later rather that with the defaults. # Add a new objects description for each of the panels found so we can global Objects Resources Version{proc InitWidgetTree args \# Initialize the widget tree.# GUI Bootstrap Procedures################################################################################ *peakCentroid: True *centerBoxSize: 5 *warnings: True *showPanelBar: False *showToolBar: False *maxContrast: 5.0 *wcsboxGeom: -5-5 *magnifierGeom: +5+5 *magnifierArea: 100*100 *pannerGeom: -5+5 *pannerArea: 150*150 *blinkRate: 1.0 *displayMagnifier: False *displayPanner: True *displayCoords: True *zoomfactors: 1 2 4 8 *autoscale: True ! GUI resources.set Resources(gui) { \ *warnText.background: gray77 *warnText.height: 60 *warnText.width: 270 *warnText.label: generic warning text *warnIcon.image: WARNING *warnIcon.location: 0 0 40 40 *warnFrame.frameWidth: 2 *warnFrame.frameType: sunken *warnLabel.height: 20 *warnLabel.width: 300 *warnLabel.label: Warning warnText < +inf -inf * +inf -inf > \ vertical { 5 < +inf -5 > warnIcon 5 < +inf -5 > } \ *WFlayout.layout: horizontal { \ *warnCancel.label: Cancel *warnOk.label: Okay warnCancel < +inf * > \ 5 < +inf -5 > \ warnOk < +inf * > \ horizontal { 5 warnFrame < +inf * +inf > 5 } \ *warn.layout: vertical { \ *warning*TextBox.frameWidth: 0 *warning*borderWidth: 0 *warning.geometry: +400+300 ! WARNING dialog.set Resources(warning) { \ *tclDismiss.label: Dismiss *tclExecute.label: Execute *tclClear.label: Clear tclDismiss \ 10 < +inf -10> \ tclExecute \ tclClear 3 \ 5 \ *tclCmd.layout: vertical { \ *tclCmdGroup.innerOffset: 0 *tclCmdGroup.outerOffset: 0 *tclCmdGroup.label: *tclEntry*scrollHorizontal: whenNeeded *tclEntry*scrollVertical: Always *tclEntry*font: 7x13 *tclEntry*type: string *tclEntry*editType: edit *tclEntry*foreground: black tclFrame < +inf -inf * +inf -inf> \ tclCmdGroup < +inf -inf * > \ 0 < +0 -0 > \ *tclLayout.layout: vertical { \ *tclLayout*Frame.frameWidth: 2 *tclLayout*Frame.frameType: sunken *tclLayout*borderWidth: 0 *tcl_panel.title: Debug TCL Command Entry *tcl_panel.height: 180 *tcl_panel.width: 550 ! Define a debug Tcl shell. !--------------------------------set Resources(tcl_panel) { \ *helpInfoLayout.helpNOAOLogo.background: white *helpInfoLayout.helpNOAOLogo.foreground: SteelBlue *helpInfoLayout.helpNOAOLogo.internalHeight: 0 *helpInfoLayout.helpNOAOLogo.internalWidth: 0 *helpInfoLayout.helpIRAFLogo.background: white *helpInfoLayout.helpIRAFLogo.foreground: SteelBlue *helpInfoLayout.helpIRAFLogo.internalHeight: 0 *helpInfoLayout.helpIRAFLogo.internalWidth: 0 *helpInfoLayout*helpInfo3.font: -*-helvetica-medium-r-normal-*-10-*-*-* *helpInfoLayout*helpInfo2.font: -*-helvetica-medium-r-normal-*-12-*-*-* *helpInfoLayout*helpInfo1.font: -*-helvetica-medium-r-normal-*-12-*-*-* NOAO is operated by AURA under cooperative agreement with the NSF *helpInfo3.label: \ *helpInfo2.label: iraf@noao.edu (520) 318-8160 *helpInfo1.label: XIMTOOL_VERSION vertical { 5 helpNOAOLogo 5 } \ helpInfo3 < +inf -inf * +inf -inf > \ helpInfo2 < +inf -inf * +inf -inf > \ helpInfo1 < +inf -inf * +inf -inf > \ vertical { 5 helpIRAFLogo 5 } \ *helpInfoLayout.layout: horizontal { \ *helpInfoLayout*Label.internalHeight: 0 *helpInfoLayout*Label.justify: center ! Contact info at the bottom of the panel.! *helpText.boldFont: 6x12bold *helpText.plainitalicFont: -adobe-courier-medium-o-normal-*-12-*-*-*-*-*-*-* *helpText.plainboldFont: -adobe-courier-bold-r-normal-*-12-*-*-*-*-*-*-* *helpText.plainFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-*-* *helpText*Scrollbar.shadowWidth: 1 *helpText.verticalScrollOnRight: true *helpText.visitedAnchorUnderlines: 1 *helpText.anchorUnderlines: 1 *helpText.height: 500 *helpText.width: 600 *helpTextFrame.frameType: sunken *helpTextFrame.frameWidth: 1 horizontal { helpInfoLayout < +inf -inf * > } \ horizontal { helpTextFrame < +inf -inf * +inf -inf > } \ hfFrame < +inf -inf * > 3 hfFind 1 hfClear \ 20 < +inf -20 > \ helpBack 2 helpForward 2 helpHome \ 5 \ horizontal { helpMenuGroup < +inf -inf * > } \ *helpLayout.layout: vertical { \ *hfClear.shadowWidth: 1 *hfClear.label: Clear *hfFind.shadowWidth: 1 *hfFind.label: Search *hfFrame.width: 250 *hfFrame.frameType: sunken *hfFrame.frameWidth: 1 *hfEntry*displayCaret: True *hfEntry*font: 7x13 *hfEntry*editType: edit *helpClose.label: Dismiss *helpHome.label: Home *helpForward.sensitive: False *helpForward.label: Forward *helpBack.sensitive: False *helpBack.label: Back horizontal { 20 < +inf -20 > helpClose 7 } \ 5 < -5 > \ *helpMenubar.layout: vertical { \ *helpMenuGroup.frameType: raised *helpMenuGroup.innerOffset: 0 *helpMenuGroup.outerOffset: 0 *helpMenuGroup.height: 45 *helpMenuGroup.label: *helpLayout*helpText*Scrollbar.shadowWidth: 1 *helpLayout*HTML*shadowWidth: 1 *helpLayout*Command.internalWidth: 12 *helpLayout*Command.internalHeight: 4 *helpLayout*borderWidth: 0 *help_panel.height: 550 *help_panel.width: 500 *help_panel.title: XImtool Help Summary ! Help panel resources. !----------------------set Resources(help_panel) { \ sigLabel sigFrame < +inf -inf * > \ meanLabel meanFrame < +inf -inf * > 2 \ 2 < +inf > \ } \ 5 \ vertical { ptFrame } \ 1 \ vertical { ptRowFrame< * +inf -inf > 5 } \ horizontal { \ 1 \ horizontal { 65 ptColFrame < +inf -inf * > 5 } \ 3 \ *ptLayout.layout: vertical { \ *ptFrame.frameType: sunken *ptFrame.frameWidth: 1 *ptFrame.borderWidth: 0 *ptFrame.innerOffset: 0 *ptFrame.outerOffset: 0 *pixtabFrame*pixtab.verticalList: True *pixtabFrame*ptRowLabs.columnSpacing: 2 *pixtabFrame*ptRowLabs.columnWidth: 50 *pixtabFrame*ptRowLabs.verticalList: True *pixtabFrame*ptRowLabs.forceColumns: True *pixtabFrame*ptRowLabs.defaultColumns: 1 *pixtabFrame*ptRowLabs.height: 110 *pixtabFrame*ptRowLabs.width: 60 *pixtabFrame*ptColLabs.columnSpacing: 2 *pixtabFrame*ptColLabs.columnWidth: 50 *pixtabFrame*ptColLabs.forceColumns: True *pixtabFrame*ptColLabs.defaultColumns: 5 *pixtabFrame*ptColLabs.height: 23 *pixtabFrame*ptColLabs.width: 410 *ptRowFrame.outerOffset: 0 *ptRowFrame.frameWidth: 0 *ptColFrame.outerOffset: 0 *ptColFrame.frameWidth: 0 *sigValue.resize: False *sigValue.label: *sigLabel.label: Stdev: *sigFrame.width: 120 *sigFrame.outerOffset: 0 *sigFrame.frameType: chiseled *sigFrame.frameWidth: 2 *meanValue.resize: False *meanValue.label: *meanLabel.label: Mean: *meanFrame.width: 120 *meanFrame.outerOffset: 0 *meanFrame.frameType: chiseled *meanFrame.frameWidth: 2 !*pixtabFrame*Label.resize: False *pixtabFrame*Label.width: 00 *pixtabFrame*TextToggle.background: gray77 *pixtabFrame*MultiList.background: gray77 *pixtabFrame*MultiList.highlightBackground: gray77 *pixtabFrame*MultiList.highlightForeground: red *pixtabFrame*MultiList.maxSelectable: 1 *pixtabFrame*MultiList.columnSpacing: 2 *pixtabFrame*MultiList.columnWidth: 50 *pixtabFrame*MultiList.height: 160 *pixtabFrame*MultiList.width: 410 *pixtabFrame*MultiList.internalHeight: 4 *pixtabFrame*MultiList.internalWidth: 7 *pixtabFrame*MultiList.rowSpacing: 7 *pixtabFrame*MultiList.rowHeight: 25 *pixtabFrame*MultiList.borderWidth: 0 *pixtabFrame*MultiList.shadeSurplus: False *pixtabFrame*MultiList.defaultColumns: 5 *pixtabFrame*MultiList.forceColumns: True *pixtabFrame*TextToggle.font: -*-helvetica-medium-r-normal-*-10-* *pixtabFrame*Label.font: -*-helvetica-medium-r-normal-*-10-* *pixtabFrame*MultiList.font: -*-helvetica-medium-r-normal-*-10-* *pixtabFrame*font: 6x10 *pixtabFrame*borderWidth: 0 *pixtabFrame.frameWidth: 0 *pixtabFrame.frameType: raised pixtabFrame < +inf -inf * +inf -inf > \ pixtabMenuFrame < +inf -inf * > \ *pixel_table.layout: vertical { \ *pixtabMenuFrame.frameWidth: 2 *pixtabMenuFrame.frameType: raised *pixtabClose.label: Dismiss *pixtabHelp.sensitive: False *pixtabHelp.label: Help *pixtabSize.menuName: pixtabMenu *pixtabSize.label: Size 7 \ pixtabSize 10 < +inf -10> pixtabHelp 5 pixtabClose \ *pixtabMenuBar.layout: vertical { \ *pixtabMenuBar*Command.internalWidth: 12 *pixtabMenuBar*Command.internalHeight: 4 *pixtabMenuBar*borderWidth: 0 *pixel_panel*SimpleMenu.background: SteelBlue *pixel_panel*SimpleMenu.foreground: White *pixel_panel*SimpleMenu.borderColor: black *pixel_panel*SimpleMenu.borderWidth: 1 *pixel_panel.title: Image Pixel Tableset Resources(pixel_table) { \ *hdrIGFrame.frameWidth: 0 *hdrIGText*background: gray77 *hdrKGText*bottomMargin: 10 *hdrKGText*background: gray77 *hdrKGFrame.frameWidth: 1 *hdrKGFrame.frameType: sunken *hdrKeywGroup.innerOffset: 5 *hdrKeywGroup.outerOffset: 7 *hdrKeywGroup.label: WCS Header Keywords *hdrWcsGroup*hdrIGText*font: 7x13 *hdrWcsGroup*hdrIGText*scrollHorizontal: never *hdrWcsGroup*hdrIGText*scrollVertical: never *hdrIGText*foreground: black *hdrIGText*background: gray68! *hdrIGText*foreground: yellow2! *hdrIGText*background: black *hdrIGText.height: 130 *hdrIGFrame.frameWidth: 1 *hdrIGFrame.frameType: sunken *hdrInfoGroup.innerOffset: 0 *hdrInfoGroup.outerOffset: 7 *hdrInfoGroup.label: Basic WCS Information hdrKeywGroup < +inf -inf * +inf -inf > \ hdrInfoGroup < +inf -inf * > \ *hdrWcsLayout.layout: vertical { \ *hdrWcsLayout.borderWidth: 0 *hdrWcsGroup*Text*Scrollbar.height: 15 *hdrWcsGroup*Text*Scrollbar.width: 15 *hdrWcsGroup*Text*font: 7x13 *hdrWcsGroup*Text*borderWidth: 0 *hdrWcsGroup*Text*displayCaret: False *hdrWcsGroup*Text*editType: edit *hdrWcsGroup*Text*scrollHorizontal: whenNeeded *hdrWcsGroup*Text*scrollVertical: whenNeeded *hdrWcsGroup.innerOffset: 5 *hdrWcsGroup.outerOffset: 5 *hdrWcsGroup.label: *hdrWcsGroup.tabLabel: Image WCS Info *hdrText.marginHeight: 5 *hdrText.marginWidth: 5 *hdrText.plainFont: 7x13 *hdrText.verticalScrollOnRight: True *hdrText.visitedAnchorUnderlines: 1 *hdrText.anchorUnderlines: 1 *hdrText.height: 500 *hdrText.width: 600 ! Resources if the header text widget is HTML! *hdrText*Scrollbar.height: 15! *hdrText*Scrollbar.width: 15! *hdrText*bottomMargin: 10! *hdrText*displayCaret: False! *hdrText*background: gray77! *hdrText*font: 7x13! *hdrText*editType: edit! *hdrText*scrollHorizontal: Always! *hdrText*scrollVertical: Always ! Resources if the header text widget is AsciiText *hdrClear.label: Clear *hdrFind.label: Search *hdrFilter.label: Keyword Filter *hFindFrame.height: 23 *hFindFrame.width: 150 *hFindFrame.frameType: sunken *hFindFrame*borderWidth: 0 *hFindFrame.frameWidth: 1 *hFindEntry*width: 150 *hFindEntry*displayCaret: True *hFindEntry*font: 7x13 *hFindEntry*editType: edit hdrText < +inf -inf * +inf -inf > \ hdrFilter 2 hFindFrame < +inf -inf * > 2 hdrFind 1 hdrClear \ *hdrHdrLayout.layout: vertical { \ *hdrHdrLayout.borderWidth: 0 *hdrHdrGroup.innerOffset: 5 *hdrHdrGroup.outerOffset: 7 *hdrHdrGroup.label: *hdrHdrGroup.tabLabel: Image Header *hdrObjMenu.shadowWidth: 1 *hdrObjMenu.internalHeight: 1 *hdrObjMenu.internalWidth: 5 *hdrObjMenu.menuName: objMenu *hdrObjMenu.font: 7x13 *hdrObjMenu.justify: left *hdrObjMenu.label: *hdrObjLabel.label: Image Name: horizontal { hdrObjLabel 2 hdrObjMenu < +inf -inf * > 2 } \ *hdrObjLayout.layout: vertical { \ *hdrObjLayout.borderWidth: 0 *hdrObjGroup.innerOffset: 4 *hdrObjGroup.outerOffset: 7 *hdrObjGroup.label: *hdrClose.label: Dismiss horizontal { 10 < +inf -10> hdrClose 7 } \ *hdrMenuBar.layout: vertical { \ *hdrMenuBar*Command.internalWidth: 12 *hdrMenuBar*Command.internalHeight: 5 *hdrMenuBar*borderWidth: 0 hdrTabFrame < +inf -inf * +inf -inf> \ hdrObjGroup < +inf -inf * > \ hdrMenuFrame < +inf -inf * > \ *hdrLayout.layout: vertical { \ *hdrMenuFrame.frameWidth: 2 *hdrMenuFrame.frameType: raised *hdr_panel*SimpleMenu.background: SteelBlue *hdr_panel*SimpleMenu.foreground: White *hdr_panel*SimpleMenu.borderWidth: 1 *hdr_panel*SimpleMenu.borderColor: black *hdr_panel.title: Image Header *hdr_panel.geometry: 550x600set Resources(hdr_panel) { \ *brAregButton.label: Auto-Register *brBlinkButton.label: Blink *brMatchButton.label: Match LUTs *brRegButton.label: Register *brBRincrease.direction: right *brBRdecrease.direction: left *brBRtext.height: 23 *brBRtext.width: 40 *brBRframe.frameWidth: 1 *brBRframe.frameType: sunken *brRateLabel.label: Rate: *brReset.label: Reset *brFrame16.menuName: frame16Menu *brFrame15.menuName: frame15Menu *brFrame14.menuName: frame14Menu *brFrame13.menuName: frame13Menu *brFrame12.menuName: frame12Menu *brFrame11.menuName: frame11Menu *brFrame10.menuName: frame10Menu *brFrame9.menuName: frame9Menu *brFrame8.menuName: frame8Menu *brFrame7.menuName: frame7Menu *brFrame6.menuName: frame6Menu *brFrame5.menuName: frame5Menu *brFrame4.menuName: frame4Menu *brFrame3.menuName: frame3Menu *brFrame2.menuName: frame2Menu *brFrame1.menuName: frame1Menu *brFramesLabel.label: Frames: *blink_panel*Arrow.height: 20 *blink_panel*Arrow.width: 16 *blink_panel*Command.height: 23 *blink_panel*TextToggle.innerOffset: 2 *blink_panel*TextToggle.outerOffset: 0 *blink_panel*TextToggle.onIcon: square1s *blink_panel*TextToggle.offIcon: square0s *blink_panel*TextToggle.highlightColor: yellow *blink_panel*TextToggle.frameWidth: 1 *blink_panel*TextToggle.location: 0 0 110 23 brBRincrease \ brBRtext < +inf -100% * > \ brBRdecrease \ *brBRlayout.layout: horizontal { \ brFrame16 < +inf * > \ brFrame15 < +inf * > 1 \ brFrame14 < +inf * > 1 \ brFrame13 < +inf * > 1 \ brFrame12 < +inf * > 1 \ brFrame11 < +inf * > 1 \ brFrame10 < +inf * > 1 \ brFrame9 < +inf * > 1 \ brFrame8 < +inf * > 1 \ brFrame7 < +inf * > 1 \ brFrame6 < +inf * > 1 \ brFrame5 < +inf * > 1 \ brFrame4 < +inf * > 1 \ brFrame3 < +inf * > 1 \ brFrame2 < +inf * > 1 \ brFrame1 < +inf * > 1 \ 5 < +inf > \ *brFrames.layout: horizontal { \ *brFrames.borderWidth: 0 *brFramesG*SimpleMenu.background: SteelBlue *brFramesG*SimpleMenu.foreground: White *brFramesG*SimpleMenu.borderWidth: 1 *brFramesG*SimpleMenu.borderColor: black *brFramesG.innerOffset: 7 *brFramesG.outerOffset: 7 *brFramesG.label: Frames List brAregButton < +inf * > \ brBlinkButton < +inf * > \ brRegButton < +inf -inf * > \ 5 < -5 > \ brMatchButton < +inf -inf * > \ 8 < -8 > \ brReset \ 4 \ brBRframe < +inf -inf * >\ brRateLabel \ 2 \ horizontal { \ *brCmd.layout: horizontal { \ *brCmdG*borderWidth: 0 *brCmdG.innerOffset: 7 *brCmdG.outerOffset: 7 *brCmdG.label: horizontal { -3 brCmdG < +inf -inf * +inf -inf > -3 } \ -5 \ horizontal { -3 brFramesG < +inf -inf * > -3 } \ *brLayout.layout: vertical { \ *brLayout.borderWidth: 0 *brFrame.innerOffset: 4 *brFrame.outerOffset: 4 *brFrame.frameWidth: 2 *brFrame.frameType: chiseled brFrame < +inf -inf * +inf -inf > \ 1 < -1 > \ brMenuFrame < +inf -inf * > \ *bpLayout.layout: vertical { \ *brMenuFrame.frameWidth: 2 *brMenuFrame.frameType: raised *brClose.label: Dismiss horizontal { 10 < +inf -10> brClose 5 } \ *brMenuBar.layout: vertical { \ *brAregButton.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brBlinkButton.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brMatchButton.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brReset.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brRegButton.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brLayout*Command.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *brMenuBar*Label.font: 7x13bold *brMenuBar*borderWidth: 0 *brMenuBar*Command.height: 27 *brMenuBar*Command.internalWidth: 12 *brMenuBar*Command.internalHeight: 4 *blink_panel.title: Blink/Register Frames *blink_panel.geometry: 425x200set Resources(blink_panel) { \ wtBPixval < +inf -inf * +inf > \ wtSPixval < +inf -inf * +inf > 1 \ wtIPixval < +inf -inf * +inf > 1 \ wtWcs4 < +inf -inf * > \ wtWcs3 < +inf -inf * > -3 \ wtWcs2 < +inf -inf * > -3 \ wtWcs1 < +inf -inf * > -3 \ wtFBCfg < +inf -inf * > \ wtTitle < +inf -inf * > -3 \ wtName < +inf -inf * > -3 \ *wcsText.layout: vertical { \ *wcsText*background: yellow4 *wcsFrame.frameWidth: 1 *wcsFrame.frameType: sunken *wcsGroup*TextToggle.highlightColor: cyan *wcsGroup*Text*foreground: yellow2 *wcsGroup*Text*background: black *wcsGroup*Text*editType: read *wcsGroup*Text*displayCaret: False *wcsGroup*Text*font: 7x13 *wcsGroup*Text*height: 17 *wcsGroup*Text*width: 260 *wcsGroup.frameWidth: 2 *wcsGroup.frameType: chiseled *wcsGroup.innerOffset: 5 *wcsGroup.outerOffset: 0 *wcsGroup.label: *wcsOptions.label: Options *compass.label: Compass *imageHeader.sensitive: False *imageHeader.label: Header *pixelTable.label: Pix Table *ismToggle.label: WCS/Pix *ismToggle.label: ISM Mod wcsOptions < +inf -inf * > \ compass < +inf -inf * > 2 \ imageHeader < +inf -inf * > 2 \ pixelTable < +inf -inf * > 2 \ ismToggle < +inf -inf * > 2 \ wcsFrame < +inf -inf * > \ *wcsBox.layout: vertical { \ *wcsBox*TextToggle.leftMargin: 2 *wcsBox*TextToggle.frameWidth: 1 *wcsBox*TextToggle.frameType: raised *wcsBox*borderWidth: 0 *wcsIsmInit.internalWidth: 7 *wcsIsmInit.label: Initialize *wcsIsmCmd.displayCaret: True *wcsIsmCmd*editType: edit *wcsIsmFrame*height: 23 *wcsIsmFrame.outerOffset: 1 *wcsIsmFrame.frameWidth: 1 *wcsIsmFrame.frameType: sunken *wcsIsmLabel.label: ISM Command wcsIsmLabel 1 wcsIsmFrame < +inf -inf * > 3 wcsIsmInit 1 \ *wcsIsmLayout.layout: horizontal { \ *wcsIsmGroup*borderWidth: 0 *wcsIsmGroup.innerOffset: 5 *wcsIsmGroup.outerOffset: 3 *wcsIsmGroup.height: 50 *wcsIsmGroup.width: 395 *wcsIsmGroup.label: *editMenu fmtWcsMenu$i fmtWcs$i $items *fmtWcs4.menuName: fmtMenu4 *fmtWcs4.label: None *fmtWcs3.menuName: fmtMenu3 *fmtWcs3.label: None *fmtWcs2.menuName: fmtMenu2 *fmtWcs2.label: None *fmtWcs1.menuName: fmtMenu1 *fmtWcs1.label: \ Sexigesimal\ *sysWcs4.menuName: sysMenu4 *sysWcs4.label: None *sysWcs3.menuName: sysMenu3 *sysWcs3.label: None *sysWcs2.menuName: sysMenu2 *sysWcs2.label: None *sysWcs1.menuName: sysMenu1 *sysWcs1.label: \ Image Display\ *wlWcs4.label: Fourth WCS *wlWcs3.label: Third WCS *wlWcs2.label: Second WCS *wlWcs1.label: First WCS *wcLine.frameType: ledged *wcLine.frameWidth: 2 *wcLine.height: 2 *wcTitle.label: Type\ \ \ \ \ \ \ \ \ \ Format\ \ \ \ \ \ Panel\ ImgWin vertical { 1 wiWcs1 3 wiWcs2 3 wiWcs3 3 wiWcs4 3 } 15 \ vertical { 1 wpWcs1 3 wpWcs2 3 wpWcs3 3 wpWcs4 3 } 20 \ vertical { 1 fmtWcs1 1 fmtWcs2 1 fmtWcs3 1 fmtWcs4 1 } 20 \ vertical { 1 sysWcs1 1 sysWcs2 1 sysWcs3 1 sysWcs4 1 } 5 \ vertical { 2 wlWcs1 2 wlWcs2 2 wlWcs3 2 wlWcs4 2 } 5 \ 10 \ horizontal { 5 wcLine < +inf -inf * > 5 } \ horizontal { 20 < -20 > wcTitle < +inf -inf * > 20 < -20 > }\ *wcLayout.layout: vertical {\ *wcLayout*MenuButton.resize: False *wcLayout*MenuButton.shadowWidth: 1 *wcLayout*SimpleMenu.background: SteelBlue *wcLayout*SimpleMenu.foreground: White *wcLayout*SimpleMenu.borderWidth: 1 *wcLayout*SimpleMenu.borderColor: black *wcLayout*Label.font: 7x13bold *wcLayout*Label.justify: right *wcLayout*TextToggle.on: True *wcLayout*TextToggle.label: *wcLayout*TextToggle.frameWidth: 0 *wcLayout*TextToggle.shrinkToFit: True *wcLayout*TextToggle.highlightColor: yellow2 *wcLayout*TextToggle.onIcon: diamond1s *wcLayout*TextToggle.offIcon: diamond0s *wcsCoords.innerOffset: 3 *wcsCoords.outerOffset: 7 *wcsCoords.height: 135 *wcsCoords.width: 265 *wcsCoords.label: Readout Values *woptBPM.location: 0 0 120 21 *woptFBinfo.location: 0 0 175 21 *woptTitles.location: 0 0 150 21 *woptLabels.location: 0 0 150 21 *woptBPM.on: False *woptBPM.label: BPM Data *woptFBinfo.on: True *woptFBinfo.label: Frame Buffer Info *woptTitles.on: True *woptTitles.label: Image Titles *woptLabels.on: True *woptLabels.label: WCS Labels woptBPM < +inf -inf * > \ woptFBinfo < +inf -inf * > 2 \ woptTitles < +inf -inf * > 2 \ woptLabels < +inf -inf * > 2 \ *woLayout.layout: horizontal { \ *woLayout*TextToggle.leftMargin: 5 *woLayout*TextToggle.alignment: left *woLayout*TextToggle.highlightColor: cyan *woLayout*TextToggle.offIcon: square0s *woLayout*TextToggle.onIcon: square1s *woLayout*TextToggle.frameWidth: 0 *wcsOpts.innerOffset: 3 *wcsOpts.outerOffset: 3 *wcsOpts.height: 40 *wcsOpts.width: 265 *wcsOpts.label: horizontal { -5 wcsIsmGroup < +inf -inf * > -5 } \ horizontal { -5 wcsOpts < +inf -inf * > -5 } \ horizontal { -9 wcsCoords < +inf -inf * > -9 } \ *wcsOptLayout.layout: vertical { \ *wcsOptGroup.frameWidth: 0 *wcsOptGroup.frameType: chiseled *wcsOptGroup.innerOffset: 5 *wcsOptGroup.outerOffset: 0 *wcsOptGroup.label: -2 \ horizontal { -1 wcsOptGroup < +inf -inf * > -1 } \ wcsGroup < +inf -inf * > \ 0 < +0 -0 > \ *wcsLayout.layout: vertical { \ *wcsLayout.borderWidth: 0 *wcsLayout*Layout.borderWidth: 0 *wcsLayout*TextToggle.outerOffset: 0 *wcsLayout*TextToggle.height: 23 !*wcsLayout*TextToggle.location: 0 0 160 23 *wcsGroup*TextToggle.onIcon: square1s *wcsGroup*TextToggle.offIcon: square0s ! WCS Readout Panelset Resources(wcs_panel) { \ *tNone.label: None *tAll.label: All\ tNone \ tFrame11 tFrame12 tFrame13 tFrame14 tFrame15 tFrame16 \ tFrame6 tFrame7 tFrame8 tFrame9 tFrame10 \ tFrame1 tFrame2 tFrame3 tFrame4 tFrame5 \ tAll \ *tFrames.layout: horizontal { \ *tFrames*Toggle.height: 17 *tFrames.borderWidth: 0 *tFramesG.innerOffset: 7 *tFramesG.outerOffset: 7 *tFramesG.label: Tile Frames *nctext.label: 2 *nctext.font: 7x13bold *nctext.justify: center *nctext.background: gray68 *ncolLab.label: Tile Columns: *ncincrease.direction: right *ncdecrease.direction: left *ncLayout.layout: horizontal {ncdecrease nctext < +inf -inf * > ncincrease} *nrtext.label: 1 *nrtext.font: 7x13bold *nrtext.justify: center *nrtext.background: gray68 *nrowLab.label: Tile Rows: *nrincrease.direction: right *nrdecrease.direction: left *nrLayout.layout: horizontal {nrdecrease nrtext < +inf -inf * > nrincrease} *ncolLab.justify: right *nrowLab.justify: right horizontal { ncolLab < +50% -inf * > ncFrame < +inf -inf * > 5 } \ horizontal { 18 nrowLab < +50% -inf * > nrFrame < +inf -inf * > 5 } \ *userOrientL.layout: vertical { \ *userOrientL.borderWidth: 0 *userOrientG*Text*editType: edit *userOrientG*Text.height: 21 *userOrientG*Frame.frameType: sunken *userOrientG*Frame.frameWidth: 1 *userOrientG.shrinkToFit: True *userOrientG.innerOffset: 5 *userOrientG.outerOffset: 7 *userOrientG.width: 220 *userOrientG.height: 90 *userOrientG.label: Manual Configuration *tileGeometry.label: Tile Geometry: 1 x 2 *tileGeometry.font: 7x13bold *tileGeometry.background: gray77 *tileGeometry.height; 37 *tileGeometry.width: 220 *geomFrame.innerOffset: 4 *geomFrame.outerOffset: 7 *geomFrame.frameType: sunken *geomFrame.frameWidth: 0 *labelTitles.label: Img Title *labelImname.label: Img Name *labelFrames.label: Frameno *tileLabel.TextToggle.location: 0 0 85 23 *tileLabel.TextToggle.frameWidth: 0 *tileLabel*highlightColor: yellow *tileLabel*offIcon: square0s *tileLabel*onIcon: square1s *tileLabel*leftMargin: 7 *tileLabel*innerOffset: 1 *tileLabel*outerOffset: 0 *tileLabel*selection: -1 *tileLabel.rows: 1 *tileLabel.innerOffset: 5 *tileLabel.outerOffset: 7 *tileLabel.location: 0 0 175 30 *tileLabel.label: Tile Labels *bottomUp.label: Fill from Bottom *byCols.label: Fill by Columns *fillStyle.TextToggle.location: 0 0 85 23 *fillStyle.TextToggle.frameWidth: 0 *fillStyle*highlightColor: yellow *fillStyle*offIcon: square0s *fillStyle*onIcon: square1s *fillStyle*leftMargin: 7 *fillStyle*innerOffset: 1 *fillStyle*outerOffset: 0 *fillStyle*selectionStyle: multi *fillStyle.rows: 1 *fillStyle.innerOffset: 5 *fillStyle.outerOffset: 7 *fillStyle.location: 0 0 160 30 *fillStyle.label: Fill Style *tileCol.label: One Column *tileRow.label: One Row *tileVertical.label: Vertical *tileHorizontal.label: Horizontal *tileSquare.label: Square *tileBest.label: Best *tileManual.label: Manual *tileDisabled.label: Disabled *tileMode*TextToggle.highlightColor: yellow *tileMode*TextToggle.offIcon: diamond0s *tileMode*TextToggle.onIcon: diamond1s *tileMode*TextToggle.rightMargin: 20 *tileMode*TextToggle.leftMargin: 10 *tileMode*TextToggle.frameWidth: 0 *tileMode*TextToggle.innerOffset: 1 *tileMode*TextToggle.outerOffset: 2 *tileMode*location: 0 0 150 20 *tileMode.innerOffset: 5 *tileMode.outerOffset: 7 *tileMode.label: Tile Mode -4 \ horizontal { -3 geomFrame < +inf -inf * > -3 } \ -7 \ horizontal { -3 tileLabel < +inf -inf * > -3 } \ horizontal { -3 fillStyle < +inf -inf * > -3 } \ horizontal { -3 userOrientG < +inf -inf * > -3 } \ horizontal { -6 tileMode < * +inf -inf > -6 } \ -1 \ horizontal { -6 tFramesG < +inf -inf * > -6 } \ *toptLayout.layout: vertical { \ *tileOpts*borderWidth: 0 *tileOpts*shrinkToFit: True *tileOpts.innerOffset: 7 *tileOpts.outerOffset: 5 *tileOpts.frameWidth: 2 *tileOpts.frameType: chiseledset Resources(tile_panel) { \ *okaySave.label: Save okaySave 1 < +inf -1 > saveStatus < +inf -inf * > \ *saveCmdLayout.layout: horizontal { \ *saveCmdLayout*Command.internalWidth: 12 *saveCmdGroup.location: 0 0 400 50 *saveCmdGroup.label: *saveCmdGroup.innerOffset: 5 *saveCmdGroup.outerOffset: 5 *saveCmdGroup.frameWidth: 2 *saveCmdGroup.frameType: chiseled *saveCmdLayout.borderWidth: 0 *rawButton.sensitive: False *x11Button.sensitive: False *jpegButton.sensitive: False ! Change the sensitivity once these formats are implemented. ! *rawButton.label: Raw *epsButton.label: EPS *x11Button.label: X11 *fitsButton.label: FITS *tiffButton.label: TIFF *jpegButton.label: JPEG *gifButton.label: GIF *rasButton.label: RAS vertical { 5 epsButton 2 rasButton 2 x11Button 2 jpegButton 1 } \ 2 < -2 > \ vertical { 5 fitsButton 2 gifButton 2 tiffButton 2 rawButton 1 } \ *formats.layout: horizontal { \ *fmtGroup.label: File Format *fmtGroup*highlightColor: cyan *fmtGroup*TextToggle.width: 55 *fmtGroup*onIcon: diamond1s *fmtGroup*offIcon: diamond0s *fmtGroup.frameWidth: 2 *fmtGroup.outerOffset: 7 *fmtGroup.location: 0 0 140 120 ! Output format box resources. *saveDataBox.frameWidth: 1 *saveDataBox.frameType: sunken *svRGBButton.label: RGB *svPseudoButton.label: PseudoColor *svGrayButton.label: Grayscale vertical { 5 svGrayButton 2 svPseudoButton 2 svRGBButton -1 } \ *saveColor.layout: horizontal { \ *saveColor.frameWidth: 2 *saveColorGroup*TextToggle.width: 110 *saveColorGroup.label: Output Color *saveColorGroup.innerOffset: 5 *saveColorGroup*highlightColor: cyan *saveColorGroup*onIcon: diamond1s *saveColorGroup*offIcon: diamond0s *saveColorGroup.frameWidth: 2 *saveColorGroup.outerOffset: 7 *saveColorGroup.location: 0 0 140 120 vertical { 5 < -5 > saveColorGroup < +inf * +inf > -1 } \ saveDataBox < +inff -inff * +inff -inff > \ 10 < -10 > \ vertical { 5 < -5 > fmtGroup < +inf * +inf > -1 } \ *saveOptLayout.layout: horizontal { \ *saveOptLayout*borderWidth: 0 *saveOptGroup.innerOffset: 0 *saveOptGroup.outerOffset: 5 *saveOptGroup.location: 0 0 400 140 *saveOptGroup.label: *saveOptGroup.frameType: chiseled *saveOptGroup.frameWidth: 2 *saveFile.height: 22 *saveLabel.label: File Name: horizontal { 5 saveLabel 5 fnameFrame < +inf -inf * > 5 } \ *saveNameLayout.layout: vertical { \ *saveNameLayout.borderWidth: 0 *saveNameGroup*borderWidth: 0 *saveNameGroup*shadowWidth: 0 *saveNameGroup*Text*editType: edit *saveNameGroup*Label.justify: right *saveNameGroup*Frame.frameWidth: 1 *saveNameGroup*Frame.frameType: sunken *saveNameGroup*highlightColor: cyan *saveNameGroup*onIcon: diamond1s *saveNameGroup*offIcon: diamond0s *saveNameGroup.location: 0 0 400 50 *saveNameGroup.label: *saveNameGroup.outerOffset: 5 *saveNameGroup.borderWidth: 0 ! Save Name Group resources. saveCmdGroup < +inf * > \ saveOptGroup < +inf -inf * > -3 \ saveNameGroup < +inf * > \ *saveLayout.layout: vertical { \ *saveLayout.borderWidth: 0 *save_panel*TextButton.width: 80 *save_panel*Label.shadowWidth: 0 *save_panel*Label.borderWidth: 0 *save_panel*TextToggle.height: 20 *save_panel*TextToggle.frameWidth: 0 *save_panel*TextToggle.alignment: left ! Save Setup Panel resources. !set Resources(save_panel) { \ *filesStatus.label: *filesLoadButton.label: Load filesStatus \ filesLoadButton \ *loadCmdLayout.layout: horizontal { \ *loadCmdLayout*Command.internalWidth: 12 *loadCmdGroup.location: 0 0 400 45 *loadCmdGroup.frameType: sunken *loadCmdGroup*innerOffset: 5 *loadCmdGroup.outerOffset: 2 *loadCmdGroup*outerOffset: 5 *loadCmdGroup*frameWidth: 2 *loadCmdGroup.label: *frameFrame.menuName: loadFrames *frameFrame.font: 6x13 *frameFrame.label: Current *frameFrame.resize: False *frameFrame.width: 50 *frameLabel.label: Frame:\ *nsampValue*editType: edit *nsampValue*height: 22 *nsampValue*width: 60 *nsampLabel.label: Nsample *z2Value*editType: edit *z2Value*height: 22 *z2Value*width: 60 *z2Label.label: z2 *z1Value*editType: edit *z1Value*height: 22 *z1Value*width: 60 *z1Label.label: z1 *zrange.location: 0 0 60 22 *zrange.label: Zrange *zscale.location: 0 0 60 22 *zscale.label: Zscale *browseHdrs.on: False *browseHdrs.location: 0 0 120 22 *browseHdrs.label: List Image Headers *autoload.on: True *autoload.location: 0 0 80 22 *autoload.label: Auto Load *grayscale.location: 0 0 100 22 *grayscale.label: Auto Grayscale nsampLabel nsampFrame < +inf * > \ z2Label z2Frame < +inf * > 2 \ z1Label z1Frame < +inf * > 2 \ zscale 6 zrange \ 6 \ frameLabel 2 frameFrame \ browseHdrs \ 3 < +inf > \ autoload 6 grayscale \ *imoptsLayout.layout: vertical { \ *imoptsLayout*Label.justify: left *imoptsLayout*Label.shadowWidth: 0 *imoptsGroup*highlightColor: yellow *imoptsGroup*onIcon: square1s *imoptsGroup*offIcon: square0s *imoptsGroup.outerOffset: 7 *imoptsGroup.frameWidth: 2 *imoptsGroup.label: Options *fnameText.height: 22 *fnameText*editType: edit *fnameLabel.label: Load File: *dirLabel.alignment: left *dirLabel.label: \ \ Directory: *rescanButton.label: Rescan *homeButton.label: Home *rootButton.label: Root *upButton.label: Up *imlistLabel.font: *lucida-bold-r*10* *imlistLabel.justify: left *imlistLabel.label: xxx *imlistLabel.height: 0 *imlistView.resizeable: True *imageList.font: 7x13 *imageList.defaultColumns: 3 *imageList.shadeSurplus: False *imageList*height: 140 !*imageList.width: 100 *imtemplateText*font: 7x13 *imtemplateText*height: 23 *imtemplateText*editType: edit *imtemplateLabel.label: Filter: horizontal { 5 fnameLabel 5 filnamFrame < +inf -inf * > } \ dirLabel < +inf -inf * > \ imlistFrame < +inf -inf * +inf -inf > \ horizontal { 1 imlistLabel < +inf -inf * > 1 } \ imtemplateLabel 3 imtemplateFrame < +inf -inf * > \ rescanButton < +inf -inf * > \ upButton < +inf -inf * > 1 \ homeButton < +inf -inf * > 1 \ rootButton < +inf -inf * > 1 \ 3 \ *imlistLayout.layout: vertical { \ *imlistLayout*Scrollbar.width: 17 *imlistLayout*Scrollbar.height: 17 *imlistLayout*Viewport.resizeable: True *imlistLayout*Viewport.useBottom: True *imlistLayout*Viewport.useRight: True *imlistLayout*Viewport.allowHoriz True *imlistLayout*Viewport.allowVert: True *imlistLayout*Command.shadowWidth: 1 *imlistLayout*Command.height: 23 *imlistLayout*Command.width: 90 *imlistLayout*Label.justify: left *imlistLayout*Label.shadowWidth: 0 *imlistGroup.outerOffset: 2 *imlistGroup.frameWidth: 2 *imlistGroup.label: loadCmdGroup < +inf -inf * > \ horizontal { -5 imoptsGroup < +inf -inf * > -5 } \ imlistGroup < +inf -inf * > \ *filesLayout.layout: vertical { \ *filesLayout*Label.shadowWidth: 0 *filesLayout*Label.borderWidth: 0 *filesLayout*SimpleMenu.background: SteelBlue *filesLayout*SimpleMenu.foreground: White *filesLayout*SimpleMenu.borderColor: black *filesLayout*SimpleMenu.borderWidth: 1 *filesLayout*TextToggle.ledtMargin: 3 *filesLayout*TextToggle.alignment: left *filesLayout*TextToggle.height: 28 *filesLayout*TextToggle.frameWidth: 0 *filesLayout*Frame*frameWidth: 1 *filesLayout*Frame*frameType: sunken *filesLayout*Group.frameType: chiseled *filesLayout*Group.shrinkToFit: True *filesLayout*borderWidth: 0 ! File Load Control Panel. !-------------------------------set Resources(load_panel) { \ *infoOptFB.label: Imtoolrc *infoOptClients.label: Clients *infoOptIsm.label: ISM *infoOptWCS.label: WCS *infoOptSvr.label: Server *infoOptFr.on: True *infoOptFr.label: Frame 2 \ }\ infoOptFB < +inf -inf * > \ infoOptIsm < +inf -inf * > 1 \ infoOptWCS < +inf -inf * > 1 \ infoOptClients < +inf -inf * > 1 \ infoOptSvr < +inf -inf * > 1 \ infoOptFr < +inf -inf * > 1 \ infoFrame < +inf -inf * +inf -inf > 1 \ *infoBoxL.layout: vertical { \ *infoBoxL*TextToggle*highlightColor: cyan *infoBoxL*TextToggle*offIcon: square0s *infoBoxL*TextToggle*onIcon: square1s *infoBoxL*TextToggle.location: 0 0 100 25 *infoBoxL*TextToggle*innerOffset: 1 *infoBoxL*TextToggle*outerOffset: 0 *infoBoxL*TextToggle.frameWidth: 1 *infoBoxL*TextToggle.frameType: raised *infoBox.innerOffset: 3 *infoBox.outerOffset: 0 *infoBox.label: infoBox < +inf -inf * > \ *infoLayout.layout: vertical { \ *infoText*font: 6x13 *infoText.height: 240 *infoLayout*Scrollbar.height: 17 *infoLayout*Scrollbar.width: 17 *infoLayout*Scrollbar.background: gray77 *infoLayout*Text*displayCaret: False *infoLayout*Text*scrollHorizontal: whenNeeded *infoLayout*Text*scrollVertical: whenNeeded *infoLayout*Text*editType: read *infoLayout*Command.internalWidth: 12 *infoLayout*Frame.frameWidth: 1 *infoLayout*Frame.frameType: sunken *infoLayout*borderWidth: 0 ! Information Panel !--------------------set Resources(info_panel) { \ *okayPrint.label: Print *cmdGroup*TextButton*location: 0 0 80 0 okayPrint 1 < +inf > printStatus < +inf -inf * +inf -inf > \ *cmdLayout.layout: horizontal { \ *cmdLayout*Command.internalWidth: 12 *cmdLayout.borderWidth: 0 *cmdGroup.location: 0 0 150 50 *cmdGroup.label: *cmdGroup.innerOffset: 5 *cmdGroup.outerOffset: 5 *cmdGroup.frameWidth: 2 *cmdGroup.frameType: chiseled ! Panel command resources. *printlist.height: 78 *printlist.width: 100 *printers*Label.ShadowWidth: 0 *printers*BorderWidth: 0 *printers*frameWidth: 1 *printers*frameType: sunken printlistFrame < +inf -inf * +inff -inff > \ *printers.layout: vertical { \ *printers*Scrollbar.minimumThumb: 10 *printers*Scrollbar.width: 17 *printers*Viewport.resizeable: True *printers*Viewport.useRight: True *printers*Viewport.allowHoriz: False *printers*Viewport.allowVert: True *printerGroup.outerOffset: 7 *printerGroup.shrinkToFit: True *printerGroup.location: 0 0 110 130 *printerGroup.label: Printers ! -------------------------- ! Printer Selection. *prRGBButton.label: RGB *prPseudoButton.label: PseudoColor *prGrayButton.label: Grayscale vertical { -1 prGrayButton 2 prPseudoButton 2 prRGBButton -1 } \ *printColor.layout: horizontal { \ *printColor.location: 0 0 250 75 *printColor.frameWidth: 2 *printColorGroup*TextToggle.width: 110 *printColorGroup.label: Output Color *printColorGroup.innerOffset: 5 *printColorGroup*highlightColor: cyan *printColorGroup*onIcon: diamond1s *printColorGroup*offIcon: diamond0s *printColorGroup.frameWidth: 2 *printColorGroup.outerOffset: 7 *printColorGroup.location: 0 0 150 90 ! ------------------------------ ! Output color box resources. *titleString*Text*editType: edit *titleString*height: 23 *titleString*string: imtitle *titleLabel.label: Title String *colorbarButton.label: \ Colorbar *bordersButton.label: \ Borders *titleButton.label: \ Title *annotateButton.label: \ Annotate horizontal { -1 titleLabel 2 titleFrame < +inf -inf * > -1 } \ 5 annotateButton 2 titleButton 2 bordersButton 2 colorbarButton 5 \ *annOpts.layout: vertical { \ *annOpts.location: 0 0 400 70 *annOpts.frameWidth: 2 *annOptsGroup*Text*editType: edit *annOptsGroup*Frame.width: 300 *annOptsGroup*Frame.frameWidth: 1 *annOptsGroup*Frame.frameType: sunken *annOptsGroup*TextToggle.highlightColor: yellow *annOptsGroup*TextToggle.width: 90 *annOptsGroup.label: Annotation Options *annOptsGroup*offIcon: square0s *annOptsGroup*onIcon: square1s *annOptsGroup.innerOffset: 5 *annOptsGroup.outerOffset: 7 ! Annotation options box resources. *compressButton.sensitive: False *compressButton.label: RLE Compress *aspectButton.label: Max Aspect *autorotateButton.label: Auto Rotate *epsscaleButton.label: Auto Scale vertical { -1 aspectButton 2 compressButton -1 } \ vertical { -1 epsscaleButton 2 autorotateButton -1 } \ *options.layout: horizontal { \ *options.frameWidth: 2 *options.location: 0 0 250 60 *optionsGroup*TextToggle.highlightColor: yellow *optionsGroup*TextToggle.width: 125 *optionsGroup.label: Processing Options *optionsGroup*offIcon: square0s *optionsGroup*onIcon: square1s *optionsGroup.innerOffset: 5 *optionsGroup.outerOffset: 7 ! ------------------------------------ ! Miscellaneous print options box resources. *SCincrease.direction: right *SCtext.label: 100 % *SCtext.height: 22 *SCtext.width: 75 *SCdecrease.direction: left SCdecrease SCtext < +inf -100% * > SCincrease \ *ScaleLayout.layout: horizontal { \ *ScaleLayout.label: *ScaleLayout.location: 0 0 100 35 *ScaleFrame*shadowWidth: 0 *ScaleFrame.frameWidth: 1 *ScaleFrame.frameType: sunken *epsScaleLabel.justify: right *epsScaleLabel.label: Output Image Scale: ! Image scale box resources. *epsB5Button.width: 50 *epsB5Button.label: B5 *epsA4Button.width: 50 *epsA4Button.label: A4 *epsLegalButton.width: 60 *epsLegalButton.label: Legal *epsLetterButton.width: 60 *epsLetterButton.label: Letter *epsSizeLabel.label: Paper Size: *epsSquareButton.sensitive: False *epsSquareButton.width: 70 *epsSquareButton.label: Square *epsLandButton.width: 85 *epsLandButton.label: Landscape *epsPortButton.width: 65 *epsPortButton.label: Portrait *epsOrientLabel.label: Orientation: ! Page Layout resources. horizontal { 5 epsScaleLabel 4 ScaleFrame < +inf -inf * > } \ 10 \ 25 epsLetterButton epsLegalButton epsA4Button epsB5Button -1 \ epsSizeLabel -1 \ 4 \ horizontal { 25 epsPortButton epsLandButton epsSquareButton -1 } \ epsOrientLabel 4 < -4 > \ *epsPage.layout: vertical { \ *epsPage*Label.justify: left *epsPageGroup*highlightColor: cyan *epsPageGroup*onIcon: diamond1s *epsPageGroup*offIcon: diamond0s *epsPageGroup.location: 0 0 250 150 *epsPageGroup.innerOffset: 5 *epsPageGroup.outerOffset: 7 *epsPageGroup.label: Postscript Options ! ----------------------------------- ! Postscript Options group resources. horizontal { annOptsGroup < +inf * +inf > -1 } \ 5 \ printerGroup < +inf -inf * > \ printColorGroup < +inf -inf * > \ optionsGroup < +inf -inf * +inf -inf > \ epsPageGroup < +inf -inf * > \ 5 \ *optLayout.layout: vertical { \ *optLayout*borderWidth: 0 *optGroup.innerOffset: 2 *optGroup.outerOffset: 5 *optGroup.location: 0 0 400 330 *optGroup.label: *optGroup.frameType: chiseled *optGroup.frameWidth: 2 !--------------------------------------- ! Main options groups layout resources. *printcmd*Text*editType: edit *printcmd*height: 22 *printcmd*string: lpr printcmdFrame < +inf -inf * > \ horizontal { 5 toPrinter 5 toFile 5 < +inf -inf > } \ 5 \ *inputLayout.layout: horizontal { \ *inputLayout.borderWidth: 0 *toFile.label: File *toPrinter.on: True *toPrinter.label: Printer *toLabel.label: Print To: *printerLabel.label: Print Command: *labelLayout.layout: vertical { 5 toLabel 7 printerLabel } *labelLayout.borderWidth: 0 labelLayout 5 inputLayout < +inf -inf * > \ *printCmdLayout.layout: horizontal { \ *printCmdLayout.borderWidth: 0 *printCmdGroup*borderWidth: 0 *printCmdGroup*shadowWidth: 0 *printCmdGroup*TextToggle.width: 70 *printCmdGroup*Text*height: 22 *printCmdGroup*Text*editType: edit *printCmdGroup*Label.justify: right *printCmdGroup*Frame.width: 300 *printCmdGroup*Frame.frameWidth: 1 *printCmdGroup*Frame.frameType: sunken *printCmdGroup*highlightColor: cyan *printCmdGroup*onIcon: diamond1s *printCmdGroup*offIcon: diamond0s *printCmdGroup.location: 0 0 400 80 *printCmdGroup.label: *printCmdGroup.outerOffset: 5 *printCmdGroup.borderWidth: 0 !---------------------------------- ! Print Group resources. -1\ cmdGroup < +inf * > \ -3 \ optGroup < +inf -inf * +inf -inf > \ printCmdGroup < +inf * > \ *printLayout.layout: vertical { \ *printLayout.borderWidth: 0 *print_panel*TextButton.height: 25 *print_panel*TextButton.width: 40 *print_panel*Label.shadowWidth: 0 *print_panel*Label.borderWidth: 0 *print_panel*TextToggle.height: 20 *print_panel*TextToggle.frameWidth: 0 *print_panel*Arrow.height: 20 *print_panel*Arrow.width: 16 *print_panel*TextToggle.alignment: left ! Print Setup Panel resources. ! !=====================================set Resources(print_panel) { \ *normalizeButton.label: Normalize *initializeButton.label: Initialize 80 < +inf -100% > \ normalizeButton < +inf * > \ initializeButton < +inf * > \ *control.layout: horizontal { \ *controlBox.height: 30 *controlBox.innerOffset: 5 *controlBox.outerOffset: 7 *controlBox.frameWidth: 2 *controlBox.frameType: chiseled ! ---------------------- ! CONTROL *peakupButton.on: True *peakupButton.label: Centroid Peaks *warningsButton.label: Warnings *magnifierButton.label: Magnifier *tileFramesButton.label: Tile Frames *antialiasButton.label: Antialias *autoscaleButton.label: Autoscale *coordsBoxButton.label: Coords Box *pannerButton.label: Panner *optionsBox*alignment: left *optionsBox.TextToggle.highlightThickness: 0 *optionsBox.TextToggle.frameWidth: 0 *optionsBox.TextToggle.location: 0 0 102 20 *optionsBox*highlightColor: yellow *optionsBox*selectionStyle: multi *optionsBox*onIcon: square1s *optionsBox*offIcon: square0s *optionsBox.outerOffset: 7 *optionsBox.shrinkToFit: False *optionsBox.location: 0 0 220 0 *optionsBox.label: Options ! OPTIONS *autoregButton.label: Auto-Register *blinkButton.label: Blink *matchButton.label: Match LUTs *registerButton.label: Register *BRincrease.direction: right *BRdecrease.direction: left *BRtext.height: 23 *BRtext.width: 40 *BRframe.frameWidth: 1 *BRframe.frameType: sunken *blinkRateLabel.label: Blink Rate: *blinkReset.label: Reset *blinkPanel.width: 20 *blinkPanel.label: x *blinkFrame4.label: 4 *blinkFrame3.label: 3 *blinkFrame2.label: 2 *blinkFrame1.label: 1 *blinkFramesLabel.label: Frames List: *blink*Arrow.height: 25 *blink*Arrow.width: 16 *blink*Command.height: 27 *blink*TextToggle.outerOffset: 1 *blink*TextToggle.onIcon: square1s *blink*TextToggle.offIcon: square0s *blink*TextToggle.highlightColor: yellow *blink.TextToggle.frameWidth: 1 *blink.TextToggle.location: 0 0 102 23 *controlPanel*blink*internalWidth: 4 *blink.Label.shadowWidth: 0 *blink.Label.borderWidth: 0 BRincrease \ BRtext < +inf -100% * > \ BRdecrease \ *BRlayout.layout: horizontal { \ 1 blinkButton < +inf * > 4 < -4 > autoregButton < +inf * > \ 2 matchButton < +inf * > 4 < -4 > registerButton < +inf * > \ 5 < +inf -100% > \ BRframe < +inf * > \ 2 \ blinkRateLabel \ $space \ 2 \ blinkReset \ blinkPanel < -50% * > \ 4 < +inf > \ blinkFrame4 < -50% * > \ blinkFrame3 < -50% * > \ blinkFrame2 < -50% * > \ blinkFrame1 < -50% * > \ 3 < +inf > \ blinkFramesLabel \ 0 \ space = (width blinkFramesLabel - width blinkRateLabel) \ *blink.layout: vertical { \ *blinkBox*TextToggle.frameWidth: 1 *blinkBox.outerOffset: 7 *blinkBox.shrinkToFit: True *blinkBox.location: 0 0 235 0 *blinkBox.label: Blink/Register ! BLINK/REGISTER ! --------------------- *optimizeButton.label: Optimize *invertButton.label: Invert *brightnessSlider.location: 0 0 100 17 *brightnessLabel.label: x *contrastSlider.location: 0 0 100 17 *contrastLabel.label: x *enhance*colordata.frameWidth: 0 *colordata.height: 45 *colordata.width: 100 *colorlist.height: 98 *colorlist.width: 100 *enhance*Label.ShadowWidth: 0 *enhance*BorderWidth: 0 *enhance*frameWidth: 1 *enhance*frameType: sunken optimizeButton < +inf -inf * > \ 5 < -5 > \ invertButton < +inf -inf * > \ brightnessSlider < +inf -inf * > \ contrastSlider < +inf -inf * > \ vertical { -1 contrastLabel 3 < -3 > brightnessLabel -1 } \ colordataFrame < +inf -inf * +inf -inf > \ 2 \ colorlistFrame < +inf -inf * +inff -inff > \ 2 < -2 > \ 3 < -3 > \ *enhance.layout: vertical { \ *enhance*Scrollbar.minimumThumb: 10 *enhance*Scrollbar.width: 17 *enhance*Viewport.resizeable: True *enhance*Viewport.useRight: False *enhance*Viewport.allowHoriz: False *enhance*Viewport.allowVert: True *enhancementBox.outerOffset: 7 *enhancementBox.shrinkToFit: True *enhancementBox.location: 0 0 110 0 *enhancementBox.label: Enhancement ! ENHANCEMENT *flipXY.label: Flip XY *flipY.label: Flip Y *flipX.label: Flip X *clearFrame.label: Clear Frame *aspect.label: Aspect *fitFrame.label: Fit Frame *prevFrame.label: Previous Frame *nextFrame.label: Next Frame fitFrame < +inf * > \ clearFrame < +inf * > 2 \ flipXY < +inf * > 2 \ flipY < +inf * > 2 \ flipX < +inf * > 2 \ aspect < +inf * > 2 \ *viewButtons.layout: horizontal { \ *viewButtons.location: 0 0 100 80 *controlPanel*d8.foreground: mediumVioletRed *controlPanel*d5.foreground: mediumVioletRed *controlPanel*d4.foreground: mediumVioletRed *controlPanel*d3.foreground: mediumVioletRed *controlPanel*d2.foreground: mediumVioletRed *controlPanel*zoomOut.foreground: mediumVioletRed *d8.label: 8 *d5.label: 5 *d4.label: 4 *d3.label: 3 *d2.label: 2 *centerFrame.height: 25 *centerFrame.width: 30 *centerFrame.outerOffset: 2 *centerFrame.label: Center *zoomOut.height: 25 *zoomOut.width: 30 *zoomOut.outerOffset: 2 *zoomOut.label: Zoom\nOut *controlPanel*z3.foreground: royalBlue3 *controlPanel*z2.foreground: royalBlue3 *controlPanel*z8.foreground: royalBlue3 *controlPanel*z5.foreground: royalBlue3 *controlPanel*z4.foreground: royalBlue3 *controlPanel*zoomIn.foreground: royalBlue3 *z8.label: 8 *z5.label: 5 *z4.label: 4 *z3.label: 3 *z2.label: 2 *x1.label: 1 *zoomIn.height: 25 *zoomIn.width: 30 *zoomIn.outerOffset: 2 *zoomIn.label: Zoom\nIn *toggleZoom.height: 25 *toggleZoom.width: 30 *toggleZoom.outerOffset: 2 *toggleZoom.label: Toggle\nZoom vertical { 1 centerFrame < +inf * +inf > } \ vertical { 0 < +inf > d3 1 < +inf > d5 1 < +inf > } \ vertical { 1 zoomOut < +inf * +inf > } \ d8 1 d4 1 d2 1 x1 1 z2 1 z4 1 z8 \ 1 < +inf > \ 1 \ vertical { zoomIn < +inf * +inf > 1 } \ vertical { 1 < +inf > z5 1 < +inf > z3 0 < +inf > } \ 1 \ vertical { toggleZoom < +inf * +inf > 1 } \ space = ((50% of width zoom) - (50% of width z5)) \ *zoom.layout: vertical { \ *controlPanel*zoom*internalWidth: 4 *zoomBox*TextButton.outerOffset: 0 *zoomBox*TextButton.frameWidth: 1 *zoomBox.shrinkToFit: True *zoomBox.outerOffset: 7 *zoomBox.location: 0 0 160 127 *zoomBox.label: Zoom: frame16 < +inf * >\ frame15 < +inf * >\ frame14 < +inf * >\ frame13 < +inf * >\ frame12 < +inf * >\ frame11 < +inf * >\ frame10 < +inf * >\ frame9 < +inf * >\ frame8 < +inf * >\ frame7 < +inf * >\ frame6 < +inf * >\ frame5 < +inf * >\ frame4 < +inf * >\ frame3 < +inf * >\ frame2 < +inf * >\ frame1 < +inf * >\ *frameList.layout: vertical { \ *frameList*location: 0 0 50 20 *frameBox*nextFrame.label: xxx *frameBox*prevFrame.label: xxx *frameBox*Command.width: 24 *frameBox*frame16.label: 16\ *frameBox*frame15.label: 15\ *frameBox*frame14.label: 14\ *frameBox*frame13.label: 13\ *frameBox*frame12.label: 12\ *frameBox*frame11.label: 11\ *frameBox*frame10.label: 10\ *frameBox*frame9.label: 9\ \ *frameBox*frame8.label: 8\ \ *frameBox*frame7.label: 7\ \ *frameBox*frame6.label: 6\ \ *frameBox*frame5.label: 5\ \ *frameBox*frame4.label: 4\ \ *frameBox*frame3.label: 3\ \ *frameBox*frame2.label: 2\ \ *frameBox*frame1.label: 1\ \ *frameBox*frameWidth: 0 *frameBox*alignment: left *framePort.height: 80 *framePort.useRight: True *framePort.allowHoriz: False *framePort.allowVert: True horizontal { prevFrame < +inf -inf * > 4 nextFrame < +inf -inf * > } \ 3 < +inf -3 > \ horizontal { -2 frlistBox < * +inff -inff > } \ *frameBox.layout: vertical { \ *frameSelect.label: Frame *frameSelect*highlightColor: blue *frameSelect*onIcon: diamond1s *frameSelect*offIcon: diamond0s *frameSelect.frameWidth: 2 *frameSelect.innerOffset: 2 *frameSelect.outerOffset: 7 *frameSelect.shrinkToFit: True *frameSelect.location: 0 0 72 0 *frameData.height: 50 *frameData.width: 150 *frameDataBox.frameWidth: 1 *frameDataBox.frameType: sunken viewButtons < +inf -inf * +inf -inf > \ 1 < +inf > \ zoomBox \ frameDataBox < +inff -100% * +inff -100% > \ 3 < -3 > \ frameSelect \ 5 < +inf -5 > \ *view.layout: vertical { \ *viewBox.outerOffset: 7 *viewBox.shrinkToFit: True *viewBox.location: 0 0 410 0 *viewBox.label: View ! ------------------ ! VIEW controlBox < +inf * > \ -5 \ optionsBox < * +inff -inff > \ 1 \ blinkBox < * +inf - inf > \ -1 \ vertical { \ -5 \ enhancementBox < +inf -inf * +inf -inf > \ viewBox < +inf -inf * > \ -1 \ *controlPanel.layout: vertical { \ *autoregButton.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *blinkButton.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *registerButton.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *matchButton.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *blinkFrame4.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *blinkFrame3.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *blinkFrame2.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *blinkFrame1.font: -adobe-times-medium-r-normal-*-12-*-iso8859-1 *zoom*Command.font: 7x13bold *centerFrame.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *toggleZoom.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *MultiList.font: -adobe-times-medium-r-normal-*-12-*-*-*-*-*-iso8859-1 *Label.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *Toggle.font: -adobe-times-medium-r-normal-*-12-*-*-*-*-*-iso8859-1 *Command.font: -adobe-times-bold-i-normal-*-12-*-*-*-*-*-iso8859-1 *TextToggle.font: -adobe-times-medium-r-normal-*-12-*-*-*-*-*-iso8859-1 *TextBox.font: 7x13bold *controlPanel*borderWidth: 0 *controlPanel*internalWidth: 0 ! Main Display Control Panel.set Resources(display_panel) { \} horizontal { tabFrame < +inf -inf * +inf -inf> } \ 3 \ panelMenuFrame < +inf -inf * > \ *panel.layout: vertical { \ *panelMenuFrame.frameWidth: 2 *panelMenuFrame.frameType: raised *panelMenuFrame.innerOffset: 1 *panelMenuFrame.outerOffset: 0 *tabFrame.frameType: chiseled *tabFrame.frameWidth: 0 *tabFrame.innerOffset: 0 *tabFrame.outerOffset: 3 *panelClose.label: Dismiss *panelHelp.label: Help 7 < -7 > \ panelClose \ 3 < -3 > \ panelHelp \ 10 < +inf -10> \ horizontal { \ 5 < -5 > \ *panelMenuBar.layout: vertical { \ *panelMenuBar*Command.internalWidth: 15 *panelMenuBar*Command.internalHeight: 4 *panelMenuBar*borderWidth: 0 *wcs_panel.innerOffset: 5 *wcs_panel.tabLabel: Coords *tile_panel.innerOffset: 5 *tile_panel.tabLabel: Tile *info_panel.innerOffset: 5 *info_panel.tabLabel: Info *save_panel.innerOffset: 5 *save_panel.tabLabel: Save *load_panel.innerOffset: 5 *load_panel.tabLabel: Load *print_panel.innerOffset: 5 *print_panel.tabLabel: Print *display_panel.innerOffset: 5 *display_panel.tabLabel: Display *TextToggle.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *TextButton.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *MultiList.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *List.font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *TextBox*font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *Text*font: -*-helvetica-medium-r-normal-*-12-*-iso8859-1 *panelTabs.internalWidth: 10 *panelTabs.internalHeight: 3 *panelShell.minWidth: 480 *panelShell.maxWidth: 480 *panelShell.geometry: 480x630 *panelShell.title: XImtool Control Panel ! Main Integrated Control Panel !================================set Resources(panelShell) { \ *colorbar.height: 17 *colorbar.width: 50 *colorbar.maxMappings: 1 *colorbar.maxRasters: 1 *colorbar.borderWidth: 0! !Ctrl : call(windowRGB,3,$x,$y,1) \n\! !Ctrl : call(windowRGB,3,$x,$y,0) \n\! !Ctrl : call(windowRGB,3,$x,$y,0) \n\! !Ctrl : call(windowRGB,2,$x,$y,1) \n\! !Ctrl : call(windowRGB,2,$x,$y,0) \n\! !Ctrl : call(windowRGB,2,$x,$y,0) \n\! !Ctrl : call(windowRGB,1,$x,$y,1) \n\! !Ctrl : call(windowRGB,1,$x,$y,0) \n\! !Ctrl : call(windowRGB,1,$x,$y,0) \n\!--------------------------------------------------------------------------! included here for those that may wish to use it.! individual RGB components of the colormap. It's not very useful but! The following translations can be used to enable windowing of the : track-cursor() call(wcsUpdate,$x,$y) call(magnifierMapImage,$x,$y) !Alt : call(curtrack_msg,$x,$y) \n\ : graphics-input() \n\ : leave-window() \n\ : enter-window() \n\ !Ctrl : call(deleteRuler,$x,$y) \n\ !Ctrl : track-cursor() call(wcsUpdate,$x,$y) call(magnifierMapImage,$x,$y) call(resizeRuler,$x,$y,0) \n\ !Ctrl : call(makeRuler,$name,$x,$y) \n\ !: call(windowColormap,$x,$y) \n\ !: call(windowColormap,$x,$y) \n\ !: call(zoom,$x,$y) \n\ !: crosshair(off) \n\ !Shift: crosshair(off) \n\ !Shift : crosshair(on) \n\ !Shift : crosshair(on) \n\ !: call(makeMarker,$name,$x,$y) m_create() \n\ !Alt t: call(tclPanel) \n\ !Alt s: call(savePanel) \n\ !Alt p: call(printPanel) \n\ !Alt l: call(loadPanel) \n\ !Alt i: call(infoPanel) \n\ !Alt h: call(Help) \n\ !Ctrl Alt f: call(fitFrame) \n\ !Alt c: call(controlPanel) \n\ !Alt b: call(toggleBlink) \n\ !Ctrl Alt 0: call(centroid,$x,$y,min) \n\ !Ctrl 0: call(centroid,$x,$y,peak) \n\ Ctrl \]: call(setCtrBoxSize,$x,$y,1) \n\ Ctrl \[: call(setCtrBoxSize,$x,$y,-1) \n\ Ctrl \>: call(cpSetBlinkRate,BRincrease) \n\ Ctrl \<: call(cpSetBlinkRate,BRdecrease) \n\ Ctrl -: call(cpZoom,0.5,0.5,relative) \n\ Ctrl +: call(cpZoom,2.0,2.0,relative) \n\ !Ctrl Alt =: call(Print) \n\ !Ctrl y: call(cpFrameAction,flipY) \n\ !Ctrl x: call(cpFrameAction,flipX) \n\ !Ctrl u: call(cpZoom,1,1,fixed) \n\ !Ctrl t: call(tileFramesToggle) \n\ !Ctrl s: call(cpMatchFrames) \n\ !Ctrl r: call(cpRegisterFrames) \n\ !Ctrl Alt q: call(Quit) \n\ !Ctrl p: call(togglePanner) \n\ !Ctrl o: call(offset,$x,$y) \n\ !Ctrl n: call(normalize) \n\ !Ctrl m: call(toggleMagnifier) \n\ !Ctrl i: call(cpInvert) \n\ !Ctrl f: call(nextFrame,$name) \n\ !Ctrl c: call(cpZoomAction,centerFrame) \n\ !Ctrl b: call(prevFrame,$name) \n\ !Ctrl a: call(toggleAutoReg) \n\ !Ctrl Alt Right: call(moveFrame,0.5,0) \n\ !Ctrl Alt Up: call(moveFrame,0,-0.5) \n\ !Ctrl Alt Down: call(moveFrame,0,0.5) \n\ !Ctrl Alt Left: call(moveFrame,-0.5,0) \n\ !Ctrl Right: call(moveFrame,1,0) \n\ !Ctrl Up: call(moveFrame,0,-1) \n\ !Ctrl Down: call(moveFrame,0,1) \n\ !Ctrl Left: call(moveFrame,-1,0) \n\ !Ctrl 9: call(cpZoom,9,9,fixed) \n\ !Ctrl 8: call(cpZoom,8,8,fixed) \n\ !Ctrl 7: call(cpZoom,7,7,fixed) \n\ !Ctrl 6: call(cpZoom,6,6,fixed) \n\ !Ctrl 5: call(cpZoom,5,5,fixed) \n\ !Ctrl 4: call(cpZoom,4,4,fixed) \n\ !Ctrl 3: call(cpZoom,3,3,fixed) \n\ !Ctrl 2: call(cpZoom,2,2,fixed) \n\ !Ctrl 1: call(cpZoom,1,1,fixed) \n\ !Alt 4: call(cpSetFrame,frame4) \n\ !Alt 3: call(cpSetFrame,frame3) \n\ !Alt 2: call(cpSetFrame,frame2) \n\ !Alt 1: call(cpSetFrame,frame1) \n\ !Ctrl Shift l: call(move_cursor,10,0) \n\ !Ctrl Shift k: call(move_cursor,0,-10) \n\ !Ctrl Shift j: call(move_cursor,0,10) \n\ !Ctrl Shift h: call(move_cursor,-10,0) \n\ !Ctrl l: call(move_cursor,1,0) \n\ !Ctrl k: call(move_cursor,0,-1) \n\ !Ctrl j: call(move_cursor,0,1) \n\ !Ctrl h: call(move_cursor,-1,0) \n\ !Shift Right: call(move_cursor,10,0) \n\ !Shift Up: call(move_cursor,0,-10) \n\ !Shift Down: call(move_cursor,0,10) \n\ !Shift Left: call(move_cursor,-10,0) \n\ NoneRight: call(move_cursor,1,0) \n\ NoneUp: call(move_cursor,0,-1) \n\ NoneDown: call(move_cursor,0,1) \n\ NoneLeft: call(move_cursor,-1,0) \n\ *imagewin.translations: \ *imagewin.borderWidth: 0 *imagewin.maxMappings: 64 *imagewin.color9: steelblue *imagewin.color8: #7c8498 *imagewin.height: 512 *imagewin.width: 512 *imagewin.copyOnResize: false *imagewin.resizable: true *imagewin.ginmodeBlinkInterval: 500 *imagewin.ginmodeCursor: circle *imagewin.deiconifyWindow: true *imagewin.raiseWindow: true *imagewin.warpCursor: true *cbarFrame.width: 518 *cbarFrame.innerOffset: 0 *cbarFrame.outerOffset: 0 *cbarFrame.frameWidth: 1 *cbarFrame.frameType: sunken *imageFrame.height: 518 *imageFrame.width: 518 *imageFrame.innerOffset: 0 *imageFrame.outerOffset: 0 *imageFrame.frameWidth: 1 *imageFrame.frameType: sunken *Gterm.basePixel: 64 *Gterm.cmapName: image *frameButton.width: 20 *frameButton.label: 1 *frameButton.menuName: frameMenu *imageTitle.height: 20 *imageTitle.width: 40 *imageTitle*font: *times-bold-r*12* *optionsButton.menuName: optionsMenu *optionsButton.label: Options *viewButton.menuName: viewMenu *viewButton.label: View *fileButton.menuName: fileMenu *fileButton.label: File *menubar*Toggle.borderWidth: 0 *menubar*Toggle.internalWidth: 0 *menubar*Toggle.label: x *menubar*Command.borderWidth: 0 *menubar*Command.internalWidth: 0 *menubar*Command.label: x *menubar*borderWidth: 0 *menubar.width: 518 *viewButton.font: -adobe-times-bold-i-normal-*-12-*-*-*-*-*-iso8859-1 *optionsButton.font: -adobe-times-bold-i-normal-*-12-*-*-*-*-*-iso8859-1 *fileButton.font: -adobe-times-bold-i-normal-*-12-*-*-*-*-*-iso8859-1 *SimpleMenu*font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1 *SmeBSB.vertSpace: 10 *menubar*SimpleMenu.background: SteelBlue *menubar*SimpleMenu.foreground: white *menubar*SimpleMenu.borderWidth: 1 *menubar*SimpleMenu.borderColor: Black helpButton \ prevButton 1 < -1 > frameButton 1 < -1 > nextButton \ xflipButton 1 < -1 > yflipButton \ controlButton 1 < -1 > \ imageTitle < +inff -inff * > \ fileButton 1 < -1 > viewButton 1 < -1 > optionsButton \ 1 < -1 > \ *menubar.layout: horizontal { \ *menuGroup.frameWidth: 2 *menuGroup.frameType: raised *menuGroup.width: 518 *menuGroup.height: 40 *menuGroup.label: *curTrack.on: True *curTrack.label: Graphics Cursors *curSmooth.on: False *curSmooth.label: Smooth Cursor *curJump.on: True *curJump.label: Jump Cursor *optLine.frameType: chiseled *optLine.frameWidth: 2 *optLine.innerOffset: 0 *optLine.outerOffset: 0 *optLine.width: 120 *optLine.height: 2 *plotImgPix.sensitive: False *plotImgPix.on: False *plotImgPix.label: Image Pixels *plotAccurate.on: False *plotAccurate.label: Better Accuracy *plotSpeed.on: True *plotSpeed.label: Better Speed } curJump curSmooth curTrack \ horizontal { -4 optLine < +inf -inf * > -4 } \ 2 < -2 > \ plotSpeed plotAccurate plotImgPix \ -1 \ *poptsLayout.layout: vertical { \ *poptsLayout.borderWidth: 0 *plotOpts*TextToggle.alignment: left *plotOpts*TextToggle.leftMargin: 3 *plotOpts*TextToggle.selectionStyle: multi *plotOpts*TextToggle.frameWidth: 0 *plotOpts*TextToggle.outerOffset: 0 *plotOpts*TextToggle.highlightColor: yellow *plotOpts*TextToggle.onIcon: square1s *plotOpts*TextToggle.offIcon: square0s *plotOpts.frameWidth: 2 *plotOpts.innerOffset: 3 *plotOpts.outerOffset: 5 *plotOpts.shrinkToFit: True *plotOpts*location: 0 0 1 18 !*plotOpts*location: 0 0 105 18 *plotOpts.label: Options : track-cursor() call(vcutWCSUpdate,$x,$y) *vcutPlot.translations: \ *vcutPlot.alphaFont8: 6x10 *vcutPlot.alphaFont7: 6x10 *vcutPlot.alphaFont6: 6x10 *vcutPlot.alphaFont5: 6x10 *vcutPlot.alphaFont4: 6x10 *vcutPlot.alphaFont3: 6x10 *vcutPlot.alphaFont2: 6x10 *vcutPlot.alphaFont1: 6x10 *vcutPlot.borderWidth: 0 *vcutPlot.height: 512 *vcutPlot.width: 5 *vcutPlot.crosshairCursorColor: red *vcutPlot.color1: ivory2 *vcutPlot.color0: darkslategray *vcutPlot.color1: black *vcutPlot.color0: gray77 *vcutFrame.outerOffset: 0 *vcutFrame.innerOffset: 0 *vcutFrame.frameWidth: 1 *vcutFrame.frameType: sunken : track-cursor() call(hcutWCSUpdate,$x,$y) !Alt : call(curtrack_msg,$x,$y) \n\ : graphics-input() \n\ : leave-window() \n\ : enter-window() \n\ !: call(makeMarker,$name,$x,$y) m_create() \n\ !Alt t: call(tclPanel) \n\ !Alt s: call(savePanel) \n\ !Alt p: call(printPanel) \n\ !Alt l: call(loadPanel) \n\ !Ctrl Alt f: call(fitFrame) \n\ !Alt i: call(infoPanel) \n\ !Alt h: call(Help) \n\ !Alt c: call(controlPanel) \n\ !Alt b: call(toggleBlink) \n\ Ctrl \>: call(cpSetBlinkRate,BRincrease) \n\ Ctrl \<: call(cpSetBlinkRate,BRdecrease) \n\ Ctrl -: call(cpZoom,0.5,0.5,relative) \n\ Ctrl +: call(cpZoom,2.0,2.0,relative) \n\ !Ctrl u: call(cpZoom,1,1,fixed) \n\ !Ctrl s: call(cpMatchFrames) \n\ !Ctrl r: call(cpRegisterFrames) \n\ !Ctrl Alt q: call(Quit) \n\ !Ctrl p: call(togglePanner) \n\ !Ctrl n: call(normalize) \n\ !Ctrl m: call(toggleMagnifier) \n\ !Ctrl i: call(cpInvert) \n\ !Ctrl f: call(nextFrame,$name) \n\ !Ctrl b: call(prevFrame,$name) \n\ !Ctrl 9: call(cpZoom,9,9,fixed) \n\ !Ctrl 8: call(cpZoom,8,8,fixed) \n\ !Ctrl 7: call(cpZoom,7,7,fixed) \n\ !Ctrl 6: call(cpZoom,6,6,fixed) \n\ !Ctrl 5: call(cpZoom,5,5,fixed) \n\ !Ctrl 4: call(cpZoom,4,4,fixed) \n\ !Ctrl 3: call(cpZoom,3,3,fixed) \n\ !Ctrl 2: call(cpZoom,2,2,fixed) \n\ !Ctrl 1: call(cpZoom,1,1,fixed) \n\ *hcutPlot.translations: \ *hcutPlot.alphaFont8: 6x10 *hcutPlot.alphaFont7: 6x10 *hcutPlot.alphaFont6: 6x10 *hcutPlot.alphaFont5: 6x10 *hcutPlot.alphaFont4: 6x10 *hcutPlot.alphaFont3: 6x10 *hcutPlot.alphaFont2: 6x10 *hcutPlot.alphaFont1: 6x10 *hcutPlot.borderWidth: 0 *hcutPlot.height: 5 *hcutPlot.width: 512 *hcutPlot.crosshairCursorColor: red *hcutPlot.color1: ivory2 *hcutPlot.color0: darkslategray *hcutPlot.color1: black *hcutPlot.color0: gray77 *hcutFrame.outerOffset: 0 *hcutFrame.innerOffset: 0 *hcutFrame.frameWidth: 1 *hcutFrame.frameType: sunken *vcut.font: *lucida-bold-r*10* *vcut.label: V *hcut.font: *lucida-bold-r*10* *hcut.label: H } } \ } \ hcut 2 vcut \ cbarFrame < +inf -inf * > \ vertical { 4 plotOpts -4 } \ hcutFrame < +inf -inf * > 1 \ } \ vcutFrame < * +inf -inf > \ imageFrame < +inf -inf * +inf -inf > \ horizontal { \ vertical { \ -2 \ menuGroup < +inf -inf * > \ vertical { \ -0 \ *display.layout: horizontal { \ *display.borderWidth: 0 *ximtool.title: XIMTOOL_VERSION *rulerColor.menuLabel.rightMargin: 5 *rulerColor.menuLabel.leftMargin: 5 *rulerColor.SmeBSB.rightMargin: 0 *rulerColor.SmeBSB.leftMargin: 64 *markerColor.menuLabel.rightMargin: 5 *markerColor.menuLabel.leftMargin: 5 *markerColor.SmeBSB.rightMargin: 0 *markerColor.SmeBSB.leftMargin: 64 *magzoomMenu*SimpleMenu.background: SteelBlue *magzoomMenu*SimpleMenu.foreground: Black *magzoomMenu.background: SteelBlue *magzoomMenu.foreground: Black *rulerMenu.SmeBSB.leftMargin: 16 *rulerMenu*SimpleMenu.background: SteelBlue *rulerMenu*SimpleMenu.foreground: Black *rulerMenu.background: SteelBlue *rulerMenu.foreground: Black *markerMenu*SimpleMenu.background: SteelBlue *markerMenu*SimpleMenu.foreground: Black *markerMenu.background: SteelBlue *markerMenu.foreground: Black *menuLabel.foreground: Gold *beNiceToColormap: False *allowShellResize: True ! ------------------------------- ! Main image window resources.set Resources(ximtool) { \ *SimpleMenu.line40.foreground: gray91 *SimpleMenu.line39.foreground: gray61 *SimpleMenu.line38.foreground: gray91 *SimpleMenu.line37.foreground: gray61 *SimpleMenu.line36.foreground: gray91 *SimpleMenu.line35.foreground: gray61 *SimpleMenu.line34.foreground: gray91 *SimpleMenu.line33.foreground: gray61 *SimpleMenu.line32.foreground: gray91 *SimpleMenu.line31.foreground: gray61 *SimpleMenu.line30.foreground: gray91 *SimpleMenu.line29.foreground: gray61 *SimpleMenu.line28.foreground: gray91 *SimpleMenu.line27.foreground: gray61 *SimpleMenu.line26.foreground: gray91 *SimpleMenu.line25.foreground: gray61 *SimpleMenu.line24.foreground: gray91 *SimpleMenu.line23.foreground: gray61 *SimpleMenu.line22.foreground: gray91 *SimpleMenu.line21.foreground: gray61 *SimpleMenu.line20.foreground: gray91 *SimpleMenu.line19.foreground: gray61 *SimpleMenu.line18.foreground: gray91 *SimpleMenu.line17.foreground: gray61 *SimpleMenu.line16.foreground: gray91 *SimpleMenu.line15.foreground: gray61 *SimpleMenu.line14.foreground: gray91 *SimpleMenu.line13.foreground: gray61 *SimpleMenu.line12.foreground: gray91 *SimpleMenu.line11.foreground: gray61 *SimpleMenu.line10.foreground: gray91 *SimpleMenu.line9.foreground: gray61 *SimpleMenu.line8.foreground: gray91 *SimpleMenu.line7.foreground: gray61 *SimpleMenu.line6.foreground: gray91 *SimpleMenu.line5.foreground: gray61 *SimpleMenu.line4.foreground: gray91 *SimpleMenu.line3.foreground: gray61 *SimpleMenu.line2.foreground: gray91 *SimpleMenu.line1.foreground: gray61 *SimpleMenu.borderColor: black *SimpleMenu.borderWidth: 2 *SimpleMenu.background: gray77 *SmeBSB.background: SteelBlue *SmeBSB.foreground: gray90 *SmeBSB.shadowWidth: 2 *SmeBSB.rightMargin: 5 *SmeBSB.leftMargin: 10 ! Menu resources giving a shadow effect. !---------------------------------------- *HTML*Scrollbar*height: 15 *HTML*Scrollbar*width: 15 *HTML.Scrollbar.shadowWidth: 1 *Scrollbar*pushThumb: true *Scrollbar*cursorName: top_left_arrow *Scrollbar*height: 15 *Scrollbar*width: 15 *Scrollbar*shadowWidth: 1 *Scrollbar*background: gray77 ! Define resources to take advantage of the 3D scrollbar look. !------------------------------------------------------------- *Slider2d.thumbColor: gray77 *MultiList*background: gray68 *TextBox.background: gray68 *AsciiText*background: gray68 *Text*background: gray68 *Arrow.background: gray68 *Arrow.foreground: gray *Group.shrinkToFit: True *Toggle.highlightThickness: 1 *TextToggle.highlightThickness: 0 *TextToggle*borderWidth: 0 *TextButton.highlightThickness: 1 *TextButton.shadowWidth: 0 *Label.shadowWidth: 0 *Label.borderWidth: 0 *MenuButton.highlightThickness: 1 *MenuButton.height: 21 *Command.highlightThickness: 1 *Command.height: 21 *Text*height: 21 *Arrow.height: 25 *Arrow.width: 16! *foreground: black *background: gray77 *shadowWidth: 1 ! Define some global widget resources for the main panels. !---------------------------------------------------------set Resources(global) { \ warn Command warnCancel\ warn Command warnOk\ WFlayout TextBox warnText\ WFlayout Icon warnIcon\ warnFrame Layout WFlayout\ warn Frame warnFrame\ warning Layout warn\ toplevel TransientShell warning\set Objects(warning) { \ tclFrame AsciiText tclEntry\ tclLayout Frame tclFrame\ tclCmd Command tclDismiss\ tclCmd Command tclExecute\ tclCmd Command tclClear\ tclCmdGroup Layout tclCmd\ tclLayout Group tclCmdGroup\ tcl_panel Layout tclLayout\ toplevel TopLevelShell tcl_panel\set Objects(tcl_panel) { \ sigFrame Label sigValue\ ptLayout Frame sigFrame\ ptLayout Label sigLabel\ meanFrame Label meanValue\ ptLayout Frame meanFrame\ ptLayout Label meanLabel\ ptFrame MultiList pixtab\ ptLayout Frame ptFrame\ ptRowFrame MultiList ptRowLabs\ ptLayout Frame ptRowFrame\ ptColFrame MultiList ptColLabs\ ptLayout Frame ptColFrame\ ptPort Layout ptLayout\ pixtabFrame Porthole ptPort\ pixel_table Frame pixtabFrame\ pixtabMenuBar Command pixtabClose\ pixtabMenuBar Command pixtabHelp\ pixtabMenuBar MenuButton pixtabSize\ pixtabMenuFrame Layout pixtabMenuBar\ pixel_table Frame pixtabMenuFrame\ pixel_panel Layout pixel_table\ toplevel TopLevelShell pixel_panel\set Objects(pixel_table) { \ hdrKGFrame AsciiText hdrKGText\ hdrKeywGroup Frame hdrKGFrame\ hdrWcsLayout Group hdrKeywGroup\ hdrIGFrame AsciiText hdrIGText\ hdrInfoGroup Frame hdrIGFrame\ hdrWcsLayout Group hdrInfoGroup\ hdrWcsGroup Layout hdrWcsLayout\ hdrHdrLayout HTML hdrText\ hdrHdrLayout Command hdrClear\ hdrHdrLayout Command hdrFind\ hdrHdrLayout Command hdrFilter\ hFindFrame AsciiText hFindEntry\ hdrHdrLayout Frame hFindFrame\ hdrHdrGroup Layout hdrHdrLayout\ hdrTabs Group hdrWcsGroup\ hdrTabs Group hdrHdrGroup\ hdrTabFrame Tabs hdrTabs\ hdrLayout Frame hdrTabFrame\ hdrObjLayout MenuButton hdrObjMenu\ hdrObjLayout Label hdrObjLabel\ hdrObjGroup Layout hdrObjLayout\ hdrLayout Group hdrObjGroup\ hdrMenuBar Command hdrClose\ hdrMenuFrame Layout hdrMenuBar\ hdrLayout Frame hdrMenuFrame\ hdr_panel Layout hdrLayout\ toplevel TopLevelShell hdr_panel\set Objects(hdr_panel) { \ brCmd TextToggle brAregButton\ brCmd TextToggle brBlinkButton\ brCmd Command brMatchButton\ brCmd Command brRegButton\ brBRlayout Arrow brBRincrease\ brBRlayout TextBox brBRtext\ brBRlayout Arrow brBRdecrease\ brBRframe Layout brBRlayout\ brCmd Frame brBRframe\ brCmd Label brRateLabel\ brCmd Command brReset\ brCmdG Layout brCmd\ brLayout Group brCmdG\ brFrames MenuButton brFrame16\ brFrames MenuButton brFrame15\ brFrames MenuButton brFrame14\ brFrames MenuButton brFrame13\ brFrames MenuButton brFrame12\ brFrames MenuButton brFrame11\ brFrames MenuButton brFrame10\ brFrames MenuButton brFrame9\ brFrames MenuButton brFrame8\ brFrames MenuButton brFrame7\ brFrames MenuButton brFrame6\ brFrames MenuButton brFrame5\ brFrames MenuButton brFrame4\ brFrames MenuButton brFrame3\ brFrames MenuButton brFrame2\ brFrames MenuButton brFrame1\ brFramesG Layout brFrames\ brLayout Group brFramesG\ brFrame Layout brLayout\ bpLayout Frame brFrame\ brMenuBar Command brClose\ brMenuFrame Layout brMenuBar\ bpLayout Frame brMenuFrame\ blink_panel Layout bpLayout\ toplevel TopLevelShell blink_panel\set Objects(blink_panel) { \ helpInfoLayout Label helpNOAOLogo\ helpInfoLayout Label helpInfo3\ helpInfoLayout Label helpInfo2\ helpInfoLayout Label helpInfo1\ helpInfoLayout Label helpIRAFLogo\ helpTextFrame HTML helpText\ helpLayout Frame helpTextFrame\ helpLayout Command hfClear\ helpLayout Command hfFind\ hfFrame AsciiText hfEntry\ helpLayout Frame hfFrame\ helpLayout Command helpHome\ helpLayout Command helpForward\ helpLayout Command helpBack\ helpMenubar Command helpClose\ helpLayout Layout helpInfoLayout\ helpMenuGroup Layout helpMenubar\ helpLayout Group helpMenuGroup\ help_panel Layout helpLayout\ toplevel TopLevelShell help_panel\set Objects(help_panel) { \ ximtool Parameter ism_msg\ ximtool Parameter info\ ximtool Parameter help\ ximtool Parameter filelist\ ximtool Parameter tileOptions\ ximtool Parameter saveOptions\ ximtool Parameter loadOptions\ ximtool Parameter printOptions\ ximtool Parameter printerList\ ximtool Parameter yflip\ ximtool Parameter xflip\ ximtool Parameter cursorMode\ ximtool Parameter tileFrames\ ximtool Parameter antialias\ ximtool Parameter autoscale\ ximtool Parameter colortables\ ximtool Parameter enhancement\ ximtool Parameter frameFit\ ximtool Parameter frameTitle\ ximtool Parameter frameView\ ximtool Parameter frameRegion\ ximtool Parameter frameSize\ ximtool Parameter nframes\ ximtool Parameter frame\ ximtool Parameter resize\ ximtool Parameter initialize\ ximtool Parameter alert\ toplevel Parameter ximtool\set Objects(parameters) { \ tFrames Toggle tFrame16\ tFrames Toggle tFrame15\ tFrames Toggle tFrame14\ tFrames Toggle tFrame13\ tFrames Toggle tFrame12\ tFrames Toggle tFrame11\ tFrames Toggle tFrame10\ tFrames Toggle tFrame9\ tFrames Toggle tFrame8\ tFrames Toggle tFrame7\ tFrames Toggle tFrame6\ tFrames Toggle tFrame5\ tFrames Toggle tFrame4\ tFrames Toggle tFrame3\ tFrames Toggle tFrame2\ tFrames Toggle tFrame1\ tFrames Command tNone\ tFrames Command tAll\ tFramesG Layout tFrames\ ncLayout Arrow ncincrease\ ncLayout Label nctext\ ncLayout Arrow ncdecrease\ ncFrame Layout ncLayout\ userOrientL Frame ncFrame\ userOrientL Label ncolLab\ nrLayout Arrow nrincrease\ nrLayout Label nrtext\ nrLayout Arrow nrdecrease\ nrFrame Layout nrLayout\ userOrientL Frame nrFrame\ userOrientL Label nrowLab\ userOrientG Layout userOrientL\ geomFrame Label tileGeometry\ toptLayout Frame geomFrame\ tileLabel TextToggle labelFrames\ tileLabel TextToggle labelTitles\ tileLabel TextToggle labelImname\ toptLayout Group tileLabel\ fillStyle TextToggle bottomUp\ fillStyle TextToggle byCols\ toptLayout Group fillStyle\ toptLayout Group userOrientG\ tileMode TextToggle tileCol\ tileMode TextToggle tileRow\ tileMode TextToggle tileVertical\ tileMode TextToggle tileHorizontal\ tileMode TextToggle tileSquare\ tileMode TextToggle tileBest\ tileMode TextToggle tileManual\ tileMode TextToggle tileDisabled\ toptLayout Group tileMode\ toptLayout Group tFramesG\ tileOpts Layout toptLayout\ tile_panel Frame tileOpts\ wcsIsmLayout Command wcsIsmInit\ wcsIsmFrame AsciiText wcsIsmCmd\ wcsIsmLayout Frame wcsIsmFrame\ wcsIsmLayout Label wcsIsmLabel\ wcsIsmGroup Layout wcsIsmLayout\ wcsOptLayout Group wcsIsmGroup\ woLayout TextToggle woptBPM\ woLayout TextToggle woptFBinfo\ woLayout TextToggle woptTitles\ woLayout TextToggle woptLabels\ wcsOpts Layout woLayout\ wcsOptLayout Group wcsOpts\ wcLayout TextToggle wiWcs4\ wcLayout TextToggle wiWcs3\ wcLayout TextToggle wiWcs2\ wcLayout TextToggle wiWcs1\ wcLayout TextToggle wpWcs4\ wcLayout TextToggle wpWcs3\ wcLayout TextToggle wpWcs2\ wcLayout TextToggle wpWcs1\ wcLayout MenuButton fmtWcs4\ wcLayout MenuButton fmtWcs3\ wcLayout MenuButton fmtWcs2\ wcLayout MenuButton fmtWcs1\ wcLayout MenuButton sysWcs4\ wcLayout MenuButton sysWcs3\ wcLayout MenuButton sysWcs2\ wcLayout MenuButton sysWcs1\ wcLayout Label wlWcs4\ wcLayout Label wlWcs3\ wcLayout Label wlWcs2\ wcLayout Label wlWcs1\ wcLayout Frame wcLine\ wcLayout Label wcTitle\ wcsCoords Layout wcLayout\ wcsOptLayout Group wcsCoords\ wcsOptGroup Layout wcsOptLayout\ wcsLayout Group wcsOptGroup\ wcsBox TextToggle wcsOptions\ wcsBox TextToggle compass\ wcsBox TextToggle imageHeader\ wcsBox TextToggle pixelTable\ wcsBox TextToggle ismToggle\ wcsText AsciiText wtWcs4\ wcsText AsciiText wtWcs3\ wcsText AsciiText wtWcs2\ wcsText AsciiText wtWcs1\ wcsText AsciiText wtBPixval\ wcsText AsciiText wtSPixval\ wcsText AsciiText wtIPixval\ wcsText AsciiText wtFBCfg\ wcsText AsciiText wtTitle\ wcsText AsciiText wtName\ wcsFrame Layout wcsText\ wcsBox Frame wcsFrame\ wcsGroup Layout wcsBox\ wcsLayout Group wcsGroup\ wcs_panel Layout wcsLayout\ infoBoxL TextToggle infoOptFB\ infoBoxL TextToggle infoOptIsm\ infoBoxL TextToggle infoOptClients\ infoBoxL TextToggle infoOptSvr\ infoBoxL TextToggle infoOptWCS\ infoBoxL TextToggle infoOptFr\ infoFrame AsciiText infoText\ infoBoxL Frame infoFrame\ infoBox Layout infoBoxL\ infoLayout Group infoBox\ info_panel Layout infoLayout\ saveCmdLayout Label saveStatus\ saveCmdLayout Command okaySave\ saveCmdGroup Layout saveCmdLayout\ saveLayout Group saveCmdGroup\ saveColor TextToggle svRGBButton\ saveColor TextToggle svPseudoButton\ saveColor TextToggle svGrayButton\ saveColorGroup Layout saveColor\ formats TextToggle rawButton\ formats TextToggle x11Button\ formats TextToggle epsButton\ formats TextToggle fitsButton\ formats TextToggle tiffButton\ formats TextToggle jpegButton\ formats TextToggle gifButton\ formats TextToggle rasButton\ fmtGroup Layout formats\ saveDataBox TextBox saveData\ saveOptLayout Frame saveDataBox\ saveOptLayout Group saveColorGroup\ saveOptLayout Group fmtGroup\ saveOptGroup Layout saveOptLayout\ saveLayout Group saveOptGroup\ fnameFrame AsciiText saveFile\ saveNameLayout Frame fnameFrame\ saveNameLayout Label saveLabel\ saveNameGroup Layout saveNameLayout\ saveLayout Group saveNameGroup\ save_panel Layout saveLayout\ loadCmdLayout Label filesStatus\ loadCmdLayout Command filesLoadButton\ loadCmdGroup Layout loadCmdLayout\ filesLayout Group loadCmdGroup\ imoptsLayout MenuButton frameFrame\ imoptsLayout Label frameLabel\ nsampFrame AsciiText nsampValue\ imoptsLayout Frame nsampFrame\ imoptsLayout Label nsampLabel\ z2Frame AsciiText z2Value\ imoptsLayout Frame z2Frame\ imoptsLayout Label z2Label\ z1Frame AsciiText z1Value\ imoptsLayout Frame z1Frame\ imoptsLayout Label z1Label\ imoptsLayout TextToggle zrange\ imoptsLayout TextToggle zscale\ imoptsLayout TextToggle browseHdrs\ imoptsLayout TextToggle autoload\ imoptsLayout TextToggle grayscale\ imoptsGroup Layout imoptsLayout\ filesLayout Group imoptsGroup\ imlistView MultiList imageList\ imlistFrame Viewport imlistView\ imlistLayout Frame imlistFrame\ imlistLayout Label imlistLabel\ imtemplateFrame AsciiText imtemplateText\ imlistLayout Frame imtemplateFrame\ imlistLayout Label imtemplateLabel\ filnamFrame AsciiText fnameText\ imlistLayout Frame filnamFrame\ imlistLayout Label fnameLabel\ imlistLayout Label dirLabel\ imlistLayout Command rescanButton\ imlistLayout Command upButton\ imlistLayout Command homeButton\ imlistLayout Command rootButton\ imlistGroup Layout imlistLayout\ filesLayout Group imlistGroup\ load_panel Layout filesLayout\ cmdLayout Label printStatus\ cmdLayout Command okayPrint\ cmdGroup Layout cmdLayout\ printlistView MultiList printlist\ printlistFrame Viewport printlistView\ printers Frame printlistFrame\ printerGroup Layout printers\ printColor TextToggle prRGBButton\ printColor TextToggle prPseudoButton\ printColor TextToggle prGrayButton\ printColorGroup Layout printColor\ titleFrame AsciiText titleString\ annOpts Frame titleFrame\ annOpts Label titleLabel\ annOpts TextToggle bordersButton\ annOpts TextToggle titleButton\ annOpts TextToggle colorbarButton\ annOpts TextToggle annotateButton\ annOptsGroup Layout annOpts\ options TextToggle compressButton\ options TextToggle aspectButton\ options TextToggle autorotateButton\ options TextToggle epsscaleButton\ optionsGroup Layout options\ ScaleLayout Arrow SCincrease\ ScaleLayout TextBox SCtext\ ScaleLayout Arrow SCdecrease\ ScaleFrame Layout ScaleLayout\ epsPage Frame ScaleFrame\ epsPage Label epsScaleLabel\ epsPage TextToggle epsB5Button\ epsPage TextToggle epsA4Button\ epsPage TextToggle epsLegalButton\ epsPage TextToggle epsLetterButton\ epsPage Label epsSizeLabel\ epsPage TextToggle epsSquareButton\ epsPage TextToggle epsLandButton\ epsPage TextToggle epsPortButton\ epsPage Label epsOrientLabel\ epsPageGroup Layout epsPage\ optLayout Group annOptsGroup\ optLayout Group printerGroup\ optLayout Group printColorGroup\ optLayout Group optionsGroup\ optLayout Group epsPageGroup\ optGroup Layout optLayout\ printcmdFrame AsciiText printcmd\ inputLayout Frame printcmdFrame\ inputLayout TextToggle toFile\ inputLayout TextToggle toPrinter\ printCmdLayout Layout inputLayout\ labelLayout Label printerLabel\ labelLayout Label toLabel\ printCmdLayout Layout labelLayout\ printCmdGroup Layout printCmdLayout\ printLayout Group cmdGroup\ printLayout Group optGroup\ printLayout Group printCmdGroup\ print_panel Layout printLayout\ control Command normalizeButton\ control Command initializeButton\ controlBox Layout control\ optionsBox TextToggle peakupButton\ optionsBox TextToggle warningsButton\ optionsBox TextToggle tileFramesButton\ optionsBox TextToggle antialiasButton\ optionsBox TextToggle autoscaleButton\ optionsBox TextToggle coordsBoxButton\ optionsBox TextToggle magnifierButton\ optionsBox TextToggle pannerButton\ blink TextToggle autoregButton\ blink TextToggle blinkButton\ blink Command matchButton\ blink Command registerButton\ BRlayout Arrow BRincrease\ BRlayout TextBox BRtext\ BRlayout Arrow BRdecrease\ BRframe Layout BRlayout\ blink Frame BRframe\ blink Label blinkRateLabel\ blink Command blinkReset\ blink Toggle blinkPanel\ blink Command blinkFrame4\ blink Command blinkFrame3\ blink Command blinkFrame2\ blink Command blinkFrame1\ blink Label blinkFramesLabel\ blinkBox Layout blink\ enhance Command optimizeButton\ enhance Command invertButton\ enhance Slider2d brightnessSlider\ enhance Label brightnessLabel\ enhance Slider2d contrastSlider\ enhance Label contrastLabel\ colordataFrame TextBox colordata\ enhance Frame colordataFrame\ colorlistView MultiList colorlist\ colorlistFrame Viewport colorlistView\ enhance Frame colorlistFrame\ enhancementBox Layout enhance\ viewButtons Command fitFrame\ viewButtons Command clearFrame\ viewButtons Command flipXY\ viewButtons Command flipY\ viewButtons Command flipX\ viewButtons Command aspect\ view Layout viewButtons\ zoom Command d8\ zoom Command d5\ zoom Command d4\ zoom Command d3\ zoom Command d2\ zoom TextButton centerFrame\ zoom TextButton zoomOut\ zoom Command z8\ zoom Command z5\ zoom Command z4\ zoom Command z3\ zoom Command z2\ zoom Command x1\ zoom TextButton zoomIn\ zoom TextButton toggleZoom\ zoomBox Layout zoom\ view Group zoomBox\ frameDataBox TextBox frameData\ view Frame frameDataBox\ frameBox Command nextFrame\ frameBox Command prevFrame\ frameList TextToggle frame16\ frameList TextToggle frame15\ frameList TextToggle frame14\ frameList TextToggle frame13\ frameList TextToggle frame12\ frameList TextToggle frame11\ frameList TextToggle frame10\ frameList TextToggle frame9\ frameList TextToggle frame8\ frameList TextToggle frame7\ frameList TextToggle frame6\ frameList TextToggle frame5\ frameList TextToggle frame4\ frameList TextToggle frame3\ frameList TextToggle frame2\ frameList TextToggle frame1\ framePort Layout frameList\ frlistBox Viewport framePort\ frameBox Box frlistBox\ frameSelect Layout frameBox\ view Group frameSelect\ viewBox Layout view\ controlPanel Frame controlBox\ controlPanel Group optionsBox\ controlPanel Group blinkBox\ controlPanel Group enhancementBox\ controlPanel Group viewBox\ display_panel Layout controlPanel\ panelTabs Frame wcs_panel\ panelTabs Frame tile_panel\ panelTabs Frame info_panel\ panelTabs Frame save_panel\ panelTabs Frame load_panel\ panelTabs Frame print_panel\ panelTabs Frame display_panel\ tabFrame Tabs panelTabs\ panel Frame tabFrame\ panelMenuBar Command panelClose\ panelMenuBar Command panelHelp\ panelMenuFrame Layout panelMenuBar\ panel Frame panelMenuFrame\ panelShell Layout panel\ toplevel TopLevelShell panelShell\set Objects(panelShell) { \} poptsLayout TextToggle curTrack\ poptsLayout TextToggle curSmooth\ poptsLayout TextToggle curJump\ poptsLayout Frame optLine\ poptsLayout TextToggle plotImgPix\ poptsLayout TextToggle plotAccurate\ poptsLayout TextToggle plotSpeed\ plotOpts Layout poptsLayout\ display Group plotOpts\ vcutFrame Gterm vcutPlot\ display Frame vcutFrame\ hcutFrame Gterm hcutPlot\ display Frame hcutFrame\ display Toggle vcut\ display Toggle hcut\ cbarFrame Gterm colorbar\ display Frame cbarFrame\ imageFrame Gterm imagewin\ display Frame imageFrame\ menubar Toggle helpButton \ menubar Command nextButton \ menubar MenuButton frameButton \ menubar Command prevButton \ menubar Toggle yflipButton \ menubar Toggle xflipButton \ menubar Toggle controlButton \ menubar Label imageTitle \ menubar MenuButton optionsButton \ menubar MenuButton viewButton \ menubar MenuButton fileButton \ menuGroup Layout menubar\ display Group menuGroup\\ toplevel Layout display \set Objects(ximtool) { \reset-serverset Version "NOAO/IRAF XImtool Version 1.3.1EXPORT"# Version 1.3.1 -- EXPORT VERSION# XIMTOOL.GUI -- Default GUI for the Ximtool image display server.##!/usr/local/bin/obmsh-help-versionVersion: %s -defgui%s -cmapName-xrmXImtool*cmapName:%s-maxColorsXImtool*maxColors:%d-basePixelXImtool*basePixel:%d-cmapInitializeXImtool*cmapInitialize:%s-displayPannerXImtool*displayPanner:%s-displayMagnifierXImtool*displayMagnifier:%s-displayCoordsXImtool*displayCoords:%s-printConfigXImtool*printConfig:%sXImtool%s: File does not exist: '%s' %s: File doesn't have read permission: '%s' -gui-cmap1-cmap2-cmapDir1-cmapDir2-imtoolrc-memModel-config-nframes-tile-invert-fifo%si%so-port-unix-fifo_only-inet_only-port_only-unix_only-ismdev-bg-fg-iconic-display-geometry-title-xrmUnrecognized flag '%s' initializeUsage: ximtool[-basePixel ][-cmap1 ][-cmap2 ][-cmapDir1 ][-cmapDir2 ][-cmapInitialize ][-cmapName ][-config ][-defgui][-displayPanner ][-displayMagnifier ][-displayCoords ][-fifo ][-fifo_only][-gui ][-help][-imtoolrc ][-inet_only | -port_only][-invert][-ismdev ][-maxColors ][-memModel ][-nframes ][-port ][-printConfig ][-tile][-unix ][-unix_only][] %s ERROR: Detected incorrect X visual: depth=%d class=StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor XImtool currently requires an 8-bit PseudoColor visual in order to operate properly. Unfortunately the only workaround for this at present is to start an 8-bit server using commands such as %% startx -- -bpp 8 # XFree86 V3.x %% startx -- -depth 8 # XFree86 V4.x %% Xsun :0 -dev /dev/fb defclass PseudoColor defdepth 8 # Sun %% Xdec -vclass0 PseudoColor # Digital Unix The actual commands used will vary depending on the platform, window manager/desktop used, and in some cases video hardware. See the Xserver(1) and xinit(1) man page for details. Users should also contact IRAF site support (iraf@noao.edu) with any questions or problems. ttttttXGXERRORximtool: warning, error event received: dumpcoredumping core... core.%dcorecore file core.%d written fork failed, no core dump produced exitprogram terminated %s: unknown action %s ximtool: fatal IO error %d (%s) or KillClient on X server "%s" ximtool Xt error: %s unknown errorout of memoryout of memory computing hash tableout of memory allocating hash tableout of memory generating histogramG zmin=%g zmax=%g left=%g median=%g minpix=%d ngrow=%d ngood=%d zstart=%g zslope=%g z1=%g z2=%g ??{Gz?@fitLine: z0=%g dz=%g sumz=%g sumxz=%g sumxsqr=%g npix=%d zscale=%g z0=%g dz=%g rowrat=%g @?{Gz?rbUnable to open FITS filerGIF8GIF%-16.16s 8 %5dx%-5d GIF%s Image (%d colors)can't happenerror reading magic numbernot a GIF file87a89abad version number, not '87a' or '89a'failed to read screen descriptorerror reading global colormapEOF / read error on image datarequested image number not foundOF / read error on extention function codecouldn't read left/top/width/heighterror reading local colormapPlain Text ExtensionApplication ExtensionComment ExtensionGraphic Control ExtensionUNKNOWN (0x%02x)error reading imagecouldn't alloc space for imageGIF87aerror writing output fileMM*II*rcannot open imageCannot access pixel fileimhv2imhdr%-16.16s %3d %5dx%-5d %sȺȺкغHDR$invalid pixel type in image?o@$H<<<DEBUG_ISMnoneISMDEVopened connection on '%s' %d ism_wcspix.e wcspix &wcspix_cmd {%s}quit ism_io: nread=%d pkt=%d count=%d n=%d INCOMPLETE '%s' ip=%d len=%d connect %s/tmp/.ISM%d_%dism_io: CONNECT '%s' on socket '%s' Clientism_io: msg '%s' CALLBACK: disconnecting '%s' READY: ready '%s' QUIT: quit '%s' on '%s' SEND: len=%d '%s'->'%.45s' ism_io: Unknown message '%s' ism_parse: ip=%d msg=%d i=%d j=%d inc=%d connectreadysend%swriting %d bytes: '%s' ximtool: can't open ISM socket on %s, errno=%d |ConnectCB for '%s' .... startupcache %s %dwcslist %dcache %s %d %dconnectCB: '%s' DisconnectCB for '%s' .... uncache %dquitshutdownCommandCB.... ism_cmd: %d '%s' setValue { deliver wcspix { %s } }ism_msggterm-irafXgtermOBMDEBUGOBMOBJECTStoplevelServerserverClientclientsend gterm setGterm createObjects*gterm.deiconifyWindow: True *gterm.raiseWindow: True *gterm.warpCursor: True .geometry: 640x480 toplevel Gterm gterm appInitialize%s %s %s {%s.objects: %s%s%s%s%s}; %s; %s %d errorInfoError on line %d in activate: %s %s: %s Error in message to %s, line %d: %s send: could not find object cannot access file %s ambiguous object name: %s obm: object %s has unknown class %s obm: could not create object %s class %s obm: object %s has unknown parent %s gcmdgkeyliteralsetValuegetValueaddCallbackdeleteCallbacknotifyinvalid commandevaluation error} { errorInfoError on line %d in %s: %s reset-serveractivatedeactivatesynchronizeflushpostActivateCallbackpostDeactivateCallbackappInitializeappExtendcreateObjectsdestroyObjectqueryObjectsendprintgetResourcegetResourcespostTimedCallbackdeleteTimedCallbackpostWorkProcdeleteWorkProccreateBitmapcreatePixmapcreateXPixmapcreateCursorcreateMenueditMenudestroyMenuServergterm-irafXgtermappInitialize: Can't open display.TopLevelShelltopleveloverwriteobjectsObjectsShell10unmap%s missing resource-list argumentcould not parse resource list%d in resource listbad item Warning (getResources): cannot set value of %s 0x%lx errorInfoError on line %d in %s: %s doneobm: cannot find parent widget %s for menu %s obm: error parsing menu for %s obm: error parsing menu item %d of %s f.f.execf.linef.dbllinef.menuf.spacef.titleobm: bad menu item type `%s' backgroundforegroundbitmapjustifyleftcenterrightsensitivemenu %s.%d sensitive option: %s acceleratorobm: bad menu item parameter `%s' SimpleMenuitem%dSmeBSBline%dSmeLinemenu%dSmeobm: menu title must be first item in menu obm: unknown menu item type %s[%d] leftBitmaprightBitmaprightMargin%s: notify()!0"p"##$Error %s.%s line %d: %s 0x00, 0x00, 0x30, 0x00, 0xf0, 0x00, 0xf0, 0x03, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x03, 0xf0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x000x00, 0x00, 0x30, 0x00, 0xd0, 0x00, 0x10, 0x03, 0x10, 0x0c, 0x10, 0x0c, 0x10, 0x03, 0xd0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00*%syxorFillColorxorFillBgColorxorFillxWrapModewrapwmTimeoutwindowGroupwinGravitywidthIncwidthwarpCursorwaitforwmvunitvisualvisitedAnchorUnderlinesvisitedAnchorColorviewverticalSpacingverticalScrollOnRightverticalScrollBarverticalListverticalGripCursorverticalBetweenCursorverticalvertSpacevertDistancevaluevSpaceuserDatauseTimersuseStringInPlaceuseRightuseBottomupperCursorupdateunrealizeCallbackAsciiTypetypetreeParentGCtreeGCtraversalOntranslationstransientFortransienttopWidgettopShadowStippletopShadowContasttopShadowColortopOfThumbtopMargintoptitleTexttitleEncodingtitlethumbProcthumbPixmapthumbFrameWidththumbFrameTypethumbColorthumbthicknesstextSourcetextSinktexttablisttabLeftBitmaptabLabeltabForegroundsubmitFormCallbackstringstoreByRowstopCallbackstipplestatestartCallbacksliderYsliderXsliderWidthsliderHeightskipAdjustshrinkToFitshownshowGripShapeStyleshapeStyleshadowThicknessShadowSchemeshadowSchemeshadowColorshadowshadeSurplussensitiveArraysensitiveSelectionTypeselectionStyleLongselectionselectInsensitiveselectTypesscrollbarForegroundscrollVerticalscrollVCursorscrollUCursorXTCallbackProcscrollResponsescrollRCursorscrollProcscrollLCursorScrollModescrollHorizontalscrollHCursorscrollDCursorscrollCallbackscreensaveUnderrvStartrvLengthrubberBandrowsrowSpacingrowHeightrightMarginrightCursorrightBitmaprightresolveImageFunctionresolveDelayedImageresizeToPreferredResizeModeresizeresizablereportCallbackrepeatDelayrel_yrel_xrel_widthrel_heightrefigureModeraiseWindowradioGroupradioDatapreviouslyVisitedTestFunctionpreferredPaneSizepositionpopupOnEntrypopupCallbackpopdownCallbackpointerMotionCallbackpointerColorBackgroundpointerColorplainitalicFontplainboldFontplainFontpieceSizepickToppercentVerticalSpacepasteBufferpathCallbackoverrideRedirectouterOffsetorientationonIcononCallbackonoffIconoffCallbacknumberStringsnumChildrennextTopnearVertexnearEdgeminsizeminimumThumbminimumDelayminWidthminScaleminHeightminAspectYminAspectXminmenuOnScreenmenuNamemaxWidthmaxSelectablemaxRastersmaxMappingsmaxHeightmaxColorsmaxAspectYmaxAspectXmaxmarkerTranslationsmarkerTextStringmarkerTextLineColormarkerTextFontmarkerTextColormarkerTextBordermarkerTextBgColormarkerRectLineColormarkerRectKnotSizemarkerRectKnotColormarkerPgonLineColormarkerPgonKnotSizemarkerPgonKnotColormarkerLineWidthmarkerLineStylemarkerLineLineColormarkerLineKnotSizemarkerLineKnotColormarkerHighlightWidthmarkerHighlightColormarkerFillStylemarkerFillColormarkerFillBgColormarkerFillmarkerEllipseLineColormarkerEllipseKnotSizemarkerEllipseKnotColormarkerCursorFgColormarkerCursorBgColormarkerCircleLineColormarkerCircleKnotSizemarkerCircleKnotColormarkerBoxLineColormarkerBoxKnotSizemarkerBoxKnotColormarginWidthmarginHeightmarginmappedWhenManagedlowerCursorlongestlocationlistingFontlistlinkCallbacklineWidthlengthleftMarginleftCursorleftBitmapleftleafCallbackleafOpenPixmapleafPixmapLayoutlayoutlabelslabelClasslabeljustifyjumpScrolljumpProcitalicFontisIndexinternalWidthinternalSpaceinternalHeightinternalBorderWidthinternalBorderColorinsertPositioninsensitiveBorderinputinnerOffsetinsensitiveContrastinitialStateinitialDelayindentincrementimageBordersIconimageidleCursorFgColoridleCursorBgColoridleCursoriconiciconYiconXiconWindowiconPixmapiconNameEncodingiconNameiconMaskiconhunithorizontalSpacinghorizontalScrollOnTophorizontalScrollBarhorizontalGripCursorhorizontalBetweenCursorhorizDistancehighlightThicknesshighlightPixmaphighlightForegroundhighlightColorhighlightCallbackhighlightBackgroundhighlightheightIncheightheaderTextheader6Font6Fontheader5Font5Fontheader4Font4Fontheader3Font3Fontheader2Font2Fontheader1Font1FonthSpacegripTranslationsgripIndentgripCursorgravityginmodeCursorFgColorginmodeCursorBgColorginmodeCursorginmodeBlinkIntervalgetValuegeometryfromVertfromHorizframeWidthFrameTypeframeTypeforegroundforceColumnsforceBarsfooterTextfontflashfixeditalicFontfixedboldFontfixedFontfancySelectionsencodingeditTypeechodisplayPositiondisplayNonprintingdisplayCaretdirectiondialogFont8dialogFont7dialogFont6dialogFont5dialogFont4dialogFont3dialogFont2dialogFont1dialogFgColordialogBgColordestroyCallbackdepthdelayImageLoadsdeiconifyWindowdefaultScaledefaultMarkerdefaultDistancedefaultColumnsdecaydebugdataCompressiondashedVisitedAnchorUnderlinesdashedAnchorUnderlinescursorNamecursorcrosshairCursorColorcreatePopupChildProccornerRoundPercentcopyOnResizecolumnscolumnWidthcolumnSpacingcolormapcolor9color8color7color6color5color4color3color2color1color0cmapUpdatecmapShadowcmapNamecmapInterpolatecmapInitializechildrencanvasWidthcanvasHeightcallbackcacheRastersbusyCursorFgColorbusyCursorBgColorbusyCursorbranchCallbackbranchOpenPixmapbranchPixmapbottomShadowStipplebottomShadowContastbottomShadowColorbottomMarginEdgeTypebottomborderWidthborderPixmapborderColorboldFontbitmapbetweenCursorbaseWidthbasePixelbaseHeightBackingStorebackingStorebackgroundStipplebackgroundPixmapbackgroundautoReconfigureautoFillarrowShadowargvargcanchorUnderlinesanchorColoranchorCallbackancestorSensitivealphaFont8alphaFont7alphaFont6alphaFont5alphaFont4alphaFont3alphaFont2alphaFont1allowVertallowShellResizeallowResizeallowOffallowHorizAlignmentalignmentaddressFontactiveAnchorFGactiveAnchorBGactivateCallbackactivateacceleratorsabs_yabs_xabs_widthabs_heightstopstartreportpopdownpopupscrolljumplinemodecharmodeCHARSET_ENCODINGCHARSET_REGISTRYAVERAGE_WIDTHSPACINGRESOLUTION_YRESOLUTION_XPOINT_SIZEPIXEL_SIZEADD_STYLE_NAMESETWIDTH_NAMESLANTWEIGHT_NAMEFAMILY_NAMEFOUNDRYdo_textcallWidgetaddCallbackdeleteCallbackaddEventHandlerremoveEventHandlersetgetappendsetListgetItemunhighlightgetThumbmoveThumbresizeThumbsetScrollbarsetTopsetListTreerealizeunrealizeisRealizedmapunmapmanageunmanagepopupSpringLoadedsetSensitiveisSensitivemoveconfigureparseGeometrygetGeometrysetTTNamegetTTNametoplevelevaluation errorinvalid commandReturn: do_text(0x%lx, %s) {%s} {%s} %d %d10%s"%s"none{%s} { { %s } }0%o %d %d %d %d %d %d%0.6f%0.5f %0.5f%0.5f%derrorInfoError on line %d in %s: %s $name$time%u $x%d $y$x_root$y_rootError on line %d of %s: %s UUUUUUUXawPositionSimpleMenu%g0x%x-*-*-*-R-*-*-*-120-*-*-*-*-ISO8859-1not a text widgetmissing argumentnot a list widgetEOFnot a dialog widgetnot a slider2d widgetnot a slider2D widgetnot a scrollbar widgetnot a Tabs widgetnot a ListTree widgetmissing list argument'%s' in tree listbad item GrabNoneGrabNonexclusiveGrabExclusivedefault geometry not fully qualifiedno%dx%d-%d+%dtrueTrueTRUEvisibilityChangeMasksubstructureRedirectMasksubstructureNotifyMaskstructureNotifyMaskresizeRedirectMaskpropertyChangeMaskpointerMotionMaskpointerMotionHintMaskownerGrabButtonMasknoEventMaskleaveWindowMaskkeymapStateMaskkeyReleaseMaskkeyPressMaskfocusChangeMaskexposureMaskenterWindowMaskcolormapChangeMaskbuttonReleaseMaskbuttonPressMaskbuttonMotionMaskbutton5MotionMaskbutton4MotionMaskbutton3MotionMaskbutton2MotionMaskbutton1MotionMasknonMaskablevisibilityNotifyunmapNotifyselectionRequestselectionNotifyselectionClearresizeRequestreparentNotifypropertyNotifynoExposemotionNotifymappingNotifymapRequestmapNotifyleaveNotifykeymapNotifykeyReleasekeyPressgravityNotifygraphicsExposefocusOutfocusInexposeenterNotifydestroyNotifycreateNotifyconfigureRequestconfigureNotifycolormapNotifyclientMessagecirculateRequestcirculateNotifybuttonReleasebuttonPress%u %d %d %d %d ??0 0 0 0 0 0 %d %d 0 0 ,,\\HHp̋̋shift lock control mod1 mod2 mod3 mod4 mod5 %s%d*-activateactiveMappingactiveRastersaddCallbackdeleteCallbackassignRasterbellclearScreenclientPixelcopyRastercreateMarkercreateRasterdeactivatedestroyRasterdisableMappingdrawAlphaTextdrawDialogTextdrawMarkerdrawPolygondrawPolylinedrawPolymarkerenableMappingendDialogeraseDialogextractPixmapflipflushfreeColormapfreeMappingraiseMappinglowerMappinggetAlphaTextSizegetBiasgetCursorPosgetDialogTextSizegetLogResgetMappinggetPhysResgetPixelgetRasterinitMappingsinsertPixmaploadColormapmarkerInitnextColormapnextMappingnextRasterqueryRasterrasterInitreadColormapreadPixelsrefreshMappingrefreshPixelsresetselectRastersetColorIndexsetCursorPossetCursorTypesetDataLevelsetFillTypesetGtermsetLineStylesetLineWidthsetLogRessetMappingsetPhysRessetPixelsetPixelssetRastersetTextResstartDialogunmapPixelwriteColormapwritePixels?inputresizekeyPresskeyRelease%d??buttonPressbuttonRelease%d unknown none}{ errorInfoError on line %d in %s: %s idlebusyginModeclientserver10-rlenumerichex1hex2hexF{%d %d %d} refresherase%gFMarkerpixelPixelPIXELndcNDCsetclearinvertsoliddasheddotteddashDotdash3Dotoutlinebackgroundforegroundblackwhiteredgreenbluecyanmagentayellowuser1user2F@FmakeCopyaddCallbackdeleteCallbackcallbackProcnotifydestroymarkposredrawraiselowermoveresizerotatesetgetsetAttributegetAttributesetAttributesgetAttributessetVerticesgetVerticesgetRegiongetRectmarkercreateModeinteractivevisibletypeinvalid commandevaluation errorMarker{} %s %s %s %s0 0 0 0}{moveResizeunknownmodifykeyPress keyRelease ??buttonPress buttonRelease %d unknown noneinputfocusInfocusOut{%s %s %s}constrainterrorInfoError on line %d in %s: %s erasenoerasenomarkposxywidthheightrotangle{%d %d} unmaptext%s %d %0.5f %0.5f %0.5f %0.5f%s %d %0.2f %0.2f %0.2f %0.2flinepolyline%s %d %d rectangle%s %d %0.5f %0.5f %0.5f %0.5f %0.5f%s %d %0.2f %0.2f %0.2f %0.2f %0.4fboxcircle%s %d %0.5f %0.5f %0.5f%s %d %0.2f %0.2f %0.2fellipsepolygon{%0.5f %0.5f} {%0.2f %0.2f} ?@D\tboundaryboundingBox%daddCallbackdeleteCallbacksetTextgetTextpositionToIdidToPositionanchorToPositionanchorToIdgotoIdgetHRefsgetImageSrcsgetLinksretestAnchorssetSelectiongetSelectionclearSelectionsearchTextpreviouslyVisitedTestFunctionpointerMotionCallbackanchorCallbacklinkCallbacksubmitFormCallbackpreviouslyVisitedTestDatapointerMotionDatasimpletimesprettypostscripthelveticaschoolbooklucida%d01backwardcaseless{%d %d}anchornone??Button%dunknown} { { errorInfoError on line %d in %s: %s testAnchorpointerMotionsubmitFormlink'''''%dx%d-%d+%d<*H*<*<*H*H*<*H*<*\*x*\*x*x*\*\*x*\*timetellsourceseekreadpwdputspidopenglobgetsflushfileexitexeceofclosecdwhileupvaruplevelunsettraceswitchstringsplitsetscanreturnrenameregsubregexpproclsortlsearchlreplacelrangellengthlistlinsertlindexlappendjoininfoincrifhistoryglobalformatforeachforexprevalerrorcontinueconcatcatchcasebreakarrayappend%gtcl_precisiontoo many nested calls to Tcl_Eval (infinite loop?)...unknown"invalid command name: "invoked "break" outside of a loopinvoked "continue" outside of a loopcommand returned bad code: %d ... while executing "%.*s%s" invoked from within "%.*s%s"errorInfoNONEerrorCode"wrong # args: should be " string ?in? patList body ... ?default body?"inextra case pattern with no bodydefault ("%.50s" arm line %d) command ?varName?"couldn't save command result in variable%d message ?errorInfo? ?errorCode?"errorCode arg ?arg ...?" ("eval" body line %d) start test next command" ("for" initial command) ("for" body line %d) ("for" loop-end command) varName list command"couldn't set loop variable ("foreach" body line %d) formatString ?arg arg ...?"format string ended in middle of field specifierbad field specifier "%c"cannot mix "%" and "%n$" conversion specifiers"%n$" argument index out of rangenot enough arguments for all format specifiers,I=<=><>><<-+%/*765UNKNOWNEND)(VALUEroundintdoubleabstanhtansqrtsinhsinpowlog10loghypotfmodfloorexpcoshcosceilatan2atanasinacosinteger value too large to representIOVERFLOWARITHpoorly-formed floating-point value(LL4X(d@| ̗ppȖ|"unmatched parentheses in expression "unknown operator in expressiondivide by zeroDIVZEROcan't have : operator without ? firstsyntax error in expression " as operand of "floating-point valuenon-numeric stringcan't use 444444ĝĝ00Ȟ 0X lȠ$ ԚX%ldexpression didn't have numeric valueunknown math function "argument to math function didn't have numeric valuetoo many arguments for math functiontoo few arguments for math functiondomain error: argument not in valid rangeDOMAINfloating-point value too small to representUNDERFLOWfloating-point value too large to representOVERFLOW%derrno = unknown floating-point error, A?A"expected integer but got "expected floating-point number but got "yesnotruefalseonoffexpected boolean value but got ".unmatched open-brace in file name/": couldn't read directory "HOME"variable to expand "couldn't find HOME environment " doesn't existuser " ?switches? name ?name ...?"wrong # args: should be "-nocomplain--": must be -nocomplain or --bad switch "// "s "no files matched glob pattern malformed bucket chain in Tcl_DeleteHashEntry%d entries in table, %d buckets number of buckets with %d entries: %d number of buckets with %d or more entries: %d average search distance for entry: %.1f?called Tcl_FindHashEntry on deleted tablecalled Tcl_CreateHashEntry on deleted tableadd add event ?exec?"wrong # args: should be "exec": should be "exec"bad argument "change change newValue ?event?"event event ?event?"-1info info ?count?"%6d keep keep number""illegal keep count "nextid nextid"%dredo redo ?event?"substitute substitute old new ?event?"words words num-num/pat ?event?"redo, substitute, or words": must be add, change, event, info, keep, nextid, bad option "Assertion failed! " hasn't occurred yetevent "" is too far in the pastno event matches "" doesn't appear in event" specified non-existent wordsword selector "": should be num-num or patternbad word selector "missing %cmissing close-bracemissing close-bracketextra characters after close-quoteextra characters after close-bracemissing close-brace for variable name$ (parsing index for array "%.*s") name args body"wrong # args: should be ""too many fields in argument specifier "" has argument with no nameprocedure "bad level " ?level? command ?arg ...?" ("uplevel" body line %d)args" to "no value given for parameter "" with too many argumentscalled "NONEerrorCodeerrorInfo (procedure "%.50s" line %d)invoked "break" outside of a loopinvoked "continue" outside of a loop dirName"wrong # args: should be "~": couldn't change working directory to " fileId" error closing "10-keepnewline--": must be -keepnewline or --bad switch " ?switches? arg ?arg ...?"%derror reading from output pipe: ?returnCode?" option name ?arg ...?"dirname name" ./rootnameextensiontailreadablewritableexecutableexistsatime%ldisdirectoryisfilelstat lstat name varName"couldn't lstat "mtimeownedreadlinkcouldn't readlink "sizestat stat name varName"couldn't stat "typeor writableroot, size, stat, tail, type, readable, readlink, extension, isdirectory, isfile, lstat, mtime, owned, ": should be atime, dirname, executable, exists, bad option "devinomodenlinkuidgidctimefiledirectorycharacterSpecialblockSpecialfifolinksocketunknownerror flushing " fileId ?varName?"error reading " filename ?access? ?permissions?"rcouldn't open " standard output was redirectedcan't read output from command: standard input was redirectedcan't write input to command:w"illegal access mode " while processing open access modes "RDONLYWRONLYRDWRAPPENDCREATEXCLNOCTTYNONBLOCKTRUNC EXCL, NOCTTY, NONBLOCK, or TRUNC": must be RDONLY, WRONLY, RDWR, APPEND, CREATinvalid access mode " RDONLY, WRONLY, or RDWRaccess mode must include eitheraa+r+ ?fileId?"-nonewline" ?-nonewline? ?fileId? stringnonewline": should be "nonewline"bad argument "stdouterror writing "working directory name is too longerror getting working directory name: ?-nonewline? fileId" fileId ?numBytes?" or " fileId offset ?origin?"startcurrentend": should be start, current, or endbad origin "error during seek: fileName" command ?count?" ("time" body line %d)%.0f microseconds per iterationerror waiting for process to exit: CHILDSTATUSCHILDKILLEDchild killed: CHILDSUSPchild suspended: child wait status didn't make sense error reading stderr output file: child process exited abnormallyE2BIGEACCESEADDRINUSEEADDRNOTAVAILEAFNOSUPPORTEAGAINEALREADYEBADFEBADRPCEBUSYECHILDECONNABORTEDECONNREFUSEDECONNRESETEDEADLKEDESTADDRREQEDOMEDQUOTEEXISTEFAULTEFBIGEHOSTDOWNEHOSTUNREACHEIDRMEINPROGRESSEINTREINVALEIOEISCONNEISDIRELOOPEMFILEEMLINKEMSGSIZEENAMETOOLONGENETDOWNENETRESETENETUNREACHENFILEENOBUFSENODEVENOENTENOEXECENOLCKENOMEMENOMSGENOPROTOOPTENOSPCENOSYSENOTBLKENOTCONNENOTDIRENOTEMPTYENOTSOCKENOTTYENXIOEOPNOTSUPPEPERMEPFNOSUPPORTEPIPEEPROCLIMEPROCUNAVAILEPROGMISMATCHEPROGUNAVAILEPROTONOSUPPORTEPROTOTYPEERANGEEREMOTEEROFSERPCMISMATCHESHUTDOWNESOCKTNOSUPPORTESPIPEESRCHESTALEETIMEDOUTETOOMANYREFSETXTBSYEUSERSEXDEVunknown error  ` D \    l   ( $  d     | t P      L X 8    ( T 8 `      @  P   H 0 <       h p H x p           h 0 x @      X    , 4 SIGABRTSIGALRMSIGBUSSIGCHLDSIGCONTSIGEMTSIGFPESIGHUPSIGILLSIGINTSIGIOSIGKILLSIGPIPESIGPROFSIGQUITSIGSEGVSIGSTOPSIGSYSSIGTERMSIGTRAPSIGTSTPSIGTTINSIGTTOUSIGURGSIGUSR1SIGUSR2SIGVTALRMSIGWINCHSIGXCPUSIGXFSZunknown signal  $ `      <  h x H    p      0    T     alarm clockbus errorchild status changedcontinue after stopEMT instructionfloating-point exceptionhangupillegal instructioninterruptinput/output possible on filekill signalwrite on pipe with no readersprofiling alarmquit signalsegmentation violationstopbad argument to system callsoftware termination signaltrace trapstop signal from ttybackground tty readbackground tty writeurgent I/O conditionuser-defined signal 1user-defined signal 2virtual time alarmwindow changedexceeded CPU time limitexceeded file size limitT l  `   < H            0 $   x       (   ": couldn't read file "couldn't stat file "error in reading file "error closing file " (file "%.150s" line %d)illegal use of | or |& in command" as last word in commandcan't specify "didn't specify command to executecouldn't create input file for command: couldn't write file input for command: couldn't reset or remove input file for command: couldn't create input pipe for command: couldn't create output pipe: couldn't create error file for command: couldn't remove error file for command: couldn't create pipe: forked process couldn't set up input/output couldn't find "%.150s" to execute couldn't fork child process: file "writereadcouldn't POSIXstdinstdoutstderrfile%dinouterr"bad file identifier "" isn't openfile "" wasn't opened for writing" wasn't opened for readinglist element in braces followed by "%.*s" instead of spaceinstead of spacelist element in quotes followed by "%.*s" %sunmatched open brace in listunmatched open quote in listinternal error in Tcl_SplitList6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 errorCodeend": must be integer or "end"bad index "couldn't compile regular expression pattern: error while matching regular expression: { {}%g%dimproper value for precision%%.%dgno such variablevariable is arrayvariable isn't arrayno such element in arrayupvar refers to element in deleted arrayreadsetunsettrace varName ?newValue?"wrong # args: should be " varName ?varName ...?" varName value ?value ...?" option arrayName ?arg ...?"" isn't an array"anymore anymore arrayName searchId"01donesearch donesearch arrayName searchId"names names arrayName"nextelement nextelement arrayName searchId"size size arrayName"%dstartsearch startsearch arrayName"s-1--s-size, or startsearch": should be anymore, donesearch, names, nextelement, bad option "access" already existsvariable " ?level? otherVar localVar ?otherVar localVar ...?"illegal search identifier "" isn't for variable "search identifier "couldn't find search " "can't )(": stop_timeractivate_and_start_timerRepeatDelayrepeatDelayInitialDelayinitialDelayArrowShadowarrowShadowXtDefaultBackgroundAlignmentDirectiondirectionArrowThe Arrow activate action isn't bound to a BtnDown eventdirection of Arrow widget incorrect; set to `top'((XfwfArrowWidget)self)->xfwfArrow.direction == XfwfTop || ((XfwfArrowWidget)self)->xfwfArrow.direction == XfwfLeft || ((XfwfArrowWidget)self)->xfwfArrow.direction == XfwfRight || ((XfwfArrowWidget)self)->xfwfArrow.direction == XfwfBottomArrow.cQ?(\?%d+%f %d+%f %d+%f %d+%fLocationlocationVunitvunitHunithunitRel_heightrel_heightAbs_heightabs_height1.0Rel_widthrel_widthAbs_widthabs_widthRel_yrel_yAbs_yabs_y0.0Rel_xrel_xAbs_xabs_xBoardactivateTraversalOntraversalOnFrameWidthframeWidthActivateTextButtonset_shadowBottomShadowStipplebottomShadowStippleTopShadowStippletopShadowStippleBottomShadowColorbottomShadowColorTopShadowColortopShadowColorShadowSchemeshadowSchemeInnerOffsetinnerOffsetOuterOffsetouterOffsetFrameWidthframeWidthFrameTypeframeTypecursorFrameraisedsunkenchiseledledgedUnknown frame type in set_shadow actionString to frame type conversion needs no argumentsXtToolkitErrorwrongParameterscvtStringToFrameTypeFframe type to String conversion needs no argumentscvtFrameTypeToStringIllegal FrameTypeString to shadow scheme conversion needs no argumentscvtStringToShadowSchemeautocolorstippleShadow scheme to String conversion needs no argumentscvtShadowSchemeToStringIllegal ShadowSchemeonString to SelectionType conversion needs no argumentsXtToolkitErrorwrongParameterscvtStringToSelectionTypenononesingleonemultimultipleSelectionTypeString to SelectionStyle conversion needs no argumentscvtStringToSelectionStyleInnerOffsetinnerOffsetFrameTypeframeTypeActivateactivateLongSelectionStyleselectionStyleXtDefaultForegroundXtDefaultFontGroupIllegal combination of selectionStyle and selection resourcesonCallbackoffCallbackmarkerPgonKnotSizemarkerPgonKnotColormarkerPgonLineColormarkerEllipseKnotSizemarkerEllipseKnotColormarkerEllipseLineColormarkerCircleKnotSizemarkerCircleKnotColormarkerCircleLineColormarkerBoxKnotSizemarkerBoxKnotColormarkerBoxLineColormarkerRectKnotSizemarkerRectKnotColormarkerRectLineColormarkerTextStringmarkerTextFontmarkerTextBordermarkerTextBgColormarkerTextColormarkerTextLineColormarkerLineKnotSizemarkerLineKnotColormarkerLineLineColormarkerCursorBgColormarkerCursorFgColormarkerHighlightColormarkerHighlightWidthxorFillBgColorxorFillColorxorFillmarkerFillStylemarkerFillBgColorSlateGraymarkerFillColormarkerFillmarkerLineStylemarkerLineWidthnearVertexnearEdgerectangledefaultMarkermarkerTranslationsmaxColorsmaxMappingsmaxRasterswhenNeededcacheRasterscmapInterpolatecmapShadowcmapUpdatebasePixelcmapInitializedefaultcmapNamecopyOnResizedarkslategraycolor9purplecolor8magentacolor7color6cyancolor5bluecolor4greencolor3color2color1color0useTimersdeiconifyWindowraiseWindowwarpCursorfull_crosshairginmodeCursorwatchbusyCursorplusidleCursorredcrosshairCursorColorIntginmodeBlinkIntervalginmodeCursorFgColorginmodeCursorBgColorbusyCursorFgColorbusyCursorBgColoridleCursorFgColorwhiteidleCursorBgColorblackdialogFgColoryellowdialogBgColordialogFont8dialogFont7dialogFont6dialogFont5dialogFont46x13dialogFont3dialogFont2dialogFont1alphaFont8alphaFont79x15alphaFont68x13alphaFont57x13alphaFont46x10alphaFont35x8alphaFont2nil2alphaFont1m_createresetleave-windowenter-windowtrack-cursorcrosshairgraphics-inputignoreGtermcursoronoffK   ( < ?     alwaysnever?-C6? A?F-C6?@@Widget 0x%x (%s) %dx%d raster=%d -------------------------------------------------------------- clientserverraster %4d type=%s delete=%d size=%dx%d no rasters mapping %3d %s %8opixndc %2d %s %3d %3d %3d %3d %2d %s %3d %3d %3d %3d no mappings mappings from head: %d mappings from tail: cmapName=%s ncolors=%d basePixel=%d colormap %2d ncells=%d typemarker 0x%x: %10s flags=0x%x [%d %d %d %d] %0.5g GT_%s?L0 x0 0 0 1 \1 1 2 2 (3 X3 3 3 4 ???-C6??F?-C6?r?m_rotateResizem_rotatem_moveResizem_resizem_movem_deleteDestroym_movePtm_deletePtm_addPtm_redrawm_markposAddm_markposm_inputm_notifym_lowerm_raisem_setm_destroyNullm_destroy#augment#override%dautoRedraw9RFߑ? n n n 0o Xo o o o o o q 8q Tq pq q q q q q r Tr $r tr r r r r VbarHbarcannot allocate atom list \ ` h p x    chinternal-%s?%d,%d*useStringInPlaceLeftRightBackSpaceBackspaceDeletedelete-previous-characterdelete-next-characterinsert-stringHREFbaseROLESRCimgPRIMARYCUT_BUFFER0      ( 0 8 No space for return string Cannot allocate space for element buffer Cannot allocate space for copy of text element data hrefanameCannot allocate space for copy of image element data internal-CreateElement: Unknown type %d  \ H x "  SetElement: Error, setting a null element SetElement: Unknown type %d $ % &  ( l* @& %d. SRCimgNAMEISMAPALIGNTOPMIDDLENo memory to expand font stack! SELECTEDoptionVALUEinput type=select options="" returns="" value="" type=textarea value="TYPEimage ISMAPhiddenACTIONformMETHODENCTYPEENCENTITYCOMPACTdlisindexThis is a searchable index. Enter search keywords: input SIZE=25 NAME="isindex"E G PI I  J J  K K L TM \U dV \X \X xY Y  [ [ \ X 4W (] \X \X xM G (H H H (H G G G H H U 0I R $T \_ _ _ N M @Q 0p Dp \p hp tp Pp  o internal-Don't know how to format image for display of depth %d   <  < ԁ < ԁ < < < < < < < D < < < < < < <  ISMAP FormDelayed Imagecannot allocate space for line list cannot extend internal href list cannot extend visited delayed images list yumlthornyacuteuumlucircuacuteugraveoslashoumlotildeocircoacuteograventildeethiumlicirciacuteigraveeumlecirceacuteegraveccedilaeligaringaumlatildeacircaacuteagraveszligTHORNYacuteUumlUcircUacuteUgraveOslash?OumlOtildeOcircOacuteOgraveNtildeETHIumlIcircIacuteIgraveEumlEcircEacuteEgraveCcedilAEligAringAumlAtildeAcircAacuteAgraveQUOTquotAMPampGTgtLTltCannot malloc space for & text Cannot malloc space for text Cannot malloc space for mark_up struct Cannot malloc space for mark error parsing text, bailing out Cannot malloc for mark_up struct error parsing mark, bailing out atitlettbiemstrongcodesampkbdvarcitestrikeh1h2h3h4h5h6addressxmplistingplaintextpulolmenudirlidldtddpreblockquoteisindexhrbasebrimgselectoptioninputtextareaformcan't malloc space for tag value 1bottomMargintopMarginrightMarginleftMargin0numberStringsliststate    ܪ      .x%dyuseStringInPlaceHTML: only a single selection allowed!     ĵ l H   NAMEinputTYPEcheckboxVALUEonCHECKEDhiddenradiosubmitSubmit QueryresetResetbuttonselectHINTmenuSIZEMULTIPLEOPTIONSButton%dScrolldefaultColumnsrowSpacingpasswordMAXLENGTH: HTMLpwdInput()Return: no-op(RingBell)textareaROWSCOLSactivateFrameWidthframeWidthActivateIconImageimageTraversalOntraversalOnRvLengthrvLengthRvStartrvStartShrinkToFitshrinkToFitRightMarginrightMarginLeftMarginleftMarginBottomMarginbottomMarginTopMargintopMarginAlignmentalignmentXtDefaultForegroundXtDefaultFontTablisttablistTextBoxdebugLayoutlayout%g inf%s %dhorizontalverticalUnknown layout direction %d < + - * > size: %d x %d natural: %d x %d %s %s glue variable %s Layout: undefined variable %s Y@  H       ( 4     p z P l z z z ?------------------- %s layout ------------------ activateCallbackhighlightCallbackpathCallbackbranchCallbackleafCallbackleafOpenPixmapleafPixmapbranchOpenPixmapbranchPixmapXtDefaultFontlineWidthverticalSpacinghorizontalSpacing0indent2marginXtDefaultForegroundUnsetExtendSelectNotifyListTreeListTree Widget: Size changed when it shouldn't have when resising.//%s%sTablisttablistrowHeightcolumnWidthTrueshadeSurplusmaxSelectablesensitiveArrayListlistXtDefaultFontNumberStringsnumberStringsLongestlongestverticalListpasteBufferFalseforceColumnsColumnsdefaultColumnsrowSpacingSpacingcolumnSpacingHBackgroundhighlightBackgroundHForegroundhighlightForegroundXtDefaultForegroundleft_ptrcursorXtDefaultBackground0NotifyExtendToggleUnselectSelectMultiListDynamic change to maxSelectable unimplementedcolumnWidth Resource Is Read-OnlyrowHeight Resource Is Read-OnlyMultiList Widget: Unknown geometry return. frameWidthshrinkToFitString to StringArray conversion needs no argumentsXtToolkitErrorwrongParameterscvtStringToStringArrayLabelslabelsRadioGroupStringArrayFrameWidthframeWidthFrameTypeframeTypeShrinkToFitshrinkToFitAlignmentalignmentColumnscolumnsRowsrowsStoreByRowstoreByRowRowColScrollFrameTypeframeTypeFrameWidthframeWidthMinsizeminsizeShadowshadowScrollbarForegroundscrollbarForeground0.05IncrementincrementRepeatDelayrepeatDelayInitialDelayinitialDelayXTCallbackProcScrollResponsescrollResponseScrollCallbackscrollCallbackVerticalverticalScrollbar28H H pH H I dI 8I I I I I I I I outerOffsetdirectionhighlightThicknesstraversalOn_arrow1_arrow2thumbColor_sliderCannot add children to a scrollbar ("%s"->"%s")Cannot change the "vertical" resource of a scrollbar thumbFrameWidtharrowShadowXfwfSetScrollbar called with incorrect widget typeXfwfSetScrollbar called with incorrect argumentsdragfinishstartframeTypeFrameWidthframeWidthXTCallbackProcScrollResponsescrollResponseScrollCallbackscrollCallbackFrameTypeThumbFrameTypethumbFrameTypeThumbFrameWidththumbFrameWidthMinsizeminsizeThumbPixmapthumbPixmapXtDefaultBackgroundThumbColorthumbColorSlider2dThe start action must be bound to a mouse eventThe drag action must be bound to a mouse event?scrollResponse resource may only be queried, not setXfwfGetThumb called with incorrect widget typeXfwfMoveThumb called with incorrect widget typeXfwfMoveThumb called with incorrect argumentsXfwfResizeThumb called with incorrect widget typeXfwfResizeThumb called with incorrect argumentsInsensitiveContrastinsensitiveContrastBottomShadowContrastbottomShadowContrastTopShadowContrasttopShadowContrastBeNiceToColormapbeNiceToColormapTopWidgettopWidgetXtDefaultFontSelectInsensitiveselectInsensitiveResizableresizableXtDefaultForegroundtabForegroundLeftBitmaptabLeftBitmaptabLabelunhighlighthighlightpageselectTabsTabs: page() action called with no argumentsds |s ts ts ts ts ts ts ts ts ts ts ts ts ts s ts \s ts ts ts ts ts ts ts ts ts ts ts ts ts ts ds |s ts ts ts ts ts ts ts ts ts ts ts ts ts s ts \s ,t Dt Pt Pt >66+?Q7>UZ^k!l5IVfL]fbt>d0%&!; 6 12345 @A 8  8<"$$-*+,9>?B       = /      ' $()*+,$$$$$"    0  ()*+,>@-    9            9      syntax erroryacc stack overflow\ p     $  8  |         t  ֕ H d   ̔  , , , , , t  ֕  ̕            !"#$%XYYYYY$YYYYYYJYYY:?:YY(<E72808Y41+%*)#$$ %#YD*FDDDDDDDDDDDDDDDDDDEFEEEEDDDDDEGEEEEEDGEEEEEEEEEEEEEEEEEEEEEEEEEEEEDDD ! /C"0BA@?>=<;:98765/432''1.-,+*)(&%$#DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD F*B*?>=<;:96543210/ .-,EEGG+)(%$#"!DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDignoring %c fatal flex scanner internal error--no action foundĘ ܘ      $ 0 < P p     Й     , 8 D    d    fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflowflex scanner push-back overflowout of dynamic memory in LayYY_create_buffer()out of dynamic memory in LayYY_scan_buffer()out of dynamic memory in LayYY_scan_bytes()bad buffer in LayYY_scan_bytes()%s scrollResponsescrollCallbackNotifyMoveDragZoomStretchUpDownLeftRightPageUpPageDownPageLeftPageRightZoomInZoomOutTopBottomLeftSideRightSideZoomInFullZoomOutFullNULL argumentregexp too bigout of spacetoo many ()unmatched ()junk on end*+ operand could be emptynested *?+invalid [] rangeunmatched []internal urp?+* follows nothingtrailing \^$.[()|?+*\internal disasterNULL parametercorrupted programmemory corruptioncorrupted pointersܷ е   d      p p          Ķ Ķ Ķ Ķ Ķ Ķ Ķ Ķ Ķ           internal fouluptraverseCurrenttraverseHometraverseNextToptraversePrevtraverseNexttraverseRighttraverseLefttraverseUptraverseDownfocusOutfocusInString to Alignment conversion needs no argumentsXtToolkitErrorwrongParameterscvtStringToAlignmenttopbottomcenterleftrightAlignmentAlignment to String conversion needs no argumentscvtAlignmentToStringbottom leftbottom righttop lefttop rightunknown<     Ľ   t T  |    ȿ ȿ l UserDatauserDataNextTopnextTopHighlightPixmaphighlightPixmapXtDefaultForegroundHighlightColorhighlightColorHighlightThicknesshighlightThicknessTraversalOntraversalOnXfwfCommonfocusIn action may only be bound to FocusIn eventsfocusOut action may only be bound to FocusOut eventsIconL l  T   D gray75@??DrawingAreaffffff9@@BPSprintf malloc failed %s %2s %d SF showpage restore %%%%Page: %d %d save NP [RF BF IF FF FB FI] {reencodeISO D} forall] D/yacute/thorn/ydieresis/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/guillemotright/onequarter/onehalf/threequarters/questiondown/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/parenleft/parenright/asterisk/plus/comma/minus/period/slash/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/ISOLatin1Encoding [} Dcurrentdict end definefont/Encoding ISOLatin1Encoding D{ 1 index /FID ne { def }{ pop pop } ifelse } foralldup dup findfont dup length dict begin/reencodeISO {NewCenturySchlbk-ItalicNewCenturySchlbk-BoldNewCenturySchlbk-RomanHelvetica-ObliqueHelvetica-BoldHelveticaTimes-ItalicTimes-BoldTimes-Roman/FI {/Courier-Oblique } D/FB {/Courier-Bold } D/FF {/Courier } D/SF {E findfont E scalefont setfont } D/HR {/l E D gsave l 0 RL stroke grestore } D/NP {xmargin topmargin translate scalfac dup scale } D newpath r 0 360 arc closepath stroke grestore } D/OB {/r E D gsave -13 0 R currentpoint newpath r 0 360 arc closepath fill grestore } D/B {/r E D gsave -13 0 R currentpoint dup stringwidth rlineto stroke grestore S } D 0 E currentfont /FontMatrix get dtransform E pop add newpath moveto/U {gsave currentpoint currentfont /FontInfo get /UnderlinePosition get/SQ {newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath} D/RL {rlineto} D/L {lineto} D/R {rmoveto} D/S {show} D/M {moveto} D/D {def} def /E {exch} Dsave%%EndComments%%Pages: (atend)%%Creator: NCSA Mosaic, Postscript by Ameet Raval & Frans van Hoesel%%!PS-Adobe-1.0 %%%%Title: %s %%%%DocumentFonts: %s %s %s Courier Courier-Bold Courier-Oblique /RF {/%s} D /BF {/%s} D /IF {/%s} D /xmargin %d D /topmargin %d D /scalfac %.5f D %%%%EndProlog %%%%Trailer restore %%%%Pages: %d (%s)%c PStext malloc failed %f B %f OB @@%d HR %d %d M 0 %d R } ifelse } bind def image {colortogray} mergeprocs pop pop /colorimage { % def dup 4 2 roll putinterval 3 -1 roll 0 exch putinterval 3 -1 roll add array cvx dup 3 -1 roll dup length dup 5 1 roll dup length /mergeprocs { % def } bind def grays } for /rgbindx rgbindx 3 add store put add add 64 idiv % I = .5G + .31R + .18B rgbdata rgbindx 2 add get 12 mul % Blue rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx get 20 mul % Red grays exch 0 1 npixls 1 sub { /grays npixls string store % str to hold the result /rgbindx 0 store /npixls exch store rgbdata length 3 idiv /rgbdata exch store % call input 'rgbdata' /colortogray { % define an RGB->I function { % no: define one { pop } % yes: pop off the 'dict' returned/colorimage where % do we know about 'colorimage'?% via xgrab)% ('colortogray' and 'mergeprocs' come from xwd2ps% define 'colorimage' if it isn't defined/cmap %d string def currentfile cmap readhexstring %02x%02x%02x %02x pop pop { currentfile buffer readhexstring pop pop 0 1 bcount 128 sub { bcount 128 ge /bcount exch 0 get store { currentfile buffer readhexstring pop /block 384 string def /rgbval 3 string def /buffer 1 string def/rlecmapimage {} bind def false 3 colorimage } } ifelse block 0 bcount 1 add 3 mul getinterval 0 1 bcount { block exch 3 mul rgbval putinterval } for /rgbval cmap buffer 0 get 3 mul 3 getinterval store currentfile buffer readhexstring pop pop } block 0 bcount 127 sub 3 mul getinterval block exch 3 mul rgbval putinterval /rgbval cmap buffer 0 get 3 mul 3 getinterval store image block 0 bcount 1 add getinterval 0 1 bcount { block exch rgbval putinterval } for /rgbval cmap buffer 0 get 1 getinterval store block 0 bcount 127 sub getinterval block exch rgbval putinterval /rgbval cmap buffer 0 get 1 getinterval storegsave currentpoint %d sub translate 0 -2 translate %d %d scale SQ fill grestore gsave currentpoint %d sub translate 2 0 translate 0 2 translate %d %d scale 0.9 setgray SQ fill %d 0 R 20 dict begin /pix %d string def %d %d %d [%d 0 0 %d 0 %d] {currentfile pix readhexstring pop} image [%d 0 0 %d 0 %d] rlecmapimage failed to malloc space for rleline end R@D@H  w , w X  oooo@@@ o@@@@@@ o++++#+oo@@@@@ooo......@ ...++###+#.........ooo .......#########oooo oo@##.......oo....####+o@@@ o.......ooooo ooooo++##+#@@ o...oooo ....+++@ ooo ..###@@ ..... ....OO##% ......OO% ...$$$+O% $$$$$$$ ..$$$$$%% ....$$$o@@% .......ooo@@% ..........o#O@% .......$$$.oo#O@% .X....$$$$$ooO#@% ..X....$$$$$oooO#@% ..X.....$$$+o+OO##% ..XX....X$$$+ooO+###% .XX.....X$$$@ooOO##@% .XX.....XX.@.o.O+##@% .XX.$$$$$X.@$$$$$+##% .XX$$$$$$X..$$$$$##@% .X+$$$$$...$$$$$##% ..X+$$$....o$$$O+#% .XX.......oooOO@# ..XXX.....oooOO@# .XXX.....ooo.O+ ..XX......... ......... % s iconGray7 m black c #4b4b4b4b4b4b$ s iconColor1 m black c black# s iconGray5 m black c #7d7d7d7d7d7d@ s iconGray6 m black c #646464646464+ s iconGray2 m white c #c8c8c8c8c8c8O s iconGray4 m white c #969696969696o s iconGray3 m white c #afafafafafafX s iconColor2 m white c white. s iconGray1 m white c #e1e1e1e1e1e1 s none m none c none32 32 10 1 0 0 ....XXXXXXXXXXXXXXXXXXXXXXX.... ............................... ............................. ........................... ......................... ....................... ..................... ................... ................. ............. . s iconColor3 m black c red32 32 3 1 0 0................................ .............................. ....XXXXXXXXXXXXXXXXXXXX.... ....XXXXXXXXXooXXXXXXXXX.... ....XXXXXXXooooXXXXXXX.... ....XXXXXXXooXXXXXXX.... ....XXXXXXXXXXXXXXXX.... ....XXXXXXooXXXXXX.... ....XXXXXooooXXXXX.... ....XXXXooooXXXX.... ....XXXooooXXX.... ....XXooooXX.... ....XooooX.... ....XooX.... ....XXXX.... ....XX.... ........ ...... .... .. o c blackX c gray100. s border m black g gray50 c red s None c None32 32 4 1 ...XXXXXX...XXXXXX... ...XXXXXX.....XXXXXX... ..XXXXXXXX.....XXXXXXXX.. ..XXXXXXXXXX...XXXXXXXXXX.. ..XXXXXXXXXXXXXXXXXXXXXXXXX.. ..XXXXXXXXXX....XXXXXXXXXXX.. .XXXXXXXXXX..XX..XXXXXXXXXXX. ..XXXXXXXXX..XXXXXXXXXXXXXXXX.. ..XXXXXXXXXX...XXXXXXXXXXXXXX.. ..XXXXXXXXXXX...XXXXXXXXXXXXX.. ..XXXXXXXXXXXX....XXXXXXXXXXX.. ..XXXXXXXXXXXXXX...XXXXXXXXXX.. ..XXXXXXXXXXXXXXX...XXXXXXXXX.. ..XXXXXXXXXXXXXXXX..XXXXXXXXX.. .XXXXXXXX...XXXXXX..XXXXXXXX. ..XXXXXX....XXXXXXX..XXXXXX.. ..XXXXX..XXXXXXXXX..XXXXX.. ..XXXX..XXXXXXXXX..XXXX.. ..XXXXX..XXXXXXX..XXXXX.. ...XXXX..XXXXX..XXXX... ...XXXXX.....XXXXX... ...XXXXXXXXXXX... ............... X s background m white g gray75 c green. c black32 32 3 1..XXXXXXXXXoooooooooooXXXXXXXX....XXXXXXXXXXXoooooooXXXXXXXXXX....XXXXXXXXXXXooooooXXXXXXXXXXX....XXXXXXXXXooooooooXXXXXXXXXXX....XXXXXXXXXXXXXXXXXXXXXXXXXXXX....XXXXXXXXXXXXoooooXXXXXXXXXXX....XXXXXXXXXXXXXoooXXXXXXXXXXXX.....XXXXXXXXXXXXXXXXXXXXXXXXXX... ...XXXXXXXXXXXXXXXXXXXXXXXX... ............................ .......................... o s iconColor1 m black c black. c #54547070AAAA32 32 4 1 0 0 .............. ............. XXXXXXXXXXX.. . X s none m none c none. s bottomShadowColor m black c #646464646464 s topShadowColor m white c #c8c8c8c8c8c815 15 3 1 0 0............... ..X s foreground m white c white. s topShadowColor m white c #c8c8c8c8c8c8 s bottomShadowColor m black c #646464646464 XXX XX XX XX XX XX XX XX XX XX XX XX XX . . .. .. .. .. .. .. .. .. .. .. .. .. ... X s bottomShadowColor m black c #64646464646417 17 3 1 0 0 ooo ooXoo ooXXXoo ooXXXXXoo ooXXXXXXXoo ooXXXXXXXXXoo ooXXXXXXXXXXXoo .XXXXXXXXXXXXX. ..XXXXXXXXXXX.. ..XXXXXXXXX.. ..XXXXXXX.. ..XXXXX.. ..XXX.. ..X.. o s topShadowColor m white c #c8c8c8c8c8c817 17 4 1 0 0 .XXXXXXXXXX ..XXXXXXXXX .. XX ..........X ........... ..oooooooXX o s highlightColor m black c blackX s topShadowColor m white c #c8c8c8c8c8c815 15 4 1 0 0 . . XXoXX XXoooXX XXoooooXX XXoooooooXX XXoooooooooXX .ooooooooooo. ..ooooooooo.. ..ooooooo.. ..ooooo.. ..ooo.. ..o.. .XXXXXXXXXXXX ..XXXXXXXXXXX .. XX ............X ............. ..oooooooooXX XXoooooooooooXX .ooooooooooooo. ..ooooooooooo.. filleddiamondemptydiamondfilledsquareemptysquarediamond0sdiamond1ssquare0ssquare1sdiamond0mdiamond1msquare0msquare1mQUESTIONFATALERRORWARNINGINFOnoneFailed to create icon "%s"XtToolkitErrorfileErrorcvtStringToIconCould not get (all) colors for image "%s"allocColort @ @ @  t Failed to create an iconCould not get (all) colors for some icon    5  String to Icon conversion needs one argument: a widgetwrongParametersrwXpmColorErrorXpmSuccessXpmOpenFailedXpmFileInvalidXpmNoMemoryXpmColorFailedInvalid XpmError      %d %d %d %d %d %d XPMEXT %s %sXPMEXT %sXPMENDEXT$XpmVersion: 3.3 $$Id: xpm.shar,v 3.19 1993/12/22 13:27:07 lehors Exp $.Zuncompress -c %sr.gzgunzip -qc %sgunzip -c %scompress > %swgzip -q > %s)) '( (setq ;Lisp}; [] = { static char *, *//*C !#define_formatXPMXPM2None@ `P0pH(hX8xD$dT4t L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ? .XoO+@#$%&*=-;:>,<1234567890qwertyuipasdfghjklzxcvbnmMNBVCZASDFGHJKLPIUYTREWQ!~^/()_`'][{}|NoneB#%04X%04X%04XB????cgg4msXPMEXT#define_width_height_ncolors_chars_per_pixel XPMENDEXTr%d %d %d %[^ ] TexttextSourcetextSinkBoxShadowWidthshadowWidthCornerRoundPercentcornerRoundPercentShapeStyleshapeStylehighlightThicknessunhighlightunsetresethighlightnotifysetCommandToo many parameters passed to highlight action table.IconiconDialogleftrightfromHorizlabelresizablefromVertvaluedefaultDistanceresizablefromVertvertDistanceWidgetfromHorizhorizDistancerightleftbottomEdgeTypeEdgeFormedgeTypechainleftchainrightchaintopchainbottomrubberconstraint loop detected while laying out child '%s' in FormWidget '%s'XawToolkitErrorxawFormLayoutconstraintLoopXtDefaultForegroundGripActionGripShadowWidthshadowWidthLeftBitmapleftBitmapEncodingencodingXtDefaultFontXtDefaultForegroundLabelrowSpacingSpacingcolumnSpacingverticalListforceColumnspasteBufferNumberStringsnumberStringsLongestlongestColumnsdefaultColumnsListlistXtDefaultFontleft_ptrcursorXtDefaultForegroundUnsetSetNotifywhen computing layoutSize Changed when it shouldn't haveList Widget: %s %sList Widget: Unknown geometry return.List Widget: Size changed when it shouldn't have when resising.menuMenuNamemenuNamePopupMenuMenuButtonCould not find menu widget namedMenuButton: %s %s.sb_right_arrowrightCursorleftCursorsb_down_arrowlowerCursorupperCursorsb_up_arrowhorizontalBetweenCursorsb_left_arrowverticalBetweenCursorbetweenCursorsb_h_double_arrowhorizontalGripCursorsb_v_double_arrowverticalGripCursorgripCursorcursorgripTranslationsrefigureModeGripIndentgripIndentinternalBorderWidthXtDefaultForegroundinternalBorderColorShowGripshowGripskipAdjustresizeToPreferredPreferredPaneSizepreferredPaneSizeMaxmaxMinminpositionallowResizePaned4 4 4 4 4 Paned GripAction has been passed incorrect parameters.Paned GripAction(); 1st parameter invalidgripsetnotifypagemoveabortstopstartBackgroundStipplebackgroundStippleShadowThicknessshadowThicknessXtDefaultForegroundShadowColorshadowColorSliderHeightsliderHeightSliderWidthsliderWidthSliderYsliderYSliderXsliderXCanvasHeightcanvasHeightCanvasWidthcanvasWidthLineWidthlineWidthInternalSpaceinternalSpaceXtDefaultBackgroundRubberBandrubberBandDefaultScaledefaultScalereportCallbackAllowOffallowOffPanner?x x x x x x x ?rubberbandonofftogglereportCallbackPortholestopstartStopCallbackstopCallbackStartCallbackstartCallbackflashrepeatDelayMinimumDelayminimumDelayDelayinitialDelayDecaydecayRepeaterMinimumThumbminimumThumbPickToppickTopTopOfThumbtopOfThumbShownXtDefaultForegroundEndScrollNotifyScrollNotifyThumbMoveThumbHandleThumbScrollbarʡE?Scrollbar Widget: Could not get geometry of thumb pixmap.crosshaircursorName              -C6?cursorNameXtDefaultBackgroundpointerColorBackgroundXtDefaultForegroundpointerColorInsensitiveinsensitiveBordercursorSimpleColorCursor%s Widget: The Simple Widget class method 'change_sensitive' is undefined. A function must be defined or inherited.Simple: ConvertCursor failed.XawErrorConvertCursorconvertFailedBackingStorebackingStorePopupOnEntrypopupOnEntryMenuOnScreenmenuOnScreencursorbottomMarginVerticalMarginstopMarginRowHeightrowHeightLabelClasslabelClassunhighlighthighlightnotifySimpleMenuNo Dynamic class change of the SimpleMenu Label.parameter which is the name of the menu.Xaw - SimpleMenuWidget: position menu action expects only one%s %sXaw - SimpleMenuWidget: could not find menu named: %s '%s'  < < < no label is being created.label already existslabel string is NULLXaw Simple Menu Widget: %s or %s, %smenuLabelXawPositionSimpleMenuCould not find location of mouse pointerXaw - SimpleMenuWidget:Unknown event type in GetEventEntry().SmeXtDefaultFontXtDefaultForegroundrightMarginHorizontalMarginsleftMarginRightBitmaprightBitmapLeftBitmapleftBitmapVertSpacevertSpaceSmeBSBget Left Bitmap geometry information for menu entry Could notSmeBSB Object: %s %s "%s". is not one bit deep.Left Bitmap of entry SmeBSB Object: %s "%s"%s.get Right Bitmap geometry information for menu entry Right Bitmap of entry XtDefaultForegroundStipplestippleLineWidthlineWidthSmeLineShadowedshadowedBeNiceToColormapbeNiceToColormapUserDatauserDataBottomShadowContrastbottomShadowContrastTopShadowContrasttopShadowContrastBottomShadowPixmapbottomShadowPixmapTopShadowPixmaptopShadowPixmapBottomShadowPixelbottomShadowPixelXtDefaultForegroundTopShadowPixeltopShadowPixelShadowWidthshadowWidthSmeThreeDY@@Y@@JumpScrolljumpScrollgetValueXtDefaultForegroundScaleminScaleStripChartAutoFillautoFillResizeModeWrapModeWrapwrapscrollHorizontalScrollModeScrollscrollVerticalOutputdisplayCaretSelectTypesselectTypesbottomMargintopMarginrightMarginleftMargindisplayPositionxtermcursorneverwhenneededalwayslinewordwidthheightbothFMT8BITvScrollbarhScrollbarVertical scrolling has been DEACTIVATED.Vertical scrolling not allowed with height resize. Text Widget (%s): %s %s.Horizontal scrolling has been DEACTIVATED.Horizontal scrolling not allowed with wrapping active. Horizontal scrolling not allowed with width resize. Text Widget: empty selection array.dSpSS8TS`TRWRWlV WlVLWnonePRIMARYempty copy queue TextXtDefaultBackgroundXtDefaultForegroundXtDefaultFontTextSinkFIGURE_WIDTHreadTextSrcTextSrc Object: No read function is defined.TextSrc Object: No SCAN function is defined.tststststststssssssssXu\udulutu|uuu alwaysThe multiply action takes exactly one argument.must be a number greater than zero, or 'Reset'.Text Widget: The multiply action's argument%s %s PopdownSearchActionSetFieldDoReplaceActionDoSearchActionInsertFileActionno-optranspose-charactersform-paragraphmultiplydisplay-caretfocus-outfocus-ininsert-stringinsert-charsearchinsert-fileredraw-displayinsert-selectionextend-endextend-adjustextend-startselect-saveselect-endselect-adjustselect-startselect-allselect-wordnewlinenewline-and-backupnewline-and-indentkill-to-end-of-paragraphkill-to-end-of-linekill-selectionbackward-kill-wordkill-worddelete-selectiondelete-previous-worddelete-next-worddelete-previous-characterdelete-next-characterscroll-one-line-downscroll-one-line-upend-of-filebeginning-of-fileprevious-pagenext-pageprevious-linenext-lineend-of-linebeginning-of-linebackward-paragraphforward-paragraphbackward-wordforward-wordbackward-characterforward-characterinsertFileEnter Filename:labeltextform%s.%s*** Error: Could not get text widget from file insert popupCan't open file*** Error: %s ***leftrightresizablefromVertInsert FileinsertCancelfromHorizcancelReturn: InsertFileAction()Use ^q for .Use to change fields.one or two parametersThis action must have onlyText Widget - Search():%s %s %sEither 'backward' or 'forward'The first parameter must besearchstatelabel1label2BackwardradioDatabackwardsForwardradioGroupforwardsSearch for: searchLabelsearchTextReplace with:replaceLabelreplaceTextSearchReplacereplaceOneReplace AllreplaceAllCould not find string '%s'.'. ****** Error: Could not find string '%s %s %sSelection has been modified, aborting.'%s' with '%s'. ****** Error while replacingexactly one argument. ****** Error: SetField Action must havebe either 'Search' or 'Replace'. ****** Error: SetField Action's first Argument mustWM_DELETE_WINDOWWM_PROTOCOLS*%sWM_PROTOCOLS: XawWMProtocols() XawWMProtocolsBeNiceToColormapbeNiceToColormapUserDatauserDataBottomShadowContrastbottomShadowContrastTopShadowContrasttopShadowContrastBottomShadowPixmapbottomShadowPixmapTopShadowPixmaptopShadowPixmapBottomShadowPixelbottomShadowPixelXtDefaultForegroundTopShadowPixeltopShadowPixelShadowWidthshadowWidthThreeDY@@Y@@RadioDataradioDataWidgetradioGroupoffStatestatesetnotifytoggleToggleunsetAborting, due to errors resolving bindings in the Toggle widget.to create a new toggle group, when one already exists.Toggle Widget Error - Attempting%s %sGravitygravityLineWidthlineWidthXtDefaultForegroundAutoReconfigureautoReconfigureGCTreeGCtreeGCTreeParenttreeParentTreerootreportCallbackViewportbottomrightlefthorizontalverticalclipVendorShelldisplayNonprintingOutputechoAsciiSinkUseStringInPlaceuseStringInPlacePieceSizepieceSizeDataCompressiondataCompressionAsciiTypeTypetypeAsciiSrcAsciiSrc: The XtNuseStringInPlace resource may not be changed.Creating a read only disk widget and no file specified.XawErrorasciiSourceCreateNoFilerwr+Bad editMode for ascii source; must be Read, Append or Edit.badModeerrno=%.4dCannot open file %s; %sXawWarningopenErrorfread returned error.readErrorProgrammer Botch in FreeAllPieces, there may be a memory leak. stringfileA0AdA`AdEA2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>2H>>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?>g?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?྾>'?l?????????????????????????????p==H=}==蟠==S=Ǻ==2=h===F=|==s>>>D >}>>>N> >$>(>X,>0>4>(8>û<>@>D>2H>L>hP>T>X>\>r`> d>h>Bl>p>t>x>L|>s>A>>+>>Ɗ>>a>.>>>斖>>>N>>8>>Ӥ>>m>;>>%>>>>[>(>E>>྾>>z>H>e>2>>>>h>5>R>>>>>U>r>?> >>>t>>_>,>>>>b>>L>>s?Z?A?σ????j?Q?7 ?Ɗ ? ? ?z ?a?G?֐????p?W??̗????g?N?ܝ?Þ?? ?w!?^"?#?Ӥ$?%?&?'?m(?)?*?ɫ+?,?-?}.?d/?0?ٱ1?2?3?4?t5?6?7?и8?9?:?;?j?ƿ??@?A?zB? 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?&c? d?e?f?g?h?6i?j?k?l?m?n?o?,p?q?r?s?t?u?û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>û<>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>྾>G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??ƿ??o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?û<>o?྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??྾>ƿ??>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?>?>?>?>?>?>?>?>?>?>?>?>?>?>?>?>?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?>?>?>?>?>?>?>?>?>?>?>?>?>?>?>?>o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?o?ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>ƿ??>Xs;Xs<@<Q<'<<<}=?=' =0=@=hP=`=>p==H=}==蟠==S=Ǻ==2=h===F=|==s>>>D >}>>>N> >$>(>X,>0>4>(8>û<>@>D>2H>L>hP>T>X>\>r`> d>h>Bl>p>t>x>L|>s>A>>+>>Ɗ>>a>.>>>斖>>>N>>8>>Ӥ>>m>;>>%>>>>[>(>E>>྾>>z>H>e>2>>>>h>5>R>>>>>U>r>?> >>>t>>_>,>>>>b>>L>>s?Z?A?σ????j?Q?7 ?Ɗ ? ? ?z ?a?G?֐????p?W??̗????g?N?ܝ?Þ?? ?w!?^"?#?Ӥ$?%?&?'?m(?)?*?ɫ+?,?-?}.?d/?0?ٱ1?2?3?4?t5?6?7?и8?9?:?;?j?ƿ??@?A?zB? 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?&c? d?e?f?g?h?6i?j?k?l?m?n?o?,p?q?r?s?t?u?/\?,>/\?,>/\?4?f?4?f??????4??4??????,>?,>L|?9?L|?9?{?O?{?Y?{?Y?????4??4??????4??4?????,>H??,>H??,>H?? ? ?? ? ??H?,>?H?,>??4???4???D???/\???/\???????????????e???/\???/\???/\?????????????????k?Þ??H?,>?H?,>?H?,>?H?,>?H?,>?H?,>?H?,>?H?,>?H?,>?m(??? ? ?? ? ????????????????????????????????4??4??4??4??4??4??'??????????(>?4??4??4??4??4??4??4??4??4??{??????????????????~?y?{?Y?{?Y?{?Y?{?Y?{?Y?{?Y?{?Y?{?Y?{?Y?L|?F?L|?9?L|?9?L|?9?L|?9?L|?9?L|?9?L|?9?L|?9?L|?9??,>?,>?,>?,>?,>?,>?,>?,>?,>?>??????????_>?4??4??4??4??4??4??4??4??4???????????????????6i? x?4?f?4?f?4?f?4?f?4?f?4?f?4?f?4?f?4?f?Q?_?,>/\?,>/\?,>/\?,>/\?,>/\?,>/\?,>/\?,>/\?,>/\????????????????/\?/\?/\?/\?M?4?4?4?4?4?4?4?4?4?D >@p='<}=<=<=}==?=|=' =>0=}>@=N>hP=(>`=4>>p=@>=L>H=X>}= d>=p>蟠=L|>=>S=Ɗ>Ǻ=.>=斖>2=N>h=>=m>=%>F=>|=E>=>s>e>>>>5>D >>}>U>> >>t>N>,> >>$>L>(>Z?X,>?0>j?4>Ɗ ?(8>z ?û<>֐?@>?D>?2H>?L>N?hP>?T>^"?X>%?\>m(?r`>ɫ+? d>}.?h>ٱ1?Bl>4?p>7?t>:?x>=?L|>@?s> C?A>F?>I?+>L?>O?Ɗ>R?>U?a>X?.>[?>^?>a?斖> d?>g?>j?N>m?>,p?8>s?>y?>L|?m>?;>?>?%>?>?>?>?[>?(>?E>?>?྾>?>?z>?H>?e>?2>?>?>?>?h>?5>?R>?>?>?>?>?U>?r>??>? >?>?>?t>?>?_>?,>?>?>?>?b>?>?L>?>?s??Z??A??σ????????j??Q??7 ??Ɗ ?? ?? ??z ??a??G??֐????????p??W????̗????????g??N??ܝ??Þ???? ??w!??^"??#??Ӥ$??%??&?@<?'?<?m(??=?)?@=?*?>p=?ɫ+?}=?,?=?-?=?}.?=?d/?|=?0?>?ٱ1?}>?2?N>?3?(>?4?4>?t5?@>?6?L>?7?X>?и8? d>?9?p>?:?L|>?;?>?j?=?.>?>?斖>?ƿ??N>?@?>?A?m>?zB?%>? C?>?D?E>?E?>?F?e>?G?>?H?5>?I?>?J?U>?K? >?L?t>?M?,>?N?>?O?L>?P?Z??Q???R?j??S?Ɗ ??T?z ??U?֐??V???W???X???Y?N??Z???[?^"??/\?%??]?m(??^?ɫ+??_?}.??`?ٱ1??a?4??b?7??&c?:?? d?=??e?@??f? C??g?F??h?I??6i?L??j?O??k?R??l?U??m?X??n?[??o?^??,p?a??q? d??r?g??s?j??t?m??u?,p??<û<>>p=L>S=r`>F=t>>>4>a>hP>>Bl>>+>>斖>[>Ӥ>>>>z>R>5>U>r>>,>>>L>j?σ?a?7 ??a?a??j??>ܝ?,>#?r>m(?5>-?z>3?>и8?Ӥ>=?斖> C?+>H?Bl>M?hP>S?4>X?>^?F=&c?S=6i?>p=n?<t?y??X?}>S? >M?X,>H?û<> C?2H>=?X>и8? d>3?p>-?s>m(?+>#?>ܝ?>?>?>a?Ӥ>7 ?;>σ?>L>[>>>>z>U>2>R>>>5>>>[>U>> >>t>>_>a>>>>t>>r`>A?L>?û<>j?(>Ɗ ?>z ?>G?=?=W?=̗?>p=?0=N?<?@<w!?Ӥ$?&?)?ɫ+?}.?0?3?t5?и8?:?=?ƿ??zB?D?F?I?K?N?P?R?U?W?Z?/\?^?a?&c?e?h?j?l?o?q?s?u? x?z?L|??L|?z? x?u?s?q?o?l?j?h?e?&c?a?^?/\?Z?W?U?R?P?N?K?I?F?XsO?(>S?L>W?p>[?>^?N>&c?%>f?>k?5>n? >s?b>#w??L|?G????^"??ɫ+??t5??ƿ???H??R??[??e??n??y????????????????~??z??u?y?q?o?l?e?h?[? d?Q?_?G?[?=?V?3?R?)?M??I?W?D? ?A?A?=?_>9?>t5?2>ٱ1?>}.?>)?>&?t>^"?L> ?X,>ܝ?>g?2=Þ?= ?=#?@=%?<m(?*?-?d/?2?t5?7?:?j>[?D>D>]?Bl>Bl>`?a>a>b?>>e?>>h?>>j?b>b>m?Ɗ ?Ɗ ?o???r?)?)?t?9?9?#w?J?J?y?[?[?L|?m?m????Xs;Xs<@<Q<'<<<}=?=' =0=@=hP=`=>p==H=}==蟠==S=Ǻ==2=h===F=|==s>>>D >}>>>N> >$>(>X,>0>4>(8>û<>@>D>2H>L>hP>T>X>\>r`> d>h>Bl>p>t>x>L|>s>A>>+>>Ɗ>>a>.>>>斖>>>N>>8>>Ӥ>>m>;>>%>>>>[>(>E>>྾>>z>H>e>2>>>>h>5>R>>>>>U>r>?> >>>t>>_>,>>>>b>>L>>s?Z?A?σ????j?Q?7 ?Ɗ ? ? ?z ?a?G?֐????p?W??̗????g?N?ܝ?Þ?? ?w!?^"?#?Ӥ$?%?&?'?m(?)?*?ɫ+?,?-?}.?d/?0?ٱ1?2?3?4?t5?6?7?и8?9?:?;?j?ƿ??@?A?zB? 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?&c? d?e?f?g?h?6i?j?k?l?m?n?o?,p?q?r?s?t?u?Xs@<@<8>Q'<'<8><<8><<8>}=}=8>?=?=8>' =' =8>0=0=8>@=@=8>hP=hP=8>`=`=8>>p=>p=8>==8>H=H=,>}=}=,>==,>蟠=蟠=,>==,>S=S=,>Ǻ=Ǻ=,>==,>2=2=,>h=h=,>==,>==,>F=F=,>|=|=,>==,>s>s>,>>> ?>> ?D >D > ?}>}> ?>> ?>> ?N>N> ? > > ?$>$> ?(>(> ?X,>X,> ?0>0> ?4>4> ?(8>(8> ?û<>û<> ?@>@> ?D>D>H?2H>2H>H?L>L>H?hP>hP>H?T>T>H?X>X>H?\>\>H?r`>r`>H? d> d>H?h>h>H?Bl>Bl>H?p>p>H?t>t>H?x>x>H?L|>L|>H?s>s>H?A>A>,p?>>,p?+>+>,p?>>,p?Ɗ>Ɗ>,p?>>,p?a>a>,p?.>.>,p?>>,p?>>,p?斖>斖>,p?>>,p?>>,p?N>N>,p?>>,p?8>8>,p?>>s?Ӥ>Ӥ>>y?m>m>L|?;>;>?Xs;8>Xs;Xs<8>Xs<@<8>@Q<'<8>'<<8><<8><}=8>}=?=8>?=' =8>' =0=8>0=@=8>@=hP=8>hP=`=8>`=>p=8>>p==8>=H=,>H=}=,>}==,>=蟠=,>蟠==,>=S=,>S=Ǻ=,>Ǻ==,>=2=,>2=h=,>h==,>==,>=F=,>F=|=,>|==,>=s>,>s>> ?>> ?>D > ?D >}> ?}>> ?>> ?>N> ?N> > ? >$> ?$>(> ?(>X,> ?X,>0> ?0>4> ?4>(8> ?(8>û<> ?û<>@> ?@>D>H?D>2H>H?2H>L>H?L>hP>H?hP>T>H?T>X>H?X>\>H?\>r`>H?r`> d>H? d>h>H?h>Bl>H?Bl>p>H?p>t>H?t>x>H?x>L|>H?L|>s>H?s>A>,p?A>>,p?>+>,p?+>>,p?>Ɗ>,p?Ɗ>>,p?>a>,p?a>.>,p?.>>,p?>>,p?>斖>,p?斖>>,p?>>,p?>N>,p?N>>,p?>8>,p?8>>s?>Ӥ>>y?>m>L|?m>;>?;>8>Xs;Xs;8>Xs@<@<8>Q'<'<8><<8><<8>}=}=8>?=?=8>' =' =8>0=0=8>@=@=8>hP=hP=8>`=`=8>>p=>p=8>==,>H=H=,>}=}=,>==,>蟠=蟠=,>==,>S=S=,>Ǻ=Ǻ=,>==,>2=2=,>h=h=,>==,>==,>F=F=,>|=|=,>==,>s>s> ?>> ?>> ?D >D > ?}>}> ?>> ?>> ?N>N> ? > > ?$>$> ?(>(> ?X,>X,> ?0>0> ?4>4> ?(8>(8> ?û<>û<> ?@>@>H?D>D>H?2H>2H>H?L>L>H?hP>hP>H?T>T>H?X>X>H?\>\>H?r`>r`>H? d> d>H?h>h>H?Bl>Bl>H?p>p>H?t>t>H?x>x>H?L|>L|>H?s>s>,p?A>A>,p?>>,p?+>+>,p?>>,p?Ɗ>Ɗ>,p?>>,p?a>a>,p?.>.>,p?>>,p?>>,p?斖>斖>,p?>>,p?>>,p?N>N>,p?>>,p?8>8>r?2>2>u?j?j? x?*?*?{?M?M?3}?L?L????Xs;Xs;;>Xs@<@<>Q'<'<<྾><}=}=e>?=?=>' =' =>0=0=5>@=@=>hP=hP=>`=`=U>>p=>p=?>==>H=H=t>}=}=_>==>蟠=蟠=>==>S=S=>Ǻ=Ǻ=Z?==σ?2=2=?h=h=j?==7 ?== ?F=F=z ?|=|=G?==?s>s>?>>W?>>ޓ?D >D >?}>}>g?>>ܝ?>>?N>N>w!? > >#?$>$>%?(>(>'?X,>X,>)?0>0>ɫ+?4>4>-?(8>(8>d/?û<>û<>ٱ1?@>@>3?D>D>t5?2H>2H>7?L>L>9?hP>hP>;?T>T>=?X>X>ƿ??\>\>A?r`>r`> C? d> d>E?h>h>G?Bl>Bl>I?p>p>K?t>t>M?x>x>O?L|>L|>Q?s>s>S?A>A>U?>>W?+>+>Y?>>[?Ɗ>Ɗ>]?>>_?a>a>a?.>.>&c?>>e?>>g?斖>斖>6i?>>k?>>m?N>N>o?>>q?8>8>s?>>u?Ӥ>Ӥ>#w?>>y?m>m>{?;>;>3}?Xs;;>Xs;Xs<%>Xs<@<>@Q<''<<྾><<}=e>}=?=>?=' =>' =0=5>0=@=>@=hP=>hP=`=U>`=>p=?>>p==>=H=t>H=}=_>}==>=蟠=>蟠==>=S=>S=Ǻ=Z?Ǻ==σ?=2=?2=h=j?h==7 ?== ?=F=z ?F=|=G?|==?=s>?s>>W?>>ޓ?>D >?D >}>g?}>>ܝ?>>?>N>w!?N> >#? >$>%?$>(>'?(>X,>)?X,>0>ɫ+?0>4>-?4>(8>d/?(8>û<>ٱ1?û<>@>3?@>D>t5?D>2H>7?2H>L>9?L>hP>;?hP>T>=?T>X>ƿ??X>\>A?\>r`> C?r`> d>E? d>h>G?h>Bl>I?Bl>p>K?p>t>M?t>x>O?x>L|>Q?L|>s>S?s>A>U?A>>W?>+>Y?+>>[?>Ɗ>]?Ɗ>>_?>a>a?a>.>&c?.>>e?>>g?>斖>6i?斖>>k?>>m?>N>o?N>>q?>8>s?8>>u?>Ӥ>#w?Ӥ>>y?>m>{?m>;>3}?;>;>Xs;Xs;%>Xs@<@<[>Q'<'<྾><<}=}=>?=?=>' =' =5>0=0=>@=@=>hP=hP=U>`=`=?>>p=>p=>==t>H=H=_>}=}=>==>蟠=蟠=>==>S=S=Z?Ǻ=Ǻ=σ?==?2=2=j?h=h=7 ?== ?==z ?F=F=G?|=|=?==?s>s>W?>>ޓ?>>?D >D >g?}>}>ܝ?>>?>>w!?N>N>#? > >%?$>$>'?(>(>)?X,>X,>ɫ+?0>0>-?4>4>d/?(8>(8>ٱ1?û<>û<>3?@>@>t5?D>D>7?2H>2H>9?L>L>;?hP>hP>=?T>T>ƿ??X>X>A?\>\> C?r`>r`>E? d> d>G?h>h>I?Bl>Bl>K?p>p>M?t>t>O?x>x>Q?L|>L|>S?s>s>U?A>A>W?>>Y?+>+>[?>>]?Ɗ>Ɗ>_?>>a?a>a>&c?.>.>e?>>g?>>6i?斖>斖>k?>>m?>>o?N>N>q?>>s?8>8>u?>>#w?Ӥ>Ӥ>y?>>{?m>m>3}?;>;>?>>/////s/A0AdA`AdEA>>>>>>>>>>>>>>>>>>>>>>>qqqaq@q?pp poooYoCo>oon`nnm@mll lkkYok>o`kkj@jikoi iioi?hhh`h hgg`g gff`f fee`e edd`d dc?c@ccbb@bbaa@aa``@``__@__^^@^^]]@]]\\@\\[[@[?[ZoiZ`Z ZY`YYX@XWWo@WVV@Vi?VoU`UUT@TSS SR`RRoQ@Q Q?PP@POO ON`NNMoM ML`LLKKo@KJJ Ji?IIh@IIHH@HHGG@GGFF@FFEEE@EEDED@DEDCE`C CBB`B BAA`AEA@@@@?E`??>`> >==@=E<<`<E<;;@;;E::@::E9`9 988E@8877@7E766 6E55@5E5Zi?44?k4P4433@322@211 1000?@0//i?`//.@.-- -,`,,+@+** *))o)h@)?#)))(Z( (?'o' '&`&&%@%$$o@$## #""??"@"h!!`! !  @  @@`  @@Zio``o@ `Koo@?`@ o ` o`? o `   o@     `   @  o`? o`@o@ ?k4 `l `m@ `A 0?o` ??  ?>o `@` `2,? o@>o `@@ @,?i`@o `@ o`@ `o@ ` o`x??i@o ???i@o o?>o@`@ ,?@ o `??io@ `?k4'`@ `)`*@@ 0?`??io`@ o`@ o`??i`? ``o`@?@@ `@ ` ` `?? @ o`@?o@ `o@o@o@+oIo@??`k4 ` @@`@@`` `6@0?@ ?@`ә?@ `o`hsZ@o o@ `Kof?i@ `@o@ @o `o@ `q?@ `ˁo ` o` ?~~ ~}} }||?@|{{ {z`z.z?zy@y&y??iyx@xww wv`vNv?k4 vu`uutt`ttss`ssr@rqq@q0i?qp@poo on`nnm`m,m?ml@l?lk4kkk`kIkk0?jk4j`jjii`i ihh`h hggg@g0gf@feheZ@eddFddc?ic cb`b b?k4aaa`a aa``^` `___`_0??i _^`^^]`]o]\?k4\\e\ \[[[`[B[[ZZZ`Z+ZZ0??iY`YYX@XWW WV?k4VV VU?UU UTT?JTTS`SBS?*SRR@R#R? RQ`Q Q0?P`PPO@ONN NM`MML`LoLK@KJJ JI`IIHHo@HGG GF??iF@FEE EDDhDZXDi? DC`C CiB?BBBA0AdA`AdEA ñ` S`6vX> SˮtW:ƭlN0جW<a@\A ` ب` `S S` ` S` @SSy]S@ ` ` ` ` S؝` @`S@S` S`@S@S` ` S@@Se@ SlOS4`@ `:!͏@@֎t]C ` `@ @@`@@@ ` ` ` ` ` ` ` ` ~~`~ ~}}`} }||||||@| ||{{@{{zz@zzyy@yyxx@xxww@wwvv@vvuuuu~uluTu uttTut`ttTu tstssussss`s srr`r rqq`q qppp@ppoo@oonnMn nmm`m mll`l lkk`k kjj`j jii`i ihh`h hgg`g gff`f fee`e edd`d dcc`c cbb`b bbaa@aa``@``_ nmm`m mll`l lkk`k kjj`j jii`i ihh`h hgg`g gff`f fee`e e_`_ _^^`^ ^]]`] ]\\`\ \[[`[L[ [ZZZZL[fZ@Z ZYYYcY@YYXXX`X XWWWiW@WWVV`V VUUyU@UyU UyUUyUTyUTyUTyUs`T TSSlS SR`RRQQQ`Q QQPP`P PPOO@OONNNON1NNMMM@MMLLL@LLKKK@KKJJ`J JIIII`I@IIH@HGG GF`FFE@EDD DC`CCB@BAA@AA@@@@@??@?>> >=`==<@<<;@;::@:99 988 877 766 65`554@433`3 322`2 211`110@0// /.`. .-@-,, ,++ +** *)`))(@('' '&&&`&@&$&&%%%`% %%$$`$$#@#"" "!!`! !  `  ` @rbP@ss"` `@s%@%@@  `@`s ss}d}sY@$o\O Ossos@#` `   ` H  s  ` @     @    @    @  @@nZF2 xcsF ` [ [ss`[ [ss`=p[F1@W="kVA,` ` ZdZs@`5@@@@"ss@bOssbf@bs"s}`C&@` ` "fT6$s ssf@ssss` ` J,y]@ u\B ` ` ` ` ` ` `@`@ s@@@@@L[L[s` @@@@s@]B u@ss `$` L[s` ssL[s` ` ` L[`s?L[s@|`@` ` `@| @`s ` ` ` @L[s@ @@@ſ`sL[s@@` ` `  L[sa@@@"@s"sߴ\? `f@ `s ӱ@@@\sH* ` ` ` ` scE ` ` ` ` ` L[s@@@@@s@s` ` ` @ @@cQ?Q s@ss@ c@#ԓT:` g@"@"@sÎ@@@@c@!s`J ` ` ` s‡``*@L[L[u`fsL[ L[s`` `  L[s@``$@~`~D~~L[s}}}}`}=} }}||@|| `{{@{{zz`z zyysfyHy yxxx`x xwww`wlu wvvv`vswsBvs vvuu`u utt`t tss`s ssrr`r@rrqq`q@qqpppp@ppoo@oonn@n nnmmmm`m mll`l lkk`k@kkjjjj@jjii_i@iihh@hhgg@ggf@fs ffe`e edddHd0dcc`c cbbbb`b@b bbaaa`a a``s``q`Y` `__`_ _^^^p^T^ ^ ^s]]]@]]\\@\\s[[[[h[@[[ZZ@ZZYYY`Y@YsYXXlX@X XXWW`W WVV~V`V@V VUU`U UTTT@TTSS@SSRR@RRQQ`QQP@POssO^OAO OONN`N NMMMM`MCM MLLL`LCL LLKKK`KBK KJJ`J JfZII`I IIHH`H HGGG@GGGFF`F FEEss`E EDD`D@DDCC`C CBBBB@BBAA@AA@@`@@@ @@yU????yU`? ?>ss>>@>>==`= =<`<<;@;::`:s :99`9@9%99s88]8?8 87"77`7}s977666u6666d6^6R66sB66^6 6656ss?u55ss`5@5 544`4 44333s3Y3?3%3 322222o2U2;2!223s1111s`1 100`0 0//`/ /..`. .--`- -,,`, ,++`+ +**`* **)))`) )((`(C( (''`' '&&`& &&%%s`% %$$`$s@$"$$##@##s"""D" "!!`! !!  `  ss@@@@` @@@"@@@D~ D~Bvs` ` ` ` @@@  @  ss   `    `   s| `     @@@@@_@ _@@@@@@`9rk_M Qsso@@@@..s@!@"` L[`I I_@L[s` @@@u@ssc `@@@` ` s`7@I{`@I_s`9#@QQss` sc@ _C ``4tY=% bGE h@&s`J s` E``@s( q^N0@@N  `@@@~c@` Ew_@w_@ws@r\I5!  ` @j@@@@ER6s$ȿ@iV E` ` @s UEB sb@sNEBsbs m@EѶ``  s@Ͳs@E` @r@ۮ`ܭǭۮ`3ɬ@` ۮw` r@ۮ`˩Oۮ 3@@ۮws` ` ` s`Ew sf@ES e@@Ee@i se @x@ؚ`>sEϙ` ` ` ` `s@ Eϙ` `@` s`E ` ` EX EU? sӍčnE@S e@ߋE@ i se@@ؚ@ʇs E܆@oEϙ@` `@` `s@Eϙ` ` `` sE ` @svhN2kwbs@E~~~E~?`~s8~%~}}}Ej}S} }|||s`|@|$||{s{`{ {zz zyyTys yxx`xDx&xxwEww@wwvEv]vEv vuuuOu uutۮ`t tOusss`s2s's srrۮ u`r rqqۮzq@q u`r rqۮspppzqxps`pGps poo`oon@nnmm@mmlll@llskk@kE(kkjj`jI%IIHHHEH`HCH)HwGGGaGCGGFFF FEEErEeEs EEDD`D DCEHC`CCBB@BBAA@AA@@`@@@s"@@??`? ?D>>>E@>>@g== =<<@<;;`; ;::`: :99`9@ 9?88>w8b8E8 8777`7B7*7s766E66`6?6 655s5Ep5@554`4 433p533@3s322 211`1&1100@00///@//..@..--@--,,@,,++@++**@**))@))((@((''u'`'@'''&&''&&@&&%'%`%& %$'$$`$',$$'u'##u'#''`#7#u'#""@""!!u'`! !  `  ` ` @` Es`E ~d@"tfOE ` s@sH5@s/s@C\v@zq@s@@(sE` ϙbQ?*    @      s ^ O    ~ 3m T     ۮ] ?     ` 6 s"  E}@ E  @  @s`E E@w8  sn_nQ@(Ete sE` s`>E+ E`H>He@a@` @` ` @ ` `@u'@@@`@ `  ']' P '` `Cu'@`E s@@j`s @'`>"`*`>``* Eps@ E`Hs E``Hsb@! `H1`E? j@3ws@`&E=N s`s)HwGGG `F kEFP`D `@@Evfs@Ews@E`2$r`r& `@` rs` Z E @[O `sE@E s` sYvfs ` `E2ExsdKsj`j`@@@rsE` ` L ` sE@g` _A$s@԰Ű`E _Or ` ` ` ` ªrs zq@Ԩ`zq @ss\J3  `EbL Eo@sҢE`.@sLΠE E@%@f@ٜs@@ s@Eg@ƙE EĘ`s |EV zqgs@@E{oUBs s Eܒ`: s`E ` s`H0sE`G  sEۍ̍sE@!spČs@` E@E{hLs;*ms@!E=`шs`DE-a@EEL E` E` E` ENEN E E` E` ~E~`~ ~E~}}`} }s||`| |E{{p{E}@{({zz`zLz:z$z zyyyyyy yx`xxw@wvv`v vuu`u uutt`t tss`s srrrE`rϙ rsqqsqEqqqqqsUqE qpp pϙooo@oon`n nmmmm@mmlll`ls ;l&lkk`k kjj[j jiiLi ihh`h3hhggg@ggffffkfNf3ffeeeles@e eEedqdd`d dccc@cccsb`bbaEa a``@``__@__^@^^]E]]@]]\\\\`\D\ \[[[[[[[`[H[[4[[[[[sZ\\\ZZZ@ZZ[[YYY@YY[[sXX@XXE]W`WWV\\\V`VBV VUU[[`U UUTT`T[[`\%T \[[[T`[[[[[sXSS`SE S pqRR`RR`nQQQQQ`Q@Q Q Qkk`k kjjPP`P POOs@OOENw8NqJN.NsNMM MLLE`L LKK@KKKJcJcJE[J_ JI`I IHH`HHG@GFFF`FE F`Ld[JEE`EED@DCCsCWC;C.C(C!C CBBBPs@B BBsAA@AA@`@@??@??>>>>d>@>>======rۮ=`==><<<<r`< <<<r;;`;<r ;;:<rۮs:o:e:@:::s99999s`99888@8s77Eq7@7$7 76`665@5444444v4b4J4244433 vuu`u uu3`3 322`2 211`1`t t 100`0 0//`/ /..`. .--ss`s s`-G-E.---,s,E q,`,,+ϙ+++@++*n@**)mmm@mmlll)s ;l&l )k((`( ([j''`' ' '&&`& &%%%`%%$$b$ $##m)##^ `# #"""@""! Q!!f!s@!!E`, -    @  @r@s E ` `s `@E@@` ` l `E@ `  ` zq@s ` G EG+  `bb E`  ` ` ` `   ` i  ` ^ E]\\\\`\D\ \[[[[[[[`[H[[4[[[[[sZ\\\ZZZ@ZZ[[YYY@YY[[sX@@XE(k]`WV\\\V`VBV VUU[[`U UUTT`T[[`\%T \[[[T`[[[[[siX`E ,(k-` @*Q QQQ`Q@Q Q Q )k((`( (``s@Ew8-JNs`4{@E@@ EN@m@[@[@[@@@[@[` `[ @` [@@` [`[ [[` @` ` ` y@s` @E@s` E`E,tr@trs`  ` `s` E``@ s` E` E`@EsEF@s@`D`E` ` ` `EiY`@z@%` ``@`Fs@E ` ` s@E@E` @s   @` O E` Em` ػ` ƺr` ƹƺ ƹr` sw]E ƷE` ` ` s`:EE` E` E`E E` E̯@se@e@%sLE̯ E` 3lws@ǩE(k` ` sEOs E` mzq@sӤdO ã`E&֢` ` s@E` E&Nma `  @` 2 Қ` q@  @rۮ` [[` [ ۮۮۮ@ۮۮs@iEF@@`D`H:, E@ `s`sd@`@s p@s`E? ފa@s'E@s`E4`w s@E`Bp sԄ@ `sE`p sˀE`p `sˀ E``E ~~`~ ~}E}}@}}|||s`| |{{E}}@}@{'{zzs`| |z`zIz zyy`y+yyxxxzxcxNx xww`wwvvEvvnvXv>v%vsvuu utts@tss`s srsr`rE rrqqoq[q qqpsppsp@p#psoo@oonEnnVn n%msm`m mEll`l lkk@kskj`j jjiEiiili" @iihEZ\h@hhgEg`gEgfEf`ffeeaeEPe edddsPdEPe dccccEPe@ccb`b baasva@a$aa```` `_s_`_1_^^`^zq^]]s`]@].]]]\\\\\`\ \E[[[@[[sϙZZZsli" Z`Z ZYEYXY YXX@XXWWWWsW@W%WzqWVVVۮV@VsVUUUUs`UWU UTsTxT\TGT2TT TTS`S"  SRRRR}RaR@RRQQQoQE@QQPePPPPP@PPO`O5OۮONN NMMMۮs}M@MLLLsL@Ls LKKE`K KKJ`JJI`I IKHHH@HHGGGE`G GF`F FEEsEEgE@EEDsDDKZDE DCCCi`C CBB`B BAA@A@@`@-@@???`? ??E>`> >==`=>==<<s`< <;;`; ;:::`: :s99@998s8@8 877`7 76`665@5&5544s4`4 433]3D3,332zq2@2211@1"1s100`0@0 0///@/...@..E --E+ϙ-q-c-K-s --,,,@,,++@+-++**`1*`*`* *))`) )((`( (''`' '&&`& &%%`% %$$`$ $###`##"`"(@" "!!!!!`! !!   ! `  kS ` ` ` ` ` `AEI ` y]@ `>6@@` ` ` `@ۮs   ` @ E   ` 0  s  E`     `      @  `zq`s@` `s`@ E@ `` E@ @` `zq zqO4` sE@l@` Hzq zqO4` E@` @ @` zq`zqO4 `s` EsE`@@E@oVs EVs @!E@hO@E` ws`E>w s` t_@ `@ `@ `| `@ `@ `@"kZEG.EGsE`3EGEe@E\A s@s`s `s@E(XE=*r@zqsE=x]r sE=xcH E`1` 3ew s_N;& E@E)s`+E` E`G1s` EP`' ؚs@! E1`@3ew s`, ` E`=&@` s` ` `? @%ؚs@s`1Eƶ` E`?ʵ` ` s`I s`-EDZy[C s@cc@@#E` E`rrs E@@@U$aC+ECܧΧs@@@l@E֥` a@s?`A E@ ` srYE  sx\EE.@`@H7"ӝE@œ` ` @rh@r@@rs@ E@?ٔs" i` s` smsQ5E `?-@4 ims` EC\szf@ŽEze@ ET ` ؋EJ. $ ` ݉wĉsls@ E` F ` sDž-Ec@@`iE`@ `E @EM@ۮsE@~~Z~ ~}}}s`}-@%}"  }|E|||@||{ `{{, ??A0AdA`AdEA6`-"as  aYaYaY xYn`dVF9Dy "Dy  'aa''YzYoxex_xYxMs(M>a4Y-YQ-"@Y''4"M@@@/@ Y@@}Yv8ga`YK:/@!a`/@ '@Y~ oa WYH';Y4 (AYY@Y//aY}MpaeY^E`Ka=4E&ME@E@@M@<@@ @aEHE4"@/@~o^MMC9Y,qY  `a@YYY`Y'Eyo@fY P=0Y YxYYvqh@f/^YOB@/{!$$ $$$$$ y$ t$U%I%=%7%)%%%%$$$$$$e%TU]%T$4Y$Zinvalid command name++q+_+M+;+*+ ++**** ***@* *l*V*D*@1*@* *)))I-;-+-- -!, ,,,,,, , , , ,w,l,_, S,I,>,0,"#,, ,+++++++$Header: /user6/ouster/tcl/RCS/tclBasic.c,v 1.153 93/09/09 16:43:19 ouster Exp $ SPRITE (Berkeley)D;P >;Q 8;=3;8=-;?&;T@;@;@;hA ;B ;B;,D:\E:W ::J:K:L:W:$Q :X:Y:$[:\[:[:]:_:a:x:f:Xk}:|qv:rq:um:O g:Tz`:@{Y:S:M:@P E:?:XX 9:p6:0:,:H':":$::8: :\:: 9 9 9 9 9 9T 9 if [file exists [info library]/init.tcl] { source [info library]/init.tcl } else { set msg "can't find [info library]/init.tcl; perhaps you " append msg "need to\ninstall Tcl or set your TCL_LIBRARY " append msg "environment variable?" error $msg }$Header: /user6/ouster/tcl/RCS/tclCmdAH.c,v 1.93 93/10/28 16:19:20 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclCmdIL.c,v 1.103 93/10/28 16:19:29 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclCmdMZ.c,v 1.44 93/10/15 11:41:16 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclEnv.c,v 1.17 93/10/13 17:16:56 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclExpr.c,v 1.68 93/10/31 16:19:44 ouster Exp $ SPRITE (Berkeley)  TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT]U`XU`SU`MUīHU`DU`t?U`;U`5U`0Uīd*Uī&U` U`4UīU`tU`U` U`dU`U,TTT$Header: /user6/ouster/tcl/RCS/tclGet.c,v 1.14 93/08/18 16:07:24 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclGlob.c,v 1.36 93/10/14 15:14:08 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclHash.c,v 1.13 93/06/02 10:17:13 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclHistory.c,v 1.30 93/10/13 13:05:38 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclParse.c,v 1.37 93/10/14 15:14:06 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclProc.c,v 1.68 93/10/14 15:13:55 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclUnixAZ.c,v 1.70 93/09/24 16:47:39 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclUnixStr.c,v 1.17 93/09/09 14:47:55 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclUnixUtil.c,v 1.45 93/10/23 14:52:10 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclUtil.c,v 1.84 93/10/11 09:18:49 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclVar.c,v 1.44 93/08/14 17:21:34 ouster Exp $ SPRITE (Berkeley)`~q~~~~ a  b : activate_and_start_timer() : stop_timer() >EnbVI<s 0$sa!((b hb D4d b * /E/E3/=05/=0؄΄/ĄE/E& =0*["=0~ExrEi`E &u x z tu *\z z { y !h{ : set_shadow(sunken) ,: activate() set_shadow() Button1: set_shadow() Return: set_shadow(sunken) activate() set_shadow() Sa@H=1%YK\D{ "H#*"#} $Header: Frame.w,v 1.5 92/11/02 14:07:52 bert Exp $wwlaUI=1$j} Յj} ąMM$hp 0  H $$ < ̀ * Ȅ  X  &XE9Ef> ERC4$/(&a,  Vt8 D  'P h * ' : m_create() : crosshair(on) : crosshair(on) : crosshair(off) : enter-window() : leave-window() : graphics-input() : track-cursor() !Shift : m_rotateResize() : m_moveResize() !Shift : m_raise() m_markpos() : m_raise() m_markposAdd() : m_redraw() m_destroyNull() : m_lower() BackSpace: m_deleteDestroy() Delete: m_deleteDestroy() : m_input() : track-cursor() & (*["(9tEې9xEא̐9|Eǐ9E9E9E9E9Eu9Ei9Eא]9EXL9E@9E49E(9E9E>E>E>Eۏɏ>E>Eۏ>E>E{>EۏfbM>EI>EE9.EE(EE YYYڎYӎE̎>EۏŎ> EI>E>E>E>E> E>$E|u>(EgZYQEI:Y0b&%b,<b  Y(E,b0ۍb4 эb8E)*E0)b8)b<)b@)rbD)gYH)W>L)EM;>P)E+bT)#YX)b\)b`)bd)݌>h)EɌ>l)E>p)E>t)E>x)Ezb|)f>)EV>)ED>)EM3b)$9)EXE)>)E>)E؋b)ŋ>)E>)Eb)>)Et>)E_b)H>)E1>)Eb)>)E>)Eb)E8 6@ ,̪  <    L)ȗ 4 7t,a \  ئ *(`7 l      T X  2, $x Ѝ @  ؎ @   ݔd Քđ ʔ,   d ܓ T 0 |  : select-start() : extend-adjust() : extend-end(PRIMARY, CUT_BUFFER0) : select-start() : extend-adjust() : extend-end(PRIMARY, CUT_BUFFER0) : extend-start() : extend-adjust() : extend-end(PRIMARY, CUT_BUFFER0) f: scroll(1) b: scroll(-1) Prior: scroll(-1) Next: scroll(1) u: scroll(-0.5) d: scroll(0.5) Up: scroll(-0.5) Down: scroll(0.5) j: scroll(1ch) k: scroll(-1ch) : track-motion() : track-motion() : track-motion() : track-motion()q d V` K > 70 -l  8 q d V` K > 70 -l  8 $8,aaaޡ١EEΡáEEEEEE>EqEoW?Eo(YE ϠYE à>E>EE>EzePEM@3YE #YE YE YE ޟٟǟwaYE\F0YE 9E۞ОEE`<2EޝНErE@EEZNE E`E E`F:E0&E EE@ޚҚ ErT'$: '( ',Ι'0'4~'8D ( \;;4  < *8 A@UUUUDDDDD @@PUUUW@pDDDDD,PUUMO 1DDDDd@vq#@0?|UT]CD$QdDp$DD@DD@DD@D  D @eDy OF>@3' *}M@DDDD?O\FD[@'UUUU1@@x5~@DDD_E@UUUUDDDDD? p?????????????????ª<<>>&&""{tmf`[TMGB>70)#۩ԩΩǩ©}yrkd^WRKD=72+%   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8 ,: activate() Return: activate() ke`8WaLA!`  D t HH h *H`IE]UE9EG> E3) ۯϯïY $}qY!e@ T DJ h 0 *h KY  L  *   h  L |_@@@@@@@@?>AլT1Q>tEEE޲̲EE޲E޲9xE M M{ Ml M_aaPaaCaa1aa aa: Select() : Notify() Button1 : Extend()     D$  PM    *O@P& E*["EthEtE>EݴɴEEݴ|meXeYERFYER9YER1) 9E'E'Eaaس˳YEƳE Shift : Toggle() Ctrl : Unselect() : Select() Button1 : Extend() : Notify()54 , 5 %|5 6 6  <D% SP' % ' *`S&  TѶʶL8'ض<> x> > T ? *T$Header: RowCol.w,v 1.1 92/10/14 18:36:36 bert Exp $j_YZUME;11 %Y!u? E U|E E *dD @@ d@ VG $Header: Scrollbar.w,v 1.1 92/11/02 14:08:00 bert Exp $Y~oa`QB`P 5(s s2EϷjG ȷ!4 J lJ WW dM 4O *N `P @YlU eW `hW : start() : drag() : finish() la@EMA5 D-%HJݺLκaPT` |rݺݺKwX p\ $ZZ [ _ *@ZZ 0Y \ <^ ` [$Id: Tabs.c,v 1.27 1999/12/16 18:44:18 falk Exp $ : select() : highlight() : unhighlight() Page_Up: page(up) KP_Page_Up: page(up) Prior: page(up) KP_Prior: page(up) Page_Down: page(down) KP_Page_Down: page(down) Next: page(down) KP_Next: page(down) Home: page(home) KP_Home: page(home) End: page(end) KP_End: page(end) Up: highlight(up) KP_Up: highlight(up) Down: highlight(down) KP_Down: highlight(down) : page(select) #augment Page_Up: page(up) KP_Page_Up: page(up) Prior: page(up) KP_Prior: page(up) Page_Down: page(down) KP_Page_Down: page(down) Next: page(down) KP_Next: page(down) Home: page(home) KP_Home: page(home) End: page(end) KP_End: page(end) Up: highlight(up) KP_Up: highlight(up) Down: highlight(down) KP_Down: highlight(down) : page(select) L:Y9E,&[$"aadaaYҽ(!@7@E^EEM>Erh^Y Ѿq ̾r ¾s ht ؾg h 4i |b` li i j j  m *\m n p  b4i @l b ܇  : set_shadow(sunken) : toggle() set_shadow() Return: toggle() bWaDK?aH<9YL2+&PE &TE#mdT  `cc@ $ *cd$Header: /user6/ouster/tcl/RCS/panic.c,v 1.5 93/07/12 14:01:35 ouster Exp $ SPRITE (Berkeley)$Header: /user6/ouster/tcl/RCS/tclAsync.c,v 1.3 93/09/02 16:02:42 ouster Exp $ SPRITE (Berkeley)C :T - "   , P t    : focusIn() : focusOut() Up: traverseUp() Down: traverseDown() Left: traverseLeft() Right: traverseRight() Next: traverseNext() ~ShiftTab: traverseNext() Prior: traversePrev() ShiftTab: traversePrev() KP_Enter: traverseNextTop() Home: traverseHome()j^YK8)E a'v  d `f h (  ` *      l  hXh p x   *  i$Id: Gcs.c,v 1.7 1999/09/08 17:44:12 falk Exp $0123456789abcdefRFBFIFFFFBFI                                                          uZVA`@ `@` `/+|m[D.eWR9+`@@U @" ` `>5((odH?3(P9" ` >` k``> ``V``@@` ` ` ` ` ` ` ` ~a@`@@@@@@```  `` ``  ` `    ``    `     `  ` ` ``  ` `@`   `    `     `                  ``/`  xfTB0 +`zhVD2  yiYYYYYYYI9 `yiI9 xfTB0+`saO=+ 1! `1!AAAAAAAAA xfTB0 +`ucQsaO=+`HFD HHHHB?<""9+#D""D @IGDB@\X PX *`{;b9a @a a |x^ a *\ ` ` `|: highlight() : reset() : set() : notify() unset() aa $P8d Ie ?e 9d 3td 'e Ti Pb |j  ~x}8h j f xh *}`~EEEEM@j l lo *88l `ay^JAA@:JAA@5JAA@/JA A@!  Y OLr r  s $dw z *{ x l{ D 4z z 4t @& *[">hE$aa)} 4*>E9EyEEpgd&[\QM Mt%YE9$4} | @    ؆ *X : Set() : Notify()>Er k tEb 9ET O J 'E; 3 + #   Y3 YY&[aa P      J T pl  ̒ d *@` @: highlight() : reset() : reset() PopupMenu() !!EE!!H `~! $ p*: GripAction(Start, UpLeftPane) : GripAction(Start, ThisBorderOnly) : GripAction(Start, LowRightPane) : GripAction(Move, UpLeft) : GripAction(Move, ThisBorder) : GripAction(Move, LowRight) Any: GripAction(Commit)|#Eh#T#I#>#/ 1#Y # qE@9##"E""E""E"E"x"El"`"El"T"EF";"E"/"E "#Y####### #Y#Y##Y$(  H д t  Է *P Ե   h ``: start() : move() : notify() stop() : abort() KP_Enter: set(rubberband,toggle) space: page(+1p,+1p) Delete: page(-1p,-1p) BackSpace: page(-1p,-1p) Left: page(-.5p,+0) Right: page(+.5p,+0) Up: page(+0,-.5p) Down: page(+0,+.5p) Home: page(0,0) $ $ $ $ $ $ $ V&M&Yt%Y>&>&aa1&$&&&Y>E%%%%%%%%%%%/%x%/l%`%S%F%:%.%E% %$$$E _&      \ *  &&aa&@  * l  : highlight() : unhighlight() : set() start() : stop() unset() &d & W'Q'(D'>'1'$'$ '>' 2'Y,'&a0&&a4`~]'@ Г , *@: NotifyScroll() : MoveThumb() NotifyThumb() : NotifyScroll() : HandleThumb() : HandleThumb() : MoveThumb() NotifyThumb() : EndScroll()D9aaTaaaaNM>E''`''`''YY''( 'L ' ' ' (P   d     *`U)tC)7) x*)>E)(E((E|E\)x   H *  X*)(\EE**'******Y**t*Yg*Z*M*@*@*: highlight() : unhighlight() : highlight() : MenuPopdown() notify() unhighlight()*, * *| p+    ̛   `  *T d ,| a,a-0T*E`E#..d..Mh|--Ml--p--r>tE-9xE-@-.<` ( *@`[/Q/8I/A/M4>0E-/e/@ |  <*|`000004En0\0J08En0:0*0 <00 @//D//H(//'X'//Y\y/p/Y]$0` *@UUUU$I$I$m۶m۶m& x*["x !11>E11>E10a@00@*1@"$"t!*d& 2tE 2*["11/1/1/1/11''9011Y111p111k1f1]1t%R1I1@1Yoaa S4X$&),P8aa\ad*(d9E4> El4t$EX444$kl@$lLl*lllm4mXmhmmmnE44 lpp@*q@qLqxqqq`9v9w9w98w9Twt9pwb9wV9wL9x>9x49z&94z9y9y8y8y8{8{8{8|y8}o80|\8P|M8l}98p| 8} 87L~7~7777ā77d77$7Dr7@vc7W7P7D7H67-7,#7<7  766P666666X8,: set() notify()~ShiftReturn: DoSearchAction(Popdown) ShiftReturn: DoSearchAction() SetField(Replace) Ctrlq,Tab: insert-char() Ctrlc: PopdownSearchAction() : select-start() SetField(Search) Tab: DoSearchAction() SetField(Replace)~ShiftReturn: DoReplaceAction(Popdown) ShiftReturn: SetField(Search) Ctrlq,Tab: insert-char() Ctrlc: PopdownSearchAction() : select-start() DoSearchAction() SetField(Replace) Tab: SetField(Search)Q>CtrlA:beginning-of-line() CtrlB:backward-character() CtrlD:delete-next-character() CtrlE:end-of-line() CtrlF:forward-character() CtrlG:multiply(Reset) CtrlH:delete-previous-character() CtrlJ:newline-and-indent() CtrlK:kill-to-end-of-line() CtrlL:redraw-display() CtrlM:newline() CtrlN:next-line() CtrlO:newline-and-backup() CtrlP:previous-line() CtrlR:search(backward) CtrlS:search(forward) CtrlT:transpose-characters() CtrlU:multiply(4) CtrlV:next-page() CtrlW:kill-selection() CtrlY:insert-selection(CUT_BUFFER1) CtrlZ:scroll-one-line-up() MetaB:backward-word() MetaF:forward-word() MetaI:insert-file() MetaK:kill-to-end-of-paragraph() MetaQ:form-paragraph() MetaV:previous-page() MetaY:insert-selection(PRIMARY, CUT_BUFFER0) MetaZ:scroll-one-line-down() :Metad:delete-next-word() :MetaD:kill-word() :Metah:delete-previous-word() :MetaH:backward-kill-word() :Meta\<:beginning-of-file() :Meta\>:end-of-file() :Meta]:forward-paragraph() :Meta[:backward-paragraph() ~Shift MetaDelete:delete-previous-word() Shift MetaDelete:backward-kill-word() ~Shift MetaBackSpace:delete-previous-word() Shift MetaBackSpace:backward-kill-word() Right:forward-character() Left:backward-character() Down:next-line() Up:previous-line() Delete:delete-previous-character() BackSpace:delete-previous-character() Linefeed:newline-and-indent() Return:newline() :insert-char() :focus-in() :focus-out() :select-start() :extend-adjust() :extend-end(PRIMARY, CUT_BUFFER0) :insert-selection(PRIMARY, CUT_BUFFER0) :extend-start() :extend-adjust() :extend-end(PRIMARY, CUT_BUFFER0)????E???E?p?`? M?:? (???>(>>''>>Y$ ? (` ЭD\*|: highlight(Always) : unhighlight() ,: toggle() notify()P@J@Y EF@;@4@*@ @' 'a@Z@PV@`~h@(\8t*  AAY;b>EkAaAWAOAGA:AAAAAAعܽH*HĽh ܺȼ` YMYXYYYAAa@AhT`L*t`P8Dd 9AA^ATB,` *@X9B2BY4B2BY5>BPT*< @ 3E EBBB$BBY,BB(a0aqB`BY48`BH t*H, *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjz *:JZjzo<  ( K  [ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)[ASM_FILE_END]GCC: (c) 2.95.2 19991024 (release)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.bss.comment.note#1((d 7  ?)KG AP B  YO _Odi jw px L xTi ~xx.||...55y 5,, Px Z$_  T(    T x|, X T -T 9X Oxb mw  T |    x x  Tp U U $U (U ( (G 5L C T  a8' s8#  &z  A P'A ,U (  c y |) ' U -@4 ) LYp :Y IZ S4+ ],Z g$. q0/ |/ x0K Z Z T\ E. D UV MF P K  XU Zp |Z gn o> &n 2$h <8k Ko Sk. _ n eo r tp Zp z hz> w)  z [p [  g  s         @  `       8# t e $| 4 AȾ Q@[ i r  L   \ p D  X  h>  d  " B  .    " _ -@6D<`C H L U\ ] e n  u& ~\ g -  t  H L  , Pp  ! ! , ,  t_ 4 5 <  @ !  0@ ;T   E`' Q [$) j)T o+S x 4   + 9o 9 h: ;  O F O hJ P Ry _ xc: cT d    d @p  % ,H 1L ;P D x L܄M ]Ā g uB $ ć G |   Ą  g , $ & D -4<  EW Q4' ^\ fE pG |d <  \ T <d    h_ ȟ T   Р]  h $ + 85 <@ @H DU 0 ] l f Hs L P T X \ ` d  l  LU p     " ' ܩC /  8  B D O t W x b  k  u  ~    D       D  , &  0  ; L\ D   p Q  ^   d `  d  ( @ ^ |: ^ ]  x TA  $  N $  6  H 6 Z q o \q         J S h! W /W L `$ p F  <g R   <d @c A + Z @ i S f z 0     (  H M   `ch '  7 $0B 31  >1 KT/ V0 d`1Q rL0   p2 Pdh48 Td5G h2  5 4     *TU$ 6T >4Y GZ9 R4  \D n0Gq  ȅ ([U b 0gB th  j m m  px pW /q. ? s. Q,( QT# ` ! s& & h% !  `ihii@& '? &K  ' ji@  , @ c   ) 8 C = b N J @c Y jd$jmk|k@jxd%  f b l  4 @`  l k Y   a  ` `b īf ,, 8& G S a qX ؓ-    u p  H `  P a P  < `a HW  t4    8o   *  4  @ ( K ؾ X   d e  q g x H2   , B  |   `b  H  x a  p8 !@ !  `c ! %!   5! q C! O! ) [!   d h! 0  `e v! ~!)  !)  ! +  ! t0  a !8< - ! 4E  `` ! ! ! ! ! "4E  "HZ I "\[ 0 ("^ o 2"HY  ="4^ z H"\ < T"Z  b"V  l" _  t" " "a ^ " b  "A " _ D "d_ H "_  "`  D #(b = hb  #4d   $#b > /# @# o  H# o  Z#o  l#q  y#\s ; ~#t y  #u _ x  #z \ $#tu j #\z 1 #z  #{ K #y U #X" # h{  "" #h{  "" H#T #{ = #`$ $ {  t"$ "$ $} = $4 ${  ,$|  ;$ kD$} 0 U$$k^$} 0 $4 r$p  #0 =  ( $H  # r #<  $#̀ m #  #Ȅ  #  $X  $& $& $(k$,k$0k$4k$8k$)  K)LM ~ Y)8J  k)\  {)W  )x p )N  )N ' )t . )  )@I v ) 1 )  )X [ *W  *  !*I } .*pD  :*,E p D*H  S* ) g* 8 w*@ 5 */ 6 *.  *C g *4  *5 i *<  *L8  *D g *9  *> " +A  +? 6 +7  (+l  5+  B+  O+  \+  i+ K v+T  +X  +8 + 8 +, J +x X +Ѝ n +@ L + L +؎ g +@ W + J +  ,d _ ,đ h ,, \ , h ', q 7,d w >,ܓ w G,T  T,0 w ],  l, _  ,k,^ Z , t ,t^ ; ,Ї Y , { ,, m ,  ,0  ,  -0 O -  -  -- { 9- i C- ) P-  ^- ; m-X  }-l  -4 B -x  - } -$  - + - V - o -  -T ; .( + . ` %.  4.ܡ  C.  Y. W f.H  z. ; . + . ` .| 4 .  .|  . ; .ܫ + .D ` /  /`  )/ ; 8/l + G/԰ ` T/4  c/IJ  r/  /,  /@ + / - /l z /  /ػ  / u /  0 " 08 #0 x  "8 "\;@ *0 ^ 60 F B0`  O0  Y0 : e00 9 l0l  w08  0;@ ; '   '( \ '  ' H '< i 0 9 0x w 0  0H 8 0  0 ? 0 ? 04  1L  1  $1X w 81  I1 * S1 * a1 , n1 " }1D i 1 [ 1  1H  14  1 } 1P b 1   1PB 2TB 2XB 2\B !2k,2l52 l?2kJ2kM2kP2 l[2 ll2lx2k2l2k2k2l2k2,l2k2k2k2l2l2k3l 38.  3k!3B E *3k43B 6 <3(C X J3kQ30l_3$lk3 l ku3k~3k3k3(l3k3k3 (  3`B 3`D 3D2 3@x3@l 4(E 4  4  '4 x  34@EH >4 4  L4 H  "H #  "H; S4H  HT # = D  $t y #  $#h   c4J t4  t"@J |4  4 o 4  DJl # _ T  #h   $#0 " 4h  4|L 4 t  L8 4 * '  '  ' ) 4  0  4 \ 4h # 4@|4t R 5  5  05X  =5$ C L5  J a5 f k5 D z5` / 5  5P @ 5  54 T 5 n  5  5  5 \  5M 5M 5M M "OI 6 P  6 4 6  "6  )6  '$  '  ' k ' D '   /6\  :6 % E6 X T6 f Y6H / a60 r h6P $ v6t  4  6P c 6  6 ` 6 d 6x V 6 ^ 60 P 7 / 7 V &7 f >7p 7 R7 c g7   {7 u 7L  7  7  7  7 ~ 7  7x Z 4, x 7 J 7  8  8P  )8 D%  P "`S 6S0 64  58 5 p >8|5  "66 } 66 T 'D% ` '' 0 '% B '' i E8&  W8H,  d8*  v8L-  841 6 83 6 8l1  a6/  8,*  8T 8.  81  84 { 83 j 9T3 F 9D|+9 ;  69;  E9X|R90< \ i9=  x98> = T r$> ' #x> = > , $# ? K 9U 9 X?  U5 9X?  U #? _ E  #|E . $#E  #dD  #@@ " 9d@  #|W 9 PF  "W e0G  W8 9PF  9G  9G 3 9G  W4 9`P " # J _ lJ  #dM k $#4O + &N d #Y 9 |Q  t" Z "$Z 9U  :W M :hW  "@Z@ :|Q  :0R r ):R o 8:S  L:T  Z 9`  #X  p\  #[ W $#_  $Z  _:0Y b m:\ K x:<^  :L\ : dg  : g  `\2 "\  :^ `l : bp "|b  :q  :r  :s  :ht + ;g  ;h  ;4i 5 $;li  0;i  ;;j 2 F;j  T; m s d;m  v;n  ;p   ;i + ;@l  ;\|;`  h6 l ; W <<~  <v r <w ` #<$ ; -<  =<pw  F<  V<x  ^<x  g<\ ' v<|  <} C <{  < J <L  <z 0 <tz 9 < \ <Lc <  < h  "`c < T =܇ 9 = 9 "cY =h  '=  c #T =   #@ t $#$  5=De F=  P=`|]= T  g=K r=d|w=p  = @  =Xe =\e =`e =de =@ = = = =  = > >h|#>t|>>x|X> ! ^>l|l>0  >  >D  >p|> % >  >t b ?  ?L  ?  #?ؤ  3?|??||O? ئ  X? ة  b?   e^ j? H  s?||?|?|?|?|?$ , ? r ?и 6 ? 1 ?d  ? I ? * ?  ?ܯ  ?P V ?|?( n ?|@|@|@ y @  )@   ea 4@Hf @@|M@|Y@ T  "`fX b@  j@T F s@ ! @ ! @ ! @ ! @, ! @P ! @t ! @ ! @ + @fK E9|@T  A|"A|0A|>A|LA|ZA|hA|vA|%|%|A  Ad v Aܾ  At  A  Ax T  h r$ n #   d u A R #( v $#  A`  $ V B  B  /B  BB Z KB t XBl ( fB ( sBpi Bi B   B  B h  4h  Bp  'x  '  '  E8   0   B  4  B  `j0 B(  Bj Cj Cj Cj Cj &Cj 5C  ECj NCj \Cj eC H lC  uC0}}C4}CL}C|PCj C  CD}CjD Ck C k0 CPn C`n0 CH   Ch  D @ D<} Dq 'D 3 5D q Ed} GEX} PE  [Es aEt gEu oEu xE@v }EvL E wL ElwT EwX ExL EdxP ExT EyX E`yL EyP EyT EPzX Ez E k F|~F~%F~3F~@F~KF~VF~`F~jF~uF~F~F~F~F~F~F~F~F~F  F  F<  F}hAp~vAt~%x~F  G  G  G  -G   H<  H;  H:  H`9  I$7 ; I3  $I3 F 4I CI<{ RI >  ZIDA  fIN ) QNĩ i fN0  qN p N|  N|  1L z N  N  N  "  68 N  N  N  N v O  O  O   '  '  ' ? '  '  '  %O\ : 4 ] "L` 5O " EO H UOL  bOܼ  mO  yOо b O4  O b OL J O h O   '@ K ' p 4 m 0l  4  O C O w OX  O  "@ 6Г Nd  N R  ' % ' 0 ', 5 O  9 P  "` O` dP 6( P  PL 7 P Z %P  2P  4P ( '  ' H ' = ' % '  '   vU)M ') ', U U-1 U. Up2 UH1 U42: U4 U54 V6 V]) #VXF 5Ve\ CV[ YV?G jVB. 1B yVGk 1Gb VZ* VKT VW; VP Vd$ VR VhU" V[O W\0 W`e8 "We 8W8ap 'a> 'a> P(dz pJd< DW $k @T B$k 'l '$l% 'LlK Vl Ul OWle aWm! nW4m! {WXm  Whm Wm Wm Wn W lp @ 4lp( Bp Wq) W@q  WLq) Wxq  a1q 1q Wq WWW X$X X Hs %XHs< 1Xsw >Xs* HX(t [Xu& hX@vA xXv] }Xv Xw Xw X8w XTw Xpw Xw Xw Yw  Yx Yx /Yy CYy e08yV QYy aYy sYy[ |Yz Y4z YLz Yz Y{ Y{ Y{ Y| Y0| ZP| Zp| 0Z} EZl} ZZ} qZ} ZL~9 Z~r Z~ Zv Z{ ZF VPS *0  Zā  [  60  B0$  O0D  [d [0 $[, 0[< =[ L[L U[Hu `[K m[  z[ [ [ [@z [ [P< [2 [  [& [I \`8 \܏& \ .\ ;\ U\  i\7 {\Z \d) \ \ \, \PZ \ \8b \ ]<% ] ]4 WL *]( 4]@ =]\F F] W] c](u],]0]  ]  ` B  '( '  'Эr 'D '\ ]| R R R R_ R_ SD S 3S8A GSȬA < \ " { T " >87 6P! ]1 ]\ '8 't ] ] ] w ]L ^ ^p 0^T? E^   L^h8 4( 'ع 'ܽ8 ' 'H 4X 0Hz 4Ľ ~Jܺj d^ȼ~ B`h v^s ^|F ^ĸW ^` ^|1 ^ ^l ^ ^ _xs _  ` 'h 'T 'L '\ E8t. 0`H 4Pn ~JD a6d4 _к (_l 8_Q I_ S_@@__ k_E r_m Oxq _ _; _ _4 _o 4<$ _  _ _    _G `` 4P +`ػ >`  8 '@ 'N 'Ty V< U  aW: nW {Wz W, J` T` ^` p`" `8 `  `  4( 'N '  't" pJq `HO ` W, WV ` `X `G `$6 `U `\I aq a,A 'a| ;aF Iapj Ua8K cakat yaa$S[ aaa7  aX/p a@  aS a&bT>0bT +b 6bTX Bb\  QbuK ]b& rb@{@ b  bP  b$Yb b7  b4bD*bl b8  b  cxS !cT?8c@| Ec@ Rcddcoh wctIc&c\ c^ c&ctc Y c&cc| d( dL t d .d/AdId\Ej Wdcdhh" M Vh@ j fhdwh( htvh V hX- hdg  h{   h N hhh[iT   i]@ *iT b 8i@iQiM, ai - mi( ~i iT" ii\   iipr iX   ix\ iVjjj$:$jX 3j  Gj4Rj: \jб  kjDrj  j jH j\[ jHW j:n jz 5 j jTz kP k kN t %k 3k0  CkD Rk  ^kA pk kj k ` kS kkkTkH$  kd9k ltl\ $lX q +lxW Aln, Xl| clP  ol " {lT lĈ J ll?0ll$y lhe l l i lmm m, mq! *mA5mG=mLm8=w Xm  hmd l wmG mmm=mHv( m@U L mm$xmm m4m\E ~ n 2 n  &n" 1n: C JnT [ [n( in. rnx {nDn+ n?0n, nTnd(nP * n0 0 ntn` oL q o$o@  1op =o j n EobLoLRo|  ZohA so, > oD oH* o o  o$  oo pa p. c +p\ 8p Gp7Qpd  cpwp  ppp`  px ptp0g p  phe  p p q|  q$q| 3q0 s( TsP9 ds2ks`% h ssssh : s$ s# 9 s M s ( s5" tjt@  5t$hCtE Tttp0 ^t4{mtD~tTth  t@;0t|  t" c tThs t: ) t ?0u~ u  !u U )ul2uc >u(A Gud|Yu o fut{ux V uu(O u^ u/uuSupu` uL6 vr v#v/ < vH/ )vL+ 6vGvWvW_  dv@ vv  vv`   vlZ v< a vvvtv v t w w$&w # 2w Bw4OMwDUwT'dwE qwdw  w  wh w 6 wtwz  wLw  wLp xHc xf )x - { =xX: IxXU8 Vx]x( jx # |x$B xx h xG xxP  xx xئ f y N y`>08%y y< y  yzn+ z  -z, 08z  zt {;  {){4C{HG U{  a{ R s{X% { C {5 ` {P {V{!  {z {0 B {u {T B || +| 2|H  =| / x I|^|̼   m|s| A |U ||n |  |  |  |8  || 9 } N }7 '} 9}G}4  S}J\}  k} V }I }د Z }}G} O }[ }  }  } }4?0~  1 ~  #~ 3~   C~$OJ~4O~86  b~D k~  y~TW~[ ~d~T ~tT~~l G ~ 1 ~| d =&-Q :D4 P c   _ Hf= hO l   RhA < c o %,3>% MT5 Z\ q i$Bp:  ~4$  W 6 ЀD߀` L | f P  1|J MTEedOsHu ~t  =    t  P Ё$" C   V 0^  ^8d0 H` ! VX dF s   ] (1 O i i ʂ,p# Ԃ0 Y C p `  %  K & 7>  H/PX$  hn*v | , J '΃ @ V $r  &41 =DB0 N L9 ] dTzdl g T  ذ   DŽtOڄQ 6 ,v H   p P  )Y} 8 D K ? bԆ ) p _ } 7 ą օh?0څ8K  |Zd  _ P #5  J'V : `hif pņ  Іr܆8 $0 #4))@7 9 S F ( X=7 ea r, Y \    f чM t / < 0 DP;r T d) Z )t-P: W P| _dr y  U x | U ȈT > ڈ&$ V  _ 'n 2zCh  Plao v(|3 U   )dB 7 8 ` ˉ_ M ׉< t J _ T fq ! ($.  9@ Fr( X0 h4mol  }_  D m T6 > ϊdՊ< t$Y  ' C  8LN A#  X<  _@r s | y )  42G t [ p‹΋RT Z ӋY@ : G $f<4 !X# % 64G@H l RDLZ [ q I T` d@ ČT  ό   H  8e  ;  1t&?Rk G [e ] tPi  4    O A  P W ̍f  ܍8?0 a t0 ' 4d  $ 0@Px AL ;A _)cr/ 9P s &"͎\@ ގ$e 4&Dx)$| 3A  E|2G Xt < h }tt ` @{ l B x ŏp" ҏ@ # ޏTED  \  A  ! "L 0d> C D@ U>  bt{q|q 0  c ِ    H    !h= T 1p0n A\x  O ]Wl tz K  [ QP ,w ʑ80 < ӑO ޑ4 E t V ȸT (e.3CqJ  U x ad  i  y(s  E B- 8: t ǒ$GҒ/ D|  ` Hj 4:& N 5  F| VD m j vPq / T DTd=t˓@P n ؓ  V 9 L  -) DJ/V b  nF _ yD|  V ϔ\  03 D # % " 9le B$ O M  ]J2 gl f tOX l. N o X ̕ A ݕ4i  pvw pp }  T| 6 W`?0avz' $ M. b  D> 4(0\̘0h ޘDsTC; d%W ?   ' G 5L?0?t?Up `2^ rȡ 4    @ WǙ  ҙ(  L \Z#L+&/ R =d  Nf  \ huB   $Ț ؚTS y p    4i ( 'D9TJP?0Y jt8     `t H śޛdة + tH 3 V n! -6C W S `>08iY  , U rԜ@( #  }L  - 3 { H Z  j n vDB  ,;0< X r iŝVѝzT $XxL ` | "H\ 9@  F' Yz  h\ u4p|DST0dPD{ WL ОtX  ݞ0  t& @ 4 V ĸ k .,D. =:N M/ < Xp$  lԻ ,   d?0ɟ ן$v v 1l x $[5 b (T 3 1 D$Q s S$0 _p si (  `~ 4N  àBӠ 80  h  C 2( x =I(U A c s0 > }! H h ơڡ S = f $ p  r ! ^ 14:m F I X W jT t(m }hX k" W n (0 ʢD{עT&L K Df \G  L  &@ :H Jx Ye\qo r  dl,  n   ƣtaͣHB ݣ    T q H  G " ,< MD,  V4lg ȡ 0 c#Ťʤwڤ ! `|  .\ 0' B9JjX ^,`  hX g y$  87  d ǥΥdإ > ߥ  h?0 X $$)  ;\X Ot Ze t,  4̯  o Y `7x DΦTYx+ d & $39  O .$5 =b JD  [0k@l j xt .  s G  ɧf  \I ̺ x U #7 & I Yt T pNP `:B T?0èԒ  Ө ۨ   . [ t W /W ;H { I`{ [ mw% v8 { e h Po, | ˩Vکm  4CJ (B  : GA SWF an'4;0H ) D  ʪ ܪ$'  4R ` Dԅ : (Ty3dF  U* @ dh  p| ] V [ tP > īM ֫0 i PT@5 ^)d p)J |x  }i  °@ аְ < $1 d  ,%6i  BTM l PDh iU  y+ 2 $ @Y X?0±  ӱ8t  ?   lu ,j  4P A VtT ld;I x4~>  4 ' } DT{ɲ M ղd߲t  a Г L $(  3l G <xO Et7R@e h  u0\ \?0S< [k M ȳXX  ճt T } #   % / a 9|  Fbv crtstuff.cgcc2_compiled.p.3__DTOR_LIST__completed.4__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.11frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__eps.cPageInfohextabpixnumlpixdebugpixbufeps_simpleHeadereps_writePixeps_writeMonoeps_writeMonoRGBeps_annotateeps_simpleTrailereps_colorHeadereps_writeCmapeps_writeTrailereps_writeRGBeps_pageParamseps_flushPixEPSSimpleRLEPrologeps_landLabelseps_portLabelseps_doColorbarmake_labelticstepEPSColorPrologbuf.90iis.cwcspix_enablediis_debugopen_fifoopen_inetopen_unixget_iochanxim_connectClientxim_disconnectClienterrmsg.30bswap.31chan_readdecode_framenoset_fbconfigchan_writewcs_updateadd_mappingxim_getMappingload.cfileTypeloadstatsortGraymaplistFilesglobExpressionstrsortfileCompareamapcucharCompareprint.ctmpfile.18printstatxim_initPrinterListraster.caips0bluecolorgreenhalleyheatrainbowredstaircasestandardnbuiltin_cmaps.6set_nframesget_fbconfigget_dirfilexim_colortablesset_colorbarxim_frameRegionlabels.49label_init.50debug.87fb_paths.112seed.119load_testpatterninitialized.132save.cdebug.12xims_writesavetextsavestatrasio.cread_sun_longsunRasErrorSunRas1to8rle_readfixBGRwrite_sun_longSunRas8to1count.30ch.31errstrfitsio.cftopen2dftgbyteftclosewrheaderwrcardrdheaderrdcarderror.45ftgdataftfixdataexps.52exps.53ximclient.cQuitResetinitializesetFramegetFramegetRastergetSourcenextFrameprevFramefitFramematchFramesregisterFramesclearFramesetOptionsetColormapsetOffsetwindowColormapzoomcentroidgetPixelspanflipretCursorValencodewcssetPrintOptionprintsetSaveOptionsavesetLoadOptionloadhelpwindowRGBism_startism_stopism_cmdhelp_textximtool.cresourcesservercposenvvar.27nerrs.28quant.ccomputeColorHistmedianCutfreeColorHistallocColorHashlookupColoraddToColorHashfreeColorHashredComparegreenCompareblueComparesumComparecomputeColorHashcolorHashToColorHistaddToColorHistcolorHistToColorHashutil.ctemp.9temp.13zscale.csampleImagefloatComparefitLinesubSampleflattenDatacomputeSigmarejectPixelsgifio.cGif89ReadGIFcolorstobppncolsnrowspixelsGIFEncodeGifScreenReadColorMapDoExtensionReadImagebuf.27GetDataBlockZeroDataBlockbuf.34curbit.35lastbit.36done.37last_byte.38GetCodefresh.42code_size.43set_code_size.44max_code.45max_code_size.46firstcode.47oldcode.48clear_code.49end_code.50table.51stack.52sp.53LWZReadBytePassInterlaceWidthHeightCountDowncurycurxPutwordcompressBumpPixelGIFNextPixelmaxbitsmaxmaxcodefree_entclear_flgin_countout_countcur_accumcur_bitsmasksg_init_bitsg_outfileoffsetn_bitsmaxcodeClearCodeEOFCodechar_inithtabcodetabcl_hashoutputcl_blockchar_outflush_charwriteerra_countaccumtiffio.ch_orderl_orderirafio.cirafGetPixfileirafReadPixelsism.cism_debugism_openSocketism_connectClientism_writeism_ioism_disconnectClientincomplete_msg.21null_count.22pkt.23nread.24ism_typeism_getChannelism_parseSendism_parseobjects.49ism_readism_wcspix.cwcspix_debugObm.cobm_call_activate_callbacksclient.cClientCreateClientDestroyClientEvaluateclientGcmdclientGkeyclientLiteralclient_outputparam.cParameterClassDestroyParameterCreateParameterDestroyParameterEvaluateparameterSetValueparameterGetValueparameterAddCallbackparameterDeleteCallbackparameterNotifyserver.cServerCreateServerDestroyServerEvaluateserverResetserverActivateserverDeactivateserverSynchronizeserverFlushserverPostActivateCallbackserverPostDeactivateCallbackserverAppInitializeserverAppExtendserverCreateObjectsserverDestroyObjectserverQueryObjectserverSendserverPrintserverGetResourceserverGetResourcesserverPostTimedCallbackserverDeleteTimedCallbackserverPostWorkProcserverDeleteWorkProcserverCreateBitmapserverCreatePixmapserverCreateXPixmapserverCreateCursorserverCreateMenuserverDestroyMenureset.27serverTimedProclink_callbackunlink_callbackserverWorkProctable.121build_colorlisteditMenucreateMenumenu_classInitmenu_popupmenu_popdownmenuSelectmenu_addEntrymenu_delEntrymenu_pullrightBitmapmenu_bitmap1menu_bitmap2menu_highlightBSB_highlightmenu_unhighlightBSB_unhighlightfindMenumenu_popdown_msgHandlerwidget.cfontNamePropTablewidget_actionsdo_userprocdo_textdo_popupdo_popdownhashed.18widgetAddCallbackwidgetDeleteCallbackwidgetAddEventHandlerwidgetRemoveEventHandlerwidgetSetwidgetGetwidgetAppendwidgetSetListwidgetGetItemwidgetHighlightwidgetUnhighlightwidgetGetValuewidgetGetThumbwidgetMoveThumbwidgetResizeThumbwidgetSetScrollbarwidgetSetTopwidgetSetListTreewidgetRealizewidgetUnrealizewidgetIsRealizedwidgetMapwidgetUnmapwidgetManagewidgetUnmanagewidgetPopupwidgetPopupSpringLoadedwidgetPopdownwidgetSetSensitivewidgetIsSensitivewidgetMovewidgetResizewidgetConfigurewidgetParseGeometrywidgetGetGeometrywidgetSetTTNamewidgetGetTTNamewidgetCallbackwidgetLTHCallbackwidgetLTACallbackwidgetSBCallbackwidgetSECallbackwidgetSCCallbackwidgetJPCallbackwidgetSPCallbackwidgetPUCallbackwidgetPDCallbackwidgetRPCallbackwidgetRGCallbackwidgetSetDestroywidgetDestroyinvalid.37call_callbackswidgetGetFontNameget_itemnosv_items.158sv_nitems.159buildTreeListwidgetEventgterm.cgtermActivategtermActiveMappinggtermActiveRastersgtermAddCallbackgtermDeleteCallbackgtermAssignRastergtermBellgtermClearScreengtermClientPixelgtermCopyRastergtermCreateMarkergtermCreateRastergtermDeactivategtermDestroyRastergtermDisableMappinggtermDrawAlphaTextgtermDrawDialogTextgtermDrawMarkergtermDrawPolygongtermDrawPolylinegtermDrawPolymarkergtermEnableMappinggtermEndDialoggtermEraseDialoggtermExtractPixmapgtermFlipgtermFlushgtermFreeColormapgtermFreeMappinggtermRaiseMappinggtermLowerMappinggtermGetAlphaTextSizegtermGetBiasgtermGetCursorPosgtermGetDialogTextSizegtermGetLogResgtermGetMappinggtermGetPhysResgtermGetPixelgtermGetRastergtermInitMappingsgtermInsertPixmapgtermLoadColormapgtermMarkerInitgtermNextColormapgtermNextMappinggtermNextRastergtermQueryRastergtermRasterInitgtermReadColormapgtermReadPixelsgtermRefreshMappinggtermRefreshPixelsgtermResetgtermSelectRastergtermSetColorIndexgtermSetCursorPosgtermSetCursorTypegtermSetDataLevelgtermSetFillTypegtermSetGtermgtermSetLineStylegtermSetLineWidthgtermSetLogResgtermSetMappinggtermSetPhysResgtermSetPixelgtermSetPixelsgtermSetRastergtermSetTextResgtermStartDialoggtermUnmapPixelgtermWriteColormapgtermWritePixelsgtermInputCallbackgtermResizeCallbackgtermResetCallbackget_pointshex1.171hex2.172have_tables.173hex1.177hex2.178have_tables.179get_mappingput_mappingmarker.cMarkerClassDestroyMarkerCreateMarkerDestroyMarkerEvaluatemarkerMakeCopymarkerAddCallbackmarkerDeleteCallbackmarkerCallbackProcmarkerNotifymarkerDestroymarkerMarkposmarkerRedrawmarkerRaisemarkerLowermarkerMovemarkerResizemarkerRotatemarkerSetAttributemarkerGetAttributemarkerSetAttributesmarkerGetAttributesmarkerSetVerticesmarkerGetVerticesmarkerGetRegionmarkerGetRectmarkerFocusCallbackmarkerDestroyCallbackhtml.chtmlAddCallbackhtmlDeleteCallbackhtmlSetTexthtmlGetTexthtmlPositionToIdhtmlIdToPositionhtmlAnchorToPositionhtmlAnchorToIdhtmlGotoIdhtmlGetHRefshtmlGetImageSrcshtmlGetLinkshtmlRetestAnchorshtmlSetSelectionhtmlGetSelectionhtmlClearSelectionhtmlSearchTexttestAnchorCallbackpointerMotionCallbackanchorCallbacklinkCallbacksubmitFormCallbackmakeListstart.75end.76patstr.77cb_decodecb_encodecb_errorgeom.cdpygeometrytclBasic.crcsidbuiltInCmdsfirstInterp.18initCmd.22tclCmdAH.ctclCmdIL.csortInterpsortModesortIncreasingsortCodesortCmdSortCompareProctclCmdMZ.cTraceVarProctclEnv.cenvironSizeEnvInitfirstInterpPtrEnvTraceProcFindVariabletclExpr.cfuncTableExprUnaryFuncExprBinaryFuncExprAbsFuncExprDoubleFuncExprIntFuncExprRoundFuncExprParseStringExprFloatErrorExprLexExprMathFuncExprGetValueExprMakeStringExprTopLeveltclGet.ctclGlob.cDoGlobtclHash.cStringFindStringCreateOneWordFindOneWordCreateArrayFindArrayCreateBogusFindBogusCreateHashStringRebuildTabletclHistory.cInitHistoryDoRevsMakeSpaceGetEventRevResultRevCommandSubsAndEvalGetWordsInsertRevtclParse.cQuoteEndVarNameEndtclProc.cProcDeleteProcInterpProcCleanupProctclUnixAZ.ccurrentDirCleanupChildrenStoreStatDataGetFileTypeGetOpenModetclUnixStr.ctclUnixUtil.cdetListFileForRedirectRestoreSignalsMakeFileTabletclUtil.cSetupAppendBuffertclVar.cnoSuchVarisArrayneedArraynoSuchElementdanglingUpvarLookupVarNewVarDeleteSearchesVarErrMsgCallTracesCleanupVarDeleteArrayParseSearchIdMakeUpvarArrow.cstip4_bitsactionsListactivate_and_start_timerstop_timerdefaultTranslationstimer_callbackcreate_arrowgccreate_arrowlightgccreate_arrowdarkgc_resolve_inheritanceexposeset_valuesextension_rec.24Board.cgenerate_locationget_core_geometryset_locationscaninterpret_locationresizequery_geometrygeometry_managerchange_managedset_abs_locationextension_rec.21Button.cactivateextension_rec.6Frame.cset_shadowcreate_darkgccreate_lightgccolor.12compute_topcolorcolor.16compute_bottomcolorclass_initializerealizecompute_insideextension_rec.23screenArg.27static_val.61static_val.62static_val.63static_val.64static_val.65static_val.69static_val.70static_val.71static_val.72static_val.76static_val.77static_val.78static_val.79static_val.83static_val.84static_val.85Group.cmake_textgcon_cboff_cbset_togglesstatic_val.18static_val.19static_val.20static_val.21static_val.22static_val.23static_val.24cvtStringToSelectionTypestatic_val.28static_val.29static_val.30static_val.31static_val.32cvtSelectionTypeToStringinsert_childextension_rec.36Gterm.cdefXDimdefYDimdefaultGtermTranslationsdefaultMarkerTranslationsgtermActionsListHandleIgnoreHandleGraphicsInputHandleDisplayCrosshairHandleTrackCursorHandleEnterWindowHandleLeaveWindowHandleSoftResetM_createInitializeRealizeDestroyResizeRedisplaySetValuesinit_iomapget_cursorset_default_color_indexGtMarkerFreeupdate_cursorupdate_transientsfull_crosshair.33erase_crosshaircolor_crosshaircolor_ginmodeCursordraw_crosshairsaveposgm_focusingm_focusoutinherit_default_colormaprequest_colormap_focusupdate_default_colormaprestore_colormap_focusinvalidate_draw_contextget_draw_contextmapVectorid.151blink_cursorvalid_mappingget_pixel_mappinginvalidate_cmapfree_mappingget_cmap_ininitialize_mappingupdate_mappingrefresh_sourceget_cmap_outsave_mappingget_pixelget_colormapmp_unlinkmp_linkafterrefresh_destinationload_mappingget_regionsget_rectsrect_intersectDestroyCachedXImageGetCachedXImageNewCachedXImagescale_intzoomscale_zoommf_getintenscale_nearestscale_bilinearscale_boxcarscale_lowpassmf_getpixellw_convolvebx_boxcarbx_interpbx_extractgm_classinitgm_text_initgm_line_initgm_plin_initgm_rect_initgm_boxx_initgm_circ_initgm_elip_initgm_pgon_initnull_rectmarkerActionsListM_destroyM_destroyNullM_setM_raiseM_lowerM_notifyM_inputM_markposM_markposAddM_redrawM_addPtM_deletePtM_movePtM_deleteDestroyM_moveM_resizeM_moveResizeM_rotateM_rotateResizegm_load_translationsnull_regiongm_request_translationsgm_do_callbacksgm_refocusgm_linkaftergm_erasegm_unlinkgm_getintgm_getattributegm_gettypegm_getfloatgm_getpixelgm_getfillstylegm_putfloatgm_putintgm_getstringgm_constraintgm_text_selectgm_text_markposgm_text_redrawgm_text_updategm_text_movegm_text_resizegm_selectgm_markposgm_redrawgm_text_updatePolygongm_setCurRectgm_rect_selectgm_rect_updategm_rect_movegm_rect_resizegm_rect_rotategm_rect_updatePolygongm_niceAnglegm_rotate_indicatorgm_boxx_selectgm_boxx_updategm_boxx_movegm_boxx_resizegm_boxx_rotategm_boxx_updatePolygongm_circ_selectgm_circ_updategm_circ_movegm_circ_resizegm_circ_updatePolygongm_elip_selectgm_elip_updategm_elip_movegm_elip_resizegm_elip_rotategm_elip_updatePolygongm_pgon_updatePolygongm_pgon_updategm_pgon_redrawgm_pgon_addPtgm_pgon_deletePtgm_pgon_movePtgm_pgon_movegm_pgon_resizegm_pgon_rotatecached_ximageHTML.cSelectStartExtendStartExtendAdjustExtendEndTrackMotionScroll_HTMLInput_HTMLpwdInputSpareActionsListGeometryManagerDrawExposeViewRedisplaysetScrollBarCreateScrollbarsVbarWidthHbarHeightConfigScrollBarsReformatWindowCallLinkCallbacksViewClearAndRefreshFindSelectAnchorSetAnchorDrawSelectionSetSelectionEraseSelectionClearSelectionUnsetAnchorChangeSelectionSelectionDoneLoseSelectionConvertSelectionRecolorInternalHRefsHTMLformat.cCompLineCompLineLenCompWordCompWordLenLineHeightInternalStrikeoutLineNumberFgBgUnderlinesDashedUnderlinesIndentLevelElementIdAnchorTextBaseLineLineBottomCurrentWidgetIdCurrentFormMaxWidthcurrentFontPreformatPF_LF_StateCharsInLineTextIndentNeedSpaceAdjustBaseLineMarginWPushFontFontStackPopFontProcessOptionIgnoreCurrentSelectTextAreaBufTitleTextListDataDescTypesaveFontLastBaseDescFontBaseHTMLimages.cNoImage_bitsDelayedImage_bitsAnchoredImage_bitsallocation_indexdef_colrs.24have_colors.25highbitHTMLlists.cHTMLparse.cAmpEscapesHTMLwidgets.cIcon.ccreate_image_gcextension_rec.12Label.cmake_gcmake_graygccount_linesset_labelextension_rec.15Layout.cClassInitializeQueryGeometryChangeManagedInsertChildtmp.18CvtStringToLayoutDisposeLayoutLayoutFreeLayoutLayoutLayoutGetDesiredSizeLayoutGetNaturalSizePrintGluePrintDirectionTabToPrintBoxLookupVariableEvaluateDisposeExprComputeNaturalSizesComputeSizesSetSizesListTree.cfolder_bitsfolderopen_bitsdocument_bitsactionsNotifySelectExtendUnsetMakePixmapFreePixmapDeleteChildrenDrawDrawAllLayoutPreferredSizeChangeSizeHighlightItemDrawItemHighlightClearHighlightChildrenHighlightAllHighlightVisibleChildrenHighlightAllVisibleAddItemToReturnListMultiAddToReturnHighlightCountMakeMultiCallbackStructHighlightDoCallbackMakeV1CallbackStructHistoricalCallbacksMakeActivateCallbackStructSelectDoubleSelectSingleGetItemDrawItemHighlightDrawItemDrawChildrenRemoveReferenceInsertChildrenSearchChildrenSearchPositionGetPositionMultiList.cUnselectTogglePreferredGeometryCreateNewGCsInitializeNewDataRecalcCoordsRedrawItemPixelToRowColumnRedrawRowColumnDestroyOldDatapixmap_bits.39NegotiateSizeChangeRedrawAllItemToRowColumnRowColumnToItemRowColumnToPixelsret_value.103RadioGrp.ccreate_togglesstatic_val.6cvtStringToStringArraynewStringArrayfreeStringArrayextension_rec.16RowCol.calign_childlayoutScrollbar.cupdownthumbscrollcopy_backgroundscroll_responseSlider2.cstartfinishdragcreate_gccreate_graygccreate_thumbgccreate_thumblightgccreate_thumbdarkgccompute_thumbmove_thumbcompute_infoextension_rec.30Tablist2Tabs.cTabs.caccelTabletabsConstraintResourcesTabsSelectTabsPageTabsHighlightTabsUnhighlightTabsClassInitTabsInitTabsRealizeTabsDestroyTabsResizeTabsExposeTabsSetValuesTabsAcceptFocusTabsQueryGeometryTabsGeometryManagerTabsChangeManagedTabsConstraintInitializeTabsConstraintSetValuesdefaultAcceleratorsGetPreferredSizesgetBitmapInfoTabWidthTabsAllocGCsTabsFreeGCsTabLayoutTabsShuffleRowsDrawTabsMakeSizeRequestDrawTabMaxChildPreferredSize2DrawHighlightUndrawTabDrawBorderTabsAllocFgGCTabsAllocGreyGCDrawTrimDrawFramePreferredSize3pixmap_bits.123TextWidth.cToggle.ctoggleswitch_onswitch_offcreate_on_gccreate_off_gcextension_rec.18cvtLong.cstatic_val.3laygram.cLayYYrcsiddestLayYYgrowstacklaylex.cLayYY_current_bufferLayYY_c_buf_pLayYY_initLayYY_startLayYY_acceptLayYY_ecLayYY_metaLayYY_baseLayYY_defLayYY_nxtLayYY_chkLayYY_hold_charLayYY_last_accepting_stateLayYY_last_accepting_cposcountLayYY_n_charsLayYY_get_previous_stateLayYY_try_NUL_transLayYY_get_next_bufferLayYY_did_buffer_switch_on_eofLayYY_fatal_errorLayYY_flex_reallocmy_LayYYinputLayYYunputinputLayYY_flex_allocLayYY_flex_freeLayYYsourceLayYYsourcebasescroll.cstrnchr.cpanic.cregexp.cregparseregnparregsizeregdummyregcoderegcregregnextregnoderegbranchregtailregoptailregpieceregatomreginsertregbolregtryreginputregstartpregendpregmatchregrepeattclAsync.casyncActivefirstHandlerlastHandlerCommon.cfocusInfocusOuttraverseDowntraverseUptraverseLefttraverseRighttraverseNexttraversePrevtraverseNextToptraverseHometraverseCurrentextraTranslationscvtStringToAlignmentstatic_val.10static_val.11static_val.12static_val.13static_val.14static_val.15static_val.16static_val.17cvtAlignmentToStringcreate_bordergctraverse_to_directiontraverse_to_nexttraverse_to_prevtraverse_to_next_topdestroyaccept_focushighlight_borderunhighlight_borderwould_accept_focustraversechoose_colorlighter_colordarker_colorextension_rec.71args.75DrawIString.cDrawString.cDrawingArea.cClassPartInitializeConstraintSetValuesGcs.cgetDitherPixmappixmap_bits.24screen0screen25screen75screen100pixmap_bits.40HTML-PSformat.cPS_oldfnPS_fontascentPS_oldfsGetDpiPSprintfPS_sizePS_lenPS_stringhexline.24digit.25PShexPS_hexifontstyle.29fnchar.30fontsizes.31medium_fontascent.32fontascent.33PSfontPSshowpagePSnewpagePS_curr_pagetxt.43PSinit_latin1PSinitPS_page_offsetPS_offsetPS_start_yfontname.50txt.51PSheaderPoints_PixelPStrailerPStextPSbulletPShrulePSmovetoPixels_PagePSmove_offsetPSrle_encodetxt.76PScolor_imagePScolormaptxt.83txt_color.84txt_gray.85PSrle_cmapimagePSwrite_bwPSimagebg_colorfg_coloriconutil.cFATALERRORWARNINGQUESTIONINFOsquare0square1diamond0diamond1square0ssquare1sdiamond0sdiamond1ssquare0msquare1mdiamond0mdiamond1minitializedinit_icon_quarksfilleddiamondqemptydiamondqfilledsquareqemptysquareqdiamond0sqdiamond1sqsquare0sqsquare1sqdiamond0mqdiamond1mqsquare0mqsquare1mqQUESTIONqFATALqERRORqWARNINGqINFOqnoneqfile_to_xpmimagedata_to_xpmimagebuild_colortabletable.15misc.cXpmRdFToI.cXpmCrIFrBuf.cXpmCrPFrData.cXpmCrDataFrI.cCountExtensionsCreateColorsCreatePixelsCreateExtensionsXpmCrIFrData.cdata.cRCS_VersionRCS_IdParseCommentcreate.cxpmVisualTypecloseness_cmpSetCloseColorSetColorCreateXImageSetImagePixels1SetImagePixels8SetImagePixels16SetImagePixels32SetImagePixels_reverse_byte_XReverse_Bytes_lomask_himask_putbitsRTXpm_byteorderpixelscan.cprintablestorePixelstoreMaskPixelGetImagePixels1GetImagePixels8GetImagePixels16GetImagePixels32GetImagePixelsScanTransparentColorScanOtherColorslow_bits_tablebyteorderpixelparse.cParseValuesParseColorsParsePixelsParseExtensionshashtable.cAtomMakeHashTableGrowsrgb.cAsciiText.cBox.cDoLayoutTryNewLayoutCommand.cSetHighlightUnhighlightGet_GCouterRegion.12innerRegion.13emptyRegion.14HighlightRegionPaintCommandWidgetShapeButtonDialog.cGetValuesHookConstraintInitializeCreateDialogValueWidgetForm.cdefault_valuedefEdgeformConstraintResourcesedgeType.3_CvtStringToEdgeTypeXtQChainLeftXtQChainRightXtQChainTopXtQChainBottomXtQRubberparentCvtArgs.7ChangeFormGeometryLayoutChildResizeChildrenTransformCoordGrip.cGripActionSetTextWidthAndHeightGetnormalGCpixmap_bits.27GetgrayGCcompute_bitmap_offsetsset_bitmap_info_RepositionList.cPreferredGeompixmap_bits.18GetGCsResetListCvtToItemFindCornerItemsItemInRectangleHighlightBackgroundPaintItemNameMenuButton.cPopupMenuPaned.cdefGripTranslationssubresourcesReleaseGCsDeleteChildPaneSetValuesAdjustPanedSizePaneSizeGetRequestInfoChoosePaneToResizeSatisfiesRule3SatisfiesRule2SatisfiesRule1LoopAndRefigureChildrenGetPaneStackPushPaneStackPopPaneStackRefigureLocationsCommitNewLocationsClearPaneStackRefigureLocationsAndCommit_DrawRect_DrawInternalBorders_DrawTrackLinesGetEventLocationStartGripAdjustmentMoveGripAdjustmentCommitGripAdjustmentHandleGripResortChildrenManageAndUnmanageGripsCreateGripSetChildrenPrefSizesChangeAllGripCursorsPanner.cActionStartActionStopActionAbortActionMoveActionPageActionNotifyActionSetSetValuesAlmostreset_shadow_gcreset_slider_gcreset_xor_gccheck_knobmove_shadowscale_knobrescaleget_default_sizeget_event_xyparse_page_stringPorthole.cfind_childSendReportlayout_childRepeater.cticfloatZeroHandleThumbMoveThumbNotifyThumbNotifyScrollEndScrollFillArea_ShadowSurroundedBoxPaintThumbPaintArrowsCreateGCSetDimensionsCompareEventsPeekNotifyEventLookAheadExtractPositionRepeatNotifyFloatInRangeFractionLocSimple.cChangeSensitiveconvertArg.6pixmap_bits.13ConvertCursorpixmap_bits.23SimpleMenu.cextension_recSetValuesHookAddPositionActionCreateLabelGetMenuWidthGetMenuHeightChangeCursorOnGrabMakeSetValuesRequestPositionMenuActionFindMenuPositionMenuGetEventEntrypos_action.63MoveMenuSme.cSmeBSB.cFlipColorsGetDefaultSizeCreateGCsGetBitmapInfoDestroyGCsDrawBitmapspixmap_bits.36SmeLine.cDestroyGCSmeThreeD.c_XawSme3dDrawShadowsshadowpm_bitsmtshadowpm_bitsmbshadowpm_bitsAllocTopShadowGCAllocBotShadowGCAllocEraseGCAllocTopShadowPixmapAllocBotShadowPixmapAllocTopShadowPixelAllocBotShadowPixelStripChart.cdraw_itrepaint_windowMoveChartText.cdefaultSelectTypesdefaultSelectTypesPtrdefWidthdefHeightscrollMode.6QScrollNever.7QScrollAlways.8QScrollWhenNeeded.9inited.10CvtStringToScrollModewrapMode.14QWrapNever.15QWrapLine.16QWrapWord.17inited.18CvtStringToWrapModeresizeMode.22QResizeNever.23QResizeWidth.24QResizeHeight.25QResizeBoth.26inited.27CvtStringToResizeModePositionHScrollBarPositionVScrollBarCreateVScrollBarVScrollVJumpUnrealizeScrollbarsDestroyVScrollBarCreateHScrollBarHScrollHJumpDestroyHScrollBardpy_list.61_CreateCutBuffersInsertCursorLineAndXYForPositionPositionForXYLineForPosition_BuildLineTableGetWidestLineCheckVBarScrollingFlushUpdateDisplayTextWindowPushCopyQueueUpdateTextInRectangleUpdateTextInLineMatchSelectionGetCutBufferNumberModifySelection_SetSelectionClearWindowDisplayTextFindGoodPositionDoSelectionExtendSelectionRectanglesOverlapProcessExposeRegionPopCopyQueueTranslateExposeRegionTextDestroyTextSink.cClearToBackgroundFindPositionFindDistanceResolveMaxLinesMaxHeightSetTabsGetCursorBoundsTextSrc.cReadReplaceScanSearchCvtStringToEditModeeditType.42QRead.43QAppend.44QEdit.45inited.46TextAction.cStartActionNotePositionEndAction_SelectionReceivedGetSelectionInsertSelectionMoveMoveForwardCharMoveBackwardCharMoveForwardWordMoveBackwardWordMoveForwardParagraphMoveBackwardParagraphMoveToLineEndMoveToLineStartMoveLineMoveNextLineMovePreviousLineMoveBeginningOfFileMoveEndOfFileScrollOneLineUpScrollOneLineDownMovePageMoveNextPageMovePreviousPage_DeleteOrKillDeleteOrKillDeleteForwardCharDeleteBackwardCharDeleteForwardWordDeleteBackwardWordKillForwardWordKillBackwardWordKillToEndOfLineKillToEndOfParagraphKillCurrentSelectionDeleteCurrentSelectionInsertNewLineAndBackupInternalInsertNewLineAndBackupLocalInsertNewLineInsertNewLineInsertNewLineAndIndentSelectWordSelectAllSelectAdjustSelectEndSelectSaveRedrawDisplayTextFocusInTextFocusOutcompose_statusAutoFillInsertCharInsertStringDisplayCaretMultiplyStripOutOldCRsInsertNewCRsFormRegionFormParagraphTransposeCharactersNoOpTextPop.cradio_trans_stringsearch_text_transrep_text_transDoInsertAddInsertFileChildrenCreateDialogSetWMProtocolTranslationsCenterWidgetOnPointPopdownFileInsertSetResourceByNameGetStringInsertFileNamedDoSearchPopdownSearchSetSearchLabelsSearchButtonAddSearchChildrenInitializeSearchWidgetSetResourceDoReplaceOneDoReplaceAll_SetFieldGetShellInParamsWM_DELETE_WINDOWWMProtocolscompiled_table.93app_context_list.94list_size.95TextTr.cThreeD.c_Xaw3dDrawShadowsToggleSetClassInitparentCvtArgs.6GetRadioGroupCreateRadioGroupAddToRadioGroupToggleDestroyTurnOffRadioSiblingsRemoveFromRadioGroupTree.ctreeConstraintResourcesConstraintDestroyinitialize_dimensionsget_tree_gcinsert_nodedelete_nodecheck_gravitylayout_treecompute_bounding_box_subtreeset_positionsarrange_subtreeset_tree_sizeViewport.cbarArgs.3CreateScrollbarScrollUpDownProcThumbProcclip_args.7GetGeometrySetBarRedrawThumbsMoveChildComputeLayoutComputeWithForceBarsTestSmallerGeometryRequestPlusScrollbarXawInit.cfirsttime.3Vendor.cXawVendorShellClassInitializeXawVendorShellInitializescreenConvertArg.6AsciiSink.cCharWidthPaintTextinsertCursor_bitsCreateInsertCursorGetGCAsciiSrc.cmagic_valueReadTextReplaceTextCvtStringToAsciiTypeInitStringOrFileLoadPiecesFindPieceRemovePieceMyStrncpyBreakPieceRemoveOldStringOrFileStorePiecesInStringFreeAllPiecesWriteToFileAllocNewPiecetype.90XtQEstring.91XtQEfile.92infoXSetInputFocusXFreePixmapXfwfMultiListHighlightItemTcl_DeleteInterpLayYYlexismNameToPtrXtDisplayToApplicationContexttclOpenFilesxfwfMultiListWidgetClassxim_setRopinfo_serverGtDrawPolylineTcl_ScanCmdxfwfFrameWidgetClassTcl_StringCmdLayYYsetsourceAnchorTagXSetWMProtocolsthreeDWidgetClassTcl_MergestrcpyasctimencolormapsXpmCreateXpmImageFromBufferXfwfCvtLongToStringTcl_RecordAndEvalXtOverrideTranslationslistClassRecformClassRecXCheckWindowEventXawTextSinkSetTabsXtAppPendinglogpannerWidgetClassXawSme3dComputeBottomShadowRGBsqrtXCreateFontCursorGtReadIomapcoshXCreateGlyphCursorpannerClassRecwaitpidTcl_TraceVarsimpleMenuWidgetClassXrmCombineDatabaseXCopyGCTcl_FormatCmdobjectClassGmMoveTcl_ConcatDraw3dBoxTcl_ScanElementXTextWidth16xfwfScrollbarClassRecXmuInternStringsXmuCompareISOLatin1GmNotifyXFillRectanglesobmNewObjectCBoptionget_plain_textXSetWindowBackgroundXtDestroyGCpopenFreeCommaListXChangeActivePointerGrabprintfget_geometryvsprintfXtMakeGeometryRequestGtWritePixelsxpm_xynormalizeimagebitsrandomwmShellWidgetClassDocumentWidthXawTextSinkFindPositionwriteTIFFXDefaultColormapOfScreenXDrawStringXtGetApplicationResourcesGtSetRasterXpmCreatePixmapFromDataXtAppSetFallbackResourcesXCreateRegionXtQueryGeometryXtSetValuesXCopyPlaneTcl_ExprDoubleGmGetVerticesGtDrawMarkerGtActivatexfwfRowColClassRec_XawDefaultTextTranslationsHTMLGetHRefs_XawTextInsertFileActionXawSme3dComputeTopShadowRGBLayYYsetdestTcl_ReadCmdCollectSubmitInfoHRulePlaceTcl_LreplaceCmdXawTextSinkResolveParseTextToPrettyStringAddNewWidgetSysErrorMsgTcl_RegsubCmdGtDeactivateungetcTclDeleteVarsXawTextSinkMaxLinesSetElementXSyncListTreeFindSiblingNameTcl_RegExpMatchXIntersectRegionxfwfGroupWidgetClassXUnionRegionGtPostResizeProcwidget_setTTNameXfwfTablist2TabsGmStrToEventGtRefreshPixelsXDrawLinesstrerror___toupperLayYYwrap_XawTextPrepareToUpdatexpmHashInterngeteuidXDrawImageString_XawTextReplacexpmReadFilexim_setCursorPos_XawTextActionsTablexfwfBoardWidgetClassXDefineCursorAnchoredHeightXFreeCursorXawTextSourceReadLayYYparsewriteFITSXtErrorMsgXDrawPointmemmoveXtVaGetValuesxim_labelTilesParseTextToPSStringXMapWindoweps_closeGtSetLineStylepcloseXfwfDrawImageStringgetGIFHdrxim_saveFileTcl_LlengthCmdxim_clientExecuteTcl_AddErrorInfoGmGetBoundingBoxtcl_MathInProgressTcl_SplitCmdcoordTypeTcl_CdCmdTcl_VarTraceInfocreateXPixmapListNumberPlacetclRegexpErrorTcl_ErrnoIdGtermClassDestroypanedWidgetClassXawTextGetSourceListTreeRenameItemprint_mappings_DYNAMIC_XA_TEXTXtCreateManagedWidgetListTreeFirstItemXRotateBuffers_XA_TARGETSXGetVisualInfoTcl_GlobCmdAddObjxfwfRowColWidgetClassXawTextSinkDisplayTextgetIRAFHdrHTMLGetTextGtEndDialogxfwfRadioGroupClassRecNoImageXCloseDisplayLayYYssp_XtInheritTranslationsTcl_ExitCmdLayYYinbswap8XpmFreeAttributesXtGetValuesgetenvceilxim_clientClosexim_addInput_XtInheritXtErrorXtOwnSelectionTcl_CaseCmdxpmInitXpmImageGtAssignRasterxim_eraseFrameXFetchBuffererrno__srgetximp_cancelxpmHashTableFreefloorXtAppMainLoop_etext_XawTextInsertFileXRaiseWindowTriggerMarkChangesWidgetRefreshCBResetFormhsv_to_rgbXfwfMultiListGetItemInfoxpmHashTableInitxim_saveCloseTcl_InitppmquantXtAppAddInputeps_setColorTypeLayYYerrflagTclUnsetEnvgetpidXtFreeXawPanedSetMinMaxPreformatPlaceXmuPrintDefaultErrorMessagesmeLineClassRecElementLessThanqsortAllocShadeGCfirst_colorGmRaisefscanffgetsGtResetXawTextSetInsertionPointLinefeedPlacewidgetGetPointerxim_iisCloseloadIRAFXawSimpleMenuGetActiveEntryXpmCreateImageFromXpmImageXmuCvtStringToBitmaptextSinkClassReccmapScaleXpmCreatePixmapFromXpmImagexim_initSaveTclParseQuotesXLoadFontListTreeRefreshOnXtGetMultiClickTimeGtEraseDialogXmuCvtStringToLongmemcpyHTMLGetWidgetInfoParameterClassInitwidgetClassRecXawTextReplaceFreeImagesGmRedrawSwapElementsXawPanedGetMinMaxXtAppPeekEventTcl_HistoryCmdv_orientmenuButtonClassRecListTreeReparentperrorTcl_GetOpenFileGtermCreateXPolygonRegioncreatListTreeSetHighlightedreadlinkXpmReadFileToImageMakeLineListXtMakeResizeRequestxfwfCommonWidgetClass_XawTextExecuteUpdatexim_onsigXtPopupGmDeleteCallbackdup2get_textHTMLAnchorToIdObmDeliverMsgFromFileXpmCreateXpmImageFromPixmapxfwfRadioGroupWidgetClasstolowergetuidGtInsertPixmapglobal_obm_handlesystemLayYYrindexXmuCvtStringToBackingStoreAlreadyCheckedXpmCreateImageFromBufferGtRasterInitmallocmenuButtonWidgetClass_XawTextVScrollisattyxpm_znormalizeimagebitsXtRegisterGrabActionXtIsRealizedendpwentIsMapFormeps_setCornersListTreeHighlightItemGtGetClientPixelGtDrawPolygonWidgetClassInitXCreateImageXfwfCvtStringToScrollReasonXmuInternAtomxim_retCursorValxim_printXSetForegroundXtRemoveWorkProcXFillPolygonGtDisableMappingrhashCBActivateFieldListTreeFindChildNameXawTextUnsetSelectionXfwfMultiListIsHighlightedLayYYvscommandWidgetClassGtSetTextResObmOpensys_nerrTcl_ExecCmdxim_msgiXmuUpdateMapHintsFreeLineListXGetWindowAttributescaseless_equalXtAllocateGCfindPixmapisGIFstrtoulXtCreatePopupShellXtCalloc_XA_CHARACTER_POSITIONdialogClassRecwidgetEventStateTcl_ReturnCmdmktempTclReadloadFITSxim_fitFrameXAllocNamedColorXtRemoveTimeOutxim_loadFilesmeThreeDClassRecHTMLRetestAnchorsXLookupColorGtSetPhysResxim_alertXpmWriteFileFromBufferXtManageChildrensocket_XA_COMPOUND_TEXTobmDisplayTcl_ReapDetachedProcsxim_matchFramesreaddirAllocGreyGCxim_readDisplayXQueryTreeXFreeGCXtSetSensitivecreatePixmapXtGetActionListGtMapVectorxpmGetString_XawTextDoReplaceActionMakeOptionMappingsXCopyAreaGmStrToTypeisspaceAllocArmGCXawTextSinkGetCursorBoundstabsWidgetClassxim_scanHeadersConditionalLineFeedxim_setFlipxim_initLoadfflushcolorToIndexLayYY_scan_stringWidgetEvaluateXSetClipMaskcvtStringToShadowSchememap_table_XEditResCheckMessagesHTMLGotoIdXtShellStringsXfwfConnectScrollingWidgetsMapOptionReturndelayed_imageXSetWindowBorderPixmapXUndefineCursorpoint_in_polyXawListChangeTcl_UplevelCmdGmAddPtLayYYvalParseCommaListtextSrcClassRecGmSelectXtIsManagedXtWarningFindHRefTclSetEnvXawScrollbarSetThumbXMoveResizeWindowXawTextSinkClearToBackgroundImageSubmitFormxim_clientOpenXmuReshapeWidgetXStoreColorsDelayedImageDataXKeysymToStringXawAsciiSaveAsFilexfwfIconClassRecXtConvertAndStorexim_initFramelseekXDestroyRegionanchored_imagecvtStringToIconXGetWMColormapWindowsTcl_AppendElementXtRemoveInputXmuCvtStringToColorCursorobmRemoveCallbackListTreeAddLayYY_init_buffer_XawTextPopdownSearchActionGtClearScreenFormatPlacefreeIconXtAppErrorMsgListTreeOrderSiblingsxpmDataTypesLayYYrestartximp_renameListTreeReparentChildrenbzeroformWidgetClassisIRAFTclRegCompBulletPlaceXtRemoveEventHandlerGtGetCursorPosabortXawListShowCurrenteps_setLabelXawViewportSetCoordinatesTcl_PwdCmdAddHRefGtDrawAlphaTextXfwfMultiListUnhighlightItem_XA_SPANExpandEscapesGtReadPixels_XawTextSetScrollBarsTclParseNestedCmdXUngrabServersetTextSizeXtMallocGtLowerMappingcvtFrameTypeToStringfillTypeCBSubmitForm_initXtAppWarningXpmGetErrorStringxfwfSlider2ClassRectoggleClassRecGtStartDialogxim_getCursorPosLayYYnerrsListTreeRefreshfindBitmapXMaxRequestSizexpmInitXpmInfosstrtolpipeTcl_ConvertElementXtWindowObmDeliverMsgXtStringConversionWarningTcl_LrangeCmdXGetImage_DefaultRuneLocaleXtScreenOfObjectXmuCreatePixmapFromBitmapGmResizeAddNewFormisFITSxfwfToggleClassRecXtResizeWidgetacceptTcl_CloseCmdXtConvertTclSetupEnvsimpleMenuClassRecXtDisplayStringConversionWarningLayYY_scan_bytesXpmCreateXpmImageFromDatarenameXawTextDisplayTcl_VarTraceInfo2MakeImagestrrchrXtInitializeWidgetClassTcl_EvalCmdlineStyleGmAddCallbackXRectInRegionXTextWidthcreate_TIFFtagobmUndisplayGtRaiseMappingcallocTcl_SetResultoverrideShellWidgetClassXmuCvtStringToOrientationGtInitMappingsxpmFreeRgbNamesXtCloseDisplaystripChartWidgetClasslayoutClassRecxim_ismOpenTcl_GetBooleanXpmFreeExtensionsXaw3dComputeBottomShadowRGBXmuCopyISOLatin1LoweredXDrawString16Tcl_EofCmdXLookupStringstrtodTcl_NextHashEntryGtGetLogResXawTabsSetTopXawListHighlightListTreeOrderChildrenTcl_SeekCmdTcl_TimeCmdinfo_imtoolrcAllocBackgroundGCXtAppSetWarningMsgHandlerClientClassInitTcl_AsyncMarkTcl_LindexCmdobmAddCallbackAlphabetizeItemsxpmFreeColorTablewriteHTMLCreateTcl_SetCmdXawTextDisableRedisplayUiObjectsTcl_EvalFileTcl_PrintDoubleGmDestroyatofvPanedWidgetClassenvironTcl_IncrCmdobmClientCommandTclCompileRegexpXtGetGCListTreeGetItemPositionfstatfprintf_XawTextActionsTableCountkilltextClassRecctimeTclParseWordsXtParseAcceleratorTablecompositeClassRecTcl_OpenCmdasciiSinkClassRecinfo_clientsstrcatXawTextSourceSearchXSetRegiondefgui_textbindNextCommaXfwfMultiListToggleItemXmuCvtStringToJustifyXDrawArcXpmCreateImageFromDataListTreeRefreshOffGtSetCharSizeTclGetFrameXtCallCallbackListTcl_ArrayCmdTcl_CreateInterpTcl_CreatePipelineTcl_WhileCmdXfwfSetScrollbarTcl_LinsertCmdLayYY_flush_bufferListTreeDeleteChildrenXfwfDrawFrameTcl_AsyncDelete__deregister_frame_infoXPointInRegionLayYYgindexgtermWidgetClasswcspix_disconnectendTcl_UnsetVar2chdir_XawTextSetSelectionInfoToImagelisttreeWidgetClassXtCallAcceptFocuscvtStringToFrameTypeXtReleaseGCxpmNextUI_XA_NULLXCreateBitmapFromData_XawTextDoSearchActionoverrideShellClassRecXSendEventXQueryPointerTclRegExecXSetWMHintssetsockoptTcl_FlushCmdXtAddCallbackXRecolorCursorObmRemoveCallbackfseekTcl_ContinueCmdxpmOpenArrayxpmInitAttributesTcl_BreakCmdTcl_LsortCmdObmInitializexfwfScrollbarWidgetClassGtSetMappingXpmAttributesSizeXawTextSetSelectionArrayTcl_UntraceVarTclOpenxim_ismCloseXGetGCValuesWidgetCreateXtScreenfmodHTMLSetTextcosXTextExtentsGtAugmentTranslationsboxWidgetClasstanhXawTextSourceReplaceHTMLClassInitGtDeleteInputProcism_modulesGtDeleteResetProcXtAppCreateShellFreeDelayedImagesXReparentWindowwaitGtPostResetProcxim_highlightFrame_XawTextShowPositionLayYYdgotoXtRemoveCallbackParseMarkTagXtCallActionProcXawTextSinkMaxHeightXFreeTcl_SplitListCreateElementXtPopdownTcl_DStringFreeXMapSubwindowsFindColorFormatChunktextSinkObjectClassism_nmodulesTcl_UnsetVar__prognameXawTextSetSource_startlstatis_swappedTcl_ErrorCmdXawTextSourceScanServerClassInitstrstrxpmOpenBufferGmCreateXtGetSelectionValueGtGetAlphaTextSizeXtWindowOfObjectFindDelayedImageXBellTcl_InitHashTablesin__errorwidget_getTTNamerandTcl_DStringEndSublistXtLastTimestampProcessedLayYYlhsListTreeGetHighlightedGtBellXawToggleSetCurrentXtParentXfwfTextWidthatan2GtSetFillTypeTcl_SetCommandInfoxpmGetCmtsignalXFreeColorsreadXPeekIfEventobjidXSetRGBColormapsTcl_DetachPids___runetypeTcl_GlobalEvalListTreeHighlightAllXSetErrorHandlerTcl_SetVarisupper_XawTextAlterSelectionXfwfCallComputeInsideXAllocColorCellsscrollbarWidgetClassstrncmpwcspix_messageGtNRastersXawAsciiSourceChangedLayYY_scan_bufferxim_dirRescanTcl_CommandCompleteXfwfMultiListSetNewDataXtManageChildXSetIOErrorHandlerGmMovePtXtDisplayAllocGreyPixelGmRedisplayCBTextDestroyGtGetMappingismObjectsTcl_DStringAppendElementGtNDCToPixelXfwfResizeThumbLayYYvsptclNumFilesTcl_DeleteHashTableTclFindElementLinefeedRefreshism_messagelisttreeClassRec_XA_LENGTHWidgetClassDestroypowXawTextSourceConvertSelectionXParseGeometrystrncpyTcl_AppendCmdunlinksinhXSetDashesXChangePropertyobmDestroyObjectstrcasecmpXmuDistinguishablePixelsdataLevelTypelog10XtSetKeyboardFocusprecTableTcl_DStringAppendTcl_GetCommandInfoGmGetAttributesxfwfArrowWidgetClassobjectClassRecListTreeDeletexpmColorKeysLayYY_delete_bufferObmCloseObmActivatedWidgetPlacereallocHTMLSetSelectionloadGIFzscalehtmlClassRecGtLoadColormapobmFindObjectXtIsSensitivepanicxim_writeDisplayxpmParseDataXSetBackground_CurrentRuneLocalexim_removeInputconstraintClassRech_orientXtCreateWindowXpmCreateDataFromXpmImageXawPanedGetNumSubGtWriteAlphaCursorPrepareFormResetclean_white_spaceTcl_ResetResult_XawTextGetTextGmSetVerticeslabelClassRecXrmGetDatabasemin_maxbcopyxpmDataCloseHTMLParseXKeycodeToKeysymlistenTcl_GetDoubleTcl_CreateMathFuncTclWritefindCursorCBChangeRadiofdopenGtPostInputProcTcl_DeleteHashEntry__sFXmuAddInitializerforkXCreateColormapsscanfMakeWidgetNoImageDataGtReadyGtWriteColormapXawTextSourceSetSelectionGtNextRasterTcl_ForCmdXfwfMultiListGetHighlightedXtAppError_XawTextNeedsUpdatingXawFormDoLayoutsmeBSBClassRecdrawingAreaWidgetClassstrncatGtFreeColormapviewportClassRecoperatorStringsGtGetDialogTextSizebaseClassesXawDialogGetValueStringxim_closeXParseColorXShapeCombineMaskXClipBoxXQueryColorTcl_UnsetCmdListTreeUserOrderSiblingsAllocGreyPixelCXfwfMultiListUnhighlightAll_XawTextSearchXawInitializeWidgetSetfreadTcl_DontCallWhenDeletedGtSetLogResTcl_GetVarXConfigureWindowwidgetToObjectGtGetRasterstrdupTcl_BackslashXmuCvtStringToCursorXpmReadFileToBuffer_XawTextBuildLineTablesmeObjectClassListTreeClearHighlightedXawViewportSetLocationLayYYoutLayYYerrorgripWidgetClassTcl_IfCmdGtWriteIomapXShapeQueryExtensionindexXawAsciiSavegettimeofdayfreeMenuLayYYlenRefreshTextRangeHTMLClassDestroyBulletRefreshxim_initPrinterOpsfopen__bss_startGmStrToFunctionxfwfMultiListClassRecLayYYlvalXtDestroyWidgetxim_setMappinglocaltimememsetLayYYdefredGtSelectRasterHTMLIdToPositiongetFITSHdrXGetWMNormalHintsmainGmMarkposxim_iiscolormapinfo_wcsHTMLFreeImageInfoXtNameToWidgetXtAppAddActionsxim_resizeportholeWidgetClassXtNameTcl_RenameCmdftellXtAppWarningMsgobmGetClassrecXSetWindowBackgroundPixmap__swbufsrandTcl_AppendResultXSynchronizetreeClassRecXStoreBufferListTreeGetPathnameFromItemXtSetMappedWhenManagedGtSetColorIndexsimpleClassRecXGContextFromGCHRuleRefreshXtOpenDisplayTcl_SourceCmdLayYYtextXmuCvtStringToShapeStyleobmClassfclosexim_frameLabelLayYYcheckTclWordEndbswap2XDrawLinesys_errlist_XawTextGetSTRINGXmuCallInitializerstimeObmAddCallbackopendirxpmGetRgbNameScrollMoveTcl_SignalMsgLayYYcharXtAugmentTranslationsTcl_PutEnvTcl_DeleteCommandsmeThreeDObjectClassGtDrawPolymarkergripClassRecGtActiveMappingXtDisplayOfObjectTcl_PidCmdeps_setTransformstripChartClassRecisalnumXGrabServertmpnamXtConfigureWidgetisprintexpCBListDestroyComposeCommaListXfwfMoveThumbLayYYsindexXSetTSOriginTcl_ExprCmdXtGetResourceListwcspix_connectXTranslateCoordinatesXSubtractRegionTcl_ExprBooleanxpmHashSlotLocateElementxpmWriteFilestrcmpXawTextEnableRedisplaycolormapsXtDisownSelectionXSetWindowBorderLayYYstacksizeasciiSrcClassRecXfwfMultiListHighlightAllXawPanedSetRefigureModecreateBitmapxim_badVisualxim_encodewcstopLevelShellWidgetClasstanstrnchrXQueryColorsTcl_GetIntTclCopyAndCollapseXawTextSinkInsertCursorgetpwuidximtool_dataTcl_AsyncCreatetclTypeTableno_image_XawTextSelectionListsmeLineObjectClassXtAddEventHandlerGtDeleteResizeProcgetcwdXmuCvtStringToGravityxims_cancelObmResourcesXSetCloseDownModegetpwnam_XawTextZapSelectionlistWidgetClass_finiHTMLAnchorToPositionxfwfArrowClassRecGtSetCursorTypeTcl_PutsCmdTcl_DStringTruncXDrawPointsapp_contexteps_setPageGtSetCursorPosatanfgetcgethostnamexim_getPrinterInfosprintfxfwfLabelWidgetClassxim_enhancement_XawTextSetFieldxfwfSlider2WidgetClassDelayedImageTcl_FirstHashEntryxim_initializexim_setFrameatexitXrmStringToQuarkstrcspnXGetAtomNameeps_getImagePos_XawTextClearAndCenterDisplayGtMarkerInitHTMLGetTextAndSelectionXtAppProcessEventasinWidgetDestroyatouiGetWidgetFontTcl_ForeachCmdTcl_DeleteTraceTclWaitpidListTreeGetPathnamevendorShellWidgetClassXClearAreaXtIsSubclassHTMLClearSelectionlabelWidgetClassLayYYlengTcl_SwitchCmdXawTabsSetHighlightTcl_CreateCommandTcl_ProcCmdsrandomTcl_ListCmdLayYYtableget_markXawTreeForceLayoutTcl_LappendCmdTclFindProcasciiSrcObjectClassdrawingAreaClassRecXInternAtomGtQueryColormapcommandClassRecTcl_UntraceVar2XtAppAddTimeOutXtSetTypeConvertergetSunRasHdrXpmCreateXpmImageFromImageGtExtractPixmapXawToggleGetCurrentFreeColorsXAllocColorXStoreBytesGtNextMappingximtool_versionFreeHRefsapplicationShellWidgetClassListTreeUserOrderChildrenxfwfCommonClassRecXCreatePixmapCursorGtPixelToNDCTclParseBracesTcl_RegexpCmdfputcHTMLPositionToIdUsageXpmFreeXpmInfosXSetFontGmSetAttributecallbackTypesxim_registerFramesTclIsProcwriteGIFXawTextSetSelectioncoreWidgetClassXawTextSearchTcl_GlobalCmdxim_onScreenXSetFunction_XA_DELETEXFillArcUnMuckTextAreaValuetcl_AsyncReadyTcl_GetVar2Tcl_InfoCmdvendorShellClassRectreeWidgetClassxim_tileFrameswidgetClassxim_shutdownxim_setColormapism_evaluateXWithdrawWindowGtRefreshMappingbswap4xpmParseHeaderXFlushhtmlWidgetClassXfwfDrawStringGtEraseAlphaCursorTcl_TellCmdAllocFgGCTcl_SignalIdnprinterswmShellClassRecxim_getAntialiasLineFeedXScreenNumberOfScreenXawTextTopPositionLayYY_load_buffer_stateXrmGetStringDatabaseXtInstallAllAcceleratorsstatXtCallCallbackssimpleWidgetClassxfwfBoardClassRecboxClassRecscrollbarClassRecTcl_CallWhenDeletedxfwfGroupClassRecisdigitXawTextDisplayCaretFormatAllAllocShadowPixelfwriteGtSetPixelsstrpakXtAddConverteraccesstextSrcObjectClassloadSunRas_edataXtReallocAddEle_GLOBAL_OFFSET_TABLE_GtDrawDialogText_endwcspix_commandXDrawRectangledialogWidgetClass_XawTextCheckResizendcToPixelXawToggleChangeRadioGroupeventTypesXtRealizeWidgetGtFlushTcl_AsyncInvokexim_refreshgtermClassRecXGetGeometryXSetWMColormapWindowseps_setCompressXSetLineAttributesGtNextColormapTcl_EvalGtReadColormapTcl_TildeSubsttabsClassRecTextAreaAddValue_XA_LIST_LENGTHImageRefreshXtVaSetValuesIsDelayedHRefTcl_ParseVarLayYY_create_bufferGtDebugObmActivateXawTextGetSelectionPosHTMLDestroyviewportWidgetClassXUnionRectWithRegionScrollWidgetsXtPopupSpringLoadedxfwfFrameClassRecMarkerClassInitLayYY_switch_to_bufferXmuConvertStandardSelectionGtermDestroyXSetClipOriginTcl_CreateTraceLayYYdebugAddDelayedImageFMT8BITobm_nameToObjectListxpmNextStringIsIsMapFormexiteps_initGtOverrideTranslationsTcl_JoinCmdGtQueryRasterasciiTextClassRecsmeBSBObjectClassxt_errorwriteSunRasasciiTextWidgetClassXfwfGetThumbXawTextSinkFindDistancethreeDClassRecXrmSetDatabaseGmSetAttributestransientShellWidgetClassXtAppInitializexfwfIconWidgetClassTcl_DStringResultObmGetInterpxim_messagexim_loadCloseXClearWindowXtParseTranslationTablemenuWidgetListXmuNewCvtStringToWidgetTcl_SetVar2TclPrecTraceProctoggleWidgetClassatoiXawSimpleMenuClearActiveEntryXtCreateWidgetXShrinkRegionDelayedHRefXQueryFontXtUnmanageChildrenGtCreateRasterTcl_PosixErrorTextRefreshGtCompareMappingsclean_texteps_setCmapXFillRectangleeps_getImageSizeMapWidgetslayoutWidgetClassXtUnrealizeWidget_exitXtTranslateCoordsParseTextToStringGtGetPhysResshellWidgetClassGtermClassInitxfwfButtonWidgetClassGtEnableMappingXSetStippleeventMasksJumpMoveXtVaCreateManagedWidgetImagePlaceXawListUnhighlightMaxTextWidthTcl_LsearchCmdGmGetAttributexerrorXGetRGBColormapsxfwfLabelClassRecin_anchor_cursoropenGtDestroyRasterXpmFreeXpmImageHideWidgetsTcl_DStringStartSublistxim_cursorModexims_renameprintoptionXWarpPointerobmGenericClassDestroyxim_setDisplayFrameXSetGraphicsExposureshsizeTcl_TraceCmdGtSetLineWidthxim_iisiomappanedClassRec__assertrepeaterWidgetClassXtWidgetToApplicationContextTcl_DStringInitXtUnmanageChildFreeObjListXawToggleUnsetCurrentxim_setZoomstrchrTcl_StringMatchObmStatus_XawTextSaltAwaySelectionXCreatePixmapFromBitmapDataGmCopysmeClassRecfputsexecvpxpmNextWordTcl_EnterFileTcl_SetErrorCodexioerrorXGetFontPropertyisSunRasXtMoveWidgetHardLineFeedeps_printPlaceLineGtTimerInhibitclosediracosXawSimpleMenuAddGlobalActionsXawPanedAllowResizeTclRegErrorXpmReadFileToXpmImageXVisualIDFromVisualXawDialogAddButtonPartialRefreshXawTextInvalidateTcl_ConcatCmdhypotTcl_GetsCmdxim_iisOpenParseMarkTypeXrmQuarkToStringObmDeactivateXaw3dComputeTopShadowRGBTcl_HashStatsfcntlprinter_listtextWidgetClassXawAsciiSourceFreeStringTcl_ExprStringrepeaterClassRecXPutImageTcl_FileCmdTcl_TraceVar2XawTextGetInsertionPointxpmReadRgbNamesXCreatePixmapNewFontXUnmapWindowportholeClassRecXtStringsLayYYsslimHTMLGetImageSrcsstrcpy_or_grow__register_frame_infoTcl_CatchCmdHTMLFreeWidgetInfoTclExpandParseValueGmLowerxim_delFrameasciiSinkObjectClassxim_setReferenceFrameTcl_VarEvalcloseTclGetListIndexGtFreeMappingxim_getScreenXtAppAddWorkProcXSetFillStyleScrollToPosXCreateGCcvtShadowSchemeToStringXpmCreateDataFromImagecaseless_equal_prefixPrepareFormEndGmRotatefindIconXOpenDisplayxfwfToggleWidgetClassHTMLGetLinksxim_iisioLayYYssXrmPermStringToQuarkTcl_SetRecursionLimit___tolowerGmDeletePtTcl_UpvarCmdrectObjClassRecxim_resetfreeHTMLSearchTextxfwfButtonClassRecGtSetDataLevelTcl_FilePermissionsGtCopyRasterXtVaGetApplicationResourcesXmuLocatePixmapFileTcl_ExprLong