# smd_lib v0.37 # Shared function library used by smd_ plugins and others. # Stef Dawson # http://stefdawson.com/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... 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 ZAAA