1986 #################################################### Date: Mon, 29 Dec 86 22:37:55 PST From: Jacobi.pa Subject: News on ChipNDale 2.4 To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa New BringDATools24 command to bringover the complete [as far as already converted] datool suite on top of ChipNDale24. Warning: Some tools are still missing. (Static, Lichen, ReadCif...) Designer which need the complete datool suite must still wait before doing the switch. To get the new BringDATools24 command, bringover /datools/datools6.1/top/BringDATools24.df The BringDATools24 command is the one place where the version number must show through. But in principle the package wouldn't need a version number on the df file, the command should suffice. [Actualy, the same package also implements a command BringDATools23 and others] Christian #################################################### Date: Fri, 19 Dec 86 20:34:32 PST From: Beretta.pa Subject: Easy documentation access for DATools 6.1 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa, Bland.pa DF: no bringover required Documentation: self documenting Maintainer: DAToolsImplementors^.pa Ever wondered how to get those strays into your Core ? Or listed in vain the directories on [DATools] to find the Catalog, or some documentation about ChipNDale ? Or scanned in vain the Catalog to find a tool that finds unconnected wires ? If you have 76 gfi's left, your anwer might be to stuff the following line in the command tool: WBOpen [Ebbetts.alpine]Whiteboard.segment; Whiteboard M Putting in your user profile an alias you can easily remember will help in the case of need. Collected by Giordano Beretta and Lissy Bland. #################################################### Date: Wed, 10 Dec 86 18:05:00 PST From: Beretta.pa Subject: Which rules are checked and which not? To: DAToolsUsers^.pa Reply-to: Beretta.pa Which rules are checked and which not? This is a quick hack. It describes the state valid on December 10, 1986 4:21:07 pm PST with Cedar 6.1 and ChipNDale 24. Only the Dragon rules are considered. It does not state anything about the past or the future. A document containing the truth at the moment it is read is in preparation (SXMaintenance2* has a command in the P-menu (<=23) or control panel (24) that describes in full detail what Spinifex does). Format: the 1st field contains the rule as in [indigo]Documentation>DragonCMOSDesignRules>DragonCMOSDesignRulesC.tioga!2; the second field says who verifies it (SoS at the moment is out of order). 6.1. Well Rules 6.1.1. Minimum Width: Spinifex 6.1.2. Minimum Spacing: Spinifex 6.1.3. Under Bonding Pads: not verified 6.1.4. Minimum Spacing of P-Well from N-well: not used 6.2. Well Resistor Rules: not used 6.3. Diffusion Rules 6.3.1. Minimum Width: Spinifex 6.3.2. Transistor Minimum Width: Spinifex (weak transistors not allowed) 6.3.3. Diffusion Minumum Spacing: Spinifex 6.3.4. Diffusion Minimum Spacing: Spinifex, Gismo Diffusion-in-Well 6.3.5. N-Well Surrounds P+: Gismo Diffusion-in-Well 6.3.6. N-Well Surrounds N+ Contact: Gismo Diffusion-in-Well (there is a bug) 6.3.7. N-Well Avoids N+: Spinifex 6.3.8. N-Well Overlaps N+ Guard Ring: not verified 6.3.9. N-Well Avoids P+ Contact: Gismo Diffusion-in-Well (there is a bug) 6.3.10. N+ Guard Ring Avoids P+ Contact: not verified 6.3.11. P-Well Surrounds N+Contact: Gismo Diffusion-in-Well 6.3.12. P+ to N+ Minimum Spacing: Spinifex, Gismo Diffusion-in-Well 6.3.13. P-Well Overlaps P+ Contact: not used 6.3.14. P-Well Avoids P+: not used 6.3.15. P-Well Overlaps P+ Guard Ring: not used 6.3.16. P+ Guard Ring Avoids N+ Contact: not verified 6.3.17. N- Substrate Overlaps N+ Contact: not used 6.3.18. Source/Drain Extension: Spinifex 6.3.19. Substrate Overlaps P+ Guard Ring: Spinifex 6.3.20. Angle Transistors: Spinifex 6.4. Polysilicon Rules 6.4.1. Poly Minimum Width: Spinifex 6.4.2. Minimum Transistor Length: Spinifex 6.4.3. Minimum Spacing: Spinifex 6.4.4. Minimum Gate Extension: Spinifex 6.4.5. Minimum Spacing to Unrelated Diffusion: Spinifex 6.5. Contact Rules 6.5.1. Contact To P+ And N+ Diffusion And Poly 6.5.1.1. Minimum Contact Size: not verified (atomic object) 6.5.1.2. Maximum Contact Size: Spinifex 6.5.1.3. Minimum Contact Spacing: Spinifex 6.5.1.4. Minimum Poly Surround of Contact: not verified (atomic object) 6.5.1.5. Minimum Diffusion Surround of Contact: not verified (atomic object) 6.5.1.6. Minimum Diffusion Contact to Gate Spacing: Spinifex 6.5.1.7. Minimum Poly Contact to Diffusion Spacing: Spinifex 6.5.1.8. Minimum Metal1 Surround of Contact: not verified (atomic object) 6.5.2. Split Contact 6.5.2.3. Gate to Opposite Diffusion Spacing: Spinifex 6.5.2.4. Minimum Split Contact Width: not verified (atomic object) 6.5.2.5. Minimum Split Contact Size: Spinifex 6.5.2.6. Maximum Split Contact Size: Spinifex 6.5.2.7. Minimum Overlap of Split Contact and Diffusion: not verified (atomic object) 6.5.2.8. Minimum Metal1 Surround of Contact: not verified (atomic object) 6.6. Metal1 Rules 6.6.1. Metal1 Minimum Width: Spinifex 6.6.2. Metal1 Minimum Spacing: Spinifex 6.6.3. Metal1 Maximum Current Limit: not verified 6.7. Via Rules 6.7.1. Via Permitted Sites: Gismo Via-Flatness 6.7.2. Via Minimum Size: not verified (atomic object) 6.7.3. Via Maximum Size: Spinifex 6.7.4. Via Minimum Spacing: Spinifex 6.7.5. Via Minimum Metal Surround: not verified (atomic object) 6.7.6. Minimum Spacing to Poly: Gismo Via-Flatness 6.7.7. Minimum Poly Surround: Gismo Via-Flatness 6.7.8. Minimum Spacing to Diffusion Contact: Gismo Via-Flatness 6.7.9. Minimum Spacing to Poly Contact: Gismo Via-Flatness 6.7.10. Maximum Current Limit: not verified 6.7.11. Minimum Spacing to Diffusion: Gismo Via-Flatness 6.7.12. Minimum Diffusion Surround: Gismo Via-Flatness 6.8. Metal2 Rules 6.8.1. Metal2 Minimum Width: Spinifex 6.8.2. Metal2 Minimum Spacing: Spinifex 6.8.3. Metal2 Maximum Current Limit: not verified 7.1. Bonding Pads 7.1.2. Minimum Pad Dimensions: not verified 7.1.3. Minimum Metal Surround of Pad Via: not verified 7.1.4. Minimum Metal2 Surround of Overglass Cut: not verified 7.1.5. Minimum Pad Spacing: not verified 7.1.6. Minimum Overglass Cut Width: not verified 7.1.7. Minimum Nitride Passivation Cut Width: not verified 7.1.8. Minimum Spacing to Unrelated Metal: not verified 7.1.9. Minimum Spacing to Unrelated Features: not verified 7.1.10. Bond Pad Fillet Options: not verified 7.1.10.1. Options for Minimum Width of Wide Metal Entering Pad: not verified 7.1.10.2. Minimum Length of Wide Metal Entering Pad: not verified 7.1.10.3. Minimum Metal Width Leadaway After Wide Metal: not verified 7.1.10.4. Spacing from Passivation Cut to Edge of Wide Metal: not verified 7.1.10.5. Minimum Opening in Pad Metal: not verified #################################################### Date: Tue, 9 Dec 86 13:34:21 PST From: Jacobi.pa Subject: Improvements in ChipnDale 2.4 To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa Tioga Font substitution CDTexts has a built in (device independent) tioga font substitution paint mode. (Previously font substitution was done on Nectarine and interpress plots only) The algorithm to find a corresponding press font is copied from Nectarine. (Previously [in interpress plot] the matching font names where read in from a font substitution file). Viewers: Its a draw mode. See the draw mode commands . new! IP plots: You must answer the question from a pop up menu. PD plots: If you select the special options (from pop up menu), you will be asked whether tioga fonts should be substituted. new! Nectarine: Did behave nicely all the time; nothing has changed. Client coding: to get Tioga font substitution use CD.CreateDrawRef[[specialFonts: TRUE]] Warning: This is for cd24! do not convert your designs until the tools you need are available. Christian #################################################### Date: Tue, 9 Dec 86 13:25:32 PST From: Jacobi.pa Subject: Improvements in ChipnDale 2.4 To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa Improved PD plotting PD plot is changed such that it scan converts object in device pixel coordinates. (Previously scan convertion was done in design coordinates.) This results in smoth pictures for lines, splines, texts, and at the same time faster scan conversion on large (overview) scales, and, in a simplification of the code for polygons [Cedar 5.0 graphics is no more needed]. Borders appear on pd plots. (War story: I couldn't fix the bug, even after a complete second implementation. Then I discovered that PreView sometimes ignores lines of 1 pixel width when you didn't know about the -f option.) Many thanks to Michel Plass Improved IP plotting The fixed scale plotting reads the scale from a property of the design or the technology. Warning: This is for cd24! do not convert your design work until the tools you need are available. Christian #################################################### Date: Tue, 23 Dec 86 15:21:14 PST From: Jacobi.pa Subject: ChipNDale (only) 2.4 released To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa has Tioga levels ChipNDale (only) 2.4 released Actually it happened on 04-Nov-86 (but was only messaged to DAToolsImplementors). Designers: wait until your favorite tool set is available, but please put pressure on the tool implementors to do the conversion if they havn't yet. There is no way to read in a file writen with version 2.4 into any older ChipNDale version. Why a message before all the other tools are available: I can't wait any longer, since I am now thinking on getting the conversion to Cedar7.0 smoothly, and, I have to tell you about the archive and deletion plans sufficiently ahead. This release has mainly improvements for designing with programs for the integration of tools. What next When Cedar7.0 will be released, I will convert ChipNDale fast. The changes noted in my master whish list will be incorporated, and the converted ChipNDale will be called 2.5. There will be minor changes only for 2.5. [It's a good time now to forward your whishes] Old versions Version 2.3 will stay accessible to users until all the major tools are converted. But I will pull the plug after Cedar 7.0 is released; I can not maintain 3 different versions ! [Nor do we have unlimited disk space on Cyan] Version 2.3 will be archived on request only; ChipNDale 2.4 will be archived anyway. Version 2.4 is able to read in all the different file formats written since version 0.0; but only the features made by packages which had been declared as released. [Version 2.5 wil NOT] Current state All my code is converted... See /DATools/DATools6.1/Top/CDDesign24.df Usefull files are /DATools/DATools6.1/CDCommon24/cd24.tioga /DATools/DATools6.1/CDCommon24/cd24renames.tioga ChipNDale 2.4 also uses new versions of TerminalIO, D2Basic, ColorMaps and CStitching While the release time it might be of advantage to NOT put ColorMaps into your checkpoint. Good news Some df files with core related tools have version numbers in their names. It looks like the users will not be thrown into the cold water, but have a choice of their own when to convert their code. Updates Main attractions of this release Concurrent IO of different designs. TokenIO supports streams as tokens. Orientation is newly defined [does no more depend on object size]. Objects can have their origin at any point; No repositioning. CDCells suports only one coordinate system [the former originCoords]. Sequences are used to represent cell contents. Large clean up, smaller code size. If you dont want to read it in detail look for the starred* attractions. If you are programming ChipNDale clients, really check all the points. Global changes Packages given up CDFeedback I always stated that I wouldn't maintain it. CDX coordinate system transfers are no more necessary CDCallSpecific complexity/functionality was too large CDLRUCache replaced by general package CDOrient collapsed with CDBasics * CDPolygons use CDCurves CDMenus use general menu package, CDCommandOps, and rarely CDPopUpMenus CDChipmonkColors.df who uses that? CDExtras usefull procedures distributed into other packages CDTipEtc replaced by CDEnvironment all the FooExtra's merged in Not done Parts of CMosA: Old Chipmonk compatible objects do not have interactive commands. Parts of NMos Df file renamed to CDNMosA24, Conversion of data structures is implemented, Interactive commands which where not used by Tom or Shahram are not converted CDRecognizer, CDOverlapRemover Formally converted but not functional [the semantical differences of orientation are not considered] Lots of things not maintained by me. Renaming FooPtr => FooSpecific Orientation concept ** No repositioning ** cells can be represented using sequences * safes trashing on cons cells for the dragon ifu chip This code, while principially ugly, saves 600000 words of memory in the representation of the dragon ifu. Conversion hint: See warning in detailed list. Saves 8 gfi's, 2 mds * 2 gfi's by collapsing packages; the others by really reducing features Package changes CD Rename: specificRef => specific Replace: size => bbox * Orientation and Transformation are lower level and imported * design New version feature accessible from clients; use boolean fields in CD, set with CDSequencer Fields edited, changedSinceSaving [reserrved for sequencer] PushRec.changed now in CellRec Has fields for delayed redraws Propertylist to implement undo caches class InternalReadProc knows atom Field whether object class is created with CDAtomicObjects drawing Default device size is reduced to LAST[INT]/2 to prevent arithmetic overflow Has a dummyInstance field Showing selection for abstract devices CDAtomicObjects Rename: lev => layer CDBasics All the functionality from CDOrient * Rename: NormalizeRect => ReInterpreteRect Degenerated new proc CDCells No coordinate system choices ** Some procedures moved to CDCellsInteractions SetSimplificationTreshhold has comment CreateCell, IncludeInstance, EnumerateInstances: new procs IncludeMode: dontReposition also implies dontNotify; dontPropagate renamed to make sure compiler find possible conflict spots. [for dontReposition I greped /datools/datools6.1/*] Use of sequence and list to represent cells * *Warning (Conversion hint): Use "grep .contents *.mesa!h" to find all use of cell interiors; check whether it is the contents of a pushed in design or a real cell. If it is a real cell use CDCells.EnumerateInstances instead. The field contents does not describe the complete contents of a cell; this might cause some troubles in converting clients. It might be good to use grep to look for places using this field. CDCellsInteractions Module separates implementation of commands from implementation of data structures CDCleanup ReplaceFunny removed: it could only be implemented using PreTag and ReplaceTagged CDCommandOps Some procedures migrated to CDOps DoWithResource replaces CallWithResource (no abortFlag feature) CDDebug New definitions useful for debugging only CDDirectory Expand and Another procs have different defaults return values ReplaceObject: comment must say deals with instances but not with the directory. DirectoryProc: Better class procedures to deal with renaming CDEnvironment New procedure RemoveSpaces CDGenerate Rename: Table => Context Context not readonly; there were too many LOOPHOLE'S CDInstances new procedures Member, Length CDImports The dummy readonly design is accessible [but private] Rename CDImportsExtras => CDImportsBackdoor ImportDesign => ImportEntry New proc TrustedCreateImport Working directory: check first in designs wDir, then in ChipNDale's wDir CDInstances Documentation such that you won't intermix Composed, DeComposed any more CDIO Handle for design; parallel IO possible ** CDMakeMenusImpl Menus are made from a ChipNDale.MenuTable file... Lots of tools start now from menus CDMenuSpecials SelectOneOf allows also list of ropes, type in It removes duplicates CDOps Rename: Redraw => ImmediateRedraw DelayedRedraw => Redraw PointedInstance is removed [it had only one client] Some procedures from CDCommandOps LambdaRope must not have a default for lambda CDPanel Cleaned up implementation CDProperties New procedures PutPropProp and GetPropProp * RegisterAndInstall => Register; new parameters CDRemote New mechanism for using non-defaulted file names CDSatellites Comment is not property but font only! On output (input) we do not enforce invariants but on call of GetSatellites the satellites are either cached, or if computed thats the time to enforce invariants On pop the invariants are not enforced but on GetSatellites... CDSequencer Command.ref viewer instead of viewer.data field New procedure to associate an abort flag CheckAborted also checks commandtool stop button CDSimpleRules New mechanism for large contacts [the mechanism is there, not the implementation] CDStretchyExtras Replaced by CDStretchyBackdoor; new mechanism to return similar object CDTexts Rigid and flexible texts Font no more readonly [some LOOPHOLE less] Gone: CDProperties.PutProp[rigidTextClass, $SisyphExtractProc, $ExtractNull]; CDProperties.PutProp[rigidTextClass, $SinixCMosBExtractProc, $ExtractNull]; CDTextsBackdoor New package CDUtil Flatten procedure CDViewer It is now possible to open a viewer without opening a control panel The procedure DesignOf also works for control panels, buttons inside control panels in addition to plain ChipNDale design viewers (uses the property $ChipNDaleDesign on the viewer or its parent) CDViewerInternals New package CStitching New proc EnumerateNeighborhood [gbb] (In definitions only) D2Basic Rename: Pos => Vector D2Orient New package exporting Orientation and Transformation in a ChipNDale independent way to allow sharing Transformations between ChipNDale and other packages. Once in future also procedures should be moved (and renamed) from CDBasics. TerminalIO * Log file Edits on input are possible Rename: Write~ => Put~ Less procedures Timeout parameter on input is no more optional TokenIO Completely redone: Concurrent IO for different designs is possible. * Tokenized streams. * Ropes use lru cacheing [saves 10% of file length]. UserProfile options User profile options which have to do with files (tiptables, icons, menutables) have a prefix including a version number. ChipNDale.OpenPanel: BOOL _ TRUE If set to false, reading a design won't open a control panel ChipNDale24.AutoLoad: BOOL Switch whether technologies should be loaded automatically on need ChipNDale24.AutoLoad.technologyKey: BOOL Switch whether technology technologyKey should be loaded automatically on need This switch, if set, overrules the ChipNDale.AutoLoad switch. ChipNDale24.MenuTable: Default File to load menu texts and help documentation ChipNDale.SavePeriod: 0 Time in seconds ChipnDale waits before starting a background save ChipNDale.AutoLoadImports: TRUE Whether imports should be directly loaded when file is read Commands and properties Background saving For a particular design can be stopped using a property $CDxDontBackgroundSave with value $TRUE on the design. Statistic command writes the font of single selected texts Viewers View mode can substitute or leave tioga fonts The split viewer command does not automatically opens a control panel [must use "control panel" entry in viewer pop up menu to create a control panel] Control panels Are never suppressed [for the benefit of Nectarine on CSMonitor] InterpressPlot Font substitution is done without file Default scale option reads scale from property PDPlot Scan converts in device coordinates (instead cd coordinates) Font substitution Can draw outlines Pop Up Menus Menus can be defined from the menu entry definition files Imports Reading a design can load all imports, depending on options and user profile Some commands are improved Christian #################################################### Date: Thu, 18 Sep 86 18:25:18 PDT From: Jacobi.pa Subject: CDSatellites23 for DATools6.1 To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi DF: [DATools]Top>CDSatellites23.df Documentation: [DATools]CDSatellites23>CDSatellitesDoc.tioga Maintainer: Jacobi This is a new version of a older module previously stored with PW.df CDSatellites does not do any computations anymore, except when 1) a client calls a CDSatellites procedure 2) a small, constant time on IO 3) a large (linear with the number of instances) time for conversion when reading in designs which used old CDSatellites. GetSatellites applied on cells cache the result automatically. Not beeing an instance satellite does not make a text an object satellite. There is the possibility of a text not beeing a satellite at all. [This makes CDSatellites behaving correct, even when combined with other text handling modules] Exact Invariants and properties are hidden in the implementation, only a simplified subset is exported. The definition module is complete: the commands are implemented using exported features only. #################################################### Date: Tue, 26 Aug 86 11:33:27 PDT From: Jacobi.pa Subject: New menus To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa To implementors of ChipNDale clients Pop-up menus are implemented differently, you might have seen the PopUpMenus message on CedarChest. As consequence of this, the module CDMenus is no more really supported. It will still stay available for the time of this release, but might not be loaded automatically anymore. Its usage can usually be replaced by use of CDCommandOpsExtras2; in very few cases, using CDPopUpMenus or PopUpMenus directly is appropriate. To load the old CDMenus module, you might use CDOldCDMenus.load. Getting the help messages right has turned out to be much more difficult then I thought. Your help in formulating missing or bad help messages is very appreciated. If you propose some new messages, send them to me quickly; so no other people try to makeup a message for these commands. The file ChipNDale.MenuTable contains all the messages already implemented. Christian #################################################### Date: Mon, 25 Aug 86 10:58:39 PDT From: Jacobi.pa Subject: ChipNDale improvements To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa The implementation of ChipNDale text objects is changed two classes of text objects rigid texts: (rigid texts behave like all the old texts did) flip texts: (this is the new behaviour) flip texts are displayed in a way that they are easy to read. flip texts must not be made using layers which generate mask. Client interface: CDTextsExtras A text object keeps its class on editing, font, or layer change. There is a command (in the special commands menu) to change class of text objects. Texts in previous ChipNDale versions will be converted to either class on reading in the ChipNDle file. A message will be made, and it is possible to direct the conversion. As always, old stuff will stay readable until explicitely messaged. Texts and Labels are different: Texts are objects of class text... Labels are cells (made of rectangles), which to a human look like texts Thanks to Jean-Mark Frailong for the idea Christian #################################################### Date: Thu, 7 Aug 86 16:44:33 PDT From: Jacobi.pa Subject: ChipNDale user interface To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi ChipNDale user interface enhancements New module: CDEnvironment replaces CDTipEtc ChipNDale now can load packages on the fly.. New menu button in control panel for root of menus New menus (new method of specifying menus) , for drc's , for selections , for root of menus , for operators to draw certain features bringover /DATools/DATools6.1/Top/CDDesign23.df Christian #################################################### Date: Fri, 1 Aug 86 17:55:30 PDT From: Jacobi.pa Subject: CDPDPlot23 for DATools6.1 To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa DF: [DATools]Top>CDPDPlot23.df Documentation: ChipNDaleToolsDoc.tioga [chapter 4]. This package replaces CDColorPDPlot23.df New features: It allows sending the plot directly to a server (Using Don's PeachPrint package). Now has a definition module. Multiple plotting requests are queued (No global state). It loads the stipples automaticaly. A special "device" which can be set up from command file. This can be used to make color separations. It allows defining an explicite scale (on the command file "device"). Start program: CDPDPlot.load and hard copy menu (H-middle) or special command file first and then the hard copy menu (H-middle) #################################################### Date: Mon, 28 Jul 86 15:29:13 PDT From: Jacobi.pa Subject: New ChipNDale features To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa Some new ChipNDale features and bug corrections New user features A new help button in control panel The output command is interruptable using ESC-DEL Reading a design: Tries to automaticaly load the technology, if it is not already loaded and the user profile allows it: ChipNDale.AutoLoad.technologyKey: TRUE Revised change layer command: {left-right or CTRL}-' works for 9 different object classes (among others rectangles, texts, splines, polygons, pins) Common text commands for CMosB and ChipNSil [actually, the old different commands still work, but the new ones are identical in both technologies and may be easyer to remember] draw text: Y-midddle edit text: Y-left change font: F-left change layer: '-left The control panel has a name field on the generator line. If this field is not "_ interactive", the U-middle command does not ask in the Terminal viewer what object should be drawn, but takes the value from the name field. [Experimental feature] try U-middle with generator: DIRECTORY name: name of any object in directory generator: IMPORT name: SSI.And.icon generator: INCLUDE name: SSI.And.icon TerminalIO viewer allows to edit inputs; it also behaves better on splits. [Fixed by using edited viewers; the actual bug in typescripts is neither understood nor fixed] Listing the objects in the directory makes a new viewer, instead of a list in the TerminalIO viewer. [You don't want the list to scroll away exactly when you need it...] New client features [Of course, absolutely no interface change outside a release] CDPanelExtras procedures to make [editable] text fields in the control panel CDCommandOpsExtras procedure to place an instance down without specifying where CDViewerInternals private module to control the reset scale command [space-ESC] CDViewer DesignOf works also for control panel viewers and nested viewers inside control panel CDSequencer the ref: REF field in CommandRec can also be initialized with a ViewerClasses.Viewer Christian #################################################### Date: Fri, 18 Jul 86 19:09:55 PDT From: Jacobi.pa Subject: last weeks hacks To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa Some of my hacks from last week: DF: [DATools]Top>TerminalIO2.df Keeps a log file TerminalIO.log; idea from Bertrand DF: [DATools]Top>Core.df New module CoreDirectory DF: [DATools]Top>CDConvertTechnologies23.df New package with redesigned (technology independent) procedure for the conversion of ChipNDale technologies. Currently only CMosA to CMosB DF: [DATools]Top>CDHierarchyMarks23.df Experimental Hack, NOT RELEASED. Allows to interactively designate full path names; use program menu. DF: [DATools]Top>CDCommon23.df New commands. Push: push into objects of funny classes work Push by name: Tries harder to find an instance; might even make one. X-left: to push into the schematic of a selected icon [Only if icon is created with new Sisyph or has right property] A-space: to view everything on all pushed levels CDSequencer.CheckAborted also checks aborts issued from command tools I have noticed that lots of people don't remember some old ChipNDale commands; try those as a refresher and remember only the ones you like: - Zoom in using mouse; ESC-space; ESC-space; ESC-space - In control panel: SHIFT-select a layer - When a pop up menu is visible, push a second mouse button down before releasing the other - /-left when you worked with funny grids before - G-left on selected wiress Christian #################################################### Date: Wed, 25 Jun 86 16:19:16 PDT From: Jacobi.pa Subject: Splines in ChipNDale To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale now knows about arbitrary lines, polygons and splines /Cyan/DATools6.1/top/cdCommon23.df For details see the documentation: /Cyan/DATools6.1/top/cdDoc23.df ChipNDale.tioga, chapter 2.15. So far you can't DRC splines, but mask generation works! Have fun Christian #################################################### From: Beretta.pa Subject: Gismo for DATools 6.1 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Gismo.df Documentation: [DATools]Gismo>GismoDoc.tioga Maintainer: Beretta.pa Added a new command and client interface to verify the sex and surround of diffusion: Diffusion and wells for CMOS-B Verifies for every diffusion rectangle that it lies in a well of the opposite sex and with sufficient surrounding. Substrate and p-well are given the same sematics. If twin-wells are used, this utility verifies that wells of the opposite type do not overlap. Spinifex user will not need this utility unless they lay out the n-wells and the p-diffusion separately. Since it is common not to lay out the wells in a hierarchical manner, the hierarchy is flattened out completely. #################################################### Date: Thu, 5 Jun 86 10:21:38 PDT From: jacobi.pa Subject: ChipNDale (version 2.3) for DATools 6.1 To: CedarImplementors^.pa, ChipNDaleImplementors^.pa, DAToolsImplementors^.pa Cc: Jacobi Reply-to: jacobi.pa ChipNDale (version 2.3) for DATools 6.1 The other design tools may follow soon The following is interesting for design tool implementors only The switch to Cedar 6.1 does NOT include a ChipNDale release; ChipNDale version 2.3 has identical interfaces for Cedar version 6.0 and 6.1, however the implementation differs. Higher level tools might use the switch to incorporate interface changes between ChipNDale releases. Designers should switch to Cedar6.1 only with the general Cedar user community; not with the implementors crowd. No improvements or minor bug corrections on the ChipNDale versions using Cedar 6.0 will be done any more. The following tools are available in Cedar 6.1 version on Cyan: /DATools/DATools6.1/Top/... ReleasedChipNDale.df CDDesign23.df CDCommon23.df CDDoc23.df CDCmosA23.df CDCMosB23.df ChipNSil23.df CDNmos23.df Spinifex23.df CDBackgroundCheck23.df Gismo.df TerminalIO2.df GraphicsSubset.df CStitching2.df ColorMaps2.df D2Basic1.df CDChipmonkColors23.df CDCifGen23.df CDColorPDPlot23.df CDCounting23.df CDExtras23.df CDInterpressPlot23.df CDLabel23.df CDMakeProc23.df CDOverlapRemover23.df CDReadCif23.df CDRecognizer23.df CSMonitor23.df SXMaintenance23.df #################################################### Date: Mon, 31 Mar 86 15:28:40 PST From: jacobi.pa Subject: New ChipNDale features To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: jacobi.pa New ChipNDale feature check utility This tool allows the user to check whether certain features are used or not. It could be used as a mean for subclassing technologies. It implements checking the selection for usage of particular layers, atomic objects, object sizes or calling user defined check procedures. Df file: included in CDExtras23.df Command(s): CDFeatureCheckDragon.cm and then the program menu The user can easily make other commandfiles of his own to check for different subsets of a technology. Documentation: CDFeatureCheckDoc.tioga Interactive usage changes : Text & Property menu (previously: ) : Name & Property menu (previously: other entry in Text & Property menu) : Display menu (previously ). Module is no more resident but loaded on demand only. [CDColor.load in CDExtras23.df] save: a) if used after output command: will use new file name from last output command b) Designs are (background) saved also when the control panel viewer is only viewer of design. (Note: The background save does not switch file name after an output command) enforce control panel: in viewer commands menu (previously special commands menu) selection by layer: -left or right (previously: documentation was wrong) [Edited]-flag on viewer caption. GFI war (Chipmonk) busses are loaded only when used; saves 1 gfi. [If you think you should complain about saving a single gfi your dead wrong and also not the first person trying to do that. If some more people join that crowd I won't even try to save the next gfi. Did you ever add the saved gfi's since last release? (I bet you forgot to count the removing of the color commands module implementing the display menu, mentioned only 9 lines above...)] Coherence There is a relation between being able to check what features are used and loading an object class automaticely: How do you protect yourself from using designs which cause fancy, unwanted features to be loaded! [The load mechanism is private to CDIO] Christian #################################################### PreMessage23.tioga -- Jacobi, March 18, 1986 2:44:44 pm PST ChipNDale 2.3 released. The main changes for clients are Clean up of my very long pending list. (Including name changes) Recursive properties allowed again. Expand mechanism has weakened, clearly stated (not necessarily simple) invariants. Multiprogramming possibilities for clients improved. Interactive usage is not essantialy changed. The file [Cyan]CDCommon23>doc>renames23.tioga contains list of changed names and instructions how to use the EditTool to substitute these names quickly. It can not be complete, some changes depend on context or need manual inspection. To get rid of old load files, it might be a good idea to delete CD*!*, delete CMos*!*, NMos*!*; bringover environment [To get ChangeWorkingDirectory again] and bringover ChipNDale. Do that (or use a new subdirectory). Lots of old loadfile are replaced with cm files; the old files will deceive you for sure if you don't delete them. /Cyan/DATools6.0/Top/CDDesign23.df contains pointers to other tools already converted to release 2.3. As soon as the additional tools you might need are converted to ChipNDale 2.3 you might switch to ChipNDale 2.3 at your own paste. It is not possible for me to wait with a release until all tools are ready; I do not have the necessary control, nor do I think such tight control would be good. Most of the Core related tools are already available for version 2.3. Check /Cyan/DATools6.0/Top/DAWorld.df for those tools. ChipNDale version 2.2 will be archived; any improvements or bug corrections on 2.2 made after this release will not be added to the archive. I will not delete version 2.2 without previous message to ChipNDaleUsers^.pa and DAToolsUsers^.pa. Version 2.1 will be deleted unless somebody get serious problems. Changes in interfaces This is not a complete list of changes, it contains only changes clients should know CD Comments about invariants are improved ContextFilter uses booleans instead of Imager.color; ContextColors: new concept OutlineProc uses a layer names of layers are changed commentLayer is now a technology independent layer old inside rect features are removed further proc removed; use properties uses HashTable for directory, but exported as REF ANY (module changes too often) registration of object classes is more elegant creation of Draw-Records is more elegant parent object classes, for object oriented tricks... CDBottomUp (CDExtras23.df) Handle has more fields for client This module should be used more! It allows analysis tools to monitor whether cells or subcells where changed since last analysis, and to do the analysis of subcells in the right order. CDCells SetSimplificationTreshhold: new proc (simplifyOn is real; speed up) SetBorder: new proc (new field drawBorder: BOOL) CDCleanUp comments improved procedures can have a root object new proc RemoveProperties CDCommandOps procedures return Rope; dont write directly anymore LambdaRope: from CDExtras InstRope: renamed BoundingBox: from CDExtras CallWithResource can wait until resource is freed CDColors Imager colors are handled identical to bricks CDDirectory ExpandProcs AnotherProcs redesigned. The actual expansion or copy works exactly as before, but the procedures return to the caller what he might do with the result. (If a procedure caches the result, the caller now knows that he must not change the result...) There are new higher level procedures to convert or copy immutable returned objects into mutable state. creation of objectclasses in directory is more elegant implementation does no more use LOOPHOLE CDDirectoryOps procedures have better names CDExtras procedures moved to proper places ToRope, ToLambda, BoundingBox --> CDCommandOps RemoveProperties --> CDCleanUp PushedCellName --> CDCells CDInstances Transform: Removed SplitPointed: Removed Copy: New Composed: New DeComposed: New ComposedList: New name DeComposedList: New name TransformList removed CDIOExtras included into CDIO CDLayers new procedure Kind. (new procedure MakePaint) CDMarkObjects removed; use CDSymbolicObjects CDPanelExtras included into CDPanel CDPinObjects removed; use CDSymbolicObjects CDPrivate New low level features to implement enumeration of (mutable) designs. Necessary, so CDSequencer can implement enumeration of designs to be periodically saved without importing CDViewers. CDProperties use module PropertyLists instead of Properties. A new module PropertyLists is made instead to change Properties to avoid version conflicts; Properties will no more be supported. property list will not be reordered; vanila user can now safely enumerate properties output and copy without monitor lock (no reorder to prevent): properties can have (recursive) CD-types with property lists again procedures renamed; new names are easier to remember properties registration can set a boolean field which causes the property to be removed on edits. CDPropertyTools Should be used by all tools which set up parameters by setting global properties. This module allows to undo such a setup without exactly knowing the set up. CDTextExtraction replaces CDPropertyExtraction; (Same features but better parameters). CDSequencer Is now the only way to serialize calls no private data fields visible anymore procedures Quit and AbortDesignsCommand are renamed new procedure to initialize a designs queue (So designs created by patchwork are immutable unless dialogue opened) CDSimpleRules new MaxWidth feature (for limited size cuts) CDSymbolicObjects direction has a none constant. The direction constants have a certain order (Not changed); if you define direction constants of your own, try to use the same order unless you have a reason not to. (The selected order makes computations with CD.Orientation easy). CDViewer CreateViewer has field to tell whether design should be opened for queued (interactive) commands. ShowArrow, RemoveArrow removed; use module CDVArrow instead CSMonitor (CSMonitor23.df) Monitor request returns the viewer Redesplay feature CStitching (CStitching2.df) replaces CornerStitching. Main difference: the new definition module is such that both implementations could use it. (The changed module has a different name, so you could still use the old one; don't) Better statement of what operations are legal when Renaming; better and shorter. ... en replaced by eN: for emphasis on asymetry. Some functional changes CD Uses less GFI's (>8 implementation modules merged, removed or changed to use less gfi's) Displaying cells is faster (again) The viewer lock problem on the color display is improved; not locking has been reported yet. InterpressPlot (CDInterpressPlot23.df) now draws borders Hierachical property extraction (CDExtras23.df) New package. I'm not sure whether property extraction should be hierarchical, but this is a good test of CDBottomUp. Background design rule checker (CDBackgroundCheck23.df) semi new The old CDColors commandtool command is removed from basic ChipNDale and included into CDExtras23.df. -- Christian #################################################### Date: Tue, 4 Mar 86 13:50:47 PST From: Beretta.pa Subject: SoS22 for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>SoS22.df Documentation: [DATools]SoS22>SoSDoc.tioga Maintainer: Beretta.pa a) Increased robustness against semantic changes in upstream packages. The heuristic enhancement of the violation reporting is now on by default. b) Optimized dynamic memory allocation & deallocation and procedure calls in inner loops [made memory usage more local]. Running time decreased appromaxitely by a factor 5X (more precisely this affects a term i(i+1) of the time complexity, for i = number of cell instances). c) Abandoned the catholic data flow in favor of a geometric one, which allows exact pruning. Expected value of the average running time decreased appromaxitely (at least) by a factor 30X. Client programs may require major rework. Enjoy. #################################################### Date: Wed, 19 Feb 86 11:50:09 PST From: Beretta.pa Subject: Gismo for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Gismo22.df Documentation: [DATools]Gismo22>GismoDoc.tioga Maintainer: Beretta.pa Added a flat design rule checker for via flatness. Accepts only the CMOS-B technology. To use interactively execute the Gismo.Load file, select the cells to be verified, select the entry "via flatness" in the ChipNDale program menu. To use by programme look at ViaFlatness.mesa. #################################################### Date: Tue, 18 Feb 86 16:11:48 PST From: Jacobi.pa Subject: hack attack To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa hack attack /datools/datools6.0/top/BackgroundCheck22.df load program BackgroundCheck.load start program use program menu Simple flat distance checks in background. For speed reasons the program is restricted to the displayed area, and is disabled if the displayed area is too large. Not part of release 2.2: Internal interfaces are not stable Christian #################################################### Date: Tue, 28 Jan 86 12:24:55 PST From: Jacobi.pa Subject: CMosB: new cmos technology To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa CMosB: new CMos technology for the Dragon project is now released. Design rules and atomic objects according to the Dragon design rule document. Additional Comment layer for comments or schematic diagrams. Texts should be used in comment layer only, even if generated by programs. Commands <0-middle> draw text in comment layer <0-left> replace selected text in comment layer <0> select comment layer for drawing change font To set control panel numbers to fractions of lambda: CTRL-right: divide by 2 CTRL-left: multiply by 2 Use the names and property menu to extract properties from texts. (In Helvetica tioga fonts, not italic) There is a conversion program for conversion from CMosA to CMosB; but you have to set up how conversion of certain objects (which are different in CMosA and CMosB) should happen. [See the load file ConvertCMosB.load] CMosA remains valid. Transition time for previous usage of un-released versions: Designs made with previous (not released!) versions of CMosB contain features which can NOT be read in with the released version of CMosB. For one week the released version will be able to read in and convert those features from some un-released versions. Ater this week the conversion code will be removed (and NOT archived) [Don't worry: as long as you used only released features of released technologies, your designs since version 0.0 can all be converted to the newest version; Those conversion programs ARE archived] Christian #################################################### Date: Mon, 13 Jan 86 17:22:01 PST From: Jacobi.pa Subject: ChipNDale 2.2; some new features To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale 2.2; some new features New modules CDViewerBase This module allows independent implementation of different atoms usable by ViewerOps.GetViewer or ViewerOps.SetViewer on ChipNDale viewers It is used to implement setting grid and ticks by programs. CDBottomUp A module which allows easy implementation of bottom up calls which cache the results. (Cached results are flushed when a cell is edited). It can be used by extractors and design rule checkers. (In CDExtras22.df) CDPropertyTools Property features useful to pass parameters to simple, non reentrant tools. Allows removing all the properties set up by previous set ups, without really knowing what atoms or layers the previous set up really used. CDPropertyExtraction A module which allows setting properties by extracting text objects. This makes it possible to set the properties in a way always visible to the designer. Useful in ChipNSil [and CMosB]. To allow it to nicely coexist with other approaches, this is restricted to non italic Helvetica fonts. New commands Restore View: : name and property pop up menu has lot's of new entries Other Features Labels: can be generated now also from spline fonts. The hack to convert all texts to labels (good for pd plots) is now built in to CDLabel . Recognizer: Uses less VM. [Works also with CMosB]. Christian #################################################### Date: Mon, 13 Jan 86 15:13:31 PST From: Beretta.pa Subject: Spinifex22 for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Spinifex22.df Maintainer: Beretta.pa a) The command CMosSpinifex has been replaced with the two commands CMosASpinifex and CMosBSpinifex to conform with the ChipNDale naming scheme of the two CMos technologies. b) In CMosB, the separation rule for transistor gates is 2|l, while the source/drain diffusion beyond gate is 3l. Since Spinifex must be able to detect transistors generated by mistake, and since at the moment when the design rules are checked Spinifex cannot know the origin (other than its node) of a piece of material, for each pair of transistors placed at minimal distance a number (2 per corner) of violations "Poly over Diffusion" will be displayed. I hope you will be able to live with this. c) The December 1985 versions of Corner Stitching contain an error which causes Spinifex not to be able to find any design rule violations at all. Please make sure the date of CornerStitchingImpl.bcd is > 10-Jan-86 19:02:09 PST. #################################################### *ChipNDaleMessages1986.tioga Copyright c 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi Last edited by Christian Jacobi, February 18, 1987 4:50:28 pm PST technologyKey one of: CMosB, cmos, nmos, chipnsil; defaults to FALSE [GFIs ! ] [Its the key, NOT the name] Κ7˜™Jšœ Οmœ1™J˜)J˜1J˜;J˜8J˜;J˜.J˜MJ˜BJ˜FJ˜KJ˜5J˜J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜&JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜Jš ˜J˜J˜ J˜²J˜JšœA’˜EJ˜:Jšœ}’˜J˜?J˜JšœX˜XJ˜Jšœ œ=˜^J˜J˜ J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜&JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜š ˜J˜μJ˜αJ˜—J˜š ˜J˜Y—J˜Jšœ œA˜bJ˜J˜ J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜Jšœ&˜&Jšœ(˜(Jšœ ˜ Jšœ˜˜JšΠos˜—J˜šž˜J˜JšœΟn œ0˜QJ˜Jšœ–’[˜ρJ˜Jšœκ˜κJ˜J˜^—J˜š  ˜ JšœŠ˜ŠJ˜—š  ˜ Jšœ^€œv˜βJšœU˜UJšœ»˜»J˜—š€ ˜ J˜J˜)˜J˜)J˜0—JšœU˜UJšœZ˜ZJ˜—š€ ˜ J˜ΗJ˜—J˜Jšž˜code˜˜ L˜HL˜BL˜=LšœE˜EL˜.L˜"J˜—J˜HJ˜FJ˜—š ˜J˜˜J˜9J˜:J˜8Jšœ-˜-Jšœ*˜*Jšœ˜JšœO˜OJšœ'˜'JšœC˜CJšœ*˜*Jšœ"˜"J˜—˜˜J˜A—˜ Jšœ œ˜J˜-J˜M—šœ˜šœ&˜&Jš’>œ˜?——J˜%J˜—˜J˜J˜—˜J˜—˜J˜—˜+J˜5Jš’i˜iJš’/˜/J˜—˜J˜FJ˜—J˜—š ˜J˜˜J˜J˜J˜=˜J˜[J˜;Jšœ˜J˜J˜%—˜J˜J˜:—˜Jšœ+ œ ˜MJ˜J˜&—J˜—˜J˜J˜—˜J˜%Jšœ)˜)Jšœ˜J˜—˜J˜Jšœ,˜,Jšœ&˜&J˜:Jšœ΄˜΄šœ.˜.Jš œΪ˜β—JšœΎ˜ΎJ˜—šœ˜J˜SJ˜—šœ ˜ J˜QJ˜—˜ Jšœ"˜"Jšœ?˜?J˜—˜J˜)J˜—˜ J˜>J˜PJ˜J˜—˜ J˜/J˜(J˜0J˜—˜ Jšœ&Οi œ"˜QJ˜—šœ˜JšœF˜FJ˜—˜J˜Lšœ*˜*šœ˜LšœG˜GLšœK˜K—J˜—˜J˜ J˜—˜Jšœ˜J˜—˜J˜CJšœΓ˜ΓJ˜—˜J˜ J˜—˜ Jšœ:˜:J˜—˜J˜J˜—˜J˜VJ˜TJ˜=J˜—šœ ˜ J˜J˜J˜J˜J˜/J˜—šœ˜˜J˜2J˜Jšœ₯œ˜4—J˜—J˜—š ˜J˜˜zJ˜—˜ J˜˜>Jšœξ˜ξJšœh˜hJšœ]˜]J˜J˜J˜J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜J˜$J˜J˜cJ˜J˜ƒJ˜J˜ξJ˜J˜ Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜J˜J˜7J˜š œ˜J˜J˜?˜*J˜=J˜=—J˜J˜J˜J˜@J˜;Jšœ˜J˜J˜IJ˜JJ˜HJ˜J˜˜J˜"J˜H——˜J˜*J˜—J˜ J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜!JšŸœ&˜(JšŸœ˜ JšŸœ˜˜Jšœ%˜%J˜Jšœ+˜+Jšœ,˜,J˜2˜*J˜J˜$J˜'J˜#J˜#—J˜J˜/J˜J˜ J˜—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜"JšŸœ&˜(JšŸœ˜ JšŸ œ ˜˜Kš œ(˜+Kš œΟtœ˜4J˜Jš§œ˜(J˜˜ J˜QJ˜J˜8J˜#J˜fJ˜F—J˜˜J˜,J˜J˜A—J˜—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜Jšœ0˜0J˜š ˜J˜J˜#J˜J˜1J˜šœz˜zJšœ‘ œ¦˜&JšœN™NJ™—J˜šœ-¦œ˜4J˜^—J˜˜±J˜J˜J˜Jšœ˜—J˜˜φ˜J˜;J˜&J˜&——J˜J˜«J˜J˜«—J˜š ‘>˜RJ˜šœ ˜ J˜>J˜—šœ˜J˜<—J˜šœ˜J˜=—J˜˜JšœU˜U—J˜šœ ˜ Jšœ ¦œH˜T—J˜—J˜ J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜Kšœ ˜ K˜š œ)˜,K˜3—š œ"˜%K˜—š œ5˜8K˜mK˜—š œ0˜3K˜e—š œ(˜+K˜ K˜-K˜D˜6K˜?—K˜1K˜E—K˜K˜˜K˜6K˜(K˜]K˜0K˜—K˜J˜K˜ Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜šœ?˜?Jšœ  œ˜"—J˜˜"Jšœ  œ˜Jšœ˜—J˜J˜8J˜˜J˜ —Jšœ4˜4JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ#˜%JšŸœ ˜˜Kš œ#˜&Kš œ§œ˜9Kš  œ ˜K˜UKš ˜K˜„K˜hK˜p—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ)˜0JšŸœK˜MJšŸœ˜ JšŸ œ ˜J˜K˜Kšœ'˜'K˜&K˜Kš >˜>K˜Kšœ°˜°Kšœf˜fKšœp˜pKšœi˜i˜\K˜Kšœ˜Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ K˜Kšœ ˜ Kšœ˜Kšœ˜K˜Kšœ˜Kšœ˜Kšœ˜Kšœ ˜ Kšœ ˜ K˜Kšœ˜Kšœ ˜ Kšœ˜Kšœ˜Kšœ ˜ Kšœ˜Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜K˜—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ&˜(JšŸœ˜ JšŸ œ ˜J˜š #˜#J˜Jšœ•˜•J˜˜ J˜—˜ Jšœ2˜2J˜f—šœ˜Jšœ˜——J˜š ˜J˜J˜9J˜J˜RJ˜J˜‰J˜˜J˜PJšœ`’M˜­—J˜J˜RJ˜J˜MJ˜J˜ J˜—š ˜J˜J˜;J˜J˜„J˜—š₯ ˜ J˜ΤJ˜'J˜—J˜J˜ J˜˜J˜—Jšœ4˜4˜J˜(—J˜Jšž˜J˜J˜˜ J˜@J˜#J˜RJ˜5J˜—J˜-J˜Jšœω˜ωJ˜JšœΆ œ“˜ΠJ˜JšœŒ˜ŒJ˜J˜΅J˜Jš ˜J˜˜(J˜,—J˜šœ˜Jšœ&˜&JšœO˜OJ˜Jšœ˜Jšœ2˜2J˜$J˜$JšœP˜PJ˜.J˜(J˜4J˜—˜J˜!J˜ΉJ˜—˜JšœC˜CJšœ0˜0—J˜˜ L˜L˜!L˜J˜—˜ J˜3Jšœ˜Jšœ˜Jšœ˜Jšœ1˜1J˜—šœ˜J˜-—J˜˜ J˜ξJ˜6J˜(J˜—˜J˜J˜—˜˜!J˜.J˜J˜—J˜—˜ J˜Jšœ˜J˜ J˜ J˜Jšœ˜Jšœ˜Jšœ˜—J˜˜ J˜—J˜šœ˜Jšœ˜Jšœ˜J˜—šœ ˜ J˜—J˜˜ J˜—J˜šœ ˜ J˜—J˜˜ J˜»J˜—˜ L˜/L˜‚L˜TL˜€L˜4L˜aJ˜—˜J˜žJ˜—˜J˜EJ˜—˜ L˜&L˜&Lšœ3˜3L˜t—J˜šœ ˜ J˜,—J˜šœ˜J˜ˆ—J˜šœ˜Jšœb˜bJšœ<˜<—J˜šœ˜J˜"J˜—J˜šœ˜JšœΜ˜ΜJšœ2˜2J˜Jšœ3˜3—J˜J˜Jš ˜J˜˜J˜YJ˜"J˜\—J˜˜'J˜—J˜˜/J˜uJ˜—˜8J˜—J˜J˜eJ˜J˜ Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ#˜%JšŸœ ˜˜Kš œ#˜&Kš œ§œ ˜7Kš  œ ˜K˜’Kš œ¬œ%Οeœ¨œ ¨œ˜“KšœΊœ˜ΌK˜)K˜—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜JšŸœ˜JšŸœ#˜%JšŸœ ˜˜Kš œ%˜(Kš œ§œ˜;Kš  œ ˜KšœE¦œ ˜WKšœ‘˜‘Kšœ-˜-—Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ ˜JšŸœ˜JšŸœ˜ JšŸ œ ˜J˜Jš  ˜ J˜Jšœ,˜,J˜˜ J˜—˜ J˜—J˜J˜*J˜xJ˜J˜;J˜J˜ Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜#JšŸœ&˜(JšŸœ˜ JšŸ œ ˜J˜Jš œ=˜BJ˜J˜OJ˜J˜‡J˜˜J˜%J˜/J˜$J˜˜4J˜J˜—J˜h—J˜JšœΩ˜ΩJ˜Jšœ˜J˜˜;JšœŽ˜Ž—J˜J˜ Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ"˜)JšŸœ&˜(JšŸœ˜ JšŸ œ ˜J˜Jš  ˜ J˜Jš  ˜ J˜˜ LšœŠ˜Š˜;L˜——šœ ˜ LšœΒ˜ΒL˜—L˜šœ˜L˜ML˜—L˜šœ˜L˜₯—L˜š  ˜ L˜L˜A—L˜š ˜L˜—L˜3—L˜L˜L˜ J˜Jšœ4˜4JšŸœ˜!JšŸœ ˜JšŸœ˜#JšŸœ˜JšŸœ#˜%JšŸœ ˜˜Kš œ(˜+Kš  œ ˜Kšœ‘ œ)‘ œ‘ œJ˜­Kšœ‘œ/Οgœ3©œƒ˜σKšœΛœ˜δJšœ4˜4J˜——…—»^ΤΏ