BUILD.rtf                                                                                           0120755 0000356 0000000 00000000000 07665677454 015546  2znek/MulleNewz/BUILD.rtf                                                                            ustar   znek                            wheel                                                                                                                                                                                                                  GPL.txt                                                                                             0120755 0000356 0000000 00000000000 07665677454 015164  2znek/MulleNewz/GPL.txt                                                                              ustar   znek                            wheel                                                                                                                                                                                                                  README.rtfd                                                                                         0120755 0000356 0000000 00000000000 07665677454 016252  2znek/MulleNewz/README.rtfd                                                                          ustar   znek                            wheel                                                                                                                                                                                                                  znek/                                                                                               0040755 0000356 0000000 00000000000 07665677451 010701  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/CVS/                                                                                           0040755 0000356 0000000 00000000000 07665677451 011334  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/CVS/Root                                                                                       0100644 0000356 0000000 00000000063 07665677451 012176  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/CVS/Repository                                                                                 0100644 0000356 0000000 00000000016 07665677451 013430  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  znek/CVS/Entries                                                                                    0100644 0000356 0000000 00000000002 07665677451 012655  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  D
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              znek/CVS/Entries.Log                                                                                0100644 0000356 0000000 00000000022 07665677451 013377  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  A D/MulleNewz////
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              znek/CVS/Entries.Static                                                                             0100644 0000356 0000000 00000000000 07665677451 014101  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/                                                                                     0040755 0000356 0000000 00000000000 07665677453 012625  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/CVS/                                                                                 0040755 0000356 0000000 00000000000 07665677452 013257  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/CVS/Root                                                                             0100644 0000356 0000000 00000000063 07665677451 014120  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/CVS/Repository                                                                       0100644 0000356 0000000 00000000030 07665677451 015346  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek/MulleNewz
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        znek/MulleNewz/CVS/Entries                                                                          0100644 0000356 0000000 00000003575 07665677452 014622  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /BUILD.rtf/1.7/Sat Mar  1 16:25:34 2003//
/DecoderTest_main.m/1.2/Tue May 20 12:58:24 2003//
/Dockling.h/1.1.1.1/Mon Jul 23 06:50:22 2001//
/Entity2String.plist/1.3/Thu Mar 13 04:19:54 2003//
/FactorySettings.plist/1.7/Tue May 20 12:58:24 2003//
/GNUmakefile/1.3/Sat Aug 31 15:10:31 2002//
/GPL.txt/1.2/Sun Jul 28 23:33:45 2002//
/MKNAppDelegate.h/1.2/Sun Jun 16 23:23:11 2002//
/MKNAppDelegate.m/1.5/Tue Mar  4 23:45:07 2003//
/MKNConstants.h/1.1/Sat Mar  1 16:26:05 2003//
/MKNConstants.m/1.1/Sat Mar  1 16:26:05 2003//
/MKNDockling.h/1.7/Tue Mar  4 22:03:26 2003//
/MKNDockling.m/1.14/Tue Mar  4 23:45:07 2003//
/MKNPTableView.h/1.1/Sat Mar  1 16:25:34 2003//
/MKNPTableView.m/1.1/Sat Mar  1 16:25:34 2003//
/MKNPreferencesController.h/1.1/Sat Mar  1 16:25:34 2003//
/MKNPreferencesController.m/1.5/Tue Mar  4 23:45:08 2003//
/MKNPreferences_main.m/1.1/Sat Mar  1 16:25:34 2003//
/Makefile/1.1/Tue Jul 24 23:54:12 2001//
/Makefile.postamble/1.1/Tue Jul 24 23:54:12 2001//
/Makefile.preamble/1.1/Tue Jul 24 23:54:13 2001//
/MarkupTagProcessor.h/1.1/Sun Jul 14 20:03:44 2002//
/MarkupTagProcessor.m/1.1/Sun Jul 14 20:03:44 2002//
/MarkupTags.plist/1.3/Fri Jan  3 16:21:51 2003//
/MulleNewz.classes/1.1/Sun Jun 16 23:23:11 2002//
/MulleNewz.gorm/1.1/Sun Jun 16 23:23:11 2002//
/MulleNewz.iconheader/1.1/Tue Jul 24 23:54:13 2001//
/MulleNewz.tiff/1.1/Tue Jul 24 23:54:13 2001/-kb/
/MulleNewzApp_main.m/1.1/Sun Jun 16 23:23:11 2002//
/MulleNewzInfo.plist/1.1/Sun Jun 16 23:23:11 2002//
/MulleNewz_main.m/1.1/Tue Jul 24 23:54:13 2001//
/NSString+XMLExtensions.h/1.3/Tue May 20 12:58:24 2003//
/NSString+XMLExtensions.m/1.5/Sun Jul 14 17:21:46 2002//
/PB.project/1.1/Tue Jul 24 23:54:13 2001//
/README.rtfd/1.1/Fri May 30 15:56:26 2003//
/h.template/1.1/Tue Jul 24 23:54:14 2001//
/libdockling_glue.a.orig/1.2/Thu Feb 27 15:27:37 2003//
/m.template/1.1/Tue Jul 24 23:54:14 2001//
/main.m/1.3/Sun Jun 16 23:23:11 2002//
D
                                                                                                                                   znek/MulleNewz/CVS/Entries.Log                                                                      0100644 0000356 0000000 00000000121 07665677453 015323  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  A D/English.lproj////
A D/MulleBasicXML////
A D/MulleNewz.pbproj////
A D/RSS////
                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/English.lproj/                                                                       0040755 0000356 0000000 00000000000 07665677452 015342  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/CVS/                                                                   0040755 0000356 0000000 00000000000 07665677452 015775  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/CVS/Root                                                               0100644 0000356 0000000 00000000063 07665677452 016637  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/English.lproj/CVS/Repository                                                         0100644 0000356 0000000 00000000046 07665677452 020074  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek/MulleNewz/English.lproj
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/English.lproj/CVS/Entries                                                            0100644 0000356 0000000 00000000355 07665677452 017331  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /InfoPlist.strings/1.4/Tue Mar  4 22:03:29 2003//
/MKN.nib/1.2/Fri May 30 15:56:26 2003//
/MKNPreferences.nib/1.5/Fri May 30 15:56:26 2003//
/MulleNewz.nib/1.3/Fri May 30 15:56:26 2003//
/Preferences.nib/1.3/Fri May 30 15:56:26 2003//
D
                                                                                                                                                                                                                                                                                   znek/MulleNewz/English.lproj/InfoPlist.strings                                                      0100755 0000356 0000000 00000001124 07631221261 020632  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                   / *   L o c a l i z e d   v e r s i o n s   o f   I n f o . p l i s t   k e y s   * / 
 
 C F B u n d l e N a m e   =   " M u l l e N e w z " ; 
 C F B u n d l e S h o r t V e r s i o n S t r i n g   =   " M u l l e N e w z   v e r s i o n   1 . 7 " ; 
 C F B u n d l e G e t I n f o S t r i n g   =   " M u l l e N e w z   v e r s i o n   1 . 7 ,   C o p y r i g h t   2 0 0 1 ,   2 0 0 2 ,   2 0 0 3   M u l l e   k y b e r n e t i K . " ; 
 N S H u m a n R e a d a b l e C o p y r i g h t   =   " C o p y r i g h t   2 0 0 1 ,   2 0 0 2 ,   2 0 0 3   M u l l e   k y b e r n e t i K . " ; 
                                                                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/English.lproj/MKN.nib/                                                               0040755 0000356 0000000 00000000000 07665677452 016536  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MKN.nib/CVS/                                                           0040755 0000356 0000000 00000000000 07627524312 017151  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MKN.nib/CVS/Entries                                                    0100644 0000356 0000000 00000000000 07327332411 020462  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MKN.nib/CVS/Repository                                                 0100644 0000356 0000000 00000000104 07627524312 021243  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /usr/local/cvsroot/znek/MulleNewz/English.lproj/MulleNewz-macos.nib
                                                                                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/English.lproj/MKN.nib/CVS/Root                                                       0100644 0000356 0000000 00000000061 07627524312 020011  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek@cvs.mulle-kybernetik.com:/usr/local/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/English.lproj/MKN.nib/classes.nib                                                    0100644 0000356 0000000 00000000736 07627524312 020650  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    IBClasses = (
        {
            CLASS = Dockling; 
            LANGUAGE = ObjC; 
            OUTLETS = {menu = id; }; 
            SUPERCLASS = NSObject; 
        }, 
        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
        {
            ACTIONS = {openPreferences = id; updateAllRSSSources = id; }; 
            CLASS = RSSDockling; 
            LANGUAGE = ObjC; 
            SUPERCLASS = Dockling; 
        }
    ); 
    IBVersion = 1; 
}                                  znek/MulleNewz/English.lproj/MKN.nib/info.nib                                                       0100644 0000356 0000000 00000000503 07627524312 020136  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
	<key>IBDocumentLocation</key>
	<string>285 65 356 240 0 53 1152 795 </string>
	<key>IBMainMenuLocation</key>
	<string>353 311 121 66 0 53 1152 795 </string>
</dict>
</plist>
                                                                                                                                                                                             znek/MulleNewz/English.lproj/MKN.nib/objects.nib                                                    0100644 0000356 0000000 00000001404 07627524312 020635  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  typedstream@NSIBObjectData NSObject NSCustomObject)@@NSString+RSSDocklingiNSMenu ̔i@@@ MenuNSMutableArray NSArray 
NSMenuItemi@@IIi@@@@:i@ Preferences...     NSCustomResource)NSImageNSMenuCheckmarkNSMenuMixedState  
Update All             NSMenuItem1File's OwnerNSMenuNSMenuItem2
NSMenuItemNSMutableSet NSSet I NSNibOutletConnector τNSNibConnector@@@menuNSNibControlConnector ϷopenPreferences:updateAllRSSSources:@i	
 IBCocoaFramework                                                                                                                                                                                                                                                            znek/MulleNewz/English.lproj/MKNPreferences.nib/                                                    0040755 0000356 0000000 00000000000 07665677452 020720  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MKNPreferences.nib/info.nib                                            0100644 0000356 0000000 00000001425 07630446540 022324  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IBDocumentLocation</key>
	<string>102 92 356 240 0 0 1600 1002 </string>
	<key>IBEditorPositions</key>
	<dict>
		<key>29</key>
		<string>69 213 318 44 0 0 1600 1002 </string>
	</dict>
	<key>IBFramework Version</key>
	<string>291.0</string>
	<key>IBGroupedObjects</key>
	<dict>
		<key>2</key>
		<array>
			<string>277</string>
			<string>280</string>
			<string>274</string>
		</array>
	</dict>
	<key>IBLastGroupID</key>
	<string>3</string>
	<key>IBOpenObjects</key>
	<array>
		<integer>267</integer>
		<integer>29</integer>
	</array>
	<key>IBSystem Version</key>
	<string>6I32</string>
</dict>
</plist>
                                                                                                                                                                                                                                           znek/MulleNewz/English.lproj/MKNPreferences.nib/classes.nib                                         0100644 0000356 0000000 00000001314 07630446540 023023  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    IBClasses = (
        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
        {CLASS = MKNPTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView; }, 
        {
            ACTIONS = {addURL = id; apply = id; cancel = id; removeSelectedURLs = id; }; 
            CLASS = MKNPreferencesController; 
            LANGUAGE = ObjC; 
            OUTLETS = {
                removeSelectedURLsButtonCell = NSButtonCell; 
                updateIntervalTextField = NSTextField; 
                urlsTableView = NSTableView; 
                window = NSWindow; 
            }; 
            SUPERCLASS = NSObject; 
        }, 
        {CLASS = NSObject; LANGUAGE = ObjC; }
    ); 
    IBVersion = 1; 
}                                                                                                                                                                                                                                                                                                                    znek/MulleNewz/English.lproj/MKNPreferences.nib/keyedobjects.nib                                    0100644 0000356 0000000 00000043415 07630446540 024051  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  bplist00       Y$archiverX$versionX$objectsT$top_NSKeyedArchiver P  	 ( , 0 7 : < A [ \ ] ^ ` g q y z                                     #&()+,58:;<?BCEGHOQTXkmxz ()+,0456 749=> ?BCEIJMNORUVZ[\]^_`abei  !"%( )*-/014789:=@CDEHLOPQSVYZ[]`cdegjmnoqtwz{|
; !"#%()*-123589:=>?BCDFGHKLMOPQRSVWXZ\]`abdghilmnqrsvvwy"|Y  P:ghijklmnopqrstuvwxyz{|}~e#U$null 
                        ! " # $ % & ']NSFontManagerV$classYNSNextOid_NSVisibleWindowsVNSRoot\NSOidsValues_NSClassesValues]NSConnections]NSNamesValues]NSObjectsKeysZNSOidsKeys]NSClassesKeys[NSFramework[NSNamesKeys_NSObjectsValues O2ցԀEՁӀ  ) * +[NSClassName  - . /YNS.string]NSApplication 1 2 3 4Z$classnameX$classes_NSMutableString 3 5 6XNSStringXNSObject 1 2 8 9^NSCustomObject 8 6  - . ;_IBCocoaFramework  = > ?ZNS.objects @ B  C D E F G H I J K L M N O P Q R S T U V W X Y Z\NSWindowViewYNSWTFlags]NSWindowTitleYNSMinSizeYNSMaxSize_NSFrameAutosaveName\NSWindowRect_NSWindowStyleMask_NSWindowBacking\NSScreenRect]NSWindowClass[NSViewClasspx  
	_{{323, 226}, {460, 350}}_MulleNewz :: PreferencesWNSPanel  - . _TView  a b c d  e f_NSNextResponderZNSSubviewsWNSFrame(  = h i) j k l m n o p $0L  a r c s t u N v w x NVNSCellYNSEnabled[NSSuperview	_{{226, 78}, {55, 17}}  { | } ~       j    _NSBackgroundColorYNSSupport]NSControlView\NSCellFlags2[NSTextColor[NSCellFlagsZNSContents @   Wminutes        VNSSizeVNSNameXNSfFlags"AP  \LucidaGrande 1 2  VNSFont  6          WNSColor]NSCatalogName[NSColorName\NSColorSpaceVSystem\controlColor      WNSWhiteI0.666667  1 2    6          _controlTextColor      B0  1 2  _NSTextFieldCell   r 6\NSActionCell 1 2  [NSTextField      6\%NSTextFieldYNSControlVNSView[NSResponder  a r  c s t u N    x NXNSvFlags"$!_{{17, 78}, {183, 17}}  { | } ~       k    #_+Automatically update every

AutUpdate every  a  b       c  t  N          W N]NSTransparentYNSOffsets_NSTitlePosition\NSBorderType]NSContentView[NSTitleCellYNSBoxType/%+ "&,*  = h ԡ   a c t d l  l'_{{2, 2}, {456, 1}} 1 2  ٣   6 1 2  ^NSMutableArray   6WNSArray_{{0, 56}, {460, 5}}V{0, 0}  | ~       .-  - . SBox 1 2 r  r 6 1 2  UNSBox    6  a r c s t u N   x N21_{{196, 77}, {25, 21}}   { | } ~         m   x  [NSFormatter_NSDrawsBackground5G4@  JqA3Rxx        "A@        	
    x  _NS.positiveattrs_NS.negativeattrs[NS.rounding[NS.thousandZNS.decimal_NS.allowsfloats_NS.hasthousandsVNS.nan_NS.positiveformatWNS.zero\NS.localizedVNS.nilVNS.min_NS.negativeformatVNS.maxEFD?68=A7CQ0 5 \NSAttributes9<:Soff  =WNS.keys; 1 2!"\NSDictionary! 6 1 2$%_NSAttributedString$ 6 5 '>P 5 *@SNaN- ./012 3  4  WZNS.compact[NS.exponent[NS.negative[NS.mantissaYNS.length^NS.mantissa.boBOap$ D$~#Xߠ 1 267_NSDecimalNumberPlaceholder6 6- ./012 3  x9  WOa $ D$~#X    Q.Q, 1 2=>_NSNumberFormatter=  6      @ A IH_textBackgroundColor    D B1         F KYtextColor  a  b       c  t  N IJ W KLMN  NMN  = hPL  a b c t d nRS nO  = hUVWP  a b YZ [ c\ t]^_`LabcdebfgLhij[NSVScrollerXNSsFlags]NSNextKeyView\NSCornerView\NSScrollAmts[NSHScroller_NSHeaderClipViewQRu2~\OA   A   A  A  yY  = hlbcijg  a b n[o c tpqVrstuvwVuYNScvFlagsYNSBGColorYNSDocViewtS	 Tms  = hyu  a { ){|}~\ s tbvg xbYNSTvFlags_NSIntercellSpacingHeight_NSOriginalClassName\NSHeaderView[NSFrameSize[NSGridColor^NSTableColumns_NSIntercellSpacingWidth[NSRowHeightrU@ "@   VXWo_"@@  "A  ]MKNPTableView[NSTableViewZ{375, 119}  a  tjuj[ Z  a b n[o c tpqVstvV|}Y{375, 17} 1 2_NSTableHeaderView   6  a  c tVV^]_{{376, 0}, {12, 17}} 1 2]_NSCornerView   6  = h`  xu x\NSIsEditableZNSDataCellWNSWidthZNSMinWidth\NSIdentifierZNSMaxWidth^NSIsResizeable\NSHeaderCelllj"C  "A7a"Dz  bSurl  { | ~    ifdg cSURL     "A0  e     I0.333333          h_headerTextColor 1 2_NSTableHeaderCell   r 6  { | } ~    @ u  1@kQ6 1 2]NSTableColumn 6         n_controlBackgroundColor        qpYgridColor     D0.5  1 2^NSClassSwapper 6_{{1, 17}, {375, 119}} 1 2ZNSClipView   6  aZ  c tVVVXNSActionXNSTargetYNSPercentxwv"? V;_{{376, 17}, {11, 119}}\_doScroller: 1 2ZNSScroller    6  aZ  c tVVV{z"?}_{{1, 136}, {375, 11}}  = h_{{1, 0}, {375, 17}}_{{14, 42}, {388, 148}} 1 2\NSScrollView   6 a   {  c s t	L
  W xL [NSProtoCell[NSCellClassYNSNumRowsZNSCellSize_NSIntercellSpacingYNSNumCols]NSSelectedRow]NSMatrixFlags]NSSelectedColWNSCells_NSCellBackgroundColor!   _{{247, 6}, {160, 32}}  = h  | } ~   !' 'W"#$ %&'_NSKeyEquivalent_NSAlternateContents_NSPeriodicDelay^NSButtonFlags2]NSButtonFlags_NSPeriodicInterval_NSAlternateImage8  @VRemove      *ÀYHelvetica 1 2-.\NSButtonCell-/  r 6]%NSButtonCell 1 | } ~   !' 'W"#$2%&3UNSTag SAddX{80, 32}W{0, -2} 1 | ~   !' '"#&$ %8 1 2:;XNSMatrix:<    6Y%NSMatrix_{{2, 2}, {416, 204}}_{{20, 114}, {420, 224}}  | ~   @  A[RSS Sources       D  a r  c s tF NGH x N_{{362, 12}, {84, 32}}  | } ~   !K ' o"#$2%&LROKQ 1 2PQXNSButtonP    6  a r  c s tF NST x N_{{278, 12}, {84, 32}}  | } ~   !W X p"#$ %&YVCancel  - .(  - .(_{{1, 1}, {460, 350}}_{{0, 0}, {1600, 1002}}Z{213, 129}_{3.40282e+38, 3.40282e+38}_PreferencesPanel 1 2cd_NSWindowTemplatec 6 1 2fg\NSMutableSetfh 6UNSSet  = hj$klmnopqrstuvwxyz{|}~ǀ̀Ҁ؀܀	"&*/13579;=?AC WNSLabelXNSSource ]NSMnemonicLoc\NSMixedImage_NSKeyEquivModMaskWNSTitleVNSMenuZNSKeyEquivYNSOnImage     [NSMenuItemsWXMinimizeQm  )^NSResourceNameWNSImage_NSMenuCheckmark 1 2_NSCustomResource 6_%NSCustomResource  )_NSMenuMixedState 1 2ZNSMenuItem 6  - ._performMiniaturize: 1 2_NSNibControlConnector 6^NSNibConnector ƀ '_Bring All to Front  - ._arrangeInFront: ΀  ՁedXPrint...Qp  - .Vprint: ܀ƀ Ā]Page Setup...QP  - .^runPageLayout: ̀ ʀɀ _NewApplication HelpQ?  - .YshowHelp: р  x'\NSIsDisabledЀ  pqoZClear Menu  - ._clearRecentDocuments:  ]NSDestination׀ ՀԀ  	
KZJ_Quit NewApplicationQq  - .Zterminate:  ۀ '_About NewApplication  - ._orderFrontStandardAboutPanel:      ހ[Hide OthersQh_hideOtherApplications: # $ &'_Hide NewApplicationUhide: + , .'XShow All_unhideAllApplications: 23 56UCloseQw]performClose: ;< >?' AB_Check Spelling as You Type_toggleContinuousSpellChecking: FG IJK MN~TUndoQz  - .RUundo: TU WJXTCopyQc  - .\Ucopy: ^_  a?b^Check SpellingQ;  - .f^checkSpelling: hi kJlUPasteQv  - .pVpaste: rs
 uv' xy\[]Stop Speaking]stopSpeaking: }~ JSCutQx  - .Tcut:  ?[Spelling...Q:  - ._showGuessPanel:  JTRedoQZ  - .Uredo: ! J ZSelect AllQa  - .ZselectAll: %# v'$^Start Speaking^startSpeaking: )' J'(VDeleteWdelete:  .-+  ) *,_MKNPreferencesControllerXdelegate 1 2_NSNibOutletConnector 6 0_removeSelectedURLs: 2WaddURL: u4]urlsTableView 6_removeSelectedURLsButtonCell  @8Vwindow  @: u<ZdataSource u>  m@_updateIntervalTextField  oBVapply:  pDWcancel:  =ށSuvs n~ _i m N<J$ oW jGL k @V, l? p 3UF]`Oyxz{vPsLlYiGrXSfa  HI _Scroll to SelectionQj^NewApplication  = h	$, MN^Preferences...  x' x']NSIsSeparator 'YNSSubmenuQRXServices^submenuAction:  UVT  - .  = h__NSServicesMenu 1 2 6  x' x'  x' x'\_NSAppleMenuVSpeech  = h$s &'^_TSaveQs +,'bc  ./0TFile  - .1  = h43 67ghSNewQn ;<jkWOpen...Qo @A'mn[Open Recent  - .B  = hE__NSRecentDocumentsMenu  x' x' IJtuZSave As...QS N'wVRevert  x' x'  x' xJ'  x' x' TU|}WFind...Qf  - .YTEdit  = h[G~Ui  x' xJ' ^_J'TFind  - .`  = hc efYFind NextQg jk]Find PreviousQd op_Use Selection for FindQe ?tuJ'XSpelling  = hx_< vz{J' J}~'  - .THelp  = h  - .VWindow  = h^_NSWindowsMenu ' ' '^MKNPreferences  = h[_NSMainMenu 1 2   6  =SV Jv NJW m?J N @u?JJJ?W NvL NJ nJJ NJ JL N N lJ   ='u  k3V l? @ oW<_ p m  j  ='ÁāŁƁǁȁɁʁˁ́́΁ρЁс[NSMenuItem1  - .Q8S121  - .Q1VNSBox1  - .R10  - .Q3  - .(UPanel ΁ 1 2VNSNull 6W%NSNull[NSMenuItem2  - .Q5  - .XMainMenuT1111^NSTableColumn1  - .Q2  - .YNSButton1  - .Q7  - .\NSTextField1  - .\File's Owner  - .\NSTextField2  - .Q9  =y  =  =xn{uJq ,sik @t~yp~rV|v o Ns  k}oGwl m pW l jmLzU? n< _v3$xu  =x 	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefׁ؁فځہ܁݁ށ߁ 	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNWP$O:%1oJ}g~KpS.*)zM'R"/HN9V!\Q| +8Ij0# 1 2^NSIBObjectData 6]IB.objectdata   # , 5 : L Q:HOYls	!$'0<>@ISUclw4AKYcm08AFWit|~	 	4	>	L	Y	e	q	|	~																			




$
1
3
5
7
9
;
B
O
\
d
n
p
y
~










 $+7T]_ac{+8FR\]_acegikmvy
$)28AZ\^v7J]iu	 -/137DLNOXejs&/LQn	>@BDFHJSVkmox} #%':<>GR{2?KWf "$.7KTikm-:<>CHJOQUrtvxz(-/1:HMbd})2;EGIKPiv "/8!#%'09;=U^ceg"$-/13:KMW`mx%.;E\v "%'09Dace})<EX]fsz 	!$'*-0=ENPRTu.024<NWjq     # % ' H J _ h z                 !!!!$!&!/!>!K!M!O!p!r!t!v!!!!!!!!!!!!!!""""" ")"A"R"`"b"d"""""""""""""""####%#E#V#X#Z#{#############$$$$$7$9$B$[$h$j$l$$$$$$$$$$$$$$$%%.%;%=%?%`%b%d%f%s%v%y%~%%%%%%%%%%%%%%%%&&&&$&&&/&>&K&N&Q&r&u&x&~&&&&&&&&&&&&&&''	''-'0'3'7'9'B'G'T'W'Z'{'~'''''''''''''''((
((.(1(4(?(A(J(U(b(e(h((((((((((())))
)))1):)C)Z)a)r)u))))))))))****(*+*<*?*J*[*^*o*r*********+x+{+~+++++++++++++++++++++++++++++++++,,,,(,*,9,B,W,x,{,~,,,,,,,---&-)-,-/-8-A-S-\-a---------...,./.2.C.F.I.L.Q.Z.c.z..........//////%/(/A/j/////////00@0a0d0g0o0q0z000000001111<1?1B1L1N1o1r1u1111111111122282;2>2g2j2m2v2{22222222223333=3@3C3R3[3f3r3{33424;444444444445555
55555555"5%5(5+5.5154575:5=5@5C5F5I5L5O5[5d5f5j5s5u5|55555555555555555566666$6-6/686E6N6[6d6q6z6|66667788888888888888888888888888888888888888889999
99999999"9%9(9+9.9194979:9=9@9C9F9I9L9O9R9U9X9[9^9a9d9g9j9m9p9s9v9y9|999999999999999999999999999999999999999999999: ::::	:::::::::::!:#:%:(:+:-:/:1:3:5:7:9:;:=:?:B:D:F:H:J:L:N:P:R:U:W:Y:[:^:`:b:e:g:j:m:o:r:u:w:y:{:}::::::::::::::::::::::::::::::::::::::::::::::::::::::; ;;;;'                          ;)                                                                                                                                                                                                                                                   znek/MulleNewz/English.lproj/MKNPreferences.nib/objects.nib                                         0100644 0000356 0000000 00000021067 07630446540 023026  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  typedstream@NSIBObjectData NSObject NSCustomObject)@@NSMutableStringNSString+NSApplicationiSNSClassSwapper*@#MKNPTableViewNSTableView=	NSControl)NSView)NSResponder 
NSClipView:NSScrollView ⟒NSBox* @@@@ffffffffNSMutableArray NSArray NSTextField  N7  7icc@  NSTextFieldCell>NSActionCellNSCellAii  @  @@@@minutesNSFont$[36c]       L u c i d a G r a n d e  fc  i: c@@ NSColor @@@SystemcontrolColorff?*controlTextColor :$   N        @  +Automatically update every

AutUpdate every  "       8  ff@@ccc    Box    M    qA@  xx$       L u c i d a G r a n d e    NSNumberFormatterNSFormatter @@@@@@@00NSAttributedString offiINSDictionary  ϒ ϒNaNц@@@@@cccNSDecimalNumberPlaceholder  S C  I[8S]~x聐ȁNSDeؚ   ā~x聠ԁؼp.,   ųtextBackgroundColor	textColorNSButton !   jT   T   NSButtonCell? 8  OK 	ssii@@@@@ @Ԅ[28c]       H e l v e t i c a   ⒨!   T   T   䬂 8  Cancel ǁ @  煆́^  ́^   r        RSS Sources$       L u c i d a G r a n d e      NSMatrix>!            #iiii:::ffffi@@@@@P     䬂 8  Remove ǁ @ԅ煆䬂 8  Addǁ @ԅ煆䬂 8  Addǁ @ԅ煆    ̒  
NSScroller Ӟ   xw  w   ff: ? V;_doScroller:      w  w    ?}ͱ    NSTableHeaderView     w  w w  w@@ccccontrolBackgroundColor  _NSCornerView    x   *    ffffi

      ww  ww     ww  ww  @@@ff@@f::iNSTableColumn)@fff@@ccurltA7脄NSTableHeaderCell  URL$       L u c i d a G r a n d e       >headerTextColor1@ 6  ޺	gridColor?   @ 
NSMenuItemNSMenu ̔i@@@ Findi@@IIi@@@@:i@ Find...f    NSCustomResource)NSImageNSMenuCheckmark"#NSMenuMixedState  	Find Nextg    !%  Find Previousd    !%  Use Selection for Finde    !%  Scroll to Selectionj    !%  NewApplication
2 About NewApplication  !% 2 Preferences...,    !% 2ق   Ԃ    !% 2 ServicesԂ    !%submenuAction:  Services _NSServicesMenu2ق   Ԃ    !% 2 Hide NewApplicationh    !% 2 Hide Othersh    !% 2 Show AllԂ    !% 2ق   Ԃ    !% 2 Quit NewApplicationq    !% _NSAppleMenu MKNPreferencesOP FileԂ    !%  FileU Newn    !% U Open...o    !% U Open RecentԂ    !%  Open Recent`ق   
Clear MenuԂ    !% _NSRecentDocumentsMenuUق   Ԃ    !% U Closew    !% U Saves    !% U 
Save As...S    !% U Revert  !% Uق   Ԃ    !% U Page Setup...P    !% U Print...p    !% P EditԂ    !%  Edit{ Undoz    !% { RedoZ    !% {ق   Ԃ    !% { Cutx    !% { Copyc    !% { Pastev    !% { DeleteԂ    !% { 
Select Alla    !% {ق   Ԃ    !% { FindԂ    !% { SpellingԂ    !%  Spelling  Spelling...:    !%   Check Spelling;    !%   Check Spelling as You TypeԂ    !% { SpeechԂ    !%  Speech  Start SpeakingԂ    !%   Stop SpeakingԂ    !% P WindowԂ    !%  Window  Minimizem    !%  ق   Ԃ    !%   Bring All to FrontԂ    !% _NSWindowsMenuP HelpԂ    !%  Help  NewApplication Help?    !% _NSMainMenu NewApplicationԂ    !% 2MKNPreferencesController   {  vUjU {Ŗc`   {SPŨ  sU:2NSWindowTemplateiiffffi@@@@@cC ́^px  MulleNewz :: PreferencesNSPanelViewffff  @ Ձ PreferencesPanel 	   { {rU    {yyP {52pUB2  ;2mU72  E2  ᨖ  򥖁 P~{ P^U { {`^J2 { ĕ {-'*[UOPH2K2US     訖fUA2gU=; {XUP' NSMenuItem1m8NSTableView7121 MKNPreferencesControllerNSViewNSTextFieldg1NSScrollViewNSBox1p10j3 NSMenuU  ĄPanelᄙNSButton򄙙NSMatrixS ז  NSMenuItem2s5PMainMenu[ זK1111 
NSMenuItem	NSTableColumn1 2 
NSMenuItem  זr2  ז脙	NSButton1f7 1ńNSTextField1File's Ownerv6NSTextField2X9NSMutableSet NSSet  Ć$NSNibControlConnector τNSNibConnector performMiniaturize:  arrangeInFront: vprint: srunPageLayout:  	showHelp: cclearRecentDocuments: K
terminate: 5orderFrontStandardAboutPanel: EhideOtherApplications: Bhide: HunhideAllApplications: gperformClose:  toggleContinuousSpellChecking: ~undo:  copy:  checkSpelling:  paste:  stopSpeaking:  cut:  showGuessPanel:  redo:  
selectAll:  startSpeaking:  delete:NSNibOutletConnector ρ 򵕁 delegate  removeSelectedURLs:  addURL:# urlsTableView# removeSelectedURLsButtonCell#  Ąwindow# ā delegate# 
dataSource# delegate# ńupdateIntervalTextField  apply:  cancel:x@i W  䚁  ; 7 mP'K { /$  fOH        = 5: % 91 ā  E      orJ`} g c~jK  pp  SS  䣁     .  A 䨁  佁  3*1)  z ~ '  
 sM-  " P 'XR+"Ł/[HJ vN  䬁29 Vy  	䥁)!  \UQ^|          䦁  %*   Ɂ 5+    O8gIB  j70-#:   2IBCocoaFramework                                                                                                                                                                                                                                                                                                                                                                                                                                                                         znek/MulleNewz/English.lproj/MKNPreferences.nib/JavaCompiling.plist                                 0100644 0000356 0000000 00000000101 07630446540 024465  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {JavaSourceSubpath = "_MKNPreferences_EOArchive_English.java"; }
                                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/English.lproj/MKNPreferences.nib/_MKNPreferences_EOArchive_English.java              0100644 0000356 0000000 00000045407 07630446540 030056  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  // _MKNPreferences_EOArchive_English.java
// Generated by EnterpriseObjects palette at Sunday, March 02, 2003 19:28:49 Europe/Berlin

import com.webobjects.eoapplication.*;
import com.webobjects.eocontrol.*;
import com.webobjects.eointerface.*;
import com.webobjects.eointerface.swing.*;
import com.webobjects.eointerface.swing.EOTable._EOTableColumn;
import com.webobjects.foundation.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import javax.swing.text.*;

public class _MKNPreferences_EOArchive_English extends com.webobjects.eoapplication.EOArchive {
    MKNPreferencesController _mKNPreferencesController0;
    com.webobjects.eointerface.swing.EOFrame _eoFrame0;
    com.webobjects.eointerface.swing.EOMatrix _nsMatrix0;
    com.webobjects.eointerface.swing.EOTable _nsTableView0;
    com.webobjects.eointerface.swing.EOTable._EOTableColumn _eoTableColumn0;
    com.webobjects.eointerface.swing.EOTextField _nsTextField0, _nsTextField1, _nsTextField2;
    com.webobjects.eointerface.swing.EOView _nsBox0, _nsBox1, _nsBox2, _nsBox3;
    com.webobjects.foundation.NSNumberFormatter _nsNumberFormatter0;
    javax.swing.JButton _jButton0, _jButton1, _nsButton0, _nsButton1;
    javax.swing.JPanel _nsView0;

    public _MKNPreferences_EOArchive_English(Object owner, NSDisposableRegistry registry) {
        super(owner, registry);
    }

    protected void _construct() {
        Object owner = _owner();
        EOArchive._ObjectInstantiationDelegate delegate = (owner instanceof EOArchive._ObjectInstantiationDelegate) ? (EOArchive._ObjectInstantiationDelegate)owner : null;
        Object replacement;

        super._construct();

        _nsNumberFormatter0 = (com.webobjects.foundation.NSNumberFormatter)_registered(new com.webobjects.foundation.NSNumberFormatter("0;0"), "");
        _nsMatrix0 = (com.webobjects.eointerface.swing.EOMatrix)_registered(new com.webobjects.eointerface.swing.EOMatrix(1, 2, 9, 4), "NSMatrix");
        _nsBox3 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "");
        _nsBox2 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "");
        _nsButton1 = (javax.swing.JButton)_registered(new javax.swing.JButton("Cancel"), "NSButton1");
        _nsButton0 = (javax.swing.JButton)_registered(new javax.swing.JButton("OK"), "NSButton");
        _jButton1 = (javax.swing.JButton)_registered(new javax.swing.JButton("Add"), "");

        if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "delegate.removeSelectedURLsButtonCell")) != null)) {
            _jButton0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (javax.swing.JButton)replacement;
            _replacedObjects.setObjectForKey(replacement, "_jButton0");
        } else {
            _jButton0 = (javax.swing.JButton)_registered(new javax.swing.JButton("Remove"), "");
        }

        _eoTableColumn0 = (com.webobjects.eointerface.swing.EOTable._EOTableColumn)_registered(new com.webobjects.eointerface.swing.EOTable._EOTableColumn(), "NSTableColumn1");

        if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "delegate.urlsTableView")) != null)) {
            _nsTableView0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTable)replacement;
            _replacedObjects.setObjectForKey(replacement, "_nsTableView0");
        } else {
            _nsTableView0 = (com.webobjects.eointerface.swing.EOTable)_registered(new com.webobjects.eointerface.swing.EOTable(), "NSTableView");
        }

        if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "delegate")) != null)) {
            _mKNPreferencesController0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (MKNPreferencesController)replacement;
            _replacedObjects.setObjectForKey(replacement, "_mKNPreferencesController0");
        } else {
            _mKNPreferencesController0 = (MKNPreferencesController)_registered(new MKNPreferencesController(), "MKNPreferencesController");
        }

        if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "delegate.updateIntervalTextField")) != null)) {
            _nsTextField2 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOTextField)replacement;
            _replacedObjects.setObjectForKey(replacement, "_nsTextField2");
        } else {
            _nsTextField2 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField1");
        }

        _nsBox1 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSView");
        _nsBox0 = (com.webobjects.eointerface.swing.EOView)_registered(new com.webobjects.eointerface.swing.EOView(), "NSBox1");
        _nsTextField1 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField");
        _nsTextField0 = (com.webobjects.eointerface.swing.EOTextField)_registered(new com.webobjects.eointerface.swing.EOTextField(), "NSTextField2");

        if ((delegate != null) && ((replacement = delegate.objectForOutletPath(this, "delegate.window")) != null)) {
            _eoFrame0 = (replacement == EOArchive._ObjectInstantiationDelegate.NullObject) ? null : (com.webobjects.eointerface.swing.EOFrame)replacement;
            _replacedObjects.setObjectForKey(replacement, "_eoFrame0");
        } else {
            _eoFrame0 = (com.webobjects.eointerface.swing.EOFrame)_registered(new com.webobjects.eointerface.swing.EOFrame(), "Panel");
        }

        _nsView0 = (JPanel)_eoFrame0.getContentPane();
    }

    protected void _awaken() {
        super._awaken();
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "unhideAllApplications", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "hide", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "hideOtherApplications", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "orderFrontStandardAboutPanel", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_owner(), "terminate", ), ""));

        if (_replacedObjects.objectForKey("_mKNPreferencesController0") == null) {
            _connect(_owner(), _mKNPreferencesController0, "delegate");
        }
    }

    protected void _init() {
        super._init();
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "copy", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "performClose", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "showHelp", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "delete", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "undo", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "startSpeaking", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "showGuessPanel", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "arrangeInFront", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "selectAll", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "toggleContinuousSpellChecking", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "runPageLayout", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "performMiniaturize", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "paste", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "checkSpelling", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "clearRecentDocuments", ), ""));
        _nsNumberFormatter0.setMinimum(new java.math.BigDecimal("0"));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "cut", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "print", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "stopSpeaking", ), ""));
        .addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(null, "redo", ), ""));
        _jButton0.setSize(73, 26);
        _jButton0.setLocation(5, 4);
        _nsMatrix0.add(_jButton0);
        _jButton1.setSize(73, 26);
        _jButton1.setLocation(85, 4);
        _nsMatrix0.add(_jButton1);
        if (!(_nsBox3.getLayout() instanceof EOViewLayout)) { _nsBox3.setLayout(new EOViewLayout()); }
        _nsTableView0.setSize(388, 148);
        _nsTableView0.setLocation(14, 14);
        ((EOViewLayout)_nsBox3.getLayout()).setAutosizingMask(_nsTableView0, EOViewLayout.WidthSizable | EOViewLayout.HeightSizable);
        _nsBox3.add(_nsTableView0);
        _nsMatrix0.setSize(154, 27);
        _nsMatrix0.setLocation(250, 168);
        ((EOViewLayout)_nsBox3.getLayout()).setAutosizingMask(_nsMatrix0, EOViewLayout.MinXMargin | EOViewLayout.MinYMargin);
        _nsBox3.add(_nsMatrix0);
        if (!(_nsBox2.getLayout() instanceof EOViewLayout)) { _nsBox2.setLayout(new EOViewLayout()); }
        _nsBox3.setSize(416, 204);
        _nsBox3.setLocation(2, 18);
        ((EOViewLayout)_nsBox2.getLayout()).setAutosizingMask(_nsBox3, EOViewLayout.MinYMargin);
        _nsBox2.add(_nsBox3);
        _nsBox2.setBorder(new com.webobjects.eointerface.swing._EODefaultBorder("RSS Sources", true, "Lucida Grande", 13, Font.PLAIN));
        _setFontForComponent(_nsButton1, "Lucida Grande", 13, Font.PLAIN);
        _nsButton1.setMargin(new Insets(0, 2, 0, 2));
        _nsButton1.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_mKNPreferencesController0, "cancel", _nsButton1), ""));
        _setFontForComponent(_nsButton0, "Lucida Grande", 13, Font.PLAIN);
        _nsButton0.setMargin(new Insets(0, 2, 0, 2));
        _nsButton0.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_mKNPreferencesController0, "apply", _nsButton0), ""));

        if (_replacedObjects.objectForKey("_eoFrame0") == null) {
            _connect(_eoFrame0, _mKNPreferencesController0, "delegate");
        }

        _setFontForComponent(_jButton1, "Lucida Grande", 13, Font.PLAIN);
        _jButton1.setMargin(new Insets(0, 2, 0, 2));
        _jButton1.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_mKNPreferencesController0, "addURL", _jButton1), ""));

        if (_replacedObjects.objectForKey("_mKNPreferencesController0") == null) {
            _connect(_mKNPreferencesController0, _eoFrame0, "window");
        }

        _jButton0.addActionListener((com.webobjects.eointerface.swing.EOControlActionAdapter)_registered(new com.webobjects.eointerface.swing.EOControlActionAdapter(_mKNPreferencesController0, "removeSelectedURLs", _jButton0), ""));

        if (_replacedObjects.objectForKey("_jButton0") == null) {
            _setFontForComponent(_jButton0, "Lucida Grande", 13, Font.PLAIN);
            _jButton0.setMargin(new Insets(0, 2, 0, 2));
        }

        if (_replacedObjects.objectForKey("_mKNPreferencesController0") == null) {
            _connect(_mKNPreferencesController0, _jButton0, "removeSelectedURLsButtonCell");
        }

        if (_replacedObjects.objectForKey("_nsTableView0") == null) {
            _connect(_nsTableView0, _mKNPreferencesController0, "delegate");
        }

        if (_replacedObjects.objectForKey("_nsTableView0") == null) {
            _connect(_nsTableView0, _mKNPreferencesController0, "dataSource");
        }

        _eoTableColumn0.setMinWidth(28);
        _eoTableColumn0.setMaxWidth(1000);
        _eoTableColumn0.setPreferredWidth(372);
        _eoTableColumn0.setWidth(372);
        _eoTableColumn0.setResizable(true);
        _eoTableColumn0.setHeaderValue("URL");
        if ((_eoTableColumn0.getHeaderRenderer() != null)) {
        	((DefaultTableCellRenderer)(_eoTableColumn0.getHeaderRenderer())).setHorizontalAlignment(javax.swing.JTextField.LEFT);
        }

        if (_replacedObjects.objectForKey("_nsTableView0") == null) {
            _nsTableView0.table().addColumn(_eoTableColumn0);
            _setFontForComponent(_nsTableView0.table().getTableHeader(), "Lucida Grande", 11, Font.PLAIN);
            _nsTableView0.table().setRowHeight(20);
        }

        if (_replacedObjects.objectForKey("_mKNPreferencesController0") == null) {
            _connect(_mKNPreferencesController0, _nsTableView0, "urlsTableView");
        }

        if (_replacedObjects.objectForKey("_mKNPreferencesController0") == null) {
            _connect(_mKNPreferencesController0, _nsTextField2, "updateIntervalTextField");
        }

        if (_replacedObjects.objectForKey("_nsTextField2") == null) {
            _setFontForComponent(_nsTextField2, "Lucida Grande", 12, Font.PLAIN);
            _nsTextField2.setEditable(true);
            _nsTextField2.setOpaque(true);
            _nsTextField2.setText("xx");
            _nsTextField2.setHorizontalAlignment(javax.swing.JTextField.LEFT);
            _nsTextField2.setSelectable(true);
            _nsTextField2.setEnabled(true);
        }

        if (!(_nsBox0.getLayout() instanceof EOViewLayout)) { _nsBox0.setLayout(new EOViewLayout()); }
        _nsBox1.setSize(456, 1);
        _nsBox1.setLocation(2, 2);
        ((EOViewLayout)_nsBox0.getLayout()).setAutosizingMask(_nsBox1, EOViewLayout.MinYMargin);
        _nsBox0.add(_nsBox1);
        _nsBox0.setBorder(new com.webobjects.eointerface.swing._EODefaultBorder("", true, "Lucida Grande", 13, Font.PLAIN));
        _setFontForComponent(_nsTextField1, "Lucida Grande", 13, Font.PLAIN);
        _nsTextField1.setEditable(false);
        _nsTextField1.setOpaque(false);
        _nsTextField1.setText("Automatically update every\n\nAutUpdate every");
        _nsTextField1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        _nsTextField1.setSelectable(false);
        _nsTextField1.setEnabled(true);
        _nsTextField1.setBorder(null);
        _setFontForComponent(_nsTextField0, "Lucida Grande", 13, Font.PLAIN);
        _nsTextField0.setEditable(false);
        _nsTextField0.setOpaque(false);
        _nsTextField0.setText("minutes");
        _nsTextField0.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        _nsTextField0.setSelectable(false);
        _nsTextField0.setEnabled(true);
        _nsTextField0.setBorder(null);
        if (!(_nsView0.getLayout() instanceof EOViewLayout)) { _nsView0.setLayout(new EOViewLayout()); }
        _nsTextField0.setSize(55, 17);
        _nsTextField0.setLocation(220, 249);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsTextField0, EOViewLayout.MinYMargin);
        _nsView0.add(_nsTextField0);
        _nsTextField1.setSize(183, 17);
        _nsTextField1.setLocation(11, 249);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsTextField1, EOViewLayout.MaxXMargin | EOViewLayout.MinYMargin);
        _nsView0.add(_nsTextField1);
        _nsBox0.setSize(460, 5);
        _nsBox0.setLocation(-7, 283);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsBox0, EOViewLayout.WidthSizable | EOViewLayout.MinYMargin);
        _nsView0.add(_nsBox0);
        _nsTextField2.setSize(25, 21);
        _nsTextField2.setLocation(190, 246);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsTextField2, EOViewLayout.MinYMargin);
        _nsView0.add(_nsTextField2);
        _nsBox2.setSize(420, 224);
        _nsBox2.setLocation(13, 6);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsBox2, EOViewLayout.WidthSizable | EOViewLayout.HeightSizable);
        _nsView0.add(_nsBox2);
        _nsButton0.setSize(77, 26);
        _nsButton0.setLocation(360, 302);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsButton0, EOViewLayout.MinXMargin | EOViewLayout.MinYMargin);
        _nsView0.add(_nsButton0);
        _nsButton1.setSize(77, 26);
        _nsButton1.setLocation(276, 302);
        ((EOViewLayout)_nsView0.getLayout()).setAutosizingMask(_nsButton1, EOViewLayout.MinXMargin | EOViewLayout.MinYMargin);
        _nsView0.add(_nsButton1);

        if (_replacedObjects.objectForKey("_eoFrame0") == null) {
            _nsView0.setSize(446, 338);
            _eoFrame0.setTitle("MulleNewz :: Preferences");
            _eoFrame0.setLocation(330, 232);
            _eoFrame0.setSize(446, 338);
        }
    }
}
                                                                                                                                                                                                                                                         znek/MulleNewz/English.lproj/MulleNewz.nib/                                                         0040755 0000356 0000000 00000000000 07665677452 020033  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MulleNewz.nib/classes.nib                                              0100644 0000356 0000000 00000001521 07627524311 022135  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    IBClasses = (
        {CLASS = EDApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; }, 
        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
        {
            ACTIONS = {
                addRSSSource = id; 
                openPreferences = id; 
                removeSelectedRSSSources = id; 
                setUpdateInterval = id; 
                updateAllRSSSources = id; 
            }; 
            CLASS = MKNAppDelegate; 
            LANGUAGE = ObjC; 
            OUTLETS = {
                newsMenu = NSMenu; 
                prefWindow = NSWindow; 
                removeRSSSourcesButton = NSButton; 
                rssSourcesTableView = NSTableView; 
                updateIntervalField = NSTextField; 
            }; 
            SUPERCLASS = NSObject; 
        }
    ); 
    IBVersion = 1; 
}                                                                                                                                                                               znek/MulleNewz/English.lproj/MulleNewz.nib/CVS/                                                     0040755 0000356 0000000 00000000000 07627524311 020445  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MulleNewz.nib/CVS/Entries                                              0100644 0000356 0000000 00000000000 07503216526 021763  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MulleNewz.nib/CVS/Repository                                           0100644 0000356 0000000 00000000076 07627524311 022547  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /usr/local/cvsroot/znek/MulleNewz/English.lproj/MKN-macos.nib
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/MulleNewz.nib/CVS/Root                                                 0100644 0000356 0000000 00000000061 07627524311 021305  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek@cvs.mulle-kybernetik.com:/usr/local/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/English.lproj/MulleNewz.nib/info.nib                                                 0100644 0000356 0000000 00000001155 07627524311 021436  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
	<key>IBDocumentLocation</key>
	<string>44 97 356 240 0 0 1600 1002 </string>
	<key>IBEditorPositions</key>
	<dict>
		<key>241</key>
		<string>44 342 72 66 0 0 1600 1002 </string>
		<key>29</key>
		<string>588 242 300 44 0 0 1600 1002 </string>
	</dict>
	<key>IBFramework Version</key>
	<string>248.0</string>
	<key>IBOpenObjects</key>
	<array>
		<integer>241</integer>
		<integer>29</integer>
	</array>
	<key>IBSystem Version</key>
	<string>5Q45</string>
</dict>
</plist>
                                                                                                                                                                                                                                                                                                                                                                                                                   znek/MulleNewz/English.lproj/MulleNewz.nib/objects.nib                                              0100644 0000356 0000000 00000011204 07627524311 022130  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  typedstream@NSIBObjectData NSObject NSCustomObject)@@NSString+EDApplicationi7
NSMenuItemNSMenu ̔i@@@ SpellingNSMutableArray NSArray i@@IIi@@@@:i@ Spelling...:    NSCustomResource)NSImageNSMenuCheckmarkNSMenuMixedState  Check Spelling;      Check Spelling As You Type       	MulleNewz
 About MulleNewz    Preferences...     @         Services    submenuAction:  NSMutableStringServices _NSServicesMenu@         Hide Others      Show All     @         Quit MulleNewzq     _NSAppleMenu Hide MulleNewzh     Ű Speech˟ Start speaking     ˟ Stop speaking      Editӟ Undoz     ӟ RedoZ     ӟ@        ӟ Cutx     ӟ Copyc     ӟ Pastev     ӟ Clear     ӟ 
Select Alla     ӟ@        ӟ Find      Find Find...f      	Find Nextg      Find Previousd      Use Selection for Finde      Scroll to Selectionj     ӟ      ҆ ̮     ˆӖ Window Minimizem     @        _NSWindowsMenu Bring All to Front      MulleNewzApp Edit     ӆ Window      Help      Help Homepage?     _NSMainMenu      ӖӖ Ӗ  Menu 
Update All             ӖӖ!MKNAppDelegate Newz      % °Ӗ File      File* Newn     * Open...o     * Open Recent      Open Recent5   
Clear Menu     _NSRecentDocumentsMenu*        * Closew     * Saves     * 
Save As...S     * Revert   *        * Page Setup...P     * Print...p     ӖİӖӖӖ˖˖ӖNSMenuItem2NSMenuMainMenu( "#NSMenuItem1NSMenuń111121211File's OwnerQ 
NSMenuItem
NSMenuItemQNSMutableSet NSSet I NSNibControlConnector τNSNibConnector@@@performMiniaturize:`arrangeInFront:`	showHelp:`ŕ
terminate:`orderFrontStandardAboutPanel:`hideOtherApplications:`hide:`unhideAllApplications:`toggleContinuousSpellChecking:`օundo:`copy:`checkSpelling:`ㅄpaste:`ЅstopSpeaking:`݅cut:`慄clear:`showGuessPanel:`مredo:`腄
selectAll:`΅startSpeaking:NSNibOutletConnector a"delegate`"updateAllRSSSources`"openPreferences "newsMenu dockMenuQ@i ʪ ҁ Ӫ  ܪ  Ё êu ઙ ۪   m ܁ Ϊ Ҫ{    ɪo   ց Ϫ Ū_%   ֪ ̪:g k $   تā   Ѫ\ ٪Ł  8  Ӂ ͪ  誰9} 䪕ez  ڪs ߪg  突  w o  !  q ު ժ Ъف ת c' ƪ΁ Ī i  ˪ˁ Ԫ Ȫ݁ Ǫj" (Sy  ݙ  IBCocoaFramework                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/English.lproj/Preferences.nib/                                                       0040755 0000356 0000000 00000000000 07665677452 020352  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/Preferences.nib/classes.nib                                            0100644 0000356 0000000 00000001530 07627524312 022455  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    IBClasses = (
        {
            CLASS = Dockling; 
            LANGUAGE = ObjC; 
            OUTLETS = {menu = id; }; 
            SUPERCLASS = NSObject; 
        }, 
        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
        {
            ACTIONS = {
                addRSSSource = id; 
                openPreferences = id; 
                removeSelectedRSSSources = id; 
                setUpdateInterval = id; 
                updateAllRSSSources = id; 
            }; 
            CLASS = MKNDockling; 
            LANGUAGE = ObjC; 
            OUTLETS = {
                prefWindow = id; 
                removeRSSSourcesButton = id; 
                rssSourcesTableView = id; 
                updateIntervalField = id; 
            }; 
            SUPERCLASS = Dockling; 
        }
    ); 
    IBVersion = 1; 
}                                                                                                                                                                        znek/MulleNewz/English.lproj/Preferences.nib/info.nib                                               0100644 0000356 0000000 00000000644 07627524312 021760  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
	<key>IBDocumentLocation</key>
	<string>247 47 356 240 0 51 1152 797 </string>
	<key>IBUserGuides</key>
	<dict>
		<key>PrefWindow</key>
		<dict>
			<key>guideLocations</key>
			<array/>
			<key>guidesLocked</key>
			<string>NO</string>
		</dict>
	</dict>
</dict>
</plist>
                                                                                            znek/MulleNewz/English.lproj/Preferences.nib/objects.nib                                            0100644 0000356 0000000 00000006073 07627524312 022460  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  typedstream@NSIBObjectData NSObject NSCustomObject)@@NSString+MKNDocklingiNSTextField	NSControl)NSView)NSResponder  @@@@ffffffffNSMutableArray NSArray NSScrollView ✒  
NSClipView:   NSTableView=    /_  /_icc@  @@@ff@@f::iNSTableHeaderView    /  /@@cccNSColor c@@@SystemcontrolBackgroundColorff?*       /  /_NSCornerView     0   NSTableColumn)@fff@@cc,BS脄NSTableHeaderCellNSTextFieldCell=NSActionCellNSCellAii  @@@@RSS SourcesNSFont$[36c]       L u c i d a G r a n d e  f   i: c@@ >headerTextColor 1@ NSMutableStringField$       L u c i d a G r a n d e      controlTextColorņ	gridColor?   @  /_  /_  
NSScroller ӛ    0_  _   ff: ?H=_doScroller:  ђ    p/  /    ?}ٽ r@   @ ВӒffffi

        (!  !  qA @  NSDecimalNumberPlaceholder SC I[8S]rPlaceholder ɄNSNumberFormatterNSFormatter @@@@@@@0###0.00NSAttributedString offiINSDictionary  ߒ ߒNaNᆄ@@@@@cccؙ    pq ^CP煄Ș.,   չtextBackgroundColorʆ	textColorņ:     *7  7    @  minutesɅ  controlColorˆ˅NSMatrix>!    N        #iiii:::ffffi@@@@@Z     NSButtonCell? 8  RemoveɅ 	ssii@@@@@ @䅄[28c]       H e l v e t i c a   $ 8  AddɅρ @ 8  Ʌρ @	h  h    *x  x    @  Auto update everyɅ  ˆ˅Ֆ󖄄NSWindowTemplateiiffffi@@@@@c; hpx  MulleNewz :: PreferencesNSWindowȘViewffff ; h ՞NSTextFieldNSButtonCellNSTextField2لNSNumberFormatter1NSScrollViewNSButton
PrefWindowNSTableColumn1NSTableView󄘘NSMatrixՄNSTextField1File's OwnerNSViewNSMutableSet NSSet  NSNibOutletConnector τNSNibConnector
prefWindow
dataSourcedelegateNSNibControlConnector removeSelectedRSSSources:addRSSSource:rssSourcesTableViewՕsetUpdateInterval:ՄupdateIntervalField@iٸ	٢"$ٕ& ٨
ٞ IBCocoaFramework                                                                                                                                                                                                                                                                                                                                                                                                                                                                     znek/MulleNewz/English.lproj/Preferences.nib/CVS/                                                   0040755 0000356 0000000 00000000000 07630153160 020756  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/English.lproj/Preferences.nib/CVS/Root                                               0100644 0000356 0000000 00000000061 07630153160 021616  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek@cvs.mulle-kybernetik.com:/usr/local/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/English.lproj/Preferences.nib/CVS/Repository                                         0100644 0000356 0000000 00000000100 07630153160 023044  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /usr/local/cvsroot/znek/MulleNewz/English.lproj/Preferences.nib
                                                                                                                                                                                                                                                                                                                                                                                                                                                                znek/MulleNewz/English.lproj/Preferences.nib/CVS/Entries                                            0100644 0000356 0000000 00000000000 07630153160 022275  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/BUILD.rtf                                                                            0100644 0000356 0000000 00000027502 07630157376 014171  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique;
\f3\fmodern\fcharset77 Courier;}
{\colortbl;\red255\green255\blue255;}
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li560\fi-560\ql\qnatural

\f0\b\fs24 \cf0 HOWTO BUILD MulleNewz
\f1\b0 \
\
\
MulleNewz can be built on Mac OS X using Project Builder (PBX) 1.x or higher.\
Beware that MulleNewz consists of multiple projects:\
\
1) EDCommon framework\
2) MulleNewz.dock\
\
Project 1) requires a separate download, it is 
\f0\b not
\f1\b0  bundled with the\
source of MulleNewz. Also note that this project is being developed\
separately, so check this projects' homepage at\
\
http://www.mulle-kybernetik.com/software/EDFrameworks/\
\
for more up-to-date information.\
\
The MulleNewz build process comes in two flavors, 
\f0\b Dev
\f1\b0  and\

\f0\b Release
\f1\b0 . For Release some parts of EDCommon framework\
will be linked into the Dockling - for Dev, however, this will not\
happen. Instead, Dev links against the EDCommon.framework.\
\
\
There is now an 
\f2\i External Sources
\f1\i0  group which takes care of managing\
the relevant source for EDCommon. Please note that this source code will\
be referenced relative to the MulleNewz project, therefore it is imperative\
that the directory layout exists as follows:\
\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li480\fi-480\ql\qnatural

\f3 \cf0 ed/EDCommon\
znek/MulleNewz\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li560\fi-560\ql\qnatural

\f1 \cf0 \

\f0\b \
Checking out made easy ...\

\f1\b0 \
All projects are available via anonymous CVS from cvs.mulle-kybernetik.com.\
Instructions on how to use anonymous CVS at the Mulle kybernetiK site can be\
obtained via http://cvs.mulle-kybernetik.com. In short this is nothing more than issuing\
the following commands at a shell prompt:\
\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li480\fi-480\ql\qnatural

\f3 \cf0 cd <your-favorite-check-out-directory-here>\
cvs -z3 -d :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot co ed/EDCommon\
cvs -z3 -d :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot co znek/MulleNewz\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li560\fi-560\ql\qnatural

\f1 \cf0 \
\

\f0\b ... and the winner is ...\

\f1\b0 \
Due to a bug in PBX 1.x's search order when building it is necessary to remove\
intermediary header stubs in your build directory after building EDCommon\
as an own project (option a), s.b.). Just remove the whole\
ProjectHeaders directory in your build directory after you've build it.\
I've written an article that explains the problem in greater detail. This article is\
available on Mulle kybernetiK's website at\
\
http://www.mulle-kybernetik.com/techinfos/pbxbug/\
\
\
\

\f0\b Targets\
\

\f1\b0 Currently there are three targets to choose from.\
a) MulleNewz - Dev\
b) MulleNewz - Release\
c) Testbed\
\
When building a) you already should have built EDCommon and installed\
it in /Library/Frameworks. This is the most convincing option for developers\
as you don't have to rebuild the parts of EDCommon with every turnaround\
- these parts are unlikely to change nevertheless.\
\
When building b) the result will be the self-contained version ready for\
installing/shipping as mentioned above. This wasn't available in the 1.0 release.\
\
c) finally suits as a testbed for spotting troubles in the RSS parser itself. I used\
this to spot and fix several bugs in the EDMLParser. However, all issues that\
Erik and me have been aware of should be fixed by now.\
\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li700\fi-700\ql\qnatural
\cf0  \
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li560\fi-560\ql\qnatural
\cf0 \

\f0\b Mac OS X Server 1.2 anyone?\

\f1\b0 \
Preparations have been made to the project (as such) to allow for building it on\
Mac OS X Server 1.2. The idea is to implement it as a NSStatusBarItem (the\
things in the upper right corner - which Apple re-introduces with the release of\
OSX 10.1 BTW). Although MKNDockling is pretty monolithic one could think\
about wrapping the non-UI logic in a separate controller and have\
MKNDockling use that instead. This way MKNDockling and the yet to be named\
new OSXS 1.2 class could share the same backend logic.\
\
\

\f0\b GNUstep?\

\f1\b0 \
MulleNewz compiles and runs on current GNUstep versions. Personally I like the\
interface on GNUstep due to the nature of OPENSTEPs menus ...\
Compiling and running requires a current GNUstep and EDCommon framework to be\
installed (no self-contained build here). If you want to provide changes to the current\
 make files that achieve this goal (pretty easy, but I don't need them now) I'll include them\
 in the distribution.\
 \
\

\f0\b OT: Debugging
\f1\b0 \
\
Debugging Docklings isn't easy. Docklings live in the SystemUIServer process, hence\
in order to test them, you have to restart the SystemUIServer every time you deploy a new\
version. Also the Dock.app is involved, so you have to restart that one as well. Some\
debug output will be logged to
\f3  /tmp/MulleNewz.log
\f1  if that file is present (it won't be\
created automatically, it's just for debugging). I use the following commandline in bash:\
\

\f3 kill -HUP `psg SystemUIServer | awk '\{print $1\}'` ; kill -HUP `psg Dock | awk '\{print $1\}'` ; tail -f /tmp/MulleNewz.log\

\f1 \
where psg is:\
\

\f3 psg()\
\{\
if [ "$1" = "" ] ; then\
  echo "Must provide processname!"\
else\
  ps axww | fgrep $1 | grep -v grep\
fi\
\}\

\f1 \
\

\f0\b OT: Why MulleNewz?\

\f1\b0 \
- I thought that RSS is a great idea to implement in a dockling\
- I disliked Slashdock as the flashing dock icon began to annoy me\
- I put in backslash format into the MulleCMS but than realized that the principle of Slashdock supporting this format was the real mistake\
- I thought it'd take me a day (which was correct) to write the dockling and took the challenge as a finger excercise\
- MulleNewz can now be considered an example of how to reuse the ED* frameworks and the EDMLParser in particular, although - at the time of this writing - the EDMLParser changed substantially and some of the MulleXML classes are rather obsolete by now\
\pard\tx280\tx560\tx840\tx1120\tx1401\tx1681\tx1961\tx2241\tx2521\tx2802\tx3082\tx3362\tx3642\tx3922\tx4202\tx4485\tx4765\tx5045\tx5325\tx5605\tx5885\tx6165\tx6447\tx6727\tx7007\tx7287\tx7567\tx7847\tx8129\tx8409\tx8689\tx8970\tx9250\tx9530\tx9810\tx10090\tx10370\tx10650\tx10930\tx11210\tx11490\tx11773\tx12053\tx12333\tx12614\tx12894\tx13174\tx13455\tx13735\tx14015\tx14295\tx14575\tx14855\tx15135\tx15415\tx15695\tx15975\tx16258\tx16538\tx16818\tx17099\tx17379\tx17659\tx17940\tx18220\tx18500\tx18780\tx19060\tx19340\tx19620\tx19900\tx20180\tx20460\tx20743\tx21023\tx21303\tx21583\tx21863\tx22143\tx22425\tx22705\tx22985\tx23265\tx23546\tx23826\tx24106\tx24386\tx24666\tx24946\tx25228\tx25508\tx25788\tx26068\tx26348\tx26628\tx26910\tx27190\tx27470\tx27750\tx28031\li700\fi-700\ql\qnatural
\cf0  \
}                                                                                                                                                                                              znek/MulleNewz/DecoderTest_main.m                                                                   0100644 0000356 0000000 00000004540 07662423160 016171  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  DecoderTest_main.m
//  MulleNewz
//
//  Created by znek on Sun Jun 16 2002.
//  $Id: DecoderTest_main.m,v 1.2 2003/05/20 12:58:24 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU Lesser General Public License, version 2.1
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU Lesser General Public License, version 2.1 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import "NSString+XMLExtensions.h"


//
//  In order for this test to work, you need a file called "test.xml"
//  in /tmp directory.
//

int main(int argc, const char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSBundle *bundle = [[[NSBundle alloc] initWithPath:@"/tmp"] autorelease];
    NSString *markup;

    NSLog(@"Constructed a bundle: %@", bundle);

    [NSString setBundle:bundle];

    markup = @"xyzzy &blabla &copy; &amp;copy;";
    NSLog(@"orig: %@", markup);
    markup = [markup stringByDecodingEntityEncoding];
    NSLog(@"1st.: %@", markup);
    markup = [markup stringByDecodingEntityEncoding];
    NSLog(@"2nd.: %@", markup);

    [pool release];
    return 0;
}

                                                                                                                                                                znek/MulleNewz/Dockling.h                                                                           0100644 0000356 0000000 00000001006 07326744456 014512  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  Dockling.h
//  Dockling
//
//  Created by bwebster on Wed Mar 21 2001.
//  Copyright (c) 2001 Brian Webster. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@interface Dockling : NSObject 
{
	NSBundle *docklingBundle;
	NSWindow *docklingWindow;
	IBOutlet NSMenu *menu;
	BOOL isMenuChanged;
}

-(id)initWithBundle:(NSBundle*)bundle window:(NSWindow*)window;
-(NSMenu*)menu;
-(void)setMenu:(NSMenu*)menu;
-(BOOL)isMenuChanged;
-(void)setMenuChanged:(BOOL)newState;
-(NSBundle*)bundle;
-(NSWindow*)window;

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/Entity2String.plist                                                                  0100644 0000356 0000000 00000016626 07634003352 016410  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                   { 
         / /   H T M L   4 . 0   E n t i t i e s 
         / /   h t t p : / / w w w . w 3 . o r g / T R / R E C - h t m l 4 0 / s g m l / e n t i t i e s . h t m l 
 
         A E l i g = "  " ; 
         A a c u t e = "  " ; 
         A c i r c = "  " ; 
         A g r a v e = "  " ; 
         A l p h a = " " ; 
         A r i n g = "  " ; 
         A t i l d e = "  " ; 
         A u m l = "  " ; 
         B e t a = " " ; 
         C c e d i l = "  " ; 
         C h i = " " ; 
         D a g g e r = " ! " ; 
         D e l t a = " " ; 
         E T H = "  " ; 
         E a c u t e = "  " ; 
         E c i r c = "  " ; 
         E g r a v e = "  " ; 
         E p s i l o n = " " ; 
         E t a = " " ; 
         E u m l = "  " ; 
         G a m m a = " " ; 
         I a c u t e = "  " ; 
         I c i r c = "  " ; 
         I g r a v e = "  " ; 
         I o t a = " " ; 
         I u m l = "  " ; 
         K a p p a = " " ; 
         L a m b d a = " " ; 
         M u = " " ; 
         N t i l d e = "  " ; 
         N u = " " ; 
         O E l i g = "R " ; 
         O a c u t e = "  " ; 
         O c i r c = "  " ; 
         O g r a v e = "  " ; 
         O m e g a = " " ; 
         O m i c r o n = " " ; 
         O s l a s h = "  " ; 
         O t i l d e = "  " ; 
         O u m l = "  " ; 
         P h i = " " ; 
         P i = " " ; 
         P r i m e = " 3 " ; 
         P s i = " " ; 
         R h o = " " ; 
         S c a r o n = "` " ; 
         S i g m a = " " ; 
         T H O R N = "  " ; 
         T a u = " " ; 
         T h e t a = " " ; 
         U a c u t e = "  " ; 
         U c i r c = "  " ; 
         U g r a v e = "  " ; 
         U p s i l o n = " " ; 
         U u m l = "  " ; 
         X i = " " ; 
         Y a c u t e = "  " ; 
         Y u m l = "x " ; 
         Z e t a = " " ; 
         a a c u t e = "  " ; 
         a c i r c = "  " ; 
         a c u t e = "  " ; 
         a e l i g = "  " ; 
         a g r a v e = "  " ; 
         a l e f s y m = "!5 " ; 
         a l p h a = " " ; 
         a m p = " & " ; 
         a n d = ""' " ; 
         a n g = ""  " ; 
         a p o s = " ' " ; 
         a r i n g = "  " ; 
         a s y m p = ""H " ; 
         a t i l d e = "  " ; 
         a u m l = "  " ; 
         b d q u o = "  " ; 
         b e t a = " " ; 
         b r v b a r = "  " ; 
         b u l l = " " " ; 
         c a p = "") " ; 
         c c e d i l = "  " ; 
         c e d i l = "  " ; 
         c e n t = "  " ; 
         c h i = " " ; 
         c i r c = " " ; 
         c l u b s = "&c " ; 
         c o n g = ""E " ; 
         c o p y = "  " ; 
         c r a r r = "! " ; 
         c u p = ""* " ; 
         c u r r e n = "  " ; 
         d A r r = "! " ; 
         d a g g e r = "   " ; 
         d a r r = "! " ; 
         d e g = "  " ; 
         d e l t a = " " ; 
         d i a m s = "&f " ; 
         d i v i d e = "  " ; 
         e a c u t e = "  " ; 
         e c i r c = "  " ; 
         e g r a v e = "  " ; 
         e m p t y = "" " ; 
         e m s p = "  " ; 
         e n s p = "  " ; 
         e p s i l o n = " " ; 
         e q u i v = ""a " ; 
         e t a = " " ; 
         e t h = "  " ; 
         e u m l = "  " ; 
         e u r o = "  " ; 
         e x i s t = "" " ; 
         f n o f = " " ; 
         f o r a l l = ""  " ; 
         f r a c 1 2 = "  " ; 
         f r a c 1 4 = "  " ; 
         f r a c 3 4 = "  " ; 
         f r a s l = " D " ; 
         g a m m a = " " ; 
         g e = ""e " ; 
         g t = " > " ; 
         h A r r = "! " ; 
         h a r r = "! " ; 
         h e a r t s = "&e " ; 
         h e l l i p = " & " ; 
         i a c u t e = "  " ; 
         i c i r c = "  " ; 
         i e x c l = "  " ; 
         i g r a v e = "  " ; 
         i m a g e = "! " ; 
         i n f i n = "" " ; 
         i n t = ""+ " ; 
         i o t a = " " ; 
         i q u e s t = "  " ; 
         i s i n = "" " ; 
         i u m l = "  " ; 
         k a p p a = " " ; 
         l A r r = "! " ; 
         l a m b d a = " " ; 
         l a n g = "#) " ; 
         l a q u o = "  " ; 
         l a r r = "! " ; 
         l c e i l = "# " ; 
         l d q u o = "  " ; 
         l e = ""d " ; 
         l f l o o r = "#
 " ; 
         l o w a s t = "" " ; 
         l o z = "% " ; 
         l r m = "  " ; 
         l s a q u o = " 9 " ; 
         l s q u o = "  " ; 
         l t = " < " ; 
         m a c r = "  " ; 
         m d a s h = "  " ; 
         m i c r o = "  " ; 
         m i d d o t = "  " ; 
         m i n u s = "" " ; 
         m u = " " ; 
         n a b l a = "" " ; 
         n b s p = "  " ; 
         n d a s h = "  " ; 
         n e = ""` " ; 
         n i = "" " ; 
         n o t = "  " ; 
         n o t i n = ""	 " ; 
         n s u b = "" " ; 
         n t i l d e = "  " ; 
         n u = " " ; 
         o a c u t e = "  " ; 
         o c i r c = "  " ; 
         o e l i g = "S " ; 
         o g r a v e = "  " ; 
         o l i n e = " > " ; 
         o m e g a = " " ; 
         o m i c r o n = " " ; 
         o p l u s = "" " ; 
         o r = ""( " ; 
         o r d f = "  " ; 
         o r d m = "  " ; 
         o s l a s h = "  " ; 
         o t i l d e = "  " ; 
         o t i m e s = "" " ; 
         o u m l = "  " ; 
         p a r a = "  " ; 
         p a r t = "" " ; 
         p e r m i l = " 0 " ; 
         p e r p = "" " ; 
         p h i = " " ; 
         p i = " " ; 
         p i v = " " ; 
         p l u s m n = "  " ; 
         p o u n d = "  " ; 
         p r i m e = " 2 " ; 
         p r o d = "" " ; 
         p r o p = "" " ; 
         p s i = " " ; 
         q u o t = " \ " " ; 
         r A r r = "! " ; 
         r a d i c = "" " ; 
         r a n g = "#* " ; 
         r a q u o = "  " ; 
         r a r r = "! " ; 
         r c e i l = "#	 " ; 
         r d q u o = "  " ; 
         r e a l = "! " ; 
         r e g = "  " ; 
         r f l o o r = "# " ; 
         r h o = " " ; 
         r l m = "  " ; 
         r s a q u o = " : " ; 
         r s q u o = "  " ; 
         s b q u o = "  " ; 
         s c a r o n = "a " ; 
         s d o t = "" " ; 
         s e c t = "  " ; 
         s h y = "  " ; 
         s i g m a = " " ; 
         s i g m a f = " " ; 
         s i m = ""< " ; 
         s p a d e s = "&` " ; 
         s u b = "" " ; 
         s u b e = "" " ; 
         s u m = "" " ; 
         s u p 1 = "  " ; 
         s u p 2 = "  " ; 
         s u p 3 = "  " ; 
         s u p = "" " ; 
         s u p e = "" " ; 
         s z l i g = "  " ; 
         t a u = " " ; 
         t h e r e 4 = ""4 " ; 
         t h e t a = " " ; 
         t h e t a s y m = " " ; 
         t h i n s p = " 	 " ; 
         t h o r n = "  " ; 
         t i l d e = " " ; 
         t i m e s = "  " ; 
         t r a d e = "!" " ; 
         u A r r = "! " ; 
         u a c u t e = "  " ; 
         u a r r = "! " ; 
         u c i r c = "  " ; 
         u g r a v e = "  " ; 
         u m l = "  " ; 
         u p s i h = " " ; 
         u p s i l o n = " " ; 
         u u m l = "  " ; 
         w e i e r p = "! " ; 
         x i = " " ; 
         y a c u t e = "  " ; 
         y e n = "  " ; 
         y u m l = "  " ; 
         z e t a = " " ; 
         z w j = "  " ; 
         z w n j = "  " ; 
 }                                                                                                          znek/MulleNewz/FactorySettings.plist                                                                0100644 0000356 0000000 00000002347 07662423160 017012  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    sources = (
        "http://www.mulle-kybernetik.com/rss/News.rss", 
        "http://www.heise.de/newsticker/heise.rdf", 
        "http://www.theregister.co.uk/tonys/slashdot.rdf", 
	"http://www.bbc.co.uk/syndication/feeds/news/ukfs_news/front_page/rss091.xml",
        "http://www.osnews.com/files/recent.rdf", 
        "http://www.kuro5hin.org/backend.rdf", 
        "http://slashdot.org/slashdot.rdf", 
        "http://www.wired.com/news_drop/netcenter/netcenter.rdf", 
        "http://www.newsforge.net/newsforge.rdf", 
        "http://www.FreeBSD.org/news/news.rdf", 
        "http://www.cert.org/channels/certcc.rdf", 
        "http://www.securityfocus.com/topnews?type=rss", 
        "http://p.moreover.com/cgi-local/page?c=Computer%20security%20news&o=rss", 
        "http://www.planetquake3.net/backend.php", 
        "http://www.bluesnews.com/news/news_1_0.rdf", 
        "http://freshmeat.net/backend/fm.rdf", 
	"http://www.newsisfree.com/HPE/xml/feeds/78/3178.xml", 
	"http://perversiontracker.com/index.rdf", 
	"http://www.pycs.net/bbum/rss.xml", 
	"http://www.mulle-kybernetik.com/weblog/index.rdf", 
        "http://www.go-mono.com/index.rss"
    ); 
    expireInterval = 60; // NOT USED
    updateInterval = 60; // every 60 minutes
}                                                                                                                                                                                                                                                                                         znek/MulleNewz/GNUmakefile                                                                          0100644 0000356 0000000 00000002452 07534156147 014662  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  #
# GNUmakefile - Generated by ProjectCenter
# Written by Philippe C.D. Robert <phr@3dkit.org>
#
# NOTE: Do NOT change this file -- ProjectCenter maintains it!
#
# Put all of your customisations in GNUmakefile.preamble and
# GNUmakefile.postamble
#

include $(GNUSTEP_MAKEFILES)/common.make


#
# Subprojects
#


ADDITIONAL_INCLUDE_DIRS = -IRSS -IMulleBasicXML

MulleNewz_SUBPROJECTS = RSS MulleBasicXML


#
# Main application
#

PACKAGE_NAME=MulleNewz
APP_NAME=MulleNewz
GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_LOCAL_ROOT)/
MulleNewz_APPLICATION_ICON=MulleNewz.tiff
MulleNewz_MAIN_MODEL_FILE=MulleNewz.gorm


#
# Additional libraries
#

ADDITIONAL_GUI_LIBS += -lEDCommon -lcrypt

#
# Resource files
#

MulleNewz_RESOURCE_FILES= \
MarkupTags.plist \
MulleNewz.gorm \
MulleNewzInfo.plist \
MulleNewz.tiff \
Entity2String.plist \
FactorySettings.plist


#
# Header files
#

MulleNewz_HEADERS= \
MKNAppDelegate.h          MarkupTagProcessor.h \
NSString+XMLExtensions.h


#
# Class files
#

MulleNewz_OBJC_FILES= \
MarkupTagProcessor.m      NSString+XMLExtensions.m \
MKNAppDelegate.m          MulleNewzApp_main.m


#
# C files
#

MulleNewz_C_FILES= 

-include GNUmakefile.preamble
-include GNUmakefile.local
include $(GNUSTEP_MAKEFILES)/aggregate.make
include $(GNUSTEP_MAKEFILES)/application.make
-include GNUmakefile.postamble
                                                                                                                                                                                                                      znek/MulleNewz/GPL.txt                                                                              0100644 0000356 0000000 00000035451 07521077531 013773  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS
                                                                                                                                                                                                                       znek/MulleNewz/MKNAppDelegate.h                                                                     0100644 0000356 0000000 00000005273 07503216737 015504  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNAppDelegate.h
//  MulleNewz
//
//  Created by znek on Thu Jun 13 2002.
//  $Id: MKNAppDelegate.h,v 1.2 2002/06/16 23:23:11 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__MKNAppDelegate_h_INCLUDE
#define	__MKNAppDelegate_h_INCLUDE


#import <AppKit/AppKit.h>


@interface MKNAppDelegate : NSObject
{
    IBOutlet NSMenu *newsMenu;
    IBOutlet NSWindow *prefWindow;
    IBOutlet NSTableView *rssSourcesTableView;
    IBOutlet NSButtonCell *removeRSSSourcesButton;
    IBOutlet NSTextField *updateIntervalField;

    NSImage *normalDocklingImage;
    NSImageView *docklingImageView;
    NSMutableArray *rssSources;
    NSTimer *updateTimer;
    NSMutableArray *jobQueue;
    NSLock *jobLock;
}

- (NSImage *)normalDocklingImage;
- (void)setDocklingImage:(NSImage *)anImage;

- (NSArray *)rssSources;
- (void)checkRSSSources;

- (void)startUpdateTimer;
- (void)stopUpdateTimer;
- (NSTimeInterval)updateInterval;

- (NSMutableDictionary *)defaults;
- (void)storeDefaults:(NSDictionary *)defaults;

- (IBAction)openPreferences:(id)sender;
- (IBAction)updateAllRSSSources:(id)sender;

    // Preferences actions
- (IBAction)addRSSSource:(id)sender;
- (IBAction)removeSelectedRSSSources:(id)sender;
- (IBAction)setUpdateInterval:(id)sender;

@end

#endif	/* __MKNAppDelegate_h_INCLUDE */
                                                                                                                                                                                                                                                                                                                                     znek/MulleNewz/MKNAppDelegate.m                                                                     0100644 0000356 0000000 00000056103 07631235203 015476  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNAppDelegate.m
//  MulleNewz
//
//  Created by znek on Thu Jun 13 2002.
//  $Id: MKNAppDelegate.m,v 1.5 2003/03/04 23:45:07 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MKNAppDelegate.h"
#import <EDCommon/EDCommon.h>
#import "NSString+XMLExtensions.h"
#import "RSSCache.h"
#import "RSSParser.h"
#import "MarkupTagProcessor.h"
#import "MXElement.h"
#import "RSSElements.h" // high level RSS elements


// 'Update all', 'Separator item'
#define RSS_MENU_OFFSET 2


#ifdef GNUSTEP
@implementation NSBundle (xxx)
- (NSString *)bundleIdentifier
{
  return @"MulleNewz";
}
@end
#endif


@interface MKNAppDelegate (PrivateAPI)
- (void)logWithFormat:(NSString *)format, ...;
- (void)_setup;
- (void)_setupMenu;
- (void)_setNormalImage;
- (void)_setClockImageWithAngle:(float)angle;

- (NSMenuItem *)_itemForDocument:(id)document;
- (void)_insertItemForDocumentDescription:(NSDictionary *)documentDescription atIndex:(int)itemIndex;
- (NSMenuItem *)_findExistingItemForDocumentDescription:(NSDictionary *)documentDescription;
- (void)updateMenuForRSSDocumentDescription:(NSDictionary *)documentDescription preferredIndex:(int)itemIndex;
- (IBAction)openURLForSender:(id)sender;

- (void)addJobForURL:(NSString *)sourceURL preferredIndex:(int)itemIndex;
- (void)processPendingJobs;
- (void)_processPendingJobs:(id)sender;

- (void)_retrieveDefaults;
- (void)_synchronizeDefaults;

- (NSString *)stringByRemovingNonRenderableEntitiesFromString:(NSString *)aString;


- (NSBundle *)bundle;
- (NSMenu *)menu;
- (void)setMenuChanged:(BOOL)yn;

@end


@implementation MKNAppDelegate

////////////////////////////////////////////////////
//
//  INIT & DEALLOC
//
////////////////////////////////////////////////////


- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [self logWithFormat:@"setting up at: %@", [NSCalendarDate date]];
    [self _setup];
}

-(void)release
{
    if(updateTimer != nil)
        [self stopUpdateTimer];
    [super release];
}

- (void)dealloc
{
    [self logWithFormat:@"Deallocing at: %@", [NSCalendarDate date]];
    [self _synchronizeDefaults];
    [docklingImageView release];
    [rssSources release];
    [jobQueue release];
    [jobLock release];
    [super dealloc];
}


////////////////////////////////////////////////////
//
//  SETUP
//
////////////////////////////////////////////////////


- (void)_setup
{
    [RSSCache setBundle:[self bundle]];
    [NSString setBundle:[self bundle]];
    rssSources = [[NSMutableArray alloc] init];
    jobQueue = [[NSMutableArray alloc] init];
    jobLock = [[NSLock alloc] init];

    NS_DURING

        [self _retrieveDefaults];
        [self _setNormalImage];
        [self _setupMenu];
        [self checkRSSSources];
        if([self updateInterval] > 0.0)
            [self startUpdateTimer];

        NS_HANDLER

            [self logWithFormat:@"Caught exception: %@", [localException reason]];

        NS_ENDHANDLER
}

- (NSImage *)normalDocklingImage
{
    if(normalDocklingImage == nil)
    {
        normalDocklingImage = [[NSImage alloc] initWithContentsOfFile:[[self bundle] pathForResource:@"MulleNewz" ofType:@"tiff"]];
#ifdef GNUSTEP
        [normalDocklingImage setScalesWhenResized:YES];
        [normalDocklingImage setSize:NSMakeSize(48.0, 48.0)];
#endif
    }
    return normalDocklingImage;
}

- (void)_setNormalImage
{
    [self setDocklingImage:[self normalDocklingImage]];
}

- (void)_setClockImageWithAngle:(float)angle
{
    NSImage *image;
    NSBezierPath *bezierPath;
    NSPoint centerPoint;
    float _angle;

    angle = ((int)angle) % 360;

    if(angle < 90)
        _angle = 90 - angle;
    else
        _angle = 360 - (angle - 90);

    image = [[[self normalDocklingImage] copy] autorelease];
    bezierPath = [NSBezierPath bezierPath];

#ifndef GNUSTEP
    centerPoint = NSMakePoint(64, 64+8);
#else
    centerPoint = NSMakePoint(24, 24+4);
#endif
    [bezierPath moveToPoint:centerPoint];
#ifndef GNUSTEP
    [bezierPath appendBezierPathWithArcWithCenter:centerPoint radius:64 * 0.70 startAngle:90 endAngle:_angle clockwise:YES];
#else
    [bezierPath appendBezierPathWithArcWithCenter:centerPoint radius:24 * 0.70 startAngle:90 endAngle:_angle clockwise:YES];
#endif
    [bezierPath lineToPoint:centerPoint];

    [image lockFocus];
    [[NSColor colorWithDeviceWhite:NSBlack alpha:0.25] set];
    [bezierPath stroke];
    [[NSColor colorWithDeviceWhite:NSBlack alpha:0.2] set];
    [bezierPath fill];
    [image unlockFocus];
    [self setDocklingImage:image];
}


- (void)setDocklingImage:(NSImage *)anImage
{
    [NSApp setApplicationIconImage:anImage];
}


////////////////////////////////////////////////////
//
//  RSS DOCUMENTS
//
////////////////////////////////////////////////////


- (NSArray *)rssSources
{
    return rssSources;
}

- (void)checkRSSSources
{
    NSEnumerator *rssSourceURLEnum;
    NSString *aSourceURL;

    rssSourceURLEnum = [[self rssSources] objectEnumerator];
    while((aSourceURL = [rssSourceURLEnum nextObject]) != nil)
        [self addJobForURL:aSourceURL preferredIndex:NSNotFound];

    // now perform the jobs. this will take care of visualizing the process.
    [self processPendingJobs];
}


////////////////////////////////////////////////////
//
//  JOBS/FETCHES
//
////////////////////////////////////////////////////


- (void)addJobForURL:(NSString *)sourceURL preferredIndex:(int)itemIndex
{
    EDObjectPair *job;

    job = [EDObjectPair pairWithObjects:sourceURL :[NSNumber numberWithInt:itemIndex]];
    [jobLock lock];
    [jobQueue addObject:job];
    [jobLock unlock];
}

- (void)processPendingJobs
{
    [jobLock lock];
#if 0
    [NSThread detachNewThreadSelector:@selector(_processPendingJobs:) toTarget:self withObject:self];
#else
    [self _processPendingJobs:self];
#endif
    [jobLock unlock];
}

- (void)_processPendingJobs:(id)sender
{
    NSAutoreleasePool *tlPool;
    int count;

    tlPool = [[NSAutoreleasePool allocWithZone:[self zone]] init];
    count = [jobQueue count];
    if(count > 0)
    {
        EDObjectPair *job;
        float angleIncrementPerEntry = 359 / count;
        float angle = angleIncrementPerEntry;
        int i;

        for(i = 0; i < count; i++)
        {
            NSDictionary *documentDescription;

            job = [jobQueue objectAtIndex:i];
            [self _setClockImageWithAngle:angle];
            documentDescription = [[RSSCache sharedCache] documentDescriptionForURL:[job firstObject]];
            [self updateMenuForRSSDocumentDescription:documentDescription preferredIndex:[[job secondObject] intValue]];
            angle += angleIncrementPerEntry;
        }
        [self _setClockImageWithAngle:359];
        [jobQueue removeAllObjects];
        [self _setNormalImage];
    }
    [tlPool release];
}

////////////////////////////////////////////////////
//
//  MENU STUFF
//
////////////////////////////////////////////////////


- (void)updateMenuForRSSDocumentDescription:(NSDictionary *)documentDescription preferredIndex:(int)itemIndex
{
    NSMenuItem *anItem;

    [self logWithFormat:@"UpdatingRSSSource: %@", [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString]];

    anItem = [self _findExistingItemForDocumentDescription:documentDescription];
    if(anItem != nil)
    {
#warning * we should not remove items in all cases!
        // DO ME:
        // if a source was available at some point and now has become unavailable,
        // we should place a note somewhere indicating that this info is outdated,
        // but shouldn't delete it completely
        itemIndex = [[self menu] indexOfItem:anItem];
        [[self menu] removeItemAtIndex:itemIndex];
    }

    // this will construct all we need
    [self _insertItemForDocumentDescription:documentDescription atIndex:itemIndex];
    // announce the change to the dockling server
    [self setMenuChanged:YES];
    // ... and finally synchronize the user defaults
    [self _synchronizeDefaults];
}


- (void)_setupMenu
{
    NSMenuItem *newItem;
#ifdef GNUSTEP
    NSMenuItem *anItem;
#endif

    newItem = [[[NSMenuItem alloc] initWithTitle:@"Newz" action:NULL keyEquivalent:@""] autorelease];
    [newsMenu setTitle:@"Newz"];
    [newItem setSubmenu:newsMenu];
#ifdef GNUSTEP
    anItem = [[[NSMenuItem alloc] initWithTitle:@"Update all" action:@selector(updateAllRSSSources:) keyEquivalent:@""] autorelease];
    [anItem setTarget:self];
    [anItem setRepresentedObject:nil];
    [newsMenu addItem:anItem];
    [newsMenu addItem:[NSMenuItem separatorItem]];
#endif
    [[NSApp mainMenu] insertItem:newItem atIndex:1];

    [self logWithFormat:@"menu = %@", [self menu]];
}

- (NSMenuItem *)_itemForDocument:(id)document
{
    NSMenuItem *anItem;

    anItem = [[[NSMenuItem alloc] initWithTitle:[self stringByRemovingNonRenderableEntitiesFromString:[document title]] action:@selector(openURLForSender:) keyEquivalent:@""] autorelease];
    [anItem setTarget:self];
    [anItem setRepresentedObject:document];
    return anItem;
}

- (void)_insertItemForDocumentDescription:(NSDictionary *)documentDescription atIndex:(int)itemIndex
{
    RSSDocument *rssDocument;
    NSMenuItem *anItem;
    NSMenu *aSubMenu;
    NSString *title;

    rssDocument = [documentDescription objectForKey:RSSDocumentObjectKey];
    if(rssDocument != nil)
    {
        NSEnumerator *rssItemEnum;
        RSSItem *rssItem;

        anItem = [self _itemForDocument:rssDocument];
        if(itemIndex != NSNotFound)
            [[self menu] insertItem:anItem atIndex:itemIndex];
        else
            [[self menu] addItem:anItem];

        aSubMenu = [[[NSMenu alloc] initWithTitle:[[documentDescription objectForKey:RSSDocumentURLKey] absoluteString]] autorelease];
        [[self menu] setSubmenu:aSubMenu forItem:anItem];

#warning ** localize this!
        title = [NSString stringWithFormat:@"Update %@", [self stringByRemovingNonRenderableEntitiesFromString:[[rssDocument channel] title]]];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(updateRSSSourceForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentURLKey]];
        [aSubMenu addItem:anItem];
        [aSubMenu addItem:[NSMenuItem separatorItem]];

        rssItemEnum = [[rssDocument items] objectEnumerator];
        while((rssItem = [rssItemEnum nextObject]) != nil)
        {
            anItem = [self _itemForDocument:rssItem];
            [aSubMenu addItem:anItem];
        }
    }
    else
    {
        title = [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString];

        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(openURLForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setState:NSMixedState]; // visually indicate problem
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentObjectKey]];

        if(itemIndex != NSNotFound)
            [[self menu] insertItem:anItem atIndex:itemIndex];
        else
            [[self menu] addItem:anItem];

        aSubMenu = [[[NSMenu alloc] initWithTitle:title] autorelease];
        [[self menu] setSubmenu:aSubMenu forItem:anItem];

#warning ** localize this!
        title = [NSString stringWithFormat:@"Update %@", title];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(updateRSSSourceForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentURLKey]];
        [aSubMenu addItem:anItem];
        [aSubMenu addItem:[NSMenuItem separatorItem]];

#warning ** localize this!
        title = [NSString stringWithFormat:@"Error: %@", [documentDescription objectForKey:RSSDocumentErrorKey]];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:NULL keyEquivalent:@""] autorelease];
        [anItem setEnabled:NO];
        [aSubMenu addItem:anItem];
    }
}

- (NSMenuItem *)_findExistingItemForDocumentDescription:(NSDictionary *)documentDescription
{
    NSString *documentURL = [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString];
    int count = [[self menu] numberOfItems] - RSS_MENU_OFFSET, i;

    for(i = 0; i < count; i++)
    {
        NSString *sourceURL = [rssSources objectAtIndex:i];
        if([sourceURL isEqualToString:documentURL])
            return [[self menu] itemAtIndex:i + RSS_MENU_OFFSET];
    }
    return nil;
}


// MENU HELPERS

- (NSString *)stringByRemovingNonRenderableEntitiesFromString:(NSString *)aString
{
    static RSSParser *markupParser = nil;
    NSMutableString *buffer;
    NSArray *objects;

    if(markupParser == nil)
    {
        NSString *path;
        NSDictionary *definitions, *entities;
        MarkupTagProcessor *tagProcessor;

        path = [[self bundle] pathForResource:@"MarkupTags" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"MarkupTags.plist not found!"];
        definitions = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];

        path = [[self bundle] pathForResource:@"Entity2String" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"Entity2String.plist not found!"];
        entities = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];
        
        tagProcessor = [[[MarkupTagProcessor allocWithZone:[self zone]] initWithTagDefinitions:definitions] autorelease];
        [tagProcessor setIgnoresUnknownNamespaces:YES];
        [tagProcessor setIgnoresUnknownTags:YES];
        [tagProcessor setIgnoresUnknownAttributes:YES];

        markupParser = [[RSSParser allocWithZone:[self zone]] initWithTagProcessor:tagProcessor];
        [markupParser setPreservesWhitespace:NO];
        [markupParser setEntityTable:entities];
    }

    buffer = [NSMutableString string];

    NS_DURING

        objects = [markupParser parseXMLFragment:[NSString stringWithFormat:@"<text>%@</text>", [aString stringByDecodingEntityEncoding]]];

    NS_HANDLER

        [self logWithFormat:@"stringByRemovingNonRenderableEntitiesFromString: %@:%@", [localException name], [localException reason]];
        return aString;

    NS_ENDHANDLER

    [(MXElement *)[objects lastObject] appendToString:buffer];
    return buffer;
}


////////////////////////////////////////////////////
//
//  ACTIONS
//
////////////////////////////////////////////////////


- (IBAction)openPreferences:(id)sender
{
    if(prefWindow == nil)
    {
        if([NSBundle loadNibNamed:@"Preferences" owner:self] == NO)
            [NSException raise:NSGenericException format:@"Error loading Preferences.nib"];
    }
    [rssSourcesTableView reloadData];
    [updateIntervalField setFloatValue:[self updateInterval] / 60];
    [prefWindow makeKeyAndOrderFront:self];
}

// Preferences action
- (IBAction)addRSSSource:(id)sender
{
    [self logWithFormat:@"addRSSSource:"];

    [rssSources addObject:@"NewRSSSource"];
    [rssSourcesTableView reloadData];
    [rssSourcesTableView selectRow:[rssSources count] - 1 byExtendingSelection:NO];
    [rssSourcesTableView scrollRowToVisible:[rssSources count] - 1];
    [self _synchronizeDefaults];
}

- (IBAction)removeSelectedRSSSources:(id)sender
{
    NSArray *indices;
    NSEnumerator *iEnum;
    NSNumber *removeIndex;


    NS_DURING

        indices = [[rssSourcesTableView selectedRowEnumerator] allObjects];
        [self logWithFormat:@"removeSelectedRSSSources: SHOULD ix=%@ count=%d", indices, [rssSourcesTableView numberOfSelectedRows]];

        // Guarantee that indices are sorted in ascending order
        indices = [indices sortedArrayUsingSelector:@selector(compare:)];
        iEnum = [indices reverseObjectEnumerator];

        while((removeIndex = [iEnum nextObject]) != nil)
        {
            [rssSources removeObjectAtIndex:[removeIndex intValue]];
            // remove appropriate entries from menu as well
            [[self menu] removeItemAtIndex:[removeIndex intValue] + RSS_MENU_OFFSET];
        }

        [rssSourcesTableView reloadData];
        [self _synchronizeDefaults];

    NS_HANDLER

        [self logWithFormat:@"removeSelectedRSSSources: Caught exception: %@", [localException reason]];

    NS_ENDHANDLER
}


- (IBAction)updateRSSSourceForSender:(id)sender
{
    NSString *sourceURL;

    [[RSSCache sharedCache] flushCaches];
    sourceURL = [(NSURL *)[sender representedObject] absoluteString];
    [self addJobForURL:sourceURL preferredIndex:NSNotFound];
    [self processPendingJobs];
}

- (IBAction)updateAllRSSSources:(id)sender
{
    [[RSSCache sharedCache] flushCaches];
    [self checkRSSSources];
}

- (IBAction)setUpdateInterval:(id)sender
{
    NSMutableDictionary *defaults;
    float _interval = [updateIntervalField floatValue];

    defaults = [self defaults];
    [defaults setObject:[NSNumber numberWithFloat:_interval] forKey:@"updateInterval"];
    [self storeDefaults:defaults];
    [self _synchronizeDefaults];

    if(_interval > 0.0)
    {
        [self logWithFormat:@"Setting update interval to %f", _interval];
        [self stopUpdateTimer];
        [self startUpdateTimer];
    }
    else
    {
        [self logWithFormat:@"Disabling updates now"];
        [self stopUpdateTimer];
    }
}


// triggered by NSMenuItem
- (IBAction)openURLForSender:(id)sender
{
    //    [self logWithFormat:@"openURLForSender called by sender: %@", sender];

    NS_DURING

        NSString *urlString = [[sender representedObject] link];
    
        [self logWithFormat:@"Telling Workspace %@ to open URL: %@", [NSWorkspace sharedWorkspace], urlString];
        if([[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]] == NO)
            [self logWithFormat:@"Failed to open URL: %@", urlString];

    NS_HANDLER

        [self logWithFormat:@"INTERNAL ERROR: %@", [localException reason]];

    NS_ENDHANDLER
}


////////////////////////////////////////////////////
//
//  UPDATE TIMER
//
////////////////////////////////////////////////////


- (void)startUpdateTimer
{
    updateTimer = [[NSTimer scheduledTimerWithTimeInterval:[self updateInterval] target:self selector:@selector(updateAllRSSSources:) userInfo:nil repeats:YES] retain];
}

- (void)stopUpdateTimer
{
    [updateTimer invalidate];
    [updateTimer release];
    updateTimer = nil;
}

- (NSTimeInterval)updateInterval
{
    return [[[self defaults] objectForKey:@"updateInterval"] floatValue] * 60;
}



////////////////////////////////////////////////////
//
//  USER PREFERENCES
//
////////////////////////////////////////////////////


- (void)_retrieveDefaults
{
    NSMutableDictionary *defaults;

    defaults = [self defaults];
    if([defaults objectForKey:@"sources"] == nil)
    {
        NSDictionary *factorySettings;
        NSString *factoryPlist;

        factoryPlist = [NSString stringWithContentsOfFile:[[self bundle] pathForResource:@"FactorySettings" ofType:@"plist"]];
        factorySettings = [factoryPlist propertyList];
        [defaults takeValuesFromDictionary:factorySettings];
        [self storeDefaults:defaults];
        [self _synchronizeDefaults];
    }
    [rssSources removeAllObjects];
    [rssSources addObjectsFromArray:[defaults objectForKey:@"sources"]];
    [[RSSCache sharedCache] setExpireInterval:[[defaults objectForKey:@"expireInterval"] floatValue] * 60];
}


- (void)_synchronizeDefaults
{
    NSMutableDictionary *defaults;

    defaults = [self defaults];
    [defaults setObject:rssSources forKey:@"sources"];
    [defaults setObject:[NSNumber numberWithFloat:[[RSSCache sharedCache] expireInterval] / 60] forKey:@"expireInterval"];
    [self storeDefaults:defaults];
}

- (NSMutableDictionary *)defaults
{
    NSString *identifier;
    NSMutableDictionary *defaults;

    identifier = [[self bundle] bundleIdentifier];
    defaults = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] persistentDomainForName:identifier]];
    return defaults;
}

- (void)storeDefaults:(NSDictionary *)defaults
{
    [[NSUserDefaults standardUserDefaults] setPersistentDomain:defaults forName:[[self bundle] bundleIdentifier]];
}


////////////////////////////////////////////////////
//
//  DELEGATE / DATASOURCE
//
////////////////////////////////////////////////////


// DELEGATE

- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    [removeRSSSourcesButton setEnabled:[rssSourcesTableView numberOfSelectedRows] > 0];
    [prefWindow display];
}


// DATASOURCE

- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
    return [rssSources count];
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    return [rssSources objectAtIndex:row];
}


- (void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    [rssSources removeObjectAtIndex:row];
    [rssSources insertObject:object atIndex:row];
    // delete old menu item if it exists
    if(row + RSS_MENU_OFFSET <= [[[self menu] itemArray] count] - 1)
        [[self menu] removeItemAtIndex:row + RSS_MENU_OFFSET]; //  Update All and Separator are the offset

    // retrieve new description and insert into menu
    [self addJobForURL:object preferredIndex:row + RSS_MENU_OFFSET];
    [self processPendingJobs];
}


////////////////////////////////////////////////////
//
//  DEBUGGING
//
////////////////////////////////////////////////////


- (void)logWithFormat:(NSString *)format, ...
{
#ifndef GNUSTEP
    va_list args;
    NSMutableString *buffer;

    va_start(args, format);
    buffer = [[NSMutableString alloc] initWithFormat:format arguments:args];
    [buffer appendString:@"\n"];
    NSLog(buffer);
    [buffer release];
    va_end(args);
#endif
}


////////////////////////////////////////////////////
//
//  DEBUGGING
//
////////////////////////////////////////////////////


- (NSBundle *)bundle
{
    return [NSBundle mainBundle];
}

- (NSMenu *)menu
{
    return newsMenu;
}

- (void)setMenuChanged:(BOOL)yn
{
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/MKNConstants.h                                                                       0100644 0000356 0000000 00000004175 07630157435 015305  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNConstants.h
//  MulleNewz
//
//  Created by znek on Fri Feb 28 2003.
//  $Id: MKNConstants.h,v 1.1 2003/03/01 16:26:05 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__MKNConstants_h_INCLUDE
#define	__MKNConstants_h_INCLUDE


#import <Foundation/Foundation.h>


// Notifications
extern NSString *MKNPreferencesDidChangeNotification; // @"MKNPreferencesDidChange";

// Preferences keys
extern NSString *MKNURLsKey; // @"sources";
extern NSString *MKNUpdateIntervalKey; // @"updateInterval";
extern NSString *MKNExpireIntervalKey; // @"expireInterval";
extern NSString *MKNLastRunKey; // @"_run";

// Debugging
extern NSString *MKNDebugLogPath; // @"/tmp/MulleNewz.log";


#endif	/* __MKNConstants_h_INCLUDE */
                                                                                                                                                                                                                                                                                                                                                                                                   znek/MulleNewz/MKNConstants.m                                                                       0100644 0000356 0000000 00000003651 07630157435 015310  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNConstants.m
//  MulleNewz
//
//  Created by znek on Fri Feb 28 2003.
//  $Id: MKNConstants.m,v 1.1 2003/03/01 16:26:05 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>


NSString *MKNPreferencesDidChangeNotification = @"MKNPreferencesDidChange";

NSString *MKNURLsKey = @"sources";
NSString *MKNUpdateIntervalKey = @"updateInterval";
NSString *MKNExpireIntervalKey = @"expireInterval";
NSString *MKNLastRunKey = @"_run";

NSString *MKNDebugLogPath = @"/tmp/MulleNewz.log";
                                                                                       znek/MulleNewz/MKNDockling.h                                                                        0100644 0000356 0000000 00000004226 07631221256 015052  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNDockling.h
//  MulleNewz
//
//  Created by znek on Fri Jul 20 2001.
//  $Id: MKNDockling.h,v 1.7 2003/03/04 22:03:26 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Cocoa/Cocoa.h>
#import "Dockling.h"


@interface MKNDockling : Dockling
{
    NSImage *normalDocklingImage;
    NSImageView *docklingImageView;

    NSTimer *updateTimer;

    NSMutableArray *jobQueue;
    NSLock *jobLock;
}

- (NSImage *)normalDocklingImage;
- (void)setDocklingImage:(NSImage *)anImage;

- (NSArray *)rssSources;
- (void)checkRSSSources;

- (void)startUpdateTimer;
- (void)stopUpdateTimer;
- (NSTimeInterval)updateInterval;

- (NSMutableDictionary *)defaults;

- (IBAction)openPreferences:(id)sender;
- (IBAction)updateAllRSSSources:(id)sender;

@end
                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/MKNDockling.m                                                                        0100644 0000356 0000000 00000051756 07631235203 015066  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNDockling.m
//  MulleNewz
//
//  Created by znek on Fri Jul 20 2001.
//  $Id: MKNDockling.m,v 1.14 2003/03/04 23:45:07 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MKNDockling.h"
#import <EDCommon/EDCommon.h>
#import "NSString+XMLExtensions.h"
#import "RSSCache.h"
#import "RSSParser.h"
#import "MarkupTagProcessor.h"
#import "MXElement.h"
#import "RSSElements.h" // high level RSS elements
#include "MKNConstants.h"


#define DDNC [NSDistributedNotificationCenter defaultCenter]
#define MENU_ITEMS_OFFSET 3


@interface MKNDockling (PrivateAPI)
- (void)logWithFormat:(NSString *)format, ...;
- (void)_setup;
- (void)_setupMenu;
- (void)_setNormalImage;
- (void)_setClockImageWithAngle:(float)angle;

- (NSMenuItem *)_itemForDocument:(id)document;
- (void)_insertItemForDocumentDescription:(NSDictionary *)documentDescription atIndex:(int)itemIndex;
- (NSMenuItem *)_findExistingItemForDocumentDescription:(NSDictionary *)documentDescription;
- (void)updateMenuForRSSDocumentDescription:(NSDictionary *)documentDescription preferredIndex:(int)itemIndex;
- (IBAction)openURLForSender:(id)sender;

- (void)addJobForURL:(NSString *)sourceURL preferredIndex:(int)itemIndex;
- (void)processPendingJobs;
- (void)_processPendingJobs;

- (void)_retrieveDefaults;
- (void)_synchronizeDefaults;
- (void)storeDefaults:(NSDictionary *)defaults;

- (NSString *)stringByRemovingNonRenderablePropertiesFromString:(NSString *)aString;
@end


@implementation MKNDockling

////////////////////////////////////////////////////
//
//  INIT & DEALLOC
//
////////////////////////////////////////////////////


-(id)initWithBundle:(NSBundle *)bundle window:(NSWindow *)window
{
	[super initWithBundle:bundle window:window];
	[self logWithFormat:@"%s Setting up at: %@", __PRETTY_FUNCTION__, [NSCalendarDate date]];
	[self _setup];
	return self;
}

-(void)release
{
    if([self retainCount] == 1 && updateTimer != nil)
        [self stopUpdateTimer];
    [super release];
}

- (void)dealloc
{
    [self logWithFormat:@"%s Deallocing at: %@", __PRETTY_FUNCTION__, [NSCalendarDate date]];

    [DDNC removeObserver:self];

    [docklingImageView release];
    [jobQueue release];
    [jobLock release];
    [super dealloc];
}


////////////////////////////////////////////////////
//
//  SETUP
//
////////////////////////////////////////////////////


- (void)_setup
{

    NS_DURING

        [RSSCache setBundle:[self bundle]];
        //    [NSString setBundle:[self bundle]];
        jobQueue = [[NSMutableArray alloc] init];
        jobLock = [[NSLock alloc] init];
        
        [DDNC addObserver:self selector:@selector(registerPrefsChanged:) name:MKNPreferencesDidChangeNotification object:nil];

        [self _retrieveDefaults];
        [self _setNormalImage];
        [self _setupMenu];
        [self checkRSSSources];
        if([self updateInterval] > 0.0)
            [self startUpdateTimer];

    NS_HANDLER
    
        [self logWithFormat:@"%s Caught exception: %@", __PRETTY_FUNCTION__, [localException reason]];
    
    NS_ENDHANDLER
}


////////////////////////////////////////////////////
//
//  DOCK IMAGES
//
////////////////////////////////////////////////////


- (NSImage *)normalDocklingImage
{
    if(normalDocklingImage == nil)
         normalDocklingImage = [[NSImage alloc] initWithContentsOfFile:[[self bundle] pathForResource:@"MulleNewz" ofType:@"tiff"]];
    return normalDocklingImage;
}

- (void)_setNormalImage
{
    [self setDocklingImage:[self normalDocklingImage]];
}

- (void)_setClockImageWithAngle:(float)angle
{
    NSImage *image;
    NSBezierPath *bezierPath;
    NSPoint centerPoint;
    float _angle;

    angle = ((int)angle) % 360;

    if(angle < 90)
        _angle = 90 - angle;
    else
        _angle = 360 - (angle - 90);

    image = [[[self normalDocklingImage] copy] autorelease];
    bezierPath = [NSBezierPath bezierPath];

    centerPoint = NSMakePoint(64, 64+8);
    [bezierPath moveToPoint:centerPoint];
    [bezierPath appendBezierPathWithArcWithCenter:centerPoint radius:64 * 0.70 startAngle:90 endAngle:_angle clockwise:YES];
    [bezierPath lineToPoint:centerPoint];

    [image lockFocus];
    [[NSColor colorWithDeviceWhite:NSBlack alpha:0.25] set];
    [bezierPath stroke];
    [[NSColor colorWithDeviceWhite:NSBlack alpha:0.2] set];
    [bezierPath fill];
    [image unlockFocus];
    [self setDocklingImage:image];
}

- (void)setDocklingImage:(NSImage *)anImage
{
    if(docklingImageView == nil)
    {
        docklingImageView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 128, 128)];
        [docklingImageView setImageAlignment:NSImageAlignCenter];
        [docklingImageView setImageFrameStyle:NSImageFrameNone];
        [docklingImageView setImageScaling:NSScaleToFit];
    
        [[self window] setBackgroundColor:[NSColor clearColor]];
        [[self window] setContentView:docklingImageView];
    }
    [docklingImageView setImage:anImage];
    [[self window] display];
}


////////////////////////////////////////////////////
//
//  RSS DOCUMENTS
//
////////////////////////////////////////////////////


- (NSArray *)rssSources
{
    return [[self defaults] objectForKey:MKNURLsKey];
}


////////////////////////////////////////////////////
//
//  JOBS/FETCHES
//
////////////////////////////////////////////////////


- (void)checkRSSSources
{
    NSEnumerator *rssSourceURLEnum;
    NSString *aSourceURL;

    rssSourceURLEnum = [[self rssSources] objectEnumerator];
    while((aSourceURL = [rssSourceURLEnum nextObject]) != nil)
        [self addJobForURL:aSourceURL preferredIndex:NSNotFound];

    // now perform the jobs. this will take care of visualizing the process.
    [self processPendingJobs];
}

- (void)addJobForURL:(NSString *)sourceURL preferredIndex:(int)itemIndex
{
    EDObjectPair *job;
    
    job = [EDObjectPair pairWithObjects:sourceURL :[NSNumber numberWithInt:itemIndex]];
    [jobLock lock];
    [jobQueue addObject:job];
    [jobLock unlock];
}

- (void)processPendingJobs
{
    [jobLock lock];
#if 0
    [NSThread detachNewThreadSelector:@selector(_processPendingJobs)];
#else
    [self _processPendingJobs];
#endif
    [jobLock unlock];
}

- (void)_processPendingJobs
{
    int count;
    
    count = [jobQueue count];
    if(count > 0)
    {
        EDObjectPair *job;
        float angleIncrementPerEntry = 359 / count;
        float angle = angleIncrementPerEntry;
        int i;

        for(i = 0; i < count; i++)
        {
            NSDictionary *documentDescription;

            job = [jobQueue objectAtIndex:i];
            [self _setClockImageWithAngle:angle];
            documentDescription = [[RSSCache sharedCache] documentDescriptionForURL:[job firstObject]];
            [self updateMenuForRSSDocumentDescription:documentDescription preferredIndex:[[job secondObject] intValue]];
            angle += angleIncrementPerEntry;
        }
        [self _setClockImageWithAngle:359];
        [jobQueue removeAllObjects];
        [self _setNormalImage];
    }
}

////////////////////////////////////////////////////
//
//  MENU STUFF
//
////////////////////////////////////////////////////


- (void)_setupMenu
{
    if([NSBundle loadNibNamed:@"MKN" owner:self] == NO)
        [NSException raise:NSGenericException format:@"Error loading MKN.nib"];
}

- (void)updateMenuForRSSDocumentDescription:(NSDictionary *)documentDescription preferredIndex:(int)itemIndex
{
    NSMenuItem *anItem;

    [self logWithFormat:@"%s: %@ idx:%d", __PRETTY_FUNCTION__, [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString], itemIndex];
    
    anItem = [self _findExistingItemForDocumentDescription:documentDescription];
    if(anItem != nil)
    {
        itemIndex = [[self menu] indexOfItem:anItem];
        [[self menu] removeItemAtIndex:itemIndex];
        [self logWithFormat:@"%s: Found [%@] itemIdx=%d", __PRETTY_FUNCTION__, [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString], itemIndex];
    }

    // this will construct all we need
    [self _insertItemForDocumentDescription:documentDescription atIndex:itemIndex];
    // announce the change to the dockling server
    [self setMenuChanged:YES];
}

- (NSMenuItem *)_itemForDocument:(id)document
{
    NSMenuItem *anItem;

    anItem = [[[NSMenuItem alloc] initWithTitle:[self stringByRemovingNonRenderablePropertiesFromString:[document title]] action:@selector(openURLForSender:) keyEquivalent:@""] autorelease];
    [anItem setTarget:self];
    [anItem setRepresentedObject:document];
    return anItem;
}

- (void)_insertItemForDocumentDescription:(NSDictionary *)documentDescription atIndex:(int)itemIndex
{
    RSSDocument *rssDocument;
    NSMenuItem *anItem;
    NSMenu *aSubMenu;
    NSString *title;

    rssDocument = [documentDescription objectForKey:RSSDocumentObjectKey];
    if(rssDocument != nil)
    {
        NSEnumerator *rssItemEnum;
        RSSItem *rssItem;

        anItem = [self _itemForDocument:rssDocument];
        if(itemIndex != NSNotFound)
            [[self menu] insertItem:anItem atIndex:itemIndex];
        else
            [[self menu] addItem:anItem];

        aSubMenu = [[[NSMenu alloc] initWithTitle:[[documentDescription objectForKey:RSSDocumentURLKey] absoluteString]] autorelease];
        [[self menu] setSubmenu:aSubMenu forItem:anItem];

        title = [NSString stringWithFormat:NSLocalizedString(@"Update %@", @"RSS channel title for updating"), [self stringByRemovingNonRenderablePropertiesFromString:[[rssDocument channel] title]]];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(updateRSSSourceForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentURLKey]];
        [aSubMenu addItem:anItem];
        [aSubMenu addItem:[NSMenuItem separatorItem]];

        rssItemEnum = [[rssDocument items] objectEnumerator];
        while((rssItem = [rssItemEnum nextObject]) != nil)
        {
            anItem = [self _itemForDocument:rssItem];
            [aSubMenu addItem:anItem];
        }
    }
    else
    {
        title = [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString];

        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(openURLForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setState:NSMixedState]; // visually indicate problem
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentObjectKey]];

        if(itemIndex != NSNotFound)
            [[self menu] insertItem:anItem atIndex:itemIndex];
        else
            [[self menu] addItem:anItem];

        aSubMenu = [[[NSMenu alloc] initWithTitle:title] autorelease];
        [[self menu] setSubmenu:aSubMenu forItem:anItem];

        title = [NSString stringWithFormat:NSLocalizedString(@"Update %@", @"RSS channel title for updating"), title];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(updateRSSSourceForSender:) keyEquivalent:@""] autorelease];
        [anItem setTarget:self];
        [anItem setRepresentedObject:[documentDescription objectForKey:RSSDocumentURLKey]];
        [aSubMenu addItem:anItem];
        [aSubMenu addItem:[NSMenuItem separatorItem]];

        title = [NSString stringWithFormat:NSLocalizedString(@"Error: %@", @"Preamble for error descriptions"), [documentDescription objectForKey:RSSDocumentErrorKey]];
        anItem = [[[NSMenuItem alloc] initWithTitle:title action:NULL keyEquivalent:@""] autorelease];
        [anItem setEnabled:NO];
        [aSubMenu addItem:anItem];
    }
}

- (NSMenuItem *)_findExistingItemForDocumentDescription:(NSDictionary *)documentDescription
{
    NSString *documentURL;
    int count = [[self menu] numberOfItems], i = 3;

    documentURL = [[documentDescription objectForKey:RSSDocumentURLKey] absoluteString];

    // the next step is to iterate over all menuitems and compare the submenus' titles with that url
    for(; i < count; i++)
    {
        NSMenuItem *menuItem = [[self menu] itemAtIndex:i];
        if([[[menuItem submenu] title] isEqualToString:documentURL])
            return menuItem;
    }
    return nil;
}


// MENU HELPERS

- (NSString *)stringByRemovingNonRenderablePropertiesFromString:(NSString *)origString
{
    static RSSParser *markupParser = nil;

    NSString *string;
    NSMutableString *newString;
    NSArray *objects;

    string = origString;

#if 0
    [self logWithFormat:@"%s << string: %@", __PRETTY_FUNCTION__, string];
#endif
    
    if(markupParser == nil)
    {
        NSString *path;
        NSDictionary *definitions, *entities;
        MarkupTagProcessor *tagProcessor;

        path = [[self bundle] pathForResource:@"MarkupTags" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"MarkupTags.plist not found!"];
        definitions = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];

        path = [[self bundle] pathForResource:@"Entity2String" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"Entity2String.plist not found!"];
        entities = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];

        tagProcessor = [[[MarkupTagProcessor allocWithZone:[self zone]] initWithTagDefinitions:definitions] autorelease];
        [tagProcessor setIgnoresUnknownNamespaces:YES];
        [tagProcessor setIgnoresUnknownTags:YES];
        [tagProcessor setIgnoresUnknownAttributes:YES];

        markupParser = [[RSSParser allocWithZone:[self zone]] initWithTagProcessor:tagProcessor];
        [markupParser setPreservesWhitespace:NO];
        [markupParser setEntityTable:entities];
    }

    // We're now going to decode the content again.
    // Although the EDMLParser already does this procedure for us
    // we need to do this a second time because some sites encode
    // HTML markup in their XML which we want to get rid of
    // (because we can't render it properly)

    newString = [NSMutableString string];

    NS_DURING


        // Decode entities and remove markup that we cannot render.
        // This might actually raise an exception, as already decoded entities might be
        // illegal XML input. We thus suppress the exception and return the original
        // string which most probably contains proper text only.

        objects = [markupParser parseXMLFragment:[NSString stringWithFormat:@"<text>%@</text>", string]];
        [(MXElement *)[objects lastObject] appendToString:newString];
        string = newString;

    NS_HANDLER

        string = origString;
        [self logWithFormat:@"%s: [PASS2] %@:%@ [string=%@]", __PRETTY_FUNCTION__, [localException name], [localException reason], string];

    NS_ENDHANDLER


#if 0
    [self logWithFormat:@"%s >> string: %@", __PRETTY_FUNCTION__, string];
#endif
    return string;
}


////////////////////////////////////////////////////
//
//  ACTIONS
//
////////////////////////////////////////////////////


- (IBAction)openPreferences:(id)sender
{
    NSString *prefsAppPath;

    prefsAppPath = [[self bundle] pathForResource:@"Preferences" ofType:@"app"];
#if 0
    [self logWithFormat:@"%s Preferences.app path: %@", __PRETTY_FUNCTION__, prefsAppPath];
#endif
    [[NSWorkspace sharedWorkspace] openFile:prefsAppPath];
}

- (IBAction)updateRSSSourceForSender:(id)sender
{
    NSString *sourceURL;
    
    [[RSSCache sharedCache] flushCaches];
    sourceURL = [(NSURL *)[sender representedObject] absoluteString];
    [self addJobForURL:sourceURL preferredIndex:NSNotFound];
    [self processPendingJobs];
}

- (IBAction)updateAllRSSSources:(id)sender
{
	[[RSSCache sharedCache] flushCaches];
	[self checkRSSSources];
}

// triggered by NSMenuItem
- (IBAction)openURLForSender:(id)sender
{
    NS_DURING

        NSString *urlString = [[sender representedObject] link];

#if 0
        [self logWithFormat:@"%s Telling Workspace %@ to open URL: %@", __PRETTY_FUNCTION__, [NSWorkspace sharedWorkspace], urlString];
#endif
        if([[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]] == NO)
            [self logWithFormat:@"%s Failed to open URL: %@", __PRETTY_FUNCTION__, urlString];

    NS_HANDLER
    
        [self logWithFormat:@"%s [INTERNAL ERROR]: %@", __PRETTY_FUNCTION__, [localException reason]];

    NS_ENDHANDLER
}


////////////////////////////////////////////////////
//
//  UPDATE TIMER
//
////////////////////////////////////////////////////


- (void)startUpdateTimer
{
    updateTimer = [[NSTimer scheduledTimerWithTimeInterval:[self updateInterval] target:self selector:@selector(updateAllRSSSources:) userInfo:nil repeats:YES] retain];
}

- (void)stopUpdateTimer
{
    [updateTimer invalidate];
    [updateTimer release];
    updateTimer = nil;
}

- (NSTimeInterval)updateInterval
{
    return [[[self defaults] objectForKey:MKNUpdateIntervalKey] floatValue] * 60;
}


////////////////////////////////////////////////////
//
//  USER PREFERENCES
//
////////////////////////////////////////////////////


- (void)registerPrefsChanged:(NSNotification *)notification
{
    NSMenu *_menu;
    int i;

#if 0
    [self logWithFormat:@"%s", __PRETTY_FUNCTION__];
#endif

    [self _retrieveDefaults];

#if 1
    [self logWithFormat:@"%s URLs: %@", __PRETTY_FUNCTION__, [[self rssSources] description]];
#endif

    _menu = [self menu];
    // remove all RSS menu items
    for(i = [_menu numberOfItems] - 1; i >= MENU_ITEMS_OFFSET; i--)
        [_menu removeItemAtIndex:i];

    // now reconstruct menu
    [self checkRSSSources];

    // updateInterval
    if([self updateInterval] > 0.0)
    {
#if 0
        [self logWithFormat:@"%s Setting update interval to %f", __PRETTY_FUNCTION__, [self updateInterval]];
#endif
        [self stopUpdateTimer];
        [self startUpdateTimer];
    }
    else
    {
#if 0
        [self logWithFormat:@"%s Disabling updates now", __PRETTY_FUNCTION__];
#endif
        [self stopUpdateTimer];
    }
    
}

- (void)_retrieveDefaults
{
	NSMutableDictionary *defaults;
	
	defaults = [self defaults];
	if([defaults objectForKey:MKNLastRunKey] == nil)
	{
		NSDictionary *factorySettings;
		NSString *factoryPlist;
		
		factoryPlist = [NSString stringWithContentsOfFile:[[self bundle] pathForResource:@"FactorySettings" ofType:@"plist"]];
		factorySettings = [factoryPlist propertyList];
		[defaults takeValuesFromDictionary:factorySettings];
		[defaults setObject:[NSCalendarDate date] forKey:MKNLastRunKey];
		[self storeDefaults:defaults];
        [self _synchronizeDefaults];
	}
	[[RSSCache sharedCache] setExpireInterval:[[defaults objectForKey:MKNExpireIntervalKey] floatValue] * 60];
}

- (NSMutableDictionary *)defaults
{
	NSString *identifier;
	NSMutableDictionary *defaults;

    // we need to synchronize beforehand, because our Preferences helper app might have changed them
    [[NSUserDefaults standardUserDefaults] synchronize];

	identifier = [[self bundle] bundleIdentifier];
	defaults = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] persistentDomainForName:identifier]];
	return defaults;
}

- (void)storeDefaults:(NSDictionary *)defaults
{
    [[NSUserDefaults standardUserDefaults] setPersistentDomain:defaults forName:[[self bundle] bundleIdentifier]];
}

- (void)_synchronizeDefaults
{
    NSMutableDictionary *defaults;

    defaults = [self defaults];
    [self storeDefaults:defaults];
}


////////////////////////////////////////////////////
//
//  DEBUGGING
//
////////////////////////////////////////////////////


- (void)logWithFormat:(NSString *)format, ...
{
    NSFileHandle *fh;
    va_list   	args;
    NSMutableString	*buffer;

    fh = [NSFileHandle fileHandleForUpdatingAtPath:MKNDebugLogPath];
    [fh seekToEndOfFile];

    va_start(args, format);
    buffer = [[NSMutableString alloc] initWithFormat:format arguments:args];
    [buffer appendString:@"\n"];
    [buffer fprintf:fh];
    [buffer release];
    va_end(args);

}

@end
                  znek/MulleNewz/MKNPTableView.h                                                                      0100644 0000356 0000000 00000003204 07630157376 015327  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNPTableView.h
//  MulleNewz
//
//  Created by znek on Fri Feb 28 2003.
//  $Id: MKNPTableView.h,v 1.1 2003/03/01 16:25:34 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted, provided that both the copyright notice and this permission
//  notice appear in all copies of the software, derivative works or modified versions,
//  and any portions thereof, and that both notices appear in supporting documentation,
//  and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__MKNPTableView_h_INCLUDE
#define	__MKNPTableView_h_INCLUDE


#import <AppKit/AppKit.h>


@interface MKNPTableView : NSTableView
{
}

@end


@interface NSObject(TableViewKeyDownDelegateMethod)
- (BOOL)tableView:(NSTableView *)tableView handleKeyDownEvent:(NSEvent *)theEvent;
@end


#endif	/* __MKNPTableView_h_INCLUDE */
                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/MKNPTableView.m                                                                      0100644 0000356 0000000 00000003772 07630157376 015346  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNPTableView.m
//  MulleNewz
//
//  Created by znek on Fri Feb 28 2003.
//  $Id: MKNPTableView.m,v 1.1 2003/03/01 16:25:34 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted, provided that both the copyright notice and this permission
//  notice appear in all copies of the software, derivative works or modified versions,
//  and any portions thereof, and that both notices appear in supporting documentation,
//  and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#include "MKNPTableView.h"


@implementation MKNPTableView

////////////////////////////////////////////////////////////
//
//  OVERRIDING
//
////////////////////////////////////////////////////////////


- (unsigned int)draggingSourceOperationMaskForLocal:(BOOL)isLocal
{
    if(isLocal == NO)
        return NSDragOperationEvery;
    return NSDragOperationCopy | NSDragOperationMove;
}

- (BOOL)ignoreModifierKeysWhileDragging
{
    return NO;
}

- (void)keyDown:(NSEvent *)theEvent
{
    if([[self delegate] respondsToSelector:@selector(tableView:handleKeyDownEvent:)])
        if([[self delegate] tableView:self handleKeyDownEvent:theEvent])
            return;
    [super keyDown:theEvent];
}

@end
      znek/MulleNewz/MKNPreferencesController.h                                                           0100644 0000356 0000000 00000004313 07630157376 017634  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNPreferencesController.h
//  MulleNewz
//
//  Created by znek on Thu Feb 27 2003.
//  $Id: MKNPreferencesController.h,v 1.1 2003/03/01 16:25:34 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__MKNPreferencesController_h_INCLUDE
#define	__MKNPreferencesController_h_INCLUDE


#import <AppKit/AppKit.h>


@interface MKNPreferencesController : NSObject
{
    IBOutlet NSWindow *window;
    IBOutlet NSTableView *urlsTableView;
    IBOutlet NSTextField *updateIntervalTextField;
    IBOutlet NSButtonCell *removeSelectedURLsButtonCell;

    NSMutableArray *urls;
    NSUndoManager *undoManager;
}


- (IBAction)addURL:(id)sender;
- (IBAction)removeSelectedURLs:(id)sender;

- (IBAction)cancel:(id)sender;
- (IBAction)apply:(id)sender;

@end

#endif	/* __MKNPreferencesController_h_INCLUDE */
                                                                                                                                                                                                                                                                                                                     znek/MulleNewz/MKNPreferencesController.m                                                           0100644 0000356 0000000 00000026360 07631235204 017633  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNPreferencesController.m
//  MulleNewz
//
//  Created by znek on Thu Feb 27 2003.
//  $Id: MKNPreferencesController.m,v 1.5 2003/03/04 23:45:08 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#include "MKNPreferencesController.h"
#include "NSString+Extensions.h"
#include "MKNConstants.h"


#define DEFAULTS [NSUserDefaults standardUserDefaults]
#define DDNC [NSDistributedNotificationCenter defaultCenter]


@interface MKNPreferencesController (PrivateAPI)
- (void)moveURLFromIndex:(int)srcIdx toIndex:(int)dstIdx;
- (BOOL)editURLAtIndex:(int)index value:(NSString *)value;
- (void)insertURL:(NSString *)urlString atIndex:(int)index;
- (void)deleteURLAtIndex:(int)index;

- (NSString *)_urlStringFromPasteboard:(NSPasteboard *)pboard;

- (void)logWithFormat:(NSString *)format, ...;
@end


@implementation MKNPreferencesController

////////////////////////////////////////////////////
//
//  INIT & DEALLOC
//
////////////////////////////////////////////////////


- (id)init
{
    [super init];

    self->urls = [[NSMutableArray alloc] init];
    [self->urls addObjectsFromArray:[DEFAULTS objectForKey:MKNURLsKey]];
    self->undoManager = [[NSUndoManager alloc] init];
    return self;
}

- (void)dealloc
{
    [self->urls release];
    [self->undoManager release];
    [super dealloc];
}


////////////////////////////////////////////////////////////
//
//  AWAKE
//
////////////////////////////////////////////////////////////


- (void)awakeFromNib
{
    NSArray *pboardTypes;

    [self->window setCanHide:NO];

    pboardTypes = [NSArray arrayWithObjects:NSStringPboardType, NSURLPboardType, nil];

    [self->urlsTableView setVerticalMotionCanBeginDrag:YES];
    [self->urlsTableView registerForDraggedTypes:pboardTypes];

    [self->updateIntervalTextField setFloatValue:[DEFAULTS floatForKey:MKNUpdateIntervalKey]];
    [self tableViewSelectionDidChange:nil];
}


////////////////////////////////////////////////////////////
//
//  APPLICATION DELEGATE
//
////////////////////////////////////////////////////////////


- (void)applicationDidFinishLaunching:(NSNotification *)notification
{
    [NSApp activateIgnoringOtherApps:YES];
}

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
{
    return NO;
}

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
{
    [NSApp activateIgnoringOtherApps:YES];
    return YES;
}


////////////////////////////////////////////////////////////
//
//  ACTIONS
//
////////////////////////////////////////////////////////////


- (IBAction)addURL:(id)sender
{
#if 0
    [self logWithFormat:@"%s", __PRETTY_FUNCTION__];
#endif
    [self->urls addObject:NSLocalizedString(@"NewURL", @"adding URL in preferences panel")];
    [self->urlsTableView reloadData];
    [self->urlsTableView selectRow:[self->urls count] - 1 byExtendingSelection:NO];
    [self->urlsTableView editColumn:0 row:[self->urlsTableView selectedRow] withEvent:nil select:YES];
}

- (IBAction)removeSelectedURLs:(id)sender
{
    NSArray *indexes;
    NSEnumerator *idxEnum;
    NSNumber *index;

    if([self->urlsTableView numberOfSelectedRows] == 0)
        return NSBeep();

    NS_DURING

        indexes = [[self->urlsTableView selectedRowEnumerator] allObjects];

        // Guarantee that indexes are sorted in ascending order
        indexes = [indexes sortedArrayUsingSelector:@selector(compare:)];
        idxEnum = [indexes reverseObjectEnumerator];

        while((index = [idxEnum nextObject]) != nil)
            [self->urls removeObjectAtIndex:[index intValue]];

        [self->urlsTableView reloadData];

    NS_HANDLER

        [self logWithFormat:@"%s Caught exception: %@", __PRETTY_FUNCTION__, [localException reason]];

    NS_ENDHANDLER
}

- (IBAction)cancel:(id)sender
{
    [NSApp terminate:sender];
}

- (IBAction)apply:(id)sender
{
    [DEFAULTS setFloat:[updateIntervalTextField floatValue] forKey:MKNUpdateIntervalKey];
    [DEFAULTS setObject:urls forKey:MKNURLsKey];
    [DEFAULTS synchronize];
    [DDNC postNotificationName:MKNPreferencesDidChangeNotification object:nil userInfo:nil deliverImmediately:NO];
    [self cancel:sender];
}


////////////////////////////////////////////////////////////
//
//  OPERATIONS
//
////////////////////////////////////////////////////////////


- (void)moveURLFromIndex:(int)srcIdx toIndex:(int)dstIdx
{
    NSString *value;

    if(srcIdx == dstIdx)
        return;

    [[self->undoManager prepareWithInvocationTarget:self] moveURLFromIndex:(dstIdx == [self->urls count]) ? ([self->urls count] - 1) : dstIdx toIndex:srcIdx];

    value = [self->urls objectAtIndex:srcIdx];
    if(srcIdx < dstIdx)
    {
        [self->urls insertObject:value atIndex:dstIdx];
        [self->urls removeObjectAtIndex:srcIdx];
    }
    else
    {
        [self->urls removeObjectAtIndex:srcIdx];
        [self->urls insertObject:value atIndex:dstIdx];
    }
#if 0
    NSLog(@"%s srcIdx:%d dstIdx:%d #:%d", __PRETTY_FUNCTION__, srcIdx, dstIdx, [self->urls count]);
#endif
    [self->urlsTableView reloadData];
    [self->urlsTableView scrollRowToVisible:dstIdx == [self->urls count] ? dstIdx - 1 : dstIdx];
}

- (BOOL)editURLAtIndex:(int)index value:(NSString *)value
{
    NSString *oldValue;

    oldValue = [self->urls objectAtIndex:index];
    if([oldValue isEqualToString:value])
        return NO;

    [[self->undoManager prepareWithInvocationTarget:self] editURLAtIndex:index value:oldValue];
    [self->urls replaceObjectAtIndex:index withObject:value];

    [self->urlsTableView reloadData];
    return YES;
}

- (void)insertURL:(NSString *)urlString atIndex:(int)index
{
    [[self->undoManager prepareWithInvocationTarget:self] deleteURLAtIndex:index];
    [self->urls insertObject:urlString atIndex:index];

    [self->urlsTableView reloadData];
    [self->urlsTableView scrollRowToVisible:index];
}

- (void)deleteURLAtIndex:(int)index
{
    [[self->undoManager prepareWithInvocationTarget:self] insertURL:[self->urls objectAtIndex:index] atIndex:index];
    [self->urls removeObjectAtIndex:index];

    [self->urlsTableView reloadData];
}

- (NSString *)_urlStringFromPasteboard:(NSPasteboard *)pboard
{
    static NSArray *types = nil;
    NSString *type;

    if(types == nil)
        types = [[NSArray alloc] initWithObjects:NSURLPboardType, NSStringPboardType, nil]; // leak

    type = [pboard availableTypeFromArray:types];
    if([type isEqualToString:NSURLPboardType])
    {
        NSURL *url = [NSURL URLFromPasteboard:pboard];
        return [url absoluteString];
    }
    else if([type isEqualToString:NSStringPboardType])
    {
        return [pboard stringForType:NSStringPboardType];
    }
    return nil;
}


////////////////////////////////////////////////////
//
//  DELEGATE / DATASOURCE
//
////////////////////////////////////////////////////


// DELEGATE


- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    [self->removeSelectedURLsButtonCell setEnabled:[self->urlsTableView numberOfSelectedRows] > 0];
}

- (BOOL)tableView:(NSTableView *)tableView handleKeyDownEvent:(NSEvent *)theEvent
{
    unichar	c = [[theEvent characters] characterAtIndex:0];
    if((c != NSDeleteFunctionKey) && (c != 127))
        return NO;

    [self removeSelectedURLs:nil];
    return YES;
}


// DATASOURCE


- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
    return [self->urls count];
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    return [self->urls objectAtIndex:row];
}

- (void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    [self editURLAtIndex:row value:object];
}


// DRAG & DROP


- (NSDragOperation)tableView:(NSTableView*)tableView validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)operation
{
    NSString *value;
    int srcIdx;

    if(row == -1)
        row = [self->urls count];

    value = [self _urlStringFromPasteboard:[info draggingPasteboard]];
    srcIdx = [self->urls indexOfObject:value];
    if(srcIdx == row)
        return NSDragOperationNone;

    [tableView setDropRow:row dropOperation:NSTableViewDropAbove];
    return NSDragOperationGeneric;
}


- (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id <NSDraggingInfo>)info row:(int)row dropOperation:(NSTableViewDropOperation)operation
{
    NSString *value;
    int srcIdx;

    value = [self _urlStringFromPasteboard:[info draggingPasteboard]];
    srcIdx = [self->urls indexOfObject:value];

    if(srcIdx == NSNotFound)
        [self insertURL:value atIndex:row];
    else
        [self moveURLFromIndex:srcIdx toIndex:row];

    return YES;
}

- (BOOL)tableView:(NSTableView *)tableView writeRows:(NSArray *)rows toPasteboard:(NSPasteboard *)pboard
{
    NSString *value;

    if([rows count] != 1)
        return NO;

    [pboard declareTypes:[NSArray arrayWithObjects:NSURLPboardType, NSStringPboardType, nil] owner:nil];

    value = [self->urls objectAtIndex:[[rows objectAtIndex:0] intValue]];
    [pboard setString:value forType:NSStringPboardType];
    [[NSURL URLWithString:value] writeToPasteboard:pboard];
    return YES;
}


////////////////////////////////////////////////////////////
//
//  WINDOW DELEGATE
//
////////////////////////////////////////////////////////////


- (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)sender
{
    return self->undoManager;
}


////////////////////////////////////////////////////
//
//  DEBUGGING
//
////////////////////////////////////////////////////


- (void)logWithFormat:(NSString *)format, ...
{
    NSFileHandle *fh;
    va_list   	args;
    NSMutableString	*buffer;

    fh = [NSFileHandle fileHandleForUpdatingAtPath:MKNDebugLogPath];
    [fh seekToEndOfFile];

    va_start(args, format);
    buffer = [[NSMutableString alloc] initWithFormat:format arguments:args];
    [buffer appendString:@"\n"];
    [buffer fprintf:fh];
    [buffer release];
    va_end(args);
}

@end
                                                                                                                                                                                                                                                                                znek/MulleNewz/main.m                                                                               0100644 0000356 0000000 00000005017 07503216737 013710  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  
//  main.m
//  MulleNewz
//
//  Created by znek on Wed Jul 25 2001.
//  $Id: main.m,v 1.3 2002/06/16 23:23:11 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import "NSString+XMLExtensions.h"
#import "RSSParser.h"
#import "RSSCache.h"
#import "RSSElements.h"


//
//  In order for this test to work, you need a file called "test.xml"
//  in /tmp directory.
//

int main(int argc, const char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSBundle *bundle = [[[NSBundle alloc] initWithPath:@"/tmp"] autorelease];
    NSString *rssURLString;
    RSSCache *rssCache;
    id result;

    NSLog(@"Constructed a bundle: %@", bundle);
    
    [RSSCache setBundle:bundle];
    [NSString setBundle:bundle];

    rssCache = [RSSCache sharedCache];

    NSLog(@"Hope the rssCache (%@) is fine ...", rssCache);
    rssURLString = @"file://localhost/tmp/test.xml";
    
    result = [rssCache documentDescriptionForURL:rssURLString];
    [result removeObjectForKey:RSSDocumentKey];
    NSLog(@"result(%@) = %@", rssURLString, result);

    [pool release];
    return 0;
}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 znek/MulleNewz/MKNPreferences_main.m                                                                0100644 0000356 0000000 00000003325 07630157376 016603  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MKNPreferences_main.m
//  MulleNewz
//
//  Created by znek on Thu Feb 27 2003.
//  $Id: MKNPreferences_main.m,v 1.1 2003/03/01 16:25:34 znek Exp $
//
//  Copyright (c) 2003 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <AppKit/AppKit.h>


int main(int argc, const char *argv[])
{
    return NSApplicationMain(argc, argv);
}
                                                                                                                                                                                                                                                                                                           znek/MulleNewz/Makefile                                                                             0100644 0000356 0000000 00000003150 07327405244 014237  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  #
# Generated by the Apple Project Builder.
#
# NOTE: Do NOT change this file -- Project Builder maintains it.
#
# Put all of your customizations in files called Makefile.preamble
# and Makefile.postamble (both optional), and Makefile will include them.
#

NAME = MulleNewz

PROJECTVERSION = 2.8
PROJECT_TYPE = Application
ICONSECTIONS =	-sectcreate __ICON app $(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Resources/NSDefaultApplicationIcon.tiff

English_RESOURCES = MulleNewz.nib

LANGUAGES = English

CLASSES = NSString+XMLExtensions.m MKNAppDelegate.m

HFILES = NSString+XMLExtensions.h MKNAppDelegate.h

MFILES = MulleNewz_main.m

SUBPROJECTS = MulleBasicXML RSS

OTHERSRCS = Makefile.preamble Makefile Makefile.postamble m.template\
            h.template


MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles
CODE_GEN_STYLE = DYNAMIC
MAKEFILE = app.make
NEXTSTEP_INSTALLDIR = /Applications
WINDOWS_INSTALLDIR = /Applications
PDO_UNIX_INSTALLDIR = /Applications
LIBS = 
DEBUG_LIBS = $(LIBS)
PROF_LIBS = $(LIBS)


FRAMEWORK_PATHS = -F/Local/Library/Frameworks
FRAMEWORKS = -framework AppKit -framework Foundation -framework EDCommon\
             -framework EDInternet
PROJECT_HEADERS = NSString+XMLExtensions.h



NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc
WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc
PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc
NEXTSTEP_JAVA_COMPILER = /usr/bin/javac
WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe
PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac

include $(MAKEFILEDIR)/platform.make

-include Makefile.preamble

include $(MAKEFILEDIR)/$(MAKEFILE)

-include Makefile.postamble

-include Makefile.dependencies
                                                                                                                                                                                                                                                                                                                                                                                                                        znek/MulleNewz/Makefile.postamble                                                                   0100644 0000356 0000000 00000011131 07327405244 016222  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.postamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile, which is imported after all other makefiles, to
#  override attributes for a project's Makefile environment. This allows you  
#  to take advantage of the environment set up by the other Makefiles. 
#  You can also define custom rules at the end of this file.
#
###############################################################################
# 
# These variables are exported by the standard makefiles and can be 
# used in any customizations you make.  They are *outputs* of
# the Makefiles and should be used, not set.
# 
#  PRODUCTS: products to install.  All of these products will be placed in
#	 the directory $(DSTROOT)$(INSTALLDIR)
#  GLOBAL_RESOURCE_DIR: The directory to which resources are copied.
#  LOCAL_RESOURCE_DIR: The directory to which localized resources are copied.
#  OFILE_DIR: Directory into which .o object files are generated.
#  DERIVED_SRC_DIR: Directory used for all other derived files
#
#  ALL_CFLAGS:  flags to pass when compiling .c files
#  ALL_MFLAGS:  flags to pass when compiling .m files
#  ALL_CCFLAGS:  flags to pass when compiling .cc, .cxx, and .C files
#  ALL_MMFLAGS:  flags to pass when compiling .mm, .mxx, and .M files
#  ALL_PRECOMPFLAGS:  flags to pass when precompiling .h files
#  ALL_LDFLAGS:  flags to pass when linking object files
#  ALL_LIBTOOL_FLAGS:  flags to pass when libtooling object files
#  ALL_PSWFLAGS:  flags to pass when processing .psw and .pswm (pswrap) files
#  ALL_RPCFLAGS:  flags to pass when processing .rpc (rpcgen) files
#  ALL_YFLAGS:  flags to pass when processing .y (yacc) files
#  ALL_LFLAGS:  flags to pass when processing .l (lex) files
#
#  NAME: name of application, bundle, subproject, palette, etc.
#  LANGUAGES: langages in which the project is written (default "English")
#  English_RESOURCES: localized resources (e.g. nib's, images) of project
#  GLOBAL_RESOURCES: non-localized resources of project
#
#  SRCROOT:  base directory in which to place the new source files
#  SRCPATH:  relative path from SRCROOT to present subdirectory
#
#  INSTALLDIR: Directory the product will be installed into by 'install' target
#  PUBLIC_HDR_INSTALLDIR: where to install public headers.  Don't forget
#        to prefix this with DSTROOT when you use it.
#  PRIVATE_HDR_INSTALLDIR: where to install private headers.  Don't forget
#	 to prefix this with DSTROOT when you use it.
#
#  EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows)
#
###############################################################################

# Some compiler flags can be overridden here for certain build situations.
#
#    WARNING_CFLAGS:  flag used to set warning level (defaults to -Wmost)
#    DEBUG_SYMBOLS_CFLAGS:  debug-symbol flag passed to all builds (defaults
#	to -g)
#    DEBUG_BUILD_CFLAGS:  flags passed during debug builds (defaults to -DDEBUG)
#    OPTIMIZE_BUILD_CFLAGS:  flags passed during optimized builds (defaults
#	to -O)
#    PROFILE_BUILD_CFLAGS:  flags passed during profile builds (defaults
#	to -pg -DPROFILE)
#    LOCAL_DIR_INCLUDE_DIRECTIVE:  flag used to add current directory to
#	the include path (defaults to -I.)
#    DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags
#	passed to ld/libtool (defaults to nothing)


# Library and Framework projects only:
#    INSTALL_NAME_DIRECTIVE:  This directive ensures that executables linked
#	against the framework will run against the correct version even if
#	the current version of the framework changes.  You may override this
#	to "" as an alternative to using the DYLD_LIBRARY_PATH during your
#	development cycle, but be sure to restore it before installing.


# Ownership and permissions of files installed by 'install' target

#INSTALL_AS_USER = root
        # User/group ownership 
#INSTALL_AS_GROUP = wheel
        # (probably want to set both of these) 
#INSTALL_PERMISSIONS =
        # If set, 'install' chmod's executable to this


# Options to strip.  Note: -S strips debugging symbols (executables can be stripped
# down further with -x or, if they load no bundles, with no options at all).

#STRIPFLAGS = -S


#########################################################################
# Put rules to extend the behavior of the standard Makefiles here.  Include them in
# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble.
#
# You should avoid redefining things like "install" or "app", as they are
# owned by the top-level Makefile API and no context has been set up for where 
# derived files should go.
#
                                                                                                                                                                                                                                                                                                                                                                                                                                       znek/MulleNewz/Makefile.preamble                                                                    0100644 0000356 0000000 00000015607 07327405245 016040  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.preamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile for configuring the standard application makefiles 
#  associated with ProjectBuilder. It is included before the main makefile.
#  In Makefile.preamble you set attributes for a project, so they are available
#  to the project's makefiles.  In contrast, you typically write additional rules or 
#  override built-in behavior in the Makefile.postamble.
#  
#  Each directory in a project tree (main project plus subprojects) should 
#  have its own Makefile.preamble and Makefile.postamble.
###############################################################################
#
# Before the main makefile is included for this project, you may set:
#
#    MAKEFILEDIR: Directory in which to find $(MAKEFILE)
#    MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make)

# Compiler/linker flags added to the defaults:  The OTHER_* variables will be 
# inherited by all nested sub-projects, but the LOCAL_ versions of the same
# variables will not.  Put your -I, -D, -U, and -L flags in ProjectBuilder's
# Build Attributes inspector if at all possible.  To override the default flags
# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble.  The
# variables below are *inputs* to the build process and distinct from the override
# settings done (less often) in the Makefile.postamble.
#
#    OTHER_CFLAGS, LOCAL_CFLAGS:  additional flags to pass to the compiler
#	Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m,
#	.cc, .cxx, .C, and .M files.  There is no need to respecify the
#	flags in OTHER_MFLAGS, etc.
#    OTHER_MFLAGS, LOCAL_MFLAGS:  additional flags for .m files
#    OTHER_CCFLAGS, LOCAL_CCFLAGS:  additional flags for .cc, .cxx, and ...C files
#    OTHER_MMFLAGS, LOCAL_MMFLAGS:  additional flags for .mm and .M files
#    OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS:  additional flags used when
#	precompiling header files
#    OTHER_LDFLAGS, LOCAL_LDFLAGS:  additional flags passed to ld and libtool
#    OTHER_PSWFLAGS, LOCAL_PSWFLAGS:  additional flags passed to pswrap
#    OTHER_RPCFLAGS, LOCAL_RPCFLAGS:  additional flags passed to rpcgen
#    OTHER_YFLAGS, LOCAL_YFLAGS:  additional flags passed to yacc
#    OTHER_LFLAGS, LOCAL_LFLAGS:  additional flags passed to lex

# These variables provide hooks enabling you to add behavior at almost every 
# stage of the make:
#
#    BEFORE_PREBUILD: targets to build before installing headers for a subproject
#    AFTER_PREBUILD: targets to build after installing headers for a subproject
#    BEFORE_BUILD_RECURSION: targets to make before building subprojects
#    BEFORE_BUILD: targets to make before a build, but after subprojects
#    AFTER_BUILD: targets to make after a build
#
#    BEFORE_INSTALL: targets to build before installing the product
#    AFTER_INSTALL: targets to build after installing the product
#    BEFORE_POSTINSTALL: targets to build before postinstalling every subproject
#    AFTER_POSTINSTALL: targts to build after postinstalling every subproject
#
#    BEFORE_INSTALLHDRS: targets to build before installing headers for a 
#         subproject
#    AFTER_INSTALLHDRS: targets to build after installing headers for a subproject
#    BEFORE_INSTALLSRC: targets to build before installing source for a subproject
#    AFTER_INSTALLSRC: targets to build after installing source for a subproject
#
#    BEFORE_DEPEND: targets to build before building dependencies for a
#	  subproject
#    AFTER_DEPEND: targets to build after building dependencies for a
#	  subproject
#
#    AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is
#	  updated every time the project is built.  If NO, the dependency
#	  file is only built when the depend target is invoked.

# Framework-related variables:
#    FRAMEWORK_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the framework's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables

# Library-related variables:
#    PUBLIC_HEADER_DIR:  Determines where public exported header files
#	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.  For library projects you should
#       set this to something like /Developer/Headers/$(NAME).  Do not set
#       this variable for framework projects unless you do not want the
#       header files included in the framework.
#    PRIVATE_HEADER_DIR:  Determines where private exported header files
#  	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.
#    LIBRARY_STYLE:  This may be either STATIC or DYNAMIC, and determines
#  	whether the libraries produced are statically linked when they
#	are used or if they are dynamically loadable. This defaults to
#       DYNAMIC.
#    LIBRARY_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the library's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables
#
#    INSTALL_AS_USER: owner of the intalled products (default root)
#    INSTALL_AS_GROUP: group of the installed products (default wheel)
#    INSTALL_PERMISSIONS: permissions of the installed product (default o+rX)
#
#    OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be
#  	passed on the command line to recursive invocations of make.  Note that
#	the values in OTHER_*FLAGS are inherited by subprojects automatically --
#	you do not have to (and shouldn't) add OTHER_*FLAGS to 
#	OTHER_RECURSIVE_VARIABLES. 

# Additional headers to export beyond those in the PB.project:
#    OTHER_PUBLIC_HEADERS
#    OTHER_PROJECT_HEADERS
#    OTHER_PRIVATE_HEADERS

# Additional files for the project's product: <<path relative to proj?>>
#    OTHER_RESOURCES: (non-localized) resources for this project
#    OTHER_OFILES: relocatables to be linked into this project
#    OTHER_LIBS: more libraries to link against
#    OTHER_PRODUCT_DEPENDS: other dependencies of this project
#    OTHER_SOURCEFILES: other source files maintained by .pre/postamble
#    OTHER_GARBAGE: additional files to be removed by `make clean'

# Set this to YES if you don't want a final libtool call for a library/framework.
#    BUILD_OFILES_LIST_ONLY

# To include a version string, project source must exist in a directory named 
# $(NAME).%d[.%d][.%d] and the following line must be uncommented.
# OTHER_GENERATED_OFILES = $(VERS_OFILE)

# This definition will suppress stripping of debug symbols when an executable
# is installed.  By default it is YES.
# STRIP_ON_INSTALL = NO

# Uncomment to suppress generation of a KeyValueCoding index when installing 
# frameworks (This index is used by WOB and IB to determine keys available
# for an object).  Set to YES by default.
# PREINDEX_FRAMEWORK = NO

# Change this definition to install projects somewhere other than the
# standard locations.  NEXT_ROOT defaults to "C:/Apple" on Windows systems
# and "" on other systems.
DSTROOT = $(HOME)
                                                                                                                         znek/MulleNewz/MarkupTagProcessor.h                                                                 0100644 0000356 0000000 00000003536 07514354440 016552  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MarkupTagProcessor.h
//  MulleNewz
//
//  Created by znek on Sun Jul 14 2002.
//  $Id: MarkupTagProcessor.h,v 1.1 2002/07/14 20:03:44 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__MarkupTagProcessor_h_INCLUDE
#define	__MarkupTagProcessor_h_INCLUDE


#import <Foundation/Foundation.h>
#import <EDCommon/EDCommon.h>


@interface MarkupTagProcessor : EDAOMTagProcessor
{
}


@end

#endif	/* __MarkupTagProcessor_h_INCLUDE */
                                                                                                                                                                  znek/MulleNewz/MarkupTagProcessor.m                                                                 0100644 0000356 0000000 00000004434 07514354440 016555  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MarkupTagProcessor.m
//  MulleNewz
//
//  Created by znek on Sun Jul 14 2002.
//  $Id: MarkupTagProcessor.m,v 1.1 2002/07/14 20:03:44 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MarkupTagProcessor.h"


@implementation MarkupTagProcessor

- (EDMLElementType)typeOfElementForTag:(EDObjectPair *)tagName attributeList:(NSArray *)attrList
{
    EDMLElementType type = [super typeOfElementForTag:tagName attributeList:attrList];
    if(type == EDMLUnknownTag)
        type = EDMLContainerElement;
    return type;
}

- (id)elementForTag:(EDObjectPair *)tagName attributeList:(NSArray *)attrList
{
    NSDictionary *tagDef;

    tagDef = [tagDefinitions objectForKey:[tagName secondObject]];
    if(tagDef == nil)
        tagName = [EDObjectPair pairWithObjects:[self defaultNamespace] :@"GENERIC"];
    return [super elementForTag:tagName attributeList:attrList];
}

@end
                                                                                                                                                                                                                                    znek/MulleNewz/MarkupTags.plist                                                                     0100644 0000356 0000000 00000000623 07605334237 015736  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {

//
// PARSER CONFIGURATION
//

"XMLNS" = "urn:znek-MulleNewz";


"*" = {
	class = MXStringElement;
	implicit = string;
};

"_" = {
	class = MXStringElement;
	implicit = string;
};


//
// WELL KNOWN MARKUP
//


"br" = {
    class = MXStringElement;
    implicit = "";
};

// anything else
"GENERIC" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "GENERIC"; } );
};

}                                                                                                             znek/MulleNewz/MulleNewz.classes                                                                    0100644 0000356 0000000 00000016354 07503216737 016115  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    FirstResponder = {
	Actions = (
	    activateContextHelpMode:,
	    alignCenter:,
	    alignJustified:,
	    alignLeft:,
	    alignRight:,
	    arrangeInFront:,
	    cancel:,
	    capitalizeWord:,
	    changeColor:,
	    changeFont:,
	    checkSpelling:,
	    close:,
	    complete:,
	    copy:,
	    copyFont:,
	    copyRuler:,
	    cut:,
	    delete:,
	    deleteBackward:,
	    deleteForward:,
	    deleteToBeginningOfLine:,
	    deleteToBeginningOfParagraph:,
	    deleteToEndOfLine:,
	    deleteToEndOfParagraph:,
	    deleteToMark:,
	    deleteWordBackward:,
	    deleteWordForward:,
	    deminiaturize:,
	    deselectAll:,
	    fax:,
	    hide:,
	    hideOtherApplications:,
	    indent:,
	    loosenKerning:,
	    lowerBaseline:,
	    lowercaseWord:,
	    makeKeyAndOrderFront:,
	    miniaturize:,
	    miniaturizeAll:,
	    moveBackward:,
	    moveBackwardAndModifySelection:,
	    moveDown:,
	    moveDownAndModifySelection:,
	    moveForward:,
	    moveForwardAndModifySelection:,
	    moveLeft:,
	    moveRight:,
	    moveToBeginningOfDocument:,
	    moveToBeginningOfLine:,
	    moveToBeginningOfParagraph:,
	    moveToEndOfDocument:,
	    moveToEndOfLine:,
	    moveToEndOfParagraph:,
	    moveUp:,
	    moveUpAndModifySelection:,
	    moveWordBackward:,
	    moveWordBackwardAndModifySelection:,
	    moveWordForward:,
	    moveWordForwardAndModifySelection:,
	    ok:,
	    open:,
	    orderBack:,
	    orderFront:,
	    orderFrontColorPanel:,
	    orderFrontDataLinkPanel:,
	    orderFrontHelpPanel:,
	    orderFrontStandardAboutPanel:,
	    orderFrontStandardInfoPanel:,
	    orderOut:,
	    pageDown:,
	    pageUp:,
	    paste:,
	    pasteAsPlainText:,
	    pasteAsRichText:,
	    pasteFont:,
	    pasteRuler:,
	    performClose:,
	    performMiniaturize:,
	    performZoom:,
	    print:,
	    raiseBaseline:,
	    runPageLayout:,
	    runToolbarCustomizationPalette:,
	    scrollLineDown:,
	    scrollLineUp:,
	    scrollPageDown:,
	    scrollPageUp:,
	    scrollViaScroller:,
	    selectAll:,
	    selectLine:,
	    selectNextKeyView:,
	    selectParagraph:,
	    selectPreviousKeyView:,
	    selectText:,
	    selectText:,
	    selectToMark:,
	    selectWord:,
	    showContextHelp:,
	    showGuessPanel:,
	    showHelp:,
	    showWindow:,
	    stop:,
	    subscript:,
	    superscript:,
	    swapWithMark:,
	    takeDoubleValueFrom:,
	    takeFloatValueFrom:,
	    takeIntValueFrom:,
	    takeObjectValueFrom:,
	    takeStringValueFrom:,
	    terminate:,
	    tightenKerning:,
	    toggle:,
	    toggleContinuousSpellChecking:,
	    toggleRuler:,
	    toggleToolbarShown:,
	    toggleTraditionalCharacterShape:,
	    transpose:,
	    transposeWords:,
	    turnOffKerning:,
	    turnOffLigatures:,
	    underline:,
	    unhide:,
	    unhideAllApplications:,
	    unscript:,
	    uppercaseWord:,
	    useAllLigatures:,
	    useStandardKerning:,
	    useStandardLigatures:,
	    yank:,
	    zoom:
	);
	Super = NSObject;
    };
    IBInspector = {
	Actions = (
	    ok:,
	    revert:,
	    touch:
	);
	Outlets = (
	    window
	);
	Super = NSObject;
    };
    MKNAppDelegate = {
	Actions = (
	    addRSSSource:,
	    openPreferences:,
	    removeSelectedRSSSources:,
	    setUpdateInterval:,
	    updateAllRSSSources:
	);
	Outlets = (
	    newsMenu,
	    prefWindow,
	    removeRSSSourcesButton,
	    rssSourcesTableView,
	    updateIntervalField
	);
	Super = NSObject;
    };
    NSApplication = {
	Actions = (
	    arrangeInFront:,
	    hide:,
	    hideOtherApplications:,
	    miniaturizeAll:,
	    orderFrontColorPanel:,
	    orderFrontDataLinkPanel:,
	    orderFrontHelpPanel:,
	    orderFrontStandardAboutPanel:,
	    orderFrontStandardInfoPanel:,
	    runPageLayout:,
	    stop:,
	    terminate:,
	    unhide:,
	    unhideAllApplications:
	);
	Outlets = (
	    delegate
	);
	Super = NSResponder;
    };
    NSBrowser = {
	Actions = (
	    doClick:,
	    doDoubleClick:
	);
	Outlets = (
	    delegate
	);
	Super = NScontrol;
    };
    NSButton = {
	Super = NSControl;
    };
    NSColorWell = {
	Actions = (
	    takeColorFrom:
	);
	Super = NSControl;
    };
    NSControl = {
	Actions = (
	    takeDoubleValueFrom:,
	    takeFloatValueFrom:,
	    takeIntValueFrom:,
	    takeObjectValueFrom:,
	    takeStringValueFrom:
	);
	Outlets = (
	    target
	);
	Super = NSView;
    };
    NSDocument = {
	Actions = (
	    printDocument:,
	    revertDocumentToSaved:,
	    runPageLayout:,
	    saveDocument:,
	    saveDocumentAs:,
	    saveDocumentTo:
	);
	Super = NSObject;
    };
    NSDocumentController = {
	Actions = (
	    clearRecentDocuments:,
	    newDocument:,
	    openDocument:,
	    saveAllDocuments:
	);
	Super = NSObject;
    };
    NSDrawer = {
	Actions = (
	    close:,
	    open:,
	    toggle:
	);
	Outlets = (
	    delegate
	);
	Super = NSResponder;
    };
    NSFontManager = {
	Actions = (
	    addFontTrait:,
	    modifyFont:,
	    modifyFontViaPanel:,
	    orderFrontFontPanel:,
	    removeFontTrait:
	);
	Super = NSResponder;
    };
    NSHelpManager = {
	Actions = (
	    activateContextHelpMode:,
	    showHelp:
	);
	Super = NSResponder;
    };
    NSMenu = {
	Super = NSObject;
    };
    NSMenuItem = {
	Outlets = (
	    target
	);
	Super = NSObject;
    };
    NSPanel = {
	Super = NSWindow;
    };
    NSProgressIndicator = {
	Actions = (
	    animate:,
	    startAnimation:,
	    stopAnimation:
	);
	Super = NSObject;
    };
    NSResponder = {
	Actions = (
	    deselectAll:,
	    selectAll:,
	    selectText:
	);
	Super = NSObject;
    };
    NSSlider = {
	Super = NSControl;
    };
    NSTabView = {
	Actions = (
	    selectFirstTabViewItem:,
	    selectLastTabViewItem:,
	    selectNextTabViewItem:,
	    selectPreviousTabViewItem:,
	    takeSelectedTabViewItemFromSender:
	);
	Outlets = (
	    delegate
	);
	Super = NSView;
    };
    NSText = {
	Actions = (
	    alignCenter:,
	    alignLeft:,
	    alignRight:,
	    changeFont:,
	    changeSpelling:,
	    checkSpelling:,
	    copy:,
	    copyFont:,
	    copyRuler:,
	    cut:,
	    delete:,
	    ignoreSpelling:,
	    paste:,
	    pasteFont:,
	    pasteRuler:,
	    selectAll:,
	    showGuessPanel:,
	    subscript:,
	    superscript:,
	    toggleRuler:,
	    underline:,
	    unscript:
	);
	Outlets = (
	    delegate
	);
	Super = NSView;
    };
    NSTextField = {
	Outlets = (
	    delegate
	);
	Super = NSControl;
    };
    NSTextView = {
	Actions = (
	    alignJustified:,
	    changeColor:,
	    loosenKerning:,
	    lowerBaseline:,
	    pasteAsPlainText:,
	    pasteAsRichText:,
	    raiseBaseline:,
	    tightenKerning:,
	    toggleContinuousSpellChecking:,
	    toggleTraditionalCharacterShape:,
	    turnOffKerning:,
	    turnOffLigatures:,
	    useAllLigatures:,
	    useStandardKerning:,
	    useStandardLigatures:
	);
	Super = NSText;
    };
    NSView = {
	Actions = (
	    fax:,
	    print:
	);
	Super = NSResponder;
    };
    NSWindow = {
	Actions = (
	    deminiaturize:,
	    fax:,
	    makeKeyAndOrderFront:,
	    miniaturize:,
	    orderBack:,
	    orderFront:,
	    orderOut:,
	    performClose:,
	    performMiniaturize:,
	    performZoom:,
	    print:,
	    runToolbarCustomizationPalette:,
	    selectNextKeyView:,
	    selectPreviousKeyView:,
	    toggleToolbarShown:,
	    zoom:
	);
	Outlets = (
	    delegate
	);
	Super = NSResponder;
    };
    NSWindowController = {
	Actions = (
	    showWindow:
	);
	Outlets = (
	    document
	);
	Super = NSResponder;
    };
}                                                                                                                                                                                                                                                                                    znek/MulleNewz/MulleNewz.gorm                                                                       0100644 0000356 0000000 00000020575 07503216737 015424  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  GNUstep archive0000283e:0000001e:00000109:0000001b:01 GSNibContainer    1 NSObject     01 NSMutableDictionary    1 NSDictionary     &   #01 NSString    &   	%   
   	 M e n u I t e m 101 
NSMenuItem    0&   %      Quit0&   %      q&   &   %    01 NSImage    0&   %      common_2DCheckMark0	0
&   %      common_2DDash 2 
 	terminate:v12@0:4@8%    0&   %      NSOwner0&   %      NSApplication0&   	%   
   	 M e n u I t e m 200&   %      Info0&    &   &   %    	 2   submenuAction:%    01 NSMenu    01	 NSMutableArray    1
 NSArray    &      00&   %      Info Panel...0&    &   &   %    	 2 
 	infoPanel:@12@0:4@8%    00&   %      Preferences...0&    &   &   %     	 %    00&   %      Help...0&   %      ?&   &   %     	 %    00&   	%      	MulleNewz0	&      00 &   %      Edit0!&    &   &   %    	 %    0" 0#	&      0$0%&   %      Cut0&&   %      x&   &   %    	 2  	cut:@12@0:4@8%    0'0(&   %      Copy0)&   %      c&   &   %    	 2  	copy:@12@0:4@8%    0*0+&   %      Paste0,&   %      v&   &   %    	 2  	paste:@12@0:4@8%    0-0.&   
%      
Select All0/&   %      a&   &   %     	 2 
 	selectAll:@12@0:4@8%    0001&   %      Windows02&    &   &   %    	 %    03104	&      0506&   %      Arrange In Front07&    &   &   %    	 2  	arrangeInFront:v12@0:4@8%    0809&   %      Miniaturize Window0:&   %      m&   &   %    	 2	  	performMiniaturize:v12@0:4@8%    0;0<&   %      Close Window0=&   %      w&   &   %    	 2
  	performClose:v12@0:4@8%    0>0?&   %      Services0@&    &   &   %    	 %    0A?0B	&    0C0D&   %      Hide0E&   %      h&   &   %    	 2  	hide:v12@0:4@8%    0F&   	%   
   	 M e n u I t e m 30G&   %      MenuItemC0H&   	%   
   	 M e n u I t e m 40I&   	%   
   	 M e n u I t e m 50J&   
%   
   
 M e n u I t e m 2 00K0L&   %      Item0M&    &   &   %     	 %    0N&   
%      
ScrollView0O1 NSScrollView   1 NSView   1 NSResponder    %    A   @  C  C         C  C   &    0P	&      0Q1 
NSClipView     %    A  A  C CZ          C CZ    &   0R	&      0S1 NSOutlineView   1 NSTableView   1 	NSControl    %            C  A          C  A    &    0T	&    %    0U1 NSCell    0V&    0W1 NSFont     0X&   	%      	Helvetica   A@          A@                          &    &   &    &    &    &    &    &    0Y	&      0Z1 NSTableColumn    0[&   %      classesC  A  GP 0\1 NSTableHeaderCell    1 NSTextFieldCell   1 NSActionCell    0]&   %       0^0_&   %      Helvetica-Bold   A@          A@                         &   &   &    &    &    &    &    &   %    0`1 NSColor    0a&   %      NSNamedColorSpace0b&   %      System0c&   %      controlShadowColor0da0e&   %      System0f&   %      windowFrameTextColor0g0h&   %      NSObjectWh                &    &   &    &    &    &    &    &   %    S0iae0j&   %      textBackgroundColor0kae0l&   	%      	textColor 0m0n&   %      outletsC A  GP 0o0p&   %       ^               &   &   &    &    &    &    &    &   %    `d0q0r&   %      1Wr                &    &   &    &    &    &    &    &   %    Sik 0sae0t&   	%      	gridColor0ua0v&   %      System0w&   %      controlBackgroundColor0x1 NSTableHeaderView     %            C  A          C  A    &    0y	&    0z1 GSTableCornerView     %    @   @   A  A          A  A     &    0{	&    %    %    A  @   @@          A   Z0|ae0}&   %      controlBackgroundColor0~1 
NSScroller    %    @   A  A  Cm          A  Cm     &   0	&    %    0VW                &    &   &    &    &    &    &    &    &     O2 
 	_doScroll:v12@0:4@8z0%    A  @   C A          C A     &    0	&      x0ae0&   %      controlColor0%    A  Cs  C A          C A     &   0	&    %    00&    00&   	%      	Helvetica   A@          A@                          &    &   &    &    &    &    &    &    &   OQ%    A   A   A   A   ~  0&   	%   
   	 M e n u I t e m 60&   
%   
   
 M e n u I t e m 1 0-0&   	%   
   	 M e n u I t e m 7$0&   %      TableColumnZ0&   	%   
   	 M e n u I t e m 8'0&   %      GormNSOutlineViewS0&   
%   
   
 M e n u I t e m 1 200&   %      Font0&    &   &   %    	 %    00	&   	   	00&   %      Font Panel...0&   %      t&   &   %     	 2  	orderFrontFontPanel:v12@0:4@8%    00&   %      Bold0&   %      b&   &   %     	 2  	addFontTrait:v12@0:4@8%    00&   %      Italic0&   %      i&   &   %     	 %    00&   	%      	Underline0&    &   &   %     	 2 
 	underline:v12@0:4@8%    00&   %      Superscript0&    &   &   %     	 2  	superscript:v12@0:4@8%    00&   	%      	Subscript0&    &   &   %     	 2 
 	subscript:v12@0:4@8%    00&   %      Unscript0&    &   &   %     	 2 	 	unscript:v12@0:4@8%    00&   	%      	Copy Font0&   %      3&   &   %     	 2 	 	copyFont:v12@0:4@8%    00&   
%      
Paste Font0&   %      4&   &   %     	 2 
 	pasteFont:v12@0:4@8%    00&   %      Format0	&      00&   %      Text0&    &   &   %    	 %    00	&      00&   
%      
Align Left0&    &   &   %     	 2   alignSelLeft:%    00&   %      Center0&    &   &   %     	 2   alignSelCenter:%    00&   %      Align Right0±&    &   &   %     	 2   alignSelRight:%    0ñ0ı&   
%      
Show Ruler0ű&    &   &   %     	 2  	toggleRuler:v12@0:4@8%    0Ʊ0Ǳ&   
%      
Copy Ruler0ȱ&   %      1&   &   %     	 2 
 	copyRuler:v12@0:4@8%    0ɱ0ʱ&   %      Paste Ruler0˱&   %      2&   &   %     	 2  	pasteRuler:v12@0:4@8%    0̱0ͱ&   %      Page Layout...0α&   %      P&   &   %    	 2  	runPageLayout:v12@0:4@8%    0ϱ&   	%   
   	 M e n u I t e m 9*0б&   
%   
   
 M e n u I t e m 1 30ѱ&   
%      
GormNSMenu0ұ0ӱ&   %      Newz0Ա	&      K0ձ&   
%   
   
 M e n u I t e m 1 40ֱ&   
%   
   
 M e n u I t e m 1 500ױ&   
%   
   
 M e n u I t e m 1 650ر&   	%      	NSVisible0ٱ	&    0ڱ&   %      MKNAppDelegate01 	GSNibItem                    &    0ܱ&   
%   
   
 M e n u I t e m 1 780ݱ&   %   
    M e n u 1"0ޱ&   
%   
   
 M e n u I t e m 1 8;0߱&   %   
    M e n u 20&   
%   
   
 M e n u I t e m 1 9>0&   %   
    M e n u 330&   %   
    T a b l e C o l u m n 1m0&   %   
    M e n u 4A0&   %   
    M e n u 500&   %      NSMenu                &    0&   %      NSMenu0&   %      Menu0	&      01 NSNibConnector     0&   %      NSOwner0G0000F0H0I00ݰ0ݐ0ݐ0ϰݐ0ݐ0ߐ0аߐ0հߐ0ְ0֐0װ0ܰP ްPPPJѐPڰP1 NSNibOutletConnector     P&   %      delegatePPڰP	&   %      newsMenu                                                                                                                                   znek/MulleNewz/MulleNewz.iconheader                                                                 0100644 0000356 0000000 00000000070 07327405245 016543  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  F	MulleNewz.app	MulleNewz	app
F	MulleNewz	MulleNewz	app
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        znek/MulleNewz/MulleNewz.tiff                                                                       0100644 0000356 0000000 00000127014 07327405245 015402  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  MM *                                                                                  .      6       (       =       R       I     >\   jl  C            B    X  &~  /  :  @  <  v  
  &  	?  
     
  ' 
  '8BIM
Print Info    x    H H    @R  (  e       0e         e`               e        e        e   8BIM
Resolution     H     H    8BIMAlpha Channel Names   Transparenz8BIMAlpha Channel Unicode Names       T r a n s p a r e n z  8BIMAlpha Channel Settings             d 8BIMAlpha Channel Identifiers       8BIMFX Global Lighting Angle       Z8BIMFX Global Altitude       8BIMPrint Flags   	         8BIM
Copyright Flag      8BIM'Japanese Print Flags    
        8BIMColor Halftone Settings   H /ff  lff       /ff         2    Z         5    -        8BIMColor Transfer Settings   p                8BIM Layer State     8BIMLayer Groups      8BIMGuides         @  @    8BIMURL overrides       8BIMSlices    a                                                                                           8BIMICC Untagged Flag    8BIMLayer ID Generator Base      8BIM!Version compatibility info    U       A d o b e   P h o t o s h o p    A d o b e   P h o t o s h o p   6 . 0      P8$BaPd6DbQ8V-FcQv=HdR9$M'JeRd]/LfS9m7g}?@dGRiTeF):V4Ek2
>
V9-"0\&A7voT[ܖpsܱ0l62y0-5fA"//_$ߧv+J
Wwp6.E| ~`,\\N 6`{=N濽nݪ<9g\FzSgHL CV
/f @,Np	;賈lD?+A(@G7 |)HhHB(t  
RrjˏDTg@+M7\
Γ(!$S pP  ARPE3`Ldh	AMu=;TD( k  U]/8 LH6h$]԰_C̈́JV-GcIhŖ7 lڀ kqXFEh  @	 ((
Jq2,F@ H=HdR9M$JeR,J  }# @ G ?i@ 4  :M.=3@ t F, YkU_mnGw oD}_(+%a(f2e2,nw=έ ŧ =5Sy_\ l@ ݥ!"`a`(`}1|hԇO A[@h = Z;9 j@!׿0+>?W [p IP+K>h sB 4  D	2HS<aŀ.xQ TuǉB| 1ȏ2i 
/zZ?(+",)
㔼I3%̓+@q 5 L! Έ;
 3E tLFlx h  HuMSb 	ӓ3SB-!SU!Ȧ\j YJ2?7,O+6)"  e̲Yˁi5\
E aoZp p VbS`ƑZ }M(ݠB> A <B؅|+-XQ It  ɏuqXc,0urJ\?ؖ0w~uG&}j` IZ"_W^v . p.+IץP_BV H mdcOr8	Gb/A%9 <( 2\j96Q֯r1ܬ_9ib$|{-*n _T jToـ `لԵnx< JmRUI _#fڳ)Ӡ  S|g w&E&O!/^>|̠@.fYN(RڥH[Fp  L v3"-<X#qh?A ,@
|\TnQ;G bƄA ";wrK|-M7$ٞW&Jrld\ sdbӚu[ "1 ly 
>.4JMP  E2<  HITP18%DMK = D~Q 	yqHJ< mVVllT55&ǘTdqX ܒWqu˫}"
j	$LЍSlx2^u@ 8'@ {@ f	L  `OY¦f`$~[?fM&p!>` m4 rTx\`ˢQ>
a"Nº#ܗD%PT=iCrqJa?z4YeezfP8	yOܨ@ X1+冋E
-QQ8UZI6m<VhDgY=h%vdzy u]`i< *aPHC3y2cvVe7i3@g*5L +|v QAB
RWGl`m11[|o-"ZI'`,0I2RI1]!='¢$)<Ϡ_PRmՂ-"\XFLy*wWS8|^+$]h'2~h`  RQbMPv#P\ZmحA0J-%1MŽlj oPR 搫Q  k&  9\$Qvj9FB0zd&qC  ݙhXNYDl5rj/y403h=F  Q_HI%2R)G\:q%3Xv{RzZ.j^1ڃMlk6a$Ĥ cX t&2U9jYh(:935MKvSaAz8/()*}HU "Lw[Kzku\|.]aq$oJ !U̖0A{(oOMyqzc읗u4/LNy|FH-QP!or`i}mY;
/I<O;	C~rMZ b)GD;i)C^ĳ8RwU2\?Z{!l۳3  @	Aa0 A@\Hc@ vHdR9M$JeR)3 Θ 0 m+@L Ǡ 0 f R@`O @EVGV@ :uX@  =g =-@mWe   &N
@  ذ ~d@e@t 8 9ĥQvp=e <X@ -ik.n +.t [.D"QB\H|@ wqze;A  9]0 8@.lsj %4 > 9 \$)H͜P4 1
ҵ.QʸA0 wF L`? }̣k! 2H pI ' 4 dK  y-2noDʧ8kӸɹ.[Oc(h7! KEэ#"?)"(M< Zkx d	i-NR' hIƱ-}PTTYa L(G@il	Tu4B
I ̐.l[R@ 8UP, W0s;q}'-j R >M9.OLN7cnEt YH e|QqUpKB>fg 2q*L?+>nXBgy)OV%fV"l'P sm	n
Mb`} ;a0o]L_rO| j78SNdtD:~, H+Ď }g")Rs ؁ߌ OhR/v{d{+ (  nv,pEwGn:n:_ >p =D: @{P$ ml'd~ ;s,.UgLQr`A_d ;m4AQ  V(  b."b[=C̬boooF xr4bz:[K6qU~jDI<%5 8 k @   ْQ]   k%3 eLAKqIYJJ%9$F#@++Nl$'fN3b& s1,3, 1^p
Qk5ה}Ny"	aHX7 ҝ@ *NE2	Z!w/4v&1(H<amgD@9脑`Ҋ.FI%f! !0:0lb{bg]'\KH`]96$+4[&%6ZLZL6=zᤳH0;$M8Ĭ@ݎ@Vg%p"iQA"G` $8I,a 
(#::2ij\'9It2R=,8S6+);2@WͼǅCH-@ nPȵЊv"6$.rh \SЪH 7nJp /#U5_i*t8M(O(./[~2XQFQUۺHC#жB5]~^* lڛS<-8ux 49RaA~UG{o 0@id "bFt k7yH>Cidhe*R{ 0Jшb˒n4  FZ yNoK[3J,ݝN:3p8z4UAB=Gism)p E$MTr݋ڮP 
~:$_kT7;2X	^)]ڀ2Zwr "ǜhm\7op
ڦI*v}!=8\tXJK_h@k8ɎLxTA8H󼒣'zT Lq	  0Kfy¯$q D[է`(w[S
 |`EH=ZLC +5yD>崚~pqѪSـ[Nn?y|*@oz̍z'O{D_#(C{`yu?lu+Q̈́4yْ
4M@²;&ZK#qWl\֝}ܧ6}hx'r%=#iRS>WZtp
y0TTԹ8#9#hsT=ȷG_jg.Ws,DY׺i/A CBI}\AHJbN@6f2NrD?#T&Kb>t΁VO-n.m0h)hV͒m- `O	p0\piD&XHd3*
떦t0i-1">gJ$gޫp6N_gƔL$L.7 p[/@)+dBNk*ϐX\*Vl(Q@.4jiL׃*Y"djd6,Fa	
BmM_rFPtB>_ `f<GpJ䲜 l@X-/!xvbAx1ii`"   @	Aa0 A@\H#@ vH9M'+\ }@	 M7 '@ ,.L&Oj G 9@U4 O:W +@t   0 VXմ  0 @  @   ; dg`UP  t@  d涍Ht@= @ Ei@  +ǽAVe8/JJ ]ZaWW~A_Z
WЯ2qX"  A,$8 ~_B  q	 - `À I,DٶlL H Ey 1 ƎrtL|  Hja6'ԥ!\`4$ RLIЬ/"Nk
/97t䁀 !;$! Tx/ "!;.$zNqҒA t<3=D/Ȃ$
(0=HVK=sh b׀ W_1LAFF͔gE Vl֬VHZ' mvd5
ֽ* ׊A@JJ	}WKzr+S
D J]҂3J,hU*@vEm84LF@l.Ù2AfƁ<΁=(ց=FԈEMFѯyV
FH$=]K [H	Ẵdm &h bn sFƥ~(an  xp 5̃%;9qj>ns yLIZg6,l;4Zv {gm&`` \h  OB2顀 ތ PU!@턒Yu;SB}G܅JUh4))qt"_!W%Ҝ3%mo@ 5 9fvX#` {  +P :(  59uCP B 0
Dڂ]+L;\PH   *8A |w|x \  FV@u OE	3AQa[ˈAWGRɃAo>|i5$\G "cQ&G  4oJtc`x 7Ր  Z6⒞+r7!7` &C fBVM'lysȆsvnFײI& |5VHHmZ.5Sm<"$+ eȺDK	J@GP Bb>G RhB~3֨0#ֻ>0^Ch  rL6jA-mKD,C.0Gx 
Nf Y  !Udb2͋ wts5X1e~vE0:(h<6rlW?ֈ.͑?<(?="Q
V+KL$`'J jXs^u*6	*Löp8dm2cqtM(XKnkSʍv Ey3XhU#6"tnIP
 z83@FRゴX&YDmEQmRUS<$(B L\-q[U_  U)/y'xmJ#_/\o<9I2VY:G* Z\( 92qՊzjRTQRjXJ˖tGm+J?7WnH E`4/5ǢPS NxicPیҸW캗{ysv g^Oѵv^&g#%̺kБK	616lK4վ<
I@{F>+DpŚ8jY;Ȗa'83Jeީ?\K]fԽ]c\YU1%jgj,(WWh] z9dH߄hZ:cFyC來3Zo7p4^	gdMi&>ݧ]ђAuI{kKgu#@#$gV)0 /ȹYO3ؽ~5ENrԮGwqںYrL .+^"'sG `]3d'g}cZ.-`e|l zx9@^yҲ\]f+3YJKT mC\)"eb*Ϫ 2Rrt4z>@ħRu+蒏 O.ҫ@ONa"Nk0R%"di¿0ͤp^ݏsG83B>ڊBdjtc.b'IbIt>!.K̀C*/+u.nyn"OK,-#k;>Nޒ04$4kdG
Eˠ 1L"@|z#4¶Imj`i,mLkp'NU,BnmH>	l!qC<4fȍ>#pp!qizu*GdkqVo&I
8I'2 0݈ *3C4͖GP
H%nXgGIо'~.,Ry#6L,~Il	2tGh>ǩ8\ FQd>PQ F܊I  @	Aa0 A@(\H@TvH9M'dN 0l |N@	? h@ E $  L֨ 50  v@* _ L$}g =-@  	H&o c@  0 `!  qdqW!yf@  =t@ƖWfF {:P?蠊%w1$(q\k  	Ρ]T_pW`8aPdB%)EP[9_ԇ˘ }t{A P`Jc+
c{
 +f( ,rh i  ]I <qC"\}H|c ;| rH I9' wʌK -̼6` T̷,2#ǎ#9  Nώ;<QCֆ=+ފ"ۃ YKΔ5MiD TG pU UNq yst U L 3<K5Xk"W"5ǭd%˱ V@|0+A= Kt]wriy pbjM86ja مsW;(;Cc2DTU'H#,e#5?cB-IQl0 z\\@k^mߠT ͩ  ?N?db]<uf2ƻEih1	$xuZkN8e59GN؅bBOK҅OI#@p w%S|[I$&l   MvGwW8QZfZ%mJ+Js X

rJ՘ _&Èi)6]óOpm>'Ùb(@h<tj-2P`R f2p\ݱʆ(R\Kx<ߓۅeZ -|.6SH9 `EP I 'af$ @ ].pe,,š-  ~>Dac3R7ZspMɕ;iʹ:x<ҺB	Y(dH  _+tp(tM!Al޴4Vk b 	Zs^ :f ( U.j  -5q$p7ky t 	 /R~6ֈ  ImPii..bHiŁэKIQyrf6s҄(I):>0ki:d?t6YKVK%t'v]5%˩woX'<W@ Z I D 0ARh_<SXLoOClqكځF 
4Zmd0x#Jb1]EWoRMi:Is䦏1K)<'dtFd
.9tRXI8-u/c\< kL58% yk%Y=$#o@`@?U
f踵@ɨj,ř#=r057Zu:ȚI8Ġ큃Q1H)&NHZNn+PJг^X	#DDdn7pC)HdZ #_(%aּIY/oጭ2@cu^cRM^AUM_^bo\*dӦIK)UO$d3
fN:'M@ aə`2AFj]76@s0@ 3:L9Gy zcjd+eue0Ęcur6GiiTboN	k`WQAlT)#]vT3vVH/(v#	Y70 ɽa[QH(g@mCtB'}[\_tv2?I1:oN,$vjx ٚIn~ƗL.fO`:f1.lKY#@ǘdQFŘM'ݼ]Ǽs^.y(̃$:+po:=_YwtMl^,L_U&=`򻎽K(Yda1ܼʶ~XB{qv_ޝ{Q9zU2T@vG;;5В_ٸ⥣;gomqve_swKǶ'|RF:k:3Ҽy]N{qE{Eߢ_7e)nv,~Bv4{1D!jO 2o      @	Aa0 A@(\H@\vc9$Bd)TG'LerafxOg@@S9jTJ	VTUn^ v;~XT5	o\nP&֩(XPiZ
-*@Πx4+Ab0(V.aH3@v8\m-Cm:e[G-~5zrmL59@4yXOP<^>D"QBZ0 >&_+^IȦ춫 kSL9Lf /001)! D ʼ"	SC?Sl}G qjxGRA!4"ܬ6#R<} #JFdF:,CN<MHĳPG, OT& +b& - l!	T R"J@MBD$NiGS%T jU(I)Yl<zЧs`,WEʞB5-ROstډS넗& UeK)ss,+юC)qQ<S;E%}b> m}pb 94 L o t	F|f 0Bt YGX%"YД2` [ nڨ gkGH]Ndló`. h b t\uIiFBr	nM:`	7\wJ$zAc:#/
ʉkp _v< ۀt}9J xw@0 >nӦ izi/ 4Xj0 a} "y  ?sq9 lGz^ @  v`	 ;AuI%
 "@ۃ@ ^A׾ ! <gCoH0 ` 콶4W4 NA3.ܼ^ge̯g8ђ_̙_kHoIȼUW0 8D~  5 @ cWN0# p`p    AHB-u`2KiN+ÂvC = )`E&rP{ + )@FTnKTFָTbQRBZ4VɍB2#k3րQZZ0J`6U*gP @@oHC:qy/H&NEH'#?D  YD(Аt0G.ոh5  F  =Gd8("2Ya 1ZQMD1hQt5=0	,
. V-S>ScR 3jķ$tfg&& >Yԩn:kE u ֕8rZPs	au'd
td%&lP]xv׼_3)g`>2P(sk>Lq;-}$~1o۬#*DY^ՑRі[.۠<@ Pps{ۗu@ @l)	D-Q\$1v<ݵ:,
6rDoּ`@(EBjGC<iuժ\G`CPKa+eIݳ	y&esGz(YB#vPZ3eA
i@VaFEہk{3 d&¸?1Hw. 	+36 
wvd/1ܗg'> 2kD#@AUpNm )0 σCKҢBcSPN\u +q.  ZHY1KS-r%cfqt_x~?STF$wHaealQ9ݸll rMyUb590`u=X @T  }y /B=/( >MhPVh	em)@Ձ\72[I>|Y5o1be"J;37٧;O̊ rkZ!k?A4倏
21g;# <A#N(ҷs-֌QtVnBTI-6; vvۋ#3` <oJa]\:M㜵?xoFc諡J#+ou7 Az3ץ(>tH)ZiCT(S]& 210cƷ[ -H0Qb}|긻>-Nɀ+TP~B.(n.	,BWGp8.6mLtκ 0>玕m<jª*+XoI8K"ŋ&*دfNLj+:#jǨަdfM>>B>\#ʦ}`*FSiZ
GkH@ P߫I~xnxn>Ќʤb>jԍe(vpteÌתd-la魒sEo_ o
>nfb`ь ,p#"
Bba
B¦$(n*dnf-t*jj[ΈSF(n5 'L`F1>4i&⦂ba'dqjpg
F`NSTl$1pG.  @	Aa0 A@(\Hc@\t AdR9$E ɥRy\ ~L@e1~HsH9ȟԹ`*"SCS
5nE]OHH Z@(Hj3i :S+l7Go]X:ε4eOg+#bkUFHڴ;\,GT0[O8J(RF\ :k2כ̨v-Oy!zP*Ix;fsw7<]Wq2/j ȐoKL%L1B?h$L H cE-
 MG#SHH ɑ"|,)F(p<)-?K+CLOʒ<rKs҃@7OS2OE/<=F1#@CJiS Mql^CF(e&Dr7}Վ8l ̝<2*j_:*t]%C+AkGWҝԛͶ(@ԭ_)M	-*'v\WRIqDUta U$lUtNC"UUh6Lr4)bW&'op^v?LWjKsv`ҹ]AA~6mM`(Tŧ \WWC4Z=wYI6qUѵ}$w {o QhMO57FzbY|i$	  awB;kĜ'nE.L@Հ'\L_O[ 0ߋOI -5%}Sfr;gP^WcK/g}/7	ߌ'ށQhG +Uaƴ*.o{ K )MG4  "^/zBXMcGp @@ y(l9w_k~$0%k$PiOBv	ޣpDhE xALqFQi@ti b6ț@d +:D#81FC%FdUH^<Ps%0`BeыP]L 6VFH%eM]*! pE*kK%af3Č]]E0H djʹ[grrNY*ڍjFӭz%ǈO(=g)`?YBB9Gy:#p.#(Sj-Eӑ)Htk""+,*>_sgjX Ng TzV6X֡FG7F*EItm]S; 2%L1-'S_R3<]%|&Pq@"NI5jHf ^xF1]=<T){+nKASe=Īsc]b~DJL$wL1< )  =݆>j8+|(RtKm_NĻ{|,E{O  P0 	AP,B!" 
ǠR(/+La)/ 
fQ7 5@؏6 
[ӠU*e5$v_XlV;$KY5KU*5DuFvj;!@r-M\a= rVI 5sNvvCm[~Pmk.]XG۶de^vwoH \G}FT! T  ^<zJL  -ͧi~k?Տl}+9k
 9c:H461"ɻ#.i,:G3Cp*ӽc@Om0LpOjGtHqJ>p L>2K	f/l0W q{͍V19Γj3;8klH C2r1th oRaI̍W5MO5-EQԋJOoIN]
PUt lDȄ@Wzo̯I T5ӭ͕aTmgs͡iWBAЕY$Ȩ1o'EsMbYwyִ+յ	5M9tQSN.|0ƶtSv;dERϷY+eN-f@e晬8I8-Pf.&qnem=i:*֋٪O6.AKi6ݷduHm˸ʾ  Adobe Photoshop Document Data Block 8BIMMTrn    8BIMLayr  j                     s   s   U8BIMnorm (           (                    Ebene 08BIMluni       E b e n e   0  8BIMlnsr   layr8BIMlyid      8BIMclbl      8BIMinfx       8BIMknko       8BIMlspf      8BIMlclr           8BIMfxrp                       
   %                                                                                                 / ) - . 5 C I H G A ; 1 . * ' " "                   '9 BkjV   ĕ   a4  c5 	e8	g9
h<
j>	l@	
lB
mB
mBnBnBnC	nC	nC	nC	nC	nC	nL	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	nY	ni	nn	nn	nn	nn	nn	nn	nn	nn	nn	nn	nn		nn		nn		nn		nn		nn		nn		nn		nn		nn		nn		nq		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n		n	n	n	n	mm	
 ͕	X	^A -I bwv	7
bA
	
jA

 oA	
	 oA
	wA
  	A	   	
A


	   	
A
			  	A
	  
A	  		 A
   A
  A
  	
 3
	  


	  
	  	
  
	  	                  "    4 . & 3 ? < 5 @ G H E K L M G K L N P Q Q O J O V S R W Z Y Y T X T R V X Y V Z Z [ S Y X W S W W U M T S R M O K M H I G F B = > 9 0 7 Z a h i j k k j i h h h f f c X G 2  " 2 $              
                   ܷ      ܦ     Ԩ  іҳ  ͫέ  ̣  ɽɞ  ®ƞ  ⾹¿ś  軷
دě  ɵμÛ  ѭѮØ  īʸ˸Ø  쮤ÖŵĘ  	ߟĻ
ԟʶØ  1˹ߤ춰ϾߙØ  3ڹƭзØ  꺵Ĺä  ɵϬ¯  򱫳Ӳ¯  ᯩ԰¯  'מƞȳƠ¯  )خ͢үȳʦͭ  ȑ  ˭඲Ȗé٭  ؼޏꢱҾؽͪѷӊ  ٯͲʸ蓣}۰֤  ԦҬ濯  ǲة}ӳ࿯  Ư˸|խwuΫҿ   ǳՒʙίņ޾   ͘䜧辦ᾯ   ߸̼Řũݝ答ܽ   BƼԛŽǯʭڭ獭ļߘаͽ  CڠԚ䜽ڵٽ  %ћʫܥȥߵܽ  #֯ѭɲٴáؼ  #Կϯu൹дɲŒ鼴ɻ  ؽнҽ˔ʚϽպ  ȡѹܯɯ䍱غ  .۟ʾؔҾԺ  Ž0΢𮟊{ͮxЭ˸ܯź  $ޱ߽~ڞ˹}؟~̺к  BǬɞуԾʲҹ  7Σ|Ѷܼ߰įù͸  ɮ8ˬ鿊|ªѱ˦  )޳٨}ҡŽ٣ɠ	ک̷  (ĕ~ɾ	Ҷη  3ޭ̮}}ڨٮɯ˼λ}ȼ
Ԧ˶  3ذ߬|tɧĴzvɽĥ  3ݫ̥~||ʷ{κΩͮ٦ɷ  ?ʻȿ~޽ǜ˷  ?߱ĥƷƊֱ֯߬쳛Ƕ  	Š0ɲȬsڼڼ枢֗  ƭɲŘ湳νʣǵ  ߷ػð䳿ɵ  +شҨջֽ騴ŵ  ƤѾ핢&瘹㡦  Ӵť%֖ݴʼ䣵Ŵ  ׾ҠݧԣǴ  ۠ɝϱô  Ľڿ̚  ëߟӪ３ô  Į٥漥ƴ  °ե踮ɼô  +  ô  Ŵ  ´  	  	  Ŵ      ͼí 
̻Ů   ֵ鸏㮜Ҡۣіџ  TÁҏܰϊ{ٛyyˇ־yyĴ  U沨͌Ӛ̌Դ֝ŀw֠Ɉпv  V־¼ʺ̽ƒöѦsđénĮԻ   Uˌɋ}סԦ|ӝǜ|ݭը˖vіvǈ˿vαȈ  UΎ͎қ̈ˈˈӟ٢yНϝ}xxʋxŁxϔô  IˌʋΝʋɊɊ͜ӛʛvտv׿vňȿvvΛ  Uؽм|ھrnĲnŲnnnʩ   Řʋ˝ǊǊƊɜĎɉ̶vƛv˿v˿vÈƿv{ʺʱ  R{{ؤ~~~~y㰐xǋə}xʙx}x}xô  Rſɾ˵ƿǰưſžŹ˰  0¿   C   ô   
          ÷  ¼ʼ  @ӷҜط  v  O   v  z  z   뽞z  ~   꽝~    ۲~   꽞~  ~  꽞~  ۲~  ~     x                    "    4 . & 3 ? < 5 @ G H E K L M G K L N P Q Q O J O V S R W Z Y Y T X T R V X Y V Z Z [ S Y X W S W W U M T S R M O K M H I G F B = > 9 0 7 Z a h i j k k j i h h h f f c X G 2  " 2 $              
                   ܷ      ܦ     Ԩ  іҳ  ͫέ  ̣  ɽɞ  ®ƞ  ⾹¿ś  軷
دě  ɵμÛ  ѭѮØ  īʸ˸Ø  쮤ÖŵĘ  	ߟĻ
ԟʶØ  1˹ߤ춰ϾߙØ  3ڹƭзØ  꺵Ĺä  ɵϬ¯  򱫳Ӳ¯  ᯩ԰¯  'מƞȳƠ¯  )خ͢үȳʦͭ  ȑ  ˭඲Ȗé٭  ؼޏꢱҾؽͪѷӊ  ٯͲʸ蓣}۰֤  ԦҬ濯  ǲة}ӳ࿯  Ư˸|խwuΫҿ   ǳՒʙίņ޾   ͘䜧辦ᾯ   ߸̼Řũݝ答ܽ   BƼԛŽǯʭڭ獭ļߘаͽ  CڠԚ䜽ڵٽ  %ћʫܥȥߵܽ  #֯ѭɲٴáؼ  #Կϯu൹дɲŒ鼴ɻ  ؽнҽ˔ʚϽպ  ȡѹܯɯ䍱غ  .۟ʾؔҾԺ  Ž0΢𮟊{ͮxЭ˸ܯź  $ޱ߽~ڞ˹}؟~̺к  BǬɞуԾʲҹ  7Σ|Ѷܼ߰įù͸  ɮ8ˬ鿊|ªѱ˦  )޳٨}ҡŽ٣ɠ	ک̷  (ĕ~ɾ	Ҷη  3ޭ̮}}ڨٮɯ˼λ}ȼ
Ԧ˶  3ذ߬|tɧĴzvɽĥ  3ݫ̥~||ʷ{κΩͮ٦ɷ  ?ʻȿ~޽ǜ˷  ?߱ĥƷƊֱ֯߬쳛Ƕ  	Š0ɲȬsڼڼ枢֗  ƭɲŘ湳νʣǵ  ߷ػð䳿ɵ  +شҨջֽ騴ŵ  ƤѾ핢&瘹㡦  Ӵť%֖ݴʼ䣵Ŵ  ׾ҠݧԣǴ  ۠ɝϱô  Ľڿ̚  ëߟӪ３ô  Į٥漥ƴ  °ե踮ɼô  +  ô  Ŵ  ´  	  	  Ŵ      ͼí 
̻Ů   ֵ鸏㮜Ҡۣіџ  TÁҏܰϊ{ٛyyˇ־yyĴ  U沨͌Ӛ̌Դ֝ŀw֠Ɉпv  V־¼ʺ̽ƒöѦsđénĮԻ   Uˌɋ}סԦ|ӝǜ|ݭը˖vіvǈ˿vαȈ  UΎ͎қ̈ˈˈӟ٢yНϝ}xxʋxŁxϔô  IˌʋΝʋɊɊ͜ӛʛvտv׿vňȿvvΛ  Uؽм|ھrnĲnŲnnnʩ   Řʋ˝ǊǊƊɜĎɉ̶vƛv˿v˿vÈƿv{ʺʱ  R{{ؤ~~~~y㰐xǋə}xʙx}x}xô  Rſɾ˵ƿǰưſžŹ˰  0¿   C   ô   
          ÷  ¼ʼ  @ӷҜط  v  O   v  z  z   뽞z  ~   꽝~    ۲~   꽞~  ~  꽞~  ۲~  ~     x                    "    4 . & 3 ? < 5 @ G H E K L M G K L N P Q Q O J O V S R W Z Y Y T X T R V X Y V Z Z [ S Y X W S W W U M T S R M O K M H I G F B = > 9 0 7 Z a h i j k k j i h h h f f c X G 2  " 2 $            
   
 
 
 
 
 
 
 
          ܷ    ܦ    Ԩ  іҳ  ͫέ  ̣  ɽɞ  ®ƞ  ⾹¿ś  軷
دě  ɵμÛ  ѭѮØ  īʸ˸Ø  쮤ÖŵĘ  	ߟĻ
ԟʶØ  1˹ߤ춰ϾߙØ  3ڹƭзØ  꺵Ĺä  ɵϬ¯  򱫳Ӳ¯  ᯩ԰¯  'מƞȳƠ¯  )خ͢үȳʦͭ  ȑ  ˭඲Ȗé٭  ؼޏꢱҾؽͪѷӊ  ٯͲʸ蓣}۰֤  ԦҬ濯  ǲة}ӳ࿯  Ư˸|խwuΫҿ   ǳՒʙίņ޾   ͘䜧辦ᾯ   ߸̼Řũݝ答ܽ   BƼԛŽǯʭڭ獭ļߘаͽ  CڠԚ䜽ڵٽ  %ћʫܥȥߵܽ  #֯ѭɲٴáؼ  #Կϯu൹дɲŒ鼴ɻ  ؽнҽ˔ʚϽպ  ȡѹܯɯ䍱غ  .۟ʾؔҾԺ  Ž0΢𮟊{ͮxЭ˸ܯź  $ޱ߽~ڞ˹}؟~̺к  BǬɞуԾʲҹ  7Σ|Ѷܼ߰įù͸  ɮ8ˬ鿊|ªѱ˦  )޳٨}ҡŽ٣ɠ	ک̷  (ĕ~ɾ	Ҷη  3ޭ̮}}ڨٮɯ˼λ}ȼ
Ԧ˶  3ذ߬|tɧĴzvɽĥ  3ݫ̥~||ʷ{κΩͮ٦ɷ  ?ʻȿ~޽ǜ˷  ?߱ĥƷƊֱ֯߬쳛Ƕ  	Š0ɲȬsڼڼ枢֗  ƭɲŘ湳νʣǵ  ߷ػð䳿ɵ  +شҨջֽ騴ŵ  ƤѾ핢&瘹㡦  Ӵť%֖ݴʼ䣵Ŵ  ׾ҠݧԣǴ  ۠ɝϱô  Ľڿ̚  ëߟӪ３ô  Į٥漥ƴ  °ե踮ɼô  +  ô  Ŵ  ´  	  	  Ŵ      ͼí 
̻Ů   ֵ鸏㮜Ҡۣіџ  TÁҏܰϊ{ٛyyˇ־yyĴ  U沨͌Ӛ̌Դ֝ŀw֠Ɉпv  V־¼ʺ̽ƒöѦsđénĮԻ   Uˌɋ}סԦ|ӝǜ|ݭը˖vіvǈ˿vαȈ  UΎ͎қ̈ˈˈӟ٢yНϝ}xxʋxŁxϔô  IˌʋΝʋɊɊ͜ӛʛvտv׿vňȿvvΛ  Uؽм|ھrnĲnŲnnnʩ   Řʋ˝ǊǊƊɜĎɉ̶vƛv˿v˿vÈƿv{ʺʱ  R{{ؤ~~~~y㰐xǋə}xʙx}x}xô  Rſɾ˵ƿǰưſžŹ˰  0¿   C   ô   
          ÷  ¼ʼ  @ӷҜط  v  O   v  z  z   뽞z  ~  꽝~  ۲~  꽞~  ~  꽞~  ۲~  ~      x                            8BIMLMsk            2   8BIMPatt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/MulleNewzApp_main.m                                                                  0100644 0000356 0000000 00000003321 07503216737 016347  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  MulleNewzApp_main.m
//  MulleNewz
//
//  Created by znek on Thu Jun 13 2002.
//  $Id: MulleNewzApp_main.m,v 1.1 2002/06/16 23:23:11 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <AppKit/AppKit.h>


int main(int argc, const char *argv[])
{
    return NSApplicationMain(argc, argv);
}
                                                                                                                                                                                                                                                                                                               znek/MulleNewz/MulleNewzInfo.plist                                                                  0100644 0000356 0000000 00000000473 07503216737 016422  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    ApplicationDescription = "";
    ApplicationIcon = "";
    ApplicationName = MulleNewz;
    ApplicationRelease = 0.1;
    Authors = "";
    Copyright = "Copyright (C) 200x by ...";
    CopyrightDescription = "Released under ...";
    FullVersionID = 0.1;
    NOTE = "Automatically generated!";
    URL = "";
}                                                                                                                                                                                                     znek/MulleNewz/MulleNewz_main.m                                                                     0100644 0000356 0000000 00000000160 07327405245 015702  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  #import <AppKit/AppKit.h>

int main(int argc, const char *argv[]) {
    return NSApplicationMain(argc, argv);
}
                                                                                                                                                                                                                                                                                                                                                                                                                znek/MulleNewz/NSString+XMLExtensions.h                                                             0100644 0000356 0000000 00000004214 07662423160 017174  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as NSString+Extensions.h by znek on Sat 03-Mar-2001
// $Id: NSString+XMLExtensions.h,v 1.3 2003/05/20 12:58:24 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>

/*
 ZNeK 20030520: This stuff is pretty obsolete now. Current EDMLParser has everything built in
 we need for proper decoding of entities. The Dockling doesn't use this code anymore, but it appears that
 MKNAppDelegate still has this legacy built in. Until MKNAppDelegate isn't updated properly, keep
 this code.
  */

@interface NSString (Extensions_XML)

+ (void)setBundle:(NSBundle *)aBundle;
- (NSString *)stringByDecodingEntityEncoding;

@end
                                                                                                                                                                                                                                                                                                                                                                                    znek/MulleNewz/NSString+XMLExtensions.m                                                             0100644 0000356 0000000 00000010772 07514331452 017205  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as NSString+Extensions.m by znek on Sat 03-Mar-2001
// $Id: NSString+XMLExtensions.m,v 1.5 2002/07/14 17:21:46 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "NSString+XMLExtensions.h"
#import <EDCommon/EDCommon.h>


@interface NSString (PrivateExtensions_XML)
- (BOOL)_isNumericEntity:(NSString *)entity;
- (NSString *)_decodeNumericEntity:(NSString *)entity;
@end


@implementation NSString (Extensions_XML)

static NSBundle *_bundle = nil;
 
+ (void)setBundle:(NSBundle *)aBundle
{
	_bundle = [aBundle retain];
}

- (NSString *)stringByDecodingEntityEncoding
{
    static NSDictionary *replaceLUT = nil;
    NSMutableString *decodedString = nil;
    NSString *decodedEntity;
    NSRange range;
    int i, entityStartPos, prevLocation = 0, count = [self length];
    unichar stopChar = '&';

    
    if(replaceLUT == nil)
    {
        NSString *path;
        path = [_bundle pathForResource:@"Entity2String" ofType:@"plist"];
        NSAssert(path != nil, @"Unable to load Entity2String.plist");
        replaceLUT = [[[NSString stringWithData:[NSData dataWithContentsOfFile:path] encoding:NSUnicodeStringEncoding] propertyList] retain];
    }


    for(i = 0, entityStartPos = 0; i < count; i++)
    {
        if([self characterAtIndex:i] == stopChar)
        {
            if(stopChar == '&')
            {
                entityStartPos = i;
                stopChar = ';';
            }
            else
            {
                NSString *entity;
                stopChar = '&';

                range.location = entityStartPos + 1;
                range.length = i - range.location;

                entity = [self substringWithRange:range];
                decodedEntity = [replaceLUT objectForKey:entity];
                if(decodedEntity == nil)
                {
                    if([self _isNumericEntity:entity])
                        decodedEntity = [self _decodeNumericEntity:entity];
                }
                if(decodedEntity != nil)
                {
                    if(decodedString == nil)
                        decodedString = [NSMutableString string];

                    range.location = prevLocation;
                    range.length = entityStartPos - range.location;
                    if(range.length > 0)
                        [decodedString appendString:[self substringWithRange:range]];
                    [decodedString appendString:decodedEntity];
                    prevLocation = i + 1;
                }
            }
        }
    }
    if(decodedString == nil)
        return self;

    [decodedString appendString:[self substringFromIndex:prevLocation]];
    return decodedString;
}

- (BOOL)_isNumericEntity:(NSString *)entity
{
    return [entity hasPrefix:@"#"];
}

- (NSString *)_decodeNumericEntity:(NSString *)entity
{
    unichar value;

    if([entity hasPrefix:@"#x"])
        value = [[entity substringFromIndex:2] intValueForHex];
    else
        value = [[entity substringFromIndex:1] intValue];
    return [NSString stringWithCharacters:&value length:1];
}

@end
      znek/MulleNewz/PB.project                                                                           0100644 0000356 0000000 00000003113 07327405245 014470  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    APPCLASS = NSApplication; 
    DYNAMIC_CODE_GEN = YES; 
    FILESTABLE = {
        CLASSES = ("NSString+XMLExtensions.m", MKNAppDelegate.m); 
        English_INTERFACES = (MulleNewz.nib); 
        FRAMEWORKS = (
            AppKit.framework, 
            Foundation.framework, 
            EDCommon.framework, 
            EDInternet.framework
        ); 
        FRAMEWORKSEARCH = (/Local/Library/Frameworks); 
        H_FILES = ("NSString+XMLExtensions.h", MKNAppDelegate.h); 
        INTERFACES = (); 
        OTHER_LINKED = (MulleNewz_main.m); 
        OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble, m.template, h.template); 
        PROJECT_HEADERS = ("NSString+XMLExtensions.h"); 
        SUBPROJECTS = (MulleBasicXML, RSS); 
    }; 
    LANGUAGE = English; 
    MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; 
    NEXTSTEP_BUILDTOOL = /bin/gnumake; 
    NEXTSTEP_INSTALLDIR = /Applications; 
    NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; 
    NEXTSTEP_MAINNIB = MulleNewz.nib; 
    NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; 
    PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; 
    PDO_UNIX_INSTALLDIR = /Applications; 
    PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; 
    PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; 
    PROJECTNAME = MulleNewz; 
    PROJECTTYPE = Application; 
    PROJECTVERSION = 2.8; 
    WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; 
    WINDOWS_INSTALLDIR = /Applications; 
    WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; 
    WINDOWS_MAINNIB = "MulleNewz-windows.nib"; 
    WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; 
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                     znek/MulleNewz/h.template                                                                           0100644 0000356 0000000 00000003345 07327405246 014573  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as $FILENAME$ by $USERNAME$ on $DATE$
// $Id: h.template,v 1.1 2001/07/24 23:54:14 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/$PROJECTNAME$
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <AppKit/AppKit.h>


@interface $FILENAMESANSEXTENSION$ : NSObject
{
}

@end
                                                                                                                                                                                                                                                                                           znek/MulleNewz/README.rtfd/                                                                         0040755 0000356 0000000 00000000000 07665677452 014517  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/README.rtfd/mosx-screenshot.jpg                                                      0100644 0000356 0000000 00000066371 07332035521 020344  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                   JFIF   d d   Ducky     <   &Adobe d    
    +  I)  l  		



                                      0@P!1245"#$%`AE      !1AQa"23qBr#4 0@RbҲCS$cs            P!1A 0`@Qaq     !1aAQq @0Pp    qw& 0 L   ^w        i"t5,in  >[ro0        sl3 1,H f1!<f        Bƹ&ı81-Itc$;­,Nby爘ry        \Otbu,C*PW6% 0te@ 
gǼ        .e8:xIԴذ2+$jld   >[ro0        ia
l#$$	   +L|`        25MLTꌖ    }.M        s->ɍ   	xf      ֜)s->L +'$講    ju562tQd     uas->NJUNl   %e9u     ՏZ}3KfKHbQD[    18       ucqLB!	cBC   VcRj޲f[ s5   ~ZdOpt2`6$e&feJ\ɹ.    8=pzqLsde@ \܁;B"R    SX\Opt92+&t    eSb#sHHMM͌亱X\OptSHI-(8&47GX   M*%*H%s$bLU)W;Յ̴gO2T䰊i+'"` eRu2HFu0    5ՇZ}32CccPhJj\ET``hFsNe5Mt    7ՇZ}3`-# 
M !hFsF     7Շá狦)!!`ܔ  [ǬSZh      9{Ol/bFeQ/BZ+OK;ӭmۛ{gil:A_&IdQ0[LSiY'~mgiw,otean>{*xuma<KL)iLYy^]6,L{{:ΫM5:buuiv^c&B޳R)_+W?X[޾_yޒP_z?3',YyN]Bǻq0k9yYwJ&nm@`YhosS׃ogV|6Wxե.F[[Wє7ˋqxާ+,Yy.]"7&],64 8KpclϷFIQh^kZ&:~o
'S<f.ctC+G^g9;g>6穥3e[M1bcR
cxRіa۝j׊0ם{M :R2[KG>umk+YZ:ZҙЬWuAbX)V-\  O+;YCJw 4Dm                ?  eu	>8'ÂxpO	8'Â|pO	<8'Âx9y$7(ٞj&;d1)mLy#)Zژ75jC{ TIdy%AAA*G+?S3V'B4JJEAXA.M[H;lo_mUZmC#ZnkQ5n'A ~¡GS$7);mĐ{rӜqP [B{h䛕Od|y}L'sU9JLmiRޞm-jmeJ-nuIeUnTd2><wTɅEhL-X6ZZd|y
8K$A&l&`>FEm0GId|yFC-XJSQ#\VTt&t|G[4O	>8'|pO	>8'|pO	>8'!*an'Ԟ4FZ/eQ
PƏ_ѯ[-kK[<[$$yYr;brJIImpJPGx. (a?_	F:^&-aLTHH[G~S!SYwo*nN}r.$rtwT7W>8չZZZZZZZZZZZZZZZZZZZZZo9&wj[d%N2{As"ӊ2>br\-0)
>55$B%#c{a=˴? 3)-s+J7`!\,wo"saKM)asXCk}23)סt55]uAql%"-Vt:ͱZ]QEQEQEQEQEQEP4m !)(v	v;NDXXuFiEڲHT6TZxv-1%0Jkƛu3cDBƩM12SչWm6\#cyNE^钶㿜8x5yQ/ k`_b٧J
<36UC+TDVjZ%L)(O2hL,WD*>mbJT#tn)ŒIcpBp0O5u
`kfx!*X4i\b"Q̘v#N%;s		Ƕ`m{TY4mdQ%h\R!Ÿ䜊vWfi)3$&IK;&\sV]ЙsBdM_ѯ.}2E8Id ne5"%7?`]mKy)TggQ&y2`4'qZ{2^{)P-;--MD\JN5d󋞣-K_y~@ 丄@v|2CIJajLAʄJ)0VNYfm˙}i$666F%2qnrHF[zA߿ Dmwڔ+i cgA\Ik5*	%$Ԑ[z\j
=&s26G!r!r!r㋼ 3Q%+ߗ<Þxsy<9<Þxsy<9<ÞxL}v!$2̶	F@JVSNԒ9wөvӊglhGlC!dhn4Ͳ}Og`$Cf0,qKRi8HZ<Fs8q^A#7KDۻ@/vV94;('m[r'i:l%2(J`sC1i*?b#Y!.9QIHuMT eCd4(97:UT#	se|
yGsQwMDom{vM,eqw"ܗY[!6*\\eEN޵IHʣ`	6'aOڬrm
ZIX6,c~]3nNkq)rp}SFj)eOn7tU:w!*f[[HuơVLE3PvO4eJ@-iTTbmħt-(<ݭK8gq29E lit5tJţړ+bV̸+z~4ϕu[+lSM03IbƜ&ш@q8ԫ(ʽ.Cv.2&.!q\BActq;؊RJ>12Cq%4Lt	Qv	(1(n[WB6:hƽe6n$)J9iT.|I7;DePr{imGtQFT)w   3AdAdAdAdAdAdJ1cf1cf1cf1cf1cf1cS&C=j++˗WǗ/4.^i_c 2 2 2 2 2 2+_ފ_\:{S{~V.1q\b.1q\b.1q\a==诏OoE|z{z+_ފ4hZ-EhZ-EhZ-	5,Zc W-EE¢TzPTJA4&]%]EAh?`b'B(_ /k"<R3$eHJ˥;
QiN /KC=CʮK$DK3&Q0 E@Z*(PPPIhiA@EM*)--ZPSS!@M.xM=O  `X,`X,`X-ED/!y\B/!y^B/!q^B/R/R/R/R/3hX,`X,`X,Bh^ym}=Bм/PV
нAZ+Bh^J렠E&FZTeWUzh)<Z


tPSȪT$:̂M#P@$"'zYJ2"RBŦ3S&0(6AwLo44YDP
?e@%A'YuTITdP5]*+tH%||: ?BN9C*ME ?'l	 	-Del4R9 EDO8K8AK ?ePqo\qYVqo\q[Vqg\qYVuqo\q[Vqo\q[Vqo\q[ݐN\j]u ](*ֺGwz6Z(E+Ix \Lp@CM"ݰ\ntaZq̞W#ē_RO0Uɧ2Kos ͧ.R>%Tʐ߉S	@xK@2}v}Qtq:q:q:q:q:q:q:q:q:q:q:q:q:q:q:q:q:q:q:q:%s̎'Q'Q&Z@qڌOsAO̫?洵)8Ú-:4*IYv`iTM&iqP2if\ugjIlam87 Í/]S64p
ԻqM@fr+9iʀGդё]է/ժqܤvcHvaڏڼs 9skpn酶6K]C	M^'dԸ;W;(޸TԚ*-(
R
 g=AhFҕvӷCѥI/HX.d]v9A6@g6X[`3MP
7lSE?NϵXh4[]=Vv lSblOnm16Tgt)ϻ3̴HIW[gэ$tC-eeOEƖ-ֶJ7;"?)]pKQPT\{!ጪr [] rϙr}Maݟj<xj4=jJausJL\Ik	2kuL҅%PA"y?xaY yv*9TTAn|4P®۾û>c^(˄ö;Y(l9	A8AdB9`[@3,xƗV%HA?-y\{X*9<F05ˁ5;V=K`Lϒʌ?h k;3Id$UEN~ӝSXS:N[xr ״F*uT"$U#90*OnvV1nVuq[q[q[q[q[q[q[q[q[q[ZT\=G8K\[9=	wJiE8)M"fS٧'.wl0}$%t$Ĵ8QĵºYU"wfW?^i2qK@5mV7GqsRTͪPT*AG82h&0*TdXXvI,
	ˁ|N*=1wJ?`I*?醌.dPEE!B
ږ#Nrn<R!b(}Yp
NQR#~h[jMZvM A2Bm	$_ج'ǷmjRʱ(اeŋ(G(-TLB֪g(jBVϺ?$xOJ4\e6J9cTխIdHo$ԝv
I
c}oXb7۬Fun#}oXb7۬Fun#}oXb7۬Funi 9,{|I&dT@Fn?TM!vsst)@99\	<Uow"B4?gG2ȰKݾ+HQ:O;Ez$?"
Ŵ2;-!@+ΒBqL9\'V\? *\S I}0p;]W==G\ggL #ZA~4 9HRݓ$B|Ɵ(CKڢ-?ўQfsCu(X߈ͷ^1IkepH|V6S
4e8)Ռ0nj}}g!gE 4w2Jp"yf	yf9唒jüR9N	wl6hqDيe6R6tg#tG={8,DpYg#tG=,~մ3,ZӀL=Ox~TBmsue;\$r:GxΩ	 @RSic-̛er *zY$T;wPf*.Þ(~VtX,jUXL_WާJCE;Dmb0Cp'e:QQu\ דw%?.\iٷS|@L19 #!X58KC
1-l.7,'Ƿ֓A@LՎ0v_:KB pH+xL9չ 1[!Z'|@`<?ʢ]`III㌡A&0	ixڋ@/`vdΜr|yEҋޙNyhpstѵ֣\cZT#g2ř= v\y}ӎ\ѲgO9Ep /  hu
6h<"NhхY79	¶H>MApEqOg==GN{JDju!J6:1W h>K*$' ƶ!p\a(W?lBIDUt"aĄ/^8Һbߺ,MtAR/Ψܤj*	я՞nMmS&TԱ]nZE(. Ra ͢+
	c,?Qn.jUGaXi2m3ˤ1iLZph-2GSJ,J^J"*17Ifp- j)sD"P>}0sa2lO3f0P;ǣaYOo%oh>lG&	PXhs(i'hhT@Ewa:c$i ˦
$p
JHtQ5c#MR/*x	
\e!6I֤dS;{ HRI<ZIΦ;GcS6(!t3ɞqaF;9!	_LrxТx6uAQIU	CY[E٥+_5Q`|S
T0@<go0,YOo%oЍ@N+
 brp {\ ^tKW4u\;"sj ?ttd!FN 6y79Z;<P)26ߢ\&3ENJ6hVg{)p.MڤfPgz6j {ɩl8m\j8iN
U=BْmO@v
)s4&T ӨMf\&;>ږ}ҩn.(pҿ`upɚ,'Ƿ:ھ1U)&	rcVmrPٻ.:
[1k%N2-Ah0"
) %54
ev ɑuG@r\	TuEЎm*MpmξhR
 ah6ZgAW3KXJ7Fә}XݛT*wNHZe,Bp*ڞw$0,nˀ+e+.tuşdY{ZƹI"8<Bi [ \.0\rSc$ɲtkT$E^*+)-pغK.JJa!?{;!n<a 3vL#|nBZ]ARԳ w10000((Sp8A9Yw˺ꊉF*3#EH3&uοT|ꏓ:Qg_>LGɝ~3&uοT|ꏓ:Qg_>LGɝ~3&uοT|?s)	8n1_G03)6-Շ[F\.!"?kYEV񝼈%9K a/0ӋbNnqrlmFQNVn݁d0 SaFar"Hyqlbűb)/kNOH c2ˏ! A_4%X<>vÞV̺<y-`!k{#˺Ѣ^^Boơh(5ݑg(p}QCH]"1.+7dxqnl\J\W4=kM,7-#{-?ˍYeC-	<[kt6w xcܴ6rc89f@1YʱqrȏfF vMqFTe1=BVS_Dxpt˃Zu~x.{۴\ED #vCYqٗkIǑmn4#o5R6qIΡIyƟ<7n4'tA\Wg#GC{,T4pp+:i[իm+I7#E[=qLn.S99Ba,vt['){\䟆=&*`$Tu.#}'s" :R6X	=aF\a*f#1!S*芝'9n zy|"ߵl8Ok~\:p9蠀h`*8k	Anצ?mI3-)vшl+w =᯹cy]^G"ݠi3s$Ly `uF|ſwqxւG?ne<byEۻvuA.c̷jcJ=آ$[kqE!k? $sBp]1Q7uzAFvZ<gs,:or?3gv_mqcnkC.6Ud8~<}+ޮnd_<\LbH9w QTZ+aŸǏ T gհv٥rQHm[u-k3_?hYmܮ¤P[Sځ-[ykP4#"wIsN ..{᳌{SrR?E܁ǁ<?Xޘ6[]vrq)s)Q,wjk"BC%RDC23$`.LMVE>L(Ua
ݲ	x)On2x>X;0>бyqĩc
阣	`wa;*fm:Ak6-}ZFDUu{i*n7
\3Nk},C ?!4?Gqx<~?Gx~?x<!tpo+Z	-=K6iXUm,2IB(RV[mKɔrP_]Ih^w(}f{p9+z 7Ʀl:vёl5~-nSzRer4ʱ%6l"}%M׳kֳ5k3Zֳ5k3D;}=pMpm{{ ]ķFǫkFzM?|M?zv3ܿWGUR2u`x16hδ>"%(~HV4PWTb
7qt(N0Jk-%n"tDH#2VnN!nWLN7+74^&ѧpӭ2Zث;D0"oQd9$4ȥ6G2ݽV0q.[6gJ36#a{oh; o~-_3ϮcmM;lA5
VPNb܁7*}Vq!r4Vܗ7F^&W7XU+;\4@`itm
{.\N8?'K,0[: |©E9ow̷}|w̷}|w̷}|f|k0/K/b>Zu}zTt BPWYQ
M-<1
﫱՛4}.Zo稌dr Q	Fl&oL73y'Mr]T]P2Zֳ5k3Zֳ5Slֳ `;ec{ej| 4~yҧ\ucqBWFK}A6Xl
WrV/ĢWa浙fkYffkYf6s࿆kYp URC.Le,EN uyhn&V6SBmm 'F6<75`ĭ`\pd=ffkYffkYffkY|ςf-ܡo7_le{Jtm9K߬ʌgq>FTk;vZDA;.]`V8m¨"!`溵YffkYffkYffkYcsub(((((bٮfe͎^uonCԾc-zwl`<(ؖȧeUڶs켖pKj其ol'MJ[6 qBrZֳ5k3Zֳ5k3Zֳ5k3o_hjet(uV_ho=W/v4uh{ġ݉VWhod&^SZֱ5MkZֱ5MkZֱ5MkZֱ5Mkx/aPt1
о9Nņ!¡W2+k׏E&[b~߳A[k W.,-MxSqe1JZ_*Y`޽浙fkYffkYffy/m	>Wr`7eyWtFEhCn9-^"Ͱ x©E&bkX&bkX&bkX&bkX=l_5αaGhhD7.mncaY   ۶~Y~2OX)y(³h䩷f=3GX6llkYffkYffkYf[x(P@    !C)uֳgҮVcTkM0]˘6ɋ[$!	`۬HZÎ/]K=A"-R](Ր}6k7a
J $#afK]Mk3Zֳ5k3Zֳ5k3Z;+-!wOarUw}'2=j*:8Z&!Ap!ԡkA*P@qFdBwwA}yCt]L=wT  yGj˭UT=<k2*+R0={O t=EEdJoY$-p1(jJr;PS[8ģb,FP ]=m{Ī}jJVD'(ljM=c۴Yªd)+)y\Ưֳ5k3Z'WރmU,JXly;̗*ùAI%!]QG`,m94-M4hi>@}M4hhQBV7H6zWf4T `sf^D*WT*2Ymm|=aڛoQvtU3s:.Sk3s;+bTQRj-weJY0Cy.*a@:鶪]XRnf -/5k3Zֳ<6}K%4ԏSq)V Ue%RT}#97`2ԻKn@ӸRr
015MkZֱ5MkZֱ5MkZֱ5L` ֳ24cZ]J =ЁA,%  g;JQ7p	-
0݄ue\6*h/cau^Dw7kYffkYffkYffy/m2YxKF+vGj`avv\e̳(7*;Y諨JCWMScͿPM
:bب \T`[G̃e>):Xe]Z[<GMUpAJ)sҫA{w&q*i^x/aSZ7	![`;CKPQMS>yh\WكlS*νh:VWo($;Do_m%ì/pndd32S,mz[>Pt	J5k3Zֳ5k3Zֳ5k3o_hR+Yҷ&cՙ`[!bo;ك PjQbd[6wh XK)؋.ԿJFbl[='`/J"W>0,M՛!ǅblݶMv5Mkgf䩈8~rw*lbsf ɉ|TŰpʘD`Q)V[U2v{!KٻoPbvbQ풵EjnqDC)Ki	R.zC#"y8Z6VChk%B7l1mMk3Zֳ5k3Z_+XwOĠ% S1{%7n+RxbZb-ܓ
ŗ5MkZֱ5MkZֱ5MkZֱ5Mk,A}1gf ʱvnr5u=ɉx4Ѱ1
vK:pۄu!`nP
n-%bقFa^%6f'iW	KwU1Ph&s)3vFD y3\]Er*ftr^}	:_B4(-E)'4	eӝ浙fy/mQl纕v:Ϊ.\.0 ,̣`0imyKU-tMbkX&bkX&bkX&bkX `6{gfTn˞Pc AcV,*a\^2cJ8; &Q]6Px#{A8Yv
\Xdb`ywX,gҝ3w%Ú0[H"=.PX\+G{~寬Ue郤9q
 0ֳ5%M}pSe"}R{T.0MB 7Fo=eޅ(XdֱbkX&bkX&bkX&bkX&ƓJx,6Pz]Y6 3JgdBTqSh CpPٖvpt~fsz.n7d/Vg@@z *0l]ǋXޯyr`<Z]b){ BSX>\Itk+tx!YJ뮺뮺뮺뮾`^؟A2YXrxRn%1Z*!C9f.JapYJtٜR1ŝˠ!^3lv>nܜR{@eI^a#Y8qcݜ0f {"x5GHswu%4	O = S3~obp	%Pr =hϽ!4'yVٽo q^YNaUIt2`Q(Pc	`lE˴=D\Yb5ܓ?ӑa4ԅ3Js|\/k`f#U~G̖vl0Mȴks(k-G@=Ŏ|"/& SfwU0] ?YqaMK߄t͇ߏ)?.kֽ!"dBN/ˬ֎m3EֺKy8X/$m|=tpvn"Dfkh-tQ2*.̍{*EsarN| 7$:>Y}ڋȕFL,C&5t>@-&TO׵rl(:fBrW2|lF6
ݩJv7oGogݛ|hwU:BO|;%1:jB)=I{Jg]~A}Yu~g_oxT)Kg۴Ujx9{Kb{k^xWG40>x)Sj/{v'D:%mq>5'Ute=x	p(d*K xyMNJYv%+Ap8#vN ߬m;z;{>܈7Ħh{N0|DF~2a1^}_L*^.ގqWai`v!]~gԦB\'NW㠰ch@\:f`UuM	y#@XM1n3ٰZ?.©~=@eu'cu\ü=^ X%ҡ)m_c,!aUuN^,,UiOHt36ے	<n^DJc!  Y6?ZYxS]=UU ^ϻ62z%;T7 5> m9Fsx^ҩF훗ТäXiʿ1D.BnTT=Hc=$x![<bۯJkyZk*}ٟK+VǴBzFcXˇą;ja{ud`=Æ̡7;[93_$W	zRt)
EY2 竷-;/}pN) sWM*oWGhjEWoINҝY>7_W'W7?l ?!eN8g3p8g3p<3~笤rW$gW1bg3˴ϯ7ϙ ѷC Ft?m щ J	ABcw3F܌g39fs3g#9Fr3g#9Fs1 ]$"J*TRJ*TRJ*TROtOtOtOtOtOtOtOtOtOtBuJKLBT2⣈Hw@eJ +2Rz g4 -z6Ey@ "!.NE ރKɔ;^{ʽD9`3UMU4W+ [ edeI:}\nQ(%M w_7nv=eL`dz,(&33..J g}"*ޖ NַoM޻X 
g
mz1iT\bАx$#   ?!   J􂂀  J`ܿB	CJ`G; po u B     srdY,K%dY,K%dY,z0F1
J  K K K K K Js.\r˗.\r˗.\r˗ۀ W=BW\oƖfTOW 'zҞ"+b}`cJZ}0Wzg_JaQcw1K"Ԗ 
-NcU?Mˋ~p;_EwfE	";g}=RQHWoA~7Izte82׸E\sgZ @]6B,}GBX# 3п H      o             I'        "J$IN        >t         ,lВIK        ,JI'        i2AI$        e$I$z         II$Imm>" i$I$ I$I%d@$I$ji$I$aH. I$kommmI$Iep  m6II%mmemeI$I0i$I$a0	DI$IIM&a  I$I&M$i&I`"RI$$I$I"e@  Dbi$I$aJmm&IKmI$!A I$r      8!}?F8
[kM |İM՝  ,|[]u֍(c!tW5V*O#k`} _-ҒV 'v/p k)埿g$Bڷ)6mZy&ƄI$I$M$I$I$I  ?OQ͵Zde$YkYeYe!_zE\wot+ȪV9]xAYt^f,}Հ6}[b@3{*`AU) VlwBvϲ  l?]+NUu`Mዌ7U0یjlXSR(>ā\|/1|_>bVѠ%SEkBZ;\Qޗ<AmRtOXβ\"<N~ 	]!-Apo<N~ ^# 9n TE6s9A))bҷf"@J=ZuKtWF@Öt-neD-C\"	Ȣ1Jp+m=Ad=)nQp?N7ƕӐh\pV-xi~.H{qKFݨڊ;:-Ui
' 0̣|(arS-%A2!䡺&{;h,Gע c_d]˱Jh
Fu{>@d_#FŇ0?5ص"Vf32 ѲU~[86% "pmQ@ݼLDNbJ\q+R2ClWxxB!.")٫DL!!k}/91_rc!|M)A4i]JV91n><UFC,ET2^{~%7LCPhVTRɬ୯w|Lr$lbdJ9;:%{nRaE/n|_>bϘ|W!|<Ks1-
~z|,4Fƪ.>Ѥ1
ɇ^.KE׉`IwX[`7(l{8#)һ
 ;U ]gZ0lמϘ|/1|_>au~ܞϘb7GQA
	ՖZkm/uVmsa
 @JS7U+izkfq9РAЉnU9jT39u\|1F]q7Ϙ|/1|_>bϘ|/0_O 'KbNS AD@>WV`	fFȩMJ.Z6穷]Y7/-F#^7MMQYxhϘ|/1|_>bϘ|/0iM `=  Z Tןi>^}My5kϴןi>^}My5kϴןi>^}@' jz|ã8gMfKD)"=)(8(b
@݇a7xE x[
 fa]vB)PFdIr%zK>!Np[aϘ|/1|_>bϘ|/0W0:"p
zn%YE*UMhˍ,'Σ#j(N˃ }==<Eq+\xW"ǈ<Eq+\xW"ǈT=pOЅ  zaIXuk%ͱZљ EbԤ",3+7JVkQaǵ(ye1]wD a
酐>P?.EUm@K_>bϘ|/1|_>a~.at:CWuzÓj[M0b.1ԧ3m)XR_EE	|.R=Ȯ<Eq+\xW"ǈ<Eq+\xW"ǈ<A ^/0Bi:)eefdr<>Ŗ}Dpiw.*,biJPPa/xXsdשNDgԃS&r8ựF_>bϘ|/1|_>bϘ10	X"!@t8888$B§=._?{8^fo/? aPتB4E-ۧx%iLFfiWH=Wuܫ_oBB2%`
q_>|_>bϘ|/1|>t W'Xj aP`APzu>~J*aYKUwaRPuWK
CHȎ`vr EplYD"̀c~.Wa_Y]}ev5k+Wa_Y3uס4y_o% 	ix;Q'nX5 qPN{l|pK٫:"pC*2֥Ǥa.ƮY\iEۼ|Q@FotYykD ESr*
"(Qj0e'LZz M[4llϘ|/0DP}b7v p3vr=I;o)	>SzW˛E[s)k.)/"#l;\u]0E/          ]	u5_>b [XMU{`A-ƑBՃS**6* }DBBW)] VbS-"[	Lלf+ӓ}M;v
3LsCpHp|Ėp`iIk^(I@)v
sR dX{F +BodjVXwWy_>bϘ|^\tM*%A[DA^3UPERFE>*,B.Pt_Iq+a^TPÇi\xW"ǈ<Eq+\xW"ǈ*TdR_'Bk*:,T.5VewD]*V YU/Zn4iѰ^-,Hj@͍AZ҆VϘ|/1|_>bϘ|WCU5 vXmn-TےrʢES:0Y Pj	 mDU\ߪ<SjFe1A7dah LB74l 3T QJ0cb3+8,SPB0wCpf 85.tJW!,f:OЅ  u Xј8AdH܇<wx@SQPʛKh\T5b(ʹ	Rӂ vVkB:x(	s(Qq;H\t[b&_QitϘ|/1|_>bϘ}_˘z,G'pQzi`-r8SelLF7AeeL޸gpʭO4e|T#挤P.fP
\KW]Ӻ0/=`jt(I!P ЗsK?XZ/ewLN[;e>/bW"9a( ?BϘp]leG2pT%نmUĴ]۰AQPU,bcRSB^@@R6# `
Eq#ki~h٘1jHg詉P[זQ>jӺ|>aP;gLquPuﰆE%_>bϘ|WC``MMY Qm!6}R;tF~%LldFW"ǈ<Eq+\xW"ǈ<Eq+7j*Tsv*_'Bxre<XvK\m,iQ
.cb ;nՒɰ@oxjgfF01]
YRėKcH	tY2A X=Q]+LX+]d1-,{L	nCw))3dZhn\l`ͭ*DVǉb8 UϘ|^\t4"iA{.Uga1(^a1[W&
2[Šb-W"ǈ<Eq+\xW"ǈ<Eq+\xsh:uWIz|Yfm\[eA(S+oLm樶Ô#Mk6o.+F"0	qYD wwmXv12Ux+iLZ8rTTTBpxIeS)٠:n]3i ek%qYzK BġH  _>bysCO#@=L#0:q(83,櫏ۗǈ<Eq+\xW"ǈ<Eq+\xW"[?137{ ?JdC	6|`GX~ h  ; FxCwh\!pbM2vp,j6PQ a0wjɑݴ*O"IP V[`d:;1 h*D3)%a(/nX)^U{w(a*~OI?'ῤVp]8wbncu$˗mƆQ:n?7o?o?o?o?G%,JzdB)`7%l; oYQy`"  	 *kmE_Z0{uANmW./+yx&L8.PcS
(+Jzh.J7ЖTw$E_!5)v'HU-e)
ejD@&M3d-AiHy ^$[aUYs ] SYƳHU_!P xdވ=?B;OCd? O-^JV B-G׭dIT2Yj*^HuekC
seP+ gu	[8`!`Eohb!'t9aTDxn̢ه~{A`
[b+2U1B[l-uj]`_pb%JvRcRwz*R$hYҦ쎷)'=:ˈ5z5CN(z5n{̻t2oؐTiBս0{MꗶhBh<{.̘e(4q%q@`u5@uV&+3Y=',@R"׺8	̯qKno*~i,Qq(Ά6FN-Oq4)ʇ jxiL9 v,F/`.9[oߊ|!lͽ\E(<tޥ8#"S Dx!BH$#Hr,֖XP&nqaXmA7kػ7Aݹڶa%T&WCtIy}]k6+{o>YD썧d#j",PPاG䭐nx@\kv~nfX
7K\kaz>tM] 2 _q[h0XP;\3#ZIwt{$NAԼ░G&3,S8'Q3bdHEC>+0 6	0FbbK		oUʘ</9!lw@A]f v(ul`pIg(Jz.X-6{_ Qƾ (z5 ̰5)֣?<O.gwu*[yz-m._>n5n3|ݎLLH
1L= v%qeN9cND#7OOl<k%+{\DHKhwWe1Βc2X(-&9LL;^ qM蝆"'^{a)xޮ+)Ն*-^^tTCqԂ߆`c#9`ph\@)0
ΛYgp|T0@ŵaJJv
ӗ	+b9zae@Yr-I	(lZhlca6uxrMAbn+'NKGx)n#lBŃrGȪlJk)= SX?{7GY\kZKE[!qh1wc)M״F.+h0,d[J9hwHQa،-u ۦRkvY5dSBuZsk]Umb&>-w+|EX4w#
e´*rp==Q%n_KMK_-_J :l4Z fP"eb }NW\Q`KzSY+o4`̗	0`튡TJ_8q'm%Woħ_N~%:Juƾ%HVRll,`WQeF}:Wƾ#?ȂvVf^ӅNOW8ltB:f>~~ ?씊E"HR)E"HR)E"HRjux~Pnd8<Q&Md	4j$IQ&Md5k$IY'k$H$_#A9JiJ;{Au}@ZQ~c]C~xtXcmx%+gxRw0D~()tX}SD߼lQ[^f^'!*9>fJ+ֽ+֥zTJ*TRM[._r ǿޗ.\~{ ozԩ^*T*F)E"HR)E"HR)E"H{ҥJ__Mv>޷r\~'8Np?~'8Np?~'8Np?޷.\K/ z:`df_{uYκEUvB5ͳc %ѾgI ?)?)?)?)?)?)?9?9?9?9?9?9?9?9?9?9?9?9?9?9?)l޵RJ++ܿK._l}7*T^*Tm~JJ^^+To~z*l}7._r˗.\K/Mr/ 'c0ߠ+"R)E"HR)E"HR)@K/Qь#"]z(3Qk;I1VU7pCЧi^5ԯhTĩQBD+ShjA'{ jR 9`KҧZYuڊwr;)љ[EeK}Gn#`߮Ǣ.~%{J"S1VXC60&6:OД	`1[Pl9XM3b}}8VzOGѸf%~SPM>ϥd>SZZ<n${GCp!c,/h#E -J^%*@,*f~n?UC\qoGh3omOMžmҬS:*[&}c("(-Km(rD\@J}G8U3*6(YR֧=Hڕ/>DCl(qP=ѕҏSַ󸗎~n~ ?Rw-[ynw-[ynw-[x[_$rI9$ӚrNY9'$圳ri9g79g,XS))O_0Ca~"+kߴ+XUU?ǏxmaXn+wvPoёhQVݧkkԯlcW161Ⱦw-[ynw-[ynw-[ zmo=6s^'19Nbs'19Nbs'19D)^_uf&2VuNUy Nk<$'8ω|N3q'>'	8O|Np'>'	8O|NqEzmo=6E o=67_MTR7_DoE/_i~K/_i~K/_h,Je1\Gxpk|y{Ir˖rї.^^^^(Kg{S>s:+11Rį/ReU{kS<Y*0/Zwgd0zT^}h(3D2Bunw=	Ε6^S51tXY6G-$;^gt-~m 苵
91/&T\Ĕ/QO7raЮ*}?~om}-Џ6m~EAuMK:ħZ(G0-PLmaSWPb]J궾\X	XSoTL}NzUH17rElQn;U 5RФ\                                                                                                                                                                                                                                                                       znek/MulleNewz/README.rtfd/TXT.rtf                                                                  0100644 0000356 0000000 00000002602 07332036633 015665  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {\rtf1\mac\ansicpg10000\cocoartf100
{\fonttbl\f0\fswiss\fcharset77 Arial-BoldMT;\f1\fswiss\fcharset77 ArialMT;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10180\viewh10380\viewkind0
\pard\tx0\tx1120\tx2240\tx3360\tx4480\tx5600\tx6720\tx7840\tx8960\tx10080\tx11200\tx12320\tx13440\tx14560\tx15680\tx16800\tx17920\tx19040\tx20160\tx21280\tx22400\tx23520\tx24640\tx25760\tx26880\tx28000\tx29120\tx30240\tx31360\tx32480\tx33600\tx34720\ql\qnatural

\f0\b\fs28 \cf0 MulleNewz.dock
\f1\b0 \
\
MulleNewz is a dockling which allows you to stay in touch with the world via the OSX dock! It is an easy to configure RSS reader which means that it can access a lot of popular sites that offer RSS content - at once! Just click on the headline you're interested in and MulleNewz will open your preferred browser and direct it to the URL containing the whole story. Easy!\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\cf0 {{\NeXTGraphic mosx-screenshot.jpg \width7880 \height4340
}}
\f1\fs28 \
\
For latest news and detailed instructions check the homepage at:\
\

\f0\b http://www.mulle-kybernetik.com/software/MulleNewz/\
\

\f1\b0 \
This software was written by Marcus M\'9fller <znek@mulle-kybernetik.com>\
For copyright details see GNU General Public License, version 2 or above.\
(c) 2001 by Mulle kybernetiK. All rights reserved. Rul!}
                                                                                                                              znek/MulleNewz/README.rtfd/CVS/                                                                     0040755 0000356 0000000 00000000000 07332037011 015116  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/README.rtfd/CVS/Root                                                                 0100644 0000356 0000000 00000000061 07332037011 015756  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek@cvs.mulle-kybernetik.com:/usr/local/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               znek/MulleNewz/README.rtfd/CVS/Repository                                                           0100644 0000356 0000000 00000000056 07332037011 017216  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /usr/local/cvsroot/znek/MulleNewz/README.rtfd
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  znek/MulleNewz/README.rtfd/CVS/Entries                                                              0100644 0000356 0000000 00000000000 07332037011 016435  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/README.rtfd/.typeAttributes.dict                                                     0100644 0000356 0000000 00000000000 07332036633 020432  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/libdockling_glue.a.orig                                                              0100644 0000356 0000000 00000571204 07627427151 017213  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  !<arch>
#1/16           993242784   501   20    100644  252       `
__.SYMDEF SORTED   H      @       %    5    L    ]    k    ~        .objc_class_name_Dockling _BuildMenu _DisplayWarning _DocklingDoMenuCommand _DocklingGetMenu _DocklingInit _DocklingTerminate _DocklingToggle _ReloadMenu   Dockling.o      992807746   501   99    100644  69984     `
               x                               |    |             __text          __TEXT                          '          __data          __DATA                  	p                        __cat_cls_meth  __OBJC                  	p                        __cat_inst_meth __OBJC                  	p                        __string_object __OBJC                  	p                        __cstring_object__OBJC                  	p                        __message_refs  __OBJC                 	p     H              __sel_fixup     __OBJC                  	|                        __cls_refs      __OBJC                  	|                      __class         __OBJC               0  	|     `               __meta_class    __OBJC               0  	                    __cls_meth      __OBJC            H      	                        __inst_meth     __OBJC            H   h  	                    __protocol      __OBJC                  
D                        __cstring       __TEXT              &  
D                      __category      __OBJC                  j                        __class_vars    __OBJC                  j                        __instance_vars __OBJC               4  l     `               __module_info   __OBJC                                     __symbols       __OBJC                                     __picsymbol_stub__TEXT            ,   H                  $__la_symbol_ptr __DATA            t                               8  |  E  X      P      w  w     x                             (                   | !|>x}cx~ h l p t h 8=?  9)}+Kx  <=?  9)}+Kx8~ 8  H  p=?  9)}+Kxx  H |`x> h	  t=?  9)}+Kxx  H |`x> h	 > h8  	  h|xH  !   |N  | !|>x}cx~ h l> h =?  9)}+Kxx  H > h =?  9)}+Kxx  H !   |N  !|>x~ H L> H	 |xH  !  N  | !|>x}cx~ h l p> h	 > p| H A L> h =?  9)h}+Kxx  H ] p=?  9)d}+Kxx  H A|`x> h	 !   |N  !|>x~ H L> Hi }`t|xH  !  N  !|>x~ H L|+x|	x> P> H P	 !  N  !|>x~ H L> H	 |xH  !  N  !|>x~ H L> H	 |xH  !  N    X  `  h                    H                                0                                           |      D        ,    |      L  8       @      Dockling    NSObject    Dockling.m  docklingBundle  docklingWindow  menu    isMenuChanged   window  bundle  setMenuChanged: setMenu:    dealloc initWithBundle:window:  init    retain  release @"NSBundle" @"NSWindow" @"NSMenu"   c   @4@4:8  v5@4:8c12   c4@4:8  v8@4:8@12   v4@4:8  @12@4:8@12@16          p       |                                        |B }h=k  | @}9k @N |B }h=k  |  }9k  N             ë        |    d  |    ë        |    h  |  4  ë $        ج            ë         ج             ë                       t  ë  d           `          X  ë  H  ܡ         D  ܡ       4           0            @     @      @     @     @     @     @      @     @     @      @   d  @   `  @   \  @   X  @   T  @   P  @   L  @   H  @   D  @   @  @   <  @   8  @   4  @   0  @   ,  @   (  @   $  @      @     @     @     @     @     @     @   ,  @   (  @      @     @     @     @     @     @     @     @     
@  @  x     X  8  x     X  0  x     X    t     4    t     4    t  @  4    {P     {P  y  z  y  z   od         d                                      2         j                           ?         e                           ڀ                           /         h                           ؀                  <         k                  ̀                  ,         [                           ۀ                           5         z           "                 &        (      !  *      4         y                                        8                  	         	q         	r         	֢         	ׂ         
A         
B         
C         
                                    u         v         w         x                           >  
      _         `                           :         X         ~                                    )         k         l                                                     )         N         z         {         |         À                                    O                           ʀ                  B         y                  ɂ         
  
      (         L         M                                    ܢ         ݂                  d         e                                                               _                                                      9         ]         ^                                            5         o                         բ         ւ                            a         b                                             <         =         ~                  ͢         ΂                           \                  Ā                  )         Y                                                      :         ;                           Ϣ         Ђ                           U         x                                             -         Q         R                           ۢ         ܂         $         i                                    ^                                      V          W          X                             !*         !b         !         "         "i         "͂         #7         #8         #9         #         #         $         $         $j         $k         $΢         $ς         %6         %7         %         &	         &
         &         &o         &p         &ע         &؂         '>         '?         '         '         (         (         (         (         (         (         )c         )d         )΢         )ς         *5         *6         *         *         +
         +         +j         +k         +̢         +͂         ,?         ,@         ,         ,         -         -         -w         -x         -ڢ         -ۂ         .K         .L         .         .         /         /         /         /         /         /         0K         0L         0         0         1         1         1         1         1         1         2X         2Y         2         2         3+         3,         3         3         4         4         4j         4k         4Ѣ         4Ң         4ӂ         5A         5B         5         6         6         6         6         6         6         7k         7l         7         7         8H        8`        8        8π         9        90         91         9         9         :         :         :g         :h         :΢         :ς         ;:         ;;         ;         ;         <         <         <m         <n         <o         <֢         <ׂ         =8         =9         =         =         >         >         >j         >k         >̢         >͂         ?1         ?2         ?         ?         @          @p         @q         @         @         @         @         AZ         A[         A\         A         AŢ         AƂ         B         B         Bh         Bi         B         B         C	         C
         C[         C\         C         C         D         D	         DY         DZ         D         D         D         E          E]         E         Eׂ         F         F`         Fa         F         F         Fـ         F        G         Gl         G         GЀ         G         HE         H         HՀ         I         IX         I         Iŀ  Q      Iހ  W      J         JK         J         J         J׀         K         KL         K         Kɀ         L         LH         L}         L~         LĢ         Lŀ         M         MD         M_  !      M         MÀ         M         N*         N\         N         NҀ         O         O          O!         O[         Oo        O         Oǀ         P          P*         Pg         P         PÀ         P         QB         Qw         Q         Q݀         R"         RV         R         RЀ         S         SJ         S         S         S        S         T;         Tm         Tn         T         T         U(         UF         UG         U         U         UȀ         U         V'         VF        Vg         V         V؀         V         W2         Wd         W         Wˀ         X         XA         Xv         X         X         Y         Y8         Yx         Y         Y         Z	         ZO         Z         Z         Z         [!         [^         [         [٢         [ڂ         \         \^         \         \Ȁ         \         ]          ]P         ]         ]Ā         ^	         ^C         ^j  ]      ^         ^         ^         _1  m      _L         _         _         `         `A         `x         `         `         aV         aW         a         a΀         b         b5         bn         b         b         c&         c'         ch         ci         c         c         d         dW         d         d         d؀         e         eH         e         e         eƂ         f         fC  7      f         f         f         g%         gj         g         gۀ         h         hG         h         h         h         i*         iu         i         i         j3         jy         j         j         kF         k{         k         l         lK         l         lɀ         m         mO         m         mˀ         n         nX         n         nˀ         o         oV         o         oπ         p         pM         p         p         q         qw         qx         qy         q         q         r'         rX         r         rƀ         s         s_         s         s݀         t&         t         t         u   K      u         u_         u         uƀ         u         v1         vn         v         v         w         wT         w         wƀ         w         x2         xe         x         x         x         yN         yO         y         y         z	         z?         z         zۀ         {         {O         {         {         {         {         |1         |]         |s         |         |         }         }3         }4         }r         }         }ـ         ~         ~T         ~         ~         ~ڀ                  H         I         J                           ր                   V                           ڢ         ۂ                           a         b                                             )         l                  Ā                  B                  Ԁ         )         l                           ݀                  +         x                                    ,         -         l         m                                    Y                                    
  !      '         d                  ր                  n                  ݀                  X                  Ҁ         
         .         J         K                           Ԣ         Ղ                  W                                     :         t                           3         M         N                           Ԣ         Ղ                           [         \                                    (         l                                    3         w                           $         a                           (         c                                    Ӏ                  O                                    ,         a                  â         Ă                  K         p         q                                             <         =                           À                  >         s                  ހ                  P                  ͢         ΂                           ^                  À                  @         x                           )         *         l         m                                             @         A                           Ȣ         ɂ                  h                           3         r                           Q                  ր         %         g         y                  T                  	         M                           o                           f                           X                           D                  (                           A         B                  π                  ?         |                           	         
         R                                    $         a                                             +         l                  ۀ                  N         O                           ֢         ׂ                           \         ]                                    ^                  ƀ                           U                                    '         d                           5         y         À                  M                  ̀                           3         w                                    3         }                           .         e                  ݀         /         l                  ߀                  N         O                  ր                  )         *         m                 π                   S                                                      R         S                           ݢ         ނ                           c         d         e         f                                            :         u                           =                  π                   D         D    (    D    \    D        D        D        D        D      $       ;     h  O     l  [     p  i     t  y     8       (         $                 D        D        D       D   8    D   8  $           h  ̠     l  ؀     8             8  $      t      L    D   L    D    `    D !  p    D !  p  $   L       H  &     L  2        E    `  F    p  G$      0  H    |    D $  |    D %      D '      D (      D *      D *    ]$ $  |  z  $   h    $   l    $   p    %   8              $                D -      D .  $    D /  8    D /  8  $ -      -   H    -   L    .     "    $  #    8  $$      4  %    D    D 2  D    D 3  d    D 4  p    D 4  p  A$ 2  D  e  2   H  r  2   L  ~  2   P    3     ¢    d  £    p  ¤$      8  ¥    |    D 7  |    D 8      D 9      D 9    ¸$ 7  |  Ҡ  7   H  ߠ  7   L    8                  $      0          D <      D =      D >      D >    $ <    0  <   H  =  <   L  I  =     \      ]      ^$      0  _         í                           P         Ă         ĩ                  &      M& L    z         ž         &    H  & L  H  _   L      ƀ   L      Ɲ& L    & L    & L             D         t& L    ǡ& L    & L    & L    -& L    ^& L    Ȏ& L    ȿ& L    & L    & L    P& L  ,  ɀ& L  8  ɰ& L  @  & L  X  & L  `  C& L  h  t& L  p  ʥ& L  |  & L    & L    6& L    f& L    ˖& L    & L    & L    && L    Wd                          N         \         5        .objc_class_name_NSObject .objc_class_name_Dockling dyld_stub_binding_helper _objc_msgSend _objc_msgSendSuper /Volumes/Ratbert/Users/bwebster/Projects/DocklingTemplate/ Dockling.m int:t(0,1)=r(0,1);0020000000000;0017777777777; char:t(0,2)=r(0,2);0;127; long int:t(0,3)=r(0,1);0020000000000;0017777777777; unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777; long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777; long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777; long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777; short int:t(0,8)=r(0,8);-32768;32767; short unsigned int:t(0,9)=r(0,9);0;65535; signed char:t(0,10)=r(0,10);-128;127; unsigned char:t(0,11)=r(0,11);0;255; float:t(0,12)=r(0,1);4;0; double:t(0,13)=r(0,1);8;0; long double:t(0,14)=r(0,1);8;0; complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;; complex float:t(0,16)=r(0,16);4;0; complex double:t(0,17)=r(0,17);8;0; complex long double:t(0,18)=r(0,18);8;0; __vector unsigned char:t(0,19)=ar(0,1);0;15;(0,11) __vector signed char:t(0,20)=ar(0,1);0;15;(0,10) __vector bool char:t(0,21)=ar(0,1);0;15;(0,11) __vector unsigned short:t(0,22)=ar(0,1);0;7;(0,9) __vector signed short:t(0,23)=ar(0,1);0;7;(0,8) __vector bool short:t(0,24)=ar(0,1);0;7;(0,9) __vector unsigned long:t(0,25)=ar(0,1);0;3;(0,5) __vector signed long:t(0,26)=ar(0,1);0;3;(0,3) __vector bool long:t(0,27)=ar(0,1);0;3;(0,5) __vector float:t(0,28)=ar(0,1);0;3;(0,12) __vector pixel:t(0,29)=ar(0,1);0;7;(0,9) void:t(0,30)=(0,30) Dockling.h /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h /usr/include/objc/objc.h Class:t(4,1)=(4,2)=*(4,3)=xsobjc_class: objc_object:T(4,4)=s4isa:(4,1),0,32;; id:t(4,5)=(4,6)=*(4,4) SEL:t(4,7)=(4,8)=*(4,9)=xsobjc_selector: BOOL:t(4,10)=(0,2) /System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h /System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h FourCharCode:t(6,1)=(0,5) ResType:t(6,2)=(6,1)  CFTypeRef:t(5,1)=(5,2)=*(0,30) /System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/Files.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MixedMode.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacMemory.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Patches.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DateTimeUtils.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextCommon.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacErrors.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Finder.h    /System/Library/Frameworks/Foundation.framework/Headers/NSCoder.h /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h /System/Library/Frameworks/Foundation.framework/Headers/NSZone.h NSZone:t(17,1)=(17,2)=xs_NSZone:  _objc_protocol:T(16,1)=s20isa:(16,2)=*(16,3)=xs_objc_class:,0,32;\ protocol_name:(16,4)=*(0,2),32,32;protocol_list:(16,5)=*(16,6)=*(16,1),64,32;\ instance_methods:(16,7)=*(16,8)=xs_objc__method_prototype_list:,96,32;\ class_methods:(16,7),128,32;; NSObject:T(16,9)=s4isa:/1(4,1),0,32;;  NSCoder:T(15,1)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSString.h /System/Library/Frameworks/Foundation.framework/Headers/NSRange.h /System/Library/Frameworks/Foundation.framework/Headers/NSValue.h  _NSRange:T(19,1)=s8location:(0,4),0,32;length:(0,4),32,32;; NSRange:t(19,2)=(19,1)  NSString:T(18,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSArray.h NSArray:T(21,1)=s4isa:/1(4,1),0,32;; NSMutableArray:T(21,2)=s4isa:/1(4,1),0,32;;   /System/Library/Frameworks/Foundation.framework/Headers/NSDictionary.h NSDictionary:T(22,1)=s4isa:/1(4,1),0,32;; NSMutableDictionary:T(22,2)=s4isa:/1(4,1),0,32;;  NSAttributedString:T(4,11)=s4isa:/1(4,1),0,32;; NSMutableAttributedString:T(4,12)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h NSBundle:T(23,1)=s36isa:/1(4,1),0,32;_flags:/0(0,4),32,32;\ _cfBundle:/0(4,5),64,32;_reserved5:/0(23,2)=*(0,30),96,32;\ _principalClass:/0(4,1),128,32;_tmp1:/0(23,2),160,32;\ _tmp2:/0(23,2),192,32;_reserved1:/0(23,2),224,32;\ _reserved0:/0(23,2),256,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSDate.h NSTimeInterval:t(24,1)=(0,13) NSDate:T(24,2)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSException.h   /System/Library/Frameworks/Foundation.framework/Headers/NSConnection.h  /System/Library/Frameworks/Foundation.framework/Headers/NSData.h /System/Library/Frameworks/Foundation.framework/Headers/NSFormatter.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScanner.h  /System/Library/Frameworks/Foundation.framework/Headers/NSProxy.h NSProxy:T(30,1)=s4isa:/1(4,1),0,32;;   /System/Library/Frameworks/Foundation.framework/Headers/NSDistributedLock.h /System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h   /System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h  /System/Library/Frameworks/Foundation.framework/Headers/NSFileHandle.h NSPipe:T(34,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSFileManager.h  /System/Library/Frameworks/Foundation.framework/Headers/NSGeometry.h _NSPoint:T(36,1)=s8x:(0,12),0,32;y:(0,12),32,32;; NSPoint:t(36,2)=(36,1) _NSSize:T(36,3)=s8width:(0,12),0,32;height:(0,12),32,32;; NSSize:t(36,4)=(36,3) _NSRect:T(36,5)=s16origin:(36,2),0,64;size:(36,4),64,64;; NSRect:t(36,6)=(36,5)  /System/Library/Frameworks/Foundation.framework/Headers/NSHFSFileTypes.h  /System/Library/Frameworks/Foundation.framework/Headers/NSHost.h  /System/Library/Frameworks/Foundation.framework/Headers/NSInvocation.h  /System/Library/Frameworks/Foundation.framework/Headers/NSJavaSetup.h  /System/Library/Frameworks/Foundation.framework/Headers/NSKeyValueCoding.h  /System/Library/Frameworks/Foundation.framework/Headers/NSLock.h  /System/Library/Frameworks/Foundation.framework/Headers/NSNotificationQueue.h  /System/Library/Frameworks/Foundation.framework/Headers/NSNumberFormatter.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPort.h NSPort:T(45,1)=s4isa:/1(4,1),0,32;; NSSocketPort:T(45,2)=s44isa:/1(4,1),0,32;_receiver:/0(23,2),32,32;\ _connectors:/0(23,2),64,32;_loops:/0(23,2),96,32;\ _data:/0(23,2),128,32;_signature:/0(4,5),160,32;\ _delegate:/0(4,5),192,32;_lock:/0(4,5),224,32;\ _maxSize:/0(0,4),256,32;_maxSockets:/0(0,4),288,32;\ _reserved:/0(23,2),320,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSPortCoder.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPortMessage.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPortNameServer.h  /System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h  /System/Library/Frameworks/Foundation.framework/Headers/NSRunLoop.h  /System/Library/Frameworks/Foundation.framework/Headers/NSSet.h NSSet:T(51,1)=s4isa:/1(4,1),0,32;; NSMutableSet:T(51,2)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSSpellServer.h  /System/Library/Frameworks/Foundation.framework/Headers/NSTask.h NSTask:T(53,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSThread.h  /System/Library/Frameworks/Foundation.framework/Headers/NSTimeZone.h  /System/Library/Frameworks/Foundation.framework/Headers/NSUndoManager.h NSUndoManager:T(56,1)=s40isa:/1(4,1),0,32;_undoStack:/0(4,5),32,32;\ _redoStack:/0(4,5),64,32;_runLoopModes:/0(56,2)=*(21,1),96,32;\ _disabled:/0(0,1),128,32;_flags:/0(56,3)=s4undoing:(0,1),0,1;\ redoing:(0,1),1,1;registeredForCallback:(0,1),2,1;\ postingCheckpointNotification:(0,1),3,1;groupsByEvent:(0,1),4,1;\ reserved:(0,1),5,27;;,160,32;_target:/0(4,5),192,32;\ _NSUndoManagerReserved1:/0(23,2),224,32;_NSUndoManagerReserved2:/0(23,2),256,32;\ _NSUndoManagerReserved3:/0(23,2),288,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSURLHandle.h   /System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h NSUserDefaults:T(58,1)=s24isa:/1(4,1),0,32;_preferences:/0(23,2),32,32;\ _temp:/0(58,2)=*(22,2),64,32;_reserved:/0(58,3)=*(18,1),96,32;\ _reserved2:/0(23,2),128,32;_reserved3:/0(23,2),160,32;; /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FixMath.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/IntlResources.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Collections.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Endian.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Gestalt.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Math64.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Components.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Resources.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Multiprocessing.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Aliases.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacLocales.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Debugging.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/PLStringFuncs.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverSynchronization.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/NameRegistry.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/NumberFormatting.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/StringCompare.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextUtils.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/ToolUtils.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/UnicodeUtilities.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fp.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fenv.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextEncodingConverter.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/UnicodeConverter.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Threads.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Folders.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Timer.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MultiprocessingInfo.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/LowMem.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/AVLTree.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/PEFBinaryFormat.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/AIFF.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextEncodingPlugin.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransport.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransportProviders.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransportProtocol.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/Power.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/SCSI.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/AppleDiskPartitions.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/SecurityCore.framework/Headers/KeychainCore.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/SFNTLayoutTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ATSTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/SFNTTypes.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ScalerStreamTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ScalerTypes.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMTypes.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMICCProfile.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMDeviceIntegration.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMMComponent.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMScriptingPlugin.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEDataModel.h DescType:t(114,1)=(6,2) AEDataStorageType:t(114,2)=(114,3)=*(114,4)=xsOpaqueAEDataStorageType: AEDataStorage:t(114,5)=(114,6)=*(114,2) AEDesc:T(114,7)=s8descriptorType:(114,1),0,32;dataHandle:(114,5),32,32;; AEDesc:t(114,8)=(114,7)  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AppleEvents.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEPackObject.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEObjects.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AERegistry.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEUserTermTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEHelpers.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEMach.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QuickdrawText.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QDOffscreen.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Fonts.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Palettes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/PictUtils.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/ATSUnicode.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Video.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Displays.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/FontSync.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Headers/PMCore.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Headers/PMDefinitions.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/LangAnalysis.framework/Headers/Dictionary.h    /System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Headers/LaunchServices.h   NSAppleEventDescriptor:T(58,4)=s16isa:/1(4,1),0,32;_desc:/0(114,8),32,64;\ _hasValidDesc:/0(4,10),96,8;;  /System/Library/Frameworks/Foundation.framework/Headers/NSAppleEventManager.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptClassDescription.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptCommand.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptCommandDescription.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptKeyValueCoding.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptObjectSpecifiers.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptStandardSuiteCommands.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptSuiteRegistry.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptWhoseTests.h  /System/Library/Frameworks/AppKit.framework/Headers/NSGraphicsContext.h NSGraphicsContext:T(144,1)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSCell.h /System/Library/Frameworks/AppKit.framework/Headers/NSText.h /System/Library/Frameworks/AppKit.framework/Headers/NSView.h /System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h NSResponder:T(148,1)=s8isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h  _NSBorderType:T(147,1)=eNSNoBorder:0,NSLineBorder:1,\ NSBezelBorder:2,NSGrooveBorder:3,; NSBorderType:t(147,2)=(147,1) __VFlags:T(147,3)=s4rotatedFromBase:(0,4),0,1;rotatedOrScaledFromBase:(0,4),1,1;\ autosizing:(0,4),2,6;autoresizeSubviews:(0,4),8,1;\ wantsGState:(0,4),9,1;needsDisplay:(0,4),10,1;\ validGState:(0,4),11,1;newGState:(0,4),12,1;\ noVerticalAutosizing:(0,4),13,1;frameChangeNotesSuspended:(0,4),14,1;\ needsFrameChangeNote:(0,4),15,1;focusChangeNotesSuspended:(0,4),16,1;\ boundsChangeNotesSuspended:(0,4),17,1;needsBoundsChangeNote:(0,4),18,1;\ removingWithoutInvalidation:(0,4),19,1;interfaceStyle0:(0,4),20,1;\ needsDisplayForBounds:(0,4),21,1;specialArchiving:(0,4),22,1;\ interfaceStyle1:(0,4),23,1;retainCount:(0,4),24,6;\ retainCountOverMax:(0,4),30,1;aboutToResize:(0,4),31,1;; _VFlags:t(147,4)=(147,3) _NSViewAuxiliary:t(147,5)=(147,6)=xs__NSViewAuxiliary: __VFlags2:T(147,7)=s4nextKeyViewRefCount:(0,4),0,14;\ previousKeyViewRefCount:(0,4),14,14;clippedFocus:(0,4),28,1;\ hasToolTip:(0,4),29,1;needsRealLockFocus:(0,4),30,1;\ menuWasSet:(0,4),31,1;; NSView:T(147,8)=s80isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9)=*(147,10)=xsNSWindow:,384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11)=*(147,5),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSSpellProtocol.h  _NSTextAlignment:T(146,1)=eNSLeftTextAlignment:0,NSRightTextAlignment:1,\ NSCenterTextAlignment:2,NSJustifiedTextAlignment:3,\ NSNaturalTextAlignment:4,; NSTextAlignment:t(146,2)=(146,1) NSText:T(146,3)=s84isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _ivars:/1(23,2),640,32;;  _NSCellType:T(145,1)=eNSNullCellType:0,NSTextCellType:1,\ NSImageCellType:2,; NSCellType:t(145,2)=(145,1) __CFlags:T(145,3)=s8state:(0,4),0,1;highlighted:(0,4),1,1;\ disabled:(0,4),2,1;editable:(0,4),3,1;type:(145,2),4,2;\ vCentered:(0,4),6,1;hCentered:(0,4),7,1;\ bordered:(0,4),8,1;bezeled:(0,4),9,1;selectable:(0,4),10,1;\ scrollable:(0,4),11,1;continuous:(0,4),12,1;\ actOnMouseDown:(0,4),13,1;isLeaf:(0,4),14,1;\ mnemonicLocation:(0,4),15,8;actOnMouseDragged:(0,4),23,1;\ isLoaded:(0,4),24,1;noWrap:(0,4),25,1;dontActOnMouseUp:(0,4),26,1;\ isWhite:(0,4),27,1;useUserKeyEquivalent:(0,4),28,1;\ showsFirstResponder:(0,4),29,1;docEditing:(0,4),30,1;\ docSaved:(0,4),31,1;wasSelectable:(0,4),32,1;\ hasInvalidObject:(0,4),33,1;allowsEditingTextAttributes:(0,4),34,1;\ importsGraphics:(0,4),35,1;alignment:(146,2),36,3;\ retainCountOverMax:(0,4),39,1;retainCount:(0,4),40,7;\ refusesFirstResponder:(0,4),47,1;needsHighlightedText:(0,4),48,1;\ doesntShowMnemonicNormally:(0,4),49,1;currentlyEditing:(0,4),50,1;\ allowsMixedState:(0,4),51,1;inMixedState:(0,4),52,1;\ sendsActionOnEndEditing:(0,4),53,1;inSendAction:(0,4),54,1;\ menuWasSet:(0,4),55,1;controlTint:(0,4),56,3;\ controlSize:(0,4),59,2;RESERVED4:(0,4),61,3;; _CFlags:t(145,4)=(145,3) NSCell:T(145,5)=s20isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(145,4),64,64;_support:/0(4,5),128,32;;  NSActionCell:T(144,2)=s36isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(145,4),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h  /System/Library/Frameworks/AppKit.framework/Headers/NSBox.h _NSTitlePosition:T(152,1)=eNSNoTitle:0,NSAboveTop:1,\ NSAtTop:2,NSBelowTop:3,NSAboveBottom:4,\ NSAtBottom:5,NSBelowBottom:6,; NSTitlePosition:t(152,2)=(152,1) __bFlags:T(152,3)=s4borderType:(147,2),0,2;titlePosition:(152,2),2,3;\ transparent:(0,4),5,1;boxType:(0,4),6,2;\ _RESERVED:(0,4),8,24;; NSBox:T(152,4)=s136isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _titleCell:/1(4,5),640,32;_contentView:/1(4,5),672,32;\ _offsets:/1(36,4),704,64;_borderRect:/1(36,6),768,128;\ _titleRect:/1(36,6),896,128;_bFlags:/1(152,3),1024,32;\ _unused:/1(4,5),1056,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSControl.h __conFlags:T(153,1)=s4enabled:(0,4),0,1;ignoreMultiClick:(0,4),1,1;\ calcSize:(0,4),2,1;drawingAncestor:(0,4),3,1;\ reservedControl:(0,4),4,28;; NSControl:T(153,2)=s92isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(153,1),704,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSButtonCell.h __BCFlags:T(154,1)=s4pushIn:(0,4),0,1;changeContents:(0,4),1,1;\ changeBackground:(0,4),2,1;changeGray:(0,4),3,1;\ lightByContents:(0,4),4,1;lightByBackground:(0,4),5,1;\ lightByGray:(0,4),6,1;reserved:(0,4),7,1;\ bordered:(0,4),8,1;imageOverlaps:(0,4),9,1;\ horizontal:(0,4),10,1;bottomOrLeft:(0,4),11,1;\ imageAndText:(0,4),12,1;imageSizeDiff:(0,4),13,1;\ hasKeyEquivalentInsteadOfImage:(0,4),14,1;lastState:(0,4),15,1;\ transparent:(0,4),16,1;inset:(0,4),17,2;doesNotDimImage:(0,4),19,1;\ gradientType:(0,4),20,3;useButtonImageSource:(0,4),23,1;\ alternateMnemonicLocation:(0,4),24,8;; _BCFlags:t(154,2)=(154,1) __BCFlags2:T(154,3)=s4keyEquivalentModifierMask:(0,4),0,24;\ reserved:(0,4),24,3;mouseInside:(0,4),27,1;\ showsBorderOnlyWhileMouseInside:(0,4),28,1;bezelStyle:(0,4),29,3;; _BCFlags2:t(154,4)=(154,3) NSButtonCell:T(154,5)=s68isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(145,4),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(58,3),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(58,3),352,32;\ _bcFlags2:/1(154,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(154,2),448,32;\ _normalImage:/1(154,6)=*(154,7)=xsNSImage:,480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;;  NSButton:T(152,5)=s92isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(153,1),704,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSClipView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSFont.h __fFlags:T(156,1)=s4usedByWS:(0,4),0,1;usedByPrinter:(0,4),1,1;\ isScreenFont:(0,4),2,1;_systemFontType:(0,4),3,4;\ _flippedUsedByWS:(0,4),7,1;_flippedUsedByPrinter:(0,4),8,1;\ _hasCharWidth:(0,4),9,1;_RESERVED:(0,4),10,3;\ _matrixIsIdentity:(0,4),13,1;_matrixIsFlipped:(0,4),14,1;\ _hasStyle:(0,4),15,1;; NSFont:T(156,2)=s24isa:/1(4,1),0,32;_name:/1(58,3),32,32;\ _size:/1(0,12),64,32;_reservedFont1:/1(23,2),96,32;\ _fFlags:/1(156,1),128,32;_reservedFont2:/1(0,9),160,16;;  /System/Library/Frameworks/AppKit.framework/Headers/NSFontManager.h /System/Library/Frameworks/AppKit.framework/Headers/NSPanel.h /System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h NSWindowAuxiliaryOpaque:t(159,1)=(159,2)=xsNSWindowAuxiliary: __wFlags:T(159,3)=s8backing:(0,4),0,2;visible:(0,4),2,1;\ isMainWindow:(0,4),3,1;isKeyWindow:(0,4),4,1;\ hidesOnDeactivate:(0,4),5,1;dontFreeWhenClosed:(0,4),6,1;\ oneShot:(0,4),7,1;deferred:(0,4),8,1;cursorRectsDisabled:(0,4),9,1;\ haveFreeCursorRects:(0,4),10,1;validCursorRects:(0,4),11,1;\ docEdited:(0,4),12,1;dynamicDepthLimit:(0,4),13,1;\ worksWhenModal:(0,4),14,1;limitedBecomeKey:(0,4),15,1;\ needsFlush:(0,4),16,1;viewsNeedDisplay:(0,4),17,1;\ ignoredFirstMouse:(0,4),18,1;repostedFirstMouse:(0,4),19,1;\ windowDying:(0,4),20,1;tempHidden:(0,4),21,1;\ floatingPanel:(0,4),22,1;wantsToBeOnMainScreen:(0,4),23,1;\ optimizedDrawingOk:(0,4),24,1;optimizeDrawing:(0,4),25,1;\ titleIsRepresentedFilename:(0,4),26,1;excludedFromWindowsMenu:(0,4),27,1;\ depthLimit:(0,4),28,4;delegateReturnsValidRequestor:(0,4),32,1;\ lmouseupPending:(0,4),33,1;rmouseupPending:(0,4),34,1;\ wantsToDestroyRealWindow:(0,4),35,1;wantsToRegDragTypes:(0,4),36,1;\ sentInvalidateCursorRectsMsg:(0,4),37,1;avoidsActivation:(0,4),38,1;\ frameSavedUsingTitle:(0,4),39,1;didRegDragTypes:(0,4),40,1;\ delayedOneShot:(0,4),41,1;postedNeedsDisplayNote:(0,4),42,1;\ postedInvalidCursorRectsNote:(0,4),43,1;initialFirstResponderTempSet:(0,4),44,1;\ autodisplay:(0,4),45,1;tossedFirstEvent:(0,4),46,1;\ isImageCache:(0,4),47,1;interfaceStyle:(0,4),48,3;\ keyViewSelectionDirection:(0,4),51,2;defaultButtonCellKETemporarilyDisabled:(0,4),53,1;\ defaultButtonCellKEDisabled:(0,4),54,1;menuHasBeenSet:(0,4),55,1;\ wantsToBeModal:(0,4),56,1;showingModalFrame:(0,4),57,1;\ isTerminating:(0,4),58,1;win32MouseActivationInProgress:(0,4),59,1;\ makingFirstResponderForMouseDown:(0,4),60,1;needsZoom:(0,4),61,1;\ sentWindowNeedsDisplayMsg:(0,4),62,1;liveResizeActive:(0,4),63,1;; NSWindow:T(147,10)=s132isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_contentView:/1(4,5),192,32;\ _delegate:/1(4,5),224,32;_firstResponder:/1(159,4)=*(148,1),256,32;\ _lastLeftHit:/1(159,5)=*(147,8),288,32;_lastRightHit:/1(159,5),320,32;\ _counterpart:/1(4,5),352,32;_fieldEditor:/1(4,5),384,32;\ _winEventMask:/1(0,1),416,32;_windowNum:/1(0,1),448,32;\ _level:/1(0,1),480,32;_backgroundColor:/1(159,6)=*(159,7)=xsNSColor:,512,32;\ _borderView:/1(4,5),544,32;_postingDisabled:/1(0,11),576,8;\ _styleMask:/1(0,11),584,8;_flushDisabled:/1(0,11),592,8;\ _reservedWindow1:/1(0,11),600,8;_cursorRects:/1(23,2),608,32;\ _trectTable:/1(23,2),640,32;_miniIcon:/1(154,6),672,32;\ _lastResizeTime:/1(0,1),704,32;_dragTypes:/1(159,8)=*(51,2),736,32;\ _representedFilename:/1(58,3),768,32;_sizeLimits:/1(159,9)=*(36,4),800,32;\ _frameSaveName:/1(58,3),832,32;_regDragTypes:/1(159,10)=*(51,1),864,32;\ _wFlags:/1(159,3),896,64;_defaultButtonCell:/1(4,5),960,32;\ _initialFirstResponder:/1(159,5),992,32;_auxiliaryStorage:/1(159,11)=*(159,1),1024,32;;   /System/Library/Frameworks/AppKit.framework/Headers/NSMatrix.h __MFlags:T(160,1)=s4highlightMode:(0,4),0,1;radioMode:(0,4),1,1;\ listMode:(0,4),2,1;allowEmptySel:(0,4),3,1;\ autoscroll:(0,4),4,1;selectionByRect:(0,4),5,1;\ drawsCellBackground:(0,4),6,1;drawsBackground:(0,4),7,1;\ autosizeCells:(0,4),8,1;drawingAncestor:(0,4),9,1;\ tabKeyTraversesCells:(0,4),10,1;tabKeyTraversesCellsExplicitlySet:(0,4),11,1;\ allowsIncrementalSearching:(0,4),12,1;currentlySelectingCell:(0,4),13,1;\ onlySetKeyCell:(0,4),14,1;changingSelectionWithKeyboard:(0,4),15,1;\ dontScroll:(0,4),16,1;refusesFirstResponder:(0,4),17,1;\ useSimpleTrackingMode:(0,4),18,1;checkForSimpleTrackingMode:(0,4),19,1;\ liveResizeImageCacheingEnabled:(0,4),20,1;hasCachedSubclassIsSafeForLiveResize:(0,4),21,1;\ subclassIsSafeForLiveResize:(0,4),22,1;tmpAllowNonVisibleCellsToBecomeFirstResponder:(0,4),23,1;\ reservedMatrix:(0,4),24,8;; _MFlags:t(160,2)=(160,1) NSMatrix:T(160,3)=s176isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(153,1),704,32;\ _target:/1(4,5),736,32;_action:/1(4,7),768,32;\ _doubleAction:/1(4,7),800,32;_errorAction:/1(4,7),832,32;\ _delegate:/1(4,5),864,32;_selectedCell:/1(4,5),896,32;\ _selectedRow:/1(0,1),928,32;_selectedCol:/1(0,1),960,32;\ _numRows:/1(0,1),992,32;_numCols:/1(0,1),1024,32;\ _cellSize:/1(36,4),1056,64;_intercell:/1(36,4),1120,64;\ _font:/1(4,5),1184,32;_protoCell:/1(4,5),1216,32;\ _cellClass:/1(4,5),1248,32;_backgroundColor:/1(159,6),1280,32;\ _private:/1(23,2),1312,32;_cells:/1(160,4)=*(21,2),1344,32;\ _mFlags:/1(160,2),1376,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSUserInterfaceValidation.h  __miFlags:T(160,5)=s4disabled:(0,4),0,1;isSeparator:(0,4),1,1;\ hidden:(0,4),2,1;RESERVED:(0,4),3,29;; NSMenuItem:T(160,6)=s64isa:/1(4,1),0,32;_menu:/0(160,7)=*(160,8)=xsNSMenu:,32,32;\ _title:/0(58,3),64,32;_keyEquivalent:/0(58,3),96,32;\ _keyEquivalentModifierMask:/0(0,4),128,32;_mnemonicLocation:/0(0,4),160,32;\ _state:/0(0,1),192,32;_image:/0(154,6),224,32;_onStateImage:/0(154,6),256,32;\ _offStateImage:/0(154,6),288,32;_mixedStateImage:/0(154,6),320,32;\ _target:/0(4,5),352,32;_action:/0(4,7),384,32;\ _tag:/0(0,1),416,32;_extraData:/0(23,2),448,32;\ _miFlags:/0(160,5),480,32;;  __mFlags:T(157,1)=s4noAutoenable:(0,4),0,1;menuChangedMessagesDisabled:(0,4),1,1;\ needsMenuChangedMessage:(0,4),2,1;suppressAutoenable:(0,4),3,1;\ disabled:(0,4),4,1;ownedByPopUp:(0,4),5,1;\ RESERVED:(0,4),6,26;; NSMenu:T(160,8)=s28isa:/1(4,1),0,32;_supermenu:/0(160,7),32,32;\ _title:/0(58,3),64,32;_itemArray:/0(160,4),96,32;\ _menuImpl:/0(4,5),128,32;_mFlags:/0(157,1),160,32;\ _name:/0(58,3),192,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSColor.h NSColor:T(159,7)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSImageRep.h __repFlags:T(163,1)=s4hasAlpha:(0,4),0,1;isOpaque:(0,4),1,1;\ cacheParamsComputed:(0,4),2,1;cacheAlphaComputed:(0,4),3,1;\ reserved:(0,4),4,4;bitsPerSample:(0,4),8,8;\ gsaved:(0,4),16,16;; NSImageRep:T(163,2)=s28isa:/1(4,1),0,32;_repFlags:/1(163,1),32,32;\ _colorSpaceName:/1(58,3),64,32;_size:/1(36,4),96,64;\ _pixelsWide:/1(0,1),160,32;_pixelsHigh:/1(0,1),192,32;;   /System/Library/Frameworks/AppKit.framework/Headers/NSBrowserCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSCachedImageRep.h NSCachedImageRep:T(165,1)=s44isa:/1(4,1),0,32;_repFlags:/1(163,1),32,32;\ _colorSpaceName:/1(58,3),64,32;_size:/1(36,4),96,64;\ _pixelsWide:/1(0,1),160,32;_pixelsHigh:/1(0,1),192,32;\ _origin:/1(36,2),224,64;_window:/1(147,9),288,32;\ _cache:/1(23,2),320,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSColorList.h  /System/Library/Frameworks/AppKit.framework/Headers/NSColorPanel.h  /System/Library/Frameworks/AppKit.framework/Headers/NSColorPicking.h  /System/Library/Frameworks/AppKit.framework/Headers/NSCursor.h  /System/Library/Frameworks/AppKit.framework/Headers/NSDocument.h __docFlags:T(170,1)=s4inClose:(0,4),0,1;hasUndoManager:(0,4),1,1;\ isShowingPageLayout:(0,4),2,1;isRunningPrintOperation:(0,4),3,1;\ RESERVED:(0,4),4,28;; NSDocument:T(170,2)=s52isa:/1(4,1),0,32;_window:/0(147,9),32,32;\ _windowControllers:/0(4,5),64,32;_fileName:/0(58,3),96,32;\ _fileType:/0(58,3),128,32;_printInfo:/0(170,3)=*(170,4)=xsNSPrintInfo:,160,32;\ _changeCount:/0(0,3),192,32;savePanelAccessory:/0(159,5),224,32;\ spaButton:/0(170,5)=*(170,6)=xsNSPopUpButton:,256,32;_documentIndex:/0(0,1),288,32;\ _undoManager:/0(170,7)=*(56,1),320,32;_docFlags:/0(170,1),352,32;\ _savePanelSaveType:/0(58,3),384,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDocumentController.h __controllerFlags:T(171,1)=s4shouldCreateUI:(0,4),0,1;\ RESERVED:(0,4),1,31;; NSDocumentController:T(171,2)=s24isa:/1(4,1),0,32;_documents:/0(4,5),32,32;\ _controllerFlags:/0(171,1),64,32;_types:/0(56,2),96,32;\ _recents:/0(160,4),128,32;_recentsLimit:/0(0,1),160,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDragging.h  /System/Library/Frameworks/AppKit.framework/Headers/NSErrors.h  /System/Library/Frameworks/AppKit.framework/Headers/NSEvent.h _NSEventType:T(174,1)=eNSLeftMouseDown:1,NSLeftMouseUp:2,\ NSRightMouseDown:3,NSRightMouseUp:4,NSMouseMoved:5,\ NSLeftMouseDragged:6,NSRightMouseDragged:7,NSMouseEntered:8,\ NSMouseExited:9,NSKeyDown:10,NSKeyUp:11,\ NSFlagsChanged:12,NSAppKitDefined:13,NSSystemDefined:14,\ NSApplicationDefined:15,NSPeriodic:16,NSCursorUpdate:17,\ NSScrollWheel:22,; NSEventType:t(174,2)=(174,1) NSEvent:T(174,3)=s60isa:/1(4,1),0,32;_type:/1(174,2),32,32;\ _location:/1(36,2),64,64;_modifierFlags:/1(0,4),128,32;\ _WSTimestamp:/1(0,1),160,32;_timestamp:/1(24,1),192,64;\ _windowNumber:/1(0,1),256,32;_window:/1(147,9),288,32;\ _context:/1(174,4)=*(144,1),320,32;_data:/1(174,5)=u12mouse:(174,6)=s12eventNumber:(0,1),0,32;\ clickCount:(0,1),32,32;pressure:(0,12),64,32;;,0,96;\ key:(174,7)=s12keys:(58,3),0,32;unmodKeys:(58,3),32,32;\ keyCode:(0,9),64,16;isARepeat:(4,10),80,8;;,0,96;\ tracking:(174,8)=s12eventNumber:(0,1),0,32;trackingNumber:(0,1),32,32;\ userData:(23,2),64,32;;,0,96;scrollWheel:(174,9)=s12deltaX:(0,12),0,32;\ deltaY:(0,12),32,32;deltaZ:(0,12),64,32;;,0,96;\ misc:(174,10)=s12subtype:(0,1),0,32;data1:(0,1),32,32;\ data2:(0,1),64,32;;,0,96;;,352,96;\ _eventRef:/1(23,2),448,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSFileWrapper.h  /System/Library/Frameworks/AppKit.framework/Headers/NSHelpManager.h  /System/Library/Frameworks/AppKit.framework/Headers/NSImage.h __imageFlags:T(177,1)=s4scalable:(0,4),0,1;dataRetained:(0,4),1,1;\ uniqueWindow:(0,4),2,1;sizeWasExplicitlySet:(0,4),3,1;\ builtIn:(0,4),4,1;needsToExpand:(0,4),5,1;\ useEPSOnResolutionMismatch:(0,4),6,1;colorMatchPreferred:(0,4),7,1;\ multipleResolutionMatching:(0,4),8,1;subImage:(0,4),9,1;\ archiveByName:(0,4),10,1;unboundedCacheDepth:(0,4),11,1;\ flipped:(0,4),12,1;aliased:(0,4),13,1;reserved1:(0,4),14,18;; NSImage:T(154,7)=s28isa:/1(4,1),0,32;_name:/1(58,3),32,32;\ _size:/1(36,4),64,64;_flags:/1(177,1),128,32;_reps:/1(23,2),160,32;\ _color:/1(159,6),192,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSImageCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSNibLoading.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPrinter.h  /System/Library/Frameworks/AppKit.framework/Headers/NSSpellChecker.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPageLayout.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPasteboard.h /System/Library/Frameworks/AppKit.framework/Headers/NSMenuItemCell.h __micFlags:T(184,1)=s4needsSizing:(0,4),0,1;highlighted:(0,4),1,1;\ needsDisplay:(0,4),2,1;keyEquivGlyphWidth:(0,4),3,16;\ RESERVED:(0,4),19,13;; NSMenuItemCell:T(184,2)=s116isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(145,4),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(58,3),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(58,3),352,32;\ _bcFlags2:/1(154,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(154,2),448,32;\ _normalImage:/1(154,6),480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;\ _extraData:/0(23,2),544,32;_stateImageSize:/0(36,4),576,64;\ _imageSize:/0(36,4),640,64;_titleSize:/0(36,4),704,64;\ _keyEquivalentSize:/0(36,4),768,64;_size:/0(36,4),832,64;\ _micFlags:/0(184,1),896,32;;  __pbFlags:T(183,1)=s4needsPullsDownFromTemplate:(0,4),0,1;\ RESERVED:(0,4),1,31;; NSPopUpButton:T(170,6)=s96isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(153,1),704,32;\ _pbFlags:/0(183,1),736,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintInfo.h NSPrintInfo:T(170,4)=s12isa:/1(4,1),0,32;dictionary:/0(58,2),32,32;\ _reservedPrintInfo1:/0(23,2),64,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintOperation.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintPanel.h  /System/Library/Frameworks/AppKit.framework/Headers/NSScreen.h  /System/Library/Frameworks/AppKit.framework/Headers/NSScrollView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTextField.h NSTextField:T(190,1)=s100isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(153,1),704,32;\ _delegate:/1(4,5),736,32;_errorAction:/1(4,7),768,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextFieldCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSWindowController.h __wcFlags:T(192,1)=s4shouldCloseDocument:(0,4),0,1;\ shouldCascade:(0,4),1,1;nibIsLoaded:(0,4),2,1;\ nibNameIsPath:(0,4),3,1;RESERVED:(0,4),4,28;; NSWindowController:T(192,2)=s40isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _window:/0(147,9),64,32;_windowNibName:/0(58,3),96,32;\ _document:/0(192,3)=*(170,2),128,32;_topLevelObjects:/0(56,2),160,32;\ _owner:/0(4,5),192,32;_wcFlags:/0(192,1),224,32;\ _reserved1:/0(23,2),256,32;_reserved2:/0(23,2),288,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h  /System/Library/Frameworks/AppKit.framework/Headers/NSComboBoxCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTableColumn.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTableHeaderView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTableView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSOutlineView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSLayoutManager.h __lmFlags:T(199,1)=s4containersAreFull:(0,4),0,1;glyphsMightDrawOutsideLines:(0,4),1,1;\ backgroundLayoutEnabled:(0,4),2,1;resizingInProgress:(0,4),3,1;\ allowScreenFonts:(0,4),4,1;cachedRectArrayInUse:(0,4),5,1;\ displayInvalidationInProgress:(0,4),6,1;insertionPointNeedsUpdate:(0,4),7,1;\ layoutManagerInDirtyList:(0,4),8,1;usingGlyphCache:(0,4),9,1;\ showInvisibleCharacters:(0,4),10,1;showControlCharacters:(0,4),11,1;\ delegateRespondsToDidInvalidate:(0,4),12,1;delegateRespondsToDidComplete:(0,4),13,1;\ glyphFormat:(0,4),14,2;textStorageRespondsToIsEditing:(0,4),16,1;\ notifyEditedInProgress:(0,4),17,1;containersChanged:(0,4),18,1;\ isGeneratingGlyphs:(0,4),19,1;hasNonGeneratedGlyphData:(0,4),20,1;\ loggedBGLayoutException:(0,4),21,1;isLayoutRequestedFromSubthread:(0,4),22,1;\ defaultAttachmentScaling:(0,4),23,2;isInUILayoutMode:(0,4),25,1;\ _pad:(0,4),26,6;; NSLayoutManager:T(199,2)=s216isa:/1(4,1),0,32;_textStorage:/0(199,3)=*(199,4)=xsNSTextStorage:,32,32;\ _glyphGenerator:/0(199,5)=*(199,6)=xsNSGlyphGenerator:,64,32;_typesetter:/0(199,7)=*(199,8)=xsNSTypesetter:,96,32;\ _textContainers:/0(160,4),128,32;_containerUsedRects:/0(199,9)=*(199,10)=xsNSStorage:,160,32;\ _glyphs:/0(199,9),192,32;_containerRuns:/0(199,11)=*(199,12)=xsNSRunStorage:,224,32;\ _fragmentRuns:/0(199,11),256,32;_glyphLocations:/0(199,11),288,32;\ _glyphRotationRuns:/0(199,11),320,32;_extraLineFragmentRect:/0(36,6),352,128;\ _extraLineFragmentUsedRect:/0(36,6),480,128;_extraLineFragmentContainer:/0(199,13)=*(199,14)=xsNSTextContainer:,608,32;\ _glyphHoles:/0(199,15)=*(199,16)=xsNSSortedArray:,640,32;_layoutHoles:/0(199,15),672,32;\ _lmFlags:/0(199,1),704,32;_delegate:/0(4,5),736,32;\ _textViewResizeDisableStack:/0(0,9),768,16;_displayInvalidationDisableStack:/0(0,9),784,16;\ _deferredDisplayCharRange:/0(19,2),800,64;_firstTextView:/0(199,17)=*(199,18)=xsNSTextView:,864,32;\ _cachedRectArray:/0(199,19)=*(36,6),896,32;_cachedRectArrayCapacity:/0(0,4),928,32;\ _glyphBuffer:/0(16,4),960,32;_glyphBufferSize:/0(0,4),992,32;\ _cachedLocationNominalGlyphRange:/0(19,2),1024,64;_cachedLocationGlyphIndex:/0(0,4),1088,32;\ _cachedLocation:/0(36,2),1120,64;_cachedFontCharRange:/0(19,2),1184,64;\ _cachedFont:/0(199,20)=*(156,2),1248,32;_firstUnlaidGlyphIndex:/0(0,4),1280,32;\ _firstUnlaidCharIndex:/0(0,4),1312,32;_rulerAccView:/0(199,21)=*(152,4),1344,32;\ _rulerAccViewAlignmentButtons:/0(199,22)=*(160,3),1376,32;_rulerAccViewLeadingField:/0(199,23)=*(190,1),1408,32;\ _rulerAccViewLeftTabWell:/0(199,24)=*(199,25)=xsNSTabWell:,1440,32;_rulerAccViewRightTabWell:/0(199,24),1472,32;\ _rulerAccViewCenterTabWell:/0(199,24),1504,32;_rulerAccViewDecimalTabWell:/0(199,24),1536,32;\ _rulerAccViewIncrementLineHeightButtons:/0(199,22),1568,32;_rulerAccViewFixedLineHeightButtons:/0(199,22),1600,32;\ _newlyFilledGlyphRange:/0(19,2),1632,64;_extraData:/0(23,2),1696,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextStorage.h NSTextStorage:T(199,4)=s28isa:/1(4,1),0,32;_editedRange:/1(19,2),32,64;\ _editedDelta:/1(0,1),96,32;_flags:/1(200,1)=s4editedMask:(0,4),0,8;\ :(0,4),8,8;disabled:(0,4),16,16;;,128,32;\ _layoutManagers:/1(160,4),160,32;_sideData:/1(23,2),192,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSInputManager.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h  NSTextView:T(199,18)=s84isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _ivars:/1(23,2),640,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextContainer.h __tcFlags:T(203,1)=s2widthTracksTextView:(0,9),0,1;\ heightTracksTextView:(0,9),1,1;observingFrameChanges:(0,9),2,1;\ _reserved:(0,9),3,13;; NSTextContainer:T(199,14)=s28isa:/1(4,1),0,32;_layoutManager:/0(203,2)=*(199,2),32,32;\ _textView:/0(199,17),64,32;_size:/0(36,4),96,64;\ _lineFragmentPadding:/0(0,12),160,32;_tcFlags:/0(203,1),192,16;;  /System/Library/Frameworks/AppKit.framework/Headers/NSRulerMarker.h  /System/Library/Frameworks/AppKit.framework/Headers/NSRulerView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTabView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTabViewItem.h  /System/Library/Frameworks/AppKit.framework/Headers/NSMenuView.h __mvFlags:T(208,1)=s4needsSizing:(0,4),0,1;releasingWindow:(0,4),1,1;\ isHorizontal:(0,4),2,1;disableSizing:(0,4),3,1;\ attachedSubmenuWhileMouseWasUp:(0,4),4,1;needsToCreateCells:(0,4),5,1;\ allowsTearOffs:(0,4),6,1;isTearOff:(0,4),7,1;\ keyEquivGlyphWidth:(0,4),8,16;disableResize:(0,4),24,1;\ savedHODState:(0,4),25,1;drawCenter:(0,4),26,1;\ RESERVED:(0,4),27,5;; NSMenuView:T(208,2)=s156isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(36,6),64,128;_bounds:/1(36,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(147,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(147,11),544,32;\ _vFlags:/1(147,4),576,32;_vFlags2:/1(147,7),608,32;\ _menu:/0(160,7),640,32;_cells:/0(160,4),672,32;_stateImageWidth:/0(0,12),704,32;\ _imageAndTitleWidth:/0(0,12),736,32;_keyEquivalentWidth:/0(0,12),768,32;\ _extents:/0(208,3)=*(0,12),800,32;_extentsCapacity:/0(0,4),832,32;\ _highlightedItemIndex:/0(0,1),864,32;_submenuPopupTimer:/0(23,2),896,32;\ _attachedMenuView:/0(208,4)=*(208,2),928,32;_scrollArrowHeight:/0(0,12),960,32;\ _maxWinHeight:/0(0,12),992,32;_font:/0(199,20),1024,32;\ _minSize:/0(36,4),1056,64;_horizontalEdgePad:/0(0,12),1120,32;\ trackingState:/0(23,2),1152,32;_scrollingView:/0(4,5),1184,32;\ _mvFlags:/0(208,1),1216,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPopUpButtonCell.h __pbcFlags:T(209,1)=s4pullsDown:(0,4),0,1;preferredEdge:(0,4),1,3;\ menuIsAttached:(0,4),4,1;usesItemFromMenu:(0,4),5,1;\ altersStateOfSelectedItem:(0,4),6,1;decoding:(0,4),7,1;\ arrowPosition:(0,4),8,2;ignoreMenuLayout:(0,4),10,1;\ RESERVED:(0,4),11,21;; NSPopUpButtonCell:T(209,2)=s128isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(145,4),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(58,3),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(58,3),352,32;\ _bcFlags2:/1(154,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(154,2),448,32;\ _normalImage:/1(154,6),480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;\ _extraData:/0(23,2),544,32;_stateImageSize:/0(36,4),576,64;\ _imageSize:/0(36,4),640,64;_titleSize:/0(36,4),704,64;\ _keyEquivalentSize:/0(36,4),768,64;_size:/0(36,4),832,64;\ _micFlags:/0(184,1),896,32;_menu:/0(160,7),928,32;\ _selectedIndex:/0(0,1),960,32;_pbcFlags:/0(209,1),992,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSStatusBar.h NSStatusBar:T(210,1)=s20isa:/1(4,1),0,32;_fReserved1:/0(0,3),32,32;\ _fReserved2:/0(0,3),64,32;_fReserved3:/0(0,3),96,32;\ _fReserved4:/0(0,3),128,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSStatusItem.h _SBIFlags:t(211,1)=(211,2)=s4customView:(0,4),0,1;highlightMode:(0,4),1,1;\ reserved:(0,4),2,30;; NSStatusItem:T(211,3)=s44isa:/1(4,1),0,32;_fStatusBar:/0(211,4)=*(210,1),32,32;\ _fLength:/0(0,12),64,32;_fWindow:/0(147,9),96,32;\ _fView:/0(159,5),128,32;_fPriority:/0(0,1),160,32;\ _fFlags:/0(211,1),192,32;_fReserved1:/0(0,3),224,32;\ _fReserved2:/0(0,3),256,32;_fReserved3:/0(0,3),288,32;\ _fReserved4:/0(0,3),320,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDrawer.h  /System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h  /System/Library/Frameworks/AppKit.framework/Headers/NSDocumentScripting.h  /System/Library/Frameworks/AppKit.framework/Headers/NSToolbar.h  /System/Library/Frameworks/AppKit.framework/Headers/NSToolbarItem.h    Dockling:T(1,1)=s20isa:/1(4,1),0,32;docklingBundle:/1(1,2)=*(23,1),32,32;\ docklingWindow:/1(147,9),64,32;menu:/1(160,7),96,32;\ isMenuChanged:/1(4,10),128,8;;  DocklingCallbackFunc:t(0,31)=(0,32)=*(0,33)=f(0,1) _objc_super:T(0,34)=s8self:(4,6),0,32;class:(16,2),32,32;; _objc_class:T(16,3)=s48isa:(16,2),0,32;super_class:(16,2),32,32;\ name:(16,4),64,32;version:(0,3),96,32;info:(0,3),128,32;\ instance_size:(0,3),160,32;ivars:(0,35)=*(0,36)=xs_objc_ivar_list:,192,32;\ methods:(0,37)=*(0,38)=xs_objc_method_list:,224,32;cache:(0,39)=*(0,40)=xsobjc_cache:,256,32;\ protocol_list:(16,5),288,32;sel_id:(23,2),320,32;\ gc_object_type:(23,2),352,32;; -[Dockling initWithBundle:window:] -[Dockling initWithBundle:window:]:f(4,5) self:p(0,41)=*(1,1) _cmd:p(4,8) bundle:p(1,2) window:p(147,9) _objc_super:(0,34)    -[Dockling dealloc] -[Dockling dealloc]:f(0,30) self:p(0,41) _cmd:p(4,8) _objc_super:(0,34)    -[Dockling menu] -[Dockling menu]:f(160,7) self:p(0,41) _cmd:p(4,8) _objc_super:(0,34)    -[Dockling setMenu:] -[Dockling setMenu:]:f(0,30) self:p(0,41) _cmd:p(4,8) newMenu:p(160,7) _objc_super:(0,34)    -[Dockling isMenuChanged] -[Dockling isMenuChanged]:f(4,10) self:p(0,41) _cmd:p(4,8) _objc_super:(0,34)    -[Dockling setMenuChanged:] -[Dockling setMenuChanged:]:f(0,30) self:p(0,41) _cmd:p(4,8) newState:p(4,10) _objc_super:(0,34)    -[Dockling bundle] -[Dockling bundle]:f(1,2) self:p(0,41) _cmd:p(4,8) _objc_super:(0,34)    -[Dockling window] -[Dockling window]:f(147,9) self:p(0,41) _cmd:p(4,8) _objc_super:(0,34)    _objc_category:T(0,42)=s20category_name:(16,4),0,32;class_name:(16,4),32,32;\ instance_methods:(0,37),64,32;class_methods:(0,37),96,32;\ protocol_list:(16,5),128,32;; _objc_symtab:T(0,43)=s16sel_ref_cnt:(0,3),0,32;refs:(0,44)=*(4,8),32,32;\ cls_def_cnt:(0,8),64,16;cat_def_cnt:(0,8),80,16;\ defs:(0,45)=ar(0,1);0;0;(23,2),96,32;; _objc_ivar:T(0,46)=s12ivar_name:(16,4),0,32;ivar_type:(16,4),32,32;\ ivar_offset:(0,1),64,32;; _OBJC_INSTANCE_VARIABLES_Dockling:S(0,47)=s52ivar_count:(0,1),0,32;\ ivar_list:(0,48)=ar(0,1);0;3;(0,46),32,384;; _objc_method:T(0,49)=s12_cmd:(4,8),0,32;method_types:(16,4),32,32;\ _imp:(23,2),64,32;; _OBJC_INSTANCE_METHODS_Dockling:S(0,50)=s104method_next:(0,1),0,32;\ method_count:(0,1),32,32;method_list:(0,51)=ar(0,1);0;7;(0,49),64,768;; _OBJC_METACLASS_Dockling:G(16,3) _OBJC_CLASS_Dockling:G(16,3) _OBJC_SELECTOR_REFERENCES_0:S(4,8) _OBJC_SELECTOR_REFERENCES_1:S(4,8) _OBJC_SELECTOR_REFERENCES_2:S(4,8) _objc_module:T(0,52)=s16version:(0,3),0,32;size:(0,3),32,32;\ name:(16,4),64,32;symtab:(0,53)=*(0,43),96,32;; _OBJC_CLASS_NAME_0:S(0,54)=ar(0,1);0;8;(0,2) _OBJC_CLASS_NAME_1:S(0,55)=ar(0,1);0;8;(0,2) _OBJC_CLASS_NAME_2:S(0,56)=ar(0,1);0;10;(0,2) _OBJC_METH_VAR_NAME_0:S(0,57)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_1:S(0,58)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_2:S(0,59)=ar(0,1);0;4;(0,2) _OBJC_METH_VAR_NAME_3:S(0,60)=ar(0,1);0;13;(0,2) _OBJC_METH_VAR_NAME_4:S(0,61)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_5:S(0,62)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_6:S(0,63)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_7:S(0,64)=ar(0,1);0;8;(0,2) _OBJC_METH_VAR_NAME_8:S(0,65)=ar(0,1);0;7;(0,2) _OBJC_METH_VAR_NAME_9:S(0,66)=ar(0,1);0;22;(0,2) _OBJC_METH_VAR_NAME_10:S(0,67)=ar(0,1);0;4;(0,2) _OBJC_METH_VAR_NAME_11:S(0,68)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_12:S(0,69)=ar(0,1);0;7;(0,2) _OBJC_METH_VAR_TYPE_0:S(0,70)=ar(0,1);0;11;(0,2) _OBJC_METH_VAR_TYPE_1:S(0,71)=ar(0,1);0;11;(0,2) _OBJC_METH_VAR_TYPE_2:S(0,72)=ar(0,1);0;9;(0,2) _OBJC_METH_VAR_TYPE_3:S(0,73)=ar(0,1);0;1;(0,2) _OBJC_METH_VAR_TYPE_4:S(0,74)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_TYPE_5:S(0,75)=ar(0,1);0;9;(0,2) _OBJC_METH_VAR_TYPE_6:S(0,76)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_TYPE_7:S(0,77)=ar(0,1);0;9;(0,2) _OBJC_METH_VAR_TYPE_8:S(0,78)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_TYPE_9:S(0,79)=ar(0,1);0;13;(0,2)  dockling_glue.o 993242778   501   99    100644  122732    `
                                                                __text          __TEXT                         d          __data          __DATA                                        __cstring       __TEXT                                      __const         __TEXT            |                            __cat_cls_meth  __OBJC                                          __cat_inst_meth __OBJC                                          __string_object __OBJC                                          __cstring_object__OBJC                      2               __message_refs  __OBJC                 ,     3   '           __sel_fixup     __OBJC                                          __cls_refs      __OBJC                      4              __class         __OBJC                                          __meta_class    __OBJC                                          __cls_meth      __OBJC                                          __inst_meth     __OBJC                                          __protocol      __OBJC                                          __category      __OBJC                                          __class_vars    __OBJC                                          __instance_vars __OBJC                                          __module_info   __OBJC                      4               __symbols       __OBJC                                        __bss           __DATA                                         __picsymbol_stub__TEXT                     4   B        $__la_symbol_ptr __DATA            l   ,       7                     7  b  T O      P      G  G     O                             7d                   | !|>xB ~  =?  9)}#KxH |}x=?  9)}#KxH ||x=?  9)}#KxH |`x 8=?  9)d)  8  8  8  9   xxH !   |N  | ! |>xB ~ $(8  h=  9k}i[x=  9kX}j[xi    H 	|`x p8    x8    |8    8    8    8    ~8  H ~ 88 |xH m8 |xH =|`x,   @ D=  9k}i[x=  9k\}j[xi     8H u|`x <8 |xH H  (8 |xH |`x8    <8   8 d<`sy`csv|xH M|`x|	x> ` <,   A <=?  9)`}+Kxx  H |`x l p=?  9)d}+Kxx   lH |`x=  9k}i[x=  9kh}j[xi    |xH ~ t^ <=?  9)l}+KxCx  H }|{x=?  9)p}+Kxcx  =?  9)}%KxH U~ x x,   A $> x=?  9)t}+Kx#x  H )~  t=?  9)p}+Kxx  =?  9)}%KxH ~ | |,   A $ |=?  9)t}+Kx~x  H ѐ~  t=?  9)p}+Kx~óx  =?  9)}%KxH ~  ,   A $ =?  9)t}+Kx~x  H y~  > h| H @   h > h| H @   h > h| H @   h=  9k }i[x=_  9Jx}KSx d^ h| P @  hi    |xH |`x t=?  9)|}+Kx~x  |x=?  9)}&KxH ~ p=?  9)}+Kx~cx   t lH ^ p=?  9)}+Kx~Cx  H  d> h| H A  <,   @ H  ~ d <KU> <=?  9)l}+Kx~#x  H 9|`x @ @=?  9)p}+Kx~x  =?  9)}%KxH 	~ D~ DH |`x H H,   @  =?  9)}#Kx DH 8`H 8 L|x=?  9))  =?  9)I  =?  9)i  =?  9)  H =  9k}i[x=  9k}j[xi    H m|ox=  9k}i[x8 L}{x  |xH E~ \ H=?  9)}+Kx}kx  H %|nx=?  9)}+Kx}sx   < \H =?  9)}+Kxk   \=?  9)}+Kx~  H 8`  H  !   |N  | !0|>xB ~ =  9kX}i[x=  9k}j[xi    H q|}x =?  9)}+Kxx  H Q|`x=?  9)}+Kxx  |xH 1|`x 88    <~ =?  9)}+Kxcx  H |`x> <|	  A H =  9kL}i[x=  9k}j[xi    H |zx=?  9)}+KxCx  8 H |`x @> =?  9)}+Kx#x   <H |`x D=?  9)
}+Kx  =?  9)}+Kxx  H U|ix8	 =  9kP}i[x=  9k}j[xi    |xH %|`x H=?  9)
}+Kx  =?  9)}+Kx~x   DH  D=?  9) }+Kx~óx  H |`x,   A `=  9kP}i[x=  9k}j[xi    8 H |`x @=?  9)}+Kx~x  |x=?  9)T}&KxH qH , D=?  9)}+Kx~x  H Q|`x,   A `=  9kP}i[x=  9k}j[xi    8 H |`x~ @=?  9)}+Kx~cx  |x=?  9)`}&KxH H  \=  9kP}i[x=  9k}j[xi    8  H |`x^ @=?  9)}+Kx~Cx  |x=?  9)`}&KxH > D=?  9)}+Kx~#x  H u|`x,  @ `=  9kP}i[x=  9k}j[xi    8 H A|`x @=?  9)}+Kx~x  |x=?  9)l}&KxH H   D=?  9)}+Kx}{x  H |`x9 | H @ \=  9kP}i[x=  9k}j[xi    8 H |`x @=?  9)}+Kx}sx  |x=?  9)l}&KxH  D=?  9)}+Kx}kx  H m|`x> @> P=?  9)}+Kx~ P  |x=?  9)x}&KxH 9 D T=?  9)}+Kx~ T  H |`x,   A  @ X=?  9)}+Kx~ X   H=?  9)}&KxH ݀ D \=?  9)}+Kx~ \  H |`x|xK|`x L @ `=?  9)}+Kx~ `   L=?  9)}&KxH yH  4 @ d=?  9)}+Kx~ d   H=?  9)}&KxH E 8 h=?  9)}+Kx~ h   @H ! @ l=?  9)}+Kx~ l  H > <8	  <KԀ 8 p=?  9)}+Kx~ p  H |`x|xH  !   |N  | !|>xB =?  9)}+Kx  ,   A ,=?  9)}+Kx  =?  9)	}+Kxx  H U=?  9)}+Kx  ,   A ,=?  9)}+Kx  =?  9)	}+Kxx  H =  9k
T}i[x=  9k	}j[xi    H 
|{x=?  9)
}+Kxcx  H 
=?  9)}+Kxk  =?  9),}+Kx+  =?  9)
 }+Kx#x  H 
|`x|xK|zx=?  9)
$}+KxCx  H 
u=?  9)}+Kxk  =?  9),}+Kx  =?  9)
(}+Kxx  8  H 
9!   |N  | !|>xB =?  9)
}+Kx  =?  9)}+Kxx  H 	|`x,   @  =?  9) }+Kx  ,   @ H  K	=?  9) }+Kx  =?  9)}+Kxx  H 	|`x|xH  !   |N  !|>x8`  H  !  N  | !|>xB ~ x=?  9)$}+Kx  =  9k}i[x~ x8x  |xH |`x 8 8=?  9)}+Kxx  H |`x,   A ~ 8=?  9)}+Kxcx  H |`x,   A d> 8=?  9)}+Kx#x  H |zx 8=?  9)}+Kxx  H e|`x=?  9)}+KxCx  |x 8H A8`  H  !   |N  |a !|>xB =?  9) }+Kx  =?  9)T}+Kxx  H =?  9) }+Kx  =?  9)T}+Kxx  H =?  9)}+Kxk  =?  9)T}+Kxcx  H !   |aN  !|>x|`x `  Ѿ ў  ~ $|	x8 g  G   i  I 	  H  |x!  N          Note    This dock extra may not be compatible with the version of MacOS X you are running.  If it does not function correctly, please contact the developer of the dockling for an updated version.  Please do not contact Apple, as they will be unable to help you with this problem. OK  DocklingWarningVersion  WarningVersion  DocklingClass   Error: dockling class %@ could not be found separator   enabled mark    name    menu    sub command dockling_glue.m NSUserDefaults  NSBundle    NSMutableDictionary NSNumber    NSWindow    NSMutableArray  standardUserDefaults    bundleWithPath: bundleIdentifier    persistentDomainForName:    dictionaryWithDictionary:   infoDictionary  objectForKey:   intValue    numberWithLong: setObject:forKey:   setPersistentDomain:forName:    synchronize alloc   _initFromGlobalWindow:inRect:   initWithBundle:window:  release numberOfItems   initWithCapacity:   itemAtIndex:    count   numberWithInt:  addObject:  isSeparatorItem numberWithBool: isEnabled   state   title   hasSubmenu  submenu autorelease init    menu    retain  setMenuChanged: isMenuChanged   objectAtIndex:  target  action  performSelector:withObject: @4          C                  0         @         P   +      |   	                                                          4  D  X  t                     4  L  T  d  x                                 0  @  P  X  `                                   |B }h=k  |}9kN |B }h=k  |d}9kdN |B }h=k  |D}9kDN |B }h=k  |$}9k$N |B }h=k  |}9kN |B }h=k  | }9k N |B }h=k  | }9k N |B }h=k  | }9k N |B }h=k  | }9k N |B }h=k  | d}9k dN |B }h=k  | D}9k DN                                               p  ë `  L      \  L T   P        L       H  ë 8  L      4  L T   (        $           ë   L        L T                      ë        Ь          ë        Ь        |  ë l       Ь h       T  ë D       Ь @       ,  ë        Ь          ë        Ь      Ы        Ь    $    t  ë d        `      T        P        L  ë 4        0           ë                           
      ë        l    
(  l        l    ,  l        l      l    ë |       l x   
$  l  p    d  ë T       l P   
   l D       l @   ,  l 4       l 0     l  ,  ë        l    
  l    ë    @     l   @ 	  l        l    
T  l    ë   L     l   L 	  l        l      l        l      l    ë   L     l   L 	  l        l      l t       l p     l  0  ë         h      h     ë   L     h   L   h    ë   d     h   d   h    ë        h      h   4     h   4   h    ë        h |     h h  4     h d  4   h  P    D  ë 4       h 0     h  $  ë        h      h   4     h    4   h  
  ë 
  |     h 
  |   h  
  ë 
       h 
   x  h 
  4     h 
  4   h  
  ë 
  x     h 
  x   h  
x  ë 
p  ԡ     h 
l  ԡ l  h 
X  4     h 
T  4   h  
H  ë 
4  `     h 
0  `   h 
(       h 
$   P  h  
  ë 
   t     h 	  t   h  	  ë 	  ԡ     h 	  ԡ l  h 	  4     h 	  4   h  	  ë 	  `     h 	  `   h 	       h 	   P  h  	  ë 	|  t     h 	x  t   h  	p  ë 	h  ȡ     h 	d  ȡ `  h 	P  4     h 	L  4   h  	@  ë 	,  l     h 	(  l   h 	        h 	   P  h  	  ë 	  ȡ     h 	  ȡ `  h   4     h   4   h    ë   l     h   l   h        h    P  h    ë   p     h   p   h    ë        h    T  h p  4     h l  4   h  `  ë L  l     h H  l   h @       h <   P  h  ,  ë   h     h   h    h    ë   d     h   d   h        h    
  h    ë   `     h   `   h        h    P  h    ë   \     h   \   h        h    
  h  |  ë h  X     h d  X   h  T  ë @  T     h <  T   h  4  ë $  @     h    @   h        h    L  h    ë   P     h   P   h    ë   T     h   T   h    ë   P     h   P   h    ë   @     h |  @   h t       h p   X  h  0  ë    L         L                         ë   H         H        ë   @         @        ë   D         D        ë   @         @     x         t        p  ë h         d       \         X       P         L       D         @        ,  ë                         ë                   (         ( p       ë   $         $ l           ë p  <       l  <      d  ë L  8       H  8      @  ë 8         4          4         4 |       ë   0         0 x                        ë x  ,       t  , t     \  ë T         P       @  (       <  ( p     0  ë    ,         , t       ë                   (         ( p       ë   ,         , t       ë                   (         ( p       ë t  $       p  $ l     d  ë P          L    h    D         @        8  ë $             d       ë              `                   ë x         t   \    l         h        X    L    <       ë               X                          ë  h  |        d  | d      X  ë  P          L         D  ë  <          8         0  ë  (          $         |  @   x [P   p  @   l [P   d  @   ` [P   X  @   T [P   L  @   H [P   @  @   < [P   4  @   0 [P   (  @   $ [P     @    [P     @    [P     @     [P     @     @     @     @     @     @     @   |  @   x  @   t  @   p  @   l  @   h  @   d  @   `  @   \  @   X  @   T  @   P  @   L  @   H  @   D  @   @  @   <  @   8  @   4  @   0  @   ,  @   (  @   $  @      @     @     @     @     @     @     @     @      @     @     @     @     @     @      @     @     @        P |       P t    D  P `       , X       , P    d  , <        4        ,                                                                                     |     x    |     x    |   x    x     T    x     T  x  x $  T  d  t     0  \  t     0  T  t D  0  @  p       8  p       0  p d      l         l         l      ( aP   $ aP     aP    aP    aP    aP    aP    aP    aP    aP     aP  Y  X  W  \  ]  _  Z  U  `  V  ^  Y  X  W  \  ]  _  Z  U  `  V  ^  Cd        ~d                          ׀                  C                  ̀                  >         h                           ̀                           A         d                                             D         v                  Ԁ                  4         a                           Ȃ         ؂                  X         q  "                 &      ր  (        *      	         	W         	ǀ  L      	ۀ  M      	  N      
        
       
0       
D       
Y         
Z  =      
u  A      
         
         
  r               ]         ^        {                          j         Т         т         5         6                                    	         o         p         q         Ԣ         բ         ր                  )        E        n                    9      Ѣ         Ҁ                H                                   ɂ                  M  
      n         o                           I         g                                             8         z                  Ţ         ƀ                                   @         m                  ɀ                  &         '         i                                                      -         ^         _                  Ƣ         ǂ                  a                                             3         g                  р                  /         S         T         U                           *         b         }         ΀           F      2         3         4         {         |                                    R         S                           ڀ                                     M                                    ߢ                  '         K         L                           ڀ                 #         ]        s                 À                     (       *          +          t          u                                       !<         !w         !         !         "8         "_         "         "         #         #E         #w  ,      #         #         $U         $         $ˀ         %         %5         %P         %Q         %         %         %         %         &%         &^         &_         &         &         '+         'j         '         '         '         '         (@         (A         (         (         (         )         )O         )         )         )Т         )т         *         *         *`         *a         *         *         *         *         +B         +q         +r         +         +         +         ,         ,D         ,         ,         ,         ,         ,         -+         -O         -P         -         -         -٢         -ڂ         ."         .g         .         .         /         /\         /         /         0         0T         0         0ɀ        0         1,         1r         1s         1         1         2         2         2Q         2         2Ҁ         3
         3a         3         4         4u         4ߢ         4         4         5I         5J         5         5         6         6?         6@         6         6         7         7         7r         7ޢ         7ߢ         7         8D         8E         8         8         9         9         9~         9         9         :Z         :[         :ɢ         :ʢ         :˂         ;8         ;9         ;         ;         <
         <         <q         <r         <ߢ         <         =?         =@         =         =         >         >         >         >         >         >         ?L         ?M         ?         ?         @          @!         @         @         @         @         AV         AW         A         A         B          B!         B         B         B         B         C_         C`         Cʢ         C˂         D-         D.         D         D         E          E         El         Em         E٢         Eڂ         F?         F@         F         F         F         G         G         G         G         HX         HY         HZ         HТ         Hт         I@         IA         I         I         J        J5        J|        J         J        K         K         Km         Kn         K֢         Kׂ         L<         L=         L         L         M         M         Mu         Mv         Mآ         Mق         NB         NC         ND         N         N         O         O         Or         Os         Oآ         Oق         P?         P@         P         P         Q         Q         Qk         Ql         QՂ         RE         RF         R         R         R         R         S/         S0         S1         S|         S         S         S         S         T=         T>         T         T         Tޢ         T߂         U0         U1         U         U         Uݢ         Uނ         V.         V/         V|         V}         Vł         W         W?         W|         W         X         X         XG         XH         X~         X        X         Y         YE         Yu         Y         Y         Z1         Zz         Z         Z         [1         [j  Q      [  W      [         [         \.         \d         \|         \         \         ]&         ]n         ]         ]         ^"         ^#         ^i         ^j         ^         ^         _  !      _%         _h         _         _π         `         `:         `w         `         `Ţ         `ƀ         a          a        a0         af         at  @      a         aҀ         b         b5         br         b         b΀         c	         cM         c         c         c         d-         da         d         dۀ         e         eU         e         e         e        f         fF         fx         fy         f         f         g3         gQ         gR         g         g         gӀ         h	         h2         hQ        hr         h         h         h         i=         io         i         iր         j         jL         j         j         j         k)         kC         k         kȀ         k         l         lZ         l         l         l         m,         mi         m         m         m         n(         ni         n         nӀ         n         o+         o[         o         oπ         p         pN         pu  ]      p         p̀         p         q<  m      qW         q         q̀         r         rL         r         r         r         sa         sb         s         sـ         t         t@         ty         t         t         u1         u2         us         u         u         v         vN         v         vπ         w         w6         wh         w         wހ         x         xn         x         x         y         y         yM         y         y         y         z-         zh         z         z         z         {(         {)         {m        {         {̀         {         |<         |r         |         |         }         }_         }         }         }  7      ~;         ~u         ~         ~߀         $         a                  ̀                  >         m                           /         p                           3         p                            5         i                           >                  ƀ         	         P                  ʀ         	         C         |                           -         l                           6         ~                                    X                  ɀ                  B         {                           ,         k                           %         e                                    1         j                  Ԁ                  b                           *         ]                           )         f         |  D               ݀                  D         v                           !         g                  π                  P                  Ԁ                  U                                             I                                    )         [                  ׀                  9         n                           #         \                  Ӏ                  L                                    F                  р                  Q                  Ԁ                  d                  Հ                  I                                    C                  ̀                  G         x                           -         w         ʀ                  W                           F                  ڀ                  \                           ,         d                           5                                    &         S                                    A                  Ѐ         	         R                           ,  K      E                                    $         ]                  π                  E                                    %         ^                  р                  !         "         #         d                  ؀                  V                  ҂         "         #         c                  ݀                  `                           #         T         p         q         Ā                  1         G                                                      E         k                                                      :         ;         }         ~                                             G                                                      Q                  ր                  .         j                           Q                                             =         S                  ـ                           S         T                           Ң         ӂ                           \         ]                  ߀                  C                                    :         v                  բ         ւ                           \         ]                                    %         _                                    5         f                                    Y                                    9         n         ª                  #         \         Ö         Ӏ                  L         ą                           F         Ń         р                  <         ƀ         Ƽ                  1         i         ǣ                            c         ț         ր                                    =         ɂ         ƀ                           [         ʍ         р                  C         ~         ˻                  J         ̂         ̽         ڢ         ۀ                  -         w         ͩ         ހ                  I         Ά         λ                                    `         ϥ         ʢ         ˂                           V         W         Ж         З         ڀ         (         ^         є         ǀ                  :         u  ,      Ҏ         ؀         
         ?         q         Ӫ                           V         Ԡ         Հ                  h         i         ժ                          ?         ֍         ֤        ˀ         
                   ]         ס         ʀ                  /         I         ؑ         À                  *         c         ٠         Հ                  P         چ         ڶ         Ђ                  J         {         ۴                  +         ]         ܡ                  -         `         ݘ         ݴ         ݵ                  ,         a         ޓ         ̀         	         >         ߄         ߅         ǀ                  B         w         ੀ                           T                   Ѣ         ҂                  j         ⱀ                  '         g         㟢         㠂                           ,         -         n         䶀                           O         刀         ŀ                  @         w         攢         敂         ڀ                  N         }         À                  9         y         豀                  *         醀         黀                           @         A         ꉀ         ؀         
         ?         q         몀                           X         얀         ۀ                  9         :         |                           ,         f                           C                           4  ;      N                  ɀ                  0         i                  ۀ         !         f                           "         i                           L                                    E                                                      1         2         x         р                  N                  ۀ         !         w                           ?                  Ѐ                  I                           q                           }         ׀                  i         ΀                  Y                            G                           s         Ҁ        D                        π                ]                Ă        	        
        Q        R                ̀                3        l                ހ                        >        s                ˀ        #        U                        ۀ                R                Ȁ                 $        %        g                       	        	:        	o        	        	ڀ        
        
L        
        
                P                ݀        6        ]        ^                                        %        l                                M        ~                ܀                C        u                                 q                        I                Ҁ                R        o        p                        2        k                                4        x                        %        b                        )        d                Ӣ        Ԃ                [                                        >       T                ؀                B        z                        ֢        ׂ                ^                               0        n                        L                ݀                Z                                                D        E                Ԁ               ;        t                          L                  ܀        !%        !<        !        !̀        "        "]        "        "̀        #        #U        #V        #        #Ԁ        $        $U        $        $ڀ        %        %I        %        %        %؀        &'        &_        &        &Ҁ        '        'I        '}        '        '        '        '        '        '        (Q        (        )
        )f        )g        )Ƣ        )Ǣ        )Ȃ        *&        *'        *(        *        *        *        *        +A        +B        +        ,         ,        ,c        ,d        ,e        ,        -#        -$        -%        -        -        -        -        .B        .C        .        .        /        /        /s        /t        /բ        /ւ        06        07        0        0        1         1        1`        1a        1        1        2        2        2~        2        2        2        3I        3J        3        3        4        4        4}        4~        4ݢ        4ނ        5G        5H        5        5        6        6        6        6        6        6ׂ        78        79        7        7        7        7        8^        8_        8        8¢        8â        8Ă        8π        9        9T        9s        9t&    9     9&    9        D         D    $    D    $    D        D     9$      9נ      9      9     H :     L :'     P :8     T :C     $ :D      :E$          D        D        D        D !       D #      D $      D &  4    D (  D    D )  h    D +      D ,      D .      D /      D 1      D 3      D 5      D 7  l    D 8      D 9      D ;      D <      D =      D ?  8    D @  d    D A  p    D C      D D      D E      D F      D G      D H      D K      D M  D    D N  h    D P      D Q      D R      D S      D T       D U      D V      D W  0    D Y  8 :F        D Z  t    D [   :R        D \      D ]  4    D ^  <    D ^  < :\$     :p     :     :      :    $ :    ( :     8 :ʀ     < :     @ :     D ;
     H ;     L ;+     \ ;:     ` ;D     d ;R     h ;g      l ;  !   p ;  "   t ;  #   x ;ˀ  #   | ;  #    <  $    <  $    <1  $    <J      <K  (    <`    D <a  +   <w     <x     <y     <z    < <{$         D a  P    D b  p    D e      D g      D h  `    D i      D k      D l      D m  <    D p      D q      D s  	    D t  	t    D u  	    D v  	    D w  
$    D x  
|    D y  
    D {  
    D |  
    D }  (    D ~  \    D       D       D       D       D       D e      D       D   @    D   @ <|$ a  P <  `    <  b   8 <  c   < <    p <  g   @ <ƀ  h   D <׀  i   H <     <  {   L <    
 <     =      =    @ =$         D   T    D   p    D       D       D       D       D   @    D       D       D    =$   T =$         D       D       D   L    D   P    D       D    =$    =.$          D       D       D    =/$    =E$           D       D       D       D   d    D       D       D    =F$    =c     x =r     8 =     =     =$     (    D       D       D   $    D   L    D   t    D   t =$    =$       =        =        >G        >e        >        >        ?&	    ?+&	    ?N&	    ?q&	    ?&	     ?&	   $ ?&	   ( ?&	   , @ &	   0 @C&	   4 @f&	   8 @&	   < @&	   @ @&	   D @&	   H A&	   L A>&	   P Ab&	   T A&	   X A&	   \ A&	   ` A&	   d B&	   h B:&	   l B^&	   p B&	   t B&	   x B&	   | B&	    C&	    C6&	    CZ&	    C~&	    C&	    C&	    C&	    D&	    D2&	    DV&	    Dz        D        D&    E&    E(&    EH&    Eh&    E&    E&    E&    F&    F1&    F_&    F&     F&    F&    G&   4 GI&   D Gz&   X G&   t G&    H&    H>&    Hn&    H&    H&    I&     I4&    Ie&    I&   4 I&   L I&   T J,&   d J^&   x J&    J&    J&    K%&    KW&    K&    K&    K&    L&    LN&    L&    L&    L&    M&    MD&     Mv&   0 M&   @ M&   P N&   X N<&   ` Nn        D <      D =      D >      D ?      D @      D A      D B      D C      D C   N$ <   N@  <     N@  <   - N@  <   , N@  <   + N  =    N     N     N$      l N( 	   Od       @    P            x       W       2               h       K    T           5                                                                  u        n                                          %                        U        _DisplayWarning __NSConstantStringClassReference _DocklingInit _BuildMenu _ReloadMenu _DocklingGetMenu _DocklingToggle _DocklingDoMenuCommand _DocklingTerminate .objc_class_name_NSUserDefaults .objc_class_name_NSBundle .objc_class_name_NSMutableDictionary .objc_class_name_NSNumber .objc_class_name_NSWindow .objc_class_name_NSMutableArray dyld_stub_binding_helper _NSLog _NSClassFromString _Gestalt __NSExceptionObjectFromHandler2 __NSRemoveHandler2 __setjmp __NSAddHandler2 _CFURLCopyFileSystemPath _objc_msgSend _CFUserNotificationDisplayNotice ___CFStringMakeConstantString /Volumes/Ratbert/Users/bwebster/Projects/DocklingTemplate/ dockling_glue.m int:t(0,1)=r(0,1);0020000000000;0017777777777; char:t(0,2)=r(0,2);0;127; long int:t(0,3)=r(0,1);0020000000000;0017777777777; unsigned int:t(0,4)=r(0,1);0000000000000;0037777777777; long unsigned int:t(0,5)=r(0,1);0000000000000;0037777777777; long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777; long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777; short int:t(0,8)=r(0,8);-32768;32767; short unsigned int:t(0,9)=r(0,9);0;65535; signed char:t(0,10)=r(0,10);-128;127; unsigned char:t(0,11)=r(0,11);0;255; float:t(0,12)=r(0,1);4;0; double:t(0,13)=r(0,1);8;0; long double:t(0,14)=r(0,1);8;0; complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;; complex float:t(0,16)=r(0,16);4;0; complex double:t(0,17)=r(0,17);8;0; complex long double:t(0,18)=r(0,18);8;0; __vector unsigned char:t(0,19)=ar(0,1);0;15;(0,11) __vector signed char:t(0,20)=ar(0,1);0;15;(0,10) __vector bool char:t(0,21)=ar(0,1);0;15;(0,11) __vector unsigned short:t(0,22)=ar(0,1);0;7;(0,9) __vector signed short:t(0,23)=ar(0,1);0;7;(0,8) __vector bool short:t(0,24)=ar(0,1);0;7;(0,9) __vector unsigned long:t(0,25)=ar(0,1);0;3;(0,5) __vector signed long:t(0,26)=ar(0,1);0;3;(0,3) __vector bool long:t(0,27)=ar(0,1);0;3;(0,5) __vector float:t(0,28)=ar(0,1);0;3;(0,12) __vector pixel:t(0,29)=ar(0,1);0;7;(0,9) void:t(0,30)=(0,30) dockling_glue.h /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h /usr/include/objc/objc.h Class:t(4,1)=(4,2)=*(4,3)=xsobjc_class: objc_object:T(4,4)=s4isa:(4,1),0,32;; id:t(4,5)=(4,6)=*(4,4) SEL:t(4,7)=(4,8)=*(4,9)=xsobjc_selector: BOOL:t(4,10)=(0,2) /System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h /System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h SInt16:t(6,1)=(0,8) UInt32:t(6,2)=(0,5) SInt32:t(6,3)=(0,3) OSErr:t(6,4)=(6,1) FourCharCode:t(6,5)=(0,5) OSType:t(6,6)=(6,5) ResType:t(6,7)=(6,5)  CFOptionFlags:t(5,1)=(6,2) CFStringRef:t(5,2)=(5,3)=*(5,4)=xs__CFString:  /System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h CFArrayRef:t(7,1)=(7,2)=*(7,3)=xs__CFArray: /System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h  CFTimeInterval:t(7,4)=(0,13) CFAbsoluteTime:t(7,5)=(7,4) /System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/Files.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MixedMode.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacMemory.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Patches.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DateTimeUtils.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextCommon.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacErrors.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Finder.h    :T(7,6)=ekCFURLPOSIXPathStyle:0,kCFURLHFSPathStyle:1,\ kCFURLWindowsPathStyle:2,; CFURLPathStyle:t(7,7)=(7,6) CFURLRef:t(7,8)=(7,9)=*(7,10)=xs__CFURL: /usr/include/machine/setjmp.h /usr/include/ppc/setjmp.h jmp_buf:t(18,1)=(18,2)=ar(0,1);0;191;(0,1)  CFRunLoopRef:t(17,1)=(17,2)=*(17,3)=xs__CFRunLoop: CFRunLoopObserverRef:t(17,4)=(17,5)=*(17,6)=xs__CFRunLoopObserver: CFRunLoopTimerRef:t(17,7)=(17,8)=*(17,9)=xs__CFRunLoopTimer:   /System/Library/Frameworks/Foundation.framework/Headers/NSCoder.h /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h /System/Library/Frameworks/Foundation.framework/Headers/NSZone.h NSZone:t(21,1)=(21,2)=xs_NSZone:  _objc_protocol:T(20,1)=s20isa:(20,2)=*(20,3)=xs_objc_class:,0,32;\ protocol_name:(20,4)=*(0,2),32,32;protocol_list:(20,5)=*(20,6)=*(20,1),64,32;\ instance_methods:(20,7)=*(20,8)=xs_objc__method_prototype_list:,96,32;\ class_methods:(20,7),128,32;; NSObject:T(20,9)=s4isa:/1(4,1),0,32;;  NSCoder:T(19,1)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSString.h /System/Library/Frameworks/Foundation.framework/Headers/NSRange.h /System/Library/Frameworks/Foundation.framework/Headers/NSValue.h NSValue:T(24,1)=s4isa:/1(4,1),0,32;; NSNumber:T(24,2)=s4isa:/1(4,1),0,32;;  _NSRange:T(23,1)=s8location:(0,4),0,32;length:(0,4),32,32;; NSRange:t(23,2)=(23,1)  NSString:T(22,1)=s4isa:/1(4,1),0,32;; NSMutableString:T(22,2)=s4isa:/1(4,1),0,32;; NSSimpleCString:T(22,3)=s12isa:/1(4,1),0,32;bytes:/1(20,4),32,32;\ numBytes:/1(0,4),64,32;; NSConstantString:T(22,4)=s12isa:/1(4,1),0,32;bytes:/1(20,4),32,32;\ numBytes:/1(0,4),64,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSArray.h NSArray:T(25,1)=s4isa:/1(4,1),0,32;; NSMutableArray:T(25,2)=s4isa:/1(4,1),0,32;;   /System/Library/Frameworks/Foundation.framework/Headers/NSDictionary.h NSDictionary:T(26,1)=s4isa:/1(4,1),0,32;; NSMutableDictionary:T(26,2)=s4isa:/1(4,1),0,32;;  NSAttributedString:T(4,11)=s4isa:/1(4,1),0,32;; NSMutableAttributedString:T(4,12)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSAutoreleasePool.h NSAutoreleasePool:T(27,1)=s20isa:/1(4,1),0,32;_token:/0(27,2)=*(0,30),32,32;\ _reserved3:/0(27,2),64,32;_reserved2:/0(27,2),96,32;\ _reserved:/0(27,2),128,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h NSBundle:T(28,1)=s36isa:/1(4,1),0,32;_flags:/0(0,4),32,32;\ _cfBundle:/0(4,5),64,32;_reserved5:/0(27,2),96,32;\ _principalClass:/0(4,1),128,32;_tmp1:/0(27,2),160,32;\ _tmp2:/0(27,2),192,32;_reserved1:/0(27,2),224,32;\ _reserved0:/0(27,2),256,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSDate.h NSDate:T(29,1)=s4isa:/1(4,1),0,32;;   /System/Library/Frameworks/Foundation.framework/Headers/NSCharacterSet.h /System/Library/Frameworks/Foundation.framework/Headers/NSException.h NSException:T(31,1)=s20isa:/1(4,1),0,32;name:/0(31,2)=*(22,1),32,32;\ reason:/0(31,2),64,32;userInfo:/0(31,3)=*(26,1),96,32;\ reserved:/0(27,2),128,32;; _NSHandler2:T(31,4)=s784_state:(18,1),0,6144;_exception:(31,5)=*(31,1),6144,32;\ _others:(27,2),6176,32;_thread:(27,2),6208,32;_reserved1:(27,2),6240,32;; NSHandler2:t(31,6)=(31,4)   /System/Library/Frameworks/Foundation.framework/Headers/NSConnection.h  /System/Library/Frameworks/Foundation.framework/Headers/NSData.h NSData:T(33,1)=s4isa:/1(4,1),0,32;; NSMutableData:T(33,2)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSFormatter.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScanner.h  /System/Library/Frameworks/Foundation.framework/Headers/NSProxy.h NSProxy:T(36,1)=s4isa:/1(4,1),0,32;;   /System/Library/Frameworks/Foundation.framework/Headers/NSDistributedLock.h /System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h   /System/Library/Frameworks/Foundation.framework/Headers/NSEnumerator.h  /System/Library/Frameworks/Foundation.framework/Headers/NSFileHandle.h NSPipe:T(40,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSFileManager.h  /System/Library/Frameworks/Foundation.framework/Headers/NSGeometry.h _NSPoint:T(42,1)=s8x:(0,12),0,32;y:(0,12),32,32;; NSPoint:t(42,2)=(42,1) _NSSize:T(42,3)=s8width:(0,12),0,32;height:(0,12),32,32;; NSSize:t(42,4)=(42,3) _NSRect:T(42,5)=s16origin:(42,2),0,64;size:(42,4),64,64;; NSRect:t(42,6)=(42,5) _NSRectEdge:T(42,7)=eNSMinXEdge:0,NSMinYEdge:1,\ NSMaxXEdge:2,NSMaxYEdge:3,; NSRectEdge:t(42,8)=(42,7)  /System/Library/Frameworks/Foundation.framework/Headers/NSHFSFileTypes.h  /System/Library/Frameworks/Foundation.framework/Headers/NSHost.h  /System/Library/Frameworks/Foundation.framework/Headers/NSInvocation.h _NSObjCValueType:T(45,1)=eNSObjCNoType:0,NSObjCVoidType:118,\ NSObjCCharType:99,NSObjCShortType:115,NSObjCLongType:108,\ NSObjCLonglongType:113,NSObjCFloatType:102,NSObjCDoubleType:100,\ NSObjCSelectorType:58,NSObjCObjectType:64,NSObjCStructType:123,\ NSObjCPointerType:94,NSObjCStringType:42,NSObjCArrayType:91,\ NSObjCUnionType:40,NSObjCBitfield:98,; NSObjCValue:t(45,2)=(45,3)=s12type:(45,1),0,32;value:(45,4)=u8charValue:(0,2),0,8;\ shortValue:(0,8),0,16;longValue:(0,3),0,32;\ longlongValue:(0,6),0,64;floatValue:(0,12),0,32;\ doubleValue:(0,13),0,64;selectorValue:(4,7),0,32;\ objectValue:(4,5),0,32;pointerValue:(27,2),0,32;\ structLocation:(27,2),0,32;cStringLocation:(20,4),0,32;;,32,64;; NSInvocation:T(45,5)=s36isa:/1(4,1),0,32;returnValue:/0(45,2),32,96;\ argumentFrame:/0(27,2),128,32;signature:/0(45,6)=*(45,7)=xsNSMethodSignature:,160,32;\ container:/0(45,8)=*(25,2),192,32;retainedArgs:/0(0,4),224,1;\ isInvalid:/0(0,4),225,1;signatureValid:/0(0,4),226,1;\ retainedRet:/0(0,4),227,1;externalArgFrame:/0(0,4),228,1;\ unused:/0(0,4),229,3;refCount:/0(0,4),232,24;\ reserved:/0(27,2),256,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSJavaSetup.h  /System/Library/Frameworks/Foundation.framework/Headers/NSKeyValueCoding.h  /System/Library/Frameworks/Foundation.framework/Headers/NSLock.h NSLock:T(48,1)=s8isa:/1(4,1),0,32;_priv:/0(27,2),32,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSMethodSignature.h NSMethodSignature:T(45,7)=s32isa:/1(4,1),0,32;_types:/0(49,1)=*(0,2),32,32;\ _nargs:/0(0,1),64,32;_sizeofParams:/0(0,4),96,32;\ _returnValueLength:/0(0,4),128,32;_parmInfoP:/0(27,2),160,32;\ _fixup:/0(49,2)=*(0,1),192,32;_reserved:/0(27,2),224,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSNotificationQueue.h  /System/Library/Frameworks/Foundation.framework/Headers/NSNumberFormatter.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPort.h NSPort:T(52,1)=s4isa:/1(4,1),0,32;; NSSocketPort:T(52,2)=s44isa:/1(4,1),0,32;_receiver:/0(27,2),32,32;\ _connectors:/0(27,2),64,32;_loops:/0(27,2),96,32;\ _data:/0(27,2),128,32;_signature:/0(4,5),160,32;\ _delegate:/0(4,5),192,32;_lock:/0(4,5),224,32;\ _maxSize:/0(0,4),256,32;_maxSockets:/0(0,4),288,32;\ _reserved:/0(27,2),320,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSPortCoder.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPortMessage.h  /System/Library/Frameworks/Foundation.framework/Headers/NSPortNameServer.h  /System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h  /System/Library/Frameworks/Foundation.framework/Headers/NSProtocolChecker.h NSProtocolChecker:T(57,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSRunLoop.h  /System/Library/Frameworks/Foundation.framework/Headers/NSSet.h NSSet:T(59,1)=s4isa:/1(4,1),0,32;; NSMutableSet:T(59,2)=s4isa:/1(4,1),0,32;; NSCountedSet:T(59,3)=s12isa:/1(4,1),0,32;_table:/0(27,2),32,32;\ _reserved:/0(27,2),64,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSSpellServer.h  /System/Library/Frameworks/Foundation.framework/Headers/NSTask.h NSTask:T(61,1)=s4isa:/1(4,1),0,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSThread.h  /System/Library/Frameworks/Foundation.framework/Headers/NSTimeZone.h  /System/Library/Frameworks/Foundation.framework/Headers/NSUndoManager.h NSUndoManager:T(64,1)=s40isa:/1(4,1),0,32;_undoStack:/0(4,5),32,32;\ _redoStack:/0(4,5),64,32;_runLoopModes:/0(64,2)=*(25,1),96,32;\ _disabled:/0(0,1),128,32;_flags:/0(64,3)=s4undoing:(0,1),0,1;\ redoing:(0,1),1,1;registeredForCallback:(0,1),2,1;\ postingCheckpointNotification:(0,1),3,1;groupsByEvent:(0,1),4,1;\ reserved:(0,1),5,27;;,160,32;_target:/0(4,5),192,32;\ _NSUndoManagerReserved1:/0(27,2),224,32;_NSUndoManagerReserved2:/0(27,2),256,32;\ _NSUndoManagerReserved3:/0(27,2),288,32;; /System/Library/Frameworks/Foundation.framework/Headers/NSURLHandle.h  :T(65,1)=eNSURLHandleNotLoaded:0,NSURLHandleLoadSucceeded:1,\ NSURLHandleLoadInProgress:2,NSURLHandleLoadFailed:3,; NSURLHandleStatus:t(65,2)=(65,1) NSURLHandle:T(65,3)=s20isa:/1(4,1),0,32;_clients:/1(45,8),32,32;\ _data:/1(4,5),64,32;_status:/1(65,2),96,32;_reserved:/1(0,1),128,32;;  NSURL:T(64,4)=s20isa:/1(4,1),0,32;_urlString:/1(31,2),32,32;\ _baseURL:/1(64,5)=*(64,4),64,32;_clients:/1(27,2),96,32;\ _reserved:/1(27,2),128,32;;  /System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h NSUserDefaults:T(66,1)=s24isa:/1(4,1),0,32;_preferences:/0(27,2),32,32;\ _temp:/0(66,2)=*(26,2),64,32;_reserved:/0(31,2),96,32;\ _reserved2:/0(27,2),128,32;_reserved3:/0(27,2),160,32;; /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FixMath.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/IntlResources.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Collections.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Endian.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Gestalt.h  :T(74,1)=egestaltSystemVersion:1937339254,;  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Math64.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Components.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Resources.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Multiprocessing.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Aliases.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacLocales.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Debugging.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/PLStringFuncs.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverSynchronization.h /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/NameRegistry.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h   /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/NumberFormatting.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/StringCompare.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextUtils.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/ToolUtils.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/UnicodeUtilities.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fp.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fenv.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextEncodingConverter.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/UnicodeConverter.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Threads.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Folders.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Timer.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MultiprocessingInfo.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/LowMem.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/AVLTree.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/PEFBinaryFormat.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/AIFF.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextEncodingPlugin.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransport.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransportProviders.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OT.framework/Headers/OpenTransportProtocol.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/Power.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/SCSI.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/AppleDiskPartitions.h  /System/Library/Frameworks/CoreServices.framework/Frameworks/SecurityCore.framework/Headers/KeychainCore.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/SFNTLayoutTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ATSTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/SFNTTypes.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ScalerStreamTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ATS.framework/Headers/ScalerTypes.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMTypes.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMICCProfile.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMDeviceIntegration.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMMComponent.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers/CMScriptingPlugin.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEDataModel.h DescType:t(122,1)=(6,7) AEDataStorageType:t(122,2)=(122,3)=*(122,4)=xsOpaqueAEDataStorageType: AEDataStorage:t(122,5)=(122,6)=*(122,2) AEDesc:T(122,7)=s8descriptorType:(122,1),0,32;dataHandle:(122,5),32,32;; AEDesc:t(122,8)=(122,7)  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AppleEvents.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEPackObject.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEObjects.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AERegistry.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEUserTermTypes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEHelpers.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/AE.framework/Headers/AEMach.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QuickdrawText.h   /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QDOffscreen.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Fonts.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Palettes.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/PictUtils.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/ATSUnicode.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Video.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Displays.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/FontSync.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Headers/PMCore.h /System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Headers/PMDefinitions.h  /System/Library/Frameworks/ApplicationServices.framework/Frameworks/LangAnalysis.framework/Headers/Dictionary.h    /System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Headers/LaunchServices.h   NSAppleEventDescriptor:T(66,3)=s16isa:/1(4,1),0,32;_desc:/0(122,8),32,64;\ _hasValidDesc:/0(4,10),96,8;;  /System/Library/Frameworks/Foundation.framework/Headers/NSAppleEventManager.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptClassDescription.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptCommand.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptCommandDescription.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptKeyValueCoding.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptObjectSpecifiers.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptStandardSuiteCommands.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptSuiteRegistry.h  /System/Library/Frameworks/Foundation.framework/Headers/NSScriptWhoseTests.h  /System/Library/Frameworks/AppKit.framework/Headers/NSGraphicsContext.h /System/Library/Frameworks/AppKit.framework/Headers/NSCell.h /System/Library/Frameworks/AppKit.framework/Headers/NSText.h /System/Library/Frameworks/AppKit.framework/Headers/NSView.h /System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h NSResponder:T(156,1)=s8isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h  _NSBorderType:T(155,1)=eNSNoBorder:0,NSLineBorder:1,\ NSBezelBorder:2,NSGrooveBorder:3,; NSBorderType:t(155,2)=(155,1) __VFlags:T(155,3)=s4rotatedFromBase:(0,4),0,1;rotatedOrScaledFromBase:(0,4),1,1;\ autosizing:(0,4),2,6;autoresizeSubviews:(0,4),8,1;\ wantsGState:(0,4),9,1;needsDisplay:(0,4),10,1;\ validGState:(0,4),11,1;newGState:(0,4),12,1;\ noVerticalAutosizing:(0,4),13,1;frameChangeNotesSuspended:(0,4),14,1;\ needsFrameChangeNote:(0,4),15,1;focusChangeNotesSuspended:(0,4),16,1;\ boundsChangeNotesSuspended:(0,4),17,1;needsBoundsChangeNote:(0,4),18,1;\ removingWithoutInvalidation:(0,4),19,1;interfaceStyle0:(0,4),20,1;\ needsDisplayForBounds:(0,4),21,1;specialArchiving:(0,4),22,1;\ interfaceStyle1:(0,4),23,1;retainCount:(0,4),24,6;\ retainCountOverMax:(0,4),30,1;aboutToResize:(0,4),31,1;; _VFlags:t(155,4)=(155,3) _NSViewAuxiliary:t(155,5)=(155,6)=xs__NSViewAuxiliary: __VFlags2:T(155,7)=s4nextKeyViewRefCount:(0,4),0,14;\ previousKeyViewRefCount:(0,4),14,14;clippedFocus:(0,4),28,1;\ hasToolTip:(0,4),29,1;needsRealLockFocus:(0,4),30,1;\ menuWasSet:(0,4),31,1;; NSView:T(155,8)=s80isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9)=*(155,10)=xsNSWindow:,384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11)=*(155,5),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSSpellProtocol.h  _NSTextAlignment:T(154,1)=eNSLeftTextAlignment:0,NSRightTextAlignment:1,\ NSCenterTextAlignment:2,NSJustifiedTextAlignment:3,\ NSNaturalTextAlignment:4,; NSTextAlignment:t(154,2)=(154,1) NSText:T(154,3)=s84isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _ivars:/1(27,2),640,32;;  _NSCellType:T(153,1)=eNSNullCellType:0,NSTextCellType:1,\ NSImageCellType:2,; NSCellType:t(153,2)=(153,1) _NSCellState:T(153,3)=eNSMixedState:-1,NSOffState:0,\ NSOnState:1,; NSCellStateValue:t(153,4)=(153,3) __CFlags:T(153,5)=s8state:(0,4),0,1;highlighted:(0,4),1,1;\ disabled:(0,4),2,1;editable:(0,4),3,1;type:(153,2),4,2;\ vCentered:(0,4),6,1;hCentered:(0,4),7,1;\ bordered:(0,4),8,1;bezeled:(0,4),9,1;selectable:(0,4),10,1;\ scrollable:(0,4),11,1;continuous:(0,4),12,1;\ actOnMouseDown:(0,4),13,1;isLeaf:(0,4),14,1;\ mnemonicLocation:(0,4),15,8;actOnMouseDragged:(0,4),23,1;\ isLoaded:(0,4),24,1;noWrap:(0,4),25,1;dontActOnMouseUp:(0,4),26,1;\ isWhite:(0,4),27,1;useUserKeyEquivalent:(0,4),28,1;\ showsFirstResponder:(0,4),29,1;docEditing:(0,4),30,1;\ docSaved:(0,4),31,1;wasSelectable:(0,4),32,1;\ hasInvalidObject:(0,4),33,1;allowsEditingTextAttributes:(0,4),34,1;\ importsGraphics:(0,4),35,1;alignment:(154,2),36,3;\ retainCountOverMax:(0,4),39,1;retainCount:(0,4),40,7;\ refusesFirstResponder:(0,4),47,1;needsHighlightedText:(0,4),48,1;\ doesntShowMnemonicNormally:(0,4),49,1;currentlyEditing:(0,4),50,1;\ allowsMixedState:(0,4),51,1;inMixedState:(0,4),52,1;\ sendsActionOnEndEditing:(0,4),53,1;inSendAction:(0,4),54,1;\ menuWasSet:(0,4),55,1;controlTint:(0,4),56,3;\ controlSize:(0,4),59,2;RESERVED4:(0,4),61,3;; _CFlags:t(153,6)=(153,5) NSCell:T(153,7)=s20isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;;  NSActionCell:T(152,1)=s36isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h  /System/Library/Frameworks/AppKit.framework/Headers/NSBox.h _NSTitlePosition:T(160,1)=eNSNoTitle:0,NSAboveTop:1,\ NSAtTop:2,NSBelowTop:3,NSAboveBottom:4,\ NSAtBottom:5,NSBelowBottom:6,; NSTitlePosition:t(160,2)=(160,1) __bFlags:T(160,3)=s4borderType:(155,2),0,2;titlePosition:(160,2),2,3;\ transparent:(0,4),5,1;boxType:(0,4),6,2;\ _RESERVED:(0,4),8,24;; NSBox:T(160,4)=s136isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _titleCell:/1(4,5),640,32;_contentView:/1(4,5),672,32;\ _offsets:/1(42,4),704,64;_borderRect:/1(42,6),768,128;\ _titleRect:/1(42,6),896,128;_bFlags:/1(160,3),1024,32;\ _unused:/1(4,5),1056,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSControl.h __conFlags:T(161,1)=s4enabled:(0,4),0,1;ignoreMultiClick:(0,4),1,1;\ calcSize:(0,4),2,1;drawingAncestor:(0,4),3,1;\ reservedControl:(0,4),4,28;; NSControl:T(161,2)=s92isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSButtonCell.h __BCFlags:T(162,1)=s4pushIn:(0,4),0,1;changeContents:(0,4),1,1;\ changeBackground:(0,4),2,1;changeGray:(0,4),3,1;\ lightByContents:(0,4),4,1;lightByBackground:(0,4),5,1;\ lightByGray:(0,4),6,1;reserved:(0,4),7,1;\ bordered:(0,4),8,1;imageOverlaps:(0,4),9,1;\ horizontal:(0,4),10,1;bottomOrLeft:(0,4),11,1;\ imageAndText:(0,4),12,1;imageSizeDiff:(0,4),13,1;\ hasKeyEquivalentInsteadOfImage:(0,4),14,1;lastState:(0,4),15,1;\ transparent:(0,4),16,1;inset:(0,4),17,2;doesNotDimImage:(0,4),19,1;\ gradientType:(0,4),20,3;useButtonImageSource:(0,4),23,1;\ alternateMnemonicLocation:(0,4),24,8;; _BCFlags:t(162,2)=(162,1) __BCFlags2:T(162,3)=s4keyEquivalentModifierMask:(0,4),0,24;\ reserved:(0,4),24,3;mouseInside:(0,4),27,1;\ showsBorderOnlyWhileMouseInside:(0,4),28,1;bezelStyle:(0,4),29,3;; _BCFlags2:t(162,4)=(162,3) NSButtonCell:T(162,5)=s68isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(31,2),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(31,2),352,32;\ _bcFlags2:/1(162,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(162,2),448,32;\ _normalImage:/1(162,6)=*(162,7)=xsNSImage:,480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;;  NSButton:T(160,5)=s92isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSClipView.h __cvFlags:T(163,1)=s4isFlipped:(0,4),0,1;onlyUncovered:(0,4),1,1;\ reflectScroll:(0,4),2,1;usedByCell:(0,4),3,1;\ scrollClipTo:(0,4),4,1;noCopyOnScroll:(0,4),5,1;\ drawsBackground:(0,4),6,1;scrollInProgress:(0,4),7,1;\ skipRemoveSuperviewCheck:(0,4),8,1;RESERVED:(0,4),9,23;; NSClipView:T(163,2)=s132isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _backgroundColor:/1(163,3)=*(163,4)=xsNSColor:,640,32;_docView:/1(163,5)=*(155,8),672,32;\ _docRect:/1(42,6),704,128;_oldDocFrame:/1(42,6),832,128;\ _cursor:/1(163,6)=*(163,7)=xsNSCursor:,960,32;_halftone:/1(27,2),992,32;\ _cvFlags:/1(163,1),1024,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSFont.h __fFlags:T(164,1)=s4usedByWS:(0,4),0,1;usedByPrinter:(0,4),1,1;\ isScreenFont:(0,4),2,1;_systemFontType:(0,4),3,4;\ _flippedUsedByWS:(0,4),7,1;_flippedUsedByPrinter:(0,4),8,1;\ _hasCharWidth:(0,4),9,1;_RESERVED:(0,4),10,3;\ _matrixIsIdentity:(0,4),13,1;_matrixIsFlipped:(0,4),14,1;\ _hasStyle:(0,4),15,1;; NSFont:T(164,2)=s24isa:/1(4,1),0,32;_name:/1(31,2),32,32;\ _size:/1(0,12),64,32;_reservedFont1:/1(27,2),96,32;\ _fFlags:/1(164,1),128,32;_reservedFont2:/1(0,9),160,16;;  /System/Library/Frameworks/AppKit.framework/Headers/NSFontManager.h NSFontTraitMask:t(165,1)=(0,4) _fmFlags:T(165,2)=s4multipleFont:(0,4),0,1;disabled:(0,4),1,1;\ makePanelKey:(0,4),2,1;_RESERVED:(0,4),3,13;; NSFontManager:T(165,3)=s52isa:/1(4,1),0,32;_panel:/0(4,5),32,32;\ _reservedFMInt1:/0(0,4),64,32;_action:/0(4,7),96,32;\ _whatToDo:/0(0,1),128,32;_traitToChange:/0(165,1),160,32;\ _selFont:/0(165,4)=*(164,2),192,32;_fmFlags:/0(165,2),224,32;\ _lastPos:/0(0,9),256,16;_delegate:/0(4,5),288,32;\ _reservedFMint2:/0(0,4),320,32;_reservedFMint3:/0(0,4),352,32;\ _reservedFMint4:/0(0,4),384,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSPanel.h /System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h NSWindowAuxiliaryOpaque:t(167,1)=(167,2)=xsNSWindowAuxiliary: __wFlags:T(167,3)=s8backing:(0,4),0,2;visible:(0,4),2,1;\ isMainWindow:(0,4),3,1;isKeyWindow:(0,4),4,1;\ hidesOnDeactivate:(0,4),5,1;dontFreeWhenClosed:(0,4),6,1;\ oneShot:(0,4),7,1;deferred:(0,4),8,1;cursorRectsDisabled:(0,4),9,1;\ haveFreeCursorRects:(0,4),10,1;validCursorRects:(0,4),11,1;\ docEdited:(0,4),12,1;dynamicDepthLimit:(0,4),13,1;\ worksWhenModal:(0,4),14,1;limitedBecomeKey:(0,4),15,1;\ needsFlush:(0,4),16,1;viewsNeedDisplay:(0,4),17,1;\ ignoredFirstMouse:(0,4),18,1;repostedFirstMouse:(0,4),19,1;\ windowDying:(0,4),20,1;tempHidden:(0,4),21,1;\ floatingPanel:(0,4),22,1;wantsToBeOnMainScreen:(0,4),23,1;\ optimizedDrawingOk:(0,4),24,1;optimizeDrawing:(0,4),25,1;\ titleIsRepresentedFilename:(0,4),26,1;excludedFromWindowsMenu:(0,4),27,1;\ depthLimit:(0,4),28,4;delegateReturnsValidRequestor:(0,4),32,1;\ lmouseupPending:(0,4),33,1;rmouseupPending:(0,4),34,1;\ wantsToDestroyRealWindow:(0,4),35,1;wantsToRegDragTypes:(0,4),36,1;\ sentInvalidateCursorRectsMsg:(0,4),37,1;avoidsActivation:(0,4),38,1;\ frameSavedUsingTitle:(0,4),39,1;didRegDragTypes:(0,4),40,1;\ delayedOneShot:(0,4),41,1;postedNeedsDisplayNote:(0,4),42,1;\ postedInvalidCursorRectsNote:(0,4),43,1;initialFirstResponderTempSet:(0,4),44,1;\ autodisplay:(0,4),45,1;tossedFirstEvent:(0,4),46,1;\ isImageCache:(0,4),47,1;interfaceStyle:(0,4),48,3;\ keyViewSelectionDirection:(0,4),51,2;defaultButtonCellKETemporarilyDisabled:(0,4),53,1;\ defaultButtonCellKEDisabled:(0,4),54,1;menuHasBeenSet:(0,4),55,1;\ wantsToBeModal:(0,4),56,1;showingModalFrame:(0,4),57,1;\ isTerminating:(0,4),58,1;win32MouseActivationInProgress:(0,4),59,1;\ makingFirstResponderForMouseDown:(0,4),60,1;needsZoom:(0,4),61,1;\ sentWindowNeedsDisplayMsg:(0,4),62,1;liveResizeActive:(0,4),63,1;; NSWindow:T(155,10)=s132isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_contentView:/1(4,5),192,32;\ _delegate:/1(4,5),224,32;_firstResponder:/1(167,4)=*(156,1),256,32;\ _lastLeftHit:/1(163,5),288,32;_lastRightHit:/1(163,5),320,32;\ _counterpart:/1(4,5),352,32;_fieldEditor:/1(4,5),384,32;\ _winEventMask:/1(0,1),416,32;_windowNum:/1(0,1),448,32;\ _level:/1(0,1),480,32;_backgroundColor:/1(163,3),512,32;\ _borderView:/1(4,5),544,32;_postingDisabled:/1(0,11),576,8;\ _styleMask:/1(0,11),584,8;_flushDisabled:/1(0,11),592,8;\ _reservedWindow1:/1(0,11),600,8;_cursorRects:/1(27,2),608,32;\ _trectTable:/1(27,2),640,32;_miniIcon:/1(162,6),672,32;\ _lastResizeTime:/1(0,1),704,32;_dragTypes:/1(167,5)=*(59,2),736,32;\ _representedFilename:/1(31,2),768,32;_sizeLimits:/1(167,6)=*(42,4),800,32;\ _frameSaveName:/1(31,2),832,32;_regDragTypes:/1(167,7)=*(59,1),864,32;\ _wFlags:/1(167,3),896,64;_defaultButtonCell:/1(4,5),960,32;\ _initialFirstResponder:/1(163,5),992,32;_auxiliaryStorage:/1(167,8)=*(167,1),1024,32;;  NSPanel:T(166,1)=s132isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_contentView:/1(4,5),192,32;\ _delegate:/1(4,5),224,32;_firstResponder:/1(167,4),256,32;\ _lastLeftHit:/1(163,5),288,32;_lastRightHit:/1(163,5),320,32;\ _counterpart:/1(4,5),352,32;_fieldEditor:/1(4,5),384,32;\ _winEventMask:/1(0,1),416,32;_windowNum:/1(0,1),448,32;\ _level:/1(0,1),480,32;_backgroundColor:/1(163,3),512,32;\ _borderView:/1(4,5),544,32;_postingDisabled:/1(0,11),576,8;\ _styleMask:/1(0,11),584,8;_flushDisabled:/1(0,11),592,8;\ _reservedWindow1:/1(0,11),600,8;_cursorRects:/1(27,2),608,32;\ _trectTable:/1(27,2),640,32;_miniIcon:/1(162,6),672,32;\ _lastResizeTime:/1(0,1),704,32;_dragTypes:/1(167,5),736,32;\ _representedFilename:/1(31,2),768,32;_sizeLimits:/1(167,6),800,32;\ _frameSaveName:/1(31,2),832,32;_regDragTypes:/1(167,7),864,32;\ _wFlags:/1(167,3),896,64;_defaultButtonCell:/1(4,5),960,32;\ _initialFirstResponder:/1(163,5),992,32;_auxiliaryStorage:/1(167,8),1024,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSBrowser.h __Brflags:T(168,1)=s4allowsMultipleSelection:(0,4),0,1;\ allowsBranchSelection:(0,4),1,1;reuseColumns:(0,4),2,1;\ isTitled:(0,4),3,1;titleFromPrevious:(0,4),4,1;\ separateColumns:(0,4),5,1;delegateImplementsWillDisplayCell:(0,4),6,1;\ delegateSetsTitles:(0,4),7,1;delegateSelectsCellsByString:(0,4),8,1;\ delegateDoesNotCreateRowsInMatrix:(0,4),9,1;delegateValidatesColumns:(0,4),10,1;\ acceptArrowKeys:(0,4),11,1;dontDrawTitles:(0,4),12,1;\ sendActionOnArrowKeys:(0,4),13,1;prohibitEmptySel:(0,4),14,1;\ hasHorizontalScroller:(0,4),15,1;time:(0,4),16,1;\ allowsIncrementalSearching:(0,4),17,1;delegateSelectsCellsByRow:(0,4),18,1;\ disableCompositing:(0,4),19,6;refusesFirstResponder:(0,4),25,1;\ acceptsFirstMouse:(0,4),26,1;actionNeedsToBeSent:(0,4),27,1;\ usesSmallSizeTitleFont:(0,4),28,1;drawFocusRing:(0,4),29,1;\ RESERVED:(0,4),30,2;; _Brflags:t(168,2)=(168,1) NSBrowser:T(168,3)=s160isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _target:/1(4,5),736,32;_action:/1(4,7),768,32;\ _delegate:/1(4,5),800,32;_doubleAction:/1(4,7),832,32;\ _matrixClass:/1(4,1),864,32;_cellPrototype:/1(4,5),896,32;\ _columnSize:/1(42,4),928,64;_numberOfVisibleColumns:/1(0,8),992,16;\ _minColumnWidth:/1(0,8),1008,16;_firstVisibleColumn:/1(0,8),1024,16;\ _maxVisibleColumns:/1(0,8),1040,16;_titles:/1(45,8),1056,32;\ _pathSeparator:/1(31,2),1088,32;_columns:/1(45,8),1120,32;\ _unusedColumns:/1(45,8),1152,32;_firstColumnTitle:/1(31,2),1184,32;\ _scroller:/1(168,4)=*(168,5)=xsNSScroller:,1216,32;_brflags:/1(168,2),1248,32;;  __fpFlags:T(165,5)=s24multipleFont:(0,4),0,1;dirty:(0,4),1,1;\ amPreviewing:(0,4),2,1;alwaysPreview:(0,4),3,1;\ dontPreview:(0,4),4,1;sizeFieldChanged:(0,4),5,1;\ sizeValueCacheIsValid:(0,4),6,1;sizeFieldIsRelative:(0,4),7,1;\ inittedCollPane:(0,4),8,1;inittedFavePane:(0,4),9,1;\ didInitialPaneSetup:(0,4),10,1;_inNewCol:(0,4),11,1;\ _delRespFamily:(0,4),12,1;_delRespFace:(0,4),13,1;\ _delRespSize:(0,4),14,1;_delRespColl:(0,4),15,1;\ _miniModeActive:(0,4),32,32;_miniFavsActive:(0,4),64,32;\ _mainFavActive:(0,4),96,32;_inTakingSizeFromSlider:(0,4),128,32;\ RESERVED2:(0,4),160,13;; NSFontPanel:T(165,6)=s612isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_contentView:/1(4,5),192,32;\ _delegate:/1(4,5),224,32;_firstResponder:/1(167,4),256,32;\ _lastLeftHit:/1(163,5),288,32;_lastRightHit:/1(163,5),320,32;\ _counterpart:/1(4,5),352,32;_fieldEditor:/1(4,5),384,32;\ _winEventMask:/1(0,1),416,32;_windowNum:/1(0,1),448,32;\ _level:/1(0,1),480,32;_backgroundColor:/1(163,3),512,32;\ _borderView:/1(4,5),544,32;_postingDisabled:/1(0,11),576,8;\ _styleMask:/1(0,11),584,8;_flushDisabled:/1(0,11),592,8;\ _reservedWindow1:/1(0,11),600,8;_cursorRects:/1(27,2),608,32;\ _trectTable:/1(27,2),640,32;_miniIcon:/1(162,6),672,32;\ _lastResizeTime:/1(0,1),704,32;_dragTypes:/1(167,5),736,32;\ _representedFilename:/1(31,2),768,32;_sizeLimits:/1(167,6),800,32;\ _frameSaveName:/1(31,2),832,32;_regDragTypes:/1(167,7),864,32;\ _wFlags:/1(167,3),896,64;_defaultButtonCell:/1(4,5),960,32;\ _initialFirstResponder:/1(163,5),992,32;_auxiliaryStorage:/1(167,8),1024,32;\ _faces:/1(165,7)=*(165,8)=xsNSMatrix:,1056,32;_families:/1(165,7),1088,32;\ _preview:/1(4,5),1120,32;_current:/1(4,5),1152,32;\ _size:/1(4,5),1184,32;_sizes:/1(165,7),1216,32;_manager:/1(4,5),1248,32;\ _selFont:/1(4,5),1280,32;_collections:/1(45,8),1312,32;\ _collectionDicts:/1(66,2),1344,32;_accessoryView:/1(4,5),1376,32;\ _browser:/1(165,9)=*(168,3),1408,32;_setButton:/1(165,10)=*(160,5),1440,32;\ _separator:/1(4,5),1472,32;_sizeTitle:/1(4,5),1504,32;\ _titles:/1(4,5),1536,32;_fontSetButton:/1(4,5),1568,32;\ _fontSetMatrix:/1(4,5),1600,32;_chooser:/1(4,5),1632,32;\ _previewBox:/1(4,5),1664,32;_fpFlags:/1(165,5),1696,192;\ _cachedSizeValue:/1(0,12),1888,32;_familyDict:/1(4,5),1920,32;\ _curSelFace:/1(4,5),1952,32;_tabVue:/1(4,5),1984,32;\ _choosePanelButton:/1(4,5),2016,32;_collectionBox:/1(4,5),2048,32;\ _favoritesBox:/1(4,5),2080,32;_mainBrowserBox:/1(4,5),2112,32;\ _collectionBrowser:/1(4,5),2144,32;_colFamilies:/1(4,5),2176,32;\ _allFamiliesBrowser:/1(4,5),2208,32;_favoritesBrowser:/1(4,5),2240,32;\ _favoritesDict:/1(4,5),2272,32;_curFontSetName:/1(31,2),2304,32;\ _passedCel:/1(4,5),2336,32;_passedStr:/1(4,5),2368,32;\ faces:/1(4,5),2400,32;families:/1(4,5),2432,32;\ _addFavButton:/1(4,5),2464,32;_lboxSep:/1(4,5),2496,32;\ _rboxSep:/1(4,5),2528,32;_removeFromColButton:/1(4,5),2560,32;\ _addToColButton:/1(4,5),2592,32;_lastPane:/1(0,1),2624,32;\ _splitVue:/1(4,5),2656,32;_fontSizesEditingPaneInnerBox:/1(4,5),2688,32;\ _reserved3:/1(165,11)=ar(0,1);0;4;(4,5),2720,160;_mainColBrowser:/1(4,5),2880,32;\ _fontSizeChooserTabVue:/1(4,5),2912,32;_fixedListBox:/1(4,5),2944,32;\ _adjSliderBox:/1(4,5),2976,32;_fontSizesEditingPane:/1(4,5),3008,32;\ _miniModeBox:/1(4,5),3040,32;_miniModeCollectionsPopup:/1(4,5),3072,32;\ _miniModeCollectionsPopupBox:/1(4,5),3104,32;_miniModeFamPopup:/1(4,5),3136,32;\ _miniModeFavoritesPopup:/1(4,5),3168,32;_miniModeFavoritesPopupBox:/1(4,5),3200,32;\ _miniModeTypefacePopup:/1(4,5),3232,32;_miniModeTypefacesBox:/1(4,5),3264,32;\ _miniModeSizesPopup:/1(4,5),3296,32;_sizeSliderBox:/1(4,5),3328,32;\ _sizesBox:/1(4,5),3360,32;_fontSizeChooserType:/1(0,1),3392,32;\ _sizesSlider:/1(4,5),3424,32;_collectionMatrix:/1(4,5),3456,32;\ _fixedListScrollView:/1(4,5),3488,32;_sizesEditList:/1(4,5),3520,32;\ _mmTitleCollections:/1(4,5),3552,32;_mmTitleFavorites:/1(4,5),3584,32;\ _mmTitleFamily:/1(4,5),3616,32;_mmTitleTypeface:/1(4,5),3648,32;\ _mmTitleSize:/1(4,5),3680,32;_mainBox:/1(4,5),3712,32;\ _mainBoxSuperview:/1(4,5),3744,32;_sizesScrollView:/1(4,5),3776,32;\ _fontColBox:/1(4,5),3808,32;_doneButton:/1(4,5),3840,32;\ _Reserved32:/1(165,12)=ar(0,1);0;27;(4,5),3872,896;_sizeChooser:/1(4,5),4768,32;\ _sizeChooserFld_New:/1(4,5),4800,32;_sizeChooserFld_Min:/1(4,5),4832,32;\ _sizeChooserFld_Max:/1(4,5),4864,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSMatrix.h __MFlags:T(169,1)=s4highlightMode:(0,4),0,1;radioMode:(0,4),1,1;\ listMode:(0,4),2,1;allowEmptySel:(0,4),3,1;\ autoscroll:(0,4),4,1;selectionByRect:(0,4),5,1;\ drawsCellBackground:(0,4),6,1;drawsBackground:(0,4),7,1;\ autosizeCells:(0,4),8,1;drawingAncestor:(0,4),9,1;\ tabKeyTraversesCells:(0,4),10,1;tabKeyTraversesCellsExplicitlySet:(0,4),11,1;\ allowsIncrementalSearching:(0,4),12,1;currentlySelectingCell:(0,4),13,1;\ onlySetKeyCell:(0,4),14,1;changingSelectionWithKeyboard:(0,4),15,1;\ dontScroll:(0,4),16,1;refusesFirstResponder:(0,4),17,1;\ useSimpleTrackingMode:(0,4),18,1;checkForSimpleTrackingMode:(0,4),19,1;\ liveResizeImageCacheingEnabled:(0,4),20,1;hasCachedSubclassIsSafeForLiveResize:(0,4),21,1;\ subclassIsSafeForLiveResize:(0,4),22,1;tmpAllowNonVisibleCellsToBecomeFirstResponder:(0,4),23,1;\ reservedMatrix:(0,4),24,8;; _MFlags:t(169,2)=(169,1) NSMatrix:T(165,8)=s176isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _target:/1(4,5),736,32;_action:/1(4,7),768,32;\ _doubleAction:/1(4,7),800,32;_errorAction:/1(4,7),832,32;\ _delegate:/1(4,5),864,32;_selectedCell:/1(4,5),896,32;\ _selectedRow:/1(0,1),928,32;_selectedCol:/1(0,1),960,32;\ _numRows:/1(0,1),992,32;_numCols:/1(0,1),1024,32;\ _cellSize:/1(42,4),1056,64;_intercell:/1(42,4),1120,64;\ _font:/1(4,5),1184,32;_protoCell:/1(4,5),1216,32;\ _cellClass:/1(4,5),1248,32;_backgroundColor:/1(163,3),1280,32;\ _private:/1(27,2),1312,32;_cells:/1(45,8),1344,32;\ _mFlags:/1(169,2),1376,32;;   /System/Library/Frameworks/AppKit.framework/Headers/NSFormCell.h NSFormCell:T(170,1)=s48isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_titleWidth:/1(0,12),288,32;\ _titleCell:/1(4,5),320,32;_titleEndPoint:/1(0,12),352,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSMenuItem.h /System/Library/Frameworks/AppKit.framework/Headers/NSUserInterfaceValidation.h  __miFlags:T(171,1)=s4disabled:(0,4),0,1;isSeparator:(0,4),1,1;\ hidden:(0,4),2,1;RESERVED:(0,4),3,29;; NSMenuItem:T(171,2)=s64isa:/1(4,1),0,32;_menu:/0(171,3)=*(171,4)=xsNSMenu:,32,32;\ _title:/0(31,2),64,32;_keyEquivalent:/0(31,2),96,32;\ _keyEquivalentModifierMask:/0(0,4),128,32;_mnemonicLocation:/0(0,4),160,32;\ _state:/0(0,1),192,32;_image:/0(162,6),224,32;_onStateImage:/0(162,6),256,32;\ _offStateImage:/0(162,6),288,32;_mixedStateImage:/0(162,6),320,32;\ _target:/0(4,5),352,32;_action:/0(4,7),384,32;\ _tag:/0(0,1),416,32;_extraData:/0(27,2),448,32;\ _miFlags:/0(171,1),480,32;;  __mFlags:T(170,2)=s4noAutoenable:(0,4),0,1;menuChangedMessagesDisabled:(0,4),1,1;\ needsMenuChangedMessage:(0,4),2,1;suppressAutoenable:(0,4),3,1;\ disabled:(0,4),4,1;ownedByPopUp:(0,4),5,1;\ RESERVED:(0,4),6,26;; NSMenu:T(171,4)=s28isa:/1(4,1),0,32;_supermenu:/0(171,3),32,32;\ _title:/0(31,2),64,32;_itemArray:/0(45,8),96,32;\ _menuImpl:/0(4,5),128,32;_mFlags:/0(170,2),160,32;\ _name:/0(31,2),192,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSColor.h NSColor:T(163,4)=s4isa:/1(4,1),0,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSImageRep.h   /System/Library/Frameworks/AppKit.framework/Headers/NSBrowserCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSCachedImageRep.h  /System/Library/Frameworks/AppKit.framework/Headers/NSColorList.h  /System/Library/Frameworks/AppKit.framework/Headers/NSColorPanel.h  /System/Library/Frameworks/AppKit.framework/Headers/NSColorPicking.h  /System/Library/Frameworks/AppKit.framework/Headers/NSCursor.h _cursorFlags:T(180,1)=s4onMouseExited:(0,4),0,1;onMouseEntered:(0,4),1,1;\ :(0,4),2,30;; NSCursor:T(163,7)=s20isa:/1(4,1),0,32;_hotSpot:/1(42,2),32,64;\ _flags:/1(180,1),96,32;_image:/1(4,5),128,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDocument.h __docFlags:T(181,1)=s4inClose:(0,4),0,1;hasUndoManager:(0,4),1,1;\ isShowingPageLayout:(0,4),2,1;isRunningPrintOperation:(0,4),3,1;\ RESERVED:(0,4),4,28;; NSDocument:T(181,2)=s52isa:/1(4,1),0,32;_window:/0(155,9),32,32;\ _windowControllers:/0(4,5),64,32;_fileName:/0(31,2),96,32;\ _fileType:/0(31,2),128,32;_printInfo:/0(181,3)=*(181,4)=xsNSPrintInfo:,160,32;\ _changeCount:/0(0,3),192,32;savePanelAccessory:/0(163,5),224,32;\ spaButton:/0(181,5)=*(181,6)=xsNSPopUpButton:,256,32;_documentIndex:/0(0,1),288,32;\ _undoManager:/0(181,7)=*(64,1),320,32;_docFlags:/0(181,1),352,32;\ _savePanelSaveType:/0(31,2),384,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDocumentController.h __controllerFlags:T(182,1)=s4shouldCreateUI:(0,4),0,1;\ RESERVED:(0,4),1,31;; NSDocumentController:T(182,2)=s24isa:/1(4,1),0,32;_documents:/0(4,5),32,32;\ _controllerFlags:/0(182,1),64,32;_types:/0(64,2),96,32;\ _recents:/0(45,8),128,32;_recentsLimit:/0(0,1),160,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSDragging.h  /System/Library/Frameworks/AppKit.framework/Headers/NSErrors.h  /System/Library/Frameworks/AppKit.framework/Headers/NSEvent.h  /System/Library/Frameworks/AppKit.framework/Headers/NSFileWrapper.h  /System/Library/Frameworks/AppKit.framework/Headers/NSHelpManager.h  /System/Library/Frameworks/AppKit.framework/Headers/NSImage.h __imageFlags:T(188,1)=s4scalable:(0,4),0,1;dataRetained:(0,4),1,1;\ uniqueWindow:(0,4),2,1;sizeWasExplicitlySet:(0,4),3,1;\ builtIn:(0,4),4,1;needsToExpand:(0,4),5,1;\ useEPSOnResolutionMismatch:(0,4),6,1;colorMatchPreferred:(0,4),7,1;\ multipleResolutionMatching:(0,4),8,1;subImage:(0,4),9,1;\ archiveByName:(0,4),10,1;unboundedCacheDepth:(0,4),11,1;\ flipped:(0,4),12,1;aliased:(0,4),13,1;reserved1:(0,4),14,18;; NSImage:T(162,7)=s28isa:/1(4,1),0,32;_name:/1(31,2),32,32;\ _size:/1(42,4),64,64;_flags:/1(188,1),128,32;_reps:/1(27,2),160,32;\ _color:/1(163,3),192,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSImageCell.h  /System/Library/Frameworks/AppKit.framework/Headers/NSNibLoading.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPrinter.h  /System/Library/Frameworks/AppKit.framework/Headers/NSSpellChecker.h /System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h __spFlags:T(193,1)=s4opening:(0,4),0,1;exitOk:(0,4),1,1;\ allowMultiple:(0,4),2,1;dirty:(0,4),3,1;\ invalidateMatrices:(0,4),4,1;filtered:(0,4),5,1;\ canChooseFolders:(0,4),6,1;treatsFilePackagesAsDirectories:(0,4),7,1;\ largeFS:(0,4),8,1;delegateValidatesNew:(0,4),9,1;\ canChooseFiles:(0,4),10,1;checkCase:(0,4),11,1;\ cancd:(0,4),12,1;UnixExpert:(0,4),13,1;delegateUserEnteredFilename:(0,4),14,1;\ reserved:(0,4),15,1;delegateCompares:(0,4),16,1;\ delegateFilters:(0,4),17,1;collapsed:(0,4),18,1;\ editingNewFolder:(0,4),19,1;delegateNotifyExpands:(0,4),20,1;\ exitNextTime:(0,4),21,1;enableLeafSave:(0,4),22,1;\ openApps:(0,4),23,1;updateFavorites:(0,4),24,1;\ includeNewFolder:(0,4),25,1;RESERVED:(0,4),26,6;; NSSavePanel:T(193,2)=s248isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_contentView:/1(4,5),192,32;\ _delegate:/1(4,5),224,32;_firstResponder:/1(167,4),256,32;\ _lastLeftHit:/1(163,5),288,32;_lastRightHit:/1(163,5),320,32;\ _counterpart:/1(4,5),352,32;_fieldEditor:/1(4,5),384,32;\ _winEventMask:/1(0,1),416,32;_windowNum:/1(0,1),448,32;\ _level:/1(0,1),480,32;_backgroundColor:/1(163,3),512,32;\ _borderView:/1(4,5),544,32;_postingDisabled:/1(0,11),576,8;\ _styleMask:/1(0,11),584,8;_flushDisabled:/1(0,11),592,8;\ _reservedWindow1:/1(0,11),600,8;_cursorRects:/1(27,2),608,32;\ _trectTable:/1(27,2),640,32;_miniIcon:/1(162,6),672,32;\ _lastResizeTime:/1(0,1),704,32;_dragTypes:/1(167,5),736,32;\ _representedFilename:/1(31,2),768,32;_sizeLimits:/1(167,6),800,32;\ _frameSaveName:/1(31,2),832,32;_regDragTypes:/1(167,7),864,32;\ _wFlags:/1(167,3),896,64;_defaultButtonCell:/1(4,5),960,32;\ _initialFirstResponder:/1(163,5),992,32;_auxiliaryStorage:/1(167,8),1024,32;\ _browser:/1(165,9),1056,32;_form:/1(4,5),1088,32;\ _homeButton:/1(4,5),1120,32;_okButton:/1(4,5),1152,32;\ _removableDeviceButton:/1(4,5),1184,32;_separator:/1(4,5),1216,32;\ _accessoryView:/1(4,5),1248,32;_filename:/1(31,2),1280,32;\ _directory:/1(31,2),1312,32;_filenames:/1(64,2),1344,32;\ _requiredType:/1(31,2),1376,32;_columns:/1(27,2),1408,32;\ _reserved2:/1(31,2),1440,32;_cdcolumn:/1(0,1),1472,32;\ _scroller:/1(4,5),1504,32;_expandButton:/1(4,5),1536,32;\ _browserBox:/1(4,5),1568,32;_favoritesPopup:/1(4,5),1600,32;\ _recents:/1(64,2),1632,32;_minCollapsedSize:/1(42,4),1664,64;\ _minExpandedSize:/1(42,4),1728,64;_expandedSize:/1(42,4),1792,64;\ _recyclable:/1(4,10),1856,8;_docModal:/1(4,10),1864,8;\ _spFlags:/1(193,1),1888,32;_saveDelegate:/1(4,5),1920,32;\ _didEndSelector:/1(4,7),1952,32;;   /System/Library/Frameworks/AppKit.framework/Headers/NSPasteboard.h /System/Library/Frameworks/AppKit.framework/Headers/NSMenuItemCell.h __micFlags:T(195,1)=s4needsSizing:(0,4),0,1;highlighted:(0,4),1,1;\ needsDisplay:(0,4),2,1;keyEquivGlyphWidth:(0,4),3,16;\ RESERVED:(0,4),19,13;; NSMenuItemCell:T(195,2)=s116isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(31,2),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(31,2),352,32;\ _bcFlags2:/1(162,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(162,2),448,32;\ _normalImage:/1(162,6),480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;\ _extraData:/0(27,2),544,32;_stateImageSize:/0(42,4),576,64;\ _imageSize:/0(42,4),640,64;_titleSize:/0(42,4),704,64;\ _keyEquivalentSize:/0(42,4),768,64;_size:/0(42,4),832,64;\ _micFlags:/0(195,1),896,32;;  __pbFlags:T(194,1)=s4needsPullsDownFromTemplate:(0,4),0,1;\ RESERVED:(0,4),1,31;; NSPopUpButton:T(181,6)=s96isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _pbFlags:/0(194,1),736,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintInfo.h NSPrintInfo:T(181,4)=s12isa:/1(4,1),0,32;dictionary:/0(66,2),32,32;\ _reservedPrintInfo1:/0(27,2),64,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintOperation.h  /System/Library/Frameworks/AppKit.framework/Headers/NSPrintPanel.h  /System/Library/Frameworks/AppKit.framework/Headers/NSScreen.h  /System/Library/Frameworks/AppKit.framework/Headers/NSScrollView.h __SFlags:T(200,1)=s4vScrollerRequired:(0,4),0,1;hScrollerRequired:(0,4),1,1;\ vScrollerStatus:(0,4),2,1;hScrollerStatus:(0,4),3,1;\ noDynamicScrolling:(0,4),4,1;borderType:(155,2),5,2;\ oldRulerInstalled:(0,4),7,1;showRulers:(0,4),8,1;\ hasHorizontalRuler:(0,4),9,1;hasVerticalRuler:(0,4),10,1;\ needsTile:(0,4),11,1;doesNotDrawBackground:(0,4),12,1;\ skipRemoveSuperviewCheck:(0,4),13,1;RESERVED:(0,4),14,18;; _SFlags:t(200,2)=(200,1) NSScrollView:T(200,3)=s120isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _vScroller:/1(168,4),640,32;_hScroller:/1(168,4),672,32;\ _contentView:/1(200,4)=*(163,2),704,32;_headerClipView:/1(200,4),736,32;\ _cornerView:/1(163,5),768,32;_ruler:/1(4,5),800,32;\ _sFlags:/1(200,2),832,32;_extraIvars:/1(27,2),864,32;\ _horizontalRuler:/1(200,5)=*(200,6)=xsNSRulerView:,896,32;_verticalRuler:/1(200,5),928,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSScroller.h _NSScrollArrowPosition:T(201,1)=eNSScrollerArrowsMaxEnd:0,NSScrollerArrowsMinEnd:1,\ NSScrollerArrowsNone:2,; NSScrollArrowPosition:t(201,2)=(201,1) _NSUsableScrollerParts:T(201,3)=eNSNoScrollerParts:0,NSOnlyScrollerArrows:1,\ NSAllScrollerParts:2,; NSUsableScrollerParts:t(201,4)=(201,3) __sFlags2:T(201,5)=s4hitPart:(0,4),0,4;controlSize:(0,4),4,2;\ reserved:(0,4),6,26;; _sFlags:T(201,6)=s4isHoriz:(0,4),0,1;arrowsLoc:(201,2),1,2;\ partsUsable:(201,4),3,2;fine:(0,4),5,1;needsEnableFlush:(0,4),6,1;\ thumbing:(0,4),7,1;slotDrawn:(0,4),8,1;\ knobDrawn:(0,4),9,1;lit:(0,4),10,1;knobLit:(0,4),11,1;\ reserved:(0,4),12,1;controlTint:(0,4),13,3;\ repeatCount:(0,4),16,16;; NSScroller:T(168,5)=s120isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _curValue:/1(0,12),736,32;_percent:/1(0,12),768,32;\ _knobSize:/1(0,12),800,32;_sFlags2:/1(201,5),832,32;\ _target:/1(4,5),864,32;_action:/1(4,7),896,32;\ sFlags:/1(201,6),928,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSSliderCell.h __sliderCellFlags:T(202,1)=s4weAreVertical:(0,4),0,1;\ weAreVerticalSet:(0,4),1,1;reserved1:(0,4),2,1;\ isPressed:(0,4),3,1;allowsTickMarkValuesOnly:(0,4),4,1;\ tickMarkPosition:(0,4),5,1;reserved2:(0,4),6,26;; NSSliderCell:T(202,2)=s104isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_reserved:/1(202,3)=ar(0,1);0;2;(0,1),288,96;\ _numberOfTickMarks:/1(0,1),384,32;_altIncValue:/1(0,13),416,64;\ _value:/1(0,13),480,64;_maxValue:/1(0,13),544,64;\ _minValue:/1(0,13),608,64;_trackRect:/1(42,6),672,128;\ _scFlags:/1(202,1),800,32;;  NSSlider:T(201,7)=s92isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextField.h NSTextField:T(203,1)=s100isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _delegate:/1(4,5),736,32;_errorAction:/1(4,7),768,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextFieldCell.h __tfFlags:T(204,1)=s4drawsBackground:(0,4),0,1;reservedTextFieldCell:(0,4),1,31;; NSTextFieldCell:T(204,2)=s48isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_backgroundColor:/1(163,3),288,32;\ _textColor:/1(163,3),320,32;_tfFlags:/1(204,1),352,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSWindowController.h  /System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h  /System/Library/Frameworks/AppKit.framework/Headers/NSComboBox.h NSComboBox:T(207,1)=s104isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _delegate:/1(4,5),736,32;_errorAction:/1(4,7),768,32;\ _dataSource:/1(4,5),800,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSComboBoxCell.h __cbcFlags:T(208,1)=s4usesDataSource:(0,4),0,1;completes:(0,4),1,1;\ buttonBordered:(0,4),2,1;popUpIsUp:(0,4),3,1;\ reserved:(0,4),4,12;visibleItems:(0,4),16,16;; NSComboBoxCell:T(208,2)=s88isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_backgroundColor:/1(163,3),288,32;\ _textColor:/1(163,3),320,32;_tfFlags:/1(204,1),352,32;\ _delegate:/1(4,5),384,32;_dataSource:/1(4,5),416,32;\ _cbcFlags:/1(208,1),448,32;_buttonCell:/1(208,3)=*(162,5),480,32;\ _tableView:/1(208,4)=*(208,5)=xsNSTableView:,512,32;_scrollView:/1(208,6)=*(200,3),544,32;\ _popUp:/1(155,9),576,32;_popUpList:/1(45,8),608,32;\ _cellFrame:/1(208,7)=*(42,6),640,32;_reserved:/1(27,2),672,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTableColumn.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTableHeaderView.h NSTableHeaderView:T(210,1)=s116isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tableView:/1(208,4),640,32;_resizedColumn:/1(0,1),672,32;\ _draggedColumn:/1(0,1),704,32;_mayDragColumn:/1(0,1),736,32;\ _headerDragImage:/1(162,6),768,32;_draggedDistance:/1(0,12),800,32;\ _resizeCursor:/1(163,6),832,32;_drawingLastColumn:/1(4,10),864,8;\ _reserved:/1(4,5),896,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTableView.h __TvFlags:T(211,1)=s4allowsColumnReordering:(0,4),0,1;\ allowsColumnResizing:(0,4),1,1;drawsGrid:(0,4),2,1;\ allowsEmptySelection:(0,4),3,1;allowsMultipleSelection:(0,4),4,1;\ allowsColumnSelection:(0,4),5,1;selectionType:(0,4),6,2;\ changingLayout:(0,4),8,1;compareWidthWithSuperview:(0,4),9,2;\ delegateWillDisplayCell:(0,4),11,1;delegateShouldEditTableColumn:(0,4),12,1;\ delegateShouldSelectRow:(0,4),13,1;delegateShouldSelectTableColumn:(0,4),14,1;\ delegateSelectionShouldChangeInTableView:(0,4),15,1;autoresizesAllColumnsToFit:(0,4),16,1;\ dataSourceSetObjectValue:(0,4),17,1;selectionPostingDisableCount:(0,4),18,7;\ movedPostingDisableCount:(0,4),25,6;refusesFirstResponder:(0,4),31,1;; _TvFlags:t(211,2)=(211,1) NSTableView:T(208,5)=s228isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _tag:/1(0,1),640,32;_cell:/1(4,5),672,32;_conFlags:/1(161,1),704,32;\ _headerView:/1(211,3)=*(210,1),736,32;_cornerView:/1(163,5),768,32;\ _tableColumns:/1(45,8),800,32;_editingCell:/1(211,4)=*(153,7),832,32;\ _delegate:/1(4,5),864,32;_dataSource:/1(4,5),896,32;\ _intercellSpacing:/1(42,4),928,64;_rowHeight:/1(0,12),992,32;\ _lastSelectedColumn:/1(0,1),1024,32;_lastSelectedRow:/1(0,1),1056,32;\ _editingRow:/1(0,1),1088,32;_editingColumn:/1(0,1),1120,32;\ _selectedColumns:/1(211,5)=*(211,6)=xs_NSSparseArray:,1152,32;_selectedRows:/1(211,5),1184,32;\ _bodyDragImage:/1(162,6),1216,32;_backgroundColor:/1(163,3),1248,32;\ _gridColor:/1(163,3),1280,32;_dragYPos:/1(0,12),1312,32;\ _target:/1(4,5),1344,32;_action:/1(4,7),1376,32;\ _doubleAction:/1(4,7),1408,32;_rectOfLastColumn:/1(42,6),1440,128;\ _lastCachedRectColumn:/1(0,1),1568,32;_rectOfLastRow:/1(42,6),1600,128;\ _lastCachedRectRow:/1(0,1),1728,32;_tvFlags:/1(211,2),1760,32;\ _reserved:/1(27,2),1792,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSOutlineView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSAttributedString.h  /System/Library/Frameworks/AppKit.framework/Headers/NSLayoutManager.h __lmFlags:T(214,1)=s4containersAreFull:(0,4),0,1;glyphsMightDrawOutsideLines:(0,4),1,1;\ backgroundLayoutEnabled:(0,4),2,1;resizingInProgress:(0,4),3,1;\ allowScreenFonts:(0,4),4,1;cachedRectArrayInUse:(0,4),5,1;\ displayInvalidationInProgress:(0,4),6,1;insertionPointNeedsUpdate:(0,4),7,1;\ layoutManagerInDirtyList:(0,4),8,1;usingGlyphCache:(0,4),9,1;\ showInvisibleCharacters:(0,4),10,1;showControlCharacters:(0,4),11,1;\ delegateRespondsToDidInvalidate:(0,4),12,1;delegateRespondsToDidComplete:(0,4),13,1;\ glyphFormat:(0,4),14,2;textStorageRespondsToIsEditing:(0,4),16,1;\ notifyEditedInProgress:(0,4),17,1;containersChanged:(0,4),18,1;\ isGeneratingGlyphs:(0,4),19,1;hasNonGeneratedGlyphData:(0,4),20,1;\ loggedBGLayoutException:(0,4),21,1;isLayoutRequestedFromSubthread:(0,4),22,1;\ defaultAttachmentScaling:(0,4),23,2;isInUILayoutMode:(0,4),25,1;\ _pad:(0,4),26,6;; NSLayoutManager:T(214,2)=s216isa:/1(4,1),0,32;_textStorage:/0(214,3)=*(214,4)=xsNSTextStorage:,32,32;\ _glyphGenerator:/0(214,5)=*(214,6)=xsNSGlyphGenerator:,64,32;_typesetter:/0(214,7)=*(214,8)=xsNSTypesetter:,96,32;\ _textContainers:/0(45,8),128,32;_containerUsedRects:/0(214,9)=*(214,10)=xsNSStorage:,160,32;\ _glyphs:/0(214,9),192,32;_containerRuns:/0(214,11)=*(214,12)=xsNSRunStorage:,224,32;\ _fragmentRuns:/0(214,11),256,32;_glyphLocations:/0(214,11),288,32;\ _glyphRotationRuns:/0(214,11),320,32;_extraLineFragmentRect:/0(42,6),352,128;\ _extraLineFragmentUsedRect:/0(42,6),480,128;_extraLineFragmentContainer:/0(214,13)=*(214,14)=xsNSTextContainer:,608,32;\ _glyphHoles:/0(214,15)=*(214,16)=xsNSSortedArray:,640,32;_layoutHoles:/0(214,15),672,32;\ _lmFlags:/0(214,1),704,32;_delegate:/0(4,5),736,32;\ _textViewResizeDisableStack:/0(0,9),768,16;_displayInvalidationDisableStack:/0(0,9),784,16;\ _deferredDisplayCharRange:/0(23,2),800,64;_firstTextView:/0(214,17)=*(214,18)=xsNSTextView:,864,32;\ _cachedRectArray:/0(208,7),896,32;_cachedRectArrayCapacity:/0(0,4),928,32;\ _glyphBuffer:/0(20,4),960,32;_glyphBufferSize:/0(0,4),992,32;\ _cachedLocationNominalGlyphRange:/0(23,2),1024,64;_cachedLocationGlyphIndex:/0(0,4),1088,32;\ _cachedLocation:/0(42,2),1120,64;_cachedFontCharRange:/0(23,2),1184,64;\ _cachedFont:/0(165,4),1248,32;_firstUnlaidGlyphIndex:/0(0,4),1280,32;\ _firstUnlaidCharIndex:/0(0,4),1312,32;_rulerAccView:/0(214,19)=*(160,4),1344,32;\ _rulerAccViewAlignmentButtons:/0(165,7),1376,32;_rulerAccViewLeadingField:/0(214,20)=*(203,1),1408,32;\ _rulerAccViewLeftTabWell:/0(214,21)=*(214,22)=xsNSTabWell:,1440,32;_rulerAccViewRightTabWell:/0(214,21),1472,32;\ _rulerAccViewCenterTabWell:/0(214,21),1504,32;_rulerAccViewDecimalTabWell:/0(214,21),1536,32;\ _rulerAccViewIncrementLineHeightButtons:/0(165,7),1568,32;_rulerAccViewFixedLineHeightButtons:/0(165,7),1600,32;\ _newlyFilledGlyphRange:/0(23,2),1632,64;_extraData:/0(27,2),1696,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextStorage.h NSTextStorage:T(214,4)=s28isa:/1(4,1),0,32;_editedRange:/1(23,2),32,64;\ _editedDelta:/1(0,1),96,32;_flags:/1(215,1)=s4editedMask:(0,4),0,8;\ :(0,4),8,8;disabled:(0,4),16,16;;,128,32;\ _layoutManagers:/1(45,8),160,32;_sideData:/1(27,2),192,32;; /System/Library/Frameworks/AppKit.framework/Headers/NSInputManager.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h  NSTextView:T(214,18)=s84isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _ivars:/1(27,2),640,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTextContainer.h __tcFlags:T(218,1)=s2widthTracksTextView:(0,9),0,1;\ heightTracksTextView:(0,9),1,1;observingFrameChanges:(0,9),2,1;\ _reserved:(0,9),3,13;; NSTextContainer:T(214,14)=s28isa:/1(4,1),0,32;_layoutManager:/0(218,2)=*(214,2),32,32;\ _textView:/0(214,17),64,32;_size:/0(42,4),96,64;\ _lineFragmentPadding:/0(0,12),160,32;_tcFlags:/0(218,1),192,16;;  /System/Library/Frameworks/AppKit.framework/Headers/NSRulerMarker.h __rFlags:T(219,1)=s4movable:(0,4),0,1;removable:(0,4),1,1;\ dragging:(0,4),2,1;pinned:(0,4),3,1;_reserved:(0,4),4,28;; NSRulerMarker:T(219,2)=s32isa:/1(4,1),0,32;_ruler:/1(200,5),32,32;\ _location:/1(0,12),64,32;_image:/1(162,6),96,32;\ _imageOrigin:/1(42,2),128,64;_rFlags:/1(219,1),192,32;\ _representedObject:/1(4,5),224,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSRulerView.h  :T(220,1)=eNSHorizontalRuler:0,NSVerticalRuler:1,; NSRulerOrientation:t(220,2)=(220,1) NSRulerView:T(200,6)=s144isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _scrollView:/0(208,6),640,32;_orientation:/0(220,2),672,32;\ _units:/0(31,2),704,32;_originOffset:/0(0,12),736,32;\ _ruleThickness:/0(0,12),768,32;_thicknessForMarkers:/0(0,12),800,32;\ _thicknessForAccessoryView:/0(0,12),832,32;_clientView:/0(163,5),864,32;\ _markers:/0(45,8),896,32;_accessoryView:/0(163,5),928,32;\ _cachedHashDict:/0(31,3),960,32;_cachedDocViewToRulerConversion:/0(0,12),992,32;\ _cachedContentBoundsOrigin:/0(42,2),1024,64;_draggingMarker:/0(220,3)=*(219,2),1088,32;\ _reservedRulerView1:/0(27,2),1120,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSTabView.h  /System/Library/Frameworks/AppKit.framework/Headers/NSTabViewItem.h  /System/Library/Frameworks/AppKit.framework/Headers/NSMenuView.h __mvFlags:T(223,1)=s4needsSizing:(0,4),0,1;releasingWindow:(0,4),1,1;\ isHorizontal:(0,4),2,1;disableSizing:(0,4),3,1;\ attachedSubmenuWhileMouseWasUp:(0,4),4,1;needsToCreateCells:(0,4),5,1;\ allowsTearOffs:(0,4),6,1;isTearOff:(0,4),7,1;\ keyEquivGlyphWidth:(0,4),8,16;disableResize:(0,4),24,1;\ savedHODState:(0,4),25,1;drawCenter:(0,4),26,1;\ RESERVED:(0,4),27,5;; NSMenuView:T(223,2)=s156isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _frame:/1(42,6),64,128;_bounds:/1(42,6),192,128;\ _superview:/1(4,5),320,32;_subviews:/1(4,5),352,32;\ _window:/1(155,9),384,32;_gState:/1(0,1),416,32;\ _frameMatrix:/1(4,5),448,32;_drawMatrix:/1(4,5),480,32;\ _dragTypes:/1(4,5),512,32;_viewAuxiliary:/1(155,11),544,32;\ _vFlags:/1(155,4),576,32;_vFlags2:/1(155,7),608,32;\ _menu:/0(171,3),640,32;_cells:/0(45,8),672,32;_stateImageWidth:/0(0,12),704,32;\ _imageAndTitleWidth:/0(0,12),736,32;_keyEquivalentWidth:/0(0,12),768,32;\ _extents:/0(223,3)=*(0,12),800,32;_extentsCapacity:/0(0,4),832,32;\ _highlightedItemIndex:/0(0,1),864,32;_submenuPopupTimer:/0(27,2),896,32;\ _attachedMenuView:/0(223,4)=*(223,2),928,32;_scrollArrowHeight:/0(0,12),960,32;\ _maxWinHeight:/0(0,12),992,32;_font:/0(165,4),1024,32;\ _minSize:/0(42,4),1056,64;_horizontalEdgePad:/0(0,12),1120,32;\ trackingState:/0(27,2),1152,32;_scrollingView:/0(4,5),1184,32;\ _mvFlags:/0(223,1),1216,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSPopUpButtonCell.h __pbcFlags:T(224,1)=s4pullsDown:(0,4),0,1;preferredEdge:(0,4),1,3;\ menuIsAttached:(0,4),4,1;usesItemFromMenu:(0,4),5,1;\ altersStateOfSelectedItem:(0,4),6,1;decoding:(0,4),7,1;\ arrowPosition:(0,4),8,2;ignoreMenuLayout:(0,4),10,1;\ RESERVED:(0,4),11,21;; NSPopUpButtonCell:T(224,2)=s128isa:/1(4,1),0,32;_contents:/1(4,5),32,32;\ _cFlags:/1(153,6),64,64;_support:/0(4,5),128,32;\ _tag:/1(0,1),160,32;_target:/1(4,5),192,32;_action:/1(4,7),224,32;\ _controlView:/1(4,5),256,32;_altContents:/1(31,2),288,32;\ _sound:/1(4,5),320,32;_keyEquivalent:/1(31,2),352,32;\ _bcFlags2:/1(162,4),384,32;_periodicDelay:/1(0,9),416,16;\ _periodicInterval:/1(0,9),432,16;_bcFlags:/1(162,2),448,32;\ _normalImage:/1(162,6),480,32;_alternateImageOrKeyEquivalentFont:/1(4,5),512,32;\ _extraData:/0(27,2),544,32;_stateImageSize:/0(42,4),576,64;\ _imageSize:/0(42,4),640,64;_titleSize:/0(42,4),704,64;\ _keyEquivalentSize:/0(42,4),768,64;_size:/0(42,4),832,64;\ _micFlags:/0(195,1),896,32;_menu:/0(171,3),928,32;\ _selectedIndex:/0(0,1),960,32;_pbcFlags:/0(224,1),992,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSStatusBar.h NSStatusBar:T(225,1)=s20isa:/1(4,1),0,32;_fReserved1:/0(0,3),32,32;\ _fReserved2:/0(0,3),64,32;_fReserved3:/0(0,3),96,32;\ _fReserved4:/0(0,3),128,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSStatusItem.h _SBIFlags:t(226,1)=(226,2)=s4customView:(0,4),0,1;highlightMode:(0,4),1,1;\ reserved:(0,4),2,30;; NSStatusItem:T(226,3)=s44isa:/1(4,1),0,32;_fStatusBar:/0(226,4)=*(225,1),32,32;\ _fLength:/0(0,12),64,32;_fWindow:/0(155,9),96,32;\ _fView:/0(163,5),128,32;_fPriority:/0(0,1),160,32;\ _fFlags:/0(226,1),192,32;_fReserved1:/0(0,3),224,32;\ _fReserved2:/0(0,3),256,32;_fReserved3:/0(0,3),288,32;\ _fReserved4:/0(0,3),320,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSSound.h  /System/Library/Frameworks/AppKit.framework/Headers/NSDrawer.h _NSDrawerState:T(228,1)=eNSDrawerClosedState:0,NSDrawerOpeningState:1,\ NSDrawerOpenState:2,NSDrawerClosingState:3,; NSDrawerState:t(228,2)=(228,1) NSDrawer:T(228,3)=s100isa:/1(4,1),0,32;_nextResponder:/1(4,5),32,32;\ _drawerState:/1(228,2),64,32;_drawerNextState:/1(228,2),96,32;\ _drawerEdge:/1(42,8),128,32;_drawerNextEdge:/1(42,8),160,32;\ _drawerPreferredEdge:/1(42,8),192,32;_drawerPercent:/1(0,12),224,32;\ _drawerPercentSaved:/1(0,12),256,32;_drawerLeadingOffset:/1(0,12),288,32;\ _drawerTrailingOffset:/1(0,12),320,32;_drawerLock:/1(228,4)=*(48,1),352,32;\ _drawerWindow:/1(155,9),384,32;_drawerParentWindow:/1(155,9),416,32;\ _drawerNextParentWindow:/1(155,9),448,32;_drawerSaveName:/1(31,2),480,32;\ _drawerStartTime:/1(7,5),512,64;_drawerTotalTime:/1(7,4),576,64;\ _drawerLoop:/1(17,1),640,32;_drawerTimer:/1(17,7),672,32;\ _drawerDelegate:/1(4,5),704,32;_drawerFlags:/1(0,4),736,32;\ _drawerObserver:/1(17,4),768,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h  /System/Library/Frameworks/AppKit.framework/Headers/NSDocumentScripting.h  /System/Library/Frameworks/AppKit.framework/Headers/NSToolbar.h  :T(231,1)=eNSToolbarDisplayModeDefault:0,NSToolbarDisplayModeIconAndLabel:1,\ NSToolbarDisplayModeIconOnly:2,NSToolbarDisplayModeLabelOnly:3,; NSToolbarDisplayMode:t(231,2)=(231,1) __tbFlags:T(231,3)=s4allowsUserCustomization:(0,4),0,1;\ autosavesUsingIdentifer:(0,4),1,1;initialConfigurationDone:(0,4),2,1;\ shouldHideAfterCustomization:(0,4),3,1;delegateWillAddItem:(0,4),4,1;\ delegateDidRemoveItem:(0,4),5,1;delegateItemWithItemIdentifer:(0,4),6,1;\ delegateNotificationsEnabled:(0,4),7,1;prefersToBeShown:(0,4),8,1;\ loadItemsImmediately:(0,4),9,1;currentItemsContainsPlaceholder:(0,4),10,1;\ customizationPanelIsRunning:(0,4),11,1;usesCustomSheetWidth:(0,4),12,1;\ RESERVED:(0,4),13,19;; NSToolbar:T(231,4)=s64isa:/1(4,1),0,32;_toolbarIdentifier:/0(31,2),32,32;\ _currentItems:/0(45,8),64,32;_currentItemIdentifiers:/0(45,8),96,32;\ _initPListDatabase:/0(31,3),128,32;_initPListTarget:/0(4,5),160,32;\ _toolbarDisplayMode:/0(231,2),192,32;_toolbarItemSizeMode:/0(0,1),224,32;\ _delegate:/0(4,5),256,32;_window:/0(155,9),288,32;\ _configPalette:/0(4,5),320,32;_toolbarView:/0(4,5),352,32;\ _notifPostEnabledCount:/0(0,1),384,32;_tbFlags:/0(231,3),416,32;\ _customizationSheetWidth:/0(0,1),448,32;_tbReserved:/0(27,2),480,32;;  /System/Library/Frameworks/AppKit.framework/Headers/NSToolbarItem.h __tbiFlags:T(232,1)=s4viewRespondsToIsEnabled:(0,4),0,1;\ viewRespondsToSetEnabled:(0,4),1,1;viewRespondsToTag:(0,4),2,1;\ viewRespondsToSetTag:(0,4),3,1;viewRespondsToAction:(0,4),4,1;\ viewRespondsToSetAction:(0,4),5,1;viewRespondsToTarget:(0,4),6,1;\ viewRespondsToSetTarget:(0,4),7,1;viewRespondsToImage:(0,4),8,1;\ viewRespondsToSetImage:(0,4),9,1;isEnabled:(0,4),10,1;\ isUserRemovable:(0,4),11,1;menuHasBeenSet:(0,4),12,1;\ menuRepIsDefault:(0,4),13,1;viewHasBeenLoaded:(0,4),14,1;\ drawingForDragImage:(0,4),15,1;isCustomItemType:(0,4),16,1;\ RESERVED:(0,4),17,15;; NSToolbarItem:T(232,2)=s72isa:/1(4,1),0,32;_toolbar:/0(232,3)=*(231,4),32,32;\ _image:/0(162,6),64,32;_itemIdentifier:/0(31,2),96,32;\ _label:/0(31,2),128,32;_labelAlignment:/0(154,2),160,32;\ _paletteLabel:/0(31,2),192,32;_toolTip:/0(31,2),224,32;\ _menuItemRep:/0(232,4)=*(171,2),256,32;_tag:/0(0,1),288,32;\ _tbiFlags:/0(232,1),320,32;_tbiReserved:/0(27,2),352,32;\ _itemViewer:/0(4,5),384,32;_view:/0(163,5),416,32;\ _minSize:/0(42,4),448,64;_maxSize:/0(42,4),512,64;;     /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/HIToolbox.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Balloons.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Menus.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Events.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Processes.h   /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/TextEdit.h   /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Notification.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Drag.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Icons.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Controls.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/MacWindows.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/CarbonEvents.h   /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Lists.h /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/AEInteraction.h   /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Scrap.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/MacTextEditor.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/MacHelp.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/ControlDefinitions.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/TSMTE.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/TranslationExtensions.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Translation.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/TypeSelect.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/InternetConfig.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/MacApplication.h  /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Keyboards.h  /System/Library/Frameworks/Carbon.framework/Frameworks/CarbonSound.framework/Headers/Sound.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/OSA.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/OSAComp.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/OSAGeneric.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/AppleScript.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASDebugging.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h  /System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/FinderRegistry.h  /System/Library/Frameworks/Carbon.framework/Frameworks/Print.framework/Headers/PMApplication.h  /System/Library/Frameworks/Carbon.framework/Frameworks/NavigationServices.framework/Headers/Navigation.h  /System/Library/Frameworks/Carbon.framework/Frameworks/CommonPanels.framework/Headers/ColorPicker.h  /System/Library/Frameworks/Carbon.framework/Frameworks/CommonPanels.framework/Headers/CMCalibrator.h   /System/Library/Frameworks/Carbon.framework/Frameworks/SpeechRecognition.framework/Headers/SpeechRecognition.h  /System/Library/Frameworks/Carbon.framework/Frameworks/NSL.framework/Headers/NSL.h /System/Library/Frameworks/Carbon.framework/Frameworks/SecurityHI.framework/Headers/KeychainHI.h  /System/Library/Frameworks/Carbon.framework/Frameworks/Help.framework/Headers/AppleHelp.h  /System/Library/Frameworks/Carbon.framework/Frameworks/ImageCapture.framework/Headers/ICAApplication.h  /System/Library/Frameworks/Carbon.framework/Frameworks/ImageCapture.framework/Headers/ICADevice.h  /System/Library/Frameworks/Carbon.framework/Frameworks/ImageCapture.framework/Headers/ICACamera.h    Dockling.h Dockling:T(278,1)=s20isa:/1(4,1),0,32;docklingBundle:/1(278,2)=*(28,1),32,32;\ docklingWindow:/1(155,9),64,32;menu:/1(171,3),96,32;\ isMenuChanged:/1(4,10),128,8;;  currentMenuItems:S(45,8) _currentMenuItems currentMenu:S(64,2) _currentMenu DisplayWarning:F(0,30) version:p(0,3) docklingBundle:p(278,2) warningWindow:(155,9) textField:(214,20) urlString:(31,2) url:(64,5)    _NSMakeRect _dockling DocklingInit:F(0,1) windowID:p(0,1) bundleURL:p(7,8) foo:p(0,1) bar:p(0,1) callback:p(27,2) bundlePath:(31,2) docklingBundle:(278,2) infoDict:(31,3) docklingClassName:(31,2) docklingClass:(4,1) frame:(42,6) window:(155,9) err:(6,4) version:(0,3) allowedVersion:(0,3) bundleIdentifier:(31,2) defaults:(0,31)=*(66,1) dictionary:(66,2) plistVersionObject:(0,32)=*(24,2) defaultsVersionObject:(0,32) oldDefaultsVersionObject:(0,32) plistVersion:(0,3) defaultsVersion:(0,3) oldDefaultsVersion:(0,3)  _localHandler:(31,6)  localException:(31,5)      BuildMenu:F(64,2) menu:p(171,3) menuArray:(45,8) i:(0,1)  menuDict:(66,2) menuItem:(232,4) commandNum:(0,32)  submenuArray:(64,2)      ReloadMenu:F(0,30)  DocklingGetMenu:F(7,1)  DocklingToggle:F(0,1)  DocklingDoMenuCommand:F(0,1) command:p(0,1) menuItem:(232,4)    DocklingTerminate:F(0,30)  _objc_category:T(0,33)=s20category_name:(20,4),0,32;class_name:(20,4),32,32;\ instance_methods:(0,34)=*(0,35)=xs_objc_method_list:,64,32;class_methods:(0,34),96,32;\ protocol_list:(20,5),128,32;; _objc_symtab:T(0,36)=s12sel_ref_cnt:(0,3),0,32;refs:(0,37)=*(4,8),32,32;\ cls_def_cnt:(0,8),64,16;cat_def_cnt:(0,8),80,16;\ defs:(0,38)=ar(0,1);0;-1;(27,2),96,0;; _OBJC_SELECTOR_REFERENCES_0:S(4,8) _OBJC_SELECTOR_REFERENCES_1:S(4,8) _OBJC_SELECTOR_REFERENCES_2:S(4,8) _OBJC_SELECTOR_REFERENCES_3:S(4,8) _OBJC_SELECTOR_REFERENCES_4:S(4,8) _OBJC_SELECTOR_REFERENCES_5:S(4,8) _OBJC_SELECTOR_REFERENCES_6:S(4,8) _OBJC_SELECTOR_REFERENCES_7:S(4,8) _OBJC_SELECTOR_REFERENCES_8:S(4,8) _OBJC_SELECTOR_REFERENCES_9:S(4,8) _OBJC_SELECTOR_REFERENCES_10:S(4,8) _OBJC_SELECTOR_REFERENCES_11:S(4,8) _OBJC_SELECTOR_REFERENCES_12:S(4,8) _OBJC_SELECTOR_REFERENCES_13:S(4,8) _OBJC_SELECTOR_REFERENCES_14:S(4,8) _OBJC_SELECTOR_REFERENCES_15:S(4,8) _OBJC_SELECTOR_REFERENCES_16:S(4,8) _OBJC_SELECTOR_REFERENCES_17:S(4,8) _OBJC_SELECTOR_REFERENCES_18:S(4,8) _OBJC_SELECTOR_REFERENCES_19:S(4,8) _OBJC_SELECTOR_REFERENCES_20:S(4,8) _OBJC_SELECTOR_REFERENCES_21:S(4,8) _OBJC_SELECTOR_REFERENCES_22:S(4,8) _OBJC_SELECTOR_REFERENCES_23:S(4,8) _OBJC_SELECTOR_REFERENCES_24:S(4,8) _OBJC_SELECTOR_REFERENCES_25:S(4,8) _OBJC_SELECTOR_REFERENCES_26:S(4,8) _OBJC_SELECTOR_REFERENCES_27:S(4,8) _OBJC_SELECTOR_REFERENCES_28:S(4,8) _OBJC_SELECTOR_REFERENCES_29:S(4,8) _OBJC_SELECTOR_REFERENCES_30:S(4,8) _OBJC_SELECTOR_REFERENCES_31:S(4,8) _OBJC_SELECTOR_REFERENCES_32:S(4,8) _OBJC_SELECTOR_REFERENCES_33:S(4,8) _OBJC_SELECTOR_REFERENCES_34:S(4,8) _OBJC_SELECTOR_REFERENCES_35:S(4,8) _OBJC_SELECTOR_REFERENCES_36:S(4,8) _OBJC_SELECTOR_REFERENCES_37:S(4,8) _OBJC_SELECTOR_REFERENCES_38:S(4,8) _objc_module:T(0,39)=s16version:(0,3),0,32;size:(0,3),32,32;\ name:(20,4),64,32;symtab:(0,40)=*(0,36),96,32;; _OBJC_CLASS_REFERENCES_0:S(4,2) _OBJC_CLASS_REFERENCES_1:S(4,2) _OBJC_CLASS_REFERENCES_2:S(4,2) _OBJC_CLASS_REFERENCES_3:S(4,2) _OBJC_CLASS_REFERENCES_4:S(4,2) _OBJC_CLASS_REFERENCES_5:S(4,2) _OBJC_CLASS_NAME_0:S(0,41)=ar(0,1);0;15;(0,2) _OBJC_CLASS_NAME_1:S(0,42)=ar(0,1);0;14;(0,2) _OBJC_CLASS_NAME_2:S(0,43)=ar(0,1);0;8;(0,2) _OBJC_CLASS_NAME_3:S(0,44)=ar(0,1);0;19;(0,2) _OBJC_CLASS_NAME_4:S(0,45)=ar(0,1);0;8;(0,2) _OBJC_CLASS_NAME_5:S(0,46)=ar(0,1);0;8;(0,2) _OBJC_CLASS_NAME_6:S(0,47)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_0:S(0,48)=ar(0,1);0;20;(0,2) _OBJC_METH_VAR_NAME_1:S(0,49)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_2:S(0,50)=ar(0,1);0;16;(0,2) _OBJC_METH_VAR_NAME_3:S(0,51)=ar(0,1);0;24;(0,2) _OBJC_METH_VAR_NAME_4:S(0,52)=ar(0,1);0;25;(0,2) _OBJC_METH_VAR_NAME_5:S(0,53)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_6:S(0,54)=ar(0,1);0;13;(0,2) _OBJC_METH_VAR_NAME_7:S(0,55)=ar(0,1);0;8;(0,2) _OBJC_METH_VAR_NAME_8:S(0,56)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_9:S(0,57)=ar(0,1);0;17;(0,2) _OBJC_METH_VAR_NAME_10:S(0,58)=ar(0,1);0;28;(0,2) _OBJC_METH_VAR_NAME_11:S(0,59)=ar(0,1);0;11;(0,2) _OBJC_METH_VAR_NAME_12:S(0,60)=ar(0,1);0;5;(0,2) _OBJC_METH_VAR_NAME_13:S(0,61)=ar(0,1);0;29;(0,2) _OBJC_METH_VAR_NAME_14:S(0,62)=ar(0,1);0;22;(0,2) _OBJC_METH_VAR_NAME_15:S(0,63)=ar(0,1);0;7;(0,2) _OBJC_METH_VAR_NAME_16:S(0,64)=ar(0,1);0;13;(0,2) _OBJC_METH_VAR_NAME_17:S(0,65)=ar(0,1);0;17;(0,2) _OBJC_METH_VAR_NAME_18:S(0,66)=ar(0,1);0;12;(0,2) _OBJC_METH_VAR_NAME_19:S(0,67)=ar(0,1);0;5;(0,2) _OBJC_METH_VAR_NAME_20:S(0,68)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_21:S(0,69)=ar(0,1);0;10;(0,2) _OBJC_METH_VAR_NAME_22:S(0,70)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_23:S(0,71)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_24:S(0,72)=ar(0,1);0;9;(0,2) _OBJC_METH_VAR_NAME_25:S(0,73)=ar(0,1);0;5;(0,2) _OBJC_METH_VAR_NAME_26:S(0,74)=ar(0,1);0;5;(0,2) _OBJC_METH_VAR_NAME_27:S(0,75)=ar(0,1);0;10;(0,2) _OBJC_METH_VAR_NAME_28:S(0,76)=ar(0,1);0;7;(0,2) _OBJC_METH_VAR_NAME_29:S(0,77)=ar(0,1);0;11;(0,2) _OBJC_METH_VAR_NAME_30:S(0,78)=ar(0,1);0;4;(0,2) _OBJC_METH_VAR_NAME_31:S(0,79)=ar(0,1);0;4;(0,2) _OBJC_METH_VAR_NAME_32:S(0,80)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_33:S(0,81)=ar(0,1);0;15;(0,2) _OBJC_METH_VAR_NAME_34:S(0,82)=ar(0,1);0;13;(0,2) _OBJC_METH_VAR_NAME_35:S(0,83)=ar(0,1);0;14;(0,2) _OBJC_METH_VAR_NAME_36:S(0,84)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_37:S(0,85)=ar(0,1);0;6;(0,2) _OBJC_METH_VAR_NAME_38:S(0,86)=ar(0,1);0;27;(0,2) /System/Library/Frameworks/Foundation.framework/Headers/NSGeometry.h NSMakeRect:f(42,6) x:P(0,12) y:P(0,12) w:P(0,12) h:P(0,12) r:(42,6)    dockling:S(0,87)=*(278,1)                                                                                                                                                                                                                                                                                                                                                                                                 znek/MulleNewz/m.template                                                                           0100644 0000356 0000000 00000003346 07327405246 014601  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as $FILENAME$ by $USERNAME$ on $DATE$
// $Id: m.template,v 1.1 2001/07/24 23:54:14 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/$PROJECTNAME$
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "$FILENAMESANSEXTENSION$.h"


@implementation $FILENAMESANSEXTENSION$

@end

                                                                                                                                                                                                                                                                                          znek/MulleNewz/MulleBasicXML/                                                                       0040755 0000356 0000000 00000000000 07665677453 015226  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/MulleBasicXML/CVS/                                                                   0040755 0000356 0000000 00000000000 07665677453 015661  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/MulleBasicXML/CVS/Root                                                               0100644 0000356 0000000 00000000063 07665677452 016522  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/MulleBasicXML/CVS/Repository                                                         0100644 0000356 0000000 00000000046 07665677452 017757  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek/MulleNewz/MulleBasicXML
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/MulleBasicXML/CVS/Entries                                                            0100644 0000356 0000000 00000001703 07665677453 017213  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /GNUmakefile/1.1/Sun Jun 16 23:23:11 2002//
/MXAutoContentContainerElement.h/1.2/Wed Aug  1 17:45:43 2001//
/MXAutoContentContainerElement.m/1.2/Wed Aug  1 17:45:44 2001//
/MXContainerElement.h/1.3/Thu Feb  6 18:50:03 2003//
/MXContainerElement.m/1.2/Wed Aug  1 17:45:45 2001//
/MXElement.h/1.4/Thu Feb  6 18:50:03 2003//
/MXElement.m/1.2/Wed Aug  1 17:45:45 2001//
/MXGenericContainerTag.h/1.2/Wed Aug  1 17:45:45 2001//
/MXGenericContainerTag.m/1.2/Wed Aug  1 17:45:45 2001//
/MXStringElement.h/1.2/Wed Aug  1 17:45:45 2001//
/MXStringElement.m/1.3/Tue Mar  4 22:03:30 2003//
/MXTextContainerElement.h/1.2/Wed Aug  1 17:45:46 2001//
/MXTextContainerElement.m/1.2/Wed Aug  1 17:45:46 2001//
/Makefile/1.1/Tue Jul 24 23:54:16 2001//
/Makefile.postamble/1.1/Tue Jul 24 23:54:17 2001//
/Makefile.preamble/1.1/Tue Jul 24 23:54:17 2001//
/PB.project/1.1/Tue Jul 24 23:54:17 2001//
/XMLInfo.h/1.2/Wed Aug  1 17:45:46 2001//
/XMLInfo.m/1.3/Sun Jul 28 23:33:46 2002//
D
                                                             znek/MulleNewz/MulleBasicXML/GNUmakefile                                                            0100644 0000356 0000000 00000001502 07503216737 017254  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  # MulleBasicXML
# $Id: GNUmakefile,v 1.1 2002/06/16 23:23:11 znek Exp $


ifeq "$(GNUSTEP_SYSTEM_ROOT)" ""
  include Makefile
else

include $(GNUSTEP_MAKEFILES)/common.make


SUBPROJECT_NAME = MulleBasicXML

ADDITIONAL_INCLUDE_DIRS = -I..


MulleBasicXML_OBJC_FILES = \
MXAutoContentContainerElement.m MXStringElement.m \
MXContainerElement.m            MXTextContainerElement.m \
MXElement.m                     XMLInfo.m \
MXGenericContainerTag.m

MulleBasicXML_HEADER_FILES = \
MXAutoContentContainerElement.h MXStringElement.h \
MXContainerElement.h            MXTextContainerElement.h \
MXElement.h                     XMLInfo.h \
MXGenericContainerTag.h


-include Makefile.preamble

-include GNUmakefile.preamble

include $(GNUSTEP_MAKEFILES)/subproject.make

-include GNUmakefile.postamble

-include Makefile.postamble

endif
                                                                                                                                                                                              znek/MulleNewz/MulleBasicXML/MXAutoContentContainerElement.h                                        0100644 0000356 0000000 00000003532 07332040107 023227  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXAutoContentContainerElement.h by znek on Sun 29-Oct-2000
// $Id: MXAutoContentContainerElement.h,v 1.2 2001/08/01 17:45:43 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXContainerElement.h"


@interface MXAutoContentContainerElement : MXContainerElement
{
}

- (void)addContainedElement:(MXElement *)someElement;

@end
                                                                                                                                                                      znek/MulleNewz/MulleBasicXML/MXAutoContentContainerElement.m                                        0100644 0000356 0000000 00000005151 07332040110 023225  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXAutoContentContainerElement.m by znek on Sun 29-Oct-2000
// $Id: MXAutoContentContainerElement.m,v 1.2 2001/08/01 17:45:44 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"
#import "MXTextContainerElement.h"


@implementation MXAutoContentContainerElement

//---------------------------------------------------------------------------------------
//	ACCESSOR METHODS
//---------------------------------------------------------------------------------------

- (void)setContainedElements:(NSArray *)someElements
{
  NSEnumerator *cEnum;
  MXTextContainerElement *element;

  [super setContainedElements:someElements];

  cEnum = [containedElements objectEnumerator];
  while((element = [cEnum nextObject]) != nil)
  {
    [self addContainedElement:element];
  }
}

- (void)addContainedElement:(MXElement *)someElement
{
  if([someElement isKindOfClass:[MXTextContainerElement class]])
  {
    NSString *key;
    key = [someElement valueForAttribute:@"key"];
    if(key != nil)
      [self takeValue:[(MXTextContainerElement *)someElement text] forAttribute:key];
  }
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                       znek/MulleNewz/MulleBasicXML/MXContainerElement.h                                                   0100644 0000356 0000000 00000003637 07620527133 021062  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXContainerElement.h by znek on Sun 29-Oct-2000
// $Id: MXContainerElement.h,v 1.3 2003/02/06 18:50:03 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import "MXElement.h"


@interface MXContainerElement : MXElement <EDAOMContainerElement>
{
  NSArray *containedElements;
}

- (void)setContainedElements:(NSArray *)someElements;
- (NSArray *)containedElements;

@end
                                                                                                 znek/MulleNewz/MulleBasicXML/MXContainerElement.m                                                   0100644 0000356 0000000 00000006745 07332040111 021054  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXContainerElement.m by znek on Sun 29-Oct-2000
// $Id: MXContainerElement.m,v 1.2 2001/08/01 17:45:45 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXContainerElement.h"
#import "MXStringElement.h"


@implementation MXContainerElement

//---------------------------------------------------------------------------------------
//	INIT & DEALLOC
//---------------------------------------------------------------------------------------

- (void)dealloc
{
  [containedElements release];
  [super dealloc];
}


//---------------------------------------------------------------------------------------
//	NSCoding protocol
//---------------------------------------------------------------------------------------

- (id)initWithCoder:(NSCoder *)decoder
{
	[super initWithCoder:decoder];
	containedElements = [[decoder decodeObject] retain];
  return self;
}


- (void)encodeWithCoder:(NSCoder *)encoder
{
	[super encodeWithCoder:encoder];
	[encoder encodeObject:containedElements];
}


//---------------------------------------------------------------------------------------
//	ACCESSOR METHODS
//---------------------------------------------------------------------------------------

- (void)setContainedElements:(NSArray *)someElements
{
  [someElements retain];
  [containedElements release];
  containedElements = someElements;
}

- (NSArray *)containedElements
{
  return containedElements;
}


//---------------------------------------------------------------------------------------
//	RENDERING
//---------------------------------------------------------------------------------------

- (void)appendToString:(NSMutableString *)buffer
{
  NSEnumerator *elementEnum;
  MXStringElement *element;

  elementEnum = [containedElements objectEnumerator];
  while((element = [elementEnum nextObject]) != nil)
    [element appendToString:buffer];
}

- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: %@>", NSStringFromClass([self class]), self, containedElements];
}

@end
                           znek/MulleNewz/MulleBasicXML/MXElement.h                                                            0100644 0000356 0000000 00000003735 07620527133 017216  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXElement.h by znek on Sun 29-Oct-2000
// $Id: MXElement.h,v 1.4 2003/02/06 18:50:03 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import <EDCommon/EDCommon.h>


@interface MXElement : NSObject <EDAOMElement, NSCoding>
{
  NSMutableDictionary *attributes;
}

- (void)takeValue:(id)value forAttribute:(NSString *)attribute;
- (id)valueForAttribute:(NSString *)attribute;

- (void)appendToString:(NSMutableString *)buffer;

@end
                                   znek/MulleNewz/MulleBasicXML/MXElement.m                                                            0100644 0000356 0000000 00000006614 07332040111 017204  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXElement.m by znek on Sun 29-Oct-2000
// $Id: MXElement.m,v 1.2 2001/08/01 17:45:45 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXElement.h"

@implementation MXElement

//---------------------------------------------------------------------------------------
//	INIT & DEALLOC
//---------------------------------------------------------------------------------------

- (id)init
{
  [super init];
  attributes = [[NSMutableDictionary allocWithZone:[self zone]] init];
  return self;
}


- (void)dealloc
{
  [attributes release];
  [super dealloc];
}


//---------------------------------------------------------------------------------------
//	NSCoding protocol
//---------------------------------------------------------------------------------------

- (id)initWithCoder:(NSCoder *)decoder
{
  [self init];
  [attributes addEntriesFromDictionary:[decoder decodeObject]];
  return self;
}


- (void)encodeWithCoder:(NSCoder *)encoder
{
	[encoder encodeObject:attributes];
}


//---------------------------------------------------------------------------------------
//	PARSER INTERFACE
//---------------------------------------------------------------------------------------

- (void)takeValue:(id)value forAttribute:(NSString *)attribute
{
    if(value == nil)
        [attributes removeObjectForKey:attribute];
    else
        [attributes setObject:value forKey:attribute];
}


- (id)valueForAttribute:(NSString *)attribute
{
  return [attributes objectForKey:attribute];
}


//---------------------------------------------------------------------------------------
//	RENDERING
//---------------------------------------------------------------------------------------

- (void)appendToString:(NSMutableString *)buffer
{
  [self methodIsAbstract:_cmd];
}


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: %@>", NSStringFromClass([self class]), self, attributes];
}

@end
                                                                                                                    znek/MulleNewz/MulleBasicXML/MXGenericContainerTag.h                                                0100644 0000356 0000000 00000003423 07332040111 021454  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXGenericContainerTag.h by znek on Sat 20-Jan-2001
// $Id: MXGenericContainerTag.h,v 1.2 2001/08/01 17:45:45 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXTextContainerElement.h"


@interface MXGenericContainerTag : MXTextContainerElement
{
}

@end
                                                                                                                                                                                                                                             znek/MulleNewz/MulleBasicXML/MXGenericContainerTag.m                                                0100644 0000356 0000000 00000005124 07332040111 021461  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXGenericContainerTag.m by znek on Sat 20-Jan-2001
// $Id: MXGenericContainerTag.m,v 1.2 2001/08/01 17:45:45 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------

#import "MXGenericContainerTag.h"


NSString *_tag = @"tag";


@implementation MXGenericContainerTag

////////////////////////////////////////////////////
//
//	RENDERING
//
////////////////////////////////////////////////////


- (void)appendToString:(NSMutableString *)buffer
{
  NSEnumerator *attrEnum;
  NSString *key;

  attrEnum = [attributes keyEnumerator];

  [buffer appendString:@"<"];
  [buffer appendString:[self valueForAttribute:_tag]];

  while((key = [attrEnum nextObject]) != nil)
  {
    if([key isEqualToString:_tag] == NO)
    {
      [buffer appendString:@" "];
      [buffer appendString:key];
      [buffer appendString:@"=\""];
      [buffer appendString:[self valueForAttribute:key]];
      [buffer appendString:@"\""];
    }
  }
  [buffer appendString:@">"];
  [buffer appendString:text];
  [buffer appendString:@"</"];
  [buffer appendString:[self valueForAttribute:_tag]];
  [buffer appendString:@">"];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                            znek/MulleNewz/MulleBasicXML/MXStringElement.h                                                      0100644 0000356 0000000 00000003433 07332040111 020362  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXStringElement.h by znek on Sun 29-Oct-2000
// $Id: MXStringElement.h,v 1.2 2001/08/01 17:45:45 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXElement.h"


@interface MXStringElement : MXElement
{

}

- (void)appendToString:(NSMutableString *)buffer;

@end
                                                                                                                                                                                                                                     znek/MulleNewz/MulleBasicXML/MXStringElement.m                                                      0100644 0000356 0000000 00000004106 07631221262 020377  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXStringElement.m by znek on Sun 29-Oct-2000
// $Id: MXStringElement.m,v 1.3 2003/03/04 22:03:30 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXStringElement.h"


@implementation MXStringElement

//---------------------------------------------------------------------------------------
//	RENDERING
//---------------------------------------------------------------------------------------

- (void)appendToString:(NSMutableString *)buffer
{
  NSString *value = [self valueForAttribute:@"string"];
  if(value != nil)
    [buffer appendString:value];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/MulleBasicXML/MXTextContainerElement.h                                               0100644 0000356 0000000 00000003474 07332040112 021711  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXTextContainerElement.h by znek on Sun 29-Oct-2000
// $Id: MXTextContainerElement.h,v 1.2 2001/08/01 17:45:46 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXContainerElement.h"


@interface MXTextContainerElement : MXContainerElement
{
  NSMutableString *text;
}

- (NSString *)text;

@end
                                                                                                                                                                                                    znek/MulleNewz/MulleBasicXML/MXTextContainerElement.m                                               0100644 0000356 0000000 00000006126 07332040112 021713  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as MXTextContainerElement.m by znek on Sun 29-Oct-2000
// $Id: MXTextContainerElement.m,v 1.2 2001/08/01 17:45:46 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXTextContainerElement.h"
#import "NSString+XMLExtensions.h"
#import "MXStringElement.h"

@interface MXTextContainerElement (PrivateCaching)
- (void)_cacheText;
@end

@implementation MXTextContainerElement

////////////////////////////////////////////////////
//
//	DEALLOC
//
////////////////////////////////////////////////////


- (void)dealloc
{
  [text release];
  [super dealloc];
}


////////////////////////////////////////////////////
//
//	CACHING
//
////////////////////////////////////////////////////


- (void)setContainedElements:(NSArray *)someElements
{
  [super setContainedElements:someElements];
	[self _cacheText];
}


////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (NSString *)text
{
  if(text == nil)
		[self _cacheText];
  return text;
}


- (void)_cacheText
{
  NSEnumerator *cEnum;
  MXStringElement *element;

  text = [[NSMutableString allocWithZone:[self zone]] init];
  cEnum = [containedElements objectEnumerator];
  while((element = [cEnum nextObject]) != nil)
  {
    [element appendToString:text];
  }
//  [text removeSurroundingWhitespace];
}


////////////////////////////////////////////////////
//
//	DEBUGGING
//
////////////////////////////////////////////////////


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: text=\"%@\">", NSStringFromClass([self class]), self, [self text]];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                          znek/MulleNewz/MulleBasicXML/Makefile                                                               0100644 0000356 0000000 00000003076 07327405250 016644  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  #
# Generated by the Apple Project Builder.
#
# NOTE: Do NOT change this file -- Project Builder maintains it.
#
# Put all of your customizations in files called Makefile.preamble
# and Makefile.postamble (both optional), and Makefile will include them.
#

NAME = MulleBasicXML

PROJECTVERSION = 2.8
PROJECT_TYPE = Component

CLASSES = MKXMLParser.m MXAutoContentContainerElement.m\
          MXContainerElement.m MXElement.m MXGenericContainerTag.m\
          MXStringElement.m MXTextContainerElement.m XMLInfo.m

HFILES = MKXMLParser.h MXAutoContentContainerElement.h\
         MXContainerElement.h MXElement.h MXGenericContainerTag.h\
         MXStringElement.h MXTextContainerElement.h XMLInfo.h

OTHERSRCS = Makefile.preamble Makefile Makefile.postamble

MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles
CODE_GEN_STYLE = DYNAMIC
MAKEFILE = subproj.make
NEXTSTEP_INSTALLDIR = /Applications
LIBS = 
DEBUG_LIBS = $(LIBS)
PROF_LIBS = $(LIBS)


PROJECT_HEADERS = MXAutoContentContainerElement.h MKXMLParser.h\
                  MXContainerElement.h MXElement.h\
                  MXGenericContainerTag.h MXStringElement.h\
                  MXTextContainerElement.h XMLInfo.h



NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc
WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc
PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc
NEXTSTEP_JAVA_COMPILER = /usr/bin/javac
WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe
PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac

include $(MAKEFILEDIR)/platform.make

-include Makefile.preamble

include $(MAKEFILEDIR)/$(MAKEFILE)

-include Makefile.postamble

-include Makefile.dependencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  znek/MulleNewz/MulleBasicXML/Makefile.postamble                                                     0100644 0000356 0000000 00000011131 07327405251 020621  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.postamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile, which is imported after all other makefiles, to
#  override attributes for a project's Makefile environment. This allows you  
#  to take advantage of the environment set up by the other Makefiles. 
#  You can also define custom rules at the end of this file.
#
###############################################################################
# 
# These variables are exported by the standard makefiles and can be 
# used in any customizations you make.  They are *outputs* of
# the Makefiles and should be used, not set.
# 
#  PRODUCTS: products to install.  All of these products will be placed in
#	 the directory $(DSTROOT)$(INSTALLDIR)
#  GLOBAL_RESOURCE_DIR: The directory to which resources are copied.
#  LOCAL_RESOURCE_DIR: The directory to which localized resources are copied.
#  OFILE_DIR: Directory into which .o object files are generated.
#  DERIVED_SRC_DIR: Directory used for all other derived files
#
#  ALL_CFLAGS:  flags to pass when compiling .c files
#  ALL_MFLAGS:  flags to pass when compiling .m files
#  ALL_CCFLAGS:  flags to pass when compiling .cc, .cxx, and .C files
#  ALL_MMFLAGS:  flags to pass when compiling .mm, .mxx, and .M files
#  ALL_PRECOMPFLAGS:  flags to pass when precompiling .h files
#  ALL_LDFLAGS:  flags to pass when linking object files
#  ALL_LIBTOOL_FLAGS:  flags to pass when libtooling object files
#  ALL_PSWFLAGS:  flags to pass when processing .psw and .pswm (pswrap) files
#  ALL_RPCFLAGS:  flags to pass when processing .rpc (rpcgen) files
#  ALL_YFLAGS:  flags to pass when processing .y (yacc) files
#  ALL_LFLAGS:  flags to pass when processing .l (lex) files
#
#  NAME: name of application, bundle, subproject, palette, etc.
#  LANGUAGES: langages in which the project is written (default "English")
#  English_RESOURCES: localized resources (e.g. nib's, images) of project
#  GLOBAL_RESOURCES: non-localized resources of project
#
#  SRCROOT:  base directory in which to place the new source files
#  SRCPATH:  relative path from SRCROOT to present subdirectory
#
#  INSTALLDIR: Directory the product will be installed into by 'install' target
#  PUBLIC_HDR_INSTALLDIR: where to install public headers.  Don't forget
#        to prefix this with DSTROOT when you use it.
#  PRIVATE_HDR_INSTALLDIR: where to install private headers.  Don't forget
#	 to prefix this with DSTROOT when you use it.
#
#  EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows)
#
###############################################################################

# Some compiler flags can be overridden here for certain build situations.
#
#    WARNING_CFLAGS:  flag used to set warning level (defaults to -Wmost)
#    DEBUG_SYMBOLS_CFLAGS:  debug-symbol flag passed to all builds (defaults
#	to -g)
#    DEBUG_BUILD_CFLAGS:  flags passed during debug builds (defaults to -DDEBUG)
#    OPTIMIZE_BUILD_CFLAGS:  flags passed during optimized builds (defaults
#	to -O)
#    PROFILE_BUILD_CFLAGS:  flags passed during profile builds (defaults
#	to -pg -DPROFILE)
#    LOCAL_DIR_INCLUDE_DIRECTIVE:  flag used to add current directory to
#	the include path (defaults to -I.)
#    DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags
#	passed to ld/libtool (defaults to nothing)


# Library and Framework projects only:
#    INSTALL_NAME_DIRECTIVE:  This directive ensures that executables linked
#	against the framework will run against the correct version even if
#	the current version of the framework changes.  You may override this
#	to "" as an alternative to using the DYLD_LIBRARY_PATH during your
#	development cycle, but be sure to restore it before installing.


# Ownership and permissions of files installed by 'install' target

#INSTALL_AS_USER = root
        # User/group ownership 
#INSTALL_AS_GROUP = wheel
        # (probably want to set both of these) 
#INSTALL_PERMISSIONS =
        # If set, 'install' chmod's executable to this


# Options to strip.  Note: -S strips debugging symbols (executables can be stripped
# down further with -x or, if they load no bundles, with no options at all).

#STRIPFLAGS = -S


#########################################################################
# Put rules to extend the behavior of the standard Makefiles here.  Include them in
# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble.
#
# You should avoid redefining things like "install" or "app", as they are
# owned by the top-level Makefile API and no context has been set up for where 
# derived files should go.
#
                                                                                                                                                                                                                                                                                                                                                                                                                                       znek/MulleNewz/MulleBasicXML/Makefile.preamble                                                      0100644 0000356 0000000 00000015607 07327405251 020436  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.preamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile for configuring the standard application makefiles 
#  associated with ProjectBuilder. It is included before the main makefile.
#  In Makefile.preamble you set attributes for a project, so they are available
#  to the project's makefiles.  In contrast, you typically write additional rules or 
#  override built-in behavior in the Makefile.postamble.
#  
#  Each directory in a project tree (main project plus subprojects) should 
#  have its own Makefile.preamble and Makefile.postamble.
###############################################################################
#
# Before the main makefile is included for this project, you may set:
#
#    MAKEFILEDIR: Directory in which to find $(MAKEFILE)
#    MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make)

# Compiler/linker flags added to the defaults:  The OTHER_* variables will be 
# inherited by all nested sub-projects, but the LOCAL_ versions of the same
# variables will not.  Put your -I, -D, -U, and -L flags in ProjectBuilder's
# Build Attributes inspector if at all possible.  To override the default flags
# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble.  The
# variables below are *inputs* to the build process and distinct from the override
# settings done (less often) in the Makefile.postamble.
#
#    OTHER_CFLAGS, LOCAL_CFLAGS:  additional flags to pass to the compiler
#	Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m,
#	.cc, .cxx, .C, and .M files.  There is no need to respecify the
#	flags in OTHER_MFLAGS, etc.
#    OTHER_MFLAGS, LOCAL_MFLAGS:  additional flags for .m files
#    OTHER_CCFLAGS, LOCAL_CCFLAGS:  additional flags for .cc, .cxx, and ...C files
#    OTHER_MMFLAGS, LOCAL_MMFLAGS:  additional flags for .mm and .M files
#    OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS:  additional flags used when
#	precompiling header files
#    OTHER_LDFLAGS, LOCAL_LDFLAGS:  additional flags passed to ld and libtool
#    OTHER_PSWFLAGS, LOCAL_PSWFLAGS:  additional flags passed to pswrap
#    OTHER_RPCFLAGS, LOCAL_RPCFLAGS:  additional flags passed to rpcgen
#    OTHER_YFLAGS, LOCAL_YFLAGS:  additional flags passed to yacc
#    OTHER_LFLAGS, LOCAL_LFLAGS:  additional flags passed to lex

# These variables provide hooks enabling you to add behavior at almost every 
# stage of the make:
#
#    BEFORE_PREBUILD: targets to build before installing headers for a subproject
#    AFTER_PREBUILD: targets to build after installing headers for a subproject
#    BEFORE_BUILD_RECURSION: targets to make before building subprojects
#    BEFORE_BUILD: targets to make before a build, but after subprojects
#    AFTER_BUILD: targets to make after a build
#
#    BEFORE_INSTALL: targets to build before installing the product
#    AFTER_INSTALL: targets to build after installing the product
#    BEFORE_POSTINSTALL: targets to build before postinstalling every subproject
#    AFTER_POSTINSTALL: targts to build after postinstalling every subproject
#
#    BEFORE_INSTALLHDRS: targets to build before installing headers for a 
#         subproject
#    AFTER_INSTALLHDRS: targets to build after installing headers for a subproject
#    BEFORE_INSTALLSRC: targets to build before installing source for a subproject
#    AFTER_INSTALLSRC: targets to build after installing source for a subproject
#
#    BEFORE_DEPEND: targets to build before building dependencies for a
#	  subproject
#    AFTER_DEPEND: targets to build after building dependencies for a
#	  subproject
#
#    AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is
#	  updated every time the project is built.  If NO, the dependency
#	  file is only built when the depend target is invoked.

# Framework-related variables:
#    FRAMEWORK_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the framework's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables

# Library-related variables:
#    PUBLIC_HEADER_DIR:  Determines where public exported header files
#	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.  For library projects you should
#       set this to something like /Developer/Headers/$(NAME).  Do not set
#       this variable for framework projects unless you do not want the
#       header files included in the framework.
#    PRIVATE_HEADER_DIR:  Determines where private exported header files
#  	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.
#    LIBRARY_STYLE:  This may be either STATIC or DYNAMIC, and determines
#  	whether the libraries produced are statically linked when they
#	are used or if they are dynamically loadable. This defaults to
#       DYNAMIC.
#    LIBRARY_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the library's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables
#
#    INSTALL_AS_USER: owner of the intalled products (default root)
#    INSTALL_AS_GROUP: group of the installed products (default wheel)
#    INSTALL_PERMISSIONS: permissions of the installed product (default o+rX)
#
#    OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be
#  	passed on the command line to recursive invocations of make.  Note that
#	the values in OTHER_*FLAGS are inherited by subprojects automatically --
#	you do not have to (and shouldn't) add OTHER_*FLAGS to 
#	OTHER_RECURSIVE_VARIABLES. 

# Additional headers to export beyond those in the PB.project:
#    OTHER_PUBLIC_HEADERS
#    OTHER_PROJECT_HEADERS
#    OTHER_PRIVATE_HEADERS

# Additional files for the project's product: <<path relative to proj?>>
#    OTHER_RESOURCES: (non-localized) resources for this project
#    OTHER_OFILES: relocatables to be linked into this project
#    OTHER_LIBS: more libraries to link against
#    OTHER_PRODUCT_DEPENDS: other dependencies of this project
#    OTHER_SOURCEFILES: other source files maintained by .pre/postamble
#    OTHER_GARBAGE: additional files to be removed by `make clean'

# Set this to YES if you don't want a final libtool call for a library/framework.
#    BUILD_OFILES_LIST_ONLY

# To include a version string, project source must exist in a directory named 
# $(NAME).%d[.%d][.%d] and the following line must be uncommented.
# OTHER_GENERATED_OFILES = $(VERS_OFILE)

# This definition will suppress stripping of debug symbols when an executable
# is installed.  By default it is YES.
# STRIP_ON_INSTALL = NO

# Uncomment to suppress generation of a KeyValueCoding index when installing 
# frameworks (This index is used by WOB and IB to determine keys available
# for an object).  Set to YES by default.
# PREINDEX_FRAMEWORK = NO

# Change this definition to install projects somewhere other than the
# standard locations.  NEXT_ROOT defaults to "C:/Apple" on Windows systems
# and "" on other systems.
DSTROOT = $(HOME)
                                                                                                                         znek/MulleNewz/MulleBasicXML/PB.project                                                             0100644 0000356 0000000 00000003320 07327405251 017066  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    DYNAMIC_CODE_GEN = YES; 
    FILESTABLE = {
        CLASSES = (
            MKXMLParser.m, 
            MXAutoContentContainerElement.m, 
            MXContainerElement.m, 
            MXElement.m, 
            MXGenericContainerTag.m, 
            MXStringElement.m, 
            MXTextContainerElement.m, 
            XMLInfo.m
        ); 
        H_FILES = (
            MKXMLParser.h, 
            MXAutoContentContainerElement.h, 
            MXContainerElement.h, 
            MXElement.h, 
            MXGenericContainerTag.h, 
            MXStringElement.h, 
            MXTextContainerElement.h, 
            XMLInfo.h
        ); 
        OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); 
        PROJECT_HEADERS = (
            MXAutoContentContainerElement.h, 
            MKXMLParser.h, 
            MXContainerElement.h, 
            MXElement.h, 
            MXGenericContainerTag.h, 
            MXStringElement.h, 
            MXTextContainerElement.h, 
            XMLInfo.h
        ); 
        PUBLIC_HEADERS = (); 
    }; 
    LANGUAGE = English; 
    MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; 
    NEXTSTEP_BUILDTOOL = /bin/gnumake; 
    NEXTSTEP_INSTALLDIR = /Applications; 
    NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; 
    NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; 
    PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; 
    PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; 
    PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; 
    PROJECTNAME = MulleBasicXML; 
    PROJECTTYPE = Component; 
    PROJECTVERSION = 2.8; 
    WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; 
    WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; 
    WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; 
}
                                                                                                                                                                                                                                                                                                                znek/MulleNewz/MulleBasicXML/XMLInfo.h                                                              0100644 0000356 0000000 00000003405 07332040112 016611  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as XMLInfo.h by znek on Sun 29-Oct-2000
// $Id: XMLInfo.h,v 1.2 2001/08/01 17:45:46 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXElement.h"


@interface XMLInfo : MXElement
{
}

- (NSString *)version;
- (NSStringEncoding)encoding;

@end
                                                                                                                                                                                                                                                           znek/MulleNewz/MulleBasicXML/XMLInfo.m                                                              0100644 0000356 0000000 00000004010 07521077532 016627  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as XMLInfo.m by znek on Sun 29-Oct-2000
// $Id: XMLInfo.m,v 1.3 2002/07/28 23:33:46 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "XMLInfo.h"
#import <EDCommon/EDCommon.h>


@implementation XMLInfo

- (NSString *)version
{
  return [self valueForAttribute:@"version"];
}

- (NSStringEncoding)encoding
{
  NSString *encoding;

  encoding = [self valueForAttribute:@"encoding"];
  if(encoding == nil)
    return NSUTF8StringEncoding;
  return [NSString stringEncodingForMIMEEncoding:encoding];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        znek/MulleNewz/MulleNewz.pbproj/                                                                    0040755 0000356 0000000 00000000000 07665677453 016042  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/MulleNewz.pbproj/CVS/                                                                0040755 0000356 0000000 00000000000 07665677453 016475  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/MulleNewz.pbproj/CVS/Root                                                            0100644 0000356 0000000 00000000063 07665677453 017337  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/MulleNewz.pbproj/CVS/Repository                                                      0100644 0000356 0000000 00000000051 07665677453 020570  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek/MulleNewz/MulleNewz.pbproj
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       znek/MulleNewz/MulleNewz.pbproj/CVS/Entries                                                         0100644 0000356 0000000 00000000063 07665677453 020025  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /project.pbxproj/1.28/Fri May 30 02:12:20 2003//
D
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/MulleNewz.pbproj/project.pbxproj                                                     0100644 0000356 0000000 00000233446 07665537004 021112  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  // !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 38;
	objects = {
		010F51CC00715A467F000001 = {
			isa = PBXFileReference;
			path = libdockling_glue.a;
			refType = 3;
		};
		010F51CD00715A467F000001 = {
			fileRef = 010F51CC00715A467F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		014CEA410018CDE011CA2923 = {
			isa = PBXBundleReference;
			path = MulleNewz.dock;
			refType = 3;
		};
		014CEA420018CDE011CA2923 = {
			buildRules = (
			);
			buildSettings = {
				DEBUGGING_SYMBOLS = YES;
				OPTIMIZATION_CFLAGS = "-O0";
			};
			isa = PBXBuildStyle;
			name = Development;
		};
		014CEA430018CDE011CA2923 = {
			buildRules = (
			);
			buildSettings = {
				DEBUGGING_SYMBOLS = NO;
				OPTIMIZATION_CFLAGS = "-O3";
			};
			isa = PBXBuildStyle;
			name = Deployment;
		};
//010
//011
//012
//013
//014
//080
//081
//082
//083
//084
		089C1669FE841209C02AAC07 = {
			buildStyles = (
				014CEA420018CDE011CA2923,
				014CEA430018CDE011CA2923,
			);
			hasScannedForEncodings = 1;
			isa = PBXProject;
			mainGroup = 089C166AFE841209C02AAC07;
			projectDirPath = "";
			targets = (
				089C1673FE841209C02AAC07,
				EE1B72A60117693900000001,
				AD885A31040E7A6600A80108,
				ADD8D90603C5B91E00A8042A,
				EEDF083902B803C300A80107,
				6EC97F50010EDDD32947C60C,
				EEC330CF02BCC15100A80107,
			);
		};
		089C166AFE841209C02AAC07 = {
			children = (
				6E31145C01181A0E2947C610,
				AD885A22040E5FDA00A80108,
				AD885A23040E600D00A80108,
				AD885A2A040E619B00A80108,
				AD885A2B040E61AE00A80108,
				1058C7ACFEA557BF11CA2CBB,
				19C28FB8FE9D52D311CA2CBB,
			);
			isa = PBXGroup;
			name = Dockling;
			refType = 4;
		};
		089C1673FE841209C02AAC07 = {
			buildPhases = (
				089C1674FE841209C02AAC07,
				089C1675FE841209C02AAC07,
				089C1676FE841209C02AAC07,
				089C1677FE841209C02AAC07,
				089C1679FE841209C02AAC07,
				AD885A42040E80DC00A80108,
			);
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks\"";
				HEADER_SEARCH_PATHS = "";
				INSTALL_PATH = "$(HOME)/Library/Bundles";
				LIBRARY_SEARCH_PATHS = "$(SYMROOT)";
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "-u _DisplayWarning -ldockling_glue";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = MulleNewz;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
				WRAPPER_EXTENSION = dock;
			};
			dependencies = (
				ADD8D90903C5BA4900A8042A,
				AD885A35040E7AC400A80108,
			);
			isa = PBXBundleTarget;
			name = "MulleNewz - Dev";
			productInstallPath = "$(HOME)/Library/Bundles";
			productName = Dockling;
			productReference = 014CEA410018CDE011CA2923;
			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>MulleNewz</string>
	<key>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>com.mulle-kybernetik.znek.MulleNewz</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string></string>
	<key>CFBundlePackageType</key>
	<string>dlng</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.8</string>
	<key>DLLabel</key>
	<string>Mulle Newz</string>
	<key>DLSubType</key>
	<string>dynamic-menu</string>
	<key>DLType</key>
	<string>dock</string>
	<key>DocklingClass</key>
	<string>MKNDockling</string>
	<key>NSPrincipalClass</key>
	<string></string>
</dict>
</plist>
";
		};
		089C1674FE841209C02AAC07 = {
			buildActionMask = 2147483647;
			files = (
				2AED758B00698A497F000001,
				6ECD85EC0108AFA72947C60C,
				6ECD86290108B54A2947C60C,
				6ECD862A0108B54A2947C60C,
				6ECD862C0108B54A2947C60C,
				6ECD862F0108B54A2947C60C,
				6ECD86300108B54A2947C60C,
				6ECD86310108B54A2947C60C,
				6ECD86340108B54A2947C60C,
				6ECD86530108B77D2947C60C,
				6ECD86560108C5052947C60C,
				EEB04DCD010BF55800000001,
				EEB04DCE010BF55800000001,
				EEB04DCF010BF55800000001,
				EEB04DD3010BF5B500000001,
				6E437D20010E262B2947C60C,
				EE9202D202E1D71300A80107,
				EE1A1BB802E20B1600A80107,
				ADC8E80104154B3B00A80107,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		089C1675FE841209C02AAC07 = {
			buildActionMask = 2147483647;
			files = (
				089C1680FE841241C02AAC07,
				6ECD864F0108B6DF2947C60C,
				EE396CDB010BB9D800000001,
				EEB04DDA010BF5F800000001,
				6E437D14010E1E582947C60C,
				EE1A1BB902E20B1600A80107,
				AD15B2BB041110EE00A80107,
			);
			isa = PBXResourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		089C1676FE841209C02AAC07 = {
			buildActionMask = 2147483647;
			files = (
				6ECD85ED0108AFA72947C60C,
				6ECD863D0108B54A2947C60C,
				6ECD863E0108B54A2947C60C,
				6ECD86400108B54A2947C60C,
				6ECD86430108B54A2947C60C,
				6ECD86440108B54A2947C60C,
				6ECD86450108B54A2947C60C,
				6ECD86480108B54A2947C60C,
				6ECD86540108B77D2947C60C,
				EEB04DD0010BF55800000001,
				EEB04DD1010BF55800000001,
				EEB04DD2010BF55800000001,
				EEB04DD4010BF5B500000001,
				6E437D21010E262B2947C60C,
				EE9202D302E1D71300A80107,
				EE1A1BBA02E20B1600A80107,
				ADC8E80204154B3C00A80107,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		089C1677FE841209C02AAC07 = {
			buildActionMask = 2147483647;
			files = (
				1058C7AFFEA557BF11CA2CBB,
				2AED758E00698B2C7F000001,
				010F51CD00715A467F000001,
				6ECD85EF0108B0962947C60C,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		089C1679FE841209C02AAC07 = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		089C167CFE841241C02AAC07 = {
			children = (
				6E437D13010E1E582947C60C,
				EEB04DD6010BF5F800000001,
				089C167DFE841241C02AAC07,
				EE396CDA010BB9D800000001,
			);
			isa = PBXGroup;
			name = Resources;
			path = "";
			refType = 4;
		};
		089C167DFE841241C02AAC07 = {
			children = (
				089C167EFE841241C02AAC07,
			);
			isa = PBXVariantGroup;
			name = InfoPlist.strings;
			path = "";
			refType = 4;
		};
		089C167EFE841241C02AAC07 = {
			fileEncoding = 10;
			isa = PBXFileReference;
			name = English;
			path = English.lproj/InfoPlist.strings;
			refType = 4;
		};
		089C1680FE841241C02AAC07 = {
			fileRef = 089C167DFE841241C02AAC07;
			isa = PBXBuildFile;
			settings = {
			};
		};
//080
//081
//082
//083
//084
//100
//101
//102
//103
//104
		1058C7ACFEA557BF11CA2CBB = {
			children = (
				1058C7ADFEA557BF11CA2CBB,
				2AED758D00698B2C7F000001,
				6ECD85EE0108B0962947C60C,
				010F51CC00715A467F000001,
			);
			isa = PBXGroup;
			name = "Frameworks and Libraries";
			path = "";
			refType = 4;
		};
		1058C7ADFEA557BF11CA2CBB = {
			isa = PBXFrameworkReference;
			name = Cocoa.framework;
			path = /System/Library/Frameworks/Cocoa.framework;
			refType = 0;
		};
		1058C7AFFEA557BF11CA2CBB = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
//100
//101
//102
//103
//104
//190
//191
//192
//193
//194
		19C28FB8FE9D52D311CA2CBB = {
			children = (
				014CEA410018CDE011CA2923,
				EE1B72A50117693900000001,
				6EC97F4F010EDDD32947C60C,
				EEDF083802B803C300A80107,
				EEC330CE02BCC15100A80107,
				ADD8D90703C5B91E00A8042A,
				AD885A32040E7A6600A80108,
			);
			isa = PBXGroup;
			name = Products;
			refType = 4;
		};
//190
//191
//192
//193
//194
//2A0
//2A1
//2A2
//2A3
//2A4
		2AED758900698A497F000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = Dockling.h;
			refType = 4;
		};
		2AED758B00698A497F000001 = {
			fileRef = 2AED758900698A497F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		2AED758D00698B2C7F000001 = {
			isa = PBXFrameworkReference;
			name = CoreFoundation.framework;
			path = /System/Library/Frameworks/CoreFoundation.framework;
			refType = 0;
		};
		2AED758E00698B2C7F000001 = {
			fileRef = 2AED758D00698B2C7F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
//2A0
//2A1
//2A2
//2A3
//2A4
//6E0
//6E1
//6E2
//6E3
//6E4
		6E31145C01181A0E2947C610 = {
			children = (
				6EAEA753011875812947C60C,
				6E31145D01181A0E2947C610,
				6EAEA754011877452947C60C,
			);
			isa = PBXGroup;
			name = README;
			refType = 4;
		};
		6E31145D01181A0E2947C610 = {
			isa = PBXFileReference;
			path = BUILD.rtf;
			refType = 4;
		};
		6E38237D011175C62947C60C = {
			buildActionMask = 2147483647;
			dstPath = /tmp;
			dstSubfolderSpec = 0;
			files = (
				6E38237E011175C62947C60C,
				6E38237F011175C62947C60C,
				EE1A1BC002E20B1600A80107,
			);
			isa = PBXCopyFilesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		6E38237E011175C62947C60C = {
			fileRef = EEB04DD6010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6E38237F011175C62947C60C = {
			fileRef = 6ECD864E0108B6DF2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6E437D0F010E1E582947C60C = {
			children = (
				EE0D01D602BD3A6D00A80107,
			);
			isa = PBXVariantGroup;
			name = MulleNewz.nib;
			path = "";
			refType = 4;
		};
		6E437D13010E1E582947C60C = {
			isa = PBXFileReference;
			path = MulleNewz.tiff;
			refType = 4;
		};
		6E437D14010E1E582947C60C = {
			fileRef = 6E437D13010E1E582947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6E437D1E010E262B2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RDFDocument.h;
			refType = 4;
		};
		6E437D1F010E262B2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RDFDocument.m;
			refType = 4;
		};
		6E437D20010E262B2947C60C = {
			fileRef = 6E437D1E010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6E437D21010E262B2947C60C = {
			fileRef = 6E437D1F010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EAEA753011875812947C60C = {
			isa = PBXFileReference;
			path = README.rtfd;
			refType = 4;
		};
		6EAEA754011877452947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = GPL.txt;
			refType = 4;
		};
		6EC97F4E010EDDD32947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = main.m;
			refType = 4;
		};
		6EC97F4F010EDDD32947C60C = {
			isa = PBXExecutableFileReference;
			path = Testbed;
			refType = 3;
		};
		6EC97F50010EDDD32947C60C = {
			buildPhases = (
				6EC97F51010EDDD32947C60C,
				6EC97F63010EDDD32947C60C,
				6EC97F75010EDDD32947C60C,
				6E38237D011175C62947C60C,
				6EC97F76010EDDD32947C60C,
			);
			buildSettings = {
				DSTROOT = /;
				FRAMEWORK_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks\"";
				INSTALL_ROOT = /;
				OPTIMIZATION_CFLAGS = "-O0";
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = Testbed;
				REZ_EXECUTABLE = YES;
				SECTORDER_FLAGS = "\U0001";
				WARNING_CFLAGS = "\U0001-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
			};
			dependencies = (
			);
			isa = PBXToolTarget;
			name = Testbed;
			productInstallPath = /usr/local/bin;
			productName = Testbed;
			productReference = 6EC97F4F010EDDD32947C60C;
		};
		6EC97F51010EDDD32947C60C = {
			buildActionMask = 2147483647;
			files = (
				6EC97F52010EDDD32947C60C,
				6EC97F53010EDDD32947C60C,
				6EC97F54010EDDD32947C60C,
				6EC97F55010EDDD32947C60C,
				6EC97F56010EDDD32947C60C,
				6EC97F57010EDDD32947C60C,
				6EC97F58010EDDD32947C60C,
				6EC97F59010EDDD32947C60C,
				6EC97F5A010EDDD32947C60C,
				6EC97F5B010EDDD32947C60C,
				6EC97F5D010EDDD32947C60C,
				6EC97F5E010EDDD32947C60C,
				6EC97F5F010EDDD32947C60C,
				6EC97F60010EDDD32947C60C,
				6EC97F61010EDDD32947C60C,
				EE9202D602E1D71300A80107,
				EE1A1BBE02E20B1600A80107,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		6EC97F52010EDDD32947C60C = {
			fileRef = 6ECD860A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F53010EDDD32947C60C = {
			fileRef = 6ECD861A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F54010EDDD32947C60C = {
			fileRef = 6ECD86550108C5052947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F55010EDDD32947C60C = {
			fileRef = 6ECD86100108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F56010EDDD32947C60C = {
			fileRef = 6ECD860C0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F57010EDDD32947C60C = {
			fileRef = 6ECD86160108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F58010EDDD32947C60C = {
			fileRef = 6ECD86180108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F59010EDDD32947C60C = {
			fileRef = 6ECD86200108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F5A010EDDD32947C60C = {
			fileRef = 6E437D1E010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F5B010EDDD32947C60C = {
			fileRef = EEB04DD7010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F5D010EDDD32947C60C = {
			fileRef = 6ECD85FB0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F5E010EDDD32947C60C = {
			fileRef = 6ECD85FD0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F5F010EDDD32947C60C = {
			fileRef = 6ECD85FF0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F60010EDDD32947C60C = {
			fileRef = 6ECD86030108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F61010EDDD32947C60C = {
			fileRef = 6ECD86050108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F63010EDDD32947C60C = {
			buildActionMask = 2147483647;
			files = (
				6EC97F64010EDDD32947C60C,
				6EC97F65010EDDD32947C60C,
				6EC97F66010EDDD32947C60C,
				6EC97F67010EDDD32947C60C,
				6EC97F68010EDDD32947C60C,
				6EC97F69010EDDD32947C60C,
				6EC97F6A010EDDD32947C60C,
				6EC97F6B010EDDD32947C60C,
				6EC97F6C010EDDD32947C60C,
				6EC97F6E010EDDD32947C60C,
				6EC97F6F010EDDD32947C60C,
				6EC97F70010EDDD32947C60C,
				6EC97F71010EDDD32947C60C,
				6EC97F72010EDDD32947C60C,
				6EC97F74010EDDD32947C60C,
				EE9202D702E1D71300A80107,
				EE1A1BBF02E20B1600A80107,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		6EC97F64010EDDD32947C60C = {
			fileRef = 6ECD860B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F65010EDDD32947C60C = {
			fileRef = 6ECD861B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F66010EDDD32947C60C = {
			fileRef = 6ECD86110108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F67010EDDD32947C60C = {
			fileRef = 6ECD860D0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F68010EDDD32947C60C = {
			fileRef = 6ECD86170108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F69010EDDD32947C60C = {
			fileRef = 6ECD86190108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F6A010EDDD32947C60C = {
			fileRef = 6ECD86210108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F6B010EDDD32947C60C = {
			fileRef = 6E437D1F010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F6C010EDDD32947C60C = {
			fileRef = EEB04DD8010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F6E010EDDD32947C60C = {
			fileRef = 6ECD85FC0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F6F010EDDD32947C60C = {
			fileRef = 6ECD85FE0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F70010EDDD32947C60C = {
			fileRef = 6ECD86000108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F71010EDDD32947C60C = {
			fileRef = 6ECD86040108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F72010EDDD32947C60C = {
			fileRef = 6ECD86060108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F74010EDDD32947C60C = {
			fileRef = 6EC97F4E010EDDD32947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6EC97F75010EDDD32947C60C = {
			buildActionMask = 2147483647;
			files = (
				6EC97F7B010F06F52947C60C,
				AD49230A047A4D3500A80107,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		6EC97F76010EDDD32947C60C = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		6EC97F7B010F06F52947C60C = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD85EA0108AFA72947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MKNDockling.h;
			refType = 4;
		};
		6ECD85EB0108AFA72947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MKNDockling.m;
			refType = 4;
		};
		6ECD85EC0108AFA72947C60C = {
			fileRef = 6ECD85EA0108AFA72947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD85ED0108AFA72947C60C = {
			fileRef = 6ECD85EB0108AFA72947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD85EE0108B0962947C60C = {
			isa = PBXFrameworkReference;
			name = EDCommon.framework;
			path = /Library/Frameworks/EDCommon.framework;
			refType = 0;
		};
		6ECD85EF0108B0962947C60C = {
			fileRef = 6ECD85EE0108B0962947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD85F80108B54A2947C60C = {
			children = (
				AD15B2B80411104000A80107,
				6ECD85FB0108B54A2947C60C,
				6ECD85FC0108B54A2947C60C,
				6ECD85FD0108B54A2947C60C,
				6ECD85FE0108B54A2947C60C,
				6ECD85FF0108B54A2947C60C,
				6ECD86000108B54A2947C60C,
				6ECD86010108B54A2947C60C,
				6ECD86020108B54A2947C60C,
				6ECD86030108B54A2947C60C,
				6ECD86040108B54A2947C60C,
				6ECD86050108B54A2947C60C,
				6ECD86060108B54A2947C60C,
				6ECD86070108B54A2947C60C,
				6ECD86080108B54A2947C60C,
			);
			isa = PBXGroup;
			name = "Mulle XML Objects";
			path = "";
			refType = 4;
		};
		6ECD85FB0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXAutoContentContainerElement.h;
			path = MulleBasicXML/MXAutoContentContainerElement.h;
			refType = 4;
		};
		6ECD85FC0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXAutoContentContainerElement.m;
			path = MulleBasicXML/MXAutoContentContainerElement.m;
			refType = 4;
		};
		6ECD85FD0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXContainerElement.h;
			path = MulleBasicXML/MXContainerElement.h;
			refType = 4;
		};
		6ECD85FE0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXContainerElement.m;
			path = MulleBasicXML/MXContainerElement.m;
			refType = 4;
		};
		6ECD85FF0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXElement.h;
			path = MulleBasicXML/MXElement.h;
			refType = 4;
		};
		6ECD86000108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXElement.m;
			path = MulleBasicXML/MXElement.m;
			refType = 4;
		};
		6ECD86010108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXGenericContainerTag.h;
			path = MulleBasicXML/MXGenericContainerTag.h;
			refType = 4;
		};
		6ECD86020108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXGenericContainerTag.m;
			path = MulleBasicXML/MXGenericContainerTag.m;
			refType = 4;
		};
		6ECD86030108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXStringElement.h;
			path = MulleBasicXML/MXStringElement.h;
			refType = 4;
		};
		6ECD86040108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXStringElement.m;
			path = MulleBasicXML/MXStringElement.m;
			refType = 4;
		};
		6ECD86050108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXTextContainerElement.h;
			path = MulleBasicXML/MXTextContainerElement.h;
			refType = 4;
		};
		6ECD86060108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = MXTextContainerElement.m;
			path = MulleBasicXML/MXTextContainerElement.m;
			refType = 4;
		};
		6ECD86070108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = XMLInfo.h;
			path = MulleBasicXML/XMLInfo.h;
			refType = 4;
		};
		6ECD86080108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = XMLInfo.m;
			path = MulleBasicXML/XMLInfo.m;
			refType = 4;
		};
		6ECD86090108B54A2947C60C = {
			children = (
				AD15B2B60411100100A80107,
				6ECD864A0108B68D2947C60C,
				6ECD864D0108B68D2947C60C,
			);
			isa = PBXGroup;
			path = RSS;
			refType = 4;
		};
		6ECD860A0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSCache.h;
			refType = 4;
		};
		6ECD860B0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSCache.m;
			refType = 4;
		};
		6ECD860C0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSChannel.h;
			refType = 4;
		};
		6ECD860D0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSChannel.m;
			refType = 4;
		};
		6ECD86100108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSDocument.h;
			refType = 4;
		};
		6ECD86110108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSDocument.m;
			refType = 4;
		};
		6ECD86160108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSImage.h;
			refType = 4;
		};
		6ECD86170108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSImage.m;
			refType = 4;
		};
		6ECD86180108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSItem.h;
			refType = 4;
		};
		6ECD86190108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSItem.m;
			refType = 4;
		};
		6ECD861A0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSParser.h;
			refType = 4;
		};
		6ECD861B0108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSParser.m;
			refType = 4;
		};
		6ECD86200108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSTextInput.h;
			refType = 4;
		};
		6ECD86210108B54A2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSTextInput.m;
			refType = 4;
		};
		6ECD86290108B54A2947C60C = {
			fileRef = 6ECD860A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD862A0108B54A2947C60C = {
			fileRef = 6ECD860C0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD862C0108B54A2947C60C = {
			fileRef = 6ECD86100108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD862F0108B54A2947C60C = {
			fileRef = 6ECD86160108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86300108B54A2947C60C = {
			fileRef = 6ECD86180108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86310108B54A2947C60C = {
			fileRef = 6ECD861A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86340108B54A2947C60C = {
			fileRef = 6ECD86200108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD863D0108B54A2947C60C = {
			fileRef = 6ECD860B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD863E0108B54A2947C60C = {
			fileRef = 6ECD860D0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86400108B54A2947C60C = {
			fileRef = 6ECD86110108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86430108B54A2947C60C = {
			fileRef = 6ECD86170108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86440108B54A2947C60C = {
			fileRef = 6ECD86190108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86450108B54A2947C60C = {
			fileRef = 6ECD861B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86480108B54A2947C60C = {
			fileRef = 6ECD86210108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD864A0108B68D2947C60C = {
			children = (
				6ECD860A0108B54A2947C60C,
				6ECD860B0108B54A2947C60C,
				6ECD861A0108B54A2947C60C,
				6ECD861B0108B54A2947C60C,
				EE9202CE02E1D6C200A80107,
				EE9202CF02E1D6C200A80107,
			);
			isa = PBXGroup;
			name = "Parser & Cache";
			refType = 4;
		};
		6ECD864D0108B68D2947C60C = {
			children = (
				6ECD864E0108B6DF2947C60C,
				6ECD86550108C5052947C60C,
				6ECD86100108B54A2947C60C,
				6ECD86110108B54A2947C60C,
				6ECD860C0108B54A2947C60C,
				6ECD860D0108B54A2947C60C,
				6ECD86160108B54A2947C60C,
				6ECD86170108B54A2947C60C,
				6ECD86180108B54A2947C60C,
				6ECD86190108B54A2947C60C,
				6ECD86200108B54A2947C60C,
				6ECD86210108B54A2947C60C,
				6E437D1E010E262B2947C60C,
				6E437D1F010E262B2947C60C,
			);
			isa = PBXGroup;
			name = Elements;
			path = "";
			refType = 4;
		};
		6ECD864E0108B6DF2947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSTags.plist;
			refType = 4;
		};
		6ECD864F0108B6DF2947C60C = {
			fileRef = 6ECD864E0108B6DF2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86530108B77D2947C60C = {
			fileRef = 6ECD85FF0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86540108B77D2947C60C = {
			fileRef = 6ECD86000108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		6ECD86550108C5052947C60C = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSElements.h;
			refType = 4;
		};
		6ECD86560108C5052947C60C = {
			fileRef = 6ECD86550108C5052947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
//6E0
//6E1
//6E2
//6E3
//6E4
//AD0
//AD1
//AD2
//AD3
//AD4
		AD15B2AE04110F4F00A80107 = {
			children = (
				AD15B2AF04110F4F00A80107,
			);
			isa = PBXVariantGroup;
			name = MKN.nib;
			path = "";
			refType = 4;
		};
		AD15B2AF04110F4F00A80107 = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/MKN.nib;
			refType = 4;
		};
		AD15B2B104110F6200A80107 = {
			children = (
				AD15B2B204110F6200A80107,
			);
			isa = PBXVariantGroup;
			name = Preferences.nib;
			path = "";
			refType = 4;
		};
		AD15B2B204110F6200A80107 = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/Preferences.nib;
			refType = 4;
		};
		AD15B2B404110FD200A80107 = {
			children = (
				AD15B2B504110FE900A80107,
			);
			isa = PBXGroup;
			name = GNUstep;
			refType = 4;
		};
		AD15B2B504110FE900A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = GNUmakefile;
			refType = 4;
		};
		AD15B2B60411100100A80107 = {
			children = (
				AD15B2B70411101800A80107,
			);
			isa = PBXGroup;
			name = GNUstep;
			refType = 4;
		};
		AD15B2B70411101800A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = GNUmakefile;
			refType = 4;
		};
		AD15B2B80411104000A80107 = {
			children = (
				AD15B2B90411105800A80107,
			);
			isa = PBXGroup;
			name = GNUstep;
			refType = 4;
		};
		AD15B2B90411105800A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = GNUmakefile;
			path = MulleBasicXML/GNUmakefile;
			refType = 4;
		};
		AD15B2BA041110E500A80107 = {
			fileRef = 6E437D0F010E1E582947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD15B2BB041110EE00A80107 = {
			fileRef = AD15B2AE04110F4F00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD15B2BC041110F500A80107 = {
			fileRef = AD15B2AE04110F4F00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD49230A047A4D3500A80107 = {
			fileRef = 6ECD85EE0108B0962947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725C2040EEE4B00A80107 = {
			fileRef = EE1B730F0117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725C3040EEE4C00A80107 = {
			fileRef = EE1B73100117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725C8040FA14000A80107 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNConstants.h;
			refType = 4;
		};
		AD5725C9040FA14000A80107 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNConstants.m;
			refType = 4;
		};
		AD5725CA040FA14000A80107 = {
			fileRef = AD5725C8040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725CB040FA14000A80107 = {
			fileRef = AD5725C9040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725CC040FA1C300A80107 = {
			fileRef = AD5725C8040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725CD040FA1C400A80107 = {
			fileRef = AD5725C9040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725D8040FC54900A80107 = {
			children = (
				AD5725D9040FC57800A80107,
				AD5725DA040FC57800A80107,
			);
			isa = PBXGroup;
			name = Widgets;
			refType = 4;
		};
		AD5725D9040FC57800A80107 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNPTableView.h;
			refType = 4;
		};
		AD5725DA040FC57800A80107 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNPTableView.m;
			refType = 4;
		};
		AD5725DB040FC57800A80107 = {
			fileRef = AD5725D9040FC57800A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD5725DC040FC57800A80107 = {
			fileRef = AD5725DA040FC57800A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A22040E5FDA00A80108 = {
			children = (
				AD885A37040E7AFA00A80108,
				AD885A28040E60C400A80108,
				2AED758900698A497F000001,
				6ECD85EA0108AFA72947C60C,
				6ECD85EB0108AFA72947C60C,
			);
			isa = PBXGroup;
			name = Dockling;
			path = "";
			refType = 4;
		};
		AD885A23040E600D00A80108 = {
			children = (
				AD15B2B404110FD200A80107,
				AD885A29040E610E00A80108,
				EEDF084002B8084A00A80107,
				EEDF084102B8084A00A80107,
				EEDF084F02B80C8200A80107,
			);
			isa = PBXGroup;
			name = Application;
			path = "";
			refType = 4;
		};
		AD885A24040E602100A80108 = {
			children = (
				6EC97F4E010EDDD32947C60C,
			);
			isa = PBXGroup;
			name = Testbed;
			path = "";
			refType = 4;
		};
		AD885A25040E602800A80108 = {
			children = (
				EEC330D702BCC16F00A80107,
			);
			isa = PBXGroup;
			name = "Decoder Testbed";
			path = "";
			refType = 4;
		};
		AD885A28040E60C400A80108 = {
			children = (
				AD15B2AE04110F4F00A80107,
			);
			isa = PBXGroup;
			name = Interfaces;
			path = "";
			refType = 4;
		};
		AD885A29040E610E00A80108 = {
			children = (
				6E437D0F010E1E582947C60C,
				AD15B2B104110F6200A80107,
			);
			isa = PBXGroup;
			name = Interfaces;
			path = "";
			refType = 4;
		};
		AD885A2A040E619B00A80108 = {
			children = (
				AD885A24040E602100A80108,
				AD885A25040E602800A80108,
			);
			isa = PBXGroup;
			name = Tests;
			refType = 4;
		};
		AD885A2B040E61AE00A80108 = {
			children = (
				ADC8E8090415608700A80107,
				EE1A1BB002E2038A00A80107,
				EEB04DD5010BF5F800000001,
				089C167CFE841241C02AAC07,
				EE1B72E201176BB800000001,
			);
			isa = PBXGroup;
			name = Common;
			refType = 4;
		};
		AD885A2C040E7A6600A80108 = {
			buildActionMask = 2147483647;
			files = (
				AD885A40040E7E6700A80108,
				AD5725C2040EEE4B00A80107,
				AD5725CA040FA14000A80107,
				AD5725DB040FC57800A80107,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A2D040E7A6600A80108 = {
			buildActionMask = 2147483647;
			files = (
				AD885A3B040E7D9B00A80108,
			);
			isa = PBXResourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A2E040E7A6600A80108 = {
			buildActionMask = 2147483647;
			files = (
				AD885A3D040E7DF200A80108,
				AD885A41040E7E6700A80108,
				AD5725C3040EEE4C00A80107,
				AD5725CB040FA14000A80107,
				AD5725DC040FC57800A80107,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A2F040E7A6600A80108 = {
			buildActionMask = 2147483647;
			files = (
				AD885A45040E814000A80108,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A30040E7A6600A80108 = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A31040E7A6600A80108 = {
			buildPhases = (
				AD885A2C040E7A6600A80108,
				AD885A2D040E7A6600A80108,
				AD885A2E040E7A6600A80108,
				AD885A2F040E7A6600A80108,
				AD885A30040E7A6600A80108,
			);
			buildSettings = {
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = Preferences;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
				WRAPPER_EXTENSION = app;
			};
			dependencies = (
			);
			isa = PBXApplicationTarget;
			name = Preferences;
			productInstallPath = "$(USER_APPS_DIR)";
			productName = Preferences;
			productReference = AD885A32040E7A6600A80108;
			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>Preferences</string>
	<key>CFBundleGetInfoString</key>
	<string>MulleNewz Preferences Helper Application</string>
	<key>CFBundleIconFile</key>
	<string>MulleNewz</string>
	<key>CFBundleIdentifier</key>
	<string>com.mulle-kybernetik.znek.MulleNewz</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>Preferences</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string></string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.8</string>
	<key>NSBGOnly</key>
	<string>0</string>
	<key>NSMainNibFile</key>
	<string>MKNPreferences</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
	<key>NSUIElement</key>
	<string>1</string>
</dict>
</plist>
";
		};
		AD885A32040E7A6600A80108 = {
			isa = PBXApplicationReference;
			path = Preferences.app;
			refType = 3;
		};
		AD885A34040E7ABC00A80108 = {
			isa = PBXTargetDependency;
			target = AD885A31040E7A6600A80108;
		};
		AD885A35040E7AC400A80108 = {
			isa = PBXTargetDependency;
			target = AD885A31040E7A6600A80108;
		};
		AD885A37040E7AFA00A80108 = {
			children = (
				AD885A38040E7B0600A80108,
				AD5725D8040FC54900A80107,
				AD885A3E040E7E6700A80108,
				AD885A3F040E7E6700A80108,
				AD885A3C040E7DF200A80108,
			);
			isa = PBXGroup;
			name = "Preferences (Helper app)";
			refType = 4;
		};
		AD885A38040E7B0600A80108 = {
			children = (
				AD885A39040E7D9A00A80108,
			);
			isa = PBXGroup;
			name = Interfaces;
			refType = 4;
		};
		AD885A39040E7D9A00A80108 = {
			children = (
				AD885A3A040E7D9A00A80108,
			);
			isa = PBXVariantGroup;
			name = MKNPreferences.nib;
			path = "";
			refType = 4;
		};
		AD885A3A040E7D9A00A80108 = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/MKNPreferences.nib;
			refType = 4;
		};
		AD885A3B040E7D9B00A80108 = {
			fileRef = AD885A39040E7D9A00A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A3C040E7DF200A80108 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNPreferences_main.m;
			refType = 4;
		};
		AD885A3D040E7DF200A80108 = {
			fileRef = AD885A3C040E7DF200A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A3E040E7E6700A80108 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNPreferencesController.h;
			refType = 4;
		};
		AD885A3F040E7E6700A80108 = {
			fileEncoding = 4;
			isa = PBXFileReference;
			path = MKNPreferencesController.m;
			refType = 4;
		};
		AD885A40040E7E6700A80108 = {
			fileRef = AD885A3E040E7E6700A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A41040E7E6700A80108 = {
			fileRef = AD885A3F040E7E6700A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A42040E80DC00A80108 = {
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 13;
			files = (
				AD885A44040E811600A80108,
			);
			isa = PBXCopyFilesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A44040E811600A80108 = {
			fileRef = AD885A32040E7A6600A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A45040E814000A80108 = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
		AD885A46040E83C100A80108 = {
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 7;
			files = (
				AD885A48040E83DC00A80108,
			);
			isa = PBXCopyFilesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		AD885A48040E83DC00A80108 = {
			fileRef = AD885A32040E7A6600A80108;
			isa = PBXBuildFile;
			settings = {
			};
		};
		ADC8E80104154B3B00A80107 = {
			fileRef = AD5725C8040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		ADC8E80204154B3C00A80107 = {
			fileRef = AD5725C9040FA14000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		ADC8E8090415608700A80107 = {
			children = (
				AD5725C8040FA14000A80107,
				AD5725C9040FA14000A80107,
			);
			isa = PBXGroup;
			name = Constants;
			refType = 4;
		};
		ADC8E80B04156CC700A80107 = {
			fileRef = AD15B2B104110F6200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		ADD8D90203C5B91E00A8042A = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		ADD8D90303C5B91E00A8042A = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		ADD8D90403C5B91E00A8042A = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		ADD8D90503C5B91E00A8042A = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		ADD8D90603C5B91E00A8042A = {
			buildPhases = (
				ADD8D90203C5B91E00A8042A,
				ADD8D90303C5B91E00A8042A,
				ADD8D90403C5B91E00A8042A,
				ADD8D90503C5B91E00A8042A,
				ADD8D90803C5B96A00A8042A,
			);
			buildSettings = {
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				LIBRARY_STYLE = STATIC;
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOL_FLAGS = "";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = libdockling_glue;
				REZ_EXECUTABLE = YES;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
			};
			dependencies = (
			);
			isa = PBXLibraryTarget;
			name = libdockling_glue;
			productInstallPath = /usr/local/lib;
			productName = libdockling_glue;
			productReference = ADD8D90703C5B91E00A8042A;
		};
		ADD8D90703C5B91E00A8042A = {
			isa = PBXLibraryReference;
			path = libdockling_glue;
			refType = 3;
		};
		ADD8D90803C5B96A00A8042A = {
			buildActionMask = 2147483647;
			files = (
			);
			generatedFileNames = (
			);
			isa = PBXShellScriptBuildPhase;
			neededFileNames = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "cp libdockling_glue.a.orig $SYMROOT/libdockling_glue.a\nranlib $SYMROOT/libdockling_glue.a";
		};
		ADD8D90903C5BA4900A8042A = {
			isa = PBXTargetDependency;
			target = ADD8D90603C5B91E00A8042A;
		};
		ADD8D90A03C5BA4D00A8042A = {
			isa = PBXTargetDependency;
			target = ADD8D90603C5B91E00A8042A;
		};
		ADD8D90B03C5BB0A00A8042A = {
			fileRef = 010F51CC00715A467F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
//AD0
//AD1
//AD2
//AD3
//AD4
//EE0
//EE1
//EE2
//EE3
//EE4
		EE0D01D602BD3A6D00A80107 = {
			isa = PBXFileReference;
			name = English;
			path = English.lproj/MulleNewz.nib;
			refType = 4;
		};
		EE1A1BB002E2038A00A80107 = {
			children = (
				6ECD86090108B54A2947C60C,
				EE1A1BB102E2038A00A80107,
				6ECD85F80108B54A2947C60C,
			);
			isa = PBXGroup;
			name = XML;
			path = "";
			refType = 4;
		};
		EE1A1BB102E2038A00A80107 = {
			children = (
				EE1A1BB602E208D600A80107,
				EE1A1BB202E203D400A80107,
				EE1A1BB302E203D400A80107,
			);
			isa = PBXGroup;
			name = "Markup Processing";
			path = "";
			refType = 2;
		};
		EE1A1BB202E203D400A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MarkupTagProcessor.h;
			refType = 4;
		};
		EE1A1BB302E203D400A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MarkupTagProcessor.m;
			refType = 4;
		};
		EE1A1BB402E203D500A80107 = {
			fileRef = EE1A1BB202E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BB502E203D500A80107 = {
			fileRef = EE1A1BB302E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BB602E208D600A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MarkupTags.plist;
			refType = 4;
		};
		EE1A1BB702E208D600A80107 = {
			fileRef = EE1A1BB602E208D600A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BB802E20B1600A80107 = {
			fileRef = EE1A1BB202E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BB902E20B1600A80107 = {
			fileRef = EE1A1BB602E208D600A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBA02E20B1600A80107 = {
			fileRef = EE1A1BB302E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBB02E20B1600A80107 = {
			fileRef = EE1A1BB202E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBC02E20B1600A80107 = {
			fileRef = EE1A1BB602E208D600A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBD02E20B1600A80107 = {
			fileRef = EE1A1BB302E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBE02E20B1600A80107 = {
			fileRef = EE1A1BB202E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BBF02E20B1600A80107 = {
			fileRef = EE1A1BB302E203D400A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1A1BC002E20B1600A80107 = {
			fileRef = EE1A1BB602E208D600A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72A50117693900000001 = {
			isa = PBXBundleReference;
			path = MulleNewz.dock;
			refType = 3;
		};
		EE1B72A60117693900000001 = {
			buildPhases = (
				EE1B72A70117693900000001,
				EE1B72BA0117693900000001,
				EE1B72C20117693900000001,
				EE1B72D30117693900000001,
				EE1B72D70117693900000001,
				AD885A46040E83C100A80108,
			);
			buildSettings = {
				DEBUGGING_SYMBOLS = "\U0001NO";
				DSTROOT = /;
				HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../ed\"";
				INSTALL_PATH = "$(HOME)/Library/Bundles";
				INSTALL_ROOT = /;
				LIBRARY_SEARCH_PATHS = "$(SYMROOT)";
				OPTIMIZATION_CFLAGS = "-O3";
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "-u _DisplayWarning -ldockling_glue";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = MulleNewz;
				SECTORDER_FLAGS = "";
				USE_GCC3_PFE_SUPPORT = YES;
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
				WRAPPER_EXTENSION = dock;
			};
			dependencies = (
				ADD8D90A03C5BA4D00A8042A,
				AD885A34040E7ABC00A80108,
			);
			isa = PBXBundleTarget;
			name = "MulleNewz - Release";
			productInstallPath = "$(HOME)/Library/Bundles";
			productName = "MulleNewz - Release";
			productReference = EE1B72A50117693900000001;
			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>MulleNewz</string>
	<key>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>com.mulle-kybernetik.znek.MulleNewz</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string></string>
	<key>CFBundlePackageType</key>
	<string>dlng</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.9</string>
	<key>DLLabel</key>
	<string>Mulle Newz</string>
	<key>DLSubType</key>
	<string>dynamic-menu</string>
	<key>DLType</key>
	<string>dock</string>
	<key>DocklingClass</key>
	<string>MKNDockling</string>
	<key>NSPrincipalClass</key>
	<string></string>
</dict>
</plist>
";
		};
		EE1B72A70117693900000001 = {
			buildActionMask = 2147483647;
			files = (
				EE1B72A80117693900000001,
				EE1B72A90117693900000001,
				EE1B72AA0117693900000001,
				EE1B72AB0117693900000001,
				EE1B72AC0117693900000001,
				EE1B72AD0117693900000001,
				EE1B72AE0117693900000001,
				EE1B72B00117693900000001,
				EE1B72B10117693900000001,
				EE1B72B20117693900000001,
				EE1B72B30117693900000001,
				EE1B72B40117693900000001,
				EE1B72B50117693900000001,
				EE1B72B60117693900000001,
				EE1B72B70117693900000001,
				EE1B72B80117693900000001,
				EE9202D002E1D6C300A80107,
				EE1A1BBB02E20B1600A80107,
				EE1B72E701176C9900000001,
				EE1B72E801176C9900000001,
				EE1B72EF01176D0300000001,
				EE1B72F001176D0300000001,
				EE1B72F701176D8100000001,
				EE1B73110117715800000001,
				EE6D9A2602E1CB2B00A80107,
				EE6D9A2702E1CB2B00A80107,
				EE9202E102E1E0CA00A80107,
				EE9202E202E1E0CA00A80107,
				EE9202E302E1E0CA00A80107,
				EE9202E402E1E0CA00A80107,
				EEDEF4E4031B951900E96D60,
				AD5725CC040FA1C300A80107,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EE1B72A80117693900000001 = {
			fileRef = 2AED758900698A497F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72A90117693900000001 = {
			fileRef = 6ECD85EA0108AFA72947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72AA0117693900000001 = {
			fileRef = 6ECD85FB0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72AB0117693900000001 = {
			fileRef = 6ECD85FD0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72AC0117693900000001 = {
			fileRef = 6ECD85FF0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72AD0117693900000001 = {
			fileRef = 6ECD86030108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72AE0117693900000001 = {
			fileRef = 6ECD86050108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B00117693900000001 = {
			fileRef = 6ECD860A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B10117693900000001 = {
			fileRef = 6ECD861A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B20117693900000001 = {
			fileRef = 6ECD86550108C5052947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B30117693900000001 = {
			fileRef = 6ECD86100108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B40117693900000001 = {
			fileRef = 6ECD860C0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B50117693900000001 = {
			fileRef = 6ECD86160108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B60117693900000001 = {
			fileRef = 6ECD86180108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B70117693900000001 = {
			fileRef = 6ECD86200108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72B80117693900000001 = {
			fileRef = 6E437D1E010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72BA0117693900000001 = {
			buildActionMask = 2147483647;
			files = (
				EE1B72BB0117693900000001,
				EE1B72BC0117693900000001,
				EE1B72BF0117693900000001,
				EE1B72C00117693900000001,
				EE1B72C10117693900000001,
				EE1A1BBC02E20B1600A80107,
				AD15B2BC041110F500A80107,
			);
			isa = PBXResourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EE1B72BB0117693900000001 = {
			fileRef = 6ECD864E0108B6DF2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72BC0117693900000001 = {
			fileRef = EEB04DD6010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72BF0117693900000001 = {
			fileRef = 6E437D13010E1E582947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C00117693900000001 = {
			fileRef = 089C167DFE841241C02AAC07;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C10117693900000001 = {
			fileRef = EE396CDA010BB9D800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C20117693900000001 = {
			buildActionMask = 2147483647;
			files = (
				EE1B72C30117693900000001,
				EE1B72C40117693900000001,
				EE1B72C50117693900000001,
				EE1B72C60117693900000001,
				EE1B72C70117693900000001,
				EE1B72C80117693900000001,
				EE1B72CA0117693900000001,
				EE1B72CB0117693900000001,
				EE1B72CC0117693900000001,
				EE1B72CD0117693900000001,
				EE1B72CE0117693900000001,
				EE1B72CF0117693900000001,
				EE1B72D00117693900000001,
				EE1B72D10117693900000001,
				EE1B72E901176C9900000001,
				EE1B72EA01176C9900000001,
				EE1B72F101176D0300000001,
				EE1B72F201176D0300000001,
				EE1B72F901176D8100000001,
				EE1B73120117715800000001,
				EE6D9A2802E1CB2C00A80107,
				EE9202D102E1D6C300A80107,
				EE9202E502E1E0CA00A80107,
				EE9202E602E1E0CA00A80107,
				EE1A1BBD02E20B1600A80107,
				EEDEF4E5031B951900E96D60,
				AD5725CD040FA1C400A80107,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EE1B72C30117693900000001 = {
			fileRef = 6ECD85EB0108AFA72947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C40117693900000001 = {
			fileRef = 6ECD85FC0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C50117693900000001 = {
			fileRef = 6ECD85FE0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C60117693900000001 = {
			fileRef = 6ECD86000108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C70117693900000001 = {
			fileRef = 6ECD86040108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72C80117693900000001 = {
			fileRef = 6ECD86060108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CA0117693900000001 = {
			fileRef = 6ECD860B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CB0117693900000001 = {
			fileRef = 6ECD861B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CC0117693900000001 = {
			fileRef = 6ECD86110108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CD0117693900000001 = {
			fileRef = 6ECD860D0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CE0117693900000001 = {
			fileRef = 6ECD86170108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72CF0117693900000001 = {
			fileRef = 6ECD86190108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72D00117693900000001 = {
			fileRef = 6ECD86210108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72D10117693900000001 = {
			fileRef = 6E437D1F010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72D30117693900000001 = {
			buildActionMask = 2147483647;
			files = (
				EE1B72D40117693900000001,
				EE1B72D50117693900000001,
				ADD8D90B03C5BB0A00A8042A,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EE1B72D40117693900000001 = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72D50117693900000001 = {
			fileRef = 2AED758D00698B2C7F000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72D70117693900000001 = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EE1B72E201176BB800000001 = {
			children = (
				EE1B730B01176FC000000001,
			);
			isa = PBXGroup;
			name = "External Sources";
			path = "";
			refType = 2;
		};
		EE1B72E301176C9900000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMLParser.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMLParser.h;
			refType = 4;
		};
		EE1B72E401176C9900000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMLParser.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMLParser.m;
			refType = 4;
		};
		EE1B72E501176C9900000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMLToken.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMLToken.h;
			refType = 4;
		};
		EE1B72E601176C9900000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMLToken.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMLToken.m;
			refType = 4;
		};
		EE1B72E701176C9900000001 = {
			fileRef = EE1B72E301176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72E801176C9900000001 = {
			fileRef = EE1B72E501176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72E901176C9900000001 = {
			fileRef = EE1B72E401176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72EA01176C9900000001 = {
			fileRef = EE1B72E601176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72EB01176D0300000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDBitmapCharset.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDBitmapCharset.h;
			refType = 4;
		};
		EE1B72EC01176D0300000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDBitmapCharset.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDBitmapCharset.m;
			refType = 4;
		};
		EE1B72ED01176D0300000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDObjectPair.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDObjectPair.h;
			refType = 4;
		};
		EE1B72EE01176D0300000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDObjectPair.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDObjectPair.m;
			refType = 4;
		};
		EE1B72EF01176D0300000001 = {
			fileRef = EE1B72EB01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72F001176D0300000001 = {
			fileRef = EE1B72ED01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72F101176D0300000001 = {
			fileRef = EE1B72EC01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72F201176D0300000001 = {
			fileRef = EE1B72EE01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72F501176D8100000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSSet+Extensions.h";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSSet+Extensions.h";
			refType = 4;
		};
		EE1B72F601176D8100000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSSet+Extensions.m";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSSet+Extensions.m";
			refType = 4;
		};
		EE1B72F701176D8100000001 = {
			fileRef = EE1B72F501176D8100000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B72F901176D8100000001 = {
			fileRef = EE1B72F601176D8100000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B730B01176FC000000001 = {
			children = (
				EE9202DB02E1DF8100A80107,
				EE9202DC02E1DF8100A80107,
				EE1B72E301176C9900000001,
				EE1B72E401176C9900000001,
				EE6D9A2302E1CB2B00A80107,
				EE6D9A2402E1CB2B00A80107,
				EE6D9A2502E1CB2B00A80107,
				EE1B72E501176C9900000001,
				EE1B72E601176C9900000001,
				EE1B72EB01176D0300000001,
				EE1B72EC01176D0300000001,
				EE1B72ED01176D0300000001,
				EE1B72EE01176D0300000001,
				EEDEF4E0031B951900E96D60,
				EEDEF4E1031B951900E96D60,
				EE9202DF02E1E0CA00A80107,
				EE9202E002E1E0CA00A80107,
				EE1CB35A02BCFE4000A80107,
				EE1CB35B02BCFE4000A80107,
				EE1B72F501176D8100000001,
				EE1B72F601176D8100000001,
				EE1B730F0117715800000001,
				EE1B73100117715800000001,
				EEDF085B02B80E7C00A80107,
				EEDF085C02B80E7C00A80107,
				EEDF085D02B80E7C00A80107,
				EEDF085E02B80E7C00A80107,
			);
			isa = PBXGroup;
			name = EDCommon;
			path = ../../ed/EDCommon;
			refType = 2;
		};
		EE1B730F0117715800000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSString+Extensions.h";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSString+Extensions.h";
			refType = 4;
		};
		EE1B73100117715800000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSString+Extensions.m";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSString+Extensions.m";
			refType = 4;
		};
		EE1B73110117715800000001 = {
			fileRef = EE1B730F0117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1B73120117715800000001 = {
			fileRef = EE1B73100117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1CB35A02BCFE4000A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSDate+Extensions.h";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSDate+Extensions.h";
			refType = 4;
		};
		EE1CB35B02BCFE4000A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSDate+Extensions.m";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSDate+Extensions.m";
			refType = 4;
		};
		EE1CB35C02BCFE4000A80107 = {
			fileRef = EE1CB35A02BCFE4000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE1CB35D02BCFE4000A80107 = {
			fileRef = EE1CB35B02BCFE4000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE396CDA010BB9D800000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = FactorySettings.plist;
			refType = 4;
		};
		EE396CDB010BB9D800000001 = {
			fileRef = EE396CDA010BB9D800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE6D9A2302E1CB2B00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMLTagProcessorProtocol.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMLTagProcessorProtocol.h;
			refType = 4;
		};
		EE6D9A2402E1CB2B00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDAOMTagProcessor.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDAOMTagProcessor.h;
			refType = 4;
		};
		EE6D9A2502E1CB2B00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDAOMTagProcessor.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDAOMTagProcessor.m;
			refType = 4;
		};
		EE6D9A2602E1CB2B00A80107 = {
			fileRef = EE6D9A2402E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE6D9A2702E1CB2B00A80107 = {
			fileRef = EE6D9A2302E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE6D9A2802E1CB2C00A80107 = {
			fileRef = EE6D9A2502E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202CE02E1D6C200A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSTagProcessor.h;
			refType = 4;
		};
		EE9202CF02E1D6C200A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = RSSTagProcessor.m;
			refType = 4;
		};
		EE9202D002E1D6C300A80107 = {
			fileRef = EE9202CE02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D102E1D6C300A80107 = {
			fileRef = EE9202CF02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D202E1D71300A80107 = {
			fileRef = EE9202CE02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D302E1D71300A80107 = {
			fileRef = EE9202CF02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D402E1D71300A80107 = {
			fileRef = EE9202CE02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D502E1D71300A80107 = {
			fileRef = EE9202CF02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D602E1D71300A80107 = {
			fileRef = EE9202CE02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D702E1D71300A80107 = {
			fileRef = EE9202CF02E1D6C200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D802E1DF2800A80107 = {
			fileRef = EE6D9A2402E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202D902E1DF2800A80107 = {
			fileRef = EE6D9A2302E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202DA02E1DF2800A80107 = {
			fileRef = EE6D9A2502E1CB2B00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202DB02E1DF8100A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDCommonDefines.h;
			path = ../../ed/EDCommon/EDCommonDefines.h;
			refType = 4;
		};
		EE9202DC02E1DF8100A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDObjcRuntime.h;
			path = ../../ed/EDCommon/EDObjcRuntime.h;
			refType = 4;
		};
		EE9202DD02E1DF8100A80107 = {
			fileRef = EE9202DB02E1DF8100A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202DE02E1DF8100A80107 = {
			fileRef = EE9202DC02E1DF8100A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202DF02E1E0CA00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSArray+Extensions.h";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSArray+Extensions.h";
			refType = 4;
		};
		EE9202E002E1E0CA00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSArray+Extensions.m";
			path = "../../ed/EDCommon/FoundationExtensions.subproj/NSArray+Extensions.m";
			refType = 4;
		};
		EE9202E102E1E0CA00A80107 = {
			fileRef = EE9202DF02E1E0CA00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E202E1E0CA00A80107 = {
			fileRef = EE1CB35A02BCFE4000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E302E1E0CA00A80107 = {
			fileRef = EE9202DB02E1DF8100A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E402E1E0CA00A80107 = {
			fileRef = EE9202DC02E1DF8100A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E502E1E0CA00A80107 = {
			fileRef = EE9202E002E1E0CA00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E602E1E0CA00A80107 = {
			fileRef = EE1CB35B02BCFE4000A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E702E1E0CA00A80107 = {
			fileRef = EE9202DF02E1E0CA00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EE9202E802E1E0CA00A80107 = {
			fileRef = EE9202E002E1E0CA00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DCD010BF55800000001 = {
			fileRef = 6ECD86030108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DCE010BF55800000001 = {
			fileRef = 6ECD86050108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DCF010BF55800000001 = {
			fileRef = 6ECD85FD0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD0010BF55800000001 = {
			fileRef = 6ECD86040108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD1010BF55800000001 = {
			fileRef = 6ECD86060108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD2010BF55800000001 = {
			fileRef = 6ECD85FE0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD3010BF5B500000001 = {
			fileRef = 6ECD85FB0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD4010BF5B500000001 = {
			fileRef = 6ECD85FC0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEB04DD5010BF5F800000001 = {
			children = (
				EEB04DD7010BF5F800000001,
				EEB04DD8010BF5F800000001,
			);
			isa = PBXGroup;
			name = Extensions;
			path = "";
			refType = 4;
		};
		EEB04DD6010BF5F800000001 = {
			fileEncoding = 10;
			isa = PBXFileReference;
			path = Entity2String.plist;
			refType = 4;
		};
		EEB04DD7010BF5F800000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = "NSString+XMLExtensions.h";
			refType = 4;
		};
		EEB04DD8010BF5F800000001 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = "NSString+XMLExtensions.m";
			refType = 4;
		};
		EEB04DDA010BF5F800000001 = {
			fileRef = EEB04DD6010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330CE02BCC15100A80107 = {
			isa = PBXExecutableFileReference;
			path = "Decoder Testbed";
			refType = 3;
		};
		EEC330CF02BCC15100A80107 = {
			buildPhases = (
				EEC330D002BCC15100A80107,
				EEC330D202BCC15100A80107,
				EEC330D402BCC15100A80107,
				EEC330D502BCC15100A80107,
				EEC330D902BCC1DE00A80107,
			);
			buildSettings = {
				DSTROOT = /;
				INSTALL_ROOT = /;
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = "Decoder Testbed";
				REZ_EXECUTABLE = YES;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
			};
			dependencies = (
			);
			isa = PBXToolTarget;
			name = "Decoder Testbed";
			productInstallPath = /usr/local/bin;
			productName = "Decoder Testbed";
			productReference = EEC330CE02BCC15100A80107;
		};
		EEC330D002BCC15100A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEC330D102BCC15100A80107,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEC330D102BCC15100A80107 = {
			fileRef = EEB04DD7010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330D202BCC15100A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEC330D302BCC15100A80107,
				EEC330D802BCC17000A80107,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEC330D302BCC15100A80107 = {
			fileRef = EEB04DD8010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330D402BCC15100A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEC330DB02BCC20200A80107,
				EEC330DC02BCC28D00A80107,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEC330D502BCC15100A80107 = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEC330D702BCC16F00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = DecoderTest_main.m;
			refType = 4;
		};
		EEC330D802BCC17000A80107 = {
			fileRef = EEC330D702BCC16F00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330D902BCC1DE00A80107 = {
			buildActionMask = 2147483647;
			dstPath = /tmp;
			dstSubfolderSpec = 0;
			files = (
				EEC330DA02BCC1DE00A80107,
			);
			isa = PBXCopyFilesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEC330DA02BCC1DE00A80107 = {
			fileRef = EEB04DD6010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330DB02BCC20200A80107 = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEC330DC02BCC28D00A80107 = {
			fileRef = 6ECD85EE0108B0962947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDEF4E0031B951900E96D60 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMutableObjectPair.h;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMutableObjectPair.h;
			refType = 4;
		};
		EEDEF4E1031B951900E96D60 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDMutableObjectPair.m;
			path = ../../ed/EDCommon/DataStructures.subproj/EDMutableObjectPair.m;
			refType = 4;
		};
		EEDEF4E2031B951900E96D60 = {
			fileRef = EEDEF4E0031B951900E96D60;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDEF4E3031B951900E96D60 = {
			fileRef = EEDEF4E1031B951900E96D60;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDEF4E4031B951900E96D60 = {
			fileRef = EEDEF4E0031B951900E96D60;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDEF4E5031B951900E96D60 = {
			fileRef = EEDEF4E1031B951900E96D60;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF083802B803C300A80107 = {
			isa = PBXApplicationReference;
			path = MulleNewz.app;
			refType = 3;
		};
		EEDF083902B803C300A80107 = {
			buildPhases = (
				EEDF083A02B803C300A80107,
				EEDF083B02B803C300A80107,
				EEDF083C02B803C300A80107,
				EEDF083D02B803C300A80107,
				EEDF083E02B803C300A80107,
			);
			buildSettings = {
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				OTHER_REZFLAGS = "";
				PRODUCT_NAME = MulleNewz;
				SECTORDER_FLAGS = "";
				WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
				WRAPPER_EXTENSION = app;
			};
			dependencies = (
			);
			isa = PBXApplicationTarget;
			name = "MulleNewz - App";
			productInstallPath = "$(USER_APPS_DIR)";
			productName = MulleNewz;
			productReference = EEDF083802B803C300A80107;
			productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>MulleNewz</string>
	<key>CFBundleGetInfoString</key>
	<string></string>
	<key>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>com.mulle-kybernetik.znek.MulleNewz</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>MulleNewz</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string></string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.8</string>
	<key>NSMainNibFile</key>
	<string>MulleNewz</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
	<key>NSUIElement</key>
	<string>0</string>
</dict>
</plist>
";
		};
		EEDF083A02B803C300A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEDF084202B8084A00A80107,
				EEDF085F02B80E7C00A80107,
				EEDF086002B80E7C00A80107,
				EEDF086302B80F7B00A80107,
				EEDF086402B80F7B00A80107,
				EEDF086502B80F7B00A80107,
				EEDF086602B80F7B00A80107,
				EEDF086702B80F7B00A80107,
				EEDF086802B80F7B00A80107,
				EEDF086F02B80F7B00A80107,
				EEDF087002B80F7B00A80107,
				EEDF087102B80F7B00A80107,
				EEDF087302B80F7B00A80107,
				EEDF087402B80F7B00A80107,
				EEDF087602B80F7B00A80107,
				EEDF087702B80F7B00A80107,
				EEDF087802B80F7B00A80107,
				EEDF089002B80FC900A80107,
				EEDF089102B80FC900A80107,
				EEDF089202B80FC900A80107,
				EEDF089302B80FC900A80107,
				EEDF089402B80FC900A80107,
				EEDF089502B80FC900A80107,
				EEDF089602B80FC900A80107,
				EE1CB35C02BCFE4000A80107,
				EE9202D402E1D71300A80107,
				EE9202D802E1DF2800A80107,
				EE9202D902E1DF2800A80107,
				EE9202DD02E1DF8100A80107,
				EE9202DE02E1DF8100A80107,
				EE9202E702E1E0CA00A80107,
				EE1A1BB402E203D500A80107,
				EEDEF4E2031B951900E96D60,
			);
			isa = PBXHeadersBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEDF083B02B803C300A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEDF087902B80F7B00A80107,
				EEDF087A02B80F7B00A80107,
				EEDF089702B80FC900A80107,
				EEDF089E02B8130A00A80107,
				EE1A1BB702E208D600A80107,
				AD15B2BA041110E500A80107,
				ADC8E80B04156CC700A80107,
			);
			isa = PBXResourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEDF083C02B803C300A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEDF084302B8084A00A80107,
				EEDF085002B80C8200A80107,
				EEDF086102B80E7C00A80107,
				EEDF086202B80E7C00A80107,
				EEDF087B02B80F7B00A80107,
				EEDF087C02B80F7B00A80107,
				EEDF087D02B80F7B00A80107,
				EEDF087E02B80F7B00A80107,
				EEDF087F02B80F7B00A80107,
				EEDF088002B80F7B00A80107,
				EEDF088602B80F7B00A80107,
				EEDF088702B80F7B00A80107,
				EEDF088802B80F7B00A80107,
				EEDF088A02B80F7B00A80107,
				EEDF088B02B80F7B00A80107,
				EEDF088D02B80F7B00A80107,
				EEDF088E02B80F7B00A80107,
				EEDF088F02B80F7B00A80107,
				EEDF089802B80FC900A80107,
				EEDF089902B80FC900A80107,
				EEDF089A02B80FC900A80107,
				EEDF089B02B80FC900A80107,
				EEDF089C02B80FC900A80107,
				EEDF089D02B80FC900A80107,
				EE1CB35D02BCFE4000A80107,
				EE9202D502E1D71300A80107,
				EE9202DA02E1DF2800A80107,
				EE9202E802E1E0CA00A80107,
				EE1A1BB502E203D500A80107,
				EEDEF4E3031B951900E96D60,
			);
			isa = PBXSourcesBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEDF083D02B803C300A80107 = {
			buildActionMask = 2147483647;
			files = (
				EEDF084C02B80C3D00A80107,
			);
			isa = PBXFrameworksBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEDF083E02B803C300A80107 = {
			buildActionMask = 2147483647;
			files = (
			);
			isa = PBXRezBuildPhase;
			runOnlyForDeploymentPostprocessing = 0;
		};
		EEDF084002B8084A00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MKNAppDelegate.h;
			refType = 4;
		};
		EEDF084102B8084A00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MKNAppDelegate.m;
			refType = 4;
		};
		EEDF084202B8084A00A80107 = {
			fileRef = EEDF084002B8084A00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF084302B8084A00A80107 = {
			fileRef = EEDF084102B8084A00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF084C02B80C3D00A80107 = {
			fileRef = 1058C7ADFEA557BF11CA2CBB;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF084F02B80C8200A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			path = MulleNewzApp_main.m;
			refType = 4;
		};
		EEDF085002B80C8200A80107 = {
			fileRef = EEDF084F02B80C8200A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF085B02B80E7C00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDApplication.h;
			path = ../../ed/EDCommon/AppKitExtensions.subproj/EDApplication.h;
			refType = 4;
		};
		EEDF085C02B80E7C00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = EDApplication.m;
			path = ../../ed/EDCommon/AppKitExtensions.subproj/EDApplication.m;
			refType = 4;
		};
		EEDF085D02B80E7C00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSApplication+Extensions.h";
			path = "../../ed/EDCommon/AppKitExtensions.subproj/NSApplication+Extensions.h";
			refType = 4;
		};
		EEDF085E02B80E7C00A80107 = {
			fileEncoding = 30;
			isa = PBXFileReference;
			name = "NSApplication+Extensions.m";
			path = "../../ed/EDCommon/AppKitExtensions.subproj/NSApplication+Extensions.m";
			refType = 4;
		};
		EEDF085F02B80E7C00A80107 = {
			fileRef = EEDF085B02B80E7C00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086002B80E7C00A80107 = {
			fileRef = EEDF085D02B80E7C00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086102B80E7C00A80107 = {
			fileRef = EEDF085C02B80E7C00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086202B80E7C00A80107 = {
			fileRef = EEDF085E02B80E7C00A80107;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086302B80F7B00A80107 = {
			fileRef = EE1B730F0117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086402B80F7B00A80107 = {
			fileRef = EE1B72F501176D8100000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086502B80F7B00A80107 = {
			fileRef = EE1B72ED01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086602B80F7B00A80107 = {
			fileRef = EE1B72EB01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086702B80F7B00A80107 = {
			fileRef = EE1B72E501176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086802B80F7B00A80107 = {
			fileRef = EE1B72E301176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF086F02B80F7B00A80107 = {
			fileRef = 6ECD85FB0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087002B80F7B00A80107 = {
			fileRef = 6ECD85FD0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087102B80F7B00A80107 = {
			fileRef = 6ECD85FF0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087302B80F7B00A80107 = {
			fileRef = 6ECD86030108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087402B80F7B00A80107 = {
			fileRef = 6ECD86050108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087602B80F7B00A80107 = {
			fileRef = 6ECD860A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087702B80F7B00A80107 = {
			fileRef = 6ECD861A0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087802B80F7B00A80107 = {
			fileRef = EEB04DD7010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087902B80F7B00A80107 = {
			fileRef = EEB04DD6010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087A02B80F7B00A80107 = {
			fileRef = EE396CDA010BB9D800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087B02B80F7B00A80107 = {
			fileRef = EE1B73100117715800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087C02B80F7B00A80107 = {
			fileRef = EE1B72F601176D8100000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087D02B80F7B00A80107 = {
			fileRef = EE1B72EE01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087E02B80F7B00A80107 = {
			fileRef = EE1B72EC01176D0300000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF087F02B80F7B00A80107 = {
			fileRef = EE1B72E601176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088002B80F7B00A80107 = {
			fileRef = EE1B72E401176C9900000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088602B80F7B00A80107 = {
			fileRef = 6ECD85FC0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088702B80F7B00A80107 = {
			fileRef = 6ECD85FE0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088802B80F7B00A80107 = {
			fileRef = 6ECD86000108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088A02B80F7B00A80107 = {
			fileRef = 6ECD86040108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088B02B80F7B00A80107 = {
			fileRef = 6ECD86060108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088D02B80F7B00A80107 = {
			fileRef = 6ECD860B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088E02B80F7B00A80107 = {
			fileRef = 6ECD861B0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF088F02B80F7B00A80107 = {
			fileRef = EEB04DD8010BF5F800000001;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089002B80FC900A80107 = {
			fileRef = 6ECD86550108C5052947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089102B80FC900A80107 = {
			fileRef = 6ECD86100108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089202B80FC900A80107 = {
			fileRef = 6ECD860C0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089302B80FC900A80107 = {
			fileRef = 6ECD86160108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089402B80FC900A80107 = {
			fileRef = 6ECD86180108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089502B80FC900A80107 = {
			fileRef = 6ECD86200108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089602B80FC900A80107 = {
			fileRef = 6E437D1E010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089702B80FC900A80107 = {
			fileRef = 6ECD864E0108B6DF2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089802B80FC900A80107 = {
			fileRef = 6ECD86110108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089902B80FC900A80107 = {
			fileRef = 6ECD860D0108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089A02B80FC900A80107 = {
			fileRef = 6ECD86170108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089B02B80FC900A80107 = {
			fileRef = 6ECD86190108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089C02B80FC900A80107 = {
			fileRef = 6ECD86210108B54A2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089D02B80FC900A80107 = {
			fileRef = 6E437D1F010E262B2947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
		EEDF089E02B8130A00A80107 = {
			fileRef = 6E437D13010E1E582947C60C;
			isa = PBXBuildFile;
			settings = {
			};
		};
	};
	rootObject = 089C1669FE841209C02AAC07;
}
                                                                                                                                                                                                                          znek/MulleNewz/RSS/                                                                                 0040755 0000356 0000000 00000000000 07665677454 013275  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/RSS/CVS/                                                                             0040755 0000356 0000000 00000000000 07665677454 013730  5                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  znek/MulleNewz/RSS/CVS/Root                                                                         0100644 0000356 0000000 00000000063 07665677453 014571  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  :pserver:anoncvs@cvs.mulle-kybernetik.com:/cvsroot
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/RSS/CVS/Repository                                                                   0100644 0000356 0000000 00000000034 07665677453 016023  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /cvsroot/znek/MulleNewz/RSS
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    znek/MulleNewz/RSS/CVS/Entries                                                                      0100644 0000356 0000000 00000002223 07665677454 015260  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  /GNUmakefile/1.2/Sun Jul 14 22:28:50 2002//
/Makefile/1.1/Tue Jul 24 23:54:18 2001//
/Makefile.postamble/1.1/Tue Jul 24 23:54:18 2001//
/Makefile.preamble/1.1/Tue Jul 24 23:54:18 2001//
/PB.project/1.1/Tue Jul 24 23:54:18 2001//
/RDFDocument.h/1.2/Wed Aug  1 17:45:48 2001//
/RDFDocument.m/1.3/Wed Aug  1 17:45:48 2001//
/RSSCache.h/1.2/Fri Jul 27 10:25:36 2001//
/RSSCache.m/1.6/Fri Jan  3 16:21:51 2003//
/RSSChannel.h/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSChannel.m/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSDocument.h/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSDocument.m/1.2/Mon Jul 30 10:47:10 2001//
/RSSElements.h/1.1/Sun Jul 14 20:04:38 2002//
/RSSImage.h/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSImage.m/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSItem.h/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSItem.m/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSParser.h/1.3/Fri Jan  3 16:21:51 2003//
/RSSParser.m/1.9/Tue Mar  4 23:45:11 2003//
/RSSTagProcessor.h/1.2/Fri May 30 02:12:24 2003//
/RSSTagProcessor.m/1.3/Fri May 30 02:12:25 2003//
/RSSTags.plist/1.8/Fri May 30 02:12:25 2003//
/RSSTextInput.h/1.1.1.1/Mon Jul 23 06:50:23 2001//
/RSSTextInput.m/1.1.1.1/Mon Jul 23 06:50:23 2001//
D
                                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/RSS/GNUmakefile                                                                      0100644 0000356 0000000 00000001522 07514375442 015325  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  # RSS
# $Id: GNUmakefile,v 1.2 2002/07/14 22:28:50 znek Exp $


ifeq "$(GNUSTEP_SYSTEM_ROOT)" ""
  include Makefile
else

include $(GNUSTEP_MAKEFILES)/common.make


SUBPROJECT_NAME = RSS

ADDITIONAL_INCLUDE_DIRS = -I.. -I../MulleBasicXML


RSS_OBJC_FILES = \
RDFDocument.m       RSSDocument.m       RSSParser.m \
RSSCache.m          RSSImage.m          RSSTagProcessor.m \
RSSChannel.m        RSSItem.m           RSSTextInput.m

RSS_HEADER_FILES = \
RDFDocument.h       RSSDocument.h       RSSItem.h           RSSTextInput.h \
RSSCache.h          RSSElements.h       RSSParser.h \
RSSChannel.h        RSSImage.h          RSSTagProcessor.h

RSS_RESOURCE_FILES= \
RSSTags.plist


-include Makefile.preamble

-include GNUmakefile.preamble

include $(GNUSTEP_MAKEFILES)/subproject.make

-include GNUmakefile.postamble

-include Makefile.postamble

endif
                                                                                                                                                                              znek/MulleNewz/RSS/Makefile                                                                         0100644 0000356 0000000 00000002445 07327405252 014713  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  #
# Generated by the Apple Project Builder.
#
# NOTE: Do NOT change this file -- Project Builder maintains it.
#
# Put all of your customizations in files called Makefile.preamble
# and Makefile.postamble (both optional), and Makefile will include them.
#

NAME = RSS

PROJECTVERSION = 2.8
PROJECT_TYPE = Component

GLOBAL_RESOURCES = RSSTags.plist

CLASSES = RSSParser.m RSSCache.m RSSChannel.m RSSDocument.m RSSImage.m\
          RSSItem.m RSSTextInput.m

HFILES = RSSParser.h RSSCache.h RSSChannel.h RSSDocument.h RSSImage.h\
         RSSItem.h RSSTextInput.h

OTHERSRCS = Makefile.preamble Makefile Makefile.postamble

MAKEFILEDIR = $(MAKEFILEPATH)/pb_makefiles
CODE_GEN_STYLE = DYNAMIC
MAKEFILE = subproj.make
LIBS = 
DEBUG_LIBS = $(LIBS)
PROF_LIBS = $(LIBS)


PROJECT_HEADERS = RSSCache.h RSSChannel.h RSSDocument.h RSSImage.h\
                  RSSItem.h RSSParser.h RSSTextInput.h



NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc
WINDOWS_OBJCPLUS_COMPILER = $(DEVDIR)/gcc
PDO_UNIX_OBJCPLUS_COMPILER = $(NEXTDEV_BIN)/gcc
NEXTSTEP_JAVA_COMPILER = /usr/bin/javac
WINDOWS_JAVA_COMPILER = $(JDKBINDIR)/javac.exe
PDO_UNIX_JAVA_COMPILER = $(JDKBINDIR)/javac

include $(MAKEFILEDIR)/platform.make

-include Makefile.preamble

include $(MAKEFILEDIR)/$(MAKEFILE)

-include Makefile.postamble

-include Makefile.dependencies
                                                                                                                                                                                                                           znek/MulleNewz/RSS/Makefile.postamble                                                               0100644 0000356 0000000 00000011131 07327405252 016670  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.postamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile, which is imported after all other makefiles, to
#  override attributes for a project's Makefile environment. This allows you  
#  to take advantage of the environment set up by the other Makefiles. 
#  You can also define custom rules at the end of this file.
#
###############################################################################
# 
# These variables are exported by the standard makefiles and can be 
# used in any customizations you make.  They are *outputs* of
# the Makefiles and should be used, not set.
# 
#  PRODUCTS: products to install.  All of these products will be placed in
#	 the directory $(DSTROOT)$(INSTALLDIR)
#  GLOBAL_RESOURCE_DIR: The directory to which resources are copied.
#  LOCAL_RESOURCE_DIR: The directory to which localized resources are copied.
#  OFILE_DIR: Directory into which .o object files are generated.
#  DERIVED_SRC_DIR: Directory used for all other derived files
#
#  ALL_CFLAGS:  flags to pass when compiling .c files
#  ALL_MFLAGS:  flags to pass when compiling .m files
#  ALL_CCFLAGS:  flags to pass when compiling .cc, .cxx, and .C files
#  ALL_MMFLAGS:  flags to pass when compiling .mm, .mxx, and .M files
#  ALL_PRECOMPFLAGS:  flags to pass when precompiling .h files
#  ALL_LDFLAGS:  flags to pass when linking object files
#  ALL_LIBTOOL_FLAGS:  flags to pass when libtooling object files
#  ALL_PSWFLAGS:  flags to pass when processing .psw and .pswm (pswrap) files
#  ALL_RPCFLAGS:  flags to pass when processing .rpc (rpcgen) files
#  ALL_YFLAGS:  flags to pass when processing .y (yacc) files
#  ALL_LFLAGS:  flags to pass when processing .l (lex) files
#
#  NAME: name of application, bundle, subproject, palette, etc.
#  LANGUAGES: langages in which the project is written (default "English")
#  English_RESOURCES: localized resources (e.g. nib's, images) of project
#  GLOBAL_RESOURCES: non-localized resources of project
#
#  SRCROOT:  base directory in which to place the new source files
#  SRCPATH:  relative path from SRCROOT to present subdirectory
#
#  INSTALLDIR: Directory the product will be installed into by 'install' target
#  PUBLIC_HDR_INSTALLDIR: where to install public headers.  Don't forget
#        to prefix this with DSTROOT when you use it.
#  PRIVATE_HDR_INSTALLDIR: where to install private headers.  Don't forget
#	 to prefix this with DSTROOT when you use it.
#
#  EXECUTABLE_EXT: Executable extension for the platform (i.e. .exe on Windows)
#
###############################################################################

# Some compiler flags can be overridden here for certain build situations.
#
#    WARNING_CFLAGS:  flag used to set warning level (defaults to -Wmost)
#    DEBUG_SYMBOLS_CFLAGS:  debug-symbol flag passed to all builds (defaults
#	to -g)
#    DEBUG_BUILD_CFLAGS:  flags passed during debug builds (defaults to -DDEBUG)
#    OPTIMIZE_BUILD_CFLAGS:  flags passed during optimized builds (defaults
#	to -O)
#    PROFILE_BUILD_CFLAGS:  flags passed during profile builds (defaults
#	to -pg -DPROFILE)
#    LOCAL_DIR_INCLUDE_DIRECTIVE:  flag used to add current directory to
#	the include path (defaults to -I.)
#    DEBUG_BUILD_LDFLAGS, OPTIMIZE_BUILD_LDFLAGS, PROFILE_BUILD_LDFLAGS: flags
#	passed to ld/libtool (defaults to nothing)


# Library and Framework projects only:
#    INSTALL_NAME_DIRECTIVE:  This directive ensures that executables linked
#	against the framework will run against the correct version even if
#	the current version of the framework changes.  You may override this
#	to "" as an alternative to using the DYLD_LIBRARY_PATH during your
#	development cycle, but be sure to restore it before installing.


# Ownership and permissions of files installed by 'install' target

#INSTALL_AS_USER = root
        # User/group ownership 
#INSTALL_AS_GROUP = wheel
        # (probably want to set both of these) 
#INSTALL_PERMISSIONS =
        # If set, 'install' chmod's executable to this


# Options to strip.  Note: -S strips debugging symbols (executables can be stripped
# down further with -x or, if they load no bundles, with no options at all).

#STRIPFLAGS = -S


#########################################################################
# Put rules to extend the behavior of the standard Makefiles here.  Include them in
# the dependency tree via cvariables like AFTER_INSTALL in the Makefile.preamble.
#
# You should avoid redefining things like "install" or "app", as they are
# owned by the top-level Makefile API and no context has been set up for where 
# derived files should go.
#
                                                                                                                                                                                                                                                                                                                                                                                                                                       znek/MulleNewz/RSS/Makefile.preamble                                                                0100644 0000356 0000000 00000015607 07327405252 016505  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  ###############################################################################
#  Makefile.preamble
#  Copyright 1997, Apple Computer, Inc.
#
#  Use this makefile for configuring the standard application makefiles 
#  associated with ProjectBuilder. It is included before the main makefile.
#  In Makefile.preamble you set attributes for a project, so they are available
#  to the project's makefiles.  In contrast, you typically write additional rules or 
#  override built-in behavior in the Makefile.postamble.
#  
#  Each directory in a project tree (main project plus subprojects) should 
#  have its own Makefile.preamble and Makefile.postamble.
###############################################################################
#
# Before the main makefile is included for this project, you may set:
#
#    MAKEFILEDIR: Directory in which to find $(MAKEFILE)
#    MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make)

# Compiler/linker flags added to the defaults:  The OTHER_* variables will be 
# inherited by all nested sub-projects, but the LOCAL_ versions of the same
# variables will not.  Put your -I, -D, -U, and -L flags in ProjectBuilder's
# Build Attributes inspector if at all possible.  To override the default flags
# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble.  The
# variables below are *inputs* to the build process and distinct from the override
# settings done (less often) in the Makefile.postamble.
#
#    OTHER_CFLAGS, LOCAL_CFLAGS:  additional flags to pass to the compiler
#	Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m,
#	.cc, .cxx, .C, and .M files.  There is no need to respecify the
#	flags in OTHER_MFLAGS, etc.
#    OTHER_MFLAGS, LOCAL_MFLAGS:  additional flags for .m files
#    OTHER_CCFLAGS, LOCAL_CCFLAGS:  additional flags for .cc, .cxx, and ...C files
#    OTHER_MMFLAGS, LOCAL_MMFLAGS:  additional flags for .mm and .M files
#    OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS:  additional flags used when
#	precompiling header files
#    OTHER_LDFLAGS, LOCAL_LDFLAGS:  additional flags passed to ld and libtool
#    OTHER_PSWFLAGS, LOCAL_PSWFLAGS:  additional flags passed to pswrap
#    OTHER_RPCFLAGS, LOCAL_RPCFLAGS:  additional flags passed to rpcgen
#    OTHER_YFLAGS, LOCAL_YFLAGS:  additional flags passed to yacc
#    OTHER_LFLAGS, LOCAL_LFLAGS:  additional flags passed to lex

# These variables provide hooks enabling you to add behavior at almost every 
# stage of the make:
#
#    BEFORE_PREBUILD: targets to build before installing headers for a subproject
#    AFTER_PREBUILD: targets to build after installing headers for a subproject
#    BEFORE_BUILD_RECURSION: targets to make before building subprojects
#    BEFORE_BUILD: targets to make before a build, but after subprojects
#    AFTER_BUILD: targets to make after a build
#
#    BEFORE_INSTALL: targets to build before installing the product
#    AFTER_INSTALL: targets to build after installing the product
#    BEFORE_POSTINSTALL: targets to build before postinstalling every subproject
#    AFTER_POSTINSTALL: targts to build after postinstalling every subproject
#
#    BEFORE_INSTALLHDRS: targets to build before installing headers for a 
#         subproject
#    AFTER_INSTALLHDRS: targets to build after installing headers for a subproject
#    BEFORE_INSTALLSRC: targets to build before installing source for a subproject
#    AFTER_INSTALLSRC: targets to build after installing source for a subproject
#
#    BEFORE_DEPEND: targets to build before building dependencies for a
#	  subproject
#    AFTER_DEPEND: targets to build after building dependencies for a
#	  subproject
#
#    AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is
#	  updated every time the project is built.  If NO, the dependency
#	  file is only built when the depend target is invoked.

# Framework-related variables:
#    FRAMEWORK_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the framework's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables

# Library-related variables:
#    PUBLIC_HEADER_DIR:  Determines where public exported header files
#	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.  For library projects you should
#       set this to something like /Developer/Headers/$(NAME).  Do not set
#       this variable for framework projects unless you do not want the
#       header files included in the framework.
#    PRIVATE_HEADER_DIR:  Determines where private exported header files
#  	should be installed.  Do not include $(DSTROOT) in this value --
#	it is prefixed automatically.
#    LIBRARY_STYLE:  This may be either STATIC or DYNAMIC, and determines
#  	whether the libraries produced are statically linked when they
#	are used or if they are dynamically loadable. This defaults to
#       DYNAMIC.
#    LIBRARY_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
#	where to put the library's DLL.  This variable defaults to 
#	$(INSTALLDIR)/../Executables
#
#    INSTALL_AS_USER: owner of the intalled products (default root)
#    INSTALL_AS_GROUP: group of the installed products (default wheel)
#    INSTALL_PERMISSIONS: permissions of the installed product (default o+rX)
#
#    OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be
#  	passed on the command line to recursive invocations of make.  Note that
#	the values in OTHER_*FLAGS are inherited by subprojects automatically --
#	you do not have to (and shouldn't) add OTHER_*FLAGS to 
#	OTHER_RECURSIVE_VARIABLES. 

# Additional headers to export beyond those in the PB.project:
#    OTHER_PUBLIC_HEADERS
#    OTHER_PROJECT_HEADERS
#    OTHER_PRIVATE_HEADERS

# Additional files for the project's product: <<path relative to proj?>>
#    OTHER_RESOURCES: (non-localized) resources for this project
#    OTHER_OFILES: relocatables to be linked into this project
#    OTHER_LIBS: more libraries to link against
#    OTHER_PRODUCT_DEPENDS: other dependencies of this project
#    OTHER_SOURCEFILES: other source files maintained by .pre/postamble
#    OTHER_GARBAGE: additional files to be removed by `make clean'

# Set this to YES if you don't want a final libtool call for a library/framework.
#    BUILD_OFILES_LIST_ONLY

# To include a version string, project source must exist in a directory named 
# $(NAME).%d[.%d][.%d] and the following line must be uncommented.
# OTHER_GENERATED_OFILES = $(VERS_OFILE)

# This definition will suppress stripping of debug symbols when an executable
# is installed.  By default it is YES.
# STRIP_ON_INSTALL = NO

# Uncomment to suppress generation of a KeyValueCoding index when installing 
# frameworks (This index is used by WOB and IB to determine keys available
# for an object).  Set to YES by default.
# PREINDEX_FRAMEWORK = NO

# Change this definition to install projects somewhere other than the
# standard locations.  NEXT_ROOT defaults to "C:/Apple" on Windows systems
# and "" on other systems.
DSTROOT = $(HOME)
                                                                                                                         znek/MulleNewz/RSS/PB.project                                                                       0100644 0000356 0000000 00000002713 07327405252 015142  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {
    DYNAMIC_CODE_GEN = YES; 
    English_RESOURCES = {}; 
    FILESTABLE = {
        CLASSES = (
            RSSParser.m, 
            RSSCache.m, 
            RSSChannel.m, 
            RSSDocument.m, 
            RSSImage.m, 
            RSSItem.m, 
            RSSTextInput.m
        ); 
        H_FILES = (
            RSSParser.h, 
            RSSCache.h, 
            RSSChannel.h, 
            RSSDocument.h, 
            RSSImage.h, 
            RSSItem.h, 
            RSSTextInput.h
        ); 
        OTHER_RESOURCES = (RSSTags.plist); 
        OTHER_SOURCES = (Makefile.preamble, Makefile, Makefile.postamble); 
        PROJECT_HEADERS = (
            RSSCache.h, 
            RSSChannel.h, 
            RSSDocument.h, 
            RSSImage.h, 
            RSSItem.h, 
            RSSParser.h, 
            RSSTextInput.h
        ); 
    }; 
    LANGUAGE = English; 
    MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles"; 
    NEXTSTEP_BUILDTOOL = /bin/gnumake; 
    NEXTSTEP_JAVA_COMPILER = /usr/bin/javac; 
    NEXTSTEP_OBJCPLUS_COMPILER = /usr/bin/cc; 
    PDO_UNIX_BUILDTOOL = $NEXT_ROOT/Developer/bin/make; 
    PDO_UNIX_JAVA_COMPILER = "$(JDKBINDIR)/javac"; 
    PDO_UNIX_OBJCPLUS_COMPILER = "$(NEXTDEV_BIN)/gcc"; 
    PROJECTNAME = RSS; 
    PROJECTTYPE = Component; 
    PROJECTVERSION = 2.8; 
    WINDOWS_BUILDTOOL = $NEXT_ROOT/Developer/Executables/make; 
    WINDOWS_JAVA_COMPILER = "$(JDKBINDIR)/javac.exe"; 
    WINDOWS_OBJCPLUS_COMPILER = "$(DEVDIR)/gcc"; 
}
                                                     znek/MulleNewz/RSS/RDFDocument.h                                                                    0100644 0000356 0000000 00000003364 07332040114 015523  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  RDFDocument.h
//  MulleNewz
//
//  Created by znek on Sun Jul 22 2001.
//  $Id: RDFDocument.h,v 1.2 2001/08/01 17:45:48 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSDocument.h"


@class RSSImage;
@class RSSTextInput;


@interface RDFDocument : RSSDocument
{
}

- (RSSImage *)image;
- (RSSTextInput *)input;

@end
                                                                                                                                                                                                                                                                            znek/MulleNewz/RSS/RDFDocument.m                                                                    0100644 0000356 0000000 00000006451 07332040114 015530  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  RDFDocument.m
//  MulleNewz
//
//  Created by znek on Sun Jul 22 2001.
//  $Id: RDFDocument.m,v 1.3 2001/08/01 17:45:48 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RDFDocument.h"
#import <EDCommon/EDCommon.h>
#import "RSSChannel.h"
#import "RSSImage.h"
#import "RSSItem.h"
#import "RSSTextInput.h"


@implementation RDFDocument

////////////////////////////////////////////////////
//
//	INIT
//
////////////////////////////////////////////////////


- init
{
	[super init];
	[self takeValue:[[[NSMutableArray allocWithZone:[self zone]] init] autorelease] forAttribute:@"items"];
	return self;
}


////////////////////////////////////////////////////
//
//	OVERRIDING FUN
//
////////////////////////////////////////////////////


- (void)addContainedElement:(MXElement *)someElement
{
  if([someElement isKindOfClass:[RSSChannel class]])
  {
    [self takeValue:someElement forAttribute:@"channel"];
  }
  else if([someElement isKindOfClass:[RSSImage class]])
  {
    [self takeValue:someElement forAttribute:@"image"];
  }
  else if([someElement isKindOfClass:[RSSTextInput class]])
  {
    [self takeValue:someElement forAttribute:@"input"];
  }
  else if([someElement isKindOfClass:[RSSItem class]])
  {
    NSMutableArray *items = [self valueForAttribute:@"items"];
    [items addObject:someElement];
  }
  else
  {
    [super addContainedElement:someElement];
  }
}


////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (RSSChannel *)channel
{
  return [self valueForAttribute:@"channel"];
}

- (NSString *)title
{
  return [[self channel] title];
}

- (NSString *)link
{
  return [[self channel] link];
}

- (RSSImage *)image
{
  return [self valueForAttribute:@"image"];
}

- (NSArray *)items
{
  return [self valueForAttribute:@"items"];
}

- (RSSTextInput *)input
{
  return [self valueForAttribute:@"input"];
}

@end
                                                                                                                                                                                                                       znek/MulleNewz/RSS/RSSCache.h                                                                       0100644 0000356 0000000 00000005255 07330240640 015011  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSCache.h by znek on Sun 29-Oct-2000
// $Id: RSSCache.h,v 1.2 2001/07/27 10:25:36 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>


@class RSSParser;
@class RSSDocument;


@interface RSSCache : NSObject
{
    RSSParser *rssParser;
    NSMutableDictionary *rssDocumentLUT;
    NSTimeInterval expireInterval;
}

+ (id)sharedCache;
+ (void)setBundle:(NSBundle *)aBundle;

- (RSSParser *)rssParser;

// Cache management
- (void)setExpireInterval:(NSTimeInterval)anInterval;
- (NSTimeInterval)expireInterval;
- (void)flushCaches;


// High level API.
- (RSSDocument *)documentObjectForURL:(NSString *)urlString;

// Higher level API. Will retrieve Object from cache OR call getDocumentDescriptionFromURL:
// if document isn't found in cache
- (NSDictionary *)documentDescriptionForURL:(NSString *)urlString;

// Will retrieve Object directly from URL
- (NSDictionary *)getDocumentDescriptionFromURL:(NSString *)urlString;

@end

// Keys for the DocumentDescription
extern NSString *RSSDocumentObjectKey;
extern NSString *RSSDocumentKey;
extern NSString *RSSDocumentURLKey;
extern NSString *RSSDocumentErrorKey;
extern NSString *RSSDocumentTimestampKey;
                                                                                                                                                                                                                                                                                                                                                   znek/MulleNewz/RSS/RSSCache.m                                                                       0100644 0000356 0000000 00000017354 07605334237 015034  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSCache.m by znek on Sun 29-Oct-2000
// $Id: RSSCache.m,v 1.6 2003/01/03 16:21:51 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSCache.h"
#import <EDCommon/EDCommon.h>
#import "RSSParser.h"
#import "RSSTagProcessor.h"
#import "RSSDocument.h"


@interface RSSCache (Private)

- (NSDictionary *)getDocumentDescriptionFromURL:(NSString *)urlString;

@end

// Keys for the DocumentDescription
NSString *RSSDocumentObjectKey = @"rootObject";
NSString *RSSDocumentKey = @"document";
NSString *RSSDocumentURLKey = @"documentURL";
NSString *RSSDocumentErrorKey = @"error";
NSString *RSSDocumentTimestampKey = @"timestamp";

@implementation RSSCache

// class var
static NSBundle *_bundle = nil;

////////////////////////////////////////////////////
//
//  INIT & DEALLOC
//
////////////////////////////////////////////////////


- init
{
    [super init];
    rssDocumentLUT = [[NSMutableDictionary allocWithZone:[self zone]] init];
    expireInterval = 30.0 * 60; // 30 minutes
    return self;
}

- (void)dealloc
{
    [rssParser release];
    [rssDocumentLUT release];
    [super dealloc];
}


////////////////////////////////////////////////////
//
//  FACTORY
//
////////////////////////////////////////////////////


+ (id)sharedCache
{
  static id sharedInstance = nil;

  if(sharedInstance == nil)
    sharedInstance = [[RSSCache alloc] init];

  return sharedInstance;
}

+ (void)setBundle:(NSBundle *)aBundle
{
    [aBundle retain];
    [_bundle release];
    _bundle = aBundle;
}


////////////////////////////////////////////////////
//
//  RESETTING
//
////////////////////////////////////////////////////


- (void)flushCaches
{
  [rssDocumentLUT removeAllObjects];
}


////////////////////////////////////////////////////
//
//  EXPIRY SETTINGS
//
////////////////////////////////////////////////////


// it's not possible to set the interval at a value below 60 seconds!
- (void)setExpireInterval:(NSTimeInterval)anInterval
{
	expireInterval = anInterval;
	if(expireInterval < 60.0)
		expireInterval = 60.0;
}

- (NSTimeInterval)expireInterval
{
	return expireInterval;
}


////////////////////////////////////////////////////
//
//  DOCUMENT RETRIEVAL
//
////////////////////////////////////////////////////


- (RSSDocument *)documentObjectForURL:(NSString *)urlString
{
  return [[self documentDescriptionForURL:urlString] objectForKey:RSSDocumentObjectKey];
}

- (NSDictionary *)documentDescriptionForURL:(NSString *)urlString
{
	NSDictionary *documentTable;
	BOOL isDone = NO;
	
	while(isDone == NO)
	{
		NSCalendarDate *expiryDate;

		if((documentTable = [rssDocumentLUT objectForKey:urlString]) == nil || [documentTable objectForKey:RSSDocumentErrorKey] != nil)
		{
			// retrieve the document
			documentTable = [self getDocumentDescriptionFromURL:urlString];
			if(documentTable == nil)
				return nil;
			[rssDocumentLUT setObject:documentTable forKey:urlString];
			isDone = YES;
		}
		else
		{
			expiryDate = [[documentTable objectForKey:RSSDocumentTimestampKey] addTimeInterval:[self expireInterval]];
			if([expiryDate precedesDate:[NSCalendarDate date]])
				[rssDocumentLUT removeObjectForKey:urlString];
			else
				isDone = YES;
		}
	}
	return documentTable;
}


- (NSDictionary *)getDocumentDescriptionFromURL:(NSString *)urlString
{
	NSURL *url;
	NSMutableDictionary *documentTable;
	NSData *content;
	RSSDocument *rootObject;
	
	
	url = [NSURL URLWithString:urlString];
	
	documentTable = [[[NSMutableDictionary allocWithZone:[self zone]] initWithCapacity:4] autorelease];
	[documentTable setObject:url forKey:RSSDocumentURLKey];
	
	if([url isFileURL])
	{
		content = [[[NSData allocWithZone:[self zone]] initWithContentsOfFile:[url path]] autorelease];
		if(content == nil)
		{
			[documentTable setObject:@"File not found" forKey:RSSDocumentErrorKey];
			[documentTable setObject:[NSCalendarDate date] forKey:RSSDocumentTimestampKey];
			return documentTable;
		}
	}
	else
	{
		NSURLHandle *urlHandle;
		
		urlHandle = [url URLHandleUsingCache:NO];
		content = [urlHandle resourceData];
		if(content == nil)
		{
			[documentTable setObject:@"No response from server" forKey:RSSDocumentErrorKey];
			[documentTable setObject:[NSCalendarDate date] forKey:RSSDocumentTimestampKey];
			return documentTable;
		}
	}

	[documentTable setObject:content forKey:RSSDocumentKey];
	// update the timestamp
	[documentTable setObject:[NSCalendarDate date] forKey:RSSDocumentTimestampKey];


	NS_DURING

        rootObject = [[self rssParser] parseXMLDocument:content];
		[documentTable setObject:rootObject forKey:RSSDocumentObjectKey];
	
	NS_HANDLER
	
		[documentTable setObject:[NSString stringWithFormat:@"%@ (%@)", [localException name], [localException reason]] forKey:RSSDocumentErrorKey];
	//	NSLog(@"Error while reading document at URL %@: %@ (%@)", url, [localException name], [localException reason]);
	
	NS_ENDHANDLER
	
	return documentTable;
}


////////////////////////////////////////////////////
//
//  RSS PARSING
//
////////////////////////////////////////////////////


- (RSSParser *)rssParser
{
    if(rssParser == nil)
    {
        RSSTagProcessor *tagProcessor;
        NSDictionary *rssDefinitions, *entities;
        NSString *path;
        NSBundle *bundle;

        if(_bundle == nil)
            bundle = [NSBundle mainBundle];
        else
            bundle = _bundle;

        path = [bundle pathForResource:@"RSSTags" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"RSSTags.plist not found!"];
        rssDefinitions = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];

        path = [bundle pathForResource:@"Entity2String" ofType:@"plist"];
        if(path == nil)
            [NSException raise:NSGenericException format:@"Entity2String.plist not found!"];
        entities = (NSDictionary *)[[NSString stringWithContentsOfFile:path] propertyList];
        
        tagProcessor = [[[RSSTagProcessor allocWithZone:[self zone]] initWithTagDefinitions:rssDefinitions] autorelease];
        [tagProcessor setIgnoresUnknownNamespaces:YES];
        [tagProcessor setIgnoresUnknownTags:YES];
        [tagProcessor setIgnoresUnknownAttributes:YES];

        rssParser = [[RSSParser allocWithZone:[self zone]] initWithTagProcessor:tagProcessor];
        [rssParser setEntityTable:entities];
    }
    return rssParser;
}


@end
                                                                                                                                                                                                                                                                                    znek/MulleNewz/RSS/RSSChannel.h                                                                     0100644 0000356 0000000 00000004010 07326744457 015366  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSChannel.h by znek on Sun 29-Oct-2000
// $Id: RSSChannel.h,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"


@class RSSImage;
@class RSSTextInput;


@interface RSSChannel : MXAutoContentContainerElement
{
}

- (NSString *)title;
- (NSString *)link;
- (NSString *)channelDescription;
- (NSString *)language;
- (RSSImage *)image;
/** @TypeInfo RSSItem */
- (NSArray *)items;
- (RSSTextInput *)input;

- (NSString *)description;

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        znek/MulleNewz/RSS/RSSChannel.m                                                                     0100644 0000356 0000000 00000007122 07326744457 015402  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSChannel.m by znek on Sun 29-Oct-2000
// $Id: RSSChannel.m,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSChannel.h"
#import "RSSImage.h"
#import "RSSItem.h"
#import "RSSTextInput.h"


@implementation RSSChannel

////////////////////////////////////////////////////
//
//	OVERRIDING FUN
//
////////////////////////////////////////////////////


- (void)addContainedElement:(MXElement *)someElement
{
  if([someElement isKindOfClass:[RSSImage class]])
  {
    [self takeValue:someElement forAttribute:@"image"];
  }
  else if([someElement isKindOfClass:[RSSTextInput class]])
  {
    [self takeValue:someElement forAttribute:@"input"];
  }
  else if([someElement isKindOfClass:[RSSItem class]])
  {
    NSMutableArray *items = [self valueForAttribute:@"items"];
    if(items == nil)
    {
      items = [[[NSMutableArray allocWithZone:[self zone]] init] autorelease];
      [self takeValue:items forAttribute:@"items"];
    }
    [items addObject:someElement];
  }
  else
  {
    [super addContainedElement:someElement];
  }
}


////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (NSString *)title
{
  return [self valueForAttribute:@"title"];
}

- (NSString *)link
{
  return [self valueForAttribute:@"link"];
}

- (NSString *)channelDescription
{
  return [self valueForAttribute:@"description"];
}

- (NSString *)language
{
  return [self valueForAttribute:@"language"];
}

- (RSSImage *)image
{
  return [self valueForAttribute:@"image"];
}

- (NSArray *)items
{
  return [self valueForAttribute:@"items"];
}

- (RSSTextInput *)input
{
  return [self valueForAttribute:@"input"];
}


////////////////////////////////////////////////////
//
//	DEBUGGING
//
////////////////////////////////////////////////////


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: title=\"%@\" link=\"%@\" description=\"%@\" image=\"%@\" items=\"%@\">", NSStringFromClass([self class]), self, [self title], [self link], [self channelDescription], [self image], [self items]];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                              znek/MulleNewz/RSS/RSSDocument.h                                                                    0100644 0000356 0000000 00000003775 07326744457 015615  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSDocument.h by znek on Sun 29-Oct-2000
// $Id: RSSDocument.h,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"


@class RSSChannel;


@interface RSSDocument : MXAutoContentContainerElement
{
  NSStringEncoding _encoding;
}


- (RSSChannel *)channel;

- (void)setEncoding:(NSStringEncoding)encoding;
- (NSStringEncoding)encoding;


// EASE OF USE WRAPPERS

- (NSString *)title;
- (NSString *)link;
- (NSArray *)items;

@end
   znek/MulleNewz/RSS/RSSDocument.m                                                                    0100644 0000356 0000000 00000006616 07331235456 015605  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSDocument.m by znek on Sun 29-Oct-2000
// $Id: RSSDocument.m,v 1.2 2001/07/30 10:47:10 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSDocument.h"
#import <EDCommon/EDCommon.h>
#import "RSSChannel.h"


@implementation RSSDocument

////////////////////////////////////////////////////
//
//	INIT
//
////////////////////////////////////////////////////


- init
{
  [super init];
  _encoding = NSUTF8StringEncoding;
  return self;
}


////////////////////////////////////////////////////
//
//	OVERRIDING FUN
//
////////////////////////////////////////////////////


- (void)addContainedElement:(MXElement *)someElement
{
  if([someElement isKindOfClass:[RSSChannel class]])
  {
    [self takeValue:someElement forAttribute:@"channel"];
  }
}


////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (RSSChannel *)channel
{
  return [self valueForAttribute:@"channel"];
}

- (void)setEncoding:(NSStringEncoding)encoding
{
  _encoding = encoding;
}

- (NSStringEncoding)encoding
{
  return _encoding;
}


////////////////////////////////////////////////////
//
//	EASE OF USE
//	ACCESSORS
//
////////////////////////////////////////////////////

// strictly speaking, these "wrappers" are incorrectly placed here.
// in the case of RDF documents, however, that's the place where they
// are. Our code benefits a lot by handling everything in a uniform way.

- (NSString *)title
{
	return [[self channel] title];
}

- (NSString *)link
{
	return [[self channel] link];
}

- (NSArray *)items
{
	return [[self channel] items];
}


////////////////////////////////////////////////////
//
//	DEBUGGING
//
////////////////////////////////////////////////////


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: title=\"%@\" items=\"%@\">", NSStringFromClass([self class]), self, [self title], [self items]];
}

@end
                                                                                                                  znek/MulleNewz/RSS/RSSElements.h                                                                    0100644 0000356 0000000 00000003305 07514354526 015571  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  RSSElements.h
//  MulleNewz
//
//  Created by znek on Fri Jul 20 2001.
//  $Id: RSSElements.h,v 1.1 2002/07/14 20:04:38 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSDocument.h"
#import "RSSChannel.h"
#import "RSSImage.h"
#import "RSSItem.h"
#import "RSSTextInput.h"
                                                                                                                                                                                                                                                                                                                           znek/MulleNewz/RSS/RSSImage.h                                                                       0100644 0000356 0000000 00000003547 07326744457 015056  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSImage.h by znek on Sun 29-Oct-2000
// $Id: RSSImage.h,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"


@interface RSSImage : MXAutoContentContainerElement
{
}

- (NSString *)width;
- (NSString *)height;
- (NSString *)title;
- (NSString *)link;
- (NSString *)url;

@end
                                                                                                                                                         znek/MulleNewz/RSS/RSSImage.m                                                                       0100644 0000356 0000000 00000005243 07326744457 015056  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSImage.m by znek on Sun 29-Oct-2000
// $Id: RSSImage.m,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSImage.h"


@implementation RSSImage

////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (NSString *)width
{
  NSString *width = [self valueForAttribute:@"width"];
  if(width == nil)
    width = @"88"; // according to v0.91 specs
  return width;
}

- (NSString *)height
{
  NSString *height = [self valueForAttribute:@"height"];
  if(height == nil)
    height = @"31"; // according to v0.91 specs
  return height;
}

- (NSString *)title
{
  return [self valueForAttribute:@"title"];
}

- (NSString *)link
{
  return [self valueForAttribute:@"link"];
}

- (NSString *)url
{
  return [self valueForAttribute:@"url"];
}



////////////////////////////////////////////////////
//
//	DEBUGGING
//
////////////////////////////////////////////////////


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: title=\"%@\" link=\"%@\" url=\"%@\">", NSStringFromClass([self class]), self, [self title], [self link], [self url]];
}

@end
                                                                                                                                                                                                                                                                                                                                                             znek/MulleNewz/RSS/RSSItem.h                                                                        0100644 0000356 0000000 00000003505 07326744457 014724  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSItem.h by znek on Sun 29-Oct-2000
// $Id: RSSItem.h,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"


@interface RSSItem : MXAutoContentContainerElement
{
}

- (NSString *)title;
- (NSString *)link;
- (NSString *)itemDescription;

@end
                                                                                                                                                                                           znek/MulleNewz/RSS/RSSItem.m                                                                        0100644 0000356 0000000 00000004574 07326744457 014740  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSItem.m by znek on Sun 29-Oct-2000
// $Id: RSSItem.m,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSItem.h"


@implementation RSSItem

////////////////////////////////////////////////////
//
//	ACCESSORS
//
////////////////////////////////////////////////////


- (NSString *)title
{
  return [self valueForAttribute:@"title"];
}

- (NSString *)link
{
  return [self valueForAttribute:@"link"];
}

- (NSString *)itemDescription
{
  return [self valueForAttribute:@"description"];
}


////////////////////////////////////////////////////
//
//	DEBUGGING
//
////////////////////////////////////////////////////


- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: title=\"%@\" link=\"%@\" description=\"%@\">", NSStringFromClass([self class]), self, [self title], [self link], [self itemDescription]];
}

@end
                                                                                                                                    znek/MulleNewz/RSS/RSSParser.h                                                                      0100644 0000356 0000000 00000003337 07605334237 015254  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSParser.h by znek on Sun 29-Oct-2000
// $Id: RSSParser.h,v 1.3 2003/01/03 16:21:51 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import <EDCommon/EDCommon.h>


@interface RSSParser : EDMLParser
{
}

@end
                                                                                                                                                                                                                                                                                                 znek/MulleNewz/RSS/RSSParser.m                                                                      0100644 0000356 0000000 00000004370 07631235207 015253  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSParser.m by znek on Sun 29-Oct-2000
// $Id: RSSParser.m,v 1.9 2003/03/04 23:45:11 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSParser.h"
#import <EDCommon/EDCommon.h>
#import "RSSDocument.h"


@implementation RSSParser

////////////////////////////////////////////////////
//
//  CHARACTER SETS
//
////////////////////////////////////////////////////

#if 0
+ (NSCharacterSet *)textCharacterSet
{
    NSMutableCharacterSet	*tempCharset;

    tempCharset = [[[NSCharacterSet illegalCharacterSet] mutableCopy] autorelease];
    [tempCharset addCharactersInString:@"<"];
    [tempCharset formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    [tempCharset invert];
    return tempCharset;
}
#endif

@end
                                                                                                                                                                                                                                                                        znek/MulleNewz/RSS/RSSTagProcessor.h                                                                0100644 0000356 0000000 00000003617 07665537010 016434  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  RSSTagProcessor.h
//  MulleNewz
//
//  Created by znek on Sun Jul 14 2002.
//  $Id: RSSTagProcessor.h,v 1.2 2003/05/30 02:12:24 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#ifndef	__RSSTagProcessor_h_INCLUDE
#define	__RSSTagProcessor_h_INCLUDE


#import <Foundation/Foundation.h>
#import <EDCommon/EDCommon.h>


@interface RSSTagProcessor : EDAOMTagProcessor
{
}

- (NSDictionary *)tagDefinitionForTag:(EDObjectPair *)tagNamePair;

@end

#endif	/* __RSSTagProcessor_h_INCLUDE */
                                                                                                                 znek/MulleNewz/RSS/RSSTagProcessor.m                                                                0100644 0000356 0000000 00000017276 07665537011 016450  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //
//  RSSTagProcessor.m
//  MulleNewz
//
//  Created by znek on Sun Jul 14 2002.
//  $Id: RSSTagProcessor.m,v 1.3 2003/05/30 02:12:25 znek Exp $
//
//  Copyright (c) 2001 by Marcus Mller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MulleNewz
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "RSSTagProcessor.h"
#import "RSSDocument.h"


@interface EDObjectPair(EDAOMTagProcessorHelper)
- (NSString *)namespace;
- (NSString *)qualifiedName;
- (NSString *)value;
@end


static NSString *EDAOMLocalNameFromQualifiedName(NSString *qname)
{
    NSRange		r;

    r = [qname rangeOfString:@":"];
    if(r.location == NSNotFound)
        return qname;
    return [qname substringFromIndex:NSMaxRange(r)];
}


@implementation RSSTagProcessor

- (NSString *)defaultNamespace
{
    return [tagDefinitions objectForKey:@"XMLNS"];
}

- (id)documentForElements:(NSArray *)elementList
{
    NSEnumerator *elementEnum;
    id element;

    elementEnum = [elementList objectEnumerator];
    while((element = [elementEnum nextObject]) != nil)
    {
        if([element isKindOfClass:[RSSDocument class]])
            break;
    }

    if(element == nil)
        [NSException raise:EDMLParserException format:@"No valid root element."];

    return element;
}

- (NSDictionary *)tagDefinitionForTag:(EDObjectPair *)tagNamePair
{
    NSString *namespace, *tagName;
    NSDictionary *tagDef;
    NSMutableDictionary *newTagDef, *implicitDefs;

    namespace = [tagNamePair firstObject];
    tagName = EDAOMLocalNameFromQualifiedName([tagNamePair secondObject]);

    tagDef = [[tagDefinitions objectForKey:namespace] objectForKey:tagName];
    if(tagDef != nil)
        return tagDef;

    // search in default namespace
    tagDef = [tagDefinitions objectForKey:tagName];
    if(tagDef != nil)
        return tagDef;

    // construct definition on the fly
    newTagDef = [NSMutableDictionary dictionaryWithDictionary:[tagDefinitions objectForKey:@"UNKNOWN"]];
    implicitDefs = [NSDictionary dictionaryWithObject:tagName forKey:@"key"];
    [newTagDef setObject:[NSArray arrayWithObject:implicitDefs] forKey:@"implicit"];
    return newTagDef;
}

- (EDMLElementType)typeOfElementForTag:(EDObjectPair *)tagNamePair attributeList:(NSArray *)attrList
{
    NSDictionary *tagDef;

    // test this way to make sure that a *nil* defaultNamespace works as expected
/*
    if(([tagName firstObject] != [self defaultNamespace]) && ([[tagName firstObject] isEqualToString:[self defaultNamespace]] == NO))
    {
        if(flags.ignoresUnknownNamespaces || flags.ignoresUnknownTags)
            return EDMLUnknownTag;
        [NSException raise:EDMLParserException format:@"Unknown namespace %@", [tagName firstObject]];
    }
*/
    if((tagDef = [self tagDefinitionForTag:tagNamePair]) == nil)
    {
        if(flags.ignoresUnknownTags)
            return EDMLUnknownTag;
        [NSException raise:EDMLParserException format:@"Unknown tag %@", [tagNamePair secondObject]];
    }

    return ([[tagDef objectForKey:@"container"] boolValue] ? EDMLContainerElement : EDMLSingleElement);
}

- (id)elementForTag:(EDObjectPair *)tagNamePair attributeList:(NSArray *)parsedAttrList

{
    NSString 			*className, *attrName, *attrNamespace;
    NSDictionary		*tagDef, *attrDef;
    NSArray				*attrList;
    NSMutableSet		*requiredAttributes;
    NSSet				*knownAttributes;
    NSEnumerator		*attrEnum;
    EDObjectPair		*attr;
    id <EDAOMElement> 	element;


    tagDef = [self tagDefinitionForTag:tagNamePair];

    NSAssert1(tagDef != nil, @"No definition for tag %@", [tagNamePair secondObject]);
    className = [tagDef objectForKey:@"class"];
    NSAssert1(className != nil, @"Class entry missing for tag <%@>", [tagNamePair secondObject]);
    element = [[[NSClassFromString(className) allocWithZone:[self zone]] init] autorelease];
    NSAssert1(element != nil, @"Cannot instantiate element for tag <%@>", [tagNamePair secondObject]);

    // feed implicit attribute values
    if((attrList = [tagDef objectForKey:@"implicit"]) != nil)
    {
        attrEnum = [attrList objectEnumerator];
        while((attrDef = [attrEnum nextObject]) != nil)
        {
            attrName = [[attrDef keyEnumerator] nextObject];
            [element takeValue:[attrDef objectForKey:attrName] forAttribute:attrName];
        }
    }

    // collect known and required attributes
    knownAttributes = requiredAttributes = nil;
    if((attrList = [tagDef objectForKey:@"required"]) != nil)
    {
        requiredAttributes = [NSMutableSet setWithArray:attrList];
        knownAttributes = [NSSet setWithSet:requiredAttributes];
    }
    if((attrList = [tagDef objectForKey:@"optional"]) != nil)
    {
        if(knownAttributes == nil)
            knownAttributes = [NSSet setWithArray:attrList];
        else
            knownAttributes = [knownAttributes setByAddingObjectsFromArray:attrList];
    }

    attrEnum = [parsedAttrList objectEnumerator];
    while((attr = [attrEnum nextObject]) != nil)
    {
        attrNamespace = [attr namespace];
        attrName = EDAOMLocalNameFromQualifiedName([attr qualifiedName]);

        // If we have a namespace, we can detect and ignore xmlns attributes
        if(([self defaultNamespace] != nil) && (attrNamespace == nil))
            continue;

        // Check namespace, raise or ignore if unknown
        if((attrNamespace != [self defaultNamespace]) && ([attrNamespace isEqualToString:[self defaultNamespace]] == NO) && (flags.acceptsUnknownAttributes == NO))
        {
            if(flags.ignoresUnknownNamespaces)
                continue;
            [NSException raise:EDMLParserException format:@"Invalid attribute \"%@\" for tag <%@>.", attrName, [tagNamePair secondObject]];
        }
        // Check name, raise or ignore if unknown
        if(([knownAttributes containsObject:attrName] == NO) && (flags.acceptsUnknownAttributes == NO))
        {
            if(flags.ignoresUnknownAttributes)
                continue;
            [NSException raise:EDMLParserException format:@"Invalid attribute \"%@\" for tag <%@>.", attrName, [tagNamePair secondObject]];
        }
        [element takeValue:[attr value] forAttribute:attrName];
        [requiredAttributes removeObject:attrName];
    }

    if((requiredAttributes != nil) && ([requiredAttributes count] > 0))
        [NSException raise:EDMLParserException format:@"Required attribute(s) \"%@\" missing in tag <%@>", [[requiredAttributes allObjects] componentsJoinedByString:@", "], [tagNamePair secondObject]];

    return element;
}

@end
                                                                                                                                                                                                                                                                                                                                  znek/MulleNewz/RSS/RSSTags.plist                                                                    0100644 0000356 0000000 00000007655 07665537011 015632  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  {

//
// PARSER CONFIGURATION
//

// the default XML namespace
"XMLNS" = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";

/*
"DOCUMENT" = {
    class = "RSSDocument";
};
*/

"*" = {
	class = MXStringElement;
	implicit = string;
};

"_" = {
	class = MXStringElement;
	implicit = string;
};

// Template for unknown tags
"UNKNOWN" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "UNKNOWN"; } );
};


//
// TOP LEVEL (documents)
//


"rss" = {
  class = RSSDocument;
  required = ( version );
  container = YES;
  root = YES;
};

"rdf" = {
	class = RDFDocument;
	container = YES;
	root = YES;
};

"RDF" = {
	class = RDFDocument;
	container = YES;
	root = YES;
};


//
// HIGH LEVEL TAGS
//


"channel" = {
  class = RSSChannel;
  optional = ( "about" );
  container = YES;
};

"image" = {
  class = RSSImage;
  container = YES;
};

"item" = {
  class = RSSItem;
  optional = ( "about" );
  container = YES;
};

"textinput" = {
  class = RSSTextInput;
  container = YES;
};


//
// LOW LEVEL TAGS
//


"language" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "language"; } );
};

"title" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "title"; } );
};

"link" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "link"; } );
};

"url" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "url"; } );
};

"description" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "description"; } );
};

"width" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "width"; } );
};

"height" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "height"; } );
};


//
//  CURRENTLY IGNORED TAGS
//


// PICS rating
"rating" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "rating"; } );
};

"copyright" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "copyright"; } );
};

"pubDate" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "pubDate"; } );
};

"lastBuildDate" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "lastBuildDate"; } );
};

// external channel description file, max 1 per channel
"docs" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "docs"; } );
};

"managingEditor" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "managingEditor"; } );
};

"webMaster" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "webMaster"; } );
};

// max 1 per channel
"skipHours" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "skipHours"; } );
};

// required if skipHours set
"hour" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "hour"; } );
};

// max 1 per channel
"skipDays" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "skipDays"; } );
};

// required if skipDays set
"day" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "day"; } );
};

// textinput requires this
"name" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "name"; } );
};


//
// RSS 1.0
//


"sy:updatePeriod" = {
  class = MXTextContainerElement;
  container = YES;
  implicit = ( { key = "sy:updatePeriod"; } );
};

"http://purl.org/dc/elements/1.1/" = {
    "date" = {
    class = MXTextContainerElement;
    container = YES;
    implicit = ( { key = "date"; } );
    };
};

"http://www.w3.org/1999/02/22-rdf-syntax-ns#" = {
    "Seq" = {
    class = MXTextContainerElement;
    container = YES;
    implicit = ( { key = "Seq"; } );
    };
    
    "li" = {
    class = MXTextContainerElement;
    container = YES;
    optional = ( "resource" ); // not sure whether this is required
    implicit = ( { key = "li"; } );
    };
};

}
                                                                                   znek/MulleNewz/RSS/RSSTextInput.h                                                                   0100644 0000356 0000000 00000003556 07326744457 016000  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSTextInput.h by znek on Sat 04-Nov-2000
// $Id: RSSTextInput.h,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------


#import "MXAutoContentContainerElement.h"


@interface RSSTextInput : MXAutoContentContainerElement
{
}

- (NSString *)title;
- (NSString *)inputDescription;
- (NSString *)inputName;
- (NSString *)link;

@end
                                                                                                                                                  znek/MulleNewz/RSS/RSSTextInput.m                                                                   0100644 0000356 0000000 00000004227 07326744457 016001  0                                                                                                    ustar   znek                            wheel                                                                                                                                                                                                                  //---------------------------------------------------------------------------------------
// created as RSSTextInput.m by znek on Sat 04-Nov-2000
// $Id: RSSTextInput.m,v 1.1.1.1 2001/07/23 06:50:23 znek Exp $
//
//  Copyright (c) 2000 by Marcus Mueller <znek@mulle-kybernetik.com>.
//  All rights reserved.
//
//  Permission to use, copy, modify and distribute this software and its documentation
//  is hereby granted under the terms of the GNU General Public License, version 2
//  as published by the Free Software Foundation, provided that both the copyright notice
//  and this permission notice appear in all copies of the software, derivative works or
//  modified versions, and any portions thereof, and that both notices appear in supporting
//  documentation, and that credit is given to Marcus Mueller in all documents and publicity
//  pertaining to direct or indirect use of this code or its derivatives.
//
//  This is free software; you can redistribute and/or modify it under
//  the terms of the GNU General Public License, version 2 as published by the Free
//  Software Foundation. Further information can be found on the project's web pages
//  at http://www.mulle-kybernetik.com/software/MKPortal
//
//  THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE
//  SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS
//  "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY
//  DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE
//  OR OF ANY DERIVATIVE WORK.
//---------------------------------------------------------------------------------------

#import "RSSTextInput.h"

@implementation RSSTextInput

- (NSString *)title
{
  return [self valueForAttribute:@"title"];
}

- (NSString *)inputDescription
{
  return [self valueForAttribute:@"description"];
}

- (NSString *)inputName
{
  return [self valueForAttribute:@"name"];
}

- (NSString *)link
{
  return [self valueForAttribute:@"link"];
}

- (NSString *)description
{
  return [NSString stringWithFormat:@"<%@ 0x%x: attributes=\"%@\">", NSStringFromClass([self class]), self, attributes];
}

@end
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         