Finding additional component libraries/footprints?

You are probably already aware but in Eagle you can readily turn off the availability of libraries (both your own and those loaded by default) with ease - just browse the full list and turn the ‘radio’ (?) button on or off as need be. If they’re set to off they don’t clutter your browsing/searching but they still exist in case you need them one day. It’s quite an efficient and effective system and perhaps food for thought for developers.

That is what we predict we will get a lot in the next month or so. (Don’t take it personally but it gets old really fast.) Some things will always be different if you change tools. One needs to be willing to learn new work-flows.

There is no hide library field in kicad, but you can remove the lib from within the library manager.
Nothing like that helps if one lib has 500 footprints in it. (yes cvpcb has good filters but still.)

I like it more if i have my personal libs with only the parts i need in them.
(This way i know where to look and i also know that the footprints i use are of a high enough quality.)

There are multiple problems with your fp lib table.
The first one:

does this directory exist? Is the type correct?

All the github stuff: (example)

This does not exist in the current kicad library.
Did you add this to the fp-lib-table?
If you added it how did you do that?
It seems this entry starts with $KIGITHUB. Should it be a local directory?

If you didn’t add it yourself:
Can you locate your fp-lib-table on your system?
(should be in your user directory either under .config (linux/mac?) or appinfo or something like that (windows))
If so make a bacup and try to download one of these and see if this works: (you would need to add your local libs again.)

The first I have rectified. (When I initially tried to import a cap footprint from Geda I ended up with a library on my desktop rather than where I wanted it. I deleted it via my OS. Now I have also removed it via Pcbnew->Preferences->Footprint Library Manager.)

All the rest are just part of the KiCad install, i.e. I did not create them or add them myself.

As we’ve discussed in another thread, the only fp-lib-table I have been able to find on my computer is the project specific one. I’ve not been able to find another anywhere. There’s nothing in .config (a hidden folder on a Mac) in my user directory that relates to KiCad. If there is such a file placed on my Mac it is well hidden and not available to a Finder search or an extensive manual browse (even when “invisible” items are made visible).

(I’m sure “in Eagle” comments get old fast and I will try to avoid them. However, smart developers are also mindful of what works well in competing platforms.)

We are (mostly) not developers here. Just other users. :wink:
(And well i think if you work with kicad for a while you will find that a lot of stuff is better than eagle. Yes some other stuff is not as good. But kicad is currently under heavy development. Especially the eeschem side of it.)

Okay I have finally found the fp-lib-table file in MainBootSSD/users/steve/library/preferences/kicad/. For completeness I copy its contents below:

(fp_lib_table
(lib (name Air_Coils_SML_NEOSID)(type Github)(uri ${KIGITHUB}/Air_Coils_SML_NEOSID.pretty)(options “”)(descr HAMxx31A_HDMxx31A))
(lib (name Buttons_Switches_SMD)(type Github)(uri ${KIGITHUB}/Buttons_Switches_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Buttons_Switches_ThroughHole)(type Github)(uri ${KIGITHUB}/Buttons_Switches_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Buzzers_Beepers)(type Github)(uri ${KIGITHUB}/Buzzers_Beepers.pretty)(options “”)(descr “The way you like them.”))
(lib (name Capacitors_Elko_ThroughHole)(type Github)(uri ${KIGITHUB}/Capacitors_Elko_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Capacitors_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Capacitors_Tantalum_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_Tantalum_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Capacitors_ThroughHole)(type Github)(uri ${KIGITHUB}/Capacitors_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Choke_Axial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Axial_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Choke_Common-Mode_Wurth)(type Github)(uri ${KIGITHUB}/Choke_Common-Mode_Wurth.pretty)(options “”)(descr “The way you like them.”))
(lib (name Choke_Radial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Radial_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Choke_SMD)(type Github)(uri ${KIGITHUB}/Choke_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Choke_Toroid_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Toroid_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Connectors_Molex)(type Github)(uri ${KIGITHUB}/Connectors_Molex.pretty)(options “”)(descr 53047-A123))
(lib (name Connect)(type Github)(uri ${KIGITHUB}/Connect.pretty)(options “”)(descr “The way you like them.”))
(lib (name Converters_DCDC_ACDC)(type Github)(uri ${KIGITHUB}/Converters_DCDC_ACDC.pretty)(options “”)(descr “The way you like them.”))
(lib (name Crystals_Oscillators_SMD)(type Github)(uri ${KIGITHUB}/Crystals_Oscillators_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Crystals)(type Github)(uri ${KIGITHUB}/Crystals.pretty)(options “”)(descr “The way you like them.”))
(lib (name Diodes_SMD)(type Github)(uri ${KIGITHUB}/Diodes_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Diodes_ThroughHole)(type Github)(uri ${KIGITHUB}/Diodes_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Discret)(type Github)(uri ${KIGITHUB}/Discret.pretty)(options “”)(descr “The way you like them.”))
(lib (name Displays_7-Segment)(type Github)(uri ${KIGITHUB}/Displays_7-Segment.pretty)(options “”)(descr “The way you like them.”))
(lib (name Display)(type Github)(uri ${KIGITHUB}/Display.pretty)(options “”)(descr “The way you like them.”))
(lib (name Divers)(type Github)(uri ${KIGITHUB}/Divers.pretty)(options “”)(descr “The way you like them.”))
(lib (name EuroBoard_Outline)(type Github)(uri ${KIGITHUB}/EuroBoard_Outline.pretty)(options “”)(descr “The way you like them.”))
(lib (name Fiducials)(type Github)(uri ${KIGITHUB}/Fiducials.pretty)(options “”)(descr “The way you like them.”))
(lib (name Filters_HF_Coils_NEOSID)(type Github)(uri ${KIGITHUB}/Filters_HF_Coils_NEOSID.pretty)(options “”)(descr “The way you like them.”))
(lib (name Fuse_Holders_and_Fuses)(type Github)(uri ${KIGITHUB}/Fuse_Holders_and_Fuses.pretty)(options “”)(descr “The way you like them.”))
(lib (name Hall-Effect_Transducers_LEM)(type Github)(uri ${KIGITHUB}/Hall-Effect_Transducers_LEM.pretty)(options “”)(descr “The way you like them.”))
(lib (name Heatsinks)(type Github)(uri ${KIGITHUB}/Heatsinks.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_DFN_QFN)(type Github)(uri ${KIGITHUB}/Housings_DFN_QFN.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_DIP)(type Github)(uri ${KIGITHUB}/Housings_DIP.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_QFP)(type Github)(uri ${KIGITHUB}/Housings_QFP.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_ROHM)(type Github)(uri ${KIGITHUB}/Housings_ROHM.pretty)(options “”)(descr “Deprecated. VML0806 is moved to Transistors_SMD.pretty.”))
(lib (name Housings_SIP)(type Github)(uri ${KIGITHUB}/Housings_SIP.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_SOIC)(type Github)(uri ${KIGITHUB}/Housings_SOIC.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_SOT-23_SOT-143_TSOT-6)(type Github)(uri ${KIGITHUB}/Housings_SOT-23_SOT-143_TSOT-6.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_SMD.”))
(lib (name Housings_SOT-89)(type Github)(uri ${KIGITHUB}/Housings_SOT-89.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_SMD.”))
(lib (name Housings_SOT)(type Github)(uri ${KIGITHUB}/Housings_SOT.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_SMD.”))
(lib (name Housings_SSOP)(type Github)(uri ${KIGITHUB}/Housings_SSOP.pretty)(options “”)(descr “The way you like them.”))
(lib (name Housings_TO-12_TO-18_TO-42_TO-43)(type Github)(uri ${KIGITHUB}/Housings_TO-12_TO-18_TO-42_TO-43.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Housings_TO-50)(type Github)(uri ${KIGITHUB}/Housings_TO-50.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Housings_TO-78)(type Github)(uri ${KIGITHUB}/Housings_TO-78.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Housings_TO-92)(type Github)(uri ${KIGITHUB}/Housings_TO-92.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Inductors_NEOSID)(type Github)(uri ${KIGITHUB}/Inductors_NEOSID.pretty)(options “”)(descr “The way you like them.”))
(lib (name Inductors)(type Github)(uri ${KIGITHUB}/Inductors.pretty)(options “”)(descr “The way you like them.”))
(lib (name IR-DirectFETs)(type Github)(uri ${KIGITHUB}/IR-DirectFETs.pretty)(options “”)(descr “The way you like them.”))
(lib (name Labels)(type Github)(uri ${KIGITHUB}/Labels.pretty)(options “”)(descr “The way you like them.”))
(lib (name LEDs)(type Github)(uri ${KIGITHUB}/LEDs.pretty)(options “”)(descr “The way you like them.”))
(lib (name Measurement_Points)(type Github)(uri ${KIGITHUB}/Measurement_Points.pretty)(options “”)(descr “The way you like them.”))
(lib (name Measurement_Scales)(type Github)(uri ${KIGITHUB}/Measurement_Scales.pretty)(options “”)(descr “The way you like them.”))
(lib (name Mechanical_Sockets)(type Github)(uri ${KIGITHUB}/Mechanical_Sockets.pretty)(options “”)(descr DIN41612))
(lib (name Microwave)(type Github)(uri ${KIGITHUB}/Microwave.pretty)(options “”)(descr “The way you like them.”))
(lib (name Mounting_Holes)(type Github)(uri ${KIGITHUB}/Mounting_Holes.pretty)(options “”)(descr “The way you like them.”))
(lib (name NF-Transformers_ETAL)(type Github)(uri ${KIGITHUB}/NF-Transformers_ETAL.pretty)(options “”)(descr “The way you like them.”))
(lib (name Oddities)(type Github)(uri ${KIGITHUB}/Oddities.pretty)(options “”)(descr “The way you like them.”))
(lib (name Opto-Devices)(type Github)(uri ${KIGITHUB}/Opto-Devices.pretty)(options “”)(descr “The way you like them.”))
(lib (name Oscillator-Modules)(type Github)(uri ${KIGITHUB}/Oscillator-Modules.pretty)(options “”)(descr “The way you like them.”))
(lib (name Oscillators)(type Github)(uri ${KIGITHUB}/Oscillators.pretty)(options “”)(descr “SI570, SI571”))
(lib (name Pentawatts)(type Github)(uri ${KIGITHUB}/Pentawatts.pretty)(options “”)(descr “Deprecated, see Power_Packages_ThroughHole.pretty.”))
(lib (name PFF_PSF_PSS_Leadforms)(type Github)(uri ${KIGITHUB}/PFF_PSF_PSS_Leadforms.pretty)(options “”)(descr Allegro_ACS754_ACS755_ACS756_HallCurrentSensor))
(lib (name Pin_Headers)(type Github)(uri ${KIGITHUB}/Pin_Headers.pretty)(options “”)(descr “2.54mm pin headers.”))
(lib (name Potentiometers)(type Github)(uri ${KIGITHUB}/Potentiometers.pretty)(options “”)(descr “The way you like them.”))
(lib (name Power_Integrations)(type Github)(uri ${KIGITHUB}/Power_Integrations.pretty)(options “”)(descr “The way you like them.”))
(lib (name Power_Packages_SMD)(type Github)(uri ${KIGITHUB}/Power_Packages_SMD.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_SMD.”))
(lib (name Power_Packages_ThroughHole)(type Github)(uri ${KIGITHUB}/Power_Packages_ThroughHole.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Relays_ThroughHole)(type Github)(uri ${KIGITHUB}/Relays_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Resistors_SMD)(type Github)(uri ${KIGITHUB}/Resistors_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name Resistors_ThroughHole)(type Github)(uri ${KIGITHUB}/Resistors_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Resistors_Universal)(type Github)(uri ${KIGITHUB}/Resistors_Universal.pretty)(options “”)(descr Experimental))
(lib (name SMD_Packages)(type Github)(uri ${KIGITHUB}/SMD_Packages.pretty)(options “”)(descr “This library content will be moved elsewhere. Don’t add anything in it.”))
(lib (name Sockets_BNC)(type Github)(uri ${KIGITHUB}/Sockets_BNC.pretty)(options “”)(descr “The way you like them.”))
(lib (name Sockets_Mini-Universal)(type Github)(uri ${KIGITHUB}/Sockets_Mini-Universal.pretty)(options “”)(descr Mate-N-Lok))
(lib (name Sockets_MOLEX_KK-System)(type Github)(uri ${KIGITHUB}/Sockets_MOLEX_KK-System.pretty)(options “”)(descr “The way you like them.”))
(lib (name Sockets_PGA)(type Github)(uri ${KIGITHUB}/Sockets_PGA.pretty)(options “”)(descr “Deprecated. PGA120 is moved to Sockets.pretty.”))
(lib (name Socket_Strips)(type Github)(uri ${KIGITHUB}/Socket_Strips.pretty)(options “”)(descr “2.54mm socket strips.”))
(lib (name Sockets)(type Github)(uri ${KIGITHUB}/Sockets.pretty)(options “”)(descr “The way you like them.”))
(lib (name Sockets_WAGO734)(type Github)(uri ${KIGITHUB}/Sockets_WAGO734.pretty)(options “”)(descr “The way you like them.”))
(lib (name Symbols)(type Github)(uri ${KIGITHUB}/Symbols.pretty)(options “”)(descr “The way you like them.”))
(lib (name Terminal_Blocks)(type Github)(uri ${KIGITHUB}/Terminal_Blocks.pretty)(options “”)(descr WAGO236-RM5mm))
(lib (name TO_SOT_Packages_SMD)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_SMD.pretty)(options “”)(descr “The way you like them.”))
(lib (name TO_SOT_Packages_THT)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_THT.pretty)(options “”)(descr “The way you like them.”))
(lib (name Transformers_CHK)(type Github)(uri ${KIGITHUB}/Transformers_CHK.pretty)(options “”)(descr “The way you like them.”))
(lib (name Transformers_SMPS_ThroughHole)(type Github)(uri ${KIGITHUB}/Transformers_SMPS_ThroughHole.pretty)(options “”)(descr “The way you like them.”))
(lib (name Transistors_OldSowjetAera)(type Github)(uri ${KIGITHUB}/Transistors_OldSowjetAera.pretty)(options “”)(descr “The way you like them.”))
(lib (name Transistors_SMD)(type Github)(uri ${KIGITHUB}/Transistors_SMD.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_SMD.”))
(lib (name Transistors_TO-220)(type Github)(uri ${KIGITHUB}/Transistors_TO-220.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Transistors_TO-247)(type Github)(uri ${KIGITHUB}/Transistors_TO-247.pretty)(options “”)(descr “Deprecated. See TO_SOT_Packages_THT.”))
(lib (name Valves)(type Github)(uri ${KIGITHUB}/Valves.pretty)(options “”)(descr “The way you like them.”))
(lib (name Varistors)(type Github)(uri ${KIGITHUB}/Varistors.pretty)(options “”)(descr “The way you like them.”))
(lib (name Wire_Connections_Bridges)(type Github)(uri ${KIGITHUB}/Wire_Connections_Bridges.pretty)(options “”)(descr “The way you like them.”))
(lib (name Wire_Pads)(type Github)(uri ${KIGITHUB}/Wire_Pads.pretty)(options “”)(descr “The way you like them.”))
(lib (name Connectors)(type KiCad)(uri “/Users/steve/KiCad/My Libraries/Connectors.pretty”)(options “”)(descr “”))
(lib (name con-faston)(type Legacy)(uri “/Users/steve/KiCad/My Libraries/con-faston.mod”)(options “”)(descr “”))
(lib (name SA2014_multicap)(type KiCad)(uri “/Users/steve/KiCad/My Libraries/SA2014_multicap.pretty”)(options “”)(descr “”))

Oh I’m sure - and I can’t wait. I’m just trying to avoid having to make every part I need. While I could have made the TO-220AB footprint very quickly I don’t think I would be ironing out these issues and getting to use that which is already built in.

You really shouldn’t need to go round hunting for fp-lib-table files, I wouldn’t advise people to do that. It’s bad advice, and is not even necessary. Perhaps for experts it could be advised with caution.

In this case, the footprint library table should be accessed via the GUI in pcbnew->Preferences->Footprint Libraries Manager. Everything can be configured there. Tip : the table in the GUI works like a spreadsheet, you can edit fields, and also copy and paste.

GET command failed Cannot get/download Zip archive: 'https://codeload.github.com/KiCad/Transistors_SMD.pretty/zip/master'

Unfortunately the error is a bit generic, it can be anything from no internet, to non-existent URL. A good diagnostic is to type “https://codeload.github.com/KiCad/Transistors_SMD.pretty/zip/master” into a browser.

In this case it says “404 - not found”, which means the library no longer exists, and your library table is out of date.

To fix.

  1. Remove all entries which point to ${KIGITHUB}
  2. Use the Append with Wizard dialog to refresh the list. At your option you can save libraries locally, or use the automatically updated online versions
2 Likes

What happens if you do the following:

  • make a backup of your fp-lib-table (just to be sure that you don’t destroy stuff you could need.)
  • remove the original file.
  • open library wizard.
  • select github. (the field next to it should include https://github.com/KiCad)
  • select save a local copy to your liking [note 1]
  • press next
  • press select all
  • A validation takes place
  • Next pop-up lists the available libs (and their validation state)
  • Save to global table
  • restart kicad
  • check if it worked.
  • add your local libs with the wizard.

[note 1] If you use a local copy your libs will not update automatically. If you do not save a local copy you need a working internet connection while adding new footprints.

Thanks to you both. I now have no errors when I load Cvpcb and my own libraries are also there. I can now access a TO-220-3 footprint. (I decided to not have local copies as I’d prefer not to run the risk of outdated libraries. But is there a way to auto update local copies on launch or manually trigger an update? Or do I have to completely manually do what I just did and delete them all one by one and add them back via wizard?)

Does the following make sense with respect to getting this rectifier diode footprint sorted?

Open the TO-220 footprint in Footprint Editor. “Save footprint in new library” and call it something like ‘Diodes’ or whatever (saved where I keep my personal libraries).
Since KiCad doesn’t update the active library to this new one, I have to (a) now ‘add’ the newly created library, (b) for now, quit KiCad and relaunch, © navigate back to footprint editor and open the new library, list all etc
Edit the footprint so that both outside pads are pad 1 (rather than pad 1 and 3) ??? (I’m used to being able to simply map a symbol pin to multiple pads but here I think I have to name the pads the same…)
Make whatever other changes I think might be useful if any. Rename it I guess.
Save Footprint in Active Library.
(Perhaps have to quit KiCad and relaunch again. TBD)

PS: related to my first question, how is one’s fp-lib-table updated if a new library is added to the ones stored on GitHub? (A new additional library rather than edits to an existing library.)

Either by installing a newer version of KiCad or by keeping an eye on GitHub KiCad libraries.
There is a lot of library renaming going on that throws things

This still isn’t working. I created a new footprint library for my 3-pin diode and added it as a global library. I edited the TO-220 footprint to change the pad numbering (middle pad to “1”, outside two pads to “2”). I saved, redid the assignment in Cvpcb, saved, regenerated the netlist in Eeschema, reopened Pcbnew and read the net list again. I get:

Error: Component ‘D1’ pad ‘1’ not found in footprint ‘My_Diodes:TO-220AB’
Error: Component ‘D1’ pad ‘2’ not found in footprint ‘My_Diodes:TO-220AB’

Yet in footprint editor I can clearly see that the pads are numbered “1” and “2”. I had previously named the pads A and K but then changed them to numbers thinking they had to match the symbol pin numbering as there seems to be no other assignment going on. (Can I place A and K in the field “net name”?) I have two pads numbered 2 to match the generic device/diode symbol pin number 2 (the anode). The other is numbered 1 to match the symbol pin number 1 (cathode). No amount of reassignment, netlist regeneration, saving, quitting and relaunching and netlist rereading seems to resolve the issue.

EDIT: when I examine the footprint directly on Pcbnew the pad numbering is still A and K.

This field is populated via the netlist.

Haha, yeah, I am really not trying to hide the fact that this is quantity over quality. Recently I have started running them through continious integration to at least make sure KiCAD will accept them as valid footprints.

Would be interesting to start applying a set of rules to narrow them down to high quality footprints. But it’s hard to define that well without losing all of them I think. For example I could apply the KiCAD standard library rules but I think that would pretty much discount everything except the standard library.

As I mention in the README, the most effective way I have found is the keyword filter that has been added to the development version:

Well said. That’s my approach, too.

Dale

Good stuff. You’ve got the 200 or so you need sorted out and working for you. I can’t get even one working…

It was very helpful to get the KiCad libraries working properly -thanks to bob and rene. That was a good start and I was able to source a (vetted :wink: ) TO-220 footprint to use as a base for my TO-220AB package rectifier diode. But if you look 5 posts or so above you’ll see that this still isn’t working as Pcbnew fails to read the updated/corrected footprint pad numbering. Do I have to delete the Pcbnew file and start everything again each time this happens?

(I’ve already seen that Pcbnew repositions already-placed components when additional components have been placed in Eeschema and the “annotate schematic components” has been run again. Not good.)

Normally only footprints (symbols) who have been changed will be updated.
(you can select what you want to update when you import the netlist. Also select “keep existing annotation” when re-annotating your schematic.)

Ok so in contrast to symbols (where one can store a pin number and name), there’s no way to name a footprint pad except as designated by the relevant “pin number” in the symbol. (If you make this mistake you find yourself in the pickle I am in where Pcbnew doesn’t like your footprints even if you correct them.)

Can a pin or pad number be a letter?

In this case I wanted all the schematic’s caps to be renumbered as I had added a decent number of new ones. Hence it didn’t seem correct to “keep existing annotation”. The whole point was to rename the schematic. I was not expecting this to undo any layout work. I was expecting the placed items to be renamed according to the new net list but not moved.

Play with the options in the “Annotation” dialog to keep previously assigned designators, and also PCBNew’s “Read Netlist” menu - especially “Select by Reference” versus “Select by Timestamp”.

Dale